[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-vercel-labs-google":3,"mdc-gg5vgg-key":44,"related-repo-vercel-labs-google":8766,"related-org-vercel-labs-google":8861},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":33,"repoUrl":34,"updatedAt":35,"license":36,"forks":37,"topics":38,"repo":39,"sourceUrl":42,"mdContent":43},"google","emulate Google services for local development","Emulated Google OAuth 2.0, OpenID Connect, Gmail, Calendar, and Drive for local development and testing. Use when the user needs to test Google sign-in locally, emulate OIDC discovery, handle Google token exchange, configure Google OAuth clients, work with Gmail messages\u002Fdrafts\u002Fthreads\u002Flabels, manage Calendar events, upload or list Drive files, or work with Google userinfo without hitting real Google APIs. Triggers include \"Google OAuth\", \"emulate Google\", \"mock Google login\", \"test Google sign-in\", \"OIDC emulator\", \"Google OIDC\", \"Gmail API\", \"Google Calendar\", \"Google Drive\", \"local Google auth\", or any task requiring a local Google API.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},"vercel-labs","Vercel Labs","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fvercel-labs.png",[12,16,19,21,24,27,30],{"name":13,"slug":14,"type":15},"Auth","auth","tag",{"name":17,"slug":18,"type":15},"Gmail","gmail",{"name":20,"slug":4,"type":15},"Google",{"name":22,"slug":23,"type":15},"Google Drive","google-drive",{"name":25,"slug":26,"type":15},"Local Development","local-development",{"name":28,"slug":29,"type":15},"Google Calendar","google-calendar",{"name":31,"slug":32,"type":15},"OAuth","oauth",1511,"https:\u002F\u002Fgithub.com\u002Fvercel-labs\u002Femulate","2026-07-17T06:08:59.475325",null,95,[],{"repoUrl":34,"stars":33,"forks":37,"topics":40,"description":41},[],"Local API emulation for CI and no-network sandboxes","https:\u002F\u002Fgithub.com\u002Fvercel-labs\u002Femulate\u002Ftree\u002FHEAD\u002Fskills\u002Fgoogle","---\nname: google\ndescription: Emulated Google OAuth 2.0, OpenID Connect, Gmail, Calendar, and Drive for local development and testing. Use when the user needs to test Google sign-in locally, emulate OIDC discovery, handle Google token exchange, configure Google OAuth clients, work with Gmail messages\u002Fdrafts\u002Fthreads\u002Flabels, manage Calendar events, upload or list Drive files, or work with Google userinfo without hitting real Google APIs. Triggers include \"Google OAuth\", \"emulate Google\", \"mock Google login\", \"test Google sign-in\", \"OIDC emulator\", \"Google OIDC\", \"Gmail API\", \"Google Calendar\", \"Google Drive\", \"local Google auth\", or any task requiring a local Google API.\nallowed-tools: Bash(npx emulate:*), Bash(emulate:*), Bash(curl:*)\n---\n\n# Google OAuth 2.0 \u002F OIDC + Gmail, Calendar & Drive Emulator\n\nOAuth 2.0 and OpenID Connect emulation with authorization code flow, PKCE support, ID tokens, OIDC discovery, refresh tokens, plus Gmail, Google Calendar, and Google Drive REST API surfaces.\n\n## Start\n\n```bash\n# Google only\nnpx emulate --service google\n\n# Default port\n# http:\u002F\u002Flocalhost:4002\n```\n\nOr programmatically:\n\n```typescript\nimport { createEmulator } from 'emulate'\n\nconst google = await createEmulator({ service: 'google', port: 4002 })\n\u002F\u002F google.url === 'http:\u002F\u002Flocalhost:4002'\n```\n\n## Pointing Your App at the Emulator\n\n### Environment Variable\n\n```bash\nGOOGLE_EMULATOR_URL=http:\u002F\u002Flocalhost:4002\n```\n\n### OAuth URL Mapping\n\n| Real Google URL | Emulator URL |\n|-----------------|-------------|\n| `https:\u002F\u002Faccounts.google.com\u002Fo\u002Foauth2\u002Fv2\u002Fauth` | `$GOOGLE_EMULATOR_URL\u002Fo\u002Foauth2\u002Fv2\u002Fauth` |\n| `https:\u002F\u002Foauth2.googleapis.com\u002Ftoken` | `$GOOGLE_EMULATOR_URL\u002Foauth2\u002Ftoken` |\n| `https:\u002F\u002Fwww.googleapis.com\u002Foauth2\u002Fv2\u002Fuserinfo` | `$GOOGLE_EMULATOR_URL\u002Foauth2\u002Fv2\u002Fuserinfo` |\n| `https:\u002F\u002Faccounts.google.com\u002F.well-known\u002Fopenid-configuration` | `$GOOGLE_EMULATOR_URL\u002F.well-known\u002Fopenid-configuration` |\n| `https:\u002F\u002Fwww.googleapis.com\u002Foauth2\u002Fv3\u002Fcerts` | `$GOOGLE_EMULATOR_URL\u002Foauth2\u002Fv3\u002Fcerts` |\n| `https:\u002F\u002Fgmail.googleapis.com\u002Fgmail\u002Fv1\u002F...` | `$GOOGLE_EMULATOR_URL\u002Fgmail\u002Fv1\u002F...` |\n| `https:\u002F\u002Fwww.googleapis.com\u002Fcalendar\u002Fv3\u002F...` | `$GOOGLE_EMULATOR_URL\u002Fcalendar\u002Fv3\u002F...` |\n| `https:\u002F\u002Fwww.googleapis.com\u002Fdrive\u002Fv3\u002F...` | `$GOOGLE_EMULATOR_URL\u002Fdrive\u002Fv3\u002F...` |\n\n### google-auth-library (Node.js)\n\n```typescript\nimport { OAuth2Client } from 'google-auth-library'\n\nconst GOOGLE_URL = process.env.GOOGLE_EMULATOR_URL ?? 'https:\u002F\u002Faccounts.google.com'\n\nconst client = new OAuth2Client({\n  clientId: process.env.GOOGLE_CLIENT_ID,\n  clientSecret: process.env.GOOGLE_CLIENT_SECRET,\n  redirectUri: 'http:\u002F\u002Flocalhost:3000\u002Fapi\u002Fauth\u002Fcallback\u002Fgoogle',\n})\n\nconst emulatorAuthorizeUrl = `${GOOGLE_URL}\u002Fo\u002Foauth2\u002Fv2\u002Fauth?client_id=${process.env.GOOGLE_CLIENT_ID}&redirect_uri=...&scope=openid+email+profile&response_type=code&state=...`\n```\n\n### Auth.js \u002F NextAuth.js\n\n```typescript\nimport Google from '@auth\u002Fcore\u002Fproviders\u002Fgoogle'\n\nGoogle({\n  clientId: process.env.GOOGLE_CLIENT_ID,\n  clientSecret: process.env.GOOGLE_CLIENT_SECRET,\n  authorization: {\n    url: `${process.env.GOOGLE_EMULATOR_URL}\u002Fo\u002Foauth2\u002Fv2\u002Fauth`,\n    params: { scope: 'openid email profile' },\n  },\n  token: {\n    url: `${process.env.GOOGLE_EMULATOR_URL}\u002Foauth2\u002Ftoken`,\n  },\n  userinfo: {\n    url: `${process.env.GOOGLE_EMULATOR_URL}\u002Foauth2\u002Fv2\u002Fuserinfo`,\n  },\n})\n```\n\n### Passport.js\n\n```typescript\nimport { Strategy as GoogleStrategy } from 'passport-google-oauth20'\n\nconst GOOGLE_URL = process.env.GOOGLE_EMULATOR_URL ?? 'https:\u002F\u002Faccounts.google.com'\n\nnew GoogleStrategy({\n  clientID: process.env.GOOGLE_CLIENT_ID,\n  clientSecret: process.env.GOOGLE_CLIENT_SECRET,\n  callbackURL: 'http:\u002F\u002Flocalhost:3000\u002Fapi\u002Fauth\u002Fcallback\u002Fgoogle',\n  authorizationURL: `${GOOGLE_URL}\u002Fo\u002Foauth2\u002Fv2\u002Fauth`,\n  tokenURL: `${GOOGLE_URL}\u002Foauth2\u002Ftoken`,\n  userProfileURL: `${GOOGLE_URL}\u002Foauth2\u002Fv2\u002Fuserinfo`,\n}, verifyCallback)\n```\n\n## Seed Config\n\n```yaml\ngoogle:\n  users:\n    - email: testuser@gmail.com\n      name: Test User\n      given_name: Test\n      family_name: User\n      picture: https:\u002F\u002Flh3.googleusercontent.com\u002Fa\u002Fdefault-user\n      email_verified: true\n      locale: en\n    - email: dev@example.com\n      name: Developer\n    - email: admin@acme.com\n      name: Admin\n      hd: acme.com\n  oauth_clients:\n    - client_id: my-client-id.apps.googleusercontent.com\n      client_secret: GOCSPX-secret\n      name: My App\n      redirect_uris:\n        - http:\u002F\u002Flocalhost:3000\u002Fapi\u002Fauth\u002Fcallback\u002Fgoogle\n  labels:\n    - id: Label_ops\n      user_email: testuser@gmail.com\n      name: Ops\u002FReview\n      color_background: \"#DDEEFF\"\n      color_text: \"#111111\"\n  messages:\n    - id: msg_welcome\n      user_email: testuser@gmail.com\n      thread_id: thr_welcome\n      from: \"welcome@example.com\"\n      to: testuser@gmail.com\n      subject: Welcome to the Gmail emulator\n      body_text: You can now test Gmail flows locally.\n      label_ids: [INBOX, UNREAD, CATEGORY_UPDATES]\n      date: \"2025-01-04T10:00:00.000Z\"\n  calendars:\n    - id: primary\n      user_email: testuser@gmail.com\n      summary: testuser@gmail.com\n      primary: true\n      selected: true\n      time_zone: UTC\n  calendar_events:\n    - id: evt_kickoff\n      user_email: testuser@gmail.com\n      calendar_id: primary\n      summary: Project Kickoff\n      start_date_time: \"2025-01-10T09:00:00.000Z\"\n      end_date_time: \"2025-01-10T09:30:00.000Z\"\n      attendees:\n        - email: testuser@gmail.com\n          display_name: Test User\n      conference_entry_points:\n        - entry_point_type: video\n          uri: https:\u002F\u002Fmeet.google.com\u002Fexample\n          label: Google Meet\n      hangout_link: https:\u002F\u002Fmeet.google.com\u002Fexample\n  drive_items:\n    - id: drv_docs\n      user_email: testuser@gmail.com\n      name: Docs\n      mime_type: application\u002Fvnd.google-apps.folder\n      parent_ids: [root]\n    - id: drv_readme\n      user_email: testuser@gmail.com\n      name: README.md\n      mime_type: text\u002Fmarkdown\n      parent_ids: [drv_docs]\n      data: \"# Hello World\"\n```\n\nWhen no OAuth clients are configured, the emulator accepts any `client_id`. With clients configured, strict validation is enforced for `client_id`, `client_secret`, and `redirect_uri`.\n\n### Hosted domain (hd) claim\n\nGoogle Workspace accounts include an `hd` claim in ID tokens and userinfo responses identifying the user's hosted domain. The emulator derives this automatically from the user's email domain. Consumer domains (`gmail.com`, `googlemail.com`) omit the claim, matching real Google behavior.\n\nTo override the derived value, set `hd` on a seeded user. To suppress the claim entirely, set `hd` to an empty string.\n\n## OAuth \u002F OIDC Endpoints\n\n### OIDC Discovery\n\n```bash\ncurl http:\u002F\u002Flocalhost:4002\u002F.well-known\u002Fopenid-configuration\n```\n\n### JWKS\n\n```bash\ncurl http:\u002F\u002Flocalhost:4002\u002Foauth2\u002Fv3\u002Fcerts\n```\n\nReturns `{ \"keys\": [] }`. ID tokens are signed with HS256 using an internal secret.\n\n### Authorization\n\n```bash\n# Browser flow: redirects to a user picker page\ncurl -v \"http:\u002F\u002Flocalhost:4002\u002Fo\u002Foauth2\u002Fv2\u002Fauth?\\\nclient_id=my-client-id.apps.googleusercontent.com&\\\nredirect_uri=http:\u002F\u002Flocalhost:3000\u002Fapi\u002Fauth\u002Fcallback\u002Fgoogle&\\\nscope=openid+email+profile&\\\nresponse_type=code&\\\nstate=random-state&\\\nnonce=random-nonce\"\n```\n\nSupports `code_challenge` and `code_challenge_method` for PKCE.\n\n### Token Exchange\n\n```bash\ncurl -X POST http:\u002F\u002Flocalhost:4002\u002Foauth2\u002Ftoken \\\n  -H \"Content-Type: application\u002Fx-www-form-urlencoded\" \\\n  -d \"code=\u003Cauthorization_code>&\\\nclient_id=my-client-id.apps.googleusercontent.com&\\\nclient_secret=GOCSPX-secret&\\\nredirect_uri=http:\u002F\u002Flocalhost:3000\u002Fapi\u002Fauth\u002Fcallback\u002Fgoogle&\\\ngrant_type=authorization_code\"\n```\n\nAlso accepts `application\u002Fjson` body. Returns:\n\n```json\n{\n  \"access_token\": \"google_...\",\n  \"refresh_token\": \"google_refresh_...\",\n  \"id_token\": \"\u003Cjwt>\",\n  \"token_type\": \"Bearer\",\n  \"expires_in\": 3600,\n  \"scope\": \"openid email profile\"\n}\n```\n\n### Refresh Token\n\n```bash\ncurl -X POST http:\u002F\u002Flocalhost:4002\u002Foauth2\u002Ftoken \\\n  -H \"Content-Type: application\u002Fx-www-form-urlencoded\" \\\n  -d \"refresh_token=google_refresh_...&\\\nclient_id=my-client-id.apps.googleusercontent.com&\\\nclient_secret=GOCSPX-secret&\\\ngrant_type=refresh_token\"\n```\n\nReturns a new `access_token` (no new `refresh_token` or `id_token` on refresh).\n\n### User Info\n\n```bash\ncurl http:\u002F\u002Flocalhost:4002\u002Foauth2\u002Fv2\u002Fuserinfo \\\n  -H \"Authorization: Bearer google_...\"\n```\n\n### Token Revocation\n\n```bash\ncurl -X POST http:\u002F\u002Flocalhost:4002\u002Foauth2\u002Frevoke \\\n  -H \"Content-Type: application\u002Fx-www-form-urlencoded\" \\\n  -d \"token=google_...\"\n```\n\n## Gmail API\n\nAll Gmail endpoints are under `\u002Fgmail\u002Fv1\u002Fusers\u002F:userId\u002F...` where `:userId` is `me` or the authenticated user's email.\n\n### Messages\n\n```bash\n# List messages (filter by labels, search query)\ncurl \"http:\u002F\u002Flocalhost:4002\u002Fgmail\u002Fv1\u002Fusers\u002Fme\u002Fmessages?labelIds=INBOX&q=from:welcome&maxResults=10\" \\\n  -H \"Authorization: Bearer $TOKEN\"\n\n# Get message (format: full, metadata, minimal, raw)\ncurl \"http:\u002F\u002Flocalhost:4002\u002Fgmail\u002Fv1\u002Fusers\u002Fme\u002Fmessages\u002Fmsg_welcome?format=full\" \\\n  -H \"Authorization: Bearer $TOKEN\"\n\n# Send message\ncurl -X POST http:\u002F\u002Flocalhost:4002\u002Fgmail\u002Fv1\u002Fusers\u002Fme\u002Fmessages\u002Fsend \\\n  -H \"Authorization: Bearer $TOKEN\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\"to\": \"someone@example.com\", \"subject\": \"Hello\", \"body_text\": \"Hi there\"}'\n\n# Insert message (bypass send)\ncurl -X POST http:\u002F\u002Flocalhost:4002\u002Fgmail\u002Fv1\u002Fusers\u002Fme\u002Fmessages \\\n  -H \"Authorization: Bearer $TOKEN\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\"to\": \"test@example.com\", \"from\": \"me@example.com\", \"subject\": \"Test\", \"body_text\": \"Body\", \"labelIds\": [\"INBOX\"]}'\n\n# Import message\ncurl -X POST http:\u002F\u002Flocalhost:4002\u002Fgmail\u002Fv1\u002Fusers\u002Fme\u002Fmessages\u002Fimport \\\n  -H \"Authorization: Bearer $TOKEN\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\"to\": \"test@example.com\", \"from\": \"external@example.com\", \"subject\": \"Imported\", \"body_text\": \"Content\"}'\n\n# Modify labels on a message\ncurl -X POST http:\u002F\u002Flocalhost:4002\u002Fgmail\u002Fv1\u002Fusers\u002Fme\u002Fmessages\u002Fmsg_welcome\u002Fmodify \\\n  -H \"Authorization: Bearer $TOKEN\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\"addLabelIds\": [\"STARRED\"], \"removeLabelIds\": [\"UNREAD\"]}'\n\n# Trash \u002F untrash\ncurl -X POST http:\u002F\u002Flocalhost:4002\u002Fgmail\u002Fv1\u002Fusers\u002Fme\u002Fmessages\u002Fmsg_welcome\u002Ftrash \\\n  -H \"Authorization: Bearer $TOKEN\"\ncurl -X POST http:\u002F\u002Flocalhost:4002\u002Fgmail\u002Fv1\u002Fusers\u002Fme\u002Fmessages\u002Fmsg_welcome\u002Funtrash \\\n  -H \"Authorization: Bearer $TOKEN\"\n\n# Delete permanently\ncurl -X DELETE http:\u002F\u002Flocalhost:4002\u002Fgmail\u002Fv1\u002Fusers\u002Fme\u002Fmessages\u002Fmsg_welcome \\\n  -H \"Authorization: Bearer $TOKEN\"\n\n# Batch modify\ncurl -X POST http:\u002F\u002Flocalhost:4002\u002Fgmail\u002Fv1\u002Fusers\u002Fme\u002Fmessages\u002FbatchModify \\\n  -H \"Authorization: Bearer $TOKEN\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\"ids\": [\"msg_welcome\", \"msg_build\"], \"addLabelIds\": [\"STARRED\"]}'\n\n# Batch delete\ncurl -X POST http:\u002F\u002Flocalhost:4002\u002Fgmail\u002Fv1\u002Fusers\u002Fme\u002Fmessages\u002FbatchDelete \\\n  -H \"Authorization: Bearer $TOKEN\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\"ids\": [\"msg_welcome\"]}'\n\n# Get attachment\ncurl http:\u002F\u002Flocalhost:4002\u002Fgmail\u002Fv1\u002Fusers\u002Fme\u002Fmessages\u002Fmsg_id\u002Fattachments\u002Fatt_id \\\n  -H \"Authorization: Bearer $TOKEN\"\n```\n\nUpload variants also available at `\u002Fupload\u002Fgmail\u002Fv1\u002Fusers\u002F:userId\u002Fmessages`, `...\u002Fmessages\u002Fsend`, `...\u002Fmessages\u002Fimport`.\n\n### Drafts\n\n```bash\n# List drafts\ncurl http:\u002F\u002Flocalhost:4002\u002Fgmail\u002Fv1\u002Fusers\u002Fme\u002Fdrafts \\\n  -H \"Authorization: Bearer $TOKEN\"\n\n# Create draft\ncurl -X POST http:\u002F\u002Flocalhost:4002\u002Fgmail\u002Fv1\u002Fusers\u002Fme\u002Fdrafts \\\n  -H \"Authorization: Bearer $TOKEN\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\"message\": {\"to\": \"someone@example.com\", \"subject\": \"Draft subject\", \"body_text\": \"Draft body\"}}'\n\n# Get draft (format: full, metadata, minimal, raw)\ncurl \"http:\u002F\u002Flocalhost:4002\u002Fgmail\u002Fv1\u002Fusers\u002Fme\u002Fdrafts\u002Fdraft_id?format=full\" \\\n  -H \"Authorization: Bearer $TOKEN\"\n\n# Update draft\ncurl -X PUT http:\u002F\u002Flocalhost:4002\u002Fgmail\u002Fv1\u002Fusers\u002Fme\u002Fdrafts\u002Fdraft_id \\\n  -H \"Authorization: Bearer $TOKEN\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\"message\": {\"subject\": \"Updated subject\", \"body_text\": \"Updated body\"}}'\n\n# Send draft\ncurl -X POST http:\u002F\u002Flocalhost:4002\u002Fgmail\u002Fv1\u002Fusers\u002Fme\u002Fdrafts\u002Fsend \\\n  -H \"Authorization: Bearer $TOKEN\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\"id\": \"draft_id\"}'\n\n# Delete draft\ncurl -X DELETE http:\u002F\u002Flocalhost:4002\u002Fgmail\u002Fv1\u002Fusers\u002Fme\u002Fdrafts\u002Fdraft_id \\\n  -H \"Authorization: Bearer $TOKEN\"\n```\n\n### Threads\n\n```bash\n# List threads (filter by labels, search query)\ncurl \"http:\u002F\u002Flocalhost:4002\u002Fgmail\u002Fv1\u002Fusers\u002Fme\u002Fthreads?labelIds=INBOX&maxResults=20\" \\\n  -H \"Authorization: Bearer $TOKEN\"\n\n# Get thread (all messages in thread)\ncurl \"http:\u002F\u002Flocalhost:4002\u002Fgmail\u002Fv1\u002Fusers\u002Fme\u002Fthreads\u002Fthr_welcome?format=full\" \\\n  -H \"Authorization: Bearer $TOKEN\"\n\n# Modify labels on all messages in thread\ncurl -X POST http:\u002F\u002Flocalhost:4002\u002Fgmail\u002Fv1\u002Fusers\u002Fme\u002Fthreads\u002Fthr_welcome\u002Fmodify \\\n  -H \"Authorization: Bearer $TOKEN\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\"addLabelIds\": [\"STARRED\"], \"removeLabelIds\": [\"UNREAD\"]}'\n\n# Trash \u002F untrash \u002F delete thread\ncurl -X POST http:\u002F\u002Flocalhost:4002\u002Fgmail\u002Fv1\u002Fusers\u002Fme\u002Fthreads\u002Fthr_welcome\u002Ftrash \\\n  -H \"Authorization: Bearer $TOKEN\"\ncurl -X DELETE http:\u002F\u002Flocalhost:4002\u002Fgmail\u002Fv1\u002Fusers\u002Fme\u002Fthreads\u002Fthr_welcome \\\n  -H \"Authorization: Bearer $TOKEN\"\n```\n\n### Labels\n\n```bash\n# List labels\ncurl http:\u002F\u002Flocalhost:4002\u002Fgmail\u002Fv1\u002Fusers\u002Fme\u002Flabels \\\n  -H \"Authorization: Bearer $TOKEN\"\n\n# Get label\ncurl http:\u002F\u002Flocalhost:4002\u002Fgmail\u002Fv1\u002Fusers\u002Fme\u002Flabels\u002FINBOX \\\n  -H \"Authorization: Bearer $TOKEN\"\n\n# Create label\ncurl -X POST http:\u002F\u002Flocalhost:4002\u002Fgmail\u002Fv1\u002Fusers\u002Fme\u002Flabels \\\n  -H \"Authorization: Bearer $TOKEN\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\"name\": \"My Label\", \"color\": {\"backgroundColor\": \"#DDEEFF\", \"textColor\": \"#111111\"}}'\n\n# Update label (PUT replaces, PATCH merges)\ncurl -X PATCH http:\u002F\u002Flocalhost:4002\u002Fgmail\u002Fv1\u002Fusers\u002Fme\u002Flabels\u002FLabel_ops \\\n  -H \"Authorization: Bearer $TOKEN\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\"name\": \"Ops\u002FReviewed\"}'\n\n# Delete label (user labels only)\ncurl -X DELETE http:\u002F\u002Flocalhost:4002\u002Fgmail\u002Fv1\u002Fusers\u002Fme\u002Flabels\u002FLabel_ops \\\n  -H \"Authorization: Bearer $TOKEN\"\n```\n\n### History & Watch\n\n```bash\n# List history changes since a given historyId\ncurl \"http:\u002F\u002Flocalhost:4002\u002Fgmail\u002Fv1\u002Fusers\u002Fme\u002Fhistory?startHistoryId=1&historyTypes=messageAdded&maxResults=100\" \\\n  -H \"Authorization: Bearer $TOKEN\"\n\n# Set up push notification watch (stub)\ncurl -X POST http:\u002F\u002Flocalhost:4002\u002Fgmail\u002Fv1\u002Fusers\u002Fme\u002Fwatch \\\n  -H \"Authorization: Bearer $TOKEN\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\"topicName\": \"projects\u002Fmy-project\u002Ftopics\u002Fgmail\", \"labelIds\": [\"INBOX\"]}'\n\n# Stop watch\ncurl -X POST http:\u002F\u002Flocalhost:4002\u002Fgmail\u002Fv1\u002Fusers\u002Fme\u002Fstop \\\n  -H \"Authorization: Bearer $TOKEN\"\n```\n\n### Settings\n\n```bash\n# List filters\ncurl http:\u002F\u002Flocalhost:4002\u002Fgmail\u002Fv1\u002Fusers\u002Fme\u002Fsettings\u002Ffilters \\\n  -H \"Authorization: Bearer $TOKEN\"\n\n# Create filter (auto-label incoming messages matching criteria)\ncurl -X POST http:\u002F\u002Flocalhost:4002\u002Fgmail\u002Fv1\u002Fusers\u002Fme\u002Fsettings\u002Ffilters \\\n  -H \"Authorization: Bearer $TOKEN\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\"criteria\": {\"from\": \"alerts@example.com\"}, \"action\": {\"addLabelIds\": [\"Label_ops\"]}}'\n\n# Delete filter\ncurl -X DELETE http:\u002F\u002Flocalhost:4002\u002Fgmail\u002Fv1\u002Fusers\u002Fme\u002Fsettings\u002Ffilters\u002Ffilter_id \\\n  -H \"Authorization: Bearer $TOKEN\"\n\n# List forwarding addresses\ncurl http:\u002F\u002Flocalhost:4002\u002Fgmail\u002Fv1\u002Fusers\u002Fme\u002Fsettings\u002FforwardingAddresses \\\n  -H \"Authorization: Bearer $TOKEN\"\n\n# List send-as aliases\ncurl http:\u002F\u002Flocalhost:4002\u002Fgmail\u002Fv1\u002Fusers\u002Fme\u002Fsettings\u002FsendAs \\\n  -H \"Authorization: Bearer $TOKEN\"\n```\n\n## Google Calendar API\n\n### Calendar List\n\n```bash\ncurl http:\u002F\u002Flocalhost:4002\u002Fcalendar\u002Fv3\u002Fusers\u002Fme\u002FcalendarList \\\n  -H \"Authorization: Bearer $TOKEN\"\n```\n\n### Events\n\n```bash\n# List events (filter by time range, search, order)\ncurl \"http:\u002F\u002Flocalhost:4002\u002Fcalendar\u002Fv3\u002Fcalendars\u002Fprimary\u002Fevents?\\\ntimeMin=2025-01-01T00:00:00Z&timeMax=2025-12-31T23:59:59Z&maxResults=50&orderBy=startTime\" \\\n  -H \"Authorization: Bearer $TOKEN\"\n\n# Create event\ncurl -X POST http:\u002F\u002Flocalhost:4002\u002Fcalendar\u002Fv3\u002Fcalendars\u002Fprimary\u002Fevents \\\n  -H \"Authorization: Bearer $TOKEN\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\"summary\": \"Team Meeting\", \"start\": {\"dateTime\": \"2025-01-10T14:00:00Z\"}, \"end\": {\"dateTime\": \"2025-01-10T15:00:00Z\"}, \"attendees\": [{\"email\": \"dev@example.com\"}]}'\n\n# Delete event\ncurl -X DELETE http:\u002F\u002Flocalhost:4002\u002Fcalendar\u002Fv3\u002Fcalendars\u002Fprimary\u002Fevents\u002Fevt_kickoff \\\n  -H \"Authorization: Bearer $TOKEN\"\n```\n\n### FreeBusy\n\n```bash\ncurl -X POST http:\u002F\u002Flocalhost:4002\u002Fcalendar\u002Fv3\u002FfreeBusy \\\n  -H \"Authorization: Bearer $TOKEN\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\"timeMin\": \"2025-01-10T00:00:00Z\", \"timeMax\": \"2025-01-10T23:59:59Z\", \"items\": [{\"id\": \"primary\"}]}'\n```\n\n## Google Drive API\n\n### Files\n\n```bash\n# List files (with query filter, pagination, ordering)\ncurl \"http:\u002F\u002Flocalhost:4002\u002Fdrive\u002Fv3\u002Ffiles?q='root'+in+parents&pageSize=20\" \\\n  -H \"Authorization: Bearer $TOKEN\"\n\n# Create file (JSON metadata)\ncurl -X POST http:\u002F\u002Flocalhost:4002\u002Fdrive\u002Fv3\u002Ffiles \\\n  -H \"Authorization: Bearer $TOKEN\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\"name\": \"notes.txt\", \"mimeType\": \"text\u002Fplain\", \"parents\": [\"root\"]}'\n\n# Create file with content (multipart\u002Frelated upload)\ncurl -X POST http:\u002F\u002Flocalhost:4002\u002Fupload\u002Fdrive\u002Fv3\u002Ffiles \\\n  -H \"Authorization: Bearer $TOKEN\" \\\n  -H \"Content-Type: multipart\u002Frelated; boundary=boundary\" \\\n  --data-binary $'--boundary\\r\\nContent-Type: application\u002Fjson\\r\\n\\r\\n{\"name\":\"data.csv\",\"mimeType\":\"text\u002Fcsv\"}\\r\\n--boundary\\r\\nContent-Type: text\u002Fcsv\\r\\n\\r\\na,b,c\\n1,2,3\\r\\n--boundary--'\n\n# Get file metadata\ncurl http:\u002F\u002Flocalhost:4002\u002Fdrive\u002Fv3\u002Ffiles\u002Fdrv_readme \\\n  -H \"Authorization: Bearer $TOKEN\"\n\n# Download file content\ncurl \"http:\u002F\u002Flocalhost:4002\u002Fdrive\u002Fv3\u002Ffiles\u002Fdrv_readme?alt=media\" \\\n  -H \"Authorization: Bearer $TOKEN\"\n\n# Update file (PATCH or PUT; move parents with query params)\ncurl -X PATCH \"http:\u002F\u002Flocalhost:4002\u002Fdrive\u002Fv3\u002Ffiles\u002Fdrv_readme?addParents=folder_id&removeParents=root\" \\\n  -H \"Authorization: Bearer $TOKEN\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\"name\": \"README-updated.md\"}'\n```\n\n## Common Patterns\n\n### Full Authorization Code Flow\n\n```bash\nGOOGLE_URL=\"http:\u002F\u002Flocalhost:4002\"\nCLIENT_ID=\"my-client-id.apps.googleusercontent.com\"\nCLIENT_SECRET=\"GOCSPX-secret\"\nREDIRECT_URI=\"http:\u002F\u002Flocalhost:3000\u002Fapi\u002Fauth\u002Fcallback\u002Fgoogle\"\n\n# 1. Open in browser (user picks a seeded account)\n#    $GOOGLE_URL\u002Fo\u002Foauth2\u002Fv2\u002Fauth?client_id=$CLIENT_ID&redirect_uri=$REDIRECT_URI&scope=openid+email+profile&response_type=code&state=abc\n\n# 2. After user selection, emulator redirects to:\n#    $REDIRECT_URI?code=\u003Ccode>&state=abc\n\n# 3. Exchange code for tokens\ncurl -X POST $GOOGLE_URL\u002Foauth2\u002Ftoken \\\n  -H \"Content-Type: application\u002Fx-www-form-urlencoded\" \\\n  -d \"code=\u003Ccode>&client_id=$CLIENT_ID&client_secret=$CLIENT_SECRET&redirect_uri=$REDIRECT_URI&grant_type=authorization_code\"\n\n# 4. Fetch user info with the access_token\ncurl $GOOGLE_URL\u002Foauth2\u002Fv2\u002Fuserinfo \\\n  -H \"Authorization: Bearer \u003Caccess_token>\"\n```\n\n### OIDC Discovery-Based Setup\n\n```typescript\nimport { Issuer } from 'openid-client'\n\nconst googleIssuer = await Issuer.discover(\n  process.env.GOOGLE_EMULATOR_URL ?? 'https:\u002F\u002Faccounts.google.com'\n)\n\nconst client = new googleIssuer.Client({\n  client_id: process.env.GOOGLE_CLIENT_ID,\n  client_secret: process.env.GOOGLE_CLIENT_SECRET,\n  redirect_uris: ['http:\u002F\u002Flocalhost:3000\u002Fapi\u002Fauth\u002Fcallback\u002Fgoogle'],\n})\n```\n\n### Send a Gmail Message and Check the Thread\n\n```bash\nTOKEN=\"test_token_admin\"\nBASE=\"http:\u002F\u002Flocalhost:4002\"\n\n# Send a message\ncurl -X POST $BASE\u002Fgmail\u002Fv1\u002Fusers\u002Fme\u002Fmessages\u002Fsend \\\n  -H \"Authorization: Bearer $TOKEN\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\"to\": \"someone@example.com\", \"subject\": \"Test\", \"body_text\": \"Hello\"}'\n\n# List threads in INBOX\ncurl \"$BASE\u002Fgmail\u002Fv1\u002Fusers\u002Fme\u002Fthreads?labelIds=INBOX\" \\\n  -H \"Authorization: Bearer $TOKEN\"\n```\n",{"data":45,"body":47},{"name":4,"description":6,"allowed-tools":46},"Bash(npx emulate:*), Bash(emulate:*), Bash(curl:*)",{"type":48,"children":49},"root",[50,59,65,72,150,155,317,323,330,354,360,556,562,916,922,1339,1345,1704,1710,3019,3054,3060,3088,3107,3113,3119,3139,3145,3164,3177,3183,3296,3317,3323,3450,3463,3697,3703,3810,3836,3842,3885,3891,3965,3971,4000,4006,5013,5039,5045,5549,5555,5896,5902,6289,6295,6528,6534,6866,6872,6878,6924,6930,7175,7181,7282,7288,7294,7874,7880,7886,8207,8213,8517,8523,8760],{"type":51,"tag":52,"props":53,"children":55},"element","h1",{"id":54},"google-oauth-20-oidc-gmail-calendar-drive-emulator",[56],{"type":57,"value":58},"text","Google OAuth 2.0 \u002F OIDC + Gmail, Calendar & Drive Emulator",{"type":51,"tag":60,"props":61,"children":62},"p",{},[63],{"type":57,"value":64},"OAuth 2.0 and OpenID Connect emulation with authorization code flow, PKCE support, ID tokens, OIDC discovery, refresh tokens, plus Gmail, Google Calendar, and Google Drive REST API surfaces.",{"type":51,"tag":66,"props":67,"children":69},"h2",{"id":68},"start",[70],{"type":57,"value":71},"Start",{"type":51,"tag":73,"props":74,"children":79},"pre",{"className":75,"code":76,"language":77,"meta":78,"style":78},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","# Google only\nnpx emulate --service google\n\n# Default port\n# http:\u002F\u002Flocalhost:4002\n","bash","",[80],{"type":51,"tag":81,"props":82,"children":83},"code",{"__ignoreMap":78},[84,96,122,132,141],{"type":51,"tag":85,"props":86,"children":89},"span",{"class":87,"line":88},"line",1,[90],{"type":51,"tag":85,"props":91,"children":93},{"style":92},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic",[94],{"type":57,"value":95},"# Google only\n",{"type":51,"tag":85,"props":97,"children":99},{"class":87,"line":98},2,[100,106,112,117],{"type":51,"tag":85,"props":101,"children":103},{"style":102},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[104],{"type":57,"value":105},"npx",{"type":51,"tag":85,"props":107,"children":109},{"style":108},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[110],{"type":57,"value":111}," emulate",{"type":51,"tag":85,"props":113,"children":114},{"style":108},[115],{"type":57,"value":116}," --service",{"type":51,"tag":85,"props":118,"children":119},{"style":108},[120],{"type":57,"value":121}," google\n",{"type":51,"tag":85,"props":123,"children":125},{"class":87,"line":124},3,[126],{"type":51,"tag":85,"props":127,"children":129},{"emptyLinePlaceholder":128},true,[130],{"type":57,"value":131},"\n",{"type":51,"tag":85,"props":133,"children":135},{"class":87,"line":134},4,[136],{"type":51,"tag":85,"props":137,"children":138},{"style":92},[139],{"type":57,"value":140},"# Default port\n",{"type":51,"tag":85,"props":142,"children":144},{"class":87,"line":143},5,[145],{"type":51,"tag":85,"props":146,"children":147},{"style":92},[148],{"type":57,"value":149},"# http:\u002F\u002Flocalhost:4002\n",{"type":51,"tag":60,"props":151,"children":152},{},[153],{"type":57,"value":154},"Or programmatically:",{"type":51,"tag":73,"props":156,"children":160},{"className":157,"code":158,"language":159,"meta":78,"style":78},"language-typescript shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import { createEmulator } from 'emulate'\n\nconst google = await createEmulator({ service: 'google', port: 4002 })\n\u002F\u002F google.url === 'http:\u002F\u002Flocalhost:4002'\n","typescript",[161],{"type":51,"tag":81,"props":162,"children":163},{"__ignoreMap":78},[164,210,217,309],{"type":51,"tag":85,"props":165,"children":166},{"class":87,"line":88},[167,173,179,185,190,195,200,205],{"type":51,"tag":85,"props":168,"children":170},{"style":169},"--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic",[171],{"type":57,"value":172},"import",{"type":51,"tag":85,"props":174,"children":176},{"style":175},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[177],{"type":57,"value":178}," {",{"type":51,"tag":85,"props":180,"children":182},{"style":181},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[183],{"type":57,"value":184}," createEmulator",{"type":51,"tag":85,"props":186,"children":187},{"style":175},[188],{"type":57,"value":189}," }",{"type":51,"tag":85,"props":191,"children":192},{"style":169},[193],{"type":57,"value":194}," from",{"type":51,"tag":85,"props":196,"children":197},{"style":175},[198],{"type":57,"value":199}," '",{"type":51,"tag":85,"props":201,"children":202},{"style":108},[203],{"type":57,"value":204},"emulate",{"type":51,"tag":85,"props":206,"children":207},{"style":175},[208],{"type":57,"value":209},"'\n",{"type":51,"tag":85,"props":211,"children":212},{"class":87,"line":98},[213],{"type":51,"tag":85,"props":214,"children":215},{"emptyLinePlaceholder":128},[216],{"type":57,"value":131},{"type":51,"tag":85,"props":218,"children":219},{"class":87,"line":124},[220,226,231,236,241,246,251,256,262,267,271,275,280,285,290,294,300,304],{"type":51,"tag":85,"props":221,"children":223},{"style":222},"--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA",[224],{"type":57,"value":225},"const",{"type":51,"tag":85,"props":227,"children":228},{"style":181},[229],{"type":57,"value":230}," google ",{"type":51,"tag":85,"props":232,"children":233},{"style":175},[234],{"type":57,"value":235},"=",{"type":51,"tag":85,"props":237,"children":238},{"style":169},[239],{"type":57,"value":240}," await",{"type":51,"tag":85,"props":242,"children":244},{"style":243},"--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF",[245],{"type":57,"value":184},{"type":51,"tag":85,"props":247,"children":248},{"style":181},[249],{"type":57,"value":250},"(",{"type":51,"tag":85,"props":252,"children":253},{"style":175},[254],{"type":57,"value":255},"{",{"type":51,"tag":85,"props":257,"children":259},{"style":258},"--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178",[260],{"type":57,"value":261}," service",{"type":51,"tag":85,"props":263,"children":264},{"style":175},[265],{"type":57,"value":266},":",{"type":51,"tag":85,"props":268,"children":269},{"style":175},[270],{"type":57,"value":199},{"type":51,"tag":85,"props":272,"children":273},{"style":108},[274],{"type":57,"value":4},{"type":51,"tag":85,"props":276,"children":277},{"style":175},[278],{"type":57,"value":279},"'",{"type":51,"tag":85,"props":281,"children":282},{"style":175},[283],{"type":57,"value":284},",",{"type":51,"tag":85,"props":286,"children":287},{"style":258},[288],{"type":57,"value":289}," port",{"type":51,"tag":85,"props":291,"children":292},{"style":175},[293],{"type":57,"value":266},{"type":51,"tag":85,"props":295,"children":297},{"style":296},"--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C",[298],{"type":57,"value":299}," 4002",{"type":51,"tag":85,"props":301,"children":302},{"style":175},[303],{"type":57,"value":189},{"type":51,"tag":85,"props":305,"children":306},{"style":181},[307],{"type":57,"value":308},")\n",{"type":51,"tag":85,"props":310,"children":311},{"class":87,"line":134},[312],{"type":51,"tag":85,"props":313,"children":314},{"style":92},[315],{"type":57,"value":316},"\u002F\u002F google.url === 'http:\u002F\u002Flocalhost:4002'\n",{"type":51,"tag":66,"props":318,"children":320},{"id":319},"pointing-your-app-at-the-emulator",[321],{"type":57,"value":322},"Pointing Your App at the Emulator",{"type":51,"tag":324,"props":325,"children":327},"h3",{"id":326},"environment-variable",[328],{"type":57,"value":329},"Environment Variable",{"type":51,"tag":73,"props":331,"children":333},{"className":75,"code":332,"language":77,"meta":78,"style":78},"GOOGLE_EMULATOR_URL=http:\u002F\u002Flocalhost:4002\n",[334],{"type":51,"tag":81,"props":335,"children":336},{"__ignoreMap":78},[337],{"type":51,"tag":85,"props":338,"children":339},{"class":87,"line":88},[340,345,349],{"type":51,"tag":85,"props":341,"children":342},{"style":181},[343],{"type":57,"value":344},"GOOGLE_EMULATOR_URL",{"type":51,"tag":85,"props":346,"children":347},{"style":175},[348],{"type":57,"value":235},{"type":51,"tag":85,"props":350,"children":351},{"style":108},[352],{"type":57,"value":353},"http:\u002F\u002Flocalhost:4002\n",{"type":51,"tag":324,"props":355,"children":357},{"id":356},"oauth-url-mapping",[358],{"type":57,"value":359},"OAuth URL Mapping",{"type":51,"tag":361,"props":362,"children":363},"table",{},[364,383],{"type":51,"tag":365,"props":366,"children":367},"thead",{},[368],{"type":51,"tag":369,"props":370,"children":371},"tr",{},[372,378],{"type":51,"tag":373,"props":374,"children":375},"th",{},[376],{"type":57,"value":377},"Real Google URL",{"type":51,"tag":373,"props":379,"children":380},{},[381],{"type":57,"value":382},"Emulator URL",{"type":51,"tag":384,"props":385,"children":386},"tbody",{},[387,409,430,451,472,493,514,535],{"type":51,"tag":369,"props":388,"children":389},{},[390,400],{"type":51,"tag":391,"props":392,"children":393},"td",{},[394],{"type":51,"tag":81,"props":395,"children":397},{"className":396},[],[398],{"type":57,"value":399},"https:\u002F\u002Faccounts.google.com\u002Fo\u002Foauth2\u002Fv2\u002Fauth",{"type":51,"tag":391,"props":401,"children":402},{},[403],{"type":51,"tag":81,"props":404,"children":406},{"className":405},[],[407],{"type":57,"value":408},"$GOOGLE_EMULATOR_URL\u002Fo\u002Foauth2\u002Fv2\u002Fauth",{"type":51,"tag":369,"props":410,"children":411},{},[412,421],{"type":51,"tag":391,"props":413,"children":414},{},[415],{"type":51,"tag":81,"props":416,"children":418},{"className":417},[],[419],{"type":57,"value":420},"https:\u002F\u002Foauth2.googleapis.com\u002Ftoken",{"type":51,"tag":391,"props":422,"children":423},{},[424],{"type":51,"tag":81,"props":425,"children":427},{"className":426},[],[428],{"type":57,"value":429},"$GOOGLE_EMULATOR_URL\u002Foauth2\u002Ftoken",{"type":51,"tag":369,"props":431,"children":432},{},[433,442],{"type":51,"tag":391,"props":434,"children":435},{},[436],{"type":51,"tag":81,"props":437,"children":439},{"className":438},[],[440],{"type":57,"value":441},"https:\u002F\u002Fwww.googleapis.com\u002Foauth2\u002Fv2\u002Fuserinfo",{"type":51,"tag":391,"props":443,"children":444},{},[445],{"type":51,"tag":81,"props":446,"children":448},{"className":447},[],[449],{"type":57,"value":450},"$GOOGLE_EMULATOR_URL\u002Foauth2\u002Fv2\u002Fuserinfo",{"type":51,"tag":369,"props":452,"children":453},{},[454,463],{"type":51,"tag":391,"props":455,"children":456},{},[457],{"type":51,"tag":81,"props":458,"children":460},{"className":459},[],[461],{"type":57,"value":462},"https:\u002F\u002Faccounts.google.com\u002F.well-known\u002Fopenid-configuration",{"type":51,"tag":391,"props":464,"children":465},{},[466],{"type":51,"tag":81,"props":467,"children":469},{"className":468},[],[470],{"type":57,"value":471},"$GOOGLE_EMULATOR_URL\u002F.well-known\u002Fopenid-configuration",{"type":51,"tag":369,"props":473,"children":474},{},[475,484],{"type":51,"tag":391,"props":476,"children":477},{},[478],{"type":51,"tag":81,"props":479,"children":481},{"className":480},[],[482],{"type":57,"value":483},"https:\u002F\u002Fwww.googleapis.com\u002Foauth2\u002Fv3\u002Fcerts",{"type":51,"tag":391,"props":485,"children":486},{},[487],{"type":51,"tag":81,"props":488,"children":490},{"className":489},[],[491],{"type":57,"value":492},"$GOOGLE_EMULATOR_URL\u002Foauth2\u002Fv3\u002Fcerts",{"type":51,"tag":369,"props":494,"children":495},{},[496,505],{"type":51,"tag":391,"props":497,"children":498},{},[499],{"type":51,"tag":81,"props":500,"children":502},{"className":501},[],[503],{"type":57,"value":504},"https:\u002F\u002Fgmail.googleapis.com\u002Fgmail\u002Fv1\u002F...",{"type":51,"tag":391,"props":506,"children":507},{},[508],{"type":51,"tag":81,"props":509,"children":511},{"className":510},[],[512],{"type":57,"value":513},"$GOOGLE_EMULATOR_URL\u002Fgmail\u002Fv1\u002F...",{"type":51,"tag":369,"props":515,"children":516},{},[517,526],{"type":51,"tag":391,"props":518,"children":519},{},[520],{"type":51,"tag":81,"props":521,"children":523},{"className":522},[],[524],{"type":57,"value":525},"https:\u002F\u002Fwww.googleapis.com\u002Fcalendar\u002Fv3\u002F...",{"type":51,"tag":391,"props":527,"children":528},{},[529],{"type":51,"tag":81,"props":530,"children":532},{"className":531},[],[533],{"type":57,"value":534},"$GOOGLE_EMULATOR_URL\u002Fcalendar\u002Fv3\u002F...",{"type":51,"tag":369,"props":536,"children":537},{},[538,547],{"type":51,"tag":391,"props":539,"children":540},{},[541],{"type":51,"tag":81,"props":542,"children":544},{"className":543},[],[545],{"type":57,"value":546},"https:\u002F\u002Fwww.googleapis.com\u002Fdrive\u002Fv3\u002F...",{"type":51,"tag":391,"props":548,"children":549},{},[550],{"type":51,"tag":81,"props":551,"children":553},{"className":552},[],[554],{"type":57,"value":555},"$GOOGLE_EMULATOR_URL\u002Fdrive\u002Fv3\u002F...",{"type":51,"tag":324,"props":557,"children":559},{"id":558},"google-auth-library-nodejs",[560],{"type":57,"value":561},"google-auth-library (Node.js)",{"type":51,"tag":73,"props":563,"children":565},{"className":157,"code":564,"language":159,"meta":78,"style":78},"import { OAuth2Client } from 'google-auth-library'\n\nconst GOOGLE_URL = process.env.GOOGLE_EMULATOR_URL ?? 'https:\u002F\u002Faccounts.google.com'\n\nconst client = new OAuth2Client({\n  clientId: process.env.GOOGLE_CLIENT_ID,\n  clientSecret: process.env.GOOGLE_CLIENT_SECRET,\n  redirectUri: 'http:\u002F\u002Flocalhost:3000\u002Fapi\u002Fauth\u002Fcallback\u002Fgoogle',\n})\n\nconst emulatorAuthorizeUrl = `${GOOGLE_URL}\u002Fo\u002Foauth2\u002Fv2\u002Fauth?client_id=${process.env.GOOGLE_CLIENT_ID}&redirect_uri=...&scope=openid+email+profile&response_type=code&state=...`\n",[566],{"type":51,"tag":81,"props":567,"children":568},{"__ignoreMap":78},[569,606,613,671,678,712,751,789,819,832,840],{"type":51,"tag":85,"props":570,"children":571},{"class":87,"line":88},[572,576,580,585,589,593,597,602],{"type":51,"tag":85,"props":573,"children":574},{"style":169},[575],{"type":57,"value":172},{"type":51,"tag":85,"props":577,"children":578},{"style":175},[579],{"type":57,"value":178},{"type":51,"tag":85,"props":581,"children":582},{"style":181},[583],{"type":57,"value":584}," OAuth2Client",{"type":51,"tag":85,"props":586,"children":587},{"style":175},[588],{"type":57,"value":189},{"type":51,"tag":85,"props":590,"children":591},{"style":169},[592],{"type":57,"value":194},{"type":51,"tag":85,"props":594,"children":595},{"style":175},[596],{"type":57,"value":199},{"type":51,"tag":85,"props":598,"children":599},{"style":108},[600],{"type":57,"value":601},"google-auth-library",{"type":51,"tag":85,"props":603,"children":604},{"style":175},[605],{"type":57,"value":209},{"type":51,"tag":85,"props":607,"children":608},{"class":87,"line":98},[609],{"type":51,"tag":85,"props":610,"children":611},{"emptyLinePlaceholder":128},[612],{"type":57,"value":131},{"type":51,"tag":85,"props":614,"children":615},{"class":87,"line":124},[616,620,625,629,634,639,644,648,653,658,662,667],{"type":51,"tag":85,"props":617,"children":618},{"style":222},[619],{"type":57,"value":225},{"type":51,"tag":85,"props":621,"children":622},{"style":181},[623],{"type":57,"value":624}," GOOGLE_URL ",{"type":51,"tag":85,"props":626,"children":627},{"style":175},[628],{"type":57,"value":235},{"type":51,"tag":85,"props":630,"children":631},{"style":181},[632],{"type":57,"value":633}," process",{"type":51,"tag":85,"props":635,"children":636},{"style":175},[637],{"type":57,"value":638},".",{"type":51,"tag":85,"props":640,"children":641},{"style":181},[642],{"type":57,"value":643},"env",{"type":51,"tag":85,"props":645,"children":646},{"style":175},[647],{"type":57,"value":638},{"type":51,"tag":85,"props":649,"children":650},{"style":181},[651],{"type":57,"value":652},"GOOGLE_EMULATOR_URL ",{"type":51,"tag":85,"props":654,"children":655},{"style":175},[656],{"type":57,"value":657},"??",{"type":51,"tag":85,"props":659,"children":660},{"style":175},[661],{"type":57,"value":199},{"type":51,"tag":85,"props":663,"children":664},{"style":108},[665],{"type":57,"value":666},"https:\u002F\u002Faccounts.google.com",{"type":51,"tag":85,"props":668,"children":669},{"style":175},[670],{"type":57,"value":209},{"type":51,"tag":85,"props":672,"children":673},{"class":87,"line":134},[674],{"type":51,"tag":85,"props":675,"children":676},{"emptyLinePlaceholder":128},[677],{"type":57,"value":131},{"type":51,"tag":85,"props":679,"children":680},{"class":87,"line":143},[681,685,690,694,699,703,707],{"type":51,"tag":85,"props":682,"children":683},{"style":222},[684],{"type":57,"value":225},{"type":51,"tag":85,"props":686,"children":687},{"style":181},[688],{"type":57,"value":689}," client ",{"type":51,"tag":85,"props":691,"children":692},{"style":175},[693],{"type":57,"value":235},{"type":51,"tag":85,"props":695,"children":696},{"style":175},[697],{"type":57,"value":698}," new",{"type":51,"tag":85,"props":700,"children":701},{"style":243},[702],{"type":57,"value":584},{"type":51,"tag":85,"props":704,"children":705},{"style":181},[706],{"type":57,"value":250},{"type":51,"tag":85,"props":708,"children":709},{"style":175},[710],{"type":57,"value":711},"{\n",{"type":51,"tag":85,"props":713,"children":715},{"class":87,"line":714},6,[716,721,725,729,733,737,741,746],{"type":51,"tag":85,"props":717,"children":718},{"style":258},[719],{"type":57,"value":720},"  clientId",{"type":51,"tag":85,"props":722,"children":723},{"style":175},[724],{"type":57,"value":266},{"type":51,"tag":85,"props":726,"children":727},{"style":181},[728],{"type":57,"value":633},{"type":51,"tag":85,"props":730,"children":731},{"style":175},[732],{"type":57,"value":638},{"type":51,"tag":85,"props":734,"children":735},{"style":181},[736],{"type":57,"value":643},{"type":51,"tag":85,"props":738,"children":739},{"style":175},[740],{"type":57,"value":638},{"type":51,"tag":85,"props":742,"children":743},{"style":181},[744],{"type":57,"value":745},"GOOGLE_CLIENT_ID",{"type":51,"tag":85,"props":747,"children":748},{"style":175},[749],{"type":57,"value":750},",\n",{"type":51,"tag":85,"props":752,"children":754},{"class":87,"line":753},7,[755,760,764,768,772,776,780,785],{"type":51,"tag":85,"props":756,"children":757},{"style":258},[758],{"type":57,"value":759},"  clientSecret",{"type":51,"tag":85,"props":761,"children":762},{"style":175},[763],{"type":57,"value":266},{"type":51,"tag":85,"props":765,"children":766},{"style":181},[767],{"type":57,"value":633},{"type":51,"tag":85,"props":769,"children":770},{"style":175},[771],{"type":57,"value":638},{"type":51,"tag":85,"props":773,"children":774},{"style":181},[775],{"type":57,"value":643},{"type":51,"tag":85,"props":777,"children":778},{"style":175},[779],{"type":57,"value":638},{"type":51,"tag":85,"props":781,"children":782},{"style":181},[783],{"type":57,"value":784},"GOOGLE_CLIENT_SECRET",{"type":51,"tag":85,"props":786,"children":787},{"style":175},[788],{"type":57,"value":750},{"type":51,"tag":85,"props":790,"children":792},{"class":87,"line":791},8,[793,798,802,806,811,815],{"type":51,"tag":85,"props":794,"children":795},{"style":258},[796],{"type":57,"value":797},"  redirectUri",{"type":51,"tag":85,"props":799,"children":800},{"style":175},[801],{"type":57,"value":266},{"type":51,"tag":85,"props":803,"children":804},{"style":175},[805],{"type":57,"value":199},{"type":51,"tag":85,"props":807,"children":808},{"style":108},[809],{"type":57,"value":810},"http:\u002F\u002Flocalhost:3000\u002Fapi\u002Fauth\u002Fcallback\u002Fgoogle",{"type":51,"tag":85,"props":812,"children":813},{"style":175},[814],{"type":57,"value":279},{"type":51,"tag":85,"props":816,"children":817},{"style":175},[818],{"type":57,"value":750},{"type":51,"tag":85,"props":820,"children":822},{"class":87,"line":821},9,[823,828],{"type":51,"tag":85,"props":824,"children":825},{"style":175},[826],{"type":57,"value":827},"}",{"type":51,"tag":85,"props":829,"children":830},{"style":181},[831],{"type":57,"value":308},{"type":51,"tag":85,"props":833,"children":835},{"class":87,"line":834},10,[836],{"type":51,"tag":85,"props":837,"children":838},{"emptyLinePlaceholder":128},[839],{"type":57,"value":131},{"type":51,"tag":85,"props":841,"children":843},{"class":87,"line":842},11,[844,848,853,857,862,867,871,876,881,886,890,894,898,902,906,911],{"type":51,"tag":85,"props":845,"children":846},{"style":222},[847],{"type":57,"value":225},{"type":51,"tag":85,"props":849,"children":850},{"style":181},[851],{"type":57,"value":852}," emulatorAuthorizeUrl ",{"type":51,"tag":85,"props":854,"children":855},{"style":175},[856],{"type":57,"value":235},{"type":51,"tag":85,"props":858,"children":859},{"style":175},[860],{"type":57,"value":861}," `${",{"type":51,"tag":85,"props":863,"children":864},{"style":181},[865],{"type":57,"value":866},"GOOGLE_URL",{"type":51,"tag":85,"props":868,"children":869},{"style":175},[870],{"type":57,"value":827},{"type":51,"tag":85,"props":872,"children":873},{"style":108},[874],{"type":57,"value":875},"\u002Fo\u002Foauth2\u002Fv2\u002Fauth?client_id=",{"type":51,"tag":85,"props":877,"children":878},{"style":175},[879],{"type":57,"value":880},"${",{"type":51,"tag":85,"props":882,"children":883},{"style":181},[884],{"type":57,"value":885},"process",{"type":51,"tag":85,"props":887,"children":888},{"style":175},[889],{"type":57,"value":638},{"type":51,"tag":85,"props":891,"children":892},{"style":181},[893],{"type":57,"value":643},{"type":51,"tag":85,"props":895,"children":896},{"style":175},[897],{"type":57,"value":638},{"type":51,"tag":85,"props":899,"children":900},{"style":181},[901],{"type":57,"value":745},{"type":51,"tag":85,"props":903,"children":904},{"style":175},[905],{"type":57,"value":827},{"type":51,"tag":85,"props":907,"children":908},{"style":108},[909],{"type":57,"value":910},"&redirect_uri=...&scope=openid+email+profile&response_type=code&state=...",{"type":51,"tag":85,"props":912,"children":913},{"style":175},[914],{"type":57,"value":915},"`\n",{"type":51,"tag":324,"props":917,"children":919},{"id":918},"authjs-nextauthjs",[920],{"type":57,"value":921},"Auth.js \u002F NextAuth.js",{"type":51,"tag":73,"props":923,"children":925},{"className":157,"code":924,"language":159,"meta":78,"style":78},"import Google from '@auth\u002Fcore\u002Fproviders\u002Fgoogle'\n\nGoogle({\n  clientId: process.env.GOOGLE_CLIENT_ID,\n  clientSecret: process.env.GOOGLE_CLIENT_SECRET,\n  authorization: {\n    url: `${process.env.GOOGLE_EMULATOR_URL}\u002Fo\u002Foauth2\u002Fv2\u002Fauth`,\n    params: { scope: 'openid email profile' },\n  },\n  token: {\n    url: `${process.env.GOOGLE_EMULATOR_URL}\u002Foauth2\u002Ftoken`,\n  },\n  userinfo: {\n    url: `${process.env.GOOGLE_EMULATOR_URL}\u002Foauth2\u002Fv2\u002Fuserinfo`,\n  },\n})\n",[926],{"type":51,"tag":81,"props":927,"children":928},{"__ignoreMap":78},[929,959,966,981,1016,1051,1068,1122,1165,1173,1189,1241,1249,1266,1319,1327],{"type":51,"tag":85,"props":930,"children":931},{"class":87,"line":88},[932,936,941,946,950,955],{"type":51,"tag":85,"props":933,"children":934},{"style":169},[935],{"type":57,"value":172},{"type":51,"tag":85,"props":937,"children":938},{"style":181},[939],{"type":57,"value":940}," Google ",{"type":51,"tag":85,"props":942,"children":943},{"style":169},[944],{"type":57,"value":945},"from",{"type":51,"tag":85,"props":947,"children":948},{"style":175},[949],{"type":57,"value":199},{"type":51,"tag":85,"props":951,"children":952},{"style":108},[953],{"type":57,"value":954},"@auth\u002Fcore\u002Fproviders\u002Fgoogle",{"type":51,"tag":85,"props":956,"children":957},{"style":175},[958],{"type":57,"value":209},{"type":51,"tag":85,"props":960,"children":961},{"class":87,"line":98},[962],{"type":51,"tag":85,"props":963,"children":964},{"emptyLinePlaceholder":128},[965],{"type":57,"value":131},{"type":51,"tag":85,"props":967,"children":968},{"class":87,"line":124},[969,973,977],{"type":51,"tag":85,"props":970,"children":971},{"style":243},[972],{"type":57,"value":20},{"type":51,"tag":85,"props":974,"children":975},{"style":181},[976],{"type":57,"value":250},{"type":51,"tag":85,"props":978,"children":979},{"style":175},[980],{"type":57,"value":711},{"type":51,"tag":85,"props":982,"children":983},{"class":87,"line":134},[984,988,992,996,1000,1004,1008,1012],{"type":51,"tag":85,"props":985,"children":986},{"style":258},[987],{"type":57,"value":720},{"type":51,"tag":85,"props":989,"children":990},{"style":175},[991],{"type":57,"value":266},{"type":51,"tag":85,"props":993,"children":994},{"style":181},[995],{"type":57,"value":633},{"type":51,"tag":85,"props":997,"children":998},{"style":175},[999],{"type":57,"value":638},{"type":51,"tag":85,"props":1001,"children":1002},{"style":181},[1003],{"type":57,"value":643},{"type":51,"tag":85,"props":1005,"children":1006},{"style":175},[1007],{"type":57,"value":638},{"type":51,"tag":85,"props":1009,"children":1010},{"style":181},[1011],{"type":57,"value":745},{"type":51,"tag":85,"props":1013,"children":1014},{"style":175},[1015],{"type":57,"value":750},{"type":51,"tag":85,"props":1017,"children":1018},{"class":87,"line":143},[1019,1023,1027,1031,1035,1039,1043,1047],{"type":51,"tag":85,"props":1020,"children":1021},{"style":258},[1022],{"type":57,"value":759},{"type":51,"tag":85,"props":1024,"children":1025},{"style":175},[1026],{"type":57,"value":266},{"type":51,"tag":85,"props":1028,"children":1029},{"style":181},[1030],{"type":57,"value":633},{"type":51,"tag":85,"props":1032,"children":1033},{"style":175},[1034],{"type":57,"value":638},{"type":51,"tag":85,"props":1036,"children":1037},{"style":181},[1038],{"type":57,"value":643},{"type":51,"tag":85,"props":1040,"children":1041},{"style":175},[1042],{"type":57,"value":638},{"type":51,"tag":85,"props":1044,"children":1045},{"style":181},[1046],{"type":57,"value":784},{"type":51,"tag":85,"props":1048,"children":1049},{"style":175},[1050],{"type":57,"value":750},{"type":51,"tag":85,"props":1052,"children":1053},{"class":87,"line":714},[1054,1059,1063],{"type":51,"tag":85,"props":1055,"children":1056},{"style":258},[1057],{"type":57,"value":1058},"  authorization",{"type":51,"tag":85,"props":1060,"children":1061},{"style":175},[1062],{"type":57,"value":266},{"type":51,"tag":85,"props":1064,"children":1065},{"style":175},[1066],{"type":57,"value":1067}," {\n",{"type":51,"tag":85,"props":1069,"children":1070},{"class":87,"line":753},[1071,1076,1080,1084,1088,1092,1096,1100,1104,1108,1113,1118],{"type":51,"tag":85,"props":1072,"children":1073},{"style":258},[1074],{"type":57,"value":1075},"    url",{"type":51,"tag":85,"props":1077,"children":1078},{"style":175},[1079],{"type":57,"value":266},{"type":51,"tag":85,"props":1081,"children":1082},{"style":175},[1083],{"type":57,"value":861},{"type":51,"tag":85,"props":1085,"children":1086},{"style":181},[1087],{"type":57,"value":885},{"type":51,"tag":85,"props":1089,"children":1090},{"style":175},[1091],{"type":57,"value":638},{"type":51,"tag":85,"props":1093,"children":1094},{"style":181},[1095],{"type":57,"value":643},{"type":51,"tag":85,"props":1097,"children":1098},{"style":175},[1099],{"type":57,"value":638},{"type":51,"tag":85,"props":1101,"children":1102},{"style":181},[1103],{"type":57,"value":344},{"type":51,"tag":85,"props":1105,"children":1106},{"style":175},[1107],{"type":57,"value":827},{"type":51,"tag":85,"props":1109,"children":1110},{"style":108},[1111],{"type":57,"value":1112},"\u002Fo\u002Foauth2\u002Fv2\u002Fauth",{"type":51,"tag":85,"props":1114,"children":1115},{"style":175},[1116],{"type":57,"value":1117},"`",{"type":51,"tag":85,"props":1119,"children":1120},{"style":175},[1121],{"type":57,"value":750},{"type":51,"tag":85,"props":1123,"children":1124},{"class":87,"line":791},[1125,1130,1134,1138,1143,1147,1151,1156,1160],{"type":51,"tag":85,"props":1126,"children":1127},{"style":258},[1128],{"type":57,"value":1129},"    params",{"type":51,"tag":85,"props":1131,"children":1132},{"style":175},[1133],{"type":57,"value":266},{"type":51,"tag":85,"props":1135,"children":1136},{"style":175},[1137],{"type":57,"value":178},{"type":51,"tag":85,"props":1139,"children":1140},{"style":258},[1141],{"type":57,"value":1142}," scope",{"type":51,"tag":85,"props":1144,"children":1145},{"style":175},[1146],{"type":57,"value":266},{"type":51,"tag":85,"props":1148,"children":1149},{"style":175},[1150],{"type":57,"value":199},{"type":51,"tag":85,"props":1152,"children":1153},{"style":108},[1154],{"type":57,"value":1155},"openid email profile",{"type":51,"tag":85,"props":1157,"children":1158},{"style":175},[1159],{"type":57,"value":279},{"type":51,"tag":85,"props":1161,"children":1162},{"style":175},[1163],{"type":57,"value":1164}," },\n",{"type":51,"tag":85,"props":1166,"children":1167},{"class":87,"line":821},[1168],{"type":51,"tag":85,"props":1169,"children":1170},{"style":175},[1171],{"type":57,"value":1172},"  },\n",{"type":51,"tag":85,"props":1174,"children":1175},{"class":87,"line":834},[1176,1181,1185],{"type":51,"tag":85,"props":1177,"children":1178},{"style":258},[1179],{"type":57,"value":1180},"  token",{"type":51,"tag":85,"props":1182,"children":1183},{"style":175},[1184],{"type":57,"value":266},{"type":51,"tag":85,"props":1186,"children":1187},{"style":175},[1188],{"type":57,"value":1067},{"type":51,"tag":85,"props":1190,"children":1191},{"class":87,"line":842},[1192,1196,1200,1204,1208,1212,1216,1220,1224,1228,1233,1237],{"type":51,"tag":85,"props":1193,"children":1194},{"style":258},[1195],{"type":57,"value":1075},{"type":51,"tag":85,"props":1197,"children":1198},{"style":175},[1199],{"type":57,"value":266},{"type":51,"tag":85,"props":1201,"children":1202},{"style":175},[1203],{"type":57,"value":861},{"type":51,"tag":85,"props":1205,"children":1206},{"style":181},[1207],{"type":57,"value":885},{"type":51,"tag":85,"props":1209,"children":1210},{"style":175},[1211],{"type":57,"value":638},{"type":51,"tag":85,"props":1213,"children":1214},{"style":181},[1215],{"type":57,"value":643},{"type":51,"tag":85,"props":1217,"children":1218},{"style":175},[1219],{"type":57,"value":638},{"type":51,"tag":85,"props":1221,"children":1222},{"style":181},[1223],{"type":57,"value":344},{"type":51,"tag":85,"props":1225,"children":1226},{"style":175},[1227],{"type":57,"value":827},{"type":51,"tag":85,"props":1229,"children":1230},{"style":108},[1231],{"type":57,"value":1232},"\u002Foauth2\u002Ftoken",{"type":51,"tag":85,"props":1234,"children":1235},{"style":175},[1236],{"type":57,"value":1117},{"type":51,"tag":85,"props":1238,"children":1239},{"style":175},[1240],{"type":57,"value":750},{"type":51,"tag":85,"props":1242,"children":1244},{"class":87,"line":1243},12,[1245],{"type":51,"tag":85,"props":1246,"children":1247},{"style":175},[1248],{"type":57,"value":1172},{"type":51,"tag":85,"props":1250,"children":1252},{"class":87,"line":1251},13,[1253,1258,1262],{"type":51,"tag":85,"props":1254,"children":1255},{"style":258},[1256],{"type":57,"value":1257},"  userinfo",{"type":51,"tag":85,"props":1259,"children":1260},{"style":175},[1261],{"type":57,"value":266},{"type":51,"tag":85,"props":1263,"children":1264},{"style":175},[1265],{"type":57,"value":1067},{"type":51,"tag":85,"props":1267,"children":1269},{"class":87,"line":1268},14,[1270,1274,1278,1282,1286,1290,1294,1298,1302,1306,1311,1315],{"type":51,"tag":85,"props":1271,"children":1272},{"style":258},[1273],{"type":57,"value":1075},{"type":51,"tag":85,"props":1275,"children":1276},{"style":175},[1277],{"type":57,"value":266},{"type":51,"tag":85,"props":1279,"children":1280},{"style":175},[1281],{"type":57,"value":861},{"type":51,"tag":85,"props":1283,"children":1284},{"style":181},[1285],{"type":57,"value":885},{"type":51,"tag":85,"props":1287,"children":1288},{"style":175},[1289],{"type":57,"value":638},{"type":51,"tag":85,"props":1291,"children":1292},{"style":181},[1293],{"type":57,"value":643},{"type":51,"tag":85,"props":1295,"children":1296},{"style":175},[1297],{"type":57,"value":638},{"type":51,"tag":85,"props":1299,"children":1300},{"style":181},[1301],{"type":57,"value":344},{"type":51,"tag":85,"props":1303,"children":1304},{"style":175},[1305],{"type":57,"value":827},{"type":51,"tag":85,"props":1307,"children":1308},{"style":108},[1309],{"type":57,"value":1310},"\u002Foauth2\u002Fv2\u002Fuserinfo",{"type":51,"tag":85,"props":1312,"children":1313},{"style":175},[1314],{"type":57,"value":1117},{"type":51,"tag":85,"props":1316,"children":1317},{"style":175},[1318],{"type":57,"value":750},{"type":51,"tag":85,"props":1320,"children":1322},{"class":87,"line":1321},15,[1323],{"type":51,"tag":85,"props":1324,"children":1325},{"style":175},[1326],{"type":57,"value":1172},{"type":51,"tag":85,"props":1328,"children":1330},{"class":87,"line":1329},16,[1331,1335],{"type":51,"tag":85,"props":1332,"children":1333},{"style":175},[1334],{"type":57,"value":827},{"type":51,"tag":85,"props":1336,"children":1337},{"style":181},[1338],{"type":57,"value":308},{"type":51,"tag":324,"props":1340,"children":1342},{"id":1341},"passportjs",[1343],{"type":57,"value":1344},"Passport.js",{"type":51,"tag":73,"props":1346,"children":1348},{"className":157,"code":1347,"language":159,"meta":78,"style":78},"import { Strategy as GoogleStrategy } from 'passport-google-oauth20'\n\nconst GOOGLE_URL = process.env.GOOGLE_EMULATOR_URL ?? 'https:\u002F\u002Faccounts.google.com'\n\nnew GoogleStrategy({\n  clientID: process.env.GOOGLE_CLIENT_ID,\n  clientSecret: process.env.GOOGLE_CLIENT_SECRET,\n  callbackURL: 'http:\u002F\u002Flocalhost:3000\u002Fapi\u002Fauth\u002Fcallback\u002Fgoogle',\n  authorizationURL: `${GOOGLE_URL}\u002Fo\u002Foauth2\u002Fv2\u002Fauth`,\n  tokenURL: `${GOOGLE_URL}\u002Foauth2\u002Ftoken`,\n  userProfileURL: `${GOOGLE_URL}\u002Foauth2\u002Fv2\u002Fuserinfo`,\n}, verifyCallback)\n",[1349],{"type":51,"tag":81,"props":1350,"children":1351},{"__ignoreMap":78},[1352,1399,1406,1457,1464,1484,1520,1555,1583,1619,1655,1691],{"type":51,"tag":85,"props":1353,"children":1354},{"class":87,"line":88},[1355,1359,1363,1368,1373,1378,1382,1386,1390,1395],{"type":51,"tag":85,"props":1356,"children":1357},{"style":169},[1358],{"type":57,"value":172},{"type":51,"tag":85,"props":1360,"children":1361},{"style":175},[1362],{"type":57,"value":178},{"type":51,"tag":85,"props":1364,"children":1365},{"style":181},[1366],{"type":57,"value":1367}," Strategy",{"type":51,"tag":85,"props":1369,"children":1370},{"style":169},[1371],{"type":57,"value":1372}," as",{"type":51,"tag":85,"props":1374,"children":1375},{"style":181},[1376],{"type":57,"value":1377}," GoogleStrategy",{"type":51,"tag":85,"props":1379,"children":1380},{"style":175},[1381],{"type":57,"value":189},{"type":51,"tag":85,"props":1383,"children":1384},{"style":169},[1385],{"type":57,"value":194},{"type":51,"tag":85,"props":1387,"children":1388},{"style":175},[1389],{"type":57,"value":199},{"type":51,"tag":85,"props":1391,"children":1392},{"style":108},[1393],{"type":57,"value":1394},"passport-google-oauth20",{"type":51,"tag":85,"props":1396,"children":1397},{"style":175},[1398],{"type":57,"value":209},{"type":51,"tag":85,"props":1400,"children":1401},{"class":87,"line":98},[1402],{"type":51,"tag":85,"props":1403,"children":1404},{"emptyLinePlaceholder":128},[1405],{"type":57,"value":131},{"type":51,"tag":85,"props":1407,"children":1408},{"class":87,"line":124},[1409,1413,1417,1421,1425,1429,1433,1437,1441,1445,1449,1453],{"type":51,"tag":85,"props":1410,"children":1411},{"style":222},[1412],{"type":57,"value":225},{"type":51,"tag":85,"props":1414,"children":1415},{"style":181},[1416],{"type":57,"value":624},{"type":51,"tag":85,"props":1418,"children":1419},{"style":175},[1420],{"type":57,"value":235},{"type":51,"tag":85,"props":1422,"children":1423},{"style":181},[1424],{"type":57,"value":633},{"type":51,"tag":85,"props":1426,"children":1427},{"style":175},[1428],{"type":57,"value":638},{"type":51,"tag":85,"props":1430,"children":1431},{"style":181},[1432],{"type":57,"value":643},{"type":51,"tag":85,"props":1434,"children":1435},{"style":175},[1436],{"type":57,"value":638},{"type":51,"tag":85,"props":1438,"children":1439},{"style":181},[1440],{"type":57,"value":652},{"type":51,"tag":85,"props":1442,"children":1443},{"style":175},[1444],{"type":57,"value":657},{"type":51,"tag":85,"props":1446,"children":1447},{"style":175},[1448],{"type":57,"value":199},{"type":51,"tag":85,"props":1450,"children":1451},{"style":108},[1452],{"type":57,"value":666},{"type":51,"tag":85,"props":1454,"children":1455},{"style":175},[1456],{"type":57,"value":209},{"type":51,"tag":85,"props":1458,"children":1459},{"class":87,"line":134},[1460],{"type":51,"tag":85,"props":1461,"children":1462},{"emptyLinePlaceholder":128},[1463],{"type":57,"value":131},{"type":51,"tag":85,"props":1465,"children":1466},{"class":87,"line":143},[1467,1472,1476,1480],{"type":51,"tag":85,"props":1468,"children":1469},{"style":175},[1470],{"type":57,"value":1471},"new",{"type":51,"tag":85,"props":1473,"children":1474},{"style":243},[1475],{"type":57,"value":1377},{"type":51,"tag":85,"props":1477,"children":1478},{"style":181},[1479],{"type":57,"value":250},{"type":51,"tag":85,"props":1481,"children":1482},{"style":175},[1483],{"type":57,"value":711},{"type":51,"tag":85,"props":1485,"children":1486},{"class":87,"line":714},[1487,1492,1496,1500,1504,1508,1512,1516],{"type":51,"tag":85,"props":1488,"children":1489},{"style":258},[1490],{"type":57,"value":1491},"  clientID",{"type":51,"tag":85,"props":1493,"children":1494},{"style":175},[1495],{"type":57,"value":266},{"type":51,"tag":85,"props":1497,"children":1498},{"style":181},[1499],{"type":57,"value":633},{"type":51,"tag":85,"props":1501,"children":1502},{"style":175},[1503],{"type":57,"value":638},{"type":51,"tag":85,"props":1505,"children":1506},{"style":181},[1507],{"type":57,"value":643},{"type":51,"tag":85,"props":1509,"children":1510},{"style":175},[1511],{"type":57,"value":638},{"type":51,"tag":85,"props":1513,"children":1514},{"style":181},[1515],{"type":57,"value":745},{"type":51,"tag":85,"props":1517,"children":1518},{"style":175},[1519],{"type":57,"value":750},{"type":51,"tag":85,"props":1521,"children":1522},{"class":87,"line":753},[1523,1527,1531,1535,1539,1543,1547,1551],{"type":51,"tag":85,"props":1524,"children":1525},{"style":258},[1526],{"type":57,"value":759},{"type":51,"tag":85,"props":1528,"children":1529},{"style":175},[1530],{"type":57,"value":266},{"type":51,"tag":85,"props":1532,"children":1533},{"style":181},[1534],{"type":57,"value":633},{"type":51,"tag":85,"props":1536,"children":1537},{"style":175},[1538],{"type":57,"value":638},{"type":51,"tag":85,"props":1540,"children":1541},{"style":181},[1542],{"type":57,"value":643},{"type":51,"tag":85,"props":1544,"children":1545},{"style":175},[1546],{"type":57,"value":638},{"type":51,"tag":85,"props":1548,"children":1549},{"style":181},[1550],{"type":57,"value":784},{"type":51,"tag":85,"props":1552,"children":1553},{"style":175},[1554],{"type":57,"value":750},{"type":51,"tag":85,"props":1556,"children":1557},{"class":87,"line":791},[1558,1563,1567,1571,1575,1579],{"type":51,"tag":85,"props":1559,"children":1560},{"style":258},[1561],{"type":57,"value":1562},"  callbackURL",{"type":51,"tag":85,"props":1564,"children":1565},{"style":175},[1566],{"type":57,"value":266},{"type":51,"tag":85,"props":1568,"children":1569},{"style":175},[1570],{"type":57,"value":199},{"type":51,"tag":85,"props":1572,"children":1573},{"style":108},[1574],{"type":57,"value":810},{"type":51,"tag":85,"props":1576,"children":1577},{"style":175},[1578],{"type":57,"value":279},{"type":51,"tag":85,"props":1580,"children":1581},{"style":175},[1582],{"type":57,"value":750},{"type":51,"tag":85,"props":1584,"children":1585},{"class":87,"line":821},[1586,1591,1595,1599,1603,1607,1611,1615],{"type":51,"tag":85,"props":1587,"children":1588},{"style":258},[1589],{"type":57,"value":1590},"  authorizationURL",{"type":51,"tag":85,"props":1592,"children":1593},{"style":175},[1594],{"type":57,"value":266},{"type":51,"tag":85,"props":1596,"children":1597},{"style":175},[1598],{"type":57,"value":861},{"type":51,"tag":85,"props":1600,"children":1601},{"style":181},[1602],{"type":57,"value":866},{"type":51,"tag":85,"props":1604,"children":1605},{"style":175},[1606],{"type":57,"value":827},{"type":51,"tag":85,"props":1608,"children":1609},{"style":108},[1610],{"type":57,"value":1112},{"type":51,"tag":85,"props":1612,"children":1613},{"style":175},[1614],{"type":57,"value":1117},{"type":51,"tag":85,"props":1616,"children":1617},{"style":175},[1618],{"type":57,"value":750},{"type":51,"tag":85,"props":1620,"children":1621},{"class":87,"line":834},[1622,1627,1631,1635,1639,1643,1647,1651],{"type":51,"tag":85,"props":1623,"children":1624},{"style":258},[1625],{"type":57,"value":1626},"  tokenURL",{"type":51,"tag":85,"props":1628,"children":1629},{"style":175},[1630],{"type":57,"value":266},{"type":51,"tag":85,"props":1632,"children":1633},{"style":175},[1634],{"type":57,"value":861},{"type":51,"tag":85,"props":1636,"children":1637},{"style":181},[1638],{"type":57,"value":866},{"type":51,"tag":85,"props":1640,"children":1641},{"style":175},[1642],{"type":57,"value":827},{"type":51,"tag":85,"props":1644,"children":1645},{"style":108},[1646],{"type":57,"value":1232},{"type":51,"tag":85,"props":1648,"children":1649},{"style":175},[1650],{"type":57,"value":1117},{"type":51,"tag":85,"props":1652,"children":1653},{"style":175},[1654],{"type":57,"value":750},{"type":51,"tag":85,"props":1656,"children":1657},{"class":87,"line":842},[1658,1663,1667,1671,1675,1679,1683,1687],{"type":51,"tag":85,"props":1659,"children":1660},{"style":258},[1661],{"type":57,"value":1662},"  userProfileURL",{"type":51,"tag":85,"props":1664,"children":1665},{"style":175},[1666],{"type":57,"value":266},{"type":51,"tag":85,"props":1668,"children":1669},{"style":175},[1670],{"type":57,"value":861},{"type":51,"tag":85,"props":1672,"children":1673},{"style":181},[1674],{"type":57,"value":866},{"type":51,"tag":85,"props":1676,"children":1677},{"style":175},[1678],{"type":57,"value":827},{"type":51,"tag":85,"props":1680,"children":1681},{"style":108},[1682],{"type":57,"value":1310},{"type":51,"tag":85,"props":1684,"children":1685},{"style":175},[1686],{"type":57,"value":1117},{"type":51,"tag":85,"props":1688,"children":1689},{"style":175},[1690],{"type":57,"value":750},{"type":51,"tag":85,"props":1692,"children":1693},{"class":87,"line":1243},[1694,1699],{"type":51,"tag":85,"props":1695,"children":1696},{"style":175},[1697],{"type":57,"value":1698},"},",{"type":51,"tag":85,"props":1700,"children":1701},{"style":181},[1702],{"type":57,"value":1703}," verifyCallback)\n",{"type":51,"tag":66,"props":1705,"children":1707},{"id":1706},"seed-config",[1708],{"type":57,"value":1709},"Seed Config",{"type":51,"tag":73,"props":1711,"children":1715},{"className":1712,"code":1713,"language":1714,"meta":78,"style":78},"language-yaml shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","google:\n  users:\n    - email: testuser@gmail.com\n      name: Test User\n      given_name: Test\n      family_name: User\n      picture: https:\u002F\u002Flh3.googleusercontent.com\u002Fa\u002Fdefault-user\n      email_verified: true\n      locale: en\n    - email: dev@example.com\n      name: Developer\n    - email: admin@acme.com\n      name: Admin\n      hd: acme.com\n  oauth_clients:\n    - client_id: my-client-id.apps.googleusercontent.com\n      client_secret: GOCSPX-secret\n      name: My App\n      redirect_uris:\n        - http:\u002F\u002Flocalhost:3000\u002Fapi\u002Fauth\u002Fcallback\u002Fgoogle\n  labels:\n    - id: Label_ops\n      user_email: testuser@gmail.com\n      name: Ops\u002FReview\n      color_background: \"#DDEEFF\"\n      color_text: \"#111111\"\n  messages:\n    - id: msg_welcome\n      user_email: testuser@gmail.com\n      thread_id: thr_welcome\n      from: \"welcome@example.com\"\n      to: testuser@gmail.com\n      subject: Welcome to the Gmail emulator\n      body_text: You can now test Gmail flows locally.\n      label_ids: [INBOX, UNREAD, CATEGORY_UPDATES]\n      date: \"2025-01-04T10:00:00.000Z\"\n  calendars:\n    - id: primary\n      user_email: testuser@gmail.com\n      summary: testuser@gmail.com\n      primary: true\n      selected: true\n      time_zone: UTC\n  calendar_events:\n    - id: evt_kickoff\n      user_email: testuser@gmail.com\n      calendar_id: primary\n      summary: Project Kickoff\n      start_date_time: \"2025-01-10T09:00:00.000Z\"\n      end_date_time: \"2025-01-10T09:30:00.000Z\"\n      attendees:\n        - email: testuser@gmail.com\n          display_name: Test User\n      conference_entry_points:\n        - entry_point_type: video\n          uri: https:\u002F\u002Fmeet.google.com\u002Fexample\n          label: Google Meet\n      hangout_link: https:\u002F\u002Fmeet.google.com\u002Fexample\n  drive_items:\n    - id: drv_docs\n      user_email: testuser@gmail.com\n      name: Docs\n      mime_type: application\u002Fvnd.google-apps.folder\n      parent_ids: [root]\n    - id: drv_readme\n      user_email: testuser@gmail.com\n      name: README.md\n      mime_type: text\u002Fmarkdown\n      parent_ids: [drv_docs]\n      data: \"# Hello World\"\n","yaml",[1716],{"type":51,"tag":81,"props":1717,"children":1718},{"__ignoreMap":78},[1719,1731,1743,1765,1782,1799,1816,1833,1851,1868,1888,1904,1924,1940,1957,1969,1990,2008,2025,2038,2052,2065,2087,2104,2121,2149,2175,2188,2209,2225,2243,2269,2286,2304,2322,2368,2394,2407,2428,2444,2461,2478,2495,2513,2526,2547,2563,2580,2597,2623,2649,2662,2682,2699,2712,2734,2752,2770,2787,2800,2821,2837,2854,2872,2897,2918,2934,2951,2968,2993],{"type":51,"tag":85,"props":1720,"children":1721},{"class":87,"line":88},[1722,1726],{"type":51,"tag":85,"props":1723,"children":1724},{"style":258},[1725],{"type":57,"value":4},{"type":51,"tag":85,"props":1727,"children":1728},{"style":175},[1729],{"type":57,"value":1730},":\n",{"type":51,"tag":85,"props":1732,"children":1733},{"class":87,"line":98},[1734,1739],{"type":51,"tag":85,"props":1735,"children":1736},{"style":258},[1737],{"type":57,"value":1738},"  users",{"type":51,"tag":85,"props":1740,"children":1741},{"style":175},[1742],{"type":57,"value":1730},{"type":51,"tag":85,"props":1744,"children":1745},{"class":87,"line":124},[1746,1751,1756,1760],{"type":51,"tag":85,"props":1747,"children":1748},{"style":175},[1749],{"type":57,"value":1750},"    -",{"type":51,"tag":85,"props":1752,"children":1753},{"style":258},[1754],{"type":57,"value":1755}," email",{"type":51,"tag":85,"props":1757,"children":1758},{"style":175},[1759],{"type":57,"value":266},{"type":51,"tag":85,"props":1761,"children":1762},{"style":108},[1763],{"type":57,"value":1764}," testuser@gmail.com\n",{"type":51,"tag":85,"props":1766,"children":1767},{"class":87,"line":134},[1768,1773,1777],{"type":51,"tag":85,"props":1769,"children":1770},{"style":258},[1771],{"type":57,"value":1772},"      name",{"type":51,"tag":85,"props":1774,"children":1775},{"style":175},[1776],{"type":57,"value":266},{"type":51,"tag":85,"props":1778,"children":1779},{"style":108},[1780],{"type":57,"value":1781}," Test User\n",{"type":51,"tag":85,"props":1783,"children":1784},{"class":87,"line":143},[1785,1790,1794],{"type":51,"tag":85,"props":1786,"children":1787},{"style":258},[1788],{"type":57,"value":1789},"      given_name",{"type":51,"tag":85,"props":1791,"children":1792},{"style":175},[1793],{"type":57,"value":266},{"type":51,"tag":85,"props":1795,"children":1796},{"style":108},[1797],{"type":57,"value":1798}," Test\n",{"type":51,"tag":85,"props":1800,"children":1801},{"class":87,"line":714},[1802,1807,1811],{"type":51,"tag":85,"props":1803,"children":1804},{"style":258},[1805],{"type":57,"value":1806},"      family_name",{"type":51,"tag":85,"props":1808,"children":1809},{"style":175},[1810],{"type":57,"value":266},{"type":51,"tag":85,"props":1812,"children":1813},{"style":108},[1814],{"type":57,"value":1815}," User\n",{"type":51,"tag":85,"props":1817,"children":1818},{"class":87,"line":753},[1819,1824,1828],{"type":51,"tag":85,"props":1820,"children":1821},{"style":258},[1822],{"type":57,"value":1823},"      picture",{"type":51,"tag":85,"props":1825,"children":1826},{"style":175},[1827],{"type":57,"value":266},{"type":51,"tag":85,"props":1829,"children":1830},{"style":108},[1831],{"type":57,"value":1832}," https:\u002F\u002Flh3.googleusercontent.com\u002Fa\u002Fdefault-user\n",{"type":51,"tag":85,"props":1834,"children":1835},{"class":87,"line":791},[1836,1841,1845],{"type":51,"tag":85,"props":1837,"children":1838},{"style":258},[1839],{"type":57,"value":1840},"      email_verified",{"type":51,"tag":85,"props":1842,"children":1843},{"style":175},[1844],{"type":57,"value":266},{"type":51,"tag":85,"props":1846,"children":1848},{"style":1847},"--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC",[1849],{"type":57,"value":1850}," true\n",{"type":51,"tag":85,"props":1852,"children":1853},{"class":87,"line":821},[1854,1859,1863],{"type":51,"tag":85,"props":1855,"children":1856},{"style":258},[1857],{"type":57,"value":1858},"      locale",{"type":51,"tag":85,"props":1860,"children":1861},{"style":175},[1862],{"type":57,"value":266},{"type":51,"tag":85,"props":1864,"children":1865},{"style":108},[1866],{"type":57,"value":1867}," en\n",{"type":51,"tag":85,"props":1869,"children":1870},{"class":87,"line":834},[1871,1875,1879,1883],{"type":51,"tag":85,"props":1872,"children":1873},{"style":175},[1874],{"type":57,"value":1750},{"type":51,"tag":85,"props":1876,"children":1877},{"style":258},[1878],{"type":57,"value":1755},{"type":51,"tag":85,"props":1880,"children":1881},{"style":175},[1882],{"type":57,"value":266},{"type":51,"tag":85,"props":1884,"children":1885},{"style":108},[1886],{"type":57,"value":1887}," dev@example.com\n",{"type":51,"tag":85,"props":1889,"children":1890},{"class":87,"line":842},[1891,1895,1899],{"type":51,"tag":85,"props":1892,"children":1893},{"style":258},[1894],{"type":57,"value":1772},{"type":51,"tag":85,"props":1896,"children":1897},{"style":175},[1898],{"type":57,"value":266},{"type":51,"tag":85,"props":1900,"children":1901},{"style":108},[1902],{"type":57,"value":1903}," Developer\n",{"type":51,"tag":85,"props":1905,"children":1906},{"class":87,"line":1243},[1907,1911,1915,1919],{"type":51,"tag":85,"props":1908,"children":1909},{"style":175},[1910],{"type":57,"value":1750},{"type":51,"tag":85,"props":1912,"children":1913},{"style":258},[1914],{"type":57,"value":1755},{"type":51,"tag":85,"props":1916,"children":1917},{"style":175},[1918],{"type":57,"value":266},{"type":51,"tag":85,"props":1920,"children":1921},{"style":108},[1922],{"type":57,"value":1923}," admin@acme.com\n",{"type":51,"tag":85,"props":1925,"children":1926},{"class":87,"line":1251},[1927,1931,1935],{"type":51,"tag":85,"props":1928,"children":1929},{"style":258},[1930],{"type":57,"value":1772},{"type":51,"tag":85,"props":1932,"children":1933},{"style":175},[1934],{"type":57,"value":266},{"type":51,"tag":85,"props":1936,"children":1937},{"style":108},[1938],{"type":57,"value":1939}," Admin\n",{"type":51,"tag":85,"props":1941,"children":1942},{"class":87,"line":1268},[1943,1948,1952],{"type":51,"tag":85,"props":1944,"children":1945},{"style":258},[1946],{"type":57,"value":1947},"      hd",{"type":51,"tag":85,"props":1949,"children":1950},{"style":175},[1951],{"type":57,"value":266},{"type":51,"tag":85,"props":1953,"children":1954},{"style":108},[1955],{"type":57,"value":1956}," acme.com\n",{"type":51,"tag":85,"props":1958,"children":1959},{"class":87,"line":1321},[1960,1965],{"type":51,"tag":85,"props":1961,"children":1962},{"style":258},[1963],{"type":57,"value":1964},"  oauth_clients",{"type":51,"tag":85,"props":1966,"children":1967},{"style":175},[1968],{"type":57,"value":1730},{"type":51,"tag":85,"props":1970,"children":1971},{"class":87,"line":1329},[1972,1976,1981,1985],{"type":51,"tag":85,"props":1973,"children":1974},{"style":175},[1975],{"type":57,"value":1750},{"type":51,"tag":85,"props":1977,"children":1978},{"style":258},[1979],{"type":57,"value":1980}," client_id",{"type":51,"tag":85,"props":1982,"children":1983},{"style":175},[1984],{"type":57,"value":266},{"type":51,"tag":85,"props":1986,"children":1987},{"style":108},[1988],{"type":57,"value":1989}," my-client-id.apps.googleusercontent.com\n",{"type":51,"tag":85,"props":1991,"children":1993},{"class":87,"line":1992},17,[1994,1999,2003],{"type":51,"tag":85,"props":1995,"children":1996},{"style":258},[1997],{"type":57,"value":1998},"      client_secret",{"type":51,"tag":85,"props":2000,"children":2001},{"style":175},[2002],{"type":57,"value":266},{"type":51,"tag":85,"props":2004,"children":2005},{"style":108},[2006],{"type":57,"value":2007}," GOCSPX-secret\n",{"type":51,"tag":85,"props":2009,"children":2011},{"class":87,"line":2010},18,[2012,2016,2020],{"type":51,"tag":85,"props":2013,"children":2014},{"style":258},[2015],{"type":57,"value":1772},{"type":51,"tag":85,"props":2017,"children":2018},{"style":175},[2019],{"type":57,"value":266},{"type":51,"tag":85,"props":2021,"children":2022},{"style":108},[2023],{"type":57,"value":2024}," My App\n",{"type":51,"tag":85,"props":2026,"children":2028},{"class":87,"line":2027},19,[2029,2034],{"type":51,"tag":85,"props":2030,"children":2031},{"style":258},[2032],{"type":57,"value":2033},"      redirect_uris",{"type":51,"tag":85,"props":2035,"children":2036},{"style":175},[2037],{"type":57,"value":1730},{"type":51,"tag":85,"props":2039,"children":2041},{"class":87,"line":2040},20,[2042,2047],{"type":51,"tag":85,"props":2043,"children":2044},{"style":175},[2045],{"type":57,"value":2046},"        -",{"type":51,"tag":85,"props":2048,"children":2049},{"style":108},[2050],{"type":57,"value":2051}," http:\u002F\u002Flocalhost:3000\u002Fapi\u002Fauth\u002Fcallback\u002Fgoogle\n",{"type":51,"tag":85,"props":2053,"children":2055},{"class":87,"line":2054},21,[2056,2061],{"type":51,"tag":85,"props":2057,"children":2058},{"style":258},[2059],{"type":57,"value":2060},"  labels",{"type":51,"tag":85,"props":2062,"children":2063},{"style":175},[2064],{"type":57,"value":1730},{"type":51,"tag":85,"props":2066,"children":2068},{"class":87,"line":2067},22,[2069,2073,2078,2082],{"type":51,"tag":85,"props":2070,"children":2071},{"style":175},[2072],{"type":57,"value":1750},{"type":51,"tag":85,"props":2074,"children":2075},{"style":258},[2076],{"type":57,"value":2077}," id",{"type":51,"tag":85,"props":2079,"children":2080},{"style":175},[2081],{"type":57,"value":266},{"type":51,"tag":85,"props":2083,"children":2084},{"style":108},[2085],{"type":57,"value":2086}," Label_ops\n",{"type":51,"tag":85,"props":2088,"children":2090},{"class":87,"line":2089},23,[2091,2096,2100],{"type":51,"tag":85,"props":2092,"children":2093},{"style":258},[2094],{"type":57,"value":2095},"      user_email",{"type":51,"tag":85,"props":2097,"children":2098},{"style":175},[2099],{"type":57,"value":266},{"type":51,"tag":85,"props":2101,"children":2102},{"style":108},[2103],{"type":57,"value":1764},{"type":51,"tag":85,"props":2105,"children":2107},{"class":87,"line":2106},24,[2108,2112,2116],{"type":51,"tag":85,"props":2109,"children":2110},{"style":258},[2111],{"type":57,"value":1772},{"type":51,"tag":85,"props":2113,"children":2114},{"style":175},[2115],{"type":57,"value":266},{"type":51,"tag":85,"props":2117,"children":2118},{"style":108},[2119],{"type":57,"value":2120}," Ops\u002FReview\n",{"type":51,"tag":85,"props":2122,"children":2124},{"class":87,"line":2123},25,[2125,2130,2134,2139,2144],{"type":51,"tag":85,"props":2126,"children":2127},{"style":258},[2128],{"type":57,"value":2129},"      color_background",{"type":51,"tag":85,"props":2131,"children":2132},{"style":175},[2133],{"type":57,"value":266},{"type":51,"tag":85,"props":2135,"children":2136},{"style":175},[2137],{"type":57,"value":2138}," \"",{"type":51,"tag":85,"props":2140,"children":2141},{"style":108},[2142],{"type":57,"value":2143},"#DDEEFF",{"type":51,"tag":85,"props":2145,"children":2146},{"style":175},[2147],{"type":57,"value":2148},"\"\n",{"type":51,"tag":85,"props":2150,"children":2152},{"class":87,"line":2151},26,[2153,2158,2162,2166,2171],{"type":51,"tag":85,"props":2154,"children":2155},{"style":258},[2156],{"type":57,"value":2157},"      color_text",{"type":51,"tag":85,"props":2159,"children":2160},{"style":175},[2161],{"type":57,"value":266},{"type":51,"tag":85,"props":2163,"children":2164},{"style":175},[2165],{"type":57,"value":2138},{"type":51,"tag":85,"props":2167,"children":2168},{"style":108},[2169],{"type":57,"value":2170},"#111111",{"type":51,"tag":85,"props":2172,"children":2173},{"style":175},[2174],{"type":57,"value":2148},{"type":51,"tag":85,"props":2176,"children":2178},{"class":87,"line":2177},27,[2179,2184],{"type":51,"tag":85,"props":2180,"children":2181},{"style":258},[2182],{"type":57,"value":2183},"  messages",{"type":51,"tag":85,"props":2185,"children":2186},{"style":175},[2187],{"type":57,"value":1730},{"type":51,"tag":85,"props":2189,"children":2191},{"class":87,"line":2190},28,[2192,2196,2200,2204],{"type":51,"tag":85,"props":2193,"children":2194},{"style":175},[2195],{"type":57,"value":1750},{"type":51,"tag":85,"props":2197,"children":2198},{"style":258},[2199],{"type":57,"value":2077},{"type":51,"tag":85,"props":2201,"children":2202},{"style":175},[2203],{"type":57,"value":266},{"type":51,"tag":85,"props":2205,"children":2206},{"style":108},[2207],{"type":57,"value":2208}," msg_welcome\n",{"type":51,"tag":85,"props":2210,"children":2212},{"class":87,"line":2211},29,[2213,2217,2221],{"type":51,"tag":85,"props":2214,"children":2215},{"style":258},[2216],{"type":57,"value":2095},{"type":51,"tag":85,"props":2218,"children":2219},{"style":175},[2220],{"type":57,"value":266},{"type":51,"tag":85,"props":2222,"children":2223},{"style":108},[2224],{"type":57,"value":1764},{"type":51,"tag":85,"props":2226,"children":2228},{"class":87,"line":2227},30,[2229,2234,2238],{"type":51,"tag":85,"props":2230,"children":2231},{"style":258},[2232],{"type":57,"value":2233},"      thread_id",{"type":51,"tag":85,"props":2235,"children":2236},{"style":175},[2237],{"type":57,"value":266},{"type":51,"tag":85,"props":2239,"children":2240},{"style":108},[2241],{"type":57,"value":2242}," thr_welcome\n",{"type":51,"tag":85,"props":2244,"children":2246},{"class":87,"line":2245},31,[2247,2252,2256,2260,2265],{"type":51,"tag":85,"props":2248,"children":2249},{"style":258},[2250],{"type":57,"value":2251},"      from",{"type":51,"tag":85,"props":2253,"children":2254},{"style":175},[2255],{"type":57,"value":266},{"type":51,"tag":85,"props":2257,"children":2258},{"style":175},[2259],{"type":57,"value":2138},{"type":51,"tag":85,"props":2261,"children":2262},{"style":108},[2263],{"type":57,"value":2264},"welcome@example.com",{"type":51,"tag":85,"props":2266,"children":2267},{"style":175},[2268],{"type":57,"value":2148},{"type":51,"tag":85,"props":2270,"children":2272},{"class":87,"line":2271},32,[2273,2278,2282],{"type":51,"tag":85,"props":2274,"children":2275},{"style":258},[2276],{"type":57,"value":2277},"      to",{"type":51,"tag":85,"props":2279,"children":2280},{"style":175},[2281],{"type":57,"value":266},{"type":51,"tag":85,"props":2283,"children":2284},{"style":108},[2285],{"type":57,"value":1764},{"type":51,"tag":85,"props":2287,"children":2289},{"class":87,"line":2288},33,[2290,2295,2299],{"type":51,"tag":85,"props":2291,"children":2292},{"style":258},[2293],{"type":57,"value":2294},"      subject",{"type":51,"tag":85,"props":2296,"children":2297},{"style":175},[2298],{"type":57,"value":266},{"type":51,"tag":85,"props":2300,"children":2301},{"style":108},[2302],{"type":57,"value":2303}," Welcome to the Gmail emulator\n",{"type":51,"tag":85,"props":2305,"children":2307},{"class":87,"line":2306},34,[2308,2313,2317],{"type":51,"tag":85,"props":2309,"children":2310},{"style":258},[2311],{"type":57,"value":2312},"      body_text",{"type":51,"tag":85,"props":2314,"children":2315},{"style":175},[2316],{"type":57,"value":266},{"type":51,"tag":85,"props":2318,"children":2319},{"style":108},[2320],{"type":57,"value":2321}," You can now test Gmail flows locally.\n",{"type":51,"tag":85,"props":2323,"children":2325},{"class":87,"line":2324},35,[2326,2331,2335,2340,2345,2349,2354,2358,2363],{"type":51,"tag":85,"props":2327,"children":2328},{"style":258},[2329],{"type":57,"value":2330},"      label_ids",{"type":51,"tag":85,"props":2332,"children":2333},{"style":175},[2334],{"type":57,"value":266},{"type":51,"tag":85,"props":2336,"children":2337},{"style":175},[2338],{"type":57,"value":2339}," [",{"type":51,"tag":85,"props":2341,"children":2342},{"style":108},[2343],{"type":57,"value":2344},"INBOX",{"type":51,"tag":85,"props":2346,"children":2347},{"style":175},[2348],{"type":57,"value":284},{"type":51,"tag":85,"props":2350,"children":2351},{"style":108},[2352],{"type":57,"value":2353}," UNREAD",{"type":51,"tag":85,"props":2355,"children":2356},{"style":175},[2357],{"type":57,"value":284},{"type":51,"tag":85,"props":2359,"children":2360},{"style":108},[2361],{"type":57,"value":2362}," CATEGORY_UPDATES",{"type":51,"tag":85,"props":2364,"children":2365},{"style":175},[2366],{"type":57,"value":2367},"]\n",{"type":51,"tag":85,"props":2369,"children":2371},{"class":87,"line":2370},36,[2372,2377,2381,2385,2390],{"type":51,"tag":85,"props":2373,"children":2374},{"style":258},[2375],{"type":57,"value":2376},"      date",{"type":51,"tag":85,"props":2378,"children":2379},{"style":175},[2380],{"type":57,"value":266},{"type":51,"tag":85,"props":2382,"children":2383},{"style":175},[2384],{"type":57,"value":2138},{"type":51,"tag":85,"props":2386,"children":2387},{"style":108},[2388],{"type":57,"value":2389},"2025-01-04T10:00:00.000Z",{"type":51,"tag":85,"props":2391,"children":2392},{"style":175},[2393],{"type":57,"value":2148},{"type":51,"tag":85,"props":2395,"children":2397},{"class":87,"line":2396},37,[2398,2403],{"type":51,"tag":85,"props":2399,"children":2400},{"style":258},[2401],{"type":57,"value":2402},"  calendars",{"type":51,"tag":85,"props":2404,"children":2405},{"style":175},[2406],{"type":57,"value":1730},{"type":51,"tag":85,"props":2408,"children":2410},{"class":87,"line":2409},38,[2411,2415,2419,2423],{"type":51,"tag":85,"props":2412,"children":2413},{"style":175},[2414],{"type":57,"value":1750},{"type":51,"tag":85,"props":2416,"children":2417},{"style":258},[2418],{"type":57,"value":2077},{"type":51,"tag":85,"props":2420,"children":2421},{"style":175},[2422],{"type":57,"value":266},{"type":51,"tag":85,"props":2424,"children":2425},{"style":108},[2426],{"type":57,"value":2427}," primary\n",{"type":51,"tag":85,"props":2429,"children":2431},{"class":87,"line":2430},39,[2432,2436,2440],{"type":51,"tag":85,"props":2433,"children":2434},{"style":258},[2435],{"type":57,"value":2095},{"type":51,"tag":85,"props":2437,"children":2438},{"style":175},[2439],{"type":57,"value":266},{"type":51,"tag":85,"props":2441,"children":2442},{"style":108},[2443],{"type":57,"value":1764},{"type":51,"tag":85,"props":2445,"children":2447},{"class":87,"line":2446},40,[2448,2453,2457],{"type":51,"tag":85,"props":2449,"children":2450},{"style":258},[2451],{"type":57,"value":2452},"      summary",{"type":51,"tag":85,"props":2454,"children":2455},{"style":175},[2456],{"type":57,"value":266},{"type":51,"tag":85,"props":2458,"children":2459},{"style":108},[2460],{"type":57,"value":1764},{"type":51,"tag":85,"props":2462,"children":2464},{"class":87,"line":2463},41,[2465,2470,2474],{"type":51,"tag":85,"props":2466,"children":2467},{"style":258},[2468],{"type":57,"value":2469},"      primary",{"type":51,"tag":85,"props":2471,"children":2472},{"style":175},[2473],{"type":57,"value":266},{"type":51,"tag":85,"props":2475,"children":2476},{"style":1847},[2477],{"type":57,"value":1850},{"type":51,"tag":85,"props":2479,"children":2481},{"class":87,"line":2480},42,[2482,2487,2491],{"type":51,"tag":85,"props":2483,"children":2484},{"style":258},[2485],{"type":57,"value":2486},"      selected",{"type":51,"tag":85,"props":2488,"children":2489},{"style":175},[2490],{"type":57,"value":266},{"type":51,"tag":85,"props":2492,"children":2493},{"style":1847},[2494],{"type":57,"value":1850},{"type":51,"tag":85,"props":2496,"children":2498},{"class":87,"line":2497},43,[2499,2504,2508],{"type":51,"tag":85,"props":2500,"children":2501},{"style":258},[2502],{"type":57,"value":2503},"      time_zone",{"type":51,"tag":85,"props":2505,"children":2506},{"style":175},[2507],{"type":57,"value":266},{"type":51,"tag":85,"props":2509,"children":2510},{"style":108},[2511],{"type":57,"value":2512}," UTC\n",{"type":51,"tag":85,"props":2514,"children":2516},{"class":87,"line":2515},44,[2517,2522],{"type":51,"tag":85,"props":2518,"children":2519},{"style":258},[2520],{"type":57,"value":2521},"  calendar_events",{"type":51,"tag":85,"props":2523,"children":2524},{"style":175},[2525],{"type":57,"value":1730},{"type":51,"tag":85,"props":2527,"children":2529},{"class":87,"line":2528},45,[2530,2534,2538,2542],{"type":51,"tag":85,"props":2531,"children":2532},{"style":175},[2533],{"type":57,"value":1750},{"type":51,"tag":85,"props":2535,"children":2536},{"style":258},[2537],{"type":57,"value":2077},{"type":51,"tag":85,"props":2539,"children":2540},{"style":175},[2541],{"type":57,"value":266},{"type":51,"tag":85,"props":2543,"children":2544},{"style":108},[2545],{"type":57,"value":2546}," evt_kickoff\n",{"type":51,"tag":85,"props":2548,"children":2550},{"class":87,"line":2549},46,[2551,2555,2559],{"type":51,"tag":85,"props":2552,"children":2553},{"style":258},[2554],{"type":57,"value":2095},{"type":51,"tag":85,"props":2556,"children":2557},{"style":175},[2558],{"type":57,"value":266},{"type":51,"tag":85,"props":2560,"children":2561},{"style":108},[2562],{"type":57,"value":1764},{"type":51,"tag":85,"props":2564,"children":2566},{"class":87,"line":2565},47,[2567,2572,2576],{"type":51,"tag":85,"props":2568,"children":2569},{"style":258},[2570],{"type":57,"value":2571},"      calendar_id",{"type":51,"tag":85,"props":2573,"children":2574},{"style":175},[2575],{"type":57,"value":266},{"type":51,"tag":85,"props":2577,"children":2578},{"style":108},[2579],{"type":57,"value":2427},{"type":51,"tag":85,"props":2581,"children":2583},{"class":87,"line":2582},48,[2584,2588,2592],{"type":51,"tag":85,"props":2585,"children":2586},{"style":258},[2587],{"type":57,"value":2452},{"type":51,"tag":85,"props":2589,"children":2590},{"style":175},[2591],{"type":57,"value":266},{"type":51,"tag":85,"props":2593,"children":2594},{"style":108},[2595],{"type":57,"value":2596}," Project Kickoff\n",{"type":51,"tag":85,"props":2598,"children":2600},{"class":87,"line":2599},49,[2601,2606,2610,2614,2619],{"type":51,"tag":85,"props":2602,"children":2603},{"style":258},[2604],{"type":57,"value":2605},"      start_date_time",{"type":51,"tag":85,"props":2607,"children":2608},{"style":175},[2609],{"type":57,"value":266},{"type":51,"tag":85,"props":2611,"children":2612},{"style":175},[2613],{"type":57,"value":2138},{"type":51,"tag":85,"props":2615,"children":2616},{"style":108},[2617],{"type":57,"value":2618},"2025-01-10T09:00:00.000Z",{"type":51,"tag":85,"props":2620,"children":2621},{"style":175},[2622],{"type":57,"value":2148},{"type":51,"tag":85,"props":2624,"children":2626},{"class":87,"line":2625},50,[2627,2632,2636,2640,2645],{"type":51,"tag":85,"props":2628,"children":2629},{"style":258},[2630],{"type":57,"value":2631},"      end_date_time",{"type":51,"tag":85,"props":2633,"children":2634},{"style":175},[2635],{"type":57,"value":266},{"type":51,"tag":85,"props":2637,"children":2638},{"style":175},[2639],{"type":57,"value":2138},{"type":51,"tag":85,"props":2641,"children":2642},{"style":108},[2643],{"type":57,"value":2644},"2025-01-10T09:30:00.000Z",{"type":51,"tag":85,"props":2646,"children":2647},{"style":175},[2648],{"type":57,"value":2148},{"type":51,"tag":85,"props":2650,"children":2652},{"class":87,"line":2651},51,[2653,2658],{"type":51,"tag":85,"props":2654,"children":2655},{"style":258},[2656],{"type":57,"value":2657},"      attendees",{"type":51,"tag":85,"props":2659,"children":2660},{"style":175},[2661],{"type":57,"value":1730},{"type":51,"tag":85,"props":2663,"children":2665},{"class":87,"line":2664},52,[2666,2670,2674,2678],{"type":51,"tag":85,"props":2667,"children":2668},{"style":175},[2669],{"type":57,"value":2046},{"type":51,"tag":85,"props":2671,"children":2672},{"style":258},[2673],{"type":57,"value":1755},{"type":51,"tag":85,"props":2675,"children":2676},{"style":175},[2677],{"type":57,"value":266},{"type":51,"tag":85,"props":2679,"children":2680},{"style":108},[2681],{"type":57,"value":1764},{"type":51,"tag":85,"props":2683,"children":2685},{"class":87,"line":2684},53,[2686,2691,2695],{"type":51,"tag":85,"props":2687,"children":2688},{"style":258},[2689],{"type":57,"value":2690},"          display_name",{"type":51,"tag":85,"props":2692,"children":2693},{"style":175},[2694],{"type":57,"value":266},{"type":51,"tag":85,"props":2696,"children":2697},{"style":108},[2698],{"type":57,"value":1781},{"type":51,"tag":85,"props":2700,"children":2702},{"class":87,"line":2701},54,[2703,2708],{"type":51,"tag":85,"props":2704,"children":2705},{"style":258},[2706],{"type":57,"value":2707},"      conference_entry_points",{"type":51,"tag":85,"props":2709,"children":2710},{"style":175},[2711],{"type":57,"value":1730},{"type":51,"tag":85,"props":2713,"children":2715},{"class":87,"line":2714},55,[2716,2720,2725,2729],{"type":51,"tag":85,"props":2717,"children":2718},{"style":175},[2719],{"type":57,"value":2046},{"type":51,"tag":85,"props":2721,"children":2722},{"style":258},[2723],{"type":57,"value":2724}," entry_point_type",{"type":51,"tag":85,"props":2726,"children":2727},{"style":175},[2728],{"type":57,"value":266},{"type":51,"tag":85,"props":2730,"children":2731},{"style":108},[2732],{"type":57,"value":2733}," video\n",{"type":51,"tag":85,"props":2735,"children":2737},{"class":87,"line":2736},56,[2738,2743,2747],{"type":51,"tag":85,"props":2739,"children":2740},{"style":258},[2741],{"type":57,"value":2742},"          uri",{"type":51,"tag":85,"props":2744,"children":2745},{"style":175},[2746],{"type":57,"value":266},{"type":51,"tag":85,"props":2748,"children":2749},{"style":108},[2750],{"type":57,"value":2751}," https:\u002F\u002Fmeet.google.com\u002Fexample\n",{"type":51,"tag":85,"props":2753,"children":2755},{"class":87,"line":2754},57,[2756,2761,2765],{"type":51,"tag":85,"props":2757,"children":2758},{"style":258},[2759],{"type":57,"value":2760},"          label",{"type":51,"tag":85,"props":2762,"children":2763},{"style":175},[2764],{"type":57,"value":266},{"type":51,"tag":85,"props":2766,"children":2767},{"style":108},[2768],{"type":57,"value":2769}," Google Meet\n",{"type":51,"tag":85,"props":2771,"children":2773},{"class":87,"line":2772},58,[2774,2779,2783],{"type":51,"tag":85,"props":2775,"children":2776},{"style":258},[2777],{"type":57,"value":2778},"      hangout_link",{"type":51,"tag":85,"props":2780,"children":2781},{"style":175},[2782],{"type":57,"value":266},{"type":51,"tag":85,"props":2784,"children":2785},{"style":108},[2786],{"type":57,"value":2751},{"type":51,"tag":85,"props":2788,"children":2790},{"class":87,"line":2789},59,[2791,2796],{"type":51,"tag":85,"props":2792,"children":2793},{"style":258},[2794],{"type":57,"value":2795},"  drive_items",{"type":51,"tag":85,"props":2797,"children":2798},{"style":175},[2799],{"type":57,"value":1730},{"type":51,"tag":85,"props":2801,"children":2803},{"class":87,"line":2802},60,[2804,2808,2812,2816],{"type":51,"tag":85,"props":2805,"children":2806},{"style":175},[2807],{"type":57,"value":1750},{"type":51,"tag":85,"props":2809,"children":2810},{"style":258},[2811],{"type":57,"value":2077},{"type":51,"tag":85,"props":2813,"children":2814},{"style":175},[2815],{"type":57,"value":266},{"type":51,"tag":85,"props":2817,"children":2818},{"style":108},[2819],{"type":57,"value":2820}," drv_docs\n",{"type":51,"tag":85,"props":2822,"children":2824},{"class":87,"line":2823},61,[2825,2829,2833],{"type":51,"tag":85,"props":2826,"children":2827},{"style":258},[2828],{"type":57,"value":2095},{"type":51,"tag":85,"props":2830,"children":2831},{"style":175},[2832],{"type":57,"value":266},{"type":51,"tag":85,"props":2834,"children":2835},{"style":108},[2836],{"type":57,"value":1764},{"type":51,"tag":85,"props":2838,"children":2840},{"class":87,"line":2839},62,[2841,2845,2849],{"type":51,"tag":85,"props":2842,"children":2843},{"style":258},[2844],{"type":57,"value":1772},{"type":51,"tag":85,"props":2846,"children":2847},{"style":175},[2848],{"type":57,"value":266},{"type":51,"tag":85,"props":2850,"children":2851},{"style":108},[2852],{"type":57,"value":2853}," Docs\n",{"type":51,"tag":85,"props":2855,"children":2857},{"class":87,"line":2856},63,[2858,2863,2867],{"type":51,"tag":85,"props":2859,"children":2860},{"style":258},[2861],{"type":57,"value":2862},"      mime_type",{"type":51,"tag":85,"props":2864,"children":2865},{"style":175},[2866],{"type":57,"value":266},{"type":51,"tag":85,"props":2868,"children":2869},{"style":108},[2870],{"type":57,"value":2871}," application\u002Fvnd.google-apps.folder\n",{"type":51,"tag":85,"props":2873,"children":2875},{"class":87,"line":2874},64,[2876,2881,2885,2889,2893],{"type":51,"tag":85,"props":2877,"children":2878},{"style":258},[2879],{"type":57,"value":2880},"      parent_ids",{"type":51,"tag":85,"props":2882,"children":2883},{"style":175},[2884],{"type":57,"value":266},{"type":51,"tag":85,"props":2886,"children":2887},{"style":175},[2888],{"type":57,"value":2339},{"type":51,"tag":85,"props":2890,"children":2891},{"style":108},[2892],{"type":57,"value":48},{"type":51,"tag":85,"props":2894,"children":2895},{"style":175},[2896],{"type":57,"value":2367},{"type":51,"tag":85,"props":2898,"children":2900},{"class":87,"line":2899},65,[2901,2905,2909,2913],{"type":51,"tag":85,"props":2902,"children":2903},{"style":175},[2904],{"type":57,"value":1750},{"type":51,"tag":85,"props":2906,"children":2907},{"style":258},[2908],{"type":57,"value":2077},{"type":51,"tag":85,"props":2910,"children":2911},{"style":175},[2912],{"type":57,"value":266},{"type":51,"tag":85,"props":2914,"children":2915},{"style":108},[2916],{"type":57,"value":2917}," drv_readme\n",{"type":51,"tag":85,"props":2919,"children":2921},{"class":87,"line":2920},66,[2922,2926,2930],{"type":51,"tag":85,"props":2923,"children":2924},{"style":258},[2925],{"type":57,"value":2095},{"type":51,"tag":85,"props":2927,"children":2928},{"style":175},[2929],{"type":57,"value":266},{"type":51,"tag":85,"props":2931,"children":2932},{"style":108},[2933],{"type":57,"value":1764},{"type":51,"tag":85,"props":2935,"children":2937},{"class":87,"line":2936},67,[2938,2942,2946],{"type":51,"tag":85,"props":2939,"children":2940},{"style":258},[2941],{"type":57,"value":1772},{"type":51,"tag":85,"props":2943,"children":2944},{"style":175},[2945],{"type":57,"value":266},{"type":51,"tag":85,"props":2947,"children":2948},{"style":108},[2949],{"type":57,"value":2950}," README.md\n",{"type":51,"tag":85,"props":2952,"children":2954},{"class":87,"line":2953},68,[2955,2959,2963],{"type":51,"tag":85,"props":2956,"children":2957},{"style":258},[2958],{"type":57,"value":2862},{"type":51,"tag":85,"props":2960,"children":2961},{"style":175},[2962],{"type":57,"value":266},{"type":51,"tag":85,"props":2964,"children":2965},{"style":108},[2966],{"type":57,"value":2967}," text\u002Fmarkdown\n",{"type":51,"tag":85,"props":2969,"children":2971},{"class":87,"line":2970},69,[2972,2976,2980,2984,2989],{"type":51,"tag":85,"props":2973,"children":2974},{"style":258},[2975],{"type":57,"value":2880},{"type":51,"tag":85,"props":2977,"children":2978},{"style":175},[2979],{"type":57,"value":266},{"type":51,"tag":85,"props":2981,"children":2982},{"style":175},[2983],{"type":57,"value":2339},{"type":51,"tag":85,"props":2985,"children":2986},{"style":108},[2987],{"type":57,"value":2988},"drv_docs",{"type":51,"tag":85,"props":2990,"children":2991},{"style":175},[2992],{"type":57,"value":2367},{"type":51,"tag":85,"props":2994,"children":2996},{"class":87,"line":2995},70,[2997,3002,3006,3010,3015],{"type":51,"tag":85,"props":2998,"children":2999},{"style":258},[3000],{"type":57,"value":3001},"      data",{"type":51,"tag":85,"props":3003,"children":3004},{"style":175},[3005],{"type":57,"value":266},{"type":51,"tag":85,"props":3007,"children":3008},{"style":175},[3009],{"type":57,"value":2138},{"type":51,"tag":85,"props":3011,"children":3012},{"style":108},[3013],{"type":57,"value":3014},"# Hello World",{"type":51,"tag":85,"props":3016,"children":3017},{"style":175},[3018],{"type":57,"value":2148},{"type":51,"tag":60,"props":3020,"children":3021},{},[3022,3024,3030,3032,3037,3039,3045,3047,3053],{"type":57,"value":3023},"When no OAuth clients are configured, the emulator accepts any ",{"type":51,"tag":81,"props":3025,"children":3027},{"className":3026},[],[3028],{"type":57,"value":3029},"client_id",{"type":57,"value":3031},". With clients configured, strict validation is enforced for ",{"type":51,"tag":81,"props":3033,"children":3035},{"className":3034},[],[3036],{"type":57,"value":3029},{"type":57,"value":3038},", ",{"type":51,"tag":81,"props":3040,"children":3042},{"className":3041},[],[3043],{"type":57,"value":3044},"client_secret",{"type":57,"value":3046},", and ",{"type":51,"tag":81,"props":3048,"children":3050},{"className":3049},[],[3051],{"type":57,"value":3052},"redirect_uri",{"type":57,"value":638},{"type":51,"tag":324,"props":3055,"children":3057},{"id":3056},"hosted-domain-hd-claim",[3058],{"type":57,"value":3059},"Hosted domain (hd) claim",{"type":51,"tag":60,"props":3061,"children":3062},{},[3063,3065,3071,3073,3079,3080,3086],{"type":57,"value":3064},"Google Workspace accounts include an ",{"type":51,"tag":81,"props":3066,"children":3068},{"className":3067},[],[3069],{"type":57,"value":3070},"hd",{"type":57,"value":3072}," claim in ID tokens and userinfo responses identifying the user's hosted domain. The emulator derives this automatically from the user's email domain. Consumer domains (",{"type":51,"tag":81,"props":3074,"children":3076},{"className":3075},[],[3077],{"type":57,"value":3078},"gmail.com",{"type":57,"value":3038},{"type":51,"tag":81,"props":3081,"children":3083},{"className":3082},[],[3084],{"type":57,"value":3085},"googlemail.com",{"type":57,"value":3087},") omit the claim, matching real Google behavior.",{"type":51,"tag":60,"props":3089,"children":3090},{},[3091,3093,3098,3100,3105],{"type":57,"value":3092},"To override the derived value, set ",{"type":51,"tag":81,"props":3094,"children":3096},{"className":3095},[],[3097],{"type":57,"value":3070},{"type":57,"value":3099}," on a seeded user. To suppress the claim entirely, set ",{"type":51,"tag":81,"props":3101,"children":3103},{"className":3102},[],[3104],{"type":57,"value":3070},{"type":57,"value":3106}," to an empty string.",{"type":51,"tag":66,"props":3108,"children":3110},{"id":3109},"oauth-oidc-endpoints",[3111],{"type":57,"value":3112},"OAuth \u002F OIDC Endpoints",{"type":51,"tag":324,"props":3114,"children":3116},{"id":3115},"oidc-discovery",[3117],{"type":57,"value":3118},"OIDC Discovery",{"type":51,"tag":73,"props":3120,"children":3122},{"className":75,"code":3121,"language":77,"meta":78,"style":78},"curl http:\u002F\u002Flocalhost:4002\u002F.well-known\u002Fopenid-configuration\n",[3123],{"type":51,"tag":81,"props":3124,"children":3125},{"__ignoreMap":78},[3126],{"type":51,"tag":85,"props":3127,"children":3128},{"class":87,"line":88},[3129,3134],{"type":51,"tag":85,"props":3130,"children":3131},{"style":102},[3132],{"type":57,"value":3133},"curl",{"type":51,"tag":85,"props":3135,"children":3136},{"style":108},[3137],{"type":57,"value":3138}," http:\u002F\u002Flocalhost:4002\u002F.well-known\u002Fopenid-configuration\n",{"type":51,"tag":324,"props":3140,"children":3142},{"id":3141},"jwks",[3143],{"type":57,"value":3144},"JWKS",{"type":51,"tag":73,"props":3146,"children":3148},{"className":75,"code":3147,"language":77,"meta":78,"style":78},"curl http:\u002F\u002Flocalhost:4002\u002Foauth2\u002Fv3\u002Fcerts\n",[3149],{"type":51,"tag":81,"props":3150,"children":3151},{"__ignoreMap":78},[3152],{"type":51,"tag":85,"props":3153,"children":3154},{"class":87,"line":88},[3155,3159],{"type":51,"tag":85,"props":3156,"children":3157},{"style":102},[3158],{"type":57,"value":3133},{"type":51,"tag":85,"props":3160,"children":3161},{"style":108},[3162],{"type":57,"value":3163}," http:\u002F\u002Flocalhost:4002\u002Foauth2\u002Fv3\u002Fcerts\n",{"type":51,"tag":60,"props":3165,"children":3166},{},[3167,3169,3175],{"type":57,"value":3168},"Returns ",{"type":51,"tag":81,"props":3170,"children":3172},{"className":3171},[],[3173],{"type":57,"value":3174},"{ \"keys\": [] }",{"type":57,"value":3176},". ID tokens are signed with HS256 using an internal secret.",{"type":51,"tag":324,"props":3178,"children":3180},{"id":3179},"authorization",[3181],{"type":57,"value":3182},"Authorization",{"type":51,"tag":73,"props":3184,"children":3186},{"className":75,"code":3185,"language":77,"meta":78,"style":78},"# Browser flow: redirects to a user picker page\ncurl -v \"http:\u002F\u002Flocalhost:4002\u002Fo\u002Foauth2\u002Fv2\u002Fauth?\\\nclient_id=my-client-id.apps.googleusercontent.com&\\\nredirect_uri=http:\u002F\u002Flocalhost:3000\u002Fapi\u002Fauth\u002Fcallback\u002Fgoogle&\\\nscope=openid+email+profile&\\\nresponse_type=code&\\\nstate=random-state&\\\nnonce=random-nonce\"\n",[3187],{"type":51,"tag":81,"props":3188,"children":3189},{"__ignoreMap":78},[3190,3198,3224,3236,3248,3260,3272,3284],{"type":51,"tag":85,"props":3191,"children":3192},{"class":87,"line":88},[3193],{"type":51,"tag":85,"props":3194,"children":3195},{"style":92},[3196],{"type":57,"value":3197},"# Browser flow: redirects to a user picker page\n",{"type":51,"tag":85,"props":3199,"children":3200},{"class":87,"line":98},[3201,3205,3210,3214,3219],{"type":51,"tag":85,"props":3202,"children":3203},{"style":102},[3204],{"type":57,"value":3133},{"type":51,"tag":85,"props":3206,"children":3207},{"style":108},[3208],{"type":57,"value":3209}," -v",{"type":51,"tag":85,"props":3211,"children":3212},{"style":175},[3213],{"type":57,"value":2138},{"type":51,"tag":85,"props":3215,"children":3216},{"style":108},[3217],{"type":57,"value":3218},"http:\u002F\u002Flocalhost:4002\u002Fo\u002Foauth2\u002Fv2\u002Fauth?",{"type":51,"tag":85,"props":3220,"children":3221},{"style":181},[3222],{"type":57,"value":3223},"\\\n",{"type":51,"tag":85,"props":3225,"children":3226},{"class":87,"line":124},[3227,3232],{"type":51,"tag":85,"props":3228,"children":3229},{"style":108},[3230],{"type":57,"value":3231},"client_id=my-client-id.apps.googleusercontent.com&",{"type":51,"tag":85,"props":3233,"children":3234},{"style":181},[3235],{"type":57,"value":3223},{"type":51,"tag":85,"props":3237,"children":3238},{"class":87,"line":134},[3239,3244],{"type":51,"tag":85,"props":3240,"children":3241},{"style":108},[3242],{"type":57,"value":3243},"redirect_uri=http:\u002F\u002Flocalhost:3000\u002Fapi\u002Fauth\u002Fcallback\u002Fgoogle&",{"type":51,"tag":85,"props":3245,"children":3246},{"style":181},[3247],{"type":57,"value":3223},{"type":51,"tag":85,"props":3249,"children":3250},{"class":87,"line":143},[3251,3256],{"type":51,"tag":85,"props":3252,"children":3253},{"style":108},[3254],{"type":57,"value":3255},"scope=openid+email+profile&",{"type":51,"tag":85,"props":3257,"children":3258},{"style":181},[3259],{"type":57,"value":3223},{"type":51,"tag":85,"props":3261,"children":3262},{"class":87,"line":714},[3263,3268],{"type":51,"tag":85,"props":3264,"children":3265},{"style":108},[3266],{"type":57,"value":3267},"response_type=code&",{"type":51,"tag":85,"props":3269,"children":3270},{"style":181},[3271],{"type":57,"value":3223},{"type":51,"tag":85,"props":3273,"children":3274},{"class":87,"line":753},[3275,3280],{"type":51,"tag":85,"props":3276,"children":3277},{"style":108},[3278],{"type":57,"value":3279},"state=random-state&",{"type":51,"tag":85,"props":3281,"children":3282},{"style":181},[3283],{"type":57,"value":3223},{"type":51,"tag":85,"props":3285,"children":3286},{"class":87,"line":791},[3287,3292],{"type":51,"tag":85,"props":3288,"children":3289},{"style":108},[3290],{"type":57,"value":3291},"nonce=random-nonce",{"type":51,"tag":85,"props":3293,"children":3294},{"style":175},[3295],{"type":57,"value":2148},{"type":51,"tag":60,"props":3297,"children":3298},{},[3299,3301,3307,3309,3315],{"type":57,"value":3300},"Supports ",{"type":51,"tag":81,"props":3302,"children":3304},{"className":3303},[],[3305],{"type":57,"value":3306},"code_challenge",{"type":57,"value":3308}," and ",{"type":51,"tag":81,"props":3310,"children":3312},{"className":3311},[],[3313],{"type":57,"value":3314},"code_challenge_method",{"type":57,"value":3316}," for PKCE.",{"type":51,"tag":324,"props":3318,"children":3320},{"id":3319},"token-exchange",[3321],{"type":57,"value":3322},"Token Exchange",{"type":51,"tag":73,"props":3324,"children":3326},{"className":75,"code":3325,"language":77,"meta":78,"style":78},"curl -X POST http:\u002F\u002Flocalhost:4002\u002Foauth2\u002Ftoken \\\n  -H \"Content-Type: application\u002Fx-www-form-urlencoded\" \\\n  -d \"code=\u003Cauthorization_code>&\\\nclient_id=my-client-id.apps.googleusercontent.com&\\\nclient_secret=GOCSPX-secret&\\\nredirect_uri=http:\u002F\u002Flocalhost:3000\u002Fapi\u002Fauth\u002Fcallback\u002Fgoogle&\\\ngrant_type=authorization_code\"\n",[3327],{"type":51,"tag":81,"props":3328,"children":3329},{"__ignoreMap":78},[3330,3357,3383,3404,3415,3427,3438],{"type":51,"tag":85,"props":3331,"children":3332},{"class":87,"line":88},[3333,3337,3342,3347,3352],{"type":51,"tag":85,"props":3334,"children":3335},{"style":102},[3336],{"type":57,"value":3133},{"type":51,"tag":85,"props":3338,"children":3339},{"style":108},[3340],{"type":57,"value":3341}," -X",{"type":51,"tag":85,"props":3343,"children":3344},{"style":108},[3345],{"type":57,"value":3346}," POST",{"type":51,"tag":85,"props":3348,"children":3349},{"style":108},[3350],{"type":57,"value":3351}," http:\u002F\u002Flocalhost:4002\u002Foauth2\u002Ftoken",{"type":51,"tag":85,"props":3353,"children":3354},{"style":181},[3355],{"type":57,"value":3356}," \\\n",{"type":51,"tag":85,"props":3358,"children":3359},{"class":87,"line":98},[3360,3365,3369,3374,3379],{"type":51,"tag":85,"props":3361,"children":3362},{"style":108},[3363],{"type":57,"value":3364},"  -H",{"type":51,"tag":85,"props":3366,"children":3367},{"style":175},[3368],{"type":57,"value":2138},{"type":51,"tag":85,"props":3370,"children":3371},{"style":108},[3372],{"type":57,"value":3373},"Content-Type: application\u002Fx-www-form-urlencoded",{"type":51,"tag":85,"props":3375,"children":3376},{"style":175},[3377],{"type":57,"value":3378},"\"",{"type":51,"tag":85,"props":3380,"children":3381},{"style":181},[3382],{"type":57,"value":3356},{"type":51,"tag":85,"props":3384,"children":3385},{"class":87,"line":124},[3386,3391,3395,3400],{"type":51,"tag":85,"props":3387,"children":3388},{"style":108},[3389],{"type":57,"value":3390},"  -d",{"type":51,"tag":85,"props":3392,"children":3393},{"style":175},[3394],{"type":57,"value":2138},{"type":51,"tag":85,"props":3396,"children":3397},{"style":108},[3398],{"type":57,"value":3399},"code=\u003Cauthorization_code>&",{"type":51,"tag":85,"props":3401,"children":3402},{"style":181},[3403],{"type":57,"value":3223},{"type":51,"tag":85,"props":3405,"children":3406},{"class":87,"line":134},[3407,3411],{"type":51,"tag":85,"props":3408,"children":3409},{"style":108},[3410],{"type":57,"value":3231},{"type":51,"tag":85,"props":3412,"children":3413},{"style":181},[3414],{"type":57,"value":3223},{"type":51,"tag":85,"props":3416,"children":3417},{"class":87,"line":143},[3418,3423],{"type":51,"tag":85,"props":3419,"children":3420},{"style":108},[3421],{"type":57,"value":3422},"client_secret=GOCSPX-secret&",{"type":51,"tag":85,"props":3424,"children":3425},{"style":181},[3426],{"type":57,"value":3223},{"type":51,"tag":85,"props":3428,"children":3429},{"class":87,"line":714},[3430,3434],{"type":51,"tag":85,"props":3431,"children":3432},{"style":108},[3433],{"type":57,"value":3243},{"type":51,"tag":85,"props":3435,"children":3436},{"style":181},[3437],{"type":57,"value":3223},{"type":51,"tag":85,"props":3439,"children":3440},{"class":87,"line":753},[3441,3446],{"type":51,"tag":85,"props":3442,"children":3443},{"style":108},[3444],{"type":57,"value":3445},"grant_type=authorization_code",{"type":51,"tag":85,"props":3447,"children":3448},{"style":175},[3449],{"type":57,"value":2148},{"type":51,"tag":60,"props":3451,"children":3452},{},[3453,3455,3461],{"type":57,"value":3454},"Also accepts ",{"type":51,"tag":81,"props":3456,"children":3458},{"className":3457},[],[3459],{"type":57,"value":3460},"application\u002Fjson",{"type":57,"value":3462}," body. Returns:",{"type":51,"tag":73,"props":3464,"children":3468},{"className":3465,"code":3466,"language":3467,"meta":78,"style":78},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"access_token\": \"google_...\",\n  \"refresh_token\": \"google_refresh_...\",\n  \"id_token\": \"\u003Cjwt>\",\n  \"token_type\": \"Bearer\",\n  \"expires_in\": 3600,\n  \"scope\": \"openid email profile\"\n}\n","json",[3469],{"type":51,"tag":81,"props":3470,"children":3471},{"__ignoreMap":78},[3472,3479,3517,3554,3591,3628,3657,3689],{"type":51,"tag":85,"props":3473,"children":3474},{"class":87,"line":88},[3475],{"type":51,"tag":85,"props":3476,"children":3477},{"style":175},[3478],{"type":57,"value":711},{"type":51,"tag":85,"props":3480,"children":3481},{"class":87,"line":98},[3482,3487,3492,3496,3500,3504,3509,3513],{"type":51,"tag":85,"props":3483,"children":3484},{"style":175},[3485],{"type":57,"value":3486},"  \"",{"type":51,"tag":85,"props":3488,"children":3489},{"style":222},[3490],{"type":57,"value":3491},"access_token",{"type":51,"tag":85,"props":3493,"children":3494},{"style":175},[3495],{"type":57,"value":3378},{"type":51,"tag":85,"props":3497,"children":3498},{"style":175},[3499],{"type":57,"value":266},{"type":51,"tag":85,"props":3501,"children":3502},{"style":175},[3503],{"type":57,"value":2138},{"type":51,"tag":85,"props":3505,"children":3506},{"style":108},[3507],{"type":57,"value":3508},"google_...",{"type":51,"tag":85,"props":3510,"children":3511},{"style":175},[3512],{"type":57,"value":3378},{"type":51,"tag":85,"props":3514,"children":3515},{"style":175},[3516],{"type":57,"value":750},{"type":51,"tag":85,"props":3518,"children":3519},{"class":87,"line":124},[3520,3524,3529,3533,3537,3541,3546,3550],{"type":51,"tag":85,"props":3521,"children":3522},{"style":175},[3523],{"type":57,"value":3486},{"type":51,"tag":85,"props":3525,"children":3526},{"style":222},[3527],{"type":57,"value":3528},"refresh_token",{"type":51,"tag":85,"props":3530,"children":3531},{"style":175},[3532],{"type":57,"value":3378},{"type":51,"tag":85,"props":3534,"children":3535},{"style":175},[3536],{"type":57,"value":266},{"type":51,"tag":85,"props":3538,"children":3539},{"style":175},[3540],{"type":57,"value":2138},{"type":51,"tag":85,"props":3542,"children":3543},{"style":108},[3544],{"type":57,"value":3545},"google_refresh_...",{"type":51,"tag":85,"props":3547,"children":3548},{"style":175},[3549],{"type":57,"value":3378},{"type":51,"tag":85,"props":3551,"children":3552},{"style":175},[3553],{"type":57,"value":750},{"type":51,"tag":85,"props":3555,"children":3556},{"class":87,"line":134},[3557,3561,3566,3570,3574,3578,3583,3587],{"type":51,"tag":85,"props":3558,"children":3559},{"style":175},[3560],{"type":57,"value":3486},{"type":51,"tag":85,"props":3562,"children":3563},{"style":222},[3564],{"type":57,"value":3565},"id_token",{"type":51,"tag":85,"props":3567,"children":3568},{"style":175},[3569],{"type":57,"value":3378},{"type":51,"tag":85,"props":3571,"children":3572},{"style":175},[3573],{"type":57,"value":266},{"type":51,"tag":85,"props":3575,"children":3576},{"style":175},[3577],{"type":57,"value":2138},{"type":51,"tag":85,"props":3579,"children":3580},{"style":108},[3581],{"type":57,"value":3582},"\u003Cjwt>",{"type":51,"tag":85,"props":3584,"children":3585},{"style":175},[3586],{"type":57,"value":3378},{"type":51,"tag":85,"props":3588,"children":3589},{"style":175},[3590],{"type":57,"value":750},{"type":51,"tag":85,"props":3592,"children":3593},{"class":87,"line":143},[3594,3598,3603,3607,3611,3615,3620,3624],{"type":51,"tag":85,"props":3595,"children":3596},{"style":175},[3597],{"type":57,"value":3486},{"type":51,"tag":85,"props":3599,"children":3600},{"style":222},[3601],{"type":57,"value":3602},"token_type",{"type":51,"tag":85,"props":3604,"children":3605},{"style":175},[3606],{"type":57,"value":3378},{"type":51,"tag":85,"props":3608,"children":3609},{"style":175},[3610],{"type":57,"value":266},{"type":51,"tag":85,"props":3612,"children":3613},{"style":175},[3614],{"type":57,"value":2138},{"type":51,"tag":85,"props":3616,"children":3617},{"style":108},[3618],{"type":57,"value":3619},"Bearer",{"type":51,"tag":85,"props":3621,"children":3622},{"style":175},[3623],{"type":57,"value":3378},{"type":51,"tag":85,"props":3625,"children":3626},{"style":175},[3627],{"type":57,"value":750},{"type":51,"tag":85,"props":3629,"children":3630},{"class":87,"line":714},[3631,3635,3640,3644,3648,3653],{"type":51,"tag":85,"props":3632,"children":3633},{"style":175},[3634],{"type":57,"value":3486},{"type":51,"tag":85,"props":3636,"children":3637},{"style":222},[3638],{"type":57,"value":3639},"expires_in",{"type":51,"tag":85,"props":3641,"children":3642},{"style":175},[3643],{"type":57,"value":3378},{"type":51,"tag":85,"props":3645,"children":3646},{"style":175},[3647],{"type":57,"value":266},{"type":51,"tag":85,"props":3649,"children":3650},{"style":296},[3651],{"type":57,"value":3652}," 3600",{"type":51,"tag":85,"props":3654,"children":3655},{"style":175},[3656],{"type":57,"value":750},{"type":51,"tag":85,"props":3658,"children":3659},{"class":87,"line":753},[3660,3664,3669,3673,3677,3681,3685],{"type":51,"tag":85,"props":3661,"children":3662},{"style":175},[3663],{"type":57,"value":3486},{"type":51,"tag":85,"props":3665,"children":3666},{"style":222},[3667],{"type":57,"value":3668},"scope",{"type":51,"tag":85,"props":3670,"children":3671},{"style":175},[3672],{"type":57,"value":3378},{"type":51,"tag":85,"props":3674,"children":3675},{"style":175},[3676],{"type":57,"value":266},{"type":51,"tag":85,"props":3678,"children":3679},{"style":175},[3680],{"type":57,"value":2138},{"type":51,"tag":85,"props":3682,"children":3683},{"style":108},[3684],{"type":57,"value":1155},{"type":51,"tag":85,"props":3686,"children":3687},{"style":175},[3688],{"type":57,"value":2148},{"type":51,"tag":85,"props":3690,"children":3691},{"class":87,"line":791},[3692],{"type":51,"tag":85,"props":3693,"children":3694},{"style":175},[3695],{"type":57,"value":3696},"}\n",{"type":51,"tag":324,"props":3698,"children":3700},{"id":3699},"refresh-token",[3701],{"type":57,"value":3702},"Refresh Token",{"type":51,"tag":73,"props":3704,"children":3706},{"className":75,"code":3705,"language":77,"meta":78,"style":78},"curl -X POST http:\u002F\u002Flocalhost:4002\u002Foauth2\u002Ftoken \\\n  -H \"Content-Type: application\u002Fx-www-form-urlencoded\" \\\n  -d \"refresh_token=google_refresh_...&\\\nclient_id=my-client-id.apps.googleusercontent.com&\\\nclient_secret=GOCSPX-secret&\\\ngrant_type=refresh_token\"\n",[3707],{"type":51,"tag":81,"props":3708,"children":3709},{"__ignoreMap":78},[3710,3733,3756,3776,3787,3798],{"type":51,"tag":85,"props":3711,"children":3712},{"class":87,"line":88},[3713,3717,3721,3725,3729],{"type":51,"tag":85,"props":3714,"children":3715},{"style":102},[3716],{"type":57,"value":3133},{"type":51,"tag":85,"props":3718,"children":3719},{"style":108},[3720],{"type":57,"value":3341},{"type":51,"tag":85,"props":3722,"children":3723},{"style":108},[3724],{"type":57,"value":3346},{"type":51,"tag":85,"props":3726,"children":3727},{"style":108},[3728],{"type":57,"value":3351},{"type":51,"tag":85,"props":3730,"children":3731},{"style":181},[3732],{"type":57,"value":3356},{"type":51,"tag":85,"props":3734,"children":3735},{"class":87,"line":98},[3736,3740,3744,3748,3752],{"type":51,"tag":85,"props":3737,"children":3738},{"style":108},[3739],{"type":57,"value":3364},{"type":51,"tag":85,"props":3741,"children":3742},{"style":175},[3743],{"type":57,"value":2138},{"type":51,"tag":85,"props":3745,"children":3746},{"style":108},[3747],{"type":57,"value":3373},{"type":51,"tag":85,"props":3749,"children":3750},{"style":175},[3751],{"type":57,"value":3378},{"type":51,"tag":85,"props":3753,"children":3754},{"style":181},[3755],{"type":57,"value":3356},{"type":51,"tag":85,"props":3757,"children":3758},{"class":87,"line":124},[3759,3763,3767,3772],{"type":51,"tag":85,"props":3760,"children":3761},{"style":108},[3762],{"type":57,"value":3390},{"type":51,"tag":85,"props":3764,"children":3765},{"style":175},[3766],{"type":57,"value":2138},{"type":51,"tag":85,"props":3768,"children":3769},{"style":108},[3770],{"type":57,"value":3771},"refresh_token=google_refresh_...&",{"type":51,"tag":85,"props":3773,"children":3774},{"style":181},[3775],{"type":57,"value":3223},{"type":51,"tag":85,"props":3777,"children":3778},{"class":87,"line":134},[3779,3783],{"type":51,"tag":85,"props":3780,"children":3781},{"style":108},[3782],{"type":57,"value":3231},{"type":51,"tag":85,"props":3784,"children":3785},{"style":181},[3786],{"type":57,"value":3223},{"type":51,"tag":85,"props":3788,"children":3789},{"class":87,"line":143},[3790,3794],{"type":51,"tag":85,"props":3791,"children":3792},{"style":108},[3793],{"type":57,"value":3422},{"type":51,"tag":85,"props":3795,"children":3796},{"style":181},[3797],{"type":57,"value":3223},{"type":51,"tag":85,"props":3799,"children":3800},{"class":87,"line":714},[3801,3806],{"type":51,"tag":85,"props":3802,"children":3803},{"style":108},[3804],{"type":57,"value":3805},"grant_type=refresh_token",{"type":51,"tag":85,"props":3807,"children":3808},{"style":175},[3809],{"type":57,"value":2148},{"type":51,"tag":60,"props":3811,"children":3812},{},[3813,3815,3820,3822,3827,3829,3834],{"type":57,"value":3814},"Returns a new ",{"type":51,"tag":81,"props":3816,"children":3818},{"className":3817},[],[3819],{"type":57,"value":3491},{"type":57,"value":3821}," (no new ",{"type":51,"tag":81,"props":3823,"children":3825},{"className":3824},[],[3826],{"type":57,"value":3528},{"type":57,"value":3828}," or ",{"type":51,"tag":81,"props":3830,"children":3832},{"className":3831},[],[3833],{"type":57,"value":3565},{"type":57,"value":3835}," on refresh).",{"type":51,"tag":324,"props":3837,"children":3839},{"id":3838},"user-info",[3840],{"type":57,"value":3841},"User Info",{"type":51,"tag":73,"props":3843,"children":3845},{"className":75,"code":3844,"language":77,"meta":78,"style":78},"curl http:\u002F\u002Flocalhost:4002\u002Foauth2\u002Fv2\u002Fuserinfo \\\n  -H \"Authorization: Bearer google_...\"\n",[3846],{"type":51,"tag":81,"props":3847,"children":3848},{"__ignoreMap":78},[3849,3865],{"type":51,"tag":85,"props":3850,"children":3851},{"class":87,"line":88},[3852,3856,3861],{"type":51,"tag":85,"props":3853,"children":3854},{"style":102},[3855],{"type":57,"value":3133},{"type":51,"tag":85,"props":3857,"children":3858},{"style":108},[3859],{"type":57,"value":3860}," http:\u002F\u002Flocalhost:4002\u002Foauth2\u002Fv2\u002Fuserinfo",{"type":51,"tag":85,"props":3862,"children":3863},{"style":181},[3864],{"type":57,"value":3356},{"type":51,"tag":85,"props":3866,"children":3867},{"class":87,"line":98},[3868,3872,3876,3881],{"type":51,"tag":85,"props":3869,"children":3870},{"style":108},[3871],{"type":57,"value":3364},{"type":51,"tag":85,"props":3873,"children":3874},{"style":175},[3875],{"type":57,"value":2138},{"type":51,"tag":85,"props":3877,"children":3878},{"style":108},[3879],{"type":57,"value":3880},"Authorization: Bearer google_...",{"type":51,"tag":85,"props":3882,"children":3883},{"style":175},[3884],{"type":57,"value":2148},{"type":51,"tag":324,"props":3886,"children":3888},{"id":3887},"token-revocation",[3889],{"type":57,"value":3890},"Token Revocation",{"type":51,"tag":73,"props":3892,"children":3894},{"className":75,"code":3893,"language":77,"meta":78,"style":78},"curl -X POST http:\u002F\u002Flocalhost:4002\u002Foauth2\u002Frevoke \\\n  -H \"Content-Type: application\u002Fx-www-form-urlencoded\" \\\n  -d \"token=google_...\"\n",[3895],{"type":51,"tag":81,"props":3896,"children":3897},{"__ignoreMap":78},[3898,3922,3945],{"type":51,"tag":85,"props":3899,"children":3900},{"class":87,"line":88},[3901,3905,3909,3913,3918],{"type":51,"tag":85,"props":3902,"children":3903},{"style":102},[3904],{"type":57,"value":3133},{"type":51,"tag":85,"props":3906,"children":3907},{"style":108},[3908],{"type":57,"value":3341},{"type":51,"tag":85,"props":3910,"children":3911},{"style":108},[3912],{"type":57,"value":3346},{"type":51,"tag":85,"props":3914,"children":3915},{"style":108},[3916],{"type":57,"value":3917}," http:\u002F\u002Flocalhost:4002\u002Foauth2\u002Frevoke",{"type":51,"tag":85,"props":3919,"children":3920},{"style":181},[3921],{"type":57,"value":3356},{"type":51,"tag":85,"props":3923,"children":3924},{"class":87,"line":98},[3925,3929,3933,3937,3941],{"type":51,"tag":85,"props":3926,"children":3927},{"style":108},[3928],{"type":57,"value":3364},{"type":51,"tag":85,"props":3930,"children":3931},{"style":175},[3932],{"type":57,"value":2138},{"type":51,"tag":85,"props":3934,"children":3935},{"style":108},[3936],{"type":57,"value":3373},{"type":51,"tag":85,"props":3938,"children":3939},{"style":175},[3940],{"type":57,"value":3378},{"type":51,"tag":85,"props":3942,"children":3943},{"style":181},[3944],{"type":57,"value":3356},{"type":51,"tag":85,"props":3946,"children":3947},{"class":87,"line":124},[3948,3952,3956,3961],{"type":51,"tag":85,"props":3949,"children":3950},{"style":108},[3951],{"type":57,"value":3390},{"type":51,"tag":85,"props":3953,"children":3954},{"style":175},[3955],{"type":57,"value":2138},{"type":51,"tag":85,"props":3957,"children":3958},{"style":108},[3959],{"type":57,"value":3960},"token=google_...",{"type":51,"tag":85,"props":3962,"children":3963},{"style":175},[3964],{"type":57,"value":2148},{"type":51,"tag":66,"props":3966,"children":3968},{"id":3967},"gmail-api",[3969],{"type":57,"value":3970},"Gmail API",{"type":51,"tag":60,"props":3972,"children":3973},{},[3974,3976,3982,3984,3990,3992,3998],{"type":57,"value":3975},"All Gmail endpoints are under ",{"type":51,"tag":81,"props":3977,"children":3979},{"className":3978},[],[3980],{"type":57,"value":3981},"\u002Fgmail\u002Fv1\u002Fusers\u002F:userId\u002F...",{"type":57,"value":3983}," where ",{"type":51,"tag":81,"props":3985,"children":3987},{"className":3986},[],[3988],{"type":57,"value":3989},":userId",{"type":57,"value":3991}," is ",{"type":51,"tag":81,"props":3993,"children":3995},{"className":3994},[],[3996],{"type":57,"value":3997},"me",{"type":57,"value":3999}," or the authenticated user's email.",{"type":51,"tag":324,"props":4001,"children":4003},{"id":4002},"messages",[4004],{"type":57,"value":4005},"Messages",{"type":51,"tag":73,"props":4007,"children":4009},{"className":75,"code":4008,"language":77,"meta":78,"style":78},"# List messages (filter by labels, search query)\ncurl \"http:\u002F\u002Flocalhost:4002\u002Fgmail\u002Fv1\u002Fusers\u002Fme\u002Fmessages?labelIds=INBOX&q=from:welcome&maxResults=10\" \\\n  -H \"Authorization: Bearer $TOKEN\"\n\n# Get message (format: full, metadata, minimal, raw)\ncurl \"http:\u002F\u002Flocalhost:4002\u002Fgmail\u002Fv1\u002Fusers\u002Fme\u002Fmessages\u002Fmsg_welcome?format=full\" \\\n  -H \"Authorization: Bearer $TOKEN\"\n\n# Send message\ncurl -X POST http:\u002F\u002Flocalhost:4002\u002Fgmail\u002Fv1\u002Fusers\u002Fme\u002Fmessages\u002Fsend \\\n  -H \"Authorization: Bearer $TOKEN\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\"to\": \"someone@example.com\", \"subject\": \"Hello\", \"body_text\": \"Hi there\"}'\n\n# Insert message (bypass send)\ncurl -X POST http:\u002F\u002Flocalhost:4002\u002Fgmail\u002Fv1\u002Fusers\u002Fme\u002Fmessages \\\n  -H \"Authorization: Bearer $TOKEN\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\"to\": \"test@example.com\", \"from\": \"me@example.com\", \"subject\": \"Test\", \"body_text\": \"Body\", \"labelIds\": [\"INBOX\"]}'\n\n# Import message\ncurl -X POST http:\u002F\u002Flocalhost:4002\u002Fgmail\u002Fv1\u002Fusers\u002Fme\u002Fmessages\u002Fimport \\\n  -H \"Authorization: Bearer $TOKEN\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\"to\": \"test@example.com\", \"from\": \"external@example.com\", \"subject\": \"Imported\", \"body_text\": \"Content\"}'\n\n# Modify labels on a message\ncurl -X POST http:\u002F\u002Flocalhost:4002\u002Fgmail\u002Fv1\u002Fusers\u002Fme\u002Fmessages\u002Fmsg_welcome\u002Fmodify \\\n  -H \"Authorization: Bearer $TOKEN\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\"addLabelIds\": [\"STARRED\"], \"removeLabelIds\": [\"UNREAD\"]}'\n\n# Trash \u002F untrash\ncurl -X POST http:\u002F\u002Flocalhost:4002\u002Fgmail\u002Fv1\u002Fusers\u002Fme\u002Fmessages\u002Fmsg_welcome\u002Ftrash \\\n  -H \"Authorization: Bearer $TOKEN\"\ncurl -X POST http:\u002F\u002Flocalhost:4002\u002Fgmail\u002Fv1\u002Fusers\u002Fme\u002Fmessages\u002Fmsg_welcome\u002Funtrash \\\n  -H \"Authorization: Bearer $TOKEN\"\n\n# Delete permanently\ncurl -X DELETE http:\u002F\u002Flocalhost:4002\u002Fgmail\u002Fv1\u002Fusers\u002Fme\u002Fmessages\u002Fmsg_welcome \\\n  -H \"Authorization: Bearer $TOKEN\"\n\n# Batch modify\ncurl -X POST http:\u002F\u002Flocalhost:4002\u002Fgmail\u002Fv1\u002Fusers\u002Fme\u002Fmessages\u002FbatchModify \\\n  -H \"Authorization: Bearer $TOKEN\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\"ids\": [\"msg_welcome\", \"msg_build\"], \"addLabelIds\": [\"STARRED\"]}'\n\n# Batch delete\ncurl -X POST http:\u002F\u002Flocalhost:4002\u002Fgmail\u002Fv1\u002Fusers\u002Fme\u002Fmessages\u002FbatchDelete \\\n  -H \"Authorization: Bearer $TOKEN\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\"ids\": [\"msg_welcome\"]}'\n\n# Get attachment\ncurl http:\u002F\u002Flocalhost:4002\u002Fgmail\u002Fv1\u002Fusers\u002Fme\u002Fmessages\u002Fmsg_id\u002Fattachments\u002Fatt_id \\\n  -H \"Authorization: Bearer $TOKEN\"\n",[4010],{"type":51,"tag":81,"props":4011,"children":4012},{"__ignoreMap":78},[4013,4021,4045,4070,4077,4085,4109,4132,4139,4147,4171,4198,4222,4242,4249,4257,4281,4308,4331,4351,4358,4366,4390,4417,4440,4460,4467,4475,4499,4526,4549,4569,4576,4584,4608,4631,4655,4678,4685,4693,4718,4741,4748,4756,4780,4807,4830,4850,4857,4865,4889,4916,4939,4959,4966,4974,4990],{"type":51,"tag":85,"props":4014,"children":4015},{"class":87,"line":88},[4016],{"type":51,"tag":85,"props":4017,"children":4018},{"style":92},[4019],{"type":57,"value":4020},"# List messages (filter by labels, search query)\n",{"type":51,"tag":85,"props":4022,"children":4023},{"class":87,"line":98},[4024,4028,4032,4037,4041],{"type":51,"tag":85,"props":4025,"children":4026},{"style":102},[4027],{"type":57,"value":3133},{"type":51,"tag":85,"props":4029,"children":4030},{"style":175},[4031],{"type":57,"value":2138},{"type":51,"tag":85,"props":4033,"children":4034},{"style":108},[4035],{"type":57,"value":4036},"http:\u002F\u002Flocalhost:4002\u002Fgmail\u002Fv1\u002Fusers\u002Fme\u002Fmessages?labelIds=INBOX&q=from:welcome&maxResults=10",{"type":51,"tag":85,"props":4038,"children":4039},{"style":175},[4040],{"type":57,"value":3378},{"type":51,"tag":85,"props":4042,"children":4043},{"style":181},[4044],{"type":57,"value":3356},{"type":51,"tag":85,"props":4046,"children":4047},{"class":87,"line":124},[4048,4052,4056,4061,4066],{"type":51,"tag":85,"props":4049,"children":4050},{"style":108},[4051],{"type":57,"value":3364},{"type":51,"tag":85,"props":4053,"children":4054},{"style":175},[4055],{"type":57,"value":2138},{"type":51,"tag":85,"props":4057,"children":4058},{"style":108},[4059],{"type":57,"value":4060},"Authorization: Bearer ",{"type":51,"tag":85,"props":4062,"children":4063},{"style":181},[4064],{"type":57,"value":4065},"$TOKEN",{"type":51,"tag":85,"props":4067,"children":4068},{"style":175},[4069],{"type":57,"value":2148},{"type":51,"tag":85,"props":4071,"children":4072},{"class":87,"line":134},[4073],{"type":51,"tag":85,"props":4074,"children":4075},{"emptyLinePlaceholder":128},[4076],{"type":57,"value":131},{"type":51,"tag":85,"props":4078,"children":4079},{"class":87,"line":143},[4080],{"type":51,"tag":85,"props":4081,"children":4082},{"style":92},[4083],{"type":57,"value":4084},"# Get message (format: full, metadata, minimal, raw)\n",{"type":51,"tag":85,"props":4086,"children":4087},{"class":87,"line":714},[4088,4092,4096,4101,4105],{"type":51,"tag":85,"props":4089,"children":4090},{"style":102},[4091],{"type":57,"value":3133},{"type":51,"tag":85,"props":4093,"children":4094},{"style":175},[4095],{"type":57,"value":2138},{"type":51,"tag":85,"props":4097,"children":4098},{"style":108},[4099],{"type":57,"value":4100},"http:\u002F\u002Flocalhost:4002\u002Fgmail\u002Fv1\u002Fusers\u002Fme\u002Fmessages\u002Fmsg_welcome?format=full",{"type":51,"tag":85,"props":4102,"children":4103},{"style":175},[4104],{"type":57,"value":3378},{"type":51,"tag":85,"props":4106,"children":4107},{"style":181},[4108],{"type":57,"value":3356},{"type":51,"tag":85,"props":4110,"children":4111},{"class":87,"line":753},[4112,4116,4120,4124,4128],{"type":51,"tag":85,"props":4113,"children":4114},{"style":108},[4115],{"type":57,"value":3364},{"type":51,"tag":85,"props":4117,"children":4118},{"style":175},[4119],{"type":57,"value":2138},{"type":51,"tag":85,"props":4121,"children":4122},{"style":108},[4123],{"type":57,"value":4060},{"type":51,"tag":85,"props":4125,"children":4126},{"style":181},[4127],{"type":57,"value":4065},{"type":51,"tag":85,"props":4129,"children":4130},{"style":175},[4131],{"type":57,"value":2148},{"type":51,"tag":85,"props":4133,"children":4134},{"class":87,"line":791},[4135],{"type":51,"tag":85,"props":4136,"children":4137},{"emptyLinePlaceholder":128},[4138],{"type":57,"value":131},{"type":51,"tag":85,"props":4140,"children":4141},{"class":87,"line":821},[4142],{"type":51,"tag":85,"props":4143,"children":4144},{"style":92},[4145],{"type":57,"value":4146},"# Send message\n",{"type":51,"tag":85,"props":4148,"children":4149},{"class":87,"line":834},[4150,4154,4158,4162,4167],{"type":51,"tag":85,"props":4151,"children":4152},{"style":102},[4153],{"type":57,"value":3133},{"type":51,"tag":85,"props":4155,"children":4156},{"style":108},[4157],{"type":57,"value":3341},{"type":51,"tag":85,"props":4159,"children":4160},{"style":108},[4161],{"type":57,"value":3346},{"type":51,"tag":85,"props":4163,"children":4164},{"style":108},[4165],{"type":57,"value":4166}," http:\u002F\u002Flocalhost:4002\u002Fgmail\u002Fv1\u002Fusers\u002Fme\u002Fmessages\u002Fsend",{"type":51,"tag":85,"props":4168,"children":4169},{"style":181},[4170],{"type":57,"value":3356},{"type":51,"tag":85,"props":4172,"children":4173},{"class":87,"line":842},[4174,4178,4182,4186,4190,4194],{"type":51,"tag":85,"props":4175,"children":4176},{"style":108},[4177],{"type":57,"value":3364},{"type":51,"tag":85,"props":4179,"children":4180},{"style":175},[4181],{"type":57,"value":2138},{"type":51,"tag":85,"props":4183,"children":4184},{"style":108},[4185],{"type":57,"value":4060},{"type":51,"tag":85,"props":4187,"children":4188},{"style":181},[4189],{"type":57,"value":4065},{"type":51,"tag":85,"props":4191,"children":4192},{"style":175},[4193],{"type":57,"value":3378},{"type":51,"tag":85,"props":4195,"children":4196},{"style":181},[4197],{"type":57,"value":3356},{"type":51,"tag":85,"props":4199,"children":4200},{"class":87,"line":1243},[4201,4205,4209,4214,4218],{"type":51,"tag":85,"props":4202,"children":4203},{"style":108},[4204],{"type":57,"value":3364},{"type":51,"tag":85,"props":4206,"children":4207},{"style":175},[4208],{"type":57,"value":2138},{"type":51,"tag":85,"props":4210,"children":4211},{"style":108},[4212],{"type":57,"value":4213},"Content-Type: application\u002Fjson",{"type":51,"tag":85,"props":4215,"children":4216},{"style":175},[4217],{"type":57,"value":3378},{"type":51,"tag":85,"props":4219,"children":4220},{"style":181},[4221],{"type":57,"value":3356},{"type":51,"tag":85,"props":4223,"children":4224},{"class":87,"line":1251},[4225,4229,4233,4238],{"type":51,"tag":85,"props":4226,"children":4227},{"style":108},[4228],{"type":57,"value":3390},{"type":51,"tag":85,"props":4230,"children":4231},{"style":175},[4232],{"type":57,"value":199},{"type":51,"tag":85,"props":4234,"children":4235},{"style":108},[4236],{"type":57,"value":4237},"{\"to\": \"someone@example.com\", \"subject\": \"Hello\", \"body_text\": \"Hi there\"}",{"type":51,"tag":85,"props":4239,"children":4240},{"style":175},[4241],{"type":57,"value":209},{"type":51,"tag":85,"props":4243,"children":4244},{"class":87,"line":1268},[4245],{"type":51,"tag":85,"props":4246,"children":4247},{"emptyLinePlaceholder":128},[4248],{"type":57,"value":131},{"type":51,"tag":85,"props":4250,"children":4251},{"class":87,"line":1321},[4252],{"type":51,"tag":85,"props":4253,"children":4254},{"style":92},[4255],{"type":57,"value":4256},"# Insert message (bypass send)\n",{"type":51,"tag":85,"props":4258,"children":4259},{"class":87,"line":1329},[4260,4264,4268,4272,4277],{"type":51,"tag":85,"props":4261,"children":4262},{"style":102},[4263],{"type":57,"value":3133},{"type":51,"tag":85,"props":4265,"children":4266},{"style":108},[4267],{"type":57,"value":3341},{"type":51,"tag":85,"props":4269,"children":4270},{"style":108},[4271],{"type":57,"value":3346},{"type":51,"tag":85,"props":4273,"children":4274},{"style":108},[4275],{"type":57,"value":4276}," http:\u002F\u002Flocalhost:4002\u002Fgmail\u002Fv1\u002Fusers\u002Fme\u002Fmessages",{"type":51,"tag":85,"props":4278,"children":4279},{"style":181},[4280],{"type":57,"value":3356},{"type":51,"tag":85,"props":4282,"children":4283},{"class":87,"line":1992},[4284,4288,4292,4296,4300,4304],{"type":51,"tag":85,"props":4285,"children":4286},{"style":108},[4287],{"type":57,"value":3364},{"type":51,"tag":85,"props":4289,"children":4290},{"style":175},[4291],{"type":57,"value":2138},{"type":51,"tag":85,"props":4293,"children":4294},{"style":108},[4295],{"type":57,"value":4060},{"type":51,"tag":85,"props":4297,"children":4298},{"style":181},[4299],{"type":57,"value":4065},{"type":51,"tag":85,"props":4301,"children":4302},{"style":175},[4303],{"type":57,"value":3378},{"type":51,"tag":85,"props":4305,"children":4306},{"style":181},[4307],{"type":57,"value":3356},{"type":51,"tag":85,"props":4309,"children":4310},{"class":87,"line":2010},[4311,4315,4319,4323,4327],{"type":51,"tag":85,"props":4312,"children":4313},{"style":108},[4314],{"type":57,"value":3364},{"type":51,"tag":85,"props":4316,"children":4317},{"style":175},[4318],{"type":57,"value":2138},{"type":51,"tag":85,"props":4320,"children":4321},{"style":108},[4322],{"type":57,"value":4213},{"type":51,"tag":85,"props":4324,"children":4325},{"style":175},[4326],{"type":57,"value":3378},{"type":51,"tag":85,"props":4328,"children":4329},{"style":181},[4330],{"type":57,"value":3356},{"type":51,"tag":85,"props":4332,"children":4333},{"class":87,"line":2027},[4334,4338,4342,4347],{"type":51,"tag":85,"props":4335,"children":4336},{"style":108},[4337],{"type":57,"value":3390},{"type":51,"tag":85,"props":4339,"children":4340},{"style":175},[4341],{"type":57,"value":199},{"type":51,"tag":85,"props":4343,"children":4344},{"style":108},[4345],{"type":57,"value":4346},"{\"to\": \"test@example.com\", \"from\": \"me@example.com\", \"subject\": \"Test\", \"body_text\": \"Body\", \"labelIds\": [\"INBOX\"]}",{"type":51,"tag":85,"props":4348,"children":4349},{"style":175},[4350],{"type":57,"value":209},{"type":51,"tag":85,"props":4352,"children":4353},{"class":87,"line":2040},[4354],{"type":51,"tag":85,"props":4355,"children":4356},{"emptyLinePlaceholder":128},[4357],{"type":57,"value":131},{"type":51,"tag":85,"props":4359,"children":4360},{"class":87,"line":2054},[4361],{"type":51,"tag":85,"props":4362,"children":4363},{"style":92},[4364],{"type":57,"value":4365},"# Import message\n",{"type":51,"tag":85,"props":4367,"children":4368},{"class":87,"line":2067},[4369,4373,4377,4381,4386],{"type":51,"tag":85,"props":4370,"children":4371},{"style":102},[4372],{"type":57,"value":3133},{"type":51,"tag":85,"props":4374,"children":4375},{"style":108},[4376],{"type":57,"value":3341},{"type":51,"tag":85,"props":4378,"children":4379},{"style":108},[4380],{"type":57,"value":3346},{"type":51,"tag":85,"props":4382,"children":4383},{"style":108},[4384],{"type":57,"value":4385}," http:\u002F\u002Flocalhost:4002\u002Fgmail\u002Fv1\u002Fusers\u002Fme\u002Fmessages\u002Fimport",{"type":51,"tag":85,"props":4387,"children":4388},{"style":181},[4389],{"type":57,"value":3356},{"type":51,"tag":85,"props":4391,"children":4392},{"class":87,"line":2089},[4393,4397,4401,4405,4409,4413],{"type":51,"tag":85,"props":4394,"children":4395},{"style":108},[4396],{"type":57,"value":3364},{"type":51,"tag":85,"props":4398,"children":4399},{"style":175},[4400],{"type":57,"value":2138},{"type":51,"tag":85,"props":4402,"children":4403},{"style":108},[4404],{"type":57,"value":4060},{"type":51,"tag":85,"props":4406,"children":4407},{"style":181},[4408],{"type":57,"value":4065},{"type":51,"tag":85,"props":4410,"children":4411},{"style":175},[4412],{"type":57,"value":3378},{"type":51,"tag":85,"props":4414,"children":4415},{"style":181},[4416],{"type":57,"value":3356},{"type":51,"tag":85,"props":4418,"children":4419},{"class":87,"line":2106},[4420,4424,4428,4432,4436],{"type":51,"tag":85,"props":4421,"children":4422},{"style":108},[4423],{"type":57,"value":3364},{"type":51,"tag":85,"props":4425,"children":4426},{"style":175},[4427],{"type":57,"value":2138},{"type":51,"tag":85,"props":4429,"children":4430},{"style":108},[4431],{"type":57,"value":4213},{"type":51,"tag":85,"props":4433,"children":4434},{"style":175},[4435],{"type":57,"value":3378},{"type":51,"tag":85,"props":4437,"children":4438},{"style":181},[4439],{"type":57,"value":3356},{"type":51,"tag":85,"props":4441,"children":4442},{"class":87,"line":2123},[4443,4447,4451,4456],{"type":51,"tag":85,"props":4444,"children":4445},{"style":108},[4446],{"type":57,"value":3390},{"type":51,"tag":85,"props":4448,"children":4449},{"style":175},[4450],{"type":57,"value":199},{"type":51,"tag":85,"props":4452,"children":4453},{"style":108},[4454],{"type":57,"value":4455},"{\"to\": \"test@example.com\", \"from\": \"external@example.com\", \"subject\": \"Imported\", \"body_text\": \"Content\"}",{"type":51,"tag":85,"props":4457,"children":4458},{"style":175},[4459],{"type":57,"value":209},{"type":51,"tag":85,"props":4461,"children":4462},{"class":87,"line":2151},[4463],{"type":51,"tag":85,"props":4464,"children":4465},{"emptyLinePlaceholder":128},[4466],{"type":57,"value":131},{"type":51,"tag":85,"props":4468,"children":4469},{"class":87,"line":2177},[4470],{"type":51,"tag":85,"props":4471,"children":4472},{"style":92},[4473],{"type":57,"value":4474},"# Modify labels on a message\n",{"type":51,"tag":85,"props":4476,"children":4477},{"class":87,"line":2190},[4478,4482,4486,4490,4495],{"type":51,"tag":85,"props":4479,"children":4480},{"style":102},[4481],{"type":57,"value":3133},{"type":51,"tag":85,"props":4483,"children":4484},{"style":108},[4485],{"type":57,"value":3341},{"type":51,"tag":85,"props":4487,"children":4488},{"style":108},[4489],{"type":57,"value":3346},{"type":51,"tag":85,"props":4491,"children":4492},{"style":108},[4493],{"type":57,"value":4494}," http:\u002F\u002Flocalhost:4002\u002Fgmail\u002Fv1\u002Fusers\u002Fme\u002Fmessages\u002Fmsg_welcome\u002Fmodify",{"type":51,"tag":85,"props":4496,"children":4497},{"style":181},[4498],{"type":57,"value":3356},{"type":51,"tag":85,"props":4500,"children":4501},{"class":87,"line":2211},[4502,4506,4510,4514,4518,4522],{"type":51,"tag":85,"props":4503,"children":4504},{"style":108},[4505],{"type":57,"value":3364},{"type":51,"tag":85,"props":4507,"children":4508},{"style":175},[4509],{"type":57,"value":2138},{"type":51,"tag":85,"props":4511,"children":4512},{"style":108},[4513],{"type":57,"value":4060},{"type":51,"tag":85,"props":4515,"children":4516},{"style":181},[4517],{"type":57,"value":4065},{"type":51,"tag":85,"props":4519,"children":4520},{"style":175},[4521],{"type":57,"value":3378},{"type":51,"tag":85,"props":4523,"children":4524},{"style":181},[4525],{"type":57,"value":3356},{"type":51,"tag":85,"props":4527,"children":4528},{"class":87,"line":2227},[4529,4533,4537,4541,4545],{"type":51,"tag":85,"props":4530,"children":4531},{"style":108},[4532],{"type":57,"value":3364},{"type":51,"tag":85,"props":4534,"children":4535},{"style":175},[4536],{"type":57,"value":2138},{"type":51,"tag":85,"props":4538,"children":4539},{"style":108},[4540],{"type":57,"value":4213},{"type":51,"tag":85,"props":4542,"children":4543},{"style":175},[4544],{"type":57,"value":3378},{"type":51,"tag":85,"props":4546,"children":4547},{"style":181},[4548],{"type":57,"value":3356},{"type":51,"tag":85,"props":4550,"children":4551},{"class":87,"line":2245},[4552,4556,4560,4565],{"type":51,"tag":85,"props":4553,"children":4554},{"style":108},[4555],{"type":57,"value":3390},{"type":51,"tag":85,"props":4557,"children":4558},{"style":175},[4559],{"type":57,"value":199},{"type":51,"tag":85,"props":4561,"children":4562},{"style":108},[4563],{"type":57,"value":4564},"{\"addLabelIds\": [\"STARRED\"], \"removeLabelIds\": [\"UNREAD\"]}",{"type":51,"tag":85,"props":4566,"children":4567},{"style":175},[4568],{"type":57,"value":209},{"type":51,"tag":85,"props":4570,"children":4571},{"class":87,"line":2271},[4572],{"type":51,"tag":85,"props":4573,"children":4574},{"emptyLinePlaceholder":128},[4575],{"type":57,"value":131},{"type":51,"tag":85,"props":4577,"children":4578},{"class":87,"line":2288},[4579],{"type":51,"tag":85,"props":4580,"children":4581},{"style":92},[4582],{"type":57,"value":4583},"# Trash \u002F untrash\n",{"type":51,"tag":85,"props":4585,"children":4586},{"class":87,"line":2306},[4587,4591,4595,4599,4604],{"type":51,"tag":85,"props":4588,"children":4589},{"style":102},[4590],{"type":57,"value":3133},{"type":51,"tag":85,"props":4592,"children":4593},{"style":108},[4594],{"type":57,"value":3341},{"type":51,"tag":85,"props":4596,"children":4597},{"style":108},[4598],{"type":57,"value":3346},{"type":51,"tag":85,"props":4600,"children":4601},{"style":108},[4602],{"type":57,"value":4603}," http:\u002F\u002Flocalhost:4002\u002Fgmail\u002Fv1\u002Fusers\u002Fme\u002Fmessages\u002Fmsg_welcome\u002Ftrash",{"type":51,"tag":85,"props":4605,"children":4606},{"style":181},[4607],{"type":57,"value":3356},{"type":51,"tag":85,"props":4609,"children":4610},{"class":87,"line":2324},[4611,4615,4619,4623,4627],{"type":51,"tag":85,"props":4612,"children":4613},{"style":108},[4614],{"type":57,"value":3364},{"type":51,"tag":85,"props":4616,"children":4617},{"style":175},[4618],{"type":57,"value":2138},{"type":51,"tag":85,"props":4620,"children":4621},{"style":108},[4622],{"type":57,"value":4060},{"type":51,"tag":85,"props":4624,"children":4625},{"style":181},[4626],{"type":57,"value":4065},{"type":51,"tag":85,"props":4628,"children":4629},{"style":175},[4630],{"type":57,"value":2148},{"type":51,"tag":85,"props":4632,"children":4633},{"class":87,"line":2370},[4634,4638,4642,4646,4651],{"type":51,"tag":85,"props":4635,"children":4636},{"style":102},[4637],{"type":57,"value":3133},{"type":51,"tag":85,"props":4639,"children":4640},{"style":108},[4641],{"type":57,"value":3341},{"type":51,"tag":85,"props":4643,"children":4644},{"style":108},[4645],{"type":57,"value":3346},{"type":51,"tag":85,"props":4647,"children":4648},{"style":108},[4649],{"type":57,"value":4650}," http:\u002F\u002Flocalhost:4002\u002Fgmail\u002Fv1\u002Fusers\u002Fme\u002Fmessages\u002Fmsg_welcome\u002Funtrash",{"type":51,"tag":85,"props":4652,"children":4653},{"style":181},[4654],{"type":57,"value":3356},{"type":51,"tag":85,"props":4656,"children":4657},{"class":87,"line":2396},[4658,4662,4666,4670,4674],{"type":51,"tag":85,"props":4659,"children":4660},{"style":108},[4661],{"type":57,"value":3364},{"type":51,"tag":85,"props":4663,"children":4664},{"style":175},[4665],{"type":57,"value":2138},{"type":51,"tag":85,"props":4667,"children":4668},{"style":108},[4669],{"type":57,"value":4060},{"type":51,"tag":85,"props":4671,"children":4672},{"style":181},[4673],{"type":57,"value":4065},{"type":51,"tag":85,"props":4675,"children":4676},{"style":175},[4677],{"type":57,"value":2148},{"type":51,"tag":85,"props":4679,"children":4680},{"class":87,"line":2409},[4681],{"type":51,"tag":85,"props":4682,"children":4683},{"emptyLinePlaceholder":128},[4684],{"type":57,"value":131},{"type":51,"tag":85,"props":4686,"children":4687},{"class":87,"line":2430},[4688],{"type":51,"tag":85,"props":4689,"children":4690},{"style":92},[4691],{"type":57,"value":4692},"# Delete permanently\n",{"type":51,"tag":85,"props":4694,"children":4695},{"class":87,"line":2446},[4696,4700,4704,4709,4714],{"type":51,"tag":85,"props":4697,"children":4698},{"style":102},[4699],{"type":57,"value":3133},{"type":51,"tag":85,"props":4701,"children":4702},{"style":108},[4703],{"type":57,"value":3341},{"type":51,"tag":85,"props":4705,"children":4706},{"style":108},[4707],{"type":57,"value":4708}," DELETE",{"type":51,"tag":85,"props":4710,"children":4711},{"style":108},[4712],{"type":57,"value":4713}," http:\u002F\u002Flocalhost:4002\u002Fgmail\u002Fv1\u002Fusers\u002Fme\u002Fmessages\u002Fmsg_welcome",{"type":51,"tag":85,"props":4715,"children":4716},{"style":181},[4717],{"type":57,"value":3356},{"type":51,"tag":85,"props":4719,"children":4720},{"class":87,"line":2463},[4721,4725,4729,4733,4737],{"type":51,"tag":85,"props":4722,"children":4723},{"style":108},[4724],{"type":57,"value":3364},{"type":51,"tag":85,"props":4726,"children":4727},{"style":175},[4728],{"type":57,"value":2138},{"type":51,"tag":85,"props":4730,"children":4731},{"style":108},[4732],{"type":57,"value":4060},{"type":51,"tag":85,"props":4734,"children":4735},{"style":181},[4736],{"type":57,"value":4065},{"type":51,"tag":85,"props":4738,"children":4739},{"style":175},[4740],{"type":57,"value":2148},{"type":51,"tag":85,"props":4742,"children":4743},{"class":87,"line":2480},[4744],{"type":51,"tag":85,"props":4745,"children":4746},{"emptyLinePlaceholder":128},[4747],{"type":57,"value":131},{"type":51,"tag":85,"props":4749,"children":4750},{"class":87,"line":2497},[4751],{"type":51,"tag":85,"props":4752,"children":4753},{"style":92},[4754],{"type":57,"value":4755},"# Batch modify\n",{"type":51,"tag":85,"props":4757,"children":4758},{"class":87,"line":2515},[4759,4763,4767,4771,4776],{"type":51,"tag":85,"props":4760,"children":4761},{"style":102},[4762],{"type":57,"value":3133},{"type":51,"tag":85,"props":4764,"children":4765},{"style":108},[4766],{"type":57,"value":3341},{"type":51,"tag":85,"props":4768,"children":4769},{"style":108},[4770],{"type":57,"value":3346},{"type":51,"tag":85,"props":4772,"children":4773},{"style":108},[4774],{"type":57,"value":4775}," http:\u002F\u002Flocalhost:4002\u002Fgmail\u002Fv1\u002Fusers\u002Fme\u002Fmessages\u002FbatchModify",{"type":51,"tag":85,"props":4777,"children":4778},{"style":181},[4779],{"type":57,"value":3356},{"type":51,"tag":85,"props":4781,"children":4782},{"class":87,"line":2528},[4783,4787,4791,4795,4799,4803],{"type":51,"tag":85,"props":4784,"children":4785},{"style":108},[4786],{"type":57,"value":3364},{"type":51,"tag":85,"props":4788,"children":4789},{"style":175},[4790],{"type":57,"value":2138},{"type":51,"tag":85,"props":4792,"children":4793},{"style":108},[4794],{"type":57,"value":4060},{"type":51,"tag":85,"props":4796,"children":4797},{"style":181},[4798],{"type":57,"value":4065},{"type":51,"tag":85,"props":4800,"children":4801},{"style":175},[4802],{"type":57,"value":3378},{"type":51,"tag":85,"props":4804,"children":4805},{"style":181},[4806],{"type":57,"value":3356},{"type":51,"tag":85,"props":4808,"children":4809},{"class":87,"line":2549},[4810,4814,4818,4822,4826],{"type":51,"tag":85,"props":4811,"children":4812},{"style":108},[4813],{"type":57,"value":3364},{"type":51,"tag":85,"props":4815,"children":4816},{"style":175},[4817],{"type":57,"value":2138},{"type":51,"tag":85,"props":4819,"children":4820},{"style":108},[4821],{"type":57,"value":4213},{"type":51,"tag":85,"props":4823,"children":4824},{"style":175},[4825],{"type":57,"value":3378},{"type":51,"tag":85,"props":4827,"children":4828},{"style":181},[4829],{"type":57,"value":3356},{"type":51,"tag":85,"props":4831,"children":4832},{"class":87,"line":2565},[4833,4837,4841,4846],{"type":51,"tag":85,"props":4834,"children":4835},{"style":108},[4836],{"type":57,"value":3390},{"type":51,"tag":85,"props":4838,"children":4839},{"style":175},[4840],{"type":57,"value":199},{"type":51,"tag":85,"props":4842,"children":4843},{"style":108},[4844],{"type":57,"value":4845},"{\"ids\": [\"msg_welcome\", \"msg_build\"], \"addLabelIds\": [\"STARRED\"]}",{"type":51,"tag":85,"props":4847,"children":4848},{"style":175},[4849],{"type":57,"value":209},{"type":51,"tag":85,"props":4851,"children":4852},{"class":87,"line":2582},[4853],{"type":51,"tag":85,"props":4854,"children":4855},{"emptyLinePlaceholder":128},[4856],{"type":57,"value":131},{"type":51,"tag":85,"props":4858,"children":4859},{"class":87,"line":2599},[4860],{"type":51,"tag":85,"props":4861,"children":4862},{"style":92},[4863],{"type":57,"value":4864},"# Batch delete\n",{"type":51,"tag":85,"props":4866,"children":4867},{"class":87,"line":2625},[4868,4872,4876,4880,4885],{"type":51,"tag":85,"props":4869,"children":4870},{"style":102},[4871],{"type":57,"value":3133},{"type":51,"tag":85,"props":4873,"children":4874},{"style":108},[4875],{"type":57,"value":3341},{"type":51,"tag":85,"props":4877,"children":4878},{"style":108},[4879],{"type":57,"value":3346},{"type":51,"tag":85,"props":4881,"children":4882},{"style":108},[4883],{"type":57,"value":4884}," http:\u002F\u002Flocalhost:4002\u002Fgmail\u002Fv1\u002Fusers\u002Fme\u002Fmessages\u002FbatchDelete",{"type":51,"tag":85,"props":4886,"children":4887},{"style":181},[4888],{"type":57,"value":3356},{"type":51,"tag":85,"props":4890,"children":4891},{"class":87,"line":2651},[4892,4896,4900,4904,4908,4912],{"type":51,"tag":85,"props":4893,"children":4894},{"style":108},[4895],{"type":57,"value":3364},{"type":51,"tag":85,"props":4897,"children":4898},{"style":175},[4899],{"type":57,"value":2138},{"type":51,"tag":85,"props":4901,"children":4902},{"style":108},[4903],{"type":57,"value":4060},{"type":51,"tag":85,"props":4905,"children":4906},{"style":181},[4907],{"type":57,"value":4065},{"type":51,"tag":85,"props":4909,"children":4910},{"style":175},[4911],{"type":57,"value":3378},{"type":51,"tag":85,"props":4913,"children":4914},{"style":181},[4915],{"type":57,"value":3356},{"type":51,"tag":85,"props":4917,"children":4918},{"class":87,"line":2664},[4919,4923,4927,4931,4935],{"type":51,"tag":85,"props":4920,"children":4921},{"style":108},[4922],{"type":57,"value":3364},{"type":51,"tag":85,"props":4924,"children":4925},{"style":175},[4926],{"type":57,"value":2138},{"type":51,"tag":85,"props":4928,"children":4929},{"style":108},[4930],{"type":57,"value":4213},{"type":51,"tag":85,"props":4932,"children":4933},{"style":175},[4934],{"type":57,"value":3378},{"type":51,"tag":85,"props":4936,"children":4937},{"style":181},[4938],{"type":57,"value":3356},{"type":51,"tag":85,"props":4940,"children":4941},{"class":87,"line":2684},[4942,4946,4950,4955],{"type":51,"tag":85,"props":4943,"children":4944},{"style":108},[4945],{"type":57,"value":3390},{"type":51,"tag":85,"props":4947,"children":4948},{"style":175},[4949],{"type":57,"value":199},{"type":51,"tag":85,"props":4951,"children":4952},{"style":108},[4953],{"type":57,"value":4954},"{\"ids\": [\"msg_welcome\"]}",{"type":51,"tag":85,"props":4956,"children":4957},{"style":175},[4958],{"type":57,"value":209},{"type":51,"tag":85,"props":4960,"children":4961},{"class":87,"line":2701},[4962],{"type":51,"tag":85,"props":4963,"children":4964},{"emptyLinePlaceholder":128},[4965],{"type":57,"value":131},{"type":51,"tag":85,"props":4967,"children":4968},{"class":87,"line":2714},[4969],{"type":51,"tag":85,"props":4970,"children":4971},{"style":92},[4972],{"type":57,"value":4973},"# Get attachment\n",{"type":51,"tag":85,"props":4975,"children":4976},{"class":87,"line":2736},[4977,4981,4986],{"type":51,"tag":85,"props":4978,"children":4979},{"style":102},[4980],{"type":57,"value":3133},{"type":51,"tag":85,"props":4982,"children":4983},{"style":108},[4984],{"type":57,"value":4985}," http:\u002F\u002Flocalhost:4002\u002Fgmail\u002Fv1\u002Fusers\u002Fme\u002Fmessages\u002Fmsg_id\u002Fattachments\u002Fatt_id",{"type":51,"tag":85,"props":4987,"children":4988},{"style":181},[4989],{"type":57,"value":3356},{"type":51,"tag":85,"props":4991,"children":4992},{"class":87,"line":2754},[4993,4997,5001,5005,5009],{"type":51,"tag":85,"props":4994,"children":4995},{"style":108},[4996],{"type":57,"value":3364},{"type":51,"tag":85,"props":4998,"children":4999},{"style":175},[5000],{"type":57,"value":2138},{"type":51,"tag":85,"props":5002,"children":5003},{"style":108},[5004],{"type":57,"value":4060},{"type":51,"tag":85,"props":5006,"children":5007},{"style":181},[5008],{"type":57,"value":4065},{"type":51,"tag":85,"props":5010,"children":5011},{"style":175},[5012],{"type":57,"value":2148},{"type":51,"tag":60,"props":5014,"children":5015},{},[5016,5018,5024,5025,5031,5032,5038],{"type":57,"value":5017},"Upload variants also available at ",{"type":51,"tag":81,"props":5019,"children":5021},{"className":5020},[],[5022],{"type":57,"value":5023},"\u002Fupload\u002Fgmail\u002Fv1\u002Fusers\u002F:userId\u002Fmessages",{"type":57,"value":3038},{"type":51,"tag":81,"props":5026,"children":5028},{"className":5027},[],[5029],{"type":57,"value":5030},"...\u002Fmessages\u002Fsend",{"type":57,"value":3038},{"type":51,"tag":81,"props":5033,"children":5035},{"className":5034},[],[5036],{"type":57,"value":5037},"...\u002Fmessages\u002Fimport",{"type":57,"value":638},{"type":51,"tag":324,"props":5040,"children":5042},{"id":5041},"drafts",[5043],{"type":57,"value":5044},"Drafts",{"type":51,"tag":73,"props":5046,"children":5048},{"className":75,"code":5047,"language":77,"meta":78,"style":78},"# List drafts\ncurl http:\u002F\u002Flocalhost:4002\u002Fgmail\u002Fv1\u002Fusers\u002Fme\u002Fdrafts \\\n  -H \"Authorization: Bearer $TOKEN\"\n\n# Create draft\ncurl -X POST http:\u002F\u002Flocalhost:4002\u002Fgmail\u002Fv1\u002Fusers\u002Fme\u002Fdrafts \\\n  -H \"Authorization: Bearer $TOKEN\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\"message\": {\"to\": \"someone@example.com\", \"subject\": \"Draft subject\", \"body_text\": \"Draft body\"}}'\n\n# Get draft (format: full, metadata, minimal, raw)\ncurl \"http:\u002F\u002Flocalhost:4002\u002Fgmail\u002Fv1\u002Fusers\u002Fme\u002Fdrafts\u002Fdraft_id?format=full\" \\\n  -H \"Authorization: Bearer $TOKEN\"\n\n# Update draft\ncurl -X PUT http:\u002F\u002Flocalhost:4002\u002Fgmail\u002Fv1\u002Fusers\u002Fme\u002Fdrafts\u002Fdraft_id \\\n  -H \"Authorization: Bearer $TOKEN\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\"message\": {\"subject\": \"Updated subject\", \"body_text\": \"Updated body\"}}'\n\n# Send draft\ncurl -X POST http:\u002F\u002Flocalhost:4002\u002Fgmail\u002Fv1\u002Fusers\u002Fme\u002Fdrafts\u002Fsend \\\n  -H \"Authorization: Bearer $TOKEN\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\"id\": \"draft_id\"}'\n\n# Delete draft\ncurl -X DELETE http:\u002F\u002Flocalhost:4002\u002Fgmail\u002Fv1\u002Fusers\u002Fme\u002Fdrafts\u002Fdraft_id \\\n  -H \"Authorization: Bearer $TOKEN\"\n",[5049],{"type":51,"tag":81,"props":5050,"children":5051},{"__ignoreMap":78},[5052,5060,5076,5099,5106,5114,5137,5164,5187,5207,5214,5222,5246,5269,5276,5284,5309,5336,5359,5379,5386,5394,5418,5445,5468,5488,5495,5503,5526],{"type":51,"tag":85,"props":5053,"children":5054},{"class":87,"line":88},[5055],{"type":51,"tag":85,"props":5056,"children":5057},{"style":92},[5058],{"type":57,"value":5059},"# List drafts\n",{"type":51,"tag":85,"props":5061,"children":5062},{"class":87,"line":98},[5063,5067,5072],{"type":51,"tag":85,"props":5064,"children":5065},{"style":102},[5066],{"type":57,"value":3133},{"type":51,"tag":85,"props":5068,"children":5069},{"style":108},[5070],{"type":57,"value":5071}," http:\u002F\u002Flocalhost:4002\u002Fgmail\u002Fv1\u002Fusers\u002Fme\u002Fdrafts",{"type":51,"tag":85,"props":5073,"children":5074},{"style":181},[5075],{"type":57,"value":3356},{"type":51,"tag":85,"props":5077,"children":5078},{"class":87,"line":124},[5079,5083,5087,5091,5095],{"type":51,"tag":85,"props":5080,"children":5081},{"style":108},[5082],{"type":57,"value":3364},{"type":51,"tag":85,"props":5084,"children":5085},{"style":175},[5086],{"type":57,"value":2138},{"type":51,"tag":85,"props":5088,"children":5089},{"style":108},[5090],{"type":57,"value":4060},{"type":51,"tag":85,"props":5092,"children":5093},{"style":181},[5094],{"type":57,"value":4065},{"type":51,"tag":85,"props":5096,"children":5097},{"style":175},[5098],{"type":57,"value":2148},{"type":51,"tag":85,"props":5100,"children":5101},{"class":87,"line":134},[5102],{"type":51,"tag":85,"props":5103,"children":5104},{"emptyLinePlaceholder":128},[5105],{"type":57,"value":131},{"type":51,"tag":85,"props":5107,"children":5108},{"class":87,"line":143},[5109],{"type":51,"tag":85,"props":5110,"children":5111},{"style":92},[5112],{"type":57,"value":5113},"# Create draft\n",{"type":51,"tag":85,"props":5115,"children":5116},{"class":87,"line":714},[5117,5121,5125,5129,5133],{"type":51,"tag":85,"props":5118,"children":5119},{"style":102},[5120],{"type":57,"value":3133},{"type":51,"tag":85,"props":5122,"children":5123},{"style":108},[5124],{"type":57,"value":3341},{"type":51,"tag":85,"props":5126,"children":5127},{"style":108},[5128],{"type":57,"value":3346},{"type":51,"tag":85,"props":5130,"children":5131},{"style":108},[5132],{"type":57,"value":5071},{"type":51,"tag":85,"props":5134,"children":5135},{"style":181},[5136],{"type":57,"value":3356},{"type":51,"tag":85,"props":5138,"children":5139},{"class":87,"line":753},[5140,5144,5148,5152,5156,5160],{"type":51,"tag":85,"props":5141,"children":5142},{"style":108},[5143],{"type":57,"value":3364},{"type":51,"tag":85,"props":5145,"children":5146},{"style":175},[5147],{"type":57,"value":2138},{"type":51,"tag":85,"props":5149,"children":5150},{"style":108},[5151],{"type":57,"value":4060},{"type":51,"tag":85,"props":5153,"children":5154},{"style":181},[5155],{"type":57,"value":4065},{"type":51,"tag":85,"props":5157,"children":5158},{"style":175},[5159],{"type":57,"value":3378},{"type":51,"tag":85,"props":5161,"children":5162},{"style":181},[5163],{"type":57,"value":3356},{"type":51,"tag":85,"props":5165,"children":5166},{"class":87,"line":791},[5167,5171,5175,5179,5183],{"type":51,"tag":85,"props":5168,"children":5169},{"style":108},[5170],{"type":57,"value":3364},{"type":51,"tag":85,"props":5172,"children":5173},{"style":175},[5174],{"type":57,"value":2138},{"type":51,"tag":85,"props":5176,"children":5177},{"style":108},[5178],{"type":57,"value":4213},{"type":51,"tag":85,"props":5180,"children":5181},{"style":175},[5182],{"type":57,"value":3378},{"type":51,"tag":85,"props":5184,"children":5185},{"style":181},[5186],{"type":57,"value":3356},{"type":51,"tag":85,"props":5188,"children":5189},{"class":87,"line":821},[5190,5194,5198,5203],{"type":51,"tag":85,"props":5191,"children":5192},{"style":108},[5193],{"type":57,"value":3390},{"type":51,"tag":85,"props":5195,"children":5196},{"style":175},[5197],{"type":57,"value":199},{"type":51,"tag":85,"props":5199,"children":5200},{"style":108},[5201],{"type":57,"value":5202},"{\"message\": {\"to\": \"someone@example.com\", \"subject\": \"Draft subject\", \"body_text\": \"Draft body\"}}",{"type":51,"tag":85,"props":5204,"children":5205},{"style":175},[5206],{"type":57,"value":209},{"type":51,"tag":85,"props":5208,"children":5209},{"class":87,"line":834},[5210],{"type":51,"tag":85,"props":5211,"children":5212},{"emptyLinePlaceholder":128},[5213],{"type":57,"value":131},{"type":51,"tag":85,"props":5215,"children":5216},{"class":87,"line":842},[5217],{"type":51,"tag":85,"props":5218,"children":5219},{"style":92},[5220],{"type":57,"value":5221},"# Get draft (format: full, metadata, minimal, raw)\n",{"type":51,"tag":85,"props":5223,"children":5224},{"class":87,"line":1243},[5225,5229,5233,5238,5242],{"type":51,"tag":85,"props":5226,"children":5227},{"style":102},[5228],{"type":57,"value":3133},{"type":51,"tag":85,"props":5230,"children":5231},{"style":175},[5232],{"type":57,"value":2138},{"type":51,"tag":85,"props":5234,"children":5235},{"style":108},[5236],{"type":57,"value":5237},"http:\u002F\u002Flocalhost:4002\u002Fgmail\u002Fv1\u002Fusers\u002Fme\u002Fdrafts\u002Fdraft_id?format=full",{"type":51,"tag":85,"props":5239,"children":5240},{"style":175},[5241],{"type":57,"value":3378},{"type":51,"tag":85,"props":5243,"children":5244},{"style":181},[5245],{"type":57,"value":3356},{"type":51,"tag":85,"props":5247,"children":5248},{"class":87,"line":1251},[5249,5253,5257,5261,5265],{"type":51,"tag":85,"props":5250,"children":5251},{"style":108},[5252],{"type":57,"value":3364},{"type":51,"tag":85,"props":5254,"children":5255},{"style":175},[5256],{"type":57,"value":2138},{"type":51,"tag":85,"props":5258,"children":5259},{"style":108},[5260],{"type":57,"value":4060},{"type":51,"tag":85,"props":5262,"children":5263},{"style":181},[5264],{"type":57,"value":4065},{"type":51,"tag":85,"props":5266,"children":5267},{"style":175},[5268],{"type":57,"value":2148},{"type":51,"tag":85,"props":5270,"children":5271},{"class":87,"line":1268},[5272],{"type":51,"tag":85,"props":5273,"children":5274},{"emptyLinePlaceholder":128},[5275],{"type":57,"value":131},{"type":51,"tag":85,"props":5277,"children":5278},{"class":87,"line":1321},[5279],{"type":51,"tag":85,"props":5280,"children":5281},{"style":92},[5282],{"type":57,"value":5283},"# Update draft\n",{"type":51,"tag":85,"props":5285,"children":5286},{"class":87,"line":1329},[5287,5291,5295,5300,5305],{"type":51,"tag":85,"props":5288,"children":5289},{"style":102},[5290],{"type":57,"value":3133},{"type":51,"tag":85,"props":5292,"children":5293},{"style":108},[5294],{"type":57,"value":3341},{"type":51,"tag":85,"props":5296,"children":5297},{"style":108},[5298],{"type":57,"value":5299}," PUT",{"type":51,"tag":85,"props":5301,"children":5302},{"style":108},[5303],{"type":57,"value":5304}," http:\u002F\u002Flocalhost:4002\u002Fgmail\u002Fv1\u002Fusers\u002Fme\u002Fdrafts\u002Fdraft_id",{"type":51,"tag":85,"props":5306,"children":5307},{"style":181},[5308],{"type":57,"value":3356},{"type":51,"tag":85,"props":5310,"children":5311},{"class":87,"line":1992},[5312,5316,5320,5324,5328,5332],{"type":51,"tag":85,"props":5313,"children":5314},{"style":108},[5315],{"type":57,"value":3364},{"type":51,"tag":85,"props":5317,"children":5318},{"style":175},[5319],{"type":57,"value":2138},{"type":51,"tag":85,"props":5321,"children":5322},{"style":108},[5323],{"type":57,"value":4060},{"type":51,"tag":85,"props":5325,"children":5326},{"style":181},[5327],{"type":57,"value":4065},{"type":51,"tag":85,"props":5329,"children":5330},{"style":175},[5331],{"type":57,"value":3378},{"type":51,"tag":85,"props":5333,"children":5334},{"style":181},[5335],{"type":57,"value":3356},{"type":51,"tag":85,"props":5337,"children":5338},{"class":87,"line":2010},[5339,5343,5347,5351,5355],{"type":51,"tag":85,"props":5340,"children":5341},{"style":108},[5342],{"type":57,"value":3364},{"type":51,"tag":85,"props":5344,"children":5345},{"style":175},[5346],{"type":57,"value":2138},{"type":51,"tag":85,"props":5348,"children":5349},{"style":108},[5350],{"type":57,"value":4213},{"type":51,"tag":85,"props":5352,"children":5353},{"style":175},[5354],{"type":57,"value":3378},{"type":51,"tag":85,"props":5356,"children":5357},{"style":181},[5358],{"type":57,"value":3356},{"type":51,"tag":85,"props":5360,"children":5361},{"class":87,"line":2027},[5362,5366,5370,5375],{"type":51,"tag":85,"props":5363,"children":5364},{"style":108},[5365],{"type":57,"value":3390},{"type":51,"tag":85,"props":5367,"children":5368},{"style":175},[5369],{"type":57,"value":199},{"type":51,"tag":85,"props":5371,"children":5372},{"style":108},[5373],{"type":57,"value":5374},"{\"message\": {\"subject\": \"Updated subject\", \"body_text\": \"Updated body\"}}",{"type":51,"tag":85,"props":5376,"children":5377},{"style":175},[5378],{"type":57,"value":209},{"type":51,"tag":85,"props":5380,"children":5381},{"class":87,"line":2040},[5382],{"type":51,"tag":85,"props":5383,"children":5384},{"emptyLinePlaceholder":128},[5385],{"type":57,"value":131},{"type":51,"tag":85,"props":5387,"children":5388},{"class":87,"line":2054},[5389],{"type":51,"tag":85,"props":5390,"children":5391},{"style":92},[5392],{"type":57,"value":5393},"# Send draft\n",{"type":51,"tag":85,"props":5395,"children":5396},{"class":87,"line":2067},[5397,5401,5405,5409,5414],{"type":51,"tag":85,"props":5398,"children":5399},{"style":102},[5400],{"type":57,"value":3133},{"type":51,"tag":85,"props":5402,"children":5403},{"style":108},[5404],{"type":57,"value":3341},{"type":51,"tag":85,"props":5406,"children":5407},{"style":108},[5408],{"type":57,"value":3346},{"type":51,"tag":85,"props":5410,"children":5411},{"style":108},[5412],{"type":57,"value":5413}," http:\u002F\u002Flocalhost:4002\u002Fgmail\u002Fv1\u002Fusers\u002Fme\u002Fdrafts\u002Fsend",{"type":51,"tag":85,"props":5415,"children":5416},{"style":181},[5417],{"type":57,"value":3356},{"type":51,"tag":85,"props":5419,"children":5420},{"class":87,"line":2089},[5421,5425,5429,5433,5437,5441],{"type":51,"tag":85,"props":5422,"children":5423},{"style":108},[5424],{"type":57,"value":3364},{"type":51,"tag":85,"props":5426,"children":5427},{"style":175},[5428],{"type":57,"value":2138},{"type":51,"tag":85,"props":5430,"children":5431},{"style":108},[5432],{"type":57,"value":4060},{"type":51,"tag":85,"props":5434,"children":5435},{"style":181},[5436],{"type":57,"value":4065},{"type":51,"tag":85,"props":5438,"children":5439},{"style":175},[5440],{"type":57,"value":3378},{"type":51,"tag":85,"props":5442,"children":5443},{"style":181},[5444],{"type":57,"value":3356},{"type":51,"tag":85,"props":5446,"children":5447},{"class":87,"line":2106},[5448,5452,5456,5460,5464],{"type":51,"tag":85,"props":5449,"children":5450},{"style":108},[5451],{"type":57,"value":3364},{"type":51,"tag":85,"props":5453,"children":5454},{"style":175},[5455],{"type":57,"value":2138},{"type":51,"tag":85,"props":5457,"children":5458},{"style":108},[5459],{"type":57,"value":4213},{"type":51,"tag":85,"props":5461,"children":5462},{"style":175},[5463],{"type":57,"value":3378},{"type":51,"tag":85,"props":5465,"children":5466},{"style":181},[5467],{"type":57,"value":3356},{"type":51,"tag":85,"props":5469,"children":5470},{"class":87,"line":2123},[5471,5475,5479,5484],{"type":51,"tag":85,"props":5472,"children":5473},{"style":108},[5474],{"type":57,"value":3390},{"type":51,"tag":85,"props":5476,"children":5477},{"style":175},[5478],{"type":57,"value":199},{"type":51,"tag":85,"props":5480,"children":5481},{"style":108},[5482],{"type":57,"value":5483},"{\"id\": \"draft_id\"}",{"type":51,"tag":85,"props":5485,"children":5486},{"style":175},[5487],{"type":57,"value":209},{"type":51,"tag":85,"props":5489,"children":5490},{"class":87,"line":2151},[5491],{"type":51,"tag":85,"props":5492,"children":5493},{"emptyLinePlaceholder":128},[5494],{"type":57,"value":131},{"type":51,"tag":85,"props":5496,"children":5497},{"class":87,"line":2177},[5498],{"type":51,"tag":85,"props":5499,"children":5500},{"style":92},[5501],{"type":57,"value":5502},"# Delete draft\n",{"type":51,"tag":85,"props":5504,"children":5505},{"class":87,"line":2190},[5506,5510,5514,5518,5522],{"type":51,"tag":85,"props":5507,"children":5508},{"style":102},[5509],{"type":57,"value":3133},{"type":51,"tag":85,"props":5511,"children":5512},{"style":108},[5513],{"type":57,"value":3341},{"type":51,"tag":85,"props":5515,"children":5516},{"style":108},[5517],{"type":57,"value":4708},{"type":51,"tag":85,"props":5519,"children":5520},{"style":108},[5521],{"type":57,"value":5304},{"type":51,"tag":85,"props":5523,"children":5524},{"style":181},[5525],{"type":57,"value":3356},{"type":51,"tag":85,"props":5527,"children":5528},{"class":87,"line":2211},[5529,5533,5537,5541,5545],{"type":51,"tag":85,"props":5530,"children":5531},{"style":108},[5532],{"type":57,"value":3364},{"type":51,"tag":85,"props":5534,"children":5535},{"style":175},[5536],{"type":57,"value":2138},{"type":51,"tag":85,"props":5538,"children":5539},{"style":108},[5540],{"type":57,"value":4060},{"type":51,"tag":85,"props":5542,"children":5543},{"style":181},[5544],{"type":57,"value":4065},{"type":51,"tag":85,"props":5546,"children":5547},{"style":175},[5548],{"type":57,"value":2148},{"type":51,"tag":324,"props":5550,"children":5552},{"id":5551},"threads",[5553],{"type":57,"value":5554},"Threads",{"type":51,"tag":73,"props":5556,"children":5558},{"className":75,"code":5557,"language":77,"meta":78,"style":78},"# List threads (filter by labels, search query)\ncurl \"http:\u002F\u002Flocalhost:4002\u002Fgmail\u002Fv1\u002Fusers\u002Fme\u002Fthreads?labelIds=INBOX&maxResults=20\" \\\n  -H \"Authorization: Bearer $TOKEN\"\n\n# Get thread (all messages in thread)\ncurl \"http:\u002F\u002Flocalhost:4002\u002Fgmail\u002Fv1\u002Fusers\u002Fme\u002Fthreads\u002Fthr_welcome?format=full\" \\\n  -H \"Authorization: Bearer $TOKEN\"\n\n# Modify labels on all messages in thread\ncurl -X POST http:\u002F\u002Flocalhost:4002\u002Fgmail\u002Fv1\u002Fusers\u002Fme\u002Fthreads\u002Fthr_welcome\u002Fmodify \\\n  -H \"Authorization: Bearer $TOKEN\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\"addLabelIds\": [\"STARRED\"], \"removeLabelIds\": [\"UNREAD\"]}'\n\n# Trash \u002F untrash \u002F delete thread\ncurl -X POST http:\u002F\u002Flocalhost:4002\u002Fgmail\u002Fv1\u002Fusers\u002Fme\u002Fthreads\u002Fthr_welcome\u002Ftrash \\\n  -H \"Authorization: Bearer $TOKEN\"\ncurl -X DELETE http:\u002F\u002Flocalhost:4002\u002Fgmail\u002Fv1\u002Fusers\u002Fme\u002Fthreads\u002Fthr_welcome \\\n  -H \"Authorization: Bearer $TOKEN\"\n",[5559],{"type":51,"tag":81,"props":5560,"children":5561},{"__ignoreMap":78},[5562,5570,5594,5617,5624,5632,5656,5679,5686,5694,5718,5745,5768,5787,5794,5802,5826,5849,5873],{"type":51,"tag":85,"props":5563,"children":5564},{"class":87,"line":88},[5565],{"type":51,"tag":85,"props":5566,"children":5567},{"style":92},[5568],{"type":57,"value":5569},"# List threads (filter by labels, search query)\n",{"type":51,"tag":85,"props":5571,"children":5572},{"class":87,"line":98},[5573,5577,5581,5586,5590],{"type":51,"tag":85,"props":5574,"children":5575},{"style":102},[5576],{"type":57,"value":3133},{"type":51,"tag":85,"props":5578,"children":5579},{"style":175},[5580],{"type":57,"value":2138},{"type":51,"tag":85,"props":5582,"children":5583},{"style":108},[5584],{"type":57,"value":5585},"http:\u002F\u002Flocalhost:4002\u002Fgmail\u002Fv1\u002Fusers\u002Fme\u002Fthreads?labelIds=INBOX&maxResults=20",{"type":51,"tag":85,"props":5587,"children":5588},{"style":175},[5589],{"type":57,"value":3378},{"type":51,"tag":85,"props":5591,"children":5592},{"style":181},[5593],{"type":57,"value":3356},{"type":51,"tag":85,"props":5595,"children":5596},{"class":87,"line":124},[5597,5601,5605,5609,5613],{"type":51,"tag":85,"props":5598,"children":5599},{"style":108},[5600],{"type":57,"value":3364},{"type":51,"tag":85,"props":5602,"children":5603},{"style":175},[5604],{"type":57,"value":2138},{"type":51,"tag":85,"props":5606,"children":5607},{"style":108},[5608],{"type":57,"value":4060},{"type":51,"tag":85,"props":5610,"children":5611},{"style":181},[5612],{"type":57,"value":4065},{"type":51,"tag":85,"props":5614,"children":5615},{"style":175},[5616],{"type":57,"value":2148},{"type":51,"tag":85,"props":5618,"children":5619},{"class":87,"line":134},[5620],{"type":51,"tag":85,"props":5621,"children":5622},{"emptyLinePlaceholder":128},[5623],{"type":57,"value":131},{"type":51,"tag":85,"props":5625,"children":5626},{"class":87,"line":143},[5627],{"type":51,"tag":85,"props":5628,"children":5629},{"style":92},[5630],{"type":57,"value":5631},"# Get thread (all messages in thread)\n",{"type":51,"tag":85,"props":5633,"children":5634},{"class":87,"line":714},[5635,5639,5643,5648,5652],{"type":51,"tag":85,"props":5636,"children":5637},{"style":102},[5638],{"type":57,"value":3133},{"type":51,"tag":85,"props":5640,"children":5641},{"style":175},[5642],{"type":57,"value":2138},{"type":51,"tag":85,"props":5644,"children":5645},{"style":108},[5646],{"type":57,"value":5647},"http:\u002F\u002Flocalhost:4002\u002Fgmail\u002Fv1\u002Fusers\u002Fme\u002Fthreads\u002Fthr_welcome?format=full",{"type":51,"tag":85,"props":5649,"children":5650},{"style":175},[5651],{"type":57,"value":3378},{"type":51,"tag":85,"props":5653,"children":5654},{"style":181},[5655],{"type":57,"value":3356},{"type":51,"tag":85,"props":5657,"children":5658},{"class":87,"line":753},[5659,5663,5667,5671,5675],{"type":51,"tag":85,"props":5660,"children":5661},{"style":108},[5662],{"type":57,"value":3364},{"type":51,"tag":85,"props":5664,"children":5665},{"style":175},[5666],{"type":57,"value":2138},{"type":51,"tag":85,"props":5668,"children":5669},{"style":108},[5670],{"type":57,"value":4060},{"type":51,"tag":85,"props":5672,"children":5673},{"style":181},[5674],{"type":57,"value":4065},{"type":51,"tag":85,"props":5676,"children":5677},{"style":175},[5678],{"type":57,"value":2148},{"type":51,"tag":85,"props":5680,"children":5681},{"class":87,"line":791},[5682],{"type":51,"tag":85,"props":5683,"children":5684},{"emptyLinePlaceholder":128},[5685],{"type":57,"value":131},{"type":51,"tag":85,"props":5687,"children":5688},{"class":87,"line":821},[5689],{"type":51,"tag":85,"props":5690,"children":5691},{"style":92},[5692],{"type":57,"value":5693},"# Modify labels on all messages in thread\n",{"type":51,"tag":85,"props":5695,"children":5696},{"class":87,"line":834},[5697,5701,5705,5709,5714],{"type":51,"tag":85,"props":5698,"children":5699},{"style":102},[5700],{"type":57,"value":3133},{"type":51,"tag":85,"props":5702,"children":5703},{"style":108},[5704],{"type":57,"value":3341},{"type":51,"tag":85,"props":5706,"children":5707},{"style":108},[5708],{"type":57,"value":3346},{"type":51,"tag":85,"props":5710,"children":5711},{"style":108},[5712],{"type":57,"value":5713}," http:\u002F\u002Flocalhost:4002\u002Fgmail\u002Fv1\u002Fusers\u002Fme\u002Fthreads\u002Fthr_welcome\u002Fmodify",{"type":51,"tag":85,"props":5715,"children":5716},{"style":181},[5717],{"type":57,"value":3356},{"type":51,"tag":85,"props":5719,"children":5720},{"class":87,"line":842},[5721,5725,5729,5733,5737,5741],{"type":51,"tag":85,"props":5722,"children":5723},{"style":108},[5724],{"type":57,"value":3364},{"type":51,"tag":85,"props":5726,"children":5727},{"style":175},[5728],{"type":57,"value":2138},{"type":51,"tag":85,"props":5730,"children":5731},{"style":108},[5732],{"type":57,"value":4060},{"type":51,"tag":85,"props":5734,"children":5735},{"style":181},[5736],{"type":57,"value":4065},{"type":51,"tag":85,"props":5738,"children":5739},{"style":175},[5740],{"type":57,"value":3378},{"type":51,"tag":85,"props":5742,"children":5743},{"style":181},[5744],{"type":57,"value":3356},{"type":51,"tag":85,"props":5746,"children":5747},{"class":87,"line":1243},[5748,5752,5756,5760,5764],{"type":51,"tag":85,"props":5749,"children":5750},{"style":108},[5751],{"type":57,"value":3364},{"type":51,"tag":85,"props":5753,"children":5754},{"style":175},[5755],{"type":57,"value":2138},{"type":51,"tag":85,"props":5757,"children":5758},{"style":108},[5759],{"type":57,"value":4213},{"type":51,"tag":85,"props":5761,"children":5762},{"style":175},[5763],{"type":57,"value":3378},{"type":51,"tag":85,"props":5765,"children":5766},{"style":181},[5767],{"type":57,"value":3356},{"type":51,"tag":85,"props":5769,"children":5770},{"class":87,"line":1251},[5771,5775,5779,5783],{"type":51,"tag":85,"props":5772,"children":5773},{"style":108},[5774],{"type":57,"value":3390},{"type":51,"tag":85,"props":5776,"children":5777},{"style":175},[5778],{"type":57,"value":199},{"type":51,"tag":85,"props":5780,"children":5781},{"style":108},[5782],{"type":57,"value":4564},{"type":51,"tag":85,"props":5784,"children":5785},{"style":175},[5786],{"type":57,"value":209},{"type":51,"tag":85,"props":5788,"children":5789},{"class":87,"line":1268},[5790],{"type":51,"tag":85,"props":5791,"children":5792},{"emptyLinePlaceholder":128},[5793],{"type":57,"value":131},{"type":51,"tag":85,"props":5795,"children":5796},{"class":87,"line":1321},[5797],{"type":51,"tag":85,"props":5798,"children":5799},{"style":92},[5800],{"type":57,"value":5801},"# Trash \u002F untrash \u002F delete thread\n",{"type":51,"tag":85,"props":5803,"children":5804},{"class":87,"line":1329},[5805,5809,5813,5817,5822],{"type":51,"tag":85,"props":5806,"children":5807},{"style":102},[5808],{"type":57,"value":3133},{"type":51,"tag":85,"props":5810,"children":5811},{"style":108},[5812],{"type":57,"value":3341},{"type":51,"tag":85,"props":5814,"children":5815},{"style":108},[5816],{"type":57,"value":3346},{"type":51,"tag":85,"props":5818,"children":5819},{"style":108},[5820],{"type":57,"value":5821}," http:\u002F\u002Flocalhost:4002\u002Fgmail\u002Fv1\u002Fusers\u002Fme\u002Fthreads\u002Fthr_welcome\u002Ftrash",{"type":51,"tag":85,"props":5823,"children":5824},{"style":181},[5825],{"type":57,"value":3356},{"type":51,"tag":85,"props":5827,"children":5828},{"class":87,"line":1992},[5829,5833,5837,5841,5845],{"type":51,"tag":85,"props":5830,"children":5831},{"style":108},[5832],{"type":57,"value":3364},{"type":51,"tag":85,"props":5834,"children":5835},{"style":175},[5836],{"type":57,"value":2138},{"type":51,"tag":85,"props":5838,"children":5839},{"style":108},[5840],{"type":57,"value":4060},{"type":51,"tag":85,"props":5842,"children":5843},{"style":181},[5844],{"type":57,"value":4065},{"type":51,"tag":85,"props":5846,"children":5847},{"style":175},[5848],{"type":57,"value":2148},{"type":51,"tag":85,"props":5850,"children":5851},{"class":87,"line":2010},[5852,5856,5860,5864,5869],{"type":51,"tag":85,"props":5853,"children":5854},{"style":102},[5855],{"type":57,"value":3133},{"type":51,"tag":85,"props":5857,"children":5858},{"style":108},[5859],{"type":57,"value":3341},{"type":51,"tag":85,"props":5861,"children":5862},{"style":108},[5863],{"type":57,"value":4708},{"type":51,"tag":85,"props":5865,"children":5866},{"style":108},[5867],{"type":57,"value":5868}," http:\u002F\u002Flocalhost:4002\u002Fgmail\u002Fv1\u002Fusers\u002Fme\u002Fthreads\u002Fthr_welcome",{"type":51,"tag":85,"props":5870,"children":5871},{"style":181},[5872],{"type":57,"value":3356},{"type":51,"tag":85,"props":5874,"children":5875},{"class":87,"line":2027},[5876,5880,5884,5888,5892],{"type":51,"tag":85,"props":5877,"children":5878},{"style":108},[5879],{"type":57,"value":3364},{"type":51,"tag":85,"props":5881,"children":5882},{"style":175},[5883],{"type":57,"value":2138},{"type":51,"tag":85,"props":5885,"children":5886},{"style":108},[5887],{"type":57,"value":4060},{"type":51,"tag":85,"props":5889,"children":5890},{"style":181},[5891],{"type":57,"value":4065},{"type":51,"tag":85,"props":5893,"children":5894},{"style":175},[5895],{"type":57,"value":2148},{"type":51,"tag":324,"props":5897,"children":5899},{"id":5898},"labels",[5900],{"type":57,"value":5901},"Labels",{"type":51,"tag":73,"props":5903,"children":5905},{"className":75,"code":5904,"language":77,"meta":78,"style":78},"# List labels\ncurl http:\u002F\u002Flocalhost:4002\u002Fgmail\u002Fv1\u002Fusers\u002Fme\u002Flabels \\\n  -H \"Authorization: Bearer $TOKEN\"\n\n# Get label\ncurl http:\u002F\u002Flocalhost:4002\u002Fgmail\u002Fv1\u002Fusers\u002Fme\u002Flabels\u002FINBOX \\\n  -H \"Authorization: Bearer $TOKEN\"\n\n# Create label\ncurl -X POST http:\u002F\u002Flocalhost:4002\u002Fgmail\u002Fv1\u002Fusers\u002Fme\u002Flabels \\\n  -H \"Authorization: Bearer $TOKEN\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\"name\": \"My Label\", \"color\": {\"backgroundColor\": \"#DDEEFF\", \"textColor\": \"#111111\"}}'\n\n# Update label (PUT replaces, PATCH merges)\ncurl -X PATCH http:\u002F\u002Flocalhost:4002\u002Fgmail\u002Fv1\u002Fusers\u002Fme\u002Flabels\u002FLabel_ops \\\n  -H \"Authorization: Bearer $TOKEN\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\"name\": \"Ops\u002FReviewed\"}'\n\n# Delete label (user labels only)\ncurl -X DELETE http:\u002F\u002Flocalhost:4002\u002Fgmail\u002Fv1\u002Fusers\u002Fme\u002Flabels\u002FLabel_ops \\\n  -H \"Authorization: Bearer $TOKEN\"\n",[5906],{"type":51,"tag":81,"props":5907,"children":5908},{"__ignoreMap":78},[5909,5917,5933,5956,5963,5971,5987,6010,6017,6025,6048,6075,6098,6118,6125,6133,6158,6185,6208,6228,6235,6243,6266],{"type":51,"tag":85,"props":5910,"children":5911},{"class":87,"line":88},[5912],{"type":51,"tag":85,"props":5913,"children":5914},{"style":92},[5915],{"type":57,"value":5916},"# List labels\n",{"type":51,"tag":85,"props":5918,"children":5919},{"class":87,"line":98},[5920,5924,5929],{"type":51,"tag":85,"props":5921,"children":5922},{"style":102},[5923],{"type":57,"value":3133},{"type":51,"tag":85,"props":5925,"children":5926},{"style":108},[5927],{"type":57,"value":5928}," http:\u002F\u002Flocalhost:4002\u002Fgmail\u002Fv1\u002Fusers\u002Fme\u002Flabels",{"type":51,"tag":85,"props":5930,"children":5931},{"style":181},[5932],{"type":57,"value":3356},{"type":51,"tag":85,"props":5934,"children":5935},{"class":87,"line":124},[5936,5940,5944,5948,5952],{"type":51,"tag":85,"props":5937,"children":5938},{"style":108},[5939],{"type":57,"value":3364},{"type":51,"tag":85,"props":5941,"children":5942},{"style":175},[5943],{"type":57,"value":2138},{"type":51,"tag":85,"props":5945,"children":5946},{"style":108},[5947],{"type":57,"value":4060},{"type":51,"tag":85,"props":5949,"children":5950},{"style":181},[5951],{"type":57,"value":4065},{"type":51,"tag":85,"props":5953,"children":5954},{"style":175},[5955],{"type":57,"value":2148},{"type":51,"tag":85,"props":5957,"children":5958},{"class":87,"line":134},[5959],{"type":51,"tag":85,"props":5960,"children":5961},{"emptyLinePlaceholder":128},[5962],{"type":57,"value":131},{"type":51,"tag":85,"props":5964,"children":5965},{"class":87,"line":143},[5966],{"type":51,"tag":85,"props":5967,"children":5968},{"style":92},[5969],{"type":57,"value":5970},"# Get label\n",{"type":51,"tag":85,"props":5972,"children":5973},{"class":87,"line":714},[5974,5978,5983],{"type":51,"tag":85,"props":5975,"children":5976},{"style":102},[5977],{"type":57,"value":3133},{"type":51,"tag":85,"props":5979,"children":5980},{"style":108},[5981],{"type":57,"value":5982}," http:\u002F\u002Flocalhost:4002\u002Fgmail\u002Fv1\u002Fusers\u002Fme\u002Flabels\u002FINBOX",{"type":51,"tag":85,"props":5984,"children":5985},{"style":181},[5986],{"type":57,"value":3356},{"type":51,"tag":85,"props":5988,"children":5989},{"class":87,"line":753},[5990,5994,5998,6002,6006],{"type":51,"tag":85,"props":5991,"children":5992},{"style":108},[5993],{"type":57,"value":3364},{"type":51,"tag":85,"props":5995,"children":5996},{"style":175},[5997],{"type":57,"value":2138},{"type":51,"tag":85,"props":5999,"children":6000},{"style":108},[6001],{"type":57,"value":4060},{"type":51,"tag":85,"props":6003,"children":6004},{"style":181},[6005],{"type":57,"value":4065},{"type":51,"tag":85,"props":6007,"children":6008},{"style":175},[6009],{"type":57,"value":2148},{"type":51,"tag":85,"props":6011,"children":6012},{"class":87,"line":791},[6013],{"type":51,"tag":85,"props":6014,"children":6015},{"emptyLinePlaceholder":128},[6016],{"type":57,"value":131},{"type":51,"tag":85,"props":6018,"children":6019},{"class":87,"line":821},[6020],{"type":51,"tag":85,"props":6021,"children":6022},{"style":92},[6023],{"type":57,"value":6024},"# Create label\n",{"type":51,"tag":85,"props":6026,"children":6027},{"class":87,"line":834},[6028,6032,6036,6040,6044],{"type":51,"tag":85,"props":6029,"children":6030},{"style":102},[6031],{"type":57,"value":3133},{"type":51,"tag":85,"props":6033,"children":6034},{"style":108},[6035],{"type":57,"value":3341},{"type":51,"tag":85,"props":6037,"children":6038},{"style":108},[6039],{"type":57,"value":3346},{"type":51,"tag":85,"props":6041,"children":6042},{"style":108},[6043],{"type":57,"value":5928},{"type":51,"tag":85,"props":6045,"children":6046},{"style":181},[6047],{"type":57,"value":3356},{"type":51,"tag":85,"props":6049,"children":6050},{"class":87,"line":842},[6051,6055,6059,6063,6067,6071],{"type":51,"tag":85,"props":6052,"children":6053},{"style":108},[6054],{"type":57,"value":3364},{"type":51,"tag":85,"props":6056,"children":6057},{"style":175},[6058],{"type":57,"value":2138},{"type":51,"tag":85,"props":6060,"children":6061},{"style":108},[6062],{"type":57,"value":4060},{"type":51,"tag":85,"props":6064,"children":6065},{"style":181},[6066],{"type":57,"value":4065},{"type":51,"tag":85,"props":6068,"children":6069},{"style":175},[6070],{"type":57,"value":3378},{"type":51,"tag":85,"props":6072,"children":6073},{"style":181},[6074],{"type":57,"value":3356},{"type":51,"tag":85,"props":6076,"children":6077},{"class":87,"line":1243},[6078,6082,6086,6090,6094],{"type":51,"tag":85,"props":6079,"children":6080},{"style":108},[6081],{"type":57,"value":3364},{"type":51,"tag":85,"props":6083,"children":6084},{"style":175},[6085],{"type":57,"value":2138},{"type":51,"tag":85,"props":6087,"children":6088},{"style":108},[6089],{"type":57,"value":4213},{"type":51,"tag":85,"props":6091,"children":6092},{"style":175},[6093],{"type":57,"value":3378},{"type":51,"tag":85,"props":6095,"children":6096},{"style":181},[6097],{"type":57,"value":3356},{"type":51,"tag":85,"props":6099,"children":6100},{"class":87,"line":1251},[6101,6105,6109,6114],{"type":51,"tag":85,"props":6102,"children":6103},{"style":108},[6104],{"type":57,"value":3390},{"type":51,"tag":85,"props":6106,"children":6107},{"style":175},[6108],{"type":57,"value":199},{"type":51,"tag":85,"props":6110,"children":6111},{"style":108},[6112],{"type":57,"value":6113},"{\"name\": \"My Label\", \"color\": {\"backgroundColor\": \"#DDEEFF\", \"textColor\": \"#111111\"}}",{"type":51,"tag":85,"props":6115,"children":6116},{"style":175},[6117],{"type":57,"value":209},{"type":51,"tag":85,"props":6119,"children":6120},{"class":87,"line":1268},[6121],{"type":51,"tag":85,"props":6122,"children":6123},{"emptyLinePlaceholder":128},[6124],{"type":57,"value":131},{"type":51,"tag":85,"props":6126,"children":6127},{"class":87,"line":1321},[6128],{"type":51,"tag":85,"props":6129,"children":6130},{"style":92},[6131],{"type":57,"value":6132},"# Update label (PUT replaces, PATCH merges)\n",{"type":51,"tag":85,"props":6134,"children":6135},{"class":87,"line":1329},[6136,6140,6144,6149,6154],{"type":51,"tag":85,"props":6137,"children":6138},{"style":102},[6139],{"type":57,"value":3133},{"type":51,"tag":85,"props":6141,"children":6142},{"style":108},[6143],{"type":57,"value":3341},{"type":51,"tag":85,"props":6145,"children":6146},{"style":108},[6147],{"type":57,"value":6148}," PATCH",{"type":51,"tag":85,"props":6150,"children":6151},{"style":108},[6152],{"type":57,"value":6153}," http:\u002F\u002Flocalhost:4002\u002Fgmail\u002Fv1\u002Fusers\u002Fme\u002Flabels\u002FLabel_ops",{"type":51,"tag":85,"props":6155,"children":6156},{"style":181},[6157],{"type":57,"value":3356},{"type":51,"tag":85,"props":6159,"children":6160},{"class":87,"line":1992},[6161,6165,6169,6173,6177,6181],{"type":51,"tag":85,"props":6162,"children":6163},{"style":108},[6164],{"type":57,"value":3364},{"type":51,"tag":85,"props":6166,"children":6167},{"style":175},[6168],{"type":57,"value":2138},{"type":51,"tag":85,"props":6170,"children":6171},{"style":108},[6172],{"type":57,"value":4060},{"type":51,"tag":85,"props":6174,"children":6175},{"style":181},[6176],{"type":57,"value":4065},{"type":51,"tag":85,"props":6178,"children":6179},{"style":175},[6180],{"type":57,"value":3378},{"type":51,"tag":85,"props":6182,"children":6183},{"style":181},[6184],{"type":57,"value":3356},{"type":51,"tag":85,"props":6186,"children":6187},{"class":87,"line":2010},[6188,6192,6196,6200,6204],{"type":51,"tag":85,"props":6189,"children":6190},{"style":108},[6191],{"type":57,"value":3364},{"type":51,"tag":85,"props":6193,"children":6194},{"style":175},[6195],{"type":57,"value":2138},{"type":51,"tag":85,"props":6197,"children":6198},{"style":108},[6199],{"type":57,"value":4213},{"type":51,"tag":85,"props":6201,"children":6202},{"style":175},[6203],{"type":57,"value":3378},{"type":51,"tag":85,"props":6205,"children":6206},{"style":181},[6207],{"type":57,"value":3356},{"type":51,"tag":85,"props":6209,"children":6210},{"class":87,"line":2027},[6211,6215,6219,6224],{"type":51,"tag":85,"props":6212,"children":6213},{"style":108},[6214],{"type":57,"value":3390},{"type":51,"tag":85,"props":6216,"children":6217},{"style":175},[6218],{"type":57,"value":199},{"type":51,"tag":85,"props":6220,"children":6221},{"style":108},[6222],{"type":57,"value":6223},"{\"name\": \"Ops\u002FReviewed\"}",{"type":51,"tag":85,"props":6225,"children":6226},{"style":175},[6227],{"type":57,"value":209},{"type":51,"tag":85,"props":6229,"children":6230},{"class":87,"line":2040},[6231],{"type":51,"tag":85,"props":6232,"children":6233},{"emptyLinePlaceholder":128},[6234],{"type":57,"value":131},{"type":51,"tag":85,"props":6236,"children":6237},{"class":87,"line":2054},[6238],{"type":51,"tag":85,"props":6239,"children":6240},{"style":92},[6241],{"type":57,"value":6242},"# Delete label (user labels only)\n",{"type":51,"tag":85,"props":6244,"children":6245},{"class":87,"line":2067},[6246,6250,6254,6258,6262],{"type":51,"tag":85,"props":6247,"children":6248},{"style":102},[6249],{"type":57,"value":3133},{"type":51,"tag":85,"props":6251,"children":6252},{"style":108},[6253],{"type":57,"value":3341},{"type":51,"tag":85,"props":6255,"children":6256},{"style":108},[6257],{"type":57,"value":4708},{"type":51,"tag":85,"props":6259,"children":6260},{"style":108},[6261],{"type":57,"value":6153},{"type":51,"tag":85,"props":6263,"children":6264},{"style":181},[6265],{"type":57,"value":3356},{"type":51,"tag":85,"props":6267,"children":6268},{"class":87,"line":2089},[6269,6273,6277,6281,6285],{"type":51,"tag":85,"props":6270,"children":6271},{"style":108},[6272],{"type":57,"value":3364},{"type":51,"tag":85,"props":6274,"children":6275},{"style":175},[6276],{"type":57,"value":2138},{"type":51,"tag":85,"props":6278,"children":6279},{"style":108},[6280],{"type":57,"value":4060},{"type":51,"tag":85,"props":6282,"children":6283},{"style":181},[6284],{"type":57,"value":4065},{"type":51,"tag":85,"props":6286,"children":6287},{"style":175},[6288],{"type":57,"value":2148},{"type":51,"tag":324,"props":6290,"children":6292},{"id":6291},"history-watch",[6293],{"type":57,"value":6294},"History & Watch",{"type":51,"tag":73,"props":6296,"children":6298},{"className":75,"code":6297,"language":77,"meta":78,"style":78},"# List history changes since a given historyId\ncurl \"http:\u002F\u002Flocalhost:4002\u002Fgmail\u002Fv1\u002Fusers\u002Fme\u002Fhistory?startHistoryId=1&historyTypes=messageAdded&maxResults=100\" \\\n  -H \"Authorization: Bearer $TOKEN\"\n\n# Set up push notification watch (stub)\ncurl -X POST http:\u002F\u002Flocalhost:4002\u002Fgmail\u002Fv1\u002Fusers\u002Fme\u002Fwatch \\\n  -H \"Authorization: Bearer $TOKEN\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\"topicName\": \"projects\u002Fmy-project\u002Ftopics\u002Fgmail\", \"labelIds\": [\"INBOX\"]}'\n\n# Stop watch\ncurl -X POST http:\u002F\u002Flocalhost:4002\u002Fgmail\u002Fv1\u002Fusers\u002Fme\u002Fstop \\\n  -H \"Authorization: Bearer $TOKEN\"\n",[6299],{"type":51,"tag":81,"props":6300,"children":6301},{"__ignoreMap":78},[6302,6310,6334,6357,6364,6372,6396,6423,6446,6466,6473,6481,6505],{"type":51,"tag":85,"props":6303,"children":6304},{"class":87,"line":88},[6305],{"type":51,"tag":85,"props":6306,"children":6307},{"style":92},[6308],{"type":57,"value":6309},"# List history changes since a given historyId\n",{"type":51,"tag":85,"props":6311,"children":6312},{"class":87,"line":98},[6313,6317,6321,6326,6330],{"type":51,"tag":85,"props":6314,"children":6315},{"style":102},[6316],{"type":57,"value":3133},{"type":51,"tag":85,"props":6318,"children":6319},{"style":175},[6320],{"type":57,"value":2138},{"type":51,"tag":85,"props":6322,"children":6323},{"style":108},[6324],{"type":57,"value":6325},"http:\u002F\u002Flocalhost:4002\u002Fgmail\u002Fv1\u002Fusers\u002Fme\u002Fhistory?startHistoryId=1&historyTypes=messageAdded&maxResults=100",{"type":51,"tag":85,"props":6327,"children":6328},{"style":175},[6329],{"type":57,"value":3378},{"type":51,"tag":85,"props":6331,"children":6332},{"style":181},[6333],{"type":57,"value":3356},{"type":51,"tag":85,"props":6335,"children":6336},{"class":87,"line":124},[6337,6341,6345,6349,6353],{"type":51,"tag":85,"props":6338,"children":6339},{"style":108},[6340],{"type":57,"value":3364},{"type":51,"tag":85,"props":6342,"children":6343},{"style":175},[6344],{"type":57,"value":2138},{"type":51,"tag":85,"props":6346,"children":6347},{"style":108},[6348],{"type":57,"value":4060},{"type":51,"tag":85,"props":6350,"children":6351},{"style":181},[6352],{"type":57,"value":4065},{"type":51,"tag":85,"props":6354,"children":6355},{"style":175},[6356],{"type":57,"value":2148},{"type":51,"tag":85,"props":6358,"children":6359},{"class":87,"line":134},[6360],{"type":51,"tag":85,"props":6361,"children":6362},{"emptyLinePlaceholder":128},[6363],{"type":57,"value":131},{"type":51,"tag":85,"props":6365,"children":6366},{"class":87,"line":143},[6367],{"type":51,"tag":85,"props":6368,"children":6369},{"style":92},[6370],{"type":57,"value":6371},"# Set up push notification watch (stub)\n",{"type":51,"tag":85,"props":6373,"children":6374},{"class":87,"line":714},[6375,6379,6383,6387,6392],{"type":51,"tag":85,"props":6376,"children":6377},{"style":102},[6378],{"type":57,"value":3133},{"type":51,"tag":85,"props":6380,"children":6381},{"style":108},[6382],{"type":57,"value":3341},{"type":51,"tag":85,"props":6384,"children":6385},{"style":108},[6386],{"type":57,"value":3346},{"type":51,"tag":85,"props":6388,"children":6389},{"style":108},[6390],{"type":57,"value":6391}," http:\u002F\u002Flocalhost:4002\u002Fgmail\u002Fv1\u002Fusers\u002Fme\u002Fwatch",{"type":51,"tag":85,"props":6393,"children":6394},{"style":181},[6395],{"type":57,"value":3356},{"type":51,"tag":85,"props":6397,"children":6398},{"class":87,"line":753},[6399,6403,6407,6411,6415,6419],{"type":51,"tag":85,"props":6400,"children":6401},{"style":108},[6402],{"type":57,"value":3364},{"type":51,"tag":85,"props":6404,"children":6405},{"style":175},[6406],{"type":57,"value":2138},{"type":51,"tag":85,"props":6408,"children":6409},{"style":108},[6410],{"type":57,"value":4060},{"type":51,"tag":85,"props":6412,"children":6413},{"style":181},[6414],{"type":57,"value":4065},{"type":51,"tag":85,"props":6416,"children":6417},{"style":175},[6418],{"type":57,"value":3378},{"type":51,"tag":85,"props":6420,"children":6421},{"style":181},[6422],{"type":57,"value":3356},{"type":51,"tag":85,"props":6424,"children":6425},{"class":87,"line":791},[6426,6430,6434,6438,6442],{"type":51,"tag":85,"props":6427,"children":6428},{"style":108},[6429],{"type":57,"value":3364},{"type":51,"tag":85,"props":6431,"children":6432},{"style":175},[6433],{"type":57,"value":2138},{"type":51,"tag":85,"props":6435,"children":6436},{"style":108},[6437],{"type":57,"value":4213},{"type":51,"tag":85,"props":6439,"children":6440},{"style":175},[6441],{"type":57,"value":3378},{"type":51,"tag":85,"props":6443,"children":6444},{"style":181},[6445],{"type":57,"value":3356},{"type":51,"tag":85,"props":6447,"children":6448},{"class":87,"line":821},[6449,6453,6457,6462],{"type":51,"tag":85,"props":6450,"children":6451},{"style":108},[6452],{"type":57,"value":3390},{"type":51,"tag":85,"props":6454,"children":6455},{"style":175},[6456],{"type":57,"value":199},{"type":51,"tag":85,"props":6458,"children":6459},{"style":108},[6460],{"type":57,"value":6461},"{\"topicName\": \"projects\u002Fmy-project\u002Ftopics\u002Fgmail\", \"labelIds\": [\"INBOX\"]}",{"type":51,"tag":85,"props":6463,"children":6464},{"style":175},[6465],{"type":57,"value":209},{"type":51,"tag":85,"props":6467,"children":6468},{"class":87,"line":834},[6469],{"type":51,"tag":85,"props":6470,"children":6471},{"emptyLinePlaceholder":128},[6472],{"type":57,"value":131},{"type":51,"tag":85,"props":6474,"children":6475},{"class":87,"line":842},[6476],{"type":51,"tag":85,"props":6477,"children":6478},{"style":92},[6479],{"type":57,"value":6480},"# Stop watch\n",{"type":51,"tag":85,"props":6482,"children":6483},{"class":87,"line":1243},[6484,6488,6492,6496,6501],{"type":51,"tag":85,"props":6485,"children":6486},{"style":102},[6487],{"type":57,"value":3133},{"type":51,"tag":85,"props":6489,"children":6490},{"style":108},[6491],{"type":57,"value":3341},{"type":51,"tag":85,"props":6493,"children":6494},{"style":108},[6495],{"type":57,"value":3346},{"type":51,"tag":85,"props":6497,"children":6498},{"style":108},[6499],{"type":57,"value":6500}," http:\u002F\u002Flocalhost:4002\u002Fgmail\u002Fv1\u002Fusers\u002Fme\u002Fstop",{"type":51,"tag":85,"props":6502,"children":6503},{"style":181},[6504],{"type":57,"value":3356},{"type":51,"tag":85,"props":6506,"children":6507},{"class":87,"line":1251},[6508,6512,6516,6520,6524],{"type":51,"tag":85,"props":6509,"children":6510},{"style":108},[6511],{"type":57,"value":3364},{"type":51,"tag":85,"props":6513,"children":6514},{"style":175},[6515],{"type":57,"value":2138},{"type":51,"tag":85,"props":6517,"children":6518},{"style":108},[6519],{"type":57,"value":4060},{"type":51,"tag":85,"props":6521,"children":6522},{"style":181},[6523],{"type":57,"value":4065},{"type":51,"tag":85,"props":6525,"children":6526},{"style":175},[6527],{"type":57,"value":2148},{"type":51,"tag":324,"props":6529,"children":6531},{"id":6530},"settings",[6532],{"type":57,"value":6533},"Settings",{"type":51,"tag":73,"props":6535,"children":6537},{"className":75,"code":6536,"language":77,"meta":78,"style":78},"# List filters\ncurl http:\u002F\u002Flocalhost:4002\u002Fgmail\u002Fv1\u002Fusers\u002Fme\u002Fsettings\u002Ffilters \\\n  -H \"Authorization: Bearer $TOKEN\"\n\n# Create filter (auto-label incoming messages matching criteria)\ncurl -X POST http:\u002F\u002Flocalhost:4002\u002Fgmail\u002Fv1\u002Fusers\u002Fme\u002Fsettings\u002Ffilters \\\n  -H \"Authorization: Bearer $TOKEN\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\"criteria\": {\"from\": \"alerts@example.com\"}, \"action\": {\"addLabelIds\": [\"Label_ops\"]}}'\n\n# Delete filter\ncurl -X DELETE http:\u002F\u002Flocalhost:4002\u002Fgmail\u002Fv1\u002Fusers\u002Fme\u002Fsettings\u002Ffilters\u002Ffilter_id \\\n  -H \"Authorization: Bearer $TOKEN\"\n\n# List forwarding addresses\ncurl http:\u002F\u002Flocalhost:4002\u002Fgmail\u002Fv1\u002Fusers\u002Fme\u002Fsettings\u002FforwardingAddresses \\\n  -H \"Authorization: Bearer $TOKEN\"\n\n# List send-as aliases\ncurl http:\u002F\u002Flocalhost:4002\u002Fgmail\u002Fv1\u002Fusers\u002Fme\u002Fsettings\u002FsendAs \\\n  -H \"Authorization: Bearer $TOKEN\"\n",[6538],{"type":51,"tag":81,"props":6539,"children":6540},{"__ignoreMap":78},[6541,6549,6565,6588,6595,6603,6626,6653,6676,6696,6703,6711,6735,6758,6765,6773,6789,6812,6819,6827,6843],{"type":51,"tag":85,"props":6542,"children":6543},{"class":87,"line":88},[6544],{"type":51,"tag":85,"props":6545,"children":6546},{"style":92},[6547],{"type":57,"value":6548},"# List filters\n",{"type":51,"tag":85,"props":6550,"children":6551},{"class":87,"line":98},[6552,6556,6561],{"type":51,"tag":85,"props":6553,"children":6554},{"style":102},[6555],{"type":57,"value":3133},{"type":51,"tag":85,"props":6557,"children":6558},{"style":108},[6559],{"type":57,"value":6560}," http:\u002F\u002Flocalhost:4002\u002Fgmail\u002Fv1\u002Fusers\u002Fme\u002Fsettings\u002Ffilters",{"type":51,"tag":85,"props":6562,"children":6563},{"style":181},[6564],{"type":57,"value":3356},{"type":51,"tag":85,"props":6566,"children":6567},{"class":87,"line":124},[6568,6572,6576,6580,6584],{"type":51,"tag":85,"props":6569,"children":6570},{"style":108},[6571],{"type":57,"value":3364},{"type":51,"tag":85,"props":6573,"children":6574},{"style":175},[6575],{"type":57,"value":2138},{"type":51,"tag":85,"props":6577,"children":6578},{"style":108},[6579],{"type":57,"value":4060},{"type":51,"tag":85,"props":6581,"children":6582},{"style":181},[6583],{"type":57,"value":4065},{"type":51,"tag":85,"props":6585,"children":6586},{"style":175},[6587],{"type":57,"value":2148},{"type":51,"tag":85,"props":6589,"children":6590},{"class":87,"line":134},[6591],{"type":51,"tag":85,"props":6592,"children":6593},{"emptyLinePlaceholder":128},[6594],{"type":57,"value":131},{"type":51,"tag":85,"props":6596,"children":6597},{"class":87,"line":143},[6598],{"type":51,"tag":85,"props":6599,"children":6600},{"style":92},[6601],{"type":57,"value":6602},"# Create filter (auto-label incoming messages matching criteria)\n",{"type":51,"tag":85,"props":6604,"children":6605},{"class":87,"line":714},[6606,6610,6614,6618,6622],{"type":51,"tag":85,"props":6607,"children":6608},{"style":102},[6609],{"type":57,"value":3133},{"type":51,"tag":85,"props":6611,"children":6612},{"style":108},[6613],{"type":57,"value":3341},{"type":51,"tag":85,"props":6615,"children":6616},{"style":108},[6617],{"type":57,"value":3346},{"type":51,"tag":85,"props":6619,"children":6620},{"style":108},[6621],{"type":57,"value":6560},{"type":51,"tag":85,"props":6623,"children":6624},{"style":181},[6625],{"type":57,"value":3356},{"type":51,"tag":85,"props":6627,"children":6628},{"class":87,"line":753},[6629,6633,6637,6641,6645,6649],{"type":51,"tag":85,"props":6630,"children":6631},{"style":108},[6632],{"type":57,"value":3364},{"type":51,"tag":85,"props":6634,"children":6635},{"style":175},[6636],{"type":57,"value":2138},{"type":51,"tag":85,"props":6638,"children":6639},{"style":108},[6640],{"type":57,"value":4060},{"type":51,"tag":85,"props":6642,"children":6643},{"style":181},[6644],{"type":57,"value":4065},{"type":51,"tag":85,"props":6646,"children":6647},{"style":175},[6648],{"type":57,"value":3378},{"type":51,"tag":85,"props":6650,"children":6651},{"style":181},[6652],{"type":57,"value":3356},{"type":51,"tag":85,"props":6654,"children":6655},{"class":87,"line":791},[6656,6660,6664,6668,6672],{"type":51,"tag":85,"props":6657,"children":6658},{"style":108},[6659],{"type":57,"value":3364},{"type":51,"tag":85,"props":6661,"children":6662},{"style":175},[6663],{"type":57,"value":2138},{"type":51,"tag":85,"props":6665,"children":6666},{"style":108},[6667],{"type":57,"value":4213},{"type":51,"tag":85,"props":6669,"children":6670},{"style":175},[6671],{"type":57,"value":3378},{"type":51,"tag":85,"props":6673,"children":6674},{"style":181},[6675],{"type":57,"value":3356},{"type":51,"tag":85,"props":6677,"children":6678},{"class":87,"line":821},[6679,6683,6687,6692],{"type":51,"tag":85,"props":6680,"children":6681},{"style":108},[6682],{"type":57,"value":3390},{"type":51,"tag":85,"props":6684,"children":6685},{"style":175},[6686],{"type":57,"value":199},{"type":51,"tag":85,"props":6688,"children":6689},{"style":108},[6690],{"type":57,"value":6691},"{\"criteria\": {\"from\": \"alerts@example.com\"}, \"action\": {\"addLabelIds\": [\"Label_ops\"]}}",{"type":51,"tag":85,"props":6693,"children":6694},{"style":175},[6695],{"type":57,"value":209},{"type":51,"tag":85,"props":6697,"children":6698},{"class":87,"line":834},[6699],{"type":51,"tag":85,"props":6700,"children":6701},{"emptyLinePlaceholder":128},[6702],{"type":57,"value":131},{"type":51,"tag":85,"props":6704,"children":6705},{"class":87,"line":842},[6706],{"type":51,"tag":85,"props":6707,"children":6708},{"style":92},[6709],{"type":57,"value":6710},"# Delete filter\n",{"type":51,"tag":85,"props":6712,"children":6713},{"class":87,"line":1243},[6714,6718,6722,6726,6731],{"type":51,"tag":85,"props":6715,"children":6716},{"style":102},[6717],{"type":57,"value":3133},{"type":51,"tag":85,"props":6719,"children":6720},{"style":108},[6721],{"type":57,"value":3341},{"type":51,"tag":85,"props":6723,"children":6724},{"style":108},[6725],{"type":57,"value":4708},{"type":51,"tag":85,"props":6727,"children":6728},{"style":108},[6729],{"type":57,"value":6730}," http:\u002F\u002Flocalhost:4002\u002Fgmail\u002Fv1\u002Fusers\u002Fme\u002Fsettings\u002Ffilters\u002Ffilter_id",{"type":51,"tag":85,"props":6732,"children":6733},{"style":181},[6734],{"type":57,"value":3356},{"type":51,"tag":85,"props":6736,"children":6737},{"class":87,"line":1251},[6738,6742,6746,6750,6754],{"type":51,"tag":85,"props":6739,"children":6740},{"style":108},[6741],{"type":57,"value":3364},{"type":51,"tag":85,"props":6743,"children":6744},{"style":175},[6745],{"type":57,"value":2138},{"type":51,"tag":85,"props":6747,"children":6748},{"style":108},[6749],{"type":57,"value":4060},{"type":51,"tag":85,"props":6751,"children":6752},{"style":181},[6753],{"type":57,"value":4065},{"type":51,"tag":85,"props":6755,"children":6756},{"style":175},[6757],{"type":57,"value":2148},{"type":51,"tag":85,"props":6759,"children":6760},{"class":87,"line":1268},[6761],{"type":51,"tag":85,"props":6762,"children":6763},{"emptyLinePlaceholder":128},[6764],{"type":57,"value":131},{"type":51,"tag":85,"props":6766,"children":6767},{"class":87,"line":1321},[6768],{"type":51,"tag":85,"props":6769,"children":6770},{"style":92},[6771],{"type":57,"value":6772},"# List forwarding addresses\n",{"type":51,"tag":85,"props":6774,"children":6775},{"class":87,"line":1329},[6776,6780,6785],{"type":51,"tag":85,"props":6777,"children":6778},{"style":102},[6779],{"type":57,"value":3133},{"type":51,"tag":85,"props":6781,"children":6782},{"style":108},[6783],{"type":57,"value":6784}," http:\u002F\u002Flocalhost:4002\u002Fgmail\u002Fv1\u002Fusers\u002Fme\u002Fsettings\u002FforwardingAddresses",{"type":51,"tag":85,"props":6786,"children":6787},{"style":181},[6788],{"type":57,"value":3356},{"type":51,"tag":85,"props":6790,"children":6791},{"class":87,"line":1992},[6792,6796,6800,6804,6808],{"type":51,"tag":85,"props":6793,"children":6794},{"style":108},[6795],{"type":57,"value":3364},{"type":51,"tag":85,"props":6797,"children":6798},{"style":175},[6799],{"type":57,"value":2138},{"type":51,"tag":85,"props":6801,"children":6802},{"style":108},[6803],{"type":57,"value":4060},{"type":51,"tag":85,"props":6805,"children":6806},{"style":181},[6807],{"type":57,"value":4065},{"type":51,"tag":85,"props":6809,"children":6810},{"style":175},[6811],{"type":57,"value":2148},{"type":51,"tag":85,"props":6813,"children":6814},{"class":87,"line":2010},[6815],{"type":51,"tag":85,"props":6816,"children":6817},{"emptyLinePlaceholder":128},[6818],{"type":57,"value":131},{"type":51,"tag":85,"props":6820,"children":6821},{"class":87,"line":2027},[6822],{"type":51,"tag":85,"props":6823,"children":6824},{"style":92},[6825],{"type":57,"value":6826},"# List send-as aliases\n",{"type":51,"tag":85,"props":6828,"children":6829},{"class":87,"line":2040},[6830,6834,6839],{"type":51,"tag":85,"props":6831,"children":6832},{"style":102},[6833],{"type":57,"value":3133},{"type":51,"tag":85,"props":6835,"children":6836},{"style":108},[6837],{"type":57,"value":6838}," http:\u002F\u002Flocalhost:4002\u002Fgmail\u002Fv1\u002Fusers\u002Fme\u002Fsettings\u002FsendAs",{"type":51,"tag":85,"props":6840,"children":6841},{"style":181},[6842],{"type":57,"value":3356},{"type":51,"tag":85,"props":6844,"children":6845},{"class":87,"line":2054},[6846,6850,6854,6858,6862],{"type":51,"tag":85,"props":6847,"children":6848},{"style":108},[6849],{"type":57,"value":3364},{"type":51,"tag":85,"props":6851,"children":6852},{"style":175},[6853],{"type":57,"value":2138},{"type":51,"tag":85,"props":6855,"children":6856},{"style":108},[6857],{"type":57,"value":4060},{"type":51,"tag":85,"props":6859,"children":6860},{"style":181},[6861],{"type":57,"value":4065},{"type":51,"tag":85,"props":6863,"children":6864},{"style":175},[6865],{"type":57,"value":2148},{"type":51,"tag":66,"props":6867,"children":6869},{"id":6868},"google-calendar-api",[6870],{"type":57,"value":6871},"Google Calendar API",{"type":51,"tag":324,"props":6873,"children":6875},{"id":6874},"calendar-list",[6876],{"type":57,"value":6877},"Calendar List",{"type":51,"tag":73,"props":6879,"children":6881},{"className":75,"code":6880,"language":77,"meta":78,"style":78},"curl http:\u002F\u002Flocalhost:4002\u002Fcalendar\u002Fv3\u002Fusers\u002Fme\u002FcalendarList \\\n  -H \"Authorization: Bearer $TOKEN\"\n",[6882],{"type":51,"tag":81,"props":6883,"children":6884},{"__ignoreMap":78},[6885,6901],{"type":51,"tag":85,"props":6886,"children":6887},{"class":87,"line":88},[6888,6892,6897],{"type":51,"tag":85,"props":6889,"children":6890},{"style":102},[6891],{"type":57,"value":3133},{"type":51,"tag":85,"props":6893,"children":6894},{"style":108},[6895],{"type":57,"value":6896}," http:\u002F\u002Flocalhost:4002\u002Fcalendar\u002Fv3\u002Fusers\u002Fme\u002FcalendarList",{"type":51,"tag":85,"props":6898,"children":6899},{"style":181},[6900],{"type":57,"value":3356},{"type":51,"tag":85,"props":6902,"children":6903},{"class":87,"line":98},[6904,6908,6912,6916,6920],{"type":51,"tag":85,"props":6905,"children":6906},{"style":108},[6907],{"type":57,"value":3364},{"type":51,"tag":85,"props":6909,"children":6910},{"style":175},[6911],{"type":57,"value":2138},{"type":51,"tag":85,"props":6913,"children":6914},{"style":108},[6915],{"type":57,"value":4060},{"type":51,"tag":85,"props":6917,"children":6918},{"style":181},[6919],{"type":57,"value":4065},{"type":51,"tag":85,"props":6921,"children":6922},{"style":175},[6923],{"type":57,"value":2148},{"type":51,"tag":324,"props":6925,"children":6927},{"id":6926},"events",[6928],{"type":57,"value":6929},"Events",{"type":51,"tag":73,"props":6931,"children":6933},{"className":75,"code":6932,"language":77,"meta":78,"style":78},"# List events (filter by time range, search, order)\ncurl \"http:\u002F\u002Flocalhost:4002\u002Fcalendar\u002Fv3\u002Fcalendars\u002Fprimary\u002Fevents?\\\ntimeMin=2025-01-01T00:00:00Z&timeMax=2025-12-31T23:59:59Z&maxResults=50&orderBy=startTime\" \\\n  -H \"Authorization: Bearer $TOKEN\"\n\n# Create event\ncurl -X POST http:\u002F\u002Flocalhost:4002\u002Fcalendar\u002Fv3\u002Fcalendars\u002Fprimary\u002Fevents \\\n  -H \"Authorization: Bearer $TOKEN\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\"summary\": \"Team Meeting\", \"start\": {\"dateTime\": \"2025-01-10T14:00:00Z\"}, \"end\": {\"dateTime\": \"2025-01-10T15:00:00Z\"}, \"attendees\": [{\"email\": \"dev@example.com\"}]}'\n\n# Delete event\ncurl -X DELETE http:\u002F\u002Flocalhost:4002\u002Fcalendar\u002Fv3\u002Fcalendars\u002Fprimary\u002Fevents\u002Fevt_kickoff \\\n  -H \"Authorization: Bearer $TOKEN\"\n",[6934],{"type":51,"tag":81,"props":6935,"children":6936},{"__ignoreMap":78},[6937,6945,6965,6981,7004,7011,7019,7043,7070,7093,7113,7120,7128,7152],{"type":51,"tag":85,"props":6938,"children":6939},{"class":87,"line":88},[6940],{"type":51,"tag":85,"props":6941,"children":6942},{"style":92},[6943],{"type":57,"value":6944},"# List events (filter by time range, search, order)\n",{"type":51,"tag":85,"props":6946,"children":6947},{"class":87,"line":98},[6948,6952,6956,6961],{"type":51,"tag":85,"props":6949,"children":6950},{"style":102},[6951],{"type":57,"value":3133},{"type":51,"tag":85,"props":6953,"children":6954},{"style":175},[6955],{"type":57,"value":2138},{"type":51,"tag":85,"props":6957,"children":6958},{"style":108},[6959],{"type":57,"value":6960},"http:\u002F\u002Flocalhost:4002\u002Fcalendar\u002Fv3\u002Fcalendars\u002Fprimary\u002Fevents?",{"type":51,"tag":85,"props":6962,"children":6963},{"style":181},[6964],{"type":57,"value":3223},{"type":51,"tag":85,"props":6966,"children":6967},{"class":87,"line":124},[6968,6973,6977],{"type":51,"tag":85,"props":6969,"children":6970},{"style":108},[6971],{"type":57,"value":6972},"timeMin=2025-01-01T00:00:00Z&timeMax=2025-12-31T23:59:59Z&maxResults=50&orderBy=startTime",{"type":51,"tag":85,"props":6974,"children":6975},{"style":175},[6976],{"type":57,"value":3378},{"type":51,"tag":85,"props":6978,"children":6979},{"style":181},[6980],{"type":57,"value":3356},{"type":51,"tag":85,"props":6982,"children":6983},{"class":87,"line":134},[6984,6988,6992,6996,7000],{"type":51,"tag":85,"props":6985,"children":6986},{"style":108},[6987],{"type":57,"value":3364},{"type":51,"tag":85,"props":6989,"children":6990},{"style":175},[6991],{"type":57,"value":2138},{"type":51,"tag":85,"props":6993,"children":6994},{"style":108},[6995],{"type":57,"value":4060},{"type":51,"tag":85,"props":6997,"children":6998},{"style":181},[6999],{"type":57,"value":4065},{"type":51,"tag":85,"props":7001,"children":7002},{"style":175},[7003],{"type":57,"value":2148},{"type":51,"tag":85,"props":7005,"children":7006},{"class":87,"line":143},[7007],{"type":51,"tag":85,"props":7008,"children":7009},{"emptyLinePlaceholder":128},[7010],{"type":57,"value":131},{"type":51,"tag":85,"props":7012,"children":7013},{"class":87,"line":714},[7014],{"type":51,"tag":85,"props":7015,"children":7016},{"style":92},[7017],{"type":57,"value":7018},"# Create event\n",{"type":51,"tag":85,"props":7020,"children":7021},{"class":87,"line":753},[7022,7026,7030,7034,7039],{"type":51,"tag":85,"props":7023,"children":7024},{"style":102},[7025],{"type":57,"value":3133},{"type":51,"tag":85,"props":7027,"children":7028},{"style":108},[7029],{"type":57,"value":3341},{"type":51,"tag":85,"props":7031,"children":7032},{"style":108},[7033],{"type":57,"value":3346},{"type":51,"tag":85,"props":7035,"children":7036},{"style":108},[7037],{"type":57,"value":7038}," http:\u002F\u002Flocalhost:4002\u002Fcalendar\u002Fv3\u002Fcalendars\u002Fprimary\u002Fevents",{"type":51,"tag":85,"props":7040,"children":7041},{"style":181},[7042],{"type":57,"value":3356},{"type":51,"tag":85,"props":7044,"children":7045},{"class":87,"line":791},[7046,7050,7054,7058,7062,7066],{"type":51,"tag":85,"props":7047,"children":7048},{"style":108},[7049],{"type":57,"value":3364},{"type":51,"tag":85,"props":7051,"children":7052},{"style":175},[7053],{"type":57,"value":2138},{"type":51,"tag":85,"props":7055,"children":7056},{"style":108},[7057],{"type":57,"value":4060},{"type":51,"tag":85,"props":7059,"children":7060},{"style":181},[7061],{"type":57,"value":4065},{"type":51,"tag":85,"props":7063,"children":7064},{"style":175},[7065],{"type":57,"value":3378},{"type":51,"tag":85,"props":7067,"children":7068},{"style":181},[7069],{"type":57,"value":3356},{"type":51,"tag":85,"props":7071,"children":7072},{"class":87,"line":821},[7073,7077,7081,7085,7089],{"type":51,"tag":85,"props":7074,"children":7075},{"style":108},[7076],{"type":57,"value":3364},{"type":51,"tag":85,"props":7078,"children":7079},{"style":175},[7080],{"type":57,"value":2138},{"type":51,"tag":85,"props":7082,"children":7083},{"style":108},[7084],{"type":57,"value":4213},{"type":51,"tag":85,"props":7086,"children":7087},{"style":175},[7088],{"type":57,"value":3378},{"type":51,"tag":85,"props":7090,"children":7091},{"style":181},[7092],{"type":57,"value":3356},{"type":51,"tag":85,"props":7094,"children":7095},{"class":87,"line":834},[7096,7100,7104,7109],{"type":51,"tag":85,"props":7097,"children":7098},{"style":108},[7099],{"type":57,"value":3390},{"type":51,"tag":85,"props":7101,"children":7102},{"style":175},[7103],{"type":57,"value":199},{"type":51,"tag":85,"props":7105,"children":7106},{"style":108},[7107],{"type":57,"value":7108},"{\"summary\": \"Team Meeting\", \"start\": {\"dateTime\": \"2025-01-10T14:00:00Z\"}, \"end\": {\"dateTime\": \"2025-01-10T15:00:00Z\"}, \"attendees\": [{\"email\": \"dev@example.com\"}]}",{"type":51,"tag":85,"props":7110,"children":7111},{"style":175},[7112],{"type":57,"value":209},{"type":51,"tag":85,"props":7114,"children":7115},{"class":87,"line":842},[7116],{"type":51,"tag":85,"props":7117,"children":7118},{"emptyLinePlaceholder":128},[7119],{"type":57,"value":131},{"type":51,"tag":85,"props":7121,"children":7122},{"class":87,"line":1243},[7123],{"type":51,"tag":85,"props":7124,"children":7125},{"style":92},[7126],{"type":57,"value":7127},"# Delete event\n",{"type":51,"tag":85,"props":7129,"children":7130},{"class":87,"line":1251},[7131,7135,7139,7143,7148],{"type":51,"tag":85,"props":7132,"children":7133},{"style":102},[7134],{"type":57,"value":3133},{"type":51,"tag":85,"props":7136,"children":7137},{"style":108},[7138],{"type":57,"value":3341},{"type":51,"tag":85,"props":7140,"children":7141},{"style":108},[7142],{"type":57,"value":4708},{"type":51,"tag":85,"props":7144,"children":7145},{"style":108},[7146],{"type":57,"value":7147}," http:\u002F\u002Flocalhost:4002\u002Fcalendar\u002Fv3\u002Fcalendars\u002Fprimary\u002Fevents\u002Fevt_kickoff",{"type":51,"tag":85,"props":7149,"children":7150},{"style":181},[7151],{"type":57,"value":3356},{"type":51,"tag":85,"props":7153,"children":7154},{"class":87,"line":1268},[7155,7159,7163,7167,7171],{"type":51,"tag":85,"props":7156,"children":7157},{"style":108},[7158],{"type":57,"value":3364},{"type":51,"tag":85,"props":7160,"children":7161},{"style":175},[7162],{"type":57,"value":2138},{"type":51,"tag":85,"props":7164,"children":7165},{"style":108},[7166],{"type":57,"value":4060},{"type":51,"tag":85,"props":7168,"children":7169},{"style":181},[7170],{"type":57,"value":4065},{"type":51,"tag":85,"props":7172,"children":7173},{"style":175},[7174],{"type":57,"value":2148},{"type":51,"tag":324,"props":7176,"children":7178},{"id":7177},"freebusy",[7179],{"type":57,"value":7180},"FreeBusy",{"type":51,"tag":73,"props":7182,"children":7184},{"className":75,"code":7183,"language":77,"meta":78,"style":78},"curl -X POST http:\u002F\u002Flocalhost:4002\u002Fcalendar\u002Fv3\u002FfreeBusy \\\n  -H \"Authorization: Bearer $TOKEN\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\"timeMin\": \"2025-01-10T00:00:00Z\", \"timeMax\": \"2025-01-10T23:59:59Z\", \"items\": [{\"id\": \"primary\"}]}'\n",[7185],{"type":51,"tag":81,"props":7186,"children":7187},{"__ignoreMap":78},[7188,7212,7239,7262],{"type":51,"tag":85,"props":7189,"children":7190},{"class":87,"line":88},[7191,7195,7199,7203,7208],{"type":51,"tag":85,"props":7192,"children":7193},{"style":102},[7194],{"type":57,"value":3133},{"type":51,"tag":85,"props":7196,"children":7197},{"style":108},[7198],{"type":57,"value":3341},{"type":51,"tag":85,"props":7200,"children":7201},{"style":108},[7202],{"type":57,"value":3346},{"type":51,"tag":85,"props":7204,"children":7205},{"style":108},[7206],{"type":57,"value":7207}," http:\u002F\u002Flocalhost:4002\u002Fcalendar\u002Fv3\u002FfreeBusy",{"type":51,"tag":85,"props":7209,"children":7210},{"style":181},[7211],{"type":57,"value":3356},{"type":51,"tag":85,"props":7213,"children":7214},{"class":87,"line":98},[7215,7219,7223,7227,7231,7235],{"type":51,"tag":85,"props":7216,"children":7217},{"style":108},[7218],{"type":57,"value":3364},{"type":51,"tag":85,"props":7220,"children":7221},{"style":175},[7222],{"type":57,"value":2138},{"type":51,"tag":85,"props":7224,"children":7225},{"style":108},[7226],{"type":57,"value":4060},{"type":51,"tag":85,"props":7228,"children":7229},{"style":181},[7230],{"type":57,"value":4065},{"type":51,"tag":85,"props":7232,"children":7233},{"style":175},[7234],{"type":57,"value":3378},{"type":51,"tag":85,"props":7236,"children":7237},{"style":181},[7238],{"type":57,"value":3356},{"type":51,"tag":85,"props":7240,"children":7241},{"class":87,"line":124},[7242,7246,7250,7254,7258],{"type":51,"tag":85,"props":7243,"children":7244},{"style":108},[7245],{"type":57,"value":3364},{"type":51,"tag":85,"props":7247,"children":7248},{"style":175},[7249],{"type":57,"value":2138},{"type":51,"tag":85,"props":7251,"children":7252},{"style":108},[7253],{"type":57,"value":4213},{"type":51,"tag":85,"props":7255,"children":7256},{"style":175},[7257],{"type":57,"value":3378},{"type":51,"tag":85,"props":7259,"children":7260},{"style":181},[7261],{"type":57,"value":3356},{"type":51,"tag":85,"props":7263,"children":7264},{"class":87,"line":134},[7265,7269,7273,7278],{"type":51,"tag":85,"props":7266,"children":7267},{"style":108},[7268],{"type":57,"value":3390},{"type":51,"tag":85,"props":7270,"children":7271},{"style":175},[7272],{"type":57,"value":199},{"type":51,"tag":85,"props":7274,"children":7275},{"style":108},[7276],{"type":57,"value":7277},"{\"timeMin\": \"2025-01-10T00:00:00Z\", \"timeMax\": \"2025-01-10T23:59:59Z\", \"items\": [{\"id\": \"primary\"}]}",{"type":51,"tag":85,"props":7279,"children":7280},{"style":175},[7281],{"type":57,"value":209},{"type":51,"tag":66,"props":7283,"children":7285},{"id":7284},"google-drive-api",[7286],{"type":57,"value":7287},"Google Drive API",{"type":51,"tag":324,"props":7289,"children":7291},{"id":7290},"files",[7292],{"type":57,"value":7293},"Files",{"type":51,"tag":73,"props":7295,"children":7297},{"className":75,"code":7296,"language":77,"meta":78,"style":78},"# List files (with query filter, pagination, ordering)\ncurl \"http:\u002F\u002Flocalhost:4002\u002Fdrive\u002Fv3\u002Ffiles?q='root'+in+parents&pageSize=20\" \\\n  -H \"Authorization: Bearer $TOKEN\"\n\n# Create file (JSON metadata)\ncurl -X POST http:\u002F\u002Flocalhost:4002\u002Fdrive\u002Fv3\u002Ffiles \\\n  -H \"Authorization: Bearer $TOKEN\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\"name\": \"notes.txt\", \"mimeType\": \"text\u002Fplain\", \"parents\": [\"root\"]}'\n\n# Create file with content (multipart\u002Frelated upload)\ncurl -X POST http:\u002F\u002Flocalhost:4002\u002Fupload\u002Fdrive\u002Fv3\u002Ffiles \\\n  -H \"Authorization: Bearer $TOKEN\" \\\n  -H \"Content-Type: multipart\u002Frelated; boundary=boundary\" \\\n  --data-binary $'--boundary\\r\\nContent-Type: application\u002Fjson\\r\\n\\r\\n{\"name\":\"data.csv\",\"mimeType\":\"text\u002Fcsv\"}\\r\\n--boundary\\r\\nContent-Type: text\u002Fcsv\\r\\n\\r\\na,b,c\\n1,2,3\\r\\n--boundary--'\n\n# Get file metadata\ncurl http:\u002F\u002Flocalhost:4002\u002Fdrive\u002Fv3\u002Ffiles\u002Fdrv_readme \\\n  -H \"Authorization: Bearer $TOKEN\"\n\n# Download file content\ncurl \"http:\u002F\u002Flocalhost:4002\u002Fdrive\u002Fv3\u002Ffiles\u002Fdrv_readme?alt=media\" \\\n  -H \"Authorization: Bearer $TOKEN\"\n\n# Update file (PATCH or PUT; move parents with query params)\ncurl -X PATCH \"http:\u002F\u002Flocalhost:4002\u002Fdrive\u002Fv3\u002Ffiles\u002Fdrv_readme?addParents=folder_id&removeParents=root\" \\\n  -H \"Authorization: Bearer $TOKEN\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\"name\": \"README-updated.md\"}'\n",[7298],{"type":51,"tag":81,"props":7299,"children":7300},{"__ignoreMap":78},[7301,7309,7333,7356,7363,7371,7395,7422,7445,7465,7472,7480,7504,7531,7555,7641,7648,7656,7672,7695,7702,7710,7734,7757,7764,7772,7804,7831,7854],{"type":51,"tag":85,"props":7302,"children":7303},{"class":87,"line":88},[7304],{"type":51,"tag":85,"props":7305,"children":7306},{"style":92},[7307],{"type":57,"value":7308},"# List files (with query filter, pagination, ordering)\n",{"type":51,"tag":85,"props":7310,"children":7311},{"class":87,"line":98},[7312,7316,7320,7325,7329],{"type":51,"tag":85,"props":7313,"children":7314},{"style":102},[7315],{"type":57,"value":3133},{"type":51,"tag":85,"props":7317,"children":7318},{"style":175},[7319],{"type":57,"value":2138},{"type":51,"tag":85,"props":7321,"children":7322},{"style":108},[7323],{"type":57,"value":7324},"http:\u002F\u002Flocalhost:4002\u002Fdrive\u002Fv3\u002Ffiles?q='root'+in+parents&pageSize=20",{"type":51,"tag":85,"props":7326,"children":7327},{"style":175},[7328],{"type":57,"value":3378},{"type":51,"tag":85,"props":7330,"children":7331},{"style":181},[7332],{"type":57,"value":3356},{"type":51,"tag":85,"props":7334,"children":7335},{"class":87,"line":124},[7336,7340,7344,7348,7352],{"type":51,"tag":85,"props":7337,"children":7338},{"style":108},[7339],{"type":57,"value":3364},{"type":51,"tag":85,"props":7341,"children":7342},{"style":175},[7343],{"type":57,"value":2138},{"type":51,"tag":85,"props":7345,"children":7346},{"style":108},[7347],{"type":57,"value":4060},{"type":51,"tag":85,"props":7349,"children":7350},{"style":181},[7351],{"type":57,"value":4065},{"type":51,"tag":85,"props":7353,"children":7354},{"style":175},[7355],{"type":57,"value":2148},{"type":51,"tag":85,"props":7357,"children":7358},{"class":87,"line":134},[7359],{"type":51,"tag":85,"props":7360,"children":7361},{"emptyLinePlaceholder":128},[7362],{"type":57,"value":131},{"type":51,"tag":85,"props":7364,"children":7365},{"class":87,"line":143},[7366],{"type":51,"tag":85,"props":7367,"children":7368},{"style":92},[7369],{"type":57,"value":7370},"# Create file (JSON metadata)\n",{"type":51,"tag":85,"props":7372,"children":7373},{"class":87,"line":714},[7374,7378,7382,7386,7391],{"type":51,"tag":85,"props":7375,"children":7376},{"style":102},[7377],{"type":57,"value":3133},{"type":51,"tag":85,"props":7379,"children":7380},{"style":108},[7381],{"type":57,"value":3341},{"type":51,"tag":85,"props":7383,"children":7384},{"style":108},[7385],{"type":57,"value":3346},{"type":51,"tag":85,"props":7387,"children":7388},{"style":108},[7389],{"type":57,"value":7390}," http:\u002F\u002Flocalhost:4002\u002Fdrive\u002Fv3\u002Ffiles",{"type":51,"tag":85,"props":7392,"children":7393},{"style":181},[7394],{"type":57,"value":3356},{"type":51,"tag":85,"props":7396,"children":7397},{"class":87,"line":753},[7398,7402,7406,7410,7414,7418],{"type":51,"tag":85,"props":7399,"children":7400},{"style":108},[7401],{"type":57,"value":3364},{"type":51,"tag":85,"props":7403,"children":7404},{"style":175},[7405],{"type":57,"value":2138},{"type":51,"tag":85,"props":7407,"children":7408},{"style":108},[7409],{"type":57,"value":4060},{"type":51,"tag":85,"props":7411,"children":7412},{"style":181},[7413],{"type":57,"value":4065},{"type":51,"tag":85,"props":7415,"children":7416},{"style":175},[7417],{"type":57,"value":3378},{"type":51,"tag":85,"props":7419,"children":7420},{"style":181},[7421],{"type":57,"value":3356},{"type":51,"tag":85,"props":7423,"children":7424},{"class":87,"line":791},[7425,7429,7433,7437,7441],{"type":51,"tag":85,"props":7426,"children":7427},{"style":108},[7428],{"type":57,"value":3364},{"type":51,"tag":85,"props":7430,"children":7431},{"style":175},[7432],{"type":57,"value":2138},{"type":51,"tag":85,"props":7434,"children":7435},{"style":108},[7436],{"type":57,"value":4213},{"type":51,"tag":85,"props":7438,"children":7439},{"style":175},[7440],{"type":57,"value":3378},{"type":51,"tag":85,"props":7442,"children":7443},{"style":181},[7444],{"type":57,"value":3356},{"type":51,"tag":85,"props":7446,"children":7447},{"class":87,"line":821},[7448,7452,7456,7461],{"type":51,"tag":85,"props":7449,"children":7450},{"style":108},[7451],{"type":57,"value":3390},{"type":51,"tag":85,"props":7453,"children":7454},{"style":175},[7455],{"type":57,"value":199},{"type":51,"tag":85,"props":7457,"children":7458},{"style":108},[7459],{"type":57,"value":7460},"{\"name\": \"notes.txt\", \"mimeType\": \"text\u002Fplain\", \"parents\": [\"root\"]}",{"type":51,"tag":85,"props":7462,"children":7463},{"style":175},[7464],{"type":57,"value":209},{"type":51,"tag":85,"props":7466,"children":7467},{"class":87,"line":834},[7468],{"type":51,"tag":85,"props":7469,"children":7470},{"emptyLinePlaceholder":128},[7471],{"type":57,"value":131},{"type":51,"tag":85,"props":7473,"children":7474},{"class":87,"line":842},[7475],{"type":51,"tag":85,"props":7476,"children":7477},{"style":92},[7478],{"type":57,"value":7479},"# Create file with content (multipart\u002Frelated upload)\n",{"type":51,"tag":85,"props":7481,"children":7482},{"class":87,"line":1243},[7483,7487,7491,7495,7500],{"type":51,"tag":85,"props":7484,"children":7485},{"style":102},[7486],{"type":57,"value":3133},{"type":51,"tag":85,"props":7488,"children":7489},{"style":108},[7490],{"type":57,"value":3341},{"type":51,"tag":85,"props":7492,"children":7493},{"style":108},[7494],{"type":57,"value":3346},{"type":51,"tag":85,"props":7496,"children":7497},{"style":108},[7498],{"type":57,"value":7499}," http:\u002F\u002Flocalhost:4002\u002Fupload\u002Fdrive\u002Fv3\u002Ffiles",{"type":51,"tag":85,"props":7501,"children":7502},{"style":181},[7503],{"type":57,"value":3356},{"type":51,"tag":85,"props":7505,"children":7506},{"class":87,"line":1251},[7507,7511,7515,7519,7523,7527],{"type":51,"tag":85,"props":7508,"children":7509},{"style":108},[7510],{"type":57,"value":3364},{"type":51,"tag":85,"props":7512,"children":7513},{"style":175},[7514],{"type":57,"value":2138},{"type":51,"tag":85,"props":7516,"children":7517},{"style":108},[7518],{"type":57,"value":4060},{"type":51,"tag":85,"props":7520,"children":7521},{"style":181},[7522],{"type":57,"value":4065},{"type":51,"tag":85,"props":7524,"children":7525},{"style":175},[7526],{"type":57,"value":3378},{"type":51,"tag":85,"props":7528,"children":7529},{"style":181},[7530],{"type":57,"value":3356},{"type":51,"tag":85,"props":7532,"children":7533},{"class":87,"line":1268},[7534,7538,7542,7547,7551],{"type":51,"tag":85,"props":7535,"children":7536},{"style":108},[7537],{"type":57,"value":3364},{"type":51,"tag":85,"props":7539,"children":7540},{"style":175},[7541],{"type":57,"value":2138},{"type":51,"tag":85,"props":7543,"children":7544},{"style":108},[7545],{"type":57,"value":7546},"Content-Type: multipart\u002Frelated; boundary=boundary",{"type":51,"tag":85,"props":7548,"children":7549},{"style":175},[7550],{"type":57,"value":3378},{"type":51,"tag":85,"props":7552,"children":7553},{"style":181},[7554],{"type":57,"value":3356},{"type":51,"tag":85,"props":7556,"children":7557},{"class":87,"line":1321},[7558,7563,7568,7573,7578,7582,7587,7592,7596,7600,7604,7609,7613,7618,7623,7628,7632,7637],{"type":51,"tag":85,"props":7559,"children":7560},{"style":108},[7561],{"type":57,"value":7562},"  --data-binary",{"type":51,"tag":85,"props":7564,"children":7565},{"style":175},[7566],{"type":57,"value":7567}," $'",{"type":51,"tag":85,"props":7569,"children":7570},{"style":108},[7571],{"type":57,"value":7572},"--boundary",{"type":51,"tag":85,"props":7574,"children":7575},{"style":181},[7576],{"type":57,"value":7577},"\\r\\n",{"type":51,"tag":85,"props":7579,"children":7580},{"style":108},[7581],{"type":57,"value":4213},{"type":51,"tag":85,"props":7583,"children":7584},{"style":181},[7585],{"type":57,"value":7586},"\\r\\n\\r\\n",{"type":51,"tag":85,"props":7588,"children":7589},{"style":108},[7590],{"type":57,"value":7591},"{\"name\":\"data.csv\",\"mimeType\":\"text\u002Fcsv\"}",{"type":51,"tag":85,"props":7593,"children":7594},{"style":181},[7595],{"type":57,"value":7577},{"type":51,"tag":85,"props":7597,"children":7598},{"style":108},[7599],{"type":57,"value":7572},{"type":51,"tag":85,"props":7601,"children":7602},{"style":181},[7603],{"type":57,"value":7577},{"type":51,"tag":85,"props":7605,"children":7606},{"style":108},[7607],{"type":57,"value":7608},"Content-Type: text\u002Fcsv",{"type":51,"tag":85,"props":7610,"children":7611},{"style":181},[7612],{"type":57,"value":7586},{"type":51,"tag":85,"props":7614,"children":7615},{"style":108},[7616],{"type":57,"value":7617},"a,b,c",{"type":51,"tag":85,"props":7619,"children":7620},{"style":181},[7621],{"type":57,"value":7622},"\\n",{"type":51,"tag":85,"props":7624,"children":7625},{"style":108},[7626],{"type":57,"value":7627},"1,2,3",{"type":51,"tag":85,"props":7629,"children":7630},{"style":181},[7631],{"type":57,"value":7577},{"type":51,"tag":85,"props":7633,"children":7634},{"style":108},[7635],{"type":57,"value":7636},"--boundary--",{"type":51,"tag":85,"props":7638,"children":7639},{"style":175},[7640],{"type":57,"value":209},{"type":51,"tag":85,"props":7642,"children":7643},{"class":87,"line":1329},[7644],{"type":51,"tag":85,"props":7645,"children":7646},{"emptyLinePlaceholder":128},[7647],{"type":57,"value":131},{"type":51,"tag":85,"props":7649,"children":7650},{"class":87,"line":1992},[7651],{"type":51,"tag":85,"props":7652,"children":7653},{"style":92},[7654],{"type":57,"value":7655},"# Get file metadata\n",{"type":51,"tag":85,"props":7657,"children":7658},{"class":87,"line":2010},[7659,7663,7668],{"type":51,"tag":85,"props":7660,"children":7661},{"style":102},[7662],{"type":57,"value":3133},{"type":51,"tag":85,"props":7664,"children":7665},{"style":108},[7666],{"type":57,"value":7667}," http:\u002F\u002Flocalhost:4002\u002Fdrive\u002Fv3\u002Ffiles\u002Fdrv_readme",{"type":51,"tag":85,"props":7669,"children":7670},{"style":181},[7671],{"type":57,"value":3356},{"type":51,"tag":85,"props":7673,"children":7674},{"class":87,"line":2027},[7675,7679,7683,7687,7691],{"type":51,"tag":85,"props":7676,"children":7677},{"style":108},[7678],{"type":57,"value":3364},{"type":51,"tag":85,"props":7680,"children":7681},{"style":175},[7682],{"type":57,"value":2138},{"type":51,"tag":85,"props":7684,"children":7685},{"style":108},[7686],{"type":57,"value":4060},{"type":51,"tag":85,"props":7688,"children":7689},{"style":181},[7690],{"type":57,"value":4065},{"type":51,"tag":85,"props":7692,"children":7693},{"style":175},[7694],{"type":57,"value":2148},{"type":51,"tag":85,"props":7696,"children":7697},{"class":87,"line":2040},[7698],{"type":51,"tag":85,"props":7699,"children":7700},{"emptyLinePlaceholder":128},[7701],{"type":57,"value":131},{"type":51,"tag":85,"props":7703,"children":7704},{"class":87,"line":2054},[7705],{"type":51,"tag":85,"props":7706,"children":7707},{"style":92},[7708],{"type":57,"value":7709},"# Download file content\n",{"type":51,"tag":85,"props":7711,"children":7712},{"class":87,"line":2067},[7713,7717,7721,7726,7730],{"type":51,"tag":85,"props":7714,"children":7715},{"style":102},[7716],{"type":57,"value":3133},{"type":51,"tag":85,"props":7718,"children":7719},{"style":175},[7720],{"type":57,"value":2138},{"type":51,"tag":85,"props":7722,"children":7723},{"style":108},[7724],{"type":57,"value":7725},"http:\u002F\u002Flocalhost:4002\u002Fdrive\u002Fv3\u002Ffiles\u002Fdrv_readme?alt=media",{"type":51,"tag":85,"props":7727,"children":7728},{"style":175},[7729],{"type":57,"value":3378},{"type":51,"tag":85,"props":7731,"children":7732},{"style":181},[7733],{"type":57,"value":3356},{"type":51,"tag":85,"props":7735,"children":7736},{"class":87,"line":2089},[7737,7741,7745,7749,7753],{"type":51,"tag":85,"props":7738,"children":7739},{"style":108},[7740],{"type":57,"value":3364},{"type":51,"tag":85,"props":7742,"children":7743},{"style":175},[7744],{"type":57,"value":2138},{"type":51,"tag":85,"props":7746,"children":7747},{"style":108},[7748],{"type":57,"value":4060},{"type":51,"tag":85,"props":7750,"children":7751},{"style":181},[7752],{"type":57,"value":4065},{"type":51,"tag":85,"props":7754,"children":7755},{"style":175},[7756],{"type":57,"value":2148},{"type":51,"tag":85,"props":7758,"children":7759},{"class":87,"line":2106},[7760],{"type":51,"tag":85,"props":7761,"children":7762},{"emptyLinePlaceholder":128},[7763],{"type":57,"value":131},{"type":51,"tag":85,"props":7765,"children":7766},{"class":87,"line":2123},[7767],{"type":51,"tag":85,"props":7768,"children":7769},{"style":92},[7770],{"type":57,"value":7771},"# Update file (PATCH or PUT; move parents with query params)\n",{"type":51,"tag":85,"props":7773,"children":7774},{"class":87,"line":2151},[7775,7779,7783,7787,7791,7796,7800],{"type":51,"tag":85,"props":7776,"children":7777},{"style":102},[7778],{"type":57,"value":3133},{"type":51,"tag":85,"props":7780,"children":7781},{"style":108},[7782],{"type":57,"value":3341},{"type":51,"tag":85,"props":7784,"children":7785},{"style":108},[7786],{"type":57,"value":6148},{"type":51,"tag":85,"props":7788,"children":7789},{"style":175},[7790],{"type":57,"value":2138},{"type":51,"tag":85,"props":7792,"children":7793},{"style":108},[7794],{"type":57,"value":7795},"http:\u002F\u002Flocalhost:4002\u002Fdrive\u002Fv3\u002Ffiles\u002Fdrv_readme?addParents=folder_id&removeParents=root",{"type":51,"tag":85,"props":7797,"children":7798},{"style":175},[7799],{"type":57,"value":3378},{"type":51,"tag":85,"props":7801,"children":7802},{"style":181},[7803],{"type":57,"value":3356},{"type":51,"tag":85,"props":7805,"children":7806},{"class":87,"line":2177},[7807,7811,7815,7819,7823,7827],{"type":51,"tag":85,"props":7808,"children":7809},{"style":108},[7810],{"type":57,"value":3364},{"type":51,"tag":85,"props":7812,"children":7813},{"style":175},[7814],{"type":57,"value":2138},{"type":51,"tag":85,"props":7816,"children":7817},{"style":108},[7818],{"type":57,"value":4060},{"type":51,"tag":85,"props":7820,"children":7821},{"style":181},[7822],{"type":57,"value":4065},{"type":51,"tag":85,"props":7824,"children":7825},{"style":175},[7826],{"type":57,"value":3378},{"type":51,"tag":85,"props":7828,"children":7829},{"style":181},[7830],{"type":57,"value":3356},{"type":51,"tag":85,"props":7832,"children":7833},{"class":87,"line":2190},[7834,7838,7842,7846,7850],{"type":51,"tag":85,"props":7835,"children":7836},{"style":108},[7837],{"type":57,"value":3364},{"type":51,"tag":85,"props":7839,"children":7840},{"style":175},[7841],{"type":57,"value":2138},{"type":51,"tag":85,"props":7843,"children":7844},{"style":108},[7845],{"type":57,"value":4213},{"type":51,"tag":85,"props":7847,"children":7848},{"style":175},[7849],{"type":57,"value":3378},{"type":51,"tag":85,"props":7851,"children":7852},{"style":181},[7853],{"type":57,"value":3356},{"type":51,"tag":85,"props":7855,"children":7856},{"class":87,"line":2211},[7857,7861,7865,7870],{"type":51,"tag":85,"props":7858,"children":7859},{"style":108},[7860],{"type":57,"value":3390},{"type":51,"tag":85,"props":7862,"children":7863},{"style":175},[7864],{"type":57,"value":199},{"type":51,"tag":85,"props":7866,"children":7867},{"style":108},[7868],{"type":57,"value":7869},"{\"name\": \"README-updated.md\"}",{"type":51,"tag":85,"props":7871,"children":7872},{"style":175},[7873],{"type":57,"value":209},{"type":51,"tag":66,"props":7875,"children":7877},{"id":7876},"common-patterns",[7878],{"type":57,"value":7879},"Common Patterns",{"type":51,"tag":324,"props":7881,"children":7883},{"id":7882},"full-authorization-code-flow",[7884],{"type":57,"value":7885},"Full Authorization Code Flow",{"type":51,"tag":73,"props":7887,"children":7889},{"className":75,"code":7888,"language":77,"meta":78,"style":78},"GOOGLE_URL=\"http:\u002F\u002Flocalhost:4002\"\nCLIENT_ID=\"my-client-id.apps.googleusercontent.com\"\nCLIENT_SECRET=\"GOCSPX-secret\"\nREDIRECT_URI=\"http:\u002F\u002Flocalhost:3000\u002Fapi\u002Fauth\u002Fcallback\u002Fgoogle\"\n\n# 1. Open in browser (user picks a seeded account)\n#    $GOOGLE_URL\u002Fo\u002Foauth2\u002Fv2\u002Fauth?client_id=$CLIENT_ID&redirect_uri=$REDIRECT_URI&scope=openid+email+profile&response_type=code&state=abc\n\n# 2. After user selection, emulator redirects to:\n#    $REDIRECT_URI?code=\u003Ccode>&state=abc\n\n# 3. Exchange code for tokens\ncurl -X POST $GOOGLE_URL\u002Foauth2\u002Ftoken \\\n  -H \"Content-Type: application\u002Fx-www-form-urlencoded\" \\\n  -d \"code=\u003Ccode>&client_id=$CLIENT_ID&client_secret=$CLIENT_SECRET&redirect_uri=$REDIRECT_URI&grant_type=authorization_code\"\n\n# 4. Fetch user info with the access_token\ncurl $GOOGLE_URL\u002Foauth2\u002Fv2\u002Fuserinfo \\\n  -H \"Authorization: Bearer \u003Caccess_token>\"\n",[7890],{"type":51,"tag":81,"props":7891,"children":7892},{"__ignoreMap":78},[7893,7917,7942,7967,7991,7998,8006,8014,8021,8029,8037,8044,8052,8080,8103,8153,8160,8168,8187],{"type":51,"tag":85,"props":7894,"children":7895},{"class":87,"line":88},[7896,7900,7904,7908,7913],{"type":51,"tag":85,"props":7897,"children":7898},{"style":181},[7899],{"type":57,"value":866},{"type":51,"tag":85,"props":7901,"children":7902},{"style":175},[7903],{"type":57,"value":235},{"type":51,"tag":85,"props":7905,"children":7906},{"style":175},[7907],{"type":57,"value":3378},{"type":51,"tag":85,"props":7909,"children":7910},{"style":108},[7911],{"type":57,"value":7912},"http:\u002F\u002Flocalhost:4002",{"type":51,"tag":85,"props":7914,"children":7915},{"style":175},[7916],{"type":57,"value":2148},{"type":51,"tag":85,"props":7918,"children":7919},{"class":87,"line":98},[7920,7925,7929,7933,7938],{"type":51,"tag":85,"props":7921,"children":7922},{"style":181},[7923],{"type":57,"value":7924},"CLIENT_ID",{"type":51,"tag":85,"props":7926,"children":7927},{"style":175},[7928],{"type":57,"value":235},{"type":51,"tag":85,"props":7930,"children":7931},{"style":175},[7932],{"type":57,"value":3378},{"type":51,"tag":85,"props":7934,"children":7935},{"style":108},[7936],{"type":57,"value":7937},"my-client-id.apps.googleusercontent.com",{"type":51,"tag":85,"props":7939,"children":7940},{"style":175},[7941],{"type":57,"value":2148},{"type":51,"tag":85,"props":7943,"children":7944},{"class":87,"line":124},[7945,7950,7954,7958,7963],{"type":51,"tag":85,"props":7946,"children":7947},{"style":181},[7948],{"type":57,"value":7949},"CLIENT_SECRET",{"type":51,"tag":85,"props":7951,"children":7952},{"style":175},[7953],{"type":57,"value":235},{"type":51,"tag":85,"props":7955,"children":7956},{"style":175},[7957],{"type":57,"value":3378},{"type":51,"tag":85,"props":7959,"children":7960},{"style":108},[7961],{"type":57,"value":7962},"GOCSPX-secret",{"type":51,"tag":85,"props":7964,"children":7965},{"style":175},[7966],{"type":57,"value":2148},{"type":51,"tag":85,"props":7968,"children":7969},{"class":87,"line":134},[7970,7975,7979,7983,7987],{"type":51,"tag":85,"props":7971,"children":7972},{"style":181},[7973],{"type":57,"value":7974},"REDIRECT_URI",{"type":51,"tag":85,"props":7976,"children":7977},{"style":175},[7978],{"type":57,"value":235},{"type":51,"tag":85,"props":7980,"children":7981},{"style":175},[7982],{"type":57,"value":3378},{"type":51,"tag":85,"props":7984,"children":7985},{"style":108},[7986],{"type":57,"value":810},{"type":51,"tag":85,"props":7988,"children":7989},{"style":175},[7990],{"type":57,"value":2148},{"type":51,"tag":85,"props":7992,"children":7993},{"class":87,"line":143},[7994],{"type":51,"tag":85,"props":7995,"children":7996},{"emptyLinePlaceholder":128},[7997],{"type":57,"value":131},{"type":51,"tag":85,"props":7999,"children":8000},{"class":87,"line":714},[8001],{"type":51,"tag":85,"props":8002,"children":8003},{"style":92},[8004],{"type":57,"value":8005},"# 1. Open in browser (user picks a seeded account)\n",{"type":51,"tag":85,"props":8007,"children":8008},{"class":87,"line":753},[8009],{"type":51,"tag":85,"props":8010,"children":8011},{"style":92},[8012],{"type":57,"value":8013},"#    $GOOGLE_URL\u002Fo\u002Foauth2\u002Fv2\u002Fauth?client_id=$CLIENT_ID&redirect_uri=$REDIRECT_URI&scope=openid+email+profile&response_type=code&state=abc\n",{"type":51,"tag":85,"props":8015,"children":8016},{"class":87,"line":791},[8017],{"type":51,"tag":85,"props":8018,"children":8019},{"emptyLinePlaceholder":128},[8020],{"type":57,"value":131},{"type":51,"tag":85,"props":8022,"children":8023},{"class":87,"line":821},[8024],{"type":51,"tag":85,"props":8025,"children":8026},{"style":92},[8027],{"type":57,"value":8028},"# 2. After user selection, emulator redirects to:\n",{"type":51,"tag":85,"props":8030,"children":8031},{"class":87,"line":834},[8032],{"type":51,"tag":85,"props":8033,"children":8034},{"style":92},[8035],{"type":57,"value":8036},"#    $REDIRECT_URI?code=\u003Ccode>&state=abc\n",{"type":51,"tag":85,"props":8038,"children":8039},{"class":87,"line":842},[8040],{"type":51,"tag":85,"props":8041,"children":8042},{"emptyLinePlaceholder":128},[8043],{"type":57,"value":131},{"type":51,"tag":85,"props":8045,"children":8046},{"class":87,"line":1243},[8047],{"type":51,"tag":85,"props":8048,"children":8049},{"style":92},[8050],{"type":57,"value":8051},"# 3. Exchange code for tokens\n",{"type":51,"tag":85,"props":8053,"children":8054},{"class":87,"line":1251},[8055,8059,8063,8067,8072,8076],{"type":51,"tag":85,"props":8056,"children":8057},{"style":102},[8058],{"type":57,"value":3133},{"type":51,"tag":85,"props":8060,"children":8061},{"style":108},[8062],{"type":57,"value":3341},{"type":51,"tag":85,"props":8064,"children":8065},{"style":108},[8066],{"type":57,"value":3346},{"type":51,"tag":85,"props":8068,"children":8069},{"style":181},[8070],{"type":57,"value":8071}," $GOOGLE_URL",{"type":51,"tag":85,"props":8073,"children":8074},{"style":108},[8075],{"type":57,"value":1232},{"type":51,"tag":85,"props":8077,"children":8078},{"style":181},[8079],{"type":57,"value":3356},{"type":51,"tag":85,"props":8081,"children":8082},{"class":87,"line":1268},[8083,8087,8091,8095,8099],{"type":51,"tag":85,"props":8084,"children":8085},{"style":108},[8086],{"type":57,"value":3364},{"type":51,"tag":85,"props":8088,"children":8089},{"style":175},[8090],{"type":57,"value":2138},{"type":51,"tag":85,"props":8092,"children":8093},{"style":108},[8094],{"type":57,"value":3373},{"type":51,"tag":85,"props":8096,"children":8097},{"style":175},[8098],{"type":57,"value":3378},{"type":51,"tag":85,"props":8100,"children":8101},{"style":181},[8102],{"type":57,"value":3356},{"type":51,"tag":85,"props":8104,"children":8105},{"class":87,"line":1321},[8106,8110,8114,8119,8124,8129,8134,8139,8144,8149],{"type":51,"tag":85,"props":8107,"children":8108},{"style":108},[8109],{"type":57,"value":3390},{"type":51,"tag":85,"props":8111,"children":8112},{"style":175},[8113],{"type":57,"value":2138},{"type":51,"tag":85,"props":8115,"children":8116},{"style":108},[8117],{"type":57,"value":8118},"code=\u003Ccode>&client_id=",{"type":51,"tag":85,"props":8120,"children":8121},{"style":181},[8122],{"type":57,"value":8123},"$CLIENT_ID",{"type":51,"tag":85,"props":8125,"children":8126},{"style":108},[8127],{"type":57,"value":8128},"&client_secret=",{"type":51,"tag":85,"props":8130,"children":8131},{"style":181},[8132],{"type":57,"value":8133},"$CLIENT_SECRET",{"type":51,"tag":85,"props":8135,"children":8136},{"style":108},[8137],{"type":57,"value":8138},"&redirect_uri=",{"type":51,"tag":85,"props":8140,"children":8141},{"style":181},[8142],{"type":57,"value":8143},"$REDIRECT_URI",{"type":51,"tag":85,"props":8145,"children":8146},{"style":108},[8147],{"type":57,"value":8148},"&grant_type=authorization_code",{"type":51,"tag":85,"props":8150,"children":8151},{"style":175},[8152],{"type":57,"value":2148},{"type":51,"tag":85,"props":8154,"children":8155},{"class":87,"line":1329},[8156],{"type":51,"tag":85,"props":8157,"children":8158},{"emptyLinePlaceholder":128},[8159],{"type":57,"value":131},{"type":51,"tag":85,"props":8161,"children":8162},{"class":87,"line":1992},[8163],{"type":51,"tag":85,"props":8164,"children":8165},{"style":92},[8166],{"type":57,"value":8167},"# 4. Fetch user info with the access_token\n",{"type":51,"tag":85,"props":8169,"children":8170},{"class":87,"line":2010},[8171,8175,8179,8183],{"type":51,"tag":85,"props":8172,"children":8173},{"style":102},[8174],{"type":57,"value":3133},{"type":51,"tag":85,"props":8176,"children":8177},{"style":181},[8178],{"type":57,"value":8071},{"type":51,"tag":85,"props":8180,"children":8181},{"style":108},[8182],{"type":57,"value":1310},{"type":51,"tag":85,"props":8184,"children":8185},{"style":181},[8186],{"type":57,"value":3356},{"type":51,"tag":85,"props":8188,"children":8189},{"class":87,"line":2027},[8190,8194,8198,8203],{"type":51,"tag":85,"props":8191,"children":8192},{"style":108},[8193],{"type":57,"value":3364},{"type":51,"tag":85,"props":8195,"children":8196},{"style":175},[8197],{"type":57,"value":2138},{"type":51,"tag":85,"props":8199,"children":8200},{"style":108},[8201],{"type":57,"value":8202},"Authorization: Bearer \u003Caccess_token>",{"type":51,"tag":85,"props":8204,"children":8205},{"style":175},[8206],{"type":57,"value":2148},{"type":51,"tag":324,"props":8208,"children":8210},{"id":8209},"oidc-discovery-based-setup",[8211],{"type":57,"value":8212},"OIDC Discovery-Based Setup",{"type":51,"tag":73,"props":8214,"children":8216},{"className":157,"code":8215,"language":159,"meta":78,"style":78},"import { Issuer } from 'openid-client'\n\nconst googleIssuer = await Issuer.discover(\n  process.env.GOOGLE_EMULATOR_URL ?? 'https:\u002F\u002Faccounts.google.com'\n)\n\nconst client = new googleIssuer.Client({\n  client_id: process.env.GOOGLE_CLIENT_ID,\n  client_secret: process.env.GOOGLE_CLIENT_SECRET,\n  redirect_uris: ['http:\u002F\u002Flocalhost:3000\u002Fapi\u002Fauth\u002Fcallback\u002Fgoogle'],\n})\n",[8217],{"type":51,"tag":81,"props":8218,"children":8219},{"__ignoreMap":78},[8220,8257,8264,8302,8342,8349,8356,8397,8433,8469,8506],{"type":51,"tag":85,"props":8221,"children":8222},{"class":87,"line":88},[8223,8227,8231,8236,8240,8244,8248,8253],{"type":51,"tag":85,"props":8224,"children":8225},{"style":169},[8226],{"type":57,"value":172},{"type":51,"tag":85,"props":8228,"children":8229},{"style":175},[8230],{"type":57,"value":178},{"type":51,"tag":85,"props":8232,"children":8233},{"style":181},[8234],{"type":57,"value":8235}," Issuer",{"type":51,"tag":85,"props":8237,"children":8238},{"style":175},[8239],{"type":57,"value":189},{"type":51,"tag":85,"props":8241,"children":8242},{"style":169},[8243],{"type":57,"value":194},{"type":51,"tag":85,"props":8245,"children":8246},{"style":175},[8247],{"type":57,"value":199},{"type":51,"tag":85,"props":8249,"children":8250},{"style":108},[8251],{"type":57,"value":8252},"openid-client",{"type":51,"tag":85,"props":8254,"children":8255},{"style":175},[8256],{"type":57,"value":209},{"type":51,"tag":85,"props":8258,"children":8259},{"class":87,"line":98},[8260],{"type":51,"tag":85,"props":8261,"children":8262},{"emptyLinePlaceholder":128},[8263],{"type":57,"value":131},{"type":51,"tag":85,"props":8265,"children":8266},{"class":87,"line":124},[8267,8271,8276,8280,8284,8288,8292,8297],{"type":51,"tag":85,"props":8268,"children":8269},{"style":222},[8270],{"type":57,"value":225},{"type":51,"tag":85,"props":8272,"children":8273},{"style":181},[8274],{"type":57,"value":8275}," googleIssuer ",{"type":51,"tag":85,"props":8277,"children":8278},{"style":175},[8279],{"type":57,"value":235},{"type":51,"tag":85,"props":8281,"children":8282},{"style":169},[8283],{"type":57,"value":240},{"type":51,"tag":85,"props":8285,"children":8286},{"style":181},[8287],{"type":57,"value":8235},{"type":51,"tag":85,"props":8289,"children":8290},{"style":175},[8291],{"type":57,"value":638},{"type":51,"tag":85,"props":8293,"children":8294},{"style":243},[8295],{"type":57,"value":8296},"discover",{"type":51,"tag":85,"props":8298,"children":8299},{"style":181},[8300],{"type":57,"value":8301},"(\n",{"type":51,"tag":85,"props":8303,"children":8304},{"class":87,"line":134},[8305,8310,8314,8318,8322,8326,8330,8334,8338],{"type":51,"tag":85,"props":8306,"children":8307},{"style":181},[8308],{"type":57,"value":8309},"  process",{"type":51,"tag":85,"props":8311,"children":8312},{"style":175},[8313],{"type":57,"value":638},{"type":51,"tag":85,"props":8315,"children":8316},{"style":181},[8317],{"type":57,"value":643},{"type":51,"tag":85,"props":8319,"children":8320},{"style":175},[8321],{"type":57,"value":638},{"type":51,"tag":85,"props":8323,"children":8324},{"style":181},[8325],{"type":57,"value":652},{"type":51,"tag":85,"props":8327,"children":8328},{"style":175},[8329],{"type":57,"value":657},{"type":51,"tag":85,"props":8331,"children":8332},{"style":175},[8333],{"type":57,"value":199},{"type":51,"tag":85,"props":8335,"children":8336},{"style":108},[8337],{"type":57,"value":666},{"type":51,"tag":85,"props":8339,"children":8340},{"style":175},[8341],{"type":57,"value":209},{"type":51,"tag":85,"props":8343,"children":8344},{"class":87,"line":143},[8345],{"type":51,"tag":85,"props":8346,"children":8347},{"style":181},[8348],{"type":57,"value":308},{"type":51,"tag":85,"props":8350,"children":8351},{"class":87,"line":714},[8352],{"type":51,"tag":85,"props":8353,"children":8354},{"emptyLinePlaceholder":128},[8355],{"type":57,"value":131},{"type":51,"tag":85,"props":8357,"children":8358},{"class":87,"line":753},[8359,8363,8367,8371,8375,8380,8384,8389,8393],{"type":51,"tag":85,"props":8360,"children":8361},{"style":222},[8362],{"type":57,"value":225},{"type":51,"tag":85,"props":8364,"children":8365},{"style":181},[8366],{"type":57,"value":689},{"type":51,"tag":85,"props":8368,"children":8369},{"style":175},[8370],{"type":57,"value":235},{"type":51,"tag":85,"props":8372,"children":8373},{"style":175},[8374],{"type":57,"value":698},{"type":51,"tag":85,"props":8376,"children":8377},{"style":181},[8378],{"type":57,"value":8379}," googleIssuer",{"type":51,"tag":85,"props":8381,"children":8382},{"style":175},[8383],{"type":57,"value":638},{"type":51,"tag":85,"props":8385,"children":8386},{"style":243},[8387],{"type":57,"value":8388},"Client",{"type":51,"tag":85,"props":8390,"children":8391},{"style":181},[8392],{"type":57,"value":250},{"type":51,"tag":85,"props":8394,"children":8395},{"style":175},[8396],{"type":57,"value":711},{"type":51,"tag":85,"props":8398,"children":8399},{"class":87,"line":791},[8400,8405,8409,8413,8417,8421,8425,8429],{"type":51,"tag":85,"props":8401,"children":8402},{"style":258},[8403],{"type":57,"value":8404},"  client_id",{"type":51,"tag":85,"props":8406,"children":8407},{"style":175},[8408],{"type":57,"value":266},{"type":51,"tag":85,"props":8410,"children":8411},{"style":181},[8412],{"type":57,"value":633},{"type":51,"tag":85,"props":8414,"children":8415},{"style":175},[8416],{"type":57,"value":638},{"type":51,"tag":85,"props":8418,"children":8419},{"style":181},[8420],{"type":57,"value":643},{"type":51,"tag":85,"props":8422,"children":8423},{"style":175},[8424],{"type":57,"value":638},{"type":51,"tag":85,"props":8426,"children":8427},{"style":181},[8428],{"type":57,"value":745},{"type":51,"tag":85,"props":8430,"children":8431},{"style":175},[8432],{"type":57,"value":750},{"type":51,"tag":85,"props":8434,"children":8435},{"class":87,"line":821},[8436,8441,8445,8449,8453,8457,8461,8465],{"type":51,"tag":85,"props":8437,"children":8438},{"style":258},[8439],{"type":57,"value":8440},"  client_secret",{"type":51,"tag":85,"props":8442,"children":8443},{"style":175},[8444],{"type":57,"value":266},{"type":51,"tag":85,"props":8446,"children":8447},{"style":181},[8448],{"type":57,"value":633},{"type":51,"tag":85,"props":8450,"children":8451},{"style":175},[8452],{"type":57,"value":638},{"type":51,"tag":85,"props":8454,"children":8455},{"style":181},[8456],{"type":57,"value":643},{"type":51,"tag":85,"props":8458,"children":8459},{"style":175},[8460],{"type":57,"value":638},{"type":51,"tag":85,"props":8462,"children":8463},{"style":181},[8464],{"type":57,"value":784},{"type":51,"tag":85,"props":8466,"children":8467},{"style":175},[8468],{"type":57,"value":750},{"type":51,"tag":85,"props":8470,"children":8471},{"class":87,"line":834},[8472,8477,8481,8485,8489,8493,8497,8502],{"type":51,"tag":85,"props":8473,"children":8474},{"style":258},[8475],{"type":57,"value":8476},"  redirect_uris",{"type":51,"tag":85,"props":8478,"children":8479},{"style":175},[8480],{"type":57,"value":266},{"type":51,"tag":85,"props":8482,"children":8483},{"style":181},[8484],{"type":57,"value":2339},{"type":51,"tag":85,"props":8486,"children":8487},{"style":175},[8488],{"type":57,"value":279},{"type":51,"tag":85,"props":8490,"children":8491},{"style":108},[8492],{"type":57,"value":810},{"type":51,"tag":85,"props":8494,"children":8495},{"style":175},[8496],{"type":57,"value":279},{"type":51,"tag":85,"props":8498,"children":8499},{"style":181},[8500],{"type":57,"value":8501},"]",{"type":51,"tag":85,"props":8503,"children":8504},{"style":175},[8505],{"type":57,"value":750},{"type":51,"tag":85,"props":8507,"children":8508},{"class":87,"line":842},[8509,8513],{"type":51,"tag":85,"props":8510,"children":8511},{"style":175},[8512],{"type":57,"value":827},{"type":51,"tag":85,"props":8514,"children":8515},{"style":181},[8516],{"type":57,"value":308},{"type":51,"tag":324,"props":8518,"children":8520},{"id":8519},"send-a-gmail-message-and-check-the-thread",[8521],{"type":57,"value":8522},"Send a Gmail Message and Check the Thread",{"type":51,"tag":73,"props":8524,"children":8526},{"className":75,"code":8525,"language":77,"meta":78,"style":78},"TOKEN=\"test_token_admin\"\nBASE=\"http:\u002F\u002Flocalhost:4002\"\n\n# Send a message\ncurl -X POST $BASE\u002Fgmail\u002Fv1\u002Fusers\u002Fme\u002Fmessages\u002Fsend \\\n  -H \"Authorization: Bearer $TOKEN\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\"to\": \"someone@example.com\", \"subject\": \"Test\", \"body_text\": \"Hello\"}'\n\n# List threads in INBOX\ncurl \"$BASE\u002Fgmail\u002Fv1\u002Fusers\u002Fme\u002Fthreads?labelIds=INBOX\" \\\n  -H \"Authorization: Bearer $TOKEN\"\n",[8527],{"type":51,"tag":81,"props":8528,"children":8529},{"__ignoreMap":78},[8530,8555,8579,8586,8594,8623,8650,8673,8693,8700,8708,8737],{"type":51,"tag":85,"props":8531,"children":8532},{"class":87,"line":88},[8533,8538,8542,8546,8551],{"type":51,"tag":85,"props":8534,"children":8535},{"style":181},[8536],{"type":57,"value":8537},"TOKEN",{"type":51,"tag":85,"props":8539,"children":8540},{"style":175},[8541],{"type":57,"value":235},{"type":51,"tag":85,"props":8543,"children":8544},{"style":175},[8545],{"type":57,"value":3378},{"type":51,"tag":85,"props":8547,"children":8548},{"style":108},[8549],{"type":57,"value":8550},"test_token_admin",{"type":51,"tag":85,"props":8552,"children":8553},{"style":175},[8554],{"type":57,"value":2148},{"type":51,"tag":85,"props":8556,"children":8557},{"class":87,"line":98},[8558,8563,8567,8571,8575],{"type":51,"tag":85,"props":8559,"children":8560},{"style":181},[8561],{"type":57,"value":8562},"BASE",{"type":51,"tag":85,"props":8564,"children":8565},{"style":175},[8566],{"type":57,"value":235},{"type":51,"tag":85,"props":8568,"children":8569},{"style":175},[8570],{"type":57,"value":3378},{"type":51,"tag":85,"props":8572,"children":8573},{"style":108},[8574],{"type":57,"value":7912},{"type":51,"tag":85,"props":8576,"children":8577},{"style":175},[8578],{"type":57,"value":2148},{"type":51,"tag":85,"props":8580,"children":8581},{"class":87,"line":124},[8582],{"type":51,"tag":85,"props":8583,"children":8584},{"emptyLinePlaceholder":128},[8585],{"type":57,"value":131},{"type":51,"tag":85,"props":8587,"children":8588},{"class":87,"line":134},[8589],{"type":51,"tag":85,"props":8590,"children":8591},{"style":92},[8592],{"type":57,"value":8593},"# Send a message\n",{"type":51,"tag":85,"props":8595,"children":8596},{"class":87,"line":143},[8597,8601,8605,8609,8614,8619],{"type":51,"tag":85,"props":8598,"children":8599},{"style":102},[8600],{"type":57,"value":3133},{"type":51,"tag":85,"props":8602,"children":8603},{"style":108},[8604],{"type":57,"value":3341},{"type":51,"tag":85,"props":8606,"children":8607},{"style":108},[8608],{"type":57,"value":3346},{"type":51,"tag":85,"props":8610,"children":8611},{"style":181},[8612],{"type":57,"value":8613}," $BASE",{"type":51,"tag":85,"props":8615,"children":8616},{"style":108},[8617],{"type":57,"value":8618},"\u002Fgmail\u002Fv1\u002Fusers\u002Fme\u002Fmessages\u002Fsend",{"type":51,"tag":85,"props":8620,"children":8621},{"style":181},[8622],{"type":57,"value":3356},{"type":51,"tag":85,"props":8624,"children":8625},{"class":87,"line":714},[8626,8630,8634,8638,8642,8646],{"type":51,"tag":85,"props":8627,"children":8628},{"style":108},[8629],{"type":57,"value":3364},{"type":51,"tag":85,"props":8631,"children":8632},{"style":175},[8633],{"type":57,"value":2138},{"type":51,"tag":85,"props":8635,"children":8636},{"style":108},[8637],{"type":57,"value":4060},{"type":51,"tag":85,"props":8639,"children":8640},{"style":181},[8641],{"type":57,"value":4065},{"type":51,"tag":85,"props":8643,"children":8644},{"style":175},[8645],{"type":57,"value":3378},{"type":51,"tag":85,"props":8647,"children":8648},{"style":181},[8649],{"type":57,"value":3356},{"type":51,"tag":85,"props":8651,"children":8652},{"class":87,"line":753},[8653,8657,8661,8665,8669],{"type":51,"tag":85,"props":8654,"children":8655},{"style":108},[8656],{"type":57,"value":3364},{"type":51,"tag":85,"props":8658,"children":8659},{"style":175},[8660],{"type":57,"value":2138},{"type":51,"tag":85,"props":8662,"children":8663},{"style":108},[8664],{"type":57,"value":4213},{"type":51,"tag":85,"props":8666,"children":8667},{"style":175},[8668],{"type":57,"value":3378},{"type":51,"tag":85,"props":8670,"children":8671},{"style":181},[8672],{"type":57,"value":3356},{"type":51,"tag":85,"props":8674,"children":8675},{"class":87,"line":791},[8676,8680,8684,8689],{"type":51,"tag":85,"props":8677,"children":8678},{"style":108},[8679],{"type":57,"value":3390},{"type":51,"tag":85,"props":8681,"children":8682},{"style":175},[8683],{"type":57,"value":199},{"type":51,"tag":85,"props":8685,"children":8686},{"style":108},[8687],{"type":57,"value":8688},"{\"to\": \"someone@example.com\", \"subject\": \"Test\", \"body_text\": \"Hello\"}",{"type":51,"tag":85,"props":8690,"children":8691},{"style":175},[8692],{"type":57,"value":209},{"type":51,"tag":85,"props":8694,"children":8695},{"class":87,"line":821},[8696],{"type":51,"tag":85,"props":8697,"children":8698},{"emptyLinePlaceholder":128},[8699],{"type":57,"value":131},{"type":51,"tag":85,"props":8701,"children":8702},{"class":87,"line":834},[8703],{"type":51,"tag":85,"props":8704,"children":8705},{"style":92},[8706],{"type":57,"value":8707},"# List threads in INBOX\n",{"type":51,"tag":85,"props":8709,"children":8710},{"class":87,"line":842},[8711,8715,8719,8724,8729,8733],{"type":51,"tag":85,"props":8712,"children":8713},{"style":102},[8714],{"type":57,"value":3133},{"type":51,"tag":85,"props":8716,"children":8717},{"style":175},[8718],{"type":57,"value":2138},{"type":51,"tag":85,"props":8720,"children":8721},{"style":181},[8722],{"type":57,"value":8723},"$BASE",{"type":51,"tag":85,"props":8725,"children":8726},{"style":108},[8727],{"type":57,"value":8728},"\u002Fgmail\u002Fv1\u002Fusers\u002Fme\u002Fthreads?labelIds=INBOX",{"type":51,"tag":85,"props":8730,"children":8731},{"style":175},[8732],{"type":57,"value":3378},{"type":51,"tag":85,"props":8734,"children":8735},{"style":181},[8736],{"type":57,"value":3356},{"type":51,"tag":85,"props":8738,"children":8739},{"class":87,"line":1243},[8740,8744,8748,8752,8756],{"type":51,"tag":85,"props":8741,"children":8742},{"style":108},[8743],{"type":57,"value":3364},{"type":51,"tag":85,"props":8745,"children":8746},{"style":175},[8747],{"type":57,"value":2138},{"type":51,"tag":85,"props":8749,"children":8750},{"style":108},[8751],{"type":57,"value":4060},{"type":51,"tag":85,"props":8753,"children":8754},{"style":181},[8755],{"type":57,"value":4065},{"type":51,"tag":85,"props":8757,"children":8758},{"style":175},[8759],{"type":57,"value":2148},{"type":51,"tag":8761,"props":8762,"children":8763},"style",{},[8764],{"type":57,"value":8765},"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":8767,"total":1243},[8768,8782,8796,8821,8831,8841,8851],{"slug":8769,"name":8769,"fn":8770,"description":8771,"org":8772,"tags":8773,"stars":33,"repoUrl":34,"updatedAt":8781},"apple","emulate Apple Sign-in for local development","Emulated Sign in with Apple \u002F Apple OIDC for local development and testing. Use when the user needs to test Apple sign-in locally, emulate Apple OIDC discovery, handle Apple token exchange, configure Apple OAuth clients, or work with Apple userinfo without hitting real Apple APIs. Triggers include \"Apple OAuth\", \"emulate Apple\", \"mock Apple login\", \"test Apple sign-in\", \"Sign in with Apple\", \"Apple OIDC\", \"local Apple auth\", or any task requiring a local Apple OAuth\u002FOIDC provider.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[8774,8776,8777,8778],{"name":8775,"slug":8769,"type":15},"Apple",{"name":13,"slug":14,"type":15},{"name":25,"slug":26,"type":15},{"name":8779,"slug":8780,"type":15},"Testing","testing","2026-07-17T06:08:52.141606",{"slug":8783,"name":8783,"fn":8784,"description":8785,"org":8786,"tags":8787,"stars":33,"repoUrl":34,"updatedAt":8795},"aws","emulate AWS cloud services locally","Emulated AWS cloud services (S3, SQS, IAM, STS) for local development and testing. Use when the user needs to interact with AWS API endpoints locally, test S3 bucket and object operations, emulate SQS queues and messages, manage IAM users\u002Froles\u002Faccess keys, test STS assume role, or work without hitting real AWS APIs. Triggers include \"AWS emulator\", \"emulate AWS\", \"mock S3\", \"local SQS\", \"test IAM\", \"emulate S3\", \"AWS locally\", \"STS assume role\", or any task requiring local AWS service emulation.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[8788,8790,8793,8794],{"name":8789,"slug":8783,"type":15},"AWS",{"name":8791,"slug":8792,"type":15},"Cloud","cloud",{"name":25,"slug":26,"type":15},{"name":8779,"slug":8780,"type":15},"2026-07-17T06:08:52.818809",{"slug":204,"name":204,"fn":8797,"description":8798,"org":8799,"tags":8800,"stars":33,"repoUrl":34,"updatedAt":8820},"emulate developer APIs for local testing","Local drop-in API emulator for Vercel, GitHub, Google, Slack, Apple, Microsoft, AWS, Linear, and other developer APIs. Use when the user needs to start emulated services, configure seed data, write tests against local APIs, set up CI without network access, or work with the emulate CLI or programmatic API. Triggers include \"start the emulator\", \"emulate services\", \"mock API locally\", \"create emulator config\", \"test against local API\", \"npx emulate\", or any task requiring local service emulation.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[8801,8804,8805,8806,8809,8812,8813,8816,8819],{"name":8802,"slug":8803,"type":15},"API Development","api-development",{"name":8775,"slug":8769,"type":15},{"name":8789,"slug":8783,"type":15},{"name":8807,"slug":8808,"type":15},"GitHub","github",{"name":8810,"slug":8811,"type":15},"Linear","linear",{"name":25,"slug":26,"type":15},{"name":8814,"slug":8815,"type":15},"Microsoft","microsoft",{"name":8817,"slug":8818,"type":15},"Slack","slack",{"name":8779,"slug":8780,"type":15},"2026-07-17T06:08:59.816303",{"slug":8808,"name":8808,"fn":8822,"description":8823,"org":8824,"tags":8825,"stars":33,"repoUrl":34,"updatedAt":8830},"emulate GitHub API for local development","Emulated GitHub REST API for local development and testing. Use when the user needs to interact with GitHub API endpoints locally, test GitHub integrations, emulate repos\u002Fissues\u002FPRs, set up GitHub OAuth flows, configure GitHub Apps, test webhooks, or work with actions\u002Fchecks without hitting the real GitHub API. Triggers include \"GitHub API\", \"emulate GitHub\", \"mock GitHub\", \"test GitHub OAuth\", \"GitHub App JWT\", \"local GitHub\", or any task requiring a local GitHub API.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[8826,8827,8828,8829],{"name":8802,"slug":8803,"type":15},{"name":8807,"slug":8808,"type":15},{"name":25,"slug":26,"type":15},{"name":8779,"slug":8780,"type":15},"2026-07-17T06:05:55.104585",{"slug":4,"name":4,"fn":5,"description":6,"org":8832,"tags":8833,"stars":33,"repoUrl":34,"updatedAt":35},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[8834,8835,8836,8837,8838,8839,8840],{"name":13,"slug":14,"type":15},{"name":17,"slug":18,"type":15},{"name":20,"slug":4,"type":15},{"name":28,"slug":29,"type":15},{"name":22,"slug":23,"type":15},{"name":25,"slug":26,"type":15},{"name":31,"slug":32,"type":15},{"slug":8811,"name":8811,"fn":8842,"description":8843,"org":8844,"tags":8845,"stars":33,"repoUrl":34,"updatedAt":8850},"emulate Linear API for local development","Emulated Linear GraphQL API for local development and testing. Use when the user needs to test Linear integrations locally, emulate Linear issues, comments, teams, workflow states, OAuth apps, webhooks, agent sessions, or work with the Linear API without hitting the real Linear service. Triggers include \"Linear API\", \"emulate Linear\", \"mock Linear\", \"test Linear OAuth\", \"Linear webhook\", \"Linear agent\", \"local Linear\", or any task requiring a local Linear API.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[8846,8847,8848,8849],{"name":8802,"slug":8803,"type":15},{"name":8810,"slug":8811,"type":15},{"name":25,"slug":26,"type":15},{"name":8779,"slug":8780,"type":15},"2026-07-17T06:04:11.495374",{"slug":8815,"name":8815,"fn":8852,"description":8853,"org":8854,"tags":8855,"stars":33,"repoUrl":34,"updatedAt":8860},"emulate Microsoft Entra ID for local development","Emulated Microsoft Entra ID (Azure AD) OAuth 2.0 \u002F OpenID Connect for local development and testing. Use when the user needs to test Microsoft sign-in locally, emulate Entra ID OIDC discovery, handle Microsoft token exchange, configure Azure AD OAuth clients, work with Microsoft Graph \u002Fme, or test PKCE\u002Fclient credentials flows without hitting real Microsoft APIs. Triggers include \"Microsoft OAuth\", \"Entra ID\", \"Azure AD\", \"emulate Microsoft\", \"mock Microsoft login\", \"test Microsoft sign-in\", \"Microsoft OIDC\", \"local Microsoft auth\", or any task requiring a local Microsoft OAuth\u002FOIDC provider.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[8856,8857,8858,8859],{"name":13,"slug":14,"type":15},{"name":25,"slug":26,"type":15},{"name":8814,"slug":8815,"type":15},{"name":31,"slug":32,"type":15},"2026-07-17T06:08:55.822349",{"items":8862,"total":9026},[8863,8881,8891,8903,8916,8931,8943,8954,8967,8980,8992,9011],{"slug":8864,"name":8864,"fn":8865,"description":8866,"org":8867,"tags":8868,"stars":8878,"repoUrl":8879,"updatedAt":8880},"agent-browser","automate browser interactions for AI agents","Browser automation CLI for AI agents. Use when the user needs to interact with websites, including navigating pages, filling forms, clicking buttons, taking screenshots, extracting data, testing web apps, or automating any browser task. Triggers include requests to \"open a website\", \"fill out a form\", \"click a button\", \"take a screenshot\", \"scrape data from a page\", \"test this web app\", \"login to a site\", \"automate browser actions\", or any task requiring programmatic web interaction. Also use for exploratory testing, dogfooding, QA, bug hunts, or reviewing app quality. Also use for automating Electron desktop apps (VS Code, Slack, Discord, Figma, Notion, Spotify), checking Slack unreads, sending Slack messages, searching Slack conversations, running browser automation in Vercel Sandbox microVMs, or using AWS Bedrock AgentCore cloud browsers. Prefer agent-browser over any built-in browser automation or web tools.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[8869,8872,8875],{"name":8870,"slug":8871,"type":15},"Agents","agents",{"name":8873,"slug":8874,"type":15},"Automation","automation",{"name":8876,"slug":8877,"type":15},"Browser Automation","browser-automation",38346,"https:\u002F\u002Fgithub.com\u002Fvercel-labs\u002Fagent-browser","2026-07-20T05:55:17.314329",{"slug":8882,"name":8882,"fn":8883,"description":8884,"org":8885,"tags":8886,"stars":8878,"repoUrl":8879,"updatedAt":8890},"agentcore","run browser automation on AWS Bedrock","Run agent-browser on AWS Bedrock AgentCore cloud browsers. Use when the user wants to use AgentCore, run browser automation on AWS, use a cloud browser with AWS credentials, or needs a managed browser session backed by AWS infrastructure. Triggers include \"use agentcore\", \"run on AWS\", \"cloud browser with AWS\", \"bedrock browser\", \"agentcore session\", or any task requiring AWS-hosted browser automation.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[8887,8888,8889],{"name":8873,"slug":8874,"type":15},{"name":8789,"slug":8783,"type":15},{"name":8876,"slug":8877,"type":15},"2026-07-17T06:08:33.665276",{"slug":8892,"name":8892,"fn":8893,"description":8894,"org":8895,"tags":8896,"stars":8878,"repoUrl":8879,"updatedAt":8902},"core","navigate and interact with web pages","Core agent-browser usage guide. Read this before running any agent-browser commands. Covers the snapshot-and-ref workflow, navigating pages, interacting with elements (click, fill, type, select), extracting text and data, taking screenshots, managing tabs, handling forms and auth, waiting for content, running multiple browser sessions in parallel, and troubleshooting common failures. Use when the user asks to interact with a website, fill a form, click something, extract data, take a screenshot, log into a site, test a web app, or automate any browser task.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[8897,8898,8899],{"name":8870,"slug":8871,"type":15},{"name":8876,"slug":8877,"type":15},{"name":8900,"slug":8901,"type":15},"Navigation","navigation","2026-07-26T05:47:42.378419",{"slug":8904,"name":8904,"fn":8905,"description":8906,"org":8907,"tags":8908,"stars":8878,"repoUrl":8879,"updatedAt":8915},"derive-client","reverse engineer internal APIs from browser traffic","Reverse-engineer a website's internal API by recording browser traffic into a HAR file, then generate a standalone client or CLI that calls the endpoints directly, with no browser needed after the first recording. Use when asked to \"derive a client\", \"build a CLI for \u003Csite>\", \"reverse engineer this site's API\", \"record network requests\", \"turn this site into an API\", or when the same site will be automated repeatedly and direct HTTP calls would beat driving the browser every time.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[8909,8910,8911,8912],{"name":8802,"slug":8803,"type":15},{"name":8873,"slug":8874,"type":15},{"name":8876,"slug":8877,"type":15},{"name":8913,"slug":8914,"type":15},"Web Scraping","web-scraping","2026-07-20T06:24:11.928835",{"slug":8917,"name":8917,"fn":8918,"description":8919,"org":8920,"tags":8921,"stars":8878,"repoUrl":8879,"updatedAt":8930},"dogfood","perform exploratory testing on web applications","Systematically explore and test a web application to find bugs, UX issues, and other problems. Use when asked to \"dogfood\", \"QA\", \"exploratory test\", \"find issues\", \"bug hunt\", \"test this app\u002Fsite\u002Fplatform\", or review the quality of a web application. Produces a structured report with full reproduction evidence -- step-by-step screenshots, repro videos, and detailed repro steps for every issue -- so findings can be handed directly to the responsible teams.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[8922,8923,8926,8929],{"name":8876,"slug":8877,"type":15},{"name":8924,"slug":8925,"type":15},"Debugging","debugging",{"name":8927,"slug":8928,"type":15},"QA","qa",{"name":8779,"slug":8780,"type":15},"2026-07-17T06:07:41.421482",{"slug":8932,"name":8932,"fn":8933,"description":8934,"org":8935,"tags":8936,"stars":8878,"repoUrl":8879,"updatedAt":8942},"electron","automate Electron desktop applications","Automate Electron desktop apps (VS Code, Slack, Discord, Figma, Notion, Spotify, etc.) using agent-browser via Chrome DevTools Protocol. Use when the user needs to interact with an Electron app, automate a desktop app, connect to a running app, control a native app, or test an Electron application. Triggers include \"automate Slack app\", \"control VS Code\", \"interact with Discord app\", \"test this Electron app\", \"connect to desktop app\", or any task requiring automation of a native Electron application.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[8937,8938,8939],{"name":8870,"slug":8871,"type":15},{"name":8876,"slug":8877,"type":15},{"name":8940,"slug":8941,"type":15},"Desktop","desktop","2026-07-17T06:08:28.007783",{"slug":8818,"name":8818,"fn":8944,"description":8945,"org":8946,"tags":8947,"stars":8878,"repoUrl":8879,"updatedAt":8953},"interact with Slack workspaces","Interact with Slack workspaces using browser automation. Use when the user needs to check unread channels, navigate Slack, send messages, extract data, find information, search conversations, or automate any Slack task. Triggers include \"check my Slack\", \"what channels have unreads\", \"send a message to\", \"search Slack for\", \"extract from Slack\", \"find who said\", or any task requiring programmatic Slack interaction.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[8948,8949,8952],{"name":8876,"slug":8877,"type":15},{"name":8950,"slug":8951,"type":15},"Messaging","messaging",{"name":8817,"slug":8818,"type":15},"2026-07-17T06:08:27.679015",{"slug":8955,"name":8955,"fn":8956,"description":8957,"org":8958,"tags":8959,"stars":8878,"repoUrl":8879,"updatedAt":8966},"vercel-sandbox","run browser automation in Vercel Sandbox","Run agent-browser + Chrome inside Vercel Sandbox microVMs for browser automation from any Vercel-deployed app. Use when the user needs browser automation in a Vercel app (Next.js, SvelteKit, Nuxt, Remix, Astro, etc.), wants to run headless Chrome without binary size limits, needs persistent browser sessions across commands, or wants ephemeral isolated browser environments. Triggers include \"Vercel Sandbox browser\", \"microVM Chrome\", \"agent-browser in sandbox\", \"browser automation on Vercel\", or any task requiring Chrome in a Vercel Sandbox.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[8960,8961,8962,8963],{"name":8873,"slug":8874,"type":15},{"name":8876,"slug":8877,"type":15},{"name":8779,"slug":8780,"type":15},{"name":8964,"slug":8965,"type":15},"Vercel","vercel","2026-07-17T06:08:28.349899",{"slug":8968,"name":8968,"fn":8969,"description":8970,"org":8971,"tags":8972,"stars":8977,"repoUrl":8978,"updatedAt":8979},"deploy-to-vercel","deploy applications to Vercel","Deploy applications and websites to Vercel. Use when the user requests deployment actions like \"deploy my app\", \"deploy and give me the link\", \"push this live\", or \"create a preview deployment\".",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[8973,8976],{"name":8974,"slug":8975,"type":15},"Deployment","deployment",{"name":8964,"slug":8965,"type":15},28993,"https:\u002F\u002Fgithub.com\u002Fvercel-labs\u002Fagent-skills","2026-07-17T06:08:41.18374",{"slug":8981,"name":8981,"fn":8982,"description":8983,"org":8984,"tags":8985,"stars":8977,"repoUrl":8978,"updatedAt":8991},"vercel-cli-with-tokens","manage Vercel projects via CLI","Deploy and manage projects on Vercel using token-based authentication. Use when working with Vercel CLI using access tokens rather than interactive login — e.g. \"deploy to vercel\", \"set up vercel\", \"add environment variables to vercel\".",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[8986,8989,8990],{"name":8987,"slug":8988,"type":15},"CLI","cli",{"name":8974,"slug":8975,"type":15},{"name":8964,"slug":8965,"type":15},"2026-07-17T06:08:41.84179",{"slug":8993,"name":8993,"fn":8994,"description":8995,"org":8996,"tags":8997,"stars":8977,"repoUrl":8978,"updatedAt":9010},"vercel-composition-patterns","implement scalable React composition patterns","React composition patterns that scale. Use when refactoring components with boolean prop proliferation, building flexible component libraries, or designing reusable APIs. Triggers on tasks involving compound components, render props, context providers, or component architecture. Includes React 19 API changes.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[8998,9001,9004,9007],{"name":8999,"slug":9000,"type":15},"Best Practices","best-practices",{"name":9002,"slug":9003,"type":15},"Frontend","frontend",{"name":9005,"slug":9006,"type":15},"React","react",{"name":9008,"slug":9009,"type":15},"UI Components","ui-components","2026-07-17T06:05:40.576913",{"slug":9012,"name":9012,"fn":9013,"description":9014,"org":9015,"tags":9016,"stars":8977,"repoUrl":8978,"updatedAt":9025},"vercel-optimize","optimize Vercel project performance and costs","Use for Vercel cost and performance optimization on deployed projects, especially Next.js, SvelteKit, Nuxt, and limited Astro apps. Collect Vercel metrics, usage, project config, and code scan results first; investigate only metric-backed candidates; produce ranked recommendations grounded in verified files and version-aware Vercel\u002Fframework docs. Trigger for Vercel bill reduction, slow or expensive routes, caching opportunities, Function Invocations, Build Minutes, Fast Data Transfer, Core Web Vitals, Bot Management, Fluid compute, or cost breakdown requests.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[9017,9020,9021,9024],{"name":9018,"slug":9019,"type":15},"Cost Optimization","cost-optimization",{"name":8974,"slug":8975,"type":15},{"name":9022,"slug":9023,"type":15},"Performance","performance",{"name":8964,"slug":8965,"type":15},"2026-07-17T06:04:08.327515",100]