MCPcopy Create free account
hub / github.com/dwgx/WindsurfAPI / parseGetUserStatusResponse

Function parseGetUserStatusResponse

src/windsurf.js:1459–1540  ·  view source on GitHub ↗
(buf)

Source from the content-addressed store, hash-verified

1457 * ModelOrAlias { Model model = 1; ModelAlias alias = 2; } (oneof in practice)
1458 */
1459export function parseGetUserStatusResponse(buf) {
1460 const out = {
1461 pro: false,
1462 teamsTier: 0,
1463 tierName: '',
1464 email: '',
1465 displayName: '',
1466 teamId: '',
1467 userUsedPromptCredits: 0,
1468 userUsedFlowCredits: 0,
1469 trialEndMs: 0,
1470 maxPremiumChatMessages: 0,
1471 planName: '',
1472 monthlyPromptCredits: 0,
1473 monthlyFlowCredits: 0,
1474 hasPaidFeatures: false,
1475 isTeams: false,
1476 isEnterprise: false,
1477 allowedModels: [], // [{ modelEnum, alias, multiplier }]
1478 };
1479
1480 if (!buf || buf.length === 0) {
1481 out.tierName = mapTeamsTier(out.teamsTier);
1482 return out;
1483 }
1484 const top = parseFields(buf);
1485 const usBuf = getField(top, 1, 2)?.value;
1486 const piBuf = getField(top, 2, 2)?.value;
1487
1488 if (usBuf && usBuf.length) {
1489 const us = parseFields(usBuf);
1490 out.pro = (getField(us, 1, 0)?.value ?? 0) === 1;
1491 out.displayName = getField(us, 3, 2)?.value?.toString('utf8') || '';
1492 out.teamId = getField(us, 5, 2)?.value?.toString('utf8') || '';
1493 out.email = getField(us, 7, 2)?.value?.toString('utf8') || '';
1494 out.teamsTier = getField(us, 10, 0)?.value ?? 0;
1495 out.userUsedPromptCredits = Number(getField(us, 28, 0)?.value ?? 0);
1496 out.userUsedFlowCredits = Number(getField(us, 29, 0)?.value ?? 0);
1497 out.maxPremiumChatMessages = Number(getField(us, 35, 0)?.value ?? 0);
1498 const tsBuf = getField(us, 34, 2)?.value;
1499 if (tsBuf && tsBuf.length) {
1500 const tsFields = parseFields(tsBuf);
1501 const secs = Number(getField(tsFields, 1, 0)?.value ?? 0);
1502 out.trialEndMs = secs * 1000;
1503 }
1504 }
1505
1506 if (piBuf && piBuf.length) {
1507 const pi = parseFields(piBuf);
1508 if (!out.teamsTier) out.teamsTier = getField(pi, 1, 0)?.value ?? 0;
1509 out.planName = getField(pi, 2, 2)?.value?.toString('utf8') || '';
1510 out.monthlyPromptCredits = Number(getField(pi, 12, 0)?.value ?? 0);
1511 out.monthlyFlowCredits = Number(getField(pi, 13, 0)?.value ?? 0);
1512 out.isEnterprise = (getField(pi, 16, 0)?.value ?? 0) === 1;
1513 out.isTeams = (getField(pi, 17, 0)?.value ?? 0) === 1;
1514 out.hasPaidFeatures = (getField(pi, 32, 0)?.value ?? 0) === 1;
1515
1516 // cascade_allowed_models_config — repeated AllowedModelConfig (field 21)

Callers 1

getUserStatusMethod · 0.90

Calls 5

parseFieldsFunction · 0.90
getFieldFunction · 0.90
getAllFieldsFunction · 0.90
mapTeamsTierFunction · 0.85
pushMethod · 0.80

Tested by

no test coverage detected