[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-wix-wix-base44-connector":3,"mdc-udq7ig-key":31,"related-repo-wix-wix-base44-connector":2972,"related-org-wix-wix-base44-connector":3064},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":20,"repoUrl":21,"updatedAt":22,"license":23,"forks":24,"topics":25,"repo":26,"sourceUrl":29,"mdContent":30},"wix-base44-connector","build and integrate Wix applications","Build on Wix from the Base44 builder sandbox — this file is the complete guide (site context, doc discovery, API contracts, who calls Wix from where), and scripts\u002Futils.js is its helper module, loaded from disk per exec. Triggers: build a Base44 app on a connected Wix site, look up a Wix API from the sandbox, decide frontend vs backend for a Wix call.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},"wix","Wix","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fwix.jpg",[12,14,17],{"name":9,"slug":8,"type":13},"tag",{"name":15,"slug":16,"type":13},"Web Development","web-development",{"name":18,"slug":19,"type":13},"API Development","api-development",23,"https:\u002F\u002Fgithub.com\u002Fwix\u002Fskills","2026-08-22T03:56:55.445635",null,28,[],{"repoUrl":21,"stars":20,"forks":24,"topics":27,"description":28},[],"Wix Skills","https:\u002F\u002Fgithub.com\u002Fwix\u002Fskills\u002Ftree\u002FHEAD\u002Fskills\u002Fwix-base44-connector","---\nname: wix-base44-connector\ndescription: \"Build on Wix from the Base44 builder sandbox — this file is the complete guide (site context, doc discovery, API contracts, who calls Wix from where), and scripts\u002Futils.js is its helper module, loaded from disk per exec. Triggers: build a Base44 app on a connected Wix site, look up a Wix API from the sandbox, decide frontend vs backend for a Wix call.\"\n---\n\n# Building on Wix from Base44\n\nThe Wix connector is connected; this is how the app gets built on it — gather the site's context,\nfind the APIs and learn their contracts from the docs, write the code. **Discover everything**: endpoints, paths, doc URLs,\nrequest and response fields all come from the calls below, never from memory or pattern. 404 or\nempty ⇒ discover, not permute. Examples teach mechanics and go stale — verify before relying.\n\n## What are you building?\n\nThe app's audience picks the token, and the token picks the architecture: the **visitor token is\npublic** — anyone can mint it from the site's `clientId` — and the **admin token is a secret**,\nthe connector's, server-side only.\n\n```\nbrowser            ──(visitor token)─► wixapis.com   the visitor's own reads & actions\nbase44\u002Ffunctions\u002F* ──(admin token)───► wixapis.com   work that needs the owner's identity\nexec_tool          ──(admin token)───► wixapis.com   you: ad hoc probing\u002Fmanaging while building\n```\n\n**A site for visitors** — storefront, blog, booking. Headless means the Wix site has no pages of\nits own: your app IS its frontend. **The complete visitor experience —\nevery page, every read, every action a visitor takes — is browser calls on the visitor token;\nnone of it needs a backend function.** Public reads\nincluded (the visitor token queries the catalog directly), and `carts\u002Fcurrent\u002F*` + checkout act\non the CALLER's cart, so only the visitor token reaches the visitor's cart. One file carries it\nall: `src\u002Flib\u002FwixClient.js` (Write the code, below). `base44\u002Ffunctions\u002F*` appear only where work\nneeds the owner's identity — elevated-permission ops a visitor triggers, webhooks, scheduled\njobs — and for the app's non-Wix backend.\n\n**An admin tool for the owner** — dashboard, back office. The pages act as the owner, whose token\nis a secret: `pages → base44\u002Ffunctions\u002F* ──(admin token)──► wixapis.com`.\n\n## The helpers\n\nResearch and probing run in exec_tool, and one loader opens every exec (execs share no state —\nreload each round; the module lives on disk next to this file, network only as first-touch\nfallback):\n\n```js\nconst fs = require(\"fs\"), P = \".agents\u002Fskills\u002Fwix-base44-connector\u002Futils.js\";\nif (!fs.existsSync(P)) { fs.mkdirSync(\".agents\u002Fskills\u002Fwix-base44-connector\", { recursive: true });\n  fs.writeFileSync(P, await (await fetch(\"https:\u002F\u002Fwww.wix.com\u002Fskills\u002Fwix-base44-connector\u002Fscripts\u002Futils.js\")).text()); }\nconst wx = (() => { const m = { exports: {} };\n  new Function(\"module\", \"exports\", \"require\", fs.readFileSync(P, \"utf8\"))(m, m.exports, require); return m.exports; })();\n```\n\nResults ≤ 4,000 chars come back inline (exec results clip at ~5,000); anything bigger is saved\nunder `.agents\u002Fskills\u002Fwix-base44-connector\u002Fscratch\u002F` and returns `{ path, bytes, lines, outline }` —\nthe outline is the map. Read a saved file the way you already know how:\n`wx.bash(\"grep -n 'term' \u003Cpath> | head -40\")` to find (GNU grep\u002Fsed, awk is mawk, no rg;\nacross everything saved: `grep -rn 'term' .agents\u002Fskills\u002Fwix-base44-connector\u002Fscratch\u002F`), and\n`read_file` to quote — a window via `offset`\u002F`limit` at the lines grep named, or the whole\nfile when it fits read_file's 45K cap. **API responses are site data and never land in\nscratch** — project them to facts. Fetch every URL inside exec with `fetch()` — website\u002Fbrowser\ntools clip at 10,000 chars silently. One exec per round; timeout 10s, up to 120 via `{timeout}`.\n\n## Gather context — the dynamic context report\n\n```js\nconst { accessToken } = await base44.asServiceRole.connectors.getConnection(\"wix\");\nreturn await wx.context(accessToken, \"Apps\");   \u002F\u002F no section arg → the report's outline\n```\n\nOne report: installed apps **with ids** (incl. Stores' catalog version — V1 vs V3 decides its\nendpoints), the OAuth app id (**also the visitor `clientId`**), locale, currency, CMS collections.\nAn empty report = bad token, never an empty site.\n\n## Learn Wix — find the APIs, learn their contracts\n\n```js\n\u002F\u002F know the product? browse is deterministic — menuUrl alone orients (children + counts);\n\u002F\u002F filter before listing methods, unfiltered listings clip\nawait wx.browse(\"https:\u002F\u002Fdev.wix.com\u002Fdocs\u002Fapi-reference\u002Fbusiness-solutions\u002Fbookings\u002Fbookings\",\n                { include: [\"METHOD\"], filter: \"resched\", depth: 4 });\n\n\u002F\u002F don't know where it lives? search ranks, never says \"no match\" — drop wrong-product hits\nawait wx.search(\"pause a pricing plan subscription and resume it\");\n\u002F\u002F → { hits: [{ method, endpoint \u002F* callable *\u002F, docsUrl, gist }] } — hits often ARE the answer\n```\n\nGo deeper for fields, enums, or absence — only the spec index proves absence.\n\n### Read a doc page\n\nMethod pages are 100 KB+, twin REST and SDK halves repeating field names at different types —\nmap and window in the SAME exec; coordinates are for your code, not for a second round:\n\n```js\nconst pg = await wx.page(docsUrl);   \u002F\u002F whole text when small; else { path, bytes, lines, outline }\n\u002F\u002F your half, windowed to your term and its Examples (a complete working request — URL, headers,\n\u002F\u002F body — usually all you need), one round:\nreturn wx.bash(`sed -n '\u002F^## REST API\u002F,\u002F^## JavaScript SDK\u002Fp' ${pg.path} | grep -B5 -A40 -i 'examples\\\\|\u003Cterm>' | head -c 3800`);\n\u002F\u002F a giant fenced example → its field vocabulary instead of paging it:\n\u002F\u002F wx.bash(`sed -n '\u003Ca>,\u003Cb>p' ${pg.path} | grep -oE '\"[a-zA-Z]+\":' | sort -u | head -60`)\n```\n\n`search` also saves its raw content beside the inline hits — grep its `path` when a hit's six\nlines weren't enough.\n\n### The spec index\n\nAnswers questions about pages you already found — arrive with a `docsUrl`, match by it. Also the\nonly proof an API does NOT exist:\n\n```js\nawait wx.spec(`\n  const r = lightIndex.find(x => x.docsUrl === \"\u003CdocsUrl from browse\u002Fsearch>\");\n  return r.methods.map(m => ({ op: m.operationId.split(\".\").pop(), verb: m.httpMethod,\n                               call: m.publicUrl }));   \u002F\u002F publicUrl is callable — path is PARTIAL\n`);\n\u002F\u002F request fields next round: getResourceSchemaByUrl(docsUrl) →\n\u002F\u002F   m.requestBody.content[\"application\u002Fjson\"].schema.properties — names and types, drill deeper\n\u002F\u002F   per round; $circular stubs resolve via s.components.schemas[\"\u003Cname>\"]\n```\n\n### Management recipes — check before composing admin flows\n\n~100 curated multi-step recipes (install apps, seed catalogs, set up whole verticals):\n\n```js\nawait wx.recipes();           \u002F\u002F categories with counts\nawait wx.recipes(\"stores\");   \u002F\u002F a category's list — or any task word: wx.recipes(\"coupon\")\nawait wx.page(url);           \u002F\u002F read the chosen recipe — whole when small, saved + outline when\n                              \u002F\u002F big; then grep \u002F read_file windows by the outline's line numbers\n```\n\nA matching recipe beats composing the flow from single endpoints: it carries ordering and\ncross-step gotchas no method page mentions.\n\n## Write the code\n\n**Response shapes obey the discover rule in every lane**: code against fields you saw in a live\nresponse or the schema — remembered names are often from older versions. Probe one real row first.\n\n### Admin calls — exec ad hoc, backend functions deployed\n\n```js\nconst { accessToken } = await base44.asServiceRole.connectors.getConnection(\"wix\");\nconst data = await wx.post(\"https:\u002F\u002Fwww.wixapis.com\u002Fcontacts\u002Fv5\u002Fcontacts\u002Fquery\",   \u002F\u002F spec-index publicUrl\n  { query: { cursorPaging: { limit: 10 } } }, accessToken);\n\u002F\u002F let it throw — the thrown message is your result; .catch hides the answer\nreturn wx.clip({ error: null, count: data.contacts?.length, first: data.contacts?.[0] });\n\u002F\u002F  ↑ one real row, whole — the shapes you code against live here, not in key names\n```\n\nThe same call deploys as `base44\u002Ffunctions\u002F*` (work the app does as the owner) — shipped code\ncarries its own four-line fetch; the helpers are a build tool, not a runtime dependency.\n\n### A visitor client — src\u002Flib\u002FwixClient.js\n\nThe \"site for visitors\" shape (What are you building?), in code — one file pages import. Neither\n`clientId` (from the context report) nor the minted token is a secret; together they are \"an\nanonymous visitor\", safe in shipped code:\n\n```js\n\u002F\u002F src\u002Flib\u002FwixClient.js\nlet token;\nconst mint = async (body) => {\n  const r = await (await fetch(\"https:\u002F\u002Fwww.wixapis.com\u002Foauth2\u002Ftoken\", { method: \"POST\",\n    headers: { \"Content-Type\": \"application\u002Fjson\" }, body: JSON.stringify(body) })).json();\n  token = r.access_token; sessionStorage.setItem(\"wixRefresh\", r.refresh_token);   \u002F\u002F expires_in: 14400s = 4h\n};\n\u002F\u002F first visit:  mint({ clientId: WIX_CLIENT_ID, grantType: \"anonymous\" });\n\u002F\u002F on expiry:    mint({ refreshToken: sessionStorage.getItem(\"wixRefresh\"), grantType: \"refresh_token\" });\n\u002F\u002F               a fresh anonymous mint is a NEW visitor — the old one's cart goes with it\nexport const wix = (path, opts = {}) => fetch(\"https:\u002F\u002Fwww.wixapis.com\" + path, { ...opts,\n  headers: { Authorization: `Bearer ${token}`, \"Content-Type\": \"application\u002Fjson\" } });\n```\n\nToken contract: `…\u002Fheadless\u002Fauthentication\u002Fretrieve-tokens`. Prove the lane in one exec before\nwriting pages — mint a visitor, make one public read with it:\n\n```js\nconst { access_token } = await wx.post(\"https:\u002F\u002Fwww.wixapis.com\u002Foauth2\u002Ftoken\",\n  { clientId: WIX_CLIENT_ID, grantType: \"anonymous\" });   \u002F\u002F clientId: from the context report\nreturn await wx.post(\"\u003Ca public read from Learn Wix>\", { query: {} }, access_token);\n\u002F\u002F 200 ⇒ every visitor-facing page in the app is this same call, no server between\n\u002F\u002F a lean default response isn't the whole shape — contracts often define a fields param\n\u002F\u002F that opts INTO heavier parts (formatted prices, media); read the contract for it\n```\n",{"data":32,"body":33},{"name":4,"description":6},{"type":34,"children":35},"root",[36,45,59,66,94,106,147,165,171,176,737,820,826,980,1004,1010,1245,1250,1257,1262,1432,1449,1455,1468,1567,1573,1578,1708,1713,1719,1729,1735,2097,2109,2115,2127,2725,2738,2966],{"type":37,"tag":38,"props":39,"children":41},"element","h1",{"id":40},"building-on-wix-from-base44",[42],{"type":43,"value":44},"text","Building on Wix from Base44",{"type":37,"tag":46,"props":47,"children":48},"p",{},[49,51,57],{"type":43,"value":50},"The Wix connector is connected; this is how the app gets built on it — gather the site's context,\nfind the APIs and learn their contracts from the docs, write the code. ",{"type":37,"tag":52,"props":53,"children":54},"strong",{},[55],{"type":43,"value":56},"Discover everything",{"type":43,"value":58},": endpoints, paths, doc URLs,\nrequest and response fields all come from the calls below, never from memory or pattern. 404 or\nempty ⇒ discover, not permute. Examples teach mechanics and go stale — verify before relying.",{"type":37,"tag":60,"props":61,"children":63},"h2",{"id":62},"what-are-you-building",[64],{"type":43,"value":65},"What are you building?",{"type":37,"tag":46,"props":67,"children":68},{},[69,71,76,78,85,87,92],{"type":43,"value":70},"The app's audience picks the token, and the token picks the architecture: the ",{"type":37,"tag":52,"props":72,"children":73},{},[74],{"type":43,"value":75},"visitor token is\npublic",{"type":43,"value":77}," — anyone can mint it from the site's ",{"type":37,"tag":79,"props":80,"children":82},"code",{"className":81},[],[83],{"type":43,"value":84},"clientId",{"type":43,"value":86}," — and the ",{"type":37,"tag":52,"props":88,"children":89},{},[90],{"type":43,"value":91},"admin token is a secret",{"type":43,"value":93},",\nthe connector's, server-side only.",{"type":37,"tag":95,"props":96,"children":100},"pre",{"className":97,"code":99,"language":43},[98],"language-text","browser            ──(visitor token)─► wixapis.com   the visitor's own reads & actions\nbase44\u002Ffunctions\u002F* ──(admin token)───► wixapis.com   work that needs the owner's identity\nexec_tool          ──(admin token)───► wixapis.com   you: ad hoc probing\u002Fmanaging while building\n",[101],{"type":37,"tag":79,"props":102,"children":104},{"__ignoreMap":103},"",[105],{"type":43,"value":99},{"type":37,"tag":46,"props":107,"children":108},{},[109,114,116,121,123,129,131,137,139,145],{"type":37,"tag":52,"props":110,"children":111},{},[112],{"type":43,"value":113},"A site for visitors",{"type":43,"value":115}," — storefront, blog, booking. Headless means the Wix site has no pages of\nits own: your app IS its frontend. ",{"type":37,"tag":52,"props":117,"children":118},{},[119],{"type":43,"value":120},"The complete visitor experience —\nevery page, every read, every action a visitor takes — is browser calls on the visitor token;\nnone of it needs a backend function.",{"type":43,"value":122}," Public reads\nincluded (the visitor token queries the catalog directly), and ",{"type":37,"tag":79,"props":124,"children":126},{"className":125},[],[127],{"type":43,"value":128},"carts\u002Fcurrent\u002F*",{"type":43,"value":130}," + checkout act\non the CALLER's cart, so only the visitor token reaches the visitor's cart. One file carries it\nall: ",{"type":37,"tag":79,"props":132,"children":134},{"className":133},[],[135],{"type":43,"value":136},"src\u002Flib\u002FwixClient.js",{"type":43,"value":138}," (Write the code, below). ",{"type":37,"tag":79,"props":140,"children":142},{"className":141},[],[143],{"type":43,"value":144},"base44\u002Ffunctions\u002F*",{"type":43,"value":146}," appear only where work\nneeds the owner's identity — elevated-permission ops a visitor triggers, webhooks, scheduled\njobs — and for the app's non-Wix backend.",{"type":37,"tag":46,"props":148,"children":149},{},[150,155,157,163],{"type":37,"tag":52,"props":151,"children":152},{},[153],{"type":43,"value":154},"An admin tool for the owner",{"type":43,"value":156}," — dashboard, back office. The pages act as the owner, whose token\nis a secret: ",{"type":37,"tag":79,"props":158,"children":160},{"className":159},[],[161],{"type":43,"value":162},"pages → base44\u002Ffunctions\u002F* ──(admin token)──► wixapis.com",{"type":43,"value":164},".",{"type":37,"tag":60,"props":166,"children":168},{"id":167},"the-helpers",[169],{"type":43,"value":170},"The helpers",{"type":37,"tag":46,"props":172,"children":173},{},[174],{"type":43,"value":175},"Research and probing run in exec_tool, and one loader opens every exec (execs share no state —\nreload each round; the module lives on disk next to this file, network only as first-touch\nfallback):",{"type":37,"tag":95,"props":177,"children":181},{"className":178,"code":179,"language":180,"meta":103,"style":103},"language-js shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","const fs = require(\"fs\"), P = \".agents\u002Fskills\u002Fwix-base44-connector\u002Futils.js\";\nif (!fs.existsSync(P)) { fs.mkdirSync(\".agents\u002Fskills\u002Fwix-base44-connector\", { recursive: true });\n  fs.writeFileSync(P, await (await fetch(\"https:\u002F\u002Fwww.wix.com\u002Fskills\u002Fwix-base44-connector\u002Fscripts\u002Futils.js\")).text()); }\nconst wx = (() => { const m = { exports: {} };\n  new Function(\"module\", \"exports\", \"require\", fs.readFileSync(P, \"utf8\"))(m, m.exports, require); return m.exports; })();\n","js",[182],{"type":37,"tag":79,"props":183,"children":184},{"__ignoreMap":103},[185,273,386,481,554],{"type":37,"tag":186,"props":187,"children":190},"span",{"class":188,"line":189},"line",1,[191,197,203,209,215,220,225,231,235,240,245,250,254,259,264,268],{"type":37,"tag":186,"props":192,"children":194},{"style":193},"--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA",[195],{"type":43,"value":196},"const",{"type":37,"tag":186,"props":198,"children":200},{"style":199},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[201],{"type":43,"value":202}," fs ",{"type":37,"tag":186,"props":204,"children":206},{"style":205},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[207],{"type":43,"value":208},"=",{"type":37,"tag":186,"props":210,"children":212},{"style":211},"--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF",[213],{"type":43,"value":214}," require",{"type":37,"tag":186,"props":216,"children":217},{"style":199},[218],{"type":43,"value":219},"(",{"type":37,"tag":186,"props":221,"children":222},{"style":205},[223],{"type":43,"value":224},"\"",{"type":37,"tag":186,"props":226,"children":228},{"style":227},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[229],{"type":43,"value":230},"fs",{"type":37,"tag":186,"props":232,"children":233},{"style":205},[234],{"type":43,"value":224},{"type":37,"tag":186,"props":236,"children":237},{"style":199},[238],{"type":43,"value":239},")",{"type":37,"tag":186,"props":241,"children":242},{"style":205},[243],{"type":43,"value":244},",",{"type":37,"tag":186,"props":246,"children":247},{"style":199},[248],{"type":43,"value":249}," P ",{"type":37,"tag":186,"props":251,"children":252},{"style":205},[253],{"type":43,"value":208},{"type":37,"tag":186,"props":255,"children":256},{"style":205},[257],{"type":43,"value":258}," \"",{"type":37,"tag":186,"props":260,"children":261},{"style":227},[262],{"type":43,"value":263},".agents\u002Fskills\u002Fwix-base44-connector\u002Futils.js",{"type":37,"tag":186,"props":265,"children":266},{"style":205},[267],{"type":43,"value":224},{"type":37,"tag":186,"props":269,"children":270},{"style":205},[271],{"type":43,"value":272},";\n",{"type":37,"tag":186,"props":274,"children":276},{"class":188,"line":275},2,[277,283,288,293,297,301,306,311,316,321,325,330,335,339,344,348,352,357,362,367,373,378,382],{"type":37,"tag":186,"props":278,"children":280},{"style":279},"--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic",[281],{"type":43,"value":282},"if",{"type":37,"tag":186,"props":284,"children":285},{"style":199},[286],{"type":43,"value":287}," (",{"type":37,"tag":186,"props":289,"children":290},{"style":205},[291],{"type":43,"value":292},"!",{"type":37,"tag":186,"props":294,"children":295},{"style":199},[296],{"type":43,"value":230},{"type":37,"tag":186,"props":298,"children":299},{"style":205},[300],{"type":43,"value":164},{"type":37,"tag":186,"props":302,"children":303},{"style":211},[304],{"type":43,"value":305},"existsSync",{"type":37,"tag":186,"props":307,"children":308},{"style":199},[309],{"type":43,"value":310},"(P)) ",{"type":37,"tag":186,"props":312,"children":313},{"style":205},[314],{"type":43,"value":315},"{",{"type":37,"tag":186,"props":317,"children":318},{"style":199},[319],{"type":43,"value":320}," fs",{"type":37,"tag":186,"props":322,"children":323},{"style":205},[324],{"type":43,"value":164},{"type":37,"tag":186,"props":326,"children":327},{"style":211},[328],{"type":43,"value":329},"mkdirSync",{"type":37,"tag":186,"props":331,"children":333},{"style":332},"--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178",[334],{"type":43,"value":219},{"type":37,"tag":186,"props":336,"children":337},{"style":205},[338],{"type":43,"value":224},{"type":37,"tag":186,"props":340,"children":341},{"style":227},[342],{"type":43,"value":343},".agents\u002Fskills\u002Fwix-base44-connector",{"type":37,"tag":186,"props":345,"children":346},{"style":205},[347],{"type":43,"value":224},{"type":37,"tag":186,"props":349,"children":350},{"style":205},[351],{"type":43,"value":244},{"type":37,"tag":186,"props":353,"children":354},{"style":205},[355],{"type":43,"value":356}," {",{"type":37,"tag":186,"props":358,"children":359},{"style":332},[360],{"type":43,"value":361}," recursive",{"type":37,"tag":186,"props":363,"children":364},{"style":205},[365],{"type":43,"value":366},":",{"type":37,"tag":186,"props":368,"children":370},{"style":369},"--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC",[371],{"type":43,"value":372}," true",{"type":37,"tag":186,"props":374,"children":375},{"style":205},[376],{"type":43,"value":377}," }",{"type":37,"tag":186,"props":379,"children":380},{"style":332},[381],{"type":43,"value":239},{"type":37,"tag":186,"props":383,"children":384},{"style":205},[385],{"type":43,"value":272},{"type":37,"tag":186,"props":387,"children":389},{"class":188,"line":388},3,[390,395,399,404,408,413,417,422,426,431,436,440,444,449,453,458,462,466,471,476],{"type":37,"tag":186,"props":391,"children":392},{"style":199},[393],{"type":43,"value":394},"  fs",{"type":37,"tag":186,"props":396,"children":397},{"style":205},[398],{"type":43,"value":164},{"type":37,"tag":186,"props":400,"children":401},{"style":211},[402],{"type":43,"value":403},"writeFileSync",{"type":37,"tag":186,"props":405,"children":406},{"style":332},[407],{"type":43,"value":219},{"type":37,"tag":186,"props":409,"children":410},{"style":199},[411],{"type":43,"value":412},"P",{"type":37,"tag":186,"props":414,"children":415},{"style":205},[416],{"type":43,"value":244},{"type":37,"tag":186,"props":418,"children":419},{"style":279},[420],{"type":43,"value":421}," await",{"type":37,"tag":186,"props":423,"children":424},{"style":332},[425],{"type":43,"value":287},{"type":37,"tag":186,"props":427,"children":428},{"style":279},[429],{"type":43,"value":430},"await",{"type":37,"tag":186,"props":432,"children":433},{"style":211},[434],{"type":43,"value":435}," fetch",{"type":37,"tag":186,"props":437,"children":438},{"style":332},[439],{"type":43,"value":219},{"type":37,"tag":186,"props":441,"children":442},{"style":205},[443],{"type":43,"value":224},{"type":37,"tag":186,"props":445,"children":446},{"style":227},[447],{"type":43,"value":448},"https:\u002F\u002Fwww.wix.com\u002Fskills\u002Fwix-base44-connector\u002Fscripts\u002Futils.js",{"type":37,"tag":186,"props":450,"children":451},{"style":205},[452],{"type":43,"value":224},{"type":37,"tag":186,"props":454,"children":455},{"style":332},[456],{"type":43,"value":457},"))",{"type":37,"tag":186,"props":459,"children":460},{"style":205},[461],{"type":43,"value":164},{"type":37,"tag":186,"props":463,"children":464},{"style":211},[465],{"type":43,"value":43},{"type":37,"tag":186,"props":467,"children":468},{"style":332},[469],{"type":43,"value":470},"())",{"type":37,"tag":186,"props":472,"children":473},{"style":205},[474],{"type":43,"value":475},";",{"type":37,"tag":186,"props":477,"children":478},{"style":205},[479],{"type":43,"value":480}," }\n",{"type":37,"tag":186,"props":482,"children":484},{"class":188,"line":483},4,[485,489,494,498,502,507,512,516,521,526,531,535,540,544,549],{"type":37,"tag":186,"props":486,"children":487},{"style":193},[488],{"type":43,"value":196},{"type":37,"tag":186,"props":490,"children":491},{"style":199},[492],{"type":43,"value":493}," wx ",{"type":37,"tag":186,"props":495,"children":496},{"style":205},[497],{"type":43,"value":208},{"type":37,"tag":186,"props":499,"children":500},{"style":199},[501],{"type":43,"value":287},{"type":37,"tag":186,"props":503,"children":504},{"style":205},[505],{"type":43,"value":506},"()",{"type":37,"tag":186,"props":508,"children":509},{"style":193},[510],{"type":43,"value":511}," =>",{"type":37,"tag":186,"props":513,"children":514},{"style":205},[515],{"type":43,"value":356},{"type":37,"tag":186,"props":517,"children":518},{"style":193},[519],{"type":43,"value":520}," const",{"type":37,"tag":186,"props":522,"children":523},{"style":199},[524],{"type":43,"value":525}," m",{"type":37,"tag":186,"props":527,"children":528},{"style":205},[529],{"type":43,"value":530}," =",{"type":37,"tag":186,"props":532,"children":533},{"style":205},[534],{"type":43,"value":356},{"type":37,"tag":186,"props":536,"children":537},{"style":332},[538],{"type":43,"value":539}," exports",{"type":37,"tag":186,"props":541,"children":542},{"style":205},[543],{"type":43,"value":366},{"type":37,"tag":186,"props":545,"children":546},{"style":205},[547],{"type":43,"value":548}," {}",{"type":37,"tag":186,"props":550,"children":551},{"style":205},[552],{"type":43,"value":553}," };\n",{"type":37,"tag":186,"props":555,"children":557},{"class":188,"line":556},5,[558,563,568,572,576,581,585,589,593,598,602,606,610,615,619,623,627,631,636,640,644,648,652,657,661,666,671,675,679,683,687,691,695,699,703,708,712,716,720,724,728,733],{"type":37,"tag":186,"props":559,"children":560},{"style":205},[561],{"type":43,"value":562},"  new",{"type":37,"tag":186,"props":564,"children":565},{"style":211},[566],{"type":43,"value":567}," Function",{"type":37,"tag":186,"props":569,"children":570},{"style":332},[571],{"type":43,"value":219},{"type":37,"tag":186,"props":573,"children":574},{"style":205},[575],{"type":43,"value":224},{"type":37,"tag":186,"props":577,"children":578},{"style":227},[579],{"type":43,"value":580},"module",{"type":37,"tag":186,"props":582,"children":583},{"style":205},[584],{"type":43,"value":224},{"type":37,"tag":186,"props":586,"children":587},{"style":205},[588],{"type":43,"value":244},{"type":37,"tag":186,"props":590,"children":591},{"style":205},[592],{"type":43,"value":258},{"type":37,"tag":186,"props":594,"children":595},{"style":227},[596],{"type":43,"value":597},"exports",{"type":37,"tag":186,"props":599,"children":600},{"style":205},[601],{"type":43,"value":224},{"type":37,"tag":186,"props":603,"children":604},{"style":205},[605],{"type":43,"value":244},{"type":37,"tag":186,"props":607,"children":608},{"style":205},[609],{"type":43,"value":258},{"type":37,"tag":186,"props":611,"children":612},{"style":227},[613],{"type":43,"value":614},"require",{"type":37,"tag":186,"props":616,"children":617},{"style":205},[618],{"type":43,"value":224},{"type":37,"tag":186,"props":620,"children":621},{"style":205},[622],{"type":43,"value":244},{"type":37,"tag":186,"props":624,"children":625},{"style":199},[626],{"type":43,"value":320},{"type":37,"tag":186,"props":628,"children":629},{"style":205},[630],{"type":43,"value":164},{"type":37,"tag":186,"props":632,"children":633},{"style":211},[634],{"type":43,"value":635},"readFileSync",{"type":37,"tag":186,"props":637,"children":638},{"style":332},[639],{"type":43,"value":219},{"type":37,"tag":186,"props":641,"children":642},{"style":199},[643],{"type":43,"value":412},{"type":37,"tag":186,"props":645,"children":646},{"style":205},[647],{"type":43,"value":244},{"type":37,"tag":186,"props":649,"children":650},{"style":205},[651],{"type":43,"value":258},{"type":37,"tag":186,"props":653,"children":654},{"style":227},[655],{"type":43,"value":656},"utf8",{"type":37,"tag":186,"props":658,"children":659},{"style":205},[660],{"type":43,"value":224},{"type":37,"tag":186,"props":662,"children":663},{"style":332},[664],{"type":43,"value":665},"))(",{"type":37,"tag":186,"props":667,"children":668},{"style":199},[669],{"type":43,"value":670},"m",{"type":37,"tag":186,"props":672,"children":673},{"style":205},[674],{"type":43,"value":244},{"type":37,"tag":186,"props":676,"children":677},{"style":199},[678],{"type":43,"value":525},{"type":37,"tag":186,"props":680,"children":681},{"style":205},[682],{"type":43,"value":164},{"type":37,"tag":186,"props":684,"children":685},{"style":199},[686],{"type":43,"value":597},{"type":37,"tag":186,"props":688,"children":689},{"style":205},[690],{"type":43,"value":244},{"type":37,"tag":186,"props":692,"children":693},{"style":199},[694],{"type":43,"value":214},{"type":37,"tag":186,"props":696,"children":697},{"style":332},[698],{"type":43,"value":239},{"type":37,"tag":186,"props":700,"children":701},{"style":205},[702],{"type":43,"value":475},{"type":37,"tag":186,"props":704,"children":705},{"style":279},[706],{"type":43,"value":707}," return",{"type":37,"tag":186,"props":709,"children":710},{"style":199},[711],{"type":43,"value":525},{"type":37,"tag":186,"props":713,"children":714},{"style":205},[715],{"type":43,"value":164},{"type":37,"tag":186,"props":717,"children":718},{"style":199},[719],{"type":43,"value":597},{"type":37,"tag":186,"props":721,"children":722},{"style":205},[723],{"type":43,"value":475},{"type":37,"tag":186,"props":725,"children":726},{"style":205},[727],{"type":43,"value":377},{"type":37,"tag":186,"props":729,"children":730},{"style":199},[731],{"type":43,"value":732},")()",{"type":37,"tag":186,"props":734,"children":735},{"style":205},[736],{"type":43,"value":272},{"type":37,"tag":46,"props":738,"children":739},{},[740,742,748,750,756,758,764,766,772,774,780,782,788,790,796,798,803,805,811,813,819],{"type":43,"value":741},"Results ≤ 4,000 chars come back inline (exec results clip at ~5,000); anything bigger is saved\nunder ",{"type":37,"tag":79,"props":743,"children":745},{"className":744},[],[746],{"type":43,"value":747},".agents\u002Fskills\u002Fwix-base44-connector\u002Fscratch\u002F",{"type":43,"value":749}," and returns ",{"type":37,"tag":79,"props":751,"children":753},{"className":752},[],[754],{"type":43,"value":755},"{ path, bytes, lines, outline }",{"type":43,"value":757}," —\nthe outline is the map. Read a saved file the way you already know how:\n",{"type":37,"tag":79,"props":759,"children":761},{"className":760},[],[762],{"type":43,"value":763},"wx.bash(\"grep -n 'term' \u003Cpath> | head -40\")",{"type":43,"value":765}," to find (GNU grep\u002Fsed, awk is mawk, no rg;\nacross everything saved: ",{"type":37,"tag":79,"props":767,"children":769},{"className":768},[],[770],{"type":43,"value":771},"grep -rn 'term' .agents\u002Fskills\u002Fwix-base44-connector\u002Fscratch\u002F",{"type":43,"value":773},"), and\n",{"type":37,"tag":79,"props":775,"children":777},{"className":776},[],[778],{"type":43,"value":779},"read_file",{"type":43,"value":781}," to quote — a window via ",{"type":37,"tag":79,"props":783,"children":785},{"className":784},[],[786],{"type":43,"value":787},"offset",{"type":43,"value":789},"\u002F",{"type":37,"tag":79,"props":791,"children":793},{"className":792},[],[794],{"type":43,"value":795},"limit",{"type":43,"value":797}," at the lines grep named, or the whole\nfile when it fits read_file's 45K cap. ",{"type":37,"tag":52,"props":799,"children":800},{},[801],{"type":43,"value":802},"API responses are site data and never land in\nscratch",{"type":43,"value":804}," — project them to facts. Fetch every URL inside exec with ",{"type":37,"tag":79,"props":806,"children":808},{"className":807},[],[809],{"type":43,"value":810},"fetch()",{"type":43,"value":812}," — website\u002Fbrowser\ntools clip at 10,000 chars silently. One exec per round; timeout 10s, up to 120 via ",{"type":37,"tag":79,"props":814,"children":816},{"className":815},[],[817],{"type":43,"value":818},"{timeout}",{"type":43,"value":164},{"type":37,"tag":60,"props":821,"children":823},{"id":822},"gather-context-the-dynamic-context-report",[824],{"type":43,"value":825},"Gather context — the dynamic context report",{"type":37,"tag":95,"props":827,"children":829},{"className":178,"code":828,"language":180,"meta":103,"style":103},"const { accessToken } = await base44.asServiceRole.connectors.getConnection(\"wix\");\nreturn await wx.context(accessToken, \"Apps\");   \u002F\u002F no section arg → the report's outline\n",[830],{"type":37,"tag":79,"props":831,"children":832},{"__ignoreMap":103},[833,918],{"type":37,"tag":186,"props":834,"children":835},{"class":188,"line":189},[836,840,844,849,854,858,862,867,871,876,880,885,889,894,898,902,906,910,914],{"type":37,"tag":186,"props":837,"children":838},{"style":193},[839],{"type":43,"value":196},{"type":37,"tag":186,"props":841,"children":842},{"style":205},[843],{"type":43,"value":356},{"type":37,"tag":186,"props":845,"children":846},{"style":199},[847],{"type":43,"value":848}," accessToken ",{"type":37,"tag":186,"props":850,"children":851},{"style":205},[852],{"type":43,"value":853},"}",{"type":37,"tag":186,"props":855,"children":856},{"style":205},[857],{"type":43,"value":530},{"type":37,"tag":186,"props":859,"children":860},{"style":279},[861],{"type":43,"value":421},{"type":37,"tag":186,"props":863,"children":864},{"style":199},[865],{"type":43,"value":866}," base44",{"type":37,"tag":186,"props":868,"children":869},{"style":205},[870],{"type":43,"value":164},{"type":37,"tag":186,"props":872,"children":873},{"style":199},[874],{"type":43,"value":875},"asServiceRole",{"type":37,"tag":186,"props":877,"children":878},{"style":205},[879],{"type":43,"value":164},{"type":37,"tag":186,"props":881,"children":882},{"style":199},[883],{"type":43,"value":884},"connectors",{"type":37,"tag":186,"props":886,"children":887},{"style":205},[888],{"type":43,"value":164},{"type":37,"tag":186,"props":890,"children":891},{"style":211},[892],{"type":43,"value":893},"getConnection",{"type":37,"tag":186,"props":895,"children":896},{"style":199},[897],{"type":43,"value":219},{"type":37,"tag":186,"props":899,"children":900},{"style":205},[901],{"type":43,"value":224},{"type":37,"tag":186,"props":903,"children":904},{"style":227},[905],{"type":43,"value":8},{"type":37,"tag":186,"props":907,"children":908},{"style":205},[909],{"type":43,"value":224},{"type":37,"tag":186,"props":911,"children":912},{"style":199},[913],{"type":43,"value":239},{"type":37,"tag":186,"props":915,"children":916},{"style":205},[917],{"type":43,"value":272},{"type":37,"tag":186,"props":919,"children":920},{"class":188,"line":275},[921,926,930,935,939,944,949,953,957,962,966,970,974],{"type":37,"tag":186,"props":922,"children":923},{"style":279},[924],{"type":43,"value":925},"return",{"type":37,"tag":186,"props":927,"children":928},{"style":279},[929],{"type":43,"value":421},{"type":37,"tag":186,"props":931,"children":932},{"style":199},[933],{"type":43,"value":934}," wx",{"type":37,"tag":186,"props":936,"children":937},{"style":205},[938],{"type":43,"value":164},{"type":37,"tag":186,"props":940,"children":941},{"style":211},[942],{"type":43,"value":943},"context",{"type":37,"tag":186,"props":945,"children":946},{"style":199},[947],{"type":43,"value":948},"(accessToken",{"type":37,"tag":186,"props":950,"children":951},{"style":205},[952],{"type":43,"value":244},{"type":37,"tag":186,"props":954,"children":955},{"style":205},[956],{"type":43,"value":258},{"type":37,"tag":186,"props":958,"children":959},{"style":227},[960],{"type":43,"value":961},"Apps",{"type":37,"tag":186,"props":963,"children":964},{"style":205},[965],{"type":43,"value":224},{"type":37,"tag":186,"props":967,"children":968},{"style":199},[969],{"type":43,"value":239},{"type":37,"tag":186,"props":971,"children":972},{"style":205},[973],{"type":43,"value":475},{"type":37,"tag":186,"props":975,"children":977},{"style":976},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic",[978],{"type":43,"value":979},"   \u002F\u002F no section arg → the report's outline\n",{"type":37,"tag":46,"props":981,"children":982},{},[983,985,990,992,1002],{"type":43,"value":984},"One report: installed apps ",{"type":37,"tag":52,"props":986,"children":987},{},[988],{"type":43,"value":989},"with ids",{"type":43,"value":991}," (incl. Stores' catalog version — V1 vs V3 decides its\nendpoints), the OAuth app id (",{"type":37,"tag":52,"props":993,"children":994},{},[995,997],{"type":43,"value":996},"also the visitor ",{"type":37,"tag":79,"props":998,"children":1000},{"className":999},[],[1001],{"type":43,"value":84},{"type":43,"value":1003},"), locale, currency, CMS collections.\nAn empty report = bad token, never an empty site.",{"type":37,"tag":60,"props":1005,"children":1007},{"id":1006},"learn-wix-find-the-apis-learn-their-contracts",[1008],{"type":43,"value":1009},"Learn Wix — find the APIs, learn their contracts",{"type":37,"tag":95,"props":1011,"children":1013},{"className":178,"code":1012,"language":180,"meta":103,"style":103},"\u002F\u002F know the product? browse is deterministic — menuUrl alone orients (children + counts);\n\u002F\u002F filter before listing methods, unfiltered listings clip\nawait wx.browse(\"https:\u002F\u002Fdev.wix.com\u002Fdocs\u002Fapi-reference\u002Fbusiness-solutions\u002Fbookings\u002Fbookings\",\n                { include: [\"METHOD\"], filter: \"resched\", depth: 4 });\n\n\u002F\u002F don't know where it lives? search ranks, never says \"no match\" — drop wrong-product hits\nawait wx.search(\"pause a pricing plan subscription and resume it\");\n\u002F\u002F → { hits: [{ method, endpoint \u002F* callable *\u002F, docsUrl, gist }] } — hits often ARE the answer\n",[1014],{"type":37,"tag":79,"props":1015,"children":1016},{"__ignoreMap":103},[1017,1025,1033,1075,1172,1181,1190,1236],{"type":37,"tag":186,"props":1018,"children":1019},{"class":188,"line":189},[1020],{"type":37,"tag":186,"props":1021,"children":1022},{"style":976},[1023],{"type":43,"value":1024},"\u002F\u002F know the product? browse is deterministic — menuUrl alone orients (children + counts);\n",{"type":37,"tag":186,"props":1026,"children":1027},{"class":188,"line":275},[1028],{"type":37,"tag":186,"props":1029,"children":1030},{"style":976},[1031],{"type":43,"value":1032},"\u002F\u002F filter before listing methods, unfiltered listings clip\n",{"type":37,"tag":186,"props":1034,"children":1035},{"class":188,"line":388},[1036,1040,1044,1048,1053,1057,1061,1066,1070],{"type":37,"tag":186,"props":1037,"children":1038},{"style":279},[1039],{"type":43,"value":430},{"type":37,"tag":186,"props":1041,"children":1042},{"style":199},[1043],{"type":43,"value":934},{"type":37,"tag":186,"props":1045,"children":1046},{"style":205},[1047],{"type":43,"value":164},{"type":37,"tag":186,"props":1049,"children":1050},{"style":211},[1051],{"type":43,"value":1052},"browse",{"type":37,"tag":186,"props":1054,"children":1055},{"style":199},[1056],{"type":43,"value":219},{"type":37,"tag":186,"props":1058,"children":1059},{"style":205},[1060],{"type":43,"value":224},{"type":37,"tag":186,"props":1062,"children":1063},{"style":227},[1064],{"type":43,"value":1065},"https:\u002F\u002Fdev.wix.com\u002Fdocs\u002Fapi-reference\u002Fbusiness-solutions\u002Fbookings\u002Fbookings",{"type":37,"tag":186,"props":1067,"children":1068},{"style":205},[1069],{"type":43,"value":224},{"type":37,"tag":186,"props":1071,"children":1072},{"style":205},[1073],{"type":43,"value":1074},",\n",{"type":37,"tag":186,"props":1076,"children":1077},{"class":188,"line":483},[1078,1083,1088,1092,1097,1101,1106,1110,1115,1119,1124,1128,1132,1137,1141,1145,1150,1154,1160,1164,1168],{"type":37,"tag":186,"props":1079,"children":1080},{"style":205},[1081],{"type":43,"value":1082},"                {",{"type":37,"tag":186,"props":1084,"children":1085},{"style":332},[1086],{"type":43,"value":1087}," include",{"type":37,"tag":186,"props":1089,"children":1090},{"style":205},[1091],{"type":43,"value":366},{"type":37,"tag":186,"props":1093,"children":1094},{"style":199},[1095],{"type":43,"value":1096}," [",{"type":37,"tag":186,"props":1098,"children":1099},{"style":205},[1100],{"type":43,"value":224},{"type":37,"tag":186,"props":1102,"children":1103},{"style":227},[1104],{"type":43,"value":1105},"METHOD",{"type":37,"tag":186,"props":1107,"children":1108},{"style":205},[1109],{"type":43,"value":224},{"type":37,"tag":186,"props":1111,"children":1112},{"style":199},[1113],{"type":43,"value":1114},"]",{"type":37,"tag":186,"props":1116,"children":1117},{"style":205},[1118],{"type":43,"value":244},{"type":37,"tag":186,"props":1120,"children":1121},{"style":332},[1122],{"type":43,"value":1123}," filter",{"type":37,"tag":186,"props":1125,"children":1126},{"style":205},[1127],{"type":43,"value":366},{"type":37,"tag":186,"props":1129,"children":1130},{"style":205},[1131],{"type":43,"value":258},{"type":37,"tag":186,"props":1133,"children":1134},{"style":227},[1135],{"type":43,"value":1136},"resched",{"type":37,"tag":186,"props":1138,"children":1139},{"style":205},[1140],{"type":43,"value":224},{"type":37,"tag":186,"props":1142,"children":1143},{"style":205},[1144],{"type":43,"value":244},{"type":37,"tag":186,"props":1146,"children":1147},{"style":332},[1148],{"type":43,"value":1149}," depth",{"type":37,"tag":186,"props":1151,"children":1152},{"style":205},[1153],{"type":43,"value":366},{"type":37,"tag":186,"props":1155,"children":1157},{"style":1156},"--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C",[1158],{"type":43,"value":1159}," 4",{"type":37,"tag":186,"props":1161,"children":1162},{"style":205},[1163],{"type":43,"value":377},{"type":37,"tag":186,"props":1165,"children":1166},{"style":199},[1167],{"type":43,"value":239},{"type":37,"tag":186,"props":1169,"children":1170},{"style":205},[1171],{"type":43,"value":272},{"type":37,"tag":186,"props":1173,"children":1174},{"class":188,"line":556},[1175],{"type":37,"tag":186,"props":1176,"children":1178},{"emptyLinePlaceholder":1177},true,[1179],{"type":43,"value":1180},"\n",{"type":37,"tag":186,"props":1182,"children":1184},{"class":188,"line":1183},6,[1185],{"type":37,"tag":186,"props":1186,"children":1187},{"style":976},[1188],{"type":43,"value":1189},"\u002F\u002F don't know where it lives? search ranks, never says \"no match\" — drop wrong-product hits\n",{"type":37,"tag":186,"props":1191,"children":1193},{"class":188,"line":1192},7,[1194,1198,1202,1206,1211,1215,1219,1224,1228,1232],{"type":37,"tag":186,"props":1195,"children":1196},{"style":279},[1197],{"type":43,"value":430},{"type":37,"tag":186,"props":1199,"children":1200},{"style":199},[1201],{"type":43,"value":934},{"type":37,"tag":186,"props":1203,"children":1204},{"style":205},[1205],{"type":43,"value":164},{"type":37,"tag":186,"props":1207,"children":1208},{"style":211},[1209],{"type":43,"value":1210},"search",{"type":37,"tag":186,"props":1212,"children":1213},{"style":199},[1214],{"type":43,"value":219},{"type":37,"tag":186,"props":1216,"children":1217},{"style":205},[1218],{"type":43,"value":224},{"type":37,"tag":186,"props":1220,"children":1221},{"style":227},[1222],{"type":43,"value":1223},"pause a pricing plan subscription and resume it",{"type":37,"tag":186,"props":1225,"children":1226},{"style":205},[1227],{"type":43,"value":224},{"type":37,"tag":186,"props":1229,"children":1230},{"style":199},[1231],{"type":43,"value":239},{"type":37,"tag":186,"props":1233,"children":1234},{"style":205},[1235],{"type":43,"value":272},{"type":37,"tag":186,"props":1237,"children":1239},{"class":188,"line":1238},8,[1240],{"type":37,"tag":186,"props":1241,"children":1242},{"style":976},[1243],{"type":43,"value":1244},"\u002F\u002F → { hits: [{ method, endpoint \u002F* callable *\u002F, docsUrl, gist }] } — hits often ARE the answer\n",{"type":37,"tag":46,"props":1246,"children":1247},{},[1248],{"type":43,"value":1249},"Go deeper for fields, enums, or absence — only the spec index proves absence.",{"type":37,"tag":1251,"props":1252,"children":1254},"h3",{"id":1253},"read-a-doc-page",[1255],{"type":43,"value":1256},"Read a doc page",{"type":37,"tag":46,"props":1258,"children":1259},{},[1260],{"type":43,"value":1261},"Method pages are 100 KB+, twin REST and SDK halves repeating field names at different types —\nmap and window in the SAME exec; coordinates are for your code, not for a second round:",{"type":37,"tag":95,"props":1263,"children":1265},{"className":178,"code":1264,"language":180,"meta":103,"style":103},"const pg = await wx.page(docsUrl);   \u002F\u002F whole text when small; else { path, bytes, lines, outline }\n\u002F\u002F your half, windowed to your term and its Examples (a complete working request — URL, headers,\n\u002F\u002F body — usually all you need), one round:\nreturn wx.bash(`sed -n '\u002F^## REST API\u002F,\u002F^## JavaScript SDK\u002Fp' ${pg.path} | grep -B5 -A40 -i 'examples\\\\|\u003Cterm>' | head -c 3800`);\n\u002F\u002F a giant fenced example → its field vocabulary instead of paging it:\n\u002F\u002F wx.bash(`sed -n '\u003Ca>,\u003Cb>p' ${pg.path} | grep -oE '\"[a-zA-Z]+\":' | sort -u | head -60`)\n",[1266],{"type":37,"tag":79,"props":1267,"children":1268},{"__ignoreMap":103},[1269,1316,1324,1332,1416,1424],{"type":37,"tag":186,"props":1270,"children":1271},{"class":188,"line":189},[1272,1276,1281,1285,1289,1293,1297,1302,1307,1311],{"type":37,"tag":186,"props":1273,"children":1274},{"style":193},[1275],{"type":43,"value":196},{"type":37,"tag":186,"props":1277,"children":1278},{"style":199},[1279],{"type":43,"value":1280}," pg ",{"type":37,"tag":186,"props":1282,"children":1283},{"style":205},[1284],{"type":43,"value":208},{"type":37,"tag":186,"props":1286,"children":1287},{"style":279},[1288],{"type":43,"value":421},{"type":37,"tag":186,"props":1290,"children":1291},{"style":199},[1292],{"type":43,"value":934},{"type":37,"tag":186,"props":1294,"children":1295},{"style":205},[1296],{"type":43,"value":164},{"type":37,"tag":186,"props":1298,"children":1299},{"style":211},[1300],{"type":43,"value":1301},"page",{"type":37,"tag":186,"props":1303,"children":1304},{"style":199},[1305],{"type":43,"value":1306},"(docsUrl)",{"type":37,"tag":186,"props":1308,"children":1309},{"style":205},[1310],{"type":43,"value":475},{"type":37,"tag":186,"props":1312,"children":1313},{"style":976},[1314],{"type":43,"value":1315},"   \u002F\u002F whole text when small; else { path, bytes, lines, outline }\n",{"type":37,"tag":186,"props":1317,"children":1318},{"class":188,"line":275},[1319],{"type":37,"tag":186,"props":1320,"children":1321},{"style":976},[1322],{"type":43,"value":1323},"\u002F\u002F your half, windowed to your term and its Examples (a complete working request — URL, headers,\n",{"type":37,"tag":186,"props":1325,"children":1326},{"class":188,"line":388},[1327],{"type":37,"tag":186,"props":1328,"children":1329},{"style":976},[1330],{"type":43,"value":1331},"\u002F\u002F body — usually all you need), one round:\n",{"type":37,"tag":186,"props":1333,"children":1334},{"class":188,"line":483},[1335,1339,1343,1347,1352,1356,1361,1366,1371,1376,1380,1385,1389,1394,1399,1404,1408,1412],{"type":37,"tag":186,"props":1336,"children":1337},{"style":279},[1338],{"type":43,"value":925},{"type":37,"tag":186,"props":1340,"children":1341},{"style":199},[1342],{"type":43,"value":934},{"type":37,"tag":186,"props":1344,"children":1345},{"style":205},[1346],{"type":43,"value":164},{"type":37,"tag":186,"props":1348,"children":1349},{"style":211},[1350],{"type":43,"value":1351},"bash",{"type":37,"tag":186,"props":1353,"children":1354},{"style":199},[1355],{"type":43,"value":219},{"type":37,"tag":186,"props":1357,"children":1358},{"style":205},[1359],{"type":43,"value":1360},"`",{"type":37,"tag":186,"props":1362,"children":1363},{"style":227},[1364],{"type":43,"value":1365},"sed -n '\u002F^## REST API\u002F,\u002F^## JavaScript SDK\u002Fp' ",{"type":37,"tag":186,"props":1367,"children":1368},{"style":205},[1369],{"type":43,"value":1370},"${",{"type":37,"tag":186,"props":1372,"children":1373},{"style":199},[1374],{"type":43,"value":1375},"pg",{"type":37,"tag":186,"props":1377,"children":1378},{"style":205},[1379],{"type":43,"value":164},{"type":37,"tag":186,"props":1381,"children":1382},{"style":199},[1383],{"type":43,"value":1384},"path",{"type":37,"tag":186,"props":1386,"children":1387},{"style":205},[1388],{"type":43,"value":853},{"type":37,"tag":186,"props":1390,"children":1391},{"style":227},[1392],{"type":43,"value":1393}," | grep -B5 -A40 -i 'examples",{"type":37,"tag":186,"props":1395,"children":1396},{"style":199},[1397],{"type":43,"value":1398},"\\\\",{"type":37,"tag":186,"props":1400,"children":1401},{"style":227},[1402],{"type":43,"value":1403},"|\u003Cterm>' | head -c 3800",{"type":37,"tag":186,"props":1405,"children":1406},{"style":205},[1407],{"type":43,"value":1360},{"type":37,"tag":186,"props":1409,"children":1410},{"style":199},[1411],{"type":43,"value":239},{"type":37,"tag":186,"props":1413,"children":1414},{"style":205},[1415],{"type":43,"value":272},{"type":37,"tag":186,"props":1417,"children":1418},{"class":188,"line":556},[1419],{"type":37,"tag":186,"props":1420,"children":1421},{"style":976},[1422],{"type":43,"value":1423},"\u002F\u002F a giant fenced example → its field vocabulary instead of paging it:\n",{"type":37,"tag":186,"props":1425,"children":1426},{"class":188,"line":1183},[1427],{"type":37,"tag":186,"props":1428,"children":1429},{"style":976},[1430],{"type":43,"value":1431},"\u002F\u002F wx.bash(`sed -n '\u003Ca>,\u003Cb>p' ${pg.path} | grep -oE '\"[a-zA-Z]+\":' | sort -u | head -60`)\n",{"type":37,"tag":46,"props":1433,"children":1434},{},[1435,1440,1442,1447],{"type":37,"tag":79,"props":1436,"children":1438},{"className":1437},[],[1439],{"type":43,"value":1210},{"type":43,"value":1441}," also saves its raw content beside the inline hits — grep its ",{"type":37,"tag":79,"props":1443,"children":1445},{"className":1444},[],[1446],{"type":43,"value":1384},{"type":43,"value":1448}," when a hit's six\nlines weren't enough.",{"type":37,"tag":1251,"props":1450,"children":1452},{"id":1451},"the-spec-index",[1453],{"type":43,"value":1454},"The spec index",{"type":37,"tag":46,"props":1456,"children":1457},{},[1458,1460,1466],{"type":43,"value":1459},"Answers questions about pages you already found — arrive with a ",{"type":37,"tag":79,"props":1461,"children":1463},{"className":1462},[],[1464],{"type":43,"value":1465},"docsUrl",{"type":43,"value":1467},", match by it. Also the\nonly proof an API does NOT exist:",{"type":37,"tag":95,"props":1469,"children":1471},{"className":178,"code":1470,"language":180,"meta":103,"style":103},"await wx.spec(`\n  const r = lightIndex.find(x => x.docsUrl === \"\u003CdocsUrl from browse\u002Fsearch>\");\n  return r.methods.map(m => ({ op: m.operationId.split(\".\").pop(), verb: m.httpMethod,\n                               call: m.publicUrl }));   \u002F\u002F publicUrl is callable — path is PARTIAL\n`);\n\u002F\u002F request fields next round: getResourceSchemaByUrl(docsUrl) →\n\u002F\u002F   m.requestBody.content[\"application\u002Fjson\"].schema.properties — names and types, drill deeper\n\u002F\u002F   per round; $circular stubs resolve via s.components.schemas[\"\u003Cname>\"]\n",[1472],{"type":37,"tag":79,"props":1473,"children":1474},{"__ignoreMap":103},[1475,1504,1512,1520,1528,1543,1551,1559],{"type":37,"tag":186,"props":1476,"children":1477},{"class":188,"line":189},[1478,1482,1486,1490,1495,1499],{"type":37,"tag":186,"props":1479,"children":1480},{"style":279},[1481],{"type":43,"value":430},{"type":37,"tag":186,"props":1483,"children":1484},{"style":199},[1485],{"type":43,"value":934},{"type":37,"tag":186,"props":1487,"children":1488},{"style":205},[1489],{"type":43,"value":164},{"type":37,"tag":186,"props":1491,"children":1492},{"style":211},[1493],{"type":43,"value":1494},"spec",{"type":37,"tag":186,"props":1496,"children":1497},{"style":199},[1498],{"type":43,"value":219},{"type":37,"tag":186,"props":1500,"children":1501},{"style":205},[1502],{"type":43,"value":1503},"`\n",{"type":37,"tag":186,"props":1505,"children":1506},{"class":188,"line":275},[1507],{"type":37,"tag":186,"props":1508,"children":1509},{"style":227},[1510],{"type":43,"value":1511},"  const r = lightIndex.find(x => x.docsUrl === \"\u003CdocsUrl from browse\u002Fsearch>\");\n",{"type":37,"tag":186,"props":1513,"children":1514},{"class":188,"line":388},[1515],{"type":37,"tag":186,"props":1516,"children":1517},{"style":227},[1518],{"type":43,"value":1519},"  return r.methods.map(m => ({ op: m.operationId.split(\".\").pop(), verb: m.httpMethod,\n",{"type":37,"tag":186,"props":1521,"children":1522},{"class":188,"line":483},[1523],{"type":37,"tag":186,"props":1524,"children":1525},{"style":227},[1526],{"type":43,"value":1527},"                               call: m.publicUrl }));   \u002F\u002F publicUrl is callable — path is PARTIAL\n",{"type":37,"tag":186,"props":1529,"children":1530},{"class":188,"line":556},[1531,1535,1539],{"type":37,"tag":186,"props":1532,"children":1533},{"style":205},[1534],{"type":43,"value":1360},{"type":37,"tag":186,"props":1536,"children":1537},{"style":199},[1538],{"type":43,"value":239},{"type":37,"tag":186,"props":1540,"children":1541},{"style":205},[1542],{"type":43,"value":272},{"type":37,"tag":186,"props":1544,"children":1545},{"class":188,"line":1183},[1546],{"type":37,"tag":186,"props":1547,"children":1548},{"style":976},[1549],{"type":43,"value":1550},"\u002F\u002F request fields next round: getResourceSchemaByUrl(docsUrl) →\n",{"type":37,"tag":186,"props":1552,"children":1553},{"class":188,"line":1192},[1554],{"type":37,"tag":186,"props":1555,"children":1556},{"style":976},[1557],{"type":43,"value":1558},"\u002F\u002F   m.requestBody.content[\"application\u002Fjson\"].schema.properties — names and types, drill deeper\n",{"type":37,"tag":186,"props":1560,"children":1561},{"class":188,"line":1238},[1562],{"type":37,"tag":186,"props":1563,"children":1564},{"style":976},[1565],{"type":43,"value":1566},"\u002F\u002F   per round; $circular stubs resolve via s.components.schemas[\"\u003Cname>\"]\n",{"type":37,"tag":1251,"props":1568,"children":1570},{"id":1569},"management-recipes-check-before-composing-admin-flows",[1571],{"type":43,"value":1572},"Management recipes — check before composing admin flows",{"type":37,"tag":46,"props":1574,"children":1575},{},[1576],{"type":43,"value":1577},"~100 curated multi-step recipes (install apps, seed catalogs, set up whole verticals):",{"type":37,"tag":95,"props":1579,"children":1581},{"className":178,"code":1580,"language":180,"meta":103,"style":103},"await wx.recipes();           \u002F\u002F categories with counts\nawait wx.recipes(\"stores\");   \u002F\u002F a category's list — or any task word: wx.recipes(\"coupon\")\nawait wx.page(url);           \u002F\u002F read the chosen recipe — whole when small, saved + outline when\n                              \u002F\u002F big; then grep \u002F read_file windows by the outline's line numbers\n",[1582],{"type":37,"tag":79,"props":1583,"children":1584},{"__ignoreMap":103},[1585,1618,1667,1700],{"type":37,"tag":186,"props":1586,"children":1587},{"class":188,"line":189},[1588,1592,1596,1600,1605,1609,1613],{"type":37,"tag":186,"props":1589,"children":1590},{"style":279},[1591],{"type":43,"value":430},{"type":37,"tag":186,"props":1593,"children":1594},{"style":199},[1595],{"type":43,"value":934},{"type":37,"tag":186,"props":1597,"children":1598},{"style":205},[1599],{"type":43,"value":164},{"type":37,"tag":186,"props":1601,"children":1602},{"style":211},[1603],{"type":43,"value":1604},"recipes",{"type":37,"tag":186,"props":1606,"children":1607},{"style":199},[1608],{"type":43,"value":506},{"type":37,"tag":186,"props":1610,"children":1611},{"style":205},[1612],{"type":43,"value":475},{"type":37,"tag":186,"props":1614,"children":1615},{"style":976},[1616],{"type":43,"value":1617},"           \u002F\u002F categories with counts\n",{"type":37,"tag":186,"props":1619,"children":1620},{"class":188,"line":275},[1621,1625,1629,1633,1637,1641,1645,1650,1654,1658,1662],{"type":37,"tag":186,"props":1622,"children":1623},{"style":279},[1624],{"type":43,"value":430},{"type":37,"tag":186,"props":1626,"children":1627},{"style":199},[1628],{"type":43,"value":934},{"type":37,"tag":186,"props":1630,"children":1631},{"style":205},[1632],{"type":43,"value":164},{"type":37,"tag":186,"props":1634,"children":1635},{"style":211},[1636],{"type":43,"value":1604},{"type":37,"tag":186,"props":1638,"children":1639},{"style":199},[1640],{"type":43,"value":219},{"type":37,"tag":186,"props":1642,"children":1643},{"style":205},[1644],{"type":43,"value":224},{"type":37,"tag":186,"props":1646,"children":1647},{"style":227},[1648],{"type":43,"value":1649},"stores",{"type":37,"tag":186,"props":1651,"children":1652},{"style":205},[1653],{"type":43,"value":224},{"type":37,"tag":186,"props":1655,"children":1656},{"style":199},[1657],{"type":43,"value":239},{"type":37,"tag":186,"props":1659,"children":1660},{"style":205},[1661],{"type":43,"value":475},{"type":37,"tag":186,"props":1663,"children":1664},{"style":976},[1665],{"type":43,"value":1666},"   \u002F\u002F a category's list — or any task word: wx.recipes(\"coupon\")\n",{"type":37,"tag":186,"props":1668,"children":1669},{"class":188,"line":388},[1670,1674,1678,1682,1686,1691,1695],{"type":37,"tag":186,"props":1671,"children":1672},{"style":279},[1673],{"type":43,"value":430},{"type":37,"tag":186,"props":1675,"children":1676},{"style":199},[1677],{"type":43,"value":934},{"type":37,"tag":186,"props":1679,"children":1680},{"style":205},[1681],{"type":43,"value":164},{"type":37,"tag":186,"props":1683,"children":1684},{"style":211},[1685],{"type":43,"value":1301},{"type":37,"tag":186,"props":1687,"children":1688},{"style":199},[1689],{"type":43,"value":1690},"(url)",{"type":37,"tag":186,"props":1692,"children":1693},{"style":205},[1694],{"type":43,"value":475},{"type":37,"tag":186,"props":1696,"children":1697},{"style":976},[1698],{"type":43,"value":1699},"           \u002F\u002F read the chosen recipe — whole when small, saved + outline when\n",{"type":37,"tag":186,"props":1701,"children":1702},{"class":188,"line":483},[1703],{"type":37,"tag":186,"props":1704,"children":1705},{"style":976},[1706],{"type":43,"value":1707},"                              \u002F\u002F big; then grep \u002F read_file windows by the outline's line numbers\n",{"type":37,"tag":46,"props":1709,"children":1710},{},[1711],{"type":43,"value":1712},"A matching recipe beats composing the flow from single endpoints: it carries ordering and\ncross-step gotchas no method page mentions.",{"type":37,"tag":60,"props":1714,"children":1716},{"id":1715},"write-the-code",[1717],{"type":43,"value":1718},"Write the code",{"type":37,"tag":46,"props":1720,"children":1721},{},[1722,1727],{"type":37,"tag":52,"props":1723,"children":1724},{},[1725],{"type":43,"value":1726},"Response shapes obey the discover rule in every lane",{"type":43,"value":1728},": code against fields you saw in a live\nresponse or the schema — remembered names are often from older versions. Probe one real row first.",{"type":37,"tag":1251,"props":1730,"children":1732},{"id":1731},"admin-calls-exec-ad-hoc-backend-functions-deployed",[1733],{"type":43,"value":1734},"Admin calls — exec ad hoc, backend functions deployed",{"type":37,"tag":95,"props":1736,"children":1738},{"className":178,"code":1737,"language":180,"meta":103,"style":103},"const { accessToken } = await base44.asServiceRole.connectors.getConnection(\"wix\");\nconst data = await wx.post(\"https:\u002F\u002Fwww.wixapis.com\u002Fcontacts\u002Fv5\u002Fcontacts\u002Fquery\",   \u002F\u002F spec-index publicUrl\n  { query: { cursorPaging: { limit: 10 } } }, accessToken);\n\u002F\u002F let it throw — the thrown message is your result; .catch hides the answer\nreturn wx.clip({ error: null, count: data.contacts?.length, first: data.contacts?.[0] });\n\u002F\u002F  ↑ one real row, whole — the shapes you code against live here, not in key names\n",[1739],{"type":37,"tag":79,"props":1740,"children":1741},{"__ignoreMap":103},[1742,1821,1880,1950,1958,2089],{"type":37,"tag":186,"props":1743,"children":1744},{"class":188,"line":189},[1745,1749,1753,1757,1761,1765,1769,1773,1777,1781,1785,1789,1793,1797,1801,1805,1809,1813,1817],{"type":37,"tag":186,"props":1746,"children":1747},{"style":193},[1748],{"type":43,"value":196},{"type":37,"tag":186,"props":1750,"children":1751},{"style":205},[1752],{"type":43,"value":356},{"type":37,"tag":186,"props":1754,"children":1755},{"style":199},[1756],{"type":43,"value":848},{"type":37,"tag":186,"props":1758,"children":1759},{"style":205},[1760],{"type":43,"value":853},{"type":37,"tag":186,"props":1762,"children":1763},{"style":205},[1764],{"type":43,"value":530},{"type":37,"tag":186,"props":1766,"children":1767},{"style":279},[1768],{"type":43,"value":421},{"type":37,"tag":186,"props":1770,"children":1771},{"style":199},[1772],{"type":43,"value":866},{"type":37,"tag":186,"props":1774,"children":1775},{"style":205},[1776],{"type":43,"value":164},{"type":37,"tag":186,"props":1778,"children":1779},{"style":199},[1780],{"type":43,"value":875},{"type":37,"tag":186,"props":1782,"children":1783},{"style":205},[1784],{"type":43,"value":164},{"type":37,"tag":186,"props":1786,"children":1787},{"style":199},[1788],{"type":43,"value":884},{"type":37,"tag":186,"props":1790,"children":1791},{"style":205},[1792],{"type":43,"value":164},{"type":37,"tag":186,"props":1794,"children":1795},{"style":211},[1796],{"type":43,"value":893},{"type":37,"tag":186,"props":1798,"children":1799},{"style":199},[1800],{"type":43,"value":219},{"type":37,"tag":186,"props":1802,"children":1803},{"style":205},[1804],{"type":43,"value":224},{"type":37,"tag":186,"props":1806,"children":1807},{"style":227},[1808],{"type":43,"value":8},{"type":37,"tag":186,"props":1810,"children":1811},{"style":205},[1812],{"type":43,"value":224},{"type":37,"tag":186,"props":1814,"children":1815},{"style":199},[1816],{"type":43,"value":239},{"type":37,"tag":186,"props":1818,"children":1819},{"style":205},[1820],{"type":43,"value":272},{"type":37,"tag":186,"props":1822,"children":1823},{"class":188,"line":275},[1824,1828,1833,1837,1841,1845,1849,1854,1858,1862,1867,1871,1875],{"type":37,"tag":186,"props":1825,"children":1826},{"style":193},[1827],{"type":43,"value":196},{"type":37,"tag":186,"props":1829,"children":1830},{"style":199},[1831],{"type":43,"value":1832}," data ",{"type":37,"tag":186,"props":1834,"children":1835},{"style":205},[1836],{"type":43,"value":208},{"type":37,"tag":186,"props":1838,"children":1839},{"style":279},[1840],{"type":43,"value":421},{"type":37,"tag":186,"props":1842,"children":1843},{"style":199},[1844],{"type":43,"value":934},{"type":37,"tag":186,"props":1846,"children":1847},{"style":205},[1848],{"type":43,"value":164},{"type":37,"tag":186,"props":1850,"children":1851},{"style":211},[1852],{"type":43,"value":1853},"post",{"type":37,"tag":186,"props":1855,"children":1856},{"style":199},[1857],{"type":43,"value":219},{"type":37,"tag":186,"props":1859,"children":1860},{"style":205},[1861],{"type":43,"value":224},{"type":37,"tag":186,"props":1863,"children":1864},{"style":227},[1865],{"type":43,"value":1866},"https:\u002F\u002Fwww.wixapis.com\u002Fcontacts\u002Fv5\u002Fcontacts\u002Fquery",{"type":37,"tag":186,"props":1868,"children":1869},{"style":205},[1870],{"type":43,"value":224},{"type":37,"tag":186,"props":1872,"children":1873},{"style":205},[1874],{"type":43,"value":244},{"type":37,"tag":186,"props":1876,"children":1877},{"style":976},[1878],{"type":43,"value":1879},"   \u002F\u002F spec-index publicUrl\n",{"type":37,"tag":186,"props":1881,"children":1882},{"class":188,"line":388},[1883,1888,1893,1897,1901,1906,1910,1914,1919,1923,1928,1932,1936,1941,1946],{"type":37,"tag":186,"props":1884,"children":1885},{"style":205},[1886],{"type":43,"value":1887},"  {",{"type":37,"tag":186,"props":1889,"children":1890},{"style":332},[1891],{"type":43,"value":1892}," query",{"type":37,"tag":186,"props":1894,"children":1895},{"style":205},[1896],{"type":43,"value":366},{"type":37,"tag":186,"props":1898,"children":1899},{"style":205},[1900],{"type":43,"value":356},{"type":37,"tag":186,"props":1902,"children":1903},{"style":332},[1904],{"type":43,"value":1905}," cursorPaging",{"type":37,"tag":186,"props":1907,"children":1908},{"style":205},[1909],{"type":43,"value":366},{"type":37,"tag":186,"props":1911,"children":1912},{"style":205},[1913],{"type":43,"value":356},{"type":37,"tag":186,"props":1915,"children":1916},{"style":332},[1917],{"type":43,"value":1918}," limit",{"type":37,"tag":186,"props":1920,"children":1921},{"style":205},[1922],{"type":43,"value":366},{"type":37,"tag":186,"props":1924,"children":1925},{"style":1156},[1926],{"type":43,"value":1927}," 10",{"type":37,"tag":186,"props":1929,"children":1930},{"style":205},[1931],{"type":43,"value":377},{"type":37,"tag":186,"props":1933,"children":1934},{"style":205},[1935],{"type":43,"value":377},{"type":37,"tag":186,"props":1937,"children":1938},{"style":205},[1939],{"type":43,"value":1940}," },",{"type":37,"tag":186,"props":1942,"children":1943},{"style":199},[1944],{"type":43,"value":1945}," accessToken)",{"type":37,"tag":186,"props":1947,"children":1948},{"style":205},[1949],{"type":43,"value":272},{"type":37,"tag":186,"props":1951,"children":1952},{"class":188,"line":483},[1953],{"type":37,"tag":186,"props":1954,"children":1955},{"style":976},[1956],{"type":43,"value":1957},"\u002F\u002F let it throw — the thrown message is your result; .catch hides the answer\n",{"type":37,"tag":186,"props":1959,"children":1960},{"class":188,"line":556},[1961,1965,1969,1973,1978,1982,1986,1991,1995,2000,2005,2009,2014,2018,2023,2028,2033,2037,2042,2046,2050,2054,2058,2062,2067,2072,2077,2081,2085],{"type":37,"tag":186,"props":1962,"children":1963},{"style":279},[1964],{"type":43,"value":925},{"type":37,"tag":186,"props":1966,"children":1967},{"style":199},[1968],{"type":43,"value":934},{"type":37,"tag":186,"props":1970,"children":1971},{"style":205},[1972],{"type":43,"value":164},{"type":37,"tag":186,"props":1974,"children":1975},{"style":211},[1976],{"type":43,"value":1977},"clip",{"type":37,"tag":186,"props":1979,"children":1980},{"style":199},[1981],{"type":43,"value":219},{"type":37,"tag":186,"props":1983,"children":1984},{"style":205},[1985],{"type":43,"value":315},{"type":37,"tag":186,"props":1987,"children":1988},{"style":332},[1989],{"type":43,"value":1990}," error",{"type":37,"tag":186,"props":1992,"children":1993},{"style":205},[1994],{"type":43,"value":366},{"type":37,"tag":186,"props":1996,"children":1997},{"style":205},[1998],{"type":43,"value":1999}," null,",{"type":37,"tag":186,"props":2001,"children":2002},{"style":332},[2003],{"type":43,"value":2004}," count",{"type":37,"tag":186,"props":2006,"children":2007},{"style":205},[2008],{"type":43,"value":366},{"type":37,"tag":186,"props":2010,"children":2011},{"style":199},[2012],{"type":43,"value":2013}," data",{"type":37,"tag":186,"props":2015,"children":2016},{"style":205},[2017],{"type":43,"value":164},{"type":37,"tag":186,"props":2019,"children":2020},{"style":199},[2021],{"type":43,"value":2022},"contacts",{"type":37,"tag":186,"props":2024,"children":2025},{"style":205},[2026],{"type":43,"value":2027},"?.",{"type":37,"tag":186,"props":2029,"children":2030},{"style":199},[2031],{"type":43,"value":2032},"length",{"type":37,"tag":186,"props":2034,"children":2035},{"style":205},[2036],{"type":43,"value":244},{"type":37,"tag":186,"props":2038,"children":2039},{"style":332},[2040],{"type":43,"value":2041}," first",{"type":37,"tag":186,"props":2043,"children":2044},{"style":205},[2045],{"type":43,"value":366},{"type":37,"tag":186,"props":2047,"children":2048},{"style":199},[2049],{"type":43,"value":2013},{"type":37,"tag":186,"props":2051,"children":2052},{"style":205},[2053],{"type":43,"value":164},{"type":37,"tag":186,"props":2055,"children":2056},{"style":199},[2057],{"type":43,"value":2022},{"type":37,"tag":186,"props":2059,"children":2060},{"style":205},[2061],{"type":43,"value":2027},{"type":37,"tag":186,"props":2063,"children":2064},{"style":199},[2065],{"type":43,"value":2066},"[",{"type":37,"tag":186,"props":2068,"children":2069},{"style":1156},[2070],{"type":43,"value":2071},"0",{"type":37,"tag":186,"props":2073,"children":2074},{"style":199},[2075],{"type":43,"value":2076},"] ",{"type":37,"tag":186,"props":2078,"children":2079},{"style":205},[2080],{"type":43,"value":853},{"type":37,"tag":186,"props":2082,"children":2083},{"style":199},[2084],{"type":43,"value":239},{"type":37,"tag":186,"props":2086,"children":2087},{"style":205},[2088],{"type":43,"value":272},{"type":37,"tag":186,"props":2090,"children":2091},{"class":188,"line":1183},[2092],{"type":37,"tag":186,"props":2093,"children":2094},{"style":976},[2095],{"type":43,"value":2096},"\u002F\u002F  ↑ one real row, whole — the shapes you code against live here, not in key names\n",{"type":37,"tag":46,"props":2098,"children":2099},{},[2100,2102,2107],{"type":43,"value":2101},"The same call deploys as ",{"type":37,"tag":79,"props":2103,"children":2105},{"className":2104},[],[2106],{"type":43,"value":144},{"type":43,"value":2108}," (work the app does as the owner) — shipped code\ncarries its own four-line fetch; the helpers are a build tool, not a runtime dependency.",{"type":37,"tag":1251,"props":2110,"children":2112},{"id":2111},"a-visitor-client-srclibwixclientjs",[2113],{"type":43,"value":2114},"A visitor client — src\u002Flib\u002FwixClient.js",{"type":37,"tag":46,"props":2116,"children":2117},{},[2118,2120,2125],{"type":43,"value":2119},"The \"site for visitors\" shape (What are you building?), in code — one file pages import. Neither\n",{"type":37,"tag":79,"props":2121,"children":2123},{"className":2122},[],[2124],{"type":43,"value":84},{"type":43,"value":2126}," (from the context report) nor the minted token is a secret; together they are \"an\nanonymous visitor\", safe in shipped code:",{"type":37,"tag":95,"props":2128,"children":2130},{"className":178,"code":2129,"language":180,"meta":103,"style":103},"\u002F\u002F src\u002Flib\u002FwixClient.js\nlet token;\nconst mint = async (body) => {\n  const r = await (await fetch(\"https:\u002F\u002Fwww.wixapis.com\u002Foauth2\u002Ftoken\", { method: \"POST\",\n    headers: { \"Content-Type\": \"application\u002Fjson\" }, body: JSON.stringify(body) })).json();\n  token = r.access_token; sessionStorage.setItem(\"wixRefresh\", r.refresh_token);   \u002F\u002F expires_in: 14400s = 4h\n};\n\u002F\u002F first visit:  mint({ clientId: WIX_CLIENT_ID, grantType: \"anonymous\" });\n\u002F\u002F on expiry:    mint({ refreshToken: sessionStorage.getItem(\"wixRefresh\"), grantType: \"refresh_token\" });\n\u002F\u002F               a fresh anonymous mint is a NEW visitor — the old one's cart goes with it\nexport const wix = (path, opts = {}) => fetch(\"https:\u002F\u002Fwww.wixapis.com\" + path, { ...opts,\n  headers: { Authorization: `Bearer ${token}`, \"Content-Type\": \"application\u002Fjson\" } });\n",[2131],{"type":37,"tag":79,"props":2132,"children":2133},{"__ignoreMap":103},[2134,2142,2159,2203,2287,2398,2488,2496,2504,2513,2522,2627],{"type":37,"tag":186,"props":2135,"children":2136},{"class":188,"line":189},[2137],{"type":37,"tag":186,"props":2138,"children":2139},{"style":976},[2140],{"type":43,"value":2141},"\u002F\u002F src\u002Flib\u002FwixClient.js\n",{"type":37,"tag":186,"props":2143,"children":2144},{"class":188,"line":275},[2145,2150,2155],{"type":37,"tag":186,"props":2146,"children":2147},{"style":193},[2148],{"type":43,"value":2149},"let",{"type":37,"tag":186,"props":2151,"children":2152},{"style":199},[2153],{"type":43,"value":2154}," token",{"type":37,"tag":186,"props":2156,"children":2157},{"style":205},[2158],{"type":43,"value":272},{"type":37,"tag":186,"props":2160,"children":2161},{"class":188,"line":388},[2162,2166,2171,2175,2180,2184,2190,2194,2198],{"type":37,"tag":186,"props":2163,"children":2164},{"style":193},[2165],{"type":43,"value":196},{"type":37,"tag":186,"props":2167,"children":2168},{"style":199},[2169],{"type":43,"value":2170}," mint ",{"type":37,"tag":186,"props":2172,"children":2173},{"style":205},[2174],{"type":43,"value":208},{"type":37,"tag":186,"props":2176,"children":2177},{"style":193},[2178],{"type":43,"value":2179}," async",{"type":37,"tag":186,"props":2181,"children":2182},{"style":205},[2183],{"type":43,"value":287},{"type":37,"tag":186,"props":2185,"children":2187},{"style":2186},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic",[2188],{"type":43,"value":2189},"body",{"type":37,"tag":186,"props":2191,"children":2192},{"style":205},[2193],{"type":43,"value":239},{"type":37,"tag":186,"props":2195,"children":2196},{"style":193},[2197],{"type":43,"value":511},{"type":37,"tag":186,"props":2199,"children":2200},{"style":205},[2201],{"type":43,"value":2202}," {\n",{"type":37,"tag":186,"props":2204,"children":2205},{"class":188,"line":483},[2206,2211,2216,2220,2224,2228,2232,2236,2240,2244,2249,2253,2257,2261,2266,2270,2274,2279,2283],{"type":37,"tag":186,"props":2207,"children":2208},{"style":193},[2209],{"type":43,"value":2210},"  const",{"type":37,"tag":186,"props":2212,"children":2213},{"style":199},[2214],{"type":43,"value":2215}," r",{"type":37,"tag":186,"props":2217,"children":2218},{"style":205},[2219],{"type":43,"value":530},{"type":37,"tag":186,"props":2221,"children":2222},{"style":279},[2223],{"type":43,"value":421},{"type":37,"tag":186,"props":2225,"children":2226},{"style":332},[2227],{"type":43,"value":287},{"type":37,"tag":186,"props":2229,"children":2230},{"style":279},[2231],{"type":43,"value":430},{"type":37,"tag":186,"props":2233,"children":2234},{"style":211},[2235],{"type":43,"value":435},{"type":37,"tag":186,"props":2237,"children":2238},{"style":332},[2239],{"type":43,"value":219},{"type":37,"tag":186,"props":2241,"children":2242},{"style":205},[2243],{"type":43,"value":224},{"type":37,"tag":186,"props":2245,"children":2246},{"style":227},[2247],{"type":43,"value":2248},"https:\u002F\u002Fwww.wixapis.com\u002Foauth2\u002Ftoken",{"type":37,"tag":186,"props":2250,"children":2251},{"style":205},[2252],{"type":43,"value":224},{"type":37,"tag":186,"props":2254,"children":2255},{"style":205},[2256],{"type":43,"value":244},{"type":37,"tag":186,"props":2258,"children":2259},{"style":205},[2260],{"type":43,"value":356},{"type":37,"tag":186,"props":2262,"children":2263},{"style":332},[2264],{"type":43,"value":2265}," method",{"type":37,"tag":186,"props":2267,"children":2268},{"style":205},[2269],{"type":43,"value":366},{"type":37,"tag":186,"props":2271,"children":2272},{"style":205},[2273],{"type":43,"value":258},{"type":37,"tag":186,"props":2275,"children":2276},{"style":227},[2277],{"type":43,"value":2278},"POST",{"type":37,"tag":186,"props":2280,"children":2281},{"style":205},[2282],{"type":43,"value":224},{"type":37,"tag":186,"props":2284,"children":2285},{"style":205},[2286],{"type":43,"value":1074},{"type":37,"tag":186,"props":2288,"children":2289},{"class":188,"line":556},[2290,2295,2299,2303,2307,2312,2316,2320,2324,2329,2333,2337,2342,2346,2351,2355,2360,2364,2368,2373,2377,2381,2385,2390,2394],{"type":37,"tag":186,"props":2291,"children":2292},{"style":332},[2293],{"type":43,"value":2294},"    headers",{"type":37,"tag":186,"props":2296,"children":2297},{"style":205},[2298],{"type":43,"value":366},{"type":37,"tag":186,"props":2300,"children":2301},{"style":205},[2302],{"type":43,"value":356},{"type":37,"tag":186,"props":2304,"children":2305},{"style":205},[2306],{"type":43,"value":258},{"type":37,"tag":186,"props":2308,"children":2309},{"style":332},[2310],{"type":43,"value":2311},"Content-Type",{"type":37,"tag":186,"props":2313,"children":2314},{"style":205},[2315],{"type":43,"value":224},{"type":37,"tag":186,"props":2317,"children":2318},{"style":205},[2319],{"type":43,"value":366},{"type":37,"tag":186,"props":2321,"children":2322},{"style":205},[2323],{"type":43,"value":258},{"type":37,"tag":186,"props":2325,"children":2326},{"style":227},[2327],{"type":43,"value":2328},"application\u002Fjson",{"type":37,"tag":186,"props":2330,"children":2331},{"style":205},[2332],{"type":43,"value":224},{"type":37,"tag":186,"props":2334,"children":2335},{"style":205},[2336],{"type":43,"value":1940},{"type":37,"tag":186,"props":2338,"children":2339},{"style":332},[2340],{"type":43,"value":2341}," body",{"type":37,"tag":186,"props":2343,"children":2344},{"style":205},[2345],{"type":43,"value":366},{"type":37,"tag":186,"props":2347,"children":2348},{"style":199},[2349],{"type":43,"value":2350}," JSON",{"type":37,"tag":186,"props":2352,"children":2353},{"style":205},[2354],{"type":43,"value":164},{"type":37,"tag":186,"props":2356,"children":2357},{"style":211},[2358],{"type":43,"value":2359},"stringify",{"type":37,"tag":186,"props":2361,"children":2362},{"style":332},[2363],{"type":43,"value":219},{"type":37,"tag":186,"props":2365,"children":2366},{"style":199},[2367],{"type":43,"value":2189},{"type":37,"tag":186,"props":2369,"children":2370},{"style":332},[2371],{"type":43,"value":2372},") ",{"type":37,"tag":186,"props":2374,"children":2375},{"style":205},[2376],{"type":43,"value":853},{"type":37,"tag":186,"props":2378,"children":2379},{"style":332},[2380],{"type":43,"value":457},{"type":37,"tag":186,"props":2382,"children":2383},{"style":205},[2384],{"type":43,"value":164},{"type":37,"tag":186,"props":2386,"children":2387},{"style":211},[2388],{"type":43,"value":2389},"json",{"type":37,"tag":186,"props":2391,"children":2392},{"style":332},[2393],{"type":43,"value":506},{"type":37,"tag":186,"props":2395,"children":2396},{"style":205},[2397],{"type":43,"value":272},{"type":37,"tag":186,"props":2399,"children":2400},{"class":188,"line":1183},[2401,2406,2410,2414,2418,2423,2427,2432,2436,2441,2445,2449,2454,2458,2462,2466,2470,2475,2479,2483],{"type":37,"tag":186,"props":2402,"children":2403},{"style":199},[2404],{"type":43,"value":2405},"  token",{"type":37,"tag":186,"props":2407,"children":2408},{"style":205},[2409],{"type":43,"value":530},{"type":37,"tag":186,"props":2411,"children":2412},{"style":199},[2413],{"type":43,"value":2215},{"type":37,"tag":186,"props":2415,"children":2416},{"style":205},[2417],{"type":43,"value":164},{"type":37,"tag":186,"props":2419,"children":2420},{"style":199},[2421],{"type":43,"value":2422},"access_token",{"type":37,"tag":186,"props":2424,"children":2425},{"style":205},[2426],{"type":43,"value":475},{"type":37,"tag":186,"props":2428,"children":2429},{"style":199},[2430],{"type":43,"value":2431}," sessionStorage",{"type":37,"tag":186,"props":2433,"children":2434},{"style":205},[2435],{"type":43,"value":164},{"type":37,"tag":186,"props":2437,"children":2438},{"style":211},[2439],{"type":43,"value":2440},"setItem",{"type":37,"tag":186,"props":2442,"children":2443},{"style":332},[2444],{"type":43,"value":219},{"type":37,"tag":186,"props":2446,"children":2447},{"style":205},[2448],{"type":43,"value":224},{"type":37,"tag":186,"props":2450,"children":2451},{"style":227},[2452],{"type":43,"value":2453},"wixRefresh",{"type":37,"tag":186,"props":2455,"children":2456},{"style":205},[2457],{"type":43,"value":224},{"type":37,"tag":186,"props":2459,"children":2460},{"style":205},[2461],{"type":43,"value":244},{"type":37,"tag":186,"props":2463,"children":2464},{"style":199},[2465],{"type":43,"value":2215},{"type":37,"tag":186,"props":2467,"children":2468},{"style":205},[2469],{"type":43,"value":164},{"type":37,"tag":186,"props":2471,"children":2472},{"style":199},[2473],{"type":43,"value":2474},"refresh_token",{"type":37,"tag":186,"props":2476,"children":2477},{"style":332},[2478],{"type":43,"value":239},{"type":37,"tag":186,"props":2480,"children":2481},{"style":205},[2482],{"type":43,"value":475},{"type":37,"tag":186,"props":2484,"children":2485},{"style":976},[2486],{"type":43,"value":2487},"   \u002F\u002F expires_in: 14400s = 4h\n",{"type":37,"tag":186,"props":2489,"children":2490},{"class":188,"line":1192},[2491],{"type":37,"tag":186,"props":2492,"children":2493},{"style":205},[2494],{"type":43,"value":2495},"};\n",{"type":37,"tag":186,"props":2497,"children":2498},{"class":188,"line":1238},[2499],{"type":37,"tag":186,"props":2500,"children":2501},{"style":976},[2502],{"type":43,"value":2503},"\u002F\u002F first visit:  mint({ clientId: WIX_CLIENT_ID, grantType: \"anonymous\" });\n",{"type":37,"tag":186,"props":2505,"children":2507},{"class":188,"line":2506},9,[2508],{"type":37,"tag":186,"props":2509,"children":2510},{"style":976},[2511],{"type":43,"value":2512},"\u002F\u002F on expiry:    mint({ refreshToken: sessionStorage.getItem(\"wixRefresh\"), grantType: \"refresh_token\" });\n",{"type":37,"tag":186,"props":2514,"children":2516},{"class":188,"line":2515},10,[2517],{"type":37,"tag":186,"props":2518,"children":2519},{"style":976},[2520],{"type":43,"value":2521},"\u002F\u002F               a fresh anonymous mint is a NEW visitor — the old one's cart goes with it\n",{"type":37,"tag":186,"props":2523,"children":2525},{"class":188,"line":2524},11,[2526,2531,2535,2540,2544,2548,2552,2556,2561,2565,2570,2574,2578,2582,2586,2591,2595,2600,2605,2609,2613,2618,2623],{"type":37,"tag":186,"props":2527,"children":2528},{"style":279},[2529],{"type":43,"value":2530},"export",{"type":37,"tag":186,"props":2532,"children":2533},{"style":193},[2534],{"type":43,"value":520},{"type":37,"tag":186,"props":2536,"children":2537},{"style":199},[2538],{"type":43,"value":2539}," wix ",{"type":37,"tag":186,"props":2541,"children":2542},{"style":205},[2543],{"type":43,"value":208},{"type":37,"tag":186,"props":2545,"children":2546},{"style":205},[2547],{"type":43,"value":287},{"type":37,"tag":186,"props":2549,"children":2550},{"style":2186},[2551],{"type":43,"value":1384},{"type":37,"tag":186,"props":2553,"children":2554},{"style":205},[2555],{"type":43,"value":244},{"type":37,"tag":186,"props":2557,"children":2558},{"style":2186},[2559],{"type":43,"value":2560}," opts",{"type":37,"tag":186,"props":2562,"children":2563},{"style":205},[2564],{"type":43,"value":530},{"type":37,"tag":186,"props":2566,"children":2567},{"style":205},[2568],{"type":43,"value":2569}," {})",{"type":37,"tag":186,"props":2571,"children":2572},{"style":193},[2573],{"type":43,"value":511},{"type":37,"tag":186,"props":2575,"children":2576},{"style":211},[2577],{"type":43,"value":435},{"type":37,"tag":186,"props":2579,"children":2580},{"style":199},[2581],{"type":43,"value":219},{"type":37,"tag":186,"props":2583,"children":2584},{"style":205},[2585],{"type":43,"value":224},{"type":37,"tag":186,"props":2587,"children":2588},{"style":227},[2589],{"type":43,"value":2590},"https:\u002F\u002Fwww.wixapis.com",{"type":37,"tag":186,"props":2592,"children":2593},{"style":205},[2594],{"type":43,"value":224},{"type":37,"tag":186,"props":2596,"children":2597},{"style":205},[2598],{"type":43,"value":2599}," +",{"type":37,"tag":186,"props":2601,"children":2602},{"style":199},[2603],{"type":43,"value":2604}," path",{"type":37,"tag":186,"props":2606,"children":2607},{"style":205},[2608],{"type":43,"value":244},{"type":37,"tag":186,"props":2610,"children":2611},{"style":205},[2612],{"type":43,"value":356},{"type":37,"tag":186,"props":2614,"children":2615},{"style":205},[2616],{"type":43,"value":2617}," ...",{"type":37,"tag":186,"props":2619,"children":2620},{"style":199},[2621],{"type":43,"value":2622},"opts",{"type":37,"tag":186,"props":2624,"children":2625},{"style":205},[2626],{"type":43,"value":1074},{"type":37,"tag":186,"props":2628,"children":2630},{"class":188,"line":2629},12,[2631,2636,2640,2644,2649,2653,2658,2663,2667,2672,2677,2681,2685,2689,2693,2697,2701,2705,2709,2713,2717,2721],{"type":37,"tag":186,"props":2632,"children":2633},{"style":332},[2634],{"type":43,"value":2635},"  headers",{"type":37,"tag":186,"props":2637,"children":2638},{"style":205},[2639],{"type":43,"value":366},{"type":37,"tag":186,"props":2641,"children":2642},{"style":205},[2643],{"type":43,"value":356},{"type":37,"tag":186,"props":2645,"children":2646},{"style":332},[2647],{"type":43,"value":2648}," Authorization",{"type":37,"tag":186,"props":2650,"children":2651},{"style":205},[2652],{"type":43,"value":366},{"type":37,"tag":186,"props":2654,"children":2655},{"style":205},[2656],{"type":43,"value":2657}," `",{"type":37,"tag":186,"props":2659,"children":2660},{"style":227},[2661],{"type":43,"value":2662},"Bearer ",{"type":37,"tag":186,"props":2664,"children":2665},{"style":205},[2666],{"type":43,"value":1370},{"type":37,"tag":186,"props":2668,"children":2669},{"style":199},[2670],{"type":43,"value":2671},"token",{"type":37,"tag":186,"props":2673,"children":2674},{"style":205},[2675],{"type":43,"value":2676},"}`",{"type":37,"tag":186,"props":2678,"children":2679},{"style":205},[2680],{"type":43,"value":244},{"type":37,"tag":186,"props":2682,"children":2683},{"style":205},[2684],{"type":43,"value":258},{"type":37,"tag":186,"props":2686,"children":2687},{"style":332},[2688],{"type":43,"value":2311},{"type":37,"tag":186,"props":2690,"children":2691},{"style":205},[2692],{"type":43,"value":224},{"type":37,"tag":186,"props":2694,"children":2695},{"style":205},[2696],{"type":43,"value":366},{"type":37,"tag":186,"props":2698,"children":2699},{"style":205},[2700],{"type":43,"value":258},{"type":37,"tag":186,"props":2702,"children":2703},{"style":227},[2704],{"type":43,"value":2328},{"type":37,"tag":186,"props":2706,"children":2707},{"style":205},[2708],{"type":43,"value":224},{"type":37,"tag":186,"props":2710,"children":2711},{"style":205},[2712],{"type":43,"value":377},{"type":37,"tag":186,"props":2714,"children":2715},{"style":205},[2716],{"type":43,"value":377},{"type":37,"tag":186,"props":2718,"children":2719},{"style":199},[2720],{"type":43,"value":239},{"type":37,"tag":186,"props":2722,"children":2723},{"style":205},[2724],{"type":43,"value":272},{"type":37,"tag":46,"props":2726,"children":2727},{},[2728,2730,2736],{"type":43,"value":2729},"Token contract: ",{"type":37,"tag":79,"props":2731,"children":2733},{"className":2732},[],[2734],{"type":43,"value":2735},"…\u002Fheadless\u002Fauthentication\u002Fretrieve-tokens",{"type":43,"value":2737},". Prove the lane in one exec before\nwriting pages — mint a visitor, make one public read with it:",{"type":37,"tag":95,"props":2739,"children":2741},{"className":178,"code":2740,"language":180,"meta":103,"style":103},"const { access_token } = await wx.post(\"https:\u002F\u002Fwww.wixapis.com\u002Foauth2\u002Ftoken\",\n  { clientId: WIX_CLIENT_ID, grantType: \"anonymous\" });   \u002F\u002F clientId: from the context report\nreturn await wx.post(\"\u003Ca public read from Learn Wix>\", { query: {} }, access_token);\n\u002F\u002F 200 ⇒ every visitor-facing page in the app is this same call, no server between\n\u002F\u002F a lean default response isn't the whole shape — contracts often define a fields param\n\u002F\u002F that opts INTO heavier parts (formatted prices, media); read the contract for it\n",[2742],{"type":37,"tag":79,"props":2743,"children":2744},{"__ignoreMap":103},[2745,2805,2869,2942,2950,2958],{"type":37,"tag":186,"props":2746,"children":2747},{"class":188,"line":189},[2748,2752,2756,2761,2765,2769,2773,2777,2781,2785,2789,2793,2797,2801],{"type":37,"tag":186,"props":2749,"children":2750},{"style":193},[2751],{"type":43,"value":196},{"type":37,"tag":186,"props":2753,"children":2754},{"style":205},[2755],{"type":43,"value":356},{"type":37,"tag":186,"props":2757,"children":2758},{"style":199},[2759],{"type":43,"value":2760}," access_token ",{"type":37,"tag":186,"props":2762,"children":2763},{"style":205},[2764],{"type":43,"value":853},{"type":37,"tag":186,"props":2766,"children":2767},{"style":205},[2768],{"type":43,"value":530},{"type":37,"tag":186,"props":2770,"children":2771},{"style":279},[2772],{"type":43,"value":421},{"type":37,"tag":186,"props":2774,"children":2775},{"style":199},[2776],{"type":43,"value":934},{"type":37,"tag":186,"props":2778,"children":2779},{"style":205},[2780],{"type":43,"value":164},{"type":37,"tag":186,"props":2782,"children":2783},{"style":211},[2784],{"type":43,"value":1853},{"type":37,"tag":186,"props":2786,"children":2787},{"style":199},[2788],{"type":43,"value":219},{"type":37,"tag":186,"props":2790,"children":2791},{"style":205},[2792],{"type":43,"value":224},{"type":37,"tag":186,"props":2794,"children":2795},{"style":227},[2796],{"type":43,"value":2248},{"type":37,"tag":186,"props":2798,"children":2799},{"style":205},[2800],{"type":43,"value":224},{"type":37,"tag":186,"props":2802,"children":2803},{"style":205},[2804],{"type":43,"value":1074},{"type":37,"tag":186,"props":2806,"children":2807},{"class":188,"line":275},[2808,2812,2817,2821,2826,2830,2835,2839,2843,2848,2852,2856,2860,2864],{"type":37,"tag":186,"props":2809,"children":2810},{"style":205},[2811],{"type":43,"value":1887},{"type":37,"tag":186,"props":2813,"children":2814},{"style":332},[2815],{"type":43,"value":2816}," clientId",{"type":37,"tag":186,"props":2818,"children":2819},{"style":205},[2820],{"type":43,"value":366},{"type":37,"tag":186,"props":2822,"children":2823},{"style":199},[2824],{"type":43,"value":2825}," WIX_CLIENT_ID",{"type":37,"tag":186,"props":2827,"children":2828},{"style":205},[2829],{"type":43,"value":244},{"type":37,"tag":186,"props":2831,"children":2832},{"style":332},[2833],{"type":43,"value":2834}," grantType",{"type":37,"tag":186,"props":2836,"children":2837},{"style":205},[2838],{"type":43,"value":366},{"type":37,"tag":186,"props":2840,"children":2841},{"style":205},[2842],{"type":43,"value":258},{"type":37,"tag":186,"props":2844,"children":2845},{"style":227},[2846],{"type":43,"value":2847},"anonymous",{"type":37,"tag":186,"props":2849,"children":2850},{"style":205},[2851],{"type":43,"value":224},{"type":37,"tag":186,"props":2853,"children":2854},{"style":205},[2855],{"type":43,"value":377},{"type":37,"tag":186,"props":2857,"children":2858},{"style":199},[2859],{"type":43,"value":239},{"type":37,"tag":186,"props":2861,"children":2862},{"style":205},[2863],{"type":43,"value":475},{"type":37,"tag":186,"props":2865,"children":2866},{"style":976},[2867],{"type":43,"value":2868},"   \u002F\u002F clientId: from the context report\n",{"type":37,"tag":186,"props":2870,"children":2871},{"class":188,"line":388},[2872,2876,2880,2884,2888,2892,2896,2900,2905,2909,2913,2917,2921,2925,2929,2933,2938],{"type":37,"tag":186,"props":2873,"children":2874},{"style":279},[2875],{"type":43,"value":925},{"type":37,"tag":186,"props":2877,"children":2878},{"style":279},[2879],{"type":43,"value":421},{"type":37,"tag":186,"props":2881,"children":2882},{"style":199},[2883],{"type":43,"value":934},{"type":37,"tag":186,"props":2885,"children":2886},{"style":205},[2887],{"type":43,"value":164},{"type":37,"tag":186,"props":2889,"children":2890},{"style":211},[2891],{"type":43,"value":1853},{"type":37,"tag":186,"props":2893,"children":2894},{"style":199},[2895],{"type":43,"value":219},{"type":37,"tag":186,"props":2897,"children":2898},{"style":205},[2899],{"type":43,"value":224},{"type":37,"tag":186,"props":2901,"children":2902},{"style":227},[2903],{"type":43,"value":2904},"\u003Ca public read from Learn Wix>",{"type":37,"tag":186,"props":2906,"children":2907},{"style":205},[2908],{"type":43,"value":224},{"type":37,"tag":186,"props":2910,"children":2911},{"style":205},[2912],{"type":43,"value":244},{"type":37,"tag":186,"props":2914,"children":2915},{"style":205},[2916],{"type":43,"value":356},{"type":37,"tag":186,"props":2918,"children":2919},{"style":332},[2920],{"type":43,"value":1892},{"type":37,"tag":186,"props":2922,"children":2923},{"style":205},[2924],{"type":43,"value":366},{"type":37,"tag":186,"props":2926,"children":2927},{"style":205},[2928],{"type":43,"value":548},{"type":37,"tag":186,"props":2930,"children":2931},{"style":205},[2932],{"type":43,"value":1940},{"type":37,"tag":186,"props":2934,"children":2935},{"style":199},[2936],{"type":43,"value":2937}," access_token)",{"type":37,"tag":186,"props":2939,"children":2940},{"style":205},[2941],{"type":43,"value":272},{"type":37,"tag":186,"props":2943,"children":2944},{"class":188,"line":483},[2945],{"type":37,"tag":186,"props":2946,"children":2947},{"style":976},[2948],{"type":43,"value":2949},"\u002F\u002F 200 ⇒ every visitor-facing page in the app is this same call, no server between\n",{"type":37,"tag":186,"props":2951,"children":2952},{"class":188,"line":556},[2953],{"type":37,"tag":186,"props":2954,"children":2955},{"style":976},[2956],{"type":43,"value":2957},"\u002F\u002F a lean default response isn't the whole shape — contracts often define a fields param\n",{"type":37,"tag":186,"props":2959,"children":2960},{"class":188,"line":1183},[2961],{"type":37,"tag":186,"props":2962,"children":2963},{"style":976},[2964],{"type":43,"value":2965},"\u002F\u002F that opts INTO heavier parts (formatted prices, media); read the contract for it\n",{"type":37,"tag":2967,"props":2968,"children":2969},"style",{},[2970],{"type":43,"value":2971},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":2973,"total":2506},[2974,2988,3005,3017,3023,3041,3053],{"slug":2975,"name":2975,"fn":2976,"description":2977,"org":2978,"tags":2979,"stars":20,"repoUrl":21,"updatedAt":2987},"replatform","route RePlatform source-to-Wix migrations","Routes RePlatform source-to-Wix migrations to the next workflow step by inspecting migration project artifacts. Use when starting, continuing, or recovering a migration run.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2980,2983,2986],{"name":2981,"slug":2982,"type":13},"Automation","automation",{"name":2984,"slug":2985,"type":13},"Migration","migration",{"name":9,"slug":8,"type":13},"2026-08-09T04:33:25.965778",{"slug":2989,"name":2989,"fn":2990,"description":2991,"org":2992,"tags":2993,"stars":20,"repoUrl":21,"updatedAt":3004},"wix-app","build Wix CLI app extensions","Build and review Wix CLI app extensions — dashboard pages, modals, plugins, menu plugins, custom element widgets, Editor React components, site plugins, embedded scripts, backend APIs, backend events, service plugins, data collections, and App Market readiness. Use when building ANY feature or extension for a Wix CLI app or preparing a Wix app for App Market review. Triggers on: add, build, create, implement, help me, dashboard, widget, plugin, backend, API, event, collection, embedded script, service plugin, Editor React component, checkout, shipping, tax, discount, SPI, CMS, schema, tracking, popup, admin panel, menu item, modal, validate, test, verify, register extension, App Market, app review, submission readiness.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2994,2997,3000,3003],{"name":2995,"slug":2996,"type":13},"Backend","backend",{"name":2998,"slug":2999,"type":13},"CLI","cli",{"name":3001,"slug":3002,"type":13},"Frontend","frontend",{"name":9,"slug":8,"type":13},"2026-08-22T03:23:21.445813",{"slug":3006,"name":3006,"fn":3007,"description":3008,"org":3009,"tags":3010,"stars":20,"repoUrl":21,"updatedAt":3016},"wix-auth","authenticate with Wix APIs","Authenticate with Wix to obtain an access token for calling Wix APIs. Use when an agent needs a valid Wix access token and has none, or when the stored token is expired.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3011,3012,3015],{"name":18,"slug":19,"type":13},{"name":3013,"slug":3014,"type":13},"Auth","auth",{"name":9,"slug":8,"type":13},"2026-07-07T06:47:46.95263",{"slug":4,"name":4,"fn":5,"description":6,"org":3018,"tags":3019,"stars":20,"repoUrl":21,"updatedAt":22},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3020,3021,3022],{"name":18,"slug":19,"type":13},{"name":15,"slug":16,"type":13},{"name":9,"slug":8,"type":13},{"slug":3024,"name":3024,"fn":3025,"description":3026,"org":3027,"tags":3028,"stars":20,"repoUrl":21,"updatedAt":3040},"wix-design-system","build UIs with Wix Design System","Wix Design System component reference. Use when building UI with @wix\u002Fdesign-system, choosing components, checking props and examples, or writing tests with component testkits. Triggers on \"what component\", \"how do I make\", \"WDS\", \"show me props\", \"testkit\", \"driver\", or component names like Button, Card, Modal, Box, Text.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3029,3032,3035,3036,3039],{"name":3030,"slug":3031,"type":13},"Design","design",{"name":3033,"slug":3034,"type":13},"Design System","design-system",{"name":3001,"slug":3002,"type":13},{"name":3037,"slug":3038,"type":13},"UI Components","ui-components",{"name":9,"slug":8,"type":13},"2026-08-19T03:30:02.365475",{"slug":3042,"name":3042,"fn":3043,"description":3044,"org":3045,"tags":3046,"stars":20,"repoUrl":21,"updatedAt":3052},"wix-docs","lookup Wix API documentation","Look up the Wix API\u002FSDK documentation to confirm an exact endpoint, HTTP method, request\u002Fresponse shape, field, enum, or error before writing Wix code — never guess a Wix API from memory. A lookup is a short flow: find the right page, then read it. Two ways: (1) plain `curl` (zero dependencies) — find a page by **semantic search** (`POST \u002Fmcp-docs-search\u002Fv1\u002Fdocs\u002Fsearch`, natural-language `{ search_term, document_type }`) **or by browsing** the docs tree as a menu — a structured, typed, counted browse of the REST API reference (`POST \u002Fmcp-docs-search\u002Fv1\u002Fdocs\u002Fmenu\u002Fbrowse`), or the `.md` menu tree from the `llms.txt` root for any portal — then read the page by appending `.md` to its URL; and (2) the Wix MCP doc tools when your agent has them. Triggers: look up a Wix API, find the Wix endpoint\u002Fmethod, confirm a Wix request body or field, verify a Wix API shape, explore Wix docs, which Wix API do I call, read a Wix method schema.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3047,3048,3051],{"name":18,"slug":19,"type":13},{"name":3049,"slug":3050,"type":13},"Documentation","documentation",{"name":9,"slug":8,"type":13},"2026-08-19T03:30:03.411574",{"slug":3054,"name":3054,"fn":3055,"description":3056,"org":3057,"tags":3058,"stars":20,"repoUrl":21,"updatedAt":3063},"wix-headless","build Wix Managed Headless sites","Connect Wix business services (Stores, Bookings, CMS, Blog, Events, Forms, and more) to a Wix Headless frontend — infer the needed capabilities, install the apps, seed backend content, and produce an SDK-integration guide. For managed (Wix-hosted) projects it can also build the frontend: scaffold a new site (create) or wire an existing\u002Fbrought-in design (connect), then build and release. Works across managed, self-managed, and stripe project types. Triggers: set up a Wix Headless backend, add Wix business features to my app, build or host a Wix site, connect\u002Fimplement this design with Wix.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3059,3060,3061,3062],{"name":3030,"slug":3031,"type":13},{"name":3001,"slug":3002,"type":13},{"name":15,"slug":16,"type":13},{"name":9,"slug":8,"type":13},"2026-08-13T04:28:41.194499",{"items":3065,"total":2515},[3066,3072,3079,3085,3091,3099,3105,3112,3127,3142],{"slug":2975,"name":2975,"fn":2976,"description":2977,"org":3067,"tags":3068,"stars":20,"repoUrl":21,"updatedAt":2987},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3069,3070,3071],{"name":2981,"slug":2982,"type":13},{"name":2984,"slug":2985,"type":13},{"name":9,"slug":8,"type":13},{"slug":2989,"name":2989,"fn":2990,"description":2991,"org":3073,"tags":3074,"stars":20,"repoUrl":21,"updatedAt":3004},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3075,3076,3077,3078],{"name":2995,"slug":2996,"type":13},{"name":2998,"slug":2999,"type":13},{"name":3001,"slug":3002,"type":13},{"name":9,"slug":8,"type":13},{"slug":3006,"name":3006,"fn":3007,"description":3008,"org":3080,"tags":3081,"stars":20,"repoUrl":21,"updatedAt":3016},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3082,3083,3084],{"name":18,"slug":19,"type":13},{"name":3013,"slug":3014,"type":13},{"name":9,"slug":8,"type":13},{"slug":4,"name":4,"fn":5,"description":6,"org":3086,"tags":3087,"stars":20,"repoUrl":21,"updatedAt":22},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3088,3089,3090],{"name":18,"slug":19,"type":13},{"name":15,"slug":16,"type":13},{"name":9,"slug":8,"type":13},{"slug":3024,"name":3024,"fn":3025,"description":3026,"org":3092,"tags":3093,"stars":20,"repoUrl":21,"updatedAt":3040},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3094,3095,3096,3097,3098],{"name":3030,"slug":3031,"type":13},{"name":3033,"slug":3034,"type":13},{"name":3001,"slug":3002,"type":13},{"name":3037,"slug":3038,"type":13},{"name":9,"slug":8,"type":13},{"slug":3042,"name":3042,"fn":3043,"description":3044,"org":3100,"tags":3101,"stars":20,"repoUrl":21,"updatedAt":3052},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3102,3103,3104],{"name":18,"slug":19,"type":13},{"name":3049,"slug":3050,"type":13},{"name":9,"slug":8,"type":13},{"slug":3054,"name":3054,"fn":3055,"description":3056,"org":3106,"tags":3107,"stars":20,"repoUrl":21,"updatedAt":3063},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3108,3109,3110,3111],{"name":3030,"slug":3031,"type":13},{"name":3001,"slug":3002,"type":13},{"name":15,"slug":16,"type":13},{"name":9,"slug":8,"type":13},{"slug":3113,"name":3113,"fn":3114,"description":3115,"org":3116,"tags":3117,"stars":20,"repoUrl":21,"updatedAt":3126},"wix-manage","manage Wix business solutions via API","Wix business solution management recipes — REST API operations for configuring and managing Wix business solutions. Routes to: stores, bookings, get-paid, CMS, contacts, forms, media, app-installation, pricing-plans, restaurants, ricos rich-content, sites, blog, calendar, domains, events, site-properties, ecommerce, marketing, google-ads, analytics, accessibility, dashboard-navigation.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3118,3119,3122,3125],{"name":18,"slug":19,"type":13},{"name":3120,"slug":3121,"type":13},"CMS","cms",{"name":3123,"slug":3124,"type":13},"E-commerce","e-commerce",{"name":9,"slug":8,"type":13},"2026-08-22T03:23:22.439436",{"slug":3128,"name":3128,"fn":3129,"description":3130,"org":3131,"tags":3132,"stars":20,"repoUrl":21,"updatedAt":3141},"wix-vibe-headless","connect frontend projects to Wix sites","Client-only, dependency-free REST scaffolds for connecting an already-built front end (a vibe-coded app, an HTML\u002FJSX\u002FVite project, a design-tool export) to a live Wix site over the site's public WIX_CLIENT_ID — the browser talks to Wix directly, no SDK, no backend, no build step. One skill covering every Wix business solution: Stores\u002FeCommerce storefront (products, cart, checkout), Bookings (services, slots, appointments), Blog (posts, categories, tags), Events & Tickets (browse, RSVP, ticketing), Portfolio (collections, projects, galleries), Restaurants (menu, online ordering, reservations), CMS \u002F Wix Data (list, detail, filter, forms, CRUD), Pricing Plans (memberships, subscriptions, checkout), and Members (custom login — email+password, Google\u002FFacebook, and custom SSO — plus account areas and member-gated content). Each vertical ships a copy-as-is REST layer plus wiring instructions. Read-only over the owner's content — never provisions, never mocks data. Triggers: connect my Wix store\u002Fshop, build a storefront over Wix, add a cart and checkout, connect Wix Bookings, take appointments\u002Freservations, show my Wix blog, list my Wix events, sell tickets, take RSVPs, build a portfolio from Wix Portfolio, show my restaurant menu \u002F order online \u002F book a table, display my Wix CMS collection, wire a contact form to Wix, sell membership\u002Fsubscription plans, add member login \u002F sign up, let members log in with Google or Facebook, custom login page, account \u002F profile page, gate content behind login, sign in with SSO\u002FOkta, 'here is my WIX_CLIENT_ID', connect this app to my Wix site over REST. Use this for CLIENT-ONLY REST integration over an existing site; use `wix-headless` instead for SDK + Wix CLI builds, hosting, and one-prompt new-site creation.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3133,3134,3137,3140],{"name":3001,"slug":3002,"type":13},{"name":3135,"slug":3136,"type":13},"Integrations","integrations",{"name":3138,"slug":3139,"type":13},"REST API","rest-api",{"name":9,"slug":8,"type":13},"2026-08-13T04:28:44.242483",{"slug":3143,"name":3143,"fn":3144,"description":3145,"org":3146,"tags":3147,"stars":483,"repoUrl":3154,"updatedAt":3155},"interactor","add declarative animations with Interact","Use when user asks to add\u002Fedit motion without specific library, or with @wix\u002Finteract - hover, click, view\u002Fscroll triggered, scroll-driven, and pointer-driven animations for web. Wire animations to user interactions; install or set up @wix\u002Finteract; or edit an existing interact config. Do NOT use for other animation libraries.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3148,3151,3152,3153],{"name":3149,"slug":3150,"type":13},"Animation","animation",{"name":3030,"slug":3031,"type":13},{"name":3001,"slug":3002,"type":13},{"name":9,"slug":8,"type":13},"https:\u002F\u002Fgithub.com\u002Fwix\u002Finteract","2026-08-03T06:01:39.765624"]