about summary refs log tree commit diff
path: root/src/third-party/api/index.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/third-party/api/index.js')
-rw-r--r--src/third-party/api/index.js14129
1 files changed, 3143 insertions, 10986 deletions
diff --git a/src/third-party/api/index.js b/src/third-party/api/index.js
index d85fac37d..7475a9f84 100644
--- a/src/third-party/api/index.js
+++ b/src/third-party/api/index.js
@@ -5,9 +5,6 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
 var __getOwnPropNames = Object.getOwnPropertyNames;
 var __getProtoOf = Object.getPrototypeOf;
 var __hasOwnProp = Object.prototype.hasOwnProperty;
-var __commonJS = (cb, mod2) => function __require() {
-  return mod2 || (0, cb[__getOwnPropNames(cb)[0]])((mod2 = { exports: {} }).exports, mod2), mod2.exports;
-};
 var __export = (target, all) => {
   for (var name in all)
     __defProp(target, name, { get: all[name], enumerable: true });
@@ -26,6912 +23,6 @@ var __toESM = (mod2, isNodeMode, target) => (target = mod2 != null ? __create(__
 ));
 var __toCommonJS = (mod2) => __copyProps(__defProp({}, "__esModule", { value: true }), mod2);
 
-// ../../node_modules/ajv/dist/compile/codegen/code.js
-var require_code = __commonJS({
-  "../../node_modules/ajv/dist/compile/codegen/code.js"(exports) {
-    "use strict";
-    Object.defineProperty(exports, "__esModule", { value: true });
-    exports.regexpCode = exports.getEsmExportName = exports.getProperty = exports.safeStringify = exports.stringify = exports.strConcat = exports.addCodeArg = exports.str = exports._ = exports.nil = exports._Code = exports.Name = exports.IDENTIFIER = exports._CodeOrName = void 0;
-    var _CodeOrName = class {
-    };
-    exports._CodeOrName = _CodeOrName;
-    exports.IDENTIFIER = /^[a-z$_][a-z$_0-9]*$/i;
-    var Name = class extends _CodeOrName {
-      constructor(s) {
-        super();
-        if (!exports.IDENTIFIER.test(s))
-          throw new Error("CodeGen: name must be a valid identifier");
-        this.str = s;
-      }
-      toString() {
-        return this.str;
-      }
-      emptyStr() {
-        return false;
-      }
-      get names() {
-        return { [this.str]: 1 };
-      }
-    };
-    exports.Name = Name;
-    var _Code = class extends _CodeOrName {
-      constructor(code) {
-        super();
-        this._items = typeof code === "string" ? [code] : code;
-      }
-      toString() {
-        return this.str;
-      }
-      emptyStr() {
-        if (this._items.length > 1)
-          return false;
-        const item = this._items[0];
-        return item === "" || item === '""';
-      }
-      get str() {
-        var _a;
-        return (_a = this._str) !== null && _a !== void 0 ? _a : this._str = this._items.reduce((s, c) => `${s}${c}`, "");
-      }
-      get names() {
-        var _a;
-        return (_a = this._names) !== null && _a !== void 0 ? _a : this._names = this._items.reduce((names, c) => {
-          if (c instanceof Name)
-            names[c.str] = (names[c.str] || 0) + 1;
-          return names;
-        }, {});
-      }
-    };
-    exports._Code = _Code;
-    exports.nil = new _Code("");
-    function _(strs, ...args) {
-      const code = [strs[0]];
-      let i = 0;
-      while (i < args.length) {
-        addCodeArg(code, args[i]);
-        code.push(strs[++i]);
-      }
-      return new _Code(code);
-    }
-    exports._ = _;
-    var plus = new _Code("+");
-    function str(strs, ...args) {
-      const expr = [safeStringify(strs[0])];
-      let i = 0;
-      while (i < args.length) {
-        expr.push(plus);
-        addCodeArg(expr, args[i]);
-        expr.push(plus, safeStringify(strs[++i]));
-      }
-      optimize(expr);
-      return new _Code(expr);
-    }
-    exports.str = str;
-    function addCodeArg(code, arg) {
-      if (arg instanceof _Code)
-        code.push(...arg._items);
-      else if (arg instanceof Name)
-        code.push(arg);
-      else
-        code.push(interpolate(arg));
-    }
-    exports.addCodeArg = addCodeArg;
-    function optimize(expr) {
-      let i = 1;
-      while (i < expr.length - 1) {
-        if (expr[i] === plus) {
-          const res = mergeExprItems(expr[i - 1], expr[i + 1]);
-          if (res !== void 0) {
-            expr.splice(i - 1, 3, res);
-            continue;
-          }
-          expr[i++] = "+";
-        }
-        i++;
-      }
-    }
-    function mergeExprItems(a, b) {
-      if (b === '""')
-        return a;
-      if (a === '""')
-        return b;
-      if (typeof a == "string") {
-        if (b instanceof Name || a[a.length - 1] !== '"')
-          return;
-        if (typeof b != "string")
-          return `${a.slice(0, -1)}${b}"`;
-        if (b[0] === '"')
-          return a.slice(0, -1) + b.slice(1);
-        return;
-      }
-      if (typeof b == "string" && b[0] === '"' && !(a instanceof Name))
-        return `"${a}${b.slice(1)}`;
-      return;
-    }
-    function strConcat(c1, c2) {
-      return c2.emptyStr() ? c1 : c1.emptyStr() ? c2 : str`${c1}${c2}`;
-    }
-    exports.strConcat = strConcat;
-    function interpolate(x) {
-      return typeof x == "number" || typeof x == "boolean" || x === null ? x : safeStringify(Array.isArray(x) ? x.join(",") : x);
-    }
-    function stringify(x) {
-      return new _Code(safeStringify(x));
-    }
-    exports.stringify = stringify;
-    function safeStringify(x) {
-      return JSON.stringify(x).replace(/\u2028/g, "\\u2028").replace(/\u2029/g, "\\u2029");
-    }
-    exports.safeStringify = safeStringify;
-    function getProperty(key) {
-      return typeof key == "string" && exports.IDENTIFIER.test(key) ? new _Code(`.${key}`) : _`[${key}]`;
-    }
-    exports.getProperty = getProperty;
-    function getEsmExportName(key) {
-      if (typeof key == "string" && exports.IDENTIFIER.test(key)) {
-        return new _Code(`${key}`);
-      }
-      throw new Error(`CodeGen: invalid export name: ${key}, use explicit $id name mapping`);
-    }
-    exports.getEsmExportName = getEsmExportName;
-    function regexpCode(rx) {
-      return new _Code(rx.toString());
-    }
-    exports.regexpCode = regexpCode;
-  }
-});
-
-// ../../node_modules/ajv/dist/compile/codegen/scope.js
-var require_scope = __commonJS({
-  "../../node_modules/ajv/dist/compile/codegen/scope.js"(exports) {
-    "use strict";
-    Object.defineProperty(exports, "__esModule", { value: true });
-    exports.ValueScope = exports.ValueScopeName = exports.Scope = exports.varKinds = exports.UsedValueState = void 0;
-    var code_1 = require_code();
-    var ValueError = class extends Error {
-      constructor(name) {
-        super(`CodeGen: "code" for ${name} not defined`);
-        this.value = name.value;
-      }
-    };
-    var UsedValueState;
-    (function(UsedValueState2) {
-      UsedValueState2[UsedValueState2["Started"] = 0] = "Started";
-      UsedValueState2[UsedValueState2["Completed"] = 1] = "Completed";
-    })(UsedValueState = exports.UsedValueState || (exports.UsedValueState = {}));
-    exports.varKinds = {
-      const: new code_1.Name("const"),
-      let: new code_1.Name("let"),
-      var: new code_1.Name("var")
-    };
-    var Scope = class {
-      constructor({ prefixes, parent } = {}) {
-        this._names = {};
-        this._prefixes = prefixes;
-        this._parent = parent;
-      }
-      toName(nameOrPrefix) {
-        return nameOrPrefix instanceof code_1.Name ? nameOrPrefix : this.name(nameOrPrefix);
-      }
-      name(prefix) {
-        return new code_1.Name(this._newName(prefix));
-      }
-      _newName(prefix) {
-        const ng = this._names[prefix] || this._nameGroup(prefix);
-        return `${prefix}${ng.index++}`;
-      }
-      _nameGroup(prefix) {
-        var _a, _b;
-        if (((_b = (_a = this._parent) === null || _a === void 0 ? void 0 : _a._prefixes) === null || _b === void 0 ? void 0 : _b.has(prefix)) || this._prefixes && !this._prefixes.has(prefix)) {
-          throw new Error(`CodeGen: prefix "${prefix}" is not allowed in this scope`);
-        }
-        return this._names[prefix] = { prefix, index: 0 };
-      }
-    };
-    exports.Scope = Scope;
-    var ValueScopeName = class extends code_1.Name {
-      constructor(prefix, nameStr) {
-        super(nameStr);
-        this.prefix = prefix;
-      }
-      setValue(value, { property, itemIndex }) {
-        this.value = value;
-        this.scopePath = (0, code_1._)`.${new code_1.Name(property)}[${itemIndex}]`;
-      }
-    };
-    exports.ValueScopeName = ValueScopeName;
-    var line = (0, code_1._)`\n`;
-    var ValueScope = class extends Scope {
-      constructor(opts) {
-        super(opts);
-        this._values = {};
-        this._scope = opts.scope;
-        this.opts = { ...opts, _n: opts.lines ? line : code_1.nil };
-      }
-      get() {
-        return this._scope;
-      }
-      name(prefix) {
-        return new ValueScopeName(prefix, this._newName(prefix));
-      }
-      value(nameOrPrefix, value) {
-        var _a;
-        if (value.ref === void 0)
-          throw new Error("CodeGen: ref must be passed in value");
-        const name = this.toName(nameOrPrefix);
-        const { prefix } = name;
-        const valueKey = (_a = value.key) !== null && _a !== void 0 ? _a : value.ref;
-        let vs = this._values[prefix];
-        if (vs) {
-          const _name = vs.get(valueKey);
-          if (_name)
-            return _name;
-        } else {
-          vs = this._values[prefix] = /* @__PURE__ */ new Map();
-        }
-        vs.set(valueKey, name);
-        const s = this._scope[prefix] || (this._scope[prefix] = []);
-        const itemIndex = s.length;
-        s[itemIndex] = value.ref;
-        name.setValue(value, { property: prefix, itemIndex });
-        return name;
-      }
-      getValue(prefix, keyOrRef) {
-        const vs = this._values[prefix];
-        if (!vs)
-          return;
-        return vs.get(keyOrRef);
-      }
-      scopeRefs(scopeName, values = this._values) {
-        return this._reduceValues(values, (name) => {
-          if (name.scopePath === void 0)
-            throw new Error(`CodeGen: name "${name}" has no value`);
-          return (0, code_1._)`${scopeName}${name.scopePath}`;
-        });
-      }
-      scopeCode(values = this._values, usedValues, getCode) {
-        return this._reduceValues(values, (name) => {
-          if (name.value === void 0)
-            throw new Error(`CodeGen: name "${name}" has no value`);
-          return name.value.code;
-        }, usedValues, getCode);
-      }
-      _reduceValues(values, valueCode, usedValues = {}, getCode) {
-        let code = code_1.nil;
-        for (const prefix in values) {
-          const vs = values[prefix];
-          if (!vs)
-            continue;
-          const nameSet = usedValues[prefix] = usedValues[prefix] || /* @__PURE__ */ new Map();
-          vs.forEach((name) => {
-            if (nameSet.has(name))
-              return;
-            nameSet.set(name, UsedValueState.Started);
-            let c = valueCode(name);
-            if (c) {
-              const def = this.opts.es5 ? exports.varKinds.var : exports.varKinds.const;
-              code = (0, code_1._)`${code}${def} ${name} = ${c};${this.opts._n}`;
-            } else if (c = getCode === null || getCode === void 0 ? void 0 : getCode(name)) {
-              code = (0, code_1._)`${code}${c}${this.opts._n}`;
-            } else {
-              throw new ValueError(name);
-            }
-            nameSet.set(name, UsedValueState.Completed);
-          });
-        }
-        return code;
-      }
-    };
-    exports.ValueScope = ValueScope;
-  }
-});
-
-// ../../node_modules/ajv/dist/compile/codegen/index.js
-var require_codegen = __commonJS({
-  "../../node_modules/ajv/dist/compile/codegen/index.js"(exports) {
-    "use strict";
-    Object.defineProperty(exports, "__esModule", { value: true });
-    exports.or = exports.and = exports.not = exports.CodeGen = exports.operators = exports.varKinds = exports.ValueScopeName = exports.ValueScope = exports.Scope = exports.Name = exports.regexpCode = exports.stringify = exports.getProperty = exports.nil = exports.strConcat = exports.str = exports._ = void 0;
-    var code_1 = require_code();
-    var scope_1 = require_scope();
-    var code_2 = require_code();
-    Object.defineProperty(exports, "_", { enumerable: true, get: function() {
-      return code_2._;
-    } });
-    Object.defineProperty(exports, "str", { enumerable: true, get: function() {
-      return code_2.str;
-    } });
-    Object.defineProperty(exports, "strConcat", { enumerable: true, get: function() {
-      return code_2.strConcat;
-    } });
-    Object.defineProperty(exports, "nil", { enumerable: true, get: function() {
-      return code_2.nil;
-    } });
-    Object.defineProperty(exports, "getProperty", { enumerable: true, get: function() {
-      return code_2.getProperty;
-    } });
-    Object.defineProperty(exports, "stringify", { enumerable: true, get: function() {
-      return code_2.stringify;
-    } });
-    Object.defineProperty(exports, "regexpCode", { enumerable: true, get: function() {
-      return code_2.regexpCode;
-    } });
-    Object.defineProperty(exports, "Name", { enumerable: true, get: function() {
-      return code_2.Name;
-    } });
-    var scope_2 = require_scope();
-    Object.defineProperty(exports, "Scope", { enumerable: true, get: function() {
-      return scope_2.Scope;
-    } });
-    Object.defineProperty(exports, "ValueScope", { enumerable: true, get: function() {
-      return scope_2.ValueScope;
-    } });
-    Object.defineProperty(exports, "ValueScopeName", { enumerable: true, get: function() {
-      return scope_2.ValueScopeName;
-    } });
-    Object.defineProperty(exports, "varKinds", { enumerable: true, get: function() {
-      return scope_2.varKinds;
-    } });
-    exports.operators = {
-      GT: new code_1._Code(">"),
-      GTE: new code_1._Code(">="),
-      LT: new code_1._Code("<"),
-      LTE: new code_1._Code("<="),
-      EQ: new code_1._Code("==="),
-      NEQ: new code_1._Code("!=="),
-      NOT: new code_1._Code("!"),
-      OR: new code_1._Code("||"),
-      AND: new code_1._Code("&&"),
-      ADD: new code_1._Code("+")
-    };
-    var Node = class {
-      optimizeNodes() {
-        return this;
-      }
-      optimizeNames(_names, _constants) {
-        return this;
-      }
-    };
-    var Def = class extends Node {
-      constructor(varKind, name, rhs) {
-        super();
-        this.varKind = varKind;
-        this.name = name;
-        this.rhs = rhs;
-      }
-      render({ es5, _n }) {
-        const varKind = es5 ? scope_1.varKinds.var : this.varKind;
-        const rhs = this.rhs === void 0 ? "" : ` = ${this.rhs}`;
-        return `${varKind} ${this.name}${rhs};` + _n;
-      }
-      optimizeNames(names, constants) {
-        if (!names[this.name.str])
-          return;
-        if (this.rhs)
-          this.rhs = optimizeExpr(this.rhs, names, constants);
-        return this;
-      }
-      get names() {
-        return this.rhs instanceof code_1._CodeOrName ? this.rhs.names : {};
-      }
-    };
-    var Assign = class extends Node {
-      constructor(lhs, rhs, sideEffects) {
-        super();
-        this.lhs = lhs;
-        this.rhs = rhs;
-        this.sideEffects = sideEffects;
-      }
-      render({ _n }) {
-        return `${this.lhs} = ${this.rhs};` + _n;
-      }
-      optimizeNames(names, constants) {
-        if (this.lhs instanceof code_1.Name && !names[this.lhs.str] && !this.sideEffects)
-          return;
-        this.rhs = optimizeExpr(this.rhs, names, constants);
-        return this;
-      }
-      get names() {
-        const names = this.lhs instanceof code_1.Name ? {} : { ...this.lhs.names };
-        return addExprNames(names, this.rhs);
-      }
-    };
-    var AssignOp = class extends Assign {
-      constructor(lhs, op, rhs, sideEffects) {
-        super(lhs, rhs, sideEffects);
-        this.op = op;
-      }
-      render({ _n }) {
-        return `${this.lhs} ${this.op}= ${this.rhs};` + _n;
-      }
-    };
-    var Label = class extends Node {
-      constructor(label) {
-        super();
-        this.label = label;
-        this.names = {};
-      }
-      render({ _n }) {
-        return `${this.label}:` + _n;
-      }
-    };
-    var Break = class extends Node {
-      constructor(label) {
-        super();
-        this.label = label;
-        this.names = {};
-      }
-      render({ _n }) {
-        const label = this.label ? ` ${this.label}` : "";
-        return `break${label};` + _n;
-      }
-    };
-    var Throw = class extends Node {
-      constructor(error) {
-        super();
-        this.error = error;
-      }
-      render({ _n }) {
-        return `throw ${this.error};` + _n;
-      }
-      get names() {
-        return this.error.names;
-      }
-    };
-    var AnyCode = class extends Node {
-      constructor(code) {
-        super();
-        this.code = code;
-      }
-      render({ _n }) {
-        return `${this.code};` + _n;
-      }
-      optimizeNodes() {
-        return `${this.code}` ? this : void 0;
-      }
-      optimizeNames(names, constants) {
-        this.code = optimizeExpr(this.code, names, constants);
-        return this;
-      }
-      get names() {
-        return this.code instanceof code_1._CodeOrName ? this.code.names : {};
-      }
-    };
-    var ParentNode = class extends Node {
-      constructor(nodes = []) {
-        super();
-        this.nodes = nodes;
-      }
-      render(opts) {
-        return this.nodes.reduce((code, n) => code + n.render(opts), "");
-      }
-      optimizeNodes() {
-        const { nodes } = this;
-        let i = nodes.length;
-        while (i--) {
-          const n = nodes[i].optimizeNodes();
-          if (Array.isArray(n))
-            nodes.splice(i, 1, ...n);
-          else if (n)
-            nodes[i] = n;
-          else
-            nodes.splice(i, 1);
-        }
-        return nodes.length > 0 ? this : void 0;
-      }
-      optimizeNames(names, constants) {
-        const { nodes } = this;
-        let i = nodes.length;
-        while (i--) {
-          const n = nodes[i];
-          if (n.optimizeNames(names, constants))
-            continue;
-          subtractNames(names, n.names);
-          nodes.splice(i, 1);
-        }
-        return nodes.length > 0 ? this : void 0;
-      }
-      get names() {
-        return this.nodes.reduce((names, n) => addNames(names, n.names), {});
-      }
-    };
-    var BlockNode = class extends ParentNode {
-      render(opts) {
-        return "{" + opts._n + super.render(opts) + "}" + opts._n;
-      }
-    };
-    var Root = class extends ParentNode {
-    };
-    var Else = class extends BlockNode {
-    };
-    Else.kind = "else";
-    var If = class extends BlockNode {
-      constructor(condition, nodes) {
-        super(nodes);
-        this.condition = condition;
-      }
-      render(opts) {
-        let code = `if(${this.condition})` + super.render(opts);
-        if (this.else)
-          code += "else " + this.else.render(opts);
-        return code;
-      }
-      optimizeNodes() {
-        super.optimizeNodes();
-        const cond = this.condition;
-        if (cond === true)
-          return this.nodes;
-        let e = this.else;
-        if (e) {
-          const ns = e.optimizeNodes();
-          e = this.else = Array.isArray(ns) ? new Else(ns) : ns;
-        }
-        if (e) {
-          if (cond === false)
-            return e instanceof If ? e : e.nodes;
-          if (this.nodes.length)
-            return this;
-          return new If(not(cond), e instanceof If ? [e] : e.nodes);
-        }
-        if (cond === false || !this.nodes.length)
-          return void 0;
-        return this;
-      }
-      optimizeNames(names, constants) {
-        var _a;
-        this.else = (_a = this.else) === null || _a === void 0 ? void 0 : _a.optimizeNames(names, constants);
-        if (!(super.optimizeNames(names, constants) || this.else))
-          return;
-        this.condition = optimizeExpr(this.condition, names, constants);
-        return this;
-      }
-      get names() {
-        const names = super.names;
-        addExprNames(names, this.condition);
-        if (this.else)
-          addNames(names, this.else.names);
-        return names;
-      }
-    };
-    If.kind = "if";
-    var For = class extends BlockNode {
-    };
-    For.kind = "for";
-    var ForLoop = class extends For {
-      constructor(iteration) {
-        super();
-        this.iteration = iteration;
-      }
-      render(opts) {
-        return `for(${this.iteration})` + super.render(opts);
-      }
-      optimizeNames(names, constants) {
-        if (!super.optimizeNames(names, constants))
-          return;
-        this.iteration = optimizeExpr(this.iteration, names, constants);
-        return this;
-      }
-      get names() {
-        return addNames(super.names, this.iteration.names);
-      }
-    };
-    var ForRange = class extends For {
-      constructor(varKind, name, from, to) {
-        super();
-        this.varKind = varKind;
-        this.name = name;
-        this.from = from;
-        this.to = to;
-      }
-      render(opts) {
-        const varKind = opts.es5 ? scope_1.varKinds.var : this.varKind;
-        const { name, from, to } = this;
-        return `for(${varKind} ${name}=${from}; ${name}<${to}; ${name}++)` + super.render(opts);
-      }
-      get names() {
-        const names = addExprNames(super.names, this.from);
-        return addExprNames(names, this.to);
-      }
-    };
-    var ForIter = class extends For {
-      constructor(loop, varKind, name, iterable) {
-        super();
-        this.loop = loop;
-        this.varKind = varKind;
-        this.name = name;
-        this.iterable = iterable;
-      }
-      render(opts) {
-        return `for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})` + super.render(opts);
-      }
-      optimizeNames(names, constants) {
-        if (!super.optimizeNames(names, constants))
-          return;
-        this.iterable = optimizeExpr(this.iterable, names, constants);
-        return this;
-      }
-      get names() {
-        return addNames(super.names, this.iterable.names);
-      }
-    };
-    var Func = class extends BlockNode {
-      constructor(name, args, async) {
-        super();
-        this.name = name;
-        this.args = args;
-        this.async = async;
-      }
-      render(opts) {
-        const _async = this.async ? "async " : "";
-        return `${_async}function ${this.name}(${this.args})` + super.render(opts);
-      }
-    };
-    Func.kind = "func";
-    var Return = class extends ParentNode {
-      render(opts) {
-        return "return " + super.render(opts);
-      }
-    };
-    Return.kind = "return";
-    var Try = class extends BlockNode {
-      render(opts) {
-        let code = "try" + super.render(opts);
-        if (this.catch)
-          code += this.catch.render(opts);
-        if (this.finally)
-          code += this.finally.render(opts);
-        return code;
-      }
-      optimizeNodes() {
-        var _a, _b;
-        super.optimizeNodes();
-        (_a = this.catch) === null || _a === void 0 ? void 0 : _a.optimizeNodes();
-        (_b = this.finally) === null || _b === void 0 ? void 0 : _b.optimizeNodes();
-        return this;
-      }
-      optimizeNames(names, constants) {
-        var _a, _b;
-        super.optimizeNames(names, constants);
-        (_a = this.catch) === null || _a === void 0 ? void 0 : _a.optimizeNames(names, constants);
-        (_b = this.finally) === null || _b === void 0 ? void 0 : _b.optimizeNames(names, constants);
-        return this;
-      }
-      get names() {
-        const names = super.names;
-        if (this.catch)
-          addNames(names, this.catch.names);
-        if (this.finally)
-          addNames(names, this.finally.names);
-        return names;
-      }
-    };
-    var Catch = class extends BlockNode {
-      constructor(error) {
-        super();
-        this.error = error;
-      }
-      render(opts) {
-        return `catch(${this.error})` + super.render(opts);
-      }
-    };
-    Catch.kind = "catch";
-    var Finally = class extends BlockNode {
-      render(opts) {
-        return "finally" + super.render(opts);
-      }
-    };
-    Finally.kind = "finally";
-    var CodeGen = class {
-      constructor(extScope, opts = {}) {
-        this._values = {};
-        this._blockStarts = [];
-        this._constants = {};
-        this.opts = { ...opts, _n: opts.lines ? "\n" : "" };
-        this._extScope = extScope;
-        this._scope = new scope_1.Scope({ parent: extScope });
-        this._nodes = [new Root()];
-      }
-      toString() {
-        return this._root.render(this.opts);
-      }
-      name(prefix) {
-        return this._scope.name(prefix);
-      }
-      scopeName(prefix) {
-        return this._extScope.name(prefix);
-      }
-      scopeValue(prefixOrName, value) {
-        const name = this._extScope.value(prefixOrName, value);
-        const vs = this._values[name.prefix] || (this._values[name.prefix] = /* @__PURE__ */ new Set());
-        vs.add(name);
-        return name;
-      }
-      getScopeValue(prefix, keyOrRef) {
-        return this._extScope.getValue(prefix, keyOrRef);
-      }
-      scopeRefs(scopeName) {
-        return this._extScope.scopeRefs(scopeName, this._values);
-      }
-      scopeCode() {
-        return this._extScope.scopeCode(this._values);
-      }
-      _def(varKind, nameOrPrefix, rhs, constant) {
-        const name = this._scope.toName(nameOrPrefix);
-        if (rhs !== void 0 && constant)
-          this._constants[name.str] = rhs;
-        this._leafNode(new Def(varKind, name, rhs));
-        return name;
-      }
-      const(nameOrPrefix, rhs, _constant) {
-        return this._def(scope_1.varKinds.const, nameOrPrefix, rhs, _constant);
-      }
-      let(nameOrPrefix, rhs, _constant) {
-        return this._def(scope_1.varKinds.let, nameOrPrefix, rhs, _constant);
-      }
-      var(nameOrPrefix, rhs, _constant) {
-        return this._def(scope_1.varKinds.var, nameOrPrefix, rhs, _constant);
-      }
-      assign(lhs, rhs, sideEffects) {
-        return this._leafNode(new Assign(lhs, rhs, sideEffects));
-      }
-      add(lhs, rhs) {
-        return this._leafNode(new AssignOp(lhs, exports.operators.ADD, rhs));
-      }
-      code(c) {
-        if (typeof c == "function")
-          c();
-        else if (c !== code_1.nil)
-          this._leafNode(new AnyCode(c));
-        return this;
-      }
-      object(...keyValues) {
-        const code = ["{"];
-        for (const [key, value] of keyValues) {
-          if (code.length > 1)
-            code.push(",");
-          code.push(key);
-          if (key !== value || this.opts.es5) {
-            code.push(":");
-            (0, code_1.addCodeArg)(code, value);
-          }
-        }
-        code.push("}");
-        return new code_1._Code(code);
-      }
-      if(condition, thenBody, elseBody) {
-        this._blockNode(new If(condition));
-        if (thenBody && elseBody) {
-          this.code(thenBody).else().code(elseBody).endIf();
-        } else if (thenBody) {
-          this.code(thenBody).endIf();
-        } else if (elseBody) {
-          throw new Error('CodeGen: "else" body without "then" body');
-        }
-        return this;
-      }
-      elseIf(condition) {
-        return this._elseNode(new If(condition));
-      }
-      else() {
-        return this._elseNode(new Else());
-      }
-      endIf() {
-        return this._endBlockNode(If, Else);
-      }
-      _for(node, forBody) {
-        this._blockNode(node);
-        if (forBody)
-          this.code(forBody).endFor();
-        return this;
-      }
-      for(iteration, forBody) {
-        return this._for(new ForLoop(iteration), forBody);
-      }
-      forRange(nameOrPrefix, from, to, forBody, varKind = this.opts.es5 ? scope_1.varKinds.var : scope_1.varKinds.let) {
-        const name = this._scope.toName(nameOrPrefix);
-        return this._for(new ForRange(varKind, name, from, to), () => forBody(name));
-      }
-      forOf(nameOrPrefix, iterable, forBody, varKind = scope_1.varKinds.const) {
-        const name = this._scope.toName(nameOrPrefix);
-        if (this.opts.es5) {
-          const arr = iterable instanceof code_1.Name ? iterable : this.var("_arr", iterable);
-          return this.forRange("_i", 0, (0, code_1._)`${arr}.length`, (i) => {
-            this.var(name, (0, code_1._)`${arr}[${i}]`);
-            forBody(name);
-          });
-        }
-        return this._for(new ForIter("of", varKind, name, iterable), () => forBody(name));
-      }
-      forIn(nameOrPrefix, obj, forBody, varKind = this.opts.es5 ? scope_1.varKinds.var : scope_1.varKinds.const) {
-        if (this.opts.ownProperties) {
-          return this.forOf(nameOrPrefix, (0, code_1._)`Object.keys(${obj})`, forBody);
-        }
-        const name = this._scope.toName(nameOrPrefix);
-        return this._for(new ForIter("in", varKind, name, obj), () => forBody(name));
-      }
-      endFor() {
-        return this._endBlockNode(For);
-      }
-      label(label) {
-        return this._leafNode(new Label(label));
-      }
-      break(label) {
-        return this._leafNode(new Break(label));
-      }
-      return(value) {
-        const node = new Return();
-        this._blockNode(node);
-        this.code(value);
-        if (node.nodes.length !== 1)
-          throw new Error('CodeGen: "return" should have one node');
-        return this._endBlockNode(Return);
-      }
-      try(tryBody, catchCode, finallyCode) {
-        if (!catchCode && !finallyCode)
-          throw new Error('CodeGen: "try" without "catch" and "finally"');
-        const node = new Try();
-        this._blockNode(node);
-        this.code(tryBody);
-        if (catchCode) {
-          const error = this.name("e");
-          this._currNode = node.catch = new Catch(error);
-          catchCode(error);
-        }
-        if (finallyCode) {
-          this._currNode = node.finally = new Finally();
-          this.code(finallyCode);
-        }
-        return this._endBlockNode(Catch, Finally);
-      }
-      throw(error) {
-        return this._leafNode(new Throw(error));
-      }
-      block(body, nodeCount) {
-        this._blockStarts.push(this._nodes.length);
-        if (body)
-          this.code(body).endBlock(nodeCount);
-        return this;
-      }
-      endBlock(nodeCount) {
-        const len = this._blockStarts.pop();
-        if (len === void 0)
-          throw new Error("CodeGen: not in self-balancing block");
-        const toClose = this._nodes.length - len;
-        if (toClose < 0 || nodeCount !== void 0 && toClose !== nodeCount) {
-          throw new Error(`CodeGen: wrong number of nodes: ${toClose} vs ${nodeCount} expected`);
-        }
-        this._nodes.length = len;
-        return this;
-      }
-      func(name, args = code_1.nil, async, funcBody) {
-        this._blockNode(new Func(name, args, async));
-        if (funcBody)
-          this.code(funcBody).endFunc();
-        return this;
-      }
-      endFunc() {
-        return this._endBlockNode(Func);
-      }
-      optimize(n = 1) {
-        while (n-- > 0) {
-          this._root.optimizeNodes();
-          this._root.optimizeNames(this._root.names, this._constants);
-        }
-      }
-      _leafNode(node) {
-        this._currNode.nodes.push(node);
-        return this;
-      }
-      _blockNode(node) {
-        this._currNode.nodes.push(node);
-        this._nodes.push(node);
-      }
-      _endBlockNode(N1, N2) {
-        const n = this._currNode;
-        if (n instanceof N1 || N2 && n instanceof N2) {
-          this._nodes.pop();
-          return this;
-        }
-        throw new Error(`CodeGen: not in block "${N2 ? `${N1.kind}/${N2.kind}` : N1.kind}"`);
-      }
-      _elseNode(node) {
-        const n = this._currNode;
-        if (!(n instanceof If)) {
-          throw new Error('CodeGen: "else" without "if"');
-        }
-        this._currNode = n.else = node;
-        return this;
-      }
-      get _root() {
-        return this._nodes[0];
-      }
-      get _currNode() {
-        const ns = this._nodes;
-        return ns[ns.length - 1];
-      }
-      set _currNode(node) {
-        const ns = this._nodes;
-        ns[ns.length - 1] = node;
-      }
-    };
-    exports.CodeGen = CodeGen;
-    function addNames(names, from) {
-      for (const n in from)
-        names[n] = (names[n] || 0) + (from[n] || 0);
-      return names;
-    }
-    function addExprNames(names, from) {
-      return from instanceof code_1._CodeOrName ? addNames(names, from.names) : names;
-    }
-    function optimizeExpr(expr, names, constants) {
-      if (expr instanceof code_1.Name)
-        return replaceName(expr);
-      if (!canOptimize(expr))
-        return expr;
-      return new code_1._Code(expr._items.reduce((items, c) => {
-        if (c instanceof code_1.Name)
-          c = replaceName(c);
-        if (c instanceof code_1._Code)
-          items.push(...c._items);
-        else
-          items.push(c);
-        return items;
-      }, []));
-      function replaceName(n) {
-        const c = constants[n.str];
-        if (c === void 0 || names[n.str] !== 1)
-          return n;
-        delete names[n.str];
-        return c;
-      }
-      function canOptimize(e) {
-        return e instanceof code_1._Code && e._items.some((c) => c instanceof code_1.Name && names[c.str] === 1 && constants[c.str] !== void 0);
-      }
-    }
-    function subtractNames(names, from) {
-      for (const n in from)
-        names[n] = (names[n] || 0) - (from[n] || 0);
-    }
-    function not(x) {
-      return typeof x == "boolean" || typeof x == "number" || x === null ? !x : (0, code_1._)`!${par(x)}`;
-    }
-    exports.not = not;
-    var andCode = mappend(exports.operators.AND);
-    function and(...args) {
-      return args.reduce(andCode);
-    }
-    exports.and = and;
-    var orCode = mappend(exports.operators.OR);
-    function or(...args) {
-      return args.reduce(orCode);
-    }
-    exports.or = or;
-    function mappend(op) {
-      return (x, y) => x === code_1.nil ? y : y === code_1.nil ? x : (0, code_1._)`${par(x)} ${op} ${par(y)}`;
-    }
-    function par(x) {
-      return x instanceof code_1.Name ? x : (0, code_1._)`(${x})`;
-    }
-  }
-});
-
-// ../../node_modules/ajv/dist/compile/util.js
-var require_util = __commonJS({
-  "../../node_modules/ajv/dist/compile/util.js"(exports) {
-    "use strict";
-    Object.defineProperty(exports, "__esModule", { value: true });
-    exports.checkStrictMode = exports.getErrorPath = exports.Type = exports.useFunc = exports.setEvaluated = exports.evaluatedPropsToName = exports.mergeEvaluated = exports.eachItem = exports.unescapeJsonPointer = exports.escapeJsonPointer = exports.escapeFragment = exports.unescapeFragment = exports.schemaRefOrVal = exports.schemaHasRulesButRef = exports.schemaHasRules = exports.checkUnknownRules = exports.alwaysValidSchema = exports.toHash = void 0;
-    var codegen_1 = require_codegen();
-    var code_1 = require_code();
-    function toHash(arr) {
-      const hash = {};
-      for (const item of arr)
-        hash[item] = true;
-      return hash;
-    }
-    exports.toHash = toHash;
-    function alwaysValidSchema(it, schema) {
-      if (typeof schema == "boolean")
-        return schema;
-      if (Object.keys(schema).length === 0)
-        return true;
-      checkUnknownRules(it, schema);
-      return !schemaHasRules(schema, it.self.RULES.all);
-    }
-    exports.alwaysValidSchema = alwaysValidSchema;
-    function checkUnknownRules(it, schema = it.schema) {
-      const { opts, self } = it;
-      if (!opts.strictSchema)
-        return;
-      if (typeof schema === "boolean")
-        return;
-      const rules = self.RULES.keywords;
-      for (const key in schema) {
-        if (!rules[key])
-          checkStrictMode(it, `unknown keyword: "${key}"`);
-      }
-    }
-    exports.checkUnknownRules = checkUnknownRules;
-    function schemaHasRules(schema, rules) {
-      if (typeof schema == "boolean")
-        return !schema;
-      for (const key in schema)
-        if (rules[key])
-          return true;
-      return false;
-    }
-    exports.schemaHasRules = schemaHasRules;
-    function schemaHasRulesButRef(schema, RULES) {
-      if (typeof schema == "boolean")
-        return !schema;
-      for (const key in schema)
-        if (key !== "$ref" && RULES.all[key])
-          return true;
-      return false;
-    }
-    exports.schemaHasRulesButRef = schemaHasRulesButRef;
-    function schemaRefOrVal({ topSchemaRef, schemaPath }, schema, keyword, $data) {
-      if (!$data) {
-        if (typeof schema == "number" || typeof schema == "boolean")
-          return schema;
-        if (typeof schema == "string")
-          return (0, codegen_1._)`${schema}`;
-      }
-      return (0, codegen_1._)`${topSchemaRef}${schemaPath}${(0, codegen_1.getProperty)(keyword)}`;
-    }
-    exports.schemaRefOrVal = schemaRefOrVal;
-    function unescapeFragment(str) {
-      return unescapeJsonPointer(decodeURIComponent(str));
-    }
-    exports.unescapeFragment = unescapeFragment;
-    function escapeFragment(str) {
-      return encodeURIComponent(escapeJsonPointer(str));
-    }
-    exports.escapeFragment = escapeFragment;
-    function escapeJsonPointer(str) {
-      if (typeof str == "number")
-        return `${str}`;
-      return str.replace(/~/g, "~0").replace(/\//g, "~1");
-    }
-    exports.escapeJsonPointer = escapeJsonPointer;
-    function unescapeJsonPointer(str) {
-      return str.replace(/~1/g, "/").replace(/~0/g, "~");
-    }
-    exports.unescapeJsonPointer = unescapeJsonPointer;
-    function eachItem(xs, f) {
-      if (Array.isArray(xs)) {
-        for (const x of xs)
-          f(x);
-      } else {
-        f(xs);
-      }
-    }
-    exports.eachItem = eachItem;
-    function makeMergeEvaluated({ mergeNames, mergeToName, mergeValues: mergeValues2, resultToName }) {
-      return (gen, from, to, toName) => {
-        const res = to === void 0 ? from : to instanceof codegen_1.Name ? (from instanceof codegen_1.Name ? mergeNames(gen, from, to) : mergeToName(gen, from, to), to) : from instanceof codegen_1.Name ? (mergeToName(gen, to, from), from) : mergeValues2(from, to);
-        return toName === codegen_1.Name && !(res instanceof codegen_1.Name) ? resultToName(gen, res) : res;
-      };
-    }
-    exports.mergeEvaluated = {
-      props: makeMergeEvaluated({
-        mergeNames: (gen, from, to) => gen.if((0, codegen_1._)`${to} !== true && ${from} !== undefined`, () => {
-          gen.if((0, codegen_1._)`${from} === true`, () => gen.assign(to, true), () => gen.assign(to, (0, codegen_1._)`${to} || {}`).code((0, codegen_1._)`Object.assign(${to}, ${from})`));
-        }),
-        mergeToName: (gen, from, to) => gen.if((0, codegen_1._)`${to} !== true`, () => {
-          if (from === true) {
-            gen.assign(to, true);
-          } else {
-            gen.assign(to, (0, codegen_1._)`${to} || {}`);
-            setEvaluated(gen, to, from);
-          }
-        }),
-        mergeValues: (from, to) => from === true ? true : { ...from, ...to },
-        resultToName: evaluatedPropsToName
-      }),
-      items: makeMergeEvaluated({
-        mergeNames: (gen, from, to) => gen.if((0, codegen_1._)`${to} !== true && ${from} !== undefined`, () => gen.assign(to, (0, codegen_1._)`${from} === true ? true : ${to} > ${from} ? ${to} : ${from}`)),
-        mergeToName: (gen, from, to) => gen.if((0, codegen_1._)`${to} !== true`, () => gen.assign(to, from === true ? true : (0, codegen_1._)`${to} > ${from} ? ${to} : ${from}`)),
-        mergeValues: (from, to) => from === true ? true : Math.max(from, to),
-        resultToName: (gen, items) => gen.var("items", items)
-      })
-    };
-    function evaluatedPropsToName(gen, ps) {
-      if (ps === true)
-        return gen.var("props", true);
-      const props = gen.var("props", (0, codegen_1._)`{}`);
-      if (ps !== void 0)
-        setEvaluated(gen, props, ps);
-      return props;
-    }
-    exports.evaluatedPropsToName = evaluatedPropsToName;
-    function setEvaluated(gen, props, ps) {
-      Object.keys(ps).forEach((p) => gen.assign((0, codegen_1._)`${props}${(0, codegen_1.getProperty)(p)}`, true));
-    }
-    exports.setEvaluated = setEvaluated;
-    var snippets = {};
-    function useFunc(gen, f) {
-      return gen.scopeValue("func", {
-        ref: f,
-        code: snippets[f.code] || (snippets[f.code] = new code_1._Code(f.code))
-      });
-    }
-    exports.useFunc = useFunc;
-    var Type;
-    (function(Type2) {
-      Type2[Type2["Num"] = 0] = "Num";
-      Type2[Type2["Str"] = 1] = "Str";
-    })(Type = exports.Type || (exports.Type = {}));
-    function getErrorPath(dataProp, dataPropType, jsPropertySyntax) {
-      if (dataProp instanceof codegen_1.Name) {
-        const isNumber = dataPropType === Type.Num;
-        return jsPropertySyntax ? isNumber ? (0, codegen_1._)`"[" + ${dataProp} + "]"` : (0, codegen_1._)`"['" + ${dataProp} + "']"` : isNumber ? (0, codegen_1._)`"/" + ${dataProp}` : (0, codegen_1._)`"/" + ${dataProp}.replace(/~/g, "~0").replace(/\\//g, "~1")`;
-      }
-      return jsPropertySyntax ? (0, codegen_1.getProperty)(dataProp).toString() : "/" + escapeJsonPointer(dataProp);
-    }
-    exports.getErrorPath = getErrorPath;
-    function checkStrictMode(it, msg, mode = it.opts.strictSchema) {
-      if (!mode)
-        return;
-      msg = `strict mode: ${msg}`;
-      if (mode === true)
-        throw new Error(msg);
-      it.self.logger.warn(msg);
-    }
-    exports.checkStrictMode = checkStrictMode;
-  }
-});
-
-// ../../node_modules/ajv/dist/compile/names.js
-var require_names = __commonJS({
-  "../../node_modules/ajv/dist/compile/names.js"(exports) {
-    "use strict";
-    Object.defineProperty(exports, "__esModule", { value: true });
-    var codegen_1 = require_codegen();
-    var names = {
-      data: new codegen_1.Name("data"),
-      valCxt: new codegen_1.Name("valCxt"),
-      instancePath: new codegen_1.Name("instancePath"),
-      parentData: new codegen_1.Name("parentData"),
-      parentDataProperty: new codegen_1.Name("parentDataProperty"),
-      rootData: new codegen_1.Name("rootData"),
-      dynamicAnchors: new codegen_1.Name("dynamicAnchors"),
-      vErrors: new codegen_1.Name("vErrors"),
-      errors: new codegen_1.Name("errors"),
-      this: new codegen_1.Name("this"),
-      self: new codegen_1.Name("self"),
-      scope: new codegen_1.Name("scope"),
-      json: new codegen_1.Name("json"),
-      jsonPos: new codegen_1.Name("jsonPos"),
-      jsonLen: new codegen_1.Name("jsonLen"),
-      jsonPart: new codegen_1.Name("jsonPart")
-    };
-    exports.default = names;
-  }
-});
-
-// ../../node_modules/ajv/dist/compile/errors.js
-var require_errors = __commonJS({
-  "../../node_modules/ajv/dist/compile/errors.js"(exports) {
-    "use strict";
-    Object.defineProperty(exports, "__esModule", { value: true });
-    exports.extendErrors = exports.resetErrorsCount = exports.reportExtraError = exports.reportError = exports.keyword$DataError = exports.keywordError = void 0;
-    var codegen_1 = require_codegen();
-    var util_1 = require_util();
-    var names_1 = require_names();
-    exports.keywordError = {
-      message: ({ keyword }) => (0, codegen_1.str)`must pass "${keyword}" keyword validation`
-    };
-    exports.keyword$DataError = {
-      message: ({ keyword, schemaType }) => schemaType ? (0, codegen_1.str)`"${keyword}" keyword must be ${schemaType} ($data)` : (0, codegen_1.str)`"${keyword}" keyword is invalid ($data)`
-    };
-    function reportError(cxt, error = exports.keywordError, errorPaths, overrideAllErrors) {
-      const { it } = cxt;
-      const { gen, compositeRule, allErrors } = it;
-      const errObj = errorObjectCode(cxt, error, errorPaths);
-      if (overrideAllErrors !== null && overrideAllErrors !== void 0 ? overrideAllErrors : compositeRule || allErrors) {
-        addError(gen, errObj);
-      } else {
-        returnErrors(it, (0, codegen_1._)`[${errObj}]`);
-      }
-    }
-    exports.reportError = reportError;
-    function reportExtraError(cxt, error = exports.keywordError, errorPaths) {
-      const { it } = cxt;
-      const { gen, compositeRule, allErrors } = it;
-      const errObj = errorObjectCode(cxt, error, errorPaths);
-      addError(gen, errObj);
-      if (!(compositeRule || allErrors)) {
-        returnErrors(it, names_1.default.vErrors);
-      }
-    }
-    exports.reportExtraError = reportExtraError;
-    function resetErrorsCount(gen, errsCount) {
-      gen.assign(names_1.default.errors, errsCount);
-      gen.if((0, codegen_1._)`${names_1.default.vErrors} !== null`, () => gen.if(errsCount, () => gen.assign((0, codegen_1._)`${names_1.default.vErrors}.length`, errsCount), () => gen.assign(names_1.default.vErrors, null)));
-    }
-    exports.resetErrorsCount = resetErrorsCount;
-    function extendErrors({ gen, keyword, schemaValue, data, errsCount, it }) {
-      if (errsCount === void 0)
-        throw new Error("ajv implementation error");
-      const err = gen.name("err");
-      gen.forRange("i", errsCount, names_1.default.errors, (i) => {
-        gen.const(err, (0, codegen_1._)`${names_1.default.vErrors}[${i}]`);
-        gen.if((0, codegen_1._)`${err}.instancePath === undefined`, () => gen.assign((0, codegen_1._)`${err}.instancePath`, (0, codegen_1.strConcat)(names_1.default.instancePath, it.errorPath)));
-        gen.assign((0, codegen_1._)`${err}.schemaPath`, (0, codegen_1.str)`${it.errSchemaPath}/${keyword}`);
-        if (it.opts.verbose) {
-          gen.assign((0, codegen_1._)`${err}.schema`, schemaValue);
-          gen.assign((0, codegen_1._)`${err}.data`, data);
-        }
-      });
-    }
-    exports.extendErrors = extendErrors;
-    function addError(gen, errObj) {
-      const err = gen.const("err", errObj);
-      gen.if((0, codegen_1._)`${names_1.default.vErrors} === null`, () => gen.assign(names_1.default.vErrors, (0, codegen_1._)`[${err}]`), (0, codegen_1._)`${names_1.default.vErrors}.push(${err})`);
-      gen.code((0, codegen_1._)`${names_1.default.errors}++`);
-    }
-    function returnErrors(it, errs) {
-      const { gen, validateName, schemaEnv } = it;
-      if (schemaEnv.$async) {
-        gen.throw((0, codegen_1._)`new ${it.ValidationError}(${errs})`);
-      } else {
-        gen.assign((0, codegen_1._)`${validateName}.errors`, errs);
-        gen.return(false);
-      }
-    }
-    var E = {
-      keyword: new codegen_1.Name("keyword"),
-      schemaPath: new codegen_1.Name("schemaPath"),
-      params: new codegen_1.Name("params"),
-      propertyName: new codegen_1.Name("propertyName"),
-      message: new codegen_1.Name("message"),
-      schema: new codegen_1.Name("schema"),
-      parentSchema: new codegen_1.Name("parentSchema")
-    };
-    function errorObjectCode(cxt, error, errorPaths) {
-      const { createErrors } = cxt.it;
-      if (createErrors === false)
-        return (0, codegen_1._)`{}`;
-      return errorObject(cxt, error, errorPaths);
-    }
-    function errorObject(cxt, error, errorPaths = {}) {
-      const { gen, it } = cxt;
-      const keyValues = [
-        errorInstancePath(it, errorPaths),
-        errorSchemaPath(cxt, errorPaths)
-      ];
-      extraErrorProps(cxt, error, keyValues);
-      return gen.object(...keyValues);
-    }
-    function errorInstancePath({ errorPath }, { instancePath }) {
-      const instPath = instancePath ? (0, codegen_1.str)`${errorPath}${(0, util_1.getErrorPath)(instancePath, util_1.Type.Str)}` : errorPath;
-      return [names_1.default.instancePath, (0, codegen_1.strConcat)(names_1.default.instancePath, instPath)];
-    }
-    function errorSchemaPath({ keyword, it: { errSchemaPath } }, { schemaPath, parentSchema }) {
-      let schPath = parentSchema ? errSchemaPath : (0, codegen_1.str)`${errSchemaPath}/${keyword}`;
-      if (schemaPath) {
-        schPath = (0, codegen_1.str)`${schPath}${(0, util_1.getErrorPath)(schemaPath, util_1.Type.Str)}`;
-      }
-      return [E.schemaPath, schPath];
-    }
-    function extraErrorProps(cxt, { params, message }, keyValues) {
-      const { keyword, data, schemaValue, it } = cxt;
-      const { opts, propertyName, topSchemaRef, schemaPath } = it;
-      keyValues.push([E.keyword, keyword], [E.params, typeof params == "function" ? params(cxt) : params || (0, codegen_1._)`{}`]);
-      if (opts.messages) {
-        keyValues.push([E.message, typeof message == "function" ? message(cxt) : message]);
-      }
-      if (opts.verbose) {
-        keyValues.push([E.schema, schemaValue], [E.parentSchema, (0, codegen_1._)`${topSchemaRef}${schemaPath}`], [names_1.default.data, data]);
-      }
-      if (propertyName)
-        keyValues.push([E.propertyName, propertyName]);
-    }
-  }
-});
-
-// ../../node_modules/ajv/dist/compile/validate/boolSchema.js
-var require_boolSchema = __commonJS({
-  "../../node_modules/ajv/dist/compile/validate/boolSchema.js"(exports) {
-    "use strict";
-    Object.defineProperty(exports, "__esModule", { value: true });
-    exports.boolOrEmptySchema = exports.topBoolOrEmptySchema = void 0;
-    var errors_1 = require_errors();
-    var codegen_1 = require_codegen();
-    var names_1 = require_names();
-    var boolError = {
-      message: "boolean schema is false"
-    };
-    function topBoolOrEmptySchema(it) {
-      const { gen, schema, validateName } = it;
-      if (schema === false) {
-        falseSchemaError(it, false);
-      } else if (typeof schema == "object" && schema.$async === true) {
-        gen.return(names_1.default.data);
-      } else {
-        gen.assign((0, codegen_1._)`${validateName}.errors`, null);
-        gen.return(true);
-      }
-    }
-    exports.topBoolOrEmptySchema = topBoolOrEmptySchema;
-    function boolOrEmptySchema(it, valid) {
-      const { gen, schema } = it;
-      if (schema === false) {
-        gen.var(valid, false);
-        falseSchemaError(it);
-      } else {
-        gen.var(valid, true);
-      }
-    }
-    exports.boolOrEmptySchema = boolOrEmptySchema;
-    function falseSchemaError(it, overrideAllErrors) {
-      const { gen, data } = it;
-      const cxt = {
-        gen,
-        keyword: "false schema",
-        data,
-        schema: false,
-        schemaCode: false,
-        schemaValue: false,
-        params: {},
-        it
-      };
-      (0, errors_1.reportError)(cxt, boolError, void 0, overrideAllErrors);
-    }
-  }
-});
-
-// ../../node_modules/ajv/dist/compile/rules.js
-var require_rules = __commonJS({
-  "../../node_modules/ajv/dist/compile/rules.js"(exports) {
-    "use strict";
-    Object.defineProperty(exports, "__esModule", { value: true });
-    exports.getRules = exports.isJSONType = void 0;
-    var _jsonTypes = ["string", "number", "integer", "boolean", "null", "object", "array"];
-    var jsonTypes = new Set(_jsonTypes);
-    function isJSONType(x) {
-      return typeof x == "string" && jsonTypes.has(x);
-    }
-    exports.isJSONType = isJSONType;
-    function getRules() {
-      const groups = {
-        number: { type: "number", rules: [] },
-        string: { type: "string", rules: [] },
-        array: { type: "array", rules: [] },
-        object: { type: "object", rules: [] }
-      };
-      return {
-        types: { ...groups, integer: true, boolean: true, null: true },
-        rules: [{ rules: [] }, groups.number, groups.string, groups.array, groups.object],
-        post: { rules: [] },
-        all: {},
-        keywords: {}
-      };
-    }
-    exports.getRules = getRules;
-  }
-});
-
-// ../../node_modules/ajv/dist/compile/validate/applicability.js
-var require_applicability = __commonJS({
-  "../../node_modules/ajv/dist/compile/validate/applicability.js"(exports) {
-    "use strict";
-    Object.defineProperty(exports, "__esModule", { value: true });
-    exports.shouldUseRule = exports.shouldUseGroup = exports.schemaHasRulesForType = void 0;
-    function schemaHasRulesForType({ schema, self }, type) {
-      const group = self.RULES.types[type];
-      return group && group !== true && shouldUseGroup(schema, group);
-    }
-    exports.schemaHasRulesForType = schemaHasRulesForType;
-    function shouldUseGroup(schema, group) {
-      return group.rules.some((rule) => shouldUseRule(schema, rule));
-    }
-    exports.shouldUseGroup = shouldUseGroup;
-    function shouldUseRule(schema, rule) {
-      var _a;
-      return schema[rule.keyword] !== void 0 || ((_a = rule.definition.implements) === null || _a === void 0 ? void 0 : _a.some((kwd) => schema[kwd] !== void 0));
-    }
-    exports.shouldUseRule = shouldUseRule;
-  }
-});
-
-// ../../node_modules/ajv/dist/compile/validate/dataType.js
-var require_dataType = __commonJS({
-  "../../node_modules/ajv/dist/compile/validate/dataType.js"(exports) {
-    "use strict";
-    Object.defineProperty(exports, "__esModule", { value: true });
-    exports.reportTypeError = exports.checkDataTypes = exports.checkDataType = exports.coerceAndCheckDataType = exports.getJSONTypes = exports.getSchemaTypes = exports.DataType = void 0;
-    var rules_1 = require_rules();
-    var applicability_1 = require_applicability();
-    var errors_1 = require_errors();
-    var codegen_1 = require_codegen();
-    var util_1 = require_util();
-    var DataType;
-    (function(DataType2) {
-      DataType2[DataType2["Correct"] = 0] = "Correct";
-      DataType2[DataType2["Wrong"] = 1] = "Wrong";
-    })(DataType = exports.DataType || (exports.DataType = {}));
-    function getSchemaTypes(schema) {
-      const types = getJSONTypes(schema.type);
-      const hasNull = types.includes("null");
-      if (hasNull) {
-        if (schema.nullable === false)
-          throw new Error("type: null contradicts nullable: false");
-      } else {
-        if (!types.length && schema.nullable !== void 0) {
-          throw new Error('"nullable" cannot be used without "type"');
-        }
-        if (schema.nullable === true)
-          types.push("null");
-      }
-      return types;
-    }
-    exports.getSchemaTypes = getSchemaTypes;
-    function getJSONTypes(ts) {
-      const types = Array.isArray(ts) ? ts : ts ? [ts] : [];
-      if (types.every(rules_1.isJSONType))
-        return types;
-      throw new Error("type must be JSONType or JSONType[]: " + types.join(","));
-    }
-    exports.getJSONTypes = getJSONTypes;
-    function coerceAndCheckDataType(it, types) {
-      const { gen, data, opts } = it;
-      const coerceTo = coerceToTypes(types, opts.coerceTypes);
-      const checkTypes = types.length > 0 && !(coerceTo.length === 0 && types.length === 1 && (0, applicability_1.schemaHasRulesForType)(it, types[0]));
-      if (checkTypes) {
-        const wrongType = checkDataTypes(types, data, opts.strictNumbers, DataType.Wrong);
-        gen.if(wrongType, () => {
-          if (coerceTo.length)
-            coerceData(it, types, coerceTo);
-          else
-            reportTypeError(it);
-        });
-      }
-      return checkTypes;
-    }
-    exports.coerceAndCheckDataType = coerceAndCheckDataType;
-    var COERCIBLE = /* @__PURE__ */ new Set(["string", "number", "integer", "boolean", "null"]);
-    function coerceToTypes(types, coerceTypes) {
-      return coerceTypes ? types.filter((t) => COERCIBLE.has(t) || coerceTypes === "array" && t === "array") : [];
-    }
-    function coerceData(it, types, coerceTo) {
-      const { gen, data, opts } = it;
-      const dataType = gen.let("dataType", (0, codegen_1._)`typeof ${data}`);
-      const coerced = gen.let("coerced", (0, codegen_1._)`undefined`);
-      if (opts.coerceTypes === "array") {
-        gen.if((0, codegen_1._)`${dataType} == 'object' && Array.isArray(${data}) && ${data}.length == 1`, () => gen.assign(data, (0, codegen_1._)`${data}[0]`).assign(dataType, (0, codegen_1._)`typeof ${data}`).if(checkDataTypes(types, data, opts.strictNumbers), () => gen.assign(coerced, data)));
-      }
-      gen.if((0, codegen_1._)`${coerced} !== undefined`);
-      for (const t of coerceTo) {
-        if (COERCIBLE.has(t) || t === "array" && opts.coerceTypes === "array") {
-          coerceSpecificType(t);
-        }
-      }
-      gen.else();
-      reportTypeError(it);
-      gen.endIf();
-      gen.if((0, codegen_1._)`${coerced} !== undefined`, () => {
-        gen.assign(data, coerced);
-        assignParentData(it, coerced);
-      });
-      function coerceSpecificType(t) {
-        switch (t) {
-          case "string":
-            gen.elseIf((0, codegen_1._)`${dataType} == "number" || ${dataType} == "boolean"`).assign(coerced, (0, codegen_1._)`"" + ${data}`).elseIf((0, codegen_1._)`${data} === null`).assign(coerced, (0, codegen_1._)`""`);
-            return;
-          case "number":
-            gen.elseIf((0, codegen_1._)`${dataType} == "boolean" || ${data} === null
-              || (${dataType} == "string" && ${data} && ${data} == +${data})`).assign(coerced, (0, codegen_1._)`+${data}`);
-            return;
-          case "integer":
-            gen.elseIf((0, codegen_1._)`${dataType} === "boolean" || ${data} === null
-              || (${dataType} === "string" && ${data} && ${data} == +${data} && !(${data} % 1))`).assign(coerced, (0, codegen_1._)`+${data}`);
-            return;
-          case "boolean":
-            gen.elseIf((0, codegen_1._)`${data} === "false" || ${data} === 0 || ${data} === null`).assign(coerced, false).elseIf((0, codegen_1._)`${data} === "true" || ${data} === 1`).assign(coerced, true);
-            return;
-          case "null":
-            gen.elseIf((0, codegen_1._)`${data} === "" || ${data} === 0 || ${data} === false`);
-            gen.assign(coerced, null);
-            return;
-          case "array":
-            gen.elseIf((0, codegen_1._)`${dataType} === "string" || ${dataType} === "number"
-              || ${dataType} === "boolean" || ${data} === null`).assign(coerced, (0, codegen_1._)`[${data}]`);
-        }
-      }
-    }
-    function assignParentData({ gen, parentData, parentDataProperty }, expr) {
-      gen.if((0, codegen_1._)`${parentData} !== undefined`, () => gen.assign((0, codegen_1._)`${parentData}[${parentDataProperty}]`, expr));
-    }
-    function checkDataType(dataType, data, strictNums, correct = DataType.Correct) {
-      const EQ = correct === DataType.Correct ? codegen_1.operators.EQ : codegen_1.operators.NEQ;
-      let cond;
-      switch (dataType) {
-        case "null":
-          return (0, codegen_1._)`${data} ${EQ} null`;
-        case "array":
-          cond = (0, codegen_1._)`Array.isArray(${data})`;
-          break;
-        case "object":
-          cond = (0, codegen_1._)`${data} && typeof ${data} == "object" && !Array.isArray(${data})`;
-          break;
-        case "integer":
-          cond = numCond((0, codegen_1._)`!(${data} % 1) && !isNaN(${data})`);
-          break;
-        case "number":
-          cond = numCond();
-          break;
-        default:
-          return (0, codegen_1._)`typeof ${data} ${EQ} ${dataType}`;
-      }
-      return correct === DataType.Correct ? cond : (0, codegen_1.not)(cond);
-      function numCond(_cond = codegen_1.nil) {
-        return (0, codegen_1.and)((0, codegen_1._)`typeof ${data} == "number"`, _cond, strictNums ? (0, codegen_1._)`isFinite(${data})` : codegen_1.nil);
-      }
-    }
-    exports.checkDataType = checkDataType;
-    function checkDataTypes(dataTypes, data, strictNums, correct) {
-      if (dataTypes.length === 1) {
-        return checkDataType(dataTypes[0], data, strictNums, correct);
-      }
-      let cond;
-      const types = (0, util_1.toHash)(dataTypes);
-      if (types.array && types.object) {
-        const notObj = (0, codegen_1._)`typeof ${data} != "object"`;
-        cond = types.null ? notObj : (0, codegen_1._)`!${data} || ${notObj}`;
-        delete types.null;
-        delete types.array;
-        delete types.object;
-      } else {
-        cond = codegen_1.nil;
-      }
-      if (types.number)
-        delete types.integer;
-      for (const t in types)
-        cond = (0, codegen_1.and)(cond, checkDataType(t, data, strictNums, correct));
-      return cond;
-    }
-    exports.checkDataTypes = checkDataTypes;
-    var typeError = {
-      message: ({ schema }) => `must be ${schema}`,
-      params: ({ schema, schemaValue }) => typeof schema == "string" ? (0, codegen_1._)`{type: ${schema}}` : (0, codegen_1._)`{type: ${schemaValue}}`
-    };
-    function reportTypeError(it) {
-      const cxt = getTypeErrorContext(it);
-      (0, errors_1.reportError)(cxt, typeError);
-    }
-    exports.reportTypeError = reportTypeError;
-    function getTypeErrorContext(it) {
-      const { gen, data, schema } = it;
-      const schemaCode = (0, util_1.schemaRefOrVal)(it, schema, "type");
-      return {
-        gen,
-        keyword: "type",
-        data,
-        schema: schema.type,
-        schemaCode,
-        schemaValue: schemaCode,
-        parentSchema: schema,
-        params: {},
-        it
-      };
-    }
-  }
-});
-
-// ../../node_modules/ajv/dist/compile/validate/defaults.js
-var require_defaults = __commonJS({
-  "../../node_modules/ajv/dist/compile/validate/defaults.js"(exports) {
-    "use strict";
-    Object.defineProperty(exports, "__esModule", { value: true });
-    exports.assignDefaults = void 0;
-    var codegen_1 = require_codegen();
-    var util_1 = require_util();
-    function assignDefaults(it, ty) {
-      const { properties, items } = it.schema;
-      if (ty === "object" && properties) {
-        for (const key in properties) {
-          assignDefault(it, key, properties[key].default);
-        }
-      } else if (ty === "array" && Array.isArray(items)) {
-        items.forEach((sch, i) => assignDefault(it, i, sch.default));
-      }
-    }
-    exports.assignDefaults = assignDefaults;
-    function assignDefault(it, prop, defaultValue) {
-      const { gen, compositeRule, data, opts } = it;
-      if (defaultValue === void 0)
-        return;
-      const childData = (0, codegen_1._)`${data}${(0, codegen_1.getProperty)(prop)}`;
-      if (compositeRule) {
-        (0, util_1.checkStrictMode)(it, `default is ignored for: ${childData}`);
-        return;
-      }
-      let condition = (0, codegen_1._)`${childData} === undefined`;
-      if (opts.useDefaults === "empty") {
-        condition = (0, codegen_1._)`${condition} || ${childData} === null || ${childData} === ""`;
-      }
-      gen.if(condition, (0, codegen_1._)`${childData} = ${(0, codegen_1.stringify)(defaultValue)}`);
-    }
-  }
-});
-
-// ../../node_modules/ajv/dist/vocabularies/code.js
-var require_code2 = __commonJS({
-  "../../node_modules/ajv/dist/vocabularies/code.js"(exports) {
-    "use strict";
-    Object.defineProperty(exports, "__esModule", { value: true });
-    exports.validateUnion = exports.validateArray = exports.usePattern = exports.callValidateCode = exports.schemaProperties = exports.allSchemaProperties = exports.noPropertyInData = exports.propertyInData = exports.isOwnProperty = exports.hasPropFunc = exports.reportMissingProp = exports.checkMissingProp = exports.checkReportMissingProp = void 0;
-    var codegen_1 = require_codegen();
-    var util_1 = require_util();
-    var names_1 = require_names();
-    var util_2 = require_util();
-    function checkReportMissingProp(cxt, prop) {
-      const { gen, data, it } = cxt;
-      gen.if(noPropertyInData(gen, data, prop, it.opts.ownProperties), () => {
-        cxt.setParams({ missingProperty: (0, codegen_1._)`${prop}` }, true);
-        cxt.error();
-      });
-    }
-    exports.checkReportMissingProp = checkReportMissingProp;
-    function checkMissingProp({ gen, data, it: { opts } }, properties, missing) {
-      return (0, codegen_1.or)(...properties.map((prop) => (0, codegen_1.and)(noPropertyInData(gen, data, prop, opts.ownProperties), (0, codegen_1._)`${missing} = ${prop}`)));
-    }
-    exports.checkMissingProp = checkMissingProp;
-    function reportMissingProp(cxt, missing) {
-      cxt.setParams({ missingProperty: missing }, true);
-      cxt.error();
-    }
-    exports.reportMissingProp = reportMissingProp;
-    function hasPropFunc(gen) {
-      return gen.scopeValue("func", {
-        ref: Object.prototype.hasOwnProperty,
-        code: (0, codegen_1._)`Object.prototype.hasOwnProperty`
-      });
-    }
-    exports.hasPropFunc = hasPropFunc;
-    function isOwnProperty(gen, data, property) {
-      return (0, codegen_1._)`${hasPropFunc(gen)}.call(${data}, ${property})`;
-    }
-    exports.isOwnProperty = isOwnProperty;
-    function propertyInData(gen, data, property, ownProperties) {
-      const cond = (0, codegen_1._)`${data}${(0, codegen_1.getProperty)(property)} !== undefined`;
-      return ownProperties ? (0, codegen_1._)`${cond} && ${isOwnProperty(gen, data, property)}` : cond;
-    }
-    exports.propertyInData = propertyInData;
-    function noPropertyInData(gen, data, property, ownProperties) {
-      const cond = (0, codegen_1._)`${data}${(0, codegen_1.getProperty)(property)} === undefined`;
-      return ownProperties ? (0, codegen_1.or)(cond, (0, codegen_1.not)(isOwnProperty(gen, data, property))) : cond;
-    }
-    exports.noPropertyInData = noPropertyInData;
-    function allSchemaProperties(schemaMap) {
-      return schemaMap ? Object.keys(schemaMap).filter((p) => p !== "__proto__") : [];
-    }
-    exports.allSchemaProperties = allSchemaProperties;
-    function schemaProperties(it, schemaMap) {
-      return allSchemaProperties(schemaMap).filter((p) => !(0, util_1.alwaysValidSchema)(it, schemaMap[p]));
-    }
-    exports.schemaProperties = schemaProperties;
-    function callValidateCode({ schemaCode, data, it: { gen, topSchemaRef, schemaPath, errorPath }, it }, func, context, passSchema) {
-      const dataAndSchema = passSchema ? (0, codegen_1._)`${schemaCode}, ${data}, ${topSchemaRef}${schemaPath}` : data;
-      const valCxt = [
-        [names_1.default.instancePath, (0, codegen_1.strConcat)(names_1.default.instancePath, errorPath)],
-        [names_1.default.parentData, it.parentData],
-        [names_1.default.parentDataProperty, it.parentDataProperty],
-        [names_1.default.rootData, names_1.default.rootData]
-      ];
-      if (it.opts.dynamicRef)
-        valCxt.push([names_1.default.dynamicAnchors, names_1.default.dynamicAnchors]);
-      const args = (0, codegen_1._)`${dataAndSchema}, ${gen.object(...valCxt)}`;
-      return context !== codegen_1.nil ? (0, codegen_1._)`${func}.call(${context}, ${args})` : (0, codegen_1._)`${func}(${args})`;
-    }
-    exports.callValidateCode = callValidateCode;
-    var newRegExp = (0, codegen_1._)`new RegExp`;
-    function usePattern({ gen, it: { opts } }, pattern) {
-      const u = opts.unicodeRegExp ? "u" : "";
-      const { regExp } = opts.code;
-      const rx = regExp(pattern, u);
-      return gen.scopeValue("pattern", {
-        key: rx.toString(),
-        ref: rx,
-        code: (0, codegen_1._)`${regExp.code === "new RegExp" ? newRegExp : (0, util_2.useFunc)(gen, regExp)}(${pattern}, ${u})`
-      });
-    }
-    exports.usePattern = usePattern;
-    function validateArray(cxt) {
-      const { gen, data, keyword, it } = cxt;
-      const valid = gen.name("valid");
-      if (it.allErrors) {
-        const validArr = gen.let("valid", true);
-        validateItems(() => gen.assign(validArr, false));
-        return validArr;
-      }
-      gen.var(valid, true);
-      validateItems(() => gen.break());
-      return valid;
-      function validateItems(notValid) {
-        const len = gen.const("len", (0, codegen_1._)`${data}.length`);
-        gen.forRange("i", 0, len, (i) => {
-          cxt.subschema({
-            keyword,
-            dataProp: i,
-            dataPropType: util_1.Type.Num
-          }, valid);
-          gen.if((0, codegen_1.not)(valid), notValid);
-        });
-      }
-    }
-    exports.validateArray = validateArray;
-    function validateUnion(cxt) {
-      const { gen, schema, keyword, it } = cxt;
-      if (!Array.isArray(schema))
-        throw new Error("ajv implementation error");
-      const alwaysValid = schema.some((sch) => (0, util_1.alwaysValidSchema)(it, sch));
-      if (alwaysValid && !it.opts.unevaluated)
-        return;
-      const valid = gen.let("valid", false);
-      const schValid = gen.name("_valid");
-      gen.block(() => schema.forEach((_sch, i) => {
-        const schCxt = cxt.subschema({
-          keyword,
-          schemaProp: i,
-          compositeRule: true
-        }, schValid);
-        gen.assign(valid, (0, codegen_1._)`${valid} || ${schValid}`);
-        const merged = cxt.mergeValidEvaluated(schCxt, schValid);
-        if (!merged)
-          gen.if((0, codegen_1.not)(valid));
-      }));
-      cxt.result(valid, () => cxt.reset(), () => cxt.error(true));
-    }
-    exports.validateUnion = validateUnion;
-  }
-});
-
-// ../../node_modules/ajv/dist/compile/validate/keyword.js
-var require_keyword = __commonJS({
-  "../../node_modules/ajv/dist/compile/validate/keyword.js"(exports) {
-    "use strict";
-    Object.defineProperty(exports, "__esModule", { value: true });
-    exports.validateKeywordUsage = exports.validSchemaType = exports.funcKeywordCode = exports.macroKeywordCode = void 0;
-    var codegen_1 = require_codegen();
-    var names_1 = require_names();
-    var code_1 = require_code2();
-    var errors_1 = require_errors();
-    function macroKeywordCode(cxt, def) {
-      const { gen, keyword, schema, parentSchema, it } = cxt;
-      const macroSchema = def.macro.call(it.self, schema, parentSchema, it);
-      const schemaRef = useKeyword(gen, keyword, macroSchema);
-      if (it.opts.validateSchema !== false)
-        it.self.validateSchema(macroSchema, true);
-      const valid = gen.name("valid");
-      cxt.subschema({
-        schema: macroSchema,
-        schemaPath: codegen_1.nil,
-        errSchemaPath: `${it.errSchemaPath}/${keyword}`,
-        topSchemaRef: schemaRef,
-        compositeRule: true
-      }, valid);
-      cxt.pass(valid, () => cxt.error(true));
-    }
-    exports.macroKeywordCode = macroKeywordCode;
-    function funcKeywordCode(cxt, def) {
-      var _a;
-      const { gen, keyword, schema, parentSchema, $data, it } = cxt;
-      checkAsyncKeyword(it, def);
-      const validate = !$data && def.compile ? def.compile.call(it.self, schema, parentSchema, it) : def.validate;
-      const validateRef = useKeyword(gen, keyword, validate);
-      const valid = gen.let("valid");
-      cxt.block$data(valid, validateKeyword);
-      cxt.ok((_a = def.valid) !== null && _a !== void 0 ? _a : valid);
-      function validateKeyword() {
-        if (def.errors === false) {
-          assignValid();
-          if (def.modifying)
-            modifyData(cxt);
-          reportErrs(() => cxt.error());
-        } else {
-          const ruleErrs = def.async ? validateAsync() : validateSync();
-          if (def.modifying)
-            modifyData(cxt);
-          reportErrs(() => addErrs(cxt, ruleErrs));
-        }
-      }
-      function validateAsync() {
-        const ruleErrs = gen.let("ruleErrs", null);
-        gen.try(() => assignValid((0, codegen_1._)`await `), (e) => gen.assign(valid, false).if((0, codegen_1._)`${e} instanceof ${it.ValidationError}`, () => gen.assign(ruleErrs, (0, codegen_1._)`${e}.errors`), () => gen.throw(e)));
-        return ruleErrs;
-      }
-      function validateSync() {
-        const validateErrs = (0, codegen_1._)`${validateRef}.errors`;
-        gen.assign(validateErrs, null);
-        assignValid(codegen_1.nil);
-        return validateErrs;
-      }
-      function assignValid(_await = def.async ? (0, codegen_1._)`await ` : codegen_1.nil) {
-        const passCxt = it.opts.passContext ? names_1.default.this : names_1.default.self;
-        const passSchema = !("compile" in def && !$data || def.schema === false);
-        gen.assign(valid, (0, codegen_1._)`${_await}${(0, code_1.callValidateCode)(cxt, validateRef, passCxt, passSchema)}`, def.modifying);
-      }
-      function reportErrs(errors) {
-        var _a2;
-        gen.if((0, codegen_1.not)((_a2 = def.valid) !== null && _a2 !== void 0 ? _a2 : valid), errors);
-      }
-    }
-    exports.funcKeywordCode = funcKeywordCode;
-    function modifyData(cxt) {
-      const { gen, data, it } = cxt;
-      gen.if(it.parentData, () => gen.assign(data, (0, codegen_1._)`${it.parentData}[${it.parentDataProperty}]`));
-    }
-    function addErrs(cxt, errs) {
-      const { gen } = cxt;
-      gen.if((0, codegen_1._)`Array.isArray(${errs})`, () => {
-        gen.assign(names_1.default.vErrors, (0, codegen_1._)`${names_1.default.vErrors} === null ? ${errs} : ${names_1.default.vErrors}.concat(${errs})`).assign(names_1.default.errors, (0, codegen_1._)`${names_1.default.vErrors}.length`);
-        (0, errors_1.extendErrors)(cxt);
-      }, () => cxt.error());
-    }
-    function checkAsyncKeyword({ schemaEnv }, def) {
-      if (def.async && !schemaEnv.$async)
-        throw new Error("async keyword in sync schema");
-    }
-    function useKeyword(gen, keyword, result) {
-      if (result === void 0)
-        throw new Error(`keyword "${keyword}" failed to compile`);
-      return gen.scopeValue("keyword", typeof result == "function" ? { ref: result } : { ref: result, code: (0, codegen_1.stringify)(result) });
-    }
-    function validSchemaType(schema, schemaType, allowUndefined = false) {
-      return !schemaType.length || schemaType.some((st) => st === "array" ? Array.isArray(schema) : st === "object" ? schema && typeof schema == "object" && !Array.isArray(schema) : typeof schema == st || allowUndefined && typeof schema == "undefined");
-    }
-    exports.validSchemaType = validSchemaType;
-    function validateKeywordUsage({ schema, opts, self, errSchemaPath }, def, keyword) {
-      if (Array.isArray(def.keyword) ? !def.keyword.includes(keyword) : def.keyword !== keyword) {
-        throw new Error("ajv implementation error");
-      }
-      const deps = def.dependencies;
-      if (deps === null || deps === void 0 ? void 0 : deps.some((kwd) => !Object.prototype.hasOwnProperty.call(schema, kwd))) {
-        throw new Error(`parent schema must have dependencies of ${keyword}: ${deps.join(",")}`);
-      }
-      if (def.validateSchema) {
-        const valid = def.validateSchema(schema[keyword]);
-        if (!valid) {
-          const msg = `keyword "${keyword}" value is invalid at path "${errSchemaPath}": ` + self.errorsText(def.validateSchema.errors);
-          if (opts.validateSchema === "log")
-            self.logger.error(msg);
-          else
-            throw new Error(msg);
-        }
-      }
-    }
-    exports.validateKeywordUsage = validateKeywordUsage;
-  }
-});
-
-// ../../node_modules/ajv/dist/compile/validate/subschema.js
-var require_subschema = __commonJS({
-  "../../node_modules/ajv/dist/compile/validate/subschema.js"(exports) {
-    "use strict";
-    Object.defineProperty(exports, "__esModule", { value: true });
-    exports.extendSubschemaMode = exports.extendSubschemaData = exports.getSubschema = void 0;
-    var codegen_1 = require_codegen();
-    var util_1 = require_util();
-    function getSubschema(it, { keyword, schemaProp, schema, schemaPath, errSchemaPath, topSchemaRef }) {
-      if (keyword !== void 0 && schema !== void 0) {
-        throw new Error('both "keyword" and "schema" passed, only one allowed');
-      }
-      if (keyword !== void 0) {
-        const sch = it.schema[keyword];
-        return schemaProp === void 0 ? {
-          schema: sch,
-          schemaPath: (0, codegen_1._)`${it.schemaPath}${(0, codegen_1.getProperty)(keyword)}`,
-          errSchemaPath: `${it.errSchemaPath}/${keyword}`
-        } : {
-          schema: sch[schemaProp],
-          schemaPath: (0, codegen_1._)`${it.schemaPath}${(0, codegen_1.getProperty)(keyword)}${(0, codegen_1.getProperty)(schemaProp)}`,
-          errSchemaPath: `${it.errSchemaPath}/${keyword}/${(0, util_1.escapeFragment)(schemaProp)}`
-        };
-      }
-      if (schema !== void 0) {
-        if (schemaPath === void 0 || errSchemaPath === void 0 || topSchemaRef === void 0) {
-          throw new Error('"schemaPath", "errSchemaPath" and "topSchemaRef" are required with "schema"');
-        }
-        return {
-          schema,
-          schemaPath,
-          topSchemaRef,
-          errSchemaPath
-        };
-      }
-      throw new Error('either "keyword" or "schema" must be passed');
-    }
-    exports.getSubschema = getSubschema;
-    function extendSubschemaData(subschema, it, { dataProp, dataPropType: dpType, data, dataTypes, propertyName }) {
-      if (data !== void 0 && dataProp !== void 0) {
-        throw new Error('both "data" and "dataProp" passed, only one allowed');
-      }
-      const { gen } = it;
-      if (dataProp !== void 0) {
-        const { errorPath, dataPathArr, opts } = it;
-        const nextData = gen.let("data", (0, codegen_1._)`${it.data}${(0, codegen_1.getProperty)(dataProp)}`, true);
-        dataContextProps(nextData);
-        subschema.errorPath = (0, codegen_1.str)`${errorPath}${(0, util_1.getErrorPath)(dataProp, dpType, opts.jsPropertySyntax)}`;
-        subschema.parentDataProperty = (0, codegen_1._)`${dataProp}`;
-        subschema.dataPathArr = [...dataPathArr, subschema.parentDataProperty];
-      }
-      if (data !== void 0) {
-        const nextData = data instanceof codegen_1.Name ? data : gen.let("data", data, true);
-        dataContextProps(nextData);
-        if (propertyName !== void 0)
-          subschema.propertyName = propertyName;
-      }
-      if (dataTypes)
-        subschema.dataTypes = dataTypes;
-      function dataContextProps(_nextData) {
-        subschema.data = _nextData;
-        subschema.dataLevel = it.dataLevel + 1;
-        subschema.dataTypes = [];
-        it.definedProperties = /* @__PURE__ */ new Set();
-        subschema.parentData = it.data;
-        subschema.dataNames = [...it.dataNames, _nextData];
-      }
-    }
-    exports.extendSubschemaData = extendSubschemaData;
-    function extendSubschemaMode(subschema, { jtdDiscriminator, jtdMetadata, compositeRule, createErrors, allErrors }) {
-      if (compositeRule !== void 0)
-        subschema.compositeRule = compositeRule;
-      if (createErrors !== void 0)
-        subschema.createErrors = createErrors;
-      if (allErrors !== void 0)
-        subschema.allErrors = allErrors;
-      subschema.jtdDiscriminator = jtdDiscriminator;
-      subschema.jtdMetadata = jtdMetadata;
-    }
-    exports.extendSubschemaMode = extendSubschemaMode;
-  }
-});
-
-// ../../node_modules/fast-deep-equal/index.js
-var require_fast_deep_equal = __commonJS({
-  "../../node_modules/fast-deep-equal/index.js"(exports, module2) {
-    "use strict";
-    module2.exports = function equal(a, b) {
-      if (a === b)
-        return true;
-      if (a && b && typeof a == "object" && typeof b == "object") {
-        if (a.constructor !== b.constructor)
-          return false;
-        var length, i, keys;
-        if (Array.isArray(a)) {
-          length = a.length;
-          if (length != b.length)
-            return false;
-          for (i = length; i-- !== 0; )
-            if (!equal(a[i], b[i]))
-              return false;
-          return true;
-        }
-        if (a.constructor === RegExp)
-          return a.source === b.source && a.flags === b.flags;
-        if (a.valueOf !== Object.prototype.valueOf)
-          return a.valueOf() === b.valueOf();
-        if (a.toString !== Object.prototype.toString)
-          return a.toString() === b.toString();
-        keys = Object.keys(a);
-        length = keys.length;
-        if (length !== Object.keys(b).length)
-          return false;
-        for (i = length; i-- !== 0; )
-          if (!Object.prototype.hasOwnProperty.call(b, keys[i]))
-            return false;
-        for (i = length; i-- !== 0; ) {
-          var key = keys[i];
-          if (!equal(a[key], b[key]))
-            return false;
-        }
-        return true;
-      }
-      return a !== a && b !== b;
-    };
-  }
-});
-
-// ../../node_modules/json-schema-traverse/index.js
-var require_json_schema_traverse = __commonJS({
-  "../../node_modules/json-schema-traverse/index.js"(exports, module2) {
-    "use strict";
-    var traverse = module2.exports = function(schema, opts, cb) {
-      if (typeof opts == "function") {
-        cb = opts;
-        opts = {};
-      }
-      cb = opts.cb || cb;
-      var pre = typeof cb == "function" ? cb : cb.pre || function() {
-      };
-      var post = cb.post || function() {
-      };
-      _traverse(opts, pre, post, schema, "", schema);
-    };
-    traverse.keywords = {
-      additionalItems: true,
-      items: true,
-      contains: true,
-      additionalProperties: true,
-      propertyNames: true,
-      not: true,
-      if: true,
-      then: true,
-      else: true
-    };
-    traverse.arrayKeywords = {
-      items: true,
-      allOf: true,
-      anyOf: true,
-      oneOf: true
-    };
-    traverse.propsKeywords = {
-      $defs: true,
-      definitions: true,
-      properties: true,
-      patternProperties: true,
-      dependencies: true
-    };
-    traverse.skipKeywords = {
-      default: true,
-      enum: true,
-      const: true,
-      required: true,
-      maximum: true,
-      minimum: true,
-      exclusiveMaximum: true,
-      exclusiveMinimum: true,
-      multipleOf: true,
-      maxLength: true,
-      minLength: true,
-      pattern: true,
-      format: true,
-      maxItems: true,
-      minItems: true,
-      uniqueItems: true,
-      maxProperties: true,
-      minProperties: true
-    };
-    function _traverse(opts, pre, post, schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex) {
-      if (schema && typeof schema == "object" && !Array.isArray(schema)) {
-        pre(schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex);
-        for (var key in schema) {
-          var sch = schema[key];
-          if (Array.isArray(sch)) {
-            if (key in traverse.arrayKeywords) {
-              for (var i = 0; i < sch.length; i++)
-                _traverse(opts, pre, post, sch[i], jsonPtr + "/" + key + "/" + i, rootSchema, jsonPtr, key, schema, i);
-            }
-          } else if (key in traverse.propsKeywords) {
-            if (sch && typeof sch == "object") {
-              for (var prop in sch)
-                _traverse(opts, pre, post, sch[prop], jsonPtr + "/" + key + "/" + escapeJsonPtr(prop), rootSchema, jsonPtr, key, schema, prop);
-            }
-          } else if (key in traverse.keywords || opts.allKeys && !(key in traverse.skipKeywords)) {
-            _traverse(opts, pre, post, sch, jsonPtr + "/" + key, rootSchema, jsonPtr, key, schema);
-          }
-        }
-        post(schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex);
-      }
-    }
-    function escapeJsonPtr(str) {
-      return str.replace(/~/g, "~0").replace(/\//g, "~1");
-    }
-  }
-});
-
-// ../../node_modules/ajv/dist/compile/resolve.js
-var require_resolve = __commonJS({
-  "../../node_modules/ajv/dist/compile/resolve.js"(exports) {
-    "use strict";
-    Object.defineProperty(exports, "__esModule", { value: true });
-    exports.getSchemaRefs = exports.resolveUrl = exports.normalizeId = exports._getFullPath = exports.getFullPath = exports.inlineRef = void 0;
-    var util_1 = require_util();
-    var equal = require_fast_deep_equal();
-    var traverse = require_json_schema_traverse();
-    var SIMPLE_INLINED = /* @__PURE__ */ new Set([
-      "type",
-      "format",
-      "pattern",
-      "maxLength",
-      "minLength",
-      "maxProperties",
-      "minProperties",
-      "maxItems",
-      "minItems",
-      "maximum",
-      "minimum",
-      "uniqueItems",
-      "multipleOf",
-      "required",
-      "enum",
-      "const"
-    ]);
-    function inlineRef(schema, limit = true) {
-      if (typeof schema == "boolean")
-        return true;
-      if (limit === true)
-        return !hasRef(schema);
-      if (!limit)
-        return false;
-      return countKeys(schema) <= limit;
-    }
-    exports.inlineRef = inlineRef;
-    var REF_KEYWORDS = /* @__PURE__ */ new Set([
-      "$ref",
-      "$recursiveRef",
-      "$recursiveAnchor",
-      "$dynamicRef",
-      "$dynamicAnchor"
-    ]);
-    function hasRef(schema) {
-      for (const key in schema) {
-        if (REF_KEYWORDS.has(key))
-          return true;
-        const sch = schema[key];
-        if (Array.isArray(sch) && sch.some(hasRef))
-          return true;
-        if (typeof sch == "object" && hasRef(sch))
-          return true;
-      }
-      return false;
-    }
-    function countKeys(schema) {
-      let count = 0;
-      for (const key in schema) {
-        if (key === "$ref")
-          return Infinity;
-        count++;
-        if (SIMPLE_INLINED.has(key))
-          continue;
-        if (typeof schema[key] == "object") {
-          (0, util_1.eachItem)(schema[key], (sch) => count += countKeys(sch));
-        }
-        if (count === Infinity)
-          return Infinity;
-      }
-      return count;
-    }
-    function getFullPath(resolver, id = "", normalize) {
-      if (normalize !== false)
-        id = normalizeId(id);
-      const p = resolver.parse(id);
-      return _getFullPath(resolver, p);
-    }
-    exports.getFullPath = getFullPath;
-    function _getFullPath(resolver, p) {
-      const serialized = resolver.serialize(p);
-      return serialized.split("#")[0] + "#";
-    }
-    exports._getFullPath = _getFullPath;
-    var TRAILING_SLASH_HASH = /#\/?$/;
-    function normalizeId(id) {
-      return id ? id.replace(TRAILING_SLASH_HASH, "") : "";
-    }
-    exports.normalizeId = normalizeId;
-    function resolveUrl(resolver, baseId, id) {
-      id = normalizeId(id);
-      return resolver.resolve(baseId, id);
-    }
-    exports.resolveUrl = resolveUrl;
-    var ANCHOR = /^[a-z_][-a-z0-9._]*$/i;
-    function getSchemaRefs(schema, baseId) {
-      if (typeof schema == "boolean")
-        return {};
-      const { schemaId, uriResolver } = this.opts;
-      const schId = normalizeId(schema[schemaId] || baseId);
-      const baseIds = { "": schId };
-      const pathPrefix = getFullPath(uriResolver, schId, false);
-      const localRefs = {};
-      const schemaRefs = /* @__PURE__ */ new Set();
-      traverse(schema, { allKeys: true }, (sch, jsonPtr, _, parentJsonPtr) => {
-        if (parentJsonPtr === void 0)
-          return;
-        const fullPath = pathPrefix + jsonPtr;
-        let baseId2 = baseIds[parentJsonPtr];
-        if (typeof sch[schemaId] == "string")
-          baseId2 = addRef.call(this, sch[schemaId]);
-        addAnchor.call(this, sch.$anchor);
-        addAnchor.call(this, sch.$dynamicAnchor);
-        baseIds[jsonPtr] = baseId2;
-        function addRef(ref) {
-          const _resolve = this.opts.uriResolver.resolve;
-          ref = normalizeId(baseId2 ? _resolve(baseId2, ref) : ref);
-          if (schemaRefs.has(ref))
-            throw ambiguos(ref);
-          schemaRefs.add(ref);
-          let schOrRef = this.refs[ref];
-          if (typeof schOrRef == "string")
-            schOrRef = this.refs[schOrRef];
-          if (typeof schOrRef == "object") {
-            checkAmbiguosRef(sch, schOrRef.schema, ref);
-          } else if (ref !== normalizeId(fullPath)) {
-            if (ref[0] === "#") {
-              checkAmbiguosRef(sch, localRefs[ref], ref);
-              localRefs[ref] = sch;
-            } else {
-              this.refs[ref] = fullPath;
-            }
-          }
-          return ref;
-        }
-        function addAnchor(anchor) {
-          if (typeof anchor == "string") {
-            if (!ANCHOR.test(anchor))
-              throw new Error(`invalid anchor "${anchor}"`);
-            addRef.call(this, `#${anchor}`);
-          }
-        }
-      });
-      return localRefs;
-      function checkAmbiguosRef(sch1, sch2, ref) {
-        if (sch2 !== void 0 && !equal(sch1, sch2))
-          throw ambiguos(ref);
-      }
-      function ambiguos(ref) {
-        return new Error(`reference "${ref}" resolves to more than one schema`);
-      }
-    }
-    exports.getSchemaRefs = getSchemaRefs;
-  }
-});
-
-// ../../node_modules/ajv/dist/compile/validate/index.js
-var require_validate = __commonJS({
-  "../../node_modules/ajv/dist/compile/validate/index.js"(exports) {
-    "use strict";
-    Object.defineProperty(exports, "__esModule", { value: true });
-    exports.getData = exports.KeywordCxt = exports.validateFunctionCode = void 0;
-    var boolSchema_1 = require_boolSchema();
-    var dataType_1 = require_dataType();
-    var applicability_1 = require_applicability();
-    var dataType_2 = require_dataType();
-    var defaults_1 = require_defaults();
-    var keyword_1 = require_keyword();
-    var subschema_1 = require_subschema();
-    var codegen_1 = require_codegen();
-    var names_1 = require_names();
-    var resolve_1 = require_resolve();
-    var util_1 = require_util();
-    var errors_1 = require_errors();
-    function validateFunctionCode(it) {
-      if (isSchemaObj(it)) {
-        checkKeywords(it);
-        if (schemaCxtHasRules(it)) {
-          topSchemaObjCode(it);
-          return;
-        }
-      }
-      validateFunction(it, () => (0, boolSchema_1.topBoolOrEmptySchema)(it));
-    }
-    exports.validateFunctionCode = validateFunctionCode;
-    function validateFunction({ gen, validateName, schema, schemaEnv, opts }, body) {
-      if (opts.code.es5) {
-        gen.func(validateName, (0, codegen_1._)`${names_1.default.data}, ${names_1.default.valCxt}`, schemaEnv.$async, () => {
-          gen.code((0, codegen_1._)`"use strict"; ${funcSourceUrl(schema, opts)}`);
-          destructureValCxtES5(gen, opts);
-          gen.code(body);
-        });
-      } else {
-        gen.func(validateName, (0, codegen_1._)`${names_1.default.data}, ${destructureValCxt(opts)}`, schemaEnv.$async, () => gen.code(funcSourceUrl(schema, opts)).code(body));
-      }
-    }
-    function destructureValCxt(opts) {
-      return (0, codegen_1._)`{${names_1.default.instancePath}="", ${names_1.default.parentData}, ${names_1.default.parentDataProperty}, ${names_1.default.rootData}=${names_1.default.data}${opts.dynamicRef ? (0, codegen_1._)`, ${names_1.default.dynamicAnchors}={}` : codegen_1.nil}}={}`;
-    }
-    function destructureValCxtES5(gen, opts) {
-      gen.if(names_1.default.valCxt, () => {
-        gen.var(names_1.default.instancePath, (0, codegen_1._)`${names_1.default.valCxt}.${names_1.default.instancePath}`);
-        gen.var(names_1.default.parentData, (0, codegen_1._)`${names_1.default.valCxt}.${names_1.default.parentData}`);
-        gen.var(names_1.default.parentDataProperty, (0, codegen_1._)`${names_1.default.valCxt}.${names_1.default.parentDataProperty}`);
-        gen.var(names_1.default.rootData, (0, codegen_1._)`${names_1.default.valCxt}.${names_1.default.rootData}`);
-        if (opts.dynamicRef)
-          gen.var(names_1.default.dynamicAnchors, (0, codegen_1._)`${names_1.default.valCxt}.${names_1.default.dynamicAnchors}`);
-      }, () => {
-        gen.var(names_1.default.instancePath, (0, codegen_1._)`""`);
-        gen.var(names_1.default.parentData, (0, codegen_1._)`undefined`);
-        gen.var(names_1.default.parentDataProperty, (0, codegen_1._)`undefined`);
-        gen.var(names_1.default.rootData, names_1.default.data);
-        if (opts.dynamicRef)
-          gen.var(names_1.default.dynamicAnchors, (0, codegen_1._)`{}`);
-      });
-    }
-    function topSchemaObjCode(it) {
-      const { schema, opts, gen } = it;
-      validateFunction(it, () => {
-        if (opts.$comment && schema.$comment)
-          commentKeyword(it);
-        checkNoDefault(it);
-        gen.let(names_1.default.vErrors, null);
-        gen.let(names_1.default.errors, 0);
-        if (opts.unevaluated)
-          resetEvaluated(it);
-        typeAndKeywords(it);
-        returnResults(it);
-      });
-      return;
-    }
-    function resetEvaluated(it) {
-      const { gen, validateName } = it;
-      it.evaluated = gen.const("evaluated", (0, codegen_1._)`${validateName}.evaluated`);
-      gen.if((0, codegen_1._)`${it.evaluated}.dynamicProps`, () => gen.assign((0, codegen_1._)`${it.evaluated}.props`, (0, codegen_1._)`undefined`));
-      gen.if((0, codegen_1._)`${it.evaluated}.dynamicItems`, () => gen.assign((0, codegen_1._)`${it.evaluated}.items`, (0, codegen_1._)`undefined`));
-    }
-    function funcSourceUrl(schema, opts) {
-      const schId = typeof schema == "object" && schema[opts.schemaId];
-      return schId && (opts.code.source || opts.code.process) ? (0, codegen_1._)`/*# sourceURL=${schId} */` : codegen_1.nil;
-    }
-    function subschemaCode(it, valid) {
-      if (isSchemaObj(it)) {
-        checkKeywords(it);
-        if (schemaCxtHasRules(it)) {
-          subSchemaObjCode(it, valid);
-          return;
-        }
-      }
-      (0, boolSchema_1.boolOrEmptySchema)(it, valid);
-    }
-    function schemaCxtHasRules({ schema, self }) {
-      if (typeof schema == "boolean")
-        return !schema;
-      for (const key in schema)
-        if (self.RULES.all[key])
-          return true;
-      return false;
-    }
-    function isSchemaObj(it) {
-      return typeof it.schema != "boolean";
-    }
-    function subSchemaObjCode(it, valid) {
-      const { schema, gen, opts } = it;
-      if (opts.$comment && schema.$comment)
-        commentKeyword(it);
-      updateContext(it);
-      checkAsyncSchema(it);
-      const errsCount = gen.const("_errs", names_1.default.errors);
-      typeAndKeywords(it, errsCount);
-      gen.var(valid, (0, codegen_1._)`${errsCount} === ${names_1.default.errors}`);
-    }
-    function checkKeywords(it) {
-      (0, util_1.checkUnknownRules)(it);
-      checkRefsAndKeywords(it);
-    }
-    function typeAndKeywords(it, errsCount) {
-      if (it.opts.jtd)
-        return schemaKeywords(it, [], false, errsCount);
-      const types = (0, dataType_1.getSchemaTypes)(it.schema);
-      const checkedTypes = (0, dataType_1.coerceAndCheckDataType)(it, types);
-      schemaKeywords(it, types, !checkedTypes, errsCount);
-    }
-    function checkRefsAndKeywords(it) {
-      const { schema, errSchemaPath, opts, self } = it;
-      if (schema.$ref && opts.ignoreKeywordsWithRef && (0, util_1.schemaHasRulesButRef)(schema, self.RULES)) {
-        self.logger.warn(`$ref: keywords ignored in schema at path "${errSchemaPath}"`);
-      }
-    }
-    function checkNoDefault(it) {
-      const { schema, opts } = it;
-      if (schema.default !== void 0 && opts.useDefaults && opts.strictSchema) {
-        (0, util_1.checkStrictMode)(it, "default is ignored in the schema root");
-      }
-    }
-    function updateContext(it) {
-      const schId = it.schema[it.opts.schemaId];
-      if (schId)
-        it.baseId = (0, resolve_1.resolveUrl)(it.opts.uriResolver, it.baseId, schId);
-    }
-    function checkAsyncSchema(it) {
-      if (it.schema.$async && !it.schemaEnv.$async)
-        throw new Error("async schema in sync schema");
-    }
-    function commentKeyword({ gen, schemaEnv, schema, errSchemaPath, opts }) {
-      const msg = schema.$comment;
-      if (opts.$comment === true) {
-        gen.code((0, codegen_1._)`${names_1.default.self}.logger.log(${msg})`);
-      } else if (typeof opts.$comment == "function") {
-        const schemaPath = (0, codegen_1.str)`${errSchemaPath}/$comment`;
-        const rootName = gen.scopeValue("root", { ref: schemaEnv.root });
-        gen.code((0, codegen_1._)`${names_1.default.self}.opts.$comment(${msg}, ${schemaPath}, ${rootName}.schema)`);
-      }
-    }
-    function returnResults(it) {
-      const { gen, schemaEnv, validateName, ValidationError: ValidationError2, opts } = it;
-      if (schemaEnv.$async) {
-        gen.if((0, codegen_1._)`${names_1.default.errors} === 0`, () => gen.return(names_1.default.data), () => gen.throw((0, codegen_1._)`new ${ValidationError2}(${names_1.default.vErrors})`));
-      } else {
-        gen.assign((0, codegen_1._)`${validateName}.errors`, names_1.default.vErrors);
-        if (opts.unevaluated)
-          assignEvaluated(it);
-        gen.return((0, codegen_1._)`${names_1.default.errors} === 0`);
-      }
-    }
-    function assignEvaluated({ gen, evaluated, props, items }) {
-      if (props instanceof codegen_1.Name)
-        gen.assign((0, codegen_1._)`${evaluated}.props`, props);
-      if (items instanceof codegen_1.Name)
-        gen.assign((0, codegen_1._)`${evaluated}.items`, items);
-    }
-    function schemaKeywords(it, types, typeErrors, errsCount) {
-      const { gen, schema, data, allErrors, opts, self } = it;
-      const { RULES } = self;
-      if (schema.$ref && (opts.ignoreKeywordsWithRef || !(0, util_1.schemaHasRulesButRef)(schema, RULES))) {
-        gen.block(() => keywordCode(it, "$ref", RULES.all.$ref.definition));
-        return;
-      }
-      if (!opts.jtd)
-        checkStrictTypes(it, types);
-      gen.block(() => {
-        for (const group of RULES.rules)
-          groupKeywords(group);
-        groupKeywords(RULES.post);
-      });
-      function groupKeywords(group) {
-        if (!(0, applicability_1.shouldUseGroup)(schema, group))
-          return;
-        if (group.type) {
-          gen.if((0, dataType_2.checkDataType)(group.type, data, opts.strictNumbers));
-          iterateKeywords(it, group);
-          if (types.length === 1 && types[0] === group.type && typeErrors) {
-            gen.else();
-            (0, dataType_2.reportTypeError)(it);
-          }
-          gen.endIf();
-        } else {
-          iterateKeywords(it, group);
-        }
-        if (!allErrors)
-          gen.if((0, codegen_1._)`${names_1.default.errors} === ${errsCount || 0}`);
-      }
-    }
-    function iterateKeywords(it, group) {
-      const { gen, schema, opts: { useDefaults } } = it;
-      if (useDefaults)
-        (0, defaults_1.assignDefaults)(it, group.type);
-      gen.block(() => {
-        for (const rule of group.rules) {
-          if ((0, applicability_1.shouldUseRule)(schema, rule)) {
-            keywordCode(it, rule.keyword, rule.definition, group.type);
-          }
-        }
-      });
-    }
-    function checkStrictTypes(it, types) {
-      if (it.schemaEnv.meta || !it.opts.strictTypes)
-        return;
-      checkContextTypes(it, types);
-      if (!it.opts.allowUnionTypes)
-        checkMultipleTypes(it, types);
-      checkKeywordTypes(it, it.dataTypes);
-    }
-    function checkContextTypes(it, types) {
-      if (!types.length)
-        return;
-      if (!it.dataTypes.length) {
-        it.dataTypes = types;
-        return;
-      }
-      types.forEach((t) => {
-        if (!includesType(it.dataTypes, t)) {
-          strictTypesError(it, `type "${t}" not allowed by context "${it.dataTypes.join(",")}"`);
-        }
-      });
-      it.dataTypes = it.dataTypes.filter((t) => includesType(types, t));
-    }
-    function checkMultipleTypes(it, ts) {
-      if (ts.length > 1 && !(ts.length === 2 && ts.includes("null"))) {
-        strictTypesError(it, "use allowUnionTypes to allow union type keyword");
-      }
-    }
-    function checkKeywordTypes(it, ts) {
-      const rules = it.self.RULES.all;
-      for (const keyword in rules) {
-        const rule = rules[keyword];
-        if (typeof rule == "object" && (0, applicability_1.shouldUseRule)(it.schema, rule)) {
-          const { type } = rule.definition;
-          if (type.length && !type.some((t) => hasApplicableType(ts, t))) {
-            strictTypesError(it, `missing type "${type.join(",")}" for keyword "${keyword}"`);
-          }
-        }
-      }
-    }
-    function hasApplicableType(schTs, kwdT) {
-      return schTs.includes(kwdT) || kwdT === "number" && schTs.includes("integer");
-    }
-    function includesType(ts, t) {
-      return ts.includes(t) || t === "integer" && ts.includes("number");
-    }
-    function strictTypesError(it, msg) {
-      const schemaPath = it.schemaEnv.baseId + it.errSchemaPath;
-      msg += ` at "${schemaPath}" (strictTypes)`;
-      (0, util_1.checkStrictMode)(it, msg, it.opts.strictTypes);
-    }
-    var KeywordCxt = class {
-      constructor(it, def, keyword) {
-        (0, keyword_1.validateKeywordUsage)(it, def, keyword);
-        this.gen = it.gen;
-        this.allErrors = it.allErrors;
-        this.keyword = keyword;
-        this.data = it.data;
-        this.schema = it.schema[keyword];
-        this.$data = def.$data && it.opts.$data && this.schema && this.schema.$data;
-        this.schemaValue = (0, util_1.schemaRefOrVal)(it, this.schema, keyword, this.$data);
-        this.schemaType = def.schemaType;
-        this.parentSchema = it.schema;
-        this.params = {};
-        this.it = it;
-        this.def = def;
-        if (this.$data) {
-          this.schemaCode = it.gen.const("vSchema", getData(this.$data, it));
-        } else {
-          this.schemaCode = this.schemaValue;
-          if (!(0, keyword_1.validSchemaType)(this.schema, def.schemaType, def.allowUndefined)) {
-            throw new Error(`${keyword} value must be ${JSON.stringify(def.schemaType)}`);
-          }
-        }
-        if ("code" in def ? def.trackErrors : def.errors !== false) {
-          this.errsCount = it.gen.const("_errs", names_1.default.errors);
-        }
-      }
-      result(condition, successAction, failAction) {
-        this.failResult((0, codegen_1.not)(condition), successAction, failAction);
-      }
-      failResult(condition, successAction, failAction) {
-        this.gen.if(condition);
-        if (failAction)
-          failAction();
-        else
-          this.error();
-        if (successAction) {
-          this.gen.else();
-          successAction();
-          if (this.allErrors)
-            this.gen.endIf();
-        } else {
-          if (this.allErrors)
-            this.gen.endIf();
-          else
-            this.gen.else();
-        }
-      }
-      pass(condition, failAction) {
-        this.failResult((0, codegen_1.not)(condition), void 0, failAction);
-      }
-      fail(condition) {
-        if (condition === void 0) {
-          this.error();
-          if (!this.allErrors)
-            this.gen.if(false);
-          return;
-        }
-        this.gen.if(condition);
-        this.error();
-        if (this.allErrors)
-          this.gen.endIf();
-        else
-          this.gen.else();
-      }
-      fail$data(condition) {
-        if (!this.$data)
-          return this.fail(condition);
-        const { schemaCode } = this;
-        this.fail((0, codegen_1._)`${schemaCode} !== undefined && (${(0, codegen_1.or)(this.invalid$data(), condition)})`);
-      }
-      error(append, errorParams, errorPaths) {
-        if (errorParams) {
-          this.setParams(errorParams);
-          this._error(append, errorPaths);
-          this.setParams({});
-          return;
-        }
-        this._error(append, errorPaths);
-      }
-      _error(append, errorPaths) {
-        ;
-        (append ? errors_1.reportExtraError : errors_1.reportError)(this, this.def.error, errorPaths);
-      }
-      $dataError() {
-        (0, errors_1.reportError)(this, this.def.$dataError || errors_1.keyword$DataError);
-      }
-      reset() {
-        if (this.errsCount === void 0)
-          throw new Error('add "trackErrors" to keyword definition');
-        (0, errors_1.resetErrorsCount)(this.gen, this.errsCount);
-      }
-      ok(cond) {
-        if (!this.allErrors)
-          this.gen.if(cond);
-      }
-      setParams(obj, assign) {
-        if (assign)
-          Object.assign(this.params, obj);
-        else
-          this.params = obj;
-      }
-      block$data(valid, codeBlock, $dataValid = codegen_1.nil) {
-        this.gen.block(() => {
-          this.check$data(valid, $dataValid);
-          codeBlock();
-        });
-      }
-      check$data(valid = codegen_1.nil, $dataValid = codegen_1.nil) {
-        if (!this.$data)
-          return;
-        const { gen, schemaCode, schemaType, def } = this;
-        gen.if((0, codegen_1.or)((0, codegen_1._)`${schemaCode} === undefined`, $dataValid));
-        if (valid !== codegen_1.nil)
-          gen.assign(valid, true);
-        if (schemaType.length || def.validateSchema) {
-          gen.elseIf(this.invalid$data());
-          this.$dataError();
-          if (valid !== codegen_1.nil)
-            gen.assign(valid, false);
-        }
-        gen.else();
-      }
-      invalid$data() {
-        const { gen, schemaCode, schemaType, def, it } = this;
-        return (0, codegen_1.or)(wrong$DataType(), invalid$DataSchema());
-        function wrong$DataType() {
-          if (schemaType.length) {
-            if (!(schemaCode instanceof codegen_1.Name))
-              throw new Error("ajv implementation error");
-            const st = Array.isArray(schemaType) ? schemaType : [schemaType];
-            return (0, codegen_1._)`${(0, dataType_2.checkDataTypes)(st, schemaCode, it.opts.strictNumbers, dataType_2.DataType.Wrong)}`;
-          }
-          return codegen_1.nil;
-        }
-        function invalid$DataSchema() {
-          if (def.validateSchema) {
-            const validateSchemaRef = gen.scopeValue("validate$data", { ref: def.validateSchema });
-            return (0, codegen_1._)`!${validateSchemaRef}(${schemaCode})`;
-          }
-          return codegen_1.nil;
-        }
-      }
-      subschema(appl, valid) {
-        const subschema = (0, subschema_1.getSubschema)(this.it, appl);
-        (0, subschema_1.extendSubschemaData)(subschema, this.it, appl);
-        (0, subschema_1.extendSubschemaMode)(subschema, appl);
-        const nextContext = { ...this.it, ...subschema, items: void 0, props: void 0 };
-        subschemaCode(nextContext, valid);
-        return nextContext;
-      }
-      mergeEvaluated(schemaCxt, toName) {
-        const { it, gen } = this;
-        if (!it.opts.unevaluated)
-          return;
-        if (it.props !== true && schemaCxt.props !== void 0) {
-          it.props = util_1.mergeEvaluated.props(gen, schemaCxt.props, it.props, toName);
-        }
-        if (it.items !== true && schemaCxt.items !== void 0) {
-          it.items = util_1.mergeEvaluated.items(gen, schemaCxt.items, it.items, toName);
-        }
-      }
-      mergeValidEvaluated(schemaCxt, valid) {
-        const { it, gen } = this;
-        if (it.opts.unevaluated && (it.props !== true || it.items !== true)) {
-          gen.if(valid, () => this.mergeEvaluated(schemaCxt, codegen_1.Name));
-          return true;
-        }
-      }
-    };
-    exports.KeywordCxt = KeywordCxt;
-    function keywordCode(it, keyword, def, ruleType) {
-      const cxt = new KeywordCxt(it, def, keyword);
-      if ("code" in def) {
-        def.code(cxt, ruleType);
-      } else if (cxt.$data && def.validate) {
-        (0, keyword_1.funcKeywordCode)(cxt, def);
-      } else if ("macro" in def) {
-        (0, keyword_1.macroKeywordCode)(cxt, def);
-      } else if (def.compile || def.validate) {
-        (0, keyword_1.funcKeywordCode)(cxt, def);
-      }
-    }
-    var JSON_POINTER = /^\/(?:[^~]|~0|~1)*$/;
-    var RELATIVE_JSON_POINTER = /^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;
-    function getData($data, { dataLevel, dataNames, dataPathArr }) {
-      let jsonPointer;
-      let data;
-      if ($data === "")
-        return names_1.default.rootData;
-      if ($data[0] === "/") {
-        if (!JSON_POINTER.test($data))
-          throw new Error(`Invalid JSON-pointer: ${$data}`);
-        jsonPointer = $data;
-        data = names_1.default.rootData;
-      } else {
-        const matches = RELATIVE_JSON_POINTER.exec($data);
-        if (!matches)
-          throw new Error(`Invalid JSON-pointer: ${$data}`);
-        const up = +matches[1];
-        jsonPointer = matches[2];
-        if (jsonPointer === "#") {
-          if (up >= dataLevel)
-            throw new Error(errorMsg("property/index", up));
-          return dataPathArr[dataLevel - up];
-        }
-        if (up > dataLevel)
-          throw new Error(errorMsg("data", up));
-        data = dataNames[dataLevel - up];
-        if (!jsonPointer)
-          return data;
-      }
-      let expr = data;
-      const segments = jsonPointer.split("/");
-      for (const segment of segments) {
-        if (segment) {
-          data = (0, codegen_1._)`${data}${(0, codegen_1.getProperty)((0, util_1.unescapeJsonPointer)(segment))}`;
-          expr = (0, codegen_1._)`${expr} && ${data}`;
-        }
-      }
-      return expr;
-      function errorMsg(pointerType, up) {
-        return `Cannot access ${pointerType} ${up} levels up, current level is ${dataLevel}`;
-      }
-    }
-    exports.getData = getData;
-  }
-});
-
-// ../../node_modules/ajv/dist/runtime/validation_error.js
-var require_validation_error = __commonJS({
-  "../../node_modules/ajv/dist/runtime/validation_error.js"(exports) {
-    "use strict";
-    Object.defineProperty(exports, "__esModule", { value: true });
-    var ValidationError2 = class extends Error {
-      constructor(errors) {
-        super("validation failed");
-        this.errors = errors;
-        this.ajv = this.validation = true;
-      }
-    };
-    exports.default = ValidationError2;
-  }
-});
-
-// ../../node_modules/ajv/dist/compile/ref_error.js
-var require_ref_error = __commonJS({
-  "../../node_modules/ajv/dist/compile/ref_error.js"(exports) {
-    "use strict";
-    Object.defineProperty(exports, "__esModule", { value: true });
-    var resolve_1 = require_resolve();
-    var MissingRefError = class extends Error {
-      constructor(resolver, baseId, ref, msg) {
-        super(msg || `can't resolve reference ${ref} from id ${baseId}`);
-        this.missingRef = (0, resolve_1.resolveUrl)(resolver, baseId, ref);
-        this.missingSchema = (0, resolve_1.normalizeId)((0, resolve_1.getFullPath)(resolver, this.missingRef));
-      }
-    };
-    exports.default = MissingRefError;
-  }
-});
-
-// ../../node_modules/ajv/dist/compile/index.js
-var require_compile = __commonJS({
-  "../../node_modules/ajv/dist/compile/index.js"(exports) {
-    "use strict";
-    Object.defineProperty(exports, "__esModule", { value: true });
-    exports.resolveSchema = exports.getCompilingSchema = exports.resolveRef = exports.compileSchema = exports.SchemaEnv = void 0;
-    var codegen_1 = require_codegen();
-    var validation_error_1 = require_validation_error();
-    var names_1 = require_names();
-    var resolve_1 = require_resolve();
-    var util_1 = require_util();
-    var validate_1 = require_validate();
-    var SchemaEnv = class {
-      constructor(env) {
-        var _a;
-        this.refs = {};
-        this.dynamicAnchors = {};
-        let schema;
-        if (typeof env.schema == "object")
-          schema = env.schema;
-        this.schema = env.schema;
-        this.schemaId = env.schemaId;
-        this.root = env.root || this;
-        this.baseId = (_a = env.baseId) !== null && _a !== void 0 ? _a : (0, resolve_1.normalizeId)(schema === null || schema === void 0 ? void 0 : schema[env.schemaId || "$id"]);
-        this.schemaPath = env.schemaPath;
-        this.localRefs = env.localRefs;
-        this.meta = env.meta;
-        this.$async = schema === null || schema === void 0 ? void 0 : schema.$async;
-        this.refs = {};
-      }
-    };
-    exports.SchemaEnv = SchemaEnv;
-    function compileSchema(sch) {
-      const _sch = getCompilingSchema.call(this, sch);
-      if (_sch)
-        return _sch;
-      const rootId = (0, resolve_1.getFullPath)(this.opts.uriResolver, sch.root.baseId);
-      const { es5, lines } = this.opts.code;
-      const { ownProperties } = this.opts;
-      const gen = new codegen_1.CodeGen(this.scope, { es5, lines, ownProperties });
-      let _ValidationError;
-      if (sch.$async) {
-        _ValidationError = gen.scopeValue("Error", {
-          ref: validation_error_1.default,
-          code: (0, codegen_1._)`require("ajv/dist/runtime/validation_error").default`
-        });
-      }
-      const validateName = gen.scopeName("validate");
-      sch.validateName = validateName;
-      const schemaCxt = {
-        gen,
-        allErrors: this.opts.allErrors,
-        data: names_1.default.data,
-        parentData: names_1.default.parentData,
-        parentDataProperty: names_1.default.parentDataProperty,
-        dataNames: [names_1.default.data],
-        dataPathArr: [codegen_1.nil],
-        dataLevel: 0,
-        dataTypes: [],
-        definedProperties: /* @__PURE__ */ new Set(),
-        topSchemaRef: gen.scopeValue("schema", this.opts.code.source === true ? { ref: sch.schema, code: (0, codegen_1.stringify)(sch.schema) } : { ref: sch.schema }),
-        validateName,
-        ValidationError: _ValidationError,
-        schema: sch.schema,
-        schemaEnv: sch,
-        rootId,
-        baseId: sch.baseId || rootId,
-        schemaPath: codegen_1.nil,
-        errSchemaPath: sch.schemaPath || (this.opts.jtd ? "" : "#"),
-        errorPath: (0, codegen_1._)`""`,
-        opts: this.opts,
-        self: this
-      };
-      let sourceCode;
-      try {
-        this._compilations.add(sch);
-        (0, validate_1.validateFunctionCode)(schemaCxt);
-        gen.optimize(this.opts.code.optimize);
-        const validateCode = gen.toString();
-        sourceCode = `${gen.scopeRefs(names_1.default.scope)}return ${validateCode}`;
-        if (this.opts.code.process)
-          sourceCode = this.opts.code.process(sourceCode, sch);
-        const makeValidate = new Function(`${names_1.default.self}`, `${names_1.default.scope}`, sourceCode);
-        const validate = makeValidate(this, this.scope.get());
-        this.scope.value(validateName, { ref: validate });
-        validate.errors = null;
-        validate.schema = sch.schema;
-        validate.schemaEnv = sch;
-        if (sch.$async)
-          validate.$async = true;
-        if (this.opts.code.source === true) {
-          validate.source = { validateName, validateCode, scopeValues: gen._values };
-        }
-        if (this.opts.unevaluated) {
-          const { props, items } = schemaCxt;
-          validate.evaluated = {
-            props: props instanceof codegen_1.Name ? void 0 : props,
-            items: items instanceof codegen_1.Name ? void 0 : items,
-            dynamicProps: props instanceof codegen_1.Name,
-            dynamicItems: items instanceof codegen_1.Name
-          };
-          if (validate.source)
-            validate.source.evaluated = (0, codegen_1.stringify)(validate.evaluated);
-        }
-        sch.validate = validate;
-        return sch;
-      } catch (e) {
-        delete sch.validate;
-        delete sch.validateName;
-        if (sourceCode)
-          this.logger.error("Error compiling schema, function code:", sourceCode);
-        throw e;
-      } finally {
-        this._compilations.delete(sch);
-      }
-    }
-    exports.compileSchema = compileSchema;
-    function resolveRef(root, baseId, ref) {
-      var _a;
-      ref = (0, resolve_1.resolveUrl)(this.opts.uriResolver, baseId, ref);
-      const schOrFunc = root.refs[ref];
-      if (schOrFunc)
-        return schOrFunc;
-      let _sch = resolve.call(this, root, ref);
-      if (_sch === void 0) {
-        const schema = (_a = root.localRefs) === null || _a === void 0 ? void 0 : _a[ref];
-        const { schemaId } = this.opts;
-        if (schema)
-          _sch = new SchemaEnv({ schema, schemaId, root, baseId });
-      }
-      if (_sch === void 0)
-        return;
-      return root.refs[ref] = inlineOrCompile.call(this, _sch);
-    }
-    exports.resolveRef = resolveRef;
-    function inlineOrCompile(sch) {
-      if ((0, resolve_1.inlineRef)(sch.schema, this.opts.inlineRefs))
-        return sch.schema;
-      return sch.validate ? sch : compileSchema.call(this, sch);
-    }
-    function getCompilingSchema(schEnv) {
-      for (const sch of this._compilations) {
-        if (sameSchemaEnv(sch, schEnv))
-          return sch;
-      }
-    }
-    exports.getCompilingSchema = getCompilingSchema;
-    function sameSchemaEnv(s1, s2) {
-      return s1.schema === s2.schema && s1.root === s2.root && s1.baseId === s2.baseId;
-    }
-    function resolve(root, ref) {
-      let sch;
-      while (typeof (sch = this.refs[ref]) == "string")
-        ref = sch;
-      return sch || this.schemas[ref] || resolveSchema.call(this, root, ref);
-    }
-    function resolveSchema(root, ref) {
-      const p = this.opts.uriResolver.parse(ref);
-      const refPath = (0, resolve_1._getFullPath)(this.opts.uriResolver, p);
-      let baseId = (0, resolve_1.getFullPath)(this.opts.uriResolver, root.baseId, void 0);
-      if (Object.keys(root.schema).length > 0 && refPath === baseId) {
-        return getJsonPointer.call(this, p, root);
-      }
-      const id = (0, resolve_1.normalizeId)(refPath);
-      const schOrRef = this.refs[id] || this.schemas[id];
-      if (typeof schOrRef == "string") {
-        const sch = resolveSchema.call(this, root, schOrRef);
-        if (typeof (sch === null || sch === void 0 ? void 0 : sch.schema) !== "object")
-          return;
-        return getJsonPointer.call(this, p, sch);
-      }
-      if (typeof (schOrRef === null || schOrRef === void 0 ? void 0 : schOrRef.schema) !== "object")
-        return;
-      if (!schOrRef.validate)
-        compileSchema.call(this, schOrRef);
-      if (id === (0, resolve_1.normalizeId)(ref)) {
-        const { schema } = schOrRef;
-        const { schemaId } = this.opts;
-        const schId = schema[schemaId];
-        if (schId)
-          baseId = (0, resolve_1.resolveUrl)(this.opts.uriResolver, baseId, schId);
-        return new SchemaEnv({ schema, schemaId, root, baseId });
-      }
-      return getJsonPointer.call(this, p, schOrRef);
-    }
-    exports.resolveSchema = resolveSchema;
-    var PREVENT_SCOPE_CHANGE = /* @__PURE__ */ new Set([
-      "properties",
-      "patternProperties",
-      "enum",
-      "dependencies",
-      "definitions"
-    ]);
-    function getJsonPointer(parsedRef, { baseId, schema, root }) {
-      var _a;
-      if (((_a = parsedRef.fragment) === null || _a === void 0 ? void 0 : _a[0]) !== "/")
-        return;
-      for (const part of parsedRef.fragment.slice(1).split("/")) {
-        if (typeof schema === "boolean")
-          return;
-        const partSchema = schema[(0, util_1.unescapeFragment)(part)];
-        if (partSchema === void 0)
-          return;
-        schema = partSchema;
-        const schId = typeof schema === "object" && schema[this.opts.schemaId];
-        if (!PREVENT_SCOPE_CHANGE.has(part) && schId) {
-          baseId = (0, resolve_1.resolveUrl)(this.opts.uriResolver, baseId, schId);
-        }
-      }
-      let env;
-      if (typeof schema != "boolean" && schema.$ref && !(0, util_1.schemaHasRulesButRef)(schema, this.RULES)) {
-        const $ref = (0, resolve_1.resolveUrl)(this.opts.uriResolver, baseId, schema.$ref);
-        env = resolveSchema.call(this, root, $ref);
-      }
-      const { schemaId } = this.opts;
-      env = env || new SchemaEnv({ schema, schemaId, root, baseId });
-      if (env.schema !== env.root.schema)
-        return env;
-      return void 0;
-    }
-  }
-});
-
-// ../../node_modules/ajv/dist/refs/data.json
-var require_data = __commonJS({
-  "../../node_modules/ajv/dist/refs/data.json"(exports, module2) {
-    module2.exports = {
-      $id: "https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#",
-      description: "Meta-schema for $data reference (JSON AnySchema extension proposal)",
-      type: "object",
-      required: ["$data"],
-      properties: {
-        $data: {
-          type: "string",
-          anyOf: [{ format: "relative-json-pointer" }, { format: "json-pointer" }]
-        }
-      },
-      additionalProperties: false
-    };
-  }
-});
-
-// ../../node_modules/uri-js/dist/es5/uri.all.js
-var require_uri_all = __commonJS({
-  "../../node_modules/uri-js/dist/es5/uri.all.js"(exports, module2) {
-    (function(global, factory) {
-      typeof exports === "object" && typeof module2 !== "undefined" ? factory(exports) : typeof define === "function" && define.amd ? define(["exports"], factory) : factory(global.URI = global.URI || {});
-    })(exports, function(exports2) {
-      "use strict";
-      function merge() {
-        for (var _len = arguments.length, sets = Array(_len), _key = 0; _key < _len; _key++) {
-          sets[_key] = arguments[_key];
-        }
-        if (sets.length > 1) {
-          sets[0] = sets[0].slice(0, -1);
-          var xl = sets.length - 1;
-          for (var x = 1; x < xl; ++x) {
-            sets[x] = sets[x].slice(1, -1);
-          }
-          sets[xl] = sets[xl].slice(1);
-          return sets.join("");
-        } else {
-          return sets[0];
-        }
-      }
-      function subexp(str) {
-        return "(?:" + str + ")";
-      }
-      function typeOf(o) {
-        return o === void 0 ? "undefined" : o === null ? "null" : Object.prototype.toString.call(o).split(" ").pop().split("]").shift().toLowerCase();
-      }
-      function toUpperCase(str) {
-        return str.toUpperCase();
-      }
-      function toArray(obj) {
-        return obj !== void 0 && obj !== null ? obj instanceof Array ? obj : typeof obj.length !== "number" || obj.split || obj.setInterval || obj.call ? [obj] : Array.prototype.slice.call(obj) : [];
-      }
-      function assign(target, source) {
-        var obj = target;
-        if (source) {
-          for (var key in source) {
-            obj[key] = source[key];
-          }
-        }
-        return obj;
-      }
-      function buildExps(isIRI2) {
-        var ALPHA$$ = "[A-Za-z]", CR$ = "[\\x0D]", DIGIT$$ = "[0-9]", DQUOTE$$ = "[\\x22]", HEXDIG$$2 = merge(DIGIT$$, "[A-Fa-f]"), LF$$ = "[\\x0A]", SP$$ = "[\\x20]", PCT_ENCODED$2 = subexp(subexp("%[EFef]" + HEXDIG$$2 + "%" + HEXDIG$$2 + HEXDIG$$2 + "%" + HEXDIG$$2 + HEXDIG$$2) + "|" + subexp("%[89A-Fa-f]" + HEXDIG$$2 + "%" + HEXDIG$$2 + HEXDIG$$2) + "|" + subexp("%" + HEXDIG$$2 + HEXDIG$$2)), GEN_DELIMS$$ = "[\\:\\/\\?\\#\\[\\]\\@]", SUB_DELIMS$$ = "[\\!\\$\\&\\'\\(\\)\\*\\+\\,\\;\\=]", RESERVED$$ = merge(GEN_DELIMS$$, SUB_DELIMS$$), UCSCHAR$$ = isIRI2 ? "[\\xA0-\\u200D\\u2010-\\u2029\\u202F-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]" : "[]", IPRIVATE$$ = isIRI2 ? "[\\uE000-\\uF8FF]" : "[]", UNRESERVED$$2 = merge(ALPHA$$, DIGIT$$, "[\\-\\.\\_\\~]", UCSCHAR$$), SCHEME$ = subexp(ALPHA$$ + merge(ALPHA$$, DIGIT$$, "[\\+\\-\\.]") + "*"), USERINFO$ = subexp(subexp(PCT_ENCODED$2 + "|" + merge(UNRESERVED$$2, SUB_DELIMS$$, "[\\:]")) + "*"), DEC_OCTET$ = subexp(subexp("25[0-5]") + "|" + subexp("2[0-4]" + DIGIT$$) + "|" + subexp("1" + DIGIT$$ + DIGIT$$) + "|" + subexp("[1-9]" + DIGIT$$) + "|" + DIGIT$$), DEC_OCTET_RELAXED$ = subexp(subexp("25[0-5]") + "|" + subexp("2[0-4]" + DIGIT$$) + "|" + subexp("1" + DIGIT$$ + DIGIT$$) + "|" + subexp("0?[1-9]" + DIGIT$$) + "|0?0?" + DIGIT$$), IPV4ADDRESS$ = subexp(DEC_OCTET_RELAXED$ + "\\." + DEC_OCTET_RELAXED$ + "\\." + DEC_OCTET_RELAXED$ + "\\." + DEC_OCTET_RELAXED$), H16$ = subexp(HEXDIG$$2 + "{1,4}"), LS32$ = subexp(subexp(H16$ + "\\:" + H16$) + "|" + IPV4ADDRESS$), IPV6ADDRESS1$ = subexp(subexp(H16$ + "\\:") + "{6}" + LS32$), IPV6ADDRESS2$ = subexp("\\:\\:" + subexp(H16$ + "\\:") + "{5}" + LS32$), IPV6ADDRESS3$ = subexp(subexp(H16$) + "?\\:\\:" + subexp(H16$ + "\\:") + "{4}" + LS32$), IPV6ADDRESS4$ = subexp(subexp(subexp(H16$ + "\\:") + "{0,1}" + H16$) + "?\\:\\:" + subexp(H16$ + "\\:") + "{3}" + LS32$), IPV6ADDRESS5$ = subexp(subexp(subexp(H16$ + "\\:") + "{0,2}" + H16$) + "?\\:\\:" + subexp(H16$ + "\\:") + "{2}" + LS32$), IPV6ADDRESS6$ = subexp(subexp(subexp(H16$ + "\\:") + "{0,3}" + H16$) + "?\\:\\:" + H16$ + "\\:" + LS32$), IPV6ADDRESS7$ = subexp(subexp(subexp(H16$ + "\\:") + "{0,4}" + H16$) + "?\\:\\:" + LS32$), IPV6ADDRESS8$ = subexp(subexp(subexp(H16$ + "\\:") + "{0,5}" + H16$) + "?\\:\\:" + H16$), IPV6ADDRESS9$ = subexp(subexp(subexp(H16$ + "\\:") + "{0,6}" + H16$) + "?\\:\\:"), IPV6ADDRESS$ = subexp([IPV6ADDRESS1$, IPV6ADDRESS2$, IPV6ADDRESS3$, IPV6ADDRESS4$, IPV6ADDRESS5$, IPV6ADDRESS6$, IPV6ADDRESS7$, IPV6ADDRESS8$, IPV6ADDRESS9$].join("|")), ZONEID$ = subexp(subexp(UNRESERVED$$2 + "|" + PCT_ENCODED$2) + "+"), IPV6ADDRZ$ = subexp(IPV6ADDRESS$ + "\\%25" + ZONEID$), IPV6ADDRZ_RELAXED$ = subexp(IPV6ADDRESS$ + subexp("\\%25|\\%(?!" + HEXDIG$$2 + "{2})") + ZONEID$), IPVFUTURE$ = subexp("[vV]" + HEXDIG$$2 + "+\\." + merge(UNRESERVED$$2, SUB_DELIMS$$, "[\\:]") + "+"), IP_LITERAL$ = subexp("\\[" + subexp(IPV6ADDRZ_RELAXED$ + "|" + IPV6ADDRESS$ + "|" + IPVFUTURE$) + "\\]"), REG_NAME$ = subexp(subexp(PCT_ENCODED$2 + "|" + merge(UNRESERVED$$2, SUB_DELIMS$$)) + "*"), HOST$ = subexp(IP_LITERAL$ + "|" + IPV4ADDRESS$ + "(?!" + REG_NAME$ + ")|" + REG_NAME$), PORT$ = subexp(DIGIT$$ + "*"), AUTHORITY$ = subexp(subexp(USERINFO$ + "@") + "?" + HOST$ + subexp("\\:" + PORT$) + "?"), PCHAR$ = subexp(PCT_ENCODED$2 + "|" + merge(UNRESERVED$$2, SUB_DELIMS$$, "[\\:\\@]")), SEGMENT$ = subexp(PCHAR$ + "*"), SEGMENT_NZ$ = subexp(PCHAR$ + "+"), SEGMENT_NZ_NC$ = subexp(subexp(PCT_ENCODED$2 + "|" + merge(UNRESERVED$$2, SUB_DELIMS$$, "[\\@]")) + "+"), PATH_ABEMPTY$ = subexp(subexp("\\/" + SEGMENT$) + "*"), PATH_ABSOLUTE$ = subexp("\\/" + subexp(SEGMENT_NZ$ + PATH_ABEMPTY$) + "?"), PATH_NOSCHEME$ = subexp(SEGMENT_NZ_NC$ + PATH_ABEMPTY$), PATH_ROOTLESS$ = subexp(SEGMENT_NZ$ + PATH_ABEMPTY$), PATH_EMPTY$ = "(?!" + PCHAR$ + ")", PATH$ = subexp(PATH_ABEMPTY$ + "|" + PATH_ABSOLUTE$ + "|" + PATH_NOSCHEME$ + "|" + PATH_ROOTLESS$ + "|" + PATH_EMPTY$), QUERY$ = subexp(subexp(PCHAR$ + "|" + merge("[\\/\\?]", IPRIVATE$$)) + "*"), FRAGMENT$ = subexp(subexp(PCHAR$ + "|[\\/\\?]") + "*"), HIER_PART$ = subexp(subexp("\\/\\/" + AUTHORITY$ + PATH_ABEMPTY$) + "|" + PATH_ABSOLUTE$ + "|" + PATH_ROOTLESS$ + "|" + PATH_EMPTY$), URI$ = subexp(SCHEME$ + "\\:" + HIER_PART$ + subexp("\\?" + QUERY$) + "?" + subexp("\\#" + FRAGMENT$) + "?"), RELATIVE_PART$ = subexp(subexp("\\/\\/" + AUTHORITY$ + PATH_ABEMPTY$) + "|" + PATH_ABSOLUTE$ + "|" + PATH_NOSCHEME$ + "|" + PATH_EMPTY$), RELATIVE$ = subexp(RELATIVE_PART$ + subexp("\\?" + QUERY$) + "?" + subexp("\\#" + FRAGMENT$) + "?"), URI_REFERENCE$ = subexp(URI$ + "|" + RELATIVE$), ABSOLUTE_URI$ = subexp(SCHEME$ + "\\:" + HIER_PART$ + subexp("\\?" + QUERY$) + "?"), GENERIC_REF$ = "^(" + SCHEME$ + ")\\:" + subexp(subexp("\\/\\/(" + subexp("(" + USERINFO$ + ")@") + "?(" + HOST$ + ")" + subexp("\\:(" + PORT$ + ")") + "?)") + "?(" + PATH_ABEMPTY$ + "|" + PATH_ABSOLUTE$ + "|" + PATH_ROOTLESS$ + "|" + PATH_EMPTY$ + ")") + subexp("\\?(" + QUERY$ + ")") + "?" + subexp("\\#(" + FRAGMENT$ + ")") + "?$", RELATIVE_REF$ = "^(){0}" + subexp(subexp("\\/\\/(" + subexp("(" + USERINFO$ + ")@") + "?(" + HOST$ + ")" + subexp("\\:(" + PORT$ + ")") + "?)") + "?(" + PATH_ABEMPTY$ + "|" + PATH_ABSOLUTE$ + "|" + PATH_NOSCHEME$ + "|" + PATH_EMPTY$ + ")") + subexp("\\?(" + QUERY$ + ")") + "?" + subexp("\\#(" + FRAGMENT$ + ")") + "?$", ABSOLUTE_REF$ = "^(" + SCHEME$ + ")\\:" + subexp(subexp("\\/\\/(" + subexp("(" + USERINFO$ + ")@") + "?(" + HOST$ + ")" + subexp("\\:(" + PORT$ + ")") + "?)") + "?(" + PATH_ABEMPTY$ + "|" + PATH_ABSOLUTE$ + "|" + PATH_ROOTLESS$ + "|" + PATH_EMPTY$ + ")") + subexp("\\?(" + QUERY$ + ")") + "?$", SAMEDOC_REF$ = "^" + subexp("\\#(" + FRAGMENT$ + ")") + "?$", AUTHORITY_REF$ = "^" + subexp("(" + USERINFO$ + ")@") + "?(" + HOST$ + ")" + subexp("\\:(" + PORT$ + ")") + "?$";
-        return {
-          NOT_SCHEME: new RegExp(merge("[^]", ALPHA$$, DIGIT$$, "[\\+\\-\\.]"), "g"),
-          NOT_USERINFO: new RegExp(merge("[^\\%\\:]", UNRESERVED$$2, SUB_DELIMS$$), "g"),
-          NOT_HOST: new RegExp(merge("[^\\%\\[\\]\\:]", UNRESERVED$$2, SUB_DELIMS$$), "g"),
-          NOT_PATH: new RegExp(merge("[^\\%\\/\\:\\@]", UNRESERVED$$2, SUB_DELIMS$$), "g"),
-          NOT_PATH_NOSCHEME: new RegExp(merge("[^\\%\\/\\@]", UNRESERVED$$2, SUB_DELIMS$$), "g"),
-          NOT_QUERY: new RegExp(merge("[^\\%]", UNRESERVED$$2, SUB_DELIMS$$, "[\\:\\@\\/\\?]", IPRIVATE$$), "g"),
-          NOT_FRAGMENT: new RegExp(merge("[^\\%]", UNRESERVED$$2, SUB_DELIMS$$, "[\\:\\@\\/\\?]"), "g"),
-          ESCAPE: new RegExp(merge("[^]", UNRESERVED$$2, SUB_DELIMS$$), "g"),
-          UNRESERVED: new RegExp(UNRESERVED$$2, "g"),
-          OTHER_CHARS: new RegExp(merge("[^\\%]", UNRESERVED$$2, RESERVED$$), "g"),
-          PCT_ENCODED: new RegExp(PCT_ENCODED$2, "g"),
-          IPV4ADDRESS: new RegExp("^(" + IPV4ADDRESS$ + ")$"),
-          IPV6ADDRESS: new RegExp("^\\[?(" + IPV6ADDRESS$ + ")" + subexp(subexp("\\%25|\\%(?!" + HEXDIG$$2 + "{2})") + "(" + ZONEID$ + ")") + "?\\]?$")
-        };
-      }
-      var URI_PROTOCOL = buildExps(false);
-      var IRI_PROTOCOL = buildExps(true);
-      var slicedToArray = function() {
-        function sliceIterator(arr, i) {
-          var _arr = [];
-          var _n = true;
-          var _d = false;
-          var _e = void 0;
-          try {
-            for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {
-              _arr.push(_s.value);
-              if (i && _arr.length === i)
-                break;
-            }
-          } catch (err) {
-            _d = true;
-            _e = err;
-          } finally {
-            try {
-              if (!_n && _i["return"])
-                _i["return"]();
-            } finally {
-              if (_d)
-                throw _e;
-            }
-          }
-          return _arr;
-        }
-        return function(arr, i) {
-          if (Array.isArray(arr)) {
-            return arr;
-          } else if (Symbol.iterator in Object(arr)) {
-            return sliceIterator(arr, i);
-          } else {
-            throw new TypeError("Invalid attempt to destructure non-iterable instance");
-          }
-        };
-      }();
-      var toConsumableArray = function(arr) {
-        if (Array.isArray(arr)) {
-          for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++)
-            arr2[i] = arr[i];
-          return arr2;
-        } else {
-          return Array.from(arr);
-        }
-      };
-      var maxInt = 2147483647;
-      var base = 36;
-      var tMin = 1;
-      var tMax = 26;
-      var skew = 38;
-      var damp = 700;
-      var initialBias = 72;
-      var initialN = 128;
-      var delimiter = "-";
-      var regexPunycode = /^xn--/;
-      var regexNonASCII = /[^\0-\x7E]/;
-      var regexSeparators = /[\x2E\u3002\uFF0E\uFF61]/g;
-      var errors = {
-        "overflow": "Overflow: input needs wider integers to process",
-        "not-basic": "Illegal input >= 0x80 (not a basic code point)",
-        "invalid-input": "Invalid input"
-      };
-      var baseMinusTMin = base - tMin;
-      var floor = Math.floor;
-      var stringFromCharCode = String.fromCharCode;
-      function error$1(type) {
-        throw new RangeError(errors[type]);
-      }
-      function map(array, fn) {
-        var result = [];
-        var length = array.length;
-        while (length--) {
-          result[length] = fn(array[length]);
-        }
-        return result;
-      }
-      function mapDomain(string, fn) {
-        var parts = string.split("@");
-        var result = "";
-        if (parts.length > 1) {
-          result = parts[0] + "@";
-          string = parts[1];
-        }
-        string = string.replace(regexSeparators, ".");
-        var labels = string.split(".");
-        var encoded = map(labels, fn).join(".");
-        return result + encoded;
-      }
-      function ucs2decode(string) {
-        var output = [];
-        var counter = 0;
-        var length = string.length;
-        while (counter < length) {
-          var value = string.charCodeAt(counter++);
-          if (value >= 55296 && value <= 56319 && counter < length) {
-            var extra = string.charCodeAt(counter++);
-            if ((extra & 64512) == 56320) {
-              output.push(((value & 1023) << 10) + (extra & 1023) + 65536);
-            } else {
-              output.push(value);
-              counter--;
-            }
-          } else {
-            output.push(value);
-          }
-        }
-        return output;
-      }
-      var ucs2encode = function ucs2encode2(array) {
-        return String.fromCodePoint.apply(String, toConsumableArray(array));
-      };
-      var basicToDigit = function basicToDigit2(codePoint) {
-        if (codePoint - 48 < 10) {
-          return codePoint - 22;
-        }
-        if (codePoint - 65 < 26) {
-          return codePoint - 65;
-        }
-        if (codePoint - 97 < 26) {
-          return codePoint - 97;
-        }
-        return base;
-      };
-      var digitToBasic = function digitToBasic2(digit, flag) {
-        return digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);
-      };
-      var adapt = function adapt2(delta, numPoints, firstTime) {
-        var k = 0;
-        delta = firstTime ? floor(delta / damp) : delta >> 1;
-        delta += floor(delta / numPoints);
-        for (; delta > baseMinusTMin * tMax >> 1; k += base) {
-          delta = floor(delta / baseMinusTMin);
-        }
-        return floor(k + (baseMinusTMin + 1) * delta / (delta + skew));
-      };
-      var decode = function decode2(input) {
-        var output = [];
-        var inputLength = input.length;
-        var i = 0;
-        var n = initialN;
-        var bias = initialBias;
-        var basic = input.lastIndexOf(delimiter);
-        if (basic < 0) {
-          basic = 0;
-        }
-        for (var j = 0; j < basic; ++j) {
-          if (input.charCodeAt(j) >= 128) {
-            error$1("not-basic");
-          }
-          output.push(input.charCodeAt(j));
-        }
-        for (var index = basic > 0 ? basic + 1 : 0; index < inputLength; ) {
-          var oldi = i;
-          for (var w = 1, k = base; ; k += base) {
-            if (index >= inputLength) {
-              error$1("invalid-input");
-            }
-            var digit = basicToDigit(input.charCodeAt(index++));
-            if (digit >= base || digit > floor((maxInt - i) / w)) {
-              error$1("overflow");
-            }
-            i += digit * w;
-            var t = k <= bias ? tMin : k >= bias + tMax ? tMax : k - bias;
-            if (digit < t) {
-              break;
-            }
-            var baseMinusT = base - t;
-            if (w > floor(maxInt / baseMinusT)) {
-              error$1("overflow");
-            }
-            w *= baseMinusT;
-          }
-          var out = output.length + 1;
-          bias = adapt(i - oldi, out, oldi == 0);
-          if (floor(i / out) > maxInt - n) {
-            error$1("overflow");
-          }
-          n += floor(i / out);
-          i %= out;
-          output.splice(i++, 0, n);
-        }
-        return String.fromCodePoint.apply(String, output);
-      };
-      var encode = function encode2(input) {
-        var output = [];
-        input = ucs2decode(input);
-        var inputLength = input.length;
-        var n = initialN;
-        var delta = 0;
-        var bias = initialBias;
-        var _iteratorNormalCompletion = true;
-        var _didIteratorError = false;
-        var _iteratorError = void 0;
-        try {
-          for (var _iterator = input[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
-            var _currentValue2 = _step.value;
-            if (_currentValue2 < 128) {
-              output.push(stringFromCharCode(_currentValue2));
-            }
-          }
-        } catch (err) {
-          _didIteratorError = true;
-          _iteratorError = err;
-        } finally {
-          try {
-            if (!_iteratorNormalCompletion && _iterator.return) {
-              _iterator.return();
-            }
-          } finally {
-            if (_didIteratorError) {
-              throw _iteratorError;
-            }
-          }
-        }
-        var basicLength = output.length;
-        var handledCPCount = basicLength;
-        if (basicLength) {
-          output.push(delimiter);
-        }
-        while (handledCPCount < inputLength) {
-          var m = maxInt;
-          var _iteratorNormalCompletion2 = true;
-          var _didIteratorError2 = false;
-          var _iteratorError2 = void 0;
-          try {
-            for (var _iterator2 = input[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
-              var currentValue = _step2.value;
-              if (currentValue >= n && currentValue < m) {
-                m = currentValue;
-              }
-            }
-          } catch (err) {
-            _didIteratorError2 = true;
-            _iteratorError2 = err;
-          } finally {
-            try {
-              if (!_iteratorNormalCompletion2 && _iterator2.return) {
-                _iterator2.return();
-              }
-            } finally {
-              if (_didIteratorError2) {
-                throw _iteratorError2;
-              }
-            }
-          }
-          var handledCPCountPlusOne = handledCPCount + 1;
-          if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {
-            error$1("overflow");
-          }
-          delta += (m - n) * handledCPCountPlusOne;
-          n = m;
-          var _iteratorNormalCompletion3 = true;
-          var _didIteratorError3 = false;
-          var _iteratorError3 = void 0;
-          try {
-            for (var _iterator3 = input[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {
-              var _currentValue = _step3.value;
-              if (_currentValue < n && ++delta > maxInt) {
-                error$1("overflow");
-              }
-              if (_currentValue == n) {
-                var q = delta;
-                for (var k = base; ; k += base) {
-                  var t = k <= bias ? tMin : k >= bias + tMax ? tMax : k - bias;
-                  if (q < t) {
-                    break;
-                  }
-                  var qMinusT = q - t;
-                  var baseMinusT = base - t;
-                  output.push(stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0)));
-                  q = floor(qMinusT / baseMinusT);
-                }
-                output.push(stringFromCharCode(digitToBasic(q, 0)));
-                bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);
-                delta = 0;
-                ++handledCPCount;
-              }
-            }
-          } catch (err) {
-            _didIteratorError3 = true;
-            _iteratorError3 = err;
-          } finally {
-            try {
-              if (!_iteratorNormalCompletion3 && _iterator3.return) {
-                _iterator3.return();
-              }
-            } finally {
-              if (_didIteratorError3) {
-                throw _iteratorError3;
-              }
-            }
-          }
-          ++delta;
-          ++n;
-        }
-        return output.join("");
-      };
-      var toUnicode = function toUnicode2(input) {
-        return mapDomain(input, function(string) {
-          return regexPunycode.test(string) ? decode(string.slice(4).toLowerCase()) : string;
-        });
-      };
-      var toASCII = function toASCII2(input) {
-        return mapDomain(input, function(string) {
-          return regexNonASCII.test(string) ? "xn--" + encode(string) : string;
-        });
-      };
-      var punycode = {
-        "version": "2.1.0",
-        "ucs2": {
-          "decode": ucs2decode,
-          "encode": ucs2encode
-        },
-        "decode": decode,
-        "encode": encode,
-        "toASCII": toASCII,
-        "toUnicode": toUnicode
-      };
-      var SCHEMES = {};
-      function pctEncChar(chr) {
-        var c = chr.charCodeAt(0);
-        var e = void 0;
-        if (c < 16)
-          e = "%0" + c.toString(16).toUpperCase();
-        else if (c < 128)
-          e = "%" + c.toString(16).toUpperCase();
-        else if (c < 2048)
-          e = "%" + (c >> 6 | 192).toString(16).toUpperCase() + "%" + (c & 63 | 128).toString(16).toUpperCase();
-        else
-          e = "%" + (c >> 12 | 224).toString(16).toUpperCase() + "%" + (c >> 6 & 63 | 128).toString(16).toUpperCase() + "%" + (c & 63 | 128).toString(16).toUpperCase();
-        return e;
-      }
-      function pctDecChars(str) {
-        var newStr = "";
-        var i = 0;
-        var il = str.length;
-        while (i < il) {
-          var c = parseInt(str.substr(i + 1, 2), 16);
-          if (c < 128) {
-            newStr += String.fromCharCode(c);
-            i += 3;
-          } else if (c >= 194 && c < 224) {
-            if (il - i >= 6) {
-              var c2 = parseInt(str.substr(i + 4, 2), 16);
-              newStr += String.fromCharCode((c & 31) << 6 | c2 & 63);
-            } else {
-              newStr += str.substr(i, 6);
-            }
-            i += 6;
-          } else if (c >= 224) {
-            if (il - i >= 9) {
-              var _c = parseInt(str.substr(i + 4, 2), 16);
-              var c3 = parseInt(str.substr(i + 7, 2), 16);
-              newStr += String.fromCharCode((c & 15) << 12 | (_c & 63) << 6 | c3 & 63);
-            } else {
-              newStr += str.substr(i, 9);
-            }
-            i += 9;
-          } else {
-            newStr += str.substr(i, 3);
-            i += 3;
-          }
-        }
-        return newStr;
-      }
-      function _normalizeComponentEncoding(components, protocol) {
-        function decodeUnreserved2(str) {
-          var decStr = pctDecChars(str);
-          return !decStr.match(protocol.UNRESERVED) ? str : decStr;
-        }
-        if (components.scheme)
-          components.scheme = String(components.scheme).replace(protocol.PCT_ENCODED, decodeUnreserved2).toLowerCase().replace(protocol.NOT_SCHEME, "");
-        if (components.userinfo !== void 0)
-          components.userinfo = String(components.userinfo).replace(protocol.PCT_ENCODED, decodeUnreserved2).replace(protocol.NOT_USERINFO, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);
-        if (components.host !== void 0)
-          components.host = String(components.host).replace(protocol.PCT_ENCODED, decodeUnreserved2).toLowerCase().replace(protocol.NOT_HOST, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);
-        if (components.path !== void 0)
-          components.path = String(components.path).replace(protocol.PCT_ENCODED, decodeUnreserved2).replace(components.scheme ? protocol.NOT_PATH : protocol.NOT_PATH_NOSCHEME, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);
-        if (components.query !== void 0)
-          components.query = String(components.query).replace(protocol.PCT_ENCODED, decodeUnreserved2).replace(protocol.NOT_QUERY, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);
-        if (components.fragment !== void 0)
-          components.fragment = String(components.fragment).replace(protocol.PCT_ENCODED, decodeUnreserved2).replace(protocol.NOT_FRAGMENT, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);
-        return components;
-      }
-      function _stripLeadingZeros(str) {
-        return str.replace(/^0*(.*)/, "$1") || "0";
-      }
-      function _normalizeIPv4(host, protocol) {
-        var matches = host.match(protocol.IPV4ADDRESS) || [];
-        var _matches = slicedToArray(matches, 2), address = _matches[1];
-        if (address) {
-          return address.split(".").map(_stripLeadingZeros).join(".");
-        } else {
-          return host;
-        }
-      }
-      function _normalizeIPv6(host, protocol) {
-        var matches = host.match(protocol.IPV6ADDRESS) || [];
-        var _matches2 = slicedToArray(matches, 3), address = _matches2[1], zone = _matches2[2];
-        if (address) {
-          var _address$toLowerCase$ = address.toLowerCase().split("::").reverse(), _address$toLowerCase$2 = slicedToArray(_address$toLowerCase$, 2), last = _address$toLowerCase$2[0], first = _address$toLowerCase$2[1];
-          var firstFields = first ? first.split(":").map(_stripLeadingZeros) : [];
-          var lastFields = last.split(":").map(_stripLeadingZeros);
-          var isLastFieldIPv4Address = protocol.IPV4ADDRESS.test(lastFields[lastFields.length - 1]);
-          var fieldCount = isLastFieldIPv4Address ? 7 : 8;
-          var lastFieldsStart = lastFields.length - fieldCount;
-          var fields = Array(fieldCount);
-          for (var x = 0; x < fieldCount; ++x) {
-            fields[x] = firstFields[x] || lastFields[lastFieldsStart + x] || "";
-          }
-          if (isLastFieldIPv4Address) {
-            fields[fieldCount - 1] = _normalizeIPv4(fields[fieldCount - 1], protocol);
-          }
-          var allZeroFields = fields.reduce(function(acc, field, index) {
-            if (!field || field === "0") {
-              var lastLongest = acc[acc.length - 1];
-              if (lastLongest && lastLongest.index + lastLongest.length === index) {
-                lastLongest.length++;
-              } else {
-                acc.push({ index, length: 1 });
-              }
-            }
-            return acc;
-          }, []);
-          var longestZeroFields = allZeroFields.sort(function(a, b) {
-            return b.length - a.length;
-          })[0];
-          var newHost = void 0;
-          if (longestZeroFields && longestZeroFields.length > 1) {
-            var newFirst = fields.slice(0, longestZeroFields.index);
-            var newLast = fields.slice(longestZeroFields.index + longestZeroFields.length);
-            newHost = newFirst.join(":") + "::" + newLast.join(":");
-          } else {
-            newHost = fields.join(":");
-          }
-          if (zone) {
-            newHost += "%" + zone;
-          }
-          return newHost;
-        } else {
-          return host;
-        }
-      }
-      var URI_PARSE = /^(?:([^:\/?#]+):)?(?:\/\/((?:([^\/?#@]*)@)?(\[[^\/?#\]]+\]|[^\/?#:]*)(?:\:(\d*))?))?([^?#]*)(?:\?([^#]*))?(?:#((?:.|\n|\r)*))?/i;
-      var NO_MATCH_IS_UNDEFINED = "".match(/(){0}/)[1] === void 0;
-      function parse(uriString) {
-        var options = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
-        var components = {};
-        var protocol = options.iri !== false ? IRI_PROTOCOL : URI_PROTOCOL;
-        if (options.reference === "suffix")
-          uriString = (options.scheme ? options.scheme + ":" : "") + "//" + uriString;
-        var matches = uriString.match(URI_PARSE);
-        if (matches) {
-          if (NO_MATCH_IS_UNDEFINED) {
-            components.scheme = matches[1];
-            components.userinfo = matches[3];
-            components.host = matches[4];
-            components.port = parseInt(matches[5], 10);
-            components.path = matches[6] || "";
-            components.query = matches[7];
-            components.fragment = matches[8];
-            if (isNaN(components.port)) {
-              components.port = matches[5];
-            }
-          } else {
-            components.scheme = matches[1] || void 0;
-            components.userinfo = uriString.indexOf("@") !== -1 ? matches[3] : void 0;
-            components.host = uriString.indexOf("//") !== -1 ? matches[4] : void 0;
-            components.port = parseInt(matches[5], 10);
-            components.path = matches[6] || "";
-            components.query = uriString.indexOf("?") !== -1 ? matches[7] : void 0;
-            components.fragment = uriString.indexOf("#") !== -1 ? matches[8] : void 0;
-            if (isNaN(components.port)) {
-              components.port = uriString.match(/\/\/(?:.|\n)*\:(?:\/|\?|\#|$)/) ? matches[4] : void 0;
-            }
-          }
-          if (components.host) {
-            components.host = _normalizeIPv6(_normalizeIPv4(components.host, protocol), protocol);
-          }
-          if (components.scheme === void 0 && components.userinfo === void 0 && components.host === void 0 && components.port === void 0 && !components.path && components.query === void 0) {
-            components.reference = "same-document";
-          } else if (components.scheme === void 0) {
-            components.reference = "relative";
-          } else if (components.fragment === void 0) {
-            components.reference = "absolute";
-          } else {
-            components.reference = "uri";
-          }
-          if (options.reference && options.reference !== "suffix" && options.reference !== components.reference) {
-            components.error = components.error || "URI is not a " + options.reference + " reference.";
-          }
-          var schemeHandler = SCHEMES[(options.scheme || components.scheme || "").toLowerCase()];
-          if (!options.unicodeSupport && (!schemeHandler || !schemeHandler.unicodeSupport)) {
-            if (components.host && (options.domainHost || schemeHandler && schemeHandler.domainHost)) {
-              try {
-                components.host = punycode.toASCII(components.host.replace(protocol.PCT_ENCODED, pctDecChars).toLowerCase());
-              } catch (e) {
-                components.error = components.error || "Host's domain name can not be converted to ASCII via punycode: " + e;
-              }
-            }
-            _normalizeComponentEncoding(components, URI_PROTOCOL);
-          } else {
-            _normalizeComponentEncoding(components, protocol);
-          }
-          if (schemeHandler && schemeHandler.parse) {
-            schemeHandler.parse(components, options);
-          }
-        } else {
-          components.error = components.error || "URI can not be parsed.";
-        }
-        return components;
-      }
-      function _recomposeAuthority(components, options) {
-        var protocol = options.iri !== false ? IRI_PROTOCOL : URI_PROTOCOL;
-        var uriTokens = [];
-        if (components.userinfo !== void 0) {
-          uriTokens.push(components.userinfo);
-          uriTokens.push("@");
-        }
-        if (components.host !== void 0) {
-          uriTokens.push(_normalizeIPv6(_normalizeIPv4(String(components.host), protocol), protocol).replace(protocol.IPV6ADDRESS, function(_, $1, $2) {
-            return "[" + $1 + ($2 ? "%25" + $2 : "") + "]";
-          }));
-        }
-        if (typeof components.port === "number" || typeof components.port === "string") {
-          uriTokens.push(":");
-          uriTokens.push(String(components.port));
-        }
-        return uriTokens.length ? uriTokens.join("") : void 0;
-      }
-      var RDS1 = /^\.\.?\//;
-      var RDS2 = /^\/\.(\/|$)/;
-      var RDS3 = /^\/\.\.(\/|$)/;
-      var RDS5 = /^\/?(?:.|\n)*?(?=\/|$)/;
-      function removeDotSegments(input) {
-        var output = [];
-        while (input.length) {
-          if (input.match(RDS1)) {
-            input = input.replace(RDS1, "");
-          } else if (input.match(RDS2)) {
-            input = input.replace(RDS2, "/");
-          } else if (input.match(RDS3)) {
-            input = input.replace(RDS3, "/");
-            output.pop();
-          } else if (input === "." || input === "..") {
-            input = "";
-          } else {
-            var im = input.match(RDS5);
-            if (im) {
-              var s = im[0];
-              input = input.slice(s.length);
-              output.push(s);
-            } else {
-              throw new Error("Unexpected dot segment condition");
-            }
-          }
-        }
-        return output.join("");
-      }
-      function serialize(components) {
-        var options = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
-        var protocol = options.iri ? IRI_PROTOCOL : URI_PROTOCOL;
-        var uriTokens = [];
-        var schemeHandler = SCHEMES[(options.scheme || components.scheme || "").toLowerCase()];
-        if (schemeHandler && schemeHandler.serialize)
-          schemeHandler.serialize(components, options);
-        if (components.host) {
-          if (protocol.IPV6ADDRESS.test(components.host)) {
-          } else if (options.domainHost || schemeHandler && schemeHandler.domainHost) {
-            try {
-              components.host = !options.iri ? punycode.toASCII(components.host.replace(protocol.PCT_ENCODED, pctDecChars).toLowerCase()) : punycode.toUnicode(components.host);
-            } catch (e) {
-              components.error = components.error || "Host's domain name can not be converted to " + (!options.iri ? "ASCII" : "Unicode") + " via punycode: " + e;
-            }
-          }
-        }
-        _normalizeComponentEncoding(components, protocol);
-        if (options.reference !== "suffix" && components.scheme) {
-          uriTokens.push(components.scheme);
-          uriTokens.push(":");
-        }
-        var authority = _recomposeAuthority(components, options);
-        if (authority !== void 0) {
-          if (options.reference !== "suffix") {
-            uriTokens.push("//");
-          }
-          uriTokens.push(authority);
-          if (components.path && components.path.charAt(0) !== "/") {
-            uriTokens.push("/");
-          }
-        }
-        if (components.path !== void 0) {
-          var s = components.path;
-          if (!options.absolutePath && (!schemeHandler || !schemeHandler.absolutePath)) {
-            s = removeDotSegments(s);
-          }
-          if (authority === void 0) {
-            s = s.replace(/^\/\//, "/%2F");
-          }
-          uriTokens.push(s);
-        }
-        if (components.query !== void 0) {
-          uriTokens.push("?");
-          uriTokens.push(components.query);
-        }
-        if (components.fragment !== void 0) {
-          uriTokens.push("#");
-          uriTokens.push(components.fragment);
-        }
-        return uriTokens.join("");
-      }
-      function resolveComponents(base2, relative) {
-        var options = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {};
-        var skipNormalization = arguments[3];
-        var target = {};
-        if (!skipNormalization) {
-          base2 = parse(serialize(base2, options), options);
-          relative = parse(serialize(relative, options), options);
-        }
-        options = options || {};
-        if (!options.tolerant && relative.scheme) {
-          target.scheme = relative.scheme;
-          target.userinfo = relative.userinfo;
-          target.host = relative.host;
-          target.port = relative.port;
-          target.path = removeDotSegments(relative.path || "");
-          target.query = relative.query;
-        } else {
-          if (relative.userinfo !== void 0 || relative.host !== void 0 || relative.port !== void 0) {
-            target.userinfo = relative.userinfo;
-            target.host = relative.host;
-            target.port = relative.port;
-            target.path = removeDotSegments(relative.path || "");
-            target.query = relative.query;
-          } else {
-            if (!relative.path) {
-              target.path = base2.path;
-              if (relative.query !== void 0) {
-                target.query = relative.query;
-              } else {
-                target.query = base2.query;
-              }
-            } else {
-              if (relative.path.charAt(0) === "/") {
-                target.path = removeDotSegments(relative.path);
-              } else {
-                if ((base2.userinfo !== void 0 || base2.host !== void 0 || base2.port !== void 0) && !base2.path) {
-                  target.path = "/" + relative.path;
-                } else if (!base2.path) {
-                  target.path = relative.path;
-                } else {
-                  target.path = base2.path.slice(0, base2.path.lastIndexOf("/") + 1) + relative.path;
-                }
-                target.path = removeDotSegments(target.path);
-              }
-              target.query = relative.query;
-            }
-            target.userinfo = base2.userinfo;
-            target.host = base2.host;
-            target.port = base2.port;
-          }
-          target.scheme = base2.scheme;
-        }
-        target.fragment = relative.fragment;
-        return target;
-      }
-      function resolve(baseURI, relativeURI, options) {
-        var schemelessOptions = assign({ scheme: "null" }, options);
-        return serialize(resolveComponents(parse(baseURI, schemelessOptions), parse(relativeURI, schemelessOptions), schemelessOptions, true), schemelessOptions);
-      }
-      function normalize(uri, options) {
-        if (typeof uri === "string") {
-          uri = serialize(parse(uri, options), options);
-        } else if (typeOf(uri) === "object") {
-          uri = parse(serialize(uri, options), options);
-        }
-        return uri;
-      }
-      function equal(uriA, uriB, options) {
-        if (typeof uriA === "string") {
-          uriA = serialize(parse(uriA, options), options);
-        } else if (typeOf(uriA) === "object") {
-          uriA = serialize(uriA, options);
-        }
-        if (typeof uriB === "string") {
-          uriB = serialize(parse(uriB, options), options);
-        } else if (typeOf(uriB) === "object") {
-          uriB = serialize(uriB, options);
-        }
-        return uriA === uriB;
-      }
-      function escapeComponent(str, options) {
-        return str && str.toString().replace(!options || !options.iri ? URI_PROTOCOL.ESCAPE : IRI_PROTOCOL.ESCAPE, pctEncChar);
-      }
-      function unescapeComponent(str, options) {
-        return str && str.toString().replace(!options || !options.iri ? URI_PROTOCOL.PCT_ENCODED : IRI_PROTOCOL.PCT_ENCODED, pctDecChars);
-      }
-      var handler = {
-        scheme: "http",
-        domainHost: true,
-        parse: function parse2(components, options) {
-          if (!components.host) {
-            components.error = components.error || "HTTP URIs must have a host.";
-          }
-          return components;
-        },
-        serialize: function serialize2(components, options) {
-          var secure = String(components.scheme).toLowerCase() === "https";
-          if (components.port === (secure ? 443 : 80) || components.port === "") {
-            components.port = void 0;
-          }
-          if (!components.path) {
-            components.path = "/";
-          }
-          return components;
-        }
-      };
-      var handler$1 = {
-        scheme: "https",
-        domainHost: handler.domainHost,
-        parse: handler.parse,
-        serialize: handler.serialize
-      };
-      function isSecure(wsComponents) {
-        return typeof wsComponents.secure === "boolean" ? wsComponents.secure : String(wsComponents.scheme).toLowerCase() === "wss";
-      }
-      var handler$2 = {
-        scheme: "ws",
-        domainHost: true,
-        parse: function parse2(components, options) {
-          var wsComponents = components;
-          wsComponents.secure = isSecure(wsComponents);
-          wsComponents.resourceName = (wsComponents.path || "/") + (wsComponents.query ? "?" + wsComponents.query : "");
-          wsComponents.path = void 0;
-          wsComponents.query = void 0;
-          return wsComponents;
-        },
-        serialize: function serialize2(wsComponents, options) {
-          if (wsComponents.port === (isSecure(wsComponents) ? 443 : 80) || wsComponents.port === "") {
-            wsComponents.port = void 0;
-          }
-          if (typeof wsComponents.secure === "boolean") {
-            wsComponents.scheme = wsComponents.secure ? "wss" : "ws";
-            wsComponents.secure = void 0;
-          }
-          if (wsComponents.resourceName) {
-            var _wsComponents$resourc = wsComponents.resourceName.split("?"), _wsComponents$resourc2 = slicedToArray(_wsComponents$resourc, 2), path = _wsComponents$resourc2[0], query = _wsComponents$resourc2[1];
-            wsComponents.path = path && path !== "/" ? path : void 0;
-            wsComponents.query = query;
-            wsComponents.resourceName = void 0;
-          }
-          wsComponents.fragment = void 0;
-          return wsComponents;
-        }
-      };
-      var handler$3 = {
-        scheme: "wss",
-        domainHost: handler$2.domainHost,
-        parse: handler$2.parse,
-        serialize: handler$2.serialize
-      };
-      var O = {};
-      var isIRI = true;
-      var UNRESERVED$$ = "[A-Za-z0-9\\-\\.\\_\\~" + (isIRI ? "\\xA0-\\u200D\\u2010-\\u2029\\u202F-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF" : "") + "]";
-      var HEXDIG$$ = "[0-9A-Fa-f]";
-      var PCT_ENCODED$ = subexp(subexp("%[EFef]" + HEXDIG$$ + "%" + HEXDIG$$ + HEXDIG$$ + "%" + HEXDIG$$ + HEXDIG$$) + "|" + subexp("%[89A-Fa-f]" + HEXDIG$$ + "%" + HEXDIG$$ + HEXDIG$$) + "|" + subexp("%" + HEXDIG$$ + HEXDIG$$));
-      var ATEXT$$ = "[A-Za-z0-9\\!\\$\\%\\'\\*\\+\\-\\^\\_\\`\\{\\|\\}\\~]";
-      var QTEXT$$ = "[\\!\\$\\%\\'\\(\\)\\*\\+\\,\\-\\.0-9\\<\\>A-Z\\x5E-\\x7E]";
-      var VCHAR$$ = merge(QTEXT$$, '[\\"\\\\]');
-      var SOME_DELIMS$$ = "[\\!\\$\\'\\(\\)\\*\\+\\,\\;\\:\\@]";
-      var UNRESERVED = new RegExp(UNRESERVED$$, "g");
-      var PCT_ENCODED = new RegExp(PCT_ENCODED$, "g");
-      var NOT_LOCAL_PART = new RegExp(merge("[^]", ATEXT$$, "[\\.]", '[\\"]', VCHAR$$), "g");
-      var NOT_HFNAME = new RegExp(merge("[^]", UNRESERVED$$, SOME_DELIMS$$), "g");
-      var NOT_HFVALUE = NOT_HFNAME;
-      function decodeUnreserved(str) {
-        var decStr = pctDecChars(str);
-        return !decStr.match(UNRESERVED) ? str : decStr;
-      }
-      var handler$4 = {
-        scheme: "mailto",
-        parse: function parse$$1(components, options) {
-          var mailtoComponents = components;
-          var to = mailtoComponents.to = mailtoComponents.path ? mailtoComponents.path.split(",") : [];
-          mailtoComponents.path = void 0;
-          if (mailtoComponents.query) {
-            var unknownHeaders = false;
-            var headers = {};
-            var hfields = mailtoComponents.query.split("&");
-            for (var x = 0, xl = hfields.length; x < xl; ++x) {
-              var hfield = hfields[x].split("=");
-              switch (hfield[0]) {
-                case "to":
-                  var toAddrs = hfield[1].split(",");
-                  for (var _x = 0, _xl = toAddrs.length; _x < _xl; ++_x) {
-                    to.push(toAddrs[_x]);
-                  }
-                  break;
-                case "subject":
-                  mailtoComponents.subject = unescapeComponent(hfield[1], options);
-                  break;
-                case "body":
-                  mailtoComponents.body = unescapeComponent(hfield[1], options);
-                  break;
-                default:
-                  unknownHeaders = true;
-                  headers[unescapeComponent(hfield[0], options)] = unescapeComponent(hfield[1], options);
-                  break;
-              }
-            }
-            if (unknownHeaders)
-              mailtoComponents.headers = headers;
-          }
-          mailtoComponents.query = void 0;
-          for (var _x2 = 0, _xl2 = to.length; _x2 < _xl2; ++_x2) {
-            var addr = to[_x2].split("@");
-            addr[0] = unescapeComponent(addr[0]);
-            if (!options.unicodeSupport) {
-              try {
-                addr[1] = punycode.toASCII(unescapeComponent(addr[1], options).toLowerCase());
-              } catch (e) {
-                mailtoComponents.error = mailtoComponents.error || "Email address's domain name can not be converted to ASCII via punycode: " + e;
-              }
-            } else {
-              addr[1] = unescapeComponent(addr[1], options).toLowerCase();
-            }
-            to[_x2] = addr.join("@");
-          }
-          return mailtoComponents;
-        },
-        serialize: function serialize$$1(mailtoComponents, options) {
-          var components = mailtoComponents;
-          var to = toArray(mailtoComponents.to);
-          if (to) {
-            for (var x = 0, xl = to.length; x < xl; ++x) {
-              var toAddr = String(to[x]);
-              var atIdx = toAddr.lastIndexOf("@");
-              var localPart = toAddr.slice(0, atIdx).replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_LOCAL_PART, pctEncChar);
-              var domain = toAddr.slice(atIdx + 1);
-              try {
-                domain = !options.iri ? punycode.toASCII(unescapeComponent(domain, options).toLowerCase()) : punycode.toUnicode(domain);
-              } catch (e) {
-                components.error = components.error || "Email address's domain name can not be converted to " + (!options.iri ? "ASCII" : "Unicode") + " via punycode: " + e;
-              }
-              to[x] = localPart + "@" + domain;
-            }
-            components.path = to.join(",");
-          }
-          var headers = mailtoComponents.headers = mailtoComponents.headers || {};
-          if (mailtoComponents.subject)
-            headers["subject"] = mailtoComponents.subject;
-          if (mailtoComponents.body)
-            headers["body"] = mailtoComponents.body;
-          var fields = [];
-          for (var name in headers) {
-            if (headers[name] !== O[name]) {
-              fields.push(name.replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_HFNAME, pctEncChar) + "=" + headers[name].replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_HFVALUE, pctEncChar));
-            }
-          }
-          if (fields.length) {
-            components.query = fields.join("&");
-          }
-          return components;
-        }
-      };
-      var URN_PARSE = /^([^\:]+)\:(.*)/;
-      var handler$5 = {
-        scheme: "urn",
-        parse: function parse$$1(components, options) {
-          var matches = components.path && components.path.match(URN_PARSE);
-          var urnComponents = components;
-          if (matches) {
-            var scheme = options.scheme || urnComponents.scheme || "urn";
-            var nid = matches[1].toLowerCase();
-            var nss = matches[2];
-            var urnScheme = scheme + ":" + (options.nid || nid);
-            var schemeHandler = SCHEMES[urnScheme];
-            urnComponents.nid = nid;
-            urnComponents.nss = nss;
-            urnComponents.path = void 0;
-            if (schemeHandler) {
-              urnComponents = schemeHandler.parse(urnComponents, options);
-            }
-          } else {
-            urnComponents.error = urnComponents.error || "URN can not be parsed.";
-          }
-          return urnComponents;
-        },
-        serialize: function serialize$$1(urnComponents, options) {
-          var scheme = options.scheme || urnComponents.scheme || "urn";
-          var nid = urnComponents.nid;
-          var urnScheme = scheme + ":" + (options.nid || nid);
-          var schemeHandler = SCHEMES[urnScheme];
-          if (schemeHandler) {
-            urnComponents = schemeHandler.serialize(urnComponents, options);
-          }
-          var uriComponents = urnComponents;
-          var nss = urnComponents.nss;
-          uriComponents.path = (nid || options.nid) + ":" + nss;
-          return uriComponents;
-        }
-      };
-      var UUID = /^[0-9A-Fa-f]{8}(?:\-[0-9A-Fa-f]{4}){3}\-[0-9A-Fa-f]{12}$/;
-      var handler$6 = {
-        scheme: "urn:uuid",
-        parse: function parse2(urnComponents, options) {
-          var uuidComponents = urnComponents;
-          uuidComponents.uuid = uuidComponents.nss;
-          uuidComponents.nss = void 0;
-          if (!options.tolerant && (!uuidComponents.uuid || !uuidComponents.uuid.match(UUID))) {
-            uuidComponents.error = uuidComponents.error || "UUID is not valid.";
-          }
-          return uuidComponents;
-        },
-        serialize: function serialize2(uuidComponents, options) {
-          var urnComponents = uuidComponents;
-          urnComponents.nss = (uuidComponents.uuid || "").toLowerCase();
-          return urnComponents;
-        }
-      };
-      SCHEMES[handler.scheme] = handler;
-      SCHEMES[handler$1.scheme] = handler$1;
-      SCHEMES[handler$2.scheme] = handler$2;
-      SCHEMES[handler$3.scheme] = handler$3;
-      SCHEMES[handler$4.scheme] = handler$4;
-      SCHEMES[handler$5.scheme] = handler$5;
-      SCHEMES[handler$6.scheme] = handler$6;
-      exports2.SCHEMES = SCHEMES;
-      exports2.pctEncChar = pctEncChar;
-      exports2.pctDecChars = pctDecChars;
-      exports2.parse = parse;
-      exports2.removeDotSegments = removeDotSegments;
-      exports2.serialize = serialize;
-      exports2.resolveComponents = resolveComponents;
-      exports2.resolve = resolve;
-      exports2.normalize = normalize;
-      exports2.equal = equal;
-      exports2.escapeComponent = escapeComponent;
-      exports2.unescapeComponent = unescapeComponent;
-      Object.defineProperty(exports2, "__esModule", { value: true });
-    });
-  }
-});
-
-// ../../node_modules/ajv/dist/runtime/uri.js
-var require_uri = __commonJS({
-  "../../node_modules/ajv/dist/runtime/uri.js"(exports) {
-    "use strict";
-    Object.defineProperty(exports, "__esModule", { value: true });
-    var uri = require_uri_all();
-    uri.code = 'require("ajv/dist/runtime/uri").default';
-    exports.default = uri;
-  }
-});
-
-// ../../node_modules/ajv/dist/core.js
-var require_core = __commonJS({
-  "../../node_modules/ajv/dist/core.js"(exports) {
-    "use strict";
-    Object.defineProperty(exports, "__esModule", { value: true });
-    exports.CodeGen = exports.Name = exports.nil = exports.stringify = exports.str = exports._ = exports.KeywordCxt = void 0;
-    var validate_1 = require_validate();
-    Object.defineProperty(exports, "KeywordCxt", { enumerable: true, get: function() {
-      return validate_1.KeywordCxt;
-    } });
-    var codegen_1 = require_codegen();
-    Object.defineProperty(exports, "_", { enumerable: true, get: function() {
-      return codegen_1._;
-    } });
-    Object.defineProperty(exports, "str", { enumerable: true, get: function() {
-      return codegen_1.str;
-    } });
-    Object.defineProperty(exports, "stringify", { enumerable: true, get: function() {
-      return codegen_1.stringify;
-    } });
-    Object.defineProperty(exports, "nil", { enumerable: true, get: function() {
-      return codegen_1.nil;
-    } });
-    Object.defineProperty(exports, "Name", { enumerable: true, get: function() {
-      return codegen_1.Name;
-    } });
-    Object.defineProperty(exports, "CodeGen", { enumerable: true, get: function() {
-      return codegen_1.CodeGen;
-    } });
-    var validation_error_1 = require_validation_error();
-    var ref_error_1 = require_ref_error();
-    var rules_1 = require_rules();
-    var compile_1 = require_compile();
-    var codegen_2 = require_codegen();
-    var resolve_1 = require_resolve();
-    var dataType_1 = require_dataType();
-    var util_1 = require_util();
-    var $dataRefSchema = require_data();
-    var uri_1 = require_uri();
-    var defaultRegExp = (str, flags) => new RegExp(str, flags);
-    defaultRegExp.code = "new RegExp";
-    var META_IGNORE_OPTIONS = ["removeAdditional", "useDefaults", "coerceTypes"];
-    var EXT_SCOPE_NAMES = /* @__PURE__ */ new Set([
-      "validate",
-      "serialize",
-      "parse",
-      "wrapper",
-      "root",
-      "schema",
-      "keyword",
-      "pattern",
-      "formats",
-      "validate$data",
-      "func",
-      "obj",
-      "Error"
-    ]);
-    var removedOptions = {
-      errorDataPath: "",
-      format: "`validateFormats: false` can be used instead.",
-      nullable: '"nullable" keyword is supported by default.',
-      jsonPointers: "Deprecated jsPropertySyntax can be used instead.",
-      extendRefs: "Deprecated ignoreKeywordsWithRef can be used instead.",
-      missingRefs: "Pass empty schema with $id that should be ignored to ajv.addSchema.",
-      processCode: "Use option `code: {process: (code, schemaEnv: object) => string}`",
-      sourceCode: "Use option `code: {source: true}`",
-      strictDefaults: "It is default now, see option `strict`.",
-      strictKeywords: "It is default now, see option `strict`.",
-      uniqueItems: '"uniqueItems" keyword is always validated.',
-      unknownFormats: "Disable strict mode or pass `true` to `ajv.addFormat` (or `formats` option).",
-      cache: "Map is used as cache, schema object as key.",
-      serialize: "Map is used as cache, schema object as key.",
-      ajvErrors: "It is default now."
-    };
-    var deprecatedOptions = {
-      ignoreKeywordsWithRef: "",
-      jsPropertySyntax: "",
-      unicode: '"minLength"/"maxLength" account for unicode characters by default.'
-    };
-    var MAX_EXPRESSION = 200;
-    function requiredOptions(o) {
-      var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0;
-      const s = o.strict;
-      const _optz = (_a = o.code) === null || _a === void 0 ? void 0 : _a.optimize;
-      const optimize = _optz === true || _optz === void 0 ? 1 : _optz || 0;
-      const regExp = (_c = (_b = o.code) === null || _b === void 0 ? void 0 : _b.regExp) !== null && _c !== void 0 ? _c : defaultRegExp;
-      const uriResolver = (_d = o.uriResolver) !== null && _d !== void 0 ? _d : uri_1.default;
-      return {
-        strictSchema: (_f = (_e = o.strictSchema) !== null && _e !== void 0 ? _e : s) !== null && _f !== void 0 ? _f : true,
-        strictNumbers: (_h = (_g = o.strictNumbers) !== null && _g !== void 0 ? _g : s) !== null && _h !== void 0 ? _h : true,
-        strictTypes: (_k = (_j = o.strictTypes) !== null && _j !== void 0 ? _j : s) !== null && _k !== void 0 ? _k : "log",
-        strictTuples: (_m = (_l = o.strictTuples) !== null && _l !== void 0 ? _l : s) !== null && _m !== void 0 ? _m : "log",
-        strictRequired: (_p = (_o = o.strictRequired) !== null && _o !== void 0 ? _o : s) !== null && _p !== void 0 ? _p : false,
-        code: o.code ? { ...o.code, optimize, regExp } : { optimize, regExp },
-        loopRequired: (_q = o.loopRequired) !== null && _q !== void 0 ? _q : MAX_EXPRESSION,
-        loopEnum: (_r = o.loopEnum) !== null && _r !== void 0 ? _r : MAX_EXPRESSION,
-        meta: (_s = o.meta) !== null && _s !== void 0 ? _s : true,
-        messages: (_t = o.messages) !== null && _t !== void 0 ? _t : true,
-        inlineRefs: (_u = o.inlineRefs) !== null && _u !== void 0 ? _u : true,
-        schemaId: (_v = o.schemaId) !== null && _v !== void 0 ? _v : "$id",
-        addUsedSchema: (_w = o.addUsedSchema) !== null && _w !== void 0 ? _w : true,
-        validateSchema: (_x = o.validateSchema) !== null && _x !== void 0 ? _x : true,
-        validateFormats: (_y = o.validateFormats) !== null && _y !== void 0 ? _y : true,
-        unicodeRegExp: (_z = o.unicodeRegExp) !== null && _z !== void 0 ? _z : true,
-        int32range: (_0 = o.int32range) !== null && _0 !== void 0 ? _0 : true,
-        uriResolver
-      };
-    }
-    var Ajv3 = class {
-      constructor(opts = {}) {
-        this.schemas = {};
-        this.refs = {};
-        this.formats = {};
-        this._compilations = /* @__PURE__ */ new Set();
-        this._loading = {};
-        this._cache = /* @__PURE__ */ new Map();
-        opts = this.opts = { ...opts, ...requiredOptions(opts) };
-        const { es5, lines } = this.opts.code;
-        this.scope = new codegen_2.ValueScope({ scope: {}, prefixes: EXT_SCOPE_NAMES, es5, lines });
-        this.logger = getLogger(opts.logger);
-        const formatOpt = opts.validateFormats;
-        opts.validateFormats = false;
-        this.RULES = (0, rules_1.getRules)();
-        checkOptions.call(this, removedOptions, opts, "NOT SUPPORTED");
-        checkOptions.call(this, deprecatedOptions, opts, "DEPRECATED", "warn");
-        this._metaOpts = getMetaSchemaOptions.call(this);
-        if (opts.formats)
-          addInitialFormats.call(this);
-        this._addVocabularies();
-        this._addDefaultMetaSchema();
-        if (opts.keywords)
-          addInitialKeywords.call(this, opts.keywords);
-        if (typeof opts.meta == "object")
-          this.addMetaSchema(opts.meta);
-        addInitialSchemas.call(this);
-        opts.validateFormats = formatOpt;
-      }
-      _addVocabularies() {
-        this.addKeyword("$async");
-      }
-      _addDefaultMetaSchema() {
-        const { $data, meta, schemaId } = this.opts;
-        let _dataRefSchema = $dataRefSchema;
-        if (schemaId === "id") {
-          _dataRefSchema = { ...$dataRefSchema };
-          _dataRefSchema.id = _dataRefSchema.$id;
-          delete _dataRefSchema.$id;
-        }
-        if (meta && $data)
-          this.addMetaSchema(_dataRefSchema, _dataRefSchema[schemaId], false);
-      }
-      defaultMeta() {
-        const { meta, schemaId } = this.opts;
-        return this.opts.defaultMeta = typeof meta == "object" ? meta[schemaId] || meta : void 0;
-      }
-      validate(schemaKeyRef, data) {
-        let v;
-        if (typeof schemaKeyRef == "string") {
-          v = this.getSchema(schemaKeyRef);
-          if (!v)
-            throw new Error(`no schema with key or ref "${schemaKeyRef}"`);
-        } else {
-          v = this.compile(schemaKeyRef);
-        }
-        const valid = v(data);
-        if (!("$async" in v))
-          this.errors = v.errors;
-        return valid;
-      }
-      compile(schema, _meta) {
-        const sch = this._addSchema(schema, _meta);
-        return sch.validate || this._compileSchemaEnv(sch);
-      }
-      compileAsync(schema, meta) {
-        if (typeof this.opts.loadSchema != "function") {
-          throw new Error("options.loadSchema should be a function");
-        }
-        const { loadSchema } = this.opts;
-        return runCompileAsync.call(this, schema, meta);
-        async function runCompileAsync(_schema, _meta) {
-          await loadMetaSchema.call(this, _schema.$schema);
-          const sch = this._addSchema(_schema, _meta);
-          return sch.validate || _compileAsync.call(this, sch);
-        }
-        async function loadMetaSchema($ref) {
-          if ($ref && !this.getSchema($ref)) {
-            await runCompileAsync.call(this, { $ref }, true);
-          }
-        }
-        async function _compileAsync(sch) {
-          try {
-            return this._compileSchemaEnv(sch);
-          } catch (e) {
-            if (!(e instanceof ref_error_1.default))
-              throw e;
-            checkLoaded.call(this, e);
-            await loadMissingSchema.call(this, e.missingSchema);
-            return _compileAsync.call(this, sch);
-          }
-        }
-        function checkLoaded({ missingSchema: ref, missingRef }) {
-          if (this.refs[ref]) {
-            throw new Error(`AnySchema ${ref} is loaded but ${missingRef} cannot be resolved`);
-          }
-        }
-        async function loadMissingSchema(ref) {
-          const _schema = await _loadSchema.call(this, ref);
-          if (!this.refs[ref])
-            await loadMetaSchema.call(this, _schema.$schema);
-          if (!this.refs[ref])
-            this.addSchema(_schema, ref, meta);
-        }
-        async function _loadSchema(ref) {
-          const p = this._loading[ref];
-          if (p)
-            return p;
-          try {
-            return await (this._loading[ref] = loadSchema(ref));
-          } finally {
-            delete this._loading[ref];
-          }
-        }
-      }
-      addSchema(schema, key, _meta, _validateSchema = this.opts.validateSchema) {
-        if (Array.isArray(schema)) {
-          for (const sch of schema)
-            this.addSchema(sch, void 0, _meta, _validateSchema);
-          return this;
-        }
-        let id;
-        if (typeof schema === "object") {
-          const { schemaId } = this.opts;
-          id = schema[schemaId];
-          if (id !== void 0 && typeof id != "string") {
-            throw new Error(`schema ${schemaId} must be string`);
-          }
-        }
-        key = (0, resolve_1.normalizeId)(key || id);
-        this._checkUnique(key);
-        this.schemas[key] = this._addSchema(schema, _meta, key, _validateSchema, true);
-        return this;
-      }
-      addMetaSchema(schema, key, _validateSchema = this.opts.validateSchema) {
-        this.addSchema(schema, key, true, _validateSchema);
-        return this;
-      }
-      validateSchema(schema, throwOrLogError) {
-        if (typeof schema == "boolean")
-          return true;
-        let $schema;
-        $schema = schema.$schema;
-        if ($schema !== void 0 && typeof $schema != "string") {
-          throw new Error("$schema must be a string");
-        }
-        $schema = $schema || this.opts.defaultMeta || this.defaultMeta();
-        if (!$schema) {
-          this.logger.warn("meta-schema not available");
-          this.errors = null;
-          return true;
-        }
-        const valid = this.validate($schema, schema);
-        if (!valid && throwOrLogError) {
-          const message = "schema is invalid: " + this.errorsText();
-          if (this.opts.validateSchema === "log")
-            this.logger.error(message);
-          else
-            throw new Error(message);
-        }
-        return valid;
-      }
-      getSchema(keyRef) {
-        let sch;
-        while (typeof (sch = getSchEnv.call(this, keyRef)) == "string")
-          keyRef = sch;
-        if (sch === void 0) {
-          const { schemaId } = this.opts;
-          const root = new compile_1.SchemaEnv({ schema: {}, schemaId });
-          sch = compile_1.resolveSchema.call(this, root, keyRef);
-          if (!sch)
-            return;
-          this.refs[keyRef] = sch;
-        }
-        return sch.validate || this._compileSchemaEnv(sch);
-      }
-      removeSchema(schemaKeyRef) {
-        if (schemaKeyRef instanceof RegExp) {
-          this._removeAllSchemas(this.schemas, schemaKeyRef);
-          this._removeAllSchemas(this.refs, schemaKeyRef);
-          return this;
-        }
-        switch (typeof schemaKeyRef) {
-          case "undefined":
-            this._removeAllSchemas(this.schemas);
-            this._removeAllSchemas(this.refs);
-            this._cache.clear();
-            return this;
-          case "string": {
-            const sch = getSchEnv.call(this, schemaKeyRef);
-            if (typeof sch == "object")
-              this._cache.delete(sch.schema);
-            delete this.schemas[schemaKeyRef];
-            delete this.refs[schemaKeyRef];
-            return this;
-          }
-          case "object": {
-            const cacheKey = schemaKeyRef;
-            this._cache.delete(cacheKey);
-            let id = schemaKeyRef[this.opts.schemaId];
-            if (id) {
-              id = (0, resolve_1.normalizeId)(id);
-              delete this.schemas[id];
-              delete this.refs[id];
-            }
-            return this;
-          }
-          default:
-            throw new Error("ajv.removeSchema: invalid parameter");
-        }
-      }
-      addVocabulary(definitions) {
-        for (const def of definitions)
-          this.addKeyword(def);
-        return this;
-      }
-      addKeyword(kwdOrDef, def) {
-        let keyword;
-        if (typeof kwdOrDef == "string") {
-          keyword = kwdOrDef;
-          if (typeof def == "object") {
-            this.logger.warn("these parameters are deprecated, see docs for addKeyword");
-            def.keyword = keyword;
-          }
-        } else if (typeof kwdOrDef == "object" && def === void 0) {
-          def = kwdOrDef;
-          keyword = def.keyword;
-          if (Array.isArray(keyword) && !keyword.length) {
-            throw new Error("addKeywords: keyword must be string or non-empty array");
-          }
-        } else {
-          throw new Error("invalid addKeywords parameters");
-        }
-        checkKeyword.call(this, keyword, def);
-        if (!def) {
-          (0, util_1.eachItem)(keyword, (kwd) => addRule.call(this, kwd));
-          return this;
-        }
-        keywordMetaschema.call(this, def);
-        const definition = {
-          ...def,
-          type: (0, dataType_1.getJSONTypes)(def.type),
-          schemaType: (0, dataType_1.getJSONTypes)(def.schemaType)
-        };
-        (0, util_1.eachItem)(keyword, definition.type.length === 0 ? (k) => addRule.call(this, k, definition) : (k) => definition.type.forEach((t) => addRule.call(this, k, definition, t)));
-        return this;
-      }
-      getKeyword(keyword) {
-        const rule = this.RULES.all[keyword];
-        return typeof rule == "object" ? rule.definition : !!rule;
-      }
-      removeKeyword(keyword) {
-        const { RULES } = this;
-        delete RULES.keywords[keyword];
-        delete RULES.all[keyword];
-        for (const group of RULES.rules) {
-          const i = group.rules.findIndex((rule) => rule.keyword === keyword);
-          if (i >= 0)
-            group.rules.splice(i, 1);
-        }
-        return this;
-      }
-      addFormat(name, format) {
-        if (typeof format == "string")
-          format = new RegExp(format);
-        this.formats[name] = format;
-        return this;
-      }
-      errorsText(errors = this.errors, { separator = ", ", dataVar = "data" } = {}) {
-        if (!errors || errors.length === 0)
-          return "No errors";
-        return errors.map((e) => `${dataVar}${e.instancePath} ${e.message}`).reduce((text, msg) => text + separator + msg);
-      }
-      $dataMetaSchema(metaSchema, keywordsJsonPointers) {
-        const rules = this.RULES.all;
-        metaSchema = JSON.parse(JSON.stringify(metaSchema));
-        for (const jsonPointer of keywordsJsonPointers) {
-          const segments = jsonPointer.split("/").slice(1);
-          let keywords = metaSchema;
-          for (const seg of segments)
-            keywords = keywords[seg];
-          for (const key in rules) {
-            const rule = rules[key];
-            if (typeof rule != "object")
-              continue;
-            const { $data } = rule.definition;
-            const schema = keywords[key];
-            if ($data && schema)
-              keywords[key] = schemaOrData(schema);
-          }
-        }
-        return metaSchema;
-      }
-      _removeAllSchemas(schemas, regex) {
-        for (const keyRef in schemas) {
-          const sch = schemas[keyRef];
-          if (!regex || regex.test(keyRef)) {
-            if (typeof sch == "string") {
-              delete schemas[keyRef];
-            } else if (sch && !sch.meta) {
-              this._cache.delete(sch.schema);
-              delete schemas[keyRef];
-            }
-          }
-        }
-      }
-      _addSchema(schema, meta, baseId, validateSchema = this.opts.validateSchema, addSchema = this.opts.addUsedSchema) {
-        let id;
-        const { schemaId } = this.opts;
-        if (typeof schema == "object") {
-          id = schema[schemaId];
-        } else {
-          if (this.opts.jtd)
-            throw new Error("schema must be object");
-          else if (typeof schema != "boolean")
-            throw new Error("schema must be object or boolean");
-        }
-        let sch = this._cache.get(schema);
-        if (sch !== void 0)
-          return sch;
-        baseId = (0, resolve_1.normalizeId)(id || baseId);
-        const localRefs = resolve_1.getSchemaRefs.call(this, schema, baseId);
-        sch = new compile_1.SchemaEnv({ schema, schemaId, meta, baseId, localRefs });
-        this._cache.set(sch.schema, sch);
-        if (addSchema && !baseId.startsWith("#")) {
-          if (baseId)
-            this._checkUnique(baseId);
-          this.refs[baseId] = sch;
-        }
-        if (validateSchema)
-          this.validateSchema(schema, true);
-        return sch;
-      }
-      _checkUnique(id) {
-        if (this.schemas[id] || this.refs[id]) {
-          throw new Error(`schema with key or id "${id}" already exists`);
-        }
-      }
-      _compileSchemaEnv(sch) {
-        if (sch.meta)
-          this._compileMetaSchema(sch);
-        else
-          compile_1.compileSchema.call(this, sch);
-        if (!sch.validate)
-          throw new Error("ajv implementation error");
-        return sch.validate;
-      }
-      _compileMetaSchema(sch) {
-        const currentOpts = this.opts;
-        this.opts = this._metaOpts;
-        try {
-          compile_1.compileSchema.call(this, sch);
-        } finally {
-          this.opts = currentOpts;
-        }
-      }
-    };
-    exports.default = Ajv3;
-    Ajv3.ValidationError = validation_error_1.default;
-    Ajv3.MissingRefError = ref_error_1.default;
-    function checkOptions(checkOpts, options, msg, log = "error") {
-      for (const key in checkOpts) {
-        const opt = key;
-        if (opt in options)
-          this.logger[log](`${msg}: option ${key}. ${checkOpts[opt]}`);
-      }
-    }
-    function getSchEnv(keyRef) {
-      keyRef = (0, resolve_1.normalizeId)(keyRef);
-      return this.schemas[keyRef] || this.refs[keyRef];
-    }
-    function addInitialSchemas() {
-      const optsSchemas = this.opts.schemas;
-      if (!optsSchemas)
-        return;
-      if (Array.isArray(optsSchemas))
-        this.addSchema(optsSchemas);
-      else
-        for (const key in optsSchemas)
-          this.addSchema(optsSchemas[key], key);
-    }
-    function addInitialFormats() {
-      for (const name in this.opts.formats) {
-        const format = this.opts.formats[name];
-        if (format)
-          this.addFormat(name, format);
-      }
-    }
-    function addInitialKeywords(defs) {
-      if (Array.isArray(defs)) {
-        this.addVocabulary(defs);
-        return;
-      }
-      this.logger.warn("keywords option as map is deprecated, pass array");
-      for (const keyword in defs) {
-        const def = defs[keyword];
-        if (!def.keyword)
-          def.keyword = keyword;
-        this.addKeyword(def);
-      }
-    }
-    function getMetaSchemaOptions() {
-      const metaOpts = { ...this.opts };
-      for (const opt of META_IGNORE_OPTIONS)
-        delete metaOpts[opt];
-      return metaOpts;
-    }
-    var noLogs = { log() {
-    }, warn() {
-    }, error() {
-    } };
-    function getLogger(logger) {
-      if (logger === false)
-        return noLogs;
-      if (logger === void 0)
-        return console;
-      if (logger.log && logger.warn && logger.error)
-        return logger;
-      throw new Error("logger must implement log, warn and error methods");
-    }
-    var KEYWORD_NAME = /^[a-z_$][a-z0-9_$:-]*$/i;
-    function checkKeyword(keyword, def) {
-      const { RULES } = this;
-      (0, util_1.eachItem)(keyword, (kwd) => {
-        if (RULES.keywords[kwd])
-          throw new Error(`Keyword ${kwd} is already defined`);
-        if (!KEYWORD_NAME.test(kwd))
-          throw new Error(`Keyword ${kwd} has invalid name`);
-      });
-      if (!def)
-        return;
-      if (def.$data && !("code" in def || "validate" in def)) {
-        throw new Error('$data keyword must have "code" or "validate" function');
-      }
-    }
-    function addRule(keyword, definition, dataType) {
-      var _a;
-      const post = definition === null || definition === void 0 ? void 0 : definition.post;
-      if (dataType && post)
-        throw new Error('keyword with "post" flag cannot have "type"');
-      const { RULES } = this;
-      let ruleGroup = post ? RULES.post : RULES.rules.find(({ type: t }) => t === dataType);
-      if (!ruleGroup) {
-        ruleGroup = { type: dataType, rules: [] };
-        RULES.rules.push(ruleGroup);
-      }
-      RULES.keywords[keyword] = true;
-      if (!definition)
-        return;
-      const rule = {
-        keyword,
-        definition: {
-          ...definition,
-          type: (0, dataType_1.getJSONTypes)(definition.type),
-          schemaType: (0, dataType_1.getJSONTypes)(definition.schemaType)
-        }
-      };
-      if (definition.before)
-        addBeforeRule.call(this, ruleGroup, rule, definition.before);
-      else
-        ruleGroup.rules.push(rule);
-      RULES.all[keyword] = rule;
-      (_a = definition.implements) === null || _a === void 0 ? void 0 : _a.forEach((kwd) => this.addKeyword(kwd));
-    }
-    function addBeforeRule(ruleGroup, rule, before) {
-      const i = ruleGroup.rules.findIndex((_rule) => _rule.keyword === before);
-      if (i >= 0) {
-        ruleGroup.rules.splice(i, 0, rule);
-      } else {
-        ruleGroup.rules.push(rule);
-        this.logger.warn(`rule ${before} is not defined`);
-      }
-    }
-    function keywordMetaschema(def) {
-      let { metaSchema } = def;
-      if (metaSchema === void 0)
-        return;
-      if (def.$data && this.opts.$data)
-        metaSchema = schemaOrData(metaSchema);
-      def.validateSchema = this.compile(metaSchema, true);
-    }
-    var $dataRef = {
-      $ref: "https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"
-    };
-    function schemaOrData(schema) {
-      return { anyOf: [schema, $dataRef] };
-    }
-  }
-});
-
-// ../../node_modules/ajv/dist/vocabularies/core/id.js
-var require_id = __commonJS({
-  "../../node_modules/ajv/dist/vocabularies/core/id.js"(exports) {
-    "use strict";
-    Object.defineProperty(exports, "__esModule", { value: true });
-    var def = {
-      keyword: "id",
-      code() {
-        throw new Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID');
-      }
-    };
-    exports.default = def;
-  }
-});
-
-// ../../node_modules/ajv/dist/vocabularies/core/ref.js
-var require_ref = __commonJS({
-  "../../node_modules/ajv/dist/vocabularies/core/ref.js"(exports) {
-    "use strict";
-    Object.defineProperty(exports, "__esModule", { value: true });
-    exports.callRef = exports.getValidate = void 0;
-    var ref_error_1 = require_ref_error();
-    var code_1 = require_code2();
-    var codegen_1 = require_codegen();
-    var names_1 = require_names();
-    var compile_1 = require_compile();
-    var util_1 = require_util();
-    var def = {
-      keyword: "$ref",
-      schemaType: "string",
-      code(cxt) {
-        const { gen, schema: $ref, it } = cxt;
-        const { baseId, schemaEnv: env, validateName, opts, self } = it;
-        const { root } = env;
-        if (($ref === "#" || $ref === "#/") && baseId === root.baseId)
-          return callRootRef();
-        const schOrEnv = compile_1.resolveRef.call(self, root, baseId, $ref);
-        if (schOrEnv === void 0)
-          throw new ref_error_1.default(it.opts.uriResolver, baseId, $ref);
-        if (schOrEnv instanceof compile_1.SchemaEnv)
-          return callValidate(schOrEnv);
-        return inlineRefSchema(schOrEnv);
-        function callRootRef() {
-          if (env === root)
-            return callRef(cxt, validateName, env, env.$async);
-          const rootName = gen.scopeValue("root", { ref: root });
-          return callRef(cxt, (0, codegen_1._)`${rootName}.validate`, root, root.$async);
-        }
-        function callValidate(sch) {
-          const v = getValidate(cxt, sch);
-          callRef(cxt, v, sch, sch.$async);
-        }
-        function inlineRefSchema(sch) {
-          const schName = gen.scopeValue("schema", opts.code.source === true ? { ref: sch, code: (0, codegen_1.stringify)(sch) } : { ref: sch });
-          const valid = gen.name("valid");
-          const schCxt = cxt.subschema({
-            schema: sch,
-            dataTypes: [],
-            schemaPath: codegen_1.nil,
-            topSchemaRef: schName,
-            errSchemaPath: $ref
-          }, valid);
-          cxt.mergeEvaluated(schCxt);
-          cxt.ok(valid);
-        }
-      }
-    };
-    function getValidate(cxt, sch) {
-      const { gen } = cxt;
-      return sch.validate ? gen.scopeValue("validate", { ref: sch.validate }) : (0, codegen_1._)`${gen.scopeValue("wrapper", { ref: sch })}.validate`;
-    }
-    exports.getValidate = getValidate;
-    function callRef(cxt, v, sch, $async) {
-      const { gen, it } = cxt;
-      const { allErrors, schemaEnv: env, opts } = it;
-      const passCxt = opts.passContext ? names_1.default.this : codegen_1.nil;
-      if ($async)
-        callAsyncRef();
-      else
-        callSyncRef();
-      function callAsyncRef() {
-        if (!env.$async)
-          throw new Error("async schema referenced by sync schema");
-        const valid = gen.let("valid");
-        gen.try(() => {
-          gen.code((0, codegen_1._)`await ${(0, code_1.callValidateCode)(cxt, v, passCxt)}`);
-          addEvaluatedFrom(v);
-          if (!allErrors)
-            gen.assign(valid, true);
-        }, (e) => {
-          gen.if((0, codegen_1._)`!(${e} instanceof ${it.ValidationError})`, () => gen.throw(e));
-          addErrorsFrom(e);
-          if (!allErrors)
-            gen.assign(valid, false);
-        });
-        cxt.ok(valid);
-      }
-      function callSyncRef() {
-        cxt.result((0, code_1.callValidateCode)(cxt, v, passCxt), () => addEvaluatedFrom(v), () => addErrorsFrom(v));
-      }
-      function addErrorsFrom(source) {
-        const errs = (0, codegen_1._)`${source}.errors`;
-        gen.assign(names_1.default.vErrors, (0, codegen_1._)`${names_1.default.vErrors} === null ? ${errs} : ${names_1.default.vErrors}.concat(${errs})`);
-        gen.assign(names_1.default.errors, (0, codegen_1._)`${names_1.default.vErrors}.length`);
-      }
-      function addEvaluatedFrom(source) {
-        var _a;
-        if (!it.opts.unevaluated)
-          return;
-        const schEvaluated = (_a = sch === null || sch === void 0 ? void 0 : sch.validate) === null || _a === void 0 ? void 0 : _a.evaluated;
-        if (it.props !== true) {
-          if (schEvaluated && !schEvaluated.dynamicProps) {
-            if (schEvaluated.props !== void 0) {
-              it.props = util_1.mergeEvaluated.props(gen, schEvaluated.props, it.props);
-            }
-          } else {
-            const props = gen.var("props", (0, codegen_1._)`${source}.evaluated.props`);
-            it.props = util_1.mergeEvaluated.props(gen, props, it.props, codegen_1.Name);
-          }
-        }
-        if (it.items !== true) {
-          if (schEvaluated && !schEvaluated.dynamicItems) {
-            if (schEvaluated.items !== void 0) {
-              it.items = util_1.mergeEvaluated.items(gen, schEvaluated.items, it.items);
-            }
-          } else {
-            const items = gen.var("items", (0, codegen_1._)`${source}.evaluated.items`);
-            it.items = util_1.mergeEvaluated.items(gen, items, it.items, codegen_1.Name);
-          }
-        }
-      }
-    }
-    exports.callRef = callRef;
-    exports.default = def;
-  }
-});
-
-// ../../node_modules/ajv/dist/vocabularies/core/index.js
-var require_core2 = __commonJS({
-  "../../node_modules/ajv/dist/vocabularies/core/index.js"(exports) {
-    "use strict";
-    Object.defineProperty(exports, "__esModule", { value: true });
-    var id_1 = require_id();
-    var ref_1 = require_ref();
-    var core = [
-      "$schema",
-      "$id",
-      "$defs",
-      "$vocabulary",
-      { keyword: "$comment" },
-      "definitions",
-      id_1.default,
-      ref_1.default
-    ];
-    exports.default = core;
-  }
-});
-
-// ../../node_modules/ajv/dist/vocabularies/validation/limitNumber.js
-var require_limitNumber = __commonJS({
-  "../../node_modules/ajv/dist/vocabularies/validation/limitNumber.js"(exports) {
-    "use strict";
-    Object.defineProperty(exports, "__esModule", { value: true });
-    var codegen_1 = require_codegen();
-    var ops = codegen_1.operators;
-    var KWDs = {
-      maximum: { okStr: "<=", ok: ops.LTE, fail: ops.GT },
-      minimum: { okStr: ">=", ok: ops.GTE, fail: ops.LT },
-      exclusiveMaximum: { okStr: "<", ok: ops.LT, fail: ops.GTE },
-      exclusiveMinimum: { okStr: ">", ok: ops.GT, fail: ops.LTE }
-    };
-    var error = {
-      message: ({ keyword, schemaCode }) => (0, codegen_1.str)`must be ${KWDs[keyword].okStr} ${schemaCode}`,
-      params: ({ keyword, schemaCode }) => (0, codegen_1._)`{comparison: ${KWDs[keyword].okStr}, limit: ${schemaCode}}`
-    };
-    var def = {
-      keyword: Object.keys(KWDs),
-      type: "number",
-      schemaType: "number",
-      $data: true,
-      error,
-      code(cxt) {
-        const { keyword, data, schemaCode } = cxt;
-        cxt.fail$data((0, codegen_1._)`${data} ${KWDs[keyword].fail} ${schemaCode} || isNaN(${data})`);
-      }
-    };
-    exports.default = def;
-  }
-});
-
-// ../../node_modules/ajv/dist/vocabularies/validation/multipleOf.js
-var require_multipleOf = __commonJS({
-  "../../node_modules/ajv/dist/vocabularies/validation/multipleOf.js"(exports) {
-    "use strict";
-    Object.defineProperty(exports, "__esModule", { value: true });
-    var codegen_1 = require_codegen();
-    var error = {
-      message: ({ schemaCode }) => (0, codegen_1.str)`must be multiple of ${schemaCode}`,
-      params: ({ schemaCode }) => (0, codegen_1._)`{multipleOf: ${schemaCode}}`
-    };
-    var def = {
-      keyword: "multipleOf",
-      type: "number",
-      schemaType: "number",
-      $data: true,
-      error,
-      code(cxt) {
-        const { gen, data, schemaCode, it } = cxt;
-        const prec = it.opts.multipleOfPrecision;
-        const res = gen.let("res");
-        const invalid = prec ? (0, codegen_1._)`Math.abs(Math.round(${res}) - ${res}) > 1e-${prec}` : (0, codegen_1._)`${res} !== parseInt(${res})`;
-        cxt.fail$data((0, codegen_1._)`(${schemaCode} === 0 || (${res} = ${data}/${schemaCode}, ${invalid}))`);
-      }
-    };
-    exports.default = def;
-  }
-});
-
-// ../../node_modules/ajv/dist/runtime/ucs2length.js
-var require_ucs2length = __commonJS({
-  "../../node_modules/ajv/dist/runtime/ucs2length.js"(exports) {
-    "use strict";
-    Object.defineProperty(exports, "__esModule", { value: true });
-    function ucs2length(str) {
-      const len = str.length;
-      let length = 0;
-      let pos = 0;
-      let value;
-      while (pos < len) {
-        length++;
-        value = str.charCodeAt(pos++);
-        if (value >= 55296 && value <= 56319 && pos < len) {
-          value = str.charCodeAt(pos);
-          if ((value & 64512) === 56320)
-            pos++;
-        }
-      }
-      return length;
-    }
-    exports.default = ucs2length;
-    ucs2length.code = 'require("ajv/dist/runtime/ucs2length").default';
-  }
-});
-
-// ../../node_modules/ajv/dist/vocabularies/validation/limitLength.js
-var require_limitLength = __commonJS({
-  "../../node_modules/ajv/dist/vocabularies/validation/limitLength.js"(exports) {
-    "use strict";
-    Object.defineProperty(exports, "__esModule", { value: true });
-    var codegen_1 = require_codegen();
-    var util_1 = require_util();
-    var ucs2length_1 = require_ucs2length();
-    var error = {
-      message({ keyword, schemaCode }) {
-        const comp = keyword === "maxLength" ? "more" : "fewer";
-        return (0, codegen_1.str)`must NOT have ${comp} than ${schemaCode} characters`;
-      },
-      params: ({ schemaCode }) => (0, codegen_1._)`{limit: ${schemaCode}}`
-    };
-    var def = {
-      keyword: ["maxLength", "minLength"],
-      type: "string",
-      schemaType: "number",
-      $data: true,
-      error,
-      code(cxt) {
-        const { keyword, data, schemaCode, it } = cxt;
-        const op = keyword === "maxLength" ? codegen_1.operators.GT : codegen_1.operators.LT;
-        const len = it.opts.unicode === false ? (0, codegen_1._)`${data}.length` : (0, codegen_1._)`${(0, util_1.useFunc)(cxt.gen, ucs2length_1.default)}(${data})`;
-        cxt.fail$data((0, codegen_1._)`${len} ${op} ${schemaCode}`);
-      }
-    };
-    exports.default = def;
-  }
-});
-
-// ../../node_modules/ajv/dist/vocabularies/validation/pattern.js
-var require_pattern = __commonJS({
-  "../../node_modules/ajv/dist/vocabularies/validation/pattern.js"(exports) {
-    "use strict";
-    Object.defineProperty(exports, "__esModule", { value: true });
-    var code_1 = require_code2();
-    var codegen_1 = require_codegen();
-    var error = {
-      message: ({ schemaCode }) => (0, codegen_1.str)`must match pattern "${schemaCode}"`,
-      params: ({ schemaCode }) => (0, codegen_1._)`{pattern: ${schemaCode}}`
-    };
-    var def = {
-      keyword: "pattern",
-      type: "string",
-      schemaType: "string",
-      $data: true,
-      error,
-      code(cxt) {
-        const { data, $data, schema, schemaCode, it } = cxt;
-        const u = it.opts.unicodeRegExp ? "u" : "";
-        const regExp = $data ? (0, codegen_1._)`(new RegExp(${schemaCode}, ${u}))` : (0, code_1.usePattern)(cxt, schema);
-        cxt.fail$data((0, codegen_1._)`!${regExp}.test(${data})`);
-      }
-    };
-    exports.default = def;
-  }
-});
-
-// ../../node_modules/ajv/dist/vocabularies/validation/limitProperties.js
-var require_limitProperties = __commonJS({
-  "../../node_modules/ajv/dist/vocabularies/validation/limitProperties.js"(exports) {
-    "use strict";
-    Object.defineProperty(exports, "__esModule", { value: true });
-    var codegen_1 = require_codegen();
-    var error = {
-      message({ keyword, schemaCode }) {
-        const comp = keyword === "maxProperties" ? "more" : "fewer";
-        return (0, codegen_1.str)`must NOT have ${comp} than ${schemaCode} properties`;
-      },
-      params: ({ schemaCode }) => (0, codegen_1._)`{limit: ${schemaCode}}`
-    };
-    var def = {
-      keyword: ["maxProperties", "minProperties"],
-      type: "object",
-      schemaType: "number",
-      $data: true,
-      error,
-      code(cxt) {
-        const { keyword, data, schemaCode } = cxt;
-        const op = keyword === "maxProperties" ? codegen_1.operators.GT : codegen_1.operators.LT;
-        cxt.fail$data((0, codegen_1._)`Object.keys(${data}).length ${op} ${schemaCode}`);
-      }
-    };
-    exports.default = def;
-  }
-});
-
-// ../../node_modules/ajv/dist/vocabularies/validation/required.js
-var require_required = __commonJS({
-  "../../node_modules/ajv/dist/vocabularies/validation/required.js"(exports) {
-    "use strict";
-    Object.defineProperty(exports, "__esModule", { value: true });
-    var code_1 = require_code2();
-    var codegen_1 = require_codegen();
-    var util_1 = require_util();
-    var error = {
-      message: ({ params: { missingProperty } }) => (0, codegen_1.str)`must have required property '${missingProperty}'`,
-      params: ({ params: { missingProperty } }) => (0, codegen_1._)`{missingProperty: ${missingProperty}}`
-    };
-    var def = {
-      keyword: "required",
-      type: "object",
-      schemaType: "array",
-      $data: true,
-      error,
-      code(cxt) {
-        const { gen, schema, schemaCode, data, $data, it } = cxt;
-        const { opts } = it;
-        if (!$data && schema.length === 0)
-          return;
-        const useLoop = schema.length >= opts.loopRequired;
-        if (it.allErrors)
-          allErrorsMode();
-        else
-          exitOnErrorMode();
-        if (opts.strictRequired) {
-          const props = cxt.parentSchema.properties;
-          const { definedProperties } = cxt.it;
-          for (const requiredKey of schema) {
-            if ((props === null || props === void 0 ? void 0 : props[requiredKey]) === void 0 && !definedProperties.has(requiredKey)) {
-              const schemaPath = it.schemaEnv.baseId + it.errSchemaPath;
-              const msg = `required property "${requiredKey}" is not defined at "${schemaPath}" (strictRequired)`;
-              (0, util_1.checkStrictMode)(it, msg, it.opts.strictRequired);
-            }
-          }
-        }
-        function allErrorsMode() {
-          if (useLoop || $data) {
-            cxt.block$data(codegen_1.nil, loopAllRequired);
-          } else {
-            for (const prop of schema) {
-              (0, code_1.checkReportMissingProp)(cxt, prop);
-            }
-          }
-        }
-        function exitOnErrorMode() {
-          const missing = gen.let("missing");
-          if (useLoop || $data) {
-            const valid = gen.let("valid", true);
-            cxt.block$data(valid, () => loopUntilMissing(missing, valid));
-            cxt.ok(valid);
-          } else {
-            gen.if((0, code_1.checkMissingProp)(cxt, schema, missing));
-            (0, code_1.reportMissingProp)(cxt, missing);
-            gen.else();
-          }
-        }
-        function loopAllRequired() {
-          gen.forOf("prop", schemaCode, (prop) => {
-            cxt.setParams({ missingProperty: prop });
-            gen.if((0, code_1.noPropertyInData)(gen, data, prop, opts.ownProperties), () => cxt.error());
-          });
-        }
-        function loopUntilMissing(missing, valid) {
-          cxt.setParams({ missingProperty: missing });
-          gen.forOf(missing, schemaCode, () => {
-            gen.assign(valid, (0, code_1.propertyInData)(gen, data, missing, opts.ownProperties));
-            gen.if((0, codegen_1.not)(valid), () => {
-              cxt.error();
-              gen.break();
-            });
-          }, codegen_1.nil);
-        }
-      }
-    };
-    exports.default = def;
-  }
-});
-
-// ../../node_modules/ajv/dist/vocabularies/validation/limitItems.js
-var require_limitItems = __commonJS({
-  "../../node_modules/ajv/dist/vocabularies/validation/limitItems.js"(exports) {
-    "use strict";
-    Object.defineProperty(exports, "__esModule", { value: true });
-    var codegen_1 = require_codegen();
-    var error = {
-      message({ keyword, schemaCode }) {
-        const comp = keyword === "maxItems" ? "more" : "fewer";
-        return (0, codegen_1.str)`must NOT have ${comp} than ${schemaCode} items`;
-      },
-      params: ({ schemaCode }) => (0, codegen_1._)`{limit: ${schemaCode}}`
-    };
-    var def = {
-      keyword: ["maxItems", "minItems"],
-      type: "array",
-      schemaType: "number",
-      $data: true,
-      error,
-      code(cxt) {
-        const { keyword, data, schemaCode } = cxt;
-        const op = keyword === "maxItems" ? codegen_1.operators.GT : codegen_1.operators.LT;
-        cxt.fail$data((0, codegen_1._)`${data}.length ${op} ${schemaCode}`);
-      }
-    };
-    exports.default = def;
-  }
-});
-
-// ../../node_modules/ajv/dist/runtime/equal.js
-var require_equal = __commonJS({
-  "../../node_modules/ajv/dist/runtime/equal.js"(exports) {
-    "use strict";
-    Object.defineProperty(exports, "__esModule", { value: true });
-    var equal = require_fast_deep_equal();
-    equal.code = 'require("ajv/dist/runtime/equal").default';
-    exports.default = equal;
-  }
-});
-
-// ../../node_modules/ajv/dist/vocabularies/validation/uniqueItems.js
-var require_uniqueItems = __commonJS({
-  "../../node_modules/ajv/dist/vocabularies/validation/uniqueItems.js"(exports) {
-    "use strict";
-    Object.defineProperty(exports, "__esModule", { value: true });
-    var dataType_1 = require_dataType();
-    var codegen_1 = require_codegen();
-    var util_1 = require_util();
-    var equal_1 = require_equal();
-    var error = {
-      message: ({ params: { i, j } }) => (0, codegen_1.str)`must NOT have duplicate items (items ## ${j} and ${i} are identical)`,
-      params: ({ params: { i, j } }) => (0, codegen_1._)`{i: ${i}, j: ${j}}`
-    };
-    var def = {
-      keyword: "uniqueItems",
-      type: "array",
-      schemaType: "boolean",
-      $data: true,
-      error,
-      code(cxt) {
-        const { gen, data, $data, schema, parentSchema, schemaCode, it } = cxt;
-        if (!$data && !schema)
-          return;
-        const valid = gen.let("valid");
-        const itemTypes = parentSchema.items ? (0, dataType_1.getSchemaTypes)(parentSchema.items) : [];
-        cxt.block$data(valid, validateUniqueItems, (0, codegen_1._)`${schemaCode} === false`);
-        cxt.ok(valid);
-        function validateUniqueItems() {
-          const i = gen.let("i", (0, codegen_1._)`${data}.length`);
-          const j = gen.let("j");
-          cxt.setParams({ i, j });
-          gen.assign(valid, true);
-          gen.if((0, codegen_1._)`${i} > 1`, () => (canOptimize() ? loopN : loopN2)(i, j));
-        }
-        function canOptimize() {
-          return itemTypes.length > 0 && !itemTypes.some((t) => t === "object" || t === "array");
-        }
-        function loopN(i, j) {
-          const item = gen.name("item");
-          const wrongType = (0, dataType_1.checkDataTypes)(itemTypes, item, it.opts.strictNumbers, dataType_1.DataType.Wrong);
-          const indices = gen.const("indices", (0, codegen_1._)`{}`);
-          gen.for((0, codegen_1._)`;${i}--;`, () => {
-            gen.let(item, (0, codegen_1._)`${data}[${i}]`);
-            gen.if(wrongType, (0, codegen_1._)`continue`);
-            if (itemTypes.length > 1)
-              gen.if((0, codegen_1._)`typeof ${item} == "string"`, (0, codegen_1._)`${item} += "_"`);
-            gen.if((0, codegen_1._)`typeof ${indices}[${item}] == "number"`, () => {
-              gen.assign(j, (0, codegen_1._)`${indices}[${item}]`);
-              cxt.error();
-              gen.assign(valid, false).break();
-            }).code((0, codegen_1._)`${indices}[${item}] = ${i}`);
-          });
-        }
-        function loopN2(i, j) {
-          const eql = (0, util_1.useFunc)(gen, equal_1.default);
-          const outer = gen.name("outer");
-          gen.label(outer).for((0, codegen_1._)`;${i}--;`, () => gen.for((0, codegen_1._)`${j} = ${i}; ${j}--;`, () => gen.if((0, codegen_1._)`${eql}(${data}[${i}], ${data}[${j}])`, () => {
-            cxt.error();
-            gen.assign(valid, false).break(outer);
-          })));
-        }
-      }
-    };
-    exports.default = def;
-  }
-});
-
-// ../../node_modules/ajv/dist/vocabularies/validation/const.js
-var require_const = __commonJS({
-  "../../node_modules/ajv/dist/vocabularies/validation/const.js"(exports) {
-    "use strict";
-    Object.defineProperty(exports, "__esModule", { value: true });
-    var codegen_1 = require_codegen();
-    var util_1 = require_util();
-    var equal_1 = require_equal();
-    var error = {
-      message: "must be equal to constant",
-      params: ({ schemaCode }) => (0, codegen_1._)`{allowedValue: ${schemaCode}}`
-    };
-    var def = {
-      keyword: "const",
-      $data: true,
-      error,
-      code(cxt) {
-        const { gen, data, $data, schemaCode, schema } = cxt;
-        if ($data || schema && typeof schema == "object") {
-          cxt.fail$data((0, codegen_1._)`!${(0, util_1.useFunc)(gen, equal_1.default)}(${data}, ${schemaCode})`);
-        } else {
-          cxt.fail((0, codegen_1._)`${schema} !== ${data}`);
-        }
-      }
-    };
-    exports.default = def;
-  }
-});
-
-// ../../node_modules/ajv/dist/vocabularies/validation/enum.js
-var require_enum = __commonJS({
-  "../../node_modules/ajv/dist/vocabularies/validation/enum.js"(exports) {
-    "use strict";
-    Object.defineProperty(exports, "__esModule", { value: true });
-    var codegen_1 = require_codegen();
-    var util_1 = require_util();
-    var equal_1 = require_equal();
-    var error = {
-      message: "must be equal to one of the allowed values",
-      params: ({ schemaCode }) => (0, codegen_1._)`{allowedValues: ${schemaCode}}`
-    };
-    var def = {
-      keyword: "enum",
-      schemaType: "array",
-      $data: true,
-      error,
-      code(cxt) {
-        const { gen, data, $data, schema, schemaCode, it } = cxt;
-        if (!$data && schema.length === 0)
-          throw new Error("enum must have non-empty array");
-        const useLoop = schema.length >= it.opts.loopEnum;
-        let eql;
-        const getEql = () => eql !== null && eql !== void 0 ? eql : eql = (0, util_1.useFunc)(gen, equal_1.default);
-        let valid;
-        if (useLoop || $data) {
-          valid = gen.let("valid");
-          cxt.block$data(valid, loopEnum);
-        } else {
-          if (!Array.isArray(schema))
-            throw new Error("ajv implementation error");
-          const vSchema = gen.const("vSchema", schemaCode);
-          valid = (0, codegen_1.or)(...schema.map((_x, i) => equalCode(vSchema, i)));
-        }
-        cxt.pass(valid);
-        function loopEnum() {
-          gen.assign(valid, false);
-          gen.forOf("v", schemaCode, (v) => gen.if((0, codegen_1._)`${getEql()}(${data}, ${v})`, () => gen.assign(valid, true).break()));
-        }
-        function equalCode(vSchema, i) {
-          const sch = schema[i];
-          return typeof sch === "object" && sch !== null ? (0, codegen_1._)`${getEql()}(${data}, ${vSchema}[${i}])` : (0, codegen_1._)`${data} === ${sch}`;
-        }
-      }
-    };
-    exports.default = def;
-  }
-});
-
-// ../../node_modules/ajv/dist/vocabularies/validation/index.js
-var require_validation = __commonJS({
-  "../../node_modules/ajv/dist/vocabularies/validation/index.js"(exports) {
-    "use strict";
-    Object.defineProperty(exports, "__esModule", { value: true });
-    var limitNumber_1 = require_limitNumber();
-    var multipleOf_1 = require_multipleOf();
-    var limitLength_1 = require_limitLength();
-    var pattern_1 = require_pattern();
-    var limitProperties_1 = require_limitProperties();
-    var required_1 = require_required();
-    var limitItems_1 = require_limitItems();
-    var uniqueItems_1 = require_uniqueItems();
-    var const_1 = require_const();
-    var enum_1 = require_enum();
-    var validation = [
-      limitNumber_1.default,
-      multipleOf_1.default,
-      limitLength_1.default,
-      pattern_1.default,
-      limitProperties_1.default,
-      required_1.default,
-      limitItems_1.default,
-      uniqueItems_1.default,
-      { keyword: "type", schemaType: ["string", "array"] },
-      { keyword: "nullable", schemaType: "boolean" },
-      const_1.default,
-      enum_1.default
-    ];
-    exports.default = validation;
-  }
-});
-
-// ../../node_modules/ajv/dist/vocabularies/applicator/additionalItems.js
-var require_additionalItems = __commonJS({
-  "../../node_modules/ajv/dist/vocabularies/applicator/additionalItems.js"(exports) {
-    "use strict";
-    Object.defineProperty(exports, "__esModule", { value: true });
-    exports.validateAdditionalItems = void 0;
-    var codegen_1 = require_codegen();
-    var util_1 = require_util();
-    var error = {
-      message: ({ params: { len } }) => (0, codegen_1.str)`must NOT have more than ${len} items`,
-      params: ({ params: { len } }) => (0, codegen_1._)`{limit: ${len}}`
-    };
-    var def = {
-      keyword: "additionalItems",
-      type: "array",
-      schemaType: ["boolean", "object"],
-      before: "uniqueItems",
-      error,
-      code(cxt) {
-        const { parentSchema, it } = cxt;
-        const { items } = parentSchema;
-        if (!Array.isArray(items)) {
-          (0, util_1.checkStrictMode)(it, '"additionalItems" is ignored when "items" is not an array of schemas');
-          return;
-        }
-        validateAdditionalItems(cxt, items);
-      }
-    };
-    function validateAdditionalItems(cxt, items) {
-      const { gen, schema, data, keyword, it } = cxt;
-      it.items = true;
-      const len = gen.const("len", (0, codegen_1._)`${data}.length`);
-      if (schema === false) {
-        cxt.setParams({ len: items.length });
-        cxt.pass((0, codegen_1._)`${len} <= ${items.length}`);
-      } else if (typeof schema == "object" && !(0, util_1.alwaysValidSchema)(it, schema)) {
-        const valid = gen.var("valid", (0, codegen_1._)`${len} <= ${items.length}`);
-        gen.if((0, codegen_1.not)(valid), () => validateItems(valid));
-        cxt.ok(valid);
-      }
-      function validateItems(valid) {
-        gen.forRange("i", items.length, len, (i) => {
-          cxt.subschema({ keyword, dataProp: i, dataPropType: util_1.Type.Num }, valid);
-          if (!it.allErrors)
-            gen.if((0, codegen_1.not)(valid), () => gen.break());
-        });
-      }
-    }
-    exports.validateAdditionalItems = validateAdditionalItems;
-    exports.default = def;
-  }
-});
-
-// ../../node_modules/ajv/dist/vocabularies/applicator/items.js
-var require_items = __commonJS({
-  "../../node_modules/ajv/dist/vocabularies/applicator/items.js"(exports) {
-    "use strict";
-    Object.defineProperty(exports, "__esModule", { value: true });
-    exports.validateTuple = void 0;
-    var codegen_1 = require_codegen();
-    var util_1 = require_util();
-    var code_1 = require_code2();
-    var def = {
-      keyword: "items",
-      type: "array",
-      schemaType: ["object", "array", "boolean"],
-      before: "uniqueItems",
-      code(cxt) {
-        const { schema, it } = cxt;
-        if (Array.isArray(schema))
-          return validateTuple(cxt, "additionalItems", schema);
-        it.items = true;
-        if ((0, util_1.alwaysValidSchema)(it, schema))
-          return;
-        cxt.ok((0, code_1.validateArray)(cxt));
-      }
-    };
-    function validateTuple(cxt, extraItems, schArr = cxt.schema) {
-      const { gen, parentSchema, data, keyword, it } = cxt;
-      checkStrictTuple(parentSchema);
-      if (it.opts.unevaluated && schArr.length && it.items !== true) {
-        it.items = util_1.mergeEvaluated.items(gen, schArr.length, it.items);
-      }
-      const valid = gen.name("valid");
-      const len = gen.const("len", (0, codegen_1._)`${data}.length`);
-      schArr.forEach((sch, i) => {
-        if ((0, util_1.alwaysValidSchema)(it, sch))
-          return;
-        gen.if((0, codegen_1._)`${len} > ${i}`, () => cxt.subschema({
-          keyword,
-          schemaProp: i,
-          dataProp: i
-        }, valid));
-        cxt.ok(valid);
-      });
-      function checkStrictTuple(sch) {
-        const { opts, errSchemaPath } = it;
-        const l = schArr.length;
-        const fullTuple = l === sch.minItems && (l === sch.maxItems || sch[extraItems] === false);
-        if (opts.strictTuples && !fullTuple) {
-          const msg = `"${keyword}" is ${l}-tuple, but minItems or maxItems/${extraItems} are not specified or different at path "${errSchemaPath}"`;
-          (0, util_1.checkStrictMode)(it, msg, opts.strictTuples);
-        }
-      }
-    }
-    exports.validateTuple = validateTuple;
-    exports.default = def;
-  }
-});
-
-// ../../node_modules/ajv/dist/vocabularies/applicator/prefixItems.js
-var require_prefixItems = __commonJS({
-  "../../node_modules/ajv/dist/vocabularies/applicator/prefixItems.js"(exports) {
-    "use strict";
-    Object.defineProperty(exports, "__esModule", { value: true });
-    var items_1 = require_items();
-    var def = {
-      keyword: "prefixItems",
-      type: "array",
-      schemaType: ["array"],
-      before: "uniqueItems",
-      code: (cxt) => (0, items_1.validateTuple)(cxt, "items")
-    };
-    exports.default = def;
-  }
-});
-
-// ../../node_modules/ajv/dist/vocabularies/applicator/items2020.js
-var require_items2020 = __commonJS({
-  "../../node_modules/ajv/dist/vocabularies/applicator/items2020.js"(exports) {
-    "use strict";
-    Object.defineProperty(exports, "__esModule", { value: true });
-    var codegen_1 = require_codegen();
-    var util_1 = require_util();
-    var code_1 = require_code2();
-    var additionalItems_1 = require_additionalItems();
-    var error = {
-      message: ({ params: { len } }) => (0, codegen_1.str)`must NOT have more than ${len} items`,
-      params: ({ params: { len } }) => (0, codegen_1._)`{limit: ${len}}`
-    };
-    var def = {
-      keyword: "items",
-      type: "array",
-      schemaType: ["object", "boolean"],
-      before: "uniqueItems",
-      error,
-      code(cxt) {
-        const { schema, parentSchema, it } = cxt;
-        const { prefixItems } = parentSchema;
-        it.items = true;
-        if ((0, util_1.alwaysValidSchema)(it, schema))
-          return;
-        if (prefixItems)
-          (0, additionalItems_1.validateAdditionalItems)(cxt, prefixItems);
-        else
-          cxt.ok((0, code_1.validateArray)(cxt));
-      }
-    };
-    exports.default = def;
-  }
-});
-
-// ../../node_modules/ajv/dist/vocabularies/applicator/contains.js
-var require_contains = __commonJS({
-  "../../node_modules/ajv/dist/vocabularies/applicator/contains.js"(exports) {
-    "use strict";
-    Object.defineProperty(exports, "__esModule", { value: true });
-    var codegen_1 = require_codegen();
-    var util_1 = require_util();
-    var error = {
-      message: ({ params: { min, max } }) => max === void 0 ? (0, codegen_1.str)`must contain at least ${min} valid item(s)` : (0, codegen_1.str)`must contain at least ${min} and no more than ${max} valid item(s)`,
-      params: ({ params: { min, max } }) => max === void 0 ? (0, codegen_1._)`{minContains: ${min}}` : (0, codegen_1._)`{minContains: ${min}, maxContains: ${max}}`
-    };
-    var def = {
-      keyword: "contains",
-      type: "array",
-      schemaType: ["object", "boolean"],
-      before: "uniqueItems",
-      trackErrors: true,
-      error,
-      code(cxt) {
-        const { gen, schema, parentSchema, data, it } = cxt;
-        let min;
-        let max;
-        const { minContains, maxContains } = parentSchema;
-        if (it.opts.next) {
-          min = minContains === void 0 ? 1 : minContains;
-          max = maxContains;
-        } else {
-          min = 1;
-        }
-        const len = gen.const("len", (0, codegen_1._)`${data}.length`);
-        cxt.setParams({ min, max });
-        if (max === void 0 && min === 0) {
-          (0, util_1.checkStrictMode)(it, `"minContains" == 0 without "maxContains": "contains" keyword ignored`);
-          return;
-        }
-        if (max !== void 0 && min > max) {
-          (0, util_1.checkStrictMode)(it, `"minContains" > "maxContains" is always invalid`);
-          cxt.fail();
-          return;
-        }
-        if ((0, util_1.alwaysValidSchema)(it, schema)) {
-          let cond = (0, codegen_1._)`${len} >= ${min}`;
-          if (max !== void 0)
-            cond = (0, codegen_1._)`${cond} && ${len} <= ${max}`;
-          cxt.pass(cond);
-          return;
-        }
-        it.items = true;
-        const valid = gen.name("valid");
-        if (max === void 0 && min === 1) {
-          validateItems(valid, () => gen.if(valid, () => gen.break()));
-        } else if (min === 0) {
-          gen.let(valid, true);
-          if (max !== void 0)
-            gen.if((0, codegen_1._)`${data}.length > 0`, validateItemsWithCount);
-        } else {
-          gen.let(valid, false);
-          validateItemsWithCount();
-        }
-        cxt.result(valid, () => cxt.reset());
-        function validateItemsWithCount() {
-          const schValid = gen.name("_valid");
-          const count = gen.let("count", 0);
-          validateItems(schValid, () => gen.if(schValid, () => checkLimits(count)));
-        }
-        function validateItems(_valid, block) {
-          gen.forRange("i", 0, len, (i) => {
-            cxt.subschema({
-              keyword: "contains",
-              dataProp: i,
-              dataPropType: util_1.Type.Num,
-              compositeRule: true
-            }, _valid);
-            block();
-          });
-        }
-        function checkLimits(count) {
-          gen.code((0, codegen_1._)`${count}++`);
-          if (max === void 0) {
-            gen.if((0, codegen_1._)`${count} >= ${min}`, () => gen.assign(valid, true).break());
-          } else {
-            gen.if((0, codegen_1._)`${count} > ${max}`, () => gen.assign(valid, false).break());
-            if (min === 1)
-              gen.assign(valid, true);
-            else
-              gen.if((0, codegen_1._)`${count} >= ${min}`, () => gen.assign(valid, true));
-          }
-        }
-      }
-    };
-    exports.default = def;
-  }
-});
-
-// ../../node_modules/ajv/dist/vocabularies/applicator/dependencies.js
-var require_dependencies = __commonJS({
-  "../../node_modules/ajv/dist/vocabularies/applicator/dependencies.js"(exports) {
-    "use strict";
-    Object.defineProperty(exports, "__esModule", { value: true });
-    exports.validateSchemaDeps = exports.validatePropertyDeps = exports.error = void 0;
-    var codegen_1 = require_codegen();
-    var util_1 = require_util();
-    var code_1 = require_code2();
-    exports.error = {
-      message: ({ params: { property, depsCount, deps } }) => {
-        const property_ies = depsCount === 1 ? "property" : "properties";
-        return (0, codegen_1.str)`must have ${property_ies} ${deps} when property ${property} is present`;
-      },
-      params: ({ params: { property, depsCount, deps, missingProperty } }) => (0, codegen_1._)`{property: ${property},
-    missingProperty: ${missingProperty},
-    depsCount: ${depsCount},
-    deps: ${deps}}`
-    };
-    var def = {
-      keyword: "dependencies",
-      type: "object",
-      schemaType: "object",
-      error: exports.error,
-      code(cxt) {
-        const [propDeps, schDeps] = splitDependencies(cxt);
-        validatePropertyDeps(cxt, propDeps);
-        validateSchemaDeps(cxt, schDeps);
-      }
-    };
-    function splitDependencies({ schema }) {
-      const propertyDeps = {};
-      const schemaDeps = {};
-      for (const key in schema) {
-        if (key === "__proto__")
-          continue;
-        const deps = Array.isArray(schema[key]) ? propertyDeps : schemaDeps;
-        deps[key] = schema[key];
-      }
-      return [propertyDeps, schemaDeps];
-    }
-    function validatePropertyDeps(cxt, propertyDeps = cxt.schema) {
-      const { gen, data, it } = cxt;
-      if (Object.keys(propertyDeps).length === 0)
-        return;
-      const missing = gen.let("missing");
-      for (const prop in propertyDeps) {
-        const deps = propertyDeps[prop];
-        if (deps.length === 0)
-          continue;
-        const hasProperty = (0, code_1.propertyInData)(gen, data, prop, it.opts.ownProperties);
-        cxt.setParams({
-          property: prop,
-          depsCount: deps.length,
-          deps: deps.join(", ")
-        });
-        if (it.allErrors) {
-          gen.if(hasProperty, () => {
-            for (const depProp of deps) {
-              (0, code_1.checkReportMissingProp)(cxt, depProp);
-            }
-          });
-        } else {
-          gen.if((0, codegen_1._)`${hasProperty} && (${(0, code_1.checkMissingProp)(cxt, deps, missing)})`);
-          (0, code_1.reportMissingProp)(cxt, missing);
-          gen.else();
-        }
-      }
-    }
-    exports.validatePropertyDeps = validatePropertyDeps;
-    function validateSchemaDeps(cxt, schemaDeps = cxt.schema) {
-      const { gen, data, keyword, it } = cxt;
-      const valid = gen.name("valid");
-      for (const prop in schemaDeps) {
-        if ((0, util_1.alwaysValidSchema)(it, schemaDeps[prop]))
-          continue;
-        gen.if(
-          (0, code_1.propertyInData)(gen, data, prop, it.opts.ownProperties),
-          () => {
-            const schCxt = cxt.subschema({ keyword, schemaProp: prop }, valid);
-            cxt.mergeValidEvaluated(schCxt, valid);
-          },
-          () => gen.var(valid, true)
-        );
-        cxt.ok(valid);
-      }
-    }
-    exports.validateSchemaDeps = validateSchemaDeps;
-    exports.default = def;
-  }
-});
-
-// ../../node_modules/ajv/dist/vocabularies/applicator/propertyNames.js
-var require_propertyNames = __commonJS({
-  "../../node_modules/ajv/dist/vocabularies/applicator/propertyNames.js"(exports) {
-    "use strict";
-    Object.defineProperty(exports, "__esModule", { value: true });
-    var codegen_1 = require_codegen();
-    var util_1 = require_util();
-    var error = {
-      message: "property name must be valid",
-      params: ({ params }) => (0, codegen_1._)`{propertyName: ${params.propertyName}}`
-    };
-    var def = {
-      keyword: "propertyNames",
-      type: "object",
-      schemaType: ["object", "boolean"],
-      error,
-      code(cxt) {
-        const { gen, schema, data, it } = cxt;
-        if ((0, util_1.alwaysValidSchema)(it, schema))
-          return;
-        const valid = gen.name("valid");
-        gen.forIn("key", data, (key) => {
-          cxt.setParams({ propertyName: key });
-          cxt.subschema({
-            keyword: "propertyNames",
-            data: key,
-            dataTypes: ["string"],
-            propertyName: key,
-            compositeRule: true
-          }, valid);
-          gen.if((0, codegen_1.not)(valid), () => {
-            cxt.error(true);
-            if (!it.allErrors)
-              gen.break();
-          });
-        });
-        cxt.ok(valid);
-      }
-    };
-    exports.default = def;
-  }
-});
-
-// ../../node_modules/ajv/dist/vocabularies/applicator/additionalProperties.js
-var require_additionalProperties = __commonJS({
-  "../../node_modules/ajv/dist/vocabularies/applicator/additionalProperties.js"(exports) {
-    "use strict";
-    Object.defineProperty(exports, "__esModule", { value: true });
-    var code_1 = require_code2();
-    var codegen_1 = require_codegen();
-    var names_1 = require_names();
-    var util_1 = require_util();
-    var error = {
-      message: "must NOT have additional properties",
-      params: ({ params }) => (0, codegen_1._)`{additionalProperty: ${params.additionalProperty}}`
-    };
-    var def = {
-      keyword: "additionalProperties",
-      type: ["object"],
-      schemaType: ["boolean", "object"],
-      allowUndefined: true,
-      trackErrors: true,
-      error,
-      code(cxt) {
-        const { gen, schema, parentSchema, data, errsCount, it } = cxt;
-        if (!errsCount)
-          throw new Error("ajv implementation error");
-        const { allErrors, opts } = it;
-        it.props = true;
-        if (opts.removeAdditional !== "all" && (0, util_1.alwaysValidSchema)(it, schema))
-          return;
-        const props = (0, code_1.allSchemaProperties)(parentSchema.properties);
-        const patProps = (0, code_1.allSchemaProperties)(parentSchema.patternProperties);
-        checkAdditionalProperties();
-        cxt.ok((0, codegen_1._)`${errsCount} === ${names_1.default.errors}`);
-        function checkAdditionalProperties() {
-          gen.forIn("key", data, (key) => {
-            if (!props.length && !patProps.length)
-              additionalPropertyCode(key);
-            else
-              gen.if(isAdditional(key), () => additionalPropertyCode(key));
-          });
-        }
-        function isAdditional(key) {
-          let definedProp;
-          if (props.length > 8) {
-            const propsSchema = (0, util_1.schemaRefOrVal)(it, parentSchema.properties, "properties");
-            definedProp = (0, code_1.isOwnProperty)(gen, propsSchema, key);
-          } else if (props.length) {
-            definedProp = (0, codegen_1.or)(...props.map((p) => (0, codegen_1._)`${key} === ${p}`));
-          } else {
-            definedProp = codegen_1.nil;
-          }
-          if (patProps.length) {
-            definedProp = (0, codegen_1.or)(definedProp, ...patProps.map((p) => (0, codegen_1._)`${(0, code_1.usePattern)(cxt, p)}.test(${key})`));
-          }
-          return (0, codegen_1.not)(definedProp);
-        }
-        function deleteAdditional(key) {
-          gen.code((0, codegen_1._)`delete ${data}[${key}]`);
-        }
-        function additionalPropertyCode(key) {
-          if (opts.removeAdditional === "all" || opts.removeAdditional && schema === false) {
-            deleteAdditional(key);
-            return;
-          }
-          if (schema === false) {
-            cxt.setParams({ additionalProperty: key });
-            cxt.error();
-            if (!allErrors)
-              gen.break();
-            return;
-          }
-          if (typeof schema == "object" && !(0, util_1.alwaysValidSchema)(it, schema)) {
-            const valid = gen.name("valid");
-            if (opts.removeAdditional === "failing") {
-              applyAdditionalSchema(key, valid, false);
-              gen.if((0, codegen_1.not)(valid), () => {
-                cxt.reset();
-                deleteAdditional(key);
-              });
-            } else {
-              applyAdditionalSchema(key, valid);
-              if (!allErrors)
-                gen.if((0, codegen_1.not)(valid), () => gen.break());
-            }
-          }
-        }
-        function applyAdditionalSchema(key, valid, errors) {
-          const subschema = {
-            keyword: "additionalProperties",
-            dataProp: key,
-            dataPropType: util_1.Type.Str
-          };
-          if (errors === false) {
-            Object.assign(subschema, {
-              compositeRule: true,
-              createErrors: false,
-              allErrors: false
-            });
-          }
-          cxt.subschema(subschema, valid);
-        }
-      }
-    };
-    exports.default = def;
-  }
-});
-
-// ../../node_modules/ajv/dist/vocabularies/applicator/properties.js
-var require_properties = __commonJS({
-  "../../node_modules/ajv/dist/vocabularies/applicator/properties.js"(exports) {
-    "use strict";
-    Object.defineProperty(exports, "__esModule", { value: true });
-    var validate_1 = require_validate();
-    var code_1 = require_code2();
-    var util_1 = require_util();
-    var additionalProperties_1 = require_additionalProperties();
-    var def = {
-      keyword: "properties",
-      type: "object",
-      schemaType: "object",
-      code(cxt) {
-        const { gen, schema, parentSchema, data, it } = cxt;
-        if (it.opts.removeAdditional === "all" && parentSchema.additionalProperties === void 0) {
-          additionalProperties_1.default.code(new validate_1.KeywordCxt(it, additionalProperties_1.default, "additionalProperties"));
-        }
-        const allProps = (0, code_1.allSchemaProperties)(schema);
-        for (const prop of allProps) {
-          it.definedProperties.add(prop);
-        }
-        if (it.opts.unevaluated && allProps.length && it.props !== true) {
-          it.props = util_1.mergeEvaluated.props(gen, (0, util_1.toHash)(allProps), it.props);
-        }
-        const properties = allProps.filter((p) => !(0, util_1.alwaysValidSchema)(it, schema[p]));
-        if (properties.length === 0)
-          return;
-        const valid = gen.name("valid");
-        for (const prop of properties) {
-          if (hasDefault(prop)) {
-            applyPropertySchema(prop);
-          } else {
-            gen.if((0, code_1.propertyInData)(gen, data, prop, it.opts.ownProperties));
-            applyPropertySchema(prop);
-            if (!it.allErrors)
-              gen.else().var(valid, true);
-            gen.endIf();
-          }
-          cxt.it.definedProperties.add(prop);
-          cxt.ok(valid);
-        }
-        function hasDefault(prop) {
-          return it.opts.useDefaults && !it.compositeRule && schema[prop].default !== void 0;
-        }
-        function applyPropertySchema(prop) {
-          cxt.subschema({
-            keyword: "properties",
-            schemaProp: prop,
-            dataProp: prop
-          }, valid);
-        }
-      }
-    };
-    exports.default = def;
-  }
-});
-
-// ../../node_modules/ajv/dist/vocabularies/applicator/patternProperties.js
-var require_patternProperties = __commonJS({
-  "../../node_modules/ajv/dist/vocabularies/applicator/patternProperties.js"(exports) {
-    "use strict";
-    Object.defineProperty(exports, "__esModule", { value: true });
-    var code_1 = require_code2();
-    var codegen_1 = require_codegen();
-    var util_1 = require_util();
-    var util_2 = require_util();
-    var def = {
-      keyword: "patternProperties",
-      type: "object",
-      schemaType: "object",
-      code(cxt) {
-        const { gen, schema, data, parentSchema, it } = cxt;
-        const { opts } = it;
-        const patterns = (0, code_1.allSchemaProperties)(schema);
-        const alwaysValidPatterns = patterns.filter((p) => (0, util_1.alwaysValidSchema)(it, schema[p]));
-        if (patterns.length === 0 || alwaysValidPatterns.length === patterns.length && (!it.opts.unevaluated || it.props === true)) {
-          return;
-        }
-        const checkProperties = opts.strictSchema && !opts.allowMatchingProperties && parentSchema.properties;
-        const valid = gen.name("valid");
-        if (it.props !== true && !(it.props instanceof codegen_1.Name)) {
-          it.props = (0, util_2.evaluatedPropsToName)(gen, it.props);
-        }
-        const { props } = it;
-        validatePatternProperties();
-        function validatePatternProperties() {
-          for (const pat of patterns) {
-            if (checkProperties)
-              checkMatchingProperties(pat);
-            if (it.allErrors) {
-              validateProperties(pat);
-            } else {
-              gen.var(valid, true);
-              validateProperties(pat);
-              gen.if(valid);
-            }
-          }
-        }
-        function checkMatchingProperties(pat) {
-          for (const prop in checkProperties) {
-            if (new RegExp(pat).test(prop)) {
-              (0, util_1.checkStrictMode)(it, `property ${prop} matches pattern ${pat} (use allowMatchingProperties)`);
-            }
-          }
-        }
-        function validateProperties(pat) {
-          gen.forIn("key", data, (key) => {
-            gen.if((0, codegen_1._)`${(0, code_1.usePattern)(cxt, pat)}.test(${key})`, () => {
-              const alwaysValid = alwaysValidPatterns.includes(pat);
-              if (!alwaysValid) {
-                cxt.subschema({
-                  keyword: "patternProperties",
-                  schemaProp: pat,
-                  dataProp: key,
-                  dataPropType: util_2.Type.Str
-                }, valid);
-              }
-              if (it.opts.unevaluated && props !== true) {
-                gen.assign((0, codegen_1._)`${props}[${key}]`, true);
-              } else if (!alwaysValid && !it.allErrors) {
-                gen.if((0, codegen_1.not)(valid), () => gen.break());
-              }
-            });
-          });
-        }
-      }
-    };
-    exports.default = def;
-  }
-});
-
-// ../../node_modules/ajv/dist/vocabularies/applicator/not.js
-var require_not = __commonJS({
-  "../../node_modules/ajv/dist/vocabularies/applicator/not.js"(exports) {
-    "use strict";
-    Object.defineProperty(exports, "__esModule", { value: true });
-    var util_1 = require_util();
-    var def = {
-      keyword: "not",
-      schemaType: ["object", "boolean"],
-      trackErrors: true,
-      code(cxt) {
-        const { gen, schema, it } = cxt;
-        if ((0, util_1.alwaysValidSchema)(it, schema)) {
-          cxt.fail();
-          return;
-        }
-        const valid = gen.name("valid");
-        cxt.subschema({
-          keyword: "not",
-          compositeRule: true,
-          createErrors: false,
-          allErrors: false
-        }, valid);
-        cxt.failResult(valid, () => cxt.reset(), () => cxt.error());
-      },
-      error: { message: "must NOT be valid" }
-    };
-    exports.default = def;
-  }
-});
-
-// ../../node_modules/ajv/dist/vocabularies/applicator/anyOf.js
-var require_anyOf = __commonJS({
-  "../../node_modules/ajv/dist/vocabularies/applicator/anyOf.js"(exports) {
-    "use strict";
-    Object.defineProperty(exports, "__esModule", { value: true });
-    var code_1 = require_code2();
-    var def = {
-      keyword: "anyOf",
-      schemaType: "array",
-      trackErrors: true,
-      code: code_1.validateUnion,
-      error: { message: "must match a schema in anyOf" }
-    };
-    exports.default = def;
-  }
-});
-
-// ../../node_modules/ajv/dist/vocabularies/applicator/oneOf.js
-var require_oneOf = __commonJS({
-  "../../node_modules/ajv/dist/vocabularies/applicator/oneOf.js"(exports) {
-    "use strict";
-    Object.defineProperty(exports, "__esModule", { value: true });
-    var codegen_1 = require_codegen();
-    var util_1 = require_util();
-    var error = {
-      message: "must match exactly one schema in oneOf",
-      params: ({ params }) => (0, codegen_1._)`{passingSchemas: ${params.passing}}`
-    };
-    var def = {
-      keyword: "oneOf",
-      schemaType: "array",
-      trackErrors: true,
-      error,
-      code(cxt) {
-        const { gen, schema, parentSchema, it } = cxt;
-        if (!Array.isArray(schema))
-          throw new Error("ajv implementation error");
-        if (it.opts.discriminator && parentSchema.discriminator)
-          return;
-        const schArr = schema;
-        const valid = gen.let("valid", false);
-        const passing = gen.let("passing", null);
-        const schValid = gen.name("_valid");
-        cxt.setParams({ passing });
-        gen.block(validateOneOf);
-        cxt.result(valid, () => cxt.reset(), () => cxt.error(true));
-        function validateOneOf() {
-          schArr.forEach((sch, i) => {
-            let schCxt;
-            if ((0, util_1.alwaysValidSchema)(it, sch)) {
-              gen.var(schValid, true);
-            } else {
-              schCxt = cxt.subschema({
-                keyword: "oneOf",
-                schemaProp: i,
-                compositeRule: true
-              }, schValid);
-            }
-            if (i > 0) {
-              gen.if((0, codegen_1._)`${schValid} && ${valid}`).assign(valid, false).assign(passing, (0, codegen_1._)`[${passing}, ${i}]`).else();
-            }
-            gen.if(schValid, () => {
-              gen.assign(valid, true);
-              gen.assign(passing, i);
-              if (schCxt)
-                cxt.mergeEvaluated(schCxt, codegen_1.Name);
-            });
-          });
-        }
-      }
-    };
-    exports.default = def;
-  }
-});
-
-// ../../node_modules/ajv/dist/vocabularies/applicator/allOf.js
-var require_allOf = __commonJS({
-  "../../node_modules/ajv/dist/vocabularies/applicator/allOf.js"(exports) {
-    "use strict";
-    Object.defineProperty(exports, "__esModule", { value: true });
-    var util_1 = require_util();
-    var def = {
-      keyword: "allOf",
-      schemaType: "array",
-      code(cxt) {
-        const { gen, schema, it } = cxt;
-        if (!Array.isArray(schema))
-          throw new Error("ajv implementation error");
-        const valid = gen.name("valid");
-        schema.forEach((sch, i) => {
-          if ((0, util_1.alwaysValidSchema)(it, sch))
-            return;
-          const schCxt = cxt.subschema({ keyword: "allOf", schemaProp: i }, valid);
-          cxt.ok(valid);
-          cxt.mergeEvaluated(schCxt);
-        });
-      }
-    };
-    exports.default = def;
-  }
-});
-
-// ../../node_modules/ajv/dist/vocabularies/applicator/if.js
-var require_if = __commonJS({
-  "../../node_modules/ajv/dist/vocabularies/applicator/if.js"(exports) {
-    "use strict";
-    Object.defineProperty(exports, "__esModule", { value: true });
-    var codegen_1 = require_codegen();
-    var util_1 = require_util();
-    var error = {
-      message: ({ params }) => (0, codegen_1.str)`must match "${params.ifClause}" schema`,
-      params: ({ params }) => (0, codegen_1._)`{failingKeyword: ${params.ifClause}}`
-    };
-    var def = {
-      keyword: "if",
-      schemaType: ["object", "boolean"],
-      trackErrors: true,
-      error,
-      code(cxt) {
-        const { gen, parentSchema, it } = cxt;
-        if (parentSchema.then === void 0 && parentSchema.else === void 0) {
-          (0, util_1.checkStrictMode)(it, '"if" without "then" and "else" is ignored');
-        }
-        const hasThen = hasSchema(it, "then");
-        const hasElse = hasSchema(it, "else");
-        if (!hasThen && !hasElse)
-          return;
-        const valid = gen.let("valid", true);
-        const schValid = gen.name("_valid");
-        validateIf();
-        cxt.reset();
-        if (hasThen && hasElse) {
-          const ifClause = gen.let("ifClause");
-          cxt.setParams({ ifClause });
-          gen.if(schValid, validateClause("then", ifClause), validateClause("else", ifClause));
-        } else if (hasThen) {
-          gen.if(schValid, validateClause("then"));
-        } else {
-          gen.if((0, codegen_1.not)(schValid), validateClause("else"));
-        }
-        cxt.pass(valid, () => cxt.error(true));
-        function validateIf() {
-          const schCxt = cxt.subschema({
-            keyword: "if",
-            compositeRule: true,
-            createErrors: false,
-            allErrors: false
-          }, schValid);
-          cxt.mergeEvaluated(schCxt);
-        }
-        function validateClause(keyword, ifClause) {
-          return () => {
-            const schCxt = cxt.subschema({ keyword }, schValid);
-            gen.assign(valid, schValid);
-            cxt.mergeValidEvaluated(schCxt, valid);
-            if (ifClause)
-              gen.assign(ifClause, (0, codegen_1._)`${keyword}`);
-            else
-              cxt.setParams({ ifClause: keyword });
-          };
-        }
-      }
-    };
-    function hasSchema(it, keyword) {
-      const schema = it.schema[keyword];
-      return schema !== void 0 && !(0, util_1.alwaysValidSchema)(it, schema);
-    }
-    exports.default = def;
-  }
-});
-
-// ../../node_modules/ajv/dist/vocabularies/applicator/thenElse.js
-var require_thenElse = __commonJS({
-  "../../node_modules/ajv/dist/vocabularies/applicator/thenElse.js"(exports) {
-    "use strict";
-    Object.defineProperty(exports, "__esModule", { value: true });
-    var util_1 = require_util();
-    var def = {
-      keyword: ["then", "else"],
-      schemaType: ["object", "boolean"],
-      code({ keyword, parentSchema, it }) {
-        if (parentSchema.if === void 0)
-          (0, util_1.checkStrictMode)(it, `"${keyword}" without "if" is ignored`);
-      }
-    };
-    exports.default = def;
-  }
-});
-
-// ../../node_modules/ajv/dist/vocabularies/applicator/index.js
-var require_applicator = __commonJS({
-  "../../node_modules/ajv/dist/vocabularies/applicator/index.js"(exports) {
-    "use strict";
-    Object.defineProperty(exports, "__esModule", { value: true });
-    var additionalItems_1 = require_additionalItems();
-    var prefixItems_1 = require_prefixItems();
-    var items_1 = require_items();
-    var items2020_1 = require_items2020();
-    var contains_1 = require_contains();
-    var dependencies_1 = require_dependencies();
-    var propertyNames_1 = require_propertyNames();
-    var additionalProperties_1 = require_additionalProperties();
-    var properties_1 = require_properties();
-    var patternProperties_1 = require_patternProperties();
-    var not_1 = require_not();
-    var anyOf_1 = require_anyOf();
-    var oneOf_1 = require_oneOf();
-    var allOf_1 = require_allOf();
-    var if_1 = require_if();
-    var thenElse_1 = require_thenElse();
-    function getApplicator(draft2020 = false) {
-      const applicator = [
-        not_1.default,
-        anyOf_1.default,
-        oneOf_1.default,
-        allOf_1.default,
-        if_1.default,
-        thenElse_1.default,
-        propertyNames_1.default,
-        additionalProperties_1.default,
-        dependencies_1.default,
-        properties_1.default,
-        patternProperties_1.default
-      ];
-      if (draft2020)
-        applicator.push(prefixItems_1.default, items2020_1.default);
-      else
-        applicator.push(additionalItems_1.default, items_1.default);
-      applicator.push(contains_1.default);
-      return applicator;
-    }
-    exports.default = getApplicator;
-  }
-});
-
-// ../../node_modules/ajv/dist/vocabularies/format/format.js
-var require_format = __commonJS({
-  "../../node_modules/ajv/dist/vocabularies/format/format.js"(exports) {
-    "use strict";
-    Object.defineProperty(exports, "__esModule", { value: true });
-    var codegen_1 = require_codegen();
-    var error = {
-      message: ({ schemaCode }) => (0, codegen_1.str)`must match format "${schemaCode}"`,
-      params: ({ schemaCode }) => (0, codegen_1._)`{format: ${schemaCode}}`
-    };
-    var def = {
-      keyword: "format",
-      type: ["number", "string"],
-      schemaType: "string",
-      $data: true,
-      error,
-      code(cxt, ruleType) {
-        const { gen, data, $data, schema, schemaCode, it } = cxt;
-        const { opts, errSchemaPath, schemaEnv, self } = it;
-        if (!opts.validateFormats)
-          return;
-        if ($data)
-          validate$DataFormat();
-        else
-          validateFormat();
-        function validate$DataFormat() {
-          const fmts = gen.scopeValue("formats", {
-            ref: self.formats,
-            code: opts.code.formats
-          });
-          const fDef = gen.const("fDef", (0, codegen_1._)`${fmts}[${schemaCode}]`);
-          const fType = gen.let("fType");
-          const format = gen.let("format");
-          gen.if((0, codegen_1._)`typeof ${fDef} == "object" && !(${fDef} instanceof RegExp)`, () => gen.assign(fType, (0, codegen_1._)`${fDef}.type || "string"`).assign(format, (0, codegen_1._)`${fDef}.validate`), () => gen.assign(fType, (0, codegen_1._)`"string"`).assign(format, fDef));
-          cxt.fail$data((0, codegen_1.or)(unknownFmt(), invalidFmt()));
-          function unknownFmt() {
-            if (opts.strictSchema === false)
-              return codegen_1.nil;
-            return (0, codegen_1._)`${schemaCode} && !${format}`;
-          }
-          function invalidFmt() {
-            const callFormat = schemaEnv.$async ? (0, codegen_1._)`(${fDef}.async ? await ${format}(${data}) : ${format}(${data}))` : (0, codegen_1._)`${format}(${data})`;
-            const validData = (0, codegen_1._)`(typeof ${format} == "function" ? ${callFormat} : ${format}.test(${data}))`;
-            return (0, codegen_1._)`${format} && ${format} !== true && ${fType} === ${ruleType} && !${validData}`;
-          }
-        }
-        function validateFormat() {
-          const formatDef = self.formats[schema];
-          if (!formatDef) {
-            unknownFormat();
-            return;
-          }
-          if (formatDef === true)
-            return;
-          const [fmtType, format, fmtRef] = getFormat(formatDef);
-          if (fmtType === ruleType)
-            cxt.pass(validCondition());
-          function unknownFormat() {
-            if (opts.strictSchema === false) {
-              self.logger.warn(unknownMsg());
-              return;
-            }
-            throw new Error(unknownMsg());
-            function unknownMsg() {
-              return `unknown format "${schema}" ignored in schema at path "${errSchemaPath}"`;
-            }
-          }
-          function getFormat(fmtDef) {
-            const code = fmtDef instanceof RegExp ? (0, codegen_1.regexpCode)(fmtDef) : opts.code.formats ? (0, codegen_1._)`${opts.code.formats}${(0, codegen_1.getProperty)(schema)}` : void 0;
-            const fmt = gen.scopeValue("formats", { key: schema, ref: fmtDef, code });
-            if (typeof fmtDef == "object" && !(fmtDef instanceof RegExp)) {
-              return [fmtDef.type || "string", fmtDef.validate, (0, codegen_1._)`${fmt}.validate`];
-            }
-            return ["string", fmtDef, fmt];
-          }
-          function validCondition() {
-            if (typeof formatDef == "object" && !(formatDef instanceof RegExp) && formatDef.async) {
-              if (!schemaEnv.$async)
-                throw new Error("async format in sync schema");
-              return (0, codegen_1._)`await ${fmtRef}(${data})`;
-            }
-            return typeof format == "function" ? (0, codegen_1._)`${fmtRef}(${data})` : (0, codegen_1._)`${fmtRef}.test(${data})`;
-          }
-        }
-      }
-    };
-    exports.default = def;
-  }
-});
-
-// ../../node_modules/ajv/dist/vocabularies/format/index.js
-var require_format2 = __commonJS({
-  "../../node_modules/ajv/dist/vocabularies/format/index.js"(exports) {
-    "use strict";
-    Object.defineProperty(exports, "__esModule", { value: true });
-    var format_1 = require_format();
-    var format = [format_1.default];
-    exports.default = format;
-  }
-});
-
-// ../../node_modules/ajv/dist/vocabularies/metadata.js
-var require_metadata = __commonJS({
-  "../../node_modules/ajv/dist/vocabularies/metadata.js"(exports) {
-    "use strict";
-    Object.defineProperty(exports, "__esModule", { value: true });
-    exports.contentVocabulary = exports.metadataVocabulary = void 0;
-    exports.metadataVocabulary = [
-      "title",
-      "description",
-      "default",
-      "deprecated",
-      "readOnly",
-      "writeOnly",
-      "examples"
-    ];
-    exports.contentVocabulary = [
-      "contentMediaType",
-      "contentEncoding",
-      "contentSchema"
-    ];
-  }
-});
-
-// ../../node_modules/ajv/dist/vocabularies/draft7.js
-var require_draft7 = __commonJS({
-  "../../node_modules/ajv/dist/vocabularies/draft7.js"(exports) {
-    "use strict";
-    Object.defineProperty(exports, "__esModule", { value: true });
-    var core_1 = require_core2();
-    var validation_1 = require_validation();
-    var applicator_1 = require_applicator();
-    var format_1 = require_format2();
-    var metadata_1 = require_metadata();
-    var draft7Vocabularies = [
-      core_1.default,
-      validation_1.default,
-      (0, applicator_1.default)(),
-      format_1.default,
-      metadata_1.metadataVocabulary,
-      metadata_1.contentVocabulary
-    ];
-    exports.default = draft7Vocabularies;
-  }
-});
-
-// ../../node_modules/ajv/dist/vocabularies/discriminator/types.js
-var require_types = __commonJS({
-  "../../node_modules/ajv/dist/vocabularies/discriminator/types.js"(exports) {
-    "use strict";
-    Object.defineProperty(exports, "__esModule", { value: true });
-    exports.DiscrError = void 0;
-    var DiscrError;
-    (function(DiscrError2) {
-      DiscrError2["Tag"] = "tag";
-      DiscrError2["Mapping"] = "mapping";
-    })(DiscrError = exports.DiscrError || (exports.DiscrError = {}));
-  }
-});
-
-// ../../node_modules/ajv/dist/vocabularies/discriminator/index.js
-var require_discriminator = __commonJS({
-  "../../node_modules/ajv/dist/vocabularies/discriminator/index.js"(exports) {
-    "use strict";
-    Object.defineProperty(exports, "__esModule", { value: true });
-    var codegen_1 = require_codegen();
-    var types_1 = require_types();
-    var compile_1 = require_compile();
-    var util_1 = require_util();
-    var error = {
-      message: ({ params: { discrError, tagName } }) => discrError === types_1.DiscrError.Tag ? `tag "${tagName}" must be string` : `value of tag "${tagName}" must be in oneOf`,
-      params: ({ params: { discrError, tag, tagName } }) => (0, codegen_1._)`{error: ${discrError}, tag: ${tagName}, tagValue: ${tag}}`
-    };
-    var def = {
-      keyword: "discriminator",
-      type: "object",
-      schemaType: "object",
-      error,
-      code(cxt) {
-        const { gen, data, schema, parentSchema, it } = cxt;
-        const { oneOf } = parentSchema;
-        if (!it.opts.discriminator) {
-          throw new Error("discriminator: requires discriminator option");
-        }
-        const tagName = schema.propertyName;
-        if (typeof tagName != "string")
-          throw new Error("discriminator: requires propertyName");
-        if (schema.mapping)
-          throw new Error("discriminator: mapping is not supported");
-        if (!oneOf)
-          throw new Error("discriminator: requires oneOf keyword");
-        const valid = gen.let("valid", false);
-        const tag = gen.const("tag", (0, codegen_1._)`${data}${(0, codegen_1.getProperty)(tagName)}`);
-        gen.if((0, codegen_1._)`typeof ${tag} == "string"`, () => validateMapping(), () => cxt.error(false, { discrError: types_1.DiscrError.Tag, tag, tagName }));
-        cxt.ok(valid);
-        function validateMapping() {
-          const mapping = getMapping();
-          gen.if(false);
-          for (const tagValue in mapping) {
-            gen.elseIf((0, codegen_1._)`${tag} === ${tagValue}`);
-            gen.assign(valid, applyTagSchema(mapping[tagValue]));
-          }
-          gen.else();
-          cxt.error(false, { discrError: types_1.DiscrError.Mapping, tag, tagName });
-          gen.endIf();
-        }
-        function applyTagSchema(schemaProp) {
-          const _valid = gen.name("valid");
-          const schCxt = cxt.subschema({ keyword: "oneOf", schemaProp }, _valid);
-          cxt.mergeEvaluated(schCxt, codegen_1.Name);
-          return _valid;
-        }
-        function getMapping() {
-          var _a;
-          const oneOfMapping = {};
-          const topRequired = hasRequired(parentSchema);
-          let tagRequired = true;
-          for (let i = 0; i < oneOf.length; i++) {
-            let sch = oneOf[i];
-            if ((sch === null || sch === void 0 ? void 0 : sch.$ref) && !(0, util_1.schemaHasRulesButRef)(sch, it.self.RULES)) {
-              sch = compile_1.resolveRef.call(it.self, it.schemaEnv.root, it.baseId, sch === null || sch === void 0 ? void 0 : sch.$ref);
-              if (sch instanceof compile_1.SchemaEnv)
-                sch = sch.schema;
-            }
-            const propSch = (_a = sch === null || sch === void 0 ? void 0 : sch.properties) === null || _a === void 0 ? void 0 : _a[tagName];
-            if (typeof propSch != "object") {
-              throw new Error(`discriminator: oneOf subschemas (or referenced schemas) must have "properties/${tagName}"`);
-            }
-            tagRequired = tagRequired && (topRequired || hasRequired(sch));
-            addMappings(propSch, i);
-          }
-          if (!tagRequired)
-            throw new Error(`discriminator: "${tagName}" must be required`);
-          return oneOfMapping;
-          function hasRequired({ required }) {
-            return Array.isArray(required) && required.includes(tagName);
-          }
-          function addMappings(sch, i) {
-            if (sch.const) {
-              addMapping(sch.const, i);
-            } else if (sch.enum) {
-              for (const tagValue of sch.enum) {
-                addMapping(tagValue, i);
-              }
-            } else {
-              throw new Error(`discriminator: "properties/${tagName}" must have "const" or "enum"`);
-            }
-          }
-          function addMapping(tagValue, i) {
-            if (typeof tagValue != "string" || tagValue in oneOfMapping) {
-              throw new Error(`discriminator: "${tagName}" values must be unique strings`);
-            }
-            oneOfMapping[tagValue] = i;
-          }
-        }
-      }
-    };
-    exports.default = def;
-  }
-});
-
-// ../../node_modules/ajv/dist/refs/json-schema-draft-07.json
-var require_json_schema_draft_07 = __commonJS({
-  "../../node_modules/ajv/dist/refs/json-schema-draft-07.json"(exports, module2) {
-    module2.exports = {
-      $schema: "http://json-schema.org/draft-07/schema#",
-      $id: "http://json-schema.org/draft-07/schema#",
-      title: "Core schema meta-schema",
-      definitions: {
-        schemaArray: {
-          type: "array",
-          minItems: 1,
-          items: { $ref: "#" }
-        },
-        nonNegativeInteger: {
-          type: "integer",
-          minimum: 0
-        },
-        nonNegativeIntegerDefault0: {
-          allOf: [{ $ref: "#/definitions/nonNegativeInteger" }, { default: 0 }]
-        },
-        simpleTypes: {
-          enum: ["array", "boolean", "integer", "null", "number", "object", "string"]
-        },
-        stringArray: {
-          type: "array",
-          items: { type: "string" },
-          uniqueItems: true,
-          default: []
-        }
-      },
-      type: ["object", "boolean"],
-      properties: {
-        $id: {
-          type: "string",
-          format: "uri-reference"
-        },
-        $schema: {
-          type: "string",
-          format: "uri"
-        },
-        $ref: {
-          type: "string",
-          format: "uri-reference"
-        },
-        $comment: {
-          type: "string"
-        },
-        title: {
-          type: "string"
-        },
-        description: {
-          type: "string"
-        },
-        default: true,
-        readOnly: {
-          type: "boolean",
-          default: false
-        },
-        examples: {
-          type: "array",
-          items: true
-        },
-        multipleOf: {
-          type: "number",
-          exclusiveMinimum: 0
-        },
-        maximum: {
-          type: "number"
-        },
-        exclusiveMaximum: {
-          type: "number"
-        },
-        minimum: {
-          type: "number"
-        },
-        exclusiveMinimum: {
-          type: "number"
-        },
-        maxLength: { $ref: "#/definitions/nonNegativeInteger" },
-        minLength: { $ref: "#/definitions/nonNegativeIntegerDefault0" },
-        pattern: {
-          type: "string",
-          format: "regex"
-        },
-        additionalItems: { $ref: "#" },
-        items: {
-          anyOf: [{ $ref: "#" }, { $ref: "#/definitions/schemaArray" }],
-          default: true
-        },
-        maxItems: { $ref: "#/definitions/nonNegativeInteger" },
-        minItems: { $ref: "#/definitions/nonNegativeIntegerDefault0" },
-        uniqueItems: {
-          type: "boolean",
-          default: false
-        },
-        contains: { $ref: "#" },
-        maxProperties: { $ref: "#/definitions/nonNegativeInteger" },
-        minProperties: { $ref: "#/definitions/nonNegativeIntegerDefault0" },
-        required: { $ref: "#/definitions/stringArray" },
-        additionalProperties: { $ref: "#" },
-        definitions: {
-          type: "object",
-          additionalProperties: { $ref: "#" },
-          default: {}
-        },
-        properties: {
-          type: "object",
-          additionalProperties: { $ref: "#" },
-          default: {}
-        },
-        patternProperties: {
-          type: "object",
-          additionalProperties: { $ref: "#" },
-          propertyNames: { format: "regex" },
-          default: {}
-        },
-        dependencies: {
-          type: "object",
-          additionalProperties: {
-            anyOf: [{ $ref: "#" }, { $ref: "#/definitions/stringArray" }]
-          }
-        },
-        propertyNames: { $ref: "#" },
-        const: true,
-        enum: {
-          type: "array",
-          items: true,
-          minItems: 1,
-          uniqueItems: true
-        },
-        type: {
-          anyOf: [
-            { $ref: "#/definitions/simpleTypes" },
-            {
-              type: "array",
-              items: { $ref: "#/definitions/simpleTypes" },
-              minItems: 1,
-              uniqueItems: true
-            }
-          ]
-        },
-        format: { type: "string" },
-        contentMediaType: { type: "string" },
-        contentEncoding: { type: "string" },
-        if: { $ref: "#" },
-        then: { $ref: "#" },
-        else: { $ref: "#" },
-        allOf: { $ref: "#/definitions/schemaArray" },
-        anyOf: { $ref: "#/definitions/schemaArray" },
-        oneOf: { $ref: "#/definitions/schemaArray" },
-        not: { $ref: "#" }
-      },
-      default: true
-    };
-  }
-});
-
-// ../../node_modules/ajv/dist/ajv.js
-var require_ajv = __commonJS({
-  "../../node_modules/ajv/dist/ajv.js"(exports, module2) {
-    "use strict";
-    Object.defineProperty(exports, "__esModule", { value: true });
-    exports.CodeGen = exports.Name = exports.nil = exports.stringify = exports.str = exports._ = exports.KeywordCxt = void 0;
-    var core_1 = require_core();
-    var draft7_1 = require_draft7();
-    var discriminator_1 = require_discriminator();
-    var draft7MetaSchema = require_json_schema_draft_07();
-    var META_SUPPORT_DATA = ["/properties"];
-    var META_SCHEMA_ID = "http://json-schema.org/draft-07/schema";
-    var Ajv3 = class extends core_1.default {
-      _addVocabularies() {
-        super._addVocabularies();
-        draft7_1.default.forEach((v) => this.addVocabulary(v));
-        if (this.opts.discriminator)
-          this.addKeyword(discriminator_1.default);
-      }
-      _addDefaultMetaSchema() {
-        super._addDefaultMetaSchema();
-        if (!this.opts.meta)
-          return;
-        const metaSchema = this.opts.$data ? this.$dataMetaSchema(draft7MetaSchema, META_SUPPORT_DATA) : draft7MetaSchema;
-        this.addMetaSchema(metaSchema, META_SCHEMA_ID, false);
-        this.refs["http://json-schema.org/schema"] = META_SCHEMA_ID;
-      }
-      defaultMeta() {
-        return this.opts.defaultMeta = super.defaultMeta() || (this.getSchema(META_SCHEMA_ID) ? META_SCHEMA_ID : void 0);
-      }
-    };
-    module2.exports = exports = Ajv3;
-    Object.defineProperty(exports, "__esModule", { value: true });
-    exports.default = Ajv3;
-    var validate_1 = require_validate();
-    Object.defineProperty(exports, "KeywordCxt", { enumerable: true, get: function() {
-      return validate_1.KeywordCxt;
-    } });
-    var codegen_1 = require_codegen();
-    Object.defineProperty(exports, "_", { enumerable: true, get: function() {
-      return codegen_1._;
-    } });
-    Object.defineProperty(exports, "str", { enumerable: true, get: function() {
-      return codegen_1.str;
-    } });
-    Object.defineProperty(exports, "stringify", { enumerable: true, get: function() {
-      return codegen_1.stringify;
-    } });
-    Object.defineProperty(exports, "nil", { enumerable: true, get: function() {
-      return codegen_1.nil;
-    } });
-    Object.defineProperty(exports, "Name", { enumerable: true, get: function() {
-      return codegen_1.Name;
-    } });
-    Object.defineProperty(exports, "CodeGen", { enumerable: true, get: function() {
-      return codegen_1.CodeGen;
-    } });
-  }
-});
-
-// ../../node_modules/ajv-formats/dist/formats.js
-var require_formats = __commonJS({
-  "../../node_modules/ajv-formats/dist/formats.js"(exports) {
-    "use strict";
-    Object.defineProperty(exports, "__esModule", { value: true });
-    exports.formatNames = exports.fastFormats = exports.fullFormats = void 0;
-    function fmtDef(validate, compare) {
-      return { validate, compare };
-    }
-    exports.fullFormats = {
-      date: fmtDef(date, compareDate),
-      time: fmtDef(time, compareTime),
-      "date-time": fmtDef(date_time, compareDateTime),
-      duration: /^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/,
-      uri,
-      "uri-reference": /^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,
-      "uri-template": /^(?:(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i,
-      url: /^(?:https?|ftp):\/\/(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)(?:\.(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)*(?:\.(?:[a-z\u{00a1}-\u{ffff}]{2,})))(?::\d{2,5})?(?:\/[^\s]*)?$/iu,
-      email: /^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,
-      hostname: /^(?=.{1,253}\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\.?$/i,
-      ipv4: /^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,
-      ipv6: /^((([0-9a-f]{1,4}:){7}([0-9a-f]{1,4}|:))|(([0-9a-f]{1,4}:){6}(:[0-9a-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){5}(((:[0-9a-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){4}(((:[0-9a-f]{1,4}){1,3})|((:[0-9a-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){3}(((:[0-9a-f]{1,4}){1,4})|((:[0-9a-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){2}(((:[0-9a-f]{1,4}){1,5})|((:[0-9a-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){1}(((:[0-9a-f]{1,4}){1,6})|((:[0-9a-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9a-f]{1,4}){1,7})|((:[0-9a-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))$/i,
-      regex,
-      uuid: /^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,
-      "json-pointer": /^(?:\/(?:[^~/]|~0|~1)*)*$/,
-      "json-pointer-uri-fragment": /^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i,
-      "relative-json-pointer": /^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/,
-      byte,
-      int32: { type: "number", validate: validateInt32 },
-      int64: { type: "number", validate: validateInt64 },
-      float: { type: "number", validate: validateNumber },
-      double: { type: "number", validate: validateNumber },
-      password: true,
-      binary: true
-    };
-    exports.fastFormats = {
-      ...exports.fullFormats,
-      date: fmtDef(/^\d\d\d\d-[0-1]\d-[0-3]\d$/, compareDate),
-      time: fmtDef(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i, compareTime),
-      "date-time": fmtDef(/^\d\d\d\d-[0-1]\d-[0-3]\d[t\s](?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i, compareDateTime),
-      uri: /^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/)?[^\s]*$/i,
-      "uri-reference": /^(?:(?:[a-z][a-z0-9+\-.]*:)?\/?\/)?(?:[^\\\s#][^\s#]*)?(?:#[^\\\s]*)?$/i,
-      email: /^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i
-    };
-    exports.formatNames = Object.keys(exports.fullFormats);
-    function isLeapYear(year) {
-      return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);
-    }
-    var DATE = /^(\d\d\d\d)-(\d\d)-(\d\d)$/;
-    var DAYS = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
-    function date(str) {
-      const matches = DATE.exec(str);
-      if (!matches)
-        return false;
-      const year = +matches[1];
-      const month = +matches[2];
-      const day = +matches[3];
-      return month >= 1 && month <= 12 && day >= 1 && day <= (month === 2 && isLeapYear(year) ? 29 : DAYS[month]);
-    }
-    function compareDate(d1, d2) {
-      if (!(d1 && d2))
-        return void 0;
-      if (d1 > d2)
-        return 1;
-      if (d1 < d2)
-        return -1;
-      return 0;
-    }
-    var TIME = /^(\d\d):(\d\d):(\d\d)(\.\d+)?(z|[+-]\d\d(?::?\d\d)?)?$/i;
-    function time(str, withTimeZone) {
-      const matches = TIME.exec(str);
-      if (!matches)
-        return false;
-      const hour = +matches[1];
-      const minute = +matches[2];
-      const second = +matches[3];
-      const timeZone = matches[5];
-      return (hour <= 23 && minute <= 59 && second <= 59 || hour === 23 && minute === 59 && second === 60) && (!withTimeZone || timeZone !== "");
-    }
-    function compareTime(t1, t2) {
-      if (!(t1 && t2))
-        return void 0;
-      const a1 = TIME.exec(t1);
-      const a2 = TIME.exec(t2);
-      if (!(a1 && a2))
-        return void 0;
-      t1 = a1[1] + a1[2] + a1[3] + (a1[4] || "");
-      t2 = a2[1] + a2[2] + a2[3] + (a2[4] || "");
-      if (t1 > t2)
-        return 1;
-      if (t1 < t2)
-        return -1;
-      return 0;
-    }
-    var DATE_TIME_SEPARATOR = /t|\s/i;
-    function date_time(str) {
-      const dateTime = str.split(DATE_TIME_SEPARATOR);
-      return dateTime.length === 2 && date(dateTime[0]) && time(dateTime[1], true);
-    }
-    function compareDateTime(dt1, dt2) {
-      if (!(dt1 && dt2))
-        return void 0;
-      const [d1, t1] = dt1.split(DATE_TIME_SEPARATOR);
-      const [d2, t2] = dt2.split(DATE_TIME_SEPARATOR);
-      const res = compareDate(d1, d2);
-      if (res === void 0)
-        return void 0;
-      return res || compareTime(t1, t2);
-    }
-    var NOT_URI_FRAGMENT = /\/|:/;
-    var URI = /^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\?(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i;
-    function uri(str) {
-      return NOT_URI_FRAGMENT.test(str) && URI.test(str);
-    }
-    var BYTE = /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/gm;
-    function byte(str) {
-      BYTE.lastIndex = 0;
-      return BYTE.test(str);
-    }
-    var MIN_INT32 = -(2 ** 31);
-    var MAX_INT32 = 2 ** 31 - 1;
-    function validateInt32(value) {
-      return Number.isInteger(value) && value <= MAX_INT32 && value >= MIN_INT32;
-    }
-    function validateInt64(value) {
-      return Number.isInteger(value);
-    }
-    function validateNumber() {
-      return true;
-    }
-    var Z_ANCHOR = /[^\\]\\Z/;
-    function regex(str) {
-      if (Z_ANCHOR.test(str))
-        return false;
-      try {
-        new RegExp(str);
-        return true;
-      } catch (e) {
-        return false;
-      }
-    }
-  }
-});
-
-// ../../node_modules/ajv-formats/dist/limit.js
-var require_limit = __commonJS({
-  "../../node_modules/ajv-formats/dist/limit.js"(exports) {
-    "use strict";
-    Object.defineProperty(exports, "__esModule", { value: true });
-    exports.formatLimitDefinition = void 0;
-    var ajv_1 = require_ajv();
-    var codegen_1 = require_codegen();
-    var ops = codegen_1.operators;
-    var KWDs = {
-      formatMaximum: { okStr: "<=", ok: ops.LTE, fail: ops.GT },
-      formatMinimum: { okStr: ">=", ok: ops.GTE, fail: ops.LT },
-      formatExclusiveMaximum: { okStr: "<", ok: ops.LT, fail: ops.GTE },
-      formatExclusiveMinimum: { okStr: ">", ok: ops.GT, fail: ops.LTE }
-    };
-    var error = {
-      message: ({ keyword, schemaCode }) => codegen_1.str`should be ${KWDs[keyword].okStr} ${schemaCode}`,
-      params: ({ keyword, schemaCode }) => codegen_1._`{comparison: ${KWDs[keyword].okStr}, limit: ${schemaCode}}`
-    };
-    exports.formatLimitDefinition = {
-      keyword: Object.keys(KWDs),
-      type: "string",
-      schemaType: "string",
-      $data: true,
-      error,
-      code(cxt) {
-        const { gen, data, schemaCode, keyword, it } = cxt;
-        const { opts, self } = it;
-        if (!opts.validateFormats)
-          return;
-        const fCxt = new ajv_1.KeywordCxt(it, self.RULES.all.format.definition, "format");
-        if (fCxt.$data)
-          validate$DataFormat();
-        else
-          validateFormat();
-        function validate$DataFormat() {
-          const fmts = gen.scopeValue("formats", {
-            ref: self.formats,
-            code: opts.code.formats
-          });
-          const fmt = gen.const("fmt", codegen_1._`${fmts}[${fCxt.schemaCode}]`);
-          cxt.fail$data(codegen_1.or(codegen_1._`typeof ${fmt} != "object"`, codegen_1._`${fmt} instanceof RegExp`, codegen_1._`typeof ${fmt}.compare != "function"`, compareCode(fmt)));
-        }
-        function validateFormat() {
-          const format = fCxt.schema;
-          const fmtDef = self.formats[format];
-          if (!fmtDef || fmtDef === true)
-            return;
-          if (typeof fmtDef != "object" || fmtDef instanceof RegExp || typeof fmtDef.compare != "function") {
-            throw new Error(`"${keyword}": format "${format}" does not define "compare" function`);
-          }
-          const fmt = gen.scopeValue("formats", {
-            key: format,
-            ref: fmtDef,
-            code: opts.code.formats ? codegen_1._`${opts.code.formats}${codegen_1.getProperty(format)}` : void 0
-          });
-          cxt.fail$data(compareCode(fmt));
-        }
-        function compareCode(fmt) {
-          return codegen_1._`${fmt}.compare(${data}, ${schemaCode}) ${KWDs[keyword].fail} 0`;
-        }
-      },
-      dependencies: ["format"]
-    };
-    var formatLimitPlugin = (ajv3) => {
-      ajv3.addKeyword(exports.formatLimitDefinition);
-      return ajv3;
-    };
-    exports.default = formatLimitPlugin;
-  }
-});
-
-// ../../node_modules/ajv-formats/dist/index.js
-var require_dist = __commonJS({
-  "../../node_modules/ajv-formats/dist/index.js"(exports, module2) {
-    "use strict";
-    Object.defineProperty(exports, "__esModule", { value: true });
-    var formats_1 = require_formats();
-    var limit_1 = require_limit();
-    var codegen_1 = require_codegen();
-    var fullName = new codegen_1.Name("fullFormats");
-    var fastName = new codegen_1.Name("fastFormats");
-    var formatsPlugin = (ajv3, opts = { keywords: true }) => {
-      if (Array.isArray(opts)) {
-        addFormats(ajv3, opts, formats_1.fullFormats, fullName);
-        return ajv3;
-      }
-      const [formats, exportName] = opts.mode === "fast" ? [formats_1.fastFormats, fastName] : [formats_1.fullFormats, fullName];
-      const list = opts.formats || formats_1.formatNames;
-      addFormats(ajv3, list, formats, exportName);
-      if (opts.keywords)
-        limit_1.default(ajv3);
-      return ajv3;
-    };
-    formatsPlugin.get = (name, mode = "full") => {
-      const formats = mode === "fast" ? formats_1.fastFormats : formats_1.fullFormats;
-      const f = formats[name];
-      if (!f)
-        throw new Error(`Unknown format "${name}"`);
-      return f;
-    };
-    function addFormats(ajv3, list, fs, exportName) {
-      var _a;
-      var _b;
-      (_a = (_b = ajv3.opts.code).formats) !== null && _a !== void 0 ? _a : _b.formats = codegen_1._`require("ajv-formats/dist/formats").${exportName}`;
-      for (const f of list)
-        ajv3.addFormat(f, fs[f]);
-    }
-    module2.exports = exports = formatsPlugin;
-    Object.defineProperty(exports, "__esModule", { value: true });
-    exports.default = formatsPlugin;
-  }
-});
-
 // src/index.ts
 var src_exports = {};
 __export(src_exports, {
@@ -6943,20 +34,23 @@ __export(src_exports, {
   AppBskyActorGetProfile: () => getProfile_exports,
   AppBskyActorGetSuggestions: () => getSuggestions_exports,
   AppBskyActorProfile: () => profile_exports,
+  AppBskyActorRef: () => ref_exports,
   AppBskyActorSearch: () => search_exports,
   AppBskyActorSearchTypeahead: () => searchTypeahead_exports,
   AppBskyActorUpdateProfile: () => updateProfile_exports,
+  AppBskyFeedEmbed: () => embed_exports,
   AppBskyFeedGetAuthorFeed: () => getAuthorFeed_exports,
   AppBskyFeedGetPostThread: () => getPostThread_exports,
   AppBskyFeedGetRepostedBy: () => getRepostedBy_exports,
   AppBskyFeedGetTimeline: () => getTimeline_exports,
   AppBskyFeedGetVotes: () => getVotes_exports,
-  AppBskyFeedMediaEmbed: () => mediaEmbed_exports,
   AppBskyFeedPost: () => post_exports,
   AppBskyFeedRepost: () => repost_exports,
   AppBskyFeedSetVote: () => setVote_exports,
   AppBskyFeedTrend: () => trend_exports,
   AppBskyFeedVote: () => vote_exports,
+  AppBskyGraphAssertCreator: () => assertCreator_exports,
+  AppBskyGraphAssertMember: () => assertMember_exports,
   AppBskyGraphAssertion: () => assertion_exports,
   AppBskyGraphConfirmation: () => confirmation_exports,
   AppBskyGraphFollow: () => follow_exports,
@@ -6968,6 +62,9 @@ __export(src_exports, {
   AppBskyNotificationGetCount: () => getCount_exports,
   AppBskyNotificationList: () => list_exports,
   AppBskyNotificationUpdateSeen: () => updateSeen_exports,
+  AppBskySystemActorScene: () => actorScene_exports,
+  AppBskySystemActorUser: () => actorUser_exports,
+  AppBskySystemDeclRef: () => declRef_exports,
   AppBskySystemDeclaration: () => declaration_exports,
   AppNS: () => AppNS,
   AssertionRecord: () => AssertionRecord,
@@ -6988,6 +85,7 @@ __export(src_exports, {
   ComAtprotoRepoGetRecord: () => getRecord_exports,
   ComAtprotoRepoListRecords: () => listRecords_exports,
   ComAtprotoRepoPutRecord: () => putRecord_exports,
+  ComAtprotoRepoStrongRef: () => strongRef_exports,
   ComAtprotoServerGetAccountsConfig: () => getAccountsConfig_exports,
   ComAtprotoSessionCreate: () => create_exports2,
   ComAtprotoSessionDelete: () => delete_exports2,
@@ -7003,7 +101,6 @@ __export(src_exports, {
   FollowRecord: () => FollowRecord,
   GraphNS: () => GraphNS,
   HandleNS: () => HandleNS,
-  MediaEmbedRecord: () => MediaEmbedRecord,
   NotificationNS: () => NotificationNS,
   PostRecord: () => PostRecord,
   ProfileRecord: () => ProfileRecord,
@@ -7056,10 +153,10 @@ var util;
       return obj[e];
     });
   };
-  util2.objectKeys = typeof Object.keys === "function" ? (obj) => Object.keys(obj) : (object) => {
+  util2.objectKeys = typeof Object.keys === "function" ? (obj) => Object.keys(obj) : (object2) => {
     const keys = [];
-    for (const key in object) {
-      if (Object.prototype.hasOwnProperty.call(object, key)) {
+    for (const key in object2) {
+      if (Object.prototype.hasOwnProperty.call(object2, key)) {
         keys.push(key);
       }
     }
@@ -7073,8 +170,8 @@ var util;
     return void 0;
   };
   util2.isInteger = typeof Number.isInteger === "function" ? (val) => Number.isInteger(val) : (val) => typeof val === "number" && isFinite(val) && Math.floor(val) === val;
-  function joinValues(array, separator = " | ") {
-    return array.map((val) => typeof val === "string" ? `'${val}'` : val).join(separator);
+  function joinValues(array2, separator = " | ") {
+    return array2.map((val) => typeof val === "string" ? `'${val}'` : val).join(separator);
   }
   util2.joinValues = joinValues;
   util2.jsonStringifyReplacer = (_, value) => {
@@ -7349,8 +446,8 @@ function setErrorMap(map) {
 function getErrorMap() {
   return overrideErrorMap;
 }
-var makeIssue = (params) => {
-  const { data, path, errorMaps, issueData } = params;
+var makeIssue = (params2) => {
+  const { data, path, errorMaps, issueData } = params2;
   const fullPath = [...path, ...issueData.path || []];
   const fullIssue = {
     ...issueData,
@@ -7470,10 +567,10 @@ var handleResult = (ctx, result) => {
     return { success: false, error };
   }
 };
-function processCreateParams(params) {
-  if (!params)
+function processCreateParams(params2) {
+  if (!params2)
     return {};
-  const { errorMap: errorMap2, invalid_type_error, required_error, description } = params;
+  const { errorMap: errorMap2, invalid_type_error, required_error, description } = params2;
   if (errorMap2 && (invalid_type_error || required_error)) {
     throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);
   }
@@ -7555,21 +652,21 @@ var ZodType = class {
     const result = this._parse(input);
     return Promise.resolve(result);
   }
-  parse(data, params) {
-    const result = this.safeParse(data, params);
+  parse(data, params2) {
+    const result = this.safeParse(data, params2);
     if (result.success)
       return result.data;
     throw result.error;
   }
-  safeParse(data, params) {
+  safeParse(data, params2) {
     var _a;
     const ctx = {
       common: {
         issues: [],
-        async: (_a = params === null || params === void 0 ? void 0 : params.async) !== null && _a !== void 0 ? _a : false,
-        contextualErrorMap: params === null || params === void 0 ? void 0 : params.errorMap
+        async: (_a = params2 === null || params2 === void 0 ? void 0 : params2.async) !== null && _a !== void 0 ? _a : false,
+        contextualErrorMap: params2 === null || params2 === void 0 ? void 0 : params2.errorMap
       },
-      path: (params === null || params === void 0 ? void 0 : params.path) || [],
+      path: (params2 === null || params2 === void 0 ? void 0 : params2.path) || [],
       schemaErrorMap: this._def.errorMap,
       parent: null,
       data,
@@ -7578,20 +675,20 @@ var ZodType = class {
     const result = this._parseSync({ data, path: ctx.path, parent: ctx });
     return handleResult(ctx, result);
   }
-  async parseAsync(data, params) {
-    const result = await this.safeParseAsync(data, params);
+  async parseAsync(data, params2) {
+    const result = await this.safeParseAsync(data, params2);
     if (result.success)
       return result.data;
     throw result.error;
   }
-  async safeParseAsync(data, params) {
+  async safeParseAsync(data, params2) {
     const ctx = {
       common: {
         issues: [],
-        contextualErrorMap: params === null || params === void 0 ? void 0 : params.errorMap,
+        contextualErrorMap: params2 === null || params2 === void 0 ? void 0 : params2.errorMap,
         async: true
       },
-      path: (params === null || params === void 0 ? void 0 : params.path) || [],
+      path: (params2 === null || params2 === void 0 ? void 0 : params2.path) || [],
       schemaErrorMap: this._def.errorMap,
       parent: null,
       data,
@@ -7938,11 +1035,11 @@ var ZodString = class extends ZodType {
     return max;
   }
 };
-ZodString.create = (params) => {
+ZodString.create = (params2) => {
   return new ZodString({
     checks: [],
     typeName: ZodFirstPartyTypeKind.ZodString,
-    ...processCreateParams(params)
+    ...processCreateParams(params2)
   });
 };
 function floatSafeRemainder(val, step) {
@@ -8128,11 +1225,11 @@ var ZodNumber = class extends ZodType {
     return !!this._def.checks.find((ch) => ch.kind === "int");
   }
 };
-ZodNumber.create = (params) => {
+ZodNumber.create = (params2) => {
   return new ZodNumber({
     checks: [],
     typeName: ZodFirstPartyTypeKind.ZodNumber,
-    ...processCreateParams(params)
+    ...processCreateParams(params2)
   });
 };
 var ZodBigInt = class extends ZodType {
@@ -8150,10 +1247,10 @@ var ZodBigInt = class extends ZodType {
     return OK(input.data);
   }
 };
-ZodBigInt.create = (params) => {
+ZodBigInt.create = (params2) => {
   return new ZodBigInt({
     typeName: ZodFirstPartyTypeKind.ZodBigInt,
-    ...processCreateParams(params)
+    ...processCreateParams(params2)
   });
 };
 var ZodBoolean = class extends ZodType {
@@ -8171,10 +1268,10 @@ var ZodBoolean = class extends ZodType {
     return OK(input.data);
   }
 };
-ZodBoolean.create = (params) => {
+ZodBoolean.create = (params2) => {
   return new ZodBoolean({
     typeName: ZodFirstPartyTypeKind.ZodBoolean,
-    ...processCreateParams(params)
+    ...processCreateParams(params2)
   });
 };
 var ZodDate = class extends ZodType {
@@ -8273,11 +1370,11 @@ var ZodDate = class extends ZodType {
     return max != null ? new Date(max) : null;
   }
 };
-ZodDate.create = (params) => {
+ZodDate.create = (params2) => {
   return new ZodDate({
     checks: [],
     typeName: ZodFirstPartyTypeKind.ZodDate,
-    ...processCreateParams(params)
+    ...processCreateParams(params2)
   });
 };
 var ZodUndefined = class extends ZodType {
@@ -8295,10 +1392,10 @@ var ZodUndefined = class extends ZodType {
     return OK(input.data);
   }
 };
-ZodUndefined.create = (params) => {
+ZodUndefined.create = (params2) => {
   return new ZodUndefined({
     typeName: ZodFirstPartyTypeKind.ZodUndefined,
-    ...processCreateParams(params)
+    ...processCreateParams(params2)
   });
 };
 var ZodNull = class extends ZodType {
@@ -8316,10 +1413,10 @@ var ZodNull = class extends ZodType {
     return OK(input.data);
   }
 };
-ZodNull.create = (params) => {
+ZodNull.create = (params2) => {
   return new ZodNull({
     typeName: ZodFirstPartyTypeKind.ZodNull,
-    ...processCreateParams(params)
+    ...processCreateParams(params2)
   });
 };
 var ZodAny = class extends ZodType {
@@ -8331,10 +1428,10 @@ var ZodAny = class extends ZodType {
     return OK(input.data);
   }
 };
-ZodAny.create = (params) => {
+ZodAny.create = (params2) => {
   return new ZodAny({
     typeName: ZodFirstPartyTypeKind.ZodAny,
-    ...processCreateParams(params)
+    ...processCreateParams(params2)
   });
 };
 var ZodUnknown = class extends ZodType {
@@ -8346,10 +1443,10 @@ var ZodUnknown = class extends ZodType {
     return OK(input.data);
   }
 };
-ZodUnknown.create = (params) => {
+ZodUnknown.create = (params2) => {
   return new ZodUnknown({
     typeName: ZodFirstPartyTypeKind.ZodUnknown,
-    ...processCreateParams(params)
+    ...processCreateParams(params2)
   });
 };
 var ZodNever = class extends ZodType {
@@ -8363,10 +1460,10 @@ var ZodNever = class extends ZodType {
     return INVALID;
   }
 };
-ZodNever.create = (params) => {
+ZodNever.create = (params2) => {
   return new ZodNever({
     typeName: ZodFirstPartyTypeKind.ZodNever,
-    ...processCreateParams(params)
+    ...processCreateParams(params2)
   });
 };
 var ZodVoid = class extends ZodType {
@@ -8384,10 +1481,10 @@ var ZodVoid = class extends ZodType {
     return OK(input.data);
   }
 };
-ZodVoid.create = (params) => {
+ZodVoid.create = (params2) => {
   return new ZodVoid({
     typeName: ZodFirstPartyTypeKind.ZodVoid,
-    ...processCreateParams(params)
+    ...processCreateParams(params2)
   });
 };
 var ZodArray = class extends ZodType {
@@ -8460,13 +1557,13 @@ var ZodArray = class extends ZodType {
     return this.min(1, message);
   }
 };
-ZodArray.create = (schema, params) => {
+ZodArray.create = (schema, params2) => {
   return new ZodArray({
     type: schema,
     minLength: null,
     maxLength: null,
     typeName: ZodFirstPartyTypeKind.ZodArray,
-    ...processCreateParams(params)
+    ...processCreateParams(params2)
   });
 };
 var objectUtil;
@@ -8733,31 +1830,31 @@ var ZodObject = class extends ZodType {
     return createZodEnum(util.objectKeys(this.shape));
   }
 };
-ZodObject.create = (shape, params) => {
+ZodObject.create = (shape, params2) => {
   return new ZodObject({
     shape: () => shape,
     unknownKeys: "strip",
     catchall: ZodNever.create(),
     typeName: ZodFirstPartyTypeKind.ZodObject,
-    ...processCreateParams(params)
+    ...processCreateParams(params2)
   });
 };
-ZodObject.strictCreate = (shape, params) => {
+ZodObject.strictCreate = (shape, params2) => {
   return new ZodObject({
     shape: () => shape,
     unknownKeys: "strict",
     catchall: ZodNever.create(),
     typeName: ZodFirstPartyTypeKind.ZodObject,
-    ...processCreateParams(params)
+    ...processCreateParams(params2)
   });
 };
-ZodObject.lazycreate = (shape, params) => {
+ZodObject.lazycreate = (shape, params2) => {
   return new ZodObject({
     shape,
     unknownKeys: "strip",
     catchall: ZodNever.create(),
     typeName: ZodFirstPartyTypeKind.ZodObject,
-    ...processCreateParams(params)
+    ...processCreateParams(params2)
   });
 };
 var ZodUnion = class extends ZodType {
@@ -8844,11 +1941,11 @@ var ZodUnion = class extends ZodType {
     return this._def.options;
   }
 };
-ZodUnion.create = (types, params) => {
+ZodUnion.create = (types, params2) => {
   return new ZodUnion({
     options: types,
     typeName: ZodFirstPartyTypeKind.ZodUnion,
-    ...processCreateParams(params)
+    ...processCreateParams(params2)
   });
 };
 var ZodDiscriminatedUnion = class extends ZodType {
@@ -8896,7 +1993,7 @@ var ZodDiscriminatedUnion = class extends ZodType {
   get options() {
     return this._def.options;
   }
-  static create(discriminator, types, params) {
+  static create(discriminator, types, params2) {
     const options = /* @__PURE__ */ new Map();
     try {
       types.forEach((type) => {
@@ -8913,7 +2010,7 @@ var ZodDiscriminatedUnion = class extends ZodType {
       typeName: ZodFirstPartyTypeKind.ZodDiscriminatedUnion,
       discriminator,
       options,
-      ...processCreateParams(params)
+      ...processCreateParams(params2)
     });
   }
 };
@@ -9000,12 +2097,12 @@ var ZodIntersection = class extends ZodType {
     }
   }
 };
-ZodIntersection.create = (left, right, params) => {
+ZodIntersection.create = (left, right, params2) => {
   return new ZodIntersection({
     left,
     right,
     typeName: ZodFirstPartyTypeKind.ZodIntersection,
-    ...processCreateParams(params)
+    ...processCreateParams(params2)
   });
 };
 var ZodTuple = class extends ZodType {
@@ -9062,7 +2159,7 @@ var ZodTuple = class extends ZodType {
     });
   }
 };
-ZodTuple.create = (schemas, params) => {
+ZodTuple.create = (schemas, params2) => {
   if (!Array.isArray(schemas)) {
     throw new Error("You must pass an array of schemas to z.tuple([ ... ])");
   }
@@ -9070,7 +2167,7 @@ ZodTuple.create = (schemas, params) => {
     items: schemas,
     typeName: ZodFirstPartyTypeKind.ZodTuple,
     rest: null,
-    ...processCreateParams(params)
+    ...processCreateParams(params2)
   });
 };
 var ZodRecord = class extends ZodType {
@@ -9177,12 +2274,12 @@ var ZodMap = class extends ZodType {
     }
   }
 };
-ZodMap.create = (keyType, valueType, params) => {
+ZodMap.create = (keyType, valueType, params2) => {
   return new ZodMap({
     valueType,
     keyType,
     typeName: ZodFirstPartyTypeKind.ZodMap,
-    ...processCreateParams(params)
+    ...processCreateParams(params2)
   });
 };
 var ZodSet = class extends ZodType {
@@ -9259,13 +2356,13 @@ var ZodSet = class extends ZodType {
     return this.min(1, message);
   }
 };
-ZodSet.create = (valueType, params) => {
+ZodSet.create = (valueType, params2) => {
   return new ZodSet({
     valueType,
     minSize: null,
     maxSize: null,
     typeName: ZodFirstPartyTypeKind.ZodSet,
-    ...processCreateParams(params)
+    ...processCreateParams(params2)
   });
 };
 var ZodFunction = class extends ZodType {
@@ -9315,17 +2412,17 @@ var ZodFunction = class extends ZodType {
         }
       });
     }
-    const params = { errorMap: ctx.common.contextualErrorMap };
+    const params2 = { errorMap: ctx.common.contextualErrorMap };
     const fn = ctx.data;
     if (this._def.returns instanceof ZodPromise) {
       return OK(async (...args) => {
         const error = new ZodError([]);
-        const parsedArgs = await this._def.args.parseAsync(args, params).catch((e) => {
+        const parsedArgs = await this._def.args.parseAsync(args, params2).catch((e) => {
           error.addIssue(makeArgsIssue(args, e));
           throw error;
         });
         const result = await fn(...parsedArgs);
-        const parsedReturns = await this._def.returns._def.type.parseAsync(result, params).catch((e) => {
+        const parsedReturns = await this._def.returns._def.type.parseAsync(result, params2).catch((e) => {
           error.addIssue(makeReturnsIssue(result, e));
           throw error;
         });
@@ -9333,12 +2430,12 @@ var ZodFunction = class extends ZodType {
       });
     } else {
       return OK((...args) => {
-        const parsedArgs = this._def.args.safeParse(args, params);
+        const parsedArgs = this._def.args.safeParse(args, params2);
         if (!parsedArgs.success) {
           throw new ZodError([makeArgsIssue(args, parsedArgs.error)]);
         }
         const result = fn(...parsedArgs.data);
-        const parsedReturns = this._def.returns.safeParse(result, params);
+        const parsedReturns = this._def.returns.safeParse(result, params2);
         if (!parsedReturns.success) {
           throw new ZodError([makeReturnsIssue(result, parsedReturns.error)]);
         }
@@ -9372,12 +2469,12 @@ var ZodFunction = class extends ZodType {
     const validatedFunc = this.parse(func);
     return validatedFunc;
   }
-  static create(args, returns, params) {
+  static create(args, returns, params2) {
     return new ZodFunction({
       args: args ? args : ZodTuple.create([]).rest(ZodUnknown.create()),
       returns: returns || ZodUnknown.create(),
       typeName: ZodFirstPartyTypeKind.ZodFunction,
-      ...processCreateParams(params)
+      ...processCreateParams(params2)
     });
   }
 };
@@ -9391,11 +2488,11 @@ var ZodLazy = class extends ZodType {
     return lazySchema._parse({ data: ctx.data, path: ctx.path, parent: ctx });
   }
 };
-ZodLazy.create = (getter, params) => {
+ZodLazy.create = (getter, params2) => {
   return new ZodLazy({
     getter,
     typeName: ZodFirstPartyTypeKind.ZodLazy,
-    ...processCreateParams(params)
+    ...processCreateParams(params2)
   });
 };
 var ZodLiteral = class extends ZodType {
@@ -9414,18 +2511,18 @@ var ZodLiteral = class extends ZodType {
     return this._def.value;
   }
 };
-ZodLiteral.create = (value, params) => {
+ZodLiteral.create = (value, params2) => {
   return new ZodLiteral({
     value,
     typeName: ZodFirstPartyTypeKind.ZodLiteral,
-    ...processCreateParams(params)
+    ...processCreateParams(params2)
   });
 };
-function createZodEnum(values, params) {
+function createZodEnum(values, params2) {
   return new ZodEnum({
     values,
     typeName: ZodFirstPartyTypeKind.ZodEnum,
-    ...processCreateParams(params)
+    ...processCreateParams(params2)
   });
 }
 var ZodEnum = class extends ZodType {
@@ -9506,11 +2603,11 @@ var ZodNativeEnum = class extends ZodType {
     return this._def.values;
   }
 };
-ZodNativeEnum.create = (values, params) => {
+ZodNativeEnum.create = (values, params2) => {
   return new ZodNativeEnum({
     values,
     typeName: ZodFirstPartyTypeKind.ZodNativeEnum,
-    ...processCreateParams(params)
+    ...processCreateParams(params2)
   });
 };
 var ZodPromise = class extends ZodType {
@@ -9533,11 +2630,11 @@ var ZodPromise = class extends ZodType {
     }));
   }
 };
-ZodPromise.create = (schema, params) => {
+ZodPromise.create = (schema, params2) => {
   return new ZodPromise({
     type: schema,
     typeName: ZodFirstPartyTypeKind.ZodPromise,
-    ...processCreateParams(params)
+    ...processCreateParams(params2)
   });
 };
 var ZodEffects = class extends ZodType {
@@ -9639,20 +2736,20 @@ var ZodEffects = class extends ZodType {
     util.assertNever(effect);
   }
 };
-ZodEffects.create = (schema, effect, params) => {
+ZodEffects.create = (schema, effect, params2) => {
   return new ZodEffects({
     schema,
     typeName: ZodFirstPartyTypeKind.ZodEffects,
     effect,
-    ...processCreateParams(params)
+    ...processCreateParams(params2)
   });
 };
-ZodEffects.createWithPreprocess = (preprocess, schema, params) => {
+ZodEffects.createWithPreprocess = (preprocess, schema, params2) => {
   return new ZodEffects({
     schema,
     effect: { type: "preprocess", transform: preprocess },
     typeName: ZodFirstPartyTypeKind.ZodEffects,
-    ...processCreateParams(params)
+    ...processCreateParams(params2)
   });
 };
 var ZodOptional = class extends ZodType {
@@ -9667,11 +2764,11 @@ var ZodOptional = class extends ZodType {
     return this._def.innerType;
   }
 };
-ZodOptional.create = (type, params) => {
+ZodOptional.create = (type, params2) => {
   return new ZodOptional({
     innerType: type,
     typeName: ZodFirstPartyTypeKind.ZodOptional,
-    ...processCreateParams(params)
+    ...processCreateParams(params2)
   });
 };
 var ZodNullable = class extends ZodType {
@@ -9686,11 +2783,11 @@ var ZodNullable = class extends ZodType {
     return this._def.innerType;
   }
 };
-ZodNullable.create = (type, params) => {
+ZodNullable.create = (type, params2) => {
   return new ZodNullable({
     innerType: type,
     typeName: ZodFirstPartyTypeKind.ZodNullable,
-    ...processCreateParams(params)
+    ...processCreateParams(params2)
   });
 };
 var ZodDefault = class extends ZodType {
@@ -9710,11 +2807,11 @@ var ZodDefault = class extends ZodType {
     return this._def.innerType;
   }
 };
-ZodDefault.create = (type, params) => {
+ZodDefault.create = (type, params2) => {
   return new ZodOptional({
     innerType: type,
     typeName: ZodFirstPartyTypeKind.ZodOptional,
-    ...processCreateParams(params)
+    ...processCreateParams(params2)
   });
 };
 var ZodNaN = class extends ZodType {
@@ -9732,10 +2829,10 @@ var ZodNaN = class extends ZodType {
     return { status: "valid", value: input.data };
   }
 };
-ZodNaN.create = (params) => {
+ZodNaN.create = (params2) => {
   return new ZodNaN({
     typeName: ZodFirstPartyTypeKind.ZodNaN,
-    ...processCreateParams(params)
+    ...processCreateParams(params2)
   });
 };
 var BRAND = Symbol("zod_brand");
@@ -9753,11 +2850,11 @@ var ZodBranded = class extends ZodType {
     return this._def.type;
   }
 };
-var custom = (check, params = {}, fatal) => {
+var custom = (check, params2 = {}, fatal) => {
   if (check)
     return ZodAny.create().superRefine((data, ctx) => {
       if (!check(data)) {
-        const p = typeof params === "function" ? params(data) : params;
+        const p = typeof params2 === "function" ? params2(data) : params2;
         const p2 = typeof p === "string" ? { message: p } : p;
         ctx.addIssue({ code: "custom", ...p2, fatal });
       }
@@ -9802,9 +2899,9 @@ var ZodFirstPartyTypeKind;
   ZodFirstPartyTypeKind2["ZodPromise"] = "ZodPromise";
   ZodFirstPartyTypeKind2["ZodBranded"] = "ZodBranded";
 })(ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {}));
-var instanceOfType = (cls, params = {
+var instanceOfType = (cls, params2 = {
   message: `Input not instance of ${cls.name}`
-}) => custom((data) => data instanceof cls, params, true);
+}) => custom((data) => data instanceof cls, params2, true);
 var stringType = ZodString.create;
 var numberType = ZodNumber.create;
 var nanType = ZodNaN.create;
@@ -10066,88 +3163,843 @@ var NSID = class {
 };
 
 // ../lexicon/src/types.ts
-var tokenSchema = mod.object({
-  lexicon: mod.literal(1),
-  id: mod.string().refine((v) => NSID.isValid(v), {
-    message: "Must be a valid NSID"
-  }),
-  type: mod.enum(["token"]),
-  revision: mod.number().optional(),
+var lexBoolean = mod.object({
+  type: mod.literal("boolean"),
   description: mod.string().optional(),
-  defs: mod.any().optional()
+  default: mod.boolean().optional(),
+  const: mod.boolean().optional()
 });
-var recordSchema = mod.object({
-  lexicon: mod.literal(1),
-  id: mod.string().refine((v) => NSID.isValid(v), {
-    message: "Must be a valid NSID"
-  }),
-  type: mod.enum(["record"]),
-  revision: mod.number().optional(),
+var lexNumber = mod.object({
+  type: mod.literal("number"),
   description: mod.string().optional(),
-  key: mod.string().optional(),
-  record: mod.any().optional(),
-  defs: mod.any().optional()
+  default: mod.number().optional(),
+  minimum: mod.number().optional(),
+  maximum: mod.number().optional(),
+  enum: mod.number().array().optional(),
+  const: mod.number().optional()
+});
+var lexInteger = mod.object({
+  type: mod.literal("integer"),
+  description: mod.string().optional(),
+  default: mod.number().int().optional(),
+  minimum: mod.number().int().optional(),
+  maximum: mod.number().int().optional(),
+  enum: mod.number().int().array().optional(),
+  const: mod.number().int().optional()
+});
+var lexString = mod.object({
+  type: mod.literal("string"),
+  description: mod.string().optional(),
+  default: mod.string().optional(),
+  minLength: mod.number().int().optional(),
+  maxLength: mod.number().int().optional(),
+  enum: mod.string().array().optional(),
+  const: mod.string().optional(),
+  knownValues: mod.string().array().optional()
+});
+var lexDatetime = mod.object({
+  type: mod.literal("datetime"),
+  description: mod.string().optional()
+});
+var lexUnknown = mod.object({
+  type: mod.literal("unknown"),
+  description: mod.string().optional()
+});
+var lexPrimitive = mod.union([
+  lexBoolean,
+  lexNumber,
+  lexInteger,
+  lexString,
+  lexDatetime,
+  lexUnknown
+]);
+var lexRef = mod.object({
+  type: mod.literal("ref"),
+  description: mod.string().optional(),
+  ref: mod.string()
+});
+var lexRefUnion = mod.object({
+  type: mod.literal("union"),
+  description: mod.string().optional(),
+  refs: mod.string().array(),
+  closed: mod.boolean().optional()
+});
+var lexRefVariant = mod.union([lexRef, lexRefUnion]);
+var lexBlob = mod.object({
+  type: mod.literal("blob"),
+  description: mod.string().optional(),
+  accept: mod.string().array().optional(),
+  maxSize: mod.number().optional()
+});
+var lexImage = mod.object({
+  type: mod.literal("image"),
+  description: mod.string().optional(),
+  accept: mod.string().array().optional(),
+  maxSize: mod.number().optional(),
+  maxWidth: mod.number().int().optional(),
+  maxHeight: mod.number().int().optional()
 });
-var methodSchemaBody = mod.object({
-  encoding: mod.union([mod.string(), mod.string().array()]),
+var lexVideo = mod.object({
+  type: mod.literal("video"),
   description: mod.string().optional(),
-  schema: mod.any().optional()
+  accept: mod.string().array().optional(),
+  maxSize: mod.number().optional(),
+  maxWidth: mod.number().int().optional(),
+  maxHeight: mod.number().int().optional(),
+  maxLength: mod.number().int().optional()
 });
-var methodSchemaParam = mod.object({
+var lexAudio = mod.object({
+  type: mod.literal("audio"),
+  description: mod.string().optional(),
+  accept: mod.string().array().optional(),
+  maxSize: mod.number().optional(),
+  maxLength: mod.number().int().optional()
+});
+var lexBlobVariant = mod.union([lexBlob, lexImage, lexVideo, lexAudio]);
+var lexArray = mod.object({
+  type: mod.literal("array"),
+  description: mod.string().optional(),
+  items: mod.union([lexPrimitive, lexBlobVariant, lexRefVariant]),
+  minLength: mod.number().int().optional(),
+  maxLength: mod.number().int().optional()
+});
+var lexToken = mod.object({
+  type: mod.literal("token"),
+  description: mod.string().optional()
+});
+var lexObject = mod.object({
   type: mod.literal("object"),
-  properties: mod.record(
-    mod.object({
-      type: mod.enum(["string", "number", "integer", "boolean"])
-    }).catchall(mod.any())
-  )
-}).catchall(mod.any());
-var methodSchemaError = mod.object({
+  description: mod.string().optional(),
+  required: mod.string().array().optional(),
+  properties: mod.record(mod.union([lexRefVariant, lexArray, lexBlobVariant, lexPrimitive])).optional()
+});
+var lexXrpcParameters = mod.object({
+  type: mod.literal("params"),
+  description: mod.string().optional(),
+  required: mod.string().array().optional(),
+  properties: mod.record(lexPrimitive)
+});
+var lexXrpcBody = mod.object({
+  description: mod.string().optional(),
+  encoding: mod.string(),
+  schema: mod.union([lexRefVariant, lexObject]).optional()
+});
+var lexXrpcError = mod.object({
   name: mod.string(),
   description: mod.string().optional()
 });
-var methodSchema = mod.object({
+var lexXrpcQuery = mod.object({
+  type: mod.literal("query"),
+  description: mod.string().optional(),
+  parameters: lexXrpcParameters.optional(),
+  output: lexXrpcBody.optional(),
+  errors: lexXrpcError.array().optional()
+});
+var lexXrpcProcedure = mod.object({
+  type: mod.literal("procedure"),
+  description: mod.string().optional(),
+  parameters: lexXrpcParameters.optional(),
+  input: lexXrpcBody.optional(),
+  output: lexXrpcBody.optional(),
+  errors: lexXrpcError.array().optional()
+});
+var lexRecord = mod.object({
+  type: mod.literal("record"),
+  description: mod.string().optional(),
+  key: mod.string().optional(),
+  record: lexObject
+});
+var lexUserType = mod.union([
+  lexRecord,
+  lexXrpcQuery,
+  lexXrpcProcedure,
+  lexBlob,
+  lexImage,
+  lexVideo,
+  lexAudio,
+  lexArray,
+  lexToken,
+  lexObject,
+  lexBoolean,
+  lexNumber,
+  lexInteger,
+  lexString,
+  lexDatetime,
+  lexUnknown
+]);
+var lexiconDoc = mod.object({
   lexicon: mod.literal(1),
-  id: mod.string(),
-  type: mod.enum(["query", "procedure"]),
+  id: mod.string().refine((v) => NSID.isValid(v), {
+    message: "Must be a valid NSID"
+  }),
+  revision: mod.number().optional(),
   description: mod.string().optional(),
-  parameters: methodSchemaParam.optional(),
-  input: methodSchemaBody.optional(),
-  output: methodSchemaBody.optional(),
-  errors: methodSchemaError.array().optional(),
-  defs: mod.any().optional()
+  defs: mod.record(lexUserType)
+}).superRefine((doc, ctx) => {
+  for (const defId in doc.defs) {
+    const def = doc.defs[defId];
+    if (defId !== "main" && (def.type === "record" || def.type === "procedure" || def.type === "query")) {
+      ctx.addIssue({
+        code: mod.ZodIssueCode.custom,
+        message: `Records, procedures, and queries must be the main definition.`
+      });
+    }
+  }
 });
-function isValidMethodSchema(v) {
-  return methodSchema.safeParse(v).success;
+function isObj(obj) {
+  return !!obj && typeof obj === "object";
+}
+function hasProp(data, prop) {
+  return prop in data;
+}
+var discriminatedObject = mod.object({ $type: mod.string() });
+function isDiscriminatedObject(value) {
+  return discriminatedObject.safeParse(value).success;
+}
+var LexiconDocMalformedError = class extends Error {
+  constructor(message, schemaDef, issues) {
+    super(message);
+    this.schemaDef = schemaDef;
+    this.issues = issues;
+    this.schemaDef = schemaDef;
+    this.issues = issues;
+  }
+};
+var ValidationError = class extends Error {
+};
+var InvalidLexiconError = class extends Error {
+};
+var LexiconDefNotFoundError = class extends Error {
+};
+
+// ../lexicon/src/validators/primitives.ts
+function validate(lexicons2, path, def, value) {
+  switch (def.type) {
+    case "boolean":
+      return boolean(lexicons2, path, def, value);
+    case "number":
+      return number(lexicons2, path, def, value);
+    case "integer":
+      return integer(lexicons2, path, def, value);
+    case "string":
+      return string(lexicons2, path, def, value);
+    case "datetime":
+      return datetime(lexicons2, path, def, value);
+    case "unknown":
+      return unknown(lexicons2, path, def, value);
+    default:
+      return {
+        success: false,
+        error: new ValidationError(`Unexpected lexicon type: ${def.type}`)
+      };
+  }
+}
+function boolean(lexicons2, path, def, value) {
+  def = def;
+  const type = typeof value;
+  if (type == "undefined") {
+    if (typeof def.default === "boolean") {
+      return { success: true };
+    }
+    return {
+      success: false,
+      error: new ValidationError(`${path} must be a boolean`)
+    };
+  } else if (type !== "boolean") {
+    return {
+      success: false,
+      error: new ValidationError(`${path} must be a boolean`)
+    };
+  }
+  if (typeof def.const === "boolean") {
+    if (value !== def.const) {
+      return {
+        success: false,
+        error: new ValidationError(`${path} must be ${def.const}`)
+      };
+    }
+  }
+  return { success: true };
+}
+function number(lexicons2, path, def, value) {
+  def = def;
+  const type = typeof value;
+  if (type == "undefined") {
+    if (typeof def.default === "number") {
+      return { success: true };
+    }
+    return {
+      success: false,
+      error: new ValidationError(`${path} must be a number`)
+    };
+  } else if (type !== "number") {
+    return {
+      success: false,
+      error: new ValidationError(`${path} must be a number`)
+    };
+  }
+  if (typeof def.const === "number") {
+    if (value !== def.const) {
+      return {
+        success: false,
+        error: new ValidationError(`${path} must be ${def.const}`)
+      };
+    }
+  }
+  if (Array.isArray(def.enum)) {
+    if (!def.enum.includes(value)) {
+      return {
+        success: false,
+        error: new ValidationError(
+          `${path} must be one of (${def.enum.join("|")})`
+        )
+      };
+    }
+  }
+  if (typeof def.maximum === "number") {
+    if (value > def.maximum) {
+      return {
+        success: false,
+        error: new ValidationError(
+          `${path} can not be greater than ${def.maximum}`
+        )
+      };
+    }
+  }
+  if (typeof def.minimum === "number") {
+    if (value < def.minimum) {
+      return {
+        success: false,
+        error: new ValidationError(
+          `${path} can not be less than ${def.minimum}`
+        )
+      };
+    }
+  }
+  return { success: true };
+}
+function integer(lexicons2, path, def, value) {
+  def = def;
+  const numRes = number(lexicons2, path, def, value);
+  if (!numRes.success) {
+    return numRes;
+  }
+  if (!Number.isInteger(value)) {
+    return {
+      success: false,
+      error: new ValidationError(`${path} must be an integer`)
+    };
+  }
+  return { success: true };
+}
+function string(lexicons2, path, def, value) {
+  def = def;
+  const type = typeof value;
+  if (type == "undefined") {
+    if (typeof def.default === "string") {
+      return { success: true };
+    }
+    return {
+      success: false,
+      error: new ValidationError(`${path} must be a string`)
+    };
+  } else if (type !== "string") {
+    return {
+      success: false,
+      error: new ValidationError(`${path} must be a string`)
+    };
+  }
+  if (typeof def.const === "string") {
+    if (value !== def.const) {
+      return {
+        success: false,
+        error: new ValidationError(`${path} must be ${def.const}`)
+      };
+    }
+  }
+  if (Array.isArray(def.enum)) {
+    if (!def.enum.includes(value)) {
+      return {
+        success: false,
+        error: new ValidationError(
+          `${path} must be one of (${def.enum.join("|")})`
+        )
+      };
+    }
+  }
+  if (typeof def.maxLength === "number") {
+    if (value.length > def.maxLength) {
+      return {
+        success: false,
+        error: new ValidationError(
+          `${path} must not be longer than ${def.maxLength} characters`
+        )
+      };
+    }
+  }
+  if (typeof def.minLength === "number") {
+    if (value.length < def.minLength) {
+      return {
+        success: false,
+        error: new ValidationError(
+          `${path} must not be shorter than ${def.minLength} characters`
+        )
+      };
+    }
+  }
+  return { success: true };
+}
+function datetime(lexicons2, path, def, value) {
+  def = def;
+  const type = typeof value;
+  if (type !== "string") {
+    return {
+      success: false,
+      error: new ValidationError(`${path} must be a string`)
+    };
+  }
+  {
+    try {
+      const date = new Date(Date.parse(value));
+      if (value !== date.toISOString()) {
+        throw new ValidationError(
+          `${path} must be an iso8601 formatted datetime`
+        );
+      }
+    } catch {
+      throw new ValidationError(`${path} must be an iso8601 formatted datetime`);
+    }
+  }
+  return { success: true };
+}
+function unknown(lexicons2, path, def, value) {
+  if (!value || typeof value !== "object") {
+    return {
+      success: false,
+      error: new ValidationError(`${path} must be an object`)
+    };
+  }
+  return { success: true };
+}
+
+// ../lexicon/src/validators/blob.ts
+function blob(lexicons2, path, def, value) {
+  if (!isObj(value)) {
+    return {
+      success: false,
+      error: new ValidationError(`${path} should be an object`)
+    };
+  }
+  if (!hasProp(value, "cid") || typeof value.cid !== "string") {
+    return {
+      success: false,
+      error: new ValidationError(`${path}/cid should be a string`)
+    };
+  }
+  if (!hasProp(value, "mimeType") || typeof value.mimeType !== "string") {
+    return {
+      success: false,
+      error: new ValidationError(`${path}/mimeType should be a string`)
+    };
+  }
+  return { success: true };
+}
+function image(lexicons2, path, def, value) {
+  return blob(lexicons2, path, def, value);
+}
+function video(lexicons2, path, def, value) {
+  return blob(lexicons2, path, def, value);
+}
+function audio(lexicons2, path, def, value) {
+  return blob(lexicons2, path, def, value);
+}
+
+// ../lexicon/src/validators/complex.ts
+function validate2(lexicons2, path, def, value) {
+  switch (def.type) {
+    case "boolean":
+      return boolean(lexicons2, path, def, value);
+    case "number":
+      return number(lexicons2, path, def, value);
+    case "integer":
+      return integer(lexicons2, path, def, value);
+    case "string":
+      return string(lexicons2, path, def, value);
+    case "datetime":
+      return datetime(lexicons2, path, def, value);
+    case "unknown":
+      return unknown(lexicons2, path, def, value);
+    case "object":
+      return object(lexicons2, path, def, value);
+    case "array":
+      return array(lexicons2, path, def, value);
+    case "blob":
+      return blob(lexicons2, path, def, value);
+    case "image":
+      return image(lexicons2, path, def, value);
+    case "video":
+      return video(lexicons2, path, def, value);
+    case "audio":
+      return audio(lexicons2, path, def, value);
+    default:
+      return {
+        success: false,
+        error: new ValidationError(`Unexpected lexicon type: ${def.type}`)
+      };
+  }
+}
+function array(lexicons2, path, def, value) {
+  def = def;
+  if (!Array.isArray(value)) {
+    return {
+      success: false,
+      error: new ValidationError(`${path} must be an array`)
+    };
+  }
+  if (typeof def.maxLength === "number") {
+    if (value.length > def.maxLength) {
+      return {
+        success: false,
+        error: new ValidationError(
+          `${path} must not have more than ${def.maxLength} elements`
+        )
+      };
+    }
+  }
+  if (typeof def.minLength === "number") {
+    if (value.length < def.minLength) {
+      return {
+        success: false,
+        error: new ValidationError(
+          `${path} must not have fewer than ${def.minLength} elements`
+        )
+      };
+    }
+  }
+  const itemsDef = def.items;
+  for (let i = 0; i < value.length; i++) {
+    const itemValue = value[i];
+    const itemPath = `${path}/${i}`;
+    const res = validateOneOf(lexicons2, itemPath, itemsDef, itemValue);
+    if (!res.success) {
+      return res;
+    }
+  }
+  return { success: true };
+}
+function object(lexicons2, path, def, value) {
+  def = def;
+  if (!value || typeof value !== "object") {
+    return {
+      success: false,
+      error: new ValidationError(`${path} must be an object`)
+    };
+  }
+  if (Array.isArray(def.required)) {
+    for (const key of def.required) {
+      if (!(key in value)) {
+        return {
+          success: false,
+          error: new ValidationError(`${path} must have the property "${key}"`)
+        };
+      }
+    }
+  }
+  if (typeof def.properties === "object") {
+    for (const key in def.properties) {
+      const propValue = value[key];
+      if (typeof propValue === "undefined") {
+        continue;
+      }
+      const propDef = def.properties[key];
+      const propPath = `${path}/${key}`;
+      const res = validateOneOf(lexicons2, propPath, propDef, propValue);
+      if (!res.success) {
+        return res;
+      }
+    }
+  }
+  return { success: true };
+}
+
+// ../lexicon/src/util.ts
+function toLexUri(str, baseUri) {
+  if (str.startsWith("lex:")) {
+    return str;
+  }
+  if (str.startsWith("#")) {
+    if (!baseUri) {
+      throw new Error(`Unable to resolve uri without anchor: ${str}`);
+    }
+    return `${baseUri}${str}`;
+  }
+  return `lex:${str}`;
+}
+function validateOneOf(lexicons2, path, def, value, mustBeObj = false) {
+  let error;
+  let concreteDefs;
+  if (def.type === "union") {
+    if (!isDiscriminatedObject(value)) {
+      return {
+        success: false,
+        error: new ValidationError(
+          `${path} must be an object which includes the "$type" property`
+        )
+      };
+    }
+    if (!def.refs.includes(toLexUri(value.$type))) {
+      if (def.closed) {
+        return {
+          success: false,
+          error: new ValidationError(
+            `${path} $type must be one of ${def.refs.join(", ")}`
+          )
+        };
+      }
+      return { success: true };
+    } else {
+      concreteDefs = toConcreteTypes(lexicons2, {
+        type: "ref",
+        ref: value.$type
+      });
+    }
+  } else {
+    concreteDefs = toConcreteTypes(lexicons2, def);
+  }
+  for (const concreteDef of concreteDefs) {
+    const result = mustBeObj ? object(lexicons2, path, concreteDef, value) : validate2(lexicons2, path, concreteDef, value);
+    if (result.success) {
+      return result;
+    }
+    error ?? (error = result.error);
+  }
+  if (concreteDefs.length > 1) {
+    return {
+      success: false,
+      error: new ValidationError(
+        `${path} did not match any of the expected definitions`
+      )
+    };
+  }
+  return { success: false, error };
+}
+function assertValidOneOf(lexicons2, path, def, value, mustBeObj = false) {
+  const res = validateOneOf(lexicons2, path, def, value, mustBeObj);
+  if (!res.success) {
+    throw res.error;
+  }
+}
+function toConcreteTypes(lexicons2, def) {
+  if (def.type === "ref") {
+    return [lexicons2.getDefOrThrow(def.ref)];
+  } else if (def.type === "union") {
+    return def.refs.map((ref) => lexicons2.getDefOrThrow(ref)).flat();
+  } else {
+    return [def];
+  }
+}
+
+// ../lexicon/src/validators/xrpc.ts
+function params(lexicons2, path, def, value) {
+  def = def;
+  if (!value || typeof value !== "object") {
+    value = {};
+  }
+  if (Array.isArray(def.required)) {
+    for (const key of def.required) {
+      if (!(key in value)) {
+        return {
+          success: false,
+          error: new ValidationError(`${path} must have the property "${key}"`)
+        };
+      }
+    }
+  }
+  for (const key in def.properties) {
+    if (typeof value[key] === "undefined") {
+      continue;
+    }
+    const paramDef = def.properties[key];
+    const res = validate(
+      lexicons2,
+      key,
+      paramDef,
+      value[key]
+    );
+    if (!res.success) {
+      return res;
+    }
+  }
+  return { success: true };
 }
 
-// ../lexicon/src/record/schema.ts
-var import_ajv = __toESM(require_ajv());
-var import_ajv_formats = __toESM(require_dist());
-var ajv = new import_ajv.default();
-(0, import_ajv_formats.default)(ajv);
+// ../lexicon/src/validation.ts
+function assertValidRecord(lexicons2, def, value) {
+  const res = object(lexicons2, "Record", def.record, value);
+  if (!res.success)
+    throw res.error;
+}
+function assertValidXrpcParams(lexicons2, def, value) {
+  if (def.parameters) {
+    const res = params(lexicons2, "Params", def.parameters, value);
+    if (!res.success)
+      throw res.error;
+  }
+}
+function assertValidXrpcInput(lexicons2, def, value) {
+  if (def.input?.schema) {
+    assertValidOneOf(lexicons2, "Input", def.input.schema, value, true);
+  }
+}
+function assertValidXrpcOutput(lexicons2, def, value) {
+  if (def.output?.schema) {
+    assertValidOneOf(lexicons2, "Output", def.output.schema, value, true);
+  }
+}
 
-// ../lexicon/src/record/validator.ts
-var import_ajv2 = __toESM(require_ajv());
-var import_ajv_formats2 = __toESM(require_dist());
-var ajv2 = new import_ajv2.default();
-(0, import_ajv_formats2.default)(ajv2);
+// ../lexicon/src/lexicons.ts
+var Lexicons = class {
+  constructor(docs) {
+    this.docs = /* @__PURE__ */ new Map();
+    this.defs = /* @__PURE__ */ new Map();
+    if (docs?.length) {
+      for (const doc of docs) {
+        this.add(doc);
+      }
+    }
+  }
+  add(doc) {
+    try {
+      lexiconDoc.parse(doc);
+    } catch (e) {
+      if (e instanceof ZodError) {
+        throw new LexiconDocMalformedError(
+          `Failed to parse schema definition ${doc.id}`,
+          doc,
+          e.issues
+        );
+      } else {
+        throw e;
+      }
+    }
+    const validatedDoc = doc;
+    const uri = toLexUri(validatedDoc.id);
+    if (this.docs.has(uri)) {
+      throw new Error(`${uri} has already been registered`);
+    }
+    resolveRefUris(validatedDoc, uri);
+    this.docs.set(uri, validatedDoc);
+    for (const [defUri, def] of iterDefs(validatedDoc)) {
+      this.defs.set(defUri, def);
+    }
+  }
+  remove(uri) {
+    uri = toLexUri(uri);
+    const doc = this.docs.get(uri);
+    if (!doc) {
+      throw new Error(`Unable to remove "${uri}": does not exist`);
+    }
+    for (const [defUri, _def] of iterDefs(doc)) {
+      this.defs.delete(defUri);
+    }
+    this.docs.delete(uri);
+  }
+  get(uri) {
+    uri = toLexUri(uri);
+    return this.docs.get(uri);
+  }
+  getDef(uri) {
+    uri = toLexUri(uri);
+    return this.defs.get(uri);
+  }
+  getDefOrThrow(uri, types) {
+    const def = this.getDef(uri);
+    if (!def) {
+      throw new LexiconDefNotFoundError(`Lexicon not found: ${uri}`);
+    }
+    if (types && !types.includes(def.type)) {
+      throw new InvalidLexiconError(
+        `Not a ${types.join(" or ")} lexicon: ${uri}`
+      );
+    }
+    return def;
+  }
+  assertValidRecord(lexUri, value) {
+    lexUri = toLexUri(lexUri);
+    const def = this.getDefOrThrow(lexUri, ["record"]);
+    if (!isObj(value)) {
+      throw new ValidationError(`Record must be an object`);
+    }
+    if (!hasProp(value, "$type") || typeof value.$type !== "string") {
+      throw new ValidationError(`Record/$type must be a string`);
+    }
+    const $type = value.$type || "";
+    if (toLexUri($type) !== lexUri) {
+      throw new ValidationError(
+        `Invalid $type: must be ${lexUri}, got ${$type}`
+      );
+    }
+    assertValidRecord(this, def, value);
+  }
+  assertValidXrpcParams(lexUri, value) {
+    lexUri = toLexUri(lexUri);
+    const def = this.getDefOrThrow(lexUri, ["query", "procedure"]);
+    assertValidXrpcParams(this, def, value);
+  }
+  assertValidXrpcInput(lexUri, value) {
+    lexUri = toLexUri(lexUri);
+    const def = this.getDefOrThrow(lexUri, ["procedure"]);
+    assertValidXrpcInput(this, def, value);
+  }
+  assertValidXrpcOutput(lexUri, value) {
+    lexUri = toLexUri(lexUri);
+    const def = this.getDefOrThrow(lexUri, ["query", "procedure"]);
+    assertValidXrpcOutput(this, def, value);
+  }
+};
+function* iterDefs(doc) {
+  for (const defId in doc.defs) {
+    yield [`lex:${doc.id}#${defId}`, doc.defs[defId]];
+    if (defId === "main") {
+      yield [`lex:${doc.id}`, doc.defs[defId]];
+    }
+  }
+}
+function resolveRefUris(obj, baseUri) {
+  for (const k in obj) {
+    if (obj.type === "ref") {
+      obj.ref = toLexUri(obj.ref, baseUri);
+    } else if (obj.type === "union") {
+      obj.refs = obj.refs.map((ref) => toLexUri(ref, baseUri));
+    } else if (Array.isArray(obj[k])) {
+      obj[k] = obj[k].map((item) => {
+        if (typeof item === "string") {
+          return item.startsWith("#") ? toLexUri(item, baseUri) : item;
+        } else if (item && typeof item === "object") {
+          return resolveRefUris(item, baseUri);
+        }
+        return item;
+      });
+    } else if (obj[k] && typeof obj[k] === "object") {
+      obj[k] = resolveRefUris(obj[k], baseUri);
+    }
+  }
+  return obj;
+}
 
 // ../xrpc/src/util.ts
 function getMethodSchemaHTTPMethod(schema) {
-  if (schema.type === "query") {
-    return "get";
-  }
   if (schema.type === "procedure") {
     return "post";
   }
-  throw new Error(`Invalid method type: ${schema.type}`);
+  return "get";
 }
-function constructMethodCallUri(schema, serviceUri, params) {
+function constructMethodCallUri(nsid, schema, serviceUri, params2) {
   const uri = new URL(serviceUri);
-  uri.pathname = `/xrpc/${schema.id}`;
-  if (params) {
-    for (const [key, value] of Object.entries(params)) {
-      const paramSchema = schema.parameters?.properties[key];
+  uri.pathname = `/xrpc/${nsid}`;
+  if (params2) {
+    for (const [key, value] of Object.entries(params2)) {
+      const paramSchema = schema.parameters?.properties?.[key];
       if (!paramSchema) {
         throw new Error(`Invalid query parameter: ${key}`);
       }
@@ -10159,7 +4011,7 @@ function constructMethodCallUri(schema, serviceUri, params) {
   return uri.toString();
 }
 function encodeQueryParam(type, value) {
-  if (type === "string") {
+  if (type === "string" || type === "unknown") {
     return String(value);
   }
   if (type === "number") {
@@ -10168,6 +4020,11 @@ function encodeQueryParam(type, value) {
     return String(Number(value) | 0);
   } else if (type === "boolean") {
     return value ? "true" : "false";
+  } else if (type === "datetime") {
+    if (value instanceof Date) {
+      return value.toISOString();
+    }
+    return String(value);
   }
   throw new Error(`Unsupported query param type: ${type}`);
 }
@@ -10226,7 +4083,7 @@ function httpResponseBodyParse(mimeType, data) {
       } catch (e) {
         throw new XRPCError(
           2 /* InvalidResponse */,
-          `Failed to parse response body: ${e.toString()}`
+          `Failed to parse response body: ${String(e)}`
         );
       }
     }
@@ -10236,7 +4093,7 @@ function httpResponseBodyParse(mimeType, data) {
       } catch (e) {
         throw new XRPCError(
           2 /* InvalidResponse */,
-          `Failed to parse response body: ${e.toString()}`
+          `Failed to parse response body: ${String(e)}`
         );
       }
     }
@@ -10248,31 +4105,24 @@ function httpResponseBodyParse(mimeType, data) {
 var Client = class {
   constructor() {
     this.fetch = defaultFetchHandler;
-    this.schemas = /* @__PURE__ */ new Map();
+    this.lex = new Lexicons();
   }
-  async call(serviceUri, methodNsid, params, data, opts) {
-    return this.service(serviceUri).call(methodNsid, params, data, opts);
+  async call(serviceUri, methodNsid, params2, data, opts) {
+    return this.service(serviceUri).call(methodNsid, params2, data, opts);
   }
   service(serviceUri) {
     return new ServiceClient(this, serviceUri);
   }
-  addSchema(schema) {
-    if (isValidMethodSchema(schema)) {
-      this.schemas.set(schema.id, schema);
-    } else {
-      methodSchema.parse(schema);
-    }
+  addLexicon(doc) {
+    this.lex.add(doc);
   }
-  addSchemas(schemas) {
-    for (const schema of schemas) {
-      this.addSchema(schema);
+  addLexicons(docs) {
+    for (const doc of docs) {
+      this.addLexicon(doc);
     }
   }
-  listSchemaIds() {
-    return Array.from(this.schemas.keys());
-  }
-  removeSchema(nsid) {
-    this.schemas.delete(nsid);
+  removeLexicon(uri) {
+    this.lex.remove(uri);
   }
 };
 var ServiceClient = class {
@@ -10287,14 +4137,16 @@ var ServiceClient = class {
   unsetHeader(key) {
     delete this.headers[key];
   }
-  async call(methodNsid, params, data, opts) {
-    const schema = this.baseClient.schemas.get(methodNsid);
-    if (!schema) {
-      throw new Error(`Method schema not found: ${methodNsid}`);
+  async call(methodNsid, params2, data, opts) {
+    const def = this.baseClient.lex.getDefOrThrow(methodNsid);
+    if (!def || def.type !== "query" && def.type !== "procedure") {
+      throw new Error(
+        `Invalid lexicon: ${methodNsid}. Must be a query or procedure.`
+      );
     }
-    const httpMethod = getMethodSchemaHTTPMethod(schema);
-    const httpUri = constructMethodCallUri(schema, this.uri, params);
-    const httpHeaders = constructMethodCallHeaders(schema, data, {
+    const httpMethod = getMethodSchemaHTTPMethod(def);
+    const httpUri = constructMethodCallUri(methodNsid, def, this.uri, params2);
+    const httpHeaders = constructMethodCallHeaders(def, data, {
       headers: {
         ...this.headers,
         ...opts?.headers
@@ -10333,7 +4185,7 @@ async function defaultFetchHandler(httpUri, httpMethod, httpHeaders, httpReqBody
       body: httpResponseBodyParse(res.headers.get("content-type"), resBody)
     };
   } catch (e) {
-    throw new XRPCError(1 /* Unknown */, e.toString());
+    throw new XRPCError(1 /* Unknown */, String(e));
   }
 }
 function isErrorResponseBody(v) {
@@ -10343,471 +4195,559 @@ function isErrorResponseBody(v) {
 // ../xrpc/src/index.ts
 var defaultInst = new Client();
 
-// src/client/schemas.ts
-var methodSchemaDict = {
-  "com.atproto.account.create": {
+// src/client/lexicons.ts
+var lexicons = [
+  {
     lexicon: 1,
     id: "com.atproto.account.create",
-    type: "procedure",
-    description: "Create an account.",
-    input: {
-      encoding: "application/json",
-      schema: {
-        type: "object",
-        required: ["handle", "email", "password"],
-        properties: {
-          email: {
-            type: "string"
-          },
-          handle: {
-            type: "string"
-          },
-          inviteCode: {
-            type: "string"
-          },
-          password: {
-            type: "string"
-          },
-          recoveryKey: {
-            type: "string"
+    defs: {
+      main: {
+        type: "procedure",
+        description: "Create an account.",
+        input: {
+          encoding: "application/json",
+          schema: {
+            type: "object",
+            required: ["handle", "email", "password"],
+            properties: {
+              email: {
+                type: "string"
+              },
+              handle: {
+                type: "string"
+              },
+              inviteCode: {
+                type: "string"
+              },
+              password: {
+                type: "string"
+              },
+              recoveryKey: {
+                type: "string"
+              }
+            }
           }
         },
-        $defs: {}
-      }
-    },
-    output: {
-      encoding: "application/json",
-      schema: {
-        type: "object",
-        required: ["accessJwt", "refreshJwt", "handle", "did"],
-        properties: {
-          accessJwt: {
-            type: "string"
+        output: {
+          encoding: "application/json",
+          schema: {
+            type: "object",
+            required: ["accessJwt", "refreshJwt", "handle", "did"],
+            properties: {
+              accessJwt: {
+                type: "string"
+              },
+              refreshJwt: {
+                type: "string"
+              },
+              handle: {
+                type: "string"
+              },
+              did: {
+                type: "string"
+              }
+            }
+          }
+        },
+        errors: [
+          {
+            name: "InvalidHandle"
           },
-          refreshJwt: {
-            type: "string"
+          {
+            name: "InvalidPassword"
           },
-          handle: {
-            type: "string"
+          {
+            name: "InvalidInviteCode"
           },
-          did: {
-            type: "string"
+          {
+            name: "HandleNotAvailable"
           }
-        },
-        $defs: {}
+        ]
       }
-    },
-    errors: [
-      {
-        name: "InvalidHandle"
-      },
-      {
-        name: "InvalidPassword"
-      },
-      {
-        name: "InvalidInviteCode"
-      },
-      {
-        name: "HandleNotAvailable"
-      }
-    ]
+    }
   },
-  "com.atproto.account.createInviteCode": {
+  {
     lexicon: 1,
     id: "com.atproto.account.createInviteCode",
-    type: "procedure",
-    description: "Create an invite code.",
-    input: {
-      encoding: "application/json",
-      schema: {
-        type: "object",
-        required: ["useCount"],
-        properties: {
-          useCount: {
-            type: "integer"
+    defs: {
+      main: {
+        type: "procedure",
+        description: "Create an invite code.",
+        input: {
+          encoding: "application/json",
+          schema: {
+            type: "object",
+            required: ["useCount"],
+            properties: {
+              useCount: {
+                type: "integer"
+              }
+            }
           }
         },
-        $defs: {}
-      }
-    },
-    output: {
-      encoding: "application/json",
-      schema: {
-        type: "object",
-        required: ["code"],
-        properties: {
-          code: {
-            type: "string"
+        output: {
+          encoding: "application/json",
+          schema: {
+            type: "object",
+            required: ["code"],
+            properties: {
+              code: {
+                type: "string"
+              }
+            }
           }
-        },
-        $defs: {}
+        }
       }
     }
   },
-  "com.atproto.account.delete": {
+  {
     lexicon: 1,
     id: "com.atproto.account.delete",
-    type: "procedure",
-    description: "Delete an account.",
-    input: {
-      encoding: "",
-      schema: {
-        $defs: {}
-      }
-    },
-    output: {
-      encoding: "",
-      schema: {
-        $defs: {}
+    defs: {
+      main: {
+        type: "procedure",
+        description: "Delete an account."
       }
     }
   },
-  "com.atproto.account.get": {
+  {
     lexicon: 1,
     id: "com.atproto.account.get",
-    type: "query",
-    description: "Get information about an account.",
-    output: {
-      encoding: "",
-      schema: {
-        $defs: {}
+    defs: {
+      main: {
+        type: "query",
+        description: "Get information about an account."
       }
     }
   },
-  "com.atproto.account.requestPasswordReset": {
+  {
     lexicon: 1,
     id: "com.atproto.account.requestPasswordReset",
-    type: "procedure",
-    description: "Initiate a user account password reset via email.",
-    input: {
-      encoding: "application/json",
-      schema: {
-        type: "object",
-        required: ["email"],
-        properties: {
-          email: {
-            type: "string"
+    defs: {
+      main: {
+        type: "procedure",
+        description: "Initiate a user account password reset via email.",
+        input: {
+          encoding: "application/json",
+          schema: {
+            type: "object",
+            required: ["email"],
+            properties: {
+              email: {
+                type: "string"
+              }
+            }
           }
-        },
-        $defs: {}
-      }
-    },
-    output: {
-      encoding: "application/json",
-      schema: {
-        type: "object",
-        properties: {},
-        $defs: {}
+        }
       }
     }
   },
-  "com.atproto.account.resetPassword": {
+  {
     lexicon: 1,
     id: "com.atproto.account.resetPassword",
-    type: "procedure",
-    description: "Reset a user account password using a token.",
-    input: {
-      encoding: "application/json",
-      schema: {
-        type: "object",
-        required: ["token", "password"],
-        properties: {
-          token: {
-            type: "string"
-          },
-          password: {
-            type: "string"
+    defs: {
+      main: {
+        type: "procedure",
+        description: "Reset a user account password using a token.",
+        input: {
+          encoding: "application/json",
+          schema: {
+            type: "object",
+            required: ["token", "password"],
+            properties: {
+              token: {
+                type: "string"
+              },
+              password: {
+                type: "string"
+              }
+            }
           }
         },
-        $defs: {}
-      }
-    },
-    output: {
-      encoding: "application/json",
-      schema: {
-        type: "object",
-        properties: {},
-        $defs: {}
-      }
-    },
-    errors: [
-      {
-        name: "ExpiredToken"
-      },
-      {
-        name: "InvalidToken"
+        errors: [
+          {
+            name: "ExpiredToken"
+          },
+          {
+            name: "InvalidToken"
+          }
+        ]
       }
-    ]
+    }
   },
-  "com.atproto.handle.resolve": {
+  {
     lexicon: 1,
     id: "com.atproto.handle.resolve",
-    type: "query",
-    description: "Provides the DID of a repo.",
-    parameters: {
-      type: "object",
-      properties: {
-        handle: {
-          type: "string",
-          description: "The handle to resolve. If not supplied, will resolve the host's own handle."
-        }
-      }
-    },
-    output: {
-      encoding: "application/json",
-      schema: {
-        type: "object",
-        required: ["did"],
-        properties: {
-          did: {
-            type: "string"
+    defs: {
+      main: {
+        type: "query",
+        description: "Provides the DID of a repo.",
+        parameters: {
+          type: "params",
+          properties: {
+            handle: {
+              type: "string",
+              description: "The handle to resolve. If not supplied, will resolve the host's own handle."
+            }
           }
         },
-        $defs: {}
+        output: {
+          encoding: "application/json",
+          schema: {
+            type: "object",
+            required: ["did"],
+            properties: {
+              did: {
+                type: "string"
+              }
+            }
+          }
+        }
       }
     }
   },
-  "com.atproto.repo.batchWrite": {
+  {
     lexicon: 1,
     id: "com.atproto.repo.batchWrite",
-    type: "procedure",
-    description: "Apply a batch transaction of creates, puts, and deletes.",
-    input: {
-      encoding: "application/json",
-      schema: {
-        type: "object",
-        required: ["did", "writes"],
-        properties: {
-          did: {
-            type: "string",
-            description: "The DID of the repo."
-          },
-          validate: {
-            type: "boolean",
-            default: true,
-            description: "Validate the records?"
-          },
-          writes: {
-            type: "array",
-            items: {
-              oneOf: [
-                {
-                  type: "object",
-                  required: ["action", "collection", "value"],
-                  properties: {
-                    action: {
-                      type: "string",
-                      const: "create"
-                    },
-                    collection: {
-                      type: "string"
-                    },
-                    rkey: {
-                      type: "string"
-                    },
-                    value: {}
-                  }
-                },
-                {
-                  type: "object",
-                  required: ["action", "collection", "rkey", "value"],
-                  properties: {
-                    action: {
-                      type: "string",
-                      const: "update"
-                    },
-                    collection: {
-                      type: "string"
-                    },
-                    rkey: {
-                      type: "string"
-                    },
-                    value: {}
-                  }
-                },
-                {
-                  type: "object",
-                  required: ["action", "collection", "rkey"],
-                  properties: {
-                    action: {
-                      type: "string",
-                      const: "delete"
-                    },
-                    collection: {
-                      type: "string"
-                    },
-                    rkey: {
-                      type: "string"
-                    }
-                  }
+    defs: {
+      main: {
+        type: "procedure",
+        description: "Apply a batch transaction of creates, puts, and deletes.",
+        input: {
+          encoding: "application/json",
+          schema: {
+            type: "object",
+            required: ["did", "writes"],
+            properties: {
+              did: {
+                type: "string",
+                description: "The DID of the repo."
+              },
+              validate: {
+                type: "boolean",
+                default: true,
+                description: "Validate the records?"
+              },
+              writes: {
+                type: "array",
+                items: {
+                  type: "union",
+                  refs: [
+                    "lex:com.atproto.repo.batchWrite#create",
+                    "lex:com.atproto.repo.batchWrite#update",
+                    "lex:com.atproto.repo.batchWrite#delete"
+                  ],
+                  closed: true
                 }
-              ]
+              }
             }
           }
-        },
-        $defs: {}
-      }
-    },
-    output: {
-      encoding: "application/json",
-      schema: {
-        $defs: {}
-      }
-    }
-  },
-  "com.atproto.repo.createRecord": {
-    lexicon: 1,
-    id: "com.atproto.repo.createRecord",
-    type: "procedure",
-    description: "Create a new record.",
-    input: {
-      encoding: "application/json",
-      schema: {
+        }
+      },
+      create: {
         type: "object",
-        required: ["did", "collection", "record"],
+        required: ["action", "collection", "value"],
         properties: {
-          did: {
+          action: {
             type: "string",
-            description: "The DID of the repo."
+            const: "create"
           },
           collection: {
-            type: "string",
-            description: "The NSID of the record collection."
+            type: "string"
           },
-          validate: {
-            type: "boolean",
-            default: true,
-            description: "Validate the record?"
+          rkey: {
+            type: "string"
           },
-          record: {
-            type: "object",
-            description: "The record to create."
+          value: {
+            type: "unknown"
           }
-        },
-        $defs: {}
-      }
-    },
-    output: {
-      encoding: "application/json",
-      schema: {
+        }
+      },
+      update: {
         type: "object",
-        required: ["uri", "cid"],
+        required: ["action", "collection", "rkey", "value"],
         properties: {
-          uri: {
+          action: {
+            type: "string",
+            const: "update"
+          },
+          collection: {
             type: "string"
           },
-          cid: {
+          rkey: {
             type: "string"
+          },
+          value: {
+            type: "unknown"
           }
-        },
-        $defs: {}
-      }
-    }
-  },
-  "com.atproto.repo.deleteRecord": {
-    lexicon: 1,
-    id: "com.atproto.repo.deleteRecord",
-    type: "procedure",
-    description: "Delete a record.",
-    input: {
-      encoding: "application/json",
-      schema: {
+        }
+      },
+      delete: {
         type: "object",
-        required: ["did", "collection", "rkey"],
+        required: ["action", "collection", "rkey"],
         properties: {
-          did: {
+          action: {
             type: "string",
-            description: "The DID of the repo."
+            const: "delete"
           },
           collection: {
-            type: "string",
-            description: "The NSID of the record collection."
+            type: "string"
           },
           rkey: {
-            type: "string",
-            description: "The key of the record."
+            type: "string"
+          }
+        }
+      }
+    }
+  },
+  {
+    lexicon: 1,
+    id: "com.atproto.repo.createRecord",
+    defs: {
+      main: {
+        type: "procedure",
+        description: "Create a new record.",
+        input: {
+          encoding: "application/json",
+          schema: {
+            type: "object",
+            required: ["did", "collection", "record"],
+            properties: {
+              did: {
+                type: "string",
+                description: "The DID of the repo."
+              },
+              collection: {
+                type: "string",
+                description: "The NSID of the record collection."
+              },
+              validate: {
+                type: "boolean",
+                default: true,
+                description: "Validate the record?"
+              },
+              record: {
+                type: "unknown",
+                description: "The record to create."
+              }
+            }
           }
         },
-        $defs: {}
+        output: {
+          encoding: "application/json",
+          schema: {
+            type: "object",
+            required: ["uri", "cid"],
+            properties: {
+              uri: {
+                type: "string"
+              },
+              cid: {
+                type: "string"
+              }
+            }
+          }
+        }
       }
     }
   },
-  "com.atproto.repo.describe": {
+  {
     lexicon: 1,
-    id: "com.atproto.repo.describe",
-    type: "query",
-    description: "Get information about the repo, including the list of collections.",
-    parameters: {
-      type: "object",
-      required: ["user"],
-      properties: {
-        user: {
-          type: "string",
-          description: "The handle or DID of the repo."
+    id: "com.atproto.repo.deleteRecord",
+    defs: {
+      main: {
+        type: "procedure",
+        description: "Delete a record.",
+        input: {
+          encoding: "application/json",
+          schema: {
+            type: "object",
+            required: ["did", "collection", "rkey"],
+            properties: {
+              did: {
+                type: "string",
+                description: "The DID of the repo."
+              },
+              collection: {
+                type: "string",
+                description: "The NSID of the record collection."
+              },
+              rkey: {
+                type: "string",
+                description: "The key of the record."
+              }
+            }
+          }
         }
       }
-    },
-    output: {
-      encoding: "application/json",
-      schema: {
-        type: "object",
-        required: ["handle", "did", "didDoc", "collections", "handleIsCorrect"],
-        properties: {
-          handle: {
-            type: "string"
-          },
-          did: {
-            type: "string"
-          },
-          didDoc: {
-            type: "object"
-          },
-          collections: {
-            type: "array",
-            items: {
-              type: "string"
+    }
+  },
+  {
+    lexicon: 1,
+    id: "com.atproto.repo.describe",
+    defs: {
+      main: {
+        type: "query",
+        description: "Get information about the repo, including the list of collections.",
+        parameters: {
+          type: "params",
+          required: ["user"],
+          properties: {
+            user: {
+              type: "string",
+              description: "The handle or DID of the repo."
             }
-          },
-          handleIsCorrect: {
-            type: "boolean"
           }
         },
-        $defs: {}
+        output: {
+          encoding: "application/json",
+          schema: {
+            type: "object",
+            required: [
+              "handle",
+              "did",
+              "didDoc",
+              "collections",
+              "handleIsCorrect"
+            ],
+            properties: {
+              handle: {
+                type: "string"
+              },
+              did: {
+                type: "string"
+              },
+              didDoc: {
+                type: "unknown"
+              },
+              collections: {
+                type: "array",
+                items: {
+                  type: "string"
+                }
+              },
+              handleIsCorrect: {
+                type: "boolean"
+              }
+            }
+          }
+        }
       }
     }
   },
-  "com.atproto.repo.getRecord": {
+  {
     lexicon: 1,
     id: "com.atproto.repo.getRecord",
-    type: "query",
-    description: "Fetch a record.",
-    parameters: {
-      type: "object",
-      required: ["user", "collection", "rkey"],
-      properties: {
-        user: {
-          type: "string",
-          description: "The handle or DID of the repo."
-        },
-        collection: {
-          type: "string",
-          description: "The NSID of the collection."
-        },
-        rkey: {
-          type: "string",
-          description: "The key of the record."
+    defs: {
+      main: {
+        type: "query",
+        description: "Fetch a record.",
+        parameters: {
+          type: "params",
+          required: ["user", "collection", "rkey"],
+          properties: {
+            user: {
+              type: "string",
+              description: "The handle or DID of the repo."
+            },
+            collection: {
+              type: "string",
+              description: "The NSID of the collection."
+            },
+            rkey: {
+              type: "string",
+              description: "The key of the record."
+            },
+            cid: {
+              type: "string",
+              description: "The CID of the version of the record. If not specified, then return the most recent version."
+            }
+          }
         },
-        cid: {
-          type: "string",
-          description: "The CID of the version of the record. If not specified, then return the most recent version."
+        output: {
+          encoding: "application/json",
+          schema: {
+            type: "object",
+            required: ["uri", "value"],
+            properties: {
+              uri: {
+                type: "string"
+              },
+              cid: {
+                type: "string"
+              },
+              value: {
+                type: "unknown"
+              }
+            }
+          }
         }
       }
-    },
-    output: {
-      encoding: "application/json",
-      schema: {
+    }
+  },
+  {
+    lexicon: 1,
+    id: "com.atproto.repo.listRecords",
+    defs: {
+      main: {
+        type: "query",
+        description: "List a range of records in a collection.",
+        parameters: {
+          type: "params",
+          required: ["user", "collection"],
+          properties: {
+            user: {
+              type: "string",
+              description: "The handle or DID of the repo."
+            },
+            collection: {
+              type: "string",
+              description: "The NSID of the record type."
+            },
+            limit: {
+              type: "integer",
+              minimum: 1,
+              maximum: 100,
+              default: 50,
+              description: "The number of records to return."
+            },
+            before: {
+              type: "string",
+              description: "A TID to filter the range of records returned."
+            },
+            after: {
+              type: "string",
+              description: "A TID to filter the range of records returned."
+            },
+            reverse: {
+              type: "boolean",
+              description: "Reverse the order of the returned records?"
+            }
+          }
+        },
+        output: {
+          encoding: "application/json",
+          schema: {
+            type: "object",
+            required: ["records"],
+            properties: {
+              cursor: {
+                type: "string"
+              },
+              records: {
+                type: "array",
+                items: {
+                  type: "ref",
+                  ref: "lex:com.atproto.repo.listRecords#record"
+                }
+              }
+            }
+          }
+        }
+      },
+      record: {
         type: "object",
-        required: ["uri", "value"],
+        required: ["uri", "cid", "value"],
         properties: {
           uri: {
             type: "string"
@@ -10816,121 +4756,73 @@ var methodSchemaDict = {
             type: "string"
           },
           value: {
-            type: "object"
+            type: "unknown"
           }
-        },
-        $defs: {}
+        }
       }
     }
   },
-  "com.atproto.repo.listRecords": {
+  {
     lexicon: 1,
-    id: "com.atproto.repo.listRecords",
-    type: "query",
-    description: "List a range of records in a collection.",
-    parameters: {
-      type: "object",
-      required: ["user", "collection"],
-      properties: {
-        user: {
-          type: "string",
-          description: "The handle or DID of the repo."
-        },
-        collection: {
-          type: "string",
-          description: "The NSID of the record type."
-        },
-        limit: {
-          type: "integer",
-          minimum: 1,
-          default: 50,
-          description: "The number of records to return. TODO-max number?"
-        },
-        before: {
-          type: "string",
-          description: "A TID to filter the range of records returned."
-        },
-        after: {
-          type: "string",
-          description: "A TID to filter the range of records returned."
-        },
-        reverse: {
-          type: "boolean",
-          description: "Reverse the order of the returned records?"
-        }
-      }
-    },
-    output: {
-      encoding: "application/json",
-      schema: {
-        type: "object",
-        required: ["records"],
-        properties: {
-          cursor: {
-            type: "string"
-          },
-          records: {
-            type: "array",
-            items: {
-              type: "object",
-              required: ["uri", "cid", "value"],
-              properties: {
-                uri: {
-                  type: "string"
-                },
-                cid: {
-                  type: "string"
-                },
-                value: {
-                  type: "object"
-                }
+    id: "com.atproto.repo.putRecord",
+    defs: {
+      main: {
+        type: "procedure",
+        description: "Write a record.",
+        input: {
+          encoding: "application/json",
+          schema: {
+            type: "object",
+            required: ["did", "collection", "rkey", "record"],
+            properties: {
+              did: {
+                type: "string",
+                description: "The DID of the repo."
+              },
+              collection: {
+                type: "string",
+                description: "The NSID of the record type."
+              },
+              rkey: {
+                type: "string",
+                description: "The TID of the record."
+              },
+              validate: {
+                type: "boolean",
+                default: true,
+                description: "Validate the record?"
+              },
+              record: {
+                type: "unknown",
+                description: "The record to create."
               }
             }
           }
         },
-        $defs: {}
+        output: {
+          encoding: "application/json",
+          schema: {
+            type: "object",
+            required: ["uri", "cid"],
+            properties: {
+              uri: {
+                type: "string"
+              },
+              cid: {
+                type: "string"
+              }
+            }
+          }
+        }
       }
     }
   },
-  "com.atproto.repo.putRecord": {
+  {
     lexicon: 1,
-    id: "com.atproto.repo.putRecord",
-    type: "procedure",
-    description: "Write a record.",
-    input: {
-      encoding: "application/json",
-      schema: {
-        type: "object",
-        required: ["did", "collection", "rkey", "record"],
-        properties: {
-          did: {
-            type: "string",
-            description: "The DID of the repo."
-          },
-          collection: {
-            type: "string",
-            description: "The NSID of the record type."
-          },
-          rkey: {
-            type: "string",
-            description: "The TID of the record."
-          },
-          validate: {
-            type: "boolean",
-            default: true,
-            description: "Validate the record?"
-          },
-          record: {
-            type: "object",
-            description: "The record to create."
-          }
-        },
-        $defs: {}
-      }
-    },
-    output: {
-      encoding: "application/json",
-      schema: {
+    id: "com.atproto.repo.strongRef",
+    description: "A URI with a content-hash fingerprint.",
+    defs: {
+      main: {
         type: "object",
         required: ["uri", "cid"],
         properties: {
@@ -10940,1086 +4832,832 @@ var methodSchemaDict = {
           cid: {
             type: "string"
           }
-        },
-        $defs: {}
+        }
       }
     }
   },
-  "com.atproto.server.getAccountsConfig": {
+  {
     lexicon: 1,
     id: "com.atproto.server.getAccountsConfig",
-    type: "query",
-    description: "Get a document describing the service's accounts configuration.",
-    output: {
-      encoding: "application/json",
-      schema: {
+    defs: {
+      main: {
+        type: "query",
+        description: "Get a document describing the service's accounts configuration.",
+        output: {
+          encoding: "application/json",
+          schema: {
+            type: "object",
+            required: ["availableUserDomains"],
+            properties: {
+              inviteCodeRequired: {
+                type: "boolean"
+              },
+              availableUserDomains: {
+                type: "array",
+                items: {
+                  type: "string"
+                }
+              },
+              links: {
+                type: "ref",
+                ref: "lex:com.atproto.server.getAccountsConfig#links"
+              }
+            }
+          }
+        }
+      },
+      links: {
         type: "object",
-        required: ["availableUserDomains"],
         properties: {
-          inviteCodeRequired: {
-            type: "boolean"
+          privacyPolicy: {
+            type: "string"
           },
-          availableUserDomains: {
-            type: "array",
-            items: {
-              type: "string"
-            }
+          termsOfService: {
+            type: "string"
           }
-        },
-        $defs: {}
+        }
       }
     }
   },
-  "com.atproto.session.create": {
+  {
     lexicon: 1,
     id: "com.atproto.session.create",
-    type: "procedure",
-    description: "Create an authentication session.",
-    input: {
-      encoding: "application/json",
-      schema: {
-        type: "object",
-        required: ["handle", "password"],
-        properties: {
-          handle: {
-            type: "string"
-          },
-          password: {
-            type: "string"
+    defs: {
+      main: {
+        type: "procedure",
+        description: "Create an authentication session.",
+        input: {
+          encoding: "application/json",
+          schema: {
+            type: "object",
+            required: ["handle", "password"],
+            properties: {
+              handle: {
+                type: "string"
+              },
+              password: {
+                type: "string"
+              }
+            }
           }
         },
-        $defs: {}
-      }
-    },
-    output: {
-      encoding: "application/json",
-      schema: {
-        type: "object",
-        required: ["accessJwt", "refreshJwt", "handle", "did"],
-        properties: {
-          accessJwt: {
-            type: "string"
-          },
-          refreshJwt: {
-            type: "string"
-          },
-          handle: {
-            type: "string"
-          },
-          did: {
-            type: "string"
+        output: {
+          encoding: "application/json",
+          schema: {
+            type: "object",
+            required: ["accessJwt", "refreshJwt", "handle", "did"],
+            properties: {
+              accessJwt: {
+                type: "string"
+              },
+              refreshJwt: {
+                type: "string"
+              },
+              handle: {
+                type: "string"
+              },
+              did: {
+                type: "string"
+              }
+            }
           }
-        },
-        $defs: {}
+        }
       }
     }
   },
-  "com.atproto.session.delete": {
+  {
     lexicon: 1,
     id: "com.atproto.session.delete",
-    type: "procedure",
-    description: "Delete the current session.",
-    output: {
-      encoding: "application/json",
-      schema: {
-        $defs: {}
+    defs: {
+      main: {
+        type: "procedure",
+        description: "Delete the current session."
       }
     }
   },
-  "com.atproto.session.get": {
+  {
     lexicon: 1,
     id: "com.atproto.session.get",
-    type: "query",
-    description: "Get information about the current session.",
-    output: {
-      encoding: "application/json",
-      schema: {
-        type: "object",
-        required: ["handle", "did"],
-        properties: {
-          handle: {
-            type: "string"
-          },
-          did: {
-            type: "string"
+    defs: {
+      main: {
+        type: "query",
+        description: "Get information about the current session.",
+        output: {
+          encoding: "application/json",
+          schema: {
+            type: "object",
+            required: ["handle", "did"],
+            properties: {
+              handle: {
+                type: "string"
+              },
+              did: {
+                type: "string"
+              }
+            }
           }
-        },
-        $defs: {}
+        }
       }
     }
   },
-  "com.atproto.session.refresh": {
+  {
     lexicon: 1,
     id: "com.atproto.session.refresh",
-    type: "procedure",
-    description: "Refresh an authentication session.",
-    output: {
-      encoding: "application/json",
-      schema: {
-        type: "object",
-        required: ["accessJwt", "refreshJwt", "handle", "did"],
-        properties: {
-          accessJwt: {
-            type: "string"
-          },
-          refreshJwt: {
-            type: "string"
-          },
-          handle: {
-            type: "string"
-          },
-          did: {
-            type: "string"
+    defs: {
+      main: {
+        type: "procedure",
+        description: "Refresh an authentication session.",
+        output: {
+          encoding: "application/json",
+          schema: {
+            type: "object",
+            required: ["accessJwt", "refreshJwt", "handle", "did"],
+            properties: {
+              accessJwt: {
+                type: "string"
+              },
+              refreshJwt: {
+                type: "string"
+              },
+              handle: {
+                type: "string"
+              },
+              did: {
+                type: "string"
+              }
+            }
           }
-        },
-        $defs: {}
+        }
       }
     }
   },
-  "com.atproto.sync.getRepo": {
+  {
     lexicon: 1,
     id: "com.atproto.sync.getRepo",
-    type: "query",
-    description: "Gets the repo state.",
-    parameters: {
-      type: "object",
-      required: ["did"],
-      properties: {
-        did: {
-          type: "string",
-          description: "The DID of the repo."
+    defs: {
+      main: {
+        type: "query",
+        description: "Gets the repo state.",
+        parameters: {
+          type: "params",
+          required: ["did"],
+          properties: {
+            did: {
+              type: "string",
+              description: "The DID of the repo."
+            },
+            from: {
+              type: "string",
+              description: "A past commit CID."
+            }
+          }
         },
-        from: {
-          type: "string",
-          description: "A past commit CID."
+        output: {
+          encoding: "application/cbor"
         }
       }
-    },
-    output: {
-      encoding: "application/cbor"
     }
   },
-  "com.atproto.sync.getRoot": {
+  {
     lexicon: 1,
     id: "com.atproto.sync.getRoot",
-    type: "query",
-    description: "Gets the current root CID of a repo.",
-    parameters: {
-      type: "object",
-      required: ["did"],
-      properties: {
-        did: {
-          type: "string",
-          description: "The DID of the repo."
-        }
-      }
-    },
-    output: {
-      encoding: "application/json",
-      schema: {
-        type: "object",
-        required: ["root"],
-        properties: {
-          root: {
-            type: "string"
+    defs: {
+      main: {
+        type: "query",
+        description: "Gets the current root CID of a repo.",
+        parameters: {
+          type: "params",
+          required: ["did"],
+          properties: {
+            did: {
+              type: "string",
+              description: "The DID of the repo."
+            }
           }
         },
-        $defs: {}
+        output: {
+          encoding: "application/json",
+          schema: {
+            type: "object",
+            required: ["root"],
+            properties: {
+              root: {
+                type: "string"
+              }
+            }
+          }
+        }
       }
     }
   },
-  "com.atproto.sync.updateRepo": {
+  {
     lexicon: 1,
     id: "com.atproto.sync.updateRepo",
-    type: "procedure",
-    description: "Writes commits to a repo.",
-    parameters: {
-      type: "object",
-      required: ["did"],
-      properties: {
-        did: {
-          type: "string",
-          description: "The DID of the repo."
+    defs: {
+      main: {
+        type: "procedure",
+        description: "Writes commits to a repo.",
+        parameters: {
+          type: "params",
+          required: ["did"],
+          properties: {
+            did: {
+              type: "string",
+              description: "The DID of the repo."
+            }
+          }
+        },
+        input: {
+          encoding: "application/cbor"
         }
       }
-    },
-    input: {
-      encoding: "application/cbor"
     }
   },
-  "app.bsky.actor.createScene": {
+  {
     lexicon: 1,
     id: "app.bsky.actor.createScene",
-    type: "procedure",
-    description: "Create a scene.",
-    input: {
-      encoding: "application/json",
-      schema: {
-        type: "object",
-        required: ["handle"],
-        properties: {
-          handle: {
-            type: "string"
-          },
-          recoveryKey: {
-            type: "string"
+    defs: {
+      main: {
+        type: "procedure",
+        description: "Create a scene.",
+        input: {
+          encoding: "application/json",
+          schema: {
+            type: "object",
+            required: ["handle"],
+            properties: {
+              handle: {
+                type: "string"
+              },
+              recoveryKey: {
+                type: "string"
+              }
+            }
           }
         },
-        $defs: {}
-      }
-    },
-    output: {
-      encoding: "application/json",
-      schema: {
-        type: "object",
-        required: ["handle", "did", "declaration"],
-        properties: {
-          handle: {
-            type: "string"
-          },
-          did: {
-            type: "string"
+        output: {
+          encoding: "application/json",
+          schema: {
+            type: "object",
+            required: ["handle", "did", "declaration"],
+            properties: {
+              handle: {
+                type: "string"
+              },
+              did: {
+                type: "string"
+              },
+              declaration: {
+                type: "ref",
+                ref: "lex:app.bsky.system.declRef"
+              }
+            }
+          }
+        },
+        errors: [
+          {
+            name: "InvalidHandle"
           },
-          declaration: {
-            $ref: "#/$defs/declaration"
+          {
+            name: "HandleNotAvailable"
+          }
+        ]
+      }
+    }
+  },
+  {
+    lexicon: 1,
+    id: "app.bsky.actor.getProfile",
+    defs: {
+      main: {
+        type: "query",
+        parameters: {
+          type: "params",
+          required: ["actor"],
+          properties: {
+            actor: {
+              type: "string"
+            }
           }
         },
-        $defs: {
-          declaration: {
+        output: {
+          encoding: "application/json",
+          schema: {
             type: "object",
-            required: ["cid", "actorType"],
+            required: [
+              "did",
+              "declaration",
+              "handle",
+              "creator",
+              "followersCount",
+              "followsCount",
+              "membersCount",
+              "postsCount"
+            ],
             properties: {
-              cid: {
+              did: {
                 type: "string"
               },
-              actorType: {
-                oneOf: [
-                  {
-                    $ref: "#/$defs/actorKnown"
-                  },
-                  {
-                    $ref: "#/$defs/actorUnknown"
-                  }
-                ]
+              declaration: {
+                type: "ref",
+                ref: "lex:app.bsky.system.declRef"
+              },
+              handle: {
+                type: "string"
+              },
+              creator: {
+                type: "string"
+              },
+              displayName: {
+                type: "string",
+                maxLength: 64
+              },
+              description: {
+                type: "string",
+                maxLength: 256
+              },
+              followersCount: {
+                type: "integer"
+              },
+              followsCount: {
+                type: "integer"
+              },
+              membersCount: {
+                type: "integer"
+              },
+              postsCount: {
+                type: "integer"
+              },
+              myState: {
+                type: "ref",
+                ref: "lex:app.bsky.actor.getProfile#myState"
               }
             }
-          },
-          actorKnown: {
-            type: "string",
-            enum: ["app.bsky.system.actorUser", "app.bsky.system.actorScene"]
-          },
-          actorUnknown: {
-            type: "string",
-            not: {
-              enum: ["app.bsky.system.actorUser", "app.bsky.system.actorScene"]
-            }
           }
         }
-      }
-    },
-    errors: [
-      {
-        name: "InvalidHandle"
       },
-      {
-        name: "HandleNotAvailable"
-      }
-    ],
-    defs: {
-      declaration: {
+      myState: {
         type: "object",
-        required: ["cid", "actorType"],
         properties: {
-          cid: {
+          follow: {
             type: "string"
           },
-          actorType: {
-            oneOf: [
-              {
-                $ref: "#/$defs/actorKnown"
-              },
-              {
-                $ref: "#/$defs/actorUnknown"
-              }
-            ]
+          member: {
+            type: "string"
           }
         }
-      },
-      actorKnown: {
-        type: "string",
-        enum: ["app.bsky.system.actorUser", "app.bsky.system.actorScene"]
-      },
-      actorUnknown: {
-        type: "string",
-        not: {
-          enum: ["app.bsky.system.actorUser", "app.bsky.system.actorScene"]
-        }
       }
     }
   },
-  "app.bsky.actor.getProfile": {
+  {
     lexicon: 1,
-    id: "app.bsky.actor.getProfile",
-    type: "query",
-    parameters: {
-      type: "object",
-      required: ["actor"],
-      properties: {
-        actor: {
-          type: "string"
+    id: "app.bsky.actor.getSuggestions",
+    defs: {
+      main: {
+        type: "query",
+        description: "Get a list of actors suggested for following. Used in discovery UIs.",
+        parameters: {
+          type: "params",
+          properties: {
+            limit: {
+              type: "integer",
+              minimum: 1,
+              maximum: 100,
+              default: 50
+            },
+            cursor: {
+              type: "string"
+            }
+          }
+        },
+        output: {
+          encoding: "application/json",
+          schema: {
+            type: "object",
+            required: ["actors"],
+            properties: {
+              cursor: {
+                type: "string"
+              },
+              actors: {
+                type: "array",
+                items: {
+                  type: "ref",
+                  ref: "lex:app.bsky.actor.getSuggestions#actor"
+                }
+              }
+            }
+          }
         }
-      }
-    },
-    output: {
-      encoding: "application/json",
-      schema: {
+      },
+      actor: {
         type: "object",
-        required: [
-          "did",
-          "declaration",
-          "handle",
-          "creator",
-          "followersCount",
-          "followsCount",
-          "membersCount",
-          "postsCount"
-        ],
+        required: ["did", "declaration", "handle"],
         properties: {
           did: {
             type: "string"
           },
           declaration: {
-            $ref: "#/$defs/declaration"
+            type: "ref",
+            ref: "lex:app.bsky.system.declRef"
           },
           handle: {
             type: "string"
           },
-          creator: {
-            type: "string"
-          },
           displayName: {
             type: "string",
             maxLength: 64
           },
           description: {
-            type: "string",
-            maxLength: 256
-          },
-          followersCount: {
-            type: "integer"
-          },
-          followsCount: {
-            type: "integer"
-          },
-          membersCount: {
-            type: "integer"
+            type: "string"
           },
-          postsCount: {
-            type: "integer"
+          indexedAt: {
+            type: "datetime"
           },
           myState: {
-            type: "object",
-            properties: {
-              follow: {
-                type: "string"
-              },
-              member: {
-                type: "string"
-              }
-            }
+            type: "ref",
+            ref: "lex:app.bsky.actor.getSuggestions#myState"
           }
-        },
-        $defs: {
-          declaration: {
-            type: "object",
-            required: ["cid", "actorType"],
-            properties: {
-              cid: {
-                type: "string"
-              },
-              actorType: {
-                oneOf: [
-                  {
-                    $ref: "#/$defs/actorKnown"
-                  },
-                  {
-                    $ref: "#/$defs/actorUnknown"
-                  }
-                ]
-              }
-            }
-          },
-          actorKnown: {
-            type: "string",
-            enum: ["app.bsky.system.actorUser", "app.bsky.system.actorScene"]
-          },
-          actorUnknown: {
-            type: "string",
-            not: {
-              enum: ["app.bsky.system.actorUser", "app.bsky.system.actorScene"]
+        }
+      },
+      myState: {
+        type: "object",
+        properties: {
+          follow: {
+            type: "string"
+          }
+        }
+      }
+    }
+  },
+  {
+    lexicon: 1,
+    id: "app.bsky.actor.profile",
+    defs: {
+      main: {
+        type: "record",
+        key: "literal:self",
+        record: {
+          type: "object",
+          required: ["displayName"],
+          properties: {
+            displayName: {
+              type: "string",
+              maxLength: 64
+            },
+            description: {
+              type: "string",
+              maxLength: 256
             }
           }
         }
       }
-    },
+    }
+  },
+  {
+    lexicon: 1,
+    id: "app.bsky.actor.ref",
+    description: "A reference to an actor in the network.",
     defs: {
-      declaration: {
+      main: {
         type: "object",
-        required: ["cid", "actorType"],
+        required: ["did", "declarationCid"],
         properties: {
-          cid: {
+          did: {
             type: "string"
           },
-          actorType: {
-            oneOf: [
-              {
-                $ref: "#/$defs/actorKnown"
-              },
-              {
-                $ref: "#/$defs/actorUnknown"
-              }
-            ]
+          declarationCid: {
+            type: "string"
           }
         }
       },
-      actorKnown: {
-        type: "string",
-        enum: ["app.bsky.system.actorUser", "app.bsky.system.actorScene"]
-      },
-      actorUnknown: {
-        type: "string",
-        not: {
-          enum: ["app.bsky.system.actorUser", "app.bsky.system.actorScene"]
+      withInfo: {
+        type: "object",
+        required: ["did", "declaration", "handle"],
+        properties: {
+          did: {
+            type: "string"
+          },
+          declaration: {
+            type: "ref",
+            ref: "lex:app.bsky.system.declRef"
+          },
+          handle: {
+            type: "string"
+          },
+          displayName: {
+            type: "string",
+            maxLength: 64
+          }
         }
       }
     }
   },
-  "app.bsky.actor.getSuggestions": {
+  {
     lexicon: 1,
-    id: "app.bsky.actor.getSuggestions",
-    type: "query",
-    description: "Get a list of actors suggested for following. Used in discovery UIs.",
-    parameters: {
-      type: "object",
-      properties: {
-        limit: {
-          type: "integer",
-          maximum: 100
-        },
-        cursor: {
-          type: "string"
-        }
-      }
-    },
-    output: {
-      encoding: "application/json",
-      schema: {
-        type: "object",
-        required: ["actors"],
-        properties: {
-          cursor: {
-            type: "string"
-          },
-          actors: {
-            type: "array",
-            items: {
-              type: "object",
-              required: ["did", "declaration", "handle"],
-              properties: {
-                did: {
-                  type: "string"
-                },
-                declaration: {
-                  $ref: "#/$defs/declaration"
-                },
-                handle: {
-                  type: "string"
-                },
-                displayName: {
-                  type: "string",
-                  maxLength: 64
-                },
-                description: {
-                  type: "string"
-                },
-                indexedAt: {
-                  type: "string",
-                  format: "date-time"
-                },
-                myState: {
-                  type: "object",
-                  properties: {
-                    follow: {
-                      type: "string"
-                    }
-                  }
-                }
-              }
+    id: "app.bsky.actor.search",
+    defs: {
+      main: {
+        type: "query",
+        description: "Find users matching search criteria.",
+        parameters: {
+          type: "params",
+          required: ["term"],
+          properties: {
+            term: {
+              type: "string"
+            },
+            limit: {
+              type: "integer",
+              minimum: 1,
+              maximum: 100,
+              default: 50
+            },
+            before: {
+              type: "string"
             }
           }
         },
-        $defs: {
-          declaration: {
+        output: {
+          encoding: "application/json",
+          schema: {
             type: "object",
-            required: ["cid", "actorType"],
+            required: ["users"],
             properties: {
-              cid: {
+              cursor: {
                 type: "string"
               },
-              actorType: {
-                oneOf: [
-                  {
-                    $ref: "#/$defs/actorKnown"
-                  },
-                  {
-                    $ref: "#/$defs/actorUnknown"
-                  }
-                ]
+              users: {
+                type: "array",
+                items: {
+                  type: "ref",
+                  ref: "lex:app.bsky.actor.search#user"
+                }
               }
             }
-          },
-          actorKnown: {
-            type: "string",
-            enum: ["app.bsky.system.actorUser", "app.bsky.system.actorScene"]
-          },
-          actorUnknown: {
-            type: "string",
-            not: {
-              enum: ["app.bsky.system.actorUser", "app.bsky.system.actorScene"]
-            }
           }
         }
-      }
-    },
-    defs: {
-      declaration: {
+      },
+      user: {
         type: "object",
-        required: ["cid", "actorType"],
+        required: ["did", "declaration", "handle"],
         properties: {
-          cid: {
+          did: {
             type: "string"
           },
-          actorType: {
-            oneOf: [
-              {
-                $ref: "#/$defs/actorKnown"
-              },
-              {
-                $ref: "#/$defs/actorUnknown"
-              }
-            ]
+          declaration: {
+            type: "ref",
+            ref: "lex:app.bsky.system.declRef"
+          },
+          handle: {
+            type: "string"
+          },
+          displayName: {
+            type: "string",
+            maxLength: 64
+          },
+          description: {
+            type: "string"
+          },
+          indexedAt: {
+            type: "datetime"
           }
         }
-      },
-      actorKnown: {
-        type: "string",
-        enum: ["app.bsky.system.actorUser", "app.bsky.system.actorScene"]
-      },
-      actorUnknown: {
-        type: "string",
-        not: {
-          enum: ["app.bsky.system.actorUser", "app.bsky.system.actorScene"]
-        }
       }
     }
   },
-  "app.bsky.actor.search": {
+  {
     lexicon: 1,
-    id: "app.bsky.actor.search",
-    type: "query",
-    description: "Find users matching search criteria.",
-    parameters: {
-      type: "object",
-      required: ["term"],
-      properties: {
-        term: {
-          type: "string"
-        },
-        limit: {
-          type: "integer",
-          maximum: 100
-        },
-        before: {
-          type: "string"
-        }
-      }
-    },
-    output: {
-      encoding: "application/json",
-      schema: {
-        type: "object",
-        required: ["users"],
-        properties: {
-          cursor: {
-            type: "string"
-          },
-          users: {
-            type: "array",
-            items: {
-              type: "object",
-              required: ["did", "declaration", "handle"],
-              properties: {
-                did: {
-                  type: "string"
-                },
-                declaration: {
-                  $ref: "#/$defs/declaration"
-                },
-                handle: {
-                  type: "string"
-                },
-                displayName: {
-                  type: "string",
-                  maxLength: 64
-                },
-                description: {
-                  type: "string"
-                },
-                indexedAt: {
-                  type: "string",
-                  format: "date-time"
-                }
-              }
+    id: "app.bsky.actor.searchTypeahead",
+    defs: {
+      main: {
+        type: "query",
+        description: "Find user suggestions for a search term.",
+        parameters: {
+          type: "params",
+          required: ["term"],
+          properties: {
+            term: {
+              type: "string"
+            },
+            limit: {
+              type: "integer",
+              minimum: 1,
+              maximum: 100,
+              default: 50
             }
           }
         },
-        $defs: {
-          declaration: {
+        output: {
+          encoding: "application/json",
+          schema: {
             type: "object",
-            required: ["cid", "actorType"],
+            required: ["users"],
             properties: {
-              cid: {
-                type: "string"
-              },
-              actorType: {
-                oneOf: [
-                  {
-                    $ref: "#/$defs/actorKnown"
-                  },
-                  {
-                    $ref: "#/$defs/actorUnknown"
-                  }
-                ]
+              users: {
+                type: "array",
+                items: {
+                  type: "ref",
+                  ref: "lex:app.bsky.actor.searchTypeahead#user"
+                }
               }
             }
-          },
-          actorKnown: {
-            type: "string",
-            enum: ["app.bsky.system.actorUser", "app.bsky.system.actorScene"]
-          },
-          actorUnknown: {
-            type: "string",
-            not: {
-              enum: ["app.bsky.system.actorUser", "app.bsky.system.actorScene"]
-            }
           }
         }
-      }
-    },
-    defs: {
-      declaration: {
+      },
+      user: {
         type: "object",
-        required: ["cid", "actorType"],
+        required: ["did", "declaration", "handle"],
         properties: {
-          cid: {
+          did: {
             type: "string"
           },
-          actorType: {
-            oneOf: [
-              {
-                $ref: "#/$defs/actorKnown"
-              },
-              {
-                $ref: "#/$defs/actorUnknown"
-              }
-            ]
+          declaration: {
+            type: "ref",
+            ref: "lex:app.bsky.system.declRef"
+          },
+          handle: {
+            type: "string"
+          },
+          displayName: {
+            type: "string",
+            maxLength: 64
           }
         }
-      },
-      actorKnown: {
-        type: "string",
-        enum: ["app.bsky.system.actorUser", "app.bsky.system.actorScene"]
-      },
-      actorUnknown: {
-        type: "string",
-        not: {
-          enum: ["app.bsky.system.actorUser", "app.bsky.system.actorScene"]
-        }
       }
     }
   },
-  "app.bsky.actor.searchTypeahead": {
+  {
     lexicon: 1,
-    id: "app.bsky.actor.searchTypeahead",
-    type: "query",
-    description: "Find user suggestions for a search term.",
-    parameters: {
-      type: "object",
-      required: ["term"],
-      properties: {
-        term: {
-          type: "string"
-        },
-        limit: {
-          type: "integer",
-          maximum: 100
-        }
-      }
-    },
-    output: {
-      encoding: "application/json",
-      schema: {
-        type: "object",
-        required: ["users"],
-        properties: {
-          users: {
-            type: "array",
-            items: {
-              type: "object",
-              required: ["did", "declaration", "handle"],
-              properties: {
-                did: {
-                  type: "string"
-                },
-                declaration: {
-                  $ref: "#/$defs/declaration"
-                },
-                handle: {
-                  type: "string"
-                },
-                displayName: {
-                  type: "string",
-                  maxLength: 64
-                }
+    id: "app.bsky.actor.updateProfile",
+    defs: {
+      main: {
+        type: "procedure",
+        description: "Notify server that the user has seen notifications.",
+        input: {
+          encoding: "application/json",
+          schema: {
+            type: "object",
+            properties: {
+              did: {
+                type: "string"
+              },
+              displayName: {
+                type: "string",
+                maxLength: 64
+              },
+              description: {
+                type: "string",
+                maxLength: 256
               }
             }
           }
         },
-        $defs: {
-          declaration: {
+        output: {
+          encoding: "application/json",
+          schema: {
             type: "object",
-            required: ["cid", "actorType"],
+            required: ["uri", "cid", "record"],
             properties: {
+              uri: {
+                type: "string"
+              },
               cid: {
                 type: "string"
               },
-              actorType: {
-                oneOf: [
-                  {
-                    $ref: "#/$defs/actorKnown"
-                  },
-                  {
-                    $ref: "#/$defs/actorUnknown"
-                  }
-                ]
+              record: {
+                type: "unknown"
               }
             }
-          },
-          actorKnown: {
-            type: "string",
-            enum: ["app.bsky.system.actorUser", "app.bsky.system.actorScene"]
-          },
-          actorUnknown: {
-            type: "string",
-            not: {
-              enum: ["app.bsky.system.actorUser", "app.bsky.system.actorScene"]
-            }
           }
         }
       }
-    },
+    }
+  },
+  {
+    lexicon: 1,
+    id: "app.bsky.feed.embed",
+    description: "Content embedded in other content, such as an image or link embedded in a post.",
     defs: {
-      declaration: {
+      main: {
         type: "object",
-        required: ["cid", "actorType"],
+        description: "A list embeds in a post or document.",
+        required: ["media"],
         properties: {
-          cid: {
-            type: "string"
-          },
-          actorType: {
-            oneOf: [
-              {
-                $ref: "#/$defs/actorKnown"
-              },
-              {
-                $ref: "#/$defs/actorUnknown"
-              }
-            ]
+          items: {
+            type: "array",
+            items: {
+              type: "union",
+              refs: [
+                "lex:app.bsky.feed.embed#media",
+                "lex:app.bsky.feed.embed#record",
+                "lex:app.bsky.feed.embed#external"
+              ]
+            }
           }
         }
       },
-      actorKnown: {
-        type: "string",
-        enum: ["app.bsky.system.actorUser", "app.bsky.system.actorScene"]
-      },
-      actorUnknown: {
-        type: "string",
-        not: {
-          enum: ["app.bsky.system.actorUser", "app.bsky.system.actorScene"]
-        }
-      }
-    }
-  },
-  "app.bsky.actor.updateProfile": {
-    lexicon: 1,
-    id: "app.bsky.actor.updateProfile",
-    type: "procedure",
-    description: "Notify server that the user has seen notifications.",
-    input: {
-      encoding: "application/json",
-      schema: {
+      media: {
         type: "object",
+        required: ["original"],
         properties: {
-          did: {
+          alt: {
             type: "string"
           },
-          displayName: {
-            type: "string",
-            maxLength: 64
+          thumb: {
+            type: "image"
           },
-          description: {
+          original: {
+            type: "blob"
+          }
+        }
+      },
+      record: {
+        type: "object",
+        required: ["type", "author", "record"],
+        properties: {
+          type: {
             type: "string",
-            maxLength: 256
+            const: "record"
+          },
+          author: {
+            type: "ref",
+            ref: "lex:app.bsky.actor.ref#withInfo"
+          },
+          record: {
+            type: "unknown"
           }
-        },
-        $defs: {}
-      }
-    },
-    output: {
-      encoding: "application/json",
-      schema: {
+        }
+      },
+      external: {
         type: "object",
-        required: ["uri", "cid", "record"],
+        required: ["type", "uri", "title", "description", "imageUri"],
         properties: {
+          type: {
+            type: "string",
+            const: "external"
+          },
           uri: {
             type: "string"
           },
-          cid: {
+          title: {
             type: "string"
           },
-          record: {
-            type: "object"
+          description: {
+            type: "string"
+          },
+          imageUri: {
+            type: "string"
           }
-        },
-        $defs: {}
+        }
       }
     }
   },
-  "app.bsky.feed.getAuthorFeed": {
+  {
     lexicon: 1,
     id: "app.bsky.feed.getAuthorFeed",
-    type: "query",
-    description: "A view of a user's feed.",
-    parameters: {
-      type: "object",
-      required: ["author"],
-      properties: {
-        author: {
-          type: "string"
-        },
-        limit: {
-          type: "integer",
-          maximum: 100
-        },
-        before: {
-          type: "string"
-        }
-      }
-    },
-    output: {
-      encoding: "application/json",
-      schema: {
-        type: "object",
-        required: ["feed"],
-        properties: {
-          cursor: {
-            type: "string"
-          },
-          feed: {
-            type: "array",
-            items: {
-              $ref: "#/$defs/feedItem"
+    defs: {
+      main: {
+        type: "query",
+        description: "A view of a user's feed.",
+        parameters: {
+          type: "params",
+          required: ["author"],
+          properties: {
+            author: {
+              type: "string"
+            },
+            limit: {
+              type: "integer",
+              minimum: 1,
+              maximum: 100,
+              default: 50
+            },
+            before: {
+              type: "string"
             }
           }
         },
-        $defs: {
-          feedItem: {
-            type: "object",
-            required: [
-              "uri",
-              "cid",
-              "author",
-              "record",
-              "replyCount",
-              "repostCount",
-              "upvoteCount",
-              "downvoteCount",
-              "indexedAt"
-            ],
-            properties: {
-              uri: {
-                type: "string"
-              },
-              cid: {
-                type: "string"
-              },
-              author: {
-                $ref: "#/$defs/actor"
-              },
-              trendedBy: {
-                $ref: "#/$defs/actor"
-              },
-              repostedBy: {
-                $ref: "#/$defs/actor"
-              },
-              record: {
-                type: "object"
-              },
-              embed: {
-                oneOf: [
-                  {
-                    $ref: "#/$defs/recordEmbed"
-                  },
-                  {
-                    $ref: "#/$defs/externalEmbed"
-                  },
-                  {
-                    $ref: "#/$defs/unknownEmbed"
-                  }
-                ]
-              },
-              replyCount: {
-                type: "integer"
-              },
-              repostCount: {
-                type: "integer"
-              },
-              upvoteCount: {
-                type: "integer"
-              },
-              downvoteCount: {
-                type: "integer"
-              },
-              indexedAt: {
-                type: "string",
-                format: "date-time"
-              },
-              myState: {
-                type: "object",
-                properties: {
-                  repost: {
-                    type: "string"
-                  },
-                  upvote: {
-                    type: "string"
-                  },
-                  downvote: {
-                    type: "string"
-                  }
-                }
-              }
-            }
-          },
-          actor: {
-            type: "object",
-            required: ["did", "declaration", "handle"],
-            properties: {
-              did: {
-                type: "string"
-              },
-              declaration: {
-                $ref: "#/$defs/declaration"
-              },
-              handle: {
-                type: "string"
-              },
-              displayName: {
-                type: "string",
-                maxLength: 64
-              }
-            }
-          },
-          declaration: {
-            type: "object",
-            required: ["cid", "actorType"],
-            properties: {
-              cid: {
-                type: "string"
-              },
-              actorType: {
-                oneOf: [
-                  {
-                    $ref: "#/$defs/actorKnown"
-                  },
-                  {
-                    $ref: "#/$defs/actorUnknown"
-                  }
-                ]
-              }
-            }
-          },
-          actorKnown: {
-            type: "string",
-            enum: ["app.bsky.system.actorUser", "app.bsky.system.actorScene"]
-          },
-          actorUnknown: {
-            type: "string",
-            not: {
-              enum: ["app.bsky.system.actorUser", "app.bsky.system.actorScene"]
-            }
-          },
-          recordEmbed: {
-            type: "object",
-            required: ["type", "author", "record"],
-            properties: {
-              type: {
-                const: "record"
-              },
-              author: {
-                $ref: "#/$defs/actor"
-              },
-              record: {
-                type: "object"
-              }
-            }
-          },
-          externalEmbed: {
+        output: {
+          encoding: "application/json",
+          schema: {
             type: "object",
-            required: ["type", "uri", "title", "description", "imageUri"],
+            required: ["feed"],
             properties: {
-              type: {
-                const: "external"
-              },
-              uri: {
-                type: "string"
-              },
-              title: {
+              cursor: {
                 type: "string"
               },
-              description: {
-                type: "string"
-              },
-              imageUri: {
-                type: "string"
-              }
-            }
-          },
-          unknownEmbed: {
-            type: "object",
-            required: ["type"],
-            properties: {
-              type: {
-                type: "string",
-                not: {
-                  enum: ["record", "external"]
+              feed: {
+                type: "array",
+                items: {
+                  type: "ref",
+                  ref: "lex:app.bsky.feed.getAuthorFeed#feedItem"
                 }
               }
             }
           }
         }
-      }
-    },
-    defs: {
+      },
       feedItem: {
         type: "object",
         required: [
@@ -12041,29 +5679,23 @@ var methodSchemaDict = {
             type: "string"
           },
           author: {
-            $ref: "#/$defs/actor"
+            type: "ref",
+            ref: "lex:app.bsky.actor.ref#withInfo"
           },
           trendedBy: {
-            $ref: "#/$defs/actor"
+            type: "ref",
+            ref: "lex:app.bsky.actor.ref#withInfo"
           },
           repostedBy: {
-            $ref: "#/$defs/actor"
+            type: "ref",
+            ref: "lex:app.bsky.actor.ref#withInfo"
           },
           record: {
-            type: "object"
+            type: "unknown"
           },
           embed: {
-            oneOf: [
-              {
-                $ref: "#/$defs/recordEmbed"
-              },
-              {
-                $ref: "#/$defs/externalEmbed"
-              },
-              {
-                $ref: "#/$defs/unknownEmbed"
-              }
-            ]
+            type: "ref",
+            ref: "lex:app.bsky.feed.embed"
           },
           replyCount: {
             type: "integer"
@@ -12078,330 +5710,70 @@ var methodSchemaDict = {
             type: "integer"
           },
           indexedAt: {
-            type: "string",
-            format: "date-time"
+            type: "datetime"
           },
           myState: {
-            type: "object",
-            properties: {
-              repost: {
-                type: "string"
-              },
-              upvote: {
-                type: "string"
-              },
-              downvote: {
-                type: "string"
-              }
-            }
-          }
-        }
-      },
-      actor: {
-        type: "object",
-        required: ["did", "declaration", "handle"],
-        properties: {
-          did: {
-            type: "string"
-          },
-          declaration: {
-            $ref: "#/$defs/declaration"
-          },
-          handle: {
-            type: "string"
-          },
-          displayName: {
-            type: "string",
-            maxLength: 64
-          }
-        }
-      },
-      recordEmbed: {
-        type: "object",
-        required: ["type", "author", "record"],
-        properties: {
-          type: {
-            const: "record"
-          },
-          author: {
-            $ref: "#/$defs/actor"
-          },
-          record: {
-            type: "object"
+            type: "ref",
+            ref: "lex:app.bsky.feed.getAuthorFeed#myState"
           }
         }
       },
-      externalEmbed: {
+      myState: {
         type: "object",
-        required: ["type", "uri", "title", "description", "imageUri"],
         properties: {
-          type: {
-            const: "external"
-          },
-          uri: {
-            type: "string"
-          },
-          title: {
+          repost: {
             type: "string"
           },
-          description: {
+          upvote: {
             type: "string"
           },
-          imageUri: {
-            type: "string"
-          }
-        }
-      },
-      unknownEmbed: {
-        type: "object",
-        required: ["type"],
-        properties: {
-          type: {
-            type: "string",
-            not: {
-              enum: ["record", "external"]
-            }
-          }
-        }
-      },
-      declaration: {
-        type: "object",
-        required: ["cid", "actorType"],
-        properties: {
-          cid: {
+          downvote: {
             type: "string"
-          },
-          actorType: {
-            oneOf: [
-              {
-                $ref: "#/$defs/actorKnown"
-              },
-              {
-                $ref: "#/$defs/actorUnknown"
-              }
-            ]
           }
         }
-      },
-      actorKnown: {
-        type: "string",
-        enum: ["app.bsky.system.actorUser", "app.bsky.system.actorScene"]
-      },
-      actorUnknown: {
-        type: "string",
-        not: {
-          enum: ["app.bsky.system.actorUser", "app.bsky.system.actorScene"]
-        }
       }
     }
   },
-  "app.bsky.feed.getPostThread": {
+  {
     lexicon: 1,
     id: "app.bsky.feed.getPostThread",
-    type: "query",
-    parameters: {
-      type: "object",
-      required: ["uri"],
-      properties: {
-        uri: {
-          type: "string"
-        },
-        depth: {
-          type: "integer"
-        }
-      }
-    },
-    output: {
-      encoding: "application/json",
-      schema: {
-        type: "object",
-        required: ["thread"],
-        properties: {
-          thread: {
-            $ref: "#/$defs/post"
+    defs: {
+      main: {
+        type: "query",
+        parameters: {
+          type: "params",
+          required: ["uri"],
+          properties: {
+            uri: {
+              type: "string"
+            },
+            depth: {
+              type: "integer"
+            }
           }
         },
-        $defs: {
-          post: {
-            type: "object",
-            required: [
-              "uri",
-              "cid",
-              "author",
-              "record",
-              "replyCount",
-              "repostCount",
-              "upvoteCount",
-              "downvoteCount",
-              "indexedAt"
-            ],
-            properties: {
-              uri: {
-                type: "string"
-              },
-              cid: {
-                type: "string"
-              },
-              author: {
-                $ref: "#/$defs/user"
-              },
-              record: {
-                type: "object"
-              },
-              embed: {
-                oneOf: [
-                  {
-                    $ref: "#/$defs/recordEmbed"
-                  },
-                  {
-                    $ref: "#/$defs/externalEmbed"
-                  },
-                  {
-                    $ref: "#/$defs/unknownEmbed"
-                  }
-                ]
-              },
-              parent: {
-                $ref: "#/$defs/post"
-              },
-              replyCount: {
-                type: "integer"
-              },
-              replies: {
-                type: "array",
-                items: {
-                  $ref: "#/$defs/post"
-                }
-              },
-              repostCount: {
-                type: "integer"
-              },
-              upvoteCount: {
-                type: "integer"
-              },
-              downvoteCount: {
-                type: "integer"
-              },
-              indexedAt: {
-                type: "string",
-                format: "date-time"
-              },
-              myState: {
-                type: "object",
-                properties: {
-                  repost: {
-                    type: "string"
-                  },
-                  upvote: {
-                    type: "string"
-                  },
-                  downvote: {
-                    type: "string"
-                  }
-                }
-              }
-            }
-          },
-          user: {
+        output: {
+          encoding: "application/json",
+          schema: {
             type: "object",
-            required: ["did", "declaration", "handle"],
+            required: ["thread"],
             properties: {
-              did: {
-                type: "string"
-              },
-              declaration: {
-                $ref: "#/$defs/declaration"
-              },
-              handle: {
-                type: "string"
-              },
-              displayName: {
-                type: "string",
-                maxLength: 64
-              }
-            }
-          },
-          declaration: {
-            type: "object",
-            required: ["cid", "actorType"],
-            properties: {
-              cid: {
-                type: "string"
-              },
-              actorType: {
-                oneOf: [
-                  {
-                    $ref: "#/$defs/actorKnown"
-                  },
-                  {
-                    $ref: "#/$defs/actorUnknown"
-                  }
+              thread: {
+                type: "union",
+                refs: [
+                  "lex:app.bsky.feed.getPostThread#post",
+                  "lex:app.bsky.feed.getPostThread#notFoundPost"
                 ]
               }
             }
-          },
-          actorKnown: {
-            type: "string",
-            enum: ["app.bsky.system.actorUser", "app.bsky.system.actorScene"]
-          },
-          actorUnknown: {
-            type: "string",
-            not: {
-              enum: ["app.bsky.system.actorUser", "app.bsky.system.actorScene"]
-            }
-          },
-          recordEmbed: {
-            type: "object",
-            required: ["type", "author", "record"],
-            properties: {
-              type: {
-                const: "record"
-              },
-              author: {
-                $ref: "#/$defs/user"
-              },
-              record: {
-                type: "object"
-              }
-            }
-          },
-          externalEmbed: {
-            type: "object",
-            required: ["type", "uri", "title", "description", "imageUri"],
-            properties: {
-              type: {
-                const: "external"
-              },
-              uri: {
-                type: "string"
-              },
-              title: {
-                type: "string"
-              },
-              description: {
-                type: "string"
-              },
-              imageUri: {
-                type: "string"
-              }
-            }
-          },
-          unknownEmbed: {
-            type: "object",
-            required: ["type"],
-            properties: {
-              type: {
-                type: "string",
-                not: {
-                  enum: ["record", "external"]
-                }
-              }
-            }
           }
-        }
-      }
-    },
-    defs: {
+        },
+        errors: [
+          {
+            name: "NotFound"
+          }
+        ]
+      },
       post: {
         type: "object",
         required: [
@@ -12423,26 +5795,22 @@ var methodSchemaDict = {
             type: "string"
           },
           author: {
-            $ref: "#/$defs/user"
+            type: "ref",
+            ref: "lex:app.bsky.actor.ref#withInfo"
           },
           record: {
-            type: "object"
+            type: "unknown"
           },
           embed: {
-            oneOf: [
-              {
-                $ref: "#/$defs/recordEmbed"
-              },
-              {
-                $ref: "#/$defs/externalEmbed"
-              },
-              {
-                $ref: "#/$defs/unknownEmbed"
-              }
-            ]
+            type: "ref",
+            ref: "lex:app.bsky.feed.embed"
           },
           parent: {
-            $ref: "#/$defs/post"
+            type: "union",
+            refs: [
+              "lex:app.bsky.feed.getPostThread#post",
+              "lex:app.bsky.feed.getPostThread#notFoundPost"
+            ]
           },
           replyCount: {
             type: "integer"
@@ -12450,7 +5818,11 @@ var methodSchemaDict = {
           replies: {
             type: "array",
             items: {
-              $ref: "#/$defs/post"
+              type: "union",
+              refs: [
+                "lex:app.bsky.feed.getPostThread#post",
+                "lex:app.bsky.feed.getPostThread#notFoundPost"
+              ]
             }
           },
           repostCount: {
@@ -12463,479 +5835,168 @@ var methodSchemaDict = {
             type: "integer"
           },
           indexedAt: {
-            type: "string",
-            format: "date-time"
+            type: "datetime"
           },
           myState: {
-            type: "object",
-            properties: {
-              repost: {
-                type: "string"
-              },
-              upvote: {
-                type: "string"
-              },
-              downvote: {
-                type: "string"
-              }
-            }
+            type: "ref",
+            ref: "lex:app.bsky.feed.getPostThread#myState"
           }
         }
       },
-      user: {
+      notFoundPost: {
         type: "object",
-        required: ["did", "declaration", "handle"],
+        required: ["uri", "notFound"],
         properties: {
-          did: {
-            type: "string"
-          },
-          declaration: {
-            $ref: "#/$defs/declaration"
-          },
-          handle: {
+          uri: {
             type: "string"
           },
-          displayName: {
-            type: "string",
-            maxLength: 64
-          }
-        }
-      },
-      recordEmbed: {
-        type: "object",
-        required: ["type", "author", "record"],
-        properties: {
-          type: {
-            const: "record"
-          },
-          author: {
-            $ref: "#/$defs/user"
-          },
-          record: {
-            type: "object"
+          notFound: {
+            type: "boolean",
+            const: true
           }
         }
       },
-      externalEmbed: {
+      myState: {
         type: "object",
-        required: ["type", "uri", "title", "description", "imageUri"],
         properties: {
-          type: {
-            const: "external"
-          },
-          uri: {
-            type: "string"
-          },
-          title: {
+          repost: {
             type: "string"
           },
-          description: {
+          upvote: {
             type: "string"
           },
-          imageUri: {
+          downvote: {
             type: "string"
           }
         }
-      },
-      unknownEmbed: {
-        type: "object",
-        required: ["type"],
-        properties: {
-          type: {
-            type: "string",
-            not: {
-              enum: ["record", "external"]
-            }
-          }
-        }
-      },
-      declaration: {
-        type: "object",
-        required: ["cid", "actorType"],
-        properties: {
-          cid: {
-            type: "string"
-          },
-          actorType: {
-            oneOf: [
-              {
-                $ref: "#/$defs/actorKnown"
-              },
-              {
-                $ref: "#/$defs/actorUnknown"
-              }
-            ]
-          }
-        }
-      },
-      actorKnown: {
-        type: "string",
-        enum: ["app.bsky.system.actorUser", "app.bsky.system.actorScene"]
-      },
-      actorUnknown: {
-        type: "string",
-        not: {
-          enum: ["app.bsky.system.actorUser", "app.bsky.system.actorScene"]
-        }
       }
-    },
-    errors: [
-      {
-        name: "NotFound"
-      }
-    ]
+    }
   },
-  "app.bsky.feed.getRepostedBy": {
+  {
     lexicon: 1,
     id: "app.bsky.feed.getRepostedBy",
-    type: "query",
-    parameters: {
-      type: "object",
-      required: ["uri"],
-      properties: {
-        uri: {
-          type: "string"
-        },
-        cid: {
-          type: "string"
-        },
-        limit: {
-          type: "integer",
-          maximum: 100
-        },
-        before: {
-          type: "string"
-        }
-      }
-    },
-    output: {
-      encoding: "application/json",
-      schema: {
-        type: "object",
-        required: ["uri", "repostedBy"],
-        properties: {
-          uri: {
-            type: "string"
-          },
-          cid: {
-            type: "string"
-          },
-          cursor: {
-            type: "string"
-          },
-          repostedBy: {
-            type: "array",
-            items: {
-              type: "object",
-              required: ["did", "declaration", "handle", "indexedAt"],
-              properties: {
-                did: {
-                  type: "string"
-                },
-                declaration: {
-                  $ref: "#/$defs/declaration"
-                },
-                handle: {
-                  type: "string"
-                },
-                displayName: {
-                  type: "string",
-                  maxLength: 64
-                },
-                createdAt: {
-                  type: "string",
-                  format: "date-time"
-                },
-                indexedAt: {
-                  type: "string",
-                  format: "date-time"
-                }
-              }
+    defs: {
+      main: {
+        type: "query",
+        parameters: {
+          type: "params",
+          required: ["uri"],
+          properties: {
+            uri: {
+              type: "string"
+            },
+            cid: {
+              type: "string"
+            },
+            limit: {
+              type: "integer",
+              minimum: 1,
+              maximum: 100,
+              default: 50
+            },
+            before: {
+              type: "string"
             }
           }
         },
-        $defs: {
-          declaration: {
+        output: {
+          encoding: "application/json",
+          schema: {
             type: "object",
-            required: ["cid", "actorType"],
+            required: ["uri", "repostedBy"],
             properties: {
+              uri: {
+                type: "string"
+              },
               cid: {
                 type: "string"
               },
-              actorType: {
-                oneOf: [
-                  {
-                    $ref: "#/$defs/actorKnown"
-                  },
-                  {
-                    $ref: "#/$defs/actorUnknown"
-                  }
-                ]
+              cursor: {
+                type: "string"
+              },
+              repostedBy: {
+                type: "array",
+                items: {
+                  type: "ref",
+                  ref: "lex:app.bsky.feed.getRepostedBy#repostedBy"
+                }
               }
             }
-          },
-          actorKnown: {
-            type: "string",
-            enum: ["app.bsky.system.actorUser", "app.bsky.system.actorScene"]
-          },
-          actorUnknown: {
-            type: "string",
-            not: {
-              enum: ["app.bsky.system.actorUser", "app.bsky.system.actorScene"]
-            }
           }
         }
-      }
-    },
-    defs: {
-      declaration: {
+      },
+      repostedBy: {
         type: "object",
-        required: ["cid", "actorType"],
+        required: ["did", "declaration", "handle", "indexedAt"],
         properties: {
-          cid: {
+          did: {
             type: "string"
           },
-          actorType: {
-            oneOf: [
-              {
-                $ref: "#/$defs/actorKnown"
-              },
-              {
-                $ref: "#/$defs/actorUnknown"
-              }
-            ]
+          declaration: {
+            type: "ref",
+            ref: "lex:app.bsky.system.declRef"
+          },
+          handle: {
+            type: "string"
+          },
+          displayName: {
+            type: "string",
+            maxLength: 64
+          },
+          createdAt: {
+            type: "datetime"
+          },
+          indexedAt: {
+            type: "datetime"
           }
         }
-      },
-      actorKnown: {
-        type: "string",
-        enum: ["app.bsky.system.actorUser", "app.bsky.system.actorScene"]
-      },
-      actorUnknown: {
-        type: "string",
-        not: {
-          enum: ["app.bsky.system.actorUser", "app.bsky.system.actorScene"]
-        }
       }
     }
   },
-  "app.bsky.feed.getTimeline": {
+  {
     lexicon: 1,
     id: "app.bsky.feed.getTimeline",
-    type: "query",
-    description: "A view of the user's home timeline.",
-    parameters: {
-      type: "object",
-      properties: {
-        algorithm: {
-          type: "string"
-        },
-        limit: {
-          type: "integer",
-          maximum: 100
-        },
-        before: {
-          type: "string"
-        }
-      }
-    },
-    output: {
-      encoding: "application/json",
-      schema: {
-        type: "object",
-        required: ["feed"],
-        properties: {
-          cursor: {
-            type: "string"
-          },
-          feed: {
-            type: "array",
-            items: {
-              $ref: "#/$defs/feedItem"
+    defs: {
+      main: {
+        type: "query",
+        description: "A view of the user's home timeline.",
+        parameters: {
+          type: "params",
+          properties: {
+            algorithm: {
+              type: "string"
+            },
+            limit: {
+              type: "integer",
+              minimum: 1,
+              maximum: 100,
+              default: 50
+            },
+            before: {
+              type: "string"
             }
           }
         },
-        $defs: {
-          feedItem: {
+        output: {
+          encoding: "application/json",
+          schema: {
             type: "object",
-            required: [
-              "uri",
-              "cid",
-              "author",
-              "record",
-              "replyCount",
-              "repostCount",
-              "upvoteCount",
-              "downvoteCount",
-              "indexedAt"
-            ],
+            required: ["feed"],
             properties: {
-              uri: {
+              cursor: {
                 type: "string"
               },
-              cid: {
-                type: "string"
-              },
-              author: {
-                $ref: "#/$defs/actor"
-              },
-              trendedBy: {
-                $ref: "#/$defs/actor"
-              },
-              repostedBy: {
-                $ref: "#/$defs/actor"
-              },
-              record: {
-                type: "object"
-              },
-              embed: {
-                oneOf: [
-                  {
-                    $ref: "#/$defs/recordEmbed"
-                  },
-                  {
-                    $ref: "#/$defs/externalEmbed"
-                  },
-                  {
-                    $ref: "#/$defs/unknownEmbed"
-                  }
-                ]
-              },
-              replyCount: {
-                type: "integer"
-              },
-              repostCount: {
-                type: "integer"
-              },
-              upvoteCount: {
-                type: "integer"
-              },
-              downvoteCount: {
-                type: "integer"
-              },
-              indexedAt: {
-                type: "string",
-                format: "date-time"
-              },
-              myState: {
-                type: "object",
-                properties: {
-                  repost: {
-                    type: "string"
-                  },
-                  upvote: {
-                    type: "string"
-                  },
-                  downvote: {
-                    type: "string"
-                  }
-                }
-              }
-            }
-          },
-          actor: {
-            type: "object",
-            required: ["did", "declaration", "handle"],
-            properties: {
-              did: {
-                type: "string"
-              },
-              declaration: {
-                $ref: "#/$defs/declaration"
-              },
-              handle: {
-                type: "string"
-              },
-              actorType: {
-                type: "string"
-              },
-              displayName: {
-                type: "string",
-                maxLength: 64
-              }
-            }
-          },
-          declaration: {
-            type: "object",
-            required: ["cid", "actorType"],
-            properties: {
-              cid: {
-                type: "string"
-              },
-              actorType: {
-                oneOf: [
-                  {
-                    $ref: "#/$defs/actorKnown"
-                  },
-                  {
-                    $ref: "#/$defs/actorUnknown"
-                  }
-                ]
-              }
-            }
-          },
-          actorKnown: {
-            type: "string",
-            enum: ["app.bsky.system.actorUser", "app.bsky.system.actorScene"]
-          },
-          actorUnknown: {
-            type: "string",
-            not: {
-              enum: ["app.bsky.system.actorUser", "app.bsky.system.actorScene"]
-            }
-          },
-          recordEmbed: {
-            type: "object",
-            required: ["type", "author", "record"],
-            properties: {
-              type: {
-                const: "record"
-              },
-              author: {
-                $ref: "#/$defs/actor"
-              },
-              record: {
-                type: "object"
-              }
-            }
-          },
-          externalEmbed: {
-            type: "object",
-            required: ["type", "uri", "title", "description", "imageUri"],
-            properties: {
-              type: {
-                const: "external"
-              },
-              uri: {
-                type: "string"
-              },
-              title: {
-                type: "string"
-              },
-              description: {
-                type: "string"
-              },
-              imageUri: {
-                type: "string"
-              }
-            }
-          },
-          unknownEmbed: {
-            type: "object",
-            required: ["type"],
-            properties: {
-              type: {
-                type: "string",
-                not: {
-                  enum: ["record", "external"]
+              feed: {
+                type: "array",
+                items: {
+                  type: "ref",
+                  ref: "lex:app.bsky.feed.getTimeline#feedItem"
                 }
               }
             }
           }
         }
-      }
-    },
-    defs: {
+      },
       feedItem: {
         type: "object",
         required: [
@@ -12957,29 +6018,23 @@ var methodSchemaDict = {
             type: "string"
           },
           author: {
-            $ref: "#/$defs/actor"
+            type: "ref",
+            ref: "lex:app.bsky.actor.ref#withInfo"
           },
           trendedBy: {
-            $ref: "#/$defs/actor"
+            type: "ref",
+            ref: "lex:app.bsky.actor.ref#withInfo"
           },
           repostedBy: {
-            $ref: "#/$defs/actor"
+            type: "ref",
+            ref: "lex:app.bsky.actor.ref#withInfo"
           },
           record: {
-            type: "object"
+            type: "unknown"
           },
           embed: {
-            oneOf: [
-              {
-                $ref: "#/$defs/recordEmbed"
-              },
-              {
-                $ref: "#/$defs/externalEmbed"
-              },
-              {
-                $ref: "#/$defs/unknownEmbed"
-              }
-            ]
+            type: "ref",
+            ref: "lex:app.bsky.feed.embed"
           },
           replyCount: {
             type: "integer"
@@ -12994,519 +6049,463 @@ var methodSchemaDict = {
             type: "integer"
           },
           indexedAt: {
-            type: "string",
-            format: "date-time"
+            type: "datetime"
           },
           myState: {
+            type: "ref",
+            ref: "lex:app.bsky.feed.getTimeline#myState"
+          }
+        }
+      },
+      myState: {
+        type: "object",
+        properties: {
+          repost: {
+            type: "string"
+          },
+          upvote: {
+            type: "string"
+          },
+          downvote: {
+            type: "string"
+          }
+        }
+      }
+    }
+  },
+  {
+    lexicon: 1,
+    id: "app.bsky.feed.getVotes",
+    defs: {
+      main: {
+        type: "query",
+        parameters: {
+          type: "params",
+          required: ["uri"],
+          properties: {
+            uri: {
+              type: "string"
+            },
+            cid: {
+              type: "string"
+            },
+            direction: {
+              type: "string",
+              enum: ["up", "down"]
+            },
+            limit: {
+              type: "integer",
+              minimum: 1,
+              maximum: 100,
+              default: 50
+            },
+            before: {
+              type: "string"
+            }
+          }
+        },
+        output: {
+          encoding: "application/json",
+          schema: {
             type: "object",
+            required: ["uri", "votes"],
             properties: {
-              repost: {
+              uri: {
                 type: "string"
               },
-              upvote: {
+              cid: {
                 type: "string"
               },
-              downvote: {
+              cursor: {
                 type: "string"
+              },
+              votes: {
+                type: "array",
+                items: {
+                  type: "ref",
+                  ref: "lex:app.bsky.feed.getVotes#vote"
+                }
               }
             }
           }
         }
       },
-      actor: {
+      vote: {
         type: "object",
-        required: ["did", "declaration", "handle"],
+        required: ["direction", "indexedAt", "createdAt", "actor"],
         properties: {
-          did: {
-            type: "string"
-          },
-          declaration: {
-            $ref: "#/$defs/declaration"
+          direction: {
+            type: "string",
+            enum: ["up", "down"]
           },
-          handle: {
-            type: "string"
+          indexedAt: {
+            type: "datetime"
           },
-          actorType: {
-            type: "string"
+          createdAt: {
+            type: "datetime"
           },
-          displayName: {
-            type: "string",
-            maxLength: 64
+          actor: {
+            type: "ref",
+            ref: "lex:app.bsky.actor.ref#withInfo"
           }
         }
-      },
-      recordEmbed: {
-        type: "object",
-        required: ["type", "author", "record"],
-        properties: {
-          type: {
-            const: "record"
-          },
-          author: {
-            $ref: "#/$defs/actor"
-          },
-          record: {
-            type: "object"
+      }
+    }
+  },
+  {
+    lexicon: 1,
+    id: "app.bsky.feed.post",
+    defs: {
+      main: {
+        type: "record",
+        key: "tid",
+        record: {
+          type: "object",
+          required: ["text", "createdAt"],
+          properties: {
+            text: {
+              type: "string",
+              maxLength: 256
+            },
+            entities: {
+              type: "array",
+              items: {
+                type: "ref",
+                ref: "lex:app.bsky.feed.post#entity"
+              }
+            },
+            reply: {
+              type: "ref",
+              ref: "lex:app.bsky.feed.post#replyRef"
+            },
+            createdAt: {
+              type: "datetime"
+            }
           }
         }
       },
-      externalEmbed: {
+      replyRef: {
         type: "object",
-        required: ["type", "uri", "title", "description", "imageUri"],
+        required: ["root", "parent"],
         properties: {
-          type: {
-            const: "external"
-          },
-          uri: {
-            type: "string"
-          },
-          title: {
-            type: "string"
-          },
-          description: {
-            type: "string"
+          root: {
+            type: "ref",
+            ref: "lex:com.atproto.repo.strongRef"
           },
-          imageUri: {
-            type: "string"
+          parent: {
+            type: "ref",
+            ref: "lex:com.atproto.repo.strongRef"
           }
         }
       },
-      unknownEmbed: {
+      entity: {
         type: "object",
-        required: ["type"],
+        required: ["index", "type", "value"],
         properties: {
+          index: {
+            type: "ref",
+            ref: "lex:app.bsky.feed.post#textSlice"
+          },
           type: {
             type: "string",
-            not: {
-              enum: ["record", "external"]
-            }
+            description: "Expected values are 'mention', 'hashtag', and 'link'."
+          },
+          value: {
+            type: "string"
           }
         }
       },
-      declaration: {
+      textSlice: {
         type: "object",
-        required: ["cid", "actorType"],
+        required: ["start", "end"],
         properties: {
-          cid: {
-            type: "string"
+          start: {
+            type: "integer",
+            minimum: 0
           },
-          actorType: {
-            oneOf: [
-              {
-                $ref: "#/$defs/actorKnown"
-              },
-              {
-                $ref: "#/$defs/actorUnknown"
-              }
-            ]
+          end: {
+            type: "integer",
+            minimum: 0
           }
         }
-      },
-      actorKnown: {
-        type: "string",
-        enum: ["app.bsky.system.actorUser", "app.bsky.system.actorScene"]
-      },
-      actorUnknown: {
-        type: "string",
-        not: {
-          enum: ["app.bsky.system.actorUser", "app.bsky.system.actorScene"]
-        }
       }
     }
   },
-  "app.bsky.feed.getVotes": {
+  {
     lexicon: 1,
-    id: "app.bsky.feed.getVotes",
-    type: "query",
-    parameters: {
-      type: "object",
-      required: ["uri"],
-      properties: {
-        uri: {
-          type: "string"
-        },
-        cid: {
-          type: "string"
-        },
-        direction: {
-          type: "string",
-          enum: ["up", "down"]
-        },
-        limit: {
-          type: "integer",
-          maximum: 100
-        },
-        before: {
-          type: "string"
-        }
-      }
-    },
-    output: {
-      encoding: "application/json",
-      schema: {
-        type: "object",
-        required: ["uri", "votes"],
-        properties: {
-          uri: {
-            type: "string"
-          },
-          cid: {
-            type: "string"
-          },
-          cursor: {
-            type: "string"
-          },
-          votes: {
-            type: "array",
-            items: {
-              type: "object",
-              required: ["direction", "indexedAt", "createdAt", "actor"],
-              properties: {
-                direction: {
-                  type: "string",
-                  enum: ["up", "down"]
-                },
-                indexedAt: {
-                  type: "string",
-                  format: "date-time"
-                },
-                createdAt: {
-                  type: "string",
-                  format: "date-time"
-                },
-                actor: {
-                  $ref: "#/$defs/actor"
-                }
-              }
+    id: "app.bsky.feed.repost",
+    defs: {
+      main: {
+        type: "record",
+        key: "tid",
+        record: {
+          type: "object",
+          required: ["subject", "createdAt"],
+          properties: {
+            subject: {
+              type: "ref",
+              ref: "lex:com.atproto.repo.strongRef"
+            },
+            createdAt: {
+              type: "datetime"
             }
           }
-        },
-        $defs: {
-          actor: {
+        }
+      }
+    }
+  },
+  {
+    lexicon: 1,
+    id: "app.bsky.feed.setVote",
+    defs: {
+      main: {
+        type: "procedure",
+        description: "Upvote, downvote, or clear the user's vote for a post.",
+        input: {
+          encoding: "application/json",
+          schema: {
             type: "object",
-            required: ["did", "declaration", "handle"],
+            required: ["subject", "direction"],
             properties: {
-              did: {
-                type: "string"
-              },
-              declaration: {
-                $ref: "#/$defs/declaration"
+              subject: {
+                type: "ref",
+                ref: "lex:com.atproto.repo.strongRef"
               },
-              handle: {
-                type: "string"
-              },
-              displayName: {
+              direction: {
                 type: "string",
-                maxLength: 64
+                enum: ["up", "down", "none"]
               }
             }
-          },
-          declaration: {
+          }
+        },
+        output: {
+          encoding: "application/json",
+          schema: {
             type: "object",
-            required: ["cid", "actorType"],
             properties: {
-              cid: {
+              upvote: {
                 type: "string"
               },
-              actorType: {
-                oneOf: [
-                  {
-                    $ref: "#/$defs/actorKnown"
-                  },
-                  {
-                    $ref: "#/$defs/actorUnknown"
-                  }
-                ]
+              downvote: {
+                type: "string"
               }
             }
-          },
-          actorKnown: {
-            type: "string",
-            enum: ["app.bsky.system.actorUser", "app.bsky.system.actorScene"]
-          },
-          actorUnknown: {
-            type: "string",
-            not: {
-              enum: ["app.bsky.system.actorUser", "app.bsky.system.actorScene"]
-            }
           }
         }
       }
-    },
+    }
+  },
+  {
+    lexicon: 1,
+    id: "app.bsky.feed.trend",
     defs: {
-      actor: {
-        type: "object",
-        required: ["did", "declaration", "handle"],
-        properties: {
-          did: {
-            type: "string"
-          },
-          declaration: {
-            $ref: "#/$defs/declaration"
-          },
-          handle: {
-            type: "string"
-          },
-          displayName: {
-            type: "string",
-            maxLength: 64
+      main: {
+        type: "record",
+        key: "tid",
+        record: {
+          type: "object",
+          required: ["subject", "createdAt"],
+          properties: {
+            subject: {
+              type: "ref",
+              ref: "lex:com.atproto.repo.strongRef"
+            },
+            createdAt: {
+              type: "datetime"
+            }
           }
         }
-      },
-      declaration: {
-        type: "object",
-        required: ["cid", "actorType"],
-        properties: {
-          cid: {
-            type: "string"
-          },
-          actorType: {
-            oneOf: [
-              {
-                $ref: "#/$defs/actorKnown"
-              },
-              {
-                $ref: "#/$defs/actorUnknown"
-              }
-            ]
+      }
+    }
+  },
+  {
+    lexicon: 1,
+    id: "app.bsky.feed.vote",
+    defs: {
+      main: {
+        type: "record",
+        key: "tid",
+        record: {
+          type: "object",
+          required: ["subject", "direction", "createdAt"],
+          properties: {
+            subject: {
+              type: "ref",
+              ref: "lex:com.atproto.repo.strongRef"
+            },
+            direction: {
+              type: "string",
+              enum: ["up", "down"]
+            },
+            createdAt: {
+              type: "datetime"
+            }
           }
         }
-      },
-      actorKnown: {
-        type: "string",
-        enum: ["app.bsky.system.actorUser", "app.bsky.system.actorScene"]
-      },
-      actorUnknown: {
-        type: "string",
-        not: {
-          enum: ["app.bsky.system.actorUser", "app.bsky.system.actorScene"]
-        }
       }
     }
   },
-  "app.bsky.feed.setVote": {
+  {
     lexicon: 1,
-    id: "app.bsky.feed.setVote",
-    type: "procedure",
-    description: "Upvote, downvote, or clear the user's vote for a post.",
-    input: {
-      encoding: "application/json",
-      schema: {
-        type: "object",
-        required: ["subject", "direction"],
-        properties: {
-          subject: {
-            $ref: "#/$defs/subject"
-          },
-          direction: {
-            type: "string",
-            enum: ["up", "down", "none"]
-          }
-        },
-        $defs: {
-          subject: {
-            type: "object",
-            required: ["uri", "cid"],
-            properties: {
-              uri: {
-                type: "string"
-              },
-              cid: {
-                type: "string"
-              }
+    id: "app.bsky.graph.assertCreator",
+    defs: {
+      main: {
+        type: "token",
+        description: "Assertion type: Creator. Defined for app.bsky.graph.assertions's assertion."
+      }
+    }
+  },
+  {
+    lexicon: 1,
+    id: "app.bsky.graph.assertMember",
+    defs: {
+      main: {
+        type: "token",
+        description: "Assertion type: Member. Defined for app.bsky.graph.assertions's assertion."
+      }
+    }
+  },
+  {
+    lexicon: 1,
+    id: "app.bsky.graph.assertion",
+    defs: {
+      main: {
+        type: "record",
+        key: "tid",
+        record: {
+          type: "object",
+          required: ["assertion", "subject", "createdAt"],
+          properties: {
+            assertion: {
+              type: "string"
+            },
+            subject: {
+              type: "ref",
+              ref: "lex:app.bsky.actor.ref"
+            },
+            createdAt: {
+              type: "datetime"
             }
           }
         }
       }
-    },
-    output: {
-      encoding: "application/json",
-      schema: {
-        type: "object",
-        properties: {
-          upvote: {
-            type: "string"
-          },
-          downvote: {
-            type: "string"
+    }
+  },
+  {
+    lexicon: 1,
+    id: "app.bsky.graph.confirmation",
+    defs: {
+      main: {
+        type: "record",
+        key: "tid",
+        record: {
+          type: "object",
+          required: ["originator", "assertion", "createdAt"],
+          properties: {
+            originator: {
+              type: "ref",
+              ref: "lex:app.bsky.actor.ref"
+            },
+            assertion: {
+              type: "ref",
+              ref: "lex:com.atproto.repo.strongRef"
+            },
+            createdAt: {
+              type: "datetime"
+            }
           }
-        },
-        $defs: {}
+        }
       }
-    },
+    }
+  },
+  {
+    lexicon: 1,
+    id: "app.bsky.graph.follow",
     defs: {
-      subject: {
-        type: "object",
-        required: ["uri", "cid"],
-        properties: {
-          uri: {
-            type: "string"
-          },
-          cid: {
-            type: "string"
+      main: {
+        type: "record",
+        description: "A social follow.",
+        key: "tid",
+        record: {
+          type: "object",
+          required: ["subject", "createdAt"],
+          properties: {
+            subject: {
+              type: "ref",
+              ref: "lex:app.bsky.actor.ref"
+            },
+            createdAt: {
+              type: "datetime"
+            }
           }
         }
       }
     }
   },
-  "app.bsky.graph.getAssertions": {
+  {
     lexicon: 1,
     id: "app.bsky.graph.getAssertions",
-    type: "query",
-    description: "General-purpose query for assertions.",
-    parameters: {
-      type: "object",
-      properties: {
-        author: {
-          type: "string"
-        },
-        subject: {
-          type: "string"
-        },
-        assertion: {
-          type: "string"
-        },
-        confirmed: {
-          type: "boolean"
-        },
-        limit: {
-          type: "integer",
-          maximum: 100
-        },
-        before: {
-          type: "string"
-        }
-      }
-    },
-    output: {
-      encoding: "application/json",
-      schema: {
-        type: "object",
-        required: ["assertions"],
-        properties: {
-          cursor: {
-            type: "string"
-          },
-          assertions: {
-            type: "array",
-            items: {
-              type: "object",
-              required: [
-                "uri",
-                "cid",
-                "assertion",
-                "author",
-                "subject",
-                "indexedAt",
-                "createdAt"
-              ],
-              properties: {
-                uri: {
-                  type: "string"
-                },
-                cid: {
-                  type: "string"
-                },
-                assertion: {
-                  type: "string"
-                },
-                confirmation: {
-                  $ref: "#/$defs/confirmation"
-                },
-                author: {
-                  $ref: "#/$defs/actor"
-                },
-                subject: {
-                  $ref: "#/$defs/actor"
-                },
-                indexedAt: {
-                  type: "string",
-                  format: "date-time"
-                },
-                createdAt: {
-                  type: "string",
-                  format: "date-time"
-                }
-              }
+    defs: {
+      main: {
+        type: "query",
+        description: "General-purpose query for assertions.",
+        parameters: {
+          type: "params",
+          properties: {
+            author: {
+              type: "string"
+            },
+            subject: {
+              type: "string"
+            },
+            assertion: {
+              type: "string"
+            },
+            confirmed: {
+              type: "boolean"
+            },
+            limit: {
+              type: "integer",
+              minimum: 1,
+              maximum: 100,
+              default: 50
+            },
+            before: {
+              type: "string"
             }
           }
         },
-        $defs: {
-          confirmation: {
+        output: {
+          encoding: "application/json",
+          schema: {
             type: "object",
-            required: ["uri", "cid", "indexedAt", "createdAt"],
+            required: ["assertions"],
             properties: {
-              uri: {
+              cursor: {
                 type: "string"
               },
-              cid: {
-                type: "string"
-              },
-              indexedAt: {
-                type: "string",
-                format: "date-time"
-              },
-              createdAt: {
-                type: "string",
-                format: "date-time"
-              }
-            }
-          },
-          actor: {
-            type: "object",
-            required: ["did", "declaration", "handle"],
-            properties: {
-              did: {
-                type: "string"
-              },
-              declaration: {
-                $ref: "#/$defs/declaration"
-              },
-              handle: {
-                type: "string"
-              },
-              displayName: {
-                type: "string",
-                maxLength: 64
-              }
-            }
-          },
-          declaration: {
-            type: "object",
-            required: ["cid", "actorType"],
-            properties: {
-              cid: {
-                type: "string"
-              },
-              actorType: {
-                oneOf: [
-                  {
-                    $ref: "#/$defs/actorKnown"
-                  },
-                  {
-                    $ref: "#/$defs/actorUnknown"
-                  }
-                ]
+              assertions: {
+                type: "array",
+                items: {
+                  type: "ref",
+                  ref: "lex:app.bsky.graph.getAssertions#assertion"
+                }
               }
             }
-          },
-          actorKnown: {
-            type: "string",
-            enum: ["app.bsky.system.actorUser", "app.bsky.system.actorScene"]
-          },
-          actorUnknown: {
-            type: "string",
-            not: {
-              enum: ["app.bsky.system.actorUser", "app.bsky.system.actorScene"]
-            }
           }
         }
-      }
-    },
-    defs: {
-      confirmation: {
+      },
+      assertion: {
         type: "object",
-        required: ["uri", "cid", "indexedAt", "createdAt"],
+        required: [
+          "uri",
+          "cid",
+          "assertion",
+          "author",
+          "subject",
+          "indexedAt",
+          "createdAt"
+        ],
         properties: {
           uri: {
             type: "string"
@@ -13514,787 +6513,438 @@ var methodSchemaDict = {
           cid: {
             type: "string"
           },
+          assertion: {
+            type: "string"
+          },
+          confirmation: {
+            type: "ref",
+            ref: "lex:app.bsky.graph.getAssertions#confirmation"
+          },
+          author: {
+            type: "ref",
+            ref: "lex:app.bsky.actor.ref#withInfo"
+          },
+          subject: {
+            type: "ref",
+            ref: "lex:app.bsky.actor.ref#withInfo"
+          },
           indexedAt: {
-            type: "string",
-            format: "date-time"
+            type: "datetime"
           },
           createdAt: {
-            type: "string",
-            format: "date-time"
+            type: "datetime"
           }
         }
       },
-      actor: {
+      confirmation: {
         type: "object",
-        required: ["did", "declaration", "handle"],
+        required: ["uri", "cid", "indexedAt", "createdAt"],
         properties: {
-          did: {
-            type: "string"
-          },
-          declaration: {
-            $ref: "#/$defs/declaration"
-          },
-          handle: {
+          uri: {
             type: "string"
           },
-          displayName: {
-            type: "string",
-            maxLength: 64
-          }
-        }
-      },
-      declaration: {
-        type: "object",
-        required: ["cid", "actorType"],
-        properties: {
           cid: {
             type: "string"
           },
-          actorType: {
-            oneOf: [
-              {
-                $ref: "#/$defs/actorKnown"
-              },
-              {
-                $ref: "#/$defs/actorUnknown"
-              }
-            ]
+          indexedAt: {
+            type: "datetime"
+          },
+          createdAt: {
+            type: "datetime"
           }
         }
-      },
-      actorKnown: {
-        type: "string",
-        enum: ["app.bsky.system.actorUser", "app.bsky.system.actorScene"]
-      },
-      actorUnknown: {
-        type: "string",
-        not: {
-          enum: ["app.bsky.system.actorUser", "app.bsky.system.actorScene"]
-        }
       }
     }
   },
-  "app.bsky.graph.getFollowers": {
+  {
     lexicon: 1,
     id: "app.bsky.graph.getFollowers",
-    type: "query",
-    description: "Who is following a user?",
-    parameters: {
-      type: "object",
-      required: ["user"],
-      properties: {
-        user: {
-          type: "string"
-        },
-        limit: {
-          type: "integer",
-          maximum: 100
+    defs: {
+      main: {
+        type: "query",
+        description: "Who is following a user?",
+        parameters: {
+          type: "params",
+          required: ["user"],
+          properties: {
+            user: {
+              type: "string"
+            },
+            limit: {
+              type: "integer",
+              minimum: 1,
+              maximum: 100,
+              default: 50
+            },
+            before: {
+              type: "string"
+            }
+          }
         },
-        before: {
-          type: "string"
-        }
-      }
-    },
-    output: {
-      encoding: "application/json",
-      schema: {
-        type: "object",
-        required: ["subject", "followers"],
-        properties: {
-          subject: {
+        output: {
+          encoding: "application/json",
+          schema: {
             type: "object",
-            required: ["did", "declaration", "handle"],
+            required: ["subject", "followers"],
             properties: {
-              did: {
-                type: "string"
+              subject: {
+                type: "ref",
+                ref: "lex:app.bsky.graph.getFollowers#subject"
               },
-              declaration: {
-                $ref: "#/$defs/declaration"
-              },
-              handle: {
+              cursor: {
                 type: "string"
               },
-              displayName: {
-                type: "string",
-                maxLength: 64
-              }
-            }
-          },
-          cursor: {
-            type: "string"
-          },
-          followers: {
-            type: "array",
-            items: {
-              type: "object",
-              required: ["did", "declaration", "handle", "indexedAt"],
-              properties: {
-                did: {
-                  type: "string"
-                },
-                declaration: {
-                  $ref: "#/$defs/declaration"
-                },
-                handle: {
-                  type: "string"
-                },
-                displayName: {
-                  type: "string",
-                  maxLength: 64
-                },
-                createdAt: {
-                  type: "string",
-                  format: "date-time"
-                },
-                indexedAt: {
-                  type: "string",
-                  format: "date-time"
+              followers: {
+                type: "array",
+                items: {
+                  type: "ref",
+                  ref: "lex:app.bsky.graph.getFollowers#follower"
                 }
               }
             }
           }
-        },
-        $defs: {
+        }
+      },
+      subject: {
+        type: "object",
+        required: ["did", "declaration", "handle"],
+        properties: {
+          did: {
+            type: "string"
+          },
           declaration: {
-            type: "object",
-            required: ["cid", "actorType"],
-            properties: {
-              cid: {
-                type: "string"
-              },
-              actorType: {
-                oneOf: [
-                  {
-                    $ref: "#/$defs/actorKnown"
-                  },
-                  {
-                    $ref: "#/$defs/actorUnknown"
-                  }
-                ]
-              }
-            }
+            type: "ref",
+            ref: "lex:app.bsky.system.declRef"
           },
-          actorKnown: {
-            type: "string",
-            enum: ["app.bsky.system.actorUser", "app.bsky.system.actorScene"]
+          handle: {
+            type: "string"
           },
-          actorUnknown: {
+          displayName: {
             type: "string",
-            not: {
-              enum: ["app.bsky.system.actorUser", "app.bsky.system.actorScene"]
-            }
+            maxLength: 64
           }
         }
-      }
-    },
-    defs: {
-      declaration: {
+      },
+      follower: {
         type: "object",
-        required: ["cid", "actorType"],
+        required: ["did", "declaration", "handle", "indexedAt"],
         properties: {
-          cid: {
+          did: {
             type: "string"
           },
-          actorType: {
-            oneOf: [
-              {
-                $ref: "#/$defs/actorKnown"
-              },
-              {
-                $ref: "#/$defs/actorUnknown"
-              }
-            ]
+          declaration: {
+            type: "ref",
+            ref: "lex:app.bsky.system.declRef"
+          },
+          handle: {
+            type: "string"
+          },
+          displayName: {
+            type: "string",
+            maxLength: 64
+          },
+          createdAt: {
+            type: "datetime"
+          },
+          indexedAt: {
+            type: "datetime"
           }
         }
-      },
-      actorKnown: {
-        type: "string",
-        enum: ["app.bsky.system.actorUser", "app.bsky.system.actorScene"]
-      },
-      actorUnknown: {
-        type: "string",
-        not: {
-          enum: ["app.bsky.system.actorUser", "app.bsky.system.actorScene"]
-        }
       }
     }
   },
-  "app.bsky.graph.getFollows": {
+  {
     lexicon: 1,
     id: "app.bsky.graph.getFollows",
-    type: "query",
-    description: "Who is a user following?",
-    parameters: {
-      type: "object",
-      required: ["user"],
-      properties: {
-        user: {
-          type: "string"
-        },
-        limit: {
-          type: "integer",
-          maximum: 100
-        },
-        before: {
-          type: "string"
-        }
-      }
-    },
-    output: {
-      encoding: "application/json",
-      schema: {
-        type: "object",
-        required: ["subject", "follows"],
-        properties: {
-          subject: {
-            type: "object",
-            required: ["did", "declaration", "handle"],
-            properties: {
-              did: {
-                type: "string"
-              },
-              declaration: {
-                $ref: "#/$defs/declaration"
-              },
-              handle: {
-                type: "string"
-              },
-              displayName: {
-                type: "string",
-                maxLength: 64
-              }
-            }
-          },
-          cursor: {
-            type: "string"
-          },
-          follows: {
-            type: "array",
-            items: {
-              type: "object",
-              required: ["did", "declaration", "handle", "indexedAt"],
-              properties: {
-                did: {
-                  type: "string"
-                },
-                declaration: {
-                  $ref: "#/$defs/declaration"
-                },
-                handle: {
-                  type: "string"
-                },
-                displayName: {
-                  type: "string",
-                  maxLength: 64
-                },
-                createdAt: {
-                  type: "string",
-                  format: "date-time"
-                },
-                indexedAt: {
-                  type: "string",
-                  format: "date-time"
-                }
-              }
+    defs: {
+      main: {
+        type: "query",
+        description: "Who is a user following?",
+        parameters: {
+          type: "params",
+          required: ["user"],
+          properties: {
+            user: {
+              type: "string"
+            },
+            limit: {
+              type: "integer",
+              minimum: 1,
+              maximum: 100,
+              default: 50
+            },
+            before: {
+              type: "string"
             }
           }
         },
-        $defs: {
-          declaration: {
+        output: {
+          encoding: "application/json",
+          schema: {
             type: "object",
-            required: ["cid", "actorType"],
+            required: ["subject", "follows"],
             properties: {
-              cid: {
+              subject: {
+                type: "ref",
+                ref: "lex:app.bsky.actor.ref#withInfo"
+              },
+              cursor: {
                 type: "string"
               },
-              actorType: {
-                oneOf: [
-                  {
-                    $ref: "#/$defs/actorKnown"
-                  },
-                  {
-                    $ref: "#/$defs/actorUnknown"
-                  }
-                ]
+              follows: {
+                type: "array",
+                items: {
+                  type: "ref",
+                  ref: "lex:app.bsky.graph.getFollows#follow"
+                }
               }
             }
-          },
-          actorKnown: {
-            type: "string",
-            enum: ["app.bsky.system.actorUser", "app.bsky.system.actorScene"]
-          },
-          actorUnknown: {
-            type: "string",
-            not: {
-              enum: ["app.bsky.system.actorUser", "app.bsky.system.actorScene"]
-            }
           }
         }
-      }
-    },
-    defs: {
-      declaration: {
+      },
+      follow: {
         type: "object",
-        required: ["cid", "actorType"],
+        required: ["did", "declaration", "handle", "indexedAt"],
         properties: {
-          cid: {
+          did: {
             type: "string"
           },
-          actorType: {
-            oneOf: [
-              {
-                $ref: "#/$defs/actorKnown"
-              },
-              {
-                $ref: "#/$defs/actorUnknown"
-              }
-            ]
+          declaration: {
+            type: "ref",
+            ref: "lex:app.bsky.system.declRef"
+          },
+          handle: {
+            type: "string"
+          },
+          displayName: {
+            type: "string",
+            maxLength: 64
+          },
+          createdAt: {
+            type: "datetime"
+          },
+          indexedAt: {
+            type: "datetime"
           }
         }
-      },
-      actorKnown: {
-        type: "string",
-        enum: ["app.bsky.system.actorUser", "app.bsky.system.actorScene"]
-      },
-      actorUnknown: {
-        type: "string",
-        not: {
-          enum: ["app.bsky.system.actorUser", "app.bsky.system.actorScene"]
-        }
       }
     }
   },
-  "app.bsky.graph.getMembers": {
+  {
     lexicon: 1,
     id: "app.bsky.graph.getMembers",
-    type: "query",
-    description: "Who is a member of the group?",
-    parameters: {
-      type: "object",
-      required: ["actor"],
-      properties: {
-        actor: {
-          type: "string"
-        },
-        limit: {
-          type: "integer",
-          maximum: 100
-        },
-        before: {
-          type: "string"
-        }
-      }
-    },
-    output: {
-      encoding: "application/json",
-      schema: {
-        type: "object",
-        required: ["subject", "members"],
-        properties: {
-          subject: {
-            type: "object",
-            required: ["did", "declaration", "handle"],
-            properties: {
-              did: {
-                type: "string"
-              },
-              declaration: {
-                $ref: "#/$defs/declaration"
-              },
-              handle: {
-                type: "string"
-              },
-              displayName: {
-                type: "string",
-                maxLength: 64
-              }
-            }
-          },
-          cursor: {
-            type: "string"
-          },
-          members: {
-            type: "array",
-            items: {
-              type: "object",
-              required: ["did", "declaration", "handle", "indexedAt"],
-              properties: {
-                did: {
-                  type: "string"
-                },
-                declaration: {
-                  $ref: "#/$defs/declaration"
-                },
-                handle: {
-                  type: "string"
-                },
-                displayName: {
-                  type: "string",
-                  maxLength: 64
-                },
-                createdAt: {
-                  type: "string",
-                  format: "date-time"
-                },
-                indexedAt: {
-                  type: "string",
-                  format: "date-time"
-                }
-              }
+    defs: {
+      main: {
+        type: "query",
+        description: "Who is a member of the group?",
+        parameters: {
+          type: "params",
+          required: ["actor"],
+          properties: {
+            actor: {
+              type: "string"
+            },
+            limit: {
+              type: "integer",
+              minimum: 1,
+              maximum: 100,
+              default: 50
+            },
+            before: {
+              type: "string"
             }
           }
         },
-        $defs: {
-          declaration: {
+        output: {
+          encoding: "application/json",
+          schema: {
             type: "object",
-            required: ["cid", "actorType"],
+            required: ["subject", "members"],
             properties: {
-              cid: {
+              subject: {
+                type: "ref",
+                ref: "lex:app.bsky.actor.ref#withInfo"
+              },
+              cursor: {
                 type: "string"
               },
-              actorType: {
-                oneOf: [
-                  {
-                    $ref: "#/$defs/actorKnown"
-                  },
-                  {
-                    $ref: "#/$defs/actorUnknown"
-                  }
-                ]
+              members: {
+                type: "array",
+                items: {
+                  type: "ref",
+                  ref: "lex:app.bsky.graph.getMembers#member"
+                }
               }
             }
-          },
-          actorKnown: {
-            type: "string",
-            enum: ["app.bsky.system.actorUser", "app.bsky.system.actorScene"]
-          },
-          actorUnknown: {
-            type: "string",
-            not: {
-              enum: ["app.bsky.system.actorUser", "app.bsky.system.actorScene"]
-            }
           }
         }
-      }
-    },
-    defs: {
-      declaration: {
+      },
+      member: {
         type: "object",
-        required: ["cid", "actorType"],
+        required: ["did", "declaration", "handle", "indexedAt"],
         properties: {
-          cid: {
+          did: {
             type: "string"
           },
-          actorType: {
-            oneOf: [
-              {
-                $ref: "#/$defs/actorKnown"
-              },
-              {
-                $ref: "#/$defs/actorUnknown"
-              }
-            ]
+          declaration: {
+            type: "ref",
+            ref: "lex:app.bsky.system.declRef"
+          },
+          handle: {
+            type: "string"
+          },
+          displayName: {
+            type: "string",
+            maxLength: 64
+          },
+          createdAt: {
+            type: "datetime"
+          },
+          indexedAt: {
+            type: "datetime"
           }
         }
-      },
-      actorKnown: {
-        type: "string",
-        enum: ["app.bsky.system.actorUser", "app.bsky.system.actorScene"]
-      },
-      actorUnknown: {
-        type: "string",
-        not: {
-          enum: ["app.bsky.system.actorUser", "app.bsky.system.actorScene"]
-        }
       }
     }
   },
-  "app.bsky.graph.getMemberships": {
+  {
     lexicon: 1,
     id: "app.bsky.graph.getMemberships",
-    type: "query",
-    description: "Which groups is the actor a member of?",
-    parameters: {
-      type: "object",
-      required: ["actor"],
-      properties: {
-        actor: {
-          type: "string"
-        },
-        limit: {
-          type: "integer",
-          maximum: 100
-        },
-        before: {
-          type: "string"
-        }
-      }
-    },
-    output: {
-      encoding: "application/json",
-      schema: {
-        type: "object",
-        required: ["subject", "memberships"],
-        properties: {
-          subject: {
-            type: "object",
-            required: ["did", "declaration", "handle"],
-            properties: {
-              did: {
-                type: "string"
-              },
-              declaration: {
-                $ref: "#/$defs/declaration"
-              },
-              handle: {
-                type: "string"
-              },
-              displayName: {
-                type: "string",
-                maxLength: 64
-              }
-            }
-          },
-          cursor: {
-            type: "string"
-          },
-          memberships: {
-            type: "array",
-            items: {
-              type: "object",
-              required: ["did", "declaration", "handle", "indexedAt"],
-              properties: {
-                did: {
-                  type: "string"
-                },
-                declaration: {
-                  $ref: "#/$defs/declaration"
-                },
-                handle: {
-                  type: "string"
-                },
-                displayName: {
-                  type: "string",
-                  maxLength: 64
-                },
-                createdAt: {
-                  type: "string",
-                  format: "date-time"
-                },
-                indexedAt: {
-                  type: "string",
-                  format: "date-time"
-                }
-              }
+    defs: {
+      main: {
+        type: "query",
+        description: "Which groups is the actor a member of?",
+        parameters: {
+          type: "params",
+          required: ["actor"],
+          properties: {
+            actor: {
+              type: "string"
+            },
+            limit: {
+              type: "integer",
+              minimum: 1,
+              maximum: 100,
+              default: 50
+            },
+            before: {
+              type: "string"
             }
           }
         },
-        $defs: {
-          declaration: {
+        output: {
+          encoding: "application/json",
+          schema: {
             type: "object",
-            required: ["cid", "actorType"],
+            required: ["subject", "memberships"],
             properties: {
-              cid: {
+              subject: {
+                type: "ref",
+                ref: "lex:app.bsky.actor.ref#withInfo"
+              },
+              cursor: {
                 type: "string"
               },
-              actorType: {
-                oneOf: [
-                  {
-                    $ref: "#/$defs/actorKnown"
-                  },
-                  {
-                    $ref: "#/$defs/actorUnknown"
-                  }
-                ]
+              memberships: {
+                type: "array",
+                items: {
+                  type: "ref",
+                  ref: "lex:app.bsky.graph.getMemberships#membership"
+                }
               }
             }
-          },
-          actorKnown: {
-            type: "string",
-            enum: ["app.bsky.system.actorUser", "app.bsky.system.actorScene"]
-          },
-          actorUnknown: {
-            type: "string",
-            not: {
-              enum: ["app.bsky.system.actorUser", "app.bsky.system.actorScene"]
-            }
           }
         }
-      }
-    },
-    defs: {
-      declaration: {
+      },
+      membership: {
         type: "object",
-        required: ["cid", "actorType"],
+        required: ["did", "declaration", "handle", "indexedAt"],
         properties: {
-          cid: {
+          did: {
             type: "string"
           },
-          actorType: {
-            oneOf: [
-              {
-                $ref: "#/$defs/actorKnown"
-              },
-              {
-                $ref: "#/$defs/actorUnknown"
-              }
-            ]
+          declaration: {
+            type: "ref",
+            ref: "lex:app.bsky.system.declRef"
+          },
+          handle: {
+            type: "string"
+          },
+          displayName: {
+            type: "string",
+            maxLength: 64
+          },
+          createdAt: {
+            type: "datetime"
+          },
+          indexedAt: {
+            type: "datetime"
           }
         }
-      },
-      actorKnown: {
-        type: "string",
-        enum: ["app.bsky.system.actorUser", "app.bsky.system.actorScene"]
-      },
-      actorUnknown: {
-        type: "string",
-        not: {
-          enum: ["app.bsky.system.actorUser", "app.bsky.system.actorScene"]
-        }
       }
     }
   },
-  "app.bsky.notification.getCount": {
+  {
     lexicon: 1,
     id: "app.bsky.notification.getCount",
-    type: "query",
-    output: {
-      encoding: "application/json",
-      schema: {
-        type: "object",
-        required: ["count"],
-        properties: {
-          count: {
-            type: "integer"
+    defs: {
+      main: {
+        type: "query",
+        output: {
+          encoding: "application/json",
+          schema: {
+            type: "object",
+            required: ["count"],
+            properties: {
+              count: {
+                type: "integer"
+              }
+            }
           }
-        },
-        $defs: {}
+        }
       }
     }
   },
-  "app.bsky.notification.list": {
+  {
     lexicon: 1,
     id: "app.bsky.notification.list",
-    type: "query",
-    parameters: {
-      type: "object",
-      properties: {
-        limit: {
-          type: "integer",
-          maximum: 100
-        },
-        before: {
-          type: "string"
-        }
-      }
-    },
-    output: {
-      encoding: "application/json",
-      schema: {
-        type: "object",
-        required: ["notifications"],
-        properties: {
-          cursor: {
-            type: "string"
-          },
-          notifications: {
-            type: "array",
-            items: {
-              $ref: "#/$defs/notification"
+    defs: {
+      main: {
+        type: "query",
+        parameters: {
+          type: "params",
+          properties: {
+            limit: {
+              type: "integer",
+              minimum: 1,
+              maximum: 100,
+              default: 50
+            },
+            before: {
+              type: "string"
             }
           }
         },
-        $defs: {
-          notification: {
+        output: {
+          encoding: "application/json",
+          schema: {
             type: "object",
-            required: [
-              "uri",
-              "cid",
-              "author",
-              "reason",
-              "record",
-              "isRead",
-              "indexedAt"
-            ],
+            required: ["notifications"],
             properties: {
-              uri: {
-                type: "string",
-                format: "uri"
-              },
-              cid: {
+              cursor: {
                 type: "string"
               },
-              author: {
-                type: "object",
-                required: ["did", "declaration", "handle"],
-                properties: {
-                  did: {
-                    type: "string"
-                  },
-                  declaration: {
-                    $ref: "#/$defs/declaration"
-                  },
-                  handle: {
-                    type: "string"
-                  },
-                  displayName: {
-                    type: "string",
-                    maxLength: 64
-                  }
+              notifications: {
+                type: "array",
+                items: {
+                  type: "ref",
+                  ref: "lex:app.bsky.notification.list#notification"
                 }
-              },
-              reason: {
-                type: "string",
-                $comment: "Expected values are 'vote', 'repost', 'trend', 'follow', 'invite', 'mention' and 'reply'."
-              },
-              reasonSubject: {
-                type: "string"
-              },
-              record: {
-                type: "object"
-              },
-              isRead: {
-                type: "boolean"
-              },
-              indexedAt: {
-                type: "string",
-                format: "date-time"
               }
             }
-          },
-          declaration: {
-            type: "object",
-            required: ["cid", "actorType"],
-            properties: {
-              cid: {
-                type: "string"
-              },
-              actorType: {
-                oneOf: [
-                  {
-                    $ref: "#/$defs/actorKnown"
-                  },
-                  {
-                    $ref: "#/$defs/actorUnknown"
-                  }
-                ]
-              }
-            }
-          },
-          actorKnown: {
-            type: "string",
-            enum: ["app.bsky.system.actorUser", "app.bsky.system.actorScene"]
-          },
-          actorUnknown: {
-            type: "string",
-            not: {
-              enum: ["app.bsky.system.actorUser", "app.bsky.system.actorScene"]
-            }
           }
         }
-      }
-    },
-    defs: {
+      },
       notification: {
         type: "object",
         required: [
@@ -14308,631 +6958,134 @@ var methodSchemaDict = {
         ],
         properties: {
           uri: {
-            type: "string",
-            format: "uri"
+            type: "string"
           },
           cid: {
             type: "string"
           },
           author: {
-            type: "object",
-            required: ["did", "declaration", "handle"],
-            properties: {
-              did: {
-                type: "string"
-              },
-              declaration: {
-                $ref: "#/$defs/declaration"
-              },
-              handle: {
-                type: "string"
-              },
-              displayName: {
-                type: "string",
-                maxLength: 64
-              }
-            }
+            type: "ref",
+            ref: "lex:app.bsky.actor.ref#withInfo"
           },
           reason: {
             type: "string",
-            $comment: "Expected values are 'vote', 'repost', 'trend', 'follow', 'invite', 'mention' and 'reply'."
+            description: "Expected values are 'vote', 'repost', 'trend', 'follow', 'invite', 'mention' and 'reply'.",
+            knownValues: [
+              "vote",
+              "repost",
+              "trend",
+              "follow",
+              "invite",
+              "mention",
+              "reply"
+            ]
           },
           reasonSubject: {
             type: "string"
           },
           record: {
-            type: "object"
+            type: "unknown"
           },
           isRead: {
             type: "boolean"
           },
           indexedAt: {
-            type: "string",
-            format: "date-time"
-          }
-        }
-      },
-      declaration: {
-        type: "object",
-        required: ["cid", "actorType"],
-        properties: {
-          cid: {
-            type: "string"
-          },
-          actorType: {
-            oneOf: [
-              {
-                $ref: "#/$defs/actorKnown"
-              },
-              {
-                $ref: "#/$defs/actorUnknown"
-              }
-            ]
+            type: "datetime"
           }
         }
-      },
-      actorKnown: {
-        type: "string",
-        enum: ["app.bsky.system.actorUser", "app.bsky.system.actorScene"]
-      },
-      actorUnknown: {
-        type: "string",
-        not: {
-          enum: ["app.bsky.system.actorUser", "app.bsky.system.actorScene"]
-        }
       }
     }
   },
-  "app.bsky.notification.updateSeen": {
+  {
     lexicon: 1,
     id: "app.bsky.notification.updateSeen",
-    type: "procedure",
-    description: "Notify server that the user has seen notifications.",
-    input: {
-      encoding: "application/json",
-      schema: {
-        type: "object",
-        required: ["seenAt"],
-        properties: {
-          seenAt: {
-            type: "string",
-            format: "date-time"
-          }
-        },
-        $defs: {}
-      }
-    },
-    output: {
-      encoding: "application/json",
-      schema: {
-        $defs: {}
-      }
-    }
-  }
-};
-var methodSchemas = Object.values(methodSchemaDict);
-var recordSchemaDict = {
-  "app.bsky.actor.profile": {
-    lexicon: 1,
-    id: "app.bsky.actor.profile",
-    type: "record",
-    key: "literal:self",
-    record: {
-      type: "object",
-      required: ["displayName"],
-      properties: {
-        displayName: {
-          type: "string",
-          maxLength: 64
-        },
-        description: {
-          type: "string",
-          maxLength: 256
-        }
-      },
-      $defs: {}
-    }
-  },
-  "app.bsky.feed.mediaEmbed": {
-    lexicon: 1,
-    id: "app.bsky.feed.mediaEmbed",
-    type: "record",
-    description: "A list of media embedded in a post or document.",
-    key: "tid",
-    record: {
-      type: "object",
-      required: ["media"],
-      properties: {
-        media: {
-          type: "array",
-          items: {
-            $ref: "#/$defs/mediaEmbed"
-          }
-        }
-      },
-      $defs: {
-        mediaEmbed: {
-          type: "object",
-          required: ["original"],
-          properties: {
-            alt: {
-              type: "string"
-            },
-            thumb: {
-              $ref: "#/$defs/mediaEmbedBlob"
-            },
-            original: {
-              $ref: "#/$defs/mediaEmbedBlob"
-            }
-          }
-        },
-        mediaEmbedBlob: {
-          type: "object",
-          required: ["mimeType", "blobId"],
-          properties: {
-            mimeType: {
-              type: "string"
-            },
-            blobId: {
-              type: "string"
-            }
-          }
-        }
-      }
-    },
     defs: {
-      mediaEmbed: {
-        type: "object",
-        required: ["original"],
-        properties: {
-          alt: {
-            type: "string"
-          },
-          thumb: {
-            $ref: "#/$defs/mediaEmbedBlob"
-          },
-          original: {
-            $ref: "#/$defs/mediaEmbedBlob"
-          }
-        }
-      },
-      mediaEmbedBlob: {
-        type: "object",
-        required: ["mimeType", "blobId"],
-        properties: {
-          mimeType: {
-            type: "string"
-          },
-          blobId: {
-            type: "string"
-          }
-        }
-      }
-    }
-  },
-  "app.bsky.feed.post": {
-    lexicon: 1,
-    id: "app.bsky.feed.post",
-    type: "record",
-    key: "tid",
-    record: {
-      type: "object",
-      required: ["text", "createdAt"],
-      properties: {
-        text: {
-          type: "string",
-          maxLength: 256
-        },
-        entities: {
-          type: "array",
-          items: {
-            $ref: "#/$defs/entity"
-          }
-        },
-        reply: {
-          type: "object",
-          required: ["root", "parent"],
-          properties: {
-            root: {
-              $ref: "#/$defs/postRef"
-            },
-            parent: {
-              $ref: "#/$defs/postRef"
-            }
-          }
-        },
-        createdAt: {
-          type: "string",
-          format: "date-time"
-        }
-      },
-      $defs: {
-        entity: {
-          type: "object",
-          required: ["index", "type", "value"],
-          properties: {
-            index: {
-              $ref: "#/$defs/textSlice"
-            },
-            type: {
-              type: "string",
-              $comment: "Expected values are 'mention', 'hashtag', and 'link'."
-            },
-            value: {
-              type: "string"
-            }
-          }
-        },
-        textSlice: {
-          type: "object",
-          required: ["start", "end"],
-          properties: {
-            start: {
-              type: "integer",
-              minimum: 0
-            },
-            end: {
-              type: "integer",
-              minimum: 0
-            }
-          }
-        },
-        postRef: {
-          type: "object",
-          required: ["uri", "cid"],
-          properties: {
-            uri: {
-              type: "string"
-            },
-            cid: {
-              type: "string"
+      main: {
+        type: "procedure",
+        description: "Notify server that the user has seen notifications.",
+        input: {
+          encoding: "application/json",
+          schema: {
+            type: "object",
+            required: ["seenAt"],
+            properties: {
+              seenAt: {
+                type: "datetime"
+              }
             }
           }
         }
       }
-    },
-    defs: {
-      postRef: {
-        type: "object",
-        required: ["uri", "cid"],
-        properties: {
-          uri: {
-            type: "string"
-          },
-          cid: {
-            type: "string"
-          }
-        }
-      },
-      entity: {
-        type: "object",
-        required: ["index", "type", "value"],
-        properties: {
-          index: {
-            $ref: "#/$defs/textSlice"
-          },
-          type: {
-            type: "string",
-            $comment: "Expected values are 'mention', 'hashtag', and 'link'."
-          },
-          value: {
-            type: "string"
-          }
-        }
-      },
-      textSlice: {
-        type: "object",
-        required: ["start", "end"],
-        properties: {
-          start: {
-            type: "integer",
-            minimum: 0
-          },
-          end: {
-            type: "integer",
-            minimum: 0
-          }
-        }
-      }
     }
   },
-  "app.bsky.feed.repost": {
+  {
     lexicon: 1,
-    id: "app.bsky.feed.repost",
-    type: "record",
-    key: "tid",
-    record: {
-      type: "object",
-      required: ["subject", "createdAt"],
-      properties: {
-        subject: {
-          $ref: "#/$defs/subject"
-        },
-        createdAt: {
-          type: "string",
-          format: "date-time"
-        }
-      },
-      $defs: {
-        subject: {
-          type: "object",
-          required: ["uri", "cid"],
-          properties: {
-            uri: {
-              type: "string"
-            },
-            cid: {
-              type: "string"
-            }
-          }
-        }
-      }
-    },
+    id: "app.bsky.system.actorScene",
     defs: {
-      subject: {
-        type: "object",
-        required: ["uri", "cid"],
-        properties: {
-          uri: {
-            type: "string"
-          },
-          cid: {
-            type: "string"
-          }
-        }
+      main: {
+        type: "token",
+        description: "Actor type: Scene. Defined for app.bsky.system.declaration's actorType."
       }
     }
   },
-  "app.bsky.feed.trend": {
+  {
     lexicon: 1,
-    id: "app.bsky.feed.trend",
-    type: "record",
-    key: "tid",
-    record: {
-      type: "object",
-      required: ["subject", "createdAt"],
-      properties: {
-        subject: {
-          $ref: "#/$defs/subject"
-        },
-        createdAt: {
-          type: "string",
-          format: "date-time"
-        }
-      },
-      $defs: {
-        subject: {
-          type: "object",
-          required: ["uri", "cid"],
-          properties: {
-            uri: {
-              type: "string"
-            },
-            cid: {
-              type: "string"
-            }
-          }
-        }
-      }
-    },
+    id: "app.bsky.system.actorUser",
     defs: {
-      subject: {
-        type: "object",
-        required: ["uri", "cid"],
-        properties: {
-          uri: {
-            type: "string"
-          },
-          cid: {
-            type: "string"
-          }
-        }
+      main: {
+        type: "token",
+        description: "Actor type: User. Defined for app.bsky.system.declaration's actorType."
       }
     }
   },
-  "app.bsky.feed.vote": {
+  {
     lexicon: 1,
-    id: "app.bsky.feed.vote",
-    type: "record",
-    key: "tid",
-    record: {
-      type: "object",
-      required: ["subject", "direction", "createdAt"],
-      properties: {
-        subject: {
-          $ref: "#/$defs/subject"
-        },
-        direction: {
-          type: "string",
-          enum: ["up", "down"]
-        },
-        createdAt: {
-          type: "string",
-          format: "date-time"
-        }
-      },
-      $defs: {
-        subject: {
-          type: "object",
-          required: ["uri", "cid"],
-          properties: {
-            uri: {
-              type: "string"
-            },
-            cid: {
-              type: "string"
-            }
-          }
-        }
-      }
-    },
+    id: "app.bsky.system.declRef",
     defs: {
-      subject: {
+      main: {
+        description: "A reference to a app.bsky.system.declaration record.",
         type: "object",
-        required: ["uri", "cid"],
+        required: ["cid", "actorType"],
         properties: {
-          uri: {
-            type: "string"
-          },
           cid: {
             type: "string"
+          },
+          actorType: {
+            type: "string",
+            knownValues: [
+              "app.bsky.system.actorUser",
+              "app.bsky.system.actorScene"
+            ]
           }
         }
       }
     }
   },
-  "app.bsky.graph.assertion": {
+  {
     lexicon: 1,
-    id: "app.bsky.graph.assertion",
-    type: "record",
-    key: "tid",
-    record: {
-      type: "object",
-      required: ["assertion", "subject", "createdAt"],
-      properties: {
-        assertion: {
-          type: "string"
-        },
-        subject: {
-          type: "object",
-          required: ["did", "declarationCid"],
-          properties: {
-            did: {
-              type: "string"
-            },
-            declarationCid: {
-              type: "string"
-            }
-          }
-        },
-        createdAt: {
-          type: "string",
-          format: "date-time"
-        }
-      },
-      $defs: {}
-    }
-  },
-  "app.bsky.graph.confirmation": {
-    lexicon: 1,
-    id: "app.bsky.graph.confirmation",
-    type: "record",
-    key: "tid",
-    record: {
-      type: "object",
-      required: ["originator", "assertion", "createdAt"],
-      properties: {
-        originator: {
-          type: "object",
-          required: ["did", "declarationCid"],
-          properties: {
-            did: {
-              type: "string"
-            },
-            declarationCid: {
-              type: "string"
-            }
-          }
-        },
-        assertion: {
-          type: "object",
-          required: ["uri", "cid"],
-          properties: {
-            uri: {
-              type: "string"
-            },
-            cid: {
-              type: "string"
-            }
-          }
-        },
-        createdAt: {
-          type: "string",
-          format: "date-time"
-        }
-      },
-      $defs: {}
-    }
-  },
-  "app.bsky.graph.follow": {
-    lexicon: 1,
-    id: "app.bsky.graph.follow",
-    type: "record",
-    description: "A social follow.",
-    key: "tid",
-    record: {
-      type: "object",
-      required: ["subject", "createdAt"],
-      properties: {
-        subject: {
+    id: "app.bsky.system.declaration",
+    defs: {
+      main: {
+        description: "Context for an account that is considered intrinsic to it and alters the fundamental understanding of an account of changed. A declaration should be treated as immutable.",
+        type: "record",
+        key: "literal:self",
+        record: {
           type: "object",
-          required: ["did", "declarationCid"],
+          required: ["actorType"],
           properties: {
-            did: {
-              type: "string"
-            },
-            declarationCid: {
-              type: "string"
-            }
-          }
-        },
-        createdAt: {
-          type: "string",
-          format: "date-time"
-        }
-      },
-      $defs: {}
-    }
-  },
-  "app.bsky.system.declaration": {
-    lexicon: 1,
-    id: "app.bsky.system.declaration",
-    description: "Context for an account that is considered intrinsic to it and alters the fundamental understanding of an account of changed. A declaration should be treated as immutable.",
-    type: "record",
-    key: "literal:self",
-    record: {
-      type: "object",
-      required: ["actorType"],
-      properties: {
-        actorType: {
-          oneOf: [
-            {
-              $ref: "#/$defs/actorKnown"
-            },
-            {
-              $ref: "#/$defs/actorUnknown"
+            actorType: {
+              type: "string",
+              knownValues: [
+                "app.bsky.system.actorUser",
+                "app.bsky.system.actorScene"
+              ]
             }
-          ]
-        }
-      },
-      $defs: {
-        actorKnown: {
-          type: "string",
-          enum: ["app.bsky.system.actorUser", "app.bsky.system.actorScene"]
-        },
-        actorUnknown: {
-          type: "string",
-          not: {
-            enum: ["app.bsky.system.actorUser", "app.bsky.system.actorScene"]
           }
         }
       }
-    },
-    defs: {
-      actorKnown: {
-        type: "string",
-        enum: ["app.bsky.system.actorUser", "app.bsky.system.actorScene"]
-      },
-      actorUnknown: {
-        type: "string",
-        not: {
-          enum: ["app.bsky.system.actorUser", "app.bsky.system.actorScene"]
-        }
-      }
     }
   }
-};
-var recordSchemas = Object.values(recordSchemaDict);
+];
 
 // src/client/types/com/atproto/account/create.ts
 var create_exports = {};
@@ -15468,11 +7621,17 @@ function toKnownErr42(e) {
   return e;
 }
 
+// src/client/types/com/atproto/repo/strongRef.ts
+var strongRef_exports = {};
+
 // src/client/types/app/bsky/actor/profile.ts
 var profile_exports = {};
 
-// src/client/types/app/bsky/feed/mediaEmbed.ts
-var mediaEmbed_exports = {};
+// src/client/types/app/bsky/actor/ref.ts
+var ref_exports = {};
+
+// src/client/types/app/bsky/feed/embed.ts
+var embed_exports = {};
 
 // src/client/types/app/bsky/feed/post.ts
 var post_exports = {};
@@ -15486,6 +7645,20 @@ var trend_exports = {};
 // src/client/types/app/bsky/feed/vote.ts
 var vote_exports = {};
 
+// src/client/types/app/bsky/graph/assertCreator.ts
+var assertCreator_exports = {};
+__export(assertCreator_exports, {
+  MAIN: () => MAIN
+});
+var MAIN = "app.bsky.graph.assertCreator#main";
+
+// src/client/types/app/bsky/graph/assertMember.ts
+var assertMember_exports = {};
+__export(assertMember_exports, {
+  MAIN: () => MAIN2
+});
+var MAIN2 = "app.bsky.graph.assertMember#main";
+
 // src/client/types/app/bsky/graph/assertion.ts
 var assertion_exports = {};
 
@@ -15495,6 +7668,23 @@ var confirmation_exports = {};
 // src/client/types/app/bsky/graph/follow.ts
 var follow_exports = {};
 
+// src/client/types/app/bsky/system/actorScene.ts
+var actorScene_exports = {};
+__export(actorScene_exports, {
+  MAIN: () => MAIN3
+});
+var MAIN3 = "app.bsky.system.actorScene#main";
+
+// src/client/types/app/bsky/system/actorUser.ts
+var actorUser_exports = {};
+__export(actorUser_exports, {
+  MAIN: () => MAIN4
+});
+var MAIN4 = "app.bsky.system.actorUser#main";
+
+// src/client/types/app/bsky/system/declRef.ts
+var declRef_exports = {};
+
 // src/client/types/app/bsky/system/declaration.ts
 var declaration_exports = {};
 
@@ -15510,7 +7700,7 @@ var APP_BSKY_SYSTEM = {
 var Client2 = class {
   constructor() {
     this.xrpc = new Client();
-    this.xrpc.addSchemas(methodSchemas);
+    this.xrpc.addLexicons(lexicons);
   }
   service(serviceUri) {
     return new ServiceClient2(this, this.xrpc.service(serviceUri));
@@ -15565,8 +7755,8 @@ var AccountNS = class {
       throw toKnownErr3(e);
     });
   }
-  get(params, opts) {
-    return this._service.xrpc.call("com.atproto.account.get", params, void 0, opts).catch((e) => {
+  get(params2, opts) {
+    return this._service.xrpc.call("com.atproto.account.get", params2, void 0, opts).catch((e) => {
       throw toKnownErr4(e);
     });
   }
@@ -15585,8 +7775,8 @@ var HandleNS = class {
   constructor(service) {
     this._service = service;
   }
-  resolve(params, opts) {
-    return this._service.xrpc.call("com.atproto.handle.resolve", params, void 0, opts).catch((e) => {
+  resolve(params2, opts) {
+    return this._service.xrpc.call("com.atproto.handle.resolve", params2, void 0, opts).catch((e) => {
       throw toKnownErr7(e);
     });
   }
@@ -15610,18 +7800,18 @@ var RepoNS = class {
       throw toKnownErr10(e);
     });
   }
-  describe(params, opts) {
-    return this._service.xrpc.call("com.atproto.repo.describe", params, void 0, opts).catch((e) => {
+  describe(params2, opts) {
+    return this._service.xrpc.call("com.atproto.repo.describe", params2, void 0, opts).catch((e) => {
       throw toKnownErr11(e);
     });
   }
-  getRecord(params, opts) {
-    return this._service.xrpc.call("com.atproto.repo.getRecord", params, void 0, opts).catch((e) => {
+  getRecord(params2, opts) {
+    return this._service.xrpc.call("com.atproto.repo.getRecord", params2, void 0, opts).catch((e) => {
       throw toKnownErr12(e);
     });
   }
-  listRecords(params, opts) {
-    return this._service.xrpc.call("com.atproto.repo.listRecords", params, void 0, opts).catch((e) => {
+  listRecords(params2, opts) {
+    return this._service.xrpc.call("com.atproto.repo.listRecords", params2, void 0, opts).catch((e) => {
       throw toKnownErr13(e);
     });
   }
@@ -15635,8 +7825,8 @@ var ServerNS = class {
   constructor(service) {
     this._service = service;
   }
-  getAccountsConfig(params, opts) {
-    return this._service.xrpc.call("com.atproto.server.getAccountsConfig", params, void 0, opts).catch((e) => {
+  getAccountsConfig(params2, opts) {
+    return this._service.xrpc.call("com.atproto.server.getAccountsConfig", params2, void 0, opts).catch((e) => {
       throw toKnownErr15(e);
     });
   }
@@ -15655,8 +7845,8 @@ var SessionNS = class {
       throw toKnownErr17(e);
     });
   }
-  get(params, opts) {
-    return this._service.xrpc.call("com.atproto.session.get", params, void 0, opts).catch((e) => {
+  get(params2, opts) {
+    return this._service.xrpc.call("com.atproto.session.get", params2, void 0, opts).catch((e) => {
       throw toKnownErr18(e);
     });
   }
@@ -15670,13 +7860,13 @@ var SyncNS = class {
   constructor(service) {
     this._service = service;
   }
-  getRepo(params, opts) {
-    return this._service.xrpc.call("com.atproto.sync.getRepo", params, void 0, opts).catch((e) => {
+  getRepo(params2, opts) {
+    return this._service.xrpc.call("com.atproto.sync.getRepo", params2, void 0, opts).catch((e) => {
       throw toKnownErr20(e);
     });
   }
-  getRoot(params, opts) {
-    return this._service.xrpc.call("com.atproto.sync.getRoot", params, void 0, opts).catch((e) => {
+  getRoot(params2, opts) {
+    return this._service.xrpc.call("com.atproto.sync.getRoot", params2, void 0, opts).catch((e) => {
       throw toKnownErr21(e);
     });
   }
@@ -15712,23 +7902,23 @@ var ActorNS = class {
       throw toKnownErr23(e);
     });
   }
-  getProfile(params, opts) {
-    return this._service.xrpc.call("app.bsky.actor.getProfile", params, void 0, opts).catch((e) => {
+  getProfile(params2, opts) {
+    return this._service.xrpc.call("app.bsky.actor.getProfile", params2, void 0, opts).catch((e) => {
       throw toKnownErr24(e);
     });
   }
-  getSuggestions(params, opts) {
-    return this._service.xrpc.call("app.bsky.actor.getSuggestions", params, void 0, opts).catch((e) => {
+  getSuggestions(params2, opts) {
+    return this._service.xrpc.call("app.bsky.actor.getSuggestions", params2, void 0, opts).catch((e) => {
       throw toKnownErr25(e);
     });
   }
-  search(params, opts) {
-    return this._service.xrpc.call("app.bsky.actor.search", params, void 0, opts).catch((e) => {
+  search(params2, opts) {
+    return this._service.xrpc.call("app.bsky.actor.search", params2, void 0, opts).catch((e) => {
       throw toKnownErr26(e);
     });
   }
-  searchTypeahead(params, opts) {
-    return this._service.xrpc.call("app.bsky.actor.searchTypeahead", params, void 0, opts).catch((e) => {
+  searchTypeahead(params2, opts) {
+    return this._service.xrpc.call("app.bsky.actor.searchTypeahead", params2, void 0, opts).catch((e) => {
       throw toKnownErr27(e);
     });
   }
@@ -15742,35 +7932,35 @@ var ProfileRecord = class {
   constructor(service) {
     this._service = service;
   }
-  async list(params) {
+  async list(params2) {
     const res = await this._service.xrpc.call("com.atproto.repo.listRecords", {
       collection: "app.bsky.actor.profile",
-      ...params
+      ...params2
     });
     return res.data;
   }
-  async get(params) {
+  async get(params2) {
     const res = await this._service.xrpc.call("com.atproto.repo.getRecord", {
       collection: "app.bsky.actor.profile",
-      ...params
+      ...params2
     });
     return res.data;
   }
-  async create(params, record, headers) {
+  async create(params2, record, headers) {
     record.$type = "app.bsky.actor.profile";
     const res = await this._service.xrpc.call(
       "com.atproto.repo.createRecord",
       void 0,
-      { collection: "app.bsky.actor.profile", ...params, record },
+      { collection: "app.bsky.actor.profile", ...params2, record },
       { encoding: "application/json", headers }
     );
     return res.data;
   }
-  async delete(params, headers) {
+  async delete(params2, headers) {
     await this._service.xrpc.call(
       "com.atproto.repo.deleteRecord",
       void 0,
-      { collection: "app.bsky.actor.profile", ...params },
+      { collection: "app.bsky.actor.profile", ...params2 },
       { headers }
     );
   }
@@ -15778,34 +7968,33 @@ var ProfileRecord = class {
 var FeedNS = class {
   constructor(service) {
     this._service = service;
-    this.mediaEmbed = new MediaEmbedRecord(service);
     this.post = new PostRecord(service);
     this.repost = new RepostRecord(service);
     this.trend = new TrendRecord(service);
     this.vote = new VoteRecord(service);
   }
-  getAuthorFeed(params, opts) {
-    return this._service.xrpc.call("app.bsky.feed.getAuthorFeed", params, void 0, opts).catch((e) => {
+  getAuthorFeed(params2, opts) {
+    return this._service.xrpc.call("app.bsky.feed.getAuthorFeed", params2, void 0, opts).catch((e) => {
       throw toKnownErr29(e);
     });
   }
-  getPostThread(params, opts) {
-    return this._service.xrpc.call("app.bsky.feed.getPostThread", params, void 0, opts).catch((e) => {
+  getPostThread(params2, opts) {
+    return this._service.xrpc.call("app.bsky.feed.getPostThread", params2, void 0, opts).catch((e) => {
       throw toKnownErr30(e);
     });
   }
-  getRepostedBy(params, opts) {
-    return this._service.xrpc.call("app.bsky.feed.getRepostedBy", params, void 0, opts).catch((e) => {
+  getRepostedBy(params2, opts) {
+    return this._service.xrpc.call("app.bsky.feed.getRepostedBy", params2, void 0, opts).catch((e) => {
       throw toKnownErr31(e);
     });
   }
-  getTimeline(params, opts) {
-    return this._service.xrpc.call("app.bsky.feed.getTimeline", params, void 0, opts).catch((e) => {
+  getTimeline(params2, opts) {
+    return this._service.xrpc.call("app.bsky.feed.getTimeline", params2, void 0, opts).catch((e) => {
       throw toKnownErr32(e);
     });
   }
-  getVotes(params, opts) {
-    return this._service.xrpc.call("app.bsky.feed.getVotes", params, void 0, opts).catch((e) => {
+  getVotes(params2, opts) {
+    return this._service.xrpc.call("app.bsky.feed.getVotes", params2, void 0, opts).catch((e) => {
       throw toKnownErr33(e);
     });
   }
@@ -15815,76 +8004,39 @@ var FeedNS = class {
     });
   }
 };
-var MediaEmbedRecord = class {
-  constructor(service) {
-    this._service = service;
-  }
-  async list(params) {
-    const res = await this._service.xrpc.call("com.atproto.repo.listRecords", {
-      collection: "app.bsky.feed.mediaEmbed",
-      ...params
-    });
-    return res.data;
-  }
-  async get(params) {
-    const res = await this._service.xrpc.call("com.atproto.repo.getRecord", {
-      collection: "app.bsky.feed.mediaEmbed",
-      ...params
-    });
-    return res.data;
-  }
-  async create(params, record, headers) {
-    record.$type = "app.bsky.feed.mediaEmbed";
-    const res = await this._service.xrpc.call(
-      "com.atproto.repo.createRecord",
-      void 0,
-      { collection: "app.bsky.feed.mediaEmbed", ...params, record },
-      { encoding: "application/json", headers }
-    );
-    return res.data;
-  }
-  async delete(params, headers) {
-    await this._service.xrpc.call(
-      "com.atproto.repo.deleteRecord",
-      void 0,
-      { collection: "app.bsky.feed.mediaEmbed", ...params },
-      { headers }
-    );
-  }
-};
 var PostRecord = class {
   constructor(service) {
     this._service = service;
   }
-  async list(params) {
+  async list(params2) {
     const res = await this._service.xrpc.call("com.atproto.repo.listRecords", {
       collection: "app.bsky.feed.post",
-      ...params
+      ...params2
     });
     return res.data;
   }
-  async get(params) {
+  async get(params2) {
     const res = await this._service.xrpc.call("com.atproto.repo.getRecord", {
       collection: "app.bsky.feed.post",
-      ...params
+      ...params2
     });
     return res.data;
   }
-  async create(params, record, headers) {
+  async create(params2, record, headers) {
     record.$type = "app.bsky.feed.post";
     const res = await this._service.xrpc.call(
       "com.atproto.repo.createRecord",
       void 0,
-      { collection: "app.bsky.feed.post", ...params, record },
+      { collection: "app.bsky.feed.post", ...params2, record },
       { encoding: "application/json", headers }
     );
     return res.data;
   }
-  async delete(params, headers) {
+  async delete(params2, headers) {
     await this._service.xrpc.call(
       "com.atproto.repo.deleteRecord",
       void 0,
-      { collection: "app.bsky.feed.post", ...params },
+      { collection: "app.bsky.feed.post", ...params2 },
       { headers }
     );
   }
@@ -15893,35 +8045,35 @@ var RepostRecord = class {
   constructor(service) {
     this._service = service;
   }
-  async list(params) {
+  async list(params2) {
     const res = await this._service.xrpc.call("com.atproto.repo.listRecords", {
       collection: "app.bsky.feed.repost",
-      ...params
+      ...params2
     });
     return res.data;
   }
-  async get(params) {
+  async get(params2) {
     const res = await this._service.xrpc.call("com.atproto.repo.getRecord", {
       collection: "app.bsky.feed.repost",
-      ...params
+      ...params2
     });
     return res.data;
   }
-  async create(params, record, headers) {
+  async create(params2, record, headers) {
     record.$type = "app.bsky.feed.repost";
     const res = await this._service.xrpc.call(
       "com.atproto.repo.createRecord",
       void 0,
-      { collection: "app.bsky.feed.repost", ...params, record },
+      { collection: "app.bsky.feed.repost", ...params2, record },
       { encoding: "application/json", headers }
     );
     return res.data;
   }
-  async delete(params, headers) {
+  async delete(params2, headers) {
     await this._service.xrpc.call(
       "com.atproto.repo.deleteRecord",
       void 0,
-      { collection: "app.bsky.feed.repost", ...params },
+      { collection: "app.bsky.feed.repost", ...params2 },
       { headers }
     );
   }
@@ -15930,35 +8082,35 @@ var TrendRecord = class {
   constructor(service) {
     this._service = service;
   }
-  async list(params) {
+  async list(params2) {
     const res = await this._service.xrpc.call("com.atproto.repo.listRecords", {
       collection: "app.bsky.feed.trend",
-      ...params
+      ...params2
     });
     return res.data;
   }
-  async get(params) {
+  async get(params2) {
     const res = await this._service.xrpc.call("com.atproto.repo.getRecord", {
       collection: "app.bsky.feed.trend",
-      ...params
+      ...params2
     });
     return res.data;
   }
-  async create(params, record, headers) {
+  async create(params2, record, headers) {
     record.$type = "app.bsky.feed.trend";
     const res = await this._service.xrpc.call(
       "com.atproto.repo.createRecord",
       void 0,
-      { collection: "app.bsky.feed.trend", ...params, record },
+      { collection: "app.bsky.feed.trend", ...params2, record },
       { encoding: "application/json", headers }
     );
     return res.data;
   }
-  async delete(params, headers) {
+  async delete(params2, headers) {
     await this._service.xrpc.call(
       "com.atproto.repo.deleteRecord",
       void 0,
-      { collection: "app.bsky.feed.trend", ...params },
+      { collection: "app.bsky.feed.trend", ...params2 },
       { headers }
     );
   }
@@ -15967,35 +8119,35 @@ var VoteRecord = class {
   constructor(service) {
     this._service = service;
   }
-  async list(params) {
+  async list(params2) {
     const res = await this._service.xrpc.call("com.atproto.repo.listRecords", {
       collection: "app.bsky.feed.vote",
-      ...params
+      ...params2
     });
     return res.data;
   }
-  async get(params) {
+  async get(params2) {
     const res = await this._service.xrpc.call("com.atproto.repo.getRecord", {
       collection: "app.bsky.feed.vote",
-      ...params
+      ...params2
     });
     return res.data;
   }
-  async create(params, record, headers) {
+  async create(params2, record, headers) {
     record.$type = "app.bsky.feed.vote";
     const res = await this._service.xrpc.call(
       "com.atproto.repo.createRecord",
       void 0,
-      { collection: "app.bsky.feed.vote", ...params, record },
+      { collection: "app.bsky.feed.vote", ...params2, record },
       { encoding: "application/json", headers }
     );
     return res.data;
   }
-  async delete(params, headers) {
+  async delete(params2, headers) {
     await this._service.xrpc.call(
       "com.atproto.repo.deleteRecord",
       void 0,
-      { collection: "app.bsky.feed.vote", ...params },
+      { collection: "app.bsky.feed.vote", ...params2 },
       { headers }
     );
   }
@@ -16007,28 +8159,28 @@ var GraphNS = class {
     this.confirmation = new ConfirmationRecord(service);
     this.follow = new FollowRecord(service);
   }
-  getAssertions(params, opts) {
-    return this._service.xrpc.call("app.bsky.graph.getAssertions", params, void 0, opts).catch((e) => {
+  getAssertions(params2, opts) {
+    return this._service.xrpc.call("app.bsky.graph.getAssertions", params2, void 0, opts).catch((e) => {
       throw toKnownErr35(e);
     });
   }
-  getFollowers(params, opts) {
-    return this._service.xrpc.call("app.bsky.graph.getFollowers", params, void 0, opts).catch((e) => {
+  getFollowers(params2, opts) {
+    return this._service.xrpc.call("app.bsky.graph.getFollowers", params2, void 0, opts).catch((e) => {
       throw toKnownErr36(e);
     });
   }
-  getFollows(params, opts) {
-    return this._service.xrpc.call("app.bsky.graph.getFollows", params, void 0, opts).catch((e) => {
+  getFollows(params2, opts) {
+    return this._service.xrpc.call("app.bsky.graph.getFollows", params2, void 0, opts).catch((e) => {
       throw toKnownErr37(e);
     });
   }
-  getMembers(params, opts) {
-    return this._service.xrpc.call("app.bsky.graph.getMembers", params, void 0, opts).catch((e) => {
+  getMembers(params2, opts) {
+    return this._service.xrpc.call("app.bsky.graph.getMembers", params2, void 0, opts).catch((e) => {
       throw toKnownErr38(e);
     });
   }
-  getMemberships(params, opts) {
-    return this._service.xrpc.call("app.bsky.graph.getMemberships", params, void 0, opts).catch((e) => {
+  getMemberships(params2, opts) {
+    return this._service.xrpc.call("app.bsky.graph.getMemberships", params2, void 0, opts).catch((e) => {
       throw toKnownErr39(e);
     });
   }
@@ -16037,35 +8189,35 @@ var AssertionRecord = class {
   constructor(service) {
     this._service = service;
   }
-  async list(params) {
+  async list(params2) {
     const res = await this._service.xrpc.call("com.atproto.repo.listRecords", {
       collection: "app.bsky.graph.assertion",
-      ...params
+      ...params2
     });
     return res.data;
   }
-  async get(params) {
+  async get(params2) {
     const res = await this._service.xrpc.call("com.atproto.repo.getRecord", {
       collection: "app.bsky.graph.assertion",
-      ...params
+      ...params2
     });
     return res.data;
   }
-  async create(params, record, headers) {
+  async create(params2, record, headers) {
     record.$type = "app.bsky.graph.assertion";
     const res = await this._service.xrpc.call(
       "com.atproto.repo.createRecord",
       void 0,
-      { collection: "app.bsky.graph.assertion", ...params, record },
+      { collection: "app.bsky.graph.assertion", ...params2, record },
       { encoding: "application/json", headers }
     );
     return res.data;
   }
-  async delete(params, headers) {
+  async delete(params2, headers) {
     await this._service.xrpc.call(
       "com.atproto.repo.deleteRecord",
       void 0,
-      { collection: "app.bsky.graph.assertion", ...params },
+      { collection: "app.bsky.graph.assertion", ...params2 },
       { headers }
     );
   }
@@ -16074,35 +8226,35 @@ var ConfirmationRecord = class {
   constructor(service) {
     this._service = service;
   }
-  async list(params) {
+  async list(params2) {
     const res = await this._service.xrpc.call("com.atproto.repo.listRecords", {
       collection: "app.bsky.graph.confirmation",
-      ...params
+      ...params2
     });
     return res.data;
   }
-  async get(params) {
+  async get(params2) {
     const res = await this._service.xrpc.call("com.atproto.repo.getRecord", {
       collection: "app.bsky.graph.confirmation",
-      ...params
+      ...params2
     });
     return res.data;
   }
-  async create(params, record, headers) {
+  async create(params2, record, headers) {
     record.$type = "app.bsky.graph.confirmation";
     const res = await this._service.xrpc.call(
       "com.atproto.repo.createRecord",
       void 0,
-      { collection: "app.bsky.graph.confirmation", ...params, record },
+      { collection: "app.bsky.graph.confirmation", ...params2, record },
       { encoding: "application/json", headers }
     );
     return res.data;
   }
-  async delete(params, headers) {
+  async delete(params2, headers) {
     await this._service.xrpc.call(
       "com.atproto.repo.deleteRecord",
       void 0,
-      { collection: "app.bsky.graph.confirmation", ...params },
+      { collection: "app.bsky.graph.confirmation", ...params2 },
       { headers }
     );
   }
@@ -16111,35 +8263,35 @@ var FollowRecord = class {
   constructor(service) {
     this._service = service;
   }
-  async list(params) {
+  async list(params2) {
     const res = await this._service.xrpc.call("com.atproto.repo.listRecords", {
       collection: "app.bsky.graph.follow",
-      ...params
+      ...params2
     });
     return res.data;
   }
-  async get(params) {
+  async get(params2) {
     const res = await this._service.xrpc.call("com.atproto.repo.getRecord", {
       collection: "app.bsky.graph.follow",
-      ...params
+      ...params2
     });
     return res.data;
   }
-  async create(params, record, headers) {
+  async create(params2, record, headers) {
     record.$type = "app.bsky.graph.follow";
     const res = await this._service.xrpc.call(
       "com.atproto.repo.createRecord",
       void 0,
-      { collection: "app.bsky.graph.follow", ...params, record },
+      { collection: "app.bsky.graph.follow", ...params2, record },
       { encoding: "application/json", headers }
     );
     return res.data;
   }
-  async delete(params, headers) {
+  async delete(params2, headers) {
     await this._service.xrpc.call(
       "com.atproto.repo.deleteRecord",
       void 0,
-      { collection: "app.bsky.graph.follow", ...params },
+      { collection: "app.bsky.graph.follow", ...params2 },
       { headers }
     );
   }
@@ -16148,13 +8300,13 @@ var NotificationNS = class {
   constructor(service) {
     this._service = service;
   }
-  getCount(params, opts) {
-    return this._service.xrpc.call("app.bsky.notification.getCount", params, void 0, opts).catch((e) => {
+  getCount(params2, opts) {
+    return this._service.xrpc.call("app.bsky.notification.getCount", params2, void 0, opts).catch((e) => {
       throw toKnownErr40(e);
     });
   }
-  list(params, opts) {
-    return this._service.xrpc.call("app.bsky.notification.list", params, void 0, opts).catch((e) => {
+  list(params2, opts) {
+    return this._service.xrpc.call("app.bsky.notification.list", params2, void 0, opts).catch((e) => {
       throw toKnownErr41(e);
     });
   }
@@ -16174,35 +8326,35 @@ var DeclarationRecord = class {
   constructor(service) {
     this._service = service;
   }
-  async list(params) {
+  async list(params2) {
     const res = await this._service.xrpc.call("com.atproto.repo.listRecords", {
       collection: "app.bsky.system.declaration",
-      ...params
+      ...params2
     });
     return res.data;
   }
-  async get(params) {
+  async get(params2) {
     const res = await this._service.xrpc.call("com.atproto.repo.getRecord", {
       collection: "app.bsky.system.declaration",
-      ...params
+      ...params2
     });
     return res.data;
   }
-  async create(params, record, headers) {
+  async create(params2, record, headers) {
     record.$type = "app.bsky.system.declaration";
     const res = await this._service.xrpc.call(
       "com.atproto.repo.createRecord",
       void 0,
-      { collection: "app.bsky.system.declaration", ...params, record },
+      { collection: "app.bsky.system.declaration", ...params2, record },
       { encoding: "application/json", headers }
     );
     return res.data;
   }
-  async delete(params, headers) {
+  async delete(params2, headers) {
     await this._service.xrpc.call(
       "com.atproto.repo.deleteRecord",
       void 0,
-      { collection: "app.bsky.system.declaration", ...params },
+      { collection: "app.bsky.system.declaration", ...params2 },
       { headers }
     );
   }
@@ -16241,8 +8393,8 @@ var SessionXrpcServiceClient = class extends ServiceClient {
       }
     });
   }
-  async call(methodNsid, params, data, opts) {
-    const original = (overrideOpts) => super.call(methodNsid, params, data, overrideOpts ?? opts);
+  async call(methodNsid, params2, data, opts) {
+    const original = (overrideOpts) => super.call(methodNsid, params2, data, overrideOpts ?? opts);
     if (opts?.headers?.authorization) {
       return await original();
     }
@@ -16341,20 +8493,23 @@ var SessionManager = class extends import_events.default {
   AppBskyActorGetProfile,
   AppBskyActorGetSuggestions,
   AppBskyActorProfile,
+  AppBskyActorRef,
   AppBskyActorSearch,
   AppBskyActorSearchTypeahead,
   AppBskyActorUpdateProfile,
+  AppBskyFeedEmbed,
   AppBskyFeedGetAuthorFeed,
   AppBskyFeedGetPostThread,
   AppBskyFeedGetRepostedBy,
   AppBskyFeedGetTimeline,
   AppBskyFeedGetVotes,
-  AppBskyFeedMediaEmbed,
   AppBskyFeedPost,
   AppBskyFeedRepost,
   AppBskyFeedSetVote,
   AppBskyFeedTrend,
   AppBskyFeedVote,
+  AppBskyGraphAssertCreator,
+  AppBskyGraphAssertMember,
   AppBskyGraphAssertion,
   AppBskyGraphConfirmation,
   AppBskyGraphFollow,
@@ -16366,6 +8521,9 @@ var SessionManager = class extends import_events.default {
   AppBskyNotificationGetCount,
   AppBskyNotificationList,
   AppBskyNotificationUpdateSeen,
+  AppBskySystemActorScene,
+  AppBskySystemActorUser,
+  AppBskySystemDeclRef,
   AppBskySystemDeclaration,
   AppNS,
   AssertionRecord,
@@ -16386,6 +8544,7 @@ var SessionManager = class extends import_events.default {
   ComAtprotoRepoGetRecord,
   ComAtprotoRepoListRecords,
   ComAtprotoRepoPutRecord,
+  ComAtprotoRepoStrongRef,
   ComAtprotoServerGetAccountsConfig,
   ComAtprotoSessionCreate,
   ComAtprotoSessionDelete,
@@ -16401,7 +8560,6 @@ var SessionManager = class extends import_events.default {
   FollowRecord,
   GraphNS,
   HandleNS,
-  MediaEmbedRecord,
   NotificationNS,
   PostRecord,
   ProfileRecord,
@@ -16420,5 +8578,4 @@ var SessionManager = class extends import_events.default {
   VoteRecord,
   sessionClient
 });
-/** @license URI.js v4.4.1 (c) 2011 Gary Court. License: http://github.com/garycourt/uri-js */
 //# sourceMappingURL=index.js.map