@gravity-rail/cli 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +252 -0
- package/dist/gr.js +14981 -0
- package/dist/gr.js.map +1 -0
- package/package.json +34 -0
package/dist/gr.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../node_modules/libphonenumber-js/metadata.min.json.js","../../../node_modules/libphonenumber-js/min/exports/withMetadataArgument.js","../../../node_modules/libphonenumber-js/source/tools/semver-compare.js","../../../node_modules/libphonenumber-js/source/helpers/isObject.js","../../../node_modules/libphonenumber-js/source/metadata.js","../../../node_modules/libphonenumber-js/source/helpers/checkNumberLength.js","../../../node_modules/libphonenumber-js/source/isPossible.js","../../../node_modules/libphonenumber-js/source/helpers/matchesEntirely.js","../../../node_modules/libphonenumber-js/source/helpers/getNumberType.js","../../../node_modules/libphonenumber-js/source/isValid.js","../../../node_modules/libphonenumber-js/source/helpers/getPossibleCountriesForNumber.js","../../../node_modules/libphonenumber-js/source/constants.js","../../../node_modules/libphonenumber-js/source/helpers/stripIddPrefix.js","../../../node_modules/libphonenumber-js/source/helpers/extractNationalNumberFromPossiblyIncompleteNumber.js","../../../node_modules/libphonenumber-js/source/helpers/getCountryByNationalNumber.js","../../../node_modules/libphonenumber-js/source/helpers/getCountryByCallingCode.js","../../../node_modules/libphonenumber-js/source/helpers/extractNationalNumber.js","../../../node_modules/libphonenumber-js/source/helpers/extractCountryCallingCodeFromInternationalNumberWithoutPlusSign.js","../../../node_modules/libphonenumber-js/source/helpers/extractCountryCallingCode.js","../../../node_modules/libphonenumber-js/source/helpers/applyInternationalSeparatorStyle.js","../../../node_modules/libphonenumber-js/source/helpers/formatNationalNumberUsingFormat.js","../../../node_modules/libphonenumber-js/source/helpers/getIddPrefix.js","../../../node_modules/libphonenumber-js/source/helpers/extension/createExtensionPattern.js","../../../node_modules/libphonenumber-js/source/helpers/isViablePhoneNumber.js","../../../node_modules/libphonenumber-js/source/helpers/RFC3966.js","../../../node_modules/libphonenumber-js/source/format.js","../../../node_modules/libphonenumber-js/source/PhoneNumber.js","../../../node_modules/libphonenumber-js/source/ParseError.js","../../../node_modules/libphonenumber-js/source/helpers/extension/extractExtension.js","../../../node_modules/libphonenumber-js/source/helpers/parseDigits.js","../../../node_modules/libphonenumber-js/source/parseIncompletePhoneNumber.js","../../../node_modules/libphonenumber-js/source/helpers/extractPhoneContext.js","../../../node_modules/libphonenumber-js/source/helpers/extractFormattedPhoneNumberFromPossibleRfc3966NumberUri.js","../../../node_modules/libphonenumber-js/source/parse.js","../../../node_modules/libphonenumber-js/source/parsePhoneNumberWithError_.js","../../../node_modules/libphonenumber-js/source/normalizeArguments.js","../../../node_modules/libphonenumber-js/source/parsePhoneNumber_.js","../../../node_modules/libphonenumber-js/source/parsePhoneNumber.js","../../../node_modules/libphonenumber-js/min/exports/parsePhoneNumber.js","../../client/src/api/base.ts","../../client/src/api/apps.ts","../../client/src/api/builders.ts","../../client/src/api/cel.ts","../../client/src/api/supervisors.ts","../../client/src/api/templates.ts","../../client/src/api/abilities.ts","../../client/src/api/accessGrants.ts","../../client/src/api/admin.ts","../../client/src/api/agents.ts","../../client/src/api/aiModels.ts","../../client/src/api/apiKeys.ts","../../client/src/api/assignments.ts","../../client/src/api/assistants.ts","../../client/src/api/auth.ts","../../client/src/api/calendars.ts","../../client/src/api/calls.ts","../../client/src/api/chats.ts","../../client/src/api/customToolkits.ts","../../client/src/api/dataTypes.ts","../../client/src/api/discord-bots.ts","../../client/src/api/slack-apps.ts","../../client/src/api/events.ts","../../client/src/api/features.ts","../../client/src/api/fhir-connections.ts","../../client/src/api/files.ts","../../client/src/api/inboxes.ts","../../client/src/api/inquiries.ts","../../client/src/api/appConnections.ts","../../client/src/api/mcpServers.ts","../../client/src/api/members.ts","../../client/src/api/milestones.ts","../../client/src/api/monday.ts","../../client/src/api/notificationRules.ts","../../client/src/api/operator-groups.ts","../../client/src/api/oauth.ts","../../client/src/api/phoneNumbers.ts","../../client/src/api/pronunciations.ts","../../client/src/api/qualifications.ts","../../client/src/api/reports.ts","../../client/src/api/sites.ts","../../client/src/api/subscriptions.ts","../../client/src/api/tasks.ts","../../client/src/api/toolkits.ts","../../client/src/api/workflows.ts","../../client/src/api/workspaceInvitations.ts","../../client/src/api/workspaces.ts","../../client/src/api/workflow-notes.ts","../../client/src/client/api-modules.ts","../../client/src/client/bindings/access-grants.ts","../../client/src/client/bindings/agents.ts","../../client/src/client/bindings/tasks.ts","../../client/src/client/bindings/chats.ts","../../client/src/client/bindings/calls.ts","../../client/src/client/bindings/data-types.ts","../../client/src/client/bindings/members.ts","../../client/src/client/bindings/admin.ts","../../client/src/client/bindings/workspaces.ts","../../client/src/client/bindings/auth.ts","../../client/src/client/bindings/sites.ts","../../client/src/client/bindings/files.ts","../../client/src/client/bindings/events.ts","../../client/src/client/bindings/workflows.ts","../../client/src/client/bindings/calendars.ts","../../client/src/client/bindings/communications.ts","../../client/src/client/bindings/toolkits.ts","../../client/src/client/bindings/billing.ts","../../client/src/client/bindings/apps.ts","../../client/src/client/bindings/integrations.ts","../../client/src/client/bindings/operator-groups.ts","../../client/src/client/bindings/pronunciations.ts","../../client/src/client/bindings/qualifications.ts","../../client/src/client/client.ts","../../client/src/constants/chatTypes.ts","../../client/src/cli/config.ts","../../client/src/cli/auth.ts","../../client/src/cli/ui.ts","../../gr-cli/src/lib/errors.ts","../../gr-cli/src/lib/args.ts","../../gr-cli/src/lib/output.ts","../../gr-cli/src/lib/context.ts","../../gr-cli/src/lib/input.ts","../../gr-cli/src/lib/registry.ts","../../gr-cli/src/lib/types.ts","../../gr-cli/src/lib/crud.ts","../../gr-cli/src/domains/tasks.ts","../../gr-cli/src/domains/chats.ts","../../gr-cli/src/domains/members.ts","../../gr-cli/src/domains/workspaces.ts","../../gr-cli/src/domains/workflows.ts","../../gr-cli/src/domains/agents.ts","../../gr-cli/src/domains/assistants.ts","../../gr-cli/src/domains/assignments.ts","../../gr-cli/src/domains/data-types.ts","../../gr-cli/src/domains/sites.ts","../../gr-cli/src/domains/files.ts","../../gr-cli/src/domains/events.ts","../../gr-cli/src/domains/calendars.ts","../../gr-cli/src/domains/qualifications.ts","../../gr-cli/src/domains/phone-numbers.ts","../../gr-cli/src/domains/inboxes.ts","../../gr-cli/src/domains/operator-groups.ts","../../gr-cli/src/domains/access-grants.ts","../../gr-cli/src/domains/notification-rules.ts","../../gr-cli/src/domains/supervisors.ts","../../gr-cli/src/domains/milestones.ts","../../gr-cli/src/domains/custom-toolkits.ts","../../gr-cli/src/domains/mcp-servers.ts","../../gr-cli/src/domains/api-keys.ts","../../gr-cli/src/domains/subscriptions.ts","../../gr-cli/src/domains/reports.ts","../../gr-cli/src/domains/ai-models.ts","../../gr-cli/src/domains/features.ts","../../gr-cli/src/domains/pronunciations.ts","../../gr-cli/src/domains/org.ts","../../gr-cli/src/domains/auth-manage.ts","../../gr-cli/src/domains/apps.ts","../../gr-cli/src/domains/oauth.ts","../../gr-cli/src/domains/integrations/discord-bots.ts","../../gr-cli/src/domains/integrations/slack-apps.ts","../../gr-cli/src/domains/integrations/fhir-connections.ts","../../gr-cli/src/domains/integrations/app-connections.ts","../../gr-cli/src/domains/integrations/monday.ts","../../gr-cli/src/domains/admin/accounts.ts","../../gr-cli/src/domains/admin/workspaces.ts","../../gr-cli/src/domains/admin/organizations.ts","../../gr-cli/src/domains/admin/billing.ts","../../gr-cli/src/domains/admin/site-mappings.ts","../../gr-cli/src/domains/index.ts","../../gr-cli/src/commands/dev.ts","../../gr-cli/src/commands/login.ts","../../gr-cli/src/commands/organizations.ts","../../gr-cli/src/commands/whoami.ts","../src/gr.ts"],"names":["a","b","split","pa","pb","i","na","Number","nb","isNaN","objectConstructor","constructor","object","undefined","V3","V4","DEFAULT_EXT_PREFIX","CALLING_CODE_REG_EXP","Metadata","metadata","_classCallCheck","validateMetadata","setVersion","call","_createClass","key","value","getCountries","Object","keys","countries","filter","_","getCountryMetadata","countryCode","nonGeographic","v1","v2","v3","nonGeographical","hasCountry","country","hasCallingCode","callingCode","getCountryCodesForCallingCode","countryCodes","countryCallingCodes","length","isNonGeographicCallingCode","selectNumberingPlan","test","Error","concat","numberingPlan","NumberingPlan","getNumberingPlanMetadata","getCountryCodeForCallingCode","countryCallingCode","IDDPrefix","defaultIDDPrefix","nationalNumberPattern","possibleLengths","formats","nationalPrefixForParsing","nationalPrefixTransformRule","leadingDigits","hasTypes","type","ext","country_phone_code_to_countries","country_calling_codes","chooseCountryByCountryCallingCode","hasSelectedNumberingPlan","globalMetadataObject","getDefaultCountryMetadataForRegion","_getFormats","_this","map","Format","nationalPrefix","_getNationalPrefixFormattingRule","nationalPrefixFormattingRule","_nationalPrefixForParsing","_getNationalPrefixIsOptionalWhenFormatting","nationalPrefixIsOptionalWhenFormattingInNationalFormat","types","getType","Type","format","_format","pattern","leadingDigitsPatterns","nationalPrefixIsMandatoryWhenFormattingInNationalFormat","usesNationalPrefix","FIRST_GROUP_ONLY_PREFIX_PATTERN","internationalFormat","isObject","join","typeOf","_typeof","getCountryCallingCode","isSupportedCountry","hasOwnProperty","version","v4","compare","nationalNumber","checkNumberLengthForType","type_info","possible_lengths","actual_length","minimum_length","indexOf","input","options","phone","isPossibleNumber","checkNumberLength","text","regularExpressionText","RegExp","NON_FIXED_LINE_PHONE_TYPES","matchesEntirely","isNumberTypeEqualTo","_iterator","_createForOfIteratorHelperLoose","_step","done","typeDefinition","getNumberType","_metadata","possibleCountries","couldNationalNumberBelongToCountry","MIN_LENGTH_FOR_NSN","MAX_LENGTH_FOR_NSN","MAX_LENGTH_COUNTRY_CODE","VALID_DIGITS","DASHES","SLASHES","DOTS","WHITESPACE","BRACKETS","TILDES","VALID_PUNCTUATION","PLUS_CHARS","CAPTURING_DIGIT_PATTERN","number","countryMetadata","IDDPrefixPattern","search","slice","match","matchedGroups","prefixPattern","prefixMatch","exec","carrierCode","capturedGroupsCount","hasCapturedGroups","replace","prefixBeforeNationalNumber","possiblePositionOfTheFirstCapturedGroup","possibleNationalPrefix","nationalPhoneNumber","_ref","getCountryByNationalNumber","_extractNationalNumbe","extractNationalNumberFromPossiblyIncompleteNumber","shouldHaveExtractedNationalPrefix","getCountryByCallingCode","isPossibleIncompleteNationalNumber","nationalNumberBefore","nationalNumberAfter","defaultCountry","defaultCallingCode","possibleShorterNumber","extractNationalNumber","possibleShorterNationalNumber","_extractNationalNumbe2","isNumberWithIddPrefix","numberWithoutIDD","stripIddPrefix","_extractCountryCallin","extractCountryCallingCodeFromInternationalNumberWithoutPlusSign","shorterNumber","countryCallingCodeSource","formattedNumber","trim","FIRST_GROUP_PATTERN","useInternationalFormat","withNationalPrefix","applyInternationalSeparatorStyle","SINGLE_IDD_PREFIX_REG_EXP","RFC3966_EXTN_PREFIX","getExtensionDigitsPattern","maxLength","purpose","extLimitAfterExplicitLabel","extLimitAfterLikelyLabel","extLimitAfterAmbiguousChar","extLimitWhenNotSure","possibleSeparatorsBetweenNumberAndExtLabel","possibleCharsAfterExtLabel","optionalExtnSuffix","explicitExtLabels","ambiguousExtLabels","ambiguousSeparator","possibleSeparatorsNumberExtLabelNoComma","autoDiallingAndExtLabelsFound","rfcExtn","explicitExtn","ambiguousExtn","americanStyleExtnWithSuffix","autoDiallingExtn","onlyCommasExtn","MIN_LENGTH_PHONE_NUMBER_PATTERN","VALID_PHONE_NUMBER","VALID_PHONE_NUMBER_START_REG_EXP","VALID_PHONE_NUMBER_WITH_EXTENSION","createExtensionPattern","VALID_PHONE_NUMBER_PATTERN","isViablePhoneNumberStart","formatRFC3966","DEFAULT_OPTIONS","formatExtension","extension","merge","formatNationalNumber","addExtension","fromCountry","formatIDD","formatAs","chooseFormatForNumber","formatNationalNumberUsingFormat","availableFormats","pickFirstMatchingElement","lastLeadingDigitsPattern","fromCountryCallingCode","iddPrefix","getIddPrefix","_len","arguments","objects","Array","_key","elements","testFunction","PhoneNumber","countryOrCountryCallingCode","TypeError","e164Number","E164_NUMBER_REGEXP","extractCountryCallingCode","_getCountryAndCountry","getCountryAndCountryCallingCode","getMetadata","setExt","getPossibleCountries","getPossibleCountriesForNumber","isPossible","isValid","isValidNumber","isNonGeographic","isEqual","phoneNumber","formatNumber","_objectSpread","formatNational","formatInternational","getURI","isCountryCode","metadataJson","ParseError","_Error","code","_callSuper","setPrototypeOf","prototype","name","_inherits","_wrapNativeSuper","EXTN_PATTERN","start","numberWithoutExtension","matches","DIGITS","parseDigit","character","string","result","parsePhoneNumberCharacter","prevParsedCharacters","eventListener","PLUS_SIGN","RFC3966_VISUAL_SEPARATOR_","RFC3966_PHONE_DIGIT_","RFC3966_GLOBAL_NUMBER_DIGITS_","RFC3966_GLOBAL_NUMBER_DIGITS_PATTERN_","ALPHANUM_","RFC3966_DOMAINLABEL_","VALID_ALPHA_","RFC3966_TOPLABEL_","RFC3966_DOMAINNAME_","RFC3966_DOMAINNAME_PATTERN_","RFC3966_PREFIX_","RFC3966_PHONE_CONTEXT_","RFC3966_ISDN_SUBADDRESS_","numberToExtractFrom","indexOfPhoneContext","phoneContextStart","phoneContextEnd","substring","isPhoneContextValid","phoneContext","numberToParse","extractFormattedPhoneNumber","extractPhoneContext","phoneNumberString","charAt","indexOfRfc3966Prefix","indexOfNationalNumber","indexOfIsdn","MAX_INPUT_STRING_LENGTH","PHONE_NUMBER_START_PATTERN","AFTER_PHONE_NUMBER_END_PATTERN","_parseInput","parseInput","extract","formattedPhoneNumber","error","_parsePhoneNumber","parsePhoneNumber","__countryCallingCodeSource","valid","extended","possible","throwOnError","startsAt","extractFormattedPhoneNumberFromPossibleRfc3966NumberUri","isViablePhoneNumber","withExtensionStripped","extractExtension","parseIncompletePhoneNumber","exactCountry","parse","args","_Array$prototype$slic","_Array$prototype$slic2","_slicedToArray","arg_1","arg_2","arg_3","arg_4","parsePhoneNumberWithError","_normalizeArguments","normalizeArguments","parsePhoneNumber_","api","stderr","readFileSync","unwrapItems","COLUMNS","LABEL_COLUMNS","FILTER_COLUMNS","MESSAGE_COLUMNS","EVENT_COLUMNS","TOOL_COLUMNS","ROLE_COLUMNS","extraCommands","ORG_COLUMNS","PRODUCT_COLUMNS","existsSync","mkdirSync","writeFileSync","ApiClient"],"mappings":"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C,IAAI,CAAA,EAAE,KAAA,EAAM,CAAC,IAAI,CAAA,EAAE,KAAA,EAAM,CAAC,IAAI,GAAE,KAAA,EAAM,CAAC,IAAI,CAAA,EAAE,OAAM,CAAC,IAAI,CAAA,EAAE,KAAA,EAAM,CAAC,IAAI,CAAA,EAAE,OAAM,CAAC,IAAI,GAAE,KAAA,EAAM,CAAC,IAAI,CAAA,EAAE,OAAM,CAAC,IAAI,CAAA,EAAE,KAAA,EAAM,CAAC,IAAI,CAAA,EAAE,KAAA,EAAM,CAAC,IAAI,CAAA,EAAE,KAAA,EAAM,CAAC,IAAI,CAAA,EAAE,OAAM,CAAC,IAAI,CAAA,EAAE,KAAA,EAAM,CAAC,IAAI,CAAA,EAAE,KAAA,EAAM,CAAC,IAAI,CAAA,EAAE,KAAA,EAAM,CAAC,IAAI,GAAE,KAAA,EAAM,CAAC,IAAI,CAAA,EAAE,KAAA,EAAM,CAAC,IAAI,CAAA,EAAE,KAAA,EAAM,CAAC,IAAI,CAAA,EAAE,KAAA,EAAM,CAAC,IAAI,GAAE,KAAA,EAAM,CAAC,IAAI,CAAA,EAAE,OAAM,CAAC,IAAI,GAAE,KAAA,EAAM,CAAC,IAAI,CAAA,EAAE,KAAA,EAAM,CAAC,IAAI,GAAE,KAAA,EAAM,CAAC,IAAI,CAAA,EAAE,OAAM,CAAC,IAAI,CAAA,EAAE,KAAA,EAAM,CAAC,IAAI,CAAA,EAAE,OAAM,CAAC,IAAI,GAAE,KAAA,EAAM,CAAC,IAAI,CAAA,EAAE,OAAM,CAAC,IAAI,CAAA,EAAE,KAAA,EAAM,CAAC,IAAI,CAAA,EAAE,KAAA,EAAM,CAAC,IAAI,CAAA,EAAE,KAAA,EAAM,CAAC,IAAI,CAAA,EAAE,OAAM,CAAC,IAAI,CAAA,EAAE,KAAA,EAAM,CAAC,IAAI,CAAA,EAAE,KAAA,EAAM,CAAC,IAAI,CAAA,EAAE,KAAA,EAAM,CAAC,IAAI,GAAE,KAAA,EAAM,CAAC,IAAI,CAAA,EAAE,KAAA,EAAM,CAAC,IAAI,CAAA,EAAE,KAAA,EAAM,CAAC,IAAI,CAAA,EAAE,KAAA,EAAM,CAAC,IAAI,GAAE,KAAA,EAAM,CAAC,IAAI,CAAA,EAAE,OAAM,CAAC,IAAI,CAAA,EAAE,KAAA,EAAM,CAAC,IAA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","file":"gr.js","sourcesContent":["// This file is a workaround for a bug in web browsers' \"native\"\n// ES6 importing system which is uncapable of importing \"*.json\" files.\n// https://github.com/catamphetamine/libphonenumber-js/issues/239\nexport default {\"version\":4,\"country_calling_codes\":{\"1\":[\"US\",\"AG\",\"AI\",\"AS\",\"BB\",\"BM\",\"BS\",\"CA\",\"DM\",\"DO\",\"GD\",\"GU\",\"JM\",\"KN\",\"KY\",\"LC\",\"MP\",\"MS\",\"PR\",\"SX\",\"TC\",\"TT\",\"VC\",\"VG\",\"VI\"],\"7\":[\"RU\",\"KZ\"],\"20\":[\"EG\"],\"27\":[\"ZA\"],\"30\":[\"GR\"],\"31\":[\"NL\"],\"32\":[\"BE\"],\"33\":[\"FR\"],\"34\":[\"ES\"],\"36\":[\"HU\"],\"39\":[\"IT\",\"VA\"],\"40\":[\"RO\"],\"41\":[\"CH\"],\"43\":[\"AT\"],\"44\":[\"GB\",\"GG\",\"IM\",\"JE\"],\"45\":[\"DK\"],\"46\":[\"SE\"],\"47\":[\"NO\",\"SJ\"],\"48\":[\"PL\"],\"49\":[\"DE\"],\"51\":[\"PE\"],\"52\":[\"MX\"],\"53\":[\"CU\"],\"54\":[\"AR\"],\"55\":[\"BR\"],\"56\":[\"CL\"],\"57\":[\"CO\"],\"58\":[\"VE\"],\"60\":[\"MY\"],\"61\":[\"AU\",\"CC\",\"CX\"],\"62\":[\"ID\"],\"63\":[\"PH\"],\"64\":[\"NZ\"],\"65\":[\"SG\"],\"66\":[\"TH\"],\"81\":[\"JP\"],\"82\":[\"KR\"],\"84\":[\"VN\"],\"86\":[\"CN\"],\"90\":[\"TR\"],\"91\":[\"IN\"],\"92\":[\"PK\"],\"93\":[\"AF\"],\"94\":[\"LK\"],\"95\":[\"MM\"],\"98\":[\"IR\"],\"211\":[\"SS\"],\"212\":[\"MA\",\"EH\"],\"213\":[\"DZ\"],\"216\":[\"TN\"],\"218\":[\"LY\"],\"220\":[\"GM\"],\"221\":[\"SN\"],\"222\":[\"MR\"],\"223\":[\"ML\"],\"224\":[\"GN\"],\"225\":[\"CI\"],\"226\":[\"BF\"],\"227\":[\"NE\"],\"228\":[\"TG\"],\"229\":[\"BJ\"],\"230\":[\"MU\"],\"231\":[\"LR\"],\"232\":[\"SL\"],\"233\":[\"GH\"],\"234\":[\"NG\"],\"235\":[\"TD\"],\"236\":[\"CF\"],\"237\":[\"CM\"],\"238\":[\"CV\"],\"239\":[\"ST\"],\"240\":[\"GQ\"],\"241\":[\"GA\"],\"242\":[\"CG\"],\"243\":[\"CD\"],\"244\":[\"AO\"],\"245\":[\"GW\"],\"246\":[\"IO\"],\"247\":[\"AC\"],\"248\":[\"SC\"],\"249\":[\"SD\"],\"250\":[\"RW\"],\"251\":[\"ET\"],\"252\":[\"SO\"],\"253\":[\"DJ\"],\"254\":[\"KE\"],\"255\":[\"TZ\"],\"256\":[\"UG\"],\"257\":[\"BI\"],\"258\":[\"MZ\"],\"260\":[\"ZM\"],\"261\":[\"MG\"],\"262\":[\"RE\",\"YT\"],\"263\":[\"ZW\"],\"264\":[\"NA\"],\"265\":[\"MW\"],\"266\":[\"LS\"],\"267\":[\"BW\"],\"268\":[\"SZ\"],\"269\":[\"KM\"],\"290\":[\"SH\",\"TA\"],\"291\":[\"ER\"],\"297\":[\"AW\"],\"298\":[\"FO\"],\"299\":[\"GL\"],\"350\":[\"GI\"],\"351\":[\"PT\"],\"352\":[\"LU\"],\"353\":[\"IE\"],\"354\":[\"IS\"],\"355\":[\"AL\"],\"356\":[\"MT\"],\"357\":[\"CY\"],\"358\":[\"FI\",\"AX\"],\"359\":[\"BG\"],\"370\":[\"LT\"],\"371\":[\"LV\"],\"372\":[\"EE\"],\"373\":[\"MD\"],\"374\":[\"AM\"],\"375\":[\"BY\"],\"376\":[\"AD\"],\"377\":[\"MC\"],\"378\":[\"SM\"],\"380\":[\"UA\"],\"381\":[\"RS\"],\"382\":[\"ME\"],\"383\":[\"XK\"],\"385\":[\"HR\"],\"386\":[\"SI\"],\"387\":[\"BA\"],\"389\":[\"MK\"],\"420\":[\"CZ\"],\"421\":[\"SK\"],\"423\":[\"LI\"],\"500\":[\"FK\"],\"501\":[\"BZ\"],\"502\":[\"GT\"],\"503\":[\"SV\"],\"504\":[\"HN\"],\"505\":[\"NI\"],\"506\":[\"CR\"],\"507\":[\"PA\"],\"508\":[\"PM\"],\"509\":[\"HT\"],\"590\":[\"GP\",\"BL\",\"MF\"],\"591\":[\"BO\"],\"592\":[\"GY\"],\"593\":[\"EC\"],\"594\":[\"GF\"],\"595\":[\"PY\"],\"596\":[\"MQ\"],\"597\":[\"SR\"],\"598\":[\"UY\"],\"599\":[\"CW\",\"BQ\"],\"670\":[\"TL\"],\"672\":[\"NF\"],\"673\":[\"BN\"],\"674\":[\"NR\"],\"675\":[\"PG\"],\"676\":[\"TO\"],\"677\":[\"SB\"],\"678\":[\"VU\"],\"679\":[\"FJ\"],\"680\":[\"PW\"],\"681\":[\"WF\"],\"682\":[\"CK\"],\"683\":[\"NU\"],\"685\":[\"WS\"],\"686\":[\"KI\"],\"687\":[\"NC\"],\"688\":[\"TV\"],\"689\":[\"PF\"],\"690\":[\"TK\"],\"691\":[\"FM\"],\"692\":[\"MH\"],\"850\":[\"KP\"],\"852\":[\"HK\"],\"853\":[\"MO\"],\"855\":[\"KH\"],\"856\":[\"LA\"],\"880\":[\"BD\"],\"886\":[\"TW\"],\"960\":[\"MV\"],\"961\":[\"LB\"],\"962\":[\"JO\"],\"963\":[\"SY\"],\"964\":[\"IQ\"],\"965\":[\"KW\"],\"966\":[\"SA\"],\"967\":[\"YE\"],\"968\":[\"OM\"],\"970\":[\"PS\"],\"971\":[\"AE\"],\"972\":[\"IL\"],\"973\":[\"BH\"],\"974\":[\"QA\"],\"975\":[\"BT\"],\"976\":[\"MN\"],\"977\":[\"NP\"],\"992\":[\"TJ\"],\"993\":[\"TM\"],\"994\":[\"AZ\"],\"995\":[\"GE\"],\"996\":[\"KG\"],\"998\":[\"UZ\"]},\"countries\":{\"AC\":[\"247\",\"00\",\"(?:[01589]\\\\d|[46])\\\\d{4}\",[5,6]],\"AD\":[\"376\",\"00\",\"(?:1|6\\\\d)\\\\d{7}|[135-9]\\\\d{5}\",[6,8,9],[[\"(\\\\d{3})(\\\\d{3})\",\"$1 $2\",[\"[135-9]\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"1\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"6\"]]]],\"AE\":[\"971\",\"00\",\"(?:[4-7]\\\\d|9[0-689])\\\\d{7}|800\\\\d{2,9}|[2-4679]\\\\d{7}\",[5,6,7,8,9,10,11,12],[[\"(\\\\d{3})(\\\\d{2,9})\",\"$1 $2\",[\"60|8\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[236]|[479][2-8]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d)(\\\\d{5})\",\"$1 $2 $3\",[\"[479]\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"5\"],\"0$1\"]],\"0\"],\"AF\":[\"93\",\"00\",\"[2-7]\\\\d{8}\",[9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2-7]\"],\"0$1\"]],\"0\"],\"AG\":[\"1\",\"011\",\"(?:268|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([457]\\\\d{6})$|1\",\"268$1\",0,\"268\"],\"AI\":[\"1\",\"011\",\"(?:264|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2457]\\\\d{6})$|1\",\"264$1\",0,\"264\"],\"AL\":[\"355\",\"00\",\"(?:700\\\\d\\\\d|900)\\\\d{3}|8\\\\d{5,7}|(?:[2-5]|6\\\\d)\\\\d{7}\",[6,7,8,9],[[\"(\\\\d{3})(\\\\d{3,4})\",\"$1 $2\",[\"80|9\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"4[2-6]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2358][2-5]|4\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[23578]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"6\"],\"0$1\"]],\"0\"],\"AM\":[\"374\",\"00\",\"(?:[1-489]\\\\d|55|60|77)\\\\d{6}\",[8],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"[89]0\"],\"0 $1\"],[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"2|3[12]\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"1|47\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"[3-9]\"],\"0$1\"]],\"0\"],\"AO\":[\"244\",\"00\",\"[29]\\\\d{8}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[29]\"]]]],\"AR\":[\"54\",\"00\",\"(?:11|[89]\\\\d\\\\d)\\\\d{8}|[2368]\\\\d{9}\",[10,11],[[\"(\\\\d{4})(\\\\d{2})(\\\\d{4})\",\"$1 $2-$3\",[\"2(?:2[024-9]|3[0-59]|47|6[245]|9[02-8])|3(?:3[28]|4[03-9]|5[2-46-8]|7[1-578]|8[2-9])\",\"2(?:[23]02|6(?:[25]|4[6-8])|9(?:[02356]|4[02568]|72|8[23]))|3(?:3[28]|4(?:[04679]|3[5-8]|5[4-68]|8[2379])|5(?:[2467]|3[237]|8[2-5])|7[1-578]|8(?:[2469]|3[2578]|5[4-8]|7[36-8]|8[5-8]))|2(?:2[24-9]|3[1-59]|47)\",\"2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3[78]|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8[23])|7[1-578]|8(?:[2469]|3[278]|5[56][46]|86[3-6]))|2(?:2[24-9]|3[1-59]|47)|38(?:[58][78]|7[378])|3(?:4[35][56]|58[45]|8(?:[38]5|54|76))[4-6]\",\"2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3(?:5(?:4[0-25689]|[56])|[78])|58|8[2379])|5(?:[2467]|3[237]|8(?:[23]|4(?:[45]|60)|5(?:4[0-39]|5|64)))|7[1-578]|8(?:[2469]|3[278]|54(?:4|5[13-7]|6[89])|86[3-6]))|2(?:2[24-9]|3[1-59]|47)|38(?:[58][78]|7[378])|3(?:454|85[56])[46]|3(?:4(?:36|5[56])|8(?:[38]5|76))[4-6]\"],\"0$1\",1],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2-$3\",[\"1\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"[68]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2-$3\",[\"[23]\"],\"0$1\",1],[\"(\\\\d)(\\\\d{4})(\\\\d{2})(\\\\d{4})\",\"$2 15-$3-$4\",[\"9(?:2[2-469]|3[3-578])\",\"9(?:2(?:2[024-9]|3[0-59]|47|6[245]|9[02-8])|3(?:3[28]|4[03-9]|5[2-46-8]|7[1-578]|8[2-9]))\",\"9(?:2(?:[23]02|6(?:[25]|4[6-8])|9(?:[02356]|4[02568]|72|8[23]))|3(?:3[28]|4(?:[04679]|3[5-8]|5[4-68]|8[2379])|5(?:[2467]|3[237]|8[2-5])|7[1-578]|8(?:[2469]|3[2578]|5[4-8]|7[36-8]|8[5-8])))|92(?:2[24-9]|3[1-59]|47)\",\"9(?:2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3[78]|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8[23])|7[1-578]|8(?:[2469]|3[278]|5(?:[56][46]|[78])|7[378]|8(?:6[3-6]|[78]))))|92(?:2[24-9]|3[1-59]|47)|93(?:4[35][56]|58[45]|8(?:[38]5|54|76))[4-6]\",\"9(?:2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3(?:5(?:4[0-25689]|[56])|[78])|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8(?:[23]|4(?:[45]|60)|5(?:4[0-39]|5|64)))|7[1-578]|8(?:[2469]|3[278]|5(?:4(?:4|5[13-7]|6[89])|[56][46]|[78])|7[378]|8(?:6[3-6]|[78]))))|92(?:2[24-9]|3[1-59]|47)|93(?:4(?:36|5[56])|8(?:[38]5|76))[4-6]\"],\"0$1\",0,\"$1 $2 $3-$4\"],[\"(\\\\d)(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$2 15-$3-$4\",[\"91\"],\"0$1\",0,\"$1 $2 $3-$4\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{5})\",\"$1-$2-$3\",[\"8\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$2 15-$3-$4\",[\"9\"],\"0$1\",0,\"$1 $2 $3-$4\"]],\"0\",0,\"0?(?:(11|2(?:2(?:02?|[13]|2[13-79]|4[1-6]|5[2457]|6[124-8]|7[1-4]|8[13-6]|9[1267])|3(?:02?|1[467]|2[03-6]|3[13-8]|[49][2-6]|5[2-8]|[67])|4(?:7[3-578]|9)|6(?:[0136]|2[24-6]|4[6-8]?|5[15-8])|80|9(?:0[1-3]|[19]|2\\\\d|3[1-6]|4[02568]?|5[2-4]|6[2-46]|72?|8[23]?))|3(?:3(?:2[79]|6|8[2578])|4(?:0[0-24-9]|[12]|3[5-8]?|4[24-7]|5[4-68]?|6[02-9]|7[126]|8[2379]?|9[1-36-8])|5(?:1|2[1245]|3[237]?|4[1-46-9]|6[2-4]|7[1-6]|8[2-5]?)|6[24]|7(?:[069]|1[1568]|2[15]|3[145]|4[13]|5[14-8]|7[2-57]|8[126])|8(?:[01]|2[15-7]|3[2578]?|4[13-6]|5[4-8]?|6[1-357-9]|7[36-8]?|8[5-8]?|9[124])))15)?\",\"9$1\"],\"AS\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|684|900)\\\\d{7}\",[10],0,\"1\",0,\"([267]\\\\d{6})$|1\",\"684$1\",0,\"684\"],\"AT\":[\"43\",\"00\",\"1\\\\d{3,12}|2\\\\d{6,12}|43(?:(?:0\\\\d|5[02-9])\\\\d{3,9}|2\\\\d{4,5}|[3467]\\\\d{4}|8\\\\d{4,6}|9\\\\d{4,7})|5\\\\d{4,12}|8\\\\d{7,12}|9\\\\d{8,12}|(?:[367]\\\\d|4[0-24-9])\\\\d{4,11}\",[4,5,6,7,8,9,10,11,12,13],[[\"(\\\\d)(\\\\d{3,12})\",\"$1 $2\",[\"1(?:11|[2-9])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})\",\"$1 $2\",[\"517\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3,5})\",\"$1 $2\",[\"5[079]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3,10})\",\"$1 $2\",[\"(?:31|4)6|51|6(?:48|5[0-3579]|[6-9])|7(?:20|32|8)|[89]\",\"(?:31|4)6|51|6(?:485|5[0-3579]|[6-9])|7(?:20|32|8)|[89]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3,9})\",\"$1 $2\",[\"[2-467]|5[2-6]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"5\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4,7})\",\"$1 $2 $3\",[\"5\"],\"0$1\"]],\"0\"],\"AU\":[\"61\",\"001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011\",\"1(?:[0-79]\\\\d{7}(?:\\\\d(?:\\\\d{2})?)?|8[0-24-9]\\\\d{7})|[2-478]\\\\d{8}|1\\\\d{4,7}\",[5,6,7,8,9,10,12],[[\"(\\\\d{2})(\\\\d{3,4})\",\"$1 $2\",[\"16\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2,4})\",\"$1 $2 $3\",[\"16\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"14|4\"],\"0$1\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[2378]\"],\"(0$1)\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1(?:30|[89])\"]]],\"0\",0,\"(183[12])|0\",0,0,0,[[\"(?:(?:241|349)0\\\\d\\\\d|8(?:51(?:0(?:0[03-9]|[12479]\\\\d|3[2-9]|5[0-8]|6[1-9]|8[0-7])|1(?:[0235689]\\\\d|1[0-69]|4[0-589]|7[0-47-9])|2(?:0[0-79]|[18][13579]|2[14-9]|3[0-46-9]|[4-6]\\\\d|7[89]|9[0-4])|[34]\\\\d\\\\d)|91(?:(?:[0-58]\\\\d|6[0135-9])\\\\d|7(?:0[0-24-9]|[1-9]\\\\d)|9(?:[0-46-9]\\\\d|5[0-79]))))\\\\d{3}|(?:2(?:[0-26-9]\\\\d|3[0-8]|4[02-9]|5[0135-9])|3(?:[0-3589]\\\\d|4[0-578]|6[1-9]|7[0-35-9])|7(?:[013-57-9]\\\\d|2[0-8])|8(?:55|6[0-8]|[78]\\\\d|9[02-9]))\\\\d{6}\",[9]],[\"4(?:79[01]|83[0-36-9]|95[0-3])\\\\d{5}|4(?:[0-36]\\\\d|4[047-9]|[58][0-24-9]|7[02-8]|9[0-47-9])\\\\d{6}\",[9]],[\"180(?:0\\\\d{3}|2)\\\\d{3}\",[7,10]],[\"190[0-26]\\\\d{6}\",[10]],0,0,0,[\"163\\\\d{2,6}\",[5,6,7,8,9]],[\"14(?:5(?:1[0458]|[23][458])|71\\\\d)\\\\d{4}\",[9]],[\"13(?:00\\\\d{6}(?:\\\\d{2})?|45[0-4]\\\\d{3})|13\\\\d{4}\",[6,8,10,12]]],\"0011\"],\"AW\":[\"297\",\"00\",\"(?:[25-79]\\\\d\\\\d|800)\\\\d{4}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[25-9]\"]]]],\"AX\":[\"358\",\"00|99(?:[01469]|5(?:[14]1|3[23]|5[59]|77|88|9[09]))\",\"2\\\\d{4,9}|35\\\\d{4,5}|(?:60\\\\d\\\\d|800)\\\\d{4,6}|7\\\\d{5,11}|(?:[14]\\\\d|3[0-46-9]|50)\\\\d{4,8}\",[5,6,7,8,9,10,11,12],0,\"0\",0,0,0,0,\"18\",0,\"00\"],\"AZ\":[\"994\",\"00\",\"365\\\\d{6}|(?:[124579]\\\\d|60|88)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"90\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"1[28]|2|365|46\",\"1[28]|2|365[45]|46\",\"1[28]|2|365(?:4|5[02])|46\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[13-9]\"],\"0$1\"]],\"0\"],\"BA\":[\"387\",\"00\",\"6\\\\d{8}|(?:[35689]\\\\d|49|70)\\\\d{6}\",[8,9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"6[1-3]|[7-9]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2-$3\",[\"[3-5]|6[56]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"6\"],\"0$1\"]],\"0\"],\"BB\":[\"1\",\"011\",\"(?:246|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-9]\\\\d{6})$|1\",\"246$1\",0,\"246\"],\"BD\":[\"880\",\"00\",\"[1-469]\\\\d{9}|8[0-79]\\\\d{7,8}|[2-79]\\\\d{8}|[2-9]\\\\d{7}|[3-9]\\\\d{6}|[57-9]\\\\d{5}\",[6,7,8,9,10],[[\"(\\\\d{2})(\\\\d{4,6})\",\"$1-$2\",[\"31[5-8]|[459]1\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3,7})\",\"$1-$2\",[\"3(?:[67]|8[013-9])|4(?:6[168]|7|[89][18])|5(?:6[128]|9)|6(?:[15]|28|4[14])|7[2-589]|8(?:0[014-9]|[12])|9[358]|(?:3[2-5]|4[235]|5[2-578]|6[0389]|76|8[3-7]|9[24])1|(?:44|66)[01346-9]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3,6})\",\"$1-$2\",[\"[13-9]|2[23]\"],\"0$1\"],[\"(\\\\d)(\\\\d{7,8})\",\"$1-$2\",[\"2\"],\"0$1\"]],\"0\"],\"BE\":[\"32\",\"00\",\"4\\\\d{8}|[1-9]\\\\d{7}\",[8,9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"(?:80|9)0\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[239]|4[23]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[15-8]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"4\"],\"0$1\"]],\"0\"],\"BF\":[\"226\",\"00\",\"(?:[025-7]\\\\d|44)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[024-7]\"]]]],\"BG\":[\"359\",\"00\",\"00800\\\\d{7}|[2-7]\\\\d{6,7}|[89]\\\\d{6,8}|2\\\\d{5}\",[6,7,8,9,12],[[\"(\\\\d)(\\\\d)(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"2\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"43[1-6]|70[1-9]\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2,3})\",\"$1 $2 $3\",[\"[356]|4[124-7]|7[1-9]|8[1-6]|9[1-7]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"(?:70|8)0\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{2})\",\"$1 $2 $3\",[\"43[1-7]|7\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[48]|9[08]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"9\"],\"0$1\"]],\"0\"],\"BH\":[\"973\",\"00\",\"[136-9]\\\\d{7}\",[8],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[13679]|8[02-4679]\"]]]],\"BI\":[\"257\",\"00\",\"(?:[267]\\\\d|31)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2367]\"]]]],\"BJ\":[\"229\",\"00\",\"(?:01\\\\d|8)\\\\d{7}\",[8,10],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4 $5\",[\"0\"]]]],\"BL\":[\"590\",\"00\",\"(?:590\\\\d|7090)\\\\d{5}|(?:69|80|9\\\\d)\\\\d{7}\",[9],0,\"0\",0,0,0,0,0,[[\"590(?:2[7-9]|3[3-7]|5[12]|87)\\\\d{4}\"],[\"(?:69(?:0\\\\d\\\\d|1(?:2[2-9]|3[0-5])|4(?:0[89]|1[2-6]|9\\\\d)|6(?:1[016-9]|5[0-4]|[67]\\\\d))|7090[0-4])\\\\d{4}\"],[\"80[0-5]\\\\d{6}\"],0,0,0,0,0,[\"9(?:(?:39[5-7]|76[018])\\\\d|475[0-6])\\\\d{4}\"]]],\"BM\":[\"1\",\"011\",\"(?:441|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-9]\\\\d{6})$|1\",\"441$1\",0,\"441\"],\"BN\":[\"673\",\"00\",\"[2-578]\\\\d{6}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-578]\"]]]],\"BO\":[\"591\",\"00(?:1\\\\d)?\",\"8001\\\\d{5}|(?:[2-467]\\\\d|50)\\\\d{6}\",[8,9],[[\"(\\\\d)(\\\\d{7})\",\"$1 $2\",[\"[235]|4[46]\"]],[\"(\\\\d{8})\",\"$1\",[\"[67]\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"]]],\"0\",0,\"0(1\\\\d)?\"],\"BQ\":[\"599\",\"00\",\"(?:[34]1|7\\\\d)\\\\d{5}\",[7],0,0,0,0,0,0,\"[347]\"],\"BR\":[\"55\",\"00(?:1[245]|2[1-35]|31|4[13]|[56]5|99)\",\"[1-467]\\\\d{9,10}|55[0-46-9]\\\\d{8}|[34]\\\\d{7}|55\\\\d{7,8}|(?:5[0-46-9]|[89]\\\\d)\\\\d{7,9}\",[8,9,10,11],[[\"(\\\\d{4})(\\\\d{4})\",\"$1-$2\",[\"300|4(?:0[02]|37|86)\",\"300|4(?:0(?:0|20)|370|864)\"]],[\"(\\\\d{3})(\\\\d{2,3})(\\\\d{4})\",\"$1 $2 $3\",[\"(?:[358]|90)0\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2-$3\",[\"(?:[14689][1-9]|2[12478]|3[1-578]|5[13-5]|7[13-579])[2-57]\"],\"($1)\"],[\"(\\\\d{2})(\\\\d{5})(\\\\d{4})\",\"$1 $2-$3\",[\"[16][1-9]|[2-57-9]\"],\"($1)\"]],\"0\",0,\"(?:0|90)(?:(1[245]|2[1-35]|31|4[13]|[56]5|99)(\\\\d{10,11}))?\",\"$2\"],\"BS\":[\"1\",\"011\",\"(?:242|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([3-8]\\\\d{6})$|1\",\"242$1\",0,\"242\"],\"BT\":[\"975\",\"00\",\"[178]\\\\d{7}|[2-8]\\\\d{6}\",[7,8],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2-6]|7[246]|8[2-4]\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"1[67]|[78]\"]]]],\"BW\":[\"267\",\"00\",\"(?:0800|(?:[37]|800)\\\\d)\\\\d{6}|(?:[2-6]\\\\d|90)\\\\d{5}\",[7,8,10],[[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"90\"]],[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[24-6]|3[15-9]\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[37]\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"0\"]],[\"(\\\\d{3})(\\\\d{4})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]]]],\"BY\":[\"375\",\"810\",\"(?:[12]\\\\d|33|44|902)\\\\d{7}|8(?:0[0-79]\\\\d{5,7}|[1-7]\\\\d{9})|8(?:1[0-489]|[5-79]\\\\d)\\\\d{7}|8[1-79]\\\\d{6,7}|8[0-79]\\\\d{5}|8\\\\d{5}\",[6,7,8,9,10,11],[[\"(\\\\d{3})(\\\\d{3})\",\"$1 $2\",[\"800\"],\"8 $1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2,4})\",\"$1 $2 $3\",[\"800\"],\"8 $1\"],[\"(\\\\d{4})(\\\\d{2})(\\\\d{3})\",\"$1 $2-$3\",[\"1(?:5[169]|6[3-5]|7[179])|2(?:1[35]|2[34]|3[3-5])\",\"1(?:5[169]|6(?:3[1-3]|4|5[125])|7(?:1[3-9]|7[0-24-6]|9[2-7]))|2(?:1[35]|2[34]|3[3-5])\"],\"8 0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2-$3-$4\",[\"1(?:[56]|7[467])|2[1-3]\"],\"8 0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2-$3-$4\",[\"[1-4]\"],\"8 0$1\"],[\"(\\\\d{3})(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"],\"8 $1\"]],\"8\",0,\"0|80?\",0,0,0,0,\"8~10\"],\"BZ\":[\"501\",\"00\",\"(?:0800\\\\d|[2-8])\\\\d{6}\",[7,11],[[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"[2-8]\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{4})(\\\\d{3})\",\"$1-$2-$3-$4\",[\"0\"]]]],\"CA\":[\"1\",\"011\",\"[2-9]\\\\d{9}|3\\\\d{6}\",[7,10],0,\"1\",0,0,0,0,0,[[\"(?:2(?:04|[23]6|[48]9|5[07]|63)|3(?:06|43|54|6[578]|82)|4(?:03|1[68]|[26]8|3[178]|50|74)|5(?:06|1[49]|48|79|8[147])|6(?:04|[18]3|39|47|72)|7(?:0[59]|42|53|78|8[02])|8(?:[06]7|19|25|7[39])|9(?:0[25]|42))[2-9]\\\\d{6}\",[10]],[\"\",[10]],[\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\",[10]],[\"900[2-9]\\\\d{6}\",[10]],[\"52(?:3(?:[2-46-9][02-9]\\\\d|5(?:[02-46-9]\\\\d|5[0-46-9]))|4(?:[2-478][02-9]\\\\d|5(?:[034]\\\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\\\d)|9(?:[05-9]\\\\d|2[0-5]|49)))\\\\d{4}|52[34][2-9]1[02-9]\\\\d{4}|(?:5(?:2[125-9]|3[23]|44|66|77|88)|6(?:22|33))[2-9]\\\\d{6}\",[10]],0,[\"310\\\\d{4}\",[7]],0,[\"600[2-9]\\\\d{6}\",[10]]]],\"CC\":[\"61\",\"001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011\",\"1(?:[0-79]\\\\d{8}(?:\\\\d{2})?|8[0-24-9]\\\\d{7})|[148]\\\\d{8}|1\\\\d{5,7}\",[6,7,8,9,10,12],0,\"0\",0,\"([59]\\\\d{7})$|0\",\"8$1\",0,0,[[\"8(?:51(?:0(?:02|31|60|89)|1(?:18|76)|223)|91(?:0(?:1[0-2]|29)|1(?:[28]2|50|79)|2(?:10|64)|3(?:[06]8|22)|4[29]8|62\\\\d|70[23]|959))\\\\d{3}\",[9]],[\"4(?:79[01]|83[0-36-9]|95[0-3])\\\\d{5}|4(?:[0-36]\\\\d|4[047-9]|[58][0-24-9]|7[02-8]|9[0-47-9])\\\\d{6}\",[9]],[\"180(?:0\\\\d{3}|2)\\\\d{3}\",[7,10]],[\"190[0-26]\\\\d{6}\",[10]],0,0,0,0,[\"14(?:5(?:1[0458]|[23][458])|71\\\\d)\\\\d{4}\",[9]],[\"13(?:00\\\\d{6}(?:\\\\d{2})?|45[0-4]\\\\d{3})|13\\\\d{4}\",[6,8,10,12]]],\"0011\"],\"CD\":[\"243\",\"00\",\"(?:(?:[189]|5\\\\d)\\\\d|2)\\\\d{7}|[1-68]\\\\d{6}\",[7,8,9,10],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"88\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"[1-6]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"5\"],\"0$1\"]],\"0\"],\"CF\":[\"236\",\"00\",\"8776\\\\d{4}|(?:[27]\\\\d|61)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[26-8]\"]]]],\"CG\":[\"242\",\"00\",\"222\\\\d{6}|(?:0\\\\d|80)\\\\d{7}\",[9],[[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[02]\"]]]],\"CH\":[\"41\",\"00\",\"8\\\\d{11}|[2-9]\\\\d{8}\",[9,12],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8[047]|90\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2-79]|81\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4 $5\",[\"8\"],\"0$1\"]],\"0\"],\"CI\":[\"225\",\"00\",\"[02]\\\\d{9}\",[10],[[\"(\\\\d{2})(\\\\d{2})(\\\\d)(\\\\d{5})\",\"$1 $2 $3 $4\",[\"2\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3 $4\",[\"0\"]]]],\"CK\":[\"682\",\"00\",\"[2-578]\\\\d{4}\",[5],[[\"(\\\\d{2})(\\\\d{3})\",\"$1 $2\",[\"[2-578]\"]]]],\"CL\":[\"56\",\"(?:0|1(?:1[0-69]|2[02-5]|5[13-58]|69|7[0167]|8[018]))0\",\"12300\\\\d{6}|6\\\\d{9,10}|[2-9]\\\\d{8}\",[9,10,11],[[\"(\\\\d{5})(\\\\d{4})\",\"$1 $2\",[\"219\",\"2196\"],\"($1)\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"60|809\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"44\"]],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"2[1-36]\"],\"($1)\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"9(?:10|[2-9])\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"3[2-5]|[47]|5[1-3578]|6[13-57]|8(?:0[1-8]|[1-9])\"],\"($1)\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"60|8\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"60\"]]]],\"CM\":[\"237\",\"00\",\"[26]\\\\d{8}|88\\\\d{6,7}\",[8,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"88\"]],[\"(\\\\d)(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4 $5\",[\"[26]|88\"]]]],\"CN\":[\"86\",\"00|1(?:[12]\\\\d|79)\\\\d\\\\d00\",\"(?:(?:1[03-689]|2\\\\d)\\\\d\\\\d|6)\\\\d{8}|1\\\\d{10}|[126]\\\\d{6}(?:\\\\d(?:\\\\d{2})?)?|86\\\\d{5,6}|(?:[3-579]\\\\d|8[0-57-9])\\\\d{5,9}\",[7,8,9,10,11,12],[[\"(\\\\d{2})(\\\\d{5,6})\",\"$1 $2\",[\"(?:10|2[0-57-9])[19]|3(?:[157]|35|49|9[1-68])|4(?:1[124-9]|2[179]|6[47-9]|7|8[23])|5(?:[1357]|2[37]|4[36]|6[1-46]|80)|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:07|1[236-8]|2[5-7]|[37]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3|4[13]|5[1-5]|7[0-79]|9[0-35-9])|(?:4[35]|59|85)[1-9]\",\"(?:10|2[0-57-9])(?:1[02]|9[56])|8078|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\\\d|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))1\",\"10(?:1(?:0|23)|9[56])|2[0-57-9](?:1(?:00|23)|9[56])|80781|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\\\d|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))12\",\"10(?:1(?:0|23)|9[56])|2[0-57-9](?:1(?:00|23)|9[56])|807812|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\\\d|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))123\",\"10(?:1(?:0|23)|9[56])|2[0-57-9](?:1(?:00|23)|9[56])|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\\\d|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:078|1[236-8]|2[5-7]|[37]\\\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))123\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{5,6})\",\"$1 $2\",[\"3(?:[157]|35|49|9[1-68])|4(?:[17]|2[179]|6[47-9]|8[23])|5(?:[1357]|2[37]|4[36]|6[1-46]|80)|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]|4[13]|5[1-5])|(?:4[35]|59|85)[1-9]\",\"(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:[17]\\\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\\\d|4[13]|5[1-5]))[19]\",\"85[23](?:10|95)|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:[17]\\\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\\\d|4[13]|5[1-5]))(?:10|9[56])\",\"85[23](?:100|95)|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:[17]\\\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\\\d|4[13]|5[1-5]))(?:100|9[56])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"(?:4|80)0\"]],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"10|2(?:[02-57-9]|1[1-9])\",\"10|2(?:[02-57-9]|1[1-9])\",\"10[0-79]|2(?:[02-57-9]|1[1-79])|(?:10|21)8(?:0[1-9]|[1-9])\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"3(?:[3-59]|7[02-68])|4(?:[26-8]|3[3-9]|5[2-9])|5(?:3[03-9]|[468]|7[028]|9[2-46-9])|6|7(?:[0-247]|3[04-9]|5[0-4689]|6[2368])|8(?:[1-358]|9[1-7])|9(?:[013479]|5[1-5])|(?:[34]1|55|79|87)[02-9]\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{7,8})\",\"$1 $2\",[\"9\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"80\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[3-578]\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"1[3-9]\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3 $4\",[\"[12]\"],\"0$1\",1]],\"0\",0,\"(1(?:[12]\\\\d|79)\\\\d\\\\d)|0\",0,0,0,0,\"00\"],\"CO\":[\"57\",\"00(?:4(?:[14]4|56)|[579])\",\"(?:46|60\\\\d\\\\d)\\\\d{6}|(?:1\\\\d|[39])\\\\d{9}\",[8,10,11],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"46\"]],[\"(\\\\d{3})(\\\\d{7})\",\"$1 $2\",[\"6|90\"],\"($1)\"],[\"(\\\\d{3})(\\\\d{7})\",\"$1 $2\",[\"3[0-357]|9[14]\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{7})\",\"$1-$2-$3\",[\"1\"],\"0$1\",0,\"$1 $2 $3\"]],\"0\",0,\"0([3579]|4(?:[14]4|56))?\"],\"CR\":[\"506\",\"00\",\"(?:8\\\\d|90)\\\\d{8}|(?:[24-8]\\\\d{3}|3005)\\\\d{4}\",[8,10],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[2-7]|8[3-9]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"[89]\"]]],0,0,\"(19(?:0[0-2468]|1[09]|20|66|77|99))\"],\"CU\":[\"53\",\"119\",\"(?:[2-7]|8\\\\d\\\\d)\\\\d{7}|[2-47]\\\\d{6}|[34]\\\\d{5}\",[6,7,8,10],[[\"(\\\\d{2})(\\\\d{4,6})\",\"$1 $2\",[\"2[1-4]|[34]\"],\"(0$1)\"],[\"(\\\\d)(\\\\d{6,7})\",\"$1 $2\",[\"7\"],\"(0$1)\"],[\"(\\\\d)(\\\\d{7})\",\"$1 $2\",[\"[56]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{7})\",\"$1 $2\",[\"8\"],\"0$1\"]],\"0\"],\"CV\":[\"238\",\"0\",\"(?:[2-59]\\\\d\\\\d|800)\\\\d{4}\",[7],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"[2-589]\"]]]],\"CW\":[\"599\",\"00\",\"(?:[34]1|60|(?:7|9\\\\d)\\\\d)\\\\d{5}\",[7,8],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[3467]\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"9[4-8]\"]]],0,0,0,0,0,\"[69]\"],\"CX\":[\"61\",\"001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011\",\"1(?:[0-79]\\\\d{8}(?:\\\\d{2})?|8[0-24-9]\\\\d{7})|[148]\\\\d{8}|1\\\\d{5,7}\",[6,7,8,9,10,12],0,\"0\",0,\"([59]\\\\d{7})$|0\",\"8$1\",0,0,[[\"8(?:51(?:0(?:01|30|59|88)|1(?:17|46|75)|2(?:22|35))|91(?:00[6-9]|1(?:[28]1|49|78)|2(?:09|63)|3(?:12|26|75)|4(?:56|97)|64\\\\d|7(?:0[01]|1[0-2])|958))\\\\d{3}\",[9]],[\"4(?:79[01]|83[0-36-9]|95[0-3])\\\\d{5}|4(?:[0-36]\\\\d|4[047-9]|[58][0-24-9]|7[02-8]|9[0-47-9])\\\\d{6}\",[9]],[\"180(?:0\\\\d{3}|2)\\\\d{3}\",[7,10]],[\"190[0-26]\\\\d{6}\",[10]],0,0,0,0,[\"14(?:5(?:1[0458]|[23][458])|71\\\\d)\\\\d{4}\",[9]],[\"13(?:00\\\\d{6}(?:\\\\d{2})?|45[0-4]\\\\d{3})|13\\\\d{4}\",[6,8,10,12]]],\"0011\"],\"CY\":[\"357\",\"00\",\"(?:[279]\\\\d|[58]0)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"[257-9]\"]]]],\"CZ\":[\"420\",\"00\",\"(?:[2-578]\\\\d|60)\\\\d{7}|9\\\\d{8,11}\",[9,10,11,12],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2-8]|9[015-7]\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"96\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"9\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"9\"]]]],\"DE\":[\"49\",\"00\",\"[2579]\\\\d{5,14}|49(?:[34]0|69|8\\\\d)\\\\d\\\\d?|49(?:37|49|60|7[089]|9\\\\d)\\\\d{1,3}|49(?:2[024-9]|3[2-689]|7[1-7])\\\\d{1,8}|(?:1|[368]\\\\d|4[0-8])\\\\d{3,13}|49(?:[015]\\\\d|2[13]|31|[46][1-8])\\\\d{1,9}\",[4,5,6,7,8,9,10,11,12,13,14,15],[[\"(\\\\d{2})(\\\\d{3,13})\",\"$1 $2\",[\"3[02]|40|[68]9\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3,12})\",\"$1 $2\",[\"2(?:0[1-389]|1[124]|2[18]|3[14])|3(?:[35-9][15]|4[015])|906|(?:2[4-9]|4[2-9]|[579][1-9]|[68][1-8])1\",\"2(?:0[1-389]|12[0-8])|3(?:[35-9][15]|4[015])|906|2(?:[13][14]|2[18])|(?:2[4-9]|4[2-9]|[579][1-9]|[68][1-8])1\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{2,11})\",\"$1 $2\",[\"[24-6]|3(?:[3569][02-46-9]|4[2-4679]|7[2-467]|8[2-46-8])|70[2-8]|8(?:0[2-9]|[1-8])|90[7-9]|[79][1-9]\",\"[24-6]|3(?:3(?:0[1-467]|2[127-9]|3[124578]|7[1257-9]|8[1256]|9[145])|4(?:2[135]|4[13578]|9[1346])|5(?:0[14]|2[1-3589]|6[1-4]|7[13468]|8[13568])|6(?:2[1-489]|3[124-6]|6[13]|7[12579]|8[1-356]|9[135])|7(?:2[1-7]|4[145]|6[1-5]|7[1-4])|8(?:21|3[1468]|6|7[1467]|8[136])|9(?:0[12479]|2[1358]|4[134679]|6[1-9]|7[136]|8[147]|9[1468]))|70[2-8]|8(?:0[2-9]|[1-8])|90[7-9]|[79][1-9]|3[68]4[1347]|3(?:47|60)[1356]|3(?:3[46]|46|5[49])[1246]|3[4579]3[1357]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"138\"],\"0$1\"],[\"(\\\\d{5})(\\\\d{2,10})\",\"$1 $2\",[\"3\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{5,11})\",\"$1 $2\",[\"181\"],\"0$1\"],[\"(\\\\d{3})(\\\\d)(\\\\d{4,10})\",\"$1 $2 $3\",[\"1(?:3|80)|9\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{7,8})\",\"$1 $2\",[\"1[67]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{7,12})\",\"$1 $2\",[\"8\"],\"0$1\"],[\"(\\\\d{5})(\\\\d{6})\",\"$1 $2\",[\"185\",\"1850\",\"18500\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{7})\",\"$1 $2\",[\"18[68]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{7})\",\"$1 $2\",[\"15[1279]\"],\"0$1\"],[\"(\\\\d{5})(\\\\d{6})\",\"$1 $2\",[\"15[03568]\",\"15(?:[0568]|3[13])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{8})\",\"$1 $2\",[\"18\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{7,8})\",\"$1 $2 $3\",[\"1(?:6[023]|7)\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{2})(\\\\d{7})\",\"$1 $2 $3\",[\"15[279]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{8})\",\"$1 $2 $3\",[\"15\"],\"0$1\"]],\"0\"],\"DJ\":[\"253\",\"00\",\"(?:2\\\\d|77)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[27]\"]]]],\"DK\":[\"45\",\"00\",\"[2-9]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2-9]\"]]]],\"DM\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|767|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-7]\\\\d{6})$|1\",\"767$1\",0,\"767\"],\"DO\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,0,0,0,\"8001|8[024]9\"],\"DZ\":[\"213\",\"00\",\"(?:[1-4]|[5-79]\\\\d|80)\\\\d{7}\",[8,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[1-4]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"9\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[5-8]\"],\"0$1\"]],\"0\"],\"EC\":[\"593\",\"00\",\"1\\\\d{9,10}|(?:[2-7]|9\\\\d)\\\\d{7}\",[8,9,10,11],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2-$3\",[\"[2-7]\"],\"(0$1)\",0,\"$1-$2-$3\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"9\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"1\"]]],\"0\"],\"EE\":[\"372\",\"00\",\"8\\\\d{9}|[4578]\\\\d{7}|(?:[3-8]\\\\d|90)\\\\d{5}\",[7,8,10],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[369]|4[3-8]|5(?:[0-2]|5[0-478]|6[45])|7[1-9]|88\",\"[369]|4[3-8]|5(?:[02]|1(?:[0-8]|95)|5[0-478]|6(?:4[0-4]|5[1-589]))|7[1-9]|88\"]],[\"(\\\\d{4})(\\\\d{3,4})\",\"$1 $2\",[\"[45]|8(?:00|[1-49])\",\"[45]|8(?:00[1-9]|[1-49])\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]]]],\"EG\":[\"20\",\"00\",\"[189]\\\\d{8,9}|[24-6]\\\\d{8}|[135]\\\\d{7}\",[8,9,10],[[\"(\\\\d)(\\\\d{7,8})\",\"$1 $2\",[\"[23]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{6,7})\",\"$1 $2\",[\"1[35]|[4-6]|8[2468]|9[235-7]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{8})\",\"$1 $2\",[\"1\"],\"0$1\"]],\"0\"],\"EH\":[\"212\",\"00\",\"[5-8]\\\\d{8}\",[9],0,\"0\",0,0,0,0,0,[[\"528[89]\\\\d{5}\"],[\"(?:6(?:[0-79]\\\\d|8[0-247-9])|7(?:[016-8]\\\\d|2[0-8]|5[0-5]))\\\\d{6}\"],[\"80[0-7]\\\\d{6}\"],[\"89\\\\d{7}\"],0,0,0,0,[\"(?:592(?:4[0-2]|93)|80[89]\\\\d\\\\d)\\\\d{4}\"]]],\"ER\":[\"291\",\"00\",\"[178]\\\\d{6}\",[7],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[178]\"],\"0$1\"]],\"0\"],\"ES\":[\"34\",\"00\",\"[5-9]\\\\d{8}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[89]00\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[5-9]\"]]]],\"ET\":[\"251\",\"00\",\"(?:11|[2-579]\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[1-579]\"],\"0$1\"]],\"0\"],\"FI\":[\"358\",\"00|99(?:[01469]|5(?:[14]1|3[23]|5[59]|77|88|9[09]))\",\"[1-35689]\\\\d{4}|7\\\\d{10,11}|(?:[124-7]\\\\d|3[0-46-9])\\\\d{8}|[1-9]\\\\d{5,8}\",[5,6,7,8,9,10,11,12],[[\"(\\\\d{5})\",\"$1\",[\"20[2-59]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3,7})\",\"$1 $2\",[\"(?:[1-3]0|[68])0|70[07-9]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4,8})\",\"$1 $2\",[\"[14]|2[09]|50|7[135]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{6,10})\",\"$1 $2\",[\"7\"],\"0$1\"],[\"(\\\\d)(\\\\d{4,9})\",\"$1 $2\",[\"(?:19|[2568])[1-8]|3(?:0[1-9]|[1-9])|9\"],\"0$1\"]],\"0\",0,0,0,0,\"1[03-79]|[2-9]\",0,\"00\"],\"FJ\":[\"679\",\"0(?:0|52)\",\"45\\\\d{5}|(?:0800\\\\d|[235-9])\\\\d{6}\",[7,11],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[235-9]|45\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"0\"]]],0,0,0,0,0,0,0,\"00\"],\"FK\":[\"500\",\"00\",\"[2-7]\\\\d{4}\",[5]],\"FM\":[\"691\",\"00\",\"(?:[39]\\\\d\\\\d|820)\\\\d{4}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[389]\"]]]],\"FO\":[\"298\",\"00\",\"[2-9]\\\\d{5}\",[6],[[\"(\\\\d{6})\",\"$1\",[\"[2-9]\"]]],0,0,\"(10(?:01|[12]0|88))\"],\"FR\":[\"33\",\"00\",\"[1-9]\\\\d{8}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"],\"0 $1\"],[\"(\\\\d)(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4 $5\",[\"[1-79]\"],\"0$1\"]],\"0\"],\"GA\":[\"241\",\"00\",\"(?:[067]\\\\d|11)\\\\d{6}|[2-7]\\\\d{6}\",[7,8],[[\"(\\\\d)(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2-7]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"0\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"11|[67]\"],\"0$1\"]],0,0,\"0(11\\\\d{6}|60\\\\d{6}|61\\\\d{6}|6[256]\\\\d{6}|7[467]\\\\d{6})\",\"$1\"],\"GB\":[\"44\",\"00\",\"[1-357-9]\\\\d{9}|[18]\\\\d{8}|8\\\\d{6}\",[7,9,10],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"800\",\"8001\",\"80011\",\"800111\",\"8001111\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"845\",\"8454\",\"84546\",\"845464\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{6})\",\"$1 $2\",[\"800\"],\"0$1\"],[\"(\\\\d{5})(\\\\d{4,5})\",\"$1 $2\",[\"1(?:38|5[23]|69|76|94)\",\"1(?:(?:38|69)7|5(?:24|39)|768|946)\",\"1(?:3873|5(?:242|39[4-6])|(?:697|768)[347]|9467)\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{5,6})\",\"$1 $2\",[\"1(?:[2-69][02-9]|[78])\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[25]|7(?:0|6[02-9])\",\"[25]|7(?:0|6(?:[03-9]|2[356]))\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{6})\",\"$1 $2\",[\"7\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[1389]\"],\"0$1\"]],\"0\",0,\"0|180020\",0,0,0,[[\"(?:1(?:1(?:3(?:[0-58]\\\\d\\\\d|73[0-5])|4(?:(?:[0-5]\\\\d|70)\\\\d|69[7-9])|(?:(?:5[0-26-9]|[78][0-49])\\\\d|6(?:[0-4]\\\\d|5[01]))\\\\d)|(?:2(?:(?:0[024-9]|2[3-9]|3[3-79]|4[1-689]|[58][02-9]|6[0-47-9]|7[013-9]|9\\\\d)\\\\d|1(?:[0-7]\\\\d|8[0-3]))|(?:3(?:0\\\\d|1[0-8]|[25][02-9]|3[02-579]|[468][0-46-9]|7[1-35-79]|9[2-578])|4(?:0[03-9]|[137]\\\\d|[28][02-57-9]|4[02-69]|5[0-8]|[69][0-79])|5(?:0[1-35-9]|[16]\\\\d|2[024-9]|3[015689]|4[02-9]|5[03-9]|7[0-35-9]|8[0-468]|9[0-57-9])|6(?:0[034689]|1\\\\d|2[0-35689]|[38][013-9]|4[1-467]|5[0-69]|6[13-9]|7[0-8]|9[0-24578])|7(?:0[0246-9]|2\\\\d|3[0236-8]|4[03-9]|5[0-46-9]|6[013-9]|7[0-35-9]|8[024-9]|9[02-9])|8(?:0[35-9]|2[1-57-9]|3[02-578]|4[0-578]|5[124-9]|6[2-69]|7\\\\d|8[02-9]|9[02569])|9(?:0[02-589]|[18]\\\\d|2[02-689]|3[1-57-9]|4[2-9]|5[0-579]|6[2-47-9]|7[0-24578]|9[2-57]))\\\\d)\\\\d)|2(?:0[013478]|3[0189]|4[017]|8[0-46-9]|9[0-2])\\\\d{3})\\\\d{4}|1(?:2(?:0(?:46[1-4]|87[2-9])|545[1-79]|76(?:2\\\\d|3[1-8]|6[1-6])|9(?:7(?:2[0-4]|3[2-5])|8(?:2[2-8]|7[0-47-9]|8[3-5])))|3(?:6(?:38[2-5]|47[23])|8(?:47[04-9]|64[0157-9]))|4(?:044[1-7]|20(?:2[23]|8\\\\d)|6(?:0(?:30|5[2-57]|6[1-8]|7[2-8])|140)|8(?:052|87[1-3]))|5(?:2(?:4(?:3[2-79]|6\\\\d)|76\\\\d)|6(?:26[06-9]|686))|6(?:06(?:4\\\\d|7[4-79])|295[5-7]|35[34]\\\\d|47(?:24|61)|59(?:5[08]|6[67]|74)|9(?:55[0-4]|77[23]))|7(?:26(?:6[13-9]|7[0-7])|(?:442|688)\\\\d|50(?:2[0-3]|[3-68]2|76))|8(?:27[56]\\\\d|37(?:5[2-5]|8[239])|843[2-58])|9(?:0(?:0(?:6[1-8]|85)|52\\\\d)|3583|4(?:66[1-8]|9(?:2[01]|81))|63(?:23|3[1-4])|9561))\\\\d{3}\",[9,10]],[\"7(?:457[0-57-9]|700[01]|911[028])\\\\d{5}|7(?:[1-3]\\\\d\\\\d|4(?:[0-46-9]\\\\d|5[0-689])|5(?:0[0-8]|[13-9]\\\\d|2[0-35-9])|7(?:0[1-9]|[1-7]\\\\d|8[02-9]|9[0-689])|8(?:[014-9]\\\\d|[23][0-8])|9(?:[024-9]\\\\d|1[02-9]|3[0-689]))\\\\d{6}\",[10]],[\"80[08]\\\\d{7}|800\\\\d{6}|8001111\"],[\"(?:8(?:4[2-5]|7[0-3])|9(?:[01]\\\\d|8[2-49]))\\\\d{7}|845464\\\\d\",[7,10]],[\"70\\\\d{8}\",[10]],0,[\"(?:3[0347]|55)\\\\d{8}\",[10]],[\"76(?:464|652)\\\\d{5}|76(?:0[0-28]|2[356]|34|4[01347]|5[49]|6[0-369]|77|8[14]|9[139])\\\\d{6}\",[10]],[\"56\\\\d{8}\",[10]]],0,\" x\"],\"GD\":[\"1\",\"011\",\"(?:473|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-9]\\\\d{6})$|1\",\"473$1\",0,\"473\"],\"GE\":[\"995\",\"00\",\"(?:[3-57]\\\\d\\\\d|800)\\\\d{6}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"70\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"32\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[57]\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[348]\"],\"0$1\"]],\"0\"],\"GF\":[\"594\",\"00\",\"(?:[56]94\\\\d|7093)\\\\d{5}|(?:80|9\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[5-7]|9[47]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[89]\"],\"0$1\"]],\"0\"],\"GG\":[\"44\",\"00\",\"(?:1481|[357-9]\\\\d{3})\\\\d{6}|8\\\\d{6}(?:\\\\d{2})?\",[7,9,10],0,\"0\",0,\"([25-9]\\\\d{5})$|0|180020\",\"1481$1\",0,0,[[\"1481[25-9]\\\\d{5}\",[10]],[\"7(?:(?:781|839)\\\\d|911[17])\\\\d{5}\",[10]],[\"80[08]\\\\d{7}|800\\\\d{6}|8001111\"],[\"(?:8(?:4[2-5]|7[0-3])|9(?:[01]\\\\d|8[0-3]))\\\\d{7}|845464\\\\d\",[7,10]],[\"70\\\\d{8}\",[10]],0,[\"(?:3[0347]|55)\\\\d{8}\",[10]],[\"76(?:464|652)\\\\d{5}|76(?:0[0-28]|2[356]|34|4[01347]|5[49]|6[0-369]|77|8[14]|9[139])\\\\d{6}\",[10]],[\"56\\\\d{8}\",[10]]]],\"GH\":[\"233\",\"00\",\"(?:[235]\\\\d{3}|800)\\\\d{5}\",[8,9],[[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"8\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[235]\"],\"0$1\"]],\"0\"],\"GI\":[\"350\",\"00\",\"(?:[25]\\\\d|60)\\\\d{6}\",[8],[[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"2\"]]]],\"GL\":[\"299\",\"00\",\"(?:19|[2-689]\\\\d|70)\\\\d{4}\",[6],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"19|[2-9]\"]]]],\"GM\":[\"220\",\"00\",\"[2-9]\\\\d{6}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-9]\"]]]],\"GN\":[\"224\",\"00\",\"722\\\\d{6}|(?:3|6\\\\d)\\\\d{7}\",[8,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"3\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[67]\"]]]],\"GP\":[\"590\",\"00\",\"(?:590\\\\d|7090)\\\\d{5}|(?:69|80|9\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[5-79]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"590(?:0[1-68]|[14][0-24-9]|2[0-68]|3[1-9]|5[3-579]|[68][0-689]|7[08]|9\\\\d)\\\\d{4}\"],[\"(?:69(?:0\\\\d\\\\d|1(?:2[2-9]|3[0-5])|4(?:0[89]|1[2-6]|9\\\\d)|6(?:1[016-9]|5[0-4]|[67]\\\\d))|7090[0-4])\\\\d{4}\"],[\"80[0-5]\\\\d{6}\"],0,0,0,0,0,[\"9(?:(?:39[5-7]|76[018])\\\\d|475[0-6])\\\\d{4}\"]]],\"GQ\":[\"240\",\"00\",\"222\\\\d{6}|(?:3\\\\d|55|[89]0)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[235]\"]],[\"(\\\\d{3})(\\\\d{6})\",\"$1 $2\",[\"[89]\"]]]],\"GR\":[\"30\",\"00\",\"5005000\\\\d{3}|8\\\\d{9,11}|(?:[269]\\\\d|70)\\\\d{8}\",[10,11,12],[[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"21|7\"]],[\"(\\\\d{4})(\\\\d{6})\",\"$1 $2\",[\"2(?:2|3[2-57-9]|4[2-469]|5[2-59]|6[2-9]|7[2-69]|8[2-49])|5\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2689]\"]],[\"(\\\\d{3})(\\\\d{3,4})(\\\\d{5})\",\"$1 $2 $3\",[\"8\"]]]],\"GT\":[\"502\",\"00\",\"80\\\\d{6}|(?:1\\\\d{3}|[2-7])\\\\d{7}\",[8,11],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[2-8]\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"]]]],\"GU\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|671|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-9]\\\\d{6})$|1\",\"671$1\",0,\"671\"],\"GW\":[\"245\",\"00\",\"[49]\\\\d{8}|4\\\\d{6}\",[7,9],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"40\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[49]\"]]]],\"GY\":[\"592\",\"001\",\"(?:[2-8]\\\\d{3}|9008)\\\\d{3}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-9]\"]]]],\"HK\":[\"852\",\"00(?:30|5[09]|[126-9]?)\",\"8[0-46-9]\\\\d{6,7}|9\\\\d{4,7}|(?:[2-7]|9\\\\d{3})\\\\d{7}\",[5,6,7,8,9,11],[[\"(\\\\d{3})(\\\\d{2,5})\",\"$1 $2\",[\"900\",\"9003\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[2-7]|8[1-4]|9(?:0[1-9]|[1-8])\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"9\"]]],0,0,0,0,0,0,0,\"00\"],\"HN\":[\"504\",\"00\",\"8\\\\d{10}|[237-9]\\\\d{7}\",[8,11],[[\"(\\\\d{4})(\\\\d{4})\",\"$1-$2\",[\"[237-9]\"]]]],\"HR\":[\"385\",\"00\",\"[2-69]\\\\d{8}|80\\\\d{5,7}|[1-79]\\\\d{7}|6\\\\d{6}\",[7,8,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"6[01]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2,3})\",\"$1 $2 $3\",[\"8\"],\"0$1\"],[\"(\\\\d)(\\\\d{4})(\\\\d{3})\",\"$1 $2 $3\",[\"1\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"6|7[245]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"9\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[2-57]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"],\"0$1\"]],\"0\"],\"HT\":[\"509\",\"00\",\"[2-589]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"[2-589]\"]]]],\"HU\":[\"36\",\"00\",\"[235-7]\\\\d{8}|[1-9]\\\\d{7}\",[8,9],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"(06 $1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[27][2-9]|3[2-7]|4[24-9]|5[2-79]|6|8[2-57-9]|9[2-69]\"],\"(06 $1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[2-9]\"],\"06 $1\"]],\"06\"],\"ID\":[\"62\",\"00[89]\",\"00[1-9]\\\\d{9,14}|(?:[1-36]|8\\\\d{5})\\\\d{6}|00\\\\d{9}|[1-9]\\\\d{8,10}|[2-9]\\\\d{7}\",[7,8,9,10,11,12,13,14,15,16,17],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"15\"]],[\"(\\\\d{2})(\\\\d{5,9})\",\"$1 $2\",[\"2[124]|[36]1\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{5,7})\",\"$1 $2\",[\"800\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{5,8})\",\"$1 $2\",[\"[2-79]\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{3,4})(\\\\d{3})\",\"$1-$2-$3\",[\"8[1-35-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{6,8})\",\"$1 $2\",[\"1\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"804\"],\"0$1\"],[\"(\\\\d{3})(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"80\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4,5})\",\"$1-$2-$3\",[\"8\"],\"0$1\"]],\"0\"],\"IE\":[\"353\",\"00\",\"(?:1\\\\d|[2569])\\\\d{6,8}|4\\\\d{6,9}|7\\\\d{8}|8\\\\d{8,9}\",[7,8,9,10],[[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"2[24-9]|47|58|6[237-9]|9[35-9]\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[45]0\"],\"(0$1)\"],[\"(\\\\d)(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[2569]|4[1-69]|7[14]\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"70\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"81\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[78]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1\"]],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"4\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3 $4\",[\"8\"],\"0$1\"]],\"0\"],\"IL\":[\"972\",\"0(?:0|1[2-9])\",\"1\\\\d{6}(?:\\\\d{3,5})?|[57]\\\\d{8}|[1-489]\\\\d{7}\",[7,8,9,10,11,12],[[\"(\\\\d{4})(\\\\d{3})\",\"$1-$2\",[\"125\"]],[\"(\\\\d{4})(\\\\d{2})(\\\\d{2})\",\"$1-$2-$3\",[\"121\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"[2-489]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"[57]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1-$2-$3\",[\"12\"]],[\"(\\\\d{4})(\\\\d{6})\",\"$1-$2\",[\"159\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1-$2-$3-$4\",[\"1[7-9]\"]],[\"(\\\\d{3})(\\\\d{1,2})(\\\\d{3})(\\\\d{4})\",\"$1-$2 $3-$4\",[\"15\"]]],\"0\"],\"IM\":[\"44\",\"00\",\"1624\\\\d{6}|(?:[3578]\\\\d|90)\\\\d{8}\",[10],0,\"0\",0,\"([25-8]\\\\d{5})$|0|180020\",\"1624$1\",0,\"74576|(?:16|7[56])24\"],\"IN\":[\"91\",\"00\",\"(?:000800|[2-9]\\\\d\\\\d)\\\\d{7}|1\\\\d{7,12}\",[8,9,10,11,12,13],[[\"(\\\\d{8})\",\"$1\",[\"5(?:0|2[23]|3[03]|[67]1|88)\",\"5(?:0|2(?:21|3)|3(?:0|3[23])|616|717|888)\",\"5(?:0|2(?:21|3)|3(?:0|3[23])|616|717|8888)\"],0,1],[\"(\\\\d{4})(\\\\d{4,5})\",\"$1 $2\",[\"180\",\"1800\"],0,1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"140\"],0,1],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"11|2[02]|33|4[04]|79[1-7]|80[2-46]\",\"11|2[02]|33|4[04]|79(?:[1-6]|7[19])|80(?:[2-4]|6[0-589])\",\"11|2[02]|33|4[04]|79(?:[124-6]|3(?:[02-9]|1[0-24-9])|7(?:1|9[1-6]))|80(?:[2-4]|6[0-589])\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1(?:2[0-249]|3[0-25]|4[145]|[68]|7[1257])|2(?:1[257]|3[013]|4[01]|5[0137]|6[0158]|78|8[1568])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|5[12]|[78]1)|6(?:12|[2-4]1|5[17]|6[13]|80)|7(?:12|3[134]|4[47]|61|88)|8(?:16|2[014]|3[126]|6[136]|7[078]|8[34]|91)|(?:43|59|75)[15]|(?:1[59]|29|67|72)[14]\",\"1(?:2[0-24]|3[0-25]|4[145]|[59][14]|6[1-9]|7[1257]|8[1-57-9])|2(?:1[257]|3[013]|4[01]|5[0137]|6[058]|78|8[1568]|9[14])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|[578]1|9[15])|674|7(?:(?:2[14]|3[34]|5[15])[2-6]|61[346]|88[0-8])|8(?:70[2-6]|84[235-7]|91[3-7])|(?:1(?:29|60|8[06])|261|552|6(?:12|[2-47]1|5[17]|6[13]|80)|7(?:12|31|4[47])|8(?:16|2[014]|3[126]|6[136]|7[78]|83))[2-7]\",\"1(?:2[0-24]|3[0-25]|4[145]|[59][14]|6[1-9]|7[1257]|8[1-57-9])|2(?:1[257]|3[013]|4[01]|5[0137]|6[058]|78|8[1568]|9[14])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|[578]1|9[15])|6(?:12(?:[2-6]|7[0-8])|74[2-7])|7(?:(?:2[14]|5[15])[2-6]|3171|61[346]|88(?:[2-7]|82))|8(?:70[2-6]|84(?:[2356]|7[19])|91(?:[3-6]|7[19]))|73[134][2-6]|(?:74[47]|8(?:16|2[014]|3[126]|6[136]|7[78]|83))(?:[2-6]|7[19])|(?:1(?:29|60|8[06])|261|552|6(?:[2-4]1|5[17]|6[13]|7(?:1|4[0189])|80)|7(?:12|88[01]))[2-7]\"],\"0$1\",1],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1(?:[2-479]|5[0235-9])|[2-5]|6(?:1[1358]|2[2457-9]|3[2-5]|4[235-7]|5[2-689]|6[24578]|7[235689]|8[1-6])|7(?:1[013-9]|28|3[129]|4[1-35689]|5[29]|6[02-5]|70)|807\",\"1(?:[2-479]|5[0235-9])|[2-5]|6(?:1[1358]|2(?:[2457]|84|95)|3(?:[2-4]|55)|4[235-7]|5[2-689]|6[24578]|7[235689]|8[1-6])|7(?:1(?:[013-8]|9[6-9])|28[6-8]|3(?:17|2[0-49]|9[2-57])|4(?:1[2-4]|[29][0-7]|3[0-8]|[56]|8[0-24-7])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4|5[0-367])|70[13-7])|807[19]\",\"1(?:[2-479]|5(?:[0236-9]|5[013-9]))|[2-5]|6(?:2(?:84|95)|355|8(?:28[235-7]|3))|73179|807(?:1|9[1-3])|(?:1552|6(?:(?:1[1358]|2[2457]|3[2-4]|4[235-7]|5[2-689]|6[24578]|7[235689])\\\\d|8(?:[14-6]\\\\d|2[0-79]))|7(?:1(?:[013-8]\\\\d|9[6-9])|28[6-8]|3(?:2[0-49]|9[2-57])|4(?:1[2-4]|[29][0-7]|3[0-8]|[56]\\\\d|8[0-24-7])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4\\\\d|5[0-367])|70[13-7]))[2-7]\"],\"0$1\",1],[\"(\\\\d{5})(\\\\d{5})\",\"$1 $2\",[\"16|[6-9]\"],\"0$1\",1],[\"(\\\\d{4})(\\\\d{2,4})(\\\\d{4})\",\"$1 $2 $3\",[\"18[06]\",\"18[06]0\"],0,1],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"18\"],0,1]],\"0\"],\"IO\":[\"246\",\"00\",\"3\\\\d{6}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"3\"]]]],\"IQ\":[\"964\",\"00\",\"(?:1|7\\\\d\\\\d)\\\\d{7}|[2-6]\\\\d{7,8}\",[8,9,10],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[2-6]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"0$1\"]],\"0\"],\"IR\":[\"98\",\"00\",\"[1-9]\\\\d{9}|(?:[1-8]\\\\d\\\\d|9)\\\\d{3,4}\",[4,5,6,7,10],[[\"(\\\\d{4,5})\",\"$1\",[\"96\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4,5})\",\"$1 $2\",[\"(?:1[137]|2[13-68]|3[1458]|4[145]|5[1468]|6[16]|7[1467]|8[13467])[12689]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"9\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[1-8]\"],\"0$1\"]],\"0\"],\"IS\":[\"354\",\"00|1(?:0(?:01|[12]0)|100)\",\"(?:38\\\\d|[4-9])\\\\d{6}\",[7,9],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[4-9]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"3\"]]],0,0,0,0,0,0,0,\"00\"],\"IT\":[\"39\",\"00\",\"0\\\\d{5,11}|1\\\\d{8,10}|3(?:[0-8]\\\\d{7,10}|9\\\\d{7,8})|(?:43|55|70)\\\\d{8}|8\\\\d{5}(?:\\\\d{2,4})?\",[6,7,8,9,10,11,12],[[\"(\\\\d{2})(\\\\d{4,6})\",\"$1 $2\",[\"0[26]\"]],[\"(\\\\d{3})(\\\\d{3,6})\",\"$1 $2\",[\"0[13-57-9][0159]|8(?:03|4[17]|9[2-5])\",\"0[13-57-9][0159]|8(?:03|4[17]|9(?:2|3[04]|[45][0-4]))\"]],[\"(\\\\d{4})(\\\\d{2,6})\",\"$1 $2\",[\"0(?:[13-579][2-46-8]|8[236-8])\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"894\"]],[\"(\\\\d{2})(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"0[26]|5\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"1(?:44|[679])|[378]|43\"]],[\"(\\\\d{3})(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"0[13-57-9][0159]|14\"]],[\"(\\\\d{2})(\\\\d{4})(\\\\d{5})\",\"$1 $2 $3\",[\"0[26]\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"0\"]],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4,5})\",\"$1 $2 $3\",[\"[03]\"]]],0,0,0,0,0,0,[[\"0(?:669[0-79]\\\\d{1,6}|831\\\\d{2,8})|0(?:1(?:[0159]\\\\d|[27][1-5]|31|4[1-4]|6[1356]|8[2-57])|2\\\\d\\\\d|3(?:[0159]\\\\d|2[1-4]|3[12]|[48][1-6]|6[2-59]|7[1-7])|4(?:[0159]\\\\d|[23][1-9]|4[245]|6[1-5]|7[1-4]|81)|5(?:[0159]\\\\d|2[1-5]|3[2-6]|4[1-79]|6[4-6]|7[1-578]|8[3-8])|6(?:[0-57-9]\\\\d|6[0-8])|7(?:[0159]\\\\d|2[12]|3[1-7]|4[2-46]|6[13569]|7[13-6]|8[1-59])|8(?:[0159]\\\\d|2[3-578]|3[2356]|[6-8][1-5])|9(?:[0159]\\\\d|[238][1-5]|4[12]|6[1-8]|7[1-6]))\\\\d{2,7}\"],[\"3[2-9]\\\\d{7,8}|(?:31|43)\\\\d{8}\",[9,10]],[\"80(?:0\\\\d{3}|3)\\\\d{3}\",[6,9]],[\"(?:0878\\\\d{3}|89(?:2\\\\d|3[04]|4(?:[0-4]|[5-9]\\\\d\\\\d)|5[0-4]))\\\\d\\\\d|(?:1(?:44|6[346])|89(?:38|5[5-9]|9))\\\\d{6}\",[6,8,9,10]],[\"1(?:78\\\\d|99)\\\\d{6}\",[9,10]],[\"3[2-8]\\\\d{9,10}\",[11,12]],0,0,[\"55\\\\d{8}\",[10]],[\"84(?:[08]\\\\d{3}|[17])\\\\d{3}\",[6,9]]]],\"JE\":[\"44\",\"00\",\"1534\\\\d{6}|(?:[3578]\\\\d|90)\\\\d{8}\",[10],0,\"0\",0,\"([0-24-8]\\\\d{5})$|0|180020\",\"1534$1\",0,0,[[\"1534[0-24-8]\\\\d{5}\"],[\"7(?:(?:(?:50|82)9|937)\\\\d|7(?:00[378]|97\\\\d))\\\\d{5}\"],[\"80(?:07(?:35|81)|8901)\\\\d{4}\"],[\"(?:8(?:4(?:4(?:4(?:05|42|69)|703)|5(?:041|800))|7(?:0002|1206))|90(?:066[59]|1810|71(?:07|55)))\\\\d{4}\"],[\"701511\\\\d{4}\"],0,[\"(?:3(?:0(?:07(?:35|81)|8901)|3\\\\d{4}|4(?:4(?:4(?:05|42|69)|703)|5(?:041|800))|7(?:0002|1206))|55\\\\d{4})\\\\d{4}\"],[\"76(?:464|652)\\\\d{5}|76(?:0[0-28]|2[356]|34|4[01347]|5[49]|6[0-369]|77|8[14]|9[139])\\\\d{6}\"],[\"56\\\\d{8}\"]]],\"JM\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|658|900)\\\\d{7}\",[10],0,\"1\",0,0,0,0,\"658|876\"],\"JO\":[\"962\",\"00\",\"(?:(?:[2689]|7\\\\d)\\\\d|32|427|53)\\\\d{6}\",[8,9],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2356]|87\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{5,6})\",\"$1 $2\",[\"[89]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"70\"],\"0$1\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[47]\"],\"0$1\"]],\"0\"],\"JP\":[\"81\",\"010\",\"00[1-9]\\\\d{6,14}|[25-9]\\\\d{9}|(?:00|[1-9]\\\\d\\\\d)\\\\d{6}\",[8,9,10,11,12,13,14,15,16,17],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1-$2-$3\",[\"(?:12|57|99)0\"],\"0$1\"],[\"(\\\\d{4})(\\\\d)(\\\\d{4})\",\"$1-$2-$3\",[\"1(?:26|3[79]|4[56]|5[4-68]|6[3-5])|499|5(?:76|97)|746|8(?:3[89]|47|51)|9(?:80|9[16])\",\"1(?:267|3(?:7[247]|9[278])|466|5(?:47|58|64)|6(?:3[245]|48|5[4-68]))|499[2468]|5(?:76|97)9|7468|8(?:3(?:8[7-9]|96)|477|51[2-9])|9(?:802|9(?:1[23]|69))|1(?:45|58)[67]\",\"1(?:267|3(?:7[247]|9[278])|466|5(?:47|58|64)|6(?:3[245]|48|5[4-68]))|499[2468]|5(?:769|979[2-69])|7468|8(?:3(?:8[7-9]|96[2457-9])|477|51[2-9])|9(?:802|9(?:1[23]|69))|1(?:45|58)[67]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"60\"],\"0$1\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1-$2-$3\",[\"3|4(?:2[09]|7[01])|6[1-9]\",\"3|4(?:2(?:0|9[02-69])|7(?:0[019]|1))|6[1-9]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"1(?:1|5[45]|77|88|9[69])|2(?:2[1-37]|3[0-269]|4[59]|5|6[24]|7[1-358]|8[1369]|9[0-38])|4(?:[28][1-9]|3[0-57]|[45]|6[248]|7[2-579]|9[29])|5(?:2|3[0459]|4[0-369]|5[29]|8[02389]|9[0-389])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9[2-6])|8(?:2[124589]|3[26-9]|49|51|6|7[0-468]|8[68]|9[019])|9(?:[23][1-9]|4[15]|5[138]|6[1-3]|7[156]|8[189]|9[1-489])\",\"1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2(?:[127]|3[014-9])|3[0-269]|4[59]|5(?:[1-3]|5[0-69]|9[19])|62|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17))|4(?:2(?:[13-79]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|8[1-9]|9[29])|5(?:2|3(?:[045]|9[0-8])|4[0-369]|5[29]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9[0-2469])|3(?:[29]|60)|49|51|6(?:[0-24]|36|5[0-3589]|7[23]|9[01459])|7[0-468]|8[68])|9(?:[23][1-9]|4[15]|5[138]|6[1-3]|7[156]|8[189]|9(?:[1289]|3[34]|4[0178]))|(?:264|837)[016-9]|2(?:57|93)[015-9]|(?:25[0468]|422|838)[01]|(?:47[59]|59[89]|8(?:6[68]|9))[019]\",\"1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2[127]|3[0-269]|4[59]|5(?:[1-3]|5[0-69]|9(?:17|99))|6(?:2|4[016-9])|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17))|4(?:2(?:[13-79]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|9[29])|5(?:2|3(?:[045]|9(?:[0-58]|6[4-9]|7[0-35689]))|4[0-369]|5[29]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9[0169])|3(?:[29]|60|7(?:[017-9]|6[6-8]))|49|51|6(?:[0-24]|36[2-57-9]|5(?:[0-389]|5[23])|6(?:[01]|9[178])|7(?:2[2-468]|3[78])|9[0145])|7[0-468]|8[68])|9(?:4[15]|5[138]|7[156]|8[189]|9(?:[1289]|3(?:31|4[357])|4[0178]))|(?:8294|96)[1-3]|2(?:57|93)[015-9]|(?:223|8699)[014-9]|(?:25[0468]|422|838)[01]|(?:48|8292|9[23])[1-9]|(?:47[59]|59[89]|8(?:68|9))[019]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{4})\",\"$1-$2-$3\",[\"[14]|[289][2-9]|5[3-9]|7[2-4679]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"800\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1-$2-$3\",[\"[25-9]\"],\"0$1\"]],\"0\",0,\"(000[2569]\\\\d{4,6})$|(?:(?:003768)0?)|0\",\"$1\"],\"KE\":[\"254\",\"000\",\"(?:[17]\\\\d\\\\d|900)\\\\d{6}|(?:2|80)0\\\\d{6,7}|[4-6]\\\\d{6,8}\",[7,8,9,10],[[\"(\\\\d{2})(\\\\d{5,7})\",\"$1 $2\",[\"[24-6]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{6})\",\"$1 $2\",[\"[17]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"]],\"0\"],\"KG\":[\"996\",\"00\",\"8\\\\d{9}|[235-9]\\\\d{8}\",[9,10],[[\"(\\\\d{4})(\\\\d{5})\",\"$1 $2\",[\"3(?:1[346]|[24-79])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[235-79]|88\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d)(\\\\d{2,3})\",\"$1 $2 $3 $4\",[\"8\"],\"0$1\"]],\"0\"],\"KH\":[\"855\",\"00[14-9]\",\"1\\\\d{9}|[1-9]\\\\d{7,8}\",[8,9,10],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[1-9]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1\"]]],\"0\"],\"KI\":[\"686\",\"00\",\"(?:[37]\\\\d|6[0-79])\\\\d{6}|(?:[2-48]\\\\d|50)\\\\d{3}\",[5,8],0,\"0\"],\"KM\":[\"269\",\"00\",\"[3478]\\\\d{6}\",[7],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"[3478]\"]]]],\"KN\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-7]\\\\d{6})$|1\",\"869$1\",0,\"869\"],\"KP\":[\"850\",\"00|99\",\"85\\\\d{6}|(?:19\\\\d|[2-7])\\\\d{7}\",[8,10],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2-7]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"0$1\"]],\"0\"],\"KR\":[\"82\",\"00(?:[125689]|3(?:[46]5|91)|7(?:00|27|3|55|6[126]))\",\"00[1-9]\\\\d{8,11}|(?:[12]|5\\\\d{3})\\\\d{7}|[13-6]\\\\d{9}|(?:[1-6]\\\\d|80)\\\\d{7}|[3-6]\\\\d{4,5}|(?:00|7)0\\\\d{8}\",[5,6,8,9,10,11,12,13,14],[[\"(\\\\d{2})(\\\\d{3,4})\",\"$1-$2\",[\"(?:3[1-3]|[46][1-4]|5[1-5])1\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{4})\",\"$1-$2\",[\"1\"]],[\"(\\\\d)(\\\\d{3,4})(\\\\d{4})\",\"$1-$2-$3\",[\"2\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"[36]0|8\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3,4})(\\\\d{4})\",\"$1-$2-$3\",[\"[1346]|5[1-5]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1-$2-$3\",[\"[57]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{5})(\\\\d{4})\",\"$1-$2-$3\",[\"5\"],\"0$1\"]],\"0\",0,\"0(8(?:[1-46-8]|5\\\\d\\\\d))?\"],\"KW\":[\"965\",\"00\",\"18\\\\d{5}|(?:[2569]\\\\d|41)\\\\d{6}\",[7,8],[[\"(\\\\d{4})(\\\\d{3,4})\",\"$1 $2\",[\"[169]|2(?:[235]|4[1-35-9])|52\"]],[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[245]\"]]]],\"KY\":[\"1\",\"011\",\"(?:345|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-9]\\\\d{6})$|1\",\"345$1\",0,\"345\"],\"KZ\":[\"7\",\"810\",\"8\\\\d{13}|[78]\\\\d{9}\",[10,14],0,\"8\",0,0,0,0,\"7\",0,\"8~10\"],\"LA\":[\"856\",\"00\",\"[23]\\\\d{9}|3\\\\d{8}|(?:[235-8]\\\\d|41)\\\\d{6}\",[8,9,10],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"2[13]|3[14]|[4-8]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"3\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"[23]\"],\"0$1\"]],\"0\"],\"LB\":[\"961\",\"00\",\"[27-9]\\\\d{7}|[13-9]\\\\d{6}\",[7,8],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[13-69]|7(?:[2-57]|62|8[0-6]|9[04-9])|8[02-9]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[27-9]\"]]],\"0\"],\"LC\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|758|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-8]\\\\d{6})$|1\",\"758$1\",0,\"758\"],\"LI\":[\"423\",\"00\",\"[68]\\\\d{8}|(?:[2378]\\\\d|90)\\\\d{5}\",[7,9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"[2379]|8(?:0[09]|7)\",\"[2379]|8(?:0(?:02|9)|7)\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"69\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"6\"]]],\"0\",0,\"(1001)|0\"],\"LK\":[\"94\",\"00\",\"[1-9]\\\\d{8}\",[9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[1-689]\"],\"0$1\"]],\"0\"],\"LR\":[\"231\",\"00\",\"(?:[2457]\\\\d|33|88)\\\\d{7}|(?:2\\\\d|[4-6])\\\\d{6}\",[7,8,9],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"4[67]|[56]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2-578]\"],\"0$1\"]],\"0\"],\"LS\":[\"266\",\"00\",\"(?:[256]\\\\d\\\\d|800)\\\\d{5}\",[8],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[2568]\"]]]],\"LT\":[\"370\",\"00\",\"(?:[3469]\\\\d|52|[78]0)\\\\d{6}\",[8],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"52[0-7]\"],\"(0-$1)\",1],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"[7-9]\"],\"0 $1\",1],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"37|4(?:[15]|6[1-8])\"],\"(0-$1)\",1],[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[3-6]\"],\"(0-$1)\",1]],\"0\",0,\"[08]\"],\"LU\":[\"352\",\"00\",\"35[013-9]\\\\d{4,8}|6\\\\d{8}|35\\\\d{2,4}|(?:[2457-9]\\\\d|3[0-46-9])\\\\d{2,9}\",[4,5,6,7,8,9,10,11],[[\"(\\\\d{2})(\\\\d{3})\",\"$1 $2\",[\"2(?:0[2-689]|[2-9])|[3-57]|8(?:0[2-9]|[13-9])|9(?:0[89]|[2-579])\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"2(?:0[2-689]|[2-9])|[3-57]|8(?:0[2-9]|[13-9])|9(?:0[89]|[2-579])\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"20[2-689]\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{1,2})\",\"$1 $2 $3 $4\",[\"20\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{1,5})\",\"$1 $2 $3 $4\",[\"[3-57]|8[13-9]|9(?:0[89]|[2-579])|(?:2|80)[2-9]\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"80[01]|90[015]\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"20\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"6\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{1,2})\",\"$1 $2 $3 $4 $5\",[\"20\"]]],0,0,\"(15(?:0[06]|1[12]|[35]5|4[04]|6[26]|77|88|99)\\\\d)\"],\"LV\":[\"371\",\"00\",\"(?:[268]\\\\d|78|90)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2679]|8[01]\"]]]],\"LY\":[\"218\",\"00\",\"[2-9]\\\\d{8}\",[9],[[\"(\\\\d{2})(\\\\d{7})\",\"$1-$2\",[\"[2-9]\"],\"0$1\"]],\"0\"],\"MA\":[\"212\",\"00\",\"[5-8]\\\\d{8}\",[9],[[\"(\\\\d{4})(\\\\d{5})\",\"$1-$2\",[\"892\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1-$2\",[\"8(?:0[0-7]|9)\"],\"0$1\"],[\"(\\\\d)(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4 $5\",[\"[5-8]\"],\"0$1\"]],\"0\",0,0,0,0,\"[5-8]\"],\"MC\":[\"377\",\"00\",\"(?:[3489]|[67]\\\\d)\\\\d{7}\",[8,9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"4\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[389]\"]],[\"(\\\\d)(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4 $5\",[\"[67]\"],\"0$1\"]],\"0\"],\"MD\":[\"373\",\"00\",\"(?:[235-7]\\\\d|[89]0)\\\\d{6}\",[8],[[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[89]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"22|3\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"[25-7]\"],\"0$1\"]],\"0\"],\"ME\":[\"382\",\"00\",\"(?:20|[3-79]\\\\d)\\\\d{6}|80\\\\d{6,7}\",[8,9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[2-9]\"],\"0$1\"]],\"0\"],\"MF\":[\"590\",\"00\",\"(?:590\\\\d|7090)\\\\d{5}|(?:69|80|9\\\\d)\\\\d{7}\",[9],0,\"0\",0,0,0,0,0,[[\"590(?:0[079]|[14]3|[27][79]|3[03-7]|5[0-268]|87)\\\\d{4}\"],[\"(?:69(?:0\\\\d\\\\d|1(?:2[2-9]|3[0-5])|4(?:0[89]|1[2-6]|9\\\\d)|6(?:1[016-9]|5[0-4]|[67]\\\\d))|7090[0-4])\\\\d{4}\"],[\"80[0-5]\\\\d{6}\"],0,0,0,0,0,[\"9(?:(?:39[5-7]|76[018])\\\\d|475[0-6])\\\\d{4}\"]]],\"MG\":[\"261\",\"00\",\"[23]\\\\d{8}\",[9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[23]\"],\"0$1\"]],\"0\",0,\"([24-9]\\\\d{6})$|0\",\"20$1\"],\"MH\":[\"692\",\"011\",\"329\\\\d{4}|(?:[256]\\\\d|45)\\\\d{5}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"[2-6]\"]]],\"1\"],\"MK\":[\"389\",\"00\",\"[2-578]\\\\d{7}\",[8],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"2|34[47]|4(?:[37]7|5[47]|64)\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[347]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d)(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[58]\"],\"0$1\"]],\"0\"],\"ML\":[\"223\",\"00\",\"[24-9]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[24-9]\"]]]],\"MM\":[\"95\",\"00\",\"1\\\\d{5,7}|95\\\\d{6}|(?:[4-7]|9[0-46-9])\\\\d{6,8}|(?:2|8\\\\d)\\\\d{5,8}\",[6,7,8,9,10],[[\"(\\\\d)(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"16|2\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"4(?:[2-46]|5[3-5])|5|6(?:[1-689]|7[235-7])|7(?:[0-4]|5[2-7])|8[1-5]|(?:60|86)[23]\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[12]|452|678|86\",\"[12]|452|6788|86\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[4-7]|8[1-35]\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{4,6})\",\"$1 $2 $3\",[\"9(?:2[0-4]|[35-9]|4[137-9])\"],\"0$1\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"92\"],\"0$1\"],[\"(\\\\d)(\\\\d{5})(\\\\d{4})\",\"$1 $2 $3\",[\"9\"],\"0$1\"]],\"0\"],\"MN\":[\"976\",\"001\",\"[12]\\\\d{7,9}|[5-9]\\\\d{7}\",[8,9,10],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"[12]1\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[5-9]\"]],[\"(\\\\d{3})(\\\\d{5,6})\",\"$1 $2\",[\"[12]2[1-3]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{5,6})\",\"$1 $2\",[\"[12](?:27|3[2-8]|4[2-68]|5[1-4689])\",\"[12](?:27|3[2-8]|4[2-68]|5[1-4689])[0-3]\"],\"0$1\"],[\"(\\\\d{5})(\\\\d{4,5})\",\"$1 $2\",[\"[12]\"],\"0$1\"]],\"0\"],\"MO\":[\"853\",\"00\",\"0800\\\\d{3}|(?:28|[68]\\\\d)\\\\d{6}\",[7,8],[[\"(\\\\d{4})(\\\\d{3})\",\"$1 $2\",[\"0\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[268]\"]]]],\"MP\":[\"1\",\"011\",\"[58]\\\\d{9}|(?:67|90)0\\\\d{7}\",[10],0,\"1\",0,\"([2-9]\\\\d{6})$|1\",\"670$1\",0,\"670\"],\"MQ\":[\"596\",\"00\",\"(?:596\\\\d|7091)\\\\d{5}|(?:69|[89]\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[5-79]|8(?:0[6-9]|[36])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"],\"0$1\"]],\"0\"],\"MR\":[\"222\",\"00\",\"(?:[2-4]\\\\d\\\\d|800)\\\\d{5}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2-48]\"]]]],\"MS\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|664|900)\\\\d{7}\",[10],0,\"1\",0,\"([34]\\\\d{6})$|1\",\"664$1\",0,\"664\"],\"MT\":[\"356\",\"00\",\"3550\\\\d{4}|(?:[2579]\\\\d\\\\d|800)\\\\d{5}\",[8],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[2357-9]\"]]]],\"MU\":[\"230\",\"0(?:0|[24-7]0|3[03])\",\"(?:[57]|8\\\\d\\\\d)\\\\d{7}|[2-468]\\\\d{6}\",[7,8,10],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-46]|8[013]\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[57]\"]],[\"(\\\\d{5})(\\\\d{5})\",\"$1 $2\",[\"8\"]]],0,0,0,0,0,0,0,\"020\"],\"MV\":[\"960\",\"0(?:0|19)\",\"(?:800|9[0-57-9]\\\\d)\\\\d{7}|[34679]\\\\d{6}\",[7,10],[[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"[34679]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"]]],0,0,0,0,0,0,0,\"00\"],\"MW\":[\"265\",\"00\",\"(?:[1289]\\\\d|31|77)\\\\d{7}|1\\\\d{6}\",[7,9],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1[2-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[137-9]\"],\"0$1\"]],\"0\"],\"MX\":[\"52\",\"0[09]\",\"[2-9]\\\\d{9}\",[10],[[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"33|5[56]|81\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2-9]\"]]],0,0,0,0,0,0,0,\"00\"],\"MY\":[\"60\",\"00\",\"1\\\\d{8,9}|(?:3\\\\d|[4-9])\\\\d{7}\",[8,9,10],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1-$2 $3\",[\"[4-79]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1-$2 $3\",[\"1(?:[02469]|[378][1-9]|53)|8\",\"1(?:[02469]|[37][1-9]|53|8(?:[1-46-9]|5[7-9]))|8\"],\"0$1\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1-$2 $3\",[\"3\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{2})(\\\\d{4})\",\"$1-$2-$3-$4\",[\"1(?:[367]|80)\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1-$2 $3\",[\"15\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1-$2 $3\",[\"1\"],\"0$1\"]],\"0\"],\"MZ\":[\"258\",\"00\",\"(?:2|8\\\\d)\\\\d{7}\",[8,9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"2|8[2-79]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]]]],\"NA\":[\"264\",\"00\",\"[68]\\\\d{7,8}\",[8,9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"88\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"6\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"87\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"],\"0$1\"]],\"0\"],\"NC\":[\"687\",\"00\",\"(?:050|[2-57-9]\\\\d\\\\d)\\\\d{3}\",[6],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1.$2.$3\",[\"[02-57-9]\"]]]],\"NE\":[\"227\",\"00\",\"[027-9]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"08\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[089]|2[013]|7[0467]\"]]]],\"NF\":[\"672\",\"00\",\"[13]\\\\d{5}\",[6],[[\"(\\\\d{2})(\\\\d{4})\",\"$1 $2\",[\"1[0-3]\"]],[\"(\\\\d)(\\\\d{5})\",\"$1 $2\",[\"[13]\"]]],0,0,\"([0-258]\\\\d{4})$\",\"3$1\"],\"NG\":[\"234\",\"009\",\"(?:20|9\\\\d)\\\\d{8}|[78]\\\\d{9,13}\",[10,11,12,13,14],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[7-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"20[129]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4,5})\",\"$1 $2 $3\",[\"[78]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{5})(\\\\d{5,6})\",\"$1 $2 $3\",[\"[78]\"],\"0$1\"]],\"0\"],\"NI\":[\"505\",\"00\",\"(?:1800|[25-8]\\\\d{3})\\\\d{4}\",[8],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[125-8]\"]]]],\"NL\":[\"31\",\"00\",\"(?:[124-7]\\\\d\\\\d|3(?:[02-9]\\\\d|1[0-8]))\\\\d{6}|8\\\\d{6,9}|9\\\\d{6,10}|1\\\\d{4,5}\",[5,6,7,8,9,10,11],[[\"(\\\\d{3})(\\\\d{4,7})\",\"$1 $2\",[\"[89]0\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"66\"],\"0$1\"],[\"(\\\\d)(\\\\d{8})\",\"$1 $2\",[\"6\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1[16-8]|2[259]|3[124]|4[17-9]|5[124679]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[1-578]|91\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{5})\",\"$1 $2 $3\",[\"9\"],\"0$1\"]],\"0\"],\"NO\":[\"47\",\"00\",\"(?:0|[2-9]\\\\d{3})\\\\d{4}\",[5,8],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2-79]\"]]],0,0,0,0,0,\"[02-689]|7[0-8]\"],\"NP\":[\"977\",\"00\",\"(?:1\\\\d|9)\\\\d{9}|[1-9]\\\\d{7}\",[8,10,11],[[\"(\\\\d)(\\\\d{7})\",\"$1-$2\",[\"1[2-6]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{6})\",\"$1-$2\",[\"1[01]|[2-8]|9(?:[1-59]|[67][2-6])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{7})\",\"$1-$2\",[\"9\"]]],\"0\"],\"NR\":[\"674\",\"00\",\"(?:222|444|(?:55|8\\\\d)\\\\d|666|777|999)\\\\d{4}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[24-9]\"]]]],\"NU\":[\"683\",\"00\",\"(?:[4-7]|888\\\\d)\\\\d{3}\",[4,7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"8\"]]]],\"NZ\":[\"64\",\"0(?:0|161)\",\"[1289]\\\\d{9}|50\\\\d{5}(?:\\\\d{2,3})?|[27-9]\\\\d{7,8}|(?:[34]\\\\d|6[0-35-9])\\\\d{6}|8\\\\d{4,6}\",[5,6,7,8,9,10],[[\"(\\\\d{2})(\\\\d{3,8})\",\"$1 $2\",[\"8[1-79]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2,3})\",\"$1 $2 $3\",[\"50[036-8]|8|90\",\"50(?:[0367]|88)|8|90\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"24|[346]|7[2-57-9]|9[2-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"2(?:10|74)|[589]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"1|2[028]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,5})\",\"$1 $2 $3\",[\"2(?:[169]|7[0-35-9])|7\"],\"0$1\"]],\"0\",0,0,0,0,0,0,\"00\"],\"OM\":[\"968\",\"00\",\"(?:1505|[279]\\\\d{3}|500)\\\\d{4}|800\\\\d{5,6}\",[7,8,9],[[\"(\\\\d{3})(\\\\d{4,6})\",\"$1 $2\",[\"[58]\"]],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"2\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[179]\"]]]],\"PA\":[\"507\",\"00\",\"(?:00800|8\\\\d{3})\\\\d{6}|[68]\\\\d{7}|[1-57-9]\\\\d{6}\",[7,8,10,11],[[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"[1-57-9]\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1-$2\",[\"[68]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"]]]],\"PE\":[\"51\",\"00|19(?:1[124]|77|90)00\",\"(?:[14-8]|9\\\\d)\\\\d{7}\",[8,9],[[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"80\"],\"(0$1)\"],[\"(\\\\d)(\\\\d{7})\",\"$1 $2\",[\"1\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"[4-8]\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"9\"]]],\"0\",0,0,0,0,0,0,\"00\",\" Anexo \"],\"PF\":[\"689\",\"00\",\"4\\\\d{5}(?:\\\\d{2})?|8\\\\d{7,8}\",[6,8,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"44\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"4|8[7-9]\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"]]]],\"PG\":[\"675\",\"00|140[1-3]\",\"(?:180|[78]\\\\d{3})\\\\d{4}|(?:[2-589]\\\\d|64)\\\\d{5}\",[7,8],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"18|[2-69]|85\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[78]\"]]],0,0,0,0,0,0,0,\"00\"],\"PH\":[\"63\",\"00\",\"(?:[2-7]|9\\\\d)\\\\d{8}|2\\\\d{5}|(?:1800|8)\\\\d{7,9}\",[6,8,9,10,11,12,13],[[\"(\\\\d)(\\\\d{5})\",\"$1 $2\",[\"2\"],\"(0$1)\"],[\"(\\\\d{4})(\\\\d{4,6})\",\"$1 $2\",[\"3(?:23|39|46)|4(?:2[3-6]|[35]9|4[26]|76)|544|88[245]|(?:52|64|86)2\",\"3(?:230|397|461)|4(?:2(?:35|[46]4|51)|396|4(?:22|63)|59[347]|76[15])|5(?:221|446)|642[23]|8(?:622|8(?:[24]2|5[13]))\"],\"(0$1)\"],[\"(\\\\d{5})(\\\\d{4})\",\"$1 $2\",[\"346|4(?:27|9[35])|883\",\"3469|4(?:279|9(?:30|56))|8834\"],\"(0$1)\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"2\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[3-7]|8[2-8]\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"]],[\"(\\\\d{4})(\\\\d{1,2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3 $4\",[\"1\"]]],\"0\"],\"PK\":[\"92\",\"00\",\"122\\\\d{6}|[24-8]\\\\d{10,11}|9(?:[013-9]\\\\d{8,10}|2(?:[01]\\\\d\\\\d|2(?:[06-8]\\\\d|1[01]))\\\\d{7})|(?:[2-8]\\\\d{3}|92(?:[0-7]\\\\d|8[1-9]))\\\\d{6}|[24-9]\\\\d{8}|[89]\\\\d{7}\",[8,9,10,11,12],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{2,7})\",\"$1 $2 $3\",[\"[89]0\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{5})\",\"$1 $2\",[\"1\"]],[\"(\\\\d{3})(\\\\d{6,7})\",\"$1 $2\",[\"2(?:3[2358]|4[2-4]|9[2-8])|45[3479]|54[2-467]|60[468]|72[236]|8(?:2[2-689]|3[23578]|4[3478]|5[2356])|9(?:2[2-8]|3[27-9]|4[2-6]|6[3569]|9[25-8])\",\"9(?:2[3-8]|98)|(?:2(?:3[2358]|4[2-4]|9[2-8])|45[3479]|54[2-467]|60[468]|72[236]|8(?:2[2-689]|3[23578]|4[3478]|5[2356])|9(?:22|3[27-9]|4[2-6]|6[3569]|9[25-7]))[2-9]\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{7,8})\",\"$1 $2\",[\"(?:2[125]|4[0-246-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91)[2-9]\"],\"(0$1)\"],[\"(\\\\d{5})(\\\\d{5})\",\"$1 $2\",[\"58\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{7})\",\"$1 $2\",[\"3\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"2[125]|4[0-246-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"[24-9]\"],\"(0$1)\"]],\"0\"],\"PL\":[\"48\",\"00\",\"(?:6|8\\\\d\\\\d)\\\\d{7}|[1-9]\\\\d{6}(?:\\\\d{2})?|[26]\\\\d{5}\",[6,7,8,9,10],[[\"(\\\\d{5})\",\"$1\",[\"19\"]],[\"(\\\\d{3})(\\\\d{3})\",\"$1 $2\",[\"11|20|64\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"(?:1[2-8]|2[2-69]|3[2-4]|4[1-468]|5[24-689]|6[1-3578]|7[14-7]|8[1-79]|9[145])1\",\"(?:1[2-8]|2[2-69]|3[2-4]|4[1-468]|5[24-689]|6[1-3578]|7[14-7]|8[1-79]|9[145])19\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2,3})\",\"$1 $2 $3\",[\"64\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"21|39|45|5[0137]|6[0469]|7[02389]|8(?:0[14]|8)\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"1[2-8]|[2-7]|8[1-79]|9[145]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"8\"]]]],\"PM\":[\"508\",\"00\",\"[45]\\\\d{5}|(?:708|8\\\\d\\\\d)\\\\d{6}\",[6,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"[45]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"7\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"],\"0$1\"]],\"0\"],\"PR\":[\"1\",\"011\",\"(?:[589]\\\\d\\\\d|787)\\\\d{7}\",[10],0,\"1\",0,0,0,0,\"787|939\"],\"PS\":[\"970\",\"00\",\"[2489]2\\\\d{6}|(?:1\\\\d|5)\\\\d{8}\",[8,9,10],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2489]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"5\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1\"]]],\"0\"],\"PT\":[\"351\",\"00\",\"1693\\\\d{5}|(?:[26-9]\\\\d|30)\\\\d{7}\",[9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"2[12]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"16|[236-9]\"]]]],\"PW\":[\"680\",\"01[12]\",\"(?:[24-8]\\\\d\\\\d|345|900)\\\\d{4}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-9]\"]]]],\"PY\":[\"595\",\"00\",\"[36-8]\\\\d{5,8}|4\\\\d{6,8}|59\\\\d{6}|9\\\\d{5,10}|(?:2\\\\d|5[0-8])\\\\d{6,7}\",[6,7,8,9,10,11],[[\"(\\\\d{3})(\\\\d{3,6})\",\"$1 $2\",[\"[2-9]0\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"3[289]|4[246-8]|61|7[1-3]|8[1-36]\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{4,5})\",\"$1 $2\",[\"2[279]|3[13-5]|4[359]|5|6(?:[34]|7[1-46-8])|7[46-8]|85\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"2[14-68]|3[26-9]|4[1246-8]|6(?:1|75)|7[1-35]|8[1-36]\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"87\"]],[\"(\\\\d{3})(\\\\d{6})\",\"$1 $2\",[\"9(?:[5-79]|8[1-7])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2-8]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"9\"]]],\"0\"],\"QA\":[\"974\",\"00\",\"800\\\\d{4}|(?:2|800)\\\\d{6}|(?:0080|[3-7])\\\\d{7}\",[7,8,9,11],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"2[136]|8\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[3-7]\"]]]],\"RE\":[\"262\",\"00\",\"709\\\\d{6}|(?:26|[689]\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[26-9]\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"26(?:2\\\\d\\\\d|3(?:0\\\\d|1[0-6]))\\\\d{4}\"],[\"(?:69(?:2\\\\d\\\\d|3(?:[06][0-6]|1[0-3]|2[0-2]|3[0-39]|4\\\\d|5[0-5]|7[0-37]|8[0-8]|9[0-479]))|7092[0-3])\\\\d{4}\"],[\"80\\\\d{7}\"],[\"89[1-37-9]\\\\d{6}\"],0,0,0,0,[\"9(?:399[0-3]|479[0-6]|76(?:2[278]|3[0-37]))\\\\d{4}\"],[\"8(?:1[019]|2[0156]|84|90)\\\\d{6}\"]]],\"RO\":[\"40\",\"00\",\"(?:[236-8]\\\\d|90)\\\\d{7}|[23]\\\\d{5}\",[6,9],[[\"(\\\\d{3})(\\\\d{3})\",\"$1 $2\",[\"2[3-6]\",\"2[3-6]\\\\d9\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})\",\"$1 $2\",[\"219|31\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[23]1\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[236-9]\"],\"0$1\"]],\"0\",0,0,0,0,0,0,0,\" int \"],\"RS\":[\"381\",\"00\",\"38[02-9]\\\\d{6,9}|6\\\\d{7,9}|90\\\\d{4,8}|38\\\\d{5,6}|(?:7\\\\d\\\\d|800)\\\\d{3,9}|(?:[12]\\\\d|3[0-79])\\\\d{5,10}\",[6,7,8,9,10,11,12],[[\"(\\\\d{3})(\\\\d{3,9})\",\"$1 $2\",[\"(?:2[389]|39)0|[7-9]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{5,10})\",\"$1 $2\",[\"[1-36]\"],\"0$1\"]],\"0\"],\"RU\":[\"7\",\"810\",\"8\\\\d{13}|[347-9]\\\\d{9}\",[10,14],[[\"(\\\\d{4})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"7(?:1[0-8]|2[1-9])\",\"7(?:1(?:[0-356]2|4[29]|7|8[27])|2(?:1[23]|[2-9]2))\",\"7(?:1(?:[0-356]2|4[29]|7|8[27])|2(?:13[03-69]|62[013-9]))|72[1-57-9]2\"],\"8 ($1)\",1],[\"(\\\\d{5})(\\\\d)(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"7(?:1[0-68]|2[1-9])\",\"7(?:1(?:[06][3-6]|[18]|2[35]|[3-5][3-5])|2(?:[13][3-5]|[24-689]|7[457]))\",\"7(?:1(?:0(?:[356]|4[023])|[18]|2(?:3[013-9]|5)|3[45]|43[013-79]|5(?:3[1-8]|4[1-7]|5)|6(?:3[0-35-9]|[4-6]))|2(?:1(?:3[178]|[45])|[24-689]|3[35]|7[457]))|7(?:14|23)4[0-8]|71(?:33|45)[1-79]\"],\"8 ($1)\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"8 ($1)\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2-$3-$4\",[\"[349]|8(?:[02-7]|1[1-8])\"],\"8 ($1)\",1],[\"(\\\\d{4})(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"8\"],\"8 ($1)\"]],\"8\",0,0,0,0,\"[3489]\",0,\"8~10\"],\"RW\":[\"250\",\"00\",\"(?:06|[27]\\\\d\\\\d|[89]00)\\\\d{6}\",[8,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"0\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"2\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[7-9]\"],\"0$1\"]],\"0\"],\"SA\":[\"966\",\"00\",\"(?:[15]\\\\d|800|92)\\\\d{7}\",[9,10],[[\"(\\\\d{4})(\\\\d{5})\",\"$1 $2\",[\"9\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"5\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"]]],\"0\"],\"SB\":[\"677\",\"0[01]\",\"[6-9]\\\\d{6}|[1-6]\\\\d{4}\",[5,7],[[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"6[89]|7|8[4-9]|9(?:[1-8]|9[0-8])\"]]]],\"SC\":[\"248\",\"010|0[0-2]\",\"(?:[2489]\\\\d|64)\\\\d{5}\",[7],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[246]|9[57]\"]]],0,0,0,0,0,0,0,\"00\"],\"SD\":[\"249\",\"00\",\"[19]\\\\d{8}\",[9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[19]\"],\"0$1\"]],\"0\"],\"SE\":[\"46\",\"00\",\"(?:[26]\\\\d\\\\d|9)\\\\d{9}|[1-9]\\\\d{8}|[1-689]\\\\d{7}|[1-4689]\\\\d{6}|2\\\\d{5}\",[6,7,8,9,10,12],[[\"(\\\\d{2})(\\\\d{2,3})(\\\\d{2})\",\"$1-$2 $3\",[\"20\"],\"0$1\",0,\"$1 $2 $3\"],[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"9(?:00|39|44|9)\"],\"0$1\",0,\"$1 $2\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})\",\"$1-$2 $3\",[\"[12][136]|3[356]|4[0246]|6[03]|90[1-9]\"],\"0$1\",0,\"$1 $2 $3\"],[\"(\\\\d)(\\\\d{2,3})(\\\\d{2})(\\\\d{2})\",\"$1-$2 $3 $4\",[\"8\"],\"0$1\",0,\"$1 $2 $3 $4\"],[\"(\\\\d{3})(\\\\d{2,3})(\\\\d{2})\",\"$1-$2 $3\",[\"1[2457]|2(?:[247-9]|5[0138])|3[0247-9]|4[1357-9]|5[0-35-9]|6(?:[125689]|4[02-57]|7[0-2])|9(?:[125-8]|3[02-5]|4[0-3])\"],\"0$1\",0,\"$1 $2 $3\"],[\"(\\\\d{3})(\\\\d{2,3})(\\\\d{3})\",\"$1-$2 $3\",[\"9(?:00|39|44)\"],\"0$1\",0,\"$1 $2 $3\"],[\"(\\\\d{2})(\\\\d{2,3})(\\\\d{2})(\\\\d{2})\",\"$1-$2 $3 $4\",[\"1[13689]|2[0136]|3[1356]|4[0246]|54|6[03]|90[1-9]\"],\"0$1\",0,\"$1 $2 $3 $4\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1-$2 $3 $4\",[\"10|7\"],\"0$1\",0,\"$1 $2 $3 $4\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{2})\",\"$1-$2 $3 $4\",[\"8\"],\"0$1\",0,\"$1 $2 $3 $4\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1-$2 $3 $4\",[\"[13-5]|2(?:[247-9]|5[0138])|6(?:[124-689]|7[0-2])|9(?:[125-8]|3[02-5]|4[0-3])\"],\"0$1\",0,\"$1 $2 $3 $4\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1-$2 $3 $4\",[\"9\"],\"0$1\",0,\"$1 $2 $3 $4\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1-$2 $3 $4 $5\",[\"[26]\"],\"0$1\",0,\"$1 $2 $3 $4 $5\"]],\"0\"],\"SG\":[\"65\",\"0[0-3]\\\\d\",\"(?:(?:1\\\\d|8)\\\\d\\\\d|7000)\\\\d{7}|[3689]\\\\d{7}\",[8,10,11],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[369]|8(?:0[1-9]|[1-9])\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"]],[\"(\\\\d{4})(\\\\d{4})(\\\\d{3})\",\"$1 $2 $3\",[\"7\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"]]]],\"SH\":[\"290\",\"00\",\"(?:[256]\\\\d|8)\\\\d{3}\",[4,5],0,0,0,0,0,0,\"[256]\"],\"SI\":[\"386\",\"00|10(?:22|66|88|99)\",\"[1-7]\\\\d{7}|8\\\\d{4,7}|90\\\\d{4,6}\",[5,6,7,8],[[\"(\\\\d{2})(\\\\d{3,6})\",\"$1 $2\",[\"8[09]|9\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"59|8\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[37][01]|4[0139]|51|6\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[1-57]\"],\"(0$1)\"]],\"0\",0,0,0,0,0,0,\"00\"],\"SJ\":[\"47\",\"00\",\"0\\\\d{4}|(?:[489]\\\\d|79)\\\\d{6}\",[5,8],0,0,0,0,0,0,\"79\"],\"SK\":[\"421\",\"00\",\"[2-689]\\\\d{8}|[2-59]\\\\d{6}|[2-5]\\\\d{5}\",[6,7,9],[[\"(\\\\d)(\\\\d{2})(\\\\d{3,4})\",\"$1 $2 $3\",[\"21\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2,3})\",\"$1 $2 $3\",[\"[3-5][1-8]1\",\"[3-5][1-8]1[67]\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{2})\",\"$1/$2 $3 $4\",[\"2\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[689]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1/$2 $3 $4\",[\"[3-5]\"],\"0$1\"]],\"0\"],\"SL\":[\"232\",\"00\",\"(?:[237-9]\\\\d|66)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"[236-9]\"],\"(0$1)\"]],\"0\"],\"SM\":[\"378\",\"00\",\"(?:0549|[5-7]\\\\d)\\\\d{6}\",[8,10],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[5-7]\"]],[\"(\\\\d{4})(\\\\d{6})\",\"$1 $2\",[\"0\"]]],0,0,\"([89]\\\\d{5})$\",\"0549$1\"],\"SN\":[\"221\",\"00\",\"(?:[378]\\\\d|93)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[379]\"]]]],\"SO\":[\"252\",\"00\",\"[346-9]\\\\d{8}|[12679]\\\\d{7}|[1-5]\\\\d{6}|[1348]\\\\d{5}\",[6,7,8,9],[[\"(\\\\d{2})(\\\\d{4})\",\"$1 $2\",[\"8[125]\"]],[\"(\\\\d{6})\",\"$1\",[\"[134]\"]],[\"(\\\\d)(\\\\d{6})\",\"$1 $2\",[\"[15]|2[0-79]|3[0-46-8]|4[0-7]\"]],[\"(\\\\d)(\\\\d{7})\",\"$1 $2\",[\"(?:2|90)4|[67]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[348]|64|79|90\"]],[\"(\\\\d{2})(\\\\d{5,7})\",\"$1 $2\",[\"1|28|6[0-35-9]|7[67]|9[2-9]\"]]],\"0\"],\"SR\":[\"597\",\"00\",\"(?:[2-5]|[6-8]\\\\d|90)\\\\d{5}\",[6,7],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1-$2-$3\",[\"56\"]],[\"(\\\\d{3})(\\\\d{3})\",\"$1-$2\",[\"[2-5]\"]],[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"[6-9]\"]]]],\"SS\":[\"211\",\"00\",\"[19]\\\\d{8}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[19]\"],\"0$1\"]],\"0\"],\"ST\":[\"239\",\"00\",\"(?:22|9\\\\d)\\\\d{5}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[29]\"]]]],\"SV\":[\"503\",\"00\",\"[25-7]\\\\d{7}|(?:80\\\\d|900)\\\\d{4}(?:\\\\d{4})?\",[7,8,11],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[89]\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[25-7]\"]],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"]]]],\"SX\":[\"1\",\"011\",\"7215\\\\d{6}|(?:[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"(5\\\\d{6})$|1\",\"721$1\",0,\"721\"],\"SY\":[\"963\",\"00\",\"[1-359]\\\\d{8}|[1-5]\\\\d{7}\",[8,9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[1-4]|5[1-3]\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[59]\"],\"0$1\",1]],\"0\"],\"SZ\":[\"268\",\"00\",\"0800\\\\d{4}|(?:[237]\\\\d|900)\\\\d{6}\",[8,9],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[0237]\"]],[\"(\\\\d{5})(\\\\d{4})\",\"$1 $2\",[\"9\"]]]],\"TA\":[\"290\",\"00\",\"8\\\\d{3}\",[4],0,0,0,0,0,0,\"8\"],\"TC\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|649|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-479]\\\\d{6})$|1\",\"649$1\",0,\"649\"],\"TD\":[\"235\",\"00|16\",\"(?:22|30|[689]\\\\d|77)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[236-9]\"]]],0,0,0,0,0,0,0,\"00\"],\"TG\":[\"228\",\"00\",\"[279]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[279]\"]]]],\"TH\":[\"66\",\"00[1-9]\",\"(?:001800|[2-57]|[689]\\\\d)\\\\d{7}|1\\\\d{7,9}\",[8,9,10,13],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[13-9]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1\"]]],\"0\"],\"TJ\":[\"992\",\"810\",\"(?:[0-57-9]\\\\d|66)\\\\d{7}\",[9],[[\"(\\\\d{6})(\\\\d)(\\\\d{2})\",\"$1 $2 $3\",[\"331\",\"3317\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"44[02-479]|[34]7\"]],[\"(\\\\d{4})(\\\\d)(\\\\d{4})\",\"$1 $2 $3\",[\"3(?:[1245]|3[12])\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"\\\\d\"]]],0,0,0,0,0,0,0,\"8~10\"],\"TK\":[\"690\",\"00\",\"[2-47]\\\\d{3,6}\",[4,5,6,7]],\"TL\":[\"670\",\"00\",\"7\\\\d{7}|(?:[2-47]\\\\d|[89]0)\\\\d{5}\",[7,8],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-489]|70\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"7\"]]]],\"TM\":[\"993\",\"810\",\"(?:[1-6]\\\\d|71)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2-$3-$4\",[\"12\"],\"(8 $1)\"],[\"(\\\\d{3})(\\\\d)(\\\\d{2})(\\\\d{2})\",\"$1 $2-$3-$4\",[\"[1-5]\"],\"(8 $1)\"],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"[67]\"],\"8 $1\"]],\"8\",0,0,0,0,0,0,\"8~10\"],\"TN\":[\"216\",\"00\",\"[2-57-9]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2-57-9]\"]]]],\"TO\":[\"676\",\"00\",\"(?:0800|(?:[5-8]\\\\d\\\\d|999)\\\\d)\\\\d{3}|[2-8]\\\\d{4}\",[5,7],[[\"(\\\\d{2})(\\\\d{3})\",\"$1-$2\",[\"[2-4]|50|6[09]|7[0-24-69]|8[05]\"]],[\"(\\\\d{4})(\\\\d{3})\",\"$1 $2\",[\"0\"]],[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[5-9]\"]]]],\"TR\":[\"90\",\"00\",\"4\\\\d{6}|8\\\\d{11,12}|(?:[2-58]\\\\d\\\\d|900)\\\\d{7}\",[7,10,12,13],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"512|8[01589]|90\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"5(?:[0-59]|61)\",\"5(?:[0-59]|61[06])\",\"5(?:[0-59]|61[06]1)\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[24][1-8]|3[1-9]\"],\"(0$1)\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{6,7})\",\"$1 $2 $3\",[\"80\"],\"0$1\",1]],\"0\"],\"TT\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-46-8]\\\\d{6})$|1\",\"868$1\",0,\"868\"],\"TV\":[\"688\",\"00\",\"(?:2|7\\\\d\\\\d|90)\\\\d{4}\",[5,6,7],[[\"(\\\\d{2})(\\\\d{3})\",\"$1 $2\",[\"2\"]],[\"(\\\\d{2})(\\\\d{4})\",\"$1 $2\",[\"90\"]],[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"7\"]]]],\"TW\":[\"886\",\"0(?:0[25-79]|19)\",\"[2-689]\\\\d{8}|7\\\\d{9,10}|[2-8]\\\\d{7}|2\\\\d{6}\",[7,8,9,10,11],[[\"(\\\\d{2})(\\\\d)(\\\\d{4})\",\"$1 $2 $3\",[\"202\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[258]0\"],\"0$1\"],[\"(\\\\d)(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"[23568]|4(?:0[02-48]|[1-47-9])|7[1-9]\",\"[23568]|4(?:0[2-48]|[1-47-9])|(?:400|7)[1-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[49]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4,5})\",\"$1 $2 $3\",[\"7\"],\"0$1\"]],\"0\",0,0,0,0,0,0,0,\"#\"],\"TZ\":[\"255\",\"00[056]\",\"(?:[25-8]\\\\d|41|90)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[24]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"5\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[67]\"],\"0$1\"]],\"0\"],\"UA\":[\"380\",\"00\",\"[89]\\\\d{9}|[3-9]\\\\d{8}\",[9,10],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"6[12][29]|(?:3[1-8]|4[136-8]|5[12457]|6[49])2|(?:56|65)[24]\",\"6[12][29]|(?:35|4[1378]|5[12457]|6[49])2|(?:56|65)[24]|(?:3[1-46-8]|46)2[013-9]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{5})\",\"$1 $2\",[\"3[1-8]|4(?:[1367]|[45][6-9]|8[4-6])|5(?:[1-5]|6[0135689]|7[4-6])|6(?:[12][3-7]|[459])\",\"3[1-8]|4(?:[1367]|[45][6-9]|8[4-6])|5(?:[1-5]|6(?:[015689]|3[02389])|7[4-6])|6(?:[12][3-7]|[459])\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[3-7]|89|9[1-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"]],\"0\",0,0,0,0,0,0,\"0~0\"],\"UG\":[\"256\",\"00[057]\",\"800\\\\d{6}|(?:[29]0|[347]\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{4})(\\\\d{5})\",\"$1 $2\",[\"202\",\"2024\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{6})\",\"$1 $2\",[\"[27-9]|4(?:6[45]|[7-9])\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"[34]\"],\"0$1\"]],\"0\"],\"US\":[\"1\",\"011\",\"[2-9]\\\\d{9}|3\\\\d{6}\",[10],[[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"310\"],0,1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"($1) $2-$3\",[\"[2-9]\"],0,1,\"$1-$2-$3\"]],\"1\",0,0,0,0,0,[[\"(?:274[27]|(?:472|983)[2-47-9])\\\\d{6}|(?:2(?:0[1-35-9]|1[02-9]|2[03-57-9]|3[1459]|4[08]|5[1-46]|6[0279]|7[0269]|8[13])|3(?:0[1-57-9]|1[02-9]|2[013-79]|3[0-24679]|4[167]|5[0-3]|6[01349]|8[056])|4(?:0[124-9]|1[02-579]|2[3-5]|3[0245]|4[023578]|58|6[349]|7[0589]|8[04])|5(?:0[1-57-9]|1[0235-8]|20|3[0149]|4[01]|5[179]|6[1-47]|7[0-5]|8[0256])|6(?:0[1-35-9]|1[024-9]|2[03689]|3[016]|4[0156]|5[01679]|6[0-279]|78|8[0-269])|7(?:0[1-46-8]|1[2-9]|2[04-8]|3[0-247]|4[0378]|5[47]|6[02359]|7[0-59]|8[156])|8(?:0[1-68]|1[02-8]|2[0168]|3[0-2589]|4[03578]|5[046-9]|6[02-5]|7[028])|9(?:0[1346-9]|1[02-9]|2[0589]|3[0146-8]|4[01357-9]|5[12469]|7[0-3589]|8[04-69]))[2-9]\\\\d{6}\"],[\"\"],[\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\"],[\"900[2-9]\\\\d{6}\"],[\"52(?:3(?:[2-46-9][02-9]\\\\d|5(?:[02-46-9]\\\\d|5[0-46-9]))|4(?:[2-478][02-9]\\\\d|5(?:[034]\\\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\\\d)|9(?:[05-9]\\\\d|2[0-5]|49)))\\\\d{4}|52[34][2-9]1[02-9]\\\\d{4}|5(?:00|2[125-9]|3[23]|44|66|77|88)[2-9]\\\\d{6}\"]]],\"UY\":[\"598\",\"0(?:0|1[3-9]\\\\d)\",\"0004\\\\d{2,9}|[1249]\\\\d{7}|2\\\\d{3,4}|(?:[49]\\\\d|80)\\\\d{5}\",[4,5,6,7,8,9,10,11,12,13],[[\"(\\\\d{4,5})\",\"$1\",[\"21\"]],[\"(\\\\d{3})(\\\\d{3,4})\",\"$1 $2\",[\"0\"]],[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[49]0|8\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"9\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[124]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{2,4})\",\"$1 $2 $3\",[\"0\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})(\\\\d{2,4})\",\"$1 $2 $3 $4\",[\"0\"]]],\"0\",0,0,0,0,0,0,\"00\",\" int. \"],\"UZ\":[\"998\",\"00\",\"(?:20|33|[5-9]\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[235-9]\"]]]],\"VA\":[\"39\",\"00\",\"0\\\\d{5,10}|3[0-8]\\\\d{7,10}|55\\\\d{8}|8\\\\d{5}(?:\\\\d{2,4})?|(?:1\\\\d|39)\\\\d{7,8}\",[6,7,8,9,10,11,12],0,0,0,0,0,0,\"06698\"],\"VC\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|784|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-7]\\\\d{6})$|1\",\"784$1\",0,\"784\"],\"VE\":[\"58\",\"00\",\"[68]00\\\\d{7}|(?:[24]\\\\d|[59]0)\\\\d{8}\",[10],[[\"(\\\\d{3})(\\\\d{7})\",\"$1-$2\",[\"[24-689]\"],\"0$1\"]],\"0\"],\"VG\":[\"1\",\"011\",\"(?:284|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-578]\\\\d{6})$|1\",\"284$1\",0,\"284\"],\"VI\":[\"1\",\"011\",\"[58]\\\\d{9}|(?:34|90)0\\\\d{7}\",[10],0,\"1\",0,\"([2-9]\\\\d{6})$|1\",\"340$1\",0,\"340\"],\"VN\":[\"84\",\"00\",\"[12]\\\\d{9}|[135-9]\\\\d{8}|[16]\\\\d{7}|[16-8]\\\\d{6}\",[7,8,9,10],[[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"80\"],\"0$1\",1],[\"(\\\\d{4})(\\\\d{4,6})\",\"$1 $2\",[\"1\"],0,1],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"6\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[357-9]\"],\"0$1\",1],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"2[48]\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{4})(\\\\d{3})\",\"$1 $2 $3\",[\"2\"],\"0$1\",1]],\"0\"],\"VU\":[\"678\",\"00\",\"[57-9]\\\\d{6}|(?:[238]\\\\d|48)\\\\d{3}\",[5,7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[57-9]\"]]]],\"WF\":[\"681\",\"00\",\"(?:40|72|8\\\\d{4})\\\\d{4}|[89]\\\\d{5}\",[6,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"[47-9]\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"]]]],\"WS\":[\"685\",\"0\",\"(?:[2-6]|8\\\\d{5})\\\\d{4}|[78]\\\\d{6}|[68]\\\\d{5}\",[5,6,7,10],[[\"(\\\\d{5})\",\"$1\",[\"[2-5]|6[1-9]\"]],[\"(\\\\d{3})(\\\\d{3,7})\",\"$1 $2\",[\"[68]\"]],[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"7\"]]]],\"XK\":[\"383\",\"00\",\"2\\\\d{7,8}|3\\\\d{7,11}|(?:4\\\\d\\\\d|[89]00)\\\\d{5}\",[8,9,10,11,12],[[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[89]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2-4]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"2|39\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7,10})\",\"$1 $2\",[\"3\"],\"0$1\"]],\"0\"],\"YE\":[\"967\",\"00\",\"(?:1|7\\\\d)\\\\d{7}|[1-7]\\\\d{6}\",[7,8,9],[[\"(\\\\d)(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[1-6]|7(?:[24-6]|8[0-7])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"7\"],\"0$1\"]],\"0\"],\"YT\":[\"262\",\"00\",\"7093\\\\d{5}|(?:80|9\\\\d)\\\\d{7}|(?:26|63)9\\\\d{6}\",[9],0,\"0\",0,0,0,0,0,[[\"269(?:0[0-467]|15|5[0-4]|6\\\\d|[78]0)\\\\d{4}\"],[\"(?:639(?:0[0-79]|1[019]|[267]\\\\d|3[09]|40|5[05-9]|9[04-79])|7093[5-7])\\\\d{4}\"],[\"80\\\\d{7}\"],0,0,0,0,0,[\"9(?:(?:39|47)8[01]|769\\\\d)\\\\d{4}\"]]],\"ZA\":[\"27\",\"00\",\"[1-79]\\\\d{8}|8\\\\d{4,9}\",[5,6,7,8,9,10],[[\"(\\\\d{2})(\\\\d{3,4})\",\"$1 $2\",[\"8[1-4]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2,3})\",\"$1 $2 $3\",[\"8[1-4]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"860\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[1-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"],\"0$1\"]],\"0\"],\"ZM\":[\"260\",\"00\",\"800\\\\d{6}|(?:21|[579]\\\\d|63)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[28]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"[579]\"],\"0$1\"]],\"0\"],\"ZW\":[\"263\",\"00\",\"2(?:[0-57-9]\\\\d{6,8}|6[0-24-9]\\\\d{6,7})|[38]\\\\d{9}|[35-8]\\\\d{8}|[3-6]\\\\d{7}|[1-689]\\\\d{6}|[1-3569]\\\\d{5}|[1356]\\\\d{4}\",[5,6,7,8,9,10],[[\"(\\\\d{3})(\\\\d{3,5})\",\"$1 $2\",[\"2(?:0[45]|2[278]|[49]8)|3(?:[09]8|17)|6(?:[29]8|37|75)|[23][78]|(?:33|5[15]|6[68])[78]\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{2,4})\",\"$1 $2 $3\",[\"[49]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"80\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"24|8[13-59]|(?:2[05-79]|39|5[45]|6[15-8])2\",\"2(?:02[014]|4|[56]20|[79]2)|392|5(?:42|525)|6(?:[16-8]21|52[013])|8[13-59]\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"2(?:1[39]|2[0157]|[378]|[56][14])|3(?:12|29)\",\"2(?:1[39]|2[0157]|[378]|[56][14])|3(?:123|29)\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{6})\",\"$1 $2\",[\"8\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3,5})\",\"$1 $2\",[\"1|2(?:0[0-36-9]|12|29|[56])|3(?:1[0-689]|[24-6])|5(?:[0236-9]|1[2-4])|6(?:[013-59]|7[0-46-9])|(?:33|55|6[68])[0-69]|(?:29|3[09]|62)[0-79]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"29[013-9]|39|54\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3,5})\",\"$1 $2\",[\"(?:25|54)8\",\"258|5483\"],\"0$1\"]],\"0\"]},\"nonGeographic\":{\"800\":[\"800\",0,\"(?:00|[1-9]\\\\d)\\\\d{6}\",[8],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"\\\\d\"]]],0,0,0,0,0,0,[0,0,[\"(?:00|[1-9]\\\\d)\\\\d{6}\"]]],\"808\":[\"808\",0,\"[1-9]\\\\d{7}\",[8],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[1-9]\"]]],0,0,0,0,0,0,[0,0,0,0,0,0,0,0,0,[\"[1-9]\\\\d{7}\"]]],\"870\":[\"870\",0,\"7\\\\d{11}|[235-7]\\\\d{8}\",[9,12],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[235-7]\"]]],0,0,0,0,0,0,[0,[\"(?:[356]|774[45])\\\\d{8}|7[6-8]\\\\d{7}\"],0,0,0,0,0,0,[\"2\\\\d{8}\",[9]]]],\"878\":[\"878\",0,\"10\\\\d{10}\",[12],[[\"(\\\\d{2})(\\\\d{5})(\\\\d{5})\",\"$1 $2 $3\",[\"1\"]]],0,0,0,0,0,0,[0,0,0,0,0,0,0,0,[\"10\\\\d{10}\"]]],\"881\":[\"881\",0,\"6\\\\d{9}|[0-36-9]\\\\d{8}\",[9,10],[[\"(\\\\d)(\\\\d{3})(\\\\d{5})\",\"$1 $2 $3\",[\"[0-37-9]\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{5,6})\",\"$1 $2 $3\",[\"6\"]]],0,0,0,0,0,0,[0,[\"6\\\\d{9}|[0-36-9]\\\\d{8}\"]]],\"882\":[\"882\",0,\"[13]\\\\d{6}(?:\\\\d{2,5})?|[19]\\\\d{7}|(?:[25]\\\\d\\\\d|4)\\\\d{7}(?:\\\\d{2})?\",[7,8,9,10,11,12],[[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"16|342\"]],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"49\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"1[36]|9\"]],[\"(\\\\d{2})(\\\\d{4})(\\\\d{3})\",\"$1 $2 $3\",[\"3[23]\"]],[\"(\\\\d{2})(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"16\"]],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"10|23|3(?:[15]|4[57])|4|51\"]],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"34\"]],[\"(\\\\d{2})(\\\\d{4,5})(\\\\d{5})\",\"$1 $2 $3\",[\"[1-35]\"]]],0,0,0,0,0,0,[0,[\"342\\\\d{4}|(?:337|49)\\\\d{6}|(?:3(?:2|47|7\\\\d{3})|50\\\\d{3})\\\\d{7}\",[7,8,9,10,12]],0,0,0,[\"348[57]\\\\d{7}\",[11]],0,0,[\"1(?:3(?:0[0347]|[13][0139]|2[035]|4[013568]|6[0459]|7[06]|8[15-8]|9[0689])\\\\d{4}|6\\\\d{5,10})|(?:345\\\\d|9[89])\\\\d{6}|(?:10|2(?:3|85\\\\d)|3(?:[15]|[69]\\\\d\\\\d)|4[15-8]|51)\\\\d{8}\"]]],\"883\":[\"883\",0,\"(?:[1-4]\\\\d|51)\\\\d{6,10}\",[8,9,10,11,12],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{2,8})\",\"$1 $2 $3\",[\"[14]|2[24-689]|3[02-689]|51[24-9]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"510\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"21\"]],[\"(\\\\d{4})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"51[13]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"[235]\"]]],0,0,0,0,0,0,[0,0,0,0,0,0,0,0,[\"(?:2(?:00\\\\d\\\\d|10)|(?:370[1-9]|51\\\\d0)\\\\d)\\\\d{7}|51(?:00\\\\d{5}|[24-9]0\\\\d{4,7})|(?:1[0-79]|2[24-689]|3[02-689]|4[0-4])0\\\\d{5,9}\"]]],\"888\":[\"888\",0,\"\\\\d{11}\",[11],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{5})\",\"$1 $2 $3\"]],0,0,0,0,0,0,[0,0,0,0,0,0,[\"\\\\d{11}\"]]],\"979\":[\"979\",0,\"[1359]\\\\d{8}\",[9],[[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[1359]\"]]],0,0,0,0,0,0,[0,0,0,[\"[1359]\\\\d{8}\"]]]}}","// Importing from a \".js\" file is a workaround for Node.js \"ES Modules\"\r\n// importing system which is even uncapable of importing \"*.json\" files.\r\nimport metadata from '../../metadata.min.json.js'\r\n\r\nexport default function withMetadataArgument(func, _arguments) {\r\n\tvar args = Array.prototype.slice.call(_arguments)\r\n\targs.push(metadata)\r\n\treturn func.apply(this, args)\r\n}","// Copy-pasted from:\r\n// https://github.com/substack/semver-compare/blob/master/index.js\r\n//\r\n// Inlining this function because some users reported issues with\r\n// importing from `semver-compare` in a browser with ES6 \"native\" modules.\r\n//\r\n// Fixes `semver-compare` not being able to compare versions with alpha/beta/etc \"tags\".\r\n// https://github.com/catamphetamine/libphonenumber-js/issues/381\r\nexport default function(a, b) {\r\n a = a.split('-')\r\n b = b.split('-')\r\n var pa = a[0].split('.')\r\n var pb = b[0].split('.')\r\n for (var i = 0; i < 3; i++) {\r\n var na = Number(pa[i])\r\n var nb = Number(pb[i])\r\n if (na > nb) return 1\r\n if (nb > na) return -1\r\n if (!isNaN(na) && isNaN(nb)) return 1\r\n if (isNaN(na) && !isNaN(nb)) return -1\r\n }\r\n if (a[1] && b[1]) {\r\n return a[1] > b[1] ? 1 : (a[1] < b[1] ? -1 : 0)\r\n }\r\n return !a[1] && b[1] ? 1 : (a[1] && !b[1] ? -1 : 0)\r\n}","const objectConstructor = {}.constructor;\r\n\r\nexport default function isObject(object) {\r\n return object !== undefined && object !== null && object.constructor === objectConstructor;\r\n}\r\n","import compare from './tools/semver-compare.js'\r\nimport isObject from './helpers/isObject.js'\r\n\r\n// Added \"possibleLengths\" and renamed\r\n// \"country_phone_code_to_countries\" to \"country_calling_codes\".\r\nconst V2 = '1.0.18'\r\n\r\n// Added \"idd_prefix\" and \"default_idd_prefix\".\r\nconst V3 = '1.2.0'\r\n\r\n// Moved `001` country code to \"nonGeographic\" section of metadata.\r\nconst V4 = '1.7.35'\r\n\r\nconst DEFAULT_EXT_PREFIX = ' ext. '\r\n\r\nconst CALLING_CODE_REG_EXP = /^\\d+$/\r\n\r\n/**\r\n * See: https://gitlab.com/catamphetamine/libphonenumber-js/blob/master/METADATA.md\r\n */\r\nexport default class Metadata {\r\n\tconstructor(metadata) {\r\n\t\tvalidateMetadata(metadata)\r\n\t\tthis.metadata = metadata\r\n\t\tsetVersion.call(this, metadata)\r\n\t}\r\n\r\n\tgetCountries() {\r\n\t\treturn Object.keys(this.metadata.countries).filter(_ => _ !== '001')\r\n\t}\r\n\r\n\tgetCountryMetadata(countryCode) {\r\n\t\treturn this.metadata.countries[countryCode]\r\n\t}\r\n\r\n\tnonGeographic() {\r\n\t\tif (this.v1 || this.v2 || this.v3) return\r\n\t\t// `nonGeographical` was a typo.\r\n\t\t// It's present in metadata generated from `1.7.35` to `1.7.37`.\r\n\t\t// The test case could be found by searching for \"nonGeographical\".\r\n\t\treturn this.metadata.nonGeographic || this.metadata.nonGeographical\r\n\t}\r\n\r\n\thasCountry(country) {\r\n\t\treturn this.getCountryMetadata(country) !== undefined\r\n\t}\r\n\r\n\thasCallingCode(callingCode) {\r\n\t\tif (this.getCountryCodesForCallingCode(callingCode)) {\r\n\t\t\treturn true\r\n\t\t}\r\n\t\tif (this.nonGeographic()) {\r\n\t\t\tif (this.nonGeographic()[callingCode]) {\r\n\t\t\t\treturn true\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\t// A hacky workaround for old custom metadata (generated before V4).\r\n\t\t\tconst countryCodes = this.countryCallingCodes()[callingCode]\r\n\t\t\tif (countryCodes && countryCodes.length === 1 && countryCodes[0] === '001') {\r\n\t\t\t\treturn true\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tisNonGeographicCallingCode(callingCode) {\r\n\t\tif (this.nonGeographic()) {\r\n\t\t\treturn this.nonGeographic()[callingCode] ? true : false\r\n\t\t} else {\r\n\t\t\treturn this.getCountryCodesForCallingCode(callingCode) ? false : true\r\n\t\t}\r\n\t}\r\n\r\n\t// Deprecated.\r\n\tcountry(countryCode) {\r\n\t\treturn this.selectNumberingPlan(countryCode)\r\n\t}\r\n\r\n\tselectNumberingPlan(countryCode, callingCode) {\r\n\t\t// Supports just passing `callingCode` as the first argument.\r\n\t\tif (countryCode && CALLING_CODE_REG_EXP.test(countryCode)) {\r\n\t\t\tcallingCode = countryCode\r\n\t\t\tcountryCode = null\r\n\t\t}\r\n\t\tif (countryCode && countryCode !== '001') {\r\n\t\t\tif (!this.hasCountry(countryCode)) {\r\n\t\t\t\tthrow new Error(`Unknown country: ${countryCode}`)\r\n\t\t\t}\r\n\t\t\tthis.numberingPlan = new NumberingPlan(this.getCountryMetadata(countryCode), this)\r\n\t\t} else if (callingCode) {\r\n\t\t\tif (!this.hasCallingCode(callingCode)) {\r\n\t\t\t\tthrow new Error(`Unknown calling code: ${callingCode}`)\r\n\t\t\t}\r\n\t\t\tthis.numberingPlan = new NumberingPlan(this.getNumberingPlanMetadata(callingCode), this)\r\n\t\t} else {\r\n\t\t\tthis.numberingPlan = undefined\r\n\t\t}\r\n\t\treturn this\r\n\t}\r\n\r\n\tgetCountryCodesForCallingCode(callingCode) {\r\n\t\tconst countryCodes = this.countryCallingCodes()[callingCode]\r\n\t\tif (countryCodes) {\r\n\t\t\t// Metadata before V4 included \"non-geographic entity\" calling codes\r\n\t\t\t// inside `country_calling_codes` (for example, `\"881\":[\"001\"]`).\r\n\t\t\t// Now the semantics of `country_calling_codes` has changed:\r\n\t\t\t// it's specifically for \"countries\" now.\r\n\t\t\t// Older versions of custom metadata will simply skip parsing\r\n\t\t\t// \"non-geographic entity\" phone numbers with new versions\r\n\t\t\t// of this library: it's not considered a bug,\r\n\t\t\t// because such numbers are extremely rare,\r\n\t\t\t// and developers extremely rarely use custom metadata.\r\n\t\t\tif (countryCodes.length === 1 && countryCodes[0].length === 3) {\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\t\t\treturn countryCodes\r\n\t\t}\r\n\t}\r\n\r\n\tgetCountryCodeForCallingCode(callingCode) {\r\n\t\tconst countryCodes = this.getCountryCodesForCallingCode(callingCode)\r\n\t\tif (countryCodes) {\r\n\t\t\treturn countryCodes[0]\r\n\t\t}\r\n\t}\r\n\r\n\tgetNumberingPlanMetadata(callingCode) {\r\n\t\tconst countryCode = this.getCountryCodeForCallingCode(callingCode)\r\n\t\tif (countryCode) {\r\n\t\t\treturn this.getCountryMetadata(countryCode)\r\n\t\t}\r\n\t\tif (this.nonGeographic()) {\r\n\t\t\tconst metadata = this.nonGeographic()[callingCode]\r\n\t\t\tif (metadata) {\r\n\t\t\t\treturn metadata\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\t// A hacky workaround for old custom metadata (generated before V4).\r\n\t\t\t// In that metadata, there was no concept of \"non-geographic\" metadata\r\n\t\t\t// so metadata for `001` country code was stored along with other countries.\r\n\t\t\t// The test case can be found by searching for:\r\n\t\t\t// \"should work around `nonGeographic` metadata not existing\".\r\n\t\t\tconst countryCodes = this.countryCallingCodes()[callingCode]\r\n\t\t\tif (countryCodes && countryCodes.length === 1 && countryCodes[0] === '001') {\r\n\t\t\t\treturn this.metadata.countries['001']\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t// Deprecated.\r\n\tcountryCallingCode() {\r\n\t\treturn this.numberingPlan.callingCode()\r\n\t}\r\n\r\n\t// Deprecated.\r\n\tIDDPrefix() {\r\n\t\treturn this.numberingPlan.IDDPrefix()\r\n\t}\r\n\r\n\t// Deprecated.\r\n\tdefaultIDDPrefix() {\r\n\t\treturn this.numberingPlan.defaultIDDPrefix()\r\n\t}\r\n\r\n\t// Deprecated.\r\n\tnationalNumberPattern() {\r\n\t\treturn this.numberingPlan.nationalNumberPattern()\r\n\t}\r\n\r\n\t// Deprecated.\r\n\tpossibleLengths() {\r\n\t\treturn this.numberingPlan.possibleLengths()\r\n\t}\r\n\r\n\t// Deprecated.\r\n\tformats() {\r\n\t\treturn this.numberingPlan.formats()\r\n\t}\r\n\r\n\t// Deprecated.\r\n\tnationalPrefixForParsing() {\r\n\t\treturn this.numberingPlan.nationalPrefixForParsing()\r\n\t}\r\n\r\n\t// Deprecated.\r\n\tnationalPrefixTransformRule() {\r\n\t\treturn this.numberingPlan.nationalPrefixTransformRule()\r\n\t}\r\n\r\n\t// Deprecated.\r\n\tleadingDigits() {\r\n\t\treturn this.numberingPlan.leadingDigits()\r\n\t}\r\n\r\n\t// Deprecated.\r\n\thasTypes() {\r\n\t\treturn this.numberingPlan.hasTypes()\r\n\t}\r\n\r\n\t// Deprecated.\r\n\ttype(type) {\r\n\t\treturn this.numberingPlan.type(type)\r\n\t}\r\n\r\n\t// Deprecated.\r\n\text() {\r\n\t\treturn this.numberingPlan.ext()\r\n\t}\r\n\r\n\tcountryCallingCodes() {\r\n\t\tif (this.v1) return this.metadata.country_phone_code_to_countries\r\n\t\treturn this.metadata.country_calling_codes\r\n\t}\r\n\r\n\t// Deprecated.\r\n\tchooseCountryByCountryCallingCode(callingCode) {\r\n\t\treturn this.selectNumberingPlan(callingCode)\r\n\t}\r\n\r\n\thasSelectedNumberingPlan() {\r\n\t\treturn this.numberingPlan !== undefined\r\n\t}\r\n}\r\n\r\nclass NumberingPlan {\r\n\tconstructor(metadata, globalMetadataObject) {\r\n\t\tthis.globalMetadataObject = globalMetadataObject\r\n\t\tthis.metadata = metadata\r\n\t\tsetVersion.call(this, globalMetadataObject.metadata)\r\n\t}\r\n\r\n\tcallingCode() {\r\n\t\treturn this.metadata[0]\r\n\t}\r\n\r\n\t// Formatting information for regions which share\r\n\t// a country calling code is contained by only one region\r\n\t// for performance reasons. For example, for NANPA region\r\n\t// (\"North American Numbering Plan Administration\",\r\n\t// which includes USA, Canada, Cayman Islands, Bahamas, etc)\r\n\t// it will be contained in the metadata for `US`.\r\n\tgetDefaultCountryMetadataForRegion() {\r\n\t\treturn this.globalMetadataObject.getNumberingPlanMetadata(this.callingCode())\r\n\t}\r\n\r\n\t// Is always present.\r\n\tIDDPrefix() {\r\n\t\tif (this.v1 || this.v2) return\r\n\t\treturn this.metadata[1]\r\n\t}\r\n\r\n\t// Is only present when a country supports multiple IDD prefixes.\r\n\tdefaultIDDPrefix() {\r\n\t\tif (this.v1 || this.v2) return\r\n\t\treturn this.metadata[12]\r\n\t}\r\n\r\n\tnationalNumberPattern() {\r\n\t\tif (this.v1 || this.v2) return this.metadata[1]\r\n\t\treturn this.metadata[2]\r\n\t}\r\n\r\n\t// \"possible length\" data is always present in Google's metadata.\r\n\tpossibleLengths() {\r\n\t\tif (this.v1) return\r\n\t\treturn this.metadata[this.v2 ? 2 : 3]\r\n\t}\r\n\r\n\t_getFormats(metadata) {\r\n\t\treturn metadata[this.v1 ? 2 : this.v2 ? 3 : 4]\r\n\t}\r\n\r\n\t// For countries of the same region (e.g. NANPA)\r\n\t// formats are all stored in the \"main\" country for that region.\r\n\t// E.g. \"RU\" and \"KZ\", \"US\" and \"CA\".\r\n\tformats() {\r\n\t\tconst formats = this._getFormats(this.metadata) || this._getFormats(this.getDefaultCountryMetadataForRegion()) || []\r\n\t\treturn formats.map(_ => new Format(_, this))\r\n\t}\r\n\r\n\tnationalPrefix() {\r\n\t\treturn this.metadata[this.v1 ? 3 : this.v2 ? 4 : 5]\r\n\t}\r\n\r\n\t_getNationalPrefixFormattingRule(metadata) {\r\n\t\treturn metadata[this.v1 ? 4 : this.v2 ? 5 : 6]\r\n\t}\r\n\r\n\t// For countries of the same region (e.g. NANPA)\r\n\t// national prefix formatting rule is stored in the \"main\" country for that region.\r\n\t// E.g. \"RU\" and \"KZ\", \"US\" and \"CA\".\r\n\tnationalPrefixFormattingRule() {\r\n\t\treturn this._getNationalPrefixFormattingRule(this.metadata) || this._getNationalPrefixFormattingRule(this.getDefaultCountryMetadataForRegion())\r\n\t}\r\n\r\n\t_nationalPrefixForParsing() {\r\n\t\treturn this.metadata[this.v1 ? 5 : this.v2 ? 6 : 7]\r\n\t}\r\n\r\n\tnationalPrefixForParsing() {\r\n\t\t// If `national_prefix_for_parsing` is not set explicitly,\r\n\t\t// then infer it from `national_prefix` (if any)\r\n\t\treturn this._nationalPrefixForParsing() || this.nationalPrefix()\r\n\t}\r\n\r\n\tnationalPrefixTransformRule() {\r\n\t\treturn this.metadata[this.v1 ? 6 : this.v2 ? 7 : 8]\r\n\t}\r\n\r\n\t_getNationalPrefixIsOptionalWhenFormatting() {\r\n\t\treturn !!this.metadata[this.v1 ? 7 : this.v2 ? 8 : 9]\r\n\t}\r\n\r\n\t// For countries of the same region (e.g. NANPA)\r\n\t// \"national prefix is optional when formatting\" flag is\r\n\t// stored in the \"main\" country for that region.\r\n\t// E.g. \"RU\" and \"KZ\", \"US\" and \"CA\".\r\n\tnationalPrefixIsOptionalWhenFormattingInNationalFormat() {\r\n\t\treturn this._getNationalPrefixIsOptionalWhenFormatting(this.metadata) ||\r\n\t\t\tthis._getNationalPrefixIsOptionalWhenFormatting(this.getDefaultCountryMetadataForRegion())\r\n\t}\r\n\r\n\tleadingDigits() {\r\n\t\treturn this.metadata[this.v1 ? 8 : this.v2 ? 9 : 10]\r\n\t}\r\n\r\n\ttypes() {\r\n\t\treturn this.metadata[this.v1 ? 9 : this.v2 ? 10 : 11]\r\n\t}\r\n\r\n\thasTypes() {\r\n\t\t// Versions 1.2.0 - 1.2.4: can be `[]`.\r\n\t\t/* istanbul ignore next */\r\n\t\tif (this.types() && this.types().length === 0) {\r\n\t\t\treturn false\r\n\t\t}\r\n\t\t// Versions <= 1.2.4: can be `undefined`.\r\n\t\t// Version >= 1.2.5: can be `0`.\r\n\t\treturn !!this.types()\r\n\t}\r\n\r\n\ttype(type) {\r\n\t\tif (this.hasTypes() && getType(this.types(), type)) {\r\n\t\t\treturn new Type(getType(this.types(), type), this)\r\n\t\t}\r\n\t}\r\n\r\n\text() {\r\n\t\tif (this.v1 || this.v2) return DEFAULT_EXT_PREFIX\r\n\t\treturn this.metadata[13] || DEFAULT_EXT_PREFIX\r\n\t}\r\n}\r\n\r\nclass Format {\r\n\tconstructor(format, metadata) {\r\n\t\tthis._format = format\r\n\t\tthis.metadata = metadata\r\n\t}\r\n\r\n\tpattern() {\r\n\t\treturn this._format[0]\r\n\t}\r\n\r\n\tformat() {\r\n\t\treturn this._format[1]\r\n\t}\r\n\r\n\tleadingDigitsPatterns() {\r\n\t\treturn this._format[2] || []\r\n\t}\r\n\r\n\tnationalPrefixFormattingRule() {\r\n\t\treturn this._format[3] || this.metadata.nationalPrefixFormattingRule()\r\n\t}\r\n\r\n\tnationalPrefixIsOptionalWhenFormattingInNationalFormat() {\r\n\t\treturn !!this._format[4] || this.metadata.nationalPrefixIsOptionalWhenFormattingInNationalFormat()\r\n\t}\r\n\r\n\tnationalPrefixIsMandatoryWhenFormattingInNationalFormat() {\r\n\t\t// National prefix is omitted if there's no national prefix formatting rule\r\n\t\t// set for this country, or when the national prefix formatting rule\r\n\t\t// contains no national prefix itself, or when this rule is set but\r\n\t\t// national prefix is optional for this phone number format\r\n\t\t// (and it is not enforced explicitly)\r\n\t\treturn this.usesNationalPrefix() && !this.nationalPrefixIsOptionalWhenFormattingInNationalFormat()\r\n\t}\r\n\r\n\t// Checks whether national prefix formatting rule contains national prefix.\r\n\tusesNationalPrefix() {\r\n\t\treturn this.nationalPrefixFormattingRule() &&\r\n\t\t\t// Check that national prefix formatting rule is not a \"dummy\" one.\r\n\t\t\t!FIRST_GROUP_ONLY_PREFIX_PATTERN.test(this.nationalPrefixFormattingRule())\r\n\t\t\t// In compressed metadata, `this.nationalPrefixFormattingRule()` is `0`\r\n\t\t\t// when `national_prefix_formatting_rule` is not present.\r\n\t\t\t// So, `true` or `false` are returned explicitly here, so that\r\n\t\t\t// `0` number isn't returned.\r\n\t\t\t? true\r\n\t\t\t: false\r\n\t}\r\n\r\n\tinternationalFormat() {\r\n\t\treturn this._format[5] || this.format()\r\n\t}\r\n}\r\n\r\n/**\r\n * A pattern that is used to determine if the national prefix formatting rule\r\n * has the first group only, i.e., does not start with the national prefix.\r\n * Note that the pattern explicitly allows for unbalanced parentheses.\r\n */\r\nconst FIRST_GROUP_ONLY_PREFIX_PATTERN = /^\\(?\\$1\\)?$/\r\n\r\nclass Type {\r\n\tconstructor(type, metadata) {\r\n\t\tthis.type = type\r\n\t\tthis.metadata = metadata\r\n\t}\r\n\r\n\tpattern() {\r\n\t\tif (this.metadata.v1) return this.type\r\n\t\treturn this.type[0]\r\n\t}\r\n\r\n\tpossibleLengths() {\r\n\t\tif (this.metadata.v1) return\r\n\t\treturn this.type[1] || this.metadata.possibleLengths()\r\n\t}\r\n}\r\n\r\nfunction getType(types, type) {\r\n\tswitch (type) {\r\n\t\tcase 'FIXED_LINE':\r\n\t\t\treturn types[0]\r\n\t\tcase 'MOBILE':\r\n\t\t\treturn types[1]\r\n\t\tcase 'TOLL_FREE':\r\n\t\t\treturn types[2]\r\n\t\tcase 'PREMIUM_RATE':\r\n\t\t\treturn types[3]\r\n\t\tcase 'PERSONAL_NUMBER':\r\n\t\t\treturn types[4]\r\n\t\tcase 'VOICEMAIL':\r\n\t\t\treturn types[5]\r\n\t\tcase 'UAN':\r\n\t\t\treturn types[6]\r\n\t\tcase 'PAGER':\r\n\t\t\treturn types[7]\r\n\t\tcase 'VOIP':\r\n\t\t\treturn types[8]\r\n\t\tcase 'SHARED_COST':\r\n\t\t\treturn types[9]\r\n\t}\r\n}\r\n\r\nexport function validateMetadata(metadata) {\r\n\tif (!metadata) {\r\n\t\tthrow new Error('[libphonenumber-js] `metadata` argument not passed. Check your arguments.')\r\n\t}\r\n\r\n\t// `country_phone_code_to_countries` was renamed to `country_calling_codes` in `1.0.18`.\r\n\t// For that reason, it's not used in this detection algorithm.\r\n\t// Instead, it detects by `countries: {}` property existence.\r\n\tif (!isObject(metadata) || !isObject(metadata.countries)) {\r\n\t\tthrow new Error(`[libphonenumber-js] \\`metadata\\` argument was passed but it's not a valid metadata. Must be an object having \\`.countries\\` child object property. Got ${isObject(metadata) ? 'an object of shape: { ' + Object.keys(metadata).join(', ') + ' }' : 'a ' + typeOf(metadata) + ': ' + metadata}.`)\r\n\t}\r\n}\r\n\r\n// Babel transforms `typeof` into some \"branches\"\r\n// so istanbul will show this as \"branch not covered\".\r\n/* istanbul ignore next */\r\nconst typeOf = _ => typeof _\r\n\r\n/**\r\n * Returns extension prefix for a country.\r\n * @param {string} country\r\n * @param {object} metadata\r\n * @return {string?}\r\n * @example\r\n * // Returns \" ext. \"\r\n * getExtPrefix(\"US\")\r\n */\r\nexport function getExtPrefix(country, metadata) {\r\n\tmetadata = new Metadata(metadata)\r\n\tif (metadata.hasCountry(country)) {\r\n\t\treturn metadata.selectNumberingPlan(country).ext()\r\n\t}\r\n\treturn DEFAULT_EXT_PREFIX\r\n}\r\n\r\n/**\r\n * Returns \"country calling code\" for a country.\r\n * Throws an error if the country doesn't exist or isn't supported by this library.\r\n * @param {string} country\r\n * @param {object} metadata\r\n * @return {string}\r\n * @example\r\n * // Returns \"44\"\r\n * getCountryCallingCode(\"GB\")\r\n */\r\nexport function getCountryCallingCode(country, metadata) {\r\n\tmetadata = new Metadata(metadata)\r\n\tif (metadata.hasCountry(country)) {\r\n\t\treturn metadata.selectNumberingPlan(country).countryCallingCode()\r\n\t}\r\n\tthrow new Error(`Unknown country: ${country}`)\r\n}\r\n\r\nexport function isSupportedCountry(country, metadata) {\r\n\t// metadata = new Metadata(metadata)\r\n\t// return metadata.hasCountry(country)\r\n\treturn metadata.countries.hasOwnProperty(country)\r\n}\r\n\r\nfunction setVersion(metadata) {\r\n\tconst { version } = metadata\r\n\tif (typeof version === 'number') {\r\n\t\tthis.v1 = version === 1\r\n\t\tthis.v2 = version === 2\r\n\t\tthis.v3 = version === 3\r\n\t\tthis.v4 = version === 4\r\n\t} else {\r\n\t\tif (!version) {\r\n\t\t\tthis.v1 = true\r\n\t\t} else if (compare(version, V3) === -1) {\r\n\t\t\tthis.v2 = true\r\n\t\t} else if (compare(version, V4) === -1) {\r\n\t\t\tthis.v3 = true\r\n\t\t} else {\r\n\t\t\tthis.v4 = true\r\n\t\t}\r\n\t}\r\n}\r\n\r\n// const ISO_COUNTRY_CODE = /^[A-Z]{2}$/\r\n// function isCountryCode(countryCode) {\r\n// \treturn ISO_COUNTRY_CODE.test(countryCodeOrCountryCallingCode)\r\n// }","import Metadata from '../metadata.js'\r\nimport mergeArrays from './mergeArrays.js'\r\n\r\nexport default function checkNumberLength(nationalNumber, country, metadata) {\r\n\treturn checkNumberLengthForType(nationalNumber, country, undefined, metadata)\r\n}\r\n\r\n// Checks whether a number is possible for a certain `country` based on the number length.\r\n//\r\n// This function is not supported by metadata generated with ancient versions of\r\n// `libphonenumber-js` (before version `1.0.18`) which didn't include \"possible lengths\".\r\n//\r\n// There was also a known issue with `checkNumberLength()` function:\r\n// if a number is possible only in a certain `country` among several `countries`\r\n// that share the same \"country calling code\", that function would check\r\n// the possibility of the phone number only in the \"main\" `country` for the \"country calling code\"\r\n// and would not check if it's actually be possible in the speciifc `country`.\r\n//\r\n// For example, \"+1310xxxx\" numbers are valid in Canada.\r\n// However, they are not possible in the US due to being too short.\r\n// Since Canada and the US share the same country calling code — \"+1\" —\r\n// `checkNumberLength()` function used to return not \"IS_POSSIBLE\" for \"+1310xxxx\" numbers.\r\n//\r\n// In such cases, when using \"/max\" metadata, `isValid()` could output `true`\r\n// but at the same time `isPossible()` could output `false`, which was contradictory.\r\n//\r\n// See https://issuetracker.google.com/issues/335892662 for the discusson in Google's issues.\r\n//\r\n// The solution suggested by Google was implemented: an optional `country` argument\r\n// was added to `checkNumberLength()` function. If present, that `country` will be used\r\n// to check phone number length for that specific `country` rather than the \"main\" country\r\n// for the shared \"country calling code\".\r\n//\r\nexport function checkNumberLengthForType(nationalNumber, country, type, metadata) {\r\n\t// If the exact `country` is specified, it's no necessarily already selected in `metadata`.\r\n\t// Most likely, in cases when there're multiple countries corresponding to the same\r\n\t// \"country calling code\", the \"main\" country for that \"country calling code\" will be selected.\r\n\tif (country) {\r\n\t\tmetadata = new Metadata(metadata.metadata)\r\n\t\tmetadata.selectNumberingPlan(country)\r\n\t}\r\n\r\n\tconst type_info = metadata.type(type)\r\n\r\n\t// There should always be \"<possiblePengths/>\" set for every type element.\r\n\t// This is declared in the XML schema.\r\n\t// For size efficiency, where a sub-description (e.g. fixed-line)\r\n\t// has the same \"<possiblePengths/>\" as the \"general description\", this is missing,\r\n\t// so we fall back to the \"general description\". Where no numbers of the type\r\n\t// exist at all, there is one possible length (-1) which is guaranteed\r\n\t// not to match the length of any real phone number.\r\n\tlet possible_lengths = type_info && type_info.possibleLengths() || metadata.possibleLengths()\r\n\t// let local_lengths = type_info && type.possibleLengthsLocal() || metadata.possibleLengthsLocal()\r\n\r\n\t// Metadata before version `1.0.18` didn't contain `possible_lengths`.\r\n\tif (!possible_lengths) {\r\n\t\treturn 'IS_POSSIBLE'\r\n\t}\r\n\r\n\tif (type === 'FIXED_LINE_OR_MOBILE') {\r\n\t\t// No such country in metadata.\r\n\t\t/* istanbul ignore next */\r\n\t\tif (!metadata.type('FIXED_LINE')) {\r\n\t\t\t// The rare case has been encountered where no fixedLine data is available\r\n\t\t\t// (true for some non-geographic entities), so we just check mobile.\r\n\t\t\treturn checkNumberLengthForType(nationalNumber, country, 'MOBILE', metadata)\r\n\t\t}\r\n\r\n\t\tconst mobile_type = metadata.type('MOBILE')\r\n\t\tif (mobile_type) {\r\n\t\t\t// Merge the mobile data in if there was any. \"Concat\" creates a new\r\n\t\t\t// array, it doesn't edit possible_lengths in place, so we don't need a copy.\r\n\t\t\t// Note that when adding the possible lengths from mobile, we have\r\n\t\t\t// to again check they aren't empty since if they are this indicates\r\n\t\t\t// they are the same as the general desc and should be obtained from there.\r\n\t\t\tpossible_lengths = mergeArrays(possible_lengths, mobile_type.possibleLengths())\r\n\t\t\t// The current list is sorted; we need to merge in the new list and\r\n\t\t\t// re-sort (duplicates are okay). Sorting isn't so expensive because\r\n\t\t\t// the lists are very small.\r\n\r\n\t\t\t// if (local_lengths) {\r\n\t\t\t// \tlocal_lengths = mergeArrays(local_lengths, mobile_type.possibleLengthsLocal())\r\n\t\t\t// } else {\r\n\t\t\t// \tlocal_lengths = mobile_type.possibleLengthsLocal()\r\n\t\t\t// }\r\n\t\t}\r\n\t}\r\n\t// If the type doesn't exist then return 'INVALID_LENGTH'.\r\n\telse if (type && !type_info) {\r\n\t\treturn 'INVALID_LENGTH'\r\n\t}\r\n\r\n\tconst actual_length = nationalNumber.length\r\n\r\n\t// In `libphonenumber-js` all \"local-only\" formats are dropped for simplicity.\r\n\t// // This is safe because there is never an overlap beween the possible lengths\r\n\t// // and the local-only lengths; this is checked at build time.\r\n\t// if (local_lengths && local_lengths.indexOf(nationalNumber.length) >= 0)\r\n\t// {\r\n\t// \treturn 'IS_POSSIBLE_LOCAL_ONLY'\r\n\t// }\r\n\r\n\tconst minimum_length = possible_lengths[0]\r\n\r\n\tif (minimum_length === actual_length) {\r\n\t\treturn 'IS_POSSIBLE'\r\n\t}\r\n\r\n\tif (minimum_length > actual_length) {\r\n\t\treturn 'TOO_SHORT'\r\n\t}\r\n\r\n\tif (possible_lengths[possible_lengths.length - 1] < actual_length) {\r\n\t\treturn 'TOO_LONG'\r\n\t}\r\n\r\n\t// We skip the first element since we've already checked it.\r\n\treturn possible_lengths.indexOf(actual_length, 1) >= 0 ? 'IS_POSSIBLE' : 'INVALID_LENGTH'\r\n}","import Metadata from './metadata.js'\r\nimport checkNumberLength from './helpers/checkNumberLength.js'\r\n\r\n/**\r\n * Checks if a phone number is \"possible\" (basically just checks its length).\r\n *\r\n * isPossible(phoneNumberInstance, { ..., v2: true }, metadata)\r\n *\r\n * isPossible({ phone: '8005553535', country: 'RU' }, { ... }, metadata)\r\n * isPossible({ phone: '8005553535', country: 'RU' }, undefined, metadata)\r\n *\r\n * @param {object|PhoneNumber} input — If `options.v2: true` flag is passed, the `input` should be a `PhoneNumber` instance. Otherwise, it should be an object of shape `{ phone: '...', country: '...' }`.\r\n * @param {object} [options]\r\n * @param {object} metadata\r\n * @return {string}\r\n */\r\nexport default function isPossiblePhoneNumber(input, options, metadata) {\r\n\t/* istanbul ignore if */\r\n\tif (options === undefined) {\r\n\t\toptions = {}\r\n\t}\r\n\r\n\tmetadata = new Metadata(metadata)\r\n\r\n\tif (options.v2) {\r\n\t\tif (!input.countryCallingCode) {\r\n\t\t\tthrow new Error('Invalid phone number object passed')\r\n\t\t}\r\n\t\tmetadata.selectNumberingPlan(input.countryCallingCode)\r\n\t} else {\r\n\t\tif (!input.phone) {\r\n\t\t\treturn false\r\n\t\t}\r\n\t\tif (input.country) {\r\n\t\t\tif (!metadata.hasCountry(input.country)) {\r\n\t\t\t\tthrow new Error(`Unknown country: ${input.country}`)\r\n\t\t\t}\r\n\t\t\tmetadata.selectNumberingPlan(input.country)\r\n\t\t} else {\r\n\t\t\tif (!input.countryCallingCode) {\r\n\t\t\t\tthrow new Error('Invalid phone number object passed')\r\n\t\t\t}\r\n\t\t\tmetadata.selectNumberingPlan(input.countryCallingCode)\r\n\t\t}\r\n\t}\r\n\r\n\t// Old metadata (< 1.0.18) had no \"possible length\" data.\r\n\tif (metadata.possibleLengths()) {\r\n\t\treturn isPossibleNumber(input.phone || input.nationalNumber, input.country, metadata)\r\n\t} else {\r\n\t\t// There was a bug between `1.7.35` and `1.7.37` where \"possible_lengths\"\r\n\t\t// were missing for \"non-geographical\" numbering plans.\r\n\t\t// Just assume the number is possible in such cases:\r\n\t\t// it's unlikely that anyone generated their custom metadata\r\n\t\t// in that short period of time (one day).\r\n\t\t// This code can be removed in some future major version update.\r\n\t\tif (input.countryCallingCode && metadata.isNonGeographicCallingCode(input.countryCallingCode)) {\r\n\t\t\t// \"Non-geographic entities\" did't have `possibleLengths`\r\n\t\t\t// due to a bug in metadata generation process.\r\n\t\t\treturn true\r\n\t\t} else {\r\n\t\t\tthrow new Error('Missing \"possibleLengths\" in metadata. Perhaps the metadata has been generated before v1.0.18.');\r\n\t\t}\r\n\t}\r\n}\r\n\r\nexport function isPossibleNumber(nationalNumber, country, metadata) { //, isInternational) {\r\n\tswitch (checkNumberLength(nationalNumber, country, metadata)) {\r\n\t\tcase 'IS_POSSIBLE':\r\n\t\t\treturn true\r\n\t\t// This library ignores \"local-only\" phone numbers (for simplicity).\r\n\t\t// See the readme for more info on what are \"local-only\" phone numbers.\r\n\t\t// case 'IS_POSSIBLE_LOCAL_ONLY':\r\n\t\t// \treturn !isInternational\r\n\t\tdefault:\r\n\t\t\treturn false\r\n\t}\r\n}","/**\r\n * Checks whether the entire input sequence can be matched\r\n * against the regular expression.\r\n * @return {boolean}\r\n */\r\nexport default function matchesEntirely(text, regularExpressionText) {\r\n\t// If the assigning of the `''` default value is moved to the arguments above,\r\n\t// the code coverage would decrease for some weird reason.\r\n\ttext = text || ''\r\n\treturn new RegExp('^(?:' + regularExpressionText + ')$').test(text)\r\n}","import Metadata from '../metadata.js'\r\nimport matchesEntirely from './matchesEntirely.js'\r\n\r\nconst NON_FIXED_LINE_PHONE_TYPES = [\r\n\t'MOBILE',\r\n\t'PREMIUM_RATE',\r\n\t'TOLL_FREE',\r\n\t'SHARED_COST',\r\n\t'VOIP',\r\n\t'PERSONAL_NUMBER',\r\n\t'PAGER',\r\n\t'UAN',\r\n\t'VOICEMAIL'\r\n]\r\n\r\n// Finds out national phone number type (fixed line, mobile, etc)\r\nexport default function getNumberType(input, options, metadata)\r\n{\r\n\t// If assigning the `{}` default value is moved to the arguments above,\r\n\t// code coverage would decrease for some weird reason.\r\n\toptions = options || {}\r\n\r\n\t// When `parse()` returns an empty object — `{}` —\r\n\t// that means that the phone number is malformed,\r\n\t// so it can't possibly be valid.\r\n\tif (!input.country && !input.countryCallingCode) {\r\n\t\treturn\r\n\t}\r\n\r\n\tmetadata = new Metadata(metadata)\r\n\r\n\tmetadata.selectNumberingPlan(input.country, input.countryCallingCode)\r\n\r\n\tconst nationalNumber = options.v2 ? input.nationalNumber : input.phone\r\n\r\n\t// The following is copy-pasted from the original function:\r\n\t// https://github.com/googlei18n/libphonenumber/blob/3ea547d4fbaa2d0b67588904dfa5d3f2557c27ff/javascript/i18n/phonenumbers/phonenumberutil.js#L2835\r\n\r\n\t// Is this national number even valid for this country\r\n\tif (!matchesEntirely(nationalNumber, metadata.nationalNumberPattern())) {\r\n\t\treturn\r\n\t}\r\n\r\n\t// Is it fixed line number\r\n\tif (isNumberTypeEqualTo(nationalNumber, 'FIXED_LINE', metadata)) {\r\n\t\t// Because duplicate regular expressions are removed\r\n\t\t// to reduce metadata size, if \"mobile\" pattern is \"\"\r\n\t\t// then it means it was removed due to being a duplicate of the fixed-line pattern.\r\n\t\t//\r\n\t\tif (metadata.type('MOBILE') && metadata.type('MOBILE').pattern() === '') {\r\n\t\t\treturn 'FIXED_LINE_OR_MOBILE'\r\n\t\t}\r\n\r\n\t\t// `MOBILE` type pattern isn't included if it matched `FIXED_LINE` one.\r\n\t\t// For example, for \"US\" country.\r\n\t\t// Old metadata (< `1.0.18`) had a specific \"types\" data structure\r\n\t\t// that happened to be `undefined` for `MOBILE` in that case.\r\n\t\t// Newer metadata (>= `1.0.18`) has another data structure that is\r\n\t\t// not `undefined` for `MOBILE` in that case (it's just an empty array).\r\n\t\t// So this `if` is just for backwards compatibility with old metadata.\r\n\t\tif (!metadata.type('MOBILE')) {\r\n\t\t\treturn 'FIXED_LINE_OR_MOBILE'\r\n\t\t}\r\n\r\n\t\t// Check if the number happens to qualify as both fixed line and mobile.\r\n\t\t// (no such country in the minimal metadata set)\r\n\t\t/* istanbul ignore if */\r\n\t\tif (isNumberTypeEqualTo(nationalNumber, 'MOBILE', metadata)) {\r\n\t\t\treturn 'FIXED_LINE_OR_MOBILE'\r\n\t\t}\r\n\r\n\t\treturn 'FIXED_LINE'\r\n\t}\r\n\r\n\tfor (const type of NON_FIXED_LINE_PHONE_TYPES) {\r\n\t\tif (isNumberTypeEqualTo(nationalNumber, type, metadata)) {\r\n\t\t\treturn type\r\n\t\t}\r\n\t}\r\n}\r\n\r\nexport function isNumberTypeEqualTo(nationalNumber, type, metadata) {\r\n\tconst typeDefinition = metadata.type(type)\r\n\tif (!typeDefinition || !typeDefinition.pattern()) {\r\n\t\treturn false\r\n\t}\r\n\r\n\t// Check if any possible number lengths are present;\r\n\t// if so, we use them to avoid checking\r\n\t// the validation pattern if they don't match.\r\n\t// If they are absent, this means they match\r\n\t// the general description, which we have\r\n\t// already checked before a specific number type.\r\n\tif (\r\n\t\ttypeDefinition.possibleLengths() &&\r\n\t\ttypeDefinition.possibleLengths().indexOf(nationalNumber.length) < 0\r\n\t) {\r\n\t\treturn false\r\n\t}\r\n\r\n\treturn matchesEntirely(nationalNumber, typeDefinition.pattern())\r\n}","import Metadata from './metadata.js'\r\nimport matchesEntirely from './helpers/matchesEntirely.js'\r\nimport getNumberType from './helpers/getNumberType.js'\r\n\r\n/**\r\n * Checks if a given phone number is valid.\r\n *\r\n * isValid(phoneNumberInstance, { ..., v2: true }, metadata)\r\n *\r\n * isPossible({ phone: '8005553535', country: 'RU' }, { ... }, metadata)\r\n * isPossible({ phone: '8005553535', country: 'RU' }, undefined, metadata)\r\n *\r\n * If the `number` is a string, it will be parsed to an object,\r\n * but only if it contains only valid phone number characters (including punctuation).\r\n * If the `number` is an object, it is used as is.\r\n *\r\n * The optional `defaultCountry` argument is the default country.\r\n * I.e. it does not restrict to just that country,\r\n * e.g. in those cases where several countries share\r\n * the same phone numbering rules (NANPA, Britain, etc).\r\n * For example, even though the number `07624 369230`\r\n * belongs to the Isle of Man (\"IM\" country code)\r\n * calling `isValidNumber('07624369230', 'GB', metadata)`\r\n * still returns `true` because the country is not restricted to `GB`,\r\n * it's just that `GB` is the default one for the phone numbering rules.\r\n * For restricting the country see `isValidNumberForRegion()`\r\n * though restricting a country might not be a good idea.\r\n * https://github.com/googlei18n/libphonenumber/blob/master/FAQ.md#when-should-i-use-isvalidnumberforregion\r\n *\r\n * Examples:\r\n *\r\n * ```js\r\n * isValidNumber('+78005553535', metadata)\r\n * isValidNumber('8005553535', 'RU', metadata)\r\n * isValidNumber('88005553535', 'RU', metadata)\r\n * isValidNumber({ phone: '8005553535', country: 'RU' }, metadata)\r\n * ```\r\n */\r\nexport default function isValidNumber(input, options, metadata)\r\n{\r\n\t// If assigning the `{}` default value is moved to the arguments above,\r\n\t// code coverage would decrease for some weird reason.\r\n\toptions = options || {}\r\n\r\n\tmetadata = new Metadata(metadata)\r\n\r\n\tmetadata.selectNumberingPlan(input.country, input.countryCallingCode)\r\n\r\n\t// By default, countries only have type regexps when it's required for\r\n\t// distinguishing different countries having the same `countryCallingCode`.\r\n\tif (metadata.hasTypes()) {\r\n\t\treturn getNumberType(input, options, metadata.metadata) !== undefined\r\n\t}\r\n\r\n\t// If there are no type regexps for this country in metadata then use\r\n\t// `nationalNumberPattern` as a \"better than nothing\" replacement.\r\n\tconst nationalNumber = options.v2 ? input.nationalNumber : input.phone\r\n\treturn matchesEntirely(nationalNumber, metadata.nationalNumberPattern())\r\n}","import Metadata from '../metadata.js'\r\n\r\n/**\r\n * Returns a list of countries that the phone number could potentially belong to.\r\n * @param {string} callingCode — Calling code.\r\n * @param {string} nationalNumber — National (significant) number.\r\n * @param {object} metadata — Metadata.\r\n * @return {string[]} A list of possible countries.\r\n */\r\nexport default function getPossibleCountriesForNumber(callingCode, nationalNumber, metadata) {\r\n\tconst _metadata = new Metadata(metadata)\r\n\tlet possibleCountries = _metadata.getCountryCodesForCallingCode(callingCode)\r\n\tif (!possibleCountries) {\r\n\t\treturn []\r\n\t}\r\n\treturn possibleCountries.filter((country) => {\r\n\t\treturn couldNationalNumberBelongToCountry(nationalNumber, country, metadata)\r\n\t})\r\n}\r\n\r\nfunction couldNationalNumberBelongToCountry(nationalNumber, country, metadata) {\r\n\tconst _metadata = new Metadata(metadata)\r\n\t_metadata.selectNumberingPlan(country)\r\n\tif (_metadata.numberingPlan.possibleLengths().indexOf(nationalNumber.length) >= 0) {\r\n\t\treturn true\r\n\t}\r\n\treturn false\r\n}","// The minimum length of the national significant number.\r\nexport const MIN_LENGTH_FOR_NSN = 2\r\n\r\n// The ITU says the maximum length should be 15,\r\n// but one can find longer numbers in Germany.\r\nexport const MAX_LENGTH_FOR_NSN = 17\r\n\r\n// The maximum length of the country calling code.\r\nexport const MAX_LENGTH_COUNTRY_CODE = 3\r\n\r\n// Digits accepted in phone numbers\r\n// (ascii, fullwidth, arabic-indic, and eastern arabic digits).\r\nexport const VALID_DIGITS = '0-9\\uFF10-\\uFF19\\u0660-\\u0669\\u06F0-\\u06F9'\r\n\r\n// `DASHES` will be right after the opening square bracket of the \"character class\"\r\nconst DASHES = '-\\u2010-\\u2015\\u2212\\u30FC\\uFF0D'\r\nconst SLASHES = '\\uFF0F/'\r\nconst DOTS = '\\uFF0E.'\r\nexport const WHITESPACE = ' \\u00A0\\u00AD\\u200B\\u2060\\u3000'\r\nconst BRACKETS = '()\\uFF08\\uFF09\\uFF3B\\uFF3D\\\\[\\\\]'\r\n// export const OPENING_BRACKETS = '(\\uFF08\\uFF3B\\\\\\['\r\nconst TILDES = '~\\u2053\\u223C\\uFF5E'\r\n\r\n// Regular expression of acceptable punctuation found in phone numbers. This\r\n// excludes punctuation found as a leading character only. This consists of dash\r\n// characters, white space characters, full stops, slashes, square brackets,\r\n// parentheses and tildes. Full-width variants are also present.\r\nexport const VALID_PUNCTUATION = `${DASHES}${SLASHES}${DOTS}${WHITESPACE}${BRACKETS}${TILDES}`\r\n\r\nexport const PLUS_CHARS = '+\\uFF0B'\r\n// const LEADING_PLUS_CHARS_PATTERN = new RegExp('^[' + PLUS_CHARS + ']+')","import Metadata from '../metadata.js'\r\nimport { VALID_DIGITS } from '../constants.js'\r\n\r\nconst CAPTURING_DIGIT_PATTERN = new RegExp('([' + VALID_DIGITS + '])')\r\n\r\nexport default function stripIddPrefix(number, country, callingCode, metadata) {\r\n\tif (!country) {\r\n\t\treturn\r\n\t}\r\n\t// Check if the number is IDD-prefixed.\r\n\tconst countryMetadata = new Metadata(metadata)\r\n\tcountryMetadata.selectNumberingPlan(country, callingCode)\r\n\tconst IDDPrefixPattern = new RegExp(countryMetadata.IDDPrefix())\r\n\tif (number.search(IDDPrefixPattern) !== 0) {\r\n\t\treturn\r\n\t}\r\n\t// Strip IDD prefix.\r\n\tnumber = number.slice(number.match(IDDPrefixPattern)[0].length)\r\n\t// If there're any digits after an IDD prefix,\r\n\t// then those digits are a country calling code.\r\n\t// Since no country code starts with a `0`,\r\n\t// the code below validates that the next digit (if present) is not `0`.\r\n\tconst matchedGroups = number.match(CAPTURING_DIGIT_PATTERN)\r\n\tif (matchedGroups && matchedGroups[1] != null && matchedGroups[1].length > 0) {\r\n\t\tif (matchedGroups[1] === '0') {\r\n\t\t\treturn\r\n\t\t}\r\n\t}\r\n\treturn number\r\n}","/**\r\n * Strips any national prefix (such as 0, 1) present in a\r\n * (possibly incomplete) number provided.\r\n * \"Carrier codes\" are only used in Colombia and Brazil,\r\n * and only when dialing within those countries from a mobile phone to a fixed line number.\r\n * Sometimes it won't actually strip national prefix\r\n * and will instead prepend some digits to the `number`:\r\n * for example, when number `2345678` is passed with `VI` country selected,\r\n * it will return `{ number: \"3402345678\" }`, because `340` area code is prepended.\r\n * @param {string} number — National number digits.\r\n * @param {object} metadata — Metadata with country selected.\r\n * @return {object} `{ nationalNumber: string, nationalPrefix: string? carrierCode: string? }`. Even if a national prefix was extracted, it's not necessarily present in the returned object, so don't rely on its presence in the returned object in order to find out whether a national prefix has been extracted or not.\r\n */\r\nexport default function extractNationalNumberFromPossiblyIncompleteNumber(number, metadata) {\r\n\tif (number && metadata.numberingPlan.nationalPrefixForParsing()) {\r\n\t\t// See METADATA.md for the description of\r\n\t\t// `national_prefix_for_parsing` and `national_prefix_transform_rule`.\r\n\t\t// Attempt to parse the first digits as a national prefix.\r\n\t\tconst prefixPattern = new RegExp('^(?:' + metadata.numberingPlan.nationalPrefixForParsing() + ')')\r\n\t\tconst prefixMatch = prefixPattern.exec(number)\r\n\t\tif (prefixMatch) {\r\n\t\t\tlet nationalNumber\r\n\t\t\tlet carrierCode\r\n\t\t\t// https://gitlab.com/catamphetamine/libphonenumber-js/-/blob/master/METADATA.md#national_prefix_for_parsing--national_prefix_transform_rule\r\n\t\t\t// If a `national_prefix_for_parsing` has any \"capturing groups\"\r\n\t\t\t// then it means that the national (significant) number is equal to\r\n\t\t\t// those \"capturing groups\" transformed via `national_prefix_transform_rule`,\r\n\t\t\t// and nothing could be said about the actual national prefix:\r\n\t\t\t// what is it and was it even there.\r\n\t\t\t// If a `national_prefix_for_parsing` doesn't have any \"capturing groups\",\r\n\t\t\t// then everything it matches is a national prefix.\r\n\t\t\t// To determine whether `national_prefix_for_parsing` matched any\r\n\t\t\t// \"capturing groups\", the value of the result of calling `.exec()`\r\n\t\t\t// is looked at, and if it has non-undefined values where there're\r\n\t\t\t// \"capturing groups\" in the regular expression, then it means\r\n\t\t\t// that \"capturing groups\" have been matched.\r\n\t\t\t// It's not possible to tell whether there'll be any \"capturing gropus\"\r\n\t\t\t// before the matching process, because a `national_prefix_for_parsing`\r\n\t\t\t// could exhibit both behaviors.\r\n\t\t\tconst capturedGroupsCount = prefixMatch.length - 1\r\n\t\t\tconst hasCapturedGroups = capturedGroupsCount > 0 && prefixMatch[capturedGroupsCount]\r\n\t\t\tif (metadata.nationalPrefixTransformRule() && hasCapturedGroups) {\r\n\t\t\t\tnationalNumber = number.replace(\r\n\t\t\t\t\tprefixPattern,\r\n\t\t\t\t\tmetadata.nationalPrefixTransformRule()\r\n\t\t\t\t)\r\n\t\t\t\t// If there's more than one captured group,\r\n\t\t\t\t// then carrier code is the second one.\r\n\t\t\t\tif (capturedGroupsCount > 1) {\r\n\t\t\t\t\tcarrierCode = prefixMatch[1]\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t// If there're no \"capturing groups\",\r\n\t\t\t// or if there're \"capturing groups\" but no\r\n\t\t\t// `national_prefix_transform_rule`,\r\n\t\t\t// then just strip the national prefix from the number,\r\n\t\t\t// and possibly a carrier code.\r\n\t\t\t// Seems like there could be more.\r\n\t\t\telse {\r\n\t\t\t\t// `prefixBeforeNationalNumber` is the whole substring matched by\r\n\t\t\t\t// the `national_prefix_for_parsing` regular expression.\r\n\t\t\t\t// There seem to be no guarantees that it's just a national prefix.\r\n\t\t\t\t// For example, if there's a carrier code, it's gonna be a\r\n\t\t\t\t// part of `prefixBeforeNationalNumber` too.\r\n\t\t\t\tconst prefixBeforeNationalNumber = prefixMatch[0]\r\n\t\t\t\tnationalNumber = number.slice(prefixBeforeNationalNumber.length)\r\n\t\t\t\t// If there's at least one captured group,\r\n\t\t\t\t// then carrier code is the first one.\r\n\t\t\t\tif (hasCapturedGroups) {\r\n\t\t\t\t\tcarrierCode = prefixMatch[1]\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t// Tries to guess whether a national prefix was present in the input.\r\n\t\t\t// This is not something copy-pasted from Google's library:\r\n\t\t\t// they don't seem to have an equivalent for that.\r\n\t\t\t// So this isn't an \"officially approved\" way of doing something like that.\r\n\t\t\t// But since there seems no other existing method, this library uses it.\r\n\t\t\tlet nationalPrefix\r\n\t\t\tif (hasCapturedGroups) {\r\n\t\t\t\tconst possiblePositionOfTheFirstCapturedGroup = number.indexOf(prefixMatch[1])\r\n\t\t\t\tconst possibleNationalPrefix = number.slice(0, possiblePositionOfTheFirstCapturedGroup)\r\n\t\t\t\t// Example: an Argentinian (AR) phone number `0111523456789`.\r\n\t\t\t\t// `prefixMatch[0]` is `01115`, and `$1` is `11`,\r\n\t\t\t\t// and the rest of the phone number is `23456789`.\r\n\t\t\t\t// The national number is transformed via `9$1` to `91123456789`.\r\n\t\t\t\t// National prefix `0` is detected being present at the start.\r\n\t\t\t\t// if (possibleNationalPrefix.indexOf(metadata.numberingPlan.nationalPrefix()) === 0) {\r\n\t\t\t\tif (possibleNationalPrefix === metadata.numberingPlan.nationalPrefix()) {\r\n\t\t\t\t\tnationalPrefix = metadata.numberingPlan.nationalPrefix()\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tnationalPrefix = prefixMatch[0]\r\n\t\t\t}\r\n\t\t\treturn {\r\n\t\t\t\tnationalNumber,\r\n\t\t\t\tnationalPrefix,\r\n\t\t\t\tcarrierCode\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n return {\r\n \tnationalNumber: number\r\n }\r\n}","import Metadata from '../metadata.js'\r\nimport getNumberType from './getNumberType.js'\r\n\r\n// Returns the exact country that the `nationalPhoneNumber` belongs to\r\n// in cases of ambiguity, i.e. when multiple countries share the same \"country calling code\".\r\nexport default function getCountryByNationalNumber(nationalPhoneNumber, {\r\n\tcountries,\r\n\tmetadata\r\n}) {\r\n\t// Re-create `metadata` because it will be selecting a `country`.\r\n\tmetadata = new Metadata(metadata)\r\n\r\n\t// const matchingCountries = []\r\n\r\n\tfor (const country of countries) {\r\n\t\tmetadata.selectNumberingPlan(country)\r\n\t\t// \"Leading digits\" patterns are only defined for about 20% of all countries.\r\n\t\t// By definition, matching \"leading digits\" is a sufficient but not a necessary\r\n\t\t// condition for a phone number to belong to a country.\r\n\t\t// The point of \"leading digits\" check is that it's the fastest one to get a match.\r\n\t\t// https://gitlab.com/catamphetamine/libphonenumber-js/blob/master/METADATA.md#leading_digits\r\n\t\t// I'd suppose that \"leading digits\" patterns are mutually exclusive for different countries\r\n\t\t// because of the intended use of that feature.\r\n\t\tif (metadata.leadingDigits()) {\r\n\t\t\tif (nationalPhoneNumber &&\r\n\t\t\t\tnationalPhoneNumber.search(metadata.leadingDigits()) === 0) {\r\n\t\t\t\treturn country\r\n\t\t\t}\r\n\t\t}\r\n\t\t// Else perform full validation with all of those\r\n\t\t// fixed-line/mobile/etc regular expressions.\r\n\t\telse if (getNumberType({ phone: nationalPhoneNumber, country }, undefined, metadata.metadata)) {\r\n\t\t\t// When multiple countries share the same \"country calling code\",\r\n\t\t\t// type patterns aren't guaranteed to be unique among them.\r\n\t\t\t// For example, both `US` and `CA` have the same pattern for `toll_free` numbers.\r\n\t\t\t// https://gitlab.com/catamphetamine/libphonenumber-js/-/issues/103#note_1417147572\r\n\t\t\t//\r\n\t\t\t// That means that this `if` condition could be `true` for multiple countries from the list.\r\n\t\t\t// Currently, it just returns the first one, which is also the \"main\" country for the \"country calling code\".\r\n\t\t\t// In an example with `toll_free` numbers above, `\"US\"` would be returned even though\r\n\t\t\t// it could as well be `\"CA\"`.\r\n\t\t\t//\r\n\t\t\t// There was also a time when this attempted to be overly smart\r\n\t\t\t// and kept track of all such multiple matching countries\r\n\t\t\t// and then picked the one that matched the `defaultCountry`, if provided.\r\n\t\t\t// For example, with `toll_free` numbers above, and with `defaultCountry: \"CA\"`,\r\n\t\t\t// it would've returned `\"CA\"` instead of `\"US\"`.\r\n\t\t\t// Later it turned out that such \"overly smart\" behavior turned out to be just confusing,\r\n\t\t\t// so this \"overly smart\" country detection was reverted to returning the \"main\" country\r\n\t\t\t// for the \"country calling code\".\r\n\t\t\t// https://gitlab.com/catamphetamine/libphonenumber-js/-/issues/154\r\n\t\t\t//\r\n\t\t\treturn country\r\n\t\t\t//\r\n\t\t\t// The \"overly smart\" behavior code:\r\n\t\t\t//\r\n\t\t\t// if (defaultCountry) {\r\n\t\t\t// \tif (country === defaultCountry) {\r\n\t\t\t// \t\treturn country\r\n\t\t\t// \t} else {\r\n\t\t\t// \t\tmatchingCountries.push(country)\r\n\t\t\t// \t}\r\n\t\t\t// } else {\r\n\t\t\t// \treturn country\r\n\t\t\t// }\r\n\t\t}\r\n\t}\r\n\r\n\t// // Return the first (\"main\") one of the `matchingCountries`.\r\n\t// if (matchingCountries.length > 0) {\r\n\t// \treturn matchingCountries[0]\r\n\t// }\r\n}","import getCountryByNationalNumber from './getCountryByNationalNumber.js'\r\n\r\nconst USE_NON_GEOGRAPHIC_COUNTRY_CODE = false\r\n\r\n// Returns the exact country for the `nationalNumber`\r\n// that belongs to the specified \"country calling code\".\r\nexport default function getCountryByCallingCode(callingCode, {\r\n\tnationalNumber: nationalPhoneNumber,\r\n\tmetadata\r\n}) {\r\n\t/* istanbul ignore if */\r\n\tif (USE_NON_GEOGRAPHIC_COUNTRY_CODE) {\r\n\t\tif (metadata.isNonGeographicCallingCode(callingCode)) {\r\n\t\t\treturn '001'\r\n\t\t}\r\n\t}\r\n\tconst possibleCountries = metadata.getCountryCodesForCallingCode(callingCode)\r\n\tif (!possibleCountries) {\r\n\t\treturn\r\n\t}\r\n\t// If there's just one country corresponding to the country code,\r\n\t// then just return it, without further phone number digits validation.\r\n\tif (possibleCountries.length === 1) {\r\n\t\treturn possibleCountries[0]\r\n\t}\r\n\treturn getCountryByNationalNumber(nationalPhoneNumber, {\r\n\t\tcountries: possibleCountries,\r\n\t\tmetadata: metadata.metadata\r\n\t})\r\n}","import extractNationalNumberFromPossiblyIncompleteNumber from './extractNationalNumberFromPossiblyIncompleteNumber.js'\r\nimport matchesEntirely from './matchesEntirely.js'\r\nimport checkNumberLength from './checkNumberLength.js'\r\nimport getCountryByCallingCode from './getCountryByCallingCode.js'\r\n\r\n/**\r\n * Strips national prefix and carrier code from a complete phone number.\r\n * The difference from the non-\"FromCompleteNumber\" function is that\r\n * it won't extract national prefix if the resultant number is too short\r\n * to be a complete number for the selected phone numbering plan.\r\n * @param {string} number — Complete phone number digits.\r\n * @param {string?} country — Country, if known.\r\n * @param {Metadata} metadata — Metadata with a phone numbering plan selected.\r\n * @return {object} `{ nationalNumber: string, carrierCode: string? }`.\r\n */\r\nexport default function extractNationalNumber(number, country, metadata) {\r\n\t// Parsing national prefixes and carrier codes\r\n\t// is only required for local phone numbers\r\n\t// but some people don't understand that\r\n\t// and sometimes write international phone numbers\r\n\t// with national prefixes (or maybe even carrier codes).\r\n\t// http://ucken.blogspot.ru/2016/03/trunk-prefixes-in-skype4b.html\r\n\t// Google's original library forgives such mistakes\r\n\t// and so does this library, because it has been requested:\r\n\t// https://github.com/catamphetamine/libphonenumber-js/issues/127\r\n\tconst {\r\n\t\tcarrierCode,\r\n\t\tnationalNumber\r\n\t} = extractNationalNumberFromPossiblyIncompleteNumber(\r\n\t\tnumber,\r\n\t\tmetadata\r\n\t)\r\n\r\n\tif (nationalNumber !== number) {\r\n\t\tif (!shouldHaveExtractedNationalPrefix(number, nationalNumber, metadata)) {\r\n\t\t\t// Don't strip the national prefix.\r\n\t\t\treturn { nationalNumber: number }\r\n\t\t}\r\n\t\t// Check the national (significant) number length after extracting national prefix and carrier code.\r\n\t\t// Legacy generated metadata (before `1.0.18`) didn't support the \"possible lengths\" feature.\r\n\t\tif (metadata.numberingPlan.possibleLengths()) {\r\n\t\t\t// If an exact `country` is not specified, attempt to detect it from the assumed national number.\r\n\t\t\tif (!country) {\r\n\t\t\t\tcountry = getCountryByCallingCode(metadata.numberingPlan.callingCode(), {\r\n\t\t\t\t\tnationalNumber,\r\n\t\t\t\t\tmetadata\r\n\t\t\t\t})\r\n\t\t\t}\r\n\r\n\t\t\t// The number remaining after stripping the national prefix and carrier code\r\n\t\t\t// should be long enough to have a possible length for the country.\r\n\t\t\t// Otherwise, don't strip the national prefix and carrier code,\r\n\t\t\t// since the original number could be a valid number.\r\n\t\t\t// This check has been copy-pasted \"as is\" from Google's original library:\r\n\t\t\t// https://github.com/google/libphonenumber/blob/876268eb1ad6cdc1b7b5bef17fc5e43052702d57/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java#L3236-L3250\r\n\t\t\t// It doesn't check for the \"possibility\" of the original `number`.\r\n\t\t\t// I guess it's fine not checking that one. It works as is anyway.\r\n\t\t\tif (!isPossibleIncompleteNationalNumber(nationalNumber, country, metadata)) {\r\n\t\t\t\t// Don't strip the national prefix.\r\n\t\t\t\treturn { nationalNumber: number }\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\treturn { nationalNumber, carrierCode }\r\n}\r\n\r\n// In some countries, the same digit could be a national prefix\r\n// or a leading digit of a valid phone number.\r\n// For example, in Russia, national prefix is `8`,\r\n// and also `800 555 35 35` is a valid number\r\n// in which `8` is not a national prefix, but the first digit\r\n// of a national (significant) number.\r\n// Same's with Belarus:\r\n// `82004910060` is a valid national (significant) number,\r\n// but `2004910060` is not.\r\n// To support such cases (to prevent the code from always stripping\r\n// national prefix), a condition is imposed: a national prefix\r\n// is not extracted when the original number is \"viable\" and the\r\n// resultant number is not, a \"viable\" national number being the one\r\n// that matches `national_number_pattern`.\r\nfunction shouldHaveExtractedNationalPrefix(nationalNumberBefore, nationalNumberAfter, metadata) {\r\n\t// The equivalent in Google's code is:\r\n\t// https://github.com/google/libphonenumber/blob/e326fa1fc4283bb05eb35cb3c15c18f98a31af33/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java#L2969-L3004\r\n\tif (matchesEntirely(nationalNumberBefore, metadata.nationalNumberPattern()) &&\r\n\t\t!matchesEntirely(nationalNumberAfter, metadata.nationalNumberPattern())) {\r\n\t\treturn false\r\n\t}\r\n\t// This \"is possible\" national number (length) check has been commented out\r\n\t// because it's superceded by the (effectively) same check done in the\r\n\t// `extractNationalNumber()` function after it calls `shouldHaveExtractedNationalPrefix()`.\r\n\t// In other words, why run the same check twice if it could only be run once.\r\n\t// // Check the national (significant) number length after extracting national prefix and carrier code.\r\n\t// // Fixes a minor \"weird behavior\" bug: https://gitlab.com/catamphetamine/libphonenumber-js/-/issues/57\r\n\t// // (Legacy generated metadata (before `1.0.18`) didn't support the \"possible lengths\" feature).\r\n\t// if (metadata.possibleLengths()) {\r\n\t// \tif (isPossibleIncompleteNationalNumber(nationalNumberBefore, metadata) &&\r\n\t// \t\t!isPossibleIncompleteNationalNumber(nationalNumberAfter, metadata)) {\r\n\t// \t\treturn false\r\n\t// \t}\r\n\t// }\r\n\treturn true\r\n}\r\n\r\nfunction isPossibleIncompleteNationalNumber(nationalNumber, country, metadata) {\r\n\tswitch (checkNumberLength(nationalNumber, country, metadata)) {\r\n\t\tcase 'TOO_SHORT':\r\n\t\tcase 'INVALID_LENGTH':\r\n\t\t// This library ignores \"local-only\" phone numbers (for simplicity).\r\n\t\t// See the readme for more info on what are \"local-only\" phone numbers.\r\n\t\t// case 'IS_POSSIBLE_LOCAL_ONLY':\r\n\t\t\treturn false\r\n\t\tdefault:\r\n\t\t\treturn true\r\n\t}\r\n}","import Metadata from '../metadata.js'\r\nimport matchesEntirely from './matchesEntirely.js'\r\nimport extractNationalNumber from './extractNationalNumber.js'\r\nimport checkNumberLength from './checkNumberLength.js'\r\nimport getCountryCallingCode from '../getCountryCallingCode.js'\r\n\r\n/**\r\n * Sometimes some people incorrectly input international phone numbers\r\n * without the leading `+`. This function corrects such input.\r\n * @param {string} number — Phone number digits.\r\n * @param {string} [country] — Exact country of the phone number.\r\n * @param {string} [defaultCountry]\r\n * @param {string} [defaultCallingCode]\r\n * @param {object} metadata\r\n * @return {object} `{ countryCallingCode: string?, number: string }`.\r\n */\r\nexport default function extractCountryCallingCodeFromInternationalNumberWithoutPlusSign(\r\n\tnumber,\r\n\tcountry,\r\n\tdefaultCountry,\r\n\tdefaultCallingCode,\r\n\tmetadata\r\n) {\r\n\tconst countryCallingCode = country || defaultCountry\r\n\t\t? getCountryCallingCode(country || defaultCountry, metadata)\r\n\t\t: defaultCallingCode\r\n\r\n\tif (number.indexOf(countryCallingCode) === 0) {\r\n\t\tmetadata = new Metadata(metadata)\r\n\t\tmetadata.selectNumberingPlan(country || defaultCountry, countryCallingCode)\r\n\r\n\t\tconst possibleShorterNumber = number.slice(countryCallingCode.length)\r\n\r\n\t\tconst {\r\n\t\t\tnationalNumber: possibleShorterNationalNumber,\r\n\t\t} = extractNationalNumber(\r\n\t\t\tpossibleShorterNumber,\r\n\t\t\tcountry,\r\n\t\t\tmetadata\r\n\t\t)\r\n\r\n\t\tconst {\r\n\t\t\tnationalNumber\r\n\t\t} = extractNationalNumber(\r\n\t\t\tnumber,\r\n\t\t\tcountry,\r\n\t\t\tmetadata\r\n\t\t)\r\n\r\n\t\t// If the number was not valid before but is valid now,\r\n\t\t// or if it was too long before, we consider the number\r\n\t\t// with the country calling code stripped to be a better result\r\n\t\t// and keep that instead.\r\n\t\t// For example, in Germany (+49), `49` is a valid area code,\r\n\t\t// so if a number starts with `49`, it could be both a valid\r\n\t\t// national German number or an international number without\r\n\t\t// a leading `+`.\r\n\t\tif (\r\n\t\t\t(\r\n\t\t\t\t!matchesEntirely(nationalNumber, metadata.nationalNumberPattern()) &&\r\n\t\t\t\tmatchesEntirely(possibleShorterNationalNumber, metadata.nationalNumberPattern())\r\n\t\t\t)\r\n\t\t\t||\r\n\t\t\tcheckNumberLength(nationalNumber, country, metadata) === 'TOO_LONG'\r\n\t\t) {\r\n\t\t\treturn {\r\n\t\t\t\tcountryCallingCode,\r\n\t\t\t\tnumber: possibleShorterNumber\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\treturn { number }\r\n}","import stripIddPrefix from './stripIddPrefix.js'\r\nimport extractCountryCallingCodeFromInternationalNumberWithoutPlusSign from './extractCountryCallingCodeFromInternationalNumberWithoutPlusSign.js'\r\nimport Metadata from '../metadata.js'\r\nimport { MAX_LENGTH_COUNTRY_CODE } from '../constants.js'\r\n\r\n/**\r\n * Converts a phone number digits (possibly with a `+`)\r\n * into a calling code and the rest phone number digits.\r\n * The \"rest phone number digits\" could include\r\n * a national prefix, carrier code, and national\r\n * (significant) number.\r\n * @param {string} number — Phone number digits (possibly with a `+`).\r\n * @param {string} [country] — Country.\r\n * @param {string} [defaultCountry] — Default country.\r\n * @param {string} [defaultCallingCode] — Default calling code (some phone numbering plans are non-geographic).\r\n * @param {object} metadata\r\n * @return {object} `{ countryCallingCodeSource: string?, countryCallingCode: string?, number: string }`\r\n * @example\r\n * // Returns `{ countryCallingCode: \"1\", number: \"2133734253\" }`.\r\n * extractCountryCallingCode('2133734253', null, 'US', null, metadata)\r\n * extractCountryCallingCode('2133734253', null, null, '1', metadata)\r\n * extractCountryCallingCode('+12133734253', null, null, null, metadata)\r\n * extractCountryCallingCode('+12133734253', null, 'RU', null, metadata)\r\n */\r\nexport default function extractCountryCallingCode(\r\n\tnumber,\r\n\tcountry,\r\n\tdefaultCountry,\r\n\tdefaultCallingCode,\r\n\tmetadata\r\n) {\r\n\tif (!number) {\r\n\t\treturn {}\r\n\t}\r\n\r\n\tlet isNumberWithIddPrefix\r\n\r\n\t// If this is not an international phone number,\r\n\t// then either extract an \"IDD\" prefix, or extract a\r\n\t// country calling code from a number by autocorrecting it\r\n\t// by prepending a leading `+` in cases when it starts\r\n\t// with the country calling code.\r\n\t// https://wikitravel.org/en/International_dialling_prefix\r\n\t// https://github.com/catamphetamine/libphonenumber-js/issues/376\r\n\tif (number[0] !== '+') {\r\n\t\t// Convert an \"out-of-country\" dialing phone number\r\n\t\t// to a proper international phone number.\r\n\t\tconst numberWithoutIDD = stripIddPrefix(number, country || defaultCountry, defaultCallingCode, metadata)\r\n\t\t// If an IDD prefix was stripped then\r\n\t\t// convert the number to international one\r\n\t\t// for subsequent parsing.\r\n\t\tif (numberWithoutIDD && numberWithoutIDD !== number) {\r\n\t\t\tisNumberWithIddPrefix = true\r\n\t\t\tnumber = '+' + numberWithoutIDD\r\n\t\t} else {\r\n\t\t\t// Check to see if the number starts with the country calling code\r\n\t\t\t// for the default country. If so, we remove the country calling code,\r\n\t\t\t// and do some checks on the validity of the number before and after.\r\n\t\t\t// https://github.com/catamphetamine/libphonenumber-js/issues/376\r\n\t\t\tif (country || defaultCountry || defaultCallingCode) {\r\n\t\t\t\tconst {\r\n\t\t\t\t\tcountryCallingCode,\r\n\t\t\t\t\tnumber: shorterNumber\r\n\t\t\t\t} = extractCountryCallingCodeFromInternationalNumberWithoutPlusSign(\r\n\t\t\t\t\tnumber,\r\n\t\t\t\t\tcountry,\r\n\t\t\t\t\tdefaultCountry,\r\n\t\t\t\t\tdefaultCallingCode,\r\n\t\t\t\t\tmetadata\r\n\t\t\t\t)\r\n\t\t\t\tif (countryCallingCode) {\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\tcountryCallingCodeSource: 'FROM_NUMBER_WITHOUT_PLUS_SIGN',\r\n\t\t\t\t\t\tcountryCallingCode,\r\n\t\t\t\t\t\tnumber: shorterNumber\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn {\r\n\t\t\t\t// No need to set it to `UNSPECIFIED`. It can be just `undefined`.\r\n\t\t\t\t// countryCallingCodeSource: 'UNSPECIFIED',\r\n\t\t\t\tnumber\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t// `number` can only be international at this point.\r\n\r\n\t// Fast abortion: country codes do not begin with a '0'\r\n\tif (number[1] === '0') {\r\n\t\treturn {}\r\n\t}\r\n\r\n\tmetadata = new Metadata(metadata)\r\n\r\n\t// The thing with country phone codes\r\n\t// is that they are orthogonal to each other\r\n\t// i.e. there's no such country phone code A\r\n\t// for which country phone code B exists\r\n\t// where B starts with A.\r\n\t// Therefore, while scanning digits,\r\n\t// if a valid country code is found,\r\n\t// that means that it is the country code.\r\n\t//\r\n\tlet i = 2\r\n\twhile (i - 1 <= MAX_LENGTH_COUNTRY_CODE && i <= number.length) {\r\n\t\tconst countryCallingCode = number.slice(1, i)\r\n\t\tif (metadata.hasCallingCode(countryCallingCode)) {\r\n\t\t\tmetadata.selectNumberingPlan(countryCallingCode)\r\n\t\t\treturn {\r\n\t\t\t\tcountryCallingCodeSource: isNumberWithIddPrefix ? 'FROM_NUMBER_WITH_IDD' : 'FROM_NUMBER_WITH_PLUS_SIGN',\r\n\t\t\t\tcountryCallingCode,\r\n\t\t\t\tnumber: number.slice(i)\r\n\t\t\t}\r\n\t\t}\r\n\t\ti++\r\n\t}\r\n\r\n\treturn {}\r\n}\r\n\r\n// The possible values for the returned `countryCallingCodeSource` are:\r\n//\r\n// Copy-pasted from:\r\n// https://github.com/google/libphonenumber/blob/master/resources/phonenumber.proto\r\n//\r\n// // The source from which the country_code is derived. This is not set in the\r\n// // general parsing method, but in the method that parses and keeps raw_input.\r\n// // New fields could be added upon request.\r\n// enum CountryCodeSource {\r\n// // Default value returned if this is not set, because the phone number was\r\n// // created using parse, not parseAndKeepRawInput. hasCountryCodeSource will\r\n// // return false if this is the case.\r\n// UNSPECIFIED = 0;\r\n//\r\n// // The country_code is derived based on a phone number with a leading \"+\",\r\n// // e.g. the French number \"+33 1 42 68 53 00\".\r\n// FROM_NUMBER_WITH_PLUS_SIGN = 1;\r\n//\r\n// // The country_code is derived based on a phone number with a leading IDD,\r\n// // e.g. the French number \"011 33 1 42 68 53 00\", as it is dialled from US.\r\n// FROM_NUMBER_WITH_IDD = 5;\r\n//\r\n// // The country_code is derived based on a phone number without a leading\r\n// // \"+\", e.g. the French number \"33 1 42 68 53 00\" when defaultCountry is\r\n// // supplied as France.\r\n// FROM_NUMBER_WITHOUT_PLUS_SIGN = 10;\r\n//\r\n// // The country_code is derived NOT based on the phone number itself, but\r\n// // from the defaultCountry parameter provided in the parsing function by the\r\n// // clients. This happens mostly for numbers written in the national format\r\n// // (without country code). For example, this would be set when parsing the\r\n// // French number \"01 42 68 53 00\", when defaultCountry is supplied as\r\n// // France.\r\n// FROM_DEFAULT_COUNTRY = 20;\r\n// }","import { VALID_PUNCTUATION } from '../constants.js'\r\n\r\n// Removes brackets and replaces dashes with spaces.\r\n//\r\n// E.g. \"(999) 111-22-33\" -> \"999 111 22 33\"\r\n//\r\n// For some reason Google's metadata contains `<intlFormat/>`s with brackets and dashes.\r\n// Meanwhile, there's no single opinion about using punctuation in international phone numbers.\r\n//\r\n// For example, Google's `<intlFormat/>` for USA is `+1 213-373-4253`.\r\n// And here's a quote from WikiPedia's \"North American Numbering Plan\" page:\r\n// https://en.wikipedia.org/wiki/North_American_Numbering_Plan\r\n//\r\n// \"The country calling code for all countries participating in the NANP is 1.\r\n// In international format, an NANP number should be listed as +1 301 555 01 00,\r\n// where 301 is an area code (Maryland).\"\r\n//\r\n// I personally prefer the international format without any punctuation.\r\n// For example, brackets are remnants of the old age, meaning that the\r\n// phone number part in brackets (so called \"area code\") can be omitted\r\n// if dialing within the same \"area\".\r\n// And hyphens were clearly introduced for splitting local numbers into memorizable groups.\r\n// For example, remembering \"5553535\" is difficult but \"555-35-35\" is much simpler.\r\n// Imagine a man taking a bus from home to work and seeing an ad with a phone number.\r\n// He has a couple of seconds to memorize that number until it passes by.\r\n// If it were spaces instead of hyphens the man wouldn't necessarily get it,\r\n// but with hyphens instead of spaces the grouping is more explicit.\r\n// I personally think that hyphens introduce visual clutter,\r\n// so I prefer replacing them with spaces in international numbers.\r\n// In the modern age all output is done on displays where spaces are clearly distinguishable\r\n// so hyphens can be safely replaced with spaces without losing any legibility.\r\n//\r\nexport default function applyInternationalSeparatorStyle(formattedNumber) {\r\n\treturn formattedNumber.replace(new RegExp(`[${VALID_PUNCTUATION}]+`, 'g'), ' ').trim()\r\n}","import applyInternationalSeparatorStyle from './applyInternationalSeparatorStyle.js'\r\n\r\n// This was originally set to $1 but there are some countries for which the\r\n// first group is not used in the national pattern (e.g. Argentina) so the $1\r\n// group does not match correctly. Therefore, we use `\\d`, so that the first\r\n// group actually used in the pattern will be matched.\r\nexport const FIRST_GROUP_PATTERN = /(\\$\\d)/\r\n\r\nexport default function formatNationalNumberUsingFormat(\r\n\tnumber,\r\n\tformat,\r\n\t{\r\n\t\tuseInternationalFormat,\r\n\t\twithNationalPrefix,\r\n\t\tcarrierCode,\r\n\t\tmetadata\r\n\t}\r\n) {\r\n\tconst formattedNumber = number.replace(\r\n\t\tnew RegExp(format.pattern()),\r\n\t\tuseInternationalFormat\r\n\t\t\t? format.internationalFormat()\r\n\t\t\t: (\r\n\t\t\t\t// This library doesn't use `domestic_carrier_code_formatting_rule`,\r\n\t\t\t\t// because that one is only used when formatting phone numbers\r\n\t\t\t\t// for dialing from a mobile phone, and this is not a dialing library.\r\n\t\t\t\t// carrierCode && format.domesticCarrierCodeFormattingRule()\r\n\t\t\t\t// \t// First, replace the $CC in the formatting rule with the desired carrier code.\r\n\t\t\t\t// \t// Then, replace the $FG in the formatting rule with the first group\r\n\t\t\t\t// \t// and the carrier code combined in the appropriate way.\r\n\t\t\t\t// \t? format.format().replace(FIRST_GROUP_PATTERN, format.domesticCarrierCodeFormattingRule().replace('$CC', carrierCode))\r\n\t\t\t\t// \t: (\r\n\t\t\t\t// \t\twithNationalPrefix && format.nationalPrefixFormattingRule()\r\n\t\t\t\t// \t\t\t? format.format().replace(FIRST_GROUP_PATTERN, format.nationalPrefixFormattingRule())\r\n\t\t\t\t// \t\t\t: format.format()\r\n\t\t\t\t// \t)\r\n\t\t\t\twithNationalPrefix && format.nationalPrefixFormattingRule()\r\n\t\t\t\t\t? format.format().replace(FIRST_GROUP_PATTERN, format.nationalPrefixFormattingRule())\r\n\t\t\t\t\t: format.format()\r\n\t\t\t)\r\n\t)\r\n\tif (useInternationalFormat) {\r\n\t\treturn applyInternationalSeparatorStyle(formattedNumber)\r\n\t}\r\n\treturn formattedNumber\r\n}","import Metadata from '../metadata.js'\r\n\r\n/**\r\n * Pattern that makes it easy to distinguish whether a region has a single\r\n * international dialing prefix or not. If a region has a single international\r\n * prefix (e.g. 011 in USA), it will be represented as a string that contains\r\n * a sequence of ASCII digits, and possibly a tilde, which signals waiting for\r\n * the tone. If there are multiple available international prefixes in a\r\n * region, they will be represented as a regex string that always contains one\r\n * or more characters that are not ASCII digits or a tilde.\r\n */\r\nconst SINGLE_IDD_PREFIX_REG_EXP = /^[\\d]+(?:[~\\u2053\\u223C\\uFF5E][\\d]+)?$/\r\n\r\n// If the `country` supports IDD calling, it returns a preferred IDD prefix.\r\n// If the `country` doesn't support IDD calling, it returns `undefined`.\r\nexport default function getIddPrefix(country, callingCode, metadata) {\r\n\tconst countryMetadata = new Metadata(metadata)\r\n\tcountryMetadata.selectNumberingPlan(country, callingCode)\r\n\tif (countryMetadata.defaultIDDPrefix()) {\r\n\t\treturn countryMetadata.defaultIDDPrefix()\r\n\t}\r\n\tif (SINGLE_IDD_PREFIX_REG_EXP.test(countryMetadata.IDDPrefix())) {\r\n\t\treturn countryMetadata.IDDPrefix()\r\n\t}\r\n}\r\n","import { VALID_DIGITS } from '../../constants.js'\r\n\r\n// The RFC 3966 format for extensions.\r\nconst RFC3966_EXTN_PREFIX = ';ext='\r\n\r\n/**\r\n * Helper method for constructing regular expressions for parsing. Creates\r\n * an expression that captures up to max_length digits.\r\n * @return {string} RegEx pattern to capture extension digits.\r\n */\r\nconst getExtensionDigitsPattern = (maxLength) => `([${VALID_DIGITS}]{1,${maxLength}})`\r\n\r\n/**\r\n * Helper initialiser method to create the regular-expression pattern to match\r\n * extensions.\r\n * Copy-pasted from Google's `libphonenumber`:\r\n * https://github.com/google/libphonenumber/blob/55b2646ec9393f4d3d6661b9c82ef9e258e8b829/javascript/i18n/phonenumbers/phonenumberutil.js#L759-L766\r\n * @return {string} RegEx pattern to capture extensions.\r\n */\r\nexport default function createExtensionPattern(purpose) {\r\n\t// We cap the maximum length of an extension based on the ambiguity of the way\r\n\t// the extension is prefixed. As per ITU, the officially allowed length for\r\n\t// extensions is actually 40, but we don't support this since we haven't seen real\r\n\t// examples and this introduces many false interpretations as the extension labels\r\n\t// are not standardized.\r\n\t/** @type {string} */\r\n\tvar extLimitAfterExplicitLabel = '20';\r\n\t/** @type {string} */\r\n\tvar extLimitAfterLikelyLabel = '15';\r\n\t/** @type {string} */\r\n\tvar extLimitAfterAmbiguousChar = '9';\r\n\t/** @type {string} */\r\n\tvar extLimitWhenNotSure = '6';\r\n\r\n\t/** @type {string} */\r\n\tvar possibleSeparatorsBetweenNumberAndExtLabel = \"[ \\u00A0\\\\t,]*\";\r\n\t// Optional full stop (.) or colon, followed by zero or more spaces/tabs/commas.\r\n\t/** @type {string} */\r\n\tvar possibleCharsAfterExtLabel = \"[:\\\\.\\uFF0E]?[ \\u00A0\\\\t,-]*\";\r\n\t/** @type {string} */\r\n\tvar optionalExtnSuffix = \"#?\";\r\n\r\n\t// Here the extension is called out in more explicit way, i.e mentioning it obvious\r\n\t// patterns like \"ext.\".\r\n\t/** @type {string} */\r\n\tvar explicitExtLabels =\r\n\t \"(?:e?xt(?:ensi(?:o\\u0301?|\\u00F3))?n?|\\uFF45?\\uFF58\\uFF54\\uFF4E?|\\u0434\\u043E\\u0431|anexo)\";\r\n\t// One-character symbols that can be used to indicate an extension, and less\r\n\t// commonly used or more ambiguous extension labels.\r\n\t/** @type {string} */\r\n\tvar ambiguousExtLabels = \"(?:[x\\uFF58#\\uFF03~\\uFF5E]|int|\\uFF49\\uFF4E\\uFF54)\";\r\n\t// When extension is not separated clearly.\r\n\t/** @type {string} */\r\n\tvar ambiguousSeparator = \"[- ]+\";\r\n\t// This is the same as possibleSeparatorsBetweenNumberAndExtLabel, but not matching\r\n\t// comma as extension label may have it.\r\n\t/** @type {string} */\r\n\tvar possibleSeparatorsNumberExtLabelNoComma = \"[ \\u00A0\\\\t]*\";\r\n\t// \",,\" is commonly used for auto dialling the extension when connected. First\r\n\t// comma is matched through possibleSeparatorsBetweenNumberAndExtLabel, so we do\r\n\t// not repeat it here. Semi-colon works in Iphone and Android also to pop up a\r\n\t// button with the extension number following.\r\n\t/** @type {string} */\r\n\tvar autoDiallingAndExtLabelsFound = \"(?:,{2}|;)\";\r\n\r\n\t/** @type {string} */\r\n\tvar rfcExtn = RFC3966_EXTN_PREFIX\r\n\t + getExtensionDigitsPattern(extLimitAfterExplicitLabel);\r\n\t/** @type {string} */\r\n\tvar explicitExtn = possibleSeparatorsBetweenNumberAndExtLabel + explicitExtLabels\r\n\t + possibleCharsAfterExtLabel\r\n\t + getExtensionDigitsPattern(extLimitAfterExplicitLabel)\r\n\t + optionalExtnSuffix;\r\n\t/** @type {string} */\r\n\tvar ambiguousExtn = possibleSeparatorsBetweenNumberAndExtLabel + ambiguousExtLabels\r\n\t + possibleCharsAfterExtLabel\r\n\t+ getExtensionDigitsPattern(extLimitAfterAmbiguousChar)\r\n\t+ optionalExtnSuffix;\r\n\t/** @type {string} */\r\n\tvar americanStyleExtnWithSuffix = ambiguousSeparator\r\n\t+ getExtensionDigitsPattern(extLimitWhenNotSure) + \"#\";\r\n\r\n\t/** @type {string} */\r\n\tvar autoDiallingExtn = possibleSeparatorsNumberExtLabelNoComma\r\n\t + autoDiallingAndExtLabelsFound + possibleCharsAfterExtLabel\r\n\t + getExtensionDigitsPattern(extLimitAfterLikelyLabel)\r\n\t+ optionalExtnSuffix;\r\n\t/** @type {string} */\r\n\tvar onlyCommasExtn = possibleSeparatorsNumberExtLabelNoComma\r\n\t + \"(?:,)+\" + possibleCharsAfterExtLabel\r\n\t + getExtensionDigitsPattern(extLimitAfterAmbiguousChar)\r\n\t + optionalExtnSuffix;\r\n\r\n\t// The first regular expression covers RFC 3966 format, where the extension is added\r\n\t// using \";ext=\". The second more generic where extension is mentioned with explicit\r\n\t// labels like \"ext:\". In both the above cases we allow more numbers in extension than\r\n\t// any other extension labels. The third one captures when single character extension\r\n\t// labels or less commonly used labels are used. In such cases we capture fewer\r\n\t// extension digits in order to reduce the chance of falsely interpreting two\r\n\t// numbers beside each other as a number + extension. The fourth one covers the\r\n\t// special case of American numbers where the extension is written with a hash\r\n\t// at the end, such as \"- 503#\". The fifth one is exclusively for extension\r\n\t// autodialling formats which are used when dialling and in this case we accept longer\r\n\t// extensions. The last one is more liberal on the number of commas that acts as\r\n\t// extension labels, so we have a strict cap on the number of digits in such extensions.\r\n\treturn rfcExtn + \"|\"\r\n\t + explicitExtn + \"|\"\r\n\t + ambiguousExtn + \"|\"\r\n\t + americanStyleExtnWithSuffix + \"|\"\r\n\t + autoDiallingExtn + \"|\"\r\n\t + onlyCommasExtn;\r\n}","import {\r\n\tMIN_LENGTH_FOR_NSN,\r\n\tVALID_DIGITS,\r\n\tVALID_PUNCTUATION,\r\n\tPLUS_CHARS\r\n} from '../constants.js'\r\n\r\nimport createExtensionPattern from './extension/createExtensionPattern.js'\r\n\r\n// Regular expression of viable phone numbers. This is location independent.\r\n// Checks we have at least three leading digits, and only valid punctuation,\r\n// alpha characters and digits in the phone number. Does not include extension\r\n// data. The symbol 'x' is allowed here as valid punctuation since it is often\r\n// used as a placeholder for carrier codes, for example in Brazilian phone\r\n// numbers. We also allow multiple '+' characters at the start.\r\n//\r\n// Corresponds to the following:\r\n// [digits]{minLengthNsn}|\r\n// plus_sign*\r\n// (([punctuation]|[star])*[digits]){3,}([punctuation]|[star]|[digits]|[alpha])*\r\n//\r\n// The first reg-ex is to allow short numbers (two digits long) to be parsed if\r\n// they are entered as \"15\" etc, but only if there is no punctuation in them.\r\n// The second expression restricts the number of digits to three or more, but\r\n// then allows them to be in international form, and to have alpha-characters\r\n// and punctuation. We split up the two reg-exes here and combine them when\r\n// creating the reg-ex VALID_PHONE_NUMBER_PATTERN itself so we can prefix it\r\n// with ^ and append $ to each branch.\r\n//\r\n// \"Note VALID_PUNCTUATION starts with a -,\r\n// so must be the first in the range\" (c) Google devs.\r\n// (wtf did they mean by saying that; probably nothing)\r\n//\r\nconst MIN_LENGTH_PHONE_NUMBER_PATTERN = '[' + VALID_DIGITS + ']{' + MIN_LENGTH_FOR_NSN + '}'\r\n//\r\n// And this is the second reg-exp:\r\n// (see MIN_LENGTH_PHONE_NUMBER_PATTERN for a full description of this reg-exp)\r\n//\r\nexport const VALID_PHONE_NUMBER =\r\n\t'[' + PLUS_CHARS + ']{0,1}' +\r\n\t'(?:' +\r\n\t\t'[' + VALID_PUNCTUATION + ']*' +\r\n\t\t'[' + VALID_DIGITS + ']' +\r\n\t'){3,}' +\r\n\t'[' +\r\n\t\tVALID_PUNCTUATION +\r\n\t\tVALID_DIGITS +\r\n\t']*'\r\n\r\n// This regular expression isn't present in Google's `libphonenumber`\r\n// and is only used to determine whether the phone number being input\r\n// is too short for it to even consider it a \"valid\" number.\r\n// This is just a way to differentiate between a really invalid phone\r\n// number like \"abcde\" and a valid phone number that a user has just\r\n// started inputting, like \"+1\" or \"1\": both these cases would be\r\n// considered `NOT_A_NUMBER` by Google's `libphonenumber`, but this\r\n// library can provide a more detailed error message — whether it's\r\n// really \"not a number\", or is it just a start of a valid phone number.\r\nconst VALID_PHONE_NUMBER_START_REG_EXP = new RegExp(\r\n\t'^' +\r\n\t'[' + PLUS_CHARS + ']{0,1}' +\r\n\t'(?:' +\r\n\t\t'[' + VALID_PUNCTUATION + ']*' +\r\n\t\t'[' + VALID_DIGITS + ']' +\r\n\t'){1,2}' +\r\n\t'$'\r\n, 'i')\r\n\r\nexport const VALID_PHONE_NUMBER_WITH_EXTENSION =\r\n\tVALID_PHONE_NUMBER +\r\n\t// Phone number extensions\r\n\t'(?:' + createExtensionPattern() + ')?'\r\n\r\n// The combined regular expression for valid phone numbers:\r\n//\r\nconst VALID_PHONE_NUMBER_PATTERN = new RegExp(\r\n\t// Either a short two-digit-only phone number\r\n\t'^' +\r\n\t\tMIN_LENGTH_PHONE_NUMBER_PATTERN +\r\n\t'$' +\r\n\t'|' +\r\n\t// Or a longer fully parsed phone number (min 3 characters)\r\n\t'^' +\r\n\t\tVALID_PHONE_NUMBER_WITH_EXTENSION +\r\n\t'$'\r\n, 'i')\r\n\r\n// Checks to see if the string of characters could possibly be a phone number at\r\n// all. At the moment, checks to see that the string begins with at least 2\r\n// digits, ignoring any punctuation commonly found in phone numbers. This method\r\n// does not require the number to be normalized in advance - but does assume\r\n// that leading non-number symbols have been removed, such as by the method\r\n// `extract_possible_number`.\r\n//\r\nexport default function isViablePhoneNumber(number) {\r\n\treturn number.length >= MIN_LENGTH_FOR_NSN &&\r\n\t\tVALID_PHONE_NUMBER_PATTERN.test(number)\r\n}\r\n\r\n// This is just a way to differentiate between a really invalid phone\r\n// number like \"abcde\" and a valid phone number that a user has just\r\n// started inputting, like \"+1\" or \"1\": both these cases would be\r\n// considered `NOT_A_NUMBER` by Google's `libphonenumber`, but this\r\n// library can provide a more detailed error message — whether it's\r\n// really \"not a number\", or is it just a start of a valid phone number.\r\nexport function isViablePhoneNumberStart(number) {\r\n\treturn VALID_PHONE_NUMBER_START_REG_EXP.test(number)\r\n}","import isViablePhoneNumber from './isViablePhoneNumber.js'\r\n\r\n// https://www.ietf.org/rfc/rfc3966.txt\r\n\r\n/**\r\n * @param {string} text - Phone URI (RFC 3966).\r\n * @return {object} `{ ?number, ?ext }`.\r\n */\r\nexport function parseRFC3966(text) {\r\n\tlet number\r\n\tlet ext\r\n\r\n\t// Replace \"tel:\" with \"tel=\" for parsing convenience.\r\n\ttext = text.replace(/^tel:/, 'tel=')\r\n\r\n\tfor (const part of text.split(';')) {\r\n\t\tconst [name, value] = part.split('=')\r\n\t\tswitch (name) {\r\n\t\t\tcase 'tel':\r\n\t\t\t\tnumber = value\r\n\t\t\t\tbreak\r\n\t\t\tcase 'ext':\r\n\t\t\t\text = value\r\n\t\t\t\tbreak\r\n\t\t\tcase 'phone-context':\r\n\t\t\t\t// Only \"country contexts\" are supported.\r\n\t\t\t\t// \"Domain contexts\" are ignored.\r\n\t\t\t\tif (value[0] === '+') {\r\n\t\t\t\t\tnumber = value + number\r\n\t\t\t\t}\r\n\t\t\t\tbreak\r\n\t\t}\r\n\t}\r\n\r\n\t// If the phone number is not viable, then abort.\r\n\tif (!isViablePhoneNumber(number)) {\r\n\t\treturn {}\r\n\t}\r\n\r\n\tconst result = { number }\r\n\tif (ext) {\r\n\t\tresult.ext = ext\r\n\t}\r\n\treturn result\r\n}\r\n\r\n/**\r\n * @param {object} - `{ ?number, ?extension }`.\r\n * @return {string} Phone URI (RFC 3966).\r\n */\r\nexport function formatRFC3966({ number, ext }) {\r\n\tif (!number) {\r\n\t\treturn ''\r\n\t}\r\n\tif (number[0] !== '+') {\r\n\t\tthrow new Error(`\"formatRFC3966()\" expects \"number\" to be in E.164 format.`)\r\n\t}\r\n\treturn `tel:${number}${ext ? ';ext=' + ext : ''}`\r\n}","// This is a port of Google Android `libphonenumber`'s\r\n// `phonenumberutil.js` of December 31th, 2018.\r\n//\r\n// https://github.com/googlei18n/libphonenumber/commits/master/javascript/i18n/phonenumbers/phonenumberutil.js\r\n\r\nimport matchesEntirely from './helpers/matchesEntirely.js'\r\nimport formatNationalNumberUsingFormat from './helpers/formatNationalNumberUsingFormat.js'\r\nimport Metadata, { getCountryCallingCode } from './metadata.js'\r\nimport getIddPrefix from './helpers/getIddPrefix.js'\r\nimport { formatRFC3966 } from './helpers/RFC3966.js'\r\n\r\nconst DEFAULT_OPTIONS = {\r\n\tformatExtension: (formattedNumber, extension, metadata) => `${formattedNumber}${metadata.ext()}${extension}`\r\n}\r\n\r\n/**\r\n * Formats a phone number.\r\n *\r\n * format(phoneNumberInstance, 'INTERNATIONAL', { ..., v2: true }, metadata)\r\n * format(phoneNumberInstance, 'NATIONAL', { ..., v2: true }, metadata)\r\n *\r\n * format({ phone: '8005553535', country: 'RU' }, 'INTERNATIONAL', { ... }, metadata)\r\n * format({ phone: '8005553535', country: 'RU' }, 'NATIONAL', undefined, metadata)\r\n *\r\n * @param {object|PhoneNumber} input — If `options.v2: true` flag is passed, the `input` should be a `PhoneNumber` instance. Otherwise, it should be an object of shape `{ phone: '...', country: '...' }`.\r\n * @param {string} format\r\n * @param {object} [options]\r\n * @param {object} metadata\r\n * @return {string}\r\n */\r\nexport default function formatNumber(input, format, options, metadata) {\r\n\t// Apply default options.\r\n\tif (options) {\r\n\t\t// Using ES6 \"rest spread\" syntax here didn't work with `babel`/`istanbul`\r\n\t\t// for some weird reason: this line of code would cause the code coverage\r\n\t\t// to show as not 100%. That's because `babel`/`istanbul`, for some weird reason,\r\n\t\t// apparently doesn't know how to properly exclude Babel polyfills from code coverage.\r\n\t\t//\r\n\t\t// options = { ...DEFAULT_OPTIONS, ...options }\r\n\t\t//\r\n\t\toptions = merge({}, DEFAULT_OPTIONS, options)\r\n\t} else {\r\n\t\toptions = DEFAULT_OPTIONS\r\n\t}\r\n\r\n\tmetadata = new Metadata(metadata)\r\n\r\n\t// Normally, the `input` object is supposed to be a `PhoneNumber` class instance.\r\n\t// Also, according to the `PhoneNumber` class source code, `country` can't be \"001\".\r\n\t// It means that normally `input.country` or `input.countryCallingCode` is supposed\r\n\t// to be present because either of the two is always required to exist in a `PhoneNumber` instance.\r\n\t// This means that realistically, it's gonna step into either the first `if`\r\n\t// or the following `else if`, and normally it won't even reach the legacy-compatibility\r\n\t// `else return input.phone || ''` part.\r\n\t// So normally, it won't ever return an empty string here.\r\n\tif (input.country && input.country !== '001') {\r\n\t\t// Validate `input.country`.\r\n\t\tif (!metadata.hasCountry(input.country)) {\r\n\t\t\tthrow new Error(`Unknown country: ${input.country}`)\r\n\t\t}\r\n\t\tmetadata.selectNumberingPlan(input.country)\r\n\t}\r\n\telse if (input.countryCallingCode) {\r\n\t\tmetadata.selectNumberingPlan(input.countryCallingCode)\r\n\t}\r\n\telse return input.phone || ''\r\n\r\n\tconst countryCallingCode = metadata.countryCallingCode()\r\n\r\n\tconst nationalNumber = options.v2 ? input.nationalNumber : input.phone\r\n\r\n\t// This variable should have been declared inside `case`s\r\n\t// but Babel has a bug and it says \"duplicate variable declaration\".\r\n\tlet number\r\n\r\n\tswitch (format) {\r\n\t\tcase 'NATIONAL':\r\n\t\t\t// Normally, the `input` object is supposed to be a `PhoneNumber` class instance,\r\n\t\t\t// and a `PhoneNumber` class instance is always required to have a `nationalNumber`.\r\n\t\t\t// This means that the `if (!nationalNumber)` below is just for legacy-compatibility\r\n\t\t\t// and it normally can't really happen, so normally it won't ever return an empty string here.\r\n\t\t\tif (!nationalNumber) {\r\n\t\t\t\treturn ''\r\n\t\t\t}\r\n\t\t\tnumber = formatNationalNumber(nationalNumber, input.carrierCode, 'NATIONAL', metadata, options)\r\n\t\t\treturn addExtension(number, input.ext, metadata, options.formatExtension)\r\n\r\n\t\tcase 'INTERNATIONAL':\r\n\t\t\t// Legacy argument support.\r\n\t\t\t// (`{ country: ..., phone: '' }`)\r\n\t\t\tif (!nationalNumber) {\r\n\t\t\t\treturn `+${countryCallingCode}`\r\n\t\t\t}\r\n\t\t\tnumber = formatNationalNumber(nationalNumber, null, 'INTERNATIONAL', metadata, options)\r\n\t\t\tnumber = `+${countryCallingCode} ${number}`\r\n\t\t\treturn addExtension(number, input.ext, metadata, options.formatExtension)\r\n\r\n\t\tcase 'E.164':\r\n\t\t\t// `E.164` doesn't define \"phone number extensions\".\r\n\t\t\treturn `+${countryCallingCode}${nationalNumber}`\r\n\r\n\t\tcase 'RFC3966':\r\n\t\t\treturn formatRFC3966({\r\n\t\t\t\tnumber: `+${countryCallingCode}${nationalNumber}`,\r\n\t\t\t\text: input.ext\r\n\t\t\t})\r\n\r\n\t\t// For reference, here's Google's IDD formatter:\r\n\t\t// https://github.com/google/libphonenumber/blob/32719cf74e68796788d1ca45abc85dcdc63ba5b9/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java#L1546\r\n\t\t// Not saying that this IDD formatter replicates it 1:1, but it seems to work.\r\n\t\t// Who would even need to format phone numbers in IDD format anyway?\r\n\t\tcase 'IDD':\r\n\t\t\t// If the required `fromCountry` parameter is not passed, it will return `undefined`.\r\n\t\t\tif (!options.fromCountry) {\r\n\t\t\t\treturn\r\n\t\t\t\t// throw new Error('`fromCountry` option not passed for IDD-prefixed formatting.')\r\n\t\t\t}\r\n\t\t\tconst formattedNumber = formatIDD(\r\n\t\t\t\tnationalNumber,\r\n\t\t\t\tinput.carrierCode,\r\n\t\t\t\tcountryCallingCode,\r\n\t\t\t\toptions.fromCountry,\r\n\t\t\t\tmetadata\r\n\t\t\t)\r\n\t\t\t// If the country of the phone number doesn't support IDD calling, it will return `undefined`.\r\n\t\t\tif (!formattedNumber) {\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\t\t\treturn addExtension(formattedNumber, input.ext, metadata, options.formatExtension)\r\n\r\n\t\tdefault:\r\n\t\t\tthrow new Error(`Unknown \"format\" argument passed to \"formatNumber()\": \"${format}\"`)\r\n\t}\r\n}\r\n\r\nfunction formatNationalNumber(number, carrierCode, formatAs, metadata, options) {\r\n\tconst format = chooseFormatForNumber(metadata.formats(), number)\r\n\tif (!format) {\r\n\t\treturn number\r\n\t}\r\n\treturn formatNationalNumberUsingFormat(\r\n\t\tnumber,\r\n\t\tformat,\r\n\t\t{\r\n\t\t\tuseInternationalFormat: formatAs === 'INTERNATIONAL',\r\n\t\t\twithNationalPrefix: format.nationalPrefixIsOptionalWhenFormattingInNationalFormat() && (options && options.nationalPrefix === false) ? false : true,\r\n\t\t\tcarrierCode,\r\n\t\t\tmetadata\r\n\t\t}\r\n\t)\r\n}\r\n\r\nexport function chooseFormatForNumber(availableFormats, nationalNumber) {\r\n\t// Using a `for ... of` loop here didn't work with `babel`/`istanbul`:\r\n\t// for some weird reason, it showed code coverage less than 100%.\r\n\t// That's because `babel`/`istanbul`, for some weird reason,\r\n\t// apparently doesn't know how to properly exclude Babel polyfills from code coverage.\r\n\t//\r\n\t// for (const format of availableFormats) { ... }\r\n\t//\r\n\treturn pickFirstMatchingElement(availableFormats, (format) => {\r\n\t\t// Validate leading digits.\r\n\t\t// The test case for \"else path\" could be found by searching for\r\n\t\t// \"format.leadingDigitsPatterns().length === 0\".\r\n\t\tif (format.leadingDigitsPatterns().length > 0) {\r\n\t\t\t// The last leading_digits_pattern is used here, as it is the most detailed\r\n\t\t\tconst lastLeadingDigitsPattern = format.leadingDigitsPatterns()[format.leadingDigitsPatterns().length - 1]\r\n\t\t\t// If leading digits don't match then move on to the next phone number format\r\n\t\t\tif (nationalNumber.search(lastLeadingDigitsPattern) !== 0) {\r\n\t\t\t\treturn false\r\n\t\t\t}\r\n\t\t}\r\n\t\t// Check that the national number matches the phone number format regular expression\r\n\t\treturn matchesEntirely(nationalNumber, format.pattern())\r\n\t})\r\n}\r\n\r\nfunction addExtension(formattedNumber, ext, metadata, formatExtension) {\r\n\treturn ext ? formatExtension(formattedNumber, ext, metadata) : formattedNumber\r\n}\r\n\r\nfunction formatIDD(\r\n\tnationalNumber,\r\n\tcarrierCode,\r\n\tcountryCallingCode,\r\n\tfromCountry,\r\n\tmetadata\r\n) {\r\n\tconst fromCountryCallingCode = getCountryCallingCode(fromCountry, metadata.metadata)\r\n\t// When calling within the same country calling code.\r\n\tif (fromCountryCallingCode === countryCallingCode) {\r\n\t\tconst formattedNumber = formatNationalNumber(nationalNumber, carrierCode, 'NATIONAL', metadata)\r\n\t\t// For NANPA regions, return the national format for these regions\r\n\t\t// but prefix it with the country calling code.\r\n\t\tif (countryCallingCode === '1') {\r\n\t\t\treturn countryCallingCode + ' ' + formattedNumber\r\n\t\t}\r\n\t\t// If regions share a country calling code, the country calling code need\r\n\t\t// not be dialled. This also applies when dialling within a region, so this\r\n\t\t// if clause covers both these cases. Technically this is the case for\r\n\t\t// dialling from La Reunion to other overseas departments of France (French\r\n\t\t// Guiana, Martinique, Guadeloupe), but not vice versa - so we don't cover\r\n\t\t// this edge case for now and for those cases return the version including\r\n\t\t// country calling code. Details here:\r\n\t\t// http://www.petitfute.com/voyage/225-info-pratiques-reunion\r\n\t\t//\r\n\t\treturn formattedNumber\r\n\t}\r\n\tconst iddPrefix = getIddPrefix(fromCountry, undefined, metadata.metadata)\r\n\tif (iddPrefix) {\r\n\t\treturn `${iddPrefix} ${countryCallingCode} ${formatNationalNumber(nationalNumber, null, 'INTERNATIONAL', metadata)}`\r\n\t}\r\n}\r\n\r\nfunction merge(...objects) {\r\n\tlet i = 1\r\n\twhile (i < objects.length) {\r\n\t\tif (objects[i]) {\r\n\t\t\tfor (const key in objects[i]) {\r\n\t\t\t\tobjects[0][key] = objects[i][key]\r\n\t\t\t}\r\n\t\t}\r\n\t\ti++\r\n\t}\r\n\treturn objects[0]\r\n}\r\n\r\nfunction pickFirstMatchingElement(elements, testFunction) {\r\n\tlet i = 0\r\n\twhile (i < elements.length) {\r\n\t\tif (testFunction(elements[i])) {\r\n\t\t\treturn elements[i]\r\n\t\t}\r\n\t\ti++\r\n\t}\r\n}","import Metadata, { validateMetadata } from './metadata.js'\r\nimport isPossibleNumber from './isPossible.js'\r\nimport isValidNumber from './isValid.js'\r\nimport getNumberType from './helpers/getNumberType.js'\r\nimport getPossibleCountriesForNumber from './helpers/getPossibleCountriesForNumber.js'\r\nimport extractCountryCallingCode from './helpers/extractCountryCallingCode.js'\r\nimport isObject from './helpers/isObject.js'\r\nimport formatNumber from './format.js'\r\n\r\nconst USE_NON_GEOGRAPHIC_COUNTRY_CODE = false\r\n\r\nexport default class PhoneNumber {\r\n\t/**\r\n\t * @param {string} countryOrCountryCallingCode\r\n\t * @param {string} nationalNumber\r\n\t * @param {object} metadata — Metadata JSON\r\n\t * @return {PhoneNumber}\r\n\t */\r\n\tconstructor(countryOrCountryCallingCode, nationalNumber, metadata) {\r\n\t\t// Validate `countryOrCountryCallingCode` argument.\r\n\t\tif (!countryOrCountryCallingCode) {\r\n\t\t\tthrow new TypeError('First argument is required')\r\n\t\t}\r\n\t\tif (typeof countryOrCountryCallingCode !== 'string') {\r\n\t\t\tthrow new TypeError('First argument must be a string')\r\n\t\t}\r\n\r\n\t\t// In case of public API use: `constructor(number, metadata)`.\r\n\t\t// Transform the arguments from `constructor(number, metadata)` to\r\n\t\t// `constructor(countryOrCountryCallingCode, nationalNumber, metadata)`.\r\n\t\tif (countryOrCountryCallingCode[0] === '+' && !nationalNumber) {\r\n\t\t\tthrow new TypeError('`metadata` argument not passed')\r\n\t\t}\r\n\t\tif (isObject(nationalNumber) && isObject(nationalNumber.countries)) {\r\n\t\t\tmetadata = nationalNumber\r\n\t\t\tconst e164Number = countryOrCountryCallingCode\r\n\t\t\tif (!E164_NUMBER_REGEXP.test(e164Number)) {\r\n\t\t\t\tthrow new Error('Invalid `number` argument passed: must consist of a \"+\" followed by digits')\r\n\t\t\t}\r\n\t\t\tconst { countryCallingCode, number } = extractCountryCallingCode(e164Number, undefined, undefined, undefined, metadata)\r\n\t\t\tnationalNumber = number\r\n\t\t\tcountryOrCountryCallingCode = countryCallingCode\r\n\t\t\tif (!nationalNumber) {\r\n\t\t\t\tthrow new Error('Invalid `number` argument passed: too short')\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Validate `nationalNumber` argument.\r\n\t\tif (!nationalNumber) {\r\n\t\t\tthrow new TypeError('`nationalNumber` argument is required')\r\n\t\t}\r\n\t\tif (typeof nationalNumber !== 'string') {\r\n\t\t\tthrow new TypeError('`nationalNumber` argument must be a string')\r\n\t\t}\r\n\r\n\t\t// Validate `metadata` argument.\r\n\t\tvalidateMetadata(metadata)\r\n\r\n\t\t// Initialize properties.\r\n\t\tconst { country, countryCallingCode } = getCountryAndCountryCallingCode(\r\n\t\t\tcountryOrCountryCallingCode,\r\n\t\t\tmetadata\r\n\t\t)\r\n\t\tthis.country = country\r\n\t\tthis.countryCallingCode = countryCallingCode\r\n\t\tthis.nationalNumber = nationalNumber\r\n\t\tthis.number = '+' + this.countryCallingCode + this.nationalNumber\r\n\t\t// Exclude `metadata` property output from `PhoneNumber.toString()`\r\n\t\t// so that it doesn't clutter the console output of Node.js.\r\n\t\t// Previously, when Node.js did `console.log(new PhoneNumber(...))`,\r\n\t\t// it would output the whole internal structure of the `metadata` object.\r\n\t\tthis.getMetadata = () => metadata\r\n\t}\r\n\r\n\tsetExt(ext) {\r\n\t\tthis.ext = ext\r\n\t}\r\n\r\n\tgetPossibleCountries() {\r\n\t\tif (this.country) {\r\n\t\t\treturn [this.country]\r\n\t\t}\r\n\t\treturn getPossibleCountriesForNumber(\r\n\t\t\tthis.countryCallingCode,\r\n\t\t\tthis.nationalNumber,\r\n\t\t\tthis.getMetadata()\r\n\t\t)\r\n\t}\r\n\r\n\tisPossible() {\r\n\t\treturn isPossibleNumber(this, { v2: true }, this.getMetadata())\r\n\t}\r\n\r\n\tisValid() {\r\n\t\treturn isValidNumber(this, { v2: true }, this.getMetadata())\r\n\t}\r\n\r\n\tisNonGeographic() {\r\n\t\tconst metadata = new Metadata(this.getMetadata())\r\n\t\treturn metadata.isNonGeographicCallingCode(this.countryCallingCode)\r\n\t}\r\n\r\n\tisEqual(phoneNumber) {\r\n\t\treturn this.number === phoneNumber.number && this.ext === phoneNumber.ext\r\n\t}\r\n\r\n\t// This function was originally meant to be an equivalent for `validatePhoneNumberLength()`,\r\n\t// but later it was found out that it doesn't include the possible `TOO_SHORT` result\r\n\t// returned from `parsePhoneNumberWithError()` in the original `validatePhoneNumberLength()`,\r\n\t// so eventually I simply commented out this method from the `PhoneNumber` class\r\n\t// and just left the `validatePhoneNumberLength()` function, even though that one would require\r\n\t// and additional step to also validate the actual country / calling code of the phone number.\r\n\t// validateLength() {\r\n\t// \tconst metadata = new Metadata(this.getMetadata())\r\n\t// \tmetadata.selectNumberingPlan(this.countryCallingCode)\r\n\t// \tconst result = checkNumberLength(this.nationalNumber, metadata)\r\n\t// \tif (result !== 'IS_POSSIBLE') {\r\n\t// \t\treturn result\r\n\t// \t}\r\n\t// }\r\n\r\n\tgetType() {\r\n\t\treturn getNumberType(this, { v2: true }, this.getMetadata())\r\n\t}\r\n\r\n\tformat(format, options) {\r\n\t\treturn formatNumber(\r\n\t\t\tthis,\r\n\t\t\tformat,\r\n\t\t\toptions ? { ...options, v2: true } : { v2: true },\r\n\t\t\tthis.getMetadata()\r\n\t\t)\r\n\t}\r\n\r\n\tformatNational(options) {\r\n\t\treturn this.format('NATIONAL', options)\r\n\t}\r\n\r\n\tformatInternational(options) {\r\n\t\treturn this.format('INTERNATIONAL', options)\r\n\t}\r\n\r\n\tgetURI(options) {\r\n\t\treturn this.format('RFC3966', options)\r\n\t}\r\n}\r\n\r\nconst isCountryCode = (value) => /^[A-Z]{2}$/.test(value)\r\n\r\nfunction getCountryAndCountryCallingCode(countryOrCountryCallingCode, metadataJson) {\r\n\tlet country\r\n\tlet countryCallingCode\r\n\r\n\tconst metadata = new Metadata(metadataJson)\r\n\t// If country code is passed then derive `countryCallingCode` from it.\r\n\t// Also store the country code as `.country`.\r\n\tif (isCountryCode(countryOrCountryCallingCode)) {\r\n\t\tcountry = countryOrCountryCallingCode\r\n\t\tmetadata.selectNumberingPlan(country)\r\n\t\tcountryCallingCode = metadata.countryCallingCode()\r\n\t} else {\r\n\t\tcountryCallingCode = countryOrCountryCallingCode\r\n\t\t/* istanbul ignore if */\r\n\t\tif (USE_NON_GEOGRAPHIC_COUNTRY_CODE) {\r\n\t\t\tif (metadata.isNonGeographicCallingCode(countryCallingCode)) {\r\n\t\t\t\tcountry = '001'\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\treturn {\r\n\t\tcountry,\r\n\t\tcountryCallingCode\r\n\t}\r\n}\r\n\r\nconst E164_NUMBER_REGEXP = /^\\+\\d+$/","// https://stackoverflow.com/a/46971044/970769\r\n// \"Breaking changes in Typescript 2.1\"\r\n// \"Extending built-ins like Error, Array, and Map may no longer work.\"\r\n// \"As a recommendation, you can manually adjust the prototype immediately after any super(...) calls.\"\r\n// https://github.com/Microsoft/TypeScript-wiki/blob/main/Breaking-Changes.md#extending-built-ins-like-error-array-and-map-may-no-longer-work\r\nexport default class ParseError extends Error {\r\n constructor(code) {\r\n super(code)\r\n // Set the prototype explicitly.\r\n // Any subclass of FooError will have to manually set the prototype as well.\r\n Object.setPrototypeOf(this, ParseError.prototype)\r\n this.name = this.constructor.name\r\n }\r\n}","import createExtensionPattern from './createExtensionPattern.js'\r\n\r\n// Regexp of all known extension prefixes used by different regions followed by\r\n// 1 or more valid digits, for use when parsing.\r\nconst EXTN_PATTERN = new RegExp('(?:' + createExtensionPattern() + ')$', 'i')\r\n\r\n// Strips any extension (as in, the part of the number dialled after the call is\r\n// connected, usually indicated with extn, ext, x or similar) from the end of\r\n// the number, and returns it.\r\nexport default function extractExtension(number) {\r\n\tconst start = number.search(EXTN_PATTERN)\r\n\tif (start < 0) {\r\n\t\treturn {}\r\n\t}\r\n\t// If we find a potential extension, and the number preceding this is a viable\r\n\t// number, we assume it is an extension.\r\n\tconst numberWithoutExtension = number.slice(0, start)\r\n\tconst matches = number.match(EXTN_PATTERN)\r\n\tlet i = 1\r\n\twhile (i < matches.length) {\r\n\t\tif (matches[i]) {\r\n\t\t\treturn {\r\n\t\t\t\tnumber: numberWithoutExtension,\r\n\t\t\t\text: matches[i]\r\n\t\t\t}\r\n\t\t}\r\n\t\ti++\r\n\t}\r\n}","// These mappings map a character (key) to a specific digit that should\r\n// replace it for normalization purposes. Non-European digits that\r\n// may be used in phone numbers are mapped to a European equivalent.\r\n//\r\n// E.g. in Iraq they don't write `+442323234` but rather `+٤٤٢٣٢٣٢٣٤`.\r\n//\r\nexport const DIGITS = {\r\n\t'0': '0',\r\n\t'1': '1',\r\n\t'2': '2',\r\n\t'3': '3',\r\n\t'4': '4',\r\n\t'5': '5',\r\n\t'6': '6',\r\n\t'7': '7',\r\n\t'8': '8',\r\n\t'9': '9',\r\n\t'\\uFF10': '0', // Fullwidth digit 0\r\n\t'\\uFF11': '1', // Fullwidth digit 1\r\n\t'\\uFF12': '2', // Fullwidth digit 2\r\n\t'\\uFF13': '3', // Fullwidth digit 3\r\n\t'\\uFF14': '4', // Fullwidth digit 4\r\n\t'\\uFF15': '5', // Fullwidth digit 5\r\n\t'\\uFF16': '6', // Fullwidth digit 6\r\n\t'\\uFF17': '7', // Fullwidth digit 7\r\n\t'\\uFF18': '8', // Fullwidth digit 8\r\n\t'\\uFF19': '9', // Fullwidth digit 9\r\n\t'\\u0660': '0', // Arabic-indic digit 0\r\n\t'\\u0661': '1', // Arabic-indic digit 1\r\n\t'\\u0662': '2', // Arabic-indic digit 2\r\n\t'\\u0663': '3', // Arabic-indic digit 3\r\n\t'\\u0664': '4', // Arabic-indic digit 4\r\n\t'\\u0665': '5', // Arabic-indic digit 5\r\n\t'\\u0666': '6', // Arabic-indic digit 6\r\n\t'\\u0667': '7', // Arabic-indic digit 7\r\n\t'\\u0668': '8', // Arabic-indic digit 8\r\n\t'\\u0669': '9', // Arabic-indic digit 9\r\n\t'\\u06F0': '0', // Eastern-Arabic digit 0\r\n\t'\\u06F1': '1', // Eastern-Arabic digit 1\r\n\t'\\u06F2': '2', // Eastern-Arabic digit 2\r\n\t'\\u06F3': '3', // Eastern-Arabic digit 3\r\n\t'\\u06F4': '4', // Eastern-Arabic digit 4\r\n\t'\\u06F5': '5', // Eastern-Arabic digit 5\r\n\t'\\u06F6': '6', // Eastern-Arabic digit 6\r\n\t'\\u06F7': '7', // Eastern-Arabic digit 7\r\n\t'\\u06F8': '8', // Eastern-Arabic digit 8\r\n\t'\\u06F9': '9' // Eastern-Arabic digit 9\r\n}\r\n\r\nexport function parseDigit(character) {\r\n\treturn DIGITS[character]\r\n}\r\n\r\n/**\r\n * Parses phone number digits from a string.\r\n * Drops all punctuation leaving only digits.\r\n * Also converts wide-ascii and arabic-indic numerals to conventional numerals.\r\n * E.g. in Iraq they don't write `+442323234` but rather `+٤٤٢٣٢٣٢٣٤`.\r\n * @param {string} string\r\n * @return {string}\r\n * @example\r\n * ```js\r\n * parseDigits('8 (800) 555')\r\n * // Outputs '8800555'.\r\n * ```\r\n */\r\nexport default function parseDigits(string) {\r\n\tlet result = ''\r\n\t// Using `.split('')` here instead of normal `for ... of`\r\n\t// because the importing application doesn't neccessarily include an ES6 polyfill.\r\n\t// The `.split('')` approach discards \"exotic\" UTF-8 characters\r\n\t// (the ones consisting of four bytes) but digits\r\n\t// (including non-European ones) don't fall into that range\r\n\t// so such \"exotic\" characters would be discarded anyway.\r\n\tfor (const character of string.split('')) {\r\n\t\tconst digit = parseDigit(character)\r\n\t\tif (digit) {\r\n\t\t\tresult += digit\r\n\t\t}\r\n\t}\r\n\treturn result\r\n}","import { parseDigit } from './helpers/parseDigits.js'\r\n\r\n/**\r\n * Parses phone number characters from a string.\r\n * Drops all punctuation leaving only digits and the leading `+` sign (if any).\r\n * Also converts wide-ascii and arabic-indic numerals to conventional numerals.\r\n * E.g. in Iraq they don't write `+442323234` but rather `+٤٤٢٣٢٣٢٣٤`.\r\n * @param {string} string\r\n * @return {string}\r\n * @example\r\n * ```js\r\n * // Outputs '8800555'.\r\n * parseIncompletePhoneNumber('8 (800) 555')\r\n * // Outputs '+7800555'.\r\n * parseIncompletePhoneNumber('+7 800 555')\r\n * ```\r\n */\r\nexport default function parseIncompletePhoneNumber(string) {\r\n\tlet result = ''\r\n\t// Using `.split('')` here instead of normal `for ... of`\r\n\t// because the importing application doesn't neccessarily include an ES6 polyfill.\r\n\t// The `.split('')` approach discards \"exotic\" UTF-8 characters\r\n\t// (the ones consisting of four bytes) but digits\r\n\t// (including non-European ones) don't fall into that range\r\n\t// so such \"exotic\" characters would be discarded anyway.\r\n\tfor (const character of string.split('')) {\r\n\t\tresult += parsePhoneNumberCharacter(character, result) || ''\r\n\t}\r\n\treturn result\r\n}\r\n\r\n/**\r\n * Parses next character while parsing phone number digits (including a `+`)\r\n * from text: discards everything except `+` and digits, and `+` is only allowed\r\n * at the start of a phone number.\r\n * For example, is used in `react-phone-number-input` where it uses\r\n * [`input-format`](https://gitlab.com/catamphetamine/input-format).\r\n * @param {string} character - Yet another character from raw input string.\r\n * @param {string?} prevParsedCharacters - Previous parsed characters.\r\n * @param {function?} eventListener - An optional \"on event\" function.\r\n * @return {string?} The parsed character.\r\n */\r\nexport function parsePhoneNumberCharacter(character, prevParsedCharacters, eventListener) {\r\n\t// Only allow a leading `+`.\r\n\tif (character === '+') {\r\n\t\t// If this `+` is not the first parsed character\r\n\t\t// then discard it.\r\n\t\tif (prevParsedCharacters) {\r\n\t\t\t// `eventListener` argument was added to this `export`ed function on Dec 26th, 2023.\r\n\t\t\t// Any 3rd-party code that used to `import` and call this function before that\r\n\t\t\t// won't be passing any `eventListener` argument.\r\n\t\t\t//\r\n\t\t\t// The addition of the `eventListener` argument was to fix the slightly-weird behavior\r\n\t\t\t// of parsing an input string when the user inputs something like `\"2+7\"\r\n\t\t\t// https://github.com/catamphetamine/react-phone-number-input/issues/437\r\n\t\t\t//\r\n\t\t\t// If the parser encounters an unexpected `+` in a string being parsed\r\n\t\t\t// then it simply discards that out-of-place `+` and any following characters.\r\n\t\t\t//\r\n\t\t\tif (typeof eventListener === 'function') {\r\n\t\t\t\teventListener('end')\r\n\t\t\t}\r\n\t\t\treturn\r\n\t\t}\r\n\t\treturn '+'\r\n\t}\r\n\t// Allow digits.\r\n\treturn parseDigit(character)\r\n}","// When phone numbers are written in `RFC3966` format — `\"tel:+12133734253\"` —\r\n// they can have their \"calling code\" part written separately in a `phone-context` parameter.\r\n// Example: `\"tel:12133734253;phone-context=+1\"`.\r\n// This function parses the full phone number from the local number and the `phone-context`\r\n// when the `phone-context` contains a `+` sign.\r\n\r\nimport {\r\n VALID_DIGITS,\r\n // PLUS_CHARS\r\n} from '../constants.js'\r\n\r\nexport const PLUS_SIGN = '+'\r\n\r\nconst RFC3966_VISUAL_SEPARATOR_ = '[\\\\-\\\\.\\\\(\\\\)]?'\r\n\r\nconst RFC3966_PHONE_DIGIT_ = '(' + '[' + VALID_DIGITS + ']' + '|' + RFC3966_VISUAL_SEPARATOR_ + ')'\r\n\r\nconst RFC3966_GLOBAL_NUMBER_DIGITS_ =\r\n\t'^' +\r\n\t'\\\\' +\r\n\tPLUS_SIGN +\r\n\tRFC3966_PHONE_DIGIT_ +\r\n\t'*' +\r\n\t'[' + VALID_DIGITS + ']' +\r\n\tRFC3966_PHONE_DIGIT_ +\r\n\t'*' +\r\n\t'$'\r\n\r\n/**\r\n * Regular expression of valid global-number-digits for the phone-context\r\n * parameter, following the syntax defined in RFC3966.\r\n */\r\nconst RFC3966_GLOBAL_NUMBER_DIGITS_PATTERN_ = new RegExp(RFC3966_GLOBAL_NUMBER_DIGITS_, 'g')\r\n\r\n// In this port of Google's library, we don't accept alpha characters in phone numbers.\r\n// const ALPHANUM_ = VALID_ALPHA_ + VALID_DIGITS\r\nconst ALPHANUM_ = VALID_DIGITS\r\n\r\nconst RFC3966_DOMAINLABEL_ = '[' + ALPHANUM_ + ']+((\\\\-)*[' + ALPHANUM_ + '])*'\r\n\r\nconst VALID_ALPHA_ = 'a-zA-Z'\r\nconst RFC3966_TOPLABEL_ = '[' + VALID_ALPHA_ + ']+((\\\\-)*[' + ALPHANUM_ + '])*'\r\n\r\nconst RFC3966_DOMAINNAME_ = '^(' + RFC3966_DOMAINLABEL_ + '\\\\.)*' + RFC3966_TOPLABEL_ + '\\\\.?$'\r\n\r\n/**\r\n * Regular expression of valid domainname for the phone-context parameter,\r\n * following the syntax defined in RFC3966.\r\n */\r\nconst RFC3966_DOMAINNAME_PATTERN_ = new RegExp(RFC3966_DOMAINNAME_, 'g')\r\n\r\nexport const RFC3966_PREFIX_ = 'tel:'\r\nexport const RFC3966_PHONE_CONTEXT_ = ';phone-context='\r\nexport const RFC3966_ISDN_SUBADDRESS_ = ';isub='\r\n\r\n/**\r\n * Extracts the value of the phone-context parameter of `numberToExtractFrom`,\r\n * following the syntax defined in RFC3966.\r\n *\r\n * @param {string} numberToExtractFrom\r\n * @return {string|null} the extracted string (possibly empty), or `null` if no phone-context parameter is found.\r\n */\r\nexport default function extractPhoneContext(numberToExtractFrom) {\r\n\tconst indexOfPhoneContext = numberToExtractFrom.indexOf(RFC3966_PHONE_CONTEXT_)\r\n\t// If no phone-context parameter is present\r\n\tif (indexOfPhoneContext < 0) {\r\n\t\treturn null\r\n\t}\r\n\r\n\tconst phoneContextStart = indexOfPhoneContext + RFC3966_PHONE_CONTEXT_.length\r\n\t// If phone-context parameter is empty\r\n\tif (phoneContextStart >= numberToExtractFrom.length) {\r\n\t\treturn ''\r\n\t}\r\n\r\n\tconst phoneContextEnd = numberToExtractFrom.indexOf(';', phoneContextStart)\r\n\t// If phone-context is not the last parameter\r\n\tif (phoneContextEnd >= 0) {\r\n\t\treturn numberToExtractFrom.substring(phoneContextStart, phoneContextEnd)\r\n\t} else {\r\n\t\treturn numberToExtractFrom.substring(phoneContextStart)\r\n\t}\r\n}\r\n\r\n/**\r\n * Returns whether the value of phoneContext follows the syntax defined in RFC3966.\r\n *\r\n * @param {string|null} phoneContext\r\n * @return {boolean}\r\n */\r\nexport function isPhoneContextValid(phoneContext) {\r\n\tif (phoneContext === null) {\r\n\t\treturn true\r\n\t}\r\n\r\n\tif (phoneContext.length === 0) {\r\n\t\treturn false\r\n\t}\r\n\r\n\t// Does phone-context value match pattern of global-number-digits or domainname.\r\n\treturn RFC3966_GLOBAL_NUMBER_DIGITS_PATTERN_.test(phoneContext) ||\r\n\t\tRFC3966_DOMAINNAME_PATTERN_.test(phoneContext)\r\n}","import extractPhoneContext, {\r\n\tisPhoneContextValid,\r\n\tPLUS_SIGN,\r\n\tRFC3966_PREFIX_,\r\n\tRFC3966_PHONE_CONTEXT_,\r\n\tRFC3966_ISDN_SUBADDRESS_\r\n} from './extractPhoneContext.js'\r\n\r\nimport ParseError from '../ParseError.js'\r\n\r\n/**\r\n * @param {string} numberToParse\r\n * @param {string} nationalNumber\r\n * @return {}\r\n */\r\nexport default function extractFormattedPhoneNumberFromPossibleRfc3966NumberUri(numberToParse, {\r\n\textractFormattedPhoneNumber\r\n}) {\r\n\tconst phoneContext = extractPhoneContext(numberToParse)\r\n\tif (!isPhoneContextValid(phoneContext)) {\r\n\t\tthrow new ParseError('NOT_A_NUMBER')\r\n\t}\r\n\r\n\tlet phoneNumberString\r\n\r\n\tif (phoneContext === null) {\r\n\t\t// Extract a possible number from the string passed in.\r\n\t\t// (this strips leading characters that could not be the start of a phone number)\r\n\t\tphoneNumberString = extractFormattedPhoneNumber(numberToParse) || ''\r\n\t} else {\r\n\t\tphoneNumberString = ''\r\n\r\n\t\t// If the phone context contains a phone number prefix, we need to capture\r\n\t\t// it, whereas domains will be ignored.\r\n\t\tif (phoneContext.charAt(0) === PLUS_SIGN) {\r\n\t\t\tphoneNumberString += phoneContext\r\n\t\t}\r\n\r\n\t\t// Now append everything between the \"tel:\" prefix and the phone-context.\r\n\t\t// This should include the national number, an optional extension or\r\n\t\t// isdn-subaddress component. Note we also handle the case when \"tel:\" is\r\n\t\t// missing, as we have seen in some of the phone number inputs.\r\n\t\t// In that case, we append everything from the beginning.\r\n\t\tconst indexOfRfc3966Prefix = numberToParse.indexOf(RFC3966_PREFIX_)\r\n\t\tlet indexOfNationalNumber\r\n\t\t// RFC 3966 \"tel:\" prefix is preset at this stage because\r\n\t\t// `isPhoneContextValid()` requires it to be present.\r\n\t\t/* istanbul ignore else */\r\n\t\tif (indexOfRfc3966Prefix >= 0) {\r\n\t\t\tindexOfNationalNumber = indexOfRfc3966Prefix + RFC3966_PREFIX_.length\r\n\t\t} else {\r\n\t\t\tindexOfNationalNumber = 0\r\n\t\t}\r\n\t\tconst indexOfPhoneContext = numberToParse.indexOf(RFC3966_PHONE_CONTEXT_)\r\n\t\tphoneNumberString += numberToParse.substring(indexOfNationalNumber, indexOfPhoneContext)\r\n\t}\r\n\r\n\t// Delete the isdn-subaddress and everything after it if it is present.\r\n\t// Note extension won't appear at the same time with isdn-subaddress\r\n\t// according to paragraph 5.3 of the RFC3966 spec.\r\n\tconst indexOfIsdn = phoneNumberString.indexOf(RFC3966_ISDN_SUBADDRESS_)\r\n\tif (indexOfIsdn > 0) {\r\n\t\tphoneNumberString = phoneNumberString.substring(0, indexOfIsdn)\r\n\t}\r\n\t// If both phone context and isdn-subaddress are absent but other\r\n\t// parameters are present, the parameters are left in nationalNumber.\r\n\t// This is because we are concerned about deleting content from a potential\r\n\t// number string when there is no strong evidence that the number is\r\n\t// actually written in RFC3966.\r\n\r\n\tif (phoneNumberString !== '') {\r\n\t\treturn phoneNumberString\r\n\t}\r\n}","// This is a port of Google Android `libphonenumber`'s\r\n// `phonenumberutil.js` of December 31th, 2018.\r\n//\r\n// https://github.com/googlei18n/libphonenumber/commits/master/javascript/i18n/phonenumbers/phonenumberutil.js\r\n\r\nimport {\r\n\tVALID_DIGITS,\r\n\tPLUS_CHARS,\r\n\tMIN_LENGTH_FOR_NSN,\r\n\tMAX_LENGTH_FOR_NSN\r\n} from './constants.js'\r\n\r\nimport ParseError from './ParseError.js'\r\nimport Metadata from './metadata.js'\r\nimport isViablePhoneNumber, { isViablePhoneNumberStart } from './helpers/isViablePhoneNumber.js'\r\nimport extractExtension from './helpers/extension/extractExtension.js'\r\nimport parseIncompletePhoneNumber from './parseIncompletePhoneNumber.js'\r\nimport getCountryCallingCode from './getCountryCallingCode.js'\r\nimport { isPossibleNumber } from './isPossible.js'\r\n// import { parseRFC3966 } from './helpers/RFC3966.js'\r\nimport PhoneNumber from './PhoneNumber.js'\r\nimport matchesEntirely from './helpers/matchesEntirely.js'\r\nimport extractCountryCallingCode from './helpers/extractCountryCallingCode.js'\r\nimport extractNationalNumber from './helpers/extractNationalNumber.js'\r\n// import stripIddPrefix from './helpers/stripIddPrefix.js'\r\nimport getCountryByCallingCode from './helpers/getCountryByCallingCode.js'\r\nimport extractFormattedPhoneNumberFromPossibleRfc3966NumberUri from './helpers/extractFormattedPhoneNumberFromPossibleRfc3966NumberUri.js'\r\n\r\n// We don't allow input strings for parsing to be longer than 250 chars.\r\n// This prevents malicious input from consuming CPU.\r\nconst MAX_INPUT_STRING_LENGTH = 250\r\n\r\n// This consists of the plus symbol, digits, and arabic-indic digits.\r\nconst PHONE_NUMBER_START_PATTERN = new RegExp('[' + PLUS_CHARS + VALID_DIGITS + ']')\r\n\r\n// Regular expression of trailing characters that we want to remove.\r\n// A trailing `#` is sometimes used when writing phone numbers with extensions in US.\r\n// Example: \"+1 (645) 123 1234-910#\" number has extension \"910\".\r\nconst AFTER_PHONE_NUMBER_END_PATTERN = new RegExp('[^' + VALID_DIGITS + '#' + ']+$')\r\n\r\nconst USE_NON_GEOGRAPHIC_COUNTRY_CODE = false\r\n\r\n// Examples:\r\n//\r\n// ```js\r\n// parse('8 (800) 555-35-35', 'RU')\r\n// parse('8 (800) 555-35-35', 'RU', metadata)\r\n// parse('8 (800) 555-35-35', { country: { default: 'RU' } })\r\n// parse('8 (800) 555-35-35', { country: { default: 'RU' } }, metadata)\r\n// parse('+7 800 555 35 35')\r\n// parse('+7 800 555 35 35', metadata)\r\n// ```\r\n//\r\n\r\n/**\r\n * Parses a phone number.\r\n *\r\n * parse('123456789', { defaultCountry: 'RU', v2: true }, metadata)\r\n * parse('123456789', { defaultCountry: 'RU' }, metadata)\r\n * parse('123456789', undefined, metadata)\r\n *\r\n * @param {string} input\r\n * @param {object} [options]\r\n * @param {object} metadata\r\n * @return {object|PhoneNumber?} If `options.v2: true` flag is passed, it returns a `PhoneNumber?` instance. Otherwise, returns an object of shape `{ phone: '...', country: '...' }` (or just `{}` if no phone number was parsed).\r\n */\r\nexport default function parse(text, options, metadata) {\r\n\t// If assigning the `{}` default value is moved to the arguments above,\r\n\t// code coverage would decrease for some weird reason.\r\n\toptions = options || {}\r\n\r\n\tmetadata = new Metadata(metadata)\r\n\r\n\t// Validate `defaultCountry`.\r\n\tif (options.defaultCountry && !metadata.hasCountry(options.defaultCountry)) {\r\n\t\tif (options.v2) {\r\n\t\t\tthrow new ParseError('INVALID_COUNTRY')\r\n\t\t}\r\n\t\tthrow new Error(`Unknown country: ${options.defaultCountry}`)\r\n\t}\r\n\r\n\t// Parse the phone number.\r\n\tconst { number: formattedPhoneNumber, ext, error } = parseInput(text, options.v2, options.extract)\r\n\r\n\t// If the phone number is not viable then return nothing.\r\n\tif (!formattedPhoneNumber) {\r\n\t\tif (options.v2) {\r\n\t\t\tif (error === 'TOO_SHORT') {\r\n\t\t\t\tthrow new ParseError('TOO_SHORT')\r\n\t\t\t}\r\n\t\t\tthrow new ParseError('NOT_A_NUMBER')\r\n\t\t}\r\n\t\treturn {}\r\n\t}\r\n\r\n\tconst {\r\n\t\tcountry,\r\n\t\tnationalNumber,\r\n\t\tcountryCallingCode,\r\n\t\tcountryCallingCodeSource,\r\n\t\tcarrierCode\r\n\t} = parsePhoneNumber(\r\n\t\tformattedPhoneNumber,\r\n\t\toptions.defaultCountry,\r\n\t\toptions.defaultCallingCode,\r\n\t\tmetadata\r\n\t)\r\n\r\n\tif (!metadata.hasSelectedNumberingPlan()) {\r\n\t\tif (options.v2) {\r\n\t\t\tthrow new ParseError('INVALID_COUNTRY')\r\n\t\t}\r\n\t\treturn {}\r\n\t}\r\n\r\n\t// Validate national (significant) number length.\r\n\tif (!nationalNumber || nationalNumber.length < MIN_LENGTH_FOR_NSN) {\r\n\t\t// Won't throw here because the regexp already demands length > 1.\r\n\t\t/* istanbul ignore if */\r\n\t\tif (options.v2) {\r\n\t\t\tthrow new ParseError('TOO_SHORT')\r\n\t\t}\r\n\t\t// Google's demo just throws an error in this case.\r\n\t\treturn {}\r\n\t}\r\n\r\n\t// Validate national (significant) number length.\r\n\t//\r\n\t// A sidenote:\r\n\t//\r\n\t// They say that sometimes national (significant) numbers\r\n\t// can be longer than `MAX_LENGTH_FOR_NSN` (e.g. in Germany).\r\n\t// https://github.com/googlei18n/libphonenumber/blob/7e1748645552da39c4e1ba731e47969d97bdb539/resources/phonenumber.proto#L36\r\n\t// Such numbers will just be discarded.\r\n\t//\r\n\tif (nationalNumber.length > MAX_LENGTH_FOR_NSN) {\r\n\t\tif (options.v2) {\r\n\t\t\tthrow new ParseError('TOO_LONG')\r\n\t\t}\r\n\t\t// Google's demo just throws an error in this case.\r\n\t\treturn {}\r\n\t}\r\n\r\n\tif (options.v2) {\r\n\t\tconst phoneNumber = new PhoneNumber(\r\n\t\t\tcountryCallingCode,\r\n\t\t\tnationalNumber,\r\n\t\t\tmetadata.metadata\r\n\t\t)\r\n\t\tif (country) {\r\n\t\t\tphoneNumber.country = country\r\n\t\t}\r\n\t\tif (carrierCode) {\r\n\t\t\tphoneNumber.carrierCode = carrierCode\r\n\t\t}\r\n\t\tif (ext) {\r\n\t\t\tphoneNumber.ext = ext\r\n\t\t}\r\n\t\tphoneNumber.__countryCallingCodeSource = countryCallingCodeSource\r\n\t\treturn phoneNumber\r\n\t}\r\n\r\n\t// Check if national phone number pattern matches the number.\r\n\t// National number pattern is different for each country,\r\n\t// even for those ones which are part of the \"NANPA\" group.\r\n\tconst valid = (options.extended ? metadata.hasSelectedNumberingPlan() : country) ?\r\n\t\tmatchesEntirely(nationalNumber, metadata.nationalNumberPattern()) :\r\n\t\tfalse\r\n\r\n\tif (!options.extended) {\r\n\t\treturn valid ? result(country, nationalNumber, ext) : {}\r\n\t}\r\n\r\n\t// isInternational: countryCallingCode !== undefined\r\n\r\n\treturn {\r\n\t\tcountry,\r\n\t\tcountryCallingCode,\r\n\t\tcarrierCode,\r\n\t\tvalid,\r\n\t\tpossible: valid ? true : (\r\n\t\t\toptions.extended === true &&\r\n\t\t\tmetadata.possibleLengths() &&\r\n\t\t\tisPossibleNumber(nationalNumber, country, metadata) ? true : false\r\n\t\t),\r\n\t\tphone: nationalNumber,\r\n\t\text\r\n\t}\r\n}\r\n\r\n/**\r\n * Extracts a formatted phone number from text.\r\n * Doesn't guarantee that the extracted phone number\r\n * is a valid phone number (for example, doesn't validate its length).\r\n * @param {string} text\r\n * @param {boolean} [extract] — If `false`, then will parse the entire `text` as a phone number.\r\n * @param {boolean} [throwOnError] — By default, it won't throw if the text is too long.\r\n * @return {string}\r\n * @example\r\n * // Returns \"(213) 373-4253\".\r\n * extractFormattedPhoneNumber(\"Call (213) 373-4253 for assistance.\")\r\n */\r\nfunction extractFormattedPhoneNumber(text, extract, throwOnError) {\r\n\tif (!text) {\r\n\t\treturn\r\n\t}\r\n\tif (text.length > MAX_INPUT_STRING_LENGTH) {\r\n\t\tif (throwOnError) {\r\n\t\t\tthrow new ParseError('TOO_LONG')\r\n\t\t}\r\n\t\treturn\r\n\t}\r\n\tif (extract === false) {\r\n\t\treturn text\r\n\t}\r\n\t// Attempt to extract a possible number from the string passed in\r\n\tconst startsAt = text.search(PHONE_NUMBER_START_PATTERN)\r\n\tif (startsAt < 0) {\r\n\t\treturn\r\n\t}\r\n\treturn text\r\n\t\t// Trim everything to the left of the phone number\r\n\t\t.slice(startsAt)\r\n\t\t// Remove trailing non-numerical characters\r\n\t\t.replace(AFTER_PHONE_NUMBER_END_PATTERN, '')\r\n}\r\n\r\n/**\r\n * @param {string} text - Input.\r\n * @param {boolean} v2 - Legacy API functions don't pass `v2: true` flag.\r\n * @param {boolean} [extract] - Whether to extract a phone number from `text`, or attempt to parse the entire text as a phone number.\r\n * @return {object} `{ ?number, ?ext }`.\r\n */\r\nfunction parseInput(text, v2, extract) {\r\n\t// // Parse RFC 3966 phone number URI.\r\n\t// if (text && text.indexOf('tel:') === 0) {\r\n\t// \treturn parseRFC3966(text)\r\n\t// }\r\n\t// let number = extractFormattedPhoneNumber(text, extract, v2)\r\n\tlet number = extractFormattedPhoneNumberFromPossibleRfc3966NumberUri(text, {\r\n\t\textractFormattedPhoneNumber: (text) => extractFormattedPhoneNumber(text, extract, v2)\r\n\t})\r\n\t// If the phone number is not viable, then abort.\r\n\tif (!number) {\r\n\t\treturn {}\r\n\t}\r\n\tif (!isViablePhoneNumber(number)) {\r\n\t\tif (isViablePhoneNumberStart(number)) {\r\n\t\t\treturn { error: 'TOO_SHORT' }\r\n\t\t}\r\n\t\treturn {}\r\n\t}\r\n\t// Attempt to parse extension first, since it doesn't require region-specific\r\n\t// data and we want to have the non-normalised number here.\r\n\tconst withExtensionStripped = extractExtension(number)\r\n\tif (withExtensionStripped.ext) {\r\n\t\treturn withExtensionStripped\r\n\t}\r\n\treturn { number }\r\n}\r\n\r\n/**\r\n * Creates `parse()` result object.\r\n */\r\nfunction result(country, nationalNumber, ext) {\r\n\tconst result = {\r\n\t\tcountry,\r\n\t\tphone: nationalNumber\r\n\t}\r\n\tif (ext) {\r\n\t\tresult.ext = ext\r\n\t}\r\n\treturn result\r\n}\r\n\r\n/**\r\n * Parses a viable phone number.\r\n * @param {string} formattedPhoneNumber — Example: \"(213) 373-4253\".\r\n * @param {string} [defaultCountry]\r\n * @param {string} [defaultCallingCode]\r\n * @param {Metadata} metadata\r\n * @return {object} Returns `{ country: string?, countryCallingCode: string?, nationalNumber: string? }`.\r\n */\r\nfunction parsePhoneNumber(\r\n\tformattedPhoneNumber,\r\n\tdefaultCountry,\r\n\tdefaultCallingCode,\r\n\tmetadata\r\n) {\r\n\t// Extract calling code from phone number.\r\n\tlet { countryCallingCodeSource, countryCallingCode, number } = extractCountryCallingCode(\r\n\t\tparseIncompletePhoneNumber(formattedPhoneNumber),\r\n\t\tundefined,\r\n\t\tdefaultCountry,\r\n\t\tdefaultCallingCode,\r\n\t\tmetadata.metadata\r\n\t)\r\n\r\n\t// The exact country of the phone number\r\n\tlet country\r\n\r\n\t// If `formattedPhoneNumber` is passed in \"international\" format,\r\n\t// choose a country by `countryCallingCode`.\r\n\tif (countryCallingCode) {\r\n\t\tmetadata.selectNumberingPlan(countryCallingCode)\r\n\t}\r\n\t// Else, if `formattedPhoneNumber` is passed in \"national\" format,\r\n\t// then `number` is defined and `countryCallingCode` is `undefined`.\r\n\telse if (number && (defaultCountry || defaultCallingCode)) {\r\n\t\tmetadata.selectNumberingPlan(defaultCountry, defaultCallingCode)\r\n\t\tif (defaultCountry) {\r\n\t\t\tcountry = defaultCountry\r\n\t\t} else {\r\n\t\t\t/* istanbul ignore if */\r\n\t\t\tif (USE_NON_GEOGRAPHIC_COUNTRY_CODE) {\r\n\t\t\t\tif (metadata.isNonGeographicCallingCode(defaultCallingCode)) {\r\n\t\t\t\t\tcountry = '001'\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\tcountryCallingCode = defaultCallingCode || getCountryCallingCode(defaultCountry, metadata.metadata)\r\n\t}\r\n\telse return {}\r\n\r\n\tif (!number) {\r\n\t\treturn {\r\n\t\t\tcountryCallingCodeSource,\r\n\t\t\tcountryCallingCode\r\n\t\t}\r\n\t}\r\n\r\n\tconst {\r\n\t\tnationalNumber,\r\n\t\tcarrierCode\r\n\t} = extractNationalNumber(\r\n\t\tparseIncompletePhoneNumber(number),\r\n\t\tcountry,\r\n\t\tmetadata\r\n\t)\r\n\r\n\t// Sometimes there are several countries\r\n\t// corresponding to the same country phone code\r\n\t// (e.g. NANPA countries all having `1` country phone code).\r\n\t// Therefore, to reliably determine the exact country,\r\n\t// national (significant) number should have been parsed first.\r\n\t//\r\n\t// When `metadata.json` is generated, all \"ambiguous\" country phone codes\r\n\t// get their countries populated with the full set of\r\n\t// \"phone number type\" regular expressions.\r\n\t//\r\n\tconst exactCountry = getCountryByCallingCode(countryCallingCode, {\r\n\t\tnationalNumber,\r\n\t\tmetadata\r\n\t})\r\n\tif (exactCountry) {\r\n\t\tcountry = exactCountry\r\n\t\t/* istanbul ignore if */\r\n\t\tif (exactCountry === '001') {\r\n\t\t\t// Can't happen with `USE_NON_GEOGRAPHIC_COUNTRY_CODE` being `false`.\r\n\t\t\t// If `USE_NON_GEOGRAPHIC_COUNTRY_CODE` is set to `true` for some reason,\r\n\t\t\t// then remove the \"istanbul ignore if\".\r\n\t\t} else {\r\n\t\t\tmetadata.selectNumberingPlan(country)\r\n\t\t}\r\n\t}\r\n\r\n\treturn {\r\n\t\tcountry,\r\n\t\tcountryCallingCode,\r\n\t\tcountryCallingCodeSource,\r\n\t\tnationalNumber,\r\n\t\tcarrierCode\r\n\t}\r\n}","import parse from './parse.js'\r\n\r\nexport default function parsePhoneNumberWithError(text, options, metadata) {\r\n\treturn parse(text, { ...options, v2: true }, metadata)\r\n}","import isObject from './helpers/isObject.js'\r\n\r\n// Extracts the following properties from function arguments:\r\n// * input `text`\r\n// * `options` object\r\n// * `metadata` JSON\r\nexport default function normalizeArguments(args) {\r\n\tconst [arg_1, arg_2, arg_3, arg_4] = Array.prototype.slice.call(args)\r\n\r\n\tlet text\r\n\tlet options\r\n\tlet metadata\r\n\r\n\t// If the phone number is passed as a string.\r\n\t// `parsePhoneNumber('88005553535', ...)`.\r\n\tif (typeof arg_1 === 'string') {\r\n\t\ttext = arg_1\r\n\t}\r\n\telse throw new TypeError('A text for parsing must be a string.')\r\n\r\n\t// If \"default country\" argument is being passed then move it to `options`.\r\n\t// `parsePhoneNumber('88005553535', 'RU', [options], metadata)`.\r\n\tif (!arg_2 || typeof arg_2 === 'string')\r\n\t{\r\n\t\tif (arg_4) {\r\n\t\t\toptions = arg_3\r\n\t\t\tmetadata = arg_4\r\n\t\t} else {\r\n\t\t\toptions = undefined\r\n\t\t\tmetadata = arg_3\r\n\t\t}\r\n\r\n\t\tif (arg_2) {\r\n\t\t\toptions = { defaultCountry: arg_2, ...options }\r\n\t\t}\r\n\t}\r\n\t// `defaultCountry` is not passed.\r\n\t// Example: `parsePhoneNumber('+78005553535', [options], metadata)`.\r\n\telse if (isObject(arg_2))\r\n\t{\r\n\t\tif (arg_3) {\r\n\t\t\toptions = arg_2\r\n\t\t\tmetadata = arg_3\r\n\t\t} else {\r\n\t\t\tmetadata = arg_2\r\n\t\t}\r\n\t}\r\n\telse throw new Error(`Invalid second argument: ${arg_2}`)\r\n\r\n\treturn {\r\n\t\ttext,\r\n\t\toptions,\r\n\t\tmetadata\r\n\t}\r\n}","import parsePhoneNumberWithError from './parsePhoneNumberWithError_.js'\r\nimport ParseError from './ParseError.js'\r\nimport { isSupportedCountry } from './metadata.js'\r\n\r\nexport default function parsePhoneNumber(text, options, metadata) {\r\n\t// Validate `defaultCountry`.\r\n\tif (options && options.defaultCountry && !isSupportedCountry(options.defaultCountry, metadata)) {\r\n\t\toptions = {\r\n\t\t\t...options,\r\n\t\t\tdefaultCountry: undefined\r\n\t\t}\r\n\t}\r\n\t// Parse phone number.\r\n\ttry {\r\n\t\treturn parsePhoneNumberWithError(text, options, metadata)\r\n\t} catch (error) {\r\n\t\t/* istanbul ignore else */\r\n\t\tif (error instanceof ParseError) {\r\n\t\t\t//\r\n\t\t} else {\r\n\t\t\tthrow error\r\n\t\t}\r\n\t}\r\n}\r\n","import normalizeArguments from './normalizeArguments.js'\r\nimport parsePhoneNumber_ from './parsePhoneNumber_.js'\r\n\r\nexport default function parsePhoneNumber() {\r\n\tconst { text, options, metadata } = normalizeArguments(arguments)\r\n\treturn parsePhoneNumber_(text, options, metadata)\r\n}\r\n","import withMetadataArgument from './withMetadataArgument.js'\r\nimport { default as _parsePhoneNumber } from '../../core/index.js'\r\n\r\nexport function parsePhoneNumber() {\r\n\treturn withMetadataArgument(_parsePhoneNumber, arguments)\r\n}","// Utility function to read a specific cookie value\nexport function getCookieValue(name: string): string | undefined {\n if (typeof document === 'undefined') return undefined;\n\n const cookies = document.cookie.split(';');\n for (const cookie of cookies) {\n const trimmedCookie = cookie.trim();\n const eqIndex = trimmedCookie.indexOf('=');\n if (eqIndex === -1) continue;\n\n const cookieName = trimmedCookie.substring(0, eqIndex);\n const cookieValue = trimmedCookie.substring(eqIndex + 1);\n\n if (cookieName === name) {\n return cookieValue;\n }\n }\n\n return undefined;\n}\n\nexport class ApiError extends Error {\n statusCode: number;\n errors?: string[];\n\n constructor(message: string, statusCode: number, errors?: string[]) {\n super(message);\n this.statusCode = statusCode;\n this.errors = errors;\n }\n}\n\n/**\n * Handler for enhanced authentication requirement (RFC 9470 Step-Up Authentication).\n * Called when a 401 response includes WWW-Authenticate header with\n * error=\"insufficient_user_authentication\".\n * Should return a promise that resolves with the new auth token after re-auth.\n */\nexport type EnhancedAuthHandler = () => Promise<string>;\n\n/**\n * Info parsed from WWW-Authenticate header for org auth requirement.\n */\nexport interface OrgAuthInfo {\n orgUuid: string;\n cookieName: string;\n authUrl: string;\n}\n\n/**\n * Handler for organization authentication requirement.\n * Called when a 401 response includes WWW-Authenticate header with realm=\"org\".\n * The handler should redirect the user to the auth URL for consent/SSO.\n * Returns a promise that resolves when the user should retry (after page reload with cookie).\n */\nexport type OrgAuthHandler = (info: OrgAuthInfo) => Promise<void>;\n\n/**\n * Check if a WWW-Authenticate header indicates step-up authentication is required.\n * Per RFC 9470, this is indicated by error=\"insufficient_user_authentication\".\n */\nfunction requiresStepUpAuth(wwwAuthenticate: string | null): boolean {\n if (!wwwAuthenticate) return false;\n return wwwAuthenticate.includes('error=\"insufficient_user_authentication\"');\n}\n\n/**\n * Parse org auth info from WWW-Authenticate header.\n * Returns null if this is not an org auth challenge.\n * Expected format: Bearer realm=\"org\", org_uuid=\"...\", cookie_name=\"...\", auth_url=\"...\"\n */\nfunction parseOrgAuthChallenge(wwwAuthenticate: string | null): OrgAuthInfo | null {\n if (!wwwAuthenticate) return null;\n if (!wwwAuthenticate.includes('realm=\"org\"')) return null;\n\n // Parse the key-value pairs from the header\n const orgUuidMatch = wwwAuthenticate.match(/org_uuid=\"([^\"]+)\"/);\n const cookieNameMatch = wwwAuthenticate.match(/cookie_name=\"([^\"]+)\"/);\n const authUrlMatch = wwwAuthenticate.match(/auth_url=\"([^\"]+)\"/);\n\n if (!orgUuidMatch?.[1] || !cookieNameMatch?.[1] || !authUrlMatch?.[1]) {\n console.warn('Invalid org auth challenge header:', wwwAuthenticate);\n return null;\n }\n\n return {\n orgUuid: orgUuidMatch[1],\n cookieName: cookieNameMatch[1],\n authUrl: authUrlMatch[1],\n };\n}\n\nexport class BaseApiClient {\n protected baseUrl: string;\n protected apiKey: string | undefined;\n protected isCrossDomain: boolean;\n protected fetchFunction: typeof fetch;\n private enhancedAuthHandler?: EnhancedAuthHandler;\n private enhancedAuthInProgress: Promise<string> | null = null;\n private orgAuthHandler?: OrgAuthHandler;\n private actingMemberUuid?: string;\n private orgToken?: string;\n\n constructor(apiKey: string | undefined, baseUrl: string, customFetch?: typeof fetch) {\n this.baseUrl = baseUrl;\n this.apiKey = apiKey;\n // console.log('[BaseApiClient] constructor - baseUrl:', baseUrl);\n // Bind fetch to its proper context (window in browser, global in Node)\n this.fetchFunction =\n customFetch || (typeof window !== 'undefined' ? fetch.bind(window) : fetch);\n\n // Determine if we're making cross-domain requests by comparing current origin to API origin\n const apiUrlParsed = new URL(baseUrl);\n const currentOrigin = typeof window !== 'undefined' ? window.location.origin : '';\n this.isCrossDomain = currentOrigin !== '' && currentOrigin !== apiUrlParsed.origin;\n // console.log('[BaseApiClient] isCrossDomain:', this.isCrossDomain, 'currentOrigin:', currentOrigin, 'apiOrigin:', apiUrlParsed.origin);\n }\n\n /**\n * Set the handler for enhanced authentication requirements (RFC 9470 Step-Up Auth).\n * This handler is called when a 401 response includes WWW-Authenticate header\n * with error=\"insufficient_user_authentication\".\n */\n setEnhancedAuthHandler(handler: EnhancedAuthHandler | undefined) {\n this.enhancedAuthHandler = handler;\n }\n\n /**\n * Set the handler for organization authentication requirements.\n * This handler is called when a 401 response includes WWW-Authenticate header\n * with realm=\"org\". The handler should redirect the user to complete org auth.\n */\n setOrgAuthHandler(handler: OrgAuthHandler | undefined) {\n this.orgAuthHandler = handler;\n }\n\n /**\n * Update the API key (used after successful re-authentication).\n */\n updateApiKey(newApiKey: string) {\n this.apiKey = newApiKey;\n }\n\n /**\n * Set the acting member UUID for member identity switching.\n * When set, all API requests will include the X-Acting-Member header.\n * The backend will validate that the authenticated account owns this member\n * and use it as the effective identity for the request.\n */\n setActingMember(memberUuid: string | undefined) {\n this.actingMemberUuid = memberUuid;\n }\n\n /**\n * Get the current acting member UUID.\n */\n getActingMember(): string | undefined {\n return this.actingMemberUuid;\n }\n\n /**\n * Set the org token for cross-domain requests.\n * When set, all API requests will include the X-Org-Token header,\n * allowing org-level SSO verification without cookies.\n */\n setOrgToken(token: string | undefined) {\n this.orgToken = token;\n }\n\n protected async fetch<T>(endpoint: string, options?: RequestInit): Promise<T> {\n try {\n const headers = new Headers({\n 'Content-Type': 'application/json',\n ...((options?.headers as Record<string, string>) || {}),\n });\n\n if (this.apiKey) {\n headers.set('Authorization', `Bearer ${this.apiKey}`);\n } else if (this.isCrossDomain) {\n // For cross-domain requests, try to use the requestToken cookie\n const requestToken = getCookieValue('requestToken');\n if (requestToken) {\n headers.set('Authorization', `Bearer ${requestToken}`);\n }\n }\n\n // Include X-Acting-Member header for member identity switching\n if (this.actingMemberUuid) {\n headers.set('X-Acting-Member', this.actingMemberUuid);\n }\n\n // Include X-Org-Token header for cross-domain org auth\n if (this.orgToken) {\n headers.set('X-Org-Token', this.orgToken);\n }\n\n // console.warn(\"Calling with apiKey:\", this.apiKey)\n const fullUrl = `${this.baseUrl}/api/v2/${endpoint}`;\n // console.log('[BaseApiClient] fetch - URL:', fullUrl, 'baseUrl:', this.baseUrl, 'endpoint:', endpoint);\n\n const response = await this.fetchFunction(fullUrl, {\n ...options,\n ...(this.apiKey ? {} : { credentials: 'include' }),\n ...(this.isCrossDomain ? { mode: 'cors' } : {}),\n headers,\n });\n\n if (!response.ok) {\n // Check for step-up auth requirement per RFC 9470 (superuser 2FA re-auth needed)\n if (\n response.status === 401 &&\n requiresStepUpAuth(response.headers.get('WWW-Authenticate')) &&\n this.enhancedAuthHandler\n ) {\n // If re-auth is already in progress, wait for it\n if (this.enhancedAuthInProgress) {\n await this.enhancedAuthInProgress;\n } else {\n // Trigger re-auth and wait for completion\n this.enhancedAuthInProgress = this.enhancedAuthHandler();\n try {\n const newToken = await this.enhancedAuthInProgress;\n this.apiKey = newToken;\n } finally {\n this.enhancedAuthInProgress = null;\n }\n }\n // Retry the request with the new token\n try {\n return await this.fetch<T>(endpoint, options);\n } catch (retryError) {\n this.orgToken = undefined;\n throw retryError;\n }\n }\n\n // Check for org auth requirement (realm=\"org\" in WWW-Authenticate)\n if (response.status === 401) {\n const orgAuthInfo = parseOrgAuthChallenge(response.headers.get('WWW-Authenticate'));\n if (orgAuthInfo && !this.orgToken) {\n // Try to read the client-readable mirror cookie (requestOrgToken{hash})\n const requestCookieName = orgAuthInfo.cookieName.replace(\n 'orgToken',\n 'requestOrgToken'\n );\n const cachedOrgToken = getCookieValue(requestCookieName);\n if (cachedOrgToken) {\n // Set the org token and retry the request\n this.orgToken = cachedOrgToken;\n try {\n return await this.fetch<T>(endpoint, options);\n } catch (retryError) {\n this.orgToken = undefined;\n throw retryError;\n }\n }\n\n // No cached token - fall through to org auth handler\n if (this.orgAuthHandler) {\n await this.orgAuthHandler(orgAuthInfo);\n throw new ApiError('Organization authentication required', 401);\n }\n }\n }\n\n const errorData = await response.json().catch(() => ({}));\n\n // Handle unauthorized errors for account endpoint\n if (response.status === 401 && endpoint === 'account') {\n throw new Error('unauthorized');\n }\n\n // Handle structured validation errors (Pydantic array format)\n if (Array.isArray(errorData.detail)) {\n const formattedErrors = errorData.detail\n .map((error: any) => {\n const location = error.loc.join(' > ');\n return `${location}: ${error.msg}`;\n })\n .join('\\n');\n throw new Error(`Validation Error:\\n${formattedErrors}`);\n }\n\n // Handle validation errors with errors array (new format)\n if (errorData.errors && Array.isArray(errorData.errors)) {\n const message = errorData.detail || 'Validation failed';\n throw new ApiError(message, response.status, errorData.errors);\n }\n\n // Handle structured errors (with error: true or with code property)\n const structuredError = errorData.detail || errorData;\n if (\n structuredError &&\n typeof structuredError === 'object' &&\n (structuredError.error === true || structuredError.code)\n ) {\n const message = structuredError.message || structuredError.code || 'Unknown error';\n const error = new ApiError(message, response.status);\n // Attach the full error data for frontend handling\n (error as any).errorData = structuredError;\n throw error;\n }\n\n // Handle simple error messages\n const errorMessage =\n typeof errorData.detail === 'string'\n ? errorData.detail\n : errorData.message || response.statusText;\n throw new ApiError(errorMessage, response.status);\n }\n\n // Handle 204 No Content - no JSON body to parse\n if (response.status === 204) {\n return undefined as any;\n }\n\n return response.json();\n } catch (error) {\n console.warn(error);\n throw error;\n }\n }\n\n protected async fetchRaw(endpoint: string, options?: RequestInit): Promise<Response> {\n try {\n const headers = new Headers({\n ...((options?.headers as Record<string, string>) || {}),\n });\n\n if (this.apiKey) {\n headers.set('Authorization', `Bearer ${this.apiKey}`);\n } else if (this.isCrossDomain) {\n // For cross-domain requests, try to use the requestToken cookie\n const requestToken = getCookieValue('requestToken');\n if (requestToken) {\n headers.set('Authorization', `Bearer ${requestToken}`);\n }\n }\n\n // Include X-Acting-Member header for member identity switching\n if (this.actingMemberUuid) {\n headers.set('X-Acting-Member', this.actingMemberUuid);\n }\n\n // Include X-Org-Token header for cross-domain org auth\n if (this.orgToken) {\n headers.set('X-Org-Token', this.orgToken);\n }\n\n const response = await this.fetchFunction(`${this.baseUrl}/api/v2/${endpoint}`, {\n ...options,\n ...(this.apiKey ? {} : { credentials: 'include' }),\n ...(this.isCrossDomain ? { mode: 'cors' } : {}),\n headers,\n });\n\n if (!response.ok) {\n // Check for step-up auth requirement per RFC 9470 (superuser 2FA re-auth needed)\n if (\n response.status === 401 &&\n requiresStepUpAuth(response.headers.get('WWW-Authenticate')) &&\n this.enhancedAuthHandler\n ) {\n // If re-auth is already in progress, wait for it\n if (this.enhancedAuthInProgress) {\n await this.enhancedAuthInProgress;\n } else {\n // Trigger re-auth and wait for completion\n this.enhancedAuthInProgress = this.enhancedAuthHandler();\n try {\n const newToken = await this.enhancedAuthInProgress;\n this.apiKey = newToken;\n } finally {\n this.enhancedAuthInProgress = null;\n }\n }\n // Retry the request with the new token\n try {\n return await this.fetchRaw(endpoint, options);\n } catch (retryError) {\n this.orgToken = undefined;\n throw retryError;\n }\n }\n\n // Check for org auth requirement (realm=\"org\" in WWW-Authenticate)\n if (response.status === 401) {\n const orgAuthInfo = parseOrgAuthChallenge(response.headers.get('WWW-Authenticate'));\n if (orgAuthInfo && !this.orgToken) {\n const requestCookieName = orgAuthInfo.cookieName.replace(\n 'orgToken',\n 'requestOrgToken'\n );\n const cachedOrgToken = getCookieValue(requestCookieName);\n if (cachedOrgToken) {\n this.orgToken = cachedOrgToken;\n try {\n return await this.fetchRaw(endpoint, options);\n } catch (retryError) {\n this.orgToken = undefined;\n throw retryError;\n }\n }\n\n if (this.orgAuthHandler) {\n await this.orgAuthHandler(orgAuthInfo);\n throw new ApiError('Organization authentication required', 401);\n }\n }\n }\n\n const errorText = await response.text().catch(() => '');\n throw new ApiError(errorText || response.statusText, response.status);\n }\n\n return response;\n } catch (error) {\n console.warn(error);\n throw error;\n }\n }\n\n /**\n * Fetch from root path (not prefixed with /api/v2/)\n * Used for OAuth and other non-API endpoints\n */\n protected async fetchRoot<T>(path: string, options?: RequestInit): Promise<T> {\n try {\n const headers = new Headers({\n 'Content-Type': 'application/json',\n ...((options?.headers as Record<string, string>) || {}),\n });\n\n if (this.apiKey) {\n headers.set('Authorization', `Bearer ${this.apiKey}`);\n } else if (this.isCrossDomain) {\n const requestToken = getCookieValue('requestToken');\n if (requestToken) {\n headers.set('Authorization', `Bearer ${requestToken}`);\n }\n }\n\n // Include X-Acting-Member header for member identity switching\n if (this.actingMemberUuid) {\n headers.set('X-Acting-Member', this.actingMemberUuid);\n }\n\n // Include X-Org-Token header for cross-domain org auth\n if (this.orgToken) {\n headers.set('X-Org-Token', this.orgToken);\n }\n\n const fullUrl = `${this.baseUrl}/${path}`;\n\n const response = await this.fetchFunction(fullUrl, {\n ...options,\n ...(this.apiKey ? {} : { credentials: 'include' }),\n ...(this.isCrossDomain ? { mode: 'cors' } : {}),\n headers,\n });\n\n if (!response.ok) {\n if (response.status === 404) {\n return null as T;\n }\n const errorData = await response.json().catch(() => ({}));\n const errorMessage = errorData.detail || errorData.message || response.statusText;\n throw new ApiError(errorMessage, response.status);\n }\n\n if (response.status === 204) {\n return undefined as T;\n }\n\n return response.json();\n } catch (error) {\n console.warn(error);\n throw error;\n }\n }\n}\n","import {\n App,\n AppCredentialResponse,\n AppListResponse,\n CreateAppRequest,\n UpdateAppRequest,\n} from '../types';\nimport { BaseApiClient } from './base';\n\nexport class AppsApi extends BaseApiClient {\n /**\n * List apps - either public apps, account's apps, or all apps visible to a workspace\n */\n async listApps(params?: { public?: boolean; workspaceUuid?: string; builderId?: number }): Promise<AppListResponse> {\n const queryParams = new URLSearchParams();\n if (params?.public) queryParams.append('public', 'true');\n if (params?.workspaceUuid !== undefined) queryParams.append('workspace_uuid', params.workspaceUuid);\n if (params?.builderId !== undefined) queryParams.append('builder_id', params.builderId.toString());\n const queryString = queryParams.toString();\n return this.fetch<AppListResponse>(`apps${queryString ? `?${queryString}` : ''}`);\n }\n\n /**\n * Create a new app\n */\n async createApp(request: CreateAppRequest): Promise<App> {\n return this.fetch<App>('apps', {\n method: 'POST',\n body: JSON.stringify(request),\n });\n }\n\n /**\n * Get details of a specific app\n */\n async getApp(appId: string): Promise<App> {\n return this.fetch<App>(`apps/${appId}`);\n }\n\n /**\n * Get app by client ID (for OAuth flows)\n */\n async getAppByClientId(clientId: string): Promise<App> {\n return this.fetch<App>(`apps/by-client-id/${clientId}`);\n }\n\n /**\n * Update an app\n */\n async updateApp(appId: string, request: UpdateAppRequest): Promise<App> {\n return this.fetch<App>(`apps/${appId}`, {\n method: 'PUT',\n body: JSON.stringify(request),\n });\n }\n\n /**\n * Delete an app\n */\n async deleteApp(appId: string): Promise<{ message: string }> {\n return this.fetch<{ message: string }>(`apps/${appId}`, {\n method: 'DELETE',\n });\n }\n\n /**\n * Regenerate client secret for an app\n */\n async regenerateClientSecret(appId: string): Promise<AppCredentialResponse> {\n return this.fetch<AppCredentialResponse>(`apps/${appId}/regenerate-secret`, {\n method: 'POST',\n });\n }\n}","import type { AppListResponse } from '../types/appTypes';\nimport type {\n Builder,\n BuilderListResponse,\n CreateBuilderRequest,\n UpdateBuilderRequest\n} from '../types/builderTypes';\nimport { BaseApiClient } from './base';\n\n/**\n * Builders API client\n */\nexport class BuildersApi extends BaseApiClient {\n /**\n * List all builders\n * @param all - If true, return all (superuser access required)\n */\n async listBuilders(\n all?: boolean,\n ): Promise<BuilderListResponse> {\n const params = new URLSearchParams();\n if (all !== undefined) params.append('all', String(all));\n \n const queryString = params.toString();\n const url = `builders${queryString ? `?${queryString}` : ''}`;\n \n return this.fetch<BuilderListResponse>(url);\n }\n\n /**\n * Get a specific builder by UUID\n * @param builderId - Builder UUID\n */\n async getBuilder(\n builderId: string,\n ): Promise<Builder> {\n return this.fetch<Builder>(`builders/${builderId}`);\n }\n\n /**\n * Create a new builder\n */\n async createBuilder(request: CreateBuilderRequest): Promise<Builder> {\n return this.fetch<Builder>('builders', {\n method: 'POST',\n body: JSON.stringify(request),\n });\n }\n\n /**\n * Update an existing builder\n */\n async updateBuilder(\n builderId: string,\n request: UpdateBuilderRequest\n ): Promise<Builder> {\n return this.fetch<Builder>(`builders/${builderId}`, {\n method: 'PUT',\n body: JSON.stringify(request),\n });\n }\n\n /**\n * Delete a builder\n */\n async deleteBuilder(builderId: string): Promise<{ message: string }> {\n return this.fetch<{ message: string }>(`builders/${builderId}`, {\n method: 'DELETE',\n });\n }\n\n /**\n * Get apps for a specific builder\n */\n async getBuilderApps(builderId: string): Promise<AppListResponse> {\n return this.fetch<AppListResponse>(`builders/${builderId}/apps`);\n }\n}","import { BaseApiClient } from './base';\nimport type { CELContextRequest, CELContextResponse } from '../types/celTypes';\n\nexport class CELApi extends BaseApiClient {\n /**\n * Get available CEL context for expression editing.\n *\n * Returns variables, custom functions, and operators appropriate for the given context\n * (event type, data type, context type, etc.).\n */\n async getCelContext(wid: string, request: CELContextRequest): Promise<CELContextResponse> {\n return this.fetch<CELContextResponse>(`w/${wid}/cel/context`, {\n method: 'POST',\n body: JSON.stringify(request),\n });\n }\n}\n","import { BaseApiClient } from './base';\nimport { CustomTool } from '../types';\n\nexport interface SupervisorFormData {\n name: string;\n displayName?: string;\n description?: string;\n prompt: string;\n chatModel?: string;\n tools?: string[];\n files?: Array<{\n id: number;\n accessMode: string;\n choicePrompt?: string;\n }>;\n dataTypes?: Array<{\n id: number;\n accessMode: string;\n }>;\n}\n\nexport class SupervisorsApi extends BaseApiClient {\n async getSupervisors(wid: string): Promise<CustomTool[]> {\n return this.fetch<CustomTool[]>(`w/${wid}/supervisors`);\n }\n\n async getSupervisor(wid: string, id: number): Promise<CustomTool> {\n return this.fetch<CustomTool>(`w/${wid}/supervisors/${id}`);\n }\n\n async createSupervisor(wid: string, supervisor: SupervisorFormData): Promise<CustomTool> {\n return this.fetch<CustomTool>(`w/${wid}/supervisors`, {\n method: 'POST',\n body: JSON.stringify(supervisor),\n });\n }\n\n async updateSupervisor(\n wid: string,\n id: number,\n supervisor: Partial<SupervisorFormData>\n ): Promise<CustomTool> {\n return this.fetch<CustomTool>(`w/${wid}/supervisors/${id}`, {\n method: 'PUT',\n body: JSON.stringify(supervisor),\n });\n }\n\n async deleteSupervisor(wid: string, id: number): Promise<void> {\n return this.fetch(`w/${wid}/supervisors/${id}`, {\n method: 'DELETE',\n });\n }\n}\n","import { BaseApiClient } from './base';\n\n/**\n * A template variable available for autocomplete.\n */\nexport interface TemplateVariable {\n path: string; // e.g., \"record.data.title\"\n type: string; // e.g., \"string\", \"number\", \"date\"\n description: string; // e.g., \"Title field from the data record\"\n sampleValue: any; // e.g., \"a-title\" for string fields\n}\n\n/**\n * Parameters for requesting template context.\n */\nexport interface TemplateContextRequest {\n workflowId?: number;\n taskId?: number;\n dataTypeId?: number;\n eventType?: string; // e.g., \"data_record:created\"\n objectType?: string; // e.g., \"data_record\"\n}\n\n/**\n * Response containing available template variables and namespaces.\n */\nexport interface TemplateContextResponse {\n variables: TemplateVariable[];\n namespaces: string[]; // Available top-level namespaces\n sampleContext: Record<string, any>; // Full sample context for preview rendering\n}\n\n/**\n * Parameters for requesting a template preview.\n */\nexport interface TemplatePreviewRequest {\n template: string;\n workflowId?: number;\n taskId?: number;\n dataTypeId?: number;\n eventType?: string;\n objectType?: string;\n}\n\n/**\n * Response containing rendered template and any errors.\n */\nexport interface TemplatePreviewResponse {\n rendered: string;\n errors: string[];\n}\n\n/**\n * A variable from the central registry with extended metadata.\n */\nexport interface RegistryVariable {\n path: string; // e.g., \"member.name\"\n type: string; // e.g., \"string\", \"number\"\n description: string;\n example: any;\n namespace: string;\n deprecated: boolean;\n deprecatedFor?: string | null;\n permissionScope?: string | null;\n}\n\n/**\n * Parameters for requesting variables from the registry.\n */\nexport interface VariableRegistryRequest {\n eventType?: string;\n includeDeprecated?: boolean;\n}\n\n/**\n * Response containing variables from the central registry.\n */\nexport interface VariableRegistryResponse {\n variables: RegistryVariable[];\n namespaces: string[];\n sampleContext: Record<string, any>;\n}\n\nexport class TemplatesApi extends BaseApiClient {\n /**\n * Get available template variables and sample context for template editing.\n *\n * Returns variables appropriate for the given context (event type, data type, etc.)\n * with sample values for live preview.\n */\n async getTemplateContext(\n wid: string,\n request: TemplateContextRequest\n ): Promise<TemplateContextResponse> {\n return this.fetch<TemplateContextResponse>(`w/${wid}/templates/context`, {\n method: 'POST',\n body: JSON.stringify(request),\n });\n }\n\n /**\n * Render a template with sample data for preview.\n *\n * Uses the same Jinja2 renderer as the actual template system,\n * but with sample data instead of real data.\n */\n async previewTemplate(\n wid: string,\n request: TemplatePreviewRequest\n ): Promise<TemplatePreviewResponse> {\n return this.fetch<TemplatePreviewResponse>(`w/${wid}/templates/preview`, {\n method: 'POST',\n body: JSON.stringify(request),\n });\n }\n\n /**\n * Get variables from the central variable registry.\n *\n * This provides variables defined in the single source of truth registry\n * with extended metadata including deprecation info and permission scopes.\n */\n async getVariableRegistry(\n wid: string,\n request: VariableRegistryRequest = {}\n ): Promise<VariableRegistryResponse> {\n const params = new URLSearchParams();\n if (request.eventType) {\n params.append('event_type', request.eventType);\n }\n if (request.includeDeprecated) {\n params.append('include_deprecated', 'true');\n }\n const queryString = params.toString();\n const url = queryString\n ? `w/${wid}/templates/variables/registry?${queryString}`\n : `w/${wid}/templates/variables/registry`;\n return this.fetch<VariableRegistryResponse>(url, { method: 'GET' });\n }\n}\n","import type { AbilityTypesResponse } from '../types/abilityTypes';\nimport { BaseApiClient } from './base';\n\n/**\n * API client for ability types.\n * Abilities are now managed inline with their parent objects (workflows, tasks).\n */\nexport class AbilitiesApi extends BaseApiClient {\n /**\n * List all available ability types from the registry.\n */\n async getAbilityTypes(wid: string): Promise<AbilityTypesResponse> {\n return this.fetch<AbilityTypesResponse>(`w/${wid}/abilities/types`);\n }\n}\n","import { BaseApiClient } from './base';\nimport type {\n AccessGrant,\n CreateAccessGrantRequest,\n PaginatedResponse,\n ResolveGrantRequest,\n RevokeGrantRequest,\n} from '../types';\n\nexport class AccessGrantsApi extends BaseApiClient {\n async getMyReceivedGrants(\n wid: string,\n params?: { status?: string; page?: number; pageSize?: number }\n ): Promise<PaginatedResponse<AccessGrant>> {\n const searchParams = new URLSearchParams();\n if (params?.status) searchParams.set('status', params.status);\n if (params?.page) searchParams.set('page', params.page.toString());\n if (params?.pageSize) searchParams.set('page_size', params.pageSize.toString());\n const qs = searchParams.toString();\n return this.fetch<PaginatedResponse<AccessGrant>>(\n `w/${wid}/access-grants/my/received${qs ? `?${qs}` : ''}`\n );\n }\n\n async getMyGivenGrants(\n wid: string,\n params?: { status?: string; page?: number; pageSize?: number }\n ): Promise<PaginatedResponse<AccessGrant>> {\n const searchParams = new URLSearchParams();\n if (params?.status) searchParams.set('status', params.status);\n if (params?.page) searchParams.set('page', params.page.toString());\n if (params?.pageSize) searchParams.set('page_size', params.pageSize.toString());\n const qs = searchParams.toString();\n return this.fetch<PaginatedResponse<AccessGrant>>(\n `w/${wid}/access-grants/my/given${qs ? `?${qs}` : ''}`\n );\n }\n\n async getAccessGrant(wid: string, uuid: string): Promise<AccessGrant> {\n return this.fetch<AccessGrant>(`w/${wid}/access-grants/${uuid}`);\n }\n\n async createAccessGrant(wid: string, data: CreateAccessGrantRequest): Promise<AccessGrant> {\n return this.fetch<AccessGrant>(`w/${wid}/access-grants`, {\n method: 'POST',\n body: JSON.stringify(data),\n });\n }\n\n async resolveAccessGrant(\n wid: string,\n uuid: string,\n data: ResolveGrantRequest\n ): Promise<AccessGrant> {\n return this.fetch<AccessGrant>(`w/${wid}/access-grants/${uuid}/resolve`, {\n method: 'PUT',\n body: JSON.stringify(data),\n });\n }\n\n async revokeAccessGrant(\n wid: string,\n uuid: string,\n data: RevokeGrantRequest\n ): Promise<AccessGrant> {\n return this.fetch<AccessGrant>(`w/${wid}/access-grants/${uuid}/revoke`, {\n method: 'PUT',\n body: JSON.stringify(data),\n });\n }\n\n async getAccessGrants(\n wid: string,\n params?: {\n status?: string;\n resourceType?: string;\n resourceId?: number;\n page?: number;\n pageSize?: number;\n }\n ): Promise<PaginatedResponse<AccessGrant>> {\n const searchParams = new URLSearchParams();\n if (params?.status) searchParams.set('status', params.status);\n if (params?.resourceType) searchParams.set('resource_type', params.resourceType);\n if (params?.resourceId) searchParams.set('resource_id', params.resourceId.toString());\n if (params?.page) searchParams.set('page', params.page.toString());\n if (params?.pageSize) searchParams.set('pageSize', params.pageSize.toString());\n const qs = searchParams.toString();\n return this.fetch<PaginatedResponse<AccessGrant>>(\n `w/${wid}/access-grants${qs ? `?${qs}` : ''}`\n );\n }\n\n async getMemberGrants(wid: string, memberId: number): Promise<AccessGrant[]> {\n const resp = await this.fetch<PaginatedResponse<AccessGrant>>(\n `w/${wid}/access-grants/member/${memberId}`\n );\n return resp.items;\n }\n}\n","import {\n Account,\n AccountLookupResponse,\n AccountSortField,\n AdminAccount,\n HealthMetricsRequest,\n HealthMetricsResponse,\n AdminAccountFormData,\n AdminAccountMembership,\n AdminAccountOrgMembership,\n AdminOrganization,\n AdminPhoneNumberMappingRequest,\n AdminUpdateProductRequest,\n MemberOrgView,\n AdminWorkspace,\n AdminWorkspaceFormData,\n AdminWorkspaceMemberFormData,\n BillingDashboardResponse,\n CompareWithStripeResponse,\n UsageReport,\n UsageReportRequest,\n VoiceMetricsResponse,\n CreateOrganizationRequest,\n CreateProductRequest,\n GenerateSummariesResponse,\n InboxMappingDetailResponse,\n LogoUploadRequest,\n LogoUploadResponse,\n Member,\n MemberRole,\n MergeMembersRequest,\n MergeMembersResponse,\n MissingMembershipItem,\n PaginatedResponse,\n PaginatedSubscriptionsResponse,\n PhoneNumber,\n UnmappedPhoneNumber,\n PhoneNumberMappingFormData,\n PhoneNumberMappingResponse,\n Product,\n ProvisionPlanRequest,\n ProvisionPlanResponse,\n SiteMapping,\n SiteMappingFormData,\n SortOrder,\n StripeCustomer,\n StripeCustomerCreateRequest,\n StripeCustomerUpdateRequest,\n StripePaymentMethod,\n StripeSubscriptionCreateRequest,\n StripeSubscriptionUpdateRequest,\n Subscription,\n SyncProductToStripeRequest,\n SyncProductToStripeResponse,\n SyncUsageRequest,\n SyncUsageResponse,\n ThemesListResponse,\n ProviderPhoneNumber,\n PhoneNumberStatus,\n UpdateOrganizationRequest,\n Workspace,\n WorkspaceHealthResponse,\n WorkspaceSortField,\n} from '../types';\nimport { BaseApiClient } from './base';\n\nexport class AdminApi extends BaseApiClient {\n // Admin Accounts API\n async getAccounts(options: {\n search?: string;\n createdAfter?: string;\n createdBefore?: string;\n isActive?: boolean;\n organizationId?: number;\n sortBy?: AccountSortField;\n sortOrder?: SortOrder;\n page?: number;\n pageSize?: number;\n }): Promise<PaginatedResponse<Account>> {\n const params = new URLSearchParams();\n if (options.search) params.append('search', options.search);\n if (options.createdAfter) params.append('created_after', options.createdAfter);\n if (options.createdBefore) params.append('created_before', options.createdBefore);\n if (options.sortBy) params.append('sortBy', options.sortBy);\n if (options.sortOrder) params.append('sortOrder', options.sortOrder);\n if (options.page) params.append('page', options.page.toString());\n if (options.pageSize) params.append('pageSize', options.pageSize.toString());\n if (options.isActive !== undefined) params.append('isActive', options.isActive.toString());\n if (options.organizationId !== undefined)\n params.append('organizationId', options.organizationId.toString());\n\n return this.fetch<PaginatedResponse<Account>>(`admin/accounts?${params.toString()}`);\n }\n\n async getAccountDetails(id: string | number): Promise<AdminAccount> {\n return this.fetch<AdminAccount>(`admin/accounts/${id}`);\n }\n\n async getAccountByUuid(uuid: string): Promise<AdminAccount> {\n return this.fetch<AdminAccount>(`admin/accounts/${uuid}`);\n }\n\n async getAccountMemberships(accountId: number): Promise<AdminAccountMembership[]> {\n return this.fetch<AdminAccountMembership[]>(`admin/accounts/${accountId}/memberships`);\n }\n\n async getAccountOrgMemberships(accountId: number): Promise<AdminAccountOrgMembership[]> {\n return this.fetch<AdminAccountOrgMembership[]>(`admin/accounts/${accountId}/org-memberships`);\n }\n\n async createAccountOrgMembership(\n accountId: number,\n organizationId: number,\n role: 'member' | 'admin' | 'owner' = 'member'\n ): Promise<{\n accountId: number;\n organizationId: number;\n organizationUuid: string;\n organizationName: string;\n role: string;\n message: string;\n }> {\n return this.fetch(`admin/accounts/${accountId}/org-memberships`, {\n method: 'POST',\n body: JSON.stringify({ organizationId, role }),\n });\n }\n\n async deleteAccountOrgMembership(\n accountId: number,\n organizationId: number\n ): Promise<{\n status: string;\n message: string;\n workspaceMembershipsRemoved: number;\n }> {\n return this.fetch(`admin/accounts/${accountId}/org-memberships/${organizationId}`, {\n method: 'DELETE',\n });\n }\n\n async getAccountMembership(\n accountId: number,\n workspaceId: string\n ): Promise<AdminAccountMembership> {\n return this.fetch<AdminAccountMembership>(\n `admin/accounts/${accountId}/memberships/${workspaceId}`\n );\n }\n\n async updateAccountMembership(\n accountId: number,\n workspaceId: string,\n updates: AdminWorkspaceMemberFormData\n ): Promise<AdminAccountMembership> {\n return this.fetch<AdminAccountMembership>(\n `admin/accounts/${accountId}/memberships/${workspaceId}`,\n {\n method: 'PUT',\n body: JSON.stringify(updates),\n }\n );\n }\n\n async createAccountMembership(\n accountId: number,\n workspaceId: string,\n data: { memberRoleId: number }\n ): Promise<AdminAccountMembership> {\n return this.fetch<AdminAccountMembership>(\n `admin/accounts/${accountId}/memberships/${workspaceId}`,\n {\n method: 'POST',\n body: JSON.stringify(data),\n }\n );\n }\n\n async deleteAccountMembership(accountId: number, workspaceId: string): Promise<void> {\n return this.fetch<void>(`admin/accounts/${accountId}/memberships/${workspaceId}`, {\n method: 'DELETE',\n });\n }\n\n async updateAccountAsAdmin(\n id: string | number,\n updates: AdminAccountFormData\n ): Promise<AdminAccount> {\n return this.fetch<AdminAccount>(`admin/accounts/${id}`, {\n method: 'PUT',\n body: JSON.stringify(updates),\n });\n }\n\n async createAccountAsAdmin(data: AdminAccountFormData): Promise<AdminAccount> {\n return this.fetch<AdminAccount>('admin/accounts', {\n method: 'POST',\n body: JSON.stringify(data),\n });\n }\n\n async deleteAccountAsAdmin(id: number): Promise<void> {\n return this.fetch(`admin/accounts/${id}`, {\n method: 'DELETE',\n });\n }\n\n /**\n * Look up an account by email or phone. Returns verification status.\n * Used to check if a verified account exists before creating a new one.\n */\n async lookupAccount(options: {\n email?: string;\n phone?: string;\n }): Promise<AccountLookupResponse> {\n const params = new URLSearchParams();\n if (options.email) params.append('email', options.email);\n if (options.phone) params.append('phone', options.phone);\n\n return this.fetch<AccountLookupResponse>(`admin/accounts/lookup?${params.toString()}`);\n }\n\n // Admin Organizations API\n async getOrganizations(options?: {\n search?: string;\n page?: number;\n pageSize?: number;\n }): Promise<PaginatedResponse<AdminOrganization>> {\n const params = new URLSearchParams();\n if (options?.search) params.append('search', options.search);\n if (options?.page) params.append('page', options.page.toString());\n if (options?.pageSize) params.append('pageSize', options.pageSize.toString());\n\n return this.fetch<PaginatedResponse<AdminOrganization>>(\n `admin/organizations?${params.toString()}`\n );\n }\n\n /**\n * Get organization by ID or UUID.\n * Returns different response based on user's role:\n * - Admins/Owners: AdminOrganization with full details\n * - Members: MemberOrgView with basic info and workspace list\n *\n * Use `viewType` field to determine the response type:\n * - 'admin': AdminOrganization\n * - 'member': MemberOrgView\n */\n async getOrganization(idOrUuid: number | string): Promise<AdminOrganization | MemberOrgView> {\n return this.fetch<AdminOrganization | MemberOrgView>(`o/${idOrUuid}`);\n }\n\n async createOrganization(data: CreateOrganizationRequest): Promise<AdminOrganization> {\n return this.fetch<AdminOrganization>('admin/organizations', {\n method: 'POST',\n body: JSON.stringify(data),\n });\n }\n\n async updateOrganization(\n id: number,\n data: UpdateOrganizationRequest\n ): Promise<AdminOrganization> {\n return this.fetch<AdminOrganization>(`admin/organizations/${id}`, {\n method: 'PUT',\n body: JSON.stringify(data),\n });\n }\n\n async deleteOrganization(id: number): Promise<void> {\n return this.fetch(`admin/organizations/${id}`, {\n method: 'DELETE',\n });\n }\n\n /**\n * Join an organization with a specified role (superuser only).\n * Creates or updates membership in the target org.\n * @param orgUuid - Organization UUID or numeric ID as string\n */\n async joinOrganization(\n orgUuid: string,\n role: 'member' | 'admin' | 'owner' = 'owner'\n ): Promise<{\n accountId: number;\n organizationId: number;\n organizationUuid: string;\n email: string | null;\n role: string;\n message: string;\n }> {\n return this.fetch(`admin/organizations/${orgUuid}/join`, {\n method: 'POST',\n body: JSON.stringify({ role }),\n });\n }\n\n /**\n * Leave an organization (superuser only).\n * @param orgUuid - Organization UUID or numeric ID as string\n */\n async leaveOrganization(orgUuid: string): Promise<{ status: string; message: string }> {\n return this.fetch(`admin/organizations/${orgUuid}/join`, {\n method: 'DELETE',\n });\n }\n\n async generateLogoUploadUrl(\n organizationUuid: string,\n data: LogoUploadRequest\n ): Promise<LogoUploadResponse> {\n return this.fetch<LogoUploadResponse>(`o/${organizationUuid}/logo-upload-url`, {\n method: 'POST',\n body: JSON.stringify(data),\n });\n }\n\n // Organization Members API - moved to OrgApi at /api/v2/o/{org_uuid}/members\n // See packages/client/src/api/org.ts\n\n // Organization Invitations API - moved to OrgApi at /api/v2/o/{org_uuid}/invitations\n // See packages/client/src/api/org.ts\n\n // Admin Products API\n async importProducts(workspaceId: number): Promise<void> {\n return this.fetch('admin/import-products', {\n method: 'POST',\n body: JSON.stringify({ workspaceId }),\n });\n }\n\n // ===== Product CRUD =====\n\n async createProductAsAdmin(product: CreateProductRequest): Promise<Product> {\n return this.fetch<Product>('admin/products', {\n method: 'POST',\n body: JSON.stringify(product),\n });\n }\n\n async getProductsAsAdmin(workspaceUuid?: string, productTypes?: string[]): Promise<Product[]> {\n const params = new URLSearchParams();\n if (workspaceUuid) {\n params.append('workspace_uuid', workspaceUuid);\n }\n if (productTypes && productTypes.length > 0) {\n productTypes.forEach((type) => params.append('product_types', type));\n }\n const queryString = params.toString();\n return this.fetch<Product[]>(`admin/products${queryString ? `?${queryString}` : ''}`);\n }\n\n async getProductAsAdmin(productId: number): Promise<Product> {\n return this.fetch<Product>(`admin/products/${productId}`);\n }\n\n async updateProductAsAdmin(\n product_id: number,\n product: AdminUpdateProductRequest\n ): Promise<Product> {\n return this.fetch<Product>(`admin/products/${product_id}`, {\n method: 'PUT',\n body: JSON.stringify(product),\n });\n }\n\n async deleteProductAsAdmin(productId: number): Promise<{ message: string }> {\n return this.fetch<{ message: string }>(`admin/products/${productId}`, {\n method: 'DELETE',\n });\n }\n\n // Admin Workspace API\n async getWorkspacesAsAdmin(\n options: {\n page?: number;\n pageSize?: number;\n sortBy?: WorkspaceSortField;\n sortOrder?: SortOrder;\n search?: string;\n isReseller?: boolean;\n organizationId?: number;\n } = {}\n ): Promise<PaginatedResponse<AdminWorkspace>> {\n const params = new URLSearchParams();\n if (options.page !== undefined) params.append('page', options.page.toString());\n if (options.pageSize !== undefined) params.append('pageSize', options.pageSize.toString());\n if (options.sortBy) params.append('sortBy', options.sortBy);\n if (options.sortOrder) params.append('sortOrder', options.sortOrder);\n if (options.search) params.append('search', options.search);\n if (options.isReseller !== undefined)\n params.append('isReseller', options.isReseller.toString());\n if (options.organizationId !== undefined)\n params.append('organizationId', options.organizationId.toString());\n\n return this.fetch<PaginatedResponse<AdminWorkspace>>(`admin/workspaces?${params.toString()}`);\n }\n\n async getWorkspaceAsAdmin(wid: string): Promise<AdminWorkspace> {\n return this.fetch<AdminWorkspace>(`admin/workspaces/${wid}`);\n }\n\n async getWorkspaceByNumericIdAsAdmin(workspace_id: number): Promise<AdminWorkspace> {\n return this.fetch<AdminWorkspace>(`admin/workspaces/id/${workspace_id}`);\n }\n\n async createWorkspaceAsAdmin(ws: AdminWorkspaceFormData): Promise<Workspace> {\n return this.fetch<Workspace>('admin/workspaces', {\n method: 'POST',\n body: JSON.stringify(ws),\n });\n }\n\n async updateWorkspaceAsAdmin(wid: string, ws: AdminWorkspaceFormData): Promise<Workspace> {\n return this.fetch<Workspace>(`admin/workspaces/${wid}`, {\n method: 'PUT',\n body: JSON.stringify(ws),\n });\n }\n\n async deleteWorkspaceAsAdmin(wid: string): Promise<void> {\n return this.fetch(`admin/workspaces/${wid}`, {\n method: 'DELETE',\n });\n }\n\n async createSchemaAsAdmin(wid: string): Promise<AdminWorkspace> {\n return this.fetch(`admin/workspaces/${wid}/provision/create`, {\n method: 'POST',\n });\n }\n\n async migrateSchemaAsAdmin(wid: string): Promise<AdminWorkspace> {\n return this.fetch(`admin/workspaces/${wid}/provision/migrate`, {\n method: 'POST',\n });\n }\n\n async provisionWorkspaceAsAdmin(wid: string): Promise<AdminWorkspace> {\n return this.fetch(`admin/workspaces/${wid}/provision`, {\n method: 'POST',\n });\n }\n\n async refreshProvisionStatusAsAdmin(wid: string): Promise<AdminWorkspace> {\n return this.fetch(`admin/workspaces/${wid}/provision/refresh`, {\n method: 'POST',\n });\n }\n\n async enableMaintenanceMode(wid: string): Promise<AdminWorkspace> {\n return this.fetch(`admin/workspaces/${wid}/maintenance`, {\n method: 'PUT',\n });\n }\n\n async disableMaintenanceMode(wid: string): Promise<AdminWorkspace> {\n return this.fetch(`admin/workspaces/${wid}/maintenance`, {\n method: 'DELETE',\n });\n }\n\n // ===== Workspace Health Check =====\n\n async getWorkspaceHealth(workspaceUuid: string): Promise<WorkspaceHealthResponse> {\n return this.fetch<WorkspaceHealthResponse>(`admin/workspaces/${workspaceUuid}/health`);\n }\n\n async provisionPlanFeatures(\n workspaceUuid: string,\n request?: ProvisionPlanRequest\n ): Promise<ProvisionPlanResponse> {\n return this.fetch<ProvisionPlanResponse>(`admin/workspaces/${workspaceUuid}/provision-plan`, {\n method: 'POST',\n body: JSON.stringify(request || {}),\n });\n }\n\n async mergeMembers(wid: string, request: MergeMembersRequest): Promise<MergeMembersResponse> {\n return this.fetch<MergeMembersResponse>(`admin/workspaces/${wid}/merge-members`, {\n method: 'POST',\n body: JSON.stringify(request),\n });\n }\n\n async createPhoneNumberMapping(\n wid: string,\n mapping: PhoneNumberMappingFormData\n ): Promise<PhoneNumberMappingResponse> {\n return this.fetch<PhoneNumberMappingResponse>(\n `admin/workspaces/${wid}/phone-number-mappings`,\n {\n method: 'POST',\n body: JSON.stringify(mapping),\n }\n );\n }\n\n async deletePhoneNumberMapping(wid: string, phoneNumber: string): Promise<void> {\n return this.fetch(`admin/workspaces/${wid}/phone-number-mappings/${phoneNumber}`, {\n method: 'DELETE',\n });\n }\n\n async getAdminWorkspaceMember(wid: string): Promise<Member> {\n return this.fetch(`admin/workspaces/${wid}/me`, {\n method: 'GET',\n });\n }\n\n async createAdminWorkspaceMember(\n wid: string,\n data: AdminWorkspaceMemberFormData\n ): Promise<void> {\n return this.fetch(`admin/workspaces/${wid}/me`, {\n method: 'POST',\n body: JSON.stringify(data),\n });\n }\n\n async updateAdminWorkspaceMember(\n wid: string,\n data: AdminWorkspaceMemberFormData\n ): Promise<void> {\n return this.fetch(`admin/workspaces/${wid}/me`, {\n method: 'PUT',\n body: JSON.stringify(data),\n });\n }\n\n async getAdminWorkspaceMemberRoles(wid: string): Promise<MemberRole[]> {\n return this.fetch<MemberRole[]>(`admin/workspaces/${wid}/member-roles`);\n }\n\n // Admin Phone Number Mappings API\n async getPhoneNumberMappings(\n options: {\n page?: number;\n pageSize?: number;\n search?: string;\n workspaceId?: number;\n sortBy?: string;\n sortDirection?: string;\n } = {}\n ): Promise<PaginatedResponse<PhoneNumberMappingResponse>> {\n const params = new URLSearchParams();\n if (options.page) params.append('page', options.page.toString());\n if (options.pageSize) params.append('pageSize', options.pageSize.toString());\n if (options.search) params.append('search', options.search);\n if (options.workspaceId) params.append('workspaceId', options.workspaceId.toString());\n if (options.sortBy) params.append('sortBy', options.sortBy);\n if (options.sortDirection) params.append('sortDirection', options.sortDirection);\n\n return this.fetch<PaginatedResponse<PhoneNumberMappingResponse>>(\n `admin/phone-mappings${params.toString() ? `?${params.toString()}` : ''}`\n );\n }\n\n async getPhoneNumberMapping(id: number): Promise<PhoneNumberMappingResponse> {\n return this.fetch<PhoneNumberMappingResponse>(`admin/phone-mappings/${id}`);\n }\n\n async createAdminPhoneNumberMapping(\n data: AdminPhoneNumberMappingRequest\n ): Promise<PhoneNumberMappingResponse> {\n return this.fetch<PhoneNumberMappingResponse>(`admin/phone-mappings`, {\n method: 'POST',\n body: JSON.stringify(data),\n });\n }\n\n async deleteAdminPhoneNumberMapping(id: number): Promise<void> {\n return this.fetch<void>(`admin/phone-mappings/${id}`, {\n method: 'DELETE',\n });\n }\n\n async getAvailableWorkspacesForPhone(\n mappingId: number\n ): Promise<Array<{ id: number; uuid: string; name: string }>> {\n return this.fetch<Array<{ id: number; uuid: string; name: string }>>(\n `admin/phone-mappings/${mappingId}/available-workspaces`\n );\n }\n\n async remapPhoneNumber(\n mappingId: number,\n newWorkspaceId: number\n ): Promise<PhoneNumberMappingResponse> {\n return this.fetch<PhoneNumberMappingResponse>(`admin/phone-mappings/${mappingId}/remap`, {\n method: 'PUT',\n body: JSON.stringify({ newWorkspaceId }),\n });\n }\n\n async getUnmappedPhoneNumbers(): Promise<UnmappedPhoneNumber[]> {\n return this.fetch<UnmappedPhoneNumber[]>(`admin/phone-numbers/unmapped`);\n }\n\n async getWorkspaceUnmappedPhoneNumbers(workspaceId: number): Promise<UnmappedPhoneNumber[]> {\n return this.fetch<UnmappedPhoneNumber[]>(\n `admin/phone-numbers/workspace/${workspaceId}/unmapped`\n );\n }\n\n async getWorkspacePhoneNumbersAsAdmin(workspaceId: number): Promise<PhoneNumber[]> {\n return this.fetch<PhoneNumber[]>(`admin/workspace/${workspaceId}/phone-numbers`);\n }\n\n // Phone Numbers API (Provider phone numbers from Twilio, AWS, etc.)\n async getProviderPhoneNumbers(\n options: {\n search?: string;\n status?: PhoneNumberStatus;\n provider?: string;\n sortBy?: string;\n sortDirection?: string;\n page?: number;\n pageSize?: number;\n } = {}\n ): Promise<PaginatedResponse<ProviderPhoneNumber>> {\n const params = new URLSearchParams();\n if (options.page) params.append('page', options.page.toString());\n if (options.pageSize) params.append('pageSize', options.pageSize.toString());\n if (options.search) params.append('search', options.search);\n if (options.status) params.append('status', options.status);\n if (options.provider) params.append('provider', options.provider);\n if (options.sortBy) params.append('sortBy', options.sortBy);\n if (options.sortDirection) params.append('sortDirection', options.sortDirection);\n\n return this.fetch<PaginatedResponse<ProviderPhoneNumber>>(\n `admin/phone-numbers${params.toString() ? `?${params.toString()}` : ''}`\n );\n }\n\n async getProviderPhoneNumber(id: number): Promise<ProviderPhoneNumber> {\n return this.fetch<ProviderPhoneNumber>(`admin/phone-numbers/${id}`);\n }\n\n async updatePhoneNumberStatus(\n id: number,\n status: PhoneNumberStatus\n ): Promise<ProviderPhoneNumber> {\n return this.fetch<ProviderPhoneNumber>(`admin/phone-numbers/${id}/status`, {\n method: 'PUT',\n body: JSON.stringify({ status }),\n });\n }\n\n async syncPhoneNumbersFromProviders(): Promise<{\n status: string;\n message: string;\n syncedCount: number;\n allocatedCount: number;\n fixedCount: number;\n }> {\n return this.fetch<{\n status: string;\n message: string;\n syncedCount: number;\n allocatedCount: number;\n fixedCount: number;\n }>(`admin/phone-numbers/sync-from-providers`, {\n method: 'POST',\n });\n }\n\n async approvePhoneNumberRequest(phoneNumberId: number): Promise<ProviderPhoneNumber> {\n return this.fetch<ProviderPhoneNumber>(`admin/phone-numbers/${phoneNumberId}/approve`, {\n method: 'POST',\n });\n }\n\n async rejectPhoneNumberRequest(phoneNumberId: number): Promise<ProviderPhoneNumber> {\n return this.fetch<ProviderPhoneNumber>(`admin/phone-numbers/${phoneNumberId}/reject`, {\n method: 'POST',\n });\n }\n\n // Site Mappings API\n async getSiteMappings(options?: {\n search?: string;\n page?: number;\n pageSize?: number;\n }): Promise<PaginatedResponse<SiteMapping>> {\n const queryParams = new URLSearchParams();\n if (options?.search) queryParams.append('search', options.search);\n if (options?.page) queryParams.append('page', options.page.toString());\n if (options?.pageSize) queryParams.append('pageSize', options.pageSize.toString());\n\n const queryString = queryParams.toString();\n const url = `admin/site-mappings${queryString ? `?${queryString}` : ''}`;\n\n return this.fetch<PaginatedResponse<SiteMapping>>(url);\n }\n\n async getSiteMapping(siteId: number): Promise<SiteMapping> {\n return this.fetch<SiteMapping>(`admin/site-mappings/${siteId}`);\n }\n\n async updateSiteMapping(siteId: number, data: SiteMappingFormData): Promise<SiteMapping> {\n return this.fetch<SiteMapping>(`admin/site-mappings/${siteId}`, {\n method: 'PUT',\n body: JSON.stringify(data),\n });\n }\n\n async updateSiteMappingWorkspace(siteId: number, workspaceId: number): Promise<SiteMapping> {\n return this.updateSiteMapping(siteId, {\n workspaceId,\n siteUuid: '', // These fields are required by the type but will be ignored on the server\n });\n }\n\n async adminDeleteSiteMapping(siteId: number): Promise<void> {\n return this.fetch<void>(`admin/site-mappings/${siteId}`, {\n method: 'DELETE',\n });\n }\n\n async createSiteMapping(mapping: SiteMappingFormData): Promise<SiteMapping> {\n return this.fetch<SiteMapping>(`admin/site-mappings`, {\n method: 'POST',\n body: JSON.stringify(mapping),\n });\n }\n\n // Keep for backward compatibility\n async createOrUpdateSiteMapping(\n wid: string,\n mapping: SiteMappingFormData\n ): Promise<SiteMapping> {\n return this.fetch<SiteMapping>(`admin/workspaces/${wid}/site-mappings`, {\n method: 'POST',\n body: JSON.stringify(mapping),\n });\n }\n\n async deleteSiteMapping(wid: string, siteUuid: string): Promise<void> {\n return this.fetch(`admin/workspaces/${wid}/site-mappings/${siteUuid}`, {\n method: 'DELETE',\n });\n }\n\n // Admin Inbox Mappings API\n async getInboxMappings(\n options: {\n page?: number;\n pageSize?: number;\n search?: string;\n workspaceId?: number;\n } = {}\n ): Promise<PaginatedResponse<InboxMappingDetailResponse>> {\n const params = new URLSearchParams();\n if (options.page) params.append('page', options.page.toString());\n if (options.pageSize) params.append('pageSize', options.pageSize.toString());\n if (options.search) params.append('search', options.search);\n if (options.workspaceId) params.append('workspaceId', options.workspaceId.toString());\n\n return this.fetch<PaginatedResponse<InboxMappingDetailResponse>>(\n `admin/inbox-mappings${params.toString() ? `?${params.toString()}` : ''}`\n );\n }\n\n async getInboxMapping(id: number): Promise<InboxMappingDetailResponse> {\n return this.fetch<InboxMappingDetailResponse>(`admin/inbox-mappings/${id}`);\n }\n\n async updateInboxMapping(id: number, workspaceId: number): Promise<InboxMappingDetailResponse> {\n return this.fetch<InboxMappingDetailResponse>(`admin/inbox-mappings/${id}`, {\n method: 'PUT',\n body: JSON.stringify({ workspaceId }),\n });\n }\n\n async deleteAdminInboxMapping(id: number): Promise<void> {\n return this.fetch(`admin/inbox-mappings/${id}`, {\n method: 'DELETE',\n });\n }\n\n // Evaluation API\n async generateChatSummaries(options: {\n afterDate?: Date;\n onlyWithoutSummaries?: boolean;\n }): Promise<GenerateSummariesResponse> {\n return this.fetch<GenerateSummariesResponse>('admin/generate-summaries', {\n method: 'POST',\n body: JSON.stringify({\n after_date: options.afterDate\n ? options.afterDate.toISOString().split('T')[0] +\n 'T' +\n options.afterDate.toTimeString().split(' ')[0]\n : undefined,\n only_without_summaries: options.onlyWithoutSummaries ?? true,\n }),\n });\n }\n\n async executeQuery(options: { query: string; workspaceUuid?: string }): Promise<{\n columns: string[];\n rows: any[][];\n rowCount: number;\n }> {\n return this.fetch<{\n columns: string[];\n rows: any[][];\n rowCount: number;\n }>('admin/execute-query', {\n method: 'POST',\n body: JSON.stringify({\n query: options.query,\n workspace_uuid: options.workspaceUuid,\n }),\n });\n }\n\n async triggerPeriodicJob(jobName: string): Promise<{\n success: boolean;\n message: string;\n jobName: string;\n }> {\n return this.fetch<{\n success: boolean;\n message: string;\n jobName: string;\n }>('admin/trigger-periodic-job', {\n method: 'POST',\n body: JSON.stringify({\n job_name: jobName,\n }),\n });\n }\n\n // Admin Themes API\n async listAllThemes(): Promise<ThemesListResponse> {\n return this.fetch<ThemesListResponse>('admin/themes/list');\n }\n\n // Missing Memberships API\n async getMissingMemberships(workspaceId: string): Promise<MissingMembershipItem[]> {\n return this.fetch<MissingMembershipItem[]>(\n `admin/workspaces/${workspaceId}/missing-memberships`\n );\n }\n\n async linkMissingMembership(\n workspaceId: string,\n memberId: number,\n accountId: number\n ): Promise<{ success: boolean; message: string }> {\n return this.fetch<{ success: boolean; message: string }>(\n `admin/workspaces/${workspaceId}/link-membership?member_id=${memberId}&account_id=${accountId}`,\n {\n method: 'POST',\n }\n );\n }\n\n // Bulk Phone Classification API\n async startBulkPhoneClassification(\n workspaceUuid: string,\n includeUnknown: boolean = false\n ): Promise<{\n success: boolean;\n message: string;\n job_id: string;\n workspace_uuid: string;\n include_unknown: boolean;\n }> {\n const params = new URLSearchParams();\n params.append('include_unknown', includeUnknown.toString());\n\n return this.fetch<{\n success: boolean;\n message: string;\n job_id: string;\n workspace_uuid: string;\n include_unknown: boolean;\n }>(`admin/workspaces/${workspaceUuid}/bulk-classify-phones?${params.toString()}`, {\n method: 'POST',\n });\n }\n\n // Bulk TOS Acceptance API\n async startBulkTOSAcceptance(workspaceUuid: string): Promise<{\n success: boolean;\n message: string;\n updated_count: number;\n workspace_uuid: string;\n }> {\n return this.fetch<{\n success: boolean;\n message: string;\n updated_count: number;\n workspace_uuid: string;\n }>(`admin/workspaces/${workspaceUuid}/bulk-accept-tos`, {\n method: 'POST',\n });\n }\n\n // Token Usage Backfill API\n async startTokenUsageBackfill(workspaceUuid: string): Promise<{\n success: boolean;\n message: string;\n job_id: string;\n workspace_uuid: string;\n }> {\n return this.fetch<{\n success: boolean;\n message: string;\n job_id: string;\n workspace_uuid: string;\n }>(`admin/workspaces/${workspaceUuid}/backfill-token-usage`, {\n method: 'POST',\n });\n }\n\n // Update chat message content\n async updateChatMessage(\n workspaceUuid: string,\n chatId: number,\n messageId: string,\n content: string\n ): Promise<{\n success: boolean;\n message: string;\n messageId: string;\n chatId: number;\n workspaceUuid: string;\n }> {\n return this.fetch<{\n success: boolean;\n message: string;\n messageId: string;\n chatId: number;\n workspaceUuid: string;\n }>(`admin/workspaces/${workspaceUuid}/chats/${chatId}/messages/${messageId}`, {\n method: 'POST',\n body: JSON.stringify({ content }),\n });\n }\n\n // ===== Stripe Customer Management =====\n\n async getStripeCustomer(accountId: number): Promise<StripeCustomer> {\n return this.fetch<StripeCustomer>(`admin/accounts/${accountId}/stripe/customer`);\n }\n\n async createStripeCustomer(\n accountId: number,\n data: StripeCustomerCreateRequest\n ): Promise<StripeCustomer> {\n return this.fetch<StripeCustomer>(`admin/accounts/${accountId}/stripe/customer`, {\n method: 'POST',\n body: JSON.stringify(data),\n });\n }\n\n async updateStripeCustomer(\n accountId: number,\n data: StripeCustomerUpdateRequest\n ): Promise<StripeCustomer> {\n return this.fetch<StripeCustomer>(`admin/accounts/${accountId}/stripe/customer`, {\n method: 'PUT',\n body: JSON.stringify(data),\n });\n }\n\n // ===== Stripe Subscription Management =====\n\n async getStripeSubscriptions(accountId: number): Promise<Subscription[]> {\n return this.fetch<Subscription[]>(`admin/accounts/${accountId}/stripe/subscriptions`);\n }\n\n async createStripeSubscription(\n accountId: number,\n data: StripeSubscriptionCreateRequest\n ): Promise<Subscription> {\n return this.fetch<Subscription>(`admin/accounts/${accountId}/stripe/subscriptions`, {\n method: 'POST',\n body: JSON.stringify(data),\n });\n }\n\n async updateStripeSubscription(\n accountId: number,\n subscriptionId: string,\n data: StripeSubscriptionUpdateRequest\n ): Promise<Subscription> {\n return this.fetch<Subscription>(\n `admin/accounts/${accountId}/stripe/subscriptions/${subscriptionId}`,\n {\n method: 'PUT',\n body: JSON.stringify(data),\n }\n );\n }\n\n async cancelStripeSubscription(\n accountId: number,\n subscriptionId: string\n ): Promise<{ message: string; status: string }> {\n return this.fetch<{ message: string; status: string }>(\n `admin/accounts/${accountId}/stripe/subscriptions/${subscriptionId}`,\n {\n method: 'DELETE',\n }\n );\n }\n\n async provisionWorkspaceForSubscription(\n accountId: number,\n subscriptionId: string\n ): Promise<AdminWorkspace> {\n return this.fetch<AdminWorkspace>(\n `admin/accounts/${accountId}/stripe/subscriptions/${subscriptionId}/provision`,\n {\n method: 'POST',\n }\n );\n }\n\n async associateWorkspaceWithSubscription(\n accountId: number,\n subscriptionId: string,\n workspaceId: number\n ): Promise<Subscription> {\n return this.fetch<Subscription>(\n `admin/accounts/${accountId}/stripe/subscriptions/${subscriptionId}/associate?workspace_id=${workspaceId}`,\n {\n method: 'POST',\n }\n );\n }\n\n async createSubscriptionPaymentLink(\n accountId: number,\n subscriptionId: string\n ): Promise<{\n needsPayment: boolean;\n paymentUrl?: string;\n amountDue?: number;\n currency?: string;\n status: string;\n invoiceId?: string;\n invoiceStatus?: string;\n dueDate?: number;\n message?: string;\n }> {\n return this.fetch<{\n needsPayment: boolean;\n paymentUrl?: string;\n amountDue?: number;\n currency?: string;\n status: string;\n invoiceId?: string;\n invoiceStatus?: string;\n dueDate?: number;\n message?: string;\n }>(`admin/accounts/${accountId}/stripe/subscriptions/${subscriptionId}/payment-link`, {\n method: 'POST',\n });\n }\n\n // ===== Stripe Payment Methods Management =====\n\n async createSetupIntent(accountId: number): Promise<{\n clientSecret: string;\n setupIntentId: string;\n status: string;\n }> {\n return this.fetch<{\n clientSecret: string;\n setupIntentId: string;\n status: string;\n }>(`admin/accounts/${accountId}/stripe/setup-intent`, {\n method: 'POST',\n });\n }\n\n async getStripePaymentMethods(accountId: number): Promise<StripePaymentMethod[]> {\n return this.fetch<StripePaymentMethod[]>(\n `admin/accounts/${accountId}/stripe/payment-methods`\n );\n }\n\n async attachStripePaymentMethod(\n accountId: number,\n paymentMethodId: string,\n setAsDefault: boolean = false\n ): Promise<{\n success: boolean;\n message: string;\n paymentMethodId: string;\n type: string;\n }> {\n return this.fetch<{\n success: boolean;\n message: string;\n paymentMethodId: string;\n type: string;\n }>(`admin/accounts/${accountId}/stripe/payment-methods/${paymentMethodId}/attach`, {\n method: 'POST',\n body: JSON.stringify({ setAsDefault }),\n });\n }\n\n async detachStripePaymentMethod(\n accountId: number,\n paymentMethodId: string\n ): Promise<{ success: string; message: string }> {\n return this.fetch<{ success: string; message: string }>(\n `admin/accounts/${accountId}/stripe/payment-methods/${paymentMethodId}`,\n {\n method: 'DELETE',\n }\n );\n }\n\n async setDefaultStripePaymentMethod(\n accountId: number,\n paymentMethodId: string\n ): Promise<{ success: string; message: string }> {\n return this.fetch<{ success: string; message: string }>(\n `admin/accounts/${accountId}/stripe/payment-methods/${paymentMethodId}/set-default`,\n {\n method: 'PUT',\n }\n );\n }\n\n // ===== Workspace Organization Migration =====\n\n async previewWorkspaceOrganizationChange(\n workspaceUuid: string,\n targetOrganizationId: number,\n newCreatorId: number\n ): Promise<{\n targetOrganization: { id: number; name: string };\n newCreator: { id: number; name: string; email: string };\n currentOrganization: { id: number | null; name: string | null };\n impact: {\n accountsToMove: number;\n accountsToDuplicate: number;\n accountsToRemap: number;\n totalMembers: number;\n };\n details: {\n movableAccounts: Array<{\n id: number;\n uuid: string;\n name: string;\n email: string | null;\n phone: string | null;\n }>;\n duplicateAccounts: Array<{\n id: number;\n uuid: string;\n name: string;\n email: string | null;\n phone: string | null;\n }>;\n remappableAccounts: Array<{\n currentAccount: {\n id: number;\n uuid: string;\n name: string;\n email: string | null;\n phone: string | null;\n };\n targetAccount: {\n id: number;\n uuid: string;\n name: string;\n email: string | null;\n phone: string | null;\n };\n }>;\n };\n }> {\n return this.fetch<{\n targetOrganization: { id: number; name: string };\n newCreator: { id: number; name: string; email: string };\n currentOrganization: { id: number | null; name: string | null };\n impact: {\n accountsToMove: number;\n accountsToDuplicate: number;\n accountsToRemap: number;\n totalMembers: number;\n };\n details: {\n movableAccounts: Array<{\n id: number;\n uuid: string;\n name: string;\n email: string | null;\n phone: string | null;\n }>;\n duplicateAccounts: Array<{\n id: number;\n uuid: string;\n name: string;\n email: string | null;\n phone: string | null;\n }>;\n remappableAccounts: Array<{\n currentAccount: {\n id: number;\n uuid: string;\n name: string;\n email: string | null;\n phone: string | null;\n };\n targetAccount: {\n id: number;\n uuid: string;\n name: string;\n email: string | null;\n phone: string | null;\n };\n }>;\n };\n }>(`admin/workspaces/${workspaceUuid}/change-org/preview`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n targetOrganizationId,\n newCreatorId,\n }),\n });\n }\n\n async changeWorkspaceOrganization(\n workspaceUuid: string,\n targetOrganizationId: number,\n newCreatorId: number\n ): Promise<{\n success: boolean;\n workspace: {\n uuid: string;\n name: string;\n organizationId: number;\n creatorId: number;\n };\n migration: {\n accountsMoved: number;\n accountsCreated: number;\n accountsRemapped: number;\n };\n }> {\n return this.fetch<{\n success: boolean;\n workspace: {\n uuid: string;\n name: string;\n organizationId: number;\n creatorId: number;\n };\n migration: {\n accountsMoved: number;\n accountsCreated: number;\n accountsRemapped: number;\n };\n }>(`admin/workspaces/${workspaceUuid}/change-org`, {\n method: 'POST',\n body: JSON.stringify({\n targetOrganizationId,\n newCreatorId,\n }),\n });\n }\n\n // ===== Stripe Invoice Management =====\n\n async createStripeInvoice(\n accountId: number,\n data: {\n customer: string;\n description?: string;\n collectionMethod: 'charge_automatically' | 'send_invoice';\n daysUntilDue?: number;\n autoAdvance?: boolean;\n metadata?: Record<string, string>;\n }\n ): Promise<{\n id: string;\n number: string;\n status: string;\n collectionMethod: string;\n amountDue: number;\n amountPaid: number;\n amountRemaining: number;\n currency: string;\n created: number;\n dueDate: number | null;\n paid: boolean;\n hostedInvoiceUrl: string | null;\n invoicePdf: string | null;\n customerEmail: string | null;\n description: string | null;\n }> {\n return this.fetch<{\n id: string;\n number: string;\n status: string;\n collectionMethod: string;\n amountDue: number;\n amountPaid: number;\n amountRemaining: number;\n currency: string;\n created: number;\n dueDate: number | null;\n paid: boolean;\n hostedInvoiceUrl: string | null;\n invoicePdf: string | null;\n customerEmail: string | null;\n description: string | null;\n }>(`admin/accounts/${accountId}/stripe/invoices`, {\n method: 'POST',\n body: JSON.stringify({\n customer: data.customer,\n description: data.description,\n collection_method: data.collectionMethod,\n days_until_due: data.daysUntilDue,\n auto_advance: data.autoAdvance,\n metadata: data.metadata,\n }),\n });\n }\n\n async getStripeInvoices(\n accountId: number,\n options?: { limit?: number; startingAfter?: string }\n ): Promise<\n Array<{\n id: string;\n number: string;\n status: string;\n collectionMethod: string;\n amountDue: number;\n amountPaid: number;\n amountRemaining: number;\n currency: string;\n created: number;\n dueDate: number | null;\n paid: boolean;\n hostedInvoiceUrl: string | null;\n invoicePdf: string | null;\n description: string | null;\n periodStart: number | null;\n periodEnd: number | null;\n }>\n > {\n const params = new URLSearchParams();\n if (options?.limit) params.append('limit', options.limit.toString());\n if (options?.startingAfter) params.append('starting_after', options.startingAfter);\n\n return this.fetch<\n Array<{\n id: string;\n number: string;\n status: string;\n collectionMethod: string;\n amountDue: number;\n amountPaid: number;\n amountRemaining: number;\n currency: string;\n created: number;\n dueDate: number | null;\n paid: boolean;\n hostedInvoiceUrl: string | null;\n invoicePdf: string | null;\n description: string | null;\n periodStart: number | null;\n periodEnd: number | null;\n }>\n >(`admin/accounts/${accountId}/stripe/invoices?${params.toString()}`);\n }\n\n async getStripeUpcomingInvoice(\n accountId: number,\n subscriptionId?: string\n ): Promise<{\n amountDue: number;\n amountPaid: number;\n amountRemaining: number;\n currency: string;\n periodStart: number;\n periodEnd: number;\n subtotal: number;\n tax: number;\n total: number;\n lineItems: Array<{\n id: string;\n description: string | null;\n amount: number;\n currency: string;\n quantity: number;\n unitAmount: number;\n productName: string | null;\n productDescription: string | null;\n period: {\n start: number;\n end: number;\n };\n }>;\n customer: string;\n subscription: string | null;\n }> {\n const params = new URLSearchParams();\n if (subscriptionId) params.append('subscription_id', subscriptionId);\n\n return this.fetch<{\n amountDue: number;\n amountPaid: number;\n amountRemaining: number;\n currency: string;\n periodStart: number;\n periodEnd: number;\n subtotal: number;\n tax: number;\n total: number;\n lineItems: Array<{\n id: string;\n description: string | null;\n amount: number;\n currency: string;\n quantity: number;\n unitAmount: number;\n productName: string | null;\n productDescription: string | null;\n period: {\n start: number;\n end: number;\n };\n }>;\n customer: string;\n subscription: string | null;\n }>(`admin/accounts/${accountId}/stripe/upcoming-invoice?${params.toString()}`);\n }\n\n // Billing Dashboard API\n async getWorkspaceBillingDashboard(workspaceUuid: string): Promise<BillingDashboardResponse> {\n return this.fetch<BillingDashboardResponse>(\n `admin/workspaces/${workspaceUuid}/billing-dashboard`\n );\n }\n\n async syncWorkspaceUsageToStripe(\n workspaceUuid: string,\n request?: SyncUsageRequest\n ): Promise<SyncUsageResponse> {\n return this.fetch<SyncUsageResponse>(`admin/workspaces/${workspaceUuid}/usage/sync`, {\n method: 'POST',\n body: JSON.stringify(request || {}),\n });\n }\n\n // Product Stripe Sync API\n async compareProductsWithStripe(workspaceUuid?: string): Promise<CompareWithStripeResponse> {\n const params = workspaceUuid ? `?workspace_uuid=${encodeURIComponent(workspaceUuid)}` : '';\n return this.fetch<CompareWithStripeResponse>(`admin/products/compare-stripe${params}`);\n }\n\n async syncProductToStripe(\n productId: number,\n request?: SyncProductToStripeRequest\n ): Promise<SyncProductToStripeResponse> {\n return this.fetch<SyncProductToStripeResponse>(`admin/products/${productId}/sync-stripe`, {\n method: 'POST',\n body: JSON.stringify({ ...request, productId }),\n });\n }\n\n // Search Stripe products\n async searchStripeProducts(\n query: string,\n limit: number = 10\n ): Promise<\n Array<{\n id: string;\n name: string;\n description: string | null;\n active: boolean;\n created: number;\n metadata: Record<string, string>;\n }>\n > {\n const params = new URLSearchParams({ query, limit: limit.toString() });\n return this.fetch<\n Array<{\n id: string;\n name: string;\n description: string | null;\n active: boolean;\n created: number;\n metadata: Record<string, string>;\n }>\n >(`admin/products/stripe/search?${params.toString()}`);\n }\n\n // ===== Subscriptions API =====\n\n async getSubscriptionsAsAdmin(options?: {\n productId?: number;\n page?: number;\n pageSize?: number;\n }): Promise<PaginatedSubscriptionsResponse> {\n const params = new URLSearchParams();\n if (options?.productId) params.append('product_id', options.productId.toString());\n if (options?.page) params.append('page', options.page.toString());\n if (options?.pageSize) params.append('page_size', options.pageSize.toString());\n const queryString = params.toString();\n return this.fetch<PaginatedSubscriptionsResponse>(\n `admin/subscriptions${queryString ? `?${queryString}` : ''}`\n );\n }\n\n // ===== Usage API =====\n\n async getUsageReport(request: UsageReportRequest): Promise<UsageReport> {\n return this.fetch<UsageReport>('admin/usage', {\n method: 'POST',\n body: JSON.stringify(request),\n });\n }\n\n // Voice Metrics API\n async getVoiceMetrics(options?: {\n hours?: number;\n period?: number;\n workspace_uuid?: string;\n organization_id?: number;\n engine?: string;\n channel?: string;\n }): Promise<VoiceMetricsResponse> {\n const params = new URLSearchParams();\n if (options?.hours) params.append('hours', options.hours.toString());\n if (options?.period) params.append('period', options.period.toString());\n if (options?.workspace_uuid) params.append('workspace_uuid', options.workspace_uuid);\n if (options?.organization_id != null)\n params.append('organization_id', options.organization_id.toString());\n if (options?.engine) params.append('engine', options.engine);\n if (options?.channel) params.append('channel', options.channel);\n const qs = params.toString();\n return this.fetch<VoiceMetricsResponse>(`admin/voice-metrics${qs ? `?${qs}` : ''}`);\n }\n\n // Health Dashboard API\n async getHealthMetrics(request: HealthMetricsRequest): Promise<HealthMetricsResponse> {\n return this.fetch<HealthMetricsResponse>('admin/health/metrics', {\n method: 'POST',\n body: JSON.stringify(request),\n });\n }\n}\n","import { BaseApiClient } from './base';\nimport {\n Agent,\n CreateAgentRequest,\n UpdateAgentRequest,\n PaginatedResponse,\n SortOrder,\n} from '../types';\n\nexport type AgentSortField = 'createdAt' | 'updatedAt' | 'name';\n\nexport class AgentsApi extends BaseApiClient {\n async getAgents(\n wid: string,\n options: {\n page?: number;\n pageSize?: number;\n sortBy?: AgentSortField;\n sortOrder?: SortOrder;\n search?: string;\n includeArchived?: boolean;\n } = {}\n ): Promise<PaginatedResponse<Agent>> {\n const params = new URLSearchParams();\n if (options.page) params.append('page', options.page.toString());\n if (options.pageSize) params.append('pageSize', options.pageSize.toString());\n if (options.sortBy) params.append('sortBy', options.sortBy);\n if (options.sortOrder) params.append('sortOrder', options.sortOrder);\n if (options.search) params.append('search', options.search);\n if (options.includeArchived)\n params.append('includeArchived', options.includeArchived.toString());\n\n return this.fetch<PaginatedResponse<Agent>>(\n `w/${wid}/agents${params.toString() ? `?${params.toString()}` : ''}`\n );\n }\n\n async getAgent(wid: string, id: number): Promise<Agent> {\n return this.fetch<Agent>(`w/${wid}/agents/${id}`);\n }\n\n async createAgent(wid: string, agent: CreateAgentRequest): Promise<Agent> {\n return this.fetch<Agent>(`w/${wid}/agents`, {\n method: 'POST',\n body: JSON.stringify(agent),\n });\n }\n\n async updateAgent(wid: string, id: number, agent: UpdateAgentRequest): Promise<Agent> {\n return this.fetch<Agent>(`w/${wid}/agents/${id}`, {\n method: 'PUT',\n body: JSON.stringify(agent),\n });\n }\n\n async deleteAgent(wid: string, id: number, force?: boolean): Promise<void> {\n const params = force ? '?force=true' : '';\n return this.fetch(`w/${wid}/agents/${id}${params}`, {\n method: 'DELETE',\n });\n }\n\n async archiveAgent(wid: string, id: number): Promise<Agent> {\n return this.fetch<Agent>(`w/${wid}/agents/${id}/archive`, {\n method: 'POST',\n });\n }\n\n async unarchiveAgent(wid: string, id: number): Promise<Agent> {\n return this.fetch<Agent>(`w/${wid}/agents/${id}/unarchive`, {\n method: 'POST',\n });\n }\n}\n","import type {\n AIModelsResponse,\n AllModelsResponse,\n VoiceModelsResponse,\n} from '../types/aiModelTypes';\nimport { BaseApiClient } from './base';\n\n/**\n * API client for AI model-related operations.\n */\nexport class AIModelsApi extends BaseApiClient {\n /**\n * Get available chat AI models\n */\n async getChatModels(provider?: string): Promise<AIModelsResponse> {\n const searchParams = new URLSearchParams();\n if (provider) searchParams.append('provider', provider);\n\n const queryString = searchParams.toString();\n const url = queryString ? `ai-models/chat?${queryString}` : 'ai-models/chat';\n\n return this.fetch<AIModelsResponse>(url);\n }\n\n /**\n * Get available realtime AI models\n */\n async getRealtimeModels(provider?: string): Promise<AIModelsResponse> {\n const searchParams = new URLSearchParams();\n if (provider) searchParams.append('provider', provider);\n\n const queryString = searchParams.toString();\n const url = queryString ? `ai-models/realtime?${queryString}` : 'ai-models/realtime';\n\n return this.fetch<AIModelsResponse>(url);\n }\n\n /**\n * Get available voice models with metadata\n */\n async getVoiceModels(provider?: string): Promise<VoiceModelsResponse> {\n const searchParams = new URLSearchParams();\n if (provider) searchParams.append('provider', provider);\n\n const queryString = searchParams.toString();\n const url = queryString ? `ai-models/voices?${queryString}` : 'ai-models/voices';\n\n return this.fetch<VoiceModelsResponse>(url);\n }\n\n /**\n * Get all AI models with full metadata including multipliers\n * Returns models grouped by type (chat, realtime, image, stt, tts)\n */\n async getAllModels(provider?: string, includeUnavailable = false): Promise<AllModelsResponse> {\n const searchParams = new URLSearchParams();\n if (provider) searchParams.append('provider', provider);\n if (includeUnavailable) searchParams.append('include_unavailable', 'true');\n\n const queryString = searchParams.toString();\n const url = queryString ? `ai-models/all?${queryString}` : 'ai-models/all';\n\n return this.fetch<AllModelsResponse>(url);\n }\n\n /**\n * Get available image generation models\n */\n async getImageModels(provider?: string): Promise<AIModelsResponse> {\n const searchParams = new URLSearchParams();\n if (provider) searchParams.append('provider', provider);\n\n const queryString = searchParams.toString();\n const url = queryString ? `ai-models/image?${queryString}` : 'ai-models/image';\n\n return this.fetch<AIModelsResponse>(url);\n }\n\n /**\n * Get available speech-to-text models\n */\n async getSTTModels(provider?: string): Promise<AIModelsResponse> {\n const searchParams = new URLSearchParams();\n if (provider) searchParams.append('provider', provider);\n\n const queryString = searchParams.toString();\n const url = queryString ? `ai-models/stt?${queryString}` : 'ai-models/stt';\n\n return this.fetch<AIModelsResponse>(url);\n }\n\n /**\n * Get available text-to-speech models\n */\n async getTTSModels(provider?: string): Promise<AIModelsResponse> {\n const searchParams = new URLSearchParams();\n if (provider) searchParams.append('provider', provider);\n\n const queryString = searchParams.toString();\n const url = queryString ? `ai-models/tts?${queryString}` : 'ai-models/tts';\n\n return this.fetch<AIModelsResponse>(url);\n }\n}\n","import { ApiKey, ApiKeyCreated, ApiKeyFormData } from '../types';\nimport { BaseApiClient } from './base';\n\nexport class ApiKeysApi extends BaseApiClient {\n // Workspace-specific API key methods\n async getApiKeys(wid: string): Promise<ApiKey[]> {\n return this.fetch<ApiKey[]>(`w/${wid}/api-keys`);\n }\n\n async createApiKey(wid: string, apiKey: ApiKeyFormData): Promise<ApiKeyCreated> {\n return this.fetch<ApiKeyCreated>(`w/${wid}/api-keys`, {\n method: 'POST',\n body: JSON.stringify(apiKey),\n });\n }\n\n async revokeApiKey(wid: string, id: number): Promise<void> {\n return this.fetch(`w/${wid}/api-keys/${id}`, {\n method: 'DELETE',\n });\n }\n\n // Global (account-level) API key methods\n async getGlobalApiKeys(): Promise<ApiKey[]> {\n return this.fetch<ApiKey[]>(`account/api-keys`);\n }\n\n async createGlobalApiKey(apiKey: ApiKeyFormData): Promise<ApiKeyCreated> {\n return this.fetch<ApiKeyCreated>(`account/api-keys`, {\n method: 'POST',\n body: JSON.stringify(apiKey),\n });\n }\n\n async revokeGlobalApiKey(id: number): Promise<void> {\n return this.fetch(`account/api-keys/${id}`, {\n method: 'DELETE',\n });\n }\n}","import {\n Assignment,\n AssignmentsQueryParams,\n AssignmentTask,\n ChatMessage,\n CreateAssignmentFormData,\n ExecuteToolResponse,\n OperatorTaskDetailResponse,\n PaginatedResponse,\n ToolsResponse,\n UpdateAssignmentFormData,\n} from '../types';\nimport { BaseApiClient } from './base';\n\nexport class AssignmentsApi extends BaseApiClient {\n async getAssignments(\n wid: string,\n options: AssignmentsQueryParams = {}\n ): Promise<PaginatedResponse<Assignment>> {\n const params = new URLSearchParams();\n if (options.page) params.append('page', options.page.toString());\n if (options.pageSize) params.append('pageSize', options.pageSize.toString());\n if (options.sortBy) params.append('sortBy', options.sortBy);\n if (options.sortOrder) params.append('sortOrder', options.sortOrder);\n if (options.mine) params.append('mine', options.mine.toString());\n if (options.taskId) params.append('taskId', options.taskId.toString());\n if (options.memberId) params.append('memberId', options.memberId.toString());\n if (options.status) params.append('status', options.status);\n\n return this.fetch<PaginatedResponse<Assignment>>(\n `w/${wid}/assignments${params.toString() ? `?${params.toString()}` : ''}`\n );\n }\n\n async getAssignment(wid: string, id: number): Promise<Assignment> {\n return this.fetch<Assignment>(`w/${wid}/assignments/${id}`);\n }\n\n async getAssignmentMessages(wid: string, id: number): Promise<ChatMessage[]> {\n return this.fetch<ChatMessage[]>(`w/${wid}/assignments/${id}/messages`);\n }\n\n async updateAssignment(\n wid: string,\n id: number,\n assignment: UpdateAssignmentFormData\n ): Promise<Assignment> {\n return this.fetch<Assignment>(`w/${wid}/assignments/${id}`, {\n method: 'PUT',\n body: JSON.stringify(assignment),\n });\n }\n\n async deleteAssignment(wid: string, id: number): Promise<void> {\n return this.fetch(`w/${wid}/assignments/${id}`, {\n method: 'DELETE',\n });\n }\n\n async getAssignmentTask(\n wid: string,\n id: number,\n assignmentTaskId: number\n ): Promise<AssignmentTask> {\n return this.fetch<AssignmentTask>(`w/${wid}/assignments/${id}/tasks/${assignmentTaskId}`);\n }\n\n async selectCurrentAssignmentTask(\n wid: string,\n id: number,\n assignmentTaskId: number\n ): Promise<void> {\n return this.fetch(`w/${wid}/assignments/${id}/tasks/${assignmentTaskId}/select`, {\n method: 'PUT',\n });\n }\n\n async createAssignment(wid: string, data: CreateAssignmentFormData): Promise<Assignment> {\n return this.fetch<Assignment>(`w/${wid}/assignments`, {\n method: 'POST',\n body: JSON.stringify(data),\n });\n }\n\n async getAssignmentTaskDetail(\n wid: string,\n assignmentId: number\n ): Promise<OperatorTaskDetailResponse> {\n return this.fetch<OperatorTaskDetailResponse>(\n `w/${wid}/assignments/${assignmentId}/current-task-detail`\n );\n }\n\n async getAssignmentCelContext(\n wid: string,\n assignmentId: number\n ): Promise<Record<string, unknown>> {\n return this.fetch<Record<string, unknown>>(\n `w/${wid}/assignments/${assignmentId}/cel-context`\n );\n }\n\n async cancelAssignment(\n wid: string,\n id: number,\n data?: { reason?: string }\n ): Promise<Assignment> {\n return this.fetch<Assignment>(`w/${wid}/assignments/${id}/cancel`, {\n method: 'POST',\n body: JSON.stringify(data ?? {}),\n });\n }\n\n async getAssignmentTools(wid: string, assignmentId: number): Promise<ToolsResponse> {\n return this.fetch<ToolsResponse>(`w/${wid}/assignments/${assignmentId}/tools`);\n }\n\n async executeAssignmentTool(\n wid: string,\n assignmentId: number,\n toolName: string,\n parameters: Record<string, unknown> = {}\n ): Promise<ExecuteToolResponse> {\n return this.fetch<ExecuteToolResponse>(`w/${wid}/assignments/${assignmentId}/execute-tool`, {\n method: 'POST',\n body: JSON.stringify({ toolName, parameters }),\n });\n }\n}\n","import { BaseApiClient } from './base';\nimport {\n Assistant,\n AssistantFormData,\n PaginatedResponse,\n AssistantSortField,\n SortOrder,\n} from '../types';\n\nexport interface TTSPreviewRequest {\n voiceModel: string; // Canonical voice model ID (e.g., \"openai:voice:ash\", \"elevenlabs:voice:dan\")\n phrase?: string;\n}\n\nexport class AssistantsApi extends BaseApiClient {\n async getAssistants(\n wid: string,\n options: {\n page?: number;\n pageSize?: number;\n sortBy?: AssistantSortField;\n sortOrder?: SortOrder;\n mine?: boolean;\n search?: string;\n } = {}\n ): Promise<PaginatedResponse<Assistant>> {\n const params = new URLSearchParams();\n if (options.page) params.append('page', options.page.toString());\n if (options.pageSize) params.append('pageSize', options.pageSize.toString());\n if (options.sortBy) params.append('sortBy', options.sortBy);\n if (options.sortOrder) params.append('sortOrder', options.sortOrder);\n if (options.mine) params.append('mine', options.mine.toString());\n if (options.search) {\n params.append('search', options.search);\n }\n\n return this.fetch<PaginatedResponse<Assistant>>(\n `w/${wid}/assistants${params.toString() ? `?${params.toString()}` : ''}`\n );\n }\n\n async getAssistant(wid: string, id: number): Promise<Assistant> {\n return this.fetch<Assistant>(`w/${wid}/assistants/${id}`);\n }\n\n async createAssistant(wid: string, assistant: AssistantFormData): Promise<Assistant> {\n const assistantData = { ...assistant };\n return this.fetch<Assistant>(`w/${wid}/assistants`, {\n method: 'POST',\n body: JSON.stringify(assistantData),\n });\n }\n\n async updateAssistant(\n wid: string,\n id: number,\n assistant: Partial<AssistantFormData>\n ): Promise<Assistant> {\n return this.fetch<Assistant>(`w/${wid}/assistants/${id}`, {\n method: 'PUT',\n body: JSON.stringify(assistant),\n });\n }\n\n async deleteAssistant(wid: string, id: number): Promise<void> {\n return this.fetch(`w/${wid}/assistants/${id}`, {\n method: 'DELETE',\n });\n }\n\n async previewTTS(wid: string, request: TTSPreviewRequest): Promise<ArrayBuffer> {\n const response = await this.fetchRaw(`w/${wid}/assistants/tts-preview`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify(request),\n });\n return response.arrayBuffer();\n }\n}\n","import {\n Account,\n AccountFormData,\n CreateSignupResponse,\n DomainMapping,\n VerifyCodeResponse,\n RequestMagicLinkResponse,\n ValidateMagicLinkResponse,\n} from '../types';\nimport {\n AdminAccountOrgMembership,\n SMSLoginResponse,\n TwoFactorStatus,\n TOTPSetupResponse,\n TwoFactorOperationResponse,\n RecoveryCodesResponse,\n SetupTOTPRequest,\n VerifyTOTPSetupRequest,\n SetupWebAuthnRequest,\n VerifyWebAuthnSetupRequest,\n GenerateRecoveryCodesRequest,\n UpdateTwoFactorMethodRequest,\n CredentialType,\n CredentialChangeRequestResponse,\n CredentialChangeVerifyResponse,\n PendingCredentialChange,\n CancelCredentialChangeResponse,\n CredentialChangeInviteDetails,\n CredentialChangeInviteConfirmResponse,\n} from '../types/accountTypes';\nimport { BaseApiClient } from './base';\nimport { parsePhoneNumberFromString } from 'libphonenumber-js';\n\n/**\n * Sanitize phone number to E164 format for backend API calls\n * Converts user-friendly formats like \"+1 207 299 0551\" to \"+12072990551\"\n */\nfunction sanitizePhoneForBackend(phoneNumber: string): string {\n try {\n // Try parsing with explicit country first\n let parsed = parsePhoneNumberFromString(phoneNumber);\n\n // If no country code detected, try with US (+1) as default\n if (!parsed) {\n parsed = parsePhoneNumberFromString(phoneNumber, 'US');\n }\n\n if (parsed && parsed.isValid()) {\n return parsed.format('E.164');\n }\n } catch (error) {\n // If parsing fails, return original (backend will handle validation)\n }\n\n return phoneNumber;\n}\n\nexport class AuthApi extends BaseApiClient {\n async getUserAccount(): Promise<Account> {\n return this.fetch<Account>('account');\n }\n\n async updateUserAccount(info: AccountFormData): Promise<Account> {\n return this.fetch('account', {\n method: 'POST',\n body: JSON.stringify(info),\n });\n }\n\n async login(\n phoneNumber: string,\n wid?: string,\n organizationUuid?: string\n ): Promise<SMSLoginResponse> {\n const params = new URLSearchParams();\n if (wid) params.append('wid', wid);\n const body: any = { phoneNumber: sanitizePhoneForBackend(phoneNumber) };\n if (organizationUuid) body.organizationUuid = organizationUuid;\n return await this.fetch<SMSLoginResponse>(`auth/login?${params.toString()}`, {\n method: 'POST',\n body: JSON.stringify(body),\n });\n }\n\n async resendCode(phoneNumber: string, organizationUuid?: string): Promise<SMSLoginResponse> {\n const body: any = { phoneNumber: sanitizePhoneForBackend(phoneNumber) };\n if (organizationUuid) body.organizationUuid = organizationUuid;\n return await this.fetch<SMSLoginResponse>('auth/resend-code', {\n method: 'POST',\n body: JSON.stringify(body),\n });\n }\n\n async verifyCodeWith2FA(\n phoneNumber: string,\n code: string,\n organizationUuid?: string\n ): Promise<VerifyCodeResponse> {\n // Verify code with backend API then complete auth locally if no 2FA required\n const verifyResponse = await this.fetch<VerifyCodeResponse>('auth/verify-with-2fa', {\n method: 'POST',\n body: JSON.stringify({\n phoneNumber: sanitizePhoneForBackend(phoneNumber),\n code,\n organizationUuid,\n }),\n });\n\n // If 2FA is not required, set the auth cookies using the local complete endpoint\n if (!verifyResponse.requiresTwoFactor && verifyResponse.token) {\n const completeResponse = await fetch(`/api/auth/complete`, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({\n token: verifyResponse.token,\n orgUuid: organizationUuid, // Pass org UUID for per-org cookie\n }),\n });\n\n if (!completeResponse.ok) {\n const output = await completeResponse.text();\n console.error(`Error completing auth: ${output}`);\n throw new Error('Failed to complete authentication');\n }\n }\n\n return verifyResponse;\n }\n\n async emailPasswordLogin(\n email: string,\n password: string,\n organizationUuid?: string\n ): Promise<VerifyCodeResponse> {\n return await this.fetch<VerifyCodeResponse>(`auth/email-password-login`, {\n method: 'POST',\n body: JSON.stringify({ email, password, organizationUuid }),\n });\n }\n\n async emailPasswordSignup(\n email: string,\n password: string,\n name?: string,\n organizationUuid?: string\n ): Promise<VerifyCodeResponse> {\n return await this.fetch<VerifyCodeResponse>(`auth/email-password-signup`, {\n method: 'POST',\n body: JSON.stringify({ email, password, name, organizationUuid }),\n });\n }\n\n async changePassword(\n currentPassword: string,\n newPassword: string\n ): Promise<{ success: boolean; message: string }> {\n return await this.fetch<{ success: boolean; message: string }>(`auth/change-password`, {\n method: 'POST',\n body: JSON.stringify({ currentPassword, newPassword }),\n });\n }\n\n async setPassword(newPassword: string): Promise<{ success: boolean; message: string }> {\n return await this.fetch<{ success: boolean; message: string }>(`auth/set-password`, {\n method: 'POST',\n body: JSON.stringify({ newPassword }),\n });\n }\n\n async getPasswordStatus(): Promise<{ hasPassword: boolean }> {\n return await this.fetch<{ hasPassword: boolean }>(`auth/password-status`);\n }\n\n async logout(): Promise<{ success: boolean }> {\n // this is fetched locally in order to clear the cookie\n const response = await fetch(`/api/auth/logout`, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n });\n\n if (!response.ok) {\n throw new Error('Failed to logout');\n }\n\n return await response.json();\n }\n\n // request a token from auth/cross-domain-token\n async requestCrossDomainToken(): Promise<{ token: string }> {\n return this.fetch<{ token: string }>('auth/cross-domain-token', {\n method: 'POST',\n });\n }\n\n async exchangeToken(token: string): Promise<{ token: string }> {\n return this.fetch<{ token: string }>('auth/exchange-token', {\n method: 'POST',\n body: JSON.stringify({ token }),\n });\n }\n\n async getDomainMapping(customDomain: string): Promise<DomainMapping> {\n return this.fetch<DomainMapping>(`s/mapping/${customDomain}`);\n }\n\n // Signup API (used by eval scripts)\n async createSignup(\n wid: string,\n data: {\n member?: {\n email?: string;\n phone?: string;\n role?: string;\n name?: string;\n description?: string;\n tosAccepted?: boolean;\n };\n data?: Record<\n string,\n {\n externalId?: string;\n values: Record<string, any>;\n }\n >;\n origin?: string;\n }\n ): Promise<CreateSignupResponse> {\n return this.fetch<CreateSignupResponse>(`w/${wid}/create-signup`, {\n method: 'POST',\n body: JSON.stringify(data),\n });\n }\n\n // ===== MAGIC LINK AUTHENTICATION METHODS =====\n\n async requestMagicLink(\n email: string,\n organizationUuid?: string,\n redirectUrl?: string\n ): Promise<RequestMagicLinkResponse> {\n return await this.fetch<RequestMagicLinkResponse>(`auth/request-magic-link`, {\n method: 'POST',\n body: JSON.stringify({ email, organizationUuid, redirectUrl }),\n });\n }\n\n async validateMagicLink(token: string, otp?: string): Promise<ValidateMagicLinkResponse> {\n const body: { token: string; otp?: string } = { token };\n if (otp) {\n body.otp = otp;\n }\n return await this.fetch<ValidateMagicLinkResponse>(`auth/validate-magic-link`, {\n method: 'POST',\n body: JSON.stringify(body),\n });\n }\n\n // ===== EMAIL VERIFICATION METHODS =====\n\n async sendEmailVerification(\n email: string,\n organizationUuid?: string\n ): Promise<SMSLoginResponse> {\n return await this.fetch<SMSLoginResponse>(`auth/send-email-verification`, {\n method: 'POST',\n body: JSON.stringify({ email, organizationUuid }),\n });\n }\n\n async verifyEmail(\n email: string,\n code: string,\n organizationUuid?: string\n ): Promise<VerifyCodeResponse> {\n // Verify email with backend API then complete auth locally if no 2FA required\n const verifyResponse = await this.fetch<VerifyCodeResponse>(`auth/verify-email`, {\n method: 'POST',\n body: JSON.stringify({ email, code, organizationUuid }),\n });\n\n // If 2FA is not required, set the auth cookies using the local complete endpoint\n if (!verifyResponse.requiresTwoFactor && verifyResponse.token) {\n const completeResponse = await fetch(`/api/auth/complete`, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({\n token: verifyResponse.token,\n orgUuid: organizationUuid, // Pass org UUID for per-org cookie\n }),\n });\n\n if (!completeResponse.ok) {\n throw new Error('Failed to complete authentication');\n }\n }\n\n return verifyResponse;\n }\n\n // ===== TWO-FACTOR AUTHENTICATION METHODS =====\n\n async getTwoFactorStatus(): Promise<TwoFactorStatus> {\n return this.fetch<TwoFactorStatus>('auth/2fa/status');\n }\n\n async setupTOTP(data: SetupTOTPRequest): Promise<TOTPSetupResponse> {\n return this.fetch<TOTPSetupResponse>('auth/2fa/totp/setup', {\n method: 'POST',\n body: JSON.stringify(data),\n });\n }\n\n async verifyTOTPSetup(data: VerifyTOTPSetupRequest): Promise<TwoFactorOperationResponse> {\n return this.fetch<TwoFactorOperationResponse>('auth/2fa/totp/verify', {\n method: 'POST',\n body: JSON.stringify(data),\n });\n }\n\n async setupWebAuthn(data: SetupWebAuthnRequest): Promise<any> {\n return this.fetch<any>('auth/2fa/webauthn/setup', {\n method: 'POST',\n body: JSON.stringify(data),\n });\n }\n\n async verifyWebAuthnSetup(\n data: VerifyWebAuthnSetupRequest\n ): Promise<TwoFactorOperationResponse> {\n return this.fetch<TwoFactorOperationResponse>('auth/2fa/webauthn/verify', {\n method: 'POST',\n body: JSON.stringify(data),\n });\n }\n\n async generateRecoveryCodes(\n data: GenerateRecoveryCodesRequest = {}\n ): Promise<RecoveryCodesResponse> {\n return this.fetch<RecoveryCodesResponse>('auth/2fa/recovery-codes/generate', {\n method: 'POST',\n body: JSON.stringify(data),\n });\n }\n\n async disableTwoFactorMethod(methodId: number): Promise<TwoFactorOperationResponse> {\n return this.fetch<TwoFactorOperationResponse>(`auth/2fa/methods/${methodId}`, {\n method: 'DELETE',\n });\n }\n\n async updateTwoFactorMethod(\n data: UpdateTwoFactorMethodRequest\n ): Promise<TwoFactorOperationResponse> {\n return this.fetch<TwoFactorOperationResponse>(`auth/2fa/methods/${data.methodId}`, {\n method: 'PUT',\n body: JSON.stringify(data),\n });\n }\n\n // ===== TWO-FACTOR AUTHENTICATION LOGIN METHODS =====\n\n async verifyTOTPAuth(\n tempToken: string,\n code: string\n ): Promise<{ token: string; accountId: number }> {\n return this.fetch<{ token: string; accountId: number }>('auth/2fa/auth/totp', {\n method: 'POST',\n body: JSON.stringify({\n temp_token: tempToken,\n code,\n }),\n });\n }\n\n async verifyRecoveryCodeAuth(\n tempToken: string,\n code: string\n ): Promise<{ token: string; accountId: number }> {\n return this.fetch<{ token: string; accountId: number }>('auth/2fa/auth/recovery', {\n method: 'POST',\n body: JSON.stringify({\n temp_token: tempToken,\n code,\n }),\n });\n }\n\n async getWebAuthnAuthOptions(tempToken: string): Promise<{\n credentialRequestOptions: {\n challenge: string;\n timeout: number;\n rpId: string;\n allowCredentials: Array<{ id: string; type: string }>;\n userVerification: string;\n };\n }> {\n return this.fetch<{\n credentialRequestOptions: {\n challenge: string;\n timeout: number;\n rpId: string;\n allowCredentials: Array<{ id: string; type: string }>;\n userVerification: string;\n };\n }>('auth/2fa/webauthn/options', {\n method: 'POST',\n body: JSON.stringify({\n temp_token: tempToken,\n }),\n });\n }\n\n async verifyWebAuthnAuth(\n tempToken: string,\n assertionResponse: any\n ): Promise<{ token: string; accountId: number }> {\n return this.fetch<{ token: string; accountId: number }>('auth/2fa/webauthn', {\n method: 'POST',\n body: JSON.stringify({\n temp_token: tempToken,\n assertion_response: assertionResponse,\n }),\n });\n }\n\n // ===== ORGANIZATION MEMBERSHIP METHODS =====\n\n async getMyOrganizations(): Promise<AdminAccountOrgMembership[]> {\n return this.fetch<AdminAccountOrgMembership[]>('o/mine');\n }\n\n // ===== CREDENTIAL CHANGE METHODS =====\n\n /**\n * Request to change email or phone credential.\n * Sends an OTP to the NEW credential to verify ownership.\n */\n async requestCredentialChange(\n credentialType: CredentialType,\n newValue: string\n ): Promise<CredentialChangeRequestResponse> {\n return this.fetch<CredentialChangeRequestResponse>('account/request-credential-change', {\n method: 'POST',\n body: JSON.stringify({\n credential_type: credentialType,\n new_value: newValue,\n }),\n });\n }\n\n /**\n * Verify a credential change request with OTP code.\n * On success, applies the credential change to the account.\n */\n async verifyCredentialChange(\n requestId: number,\n otpCode: string\n ): Promise<CredentialChangeVerifyResponse> {\n return this.fetch<CredentialChangeVerifyResponse>('account/verify-credential-change', {\n method: 'POST',\n body: JSON.stringify({\n request_id: requestId,\n otp_code: otpCode,\n }),\n });\n }\n\n /**\n * Get all pending (non-applied) credential change requests.\n */\n async getPendingCredentialChanges(): Promise<PendingCredentialChange[]> {\n return this.fetch<PendingCredentialChange[]>('account/pending-credential-changes');\n }\n\n /**\n * Cancel a pending credential change request.\n */\n async cancelCredentialChange(requestId: number): Promise<CancelCredentialChangeResponse> {\n return this.fetch<CancelCredentialChangeResponse>(\n `account/cancel-credential-change/${requestId}`,\n { method: 'DELETE' }\n );\n }\n\n // ===== CREDENTIAL CHANGE INVITE METHODS =====\n\n /**\n * Get details of a credential change invitation.\n * The user must be logged in and be the target of the invitation.\n */\n async getCredentialChangeInviteDetails(token: string): Promise<CredentialChangeInviteDetails> {\n return this.fetch<CredentialChangeInviteDetails>(`account/credential-change-invite/${token}`);\n }\n\n /**\n * Confirm a credential change invitation.\n * The user must be logged in and be the target of the invitation.\n */\n async confirmCredentialChangeInvite(\n token: string\n ): Promise<CredentialChangeInviteConfirmResponse> {\n return this.fetch<CredentialChangeInviteConfirmResponse>(\n `account/credential-change-invite/${token}/confirm`,\n { method: 'POST' }\n );\n }\n}\n","import type {\n AvailabilityCheck,\n AvailabilityResponse,\n AvailableSlotsRequest,\n AvailableSlotsResponse,\n Calendar,\n CalendarEvent,\n CalendarEventFormData,\n CalendarEventType,\n CalendarEventTypeFormData,\n CalendarEventsQueryParams,\n CalendarFormData,\n CalendarSchedule,\n CalendarScheduleFormData,\n GoogleCalendarInfo,\n GoogleCalendarInsufficientScopesResponse,\n GoogleCalendarStatusResponse,\n ICalFeedTokenResponse,\n ICalFeedUrlResponse,\n LinkCalendarRequest,\n LinkCalendarResponse,\n PaginatedResponse,\n SyncCalendarResponse,\n UnlinkCalendarResponse,\n UpdateAttendeeRequest,\n} from '../types';\nimport { BaseApiClient } from './base';\n\nexport class CalendarsApi extends BaseApiClient {\n // Calendar CRUD\n async getCalendars(\n wid: string,\n params?: { page?: number; pageSize?: number; includeSchedules?: boolean }\n ): Promise<PaginatedResponse<Calendar>> {\n const queryParams = new URLSearchParams();\n if (params?.page) queryParams.append('page', params.page.toString());\n if (params?.pageSize) queryParams.append('pageSize', params.pageSize.toString());\n if (params?.includeSchedules) queryParams.append('includeSchedules', 'true');\n\n const queryString = queryParams.toString();\n return this.fetch<PaginatedResponse<Calendar>>(\n `w/${wid}/calendars${queryString ? `?${queryString}` : ''}`\n );\n }\n\n async getCalendar(wid: string, id: number, includeSchedules?: boolean): Promise<Calendar> {\n const params = new URLSearchParams();\n if (includeSchedules) params.append('include_schedules', 'true');\n return this.fetch<Calendar>(\n `w/${wid}/calendars/${id}${params.toString() ? `?${params.toString()}` : ''}`\n );\n }\n\n async createCalendar(wid: string, calendar: CalendarFormData): Promise<Calendar> {\n return this.fetch<Calendar>(`w/${wid}/calendars`, {\n method: 'POST',\n body: JSON.stringify(calendar),\n });\n }\n\n async updateCalendar(\n wid: string,\n id: number,\n calendar: Partial<CalendarFormData>\n ): Promise<Calendar> {\n return this.fetch<Calendar>(`w/${wid}/calendars/${id}`, {\n method: 'PUT',\n body: JSON.stringify(calendar),\n });\n }\n\n async deleteCalendar(wid: string, id: number): Promise<void> {\n return this.fetch(`w/${wid}/calendars/${id}`, {\n method: 'DELETE',\n });\n }\n\n // Calendar Schedules\n async getCalendarSchedules(wid: string, calendarId: number): Promise<CalendarSchedule[]> {\n return this.fetch<CalendarSchedule[]>(`w/${wid}/calendars/${calendarId}/schedules`);\n }\n\n async createCalendarSchedule(\n wid: string,\n calendarId: number,\n schedule: CalendarScheduleFormData\n ): Promise<CalendarSchedule> {\n return this.fetch<CalendarSchedule>(`w/${wid}/calendars/${calendarId}/schedules`, {\n method: 'POST',\n body: JSON.stringify(schedule),\n });\n }\n\n async updateCalendarSchedule(\n wid: string,\n calendarId: number,\n scheduleId: number,\n schedule: Partial<CalendarScheduleFormData>\n ): Promise<CalendarSchedule> {\n return this.fetch<CalendarSchedule>(\n `w/${wid}/calendars/${calendarId}/schedules/${scheduleId}`,\n {\n method: 'PUT',\n body: JSON.stringify(schedule),\n }\n );\n }\n\n async deleteCalendarSchedule(\n wid: string,\n calendarId: number,\n scheduleId: number\n ): Promise<void> {\n return this.fetch(`w/${wid}/calendars/${calendarId}/schedules/${scheduleId}`, {\n method: 'DELETE',\n });\n }\n\n // Availability\n async checkAvailability(\n wid: string,\n calendarId: number,\n check: AvailabilityCheck\n ): Promise<AvailabilityResponse> {\n return this.fetch<AvailabilityResponse>(`w/${wid}/calendars/${calendarId}/availability`, {\n method: 'POST',\n body: JSON.stringify(check),\n });\n }\n\n async getAvailableSlots(\n wid: string,\n calendarId: number,\n request: AvailableSlotsRequest\n ): Promise<AvailableSlotsResponse> {\n return this.fetch<AvailableSlotsResponse>(\n `w/${wid}/calendars/${calendarId}/available-slots`,\n {\n method: 'POST',\n body: JSON.stringify(request),\n }\n );\n }\n\n // Calendar Events\n async getCalendarEvents(\n wid: string,\n options: CalendarEventsQueryParams = {}\n ): Promise<PaginatedResponse<CalendarEvent>> {\n const params = new URLSearchParams();\n if (options.calendarId) params.append('calendarId', options.calendarId.toString());\n if (options.startDate) params.append('startDate', options.startDate);\n if (options.endDate) params.append('endDate', options.endDate);\n if (options.status) params.append('status', options.status);\n if (options.memberId) params.append('memberId', options.memberId.toString());\n if (options.limit) params.append('limit', options.limit.toString());\n if (options.offset) params.append('offset', options.offset.toString());\n\n return this.fetch<PaginatedResponse<CalendarEvent>>(\n `w/${wid}/calendar-events${params.toString() ? `?${params.toString()}` : ''}`\n );\n }\n\n async getCalendarEvent(wid: string, eventId: number): Promise<CalendarEvent> {\n return this.fetch<CalendarEvent>(`w/${wid}/calendar-events/${eventId}`);\n }\n\n async createCalendarEvent(wid: string, event: CalendarEventFormData): Promise<CalendarEvent> {\n return this.fetch<CalendarEvent>(`w/${wid}/calendar-events`, {\n method: 'POST',\n body: JSON.stringify(event),\n });\n }\n\n async updateCalendarEvent(\n wid: string,\n eventId: number,\n event: Partial<CalendarEventFormData>\n ): Promise<CalendarEvent> {\n return this.fetch<CalendarEvent>(`w/${wid}/calendar-events/${eventId}`, {\n method: 'PUT',\n body: JSON.stringify(event),\n });\n }\n\n async cancelCalendarEvent(\n wid: string,\n eventId: number,\n reason?: string\n ): Promise<CalendarEvent> {\n return this.fetch<CalendarEvent>(`w/${wid}/calendar-events/${eventId}/cancel`, {\n method: 'POST',\n body: JSON.stringify({ cancellationReason: reason }),\n });\n }\n\n async deleteCalendarEvent(wid: string, eventId: number): Promise<void> {\n return this.fetch(`w/${wid}/calendar-events/${eventId}`, {\n method: 'DELETE',\n });\n }\n\n // Event attendees\n async updateEventAttendee(\n wid: string,\n eventId: number,\n attendeeId: number,\n update: UpdateAttendeeRequest\n ): Promise<void> {\n return this.fetch(`w/${wid}/calendar-events/${eventId}/attendees/${attendeeId}`, {\n method: 'PUT',\n body: JSON.stringify(update),\n });\n }\n\n // Event Types\n async getEventTypes(wid: string): Promise<PaginatedResponse<CalendarEventType>> {\n return this.fetch<PaginatedResponse<CalendarEventType>>(`w/${wid}/calendar-event-types`);\n }\n\n async getEventType(wid: string, id: number): Promise<CalendarEventType> {\n return this.fetch<CalendarEventType>(`w/${wid}/calendar-event-types/${id}`);\n }\n\n async createEventType(\n wid: string,\n eventType: CalendarEventTypeFormData\n ): Promise<CalendarEventType> {\n return this.fetch<CalendarEventType>(`w/${wid}/calendar-event-types`, {\n method: 'POST',\n body: JSON.stringify(eventType),\n });\n }\n\n async updateEventType(\n wid: string,\n id: number,\n eventType: Partial<CalendarEventTypeFormData>\n ): Promise<CalendarEventType> {\n return this.fetch<CalendarEventType>(`w/${wid}/calendar-event-types/${id}`, {\n method: 'PUT',\n body: JSON.stringify(eventType),\n });\n }\n\n async deleteEventType(wid: string, id: number): Promise<void> {\n return this.fetch(`w/${wid}/calendar-event-types/${id}`, {\n method: 'DELETE',\n });\n }\n\n // iCal Feed Management\n async generateICalToken(\n wid: string,\n calendarId: number,\n regenerate: boolean = false\n ): Promise<ICalFeedTokenResponse> {\n return this.fetch<ICalFeedTokenResponse>(`w/${wid}/calendars/${calendarId}/ical-token`, {\n method: 'POST',\n body: JSON.stringify({ regenerate }),\n });\n }\n\n async revokeICalToken(\n wid: string,\n calendarId: number\n ): Promise<{ success: boolean; message: string }> {\n return this.fetch<{ success: boolean; message: string }>(\n `w/${wid}/calendars/${calendarId}/ical-token`,\n {\n method: 'DELETE',\n }\n );\n }\n\n async getICalFeedUrl(wid: string, calendarId: number): Promise<ICalFeedUrlResponse> {\n return this.fetch<ICalFeedUrlResponse>(`w/${wid}/calendars/${calendarId}/ical-url`);\n }\n\n // Google Calendar Integration\n async listGoogleCalendars(wid: string): Promise<GoogleCalendarInfo[]> {\n return this.fetch<GoogleCalendarInfo[]>(`w/${wid}/calendars/google/list`);\n }\n\n async getGoogleCalendarStatus(\n wid: string\n ): Promise<GoogleCalendarStatusResponse | GoogleCalendarInsufficientScopesResponse> {\n return this.fetch<GoogleCalendarStatusResponse | GoogleCalendarInsufficientScopesResponse>(\n `w/${wid}/calendars/google/status`\n );\n }\n\n async linkCalendarToGoogle(\n wid: string,\n calendarId: number,\n request: LinkCalendarRequest\n ): Promise<LinkCalendarResponse> {\n return this.fetch<LinkCalendarResponse>(`w/${wid}/calendars/${calendarId}/google/link`, {\n method: 'POST',\n body: JSON.stringify(request),\n });\n }\n\n async unlinkCalendarFromGoogle(\n wid: string,\n calendarId: number\n ): Promise<UnlinkCalendarResponse> {\n return this.fetch<UnlinkCalendarResponse>(`w/${wid}/calendars/${calendarId}/google/link`, {\n method: 'DELETE',\n });\n }\n\n async syncCalendarWithGoogle(wid: string, calendarId: number): Promise<SyncCalendarResponse> {\n return this.fetch<SyncCalendarResponse>(`w/${wid}/calendars/${calendarId}/google/sync`, {\n method: 'POST',\n });\n }\n}\n","import {\n InitiateCallRequest,\n InitiateCallResponse,\n MessageTimingResponse,\n VoiceTokenResponse,\n} from '../types';\nimport { BaseApiClient } from './base';\n\nexport class CallsApi extends BaseApiClient {\n async initiateCall(wid: string, request: InitiateCallRequest): Promise<InitiateCallResponse> {\n return this.fetch<InitiateCallResponse>(`w/${wid}/call`, {\n method: 'POST',\n body: JSON.stringify(request),\n });\n }\n\n async getVoiceToken(wid: string): Promise<VoiceTokenResponse> {\n return this.fetch<VoiceTokenResponse>(`w/${wid}/voice/token`);\n }\n\n async getMessageTiming(wid: string, chatId: number): Promise<MessageTimingResponse> {\n return this.fetch<MessageTimingResponse>(`w/${wid}/recordings/chat/${chatId}/message-timing`);\n }\n}\n","import {\n Chat,\n ChatFilter,\n ChatFilterFormData,\n ChatFormData,\n ChatLabel,\n ChatLabelFormData,\n ChatMessage,\n ChatTokenUsage,\n GetChatsOptions,\n OutboundCallResponse,\n PaginatedResponse,\n TodoItem,\n ToolsResponse,\n} from '../types';\nimport { BaseApiClient } from './base';\n\nexport class ChatsApi extends BaseApiClient {\n /**\n * Build URLSearchParams from GetChatsOptions.\n * Excludes pagination params when includePagination is false.\n */\n private buildChatsQueryParams(\n options: GetChatsOptions,\n includePagination: boolean = true\n ): URLSearchParams {\n const params = new URLSearchParams();\n\n if (options.sortBy) params.append('sortBy', options.sortBy);\n if (options.sortOrder) params.append('sortOrder', options.sortOrder);\n\n if (includePagination) {\n if (options.page) params.append('page', options.page.toString());\n if (options.pageSize) params.append('pageSize', options.pageSize.toString());\n }\n\n if (options.mine !== undefined) params.append('mine', options.mine.toString());\n if (options.needsResponse !== undefined)\n params.append('needsResponse', options.needsResponse.toString());\n if (options.paused !== undefined) params.append('paused', options.paused.toString());\n if (options.archived !== undefined) params.append('archived', options.archived.toString());\n if (options.channel) params.append('channel', options.channel);\n\n // Default chatType to \"assignment\" if not specified\n const chatType = options.chatType ?? 'assignment';\n params.append('chatType', chatType);\n\n if (options.memberId !== undefined) params.append('memberId', options.memberId.toString());\n if (options.assistantMemberId !== undefined)\n params.append('assistantMemberId', options.assistantMemberId.toString());\n if (options.search) params.append('search', options.search);\n if (options.isTest !== undefined) params.append('isTest', options.isTest.toString());\n if (options.isAnonymous !== undefined)\n params.append('isAnonymous', options.isAnonymous.toString());\n if (options.filters && options.filters.length > 0) {\n params.append('filters', JSON.stringify(options.filters));\n }\n\n return params;\n }\n\n async getChats(wid: string, options: GetChatsOptions = {}): Promise<PaginatedResponse<Chat>> {\n const params = this.buildChatsQueryParams(options, true);\n const queryString = params.toString();\n return this.fetch<PaginatedResponse<Chat>>(\n `w/${wid}/chats${queryString ? `?${queryString}` : ''}`\n );\n }\n\n async exportChats(wid: string, options: GetChatsOptions = {}): Promise<Blob> {\n const params = this.buildChatsQueryParams(options, false);\n const queryString = params.toString();\n const response = await this.fetchRaw(\n `w/${wid}/chats/export${queryString ? `?${queryString}` : ''}`\n );\n return response.blob();\n }\n\n async exportChat(wid: string, chatId: number, format: 'jsonl' = 'jsonl'): Promise<Blob> {\n const response = await this.fetchRaw(`w/${wid}/chats/${chatId}/export?format=${format}`);\n return response.blob();\n }\n\n async getChat(wid: string, id: number): Promise<Chat> {\n return this.fetch<Chat>(`w/${wid}/chats/${id}`);\n }\n\n async getChatTokenUsage(wid: string, chatId: number): Promise<ChatTokenUsage> {\n return this.fetch<ChatTokenUsage>(`w/${wid}/chats/${chatId}/token-usage`);\n }\n\n async getChatTodos(wid: string, chatId: number): Promise<{ todos: TodoItem[] }> {\n return this.fetch<{ todos: TodoItem[] }>(`w/${wid}/chats/${chatId}/todos`);\n }\n\n async getChatSkills(\n wid: string,\n chatId: number\n ): Promise<{ loadedSkills: string[]; revealedSkills: string[] }> {\n return this.fetch<{ loadedSkills: string[]; revealedSkills: string[] }>(\n `w/${wid}/chats/${chatId}/skills`\n );\n }\n\n async getChatsNeedsResponse(wid: string): Promise<number[]> {\n return this.fetch<number[]>(`w/${wid}/chats/needs-response`);\n }\n\n async getChatsDailyCreationStats(\n wid: string,\n options?: {\n archived?: boolean;\n isTest?: boolean;\n }\n ): Promise<{\n dailyStats: Array<{\n date: string;\n count: number;\n assignment?: number;\n manager?: number;\n developer?: number;\n testing?: number;\n }>;\n }> {\n const params = new URLSearchParams();\n if (options?.archived !== undefined) params.append('archived', options.archived.toString());\n if (options?.isTest !== undefined) params.append('isTest', options.isTest.toString());\n\n const queryString = params.toString();\n return this.fetch(\n `w/${wid}/chats/stats/daily-creation${queryString ? `?${queryString}` : ''}`\n );\n }\n\n async archiveChat(wid: string, id: number): Promise<void> {\n return this.fetch(`w/${wid}/chats/${id}/archive`, {\n method: 'PUT',\n });\n }\n\n async unarchiveChat(wid: string, id: number): Promise<void> {\n return this.fetch(`w/${wid}/chats/${id}/unarchive`, {\n method: 'PUT',\n });\n }\n\n async createChat(wid: string, chat: ChatFormData): Promise<Chat> {\n return this.fetch<Chat>(`w/${wid}/chats`, {\n method: 'POST',\n body: JSON.stringify(chat),\n });\n }\n\n async deleteChat(wid: string, id: number, reason?: string): Promise<void> {\n return this.fetch(`w/${wid}/chats/${id}`, {\n method: 'DELETE',\n body: reason ? JSON.stringify({ reason }) : undefined,\n });\n }\n\n async updateChat(wid: string, id: number, chat: Partial<ChatFormData>): Promise<Chat> {\n return this.fetch<Chat>(`w/${wid}/chats/${id}`, {\n method: 'PUT',\n body: JSON.stringify(chat),\n });\n }\n\n async updateChatMute(\n wid: string,\n id: number,\n muted: boolean\n ): Promise<{ id: number; muted: boolean }> {\n return this.fetch<{ id: number; muted: boolean }>(`w/${wid}/chats/${id}/mute`, {\n method: 'PUT',\n body: JSON.stringify({ muted }),\n });\n }\n\n async updateChatNeedsResponse(\n wid: string,\n id: number,\n needsResponse: boolean\n ): Promise<{ id: number; needsResponse: boolean }> {\n return this.fetch<{ id: number; needsResponse: boolean }>(\n `w/${wid}/chats/${id}/needs-response`,\n {\n method: 'PUT',\n body: JSON.stringify({ needsResponse }),\n }\n );\n }\n\n async summarizeChat(wid: string, id: number, updateLabels?: boolean): Promise<Chat> {\n const params = new URLSearchParams();\n if (updateLabels !== undefined) {\n params.append('update_labels', updateLabels.toString());\n }\n return this.fetch<Chat>(\n `w/${wid}/chats/${id}/summarize${params.toString() ? `?${params.toString()}` : ''}`,\n {\n method: 'POST',\n }\n );\n }\n\n async getChatMessages(\n wid: string,\n id: number,\n limit?: number,\n offset?: number\n ): Promise<ChatMessage[]> {\n const params = new URLSearchParams();\n if (limit) params.append('limit', limit.toString());\n if (offset) params.append('offset', offset.toString());\n return this.fetch<ChatMessage[]>(\n `w/${wid}/chats/${id}/messages${params.toString() ? `?${params.toString()}` : ''}`\n );\n }\n\n async getChatToolCallMessages(\n wid: string,\n chatId: number,\n callId: string,\n limit: number = 100,\n offset: number = 0\n ): Promise<ChatMessage[]> {\n const params = new URLSearchParams();\n params.append('limit', limit.toString());\n params.append('offset', offset.toString());\n return this.fetch<ChatMessage[]>(\n `w/${wid}/chats/${chatId}/tool-calls/${callId}/messages?${params.toString()}`\n );\n }\n\n async getChatTools(wid: string, chatId: number): Promise<ToolsResponse> {\n return this.fetch<ToolsResponse>(`w/${wid}/chats/${chatId}/tools`);\n }\n\n async initiateOutboundCall(\n wid: string,\n chatId: number,\n phoneNumberId: number\n ): Promise<OutboundCallResponse> {\n return this.fetch(`w/${wid}/chats/${chatId}/outbound-call`, {\n method: 'POST',\n body: JSON.stringify({ phoneNumberId, chatId }),\n });\n }\n\n async sendAssistantMessage(\n wid: string,\n chatId: number,\n message: string,\n toolCalls?: Array<{\n type: 'function';\n id: string;\n function: {\n name: string;\n arguments: string;\n };\n }>\n ): Promise<{\n success: boolean;\n message: string;\n message_id: string;\n message_uuid: string;\n role: string;\n content: string;\n received_at: string | null;\n }> {\n return this.fetch(`w/${wid}/chats/${chatId}/send-assistant-message`, {\n method: 'POST',\n body: JSON.stringify({\n message,\n tool_calls: toolCalls,\n }),\n });\n }\n\n async rateMessage(\n wid: string,\n chatId: number,\n messageUuid: string,\n rating: number\n ): Promise<{ status: string; detail?: string }> {\n return this.fetch<{ status: string; detail?: string }>(\n `w/${wid}/chats/${chatId}/messages/${messageUuid}/rate`,\n {\n method: 'POST',\n body: JSON.stringify({ rating }),\n }\n );\n }\n\n /**\n * Find or create a DM chat with a specific member.\n * Returns the Chat object for the DM conversation.\n */\n async findOrCreateDMChat(wid: string, memberId: number): Promise<Chat> {\n return this.fetch<Chat>(`w/${wid}/chats/dm`, {\n method: 'POST',\n body: JSON.stringify({ memberId }),\n });\n }\n\n /**\n * Send a user message in a chat (works for DM and regular chats).\n */\n async sendChatMessage(wid: string, chatId: number, content: string): Promise<ChatMessage> {\n return this.fetch<ChatMessage>(`w/${wid}/chats/${chatId}/messages`, {\n method: 'POST',\n body: JSON.stringify({ content }),\n });\n }\n\n async getChatAssignmentTasks(\n wid: string,\n chatId: number\n ): Promise<\n Array<{\n id: number;\n name: string;\n isCurrent: boolean;\n }>\n > {\n return this.fetch(`w/${wid}/chats/${chatId}/assignment-tasks`);\n }\n\n // Chat Completion API (used by eval scripts)\n async createChatCompletion(\n wid: string,\n chatId: number,\n data: {\n model?: string;\n messages: Array<{ role: string; content: string }>;\n }\n ): Promise<{\n id: string;\n object: string;\n created: number;\n model: string;\n choices: Array<{\n index: number;\n message: {\n role: string;\n content: string;\n };\n finish_reason: string;\n }>;\n usage?: {\n prompt_tokens: number;\n completion_tokens: number;\n total_tokens: number;\n };\n }> {\n return this.fetch(`w/${wid}/web-chat/${chatId}/chat/completions?stream=false`, {\n method: 'POST',\n body: JSON.stringify({\n model: data.model || 'gpt-4',\n messages: data.messages,\n }),\n });\n }\n\n // Chat Labels API\n async getChatLabels(wid: string): Promise<ChatLabel[]> {\n return this.fetch<ChatLabel[]>(`w/${wid}/chat-labels`);\n }\n\n async getChatLabel(wid: string, id: number): Promise<ChatLabel> {\n return this.fetch<ChatLabel>(`w/${wid}/chat-labels/${id}`);\n }\n\n async getChatLabelByUuid(wid: string, uuid: string): Promise<ChatLabel> {\n return this.fetch<ChatLabel>(`w/${wid}/chat-labels/${uuid}`);\n }\n\n async createChatLabel(wid: string, label: ChatLabelFormData): Promise<ChatLabel> {\n return this.fetch<ChatLabel>(`w/${wid}/chat-labels`, {\n method: 'POST',\n body: JSON.stringify(label),\n });\n }\n\n async updateChatLabel(\n wid: string,\n id: number,\n label: Partial<ChatLabelFormData>\n ): Promise<ChatLabel> {\n return this.fetch<ChatLabel>(`w/${wid}/chat-labels/${id}`, {\n method: 'PUT',\n body: JSON.stringify(label),\n });\n }\n\n async deleteChatLabel(wid: string, id: number): Promise<void> {\n return this.fetch<void>(`w/${wid}/chat-labels/${id}`, {\n method: 'DELETE',\n });\n }\n\n // Chat Filters\n async getChatFilters(wid: string): Promise<ChatFilter[]> {\n return this.fetch<ChatFilter[]>(`w/${wid}/chat-filters`);\n }\n\n async getChatFilter(wid: string, id: number): Promise<ChatFilter> {\n return this.fetch<ChatFilter>(`w/${wid}/chat-filters/${id}`);\n }\n\n async getChatFilterByUuid(wid: string, uuid: string): Promise<ChatFilter> {\n return this.fetch<ChatFilter>(`w/${wid}/chat-filters/by-uuid/${uuid}`);\n }\n\n async createChatFilter(wid: string, filter: ChatFilterFormData): Promise<ChatFilter> {\n return this.fetch<ChatFilter>(`w/${wid}/chat-filters`, {\n method: 'POST',\n body: JSON.stringify(filter),\n });\n }\n\n async updateChatFilter(\n wid: string,\n id: number,\n filter: Partial<ChatFilterFormData>\n ): Promise<ChatFilter> {\n return this.fetch<ChatFilter>(`w/${wid}/chat-filters/${id}`, {\n method: 'PUT',\n body: JSON.stringify(filter),\n });\n }\n\n async deleteChatFilter(wid: string, id: number): Promise<void> {\n return this.fetch<void>(`w/${wid}/chat-filters/${id}`, {\n method: 'DELETE',\n });\n }\n}\n","import { BaseApiClient } from './base';\nimport {\n CustomToolkit,\n CustomToolkitFormData,\n CustomToolkitUpdateFormData,\n CustomTool,\n CustomToolFormData,\n CustomToolUpdateFormData,\n} from '../types';\n\nexport class CustomToolkitsApi extends BaseApiClient {\n /**\n * List all custom toolkits in a workspace\n */\n async getCustomToolkits(wid: string): Promise<CustomToolkit[]> {\n return this.fetch<CustomToolkit[]>(`w/${wid}/custom-toolkits`);\n }\n\n /**\n * Get a specific custom toolkit\n */\n async getCustomToolkit(wid: string, toolkitId: number): Promise<CustomToolkit> {\n return this.fetch<CustomToolkit>(`w/${wid}/custom-toolkits/${toolkitId}`);\n }\n\n /**\n * Create a new custom toolkit\n */\n async createCustomToolkit(wid: string, data: CustomToolkitFormData): Promise<CustomToolkit> {\n return this.fetch<CustomToolkit>(`w/${wid}/custom-toolkits`, {\n method: 'POST',\n body: JSON.stringify(data),\n });\n }\n\n /**\n * Update an existing custom toolkit\n */\n async updateCustomToolkit(\n wid: string,\n toolkitId: number,\n data: CustomToolkitUpdateFormData\n ): Promise<CustomToolkit> {\n return this.fetch<CustomToolkit>(`w/${wid}/custom-toolkits/${toolkitId}`, {\n method: 'PUT',\n body: JSON.stringify(data),\n });\n }\n\n /**\n * Delete a custom toolkit\n */\n async deleteCustomToolkit(wid: string, toolkitId: number): Promise<{ status: string }> {\n return this.fetch<{ status: string }>(`w/${wid}/custom-toolkits/${toolkitId}`, {\n method: 'DELETE',\n });\n }\n\n /**\n * Enable a custom toolkit\n */\n async enableCustomToolkit(wid: string, toolkitId: number): Promise<CustomToolkit> {\n return this.fetch<CustomToolkit>(`w/${wid}/custom-toolkits/${toolkitId}/enable`, {\n method: 'POST',\n });\n }\n\n /**\n * Disable a custom toolkit\n */\n async disableCustomToolkit(wid: string, toolkitId: number): Promise<CustomToolkit> {\n return this.fetch<CustomToolkit>(`w/${wid}/custom-toolkits/${toolkitId}/disable`, {\n method: 'POST',\n });\n }\n\n /**\n * Create a new custom tool in a toolkit\n */\n async createCustomTool(\n wid: string,\n toolkitId: number,\n data: CustomToolFormData\n ): Promise<CustomTool> {\n return this.fetch<CustomTool>(`w/${wid}/custom-toolkits/${toolkitId}/tools`, {\n method: 'POST',\n body: JSON.stringify(data),\n });\n }\n\n /**\n * Update an existing custom tool\n */\n async updateCustomTool(\n wid: string,\n toolkitId: number,\n toolId: number,\n data: CustomToolUpdateFormData\n ): Promise<CustomTool> {\n return this.fetch<CustomTool>(`w/${wid}/custom-toolkits/${toolkitId}/tools/${toolId}`, {\n method: 'PUT',\n body: JSON.stringify(data),\n });\n }\n\n /**\n * Delete a custom tool\n */\n async deleteCustomTool(\n wid: string,\n toolkitId: number,\n toolId: number\n ): Promise<{ status: string }> {\n return this.fetch<{ status: string }>(\n `w/${wid}/custom-toolkits/${toolkitId}/tools/${toolId}`,\n {\n method: 'DELETE',\n }\n );\n }\n}\n","import {\n DataRecord,\n DataRecordFormData,\n DataRecordsPaginatedResponse,\n DataRecordUpdate,\n DataType,\n DataTypeFormData,\n} from '../types';\nimport { BaseApiClient } from './base';\n\nexport class DataTypesApi extends BaseApiClient {\n async getDataTypes(wid: string, options?: { archived?: boolean }): Promise<DataType[]> {\n const params = new URLSearchParams();\n if (options?.archived !== undefined) {\n params.append('archived', options.archived.toString());\n }\n const queryString = params.toString();\n return this.fetch<DataType[]>(`w/${wid}/data-types${queryString ? `?${queryString}` : ''}`);\n }\n\n async getDataType(wid: string, id: number): Promise<DataType> {\n return this.fetch<DataType>(`w/${wid}/data-types/${id}`);\n }\n\n async getDataTypeBySlug(wid: string, slug: string): Promise<DataType> {\n return this.fetch<DataType>(`w/${wid}/data-types/slug/${slug}`);\n }\n\n async createDataType(wid: string, dataType: DataTypeFormData): Promise<DataType> {\n return this.fetch<DataType>(`w/${wid}/data-types`, {\n method: 'POST',\n body: JSON.stringify(dataType),\n });\n }\n\n async updateDataType(\n wid: string,\n id: number,\n dataType: Partial<DataTypeFormData>\n ): Promise<DataType> {\n return this.fetch<DataType>(`w/${wid}/data-types/${id}`, {\n method: 'PUT',\n body: JSON.stringify(dataType),\n });\n }\n\n async deleteDataType(wid: string, id: number): Promise<void> {\n return this.fetch(`w/${wid}/data-types/${id}`, {\n method: 'DELETE',\n });\n }\n\n async archiveDataType(wid: string, id: number): Promise<{ status: string }> {\n return this.fetch<{ status: string }>(`w/${wid}/data-types/${id}/archive`, {\n method: 'POST',\n });\n }\n\n async unarchiveDataType(wid: string, id: number): Promise<{ status: string }> {\n return this.fetch<{ status: string }>(`w/${wid}/data-types/${id}/unarchive`, {\n method: 'POST',\n });\n }\n\n async cloneDataType(\n wid: string,\n id: number,\n data: { name: string; slug: string }\n ): Promise<DataType> {\n return this.fetch<DataType>(`w/${wid}/data-types/${id}/clone`, {\n method: 'POST',\n body: JSON.stringify(data),\n });\n }\n\n async getDataRecords(\n wid: string,\n dataTypeId: number,\n options?: {\n memberId?: number;\n search?: string;\n searchField?: string;\n page?: number;\n pageSize?: number;\n }\n ): Promise<DataRecordsPaginatedResponse> {\n const params = new URLSearchParams();\n if (options?.memberId) params.append('member_id', options.memberId.toString());\n if (options?.search) params.append('search', options.search);\n if (options?.searchField) params.append('search_field', options.searchField);\n if (options?.page) params.append('page', options.page.toString());\n if (options?.pageSize) params.append('page_size', options.pageSize.toString());\n\n return this.fetch<DataRecordsPaginatedResponse>(\n `w/${wid}/data-types/${dataTypeId}/records${params?.toString() ? `?${params.toString()}` : ''}`\n );\n }\n\n async getDataRecord(wid: string, recordId: number): Promise<DataRecord> {\n return this.fetch<DataRecord>(`w/${wid}/data-types/records/${recordId}`);\n }\n\n async createDataRecord(\n wid: string,\n dataTypeId: number,\n record: DataRecordFormData\n ): Promise<DataRecord> {\n return this.fetch<DataRecord>(`w/${wid}/data-types/${dataTypeId}/records`, {\n method: 'POST',\n body: JSON.stringify(record),\n });\n }\n\n async updateDataRecord(\n wid: string,\n dataTypeId: number,\n recordId: number,\n record: DataRecordFormData\n ): Promise<DataRecord> {\n return this.fetch<DataRecord>(`w/${wid}/data-types/${dataTypeId}/records/${recordId}`, {\n method: 'PUT',\n body: JSON.stringify(record),\n });\n }\n\n async deleteDataRecord(wid: string, dataTypeId: number, recordId: number): Promise<void> {\n return this.fetch(`w/${wid}/data-types/${dataTypeId}/records/${recordId}`, {\n method: 'DELETE',\n });\n }\n\n async getDataRecordChanges(\n wid: string,\n dataTypeId: number,\n recordId: number\n ): Promise<DataRecordUpdate[]> {\n return this.fetch<DataRecordUpdate[]>(\n `w/${wid}/data-types/${dataTypeId}/records/${recordId}/changes`\n );\n }\n\n // Upsert Data Record API (used by eval scripts)\n async upsertDataRecord(\n wid: string,\n dataTypeId: number,\n externalId: string | number,\n data: {\n fieldValues: Record<string, any>;\n }\n ): Promise<DataRecord> {\n return this.fetch<DataRecord>(`w/${wid}/data-types/${dataTypeId}/upsert/${externalId}`, {\n method: 'POST',\n body: JSON.stringify({\n externalId,\n fieldValues: data.fieldValues,\n }),\n });\n }\n\n // Toggle field indexing for faster search\n async toggleFieldIndex(\n wid: string,\n dataTypeId: number,\n fieldSlug: string,\n shouldIndex: boolean\n ): Promise<{ status: string; message: string; indexStatus?: string }> {\n return this.fetch(`w/${wid}/data-types/${dataTypeId}/fields/${fieldSlug}/toggle-index`, {\n method: 'POST',\n body: JSON.stringify({ shouldIndex: shouldIndex }),\n });\n }\n\n // Get field index status\n async getFieldIndexStatus(\n wid: string,\n dataTypeId: number,\n fieldSlug: string\n ): Promise<{\n fieldSlug: string;\n fieldName: string;\n shouldIndex: string;\n indexStatus: string;\n }> {\n return this.fetch(`w/${wid}/data-types/${dataTypeId}/fields/${fieldSlug}/index-status`);\n }\n\n /**\n * Validate if a data type slug is available.\n * Returns availability and a suggested alternative if taken.\n */\n async validateDataTypeSlug(\n wid: string,\n slug: string,\n excludeId?: number\n ): Promise<{ available: boolean; suggestedSlug?: string }> {\n return this.fetch(`w/${wid}/data-types/validate-slug`, {\n method: 'POST',\n body: JSON.stringify({ slug, excludeId }),\n });\n }\n\n /**\n * Get record counts per data type for a specific member.\n * Returns a mapping of data type ID to record count.\n */\n async getMemberRecordCounts(\n wid: string,\n memberId: number\n ): Promise<{ counts: Record<number, number> }> {\n return this.fetch(`w/${wid}/data-types/member-record-counts?member_id=${memberId}`);\n }\n}\n","import { BaseApiClient } from './base';\nimport {\n DiscordBot,\n CreateDiscordBotRequest,\n UpdateDiscordBotRequest,\n DiscordThread,\n DiscordGuild,\n DiscordBotAccount,\n MemberCredential,\n PaginatedResponse,\n DiscordBotSortField,\n SortOrder,\n} from '../types';\n\nexport class DiscordBotsApi extends BaseApiClient {\n /**\n * List all Discord bots configured for a workspace.\n */\n async getDiscordBots(\n wid: string,\n options: {\n page?: number;\n pageSize?: number;\n sortBy?: DiscordBotSortField;\n sortOrder?: SortOrder;\n search?: string;\n } = {}\n ): Promise<PaginatedResponse<DiscordBot>> {\n const params = new URLSearchParams();\n if (options.page) params.append('page', options.page.toString());\n if (options.pageSize) params.append('pageSize', options.pageSize.toString());\n if (options.sortBy) params.append('sortBy', options.sortBy);\n if (options.sortOrder) params.append('sortOrder', options.sortOrder);\n if (options.search) params.append('search', options.search);\n\n return this.fetch<PaginatedResponse<DiscordBot>>(\n `w/${wid}/app-connections/discord/bots${params.toString() ? `?${params.toString()}` : ''}`\n );\n }\n\n /**\n * Get a specific Discord bot by ID.\n */\n async getDiscordBot(wid: string, botId: number): Promise<DiscordBot> {\n return this.fetch<DiscordBot>(`w/${wid}/app-connections/discord/bots/${botId}`);\n }\n\n /**\n * Get a Discord bot by UUID.\n */\n async getDiscordBotByUuid(wid: string, uuid: string): Promise<DiscordBot> {\n return this.fetch<DiscordBot>(`w/${wid}/app-connections/discord/bots/uuid/${uuid}`);\n }\n\n /**\n * Create a new Discord bot configuration.\n */\n async createDiscordBot(wid: string, data: CreateDiscordBotRequest): Promise<DiscordBot> {\n return this.fetch<DiscordBot>(`w/${wid}/app-connections/discord/bots`, {\n method: 'POST',\n body: JSON.stringify(data),\n });\n }\n\n /**\n * Update an existing Discord bot configuration.\n */\n async updateDiscordBot(\n wid: string,\n botId: number,\n data: UpdateDiscordBotRequest\n ): Promise<DiscordBot> {\n return this.fetch<DiscordBot>(`w/${wid}/app-connections/discord/bots/${botId}`, {\n method: 'PUT',\n body: JSON.stringify(data),\n });\n }\n\n /**\n * Delete a Discord bot configuration.\n */\n async deleteDiscordBot(wid: string, botId: number): Promise<void> {\n return this.fetch(`w/${wid}/app-connections/discord/bots/${botId}`, {\n method: 'DELETE',\n });\n }\n\n /**\n * Register slash commands for a Discord bot.\n */\n async registerSlashCommands(wid: string, botId: number): Promise<void> {\n return this.fetch(`w/${wid}/app-connections/discord/bots/${botId}/register-commands`, {\n method: 'POST',\n });\n }\n\n /**\n * Register role connection metadata schema for Discord Linked Roles.\n * This defines what metadata fields are available for linked roles.\n */\n async registerLinkedRolesMetadata(\n wid: string,\n botId: number\n ): Promise<{ registered: number; fields: string[] }> {\n return this.fetch(\n `w/${wid}/app-connections/discord/bots/${botId}/linked-roles/register-metadata`,\n {\n method: 'POST',\n }\n );\n }\n\n /**\n * Get Discord threads for a bot.\n */\n async getDiscordThreads(\n wid: string,\n botId: number,\n options: {\n page?: number;\n pageSize?: number;\n } = {}\n ): Promise<PaginatedResponse<DiscordThread>> {\n const params = new URLSearchParams();\n if (options.page) params.append('page', options.page.toString());\n if (options.pageSize) params.append('pageSize', options.pageSize.toString());\n\n return this.fetch<PaginatedResponse<DiscordThread>>(\n `w/${wid}/app-connections/discord/bots/${botId}/threads${params.toString() ? `?${params.toString()}` : ''}`\n );\n }\n\n /**\n * Get the current member's credentials (connected accounts).\n */\n async getMyCredentials(wid: string): Promise<MemberCredential[]> {\n return this.fetch<MemberCredential[]>(`w/${wid}/me/credentials`);\n }\n\n /**\n * Unlink a credential from the current member's account.\n */\n async unlinkCredential(wid: string, credentialId: number): Promise<void> {\n return this.fetch(`w/${wid}/me/credentials/${credentialId}`, {\n method: 'DELETE',\n });\n }\n\n /**\n * Get Discord guilds (servers) that have interacted with a bot.\n */\n async getDiscordGuilds(\n wid: string,\n botId: number,\n options: {\n page?: number;\n pageSize?: number;\n } = {}\n ): Promise<PaginatedResponse<DiscordGuild>> {\n const params = new URLSearchParams();\n if (options.page) params.append('page', options.page.toString());\n if (options.pageSize) params.append('pageSize', options.pageSize.toString());\n\n return this.fetch<PaginatedResponse<DiscordGuild>>(\n `w/${wid}/app-connections/discord/bots/${botId}/guilds${params.toString() ? `?${params.toString()}` : ''}`\n );\n }\n\n /**\n * Get Discord account links for a bot (members linked to Discord users).\n */\n async getDiscordBotAccounts(\n wid: string,\n botId: number,\n options: {\n page?: number;\n pageSize?: number;\n } = {}\n ): Promise<PaginatedResponse<DiscordBotAccount>> {\n const params = new URLSearchParams();\n if (options.page) params.append('page', options.page.toString());\n if (options.pageSize) params.append('pageSize', options.pageSize.toString());\n\n return this.fetch<PaginatedResponse<DiscordBotAccount>>(\n `w/${wid}/app-connections/discord/bots/${botId}/accounts${params.toString() ? `?${params.toString()}` : ''}`\n );\n }\n}\n","import { BaseApiClient } from './base';\nimport {\n SlackApp,\n SlackAppInstallation,\n SlackAccount,\n CreateSlackAppRequest,\n UpdateSlackAppRequest,\n SlackThread,\n PaginatedResponse,\n SlackAppSortField,\n SortOrder,\n} from '../types';\n\nexport class SlackAppsApi extends BaseApiClient {\n /**\n * List all Slack apps configured for a workspace.\n */\n async getSlackApps(\n wid: string,\n options: {\n page?: number;\n pageSize?: number;\n sortBy?: SlackAppSortField;\n sortOrder?: SortOrder;\n search?: string;\n } = {}\n ): Promise<PaginatedResponse<SlackApp>> {\n const params = new URLSearchParams();\n if (options.page) params.append('page', options.page.toString());\n if (options.pageSize) params.append('pageSize', options.pageSize.toString());\n if (options.sortBy) params.append('sortBy', options.sortBy);\n if (options.sortOrder) params.append('sortOrder', options.sortOrder);\n if (options.search) params.append('search', options.search);\n\n return this.fetch<PaginatedResponse<SlackApp>>(\n `w/${wid}/app-connections/slack/apps${params.toString() ? `?${params.toString()}` : ''}`\n );\n }\n\n /**\n * Get a specific Slack app by ID.\n */\n async getSlackApp(wid: string, appId: number): Promise<SlackApp> {\n return this.fetch<SlackApp>(`w/${wid}/app-connections/slack/apps/${appId}`);\n }\n\n /**\n * Create a new Slack app configuration.\n */\n async createSlackApp(wid: string, data: CreateSlackAppRequest): Promise<SlackApp> {\n return this.fetch<SlackApp>(`w/${wid}/app-connections/slack/apps`, {\n method: 'POST',\n body: JSON.stringify(data),\n });\n }\n\n /**\n * Update an existing Slack app configuration.\n */\n async updateSlackApp(\n wid: string,\n appId: number,\n data: UpdateSlackAppRequest\n ): Promise<SlackApp> {\n return this.fetch<SlackApp>(`w/${wid}/app-connections/slack/apps/${appId}`, {\n method: 'PUT',\n body: JSON.stringify(data),\n });\n }\n\n /**\n * Delete a Slack app configuration.\n */\n async deleteSlackApp(wid: string, appId: number): Promise<void> {\n return this.fetch(`w/${wid}/app-connections/slack/apps/${appId}`, {\n method: 'DELETE',\n });\n }\n\n /**\n * Get Slack threads for an app.\n */\n async getSlackThreads(\n wid: string,\n appId: number,\n options: {\n page?: number;\n pageSize?: number;\n } = {}\n ): Promise<PaginatedResponse<SlackThread>> {\n const params = new URLSearchParams();\n if (options.page) params.append('page', options.page.toString());\n if (options.pageSize) params.append('pageSize', options.pageSize.toString());\n\n return this.fetch<PaginatedResponse<SlackThread>>(\n `w/${wid}/app-connections/slack/apps/${appId}/threads${params.toString() ? `?${params.toString()}` : ''}`\n );\n }\n\n /**\n * Get Slack workspace installations for an app.\n */\n async getSlackInstallations(\n wid: string,\n appId: number,\n options: {\n page?: number;\n pageSize?: number;\n } = {}\n ): Promise<PaginatedResponse<SlackAppInstallation>> {\n const params = new URLSearchParams();\n if (options.page) params.append('page', options.page.toString());\n if (options.pageSize) params.append('pageSize', options.pageSize.toString());\n\n return this.fetch<PaginatedResponse<SlackAppInstallation>>(\n `w/${wid}/app-connections/slack/apps/${appId}/installations${params.toString() ? `?${params.toString()}` : ''}`\n );\n }\n\n /**\n * Get Slack account links for an app (members linked to Slack users).\n */\n async getSlackAppAccounts(\n wid: string,\n appId: number,\n options: {\n page?: number;\n pageSize?: number;\n } = {}\n ): Promise<PaginatedResponse<SlackAccount>> {\n const params = new URLSearchParams();\n if (options.page) params.append('page', options.page.toString());\n if (options.pageSize) params.append('pageSize', options.pageSize.toString());\n\n return this.fetch<PaginatedResponse<SlackAccount>>(\n `w/${wid}/app-connections/slack/apps/${appId}/accounts${params.toString() ? `?${params.toString()}` : ''}`\n );\n }\n}\n","import { BaseApiClient } from './base';\nimport {\n Event,\n EventRun,\n EventRule,\n EventRuleActionType,\n EventRuleEventType,\n EventRuleFormData,\n EventRuleObjectType,\n EventsQueryParams,\n CreateEventRequest,\n UpdateEventRequest,\n UpdateEventRuleFormData,\n WebhookLog,\n WebhookLogsQueryParams,\n RuleExecution,\n RuleExecutionsQueryParams,\n PaginatedResponse,\n EventRunSortField,\n SortOrder,\n} from '../types';\nimport type { CursorPaginatedResponse } from '../types/coreTypes';\nimport { EventActionMappingsResponse } from '../types/eventRuleTypes';\n\nexport class EventsApi extends BaseApiClient {\n // Event Rules API\n async getEventRules(wid: string): Promise<EventRule[]> {\n return this.fetch<EventRule[]>(`w/${wid}/event-rules`);\n }\n\n async getAvailableActions(wid: string): Promise<EventActionMappingsResponse> {\n return this.fetch<EventActionMappingsResponse>(`w/${wid}/event-rules/actions/available`);\n }\n\n async searchEventRules(\n wid: string,\n params: {\n objectType?: EventRuleObjectType;\n eventType?: EventRuleEventType;\n actionType?: EventRuleActionType;\n taskId?: number;\n dataTypeId?: number;\n scheduledEventId?: number;\n workflowId?: number;\n includeDisabled?: boolean;\n }\n ): Promise<EventRule[]> {\n const searchParams = new URLSearchParams();\n if (params.objectType) searchParams.append('objectType', params.objectType);\n if (params.eventType) searchParams.append('eventType', params.eventType);\n if (params.actionType) searchParams.append('actionType', params.actionType);\n if (params.taskId) searchParams.append('taskId', params.taskId.toString());\n if (params.dataTypeId) searchParams.append('dataTypeId', params.dataTypeId.toString());\n if (params.scheduledEventId)\n searchParams.append('scheduledEventId', params.scheduledEventId.toString());\n if (params.workflowId) searchParams.append('workflowId', params.workflowId.toString());\n if (params.includeDisabled) searchParams.append('includeDisabled', 'true');\n return this.fetch<EventRule[]>(`w/${wid}/event-rules/search?${searchParams.toString()}`);\n }\n\n async getEventRule(wid: string, id: number): Promise<EventRule> {\n return this.fetch<EventRule>(`w/${wid}/event-rules/${id}`);\n }\n\n async createEventRule(wid: string, rule: EventRuleFormData): Promise<EventRule> {\n return this.fetch<EventRule>(`w/${wid}/event-rules`, {\n method: 'POST',\n body: JSON.stringify(rule),\n });\n }\n\n async updateEventRule(\n wid: string,\n id: number,\n rule: UpdateEventRuleFormData\n ): Promise<EventRule> {\n return this.fetch<EventRule>(`w/${wid}/event-rules/${id}`, {\n method: 'PUT',\n body: JSON.stringify(rule),\n });\n }\n\n async deleteEventRule(wid: string, id: number): Promise<void> {\n return this.fetch(`w/${wid}/event-rules/${id}`, {\n method: 'DELETE',\n });\n }\n\n async reorderEventRules(wid: string, ruleIds: number[]): Promise<{ status: string }> {\n return this.fetch<{ status: string }>(`w/${wid}/event-rules/reorder`, {\n method: 'POST',\n body: JSON.stringify(ruleIds),\n });\n }\n\n // Webhook Logs API\n async getWebhookLogs(\n wid: string,\n options: WebhookLogsQueryParams = {}\n ): Promise<PaginatedResponse<WebhookLog>> {\n const params = new URLSearchParams();\n if (options.page) params.append('page', options.page.toString());\n if (options.pageSize) params.append('pageSize', options.pageSize.toString());\n if (options.sortBy) params.append('sortBy', options.sortBy);\n if (options.sortOrder) params.append('sortOrder', options.sortOrder);\n if (options.eventType) params.append('eventType', options.eventType);\n if (options.success !== undefined) params.append('success', options.success.toString());\n\n return this.fetch<PaginatedResponse<WebhookLog>>(\n `w/${wid}/webhook-logs${params.toString() ? `?${params.toString()}` : ''}`\n );\n }\n\n async getRuleExecutions(\n wid: string,\n options: RuleExecutionsQueryParams = {}\n ): Promise<CursorPaginatedResponse<RuleExecution>> {\n const params = new URLSearchParams();\n if (options.cursor) params.append('cursor', options.cursor);\n if (options.pageSize) params.append('pageSize', options.pageSize.toString());\n if (options.sortBy) params.append('sortBy', options.sortBy);\n if (options.sortOrder) params.append('sortOrder', options.sortOrder);\n if (options.ruleId) params.append('ruleId', options.ruleId.toString());\n if (options.status) params.append('status', options.status);\n if (options.triggerType) params.append('triggerType', options.triggerType);\n if (options.actionSlug) params.append('actionSlug', options.actionSlug);\n if (options.objectType) params.append('objectType', options.objectType);\n if (options.eventType) params.append('eventType', options.eventType);\n if (options.actionType) params.append('actionType', options.actionType);\n if (options.workflowId) params.append('workflowId', options.workflowId.toString());\n\n return this.fetch<CursorPaginatedResponse<RuleExecution>>(\n `w/${wid}/event-rules/executions${params.toString() ? `?${params.toString()}` : ''}`\n );\n }\n\n // Events API\n async getEvents(\n wid: string,\n options: EventsQueryParams = {}\n ): Promise<PaginatedResponse<Event>> {\n const params = new URLSearchParams();\n if (options.page) params.append('page', options.page.toString());\n if (options.pageSize) params.append('pageSize', options.pageSize.toString());\n if (options.sortBy) params.append('sortBy', options.sortBy);\n if (options.sortOrder) params.append('sortOrder', options.sortOrder);\n if (options.active !== undefined) params.append('active', options.active.toString());\n\n return this.fetch<PaginatedResponse<Event>>(\n `w/${wid}/events${params.toString() ? `?${params.toString()}` : ''}`\n );\n }\n\n async getEvent(wid: string, id: number): Promise<Event> {\n return this.fetch<Event>(`w/${wid}/events/${id}`);\n }\n\n async createEvent(wid: string, event: CreateEventRequest): Promise<Event> {\n return this.fetch<Event>(`w/${wid}/events`, {\n method: 'POST',\n body: JSON.stringify(event),\n });\n }\n\n async updateEvent(wid: string, id: number, event: UpdateEventRequest): Promise<Event> {\n return this.fetch<Event>(`w/${wid}/events/${id}`, {\n method: 'PUT',\n body: JSON.stringify(event),\n });\n }\n\n async deleteEvent(wid: string, id: number): Promise<void> {\n return this.fetch(`w/${wid}/events/${id}`, {\n method: 'DELETE',\n });\n }\n\n async runEvent(\n wid: string,\n id: number,\n params: {\n memberId?: number;\n memberFilterId?: number;\n }\n ): Promise<{ status: string; message: string }> {\n const searchParams = new URLSearchParams();\n if (params.memberId) searchParams.append('member_id', params.memberId.toString());\n if (params.memberFilterId)\n searchParams.append('member_filter_id', params.memberFilterId.toString());\n\n return this.fetch(`w/${wid}/events/${id}/run?${searchParams.toString()}`, {\n method: 'POST',\n });\n }\n\n async getEventRuns(\n wid: string,\n options: {\n page?: number;\n pageSize?: number;\n sortBy?: EventRunSortField;\n sortOrder?: SortOrder;\n eventId?: number;\n status?: string;\n } = {}\n ): Promise<PaginatedResponse<EventRun>> {\n const params = new URLSearchParams();\n if (options.page) params.append('page', options.page.toString());\n if (options.pageSize) params.append('pageSize', options.pageSize.toString());\n if (options.sortBy) params.append('sortBy', options.sortBy);\n if (options.sortOrder) params.append('sortOrder', options.sortOrder);\n if (options.eventId) params.append('eventId', options.eventId.toString());\n if (options.status) params.append('status', options.status);\n\n return this.fetch<PaginatedResponse<EventRun>>(`w/${wid}/events/runs?${params.toString()}`);\n }\n\n async resetEventRuns(\n wid: string,\n eventId: number\n ): Promise<{ status: string; message: string; deletedRunsCount: number }> {\n return this.fetch(`w/${wid}/events/${eventId}/runs`, {\n method: 'DELETE',\n });\n }\n}\n","import { FeatureDefinition } from '../features/registry';\nimport { BaseApiClient } from './base';\n\nexport interface FeaturesRegistryResponse {\n features: FeatureDefinition[];\n}\n\nexport class FeaturesApi extends BaseApiClient {\n /**\n * Get the full feature registry with all metadata.\n *\n * Returns all feature definitions including:\n * - Dependencies between features\n * - Visibility settings for upgrade prompts\n * - Associated abilities, tools, routes, and event types\n * - UI configuration (icons, sidebar groups)\n *\n * @returns Feature registry response with all feature definitions\n */\n async getFeatureRegistry(): Promise<FeaturesRegistryResponse> {\n return this.fetch<FeaturesRegistryResponse>('features/registry');\n }\n\n /**\n * Get a specific feature definition by slug.\n *\n * @param slug - The feature slug (e.g., \"calendar\", \"gmail\")\n * @returns The full feature definition\n */\n async getFeatureBySlug(slug: string): Promise<FeatureDefinition> {\n return this.fetch<FeatureDefinition>(`features/${slug}`);\n }\n}\n","import { BaseApiClient } from './base';\nimport {\n FhirConnection,\n FhirMethodResponse,\n CreateFhirConnectionRequest,\n UpdateFhirConnectionRequest,\n FhirFetchEncountersRequest,\n FhirSearchPatientsRequest,\n FhirSearchPractitionersRequest,\n FhirSearchLocationsRequest,\n FhirFetchCareTeamRequest,\n FhirCreateEncounterRequest,\n FhirConnectionSortField,\n PaginatedResponse,\n SortOrder,\n} from '../types';\n\nexport class FhirConnectionsApi extends BaseApiClient {\n /**\n * List all FHIR connections configured for a workspace.\n */\n async getFhirConnections(\n wid: string,\n options: {\n page?: number;\n pageSize?: number;\n sortBy?: FhirConnectionSortField;\n sortOrder?: SortOrder;\n search?: string;\n } = {}\n ): Promise<PaginatedResponse<FhirConnection>> {\n const params = new URLSearchParams();\n if (options.page) params.append('page', options.page.toString());\n if (options.pageSize) params.append('pageSize', options.pageSize.toString());\n if (options.sortBy) params.append('sortBy', options.sortBy);\n if (options.sortOrder) params.append('sortOrder', options.sortOrder);\n if (options.search) params.append('search', options.search);\n\n return this.fetch<PaginatedResponse<FhirConnection>>(\n `w/${wid}/app-connections/fhir/connections${params.toString() ? `?${params.toString()}` : ''}`\n );\n }\n\n /**\n * Get a specific FHIR connection by ID.\n */\n async getFhirConnection(wid: string, connectionId: number): Promise<FhirConnection> {\n return this.fetch<FhirConnection>(\n `w/${wid}/app-connections/fhir/connections/${connectionId}`\n );\n }\n\n /**\n * Get a FHIR connection by UUID.\n */\n async getFhirConnectionByUuid(wid: string, uuid: string): Promise<FhirConnection> {\n return this.fetch<FhirConnection>(`w/${wid}/app-connections/fhir/connections/uuid/${uuid}`);\n }\n\n /**\n * Create a new FHIR connection configuration.\n */\n async createFhirConnection(\n wid: string,\n data: CreateFhirConnectionRequest\n ): Promise<FhirConnection> {\n return this.fetch<FhirConnection>(`w/${wid}/app-connections/fhir/connections`, {\n method: 'POST',\n body: JSON.stringify(data),\n });\n }\n\n /**\n * Update an existing FHIR connection configuration.\n */\n async updateFhirConnection(\n wid: string,\n connectionId: number,\n data: UpdateFhirConnectionRequest\n ): Promise<FhirConnection> {\n return this.fetch<FhirConnection>(\n `w/${wid}/app-connections/fhir/connections/${connectionId}`,\n {\n method: 'PUT',\n body: JSON.stringify(data),\n }\n );\n }\n\n /**\n * Delete a FHIR connection configuration.\n */\n async deleteFhirConnection(wid: string, connectionId: number): Promise<void> {\n return this.fetch(`w/${wid}/app-connections/fhir/connections/${connectionId}`, {\n method: 'DELETE',\n });\n }\n\n /**\n * Test a FHIR connection.\n */\n async testFhirConnection(\n wid: string,\n connectionId: number\n ): Promise<{ success: boolean; message: string }> {\n return this.fetch(`w/${wid}/app-connections/fhir/connections/${connectionId}/test`, {\n method: 'POST',\n });\n }\n\n /**\n * Search for patients via the FHIR connection.\n */\n async fhirSearchPatients(\n wid: string,\n connectionId: number,\n data: FhirSearchPatientsRequest\n ): Promise<FhirMethodResponse> {\n return this.fetch(\n `w/${wid}/app-connections/fhir/connections/${connectionId}/patients/search`,\n {\n method: 'POST',\n body: JSON.stringify(data),\n }\n );\n }\n\n /**\n * Search for practitioners via the FHIR connection.\n */\n async fhirSearchPractitioners(\n wid: string,\n connectionId: number,\n data: FhirSearchPractitionersRequest\n ): Promise<FhirMethodResponse> {\n return this.fetch(\n `w/${wid}/app-connections/fhir/connections/${connectionId}/practitioners/search`,\n {\n method: 'POST',\n body: JSON.stringify(data),\n }\n );\n }\n\n /**\n * Search for locations via the FHIR connection.\n */\n async fhirSearchLocations(\n wid: string,\n connectionId: number,\n data: FhirSearchLocationsRequest\n ): Promise<FhirMethodResponse> {\n return this.fetch(\n `w/${wid}/app-connections/fhir/connections/${connectionId}/locations/search`,\n {\n method: 'POST',\n body: JSON.stringify(data),\n }\n );\n }\n\n /**\n * Fetch care team for a patient via the FHIR connection.\n */\n async fhirFetchCareTeam(\n wid: string,\n connectionId: number,\n data: FhirFetchCareTeamRequest\n ): Promise<FhirMethodResponse> {\n return this.fetch(`w/${wid}/app-connections/fhir/connections/${connectionId}/careteam`, {\n method: 'POST',\n body: JSON.stringify(data),\n });\n }\n\n /**\n * Fetch encounters for a patient via the FHIR connection.\n */\n async fhirFetchEncounters(\n wid: string,\n connectionId: number,\n data: FhirFetchEncountersRequest\n ): Promise<FhirMethodResponse> {\n return this.fetch(`w/${wid}/app-connections/fhir/connections/${connectionId}/encounters`, {\n method: 'POST',\n body: JSON.stringify(data),\n });\n }\n\n /**\n * Create a telephone encounter for a patient via the FHIR connection.\n */\n async fhirCreateEncounter(\n wid: string,\n connectionId: number,\n data: FhirCreateEncounterRequest\n ): Promise<FhirMethodResponse> {\n return this.fetch(\n `w/${wid}/app-connections/fhir/connections/${connectionId}/encounters/create`,\n {\n method: 'POST',\n body: JSON.stringify(data),\n }\n );\n }\n}\n","import { BaseApiClient } from './base';\nimport { PaginatedResponse } from '../types';\nimport {\n File,\n FileFormData,\n FileFolder,\n FileFolderFormData,\n FileSortField,\n SortOrder,\n FileLabel,\n FileLabelFormData,\n FileConversionResponse,\n FileUploadRequest,\n FileUploadResponse,\n FolderSearchResult,\n FolderSearchParams,\n FileSharingResponse,\n FolderSharingResponse,\n FileRoleAssociationResponse,\n UpdateFileRoleAssociationsRequest,\n UpdateFileSharingRequest,\n PublicFileMetadata,\n PublicFolderContents,\n} from '../types/fileTypes';\n\nexport class FilesApi extends BaseApiClient {\n async getFiles(\n wid: string,\n options: {\n folderId?: number;\n page?: number;\n pageSize?: number;\n sortBy?: FileSortField;\n sortOrder?: SortOrder;\n search?: string;\n } = {}\n ): Promise<PaginatedResponse<File>> {\n const params = new URLSearchParams();\n if (options.folderId) params.append('folder_id', options.folderId.toString());\n if (options.page) params.append('page', options.page.toString());\n if (options.pageSize) params.append('pageSize', options.pageSize.toString());\n if (options.sortBy) params.append('sortBy', options.sortBy);\n if (options.sortOrder) params.append('sortOrder', options.sortOrder);\n if (options.search) params.append('search', options.search);\n return this.fetch<PaginatedResponse<File>>(\n `w/${wid}/files${params.toString() ? `?${params.toString()}` : ''}`\n );\n }\n\n async getFile(wid: string, id: number): Promise<File> {\n return this.fetch<File>(`w/${wid}/files/${id}`);\n }\n\n async createFile(wid: string, file: FileFormData): Promise<File> {\n return this.fetch<File>(`w/${wid}/files`, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify(file),\n });\n }\n\n async updateFile(wid: string, id: number, file: Partial<FileFormData>): Promise<File> {\n return this.fetch<File>(`w/${wid}/files/${id}`, {\n method: 'PUT',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify(file),\n });\n }\n\n async deleteFile(wid: string, id: number): Promise<void> {\n return this.fetch(`w/${wid}/files/${id}`, {\n method: 'DELETE',\n });\n }\n\n async convertFile(\n wid: string,\n fileId: number,\n format: 'text' | 'markdown' | 'pdf' = 'pdf'\n ): Promise<FileConversionResponse> {\n return this.fetch<FileConversionResponse>(\n `w/${wid}/files/${fileId}/convert?format=${format}`,\n {\n method: 'POST',\n }\n );\n }\n\n async generateFileUploadUrl(\n wid: string,\n request: FileUploadRequest\n ): Promise<FileUploadResponse> {\n return this.fetch<FileUploadResponse>(`w/${wid}/files/upload-url`, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify(request),\n });\n }\n\n // Directories API\n async getFolders(wid: string, parentId?: number): Promise<FileFolder[]> {\n const params = new URLSearchParams();\n if (parentId) params.append('parent_id', parentId.toString());\n return this.fetch<FileFolder[]>(\n `w/${wid}/folders${params.toString() ? `?${params.toString()}` : ''}`\n );\n }\n\n async getFolder(wid: string, id: number): Promise<FileFolder> {\n return this.fetch<FileFolder>(`w/${wid}/folders/${id}`);\n }\n\n async createFolder(wid: string, directory: FileFolderFormData): Promise<FileFolder> {\n return this.fetch<FileFolder>(`w/${wid}/folders`, {\n method: 'POST',\n body: JSON.stringify(directory),\n });\n }\n\n async updateFolder(\n wid: string,\n id: number,\n directory: Partial<FileFolderFormData>\n ): Promise<FileFolder> {\n return this.fetch<FileFolder>(`w/${wid}/folders/${id}`, {\n method: 'PUT',\n body: JSON.stringify(directory),\n });\n }\n\n async deleteFolder(wid: string, id: number): Promise<void> {\n return this.fetch(`w/${wid}/folders/${id}`, {\n method: 'DELETE',\n });\n }\n\n async reindexFolder(wid: string, id: number): Promise<{ status: string; message: string }> {\n return this.fetch<{ status: string; message: string }>(`w/${wid}/folders/${id}/reindex`, {\n method: 'POST',\n });\n }\n\n async searchFolder(\n wid: string,\n id: number,\n params: FolderSearchParams\n ): Promise<FolderSearchResult[]> {\n const searchParams = new URLSearchParams();\n searchParams.append('query', params.query);\n if (params.topK) searchParams.append('top_k', params.topK.toString());\n\n return this.fetch<FolderSearchResult[]>(\n `w/${wid}/folders/${id}/search?${searchParams.toString()}`\n );\n }\n\n // File Labels API\n async getFileLabels(wid: string): Promise<FileLabel[]> {\n return this.fetch<FileLabel[]>(`w/${wid}/file-labels`);\n }\n\n async getFileLabel(wid: string, id: number): Promise<FileLabel> {\n return this.fetch<FileLabel>(`w/${wid}/file-labels/${id}`);\n }\n\n async getFileLabelByUuid(wid: string, uuid: string): Promise<FileLabel> {\n return this.fetch<FileLabel>(`w/${wid}/file-labels/${uuid}`);\n }\n\n async createFileLabel(wid: string, label: FileLabelFormData): Promise<FileLabel> {\n return this.fetch<FileLabel>(`w/${wid}/file-labels`, {\n method: 'POST',\n body: JSON.stringify(label),\n });\n }\n\n async updateFileLabel(\n wid: string,\n id: number,\n label: Partial<FileLabelFormData>\n ): Promise<FileLabel> {\n return this.fetch<FileLabel>(`w/${wid}/file-labels/${id}`, {\n method: 'PUT',\n body: JSON.stringify(label),\n });\n }\n\n async deleteFileLabel(wid: string, id: number): Promise<void> {\n return this.fetch(`w/${wid}/file-labels/${id}`, {\n method: 'DELETE',\n });\n }\n\n // File Sharing API\n async getFileSharing(wid: string, fileId: number): Promise<FileSharingResponse> {\n return this.fetch<FileSharingResponse>(`w/${wid}/files/${fileId}/sharing`);\n }\n\n async updateFileRoles(\n wid: string,\n fileId: number,\n data: UpdateFileRoleAssociationsRequest\n ): Promise<FileRoleAssociationResponse[]> {\n return this.fetch<FileRoleAssociationResponse[]>(`w/${wid}/files/${fileId}/sharing/roles`, {\n method: 'PUT',\n body: JSON.stringify(data),\n });\n }\n\n async removeFileRole(wid: string, fileId: number, roleId: number): Promise<void> {\n return this.fetch(`w/${wid}/files/${fileId}/sharing/roles/${roleId}`, {\n method: 'DELETE',\n });\n }\n\n // Folder Sharing API\n async getFolderSharing(wid: string, folderId: number): Promise<FolderSharingResponse> {\n return this.fetch<FolderSharingResponse>(`w/${wid}/folders/${folderId}/sharing`);\n }\n\n async updateFolderRoles(\n wid: string,\n folderId: number,\n data: UpdateFileRoleAssociationsRequest\n ): Promise<FileRoleAssociationResponse[]> {\n return this.fetch<FileRoleAssociationResponse[]>(\n `w/${wid}/folders/${folderId}/sharing/roles`,\n {\n method: 'PUT',\n body: JSON.stringify(data),\n }\n );\n }\n\n async removeFolderRole(wid: string, folderId: number, roleId: number): Promise<void> {\n return this.fetch(`w/${wid}/folders/${folderId}/sharing/roles/${roleId}`, {\n method: 'DELETE',\n });\n }\n\n // Batch Sharing API\n async updateFileSharing(\n wid: string,\n fileId: number,\n data: UpdateFileSharingRequest\n ): Promise<FileSharingResponse> {\n return this.fetch<FileSharingResponse>(`w/${wid}/files/${fileId}/sharing`, {\n method: 'PUT',\n body: JSON.stringify(data),\n });\n }\n\n async updateFolderSharing(\n wid: string,\n folderId: number,\n data: UpdateFileSharingRequest\n ): Promise<FolderSharingResponse> {\n return this.fetch<FolderSharingResponse>(`w/${wid}/folders/${folderId}/sharing`, {\n method: 'PUT',\n body: JSON.stringify(data),\n });\n }\n\n // Public Sharing API (unauthenticated access to public files/folders)\n async getPublicFile(wid: string, fileId: number): Promise<PublicFileMetadata> {\n return this.fetch<PublicFileMetadata>(`w/${wid}/sharing/files/${fileId}`);\n }\n\n async getPublicFolder(\n wid: string,\n folderId: number,\n page = 1,\n pageSize = 100\n ): Promise<PublicFolderContents> {\n return this.fetch<PublicFolderContents>(\n `w/${wid}/sharing/folders/${folderId}?page=${page}&pageSize=${pageSize}`\n );\n }\n\n async getPublicFolderFiles(\n wid: string,\n folderId: number,\n page = 1,\n pageSize = 100\n ): Promise<{ files: PublicFileMetadata[]; pagination?: any }> {\n return this.fetch<{ files: PublicFileMetadata[]; pagination?: any }>(\n `w/${wid}/sharing/folders/${folderId}/files?page=${page}&pageSize=${pageSize}`\n );\n }\n}\n","import { Email, Inbox, InboxCreateRequest, InboxUpdateRequest, PaginatedResponse } from '../types';\nimport { EmailConversionResponse } from '../types/communicationTypes';\nimport { BaseApiClient } from './base';\n\nexport class InboxesApi extends BaseApiClient {\n async getInboxes(wid: string): Promise<PaginatedResponse<Inbox>> {\n return this.fetch<PaginatedResponse<Inbox>>(`w/${wid}/inboxes`);\n }\n\n async getInbox(wid: string, id: number): Promise<Inbox> {\n return this.fetch<Inbox>(`w/${wid}/inboxes/${id}`);\n }\n\n async createInbox(wid: string, inbox: InboxCreateRequest): Promise<Inbox> {\n return this.fetch<Inbox>(`w/${wid}/inboxes`, {\n method: 'POST',\n body: JSON.stringify(inbox),\n });\n }\n\n async updateInbox(wid: string, id: number, inbox: InboxUpdateRequest): Promise<Inbox> {\n return this.fetch<Inbox>(`w/${wid}/inboxes/${id}`, {\n method: 'PUT',\n body: JSON.stringify(inbox),\n });\n }\n\n async deleteInbox(wid: string, id: number): Promise<void> {\n return this.fetch(`w/${wid}/inboxes/${id}`, {\n method: 'DELETE',\n });\n }\n\n async getInboxEmails(\n wid: string,\n inboxId: number,\n options: {\n limit?: number;\n offset?: number;\n includeAttachments?: boolean;\n } = {}\n ): Promise<PaginatedResponse<Email>> {\n const params = new URLSearchParams();\n if (options.limit) params.append('limit', options.limit.toString());\n if (options.offset) params.append('offset', options.offset.toString());\n if (options.includeAttachments)\n params.append('include_attachments', options.includeAttachments.toString());\n\n return this.fetch<PaginatedResponse<Email>>(\n `w/${wid}/inboxes/${inboxId}/emails${params.toString() ? `?${params.toString()}` : ''}`\n );\n }\n\n async getInboxEmail(wid: string, inboxId: number, emailId: number): Promise<Email> {\n return this.fetch<Email>(`w/${wid}/inboxes/${inboxId}/emails/${emailId}`);\n }\n\n async markEmailAsRead(wid: string, inboxId: number, emailId: number): Promise<Email> {\n return this.fetch<Email>(`w/${wid}/inboxes/${inboxId}/emails/${emailId}/mark-read`, {\n method: 'POST',\n });\n }\n\n async markEmailAsUnread(wid: string, inboxId: number, emailId: number): Promise<Email> {\n return this.fetch<Email>(`w/${wid}/inboxes/${inboxId}/emails/${emailId}/unread`, {\n method: 'POST',\n });\n }\n\n async convertEmail(\n wid: string,\n emailId: number,\n format: 'text' | 'markdown' | 'pdf' = 'pdf'\n ): Promise<EmailConversionResponse> {\n return this.fetch<EmailConversionResponse>(\n `w/${wid}/inboxes/emails/${emailId}/convert?format=${format}`,\n {\n method: 'POST',\n }\n );\n }\n\n async downloadEmailAttachment(\n wid: string,\n inboxId: number,\n emailId: number,\n attachmentId: string\n ): Promise<ArrayBuffer> {\n const response = await this.fetchRaw(\n `w/${wid}/inboxes/${inboxId}/emails/${emailId}/attachments/${attachmentId}`\n );\n return response.arrayBuffer();\n }\n\n async getInboxThreads(wid: string, inboxId: number): Promise<any> {\n return this.fetch(`w/${wid}/inboxes/${inboxId}/threads`);\n }\n\n async getThreadEmails(wid: string, inboxId: number, assignmentId: number): Promise<any> {\n return this.fetch(`w/${wid}/inboxes/${inboxId}/assignments/${assignmentId}/emails`);\n }\n\n async getChatEmails(wid: string, inboxId: number, chatId: number): Promise<any> {\n return this.fetch(`w/${wid}/inboxes/${inboxId}/chats/${chatId}/emails`);\n }\n}\n","import type {\n CreateInquiryRequest,\n Inquiry,\n InquiryListResponse,\n UpdateInquiryRequest,\n} from '../types/inquiryTypes';\nimport { BaseApiClient } from './base';\n\nexport class InquiriesApi extends BaseApiClient {\n /**\n * Create a new inquiry (public endpoint)\n */\n async createInquiry(data: CreateInquiryRequest): Promise<Inquiry> {\n return this.fetch<Inquiry>('inquiries', {\n method: 'POST',\n body: JSON.stringify(data),\n });\n }\n\n /**\n * List all inquiries (superuser only)\n */\n async listInquiries(params?: {\n page?: number;\n pageSize?: number;\n inquiryType?: string;\n }): Promise<InquiryListResponse> {\n const searchParams = new URLSearchParams();\n if (params?.page) searchParams.append('page', params.page.toString());\n if (params?.pageSize) searchParams.append('page_size', params.pageSize.toString());\n if (params?.inquiryType) searchParams.append('inquiry_type', params.inquiryType);\n\n const queryString = searchParams.toString();\n const url = queryString ? `inquiries?${queryString}` : 'inquiries';\n\n return this.fetch<InquiryListResponse>(url);\n }\n\n /**\n * Get a specific inquiry (superuser only)\n */\n async getInquiry(inquiryId: number): Promise<Inquiry> {\n return this.fetch<Inquiry>(`inquiries/${inquiryId}`);\n }\n\n /**\n * Update an inquiry (superuser only)\n */\n async updateInquiry(inquiryId: number, data: UpdateInquiryRequest): Promise<Inquiry> {\n return this.fetch<Inquiry>(`inquiries/${inquiryId}`, {\n method: 'PATCH',\n body: JSON.stringify(data),\n });\n }\n\n /**\n * Delete an inquiry (superuser only)\n */\n async deleteInquiry(inquiryId: number): Promise<void> {\n await this.fetch(`inquiries/${inquiryId}`, {\n method: 'DELETE',\n });\n }\n\n /**\n * Export inquiries to CSV (superuser only)\n * @param statusFilter Optional status filter: 'new', 'in_progress', 'done', or undefined for all\n * @returns A Blob containing the CSV data\n */\n async exportInquiriesCsv(statusFilter?: string): Promise<Blob> {\n const params = new URLSearchParams();\n if (statusFilter) {\n params.append('status_filter', statusFilter);\n }\n\n const queryString = params.toString();\n const url = queryString ? `inquiries/export/csv?${queryString}` : 'inquiries/export/csv';\n\n const response = await fetch(`${this.baseUrl}/api/v2/${url}`, {\n method: 'GET',\n credentials: 'include',\n });\n\n if (!response.ok) {\n const error = await response.json();\n throw new Error(error.detail || 'Export failed');\n }\n\n return response.blob();\n }\n}\n","import {\n AppConnectionDirectoryResponse,\n AppConnectionItem,\n CreateAppConnectionRequest,\n PlatformAppConnectionResponse,\n UpdateAppConnectionRequest,\n} from '../types/appConnectionTypes';\nimport { BaseApiClient } from './base';\n\nexport class AppConnectionsApi extends BaseApiClient {\n /**\n * List all app connection definitions the workspace can access.\n * Returns static metadata only (no instance counts or active data).\n */\n async listAvailableAppConnections(wid: string): Promise<AppConnectionDirectoryResponse> {\n return this.fetch<AppConnectionDirectoryResponse>(`w/${wid}/app-connections/available`);\n }\n\n /**\n * List all active app connections across all types.\n * Returns a union of platform apps, MCP servers, Discord bots,\n * Slack apps, and FHIR connections.\n */\n async listAppConnections(wid: string): Promise<AppConnectionItem[]> {\n return this.fetch<AppConnectionItem[]>(`w/${wid}/app-connections`);\n }\n\n /**\n * Enable a platform app connection in the workspace.\n */\n async enablePlatformApp(\n wid: string,\n data: CreateAppConnectionRequest\n ): Promise<PlatformAppConnectionResponse> {\n return this.fetch<PlatformAppConnectionResponse>(`w/${wid}/app-connections/platform-apps`, {\n method: 'POST',\n body: JSON.stringify(data),\n });\n }\n\n /**\n * Get platform app connection details by UUID.\n */\n async getPlatformApp(wid: string, appUuid: string): Promise<PlatformAppConnectionResponse> {\n return this.fetch<PlatformAppConnectionResponse>(\n `w/${wid}/app-connections/platform-apps/${appUuid}`\n );\n }\n\n /**\n * Update platform app config, enabled status, or name.\n */\n async updatePlatformApp(\n wid: string,\n appUuid: string,\n data: UpdateAppConnectionRequest\n ): Promise<PlatformAppConnectionResponse> {\n return this.fetch<PlatformAppConnectionResponse>(\n `w/${wid}/app-connections/platform-apps/${appUuid}`,\n {\n method: 'PATCH',\n body: JSON.stringify(data),\n }\n );\n }\n\n /**\n * Disable (soft) or delete (hard) a platform app connection.\n */\n async deletePlatformApp(\n wid: string,\n appUuid: string,\n hard: boolean = false\n ): Promise<{ disabled?: boolean; deleted?: boolean; uuid: string }> {\n const params = hard ? '?hard=true' : '';\n return this.fetch<{ disabled?: boolean; deleted?: boolean; uuid: string }>(\n `w/${wid}/app-connections/platform-apps/${appUuid}${params}`,\n { method: 'DELETE' }\n );\n }\n}\n","import type {\n McpServerToolsResponse,\n McpServerResourcesResponse,\n McpServerPromptsResponse,\n McpTestConnectionResponse,\n} from '../types/appConnectionTypes';\nimport { McpServer, McpServerFormData, McpServerUpdateFormData } from '../types';\nimport { BaseApiClient } from './base';\n\nexport class McpServersApi extends BaseApiClient {\n /**\n * List all MCP servers in a workspace\n */\n async getMcpServers(wid: string): Promise<McpServer[]> {\n return this.fetch<McpServer[]>(`w/${wid}/app-connections/mcp-servers`);\n }\n\n /**\n * Get a specific MCP server\n */\n async getMcpServer(wid: string, serverId: number): Promise<McpServer> {\n return this.fetch<McpServer>(`w/${wid}/app-connections/mcp-servers/${serverId}`);\n }\n\n /**\n * Create a new MCP server\n */\n async createMcpServer(wid: string, data: McpServerFormData): Promise<McpServer> {\n return this.fetch<McpServer>(`w/${wid}/app-connections/mcp-servers`, {\n method: 'POST',\n body: JSON.stringify(data),\n });\n }\n\n /**\n * Update an existing MCP server\n */\n async updateMcpServer(\n wid: string,\n serverId: number,\n data: McpServerUpdateFormData\n ): Promise<McpServer> {\n return this.fetch<McpServer>(`w/${wid}/app-connections/mcp-servers/${serverId}`, {\n method: 'PUT',\n body: JSON.stringify(data),\n });\n }\n\n /**\n * Delete an MCP server\n */\n async deleteMcpServer(wid: string, serverId: number): Promise<{ message: string }> {\n return this.fetch<{ message: string }>(`w/${wid}/app-connections/mcp-servers/${serverId}`, {\n method: 'DELETE',\n });\n }\n\n /**\n * Enable an MCP server\n */\n async enableMcpServer(wid: string, serverId: number): Promise<McpServer> {\n return this.fetch<McpServer>(`w/${wid}/app-connections/mcp-servers/${serverId}/enable`, {\n method: 'POST',\n });\n }\n\n /**\n * Disable an MCP server\n */\n async disableMcpServer(wid: string, serverId: number): Promise<McpServer> {\n return this.fetch<McpServer>(`w/${wid}/app-connections/mcp-servers/${serverId}/disable`, {\n method: 'POST',\n });\n }\n\n /**\n * Get tools for an MCP server.\n *\n * Returns 403 with `detail.code === 'auth_required'` when the\n * current user needs to authenticate first.\n */\n async getMcpServerTools(wid: string, serverId: number): Promise<McpServerToolsResponse> {\n return this.fetch<McpServerToolsResponse>(\n `w/${wid}/app-connections/mcp-servers/${serverId}/tools`\n );\n }\n\n /**\n * Get resources for an MCP server.\n *\n * Returns 403 with `detail.code === 'auth_required'` when the\n * current user needs to authenticate first.\n */\n async getMcpServerResources(wid: string, serverId: number): Promise<McpServerResourcesResponse> {\n return this.fetch<McpServerResourcesResponse>(\n `w/${wid}/app-connections/mcp-servers/${serverId}/resources`\n );\n }\n\n /**\n * Get prompts for an MCP server.\n *\n * Returns 403 with `detail.code === 'auth_required'` when the\n * current user needs to authenticate first.\n */\n async getMcpServerPrompts(wid: string, serverId: number): Promise<McpServerPromptsResponse> {\n return this.fetch<McpServerPromptsResponse>(\n `w/${wid}/app-connections/mcp-servers/${serverId}/prompts`\n );\n }\n\n /**\n * Test connection to an MCP server.\n */\n async testMcpServerConnection(\n wid: string,\n serverId: number\n ): Promise<McpTestConnectionResponse> {\n return this.fetch<McpTestConnectionResponse>(\n `w/${wid}/app-connections/mcp-servers/${serverId}/test`,\n { method: 'POST' }\n );\n }\n\n /**\n * Discover OAuth metadata for an authorization server\n */\n async discoverOAuthMetadata(\n wid: string,\n data: { oauthServerUrl: string }\n ): Promise<{ success: boolean; metadata?: any; error?: string }> {\n return this.fetch<{ success: boolean; metadata?: any; error?: string }>(\n `w/${wid}/app-connections/mcp-servers/oauth-discovery`,\n {\n method: 'POST',\n body: JSON.stringify(data),\n }\n );\n }\n}\n","import {\n CreateWorkspaceMemberRequest,\n Member,\n MemberFilter,\n MemberFilterFormData,\n MemberFormData,\n MemberLabel,\n MemberLabelFormData,\n MemberRole,\n MemberRoleFormData,\n MemberSortField,\n PaginatedResponse,\n SortOrder,\n UpdateWorkspaceMemberRequest,\n} from '../types';\nimport type {\n CancelCredentialChangeInviteResponse,\n CredentialChangeInviteResponse,\n CredentialType,\n PendingCredentialChangeInvite,\n} from '../types/accountTypes';\nimport type {\n CreateMemberFieldRequest,\n MemberField,\n MemberFieldDefinitionListResponse,\n MemberFieldListResponse,\n UpdateMemberFieldRequest,\n} from '../types/memberFieldTypes';\nimport type {\n AnonymousMemberResolution,\n CurrentMember,\n ExpireAnonymousMemberRequest,\n PendingAnonymousMembersResponse,\n ResolveAnonymousMemberRequest,\n} from '../types/memberTypes';\nimport { BaseApiClient } from './base';\n\nexport class MembersApi extends BaseApiClient {\n async getCurrentMember(wid: string): Promise<CurrentMember> {\n return this.fetch<CurrentMember>(`w/${wid}/me`);\n }\n\n /**\n * Get all members owned by the current member in this workspace.\n * Returns the authenticated member plus any members they own (via owner_id).\n * Used by the member switcher to show available identities.\n */\n async getOwnedMembers(wid: string): Promise<Member[]> {\n return this.fetch<Member[]>(`w/${wid}/members/owned`);\n }\n\n /**\n * Switch to a different member identity owned by the current member.\n * Sets the actingAsMemberUuid cookie for subsequent requests.\n * Uses UUID (not ID) to prevent cross-workspace identity confusion.\n */\n async switchMember(wid: string, memberUuid: string): Promise<Member> {\n return this.fetch<Member>(`w/${wid}/members/switch`, {\n method: 'POST',\n body: JSON.stringify({ memberUuid }),\n });\n }\n\n /**\n * Clear the member switch and return to the authenticated member.\n */\n async clearMemberSwitch(wid: string): Promise<Member> {\n return this.fetch<Member>(`w/${wid}/members/switch`, {\n method: 'DELETE',\n });\n }\n\n async updateCurrentMember(wid: string, member: Partial<MemberFormData>): Promise<Member> {\n return this.fetch<Member>(`w/${wid}/me`, {\n method: 'PUT',\n body: JSON.stringify(member),\n });\n }\n\n async getWorkspaceMembers(\n wid: string,\n page: number = 1,\n pageSize: number = 10,\n filters?: { query?: string; role?: string } | any[],\n search?: string,\n role?: string,\n sortBy?: MemberSortField,\n sortOrder?: SortOrder,\n memberType?: 'member' | 'test' | 'anonymous' | 'agent',\n isArchived: boolean = false,\n isManager?: boolean,\n memberTypes?: ('member' | 'test' | 'anonymous' | 'agent')[],\n hasAccount?: boolean,\n excludeIds?: number[]\n ): Promise<PaginatedResponse<Member>> {\n const params = new URLSearchParams();\n if (page) params.append('page', page.toString());\n if (pageSize) params.append('pageSize', pageSize.toString());\n if (sortBy) params.append('sortBy', sortBy);\n if (sortOrder) params.append('sortOrder', sortOrder);\n\n // Handle both old and new filter formats\n if (filters) {\n if (Array.isArray(filters)) {\n // New format: array of filter rules\n params.append('filters', JSON.stringify(filters));\n } else {\n // Old format: simple query/role object\n params.append('filters', JSON.stringify(filters));\n }\n }\n\n // Handle individual search and role parameters\n if (search) params.append('search', search);\n if (role) params.append('role', role);\n // Filter by multiple member types (takes precedence on server)\n if (memberTypes && memberTypes.length > 0) {\n params.append('member_types', memberTypes.join(','));\n } else if (memberType) {\n // Deprecated: Filter by single member type\n params.append('member_type', memberType);\n }\n // Filter by archived status (defaults to false for non-archived members)\n params.append('is_archived', isArchived.toString());\n // Filter by manage_workspace permission\n if (isManager !== undefined) {\n params.append('is_manager', isManager.toString());\n }\n // Filter by account association\n if (hasAccount !== undefined) {\n params.append('has_account', hasAccount.toString());\n }\n // Exclude specific member IDs\n if (excludeIds && excludeIds.length > 0) {\n params.append('exclude_ids', excludeIds.join(','));\n }\n\n return this.fetch<PaginatedResponse<Member>>(`w/${wid}/members?${params.toString()}`);\n }\n\n async getWorkspaceMember(wid: string, memberId: number): Promise<Member> {\n return this.fetch<Member>(`w/${wid}/members/${memberId}`);\n }\n\n async createWorkspaceMember(wid: string, data: CreateWorkspaceMemberRequest): Promise<Member> {\n return this.fetch<Member>(`w/${wid}/members`, {\n method: 'POST',\n body: JSON.stringify(data),\n });\n }\n\n async updateMember(\n wid: string,\n memberId: number,\n data: UpdateWorkspaceMemberRequest\n ): Promise<Member> {\n return this.fetch<Member>(`w/${wid}/members/${memberId}`, {\n method: 'PUT',\n body: JSON.stringify(data),\n });\n }\n\n async deleteMember(wid: string, memberId: number, options?: { force?: boolean }): Promise<void> {\n const params = new URLSearchParams();\n if (options?.force) {\n params.append('force', 'true');\n }\n const queryString = params.toString();\n const url = `w/${wid}/members/${memberId}${queryString ? `?${queryString}` : ''}`;\n return this.fetch(url, {\n method: 'DELETE',\n });\n }\n\n async archiveMember(wid: string, memberId: number): Promise<Member> {\n return this.fetch<Member>(`w/${wid}/members/${memberId}/archive`, {\n method: 'POST',\n });\n }\n\n async unarchiveMember(wid: string, memberId: number): Promise<Member> {\n return this.fetch<Member>(`w/${wid}/members/${memberId}/unarchive`, {\n method: 'POST',\n });\n }\n\n // Member Filter APIs\n async getMemberFilters(wid: string): Promise<MemberFilter[]> {\n return this.fetch<MemberFilter[]>(`w/${wid}/member-filters`);\n }\n\n async getMemberFilter(wid: string, filterId: number): Promise<MemberFilter> {\n return this.fetch<MemberFilter>(`w/${wid}/member-filters/${filterId}`);\n }\n\n async createMemberFilter(wid: string, data: MemberFilterFormData): Promise<MemberFilter> {\n return this.fetch<MemberFilter>(`w/${wid}/member-filters`, {\n method: 'POST',\n body: JSON.stringify(data),\n });\n }\n\n async updateMemberFilter(\n wid: string,\n filterId: number,\n data: Partial<MemberFilterFormData>\n ): Promise<MemberFilter> {\n return this.fetch<MemberFilter>(`w/${wid}/member-filters/${filterId}`, {\n method: 'PUT',\n body: JSON.stringify(data),\n });\n }\n\n async deleteMemberFilter(wid: string, filterId: number): Promise<void> {\n return this.fetch(`w/${wid}/member-filters/${filterId}`, {\n method: 'DELETE',\n });\n }\n\n async getMemberFilterCount(wid: string, filterId: number): Promise<{ count: number }> {\n return this.fetch<{ count: number }>(`w/${wid}/member-filters/${filterId}/count`);\n }\n\n // Member Labels API\n async getMemberLabels(wid: string): Promise<MemberLabel[]> {\n return this.fetch<MemberLabel[]>(`w/${wid}/member-labels`);\n }\n\n async getMemberLabel(wid: string, id: number): Promise<MemberLabel> {\n return this.fetch<MemberLabel>(`w/${wid}/member-labels/${id}`);\n }\n\n async getMemberLabelByUuid(wid: string, uuid: string): Promise<MemberLabel> {\n return this.fetch<MemberLabel>(`w/${wid}/member-labels/${uuid}`);\n }\n\n async createMemberLabel(wid: string, label: MemberLabelFormData): Promise<MemberLabel> {\n return this.fetch<MemberLabel>(`w/${wid}/member-labels`, {\n method: 'POST',\n body: JSON.stringify(label),\n });\n }\n\n async updateMemberLabel(\n wid: string,\n id: number,\n label: Partial<MemberLabelFormData>\n ): Promise<MemberLabel> {\n return this.fetch<MemberLabel>(`w/${wid}/member-labels/${id}`, {\n method: 'PUT',\n body: JSON.stringify(label),\n });\n }\n\n async deleteMemberLabel(wid: string, id: number): Promise<void> {\n return this.fetch(`w/${wid}/member-labels/${id}`, {\n method: 'DELETE',\n });\n }\n\n // Member Roles API\n async getMemberRoles(wid: string): Promise<MemberRole[]> {\n return this.fetch<MemberRole[]>(`w/${wid}/member-roles`);\n }\n\n async getMemberRole(wid: string, id: number): Promise<MemberRole> {\n return this.fetch<MemberRole>(`w/${wid}/member-roles/${id}`);\n }\n\n async getMemberRoleByUuid(wid: string, uuid: string): Promise<MemberRole> {\n return this.fetch<MemberRole>(`w/${wid}/member-roles/${uuid}`);\n }\n\n async createMemberRole(wid: string, memberRole: MemberRoleFormData): Promise<MemberRole> {\n return this.fetch<MemberRole>(`w/${wid}/member-roles`, {\n method: 'POST',\n body: JSON.stringify(memberRole),\n });\n }\n\n async updateMemberRole(\n wid: string,\n id: number,\n memberRole: MemberRoleFormData\n ): Promise<MemberRole> {\n return this.fetch<MemberRole>(`w/${wid}/member-roles/${id}`, {\n method: 'PUT',\n body: JSON.stringify(memberRole),\n });\n }\n\n async deleteMemberRole(wid: string, id: number): Promise<void> {\n return this.fetch(`w/${wid}/member-roles/${id}`, {\n method: 'DELETE',\n });\n }\n\n // Import/Export Members API\n async importMembers(\n wid: string,\n file: File,\n newMemberRoleId: number,\n onProgress?: (progress: any) => void\n ): Promise<any> {\n const formData = new FormData();\n formData.append('file', file);\n\n const params = new URLSearchParams();\n params.append('new_member_role_id', newMemberRoleId.toString());\n\n const response = await fetch(\n `${this.baseUrl}/api/v2/w/${wid}/members/import?${params.toString()}`,\n {\n method: 'POST',\n body: formData,\n credentials: 'include',\n }\n );\n\n if (!response.ok) {\n const error = await response.json();\n\n // Handle structured error response with validation errors\n if (error.detail && typeof error.detail === 'object') {\n const { message, errors } = error.detail;\n if (errors && Array.isArray(errors)) {\n // Create a custom error object with both message and errors\n const importError = new Error(message || 'Import validation failed');\n (importError as any).validationErrors = errors;\n throw importError;\n }\n }\n\n // Handle simple string error\n throw new Error(error.detail || 'Import failed');\n }\n\n if (onProgress && response.body) {\n const reader = response.body.getReader();\n const decoder = new TextDecoder();\n\n while (true) {\n const { done, value } = await reader.read();\n if (done) break;\n\n const chunk = decoder.decode(value);\n const lines = chunk.split('\\n').filter((line) => line.trim());\n\n for (const line of lines) {\n try {\n const progress = JSON.parse(line);\n onProgress(progress);\n } catch (e) {\n // Skip invalid JSON lines\n }\n }\n }\n }\n\n return { success: true };\n }\n\n async exportMembers(\n wid: string,\n selectedFields: string[],\n selectedDataTypes: number[],\n memberType?: 'member' | 'test' | 'anonymous'\n ): Promise<Blob> {\n const params = new URLSearchParams();\n selectedFields.forEach((field) => params.append('selected_fields', field));\n selectedDataTypes.forEach((id) => params.append('selected_data_types', id.toString()));\n if (memberType) params.append('member_type', memberType);\n\n const response = await fetch(\n `${this.baseUrl}/api/v2/w/${wid}/members/export?${params.toString()}`,\n {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n credentials: 'include',\n }\n );\n\n if (!response.ok) {\n const error = await response.json();\n throw new Error(error.detail || 'Export failed');\n }\n\n return response.blob();\n }\n\n async getMembersMessageActivity(\n wid: string,\n memberIds: number[],\n days: number = 30\n ): Promise<Record<number, number[]>> {\n const memberIdsStr = memberIds.join(',');\n const params = new URLSearchParams();\n params.append('member_ids', memberIdsStr);\n params.append('days', days.toString());\n\n return this.fetch<Record<number, number[]>>(\n `w/${wid}/members/message-activity?${params.toString()}`\n );\n }\n\n // ============================================================================\n // Member Fields API\n // ============================================================================\n\n /**\n * Get all fields for a member.\n * Returns key-value fields including service-owned fields (which are read-only).\n */\n async getMemberFields(wid: string, memberId: number): Promise<MemberFieldListResponse> {\n return this.fetch<MemberFieldListResponse>(`w/${wid}/members/${memberId}/fields`);\n }\n\n /**\n * Get available field definitions for this workspace.\n * Returns field keys/labels from active app connections and user-created fields.\n */\n async getMemberFieldDefinitions(wid: string): Promise<MemberFieldDefinitionListResponse> {\n return this.fetch<MemberFieldDefinitionListResponse>(`w/${wid}/member-field-definitions`);\n }\n\n /**\n * Create a new field for a member.\n * User-created fields have no service and can be modified/deleted.\n */\n async createMemberField(\n wid: string,\n memberId: number,\n request: CreateMemberFieldRequest\n ): Promise<MemberField> {\n return this.fetch<MemberField>(`w/${wid}/members/${memberId}/fields`, {\n method: 'POST',\n body: JSON.stringify(request),\n });\n }\n\n /**\n * Update a member field value.\n * Only user-created fields (no service_id) can be modified.\n */\n async updateMemberField(\n wid: string,\n memberId: number,\n fieldId: number,\n request: UpdateMemberFieldRequest\n ): Promise<MemberField> {\n return this.fetch<MemberField>(`w/${wid}/members/${memberId}/fields/${fieldId}`, {\n method: 'PUT',\n body: JSON.stringify(request),\n });\n }\n\n /**\n * Delete a member field.\n * Only user-created fields (no service_id) can be deleted.\n */\n async deleteMemberField(wid: string, memberId: number, fieldId: number): Promise<void> {\n await this.fetch(`w/${wid}/members/${memberId}/fields/${fieldId}`, {\n method: 'DELETE',\n });\n }\n\n // ============================================================================\n // Credential Change Invitations API\n // ============================================================================\n\n /**\n * Invite a member to update their credential (email or phone).\n * Admin-only. Sends invitation to member's current contact method.\n */\n async inviteMemberCredentialUpdate(\n wid: string,\n memberId: number,\n credentialType: CredentialType,\n newValue: string\n ): Promise<CredentialChangeInviteResponse> {\n return this.fetch<CredentialChangeInviteResponse>(\n `w/${wid}/members/${memberId}/invite-credential-update`,\n {\n method: 'POST',\n body: JSON.stringify({\n credential_type: credentialType,\n new_value: newValue,\n }),\n }\n );\n }\n\n /**\n * Cancel a pending credential update invitation.\n * Admin-only.\n */\n async cancelCredentialUpdateInvite(\n wid: string,\n inviteId: number\n ): Promise<CancelCredentialChangeInviteResponse> {\n return this.fetch<CancelCredentialChangeInviteResponse>(\n `w/${wid}/credential-update-invites/${inviteId}`,\n { method: 'DELETE' }\n );\n }\n\n /**\n * List pending credential update invitations for the workspace.\n * Admin-only. Optionally filter by member.\n */\n async getCredentialUpdateInvites(\n wid: string,\n memberId?: number\n ): Promise<PendingCredentialChangeInvite[]> {\n const params = new URLSearchParams();\n if (memberId) params.append('member_id', memberId.toString());\n return this.fetch<PendingCredentialChangeInvite[]>(\n `w/${wid}/credential-update-invites?${params.toString()}`\n );\n }\n\n // ============================================================================\n // Anonymous Member Resolution API\n // ============================================================================\n\n /**\n * List anonymous member resolutions with filtering and pagination.\n * Returns pending resolutions by default.\n */\n async getAnonymousResolutions(\n wid: string,\n options?: {\n status?: 'pending' | 'resolved' | 'expired';\n page?: number;\n pageSize?: number;\n }\n ): Promise<PendingAnonymousMembersResponse> {\n const params = new URLSearchParams();\n if (options?.status) params.append('status', options.status);\n if (options?.page) params.append('page', options.page.toString());\n if (options?.pageSize) params.append('pageSize', options.pageSize.toString());\n\n const queryString = params.toString();\n const url = `w/${wid}/members/anonymous-resolutions${queryString ? `?${queryString}` : ''}`;\n return this.fetch<PendingAnonymousMembersResponse>(url);\n }\n\n /**\n * Get a single anonymous member resolution by ID.\n */\n async getAnonymousResolution(\n wid: string,\n resolutionId: number\n ): Promise<AnonymousMemberResolution> {\n return this.fetch<AnonymousMemberResolution>(\n `w/${wid}/members/anonymous-resolutions/${resolutionId}`\n );\n }\n\n /**\n * Resolve an anonymous member to an existing member.\n * This merges the anonymous member's data into the target member\n * and archives the anonymous member.\n */\n async resolveAnonymousMember(\n wid: string,\n resolutionId: number,\n request: ResolveAnonymousMemberRequest\n ): Promise<AnonymousMemberResolution> {\n return this.fetch<AnonymousMemberResolution>(\n `w/${wid}/members/anonymous-resolutions/${resolutionId}/resolve`,\n {\n method: 'POST',\n body: JSON.stringify(request),\n }\n );\n }\n\n /**\n * Expire an anonymous member without resolving to a real member.\n * This archives the anonymous member without merging their data.\n */\n async expireAnonymousMember(\n wid: string,\n resolutionId: number,\n request?: ExpireAnonymousMemberRequest\n ): Promise<AnonymousMemberResolution> {\n return this.fetch<AnonymousMemberResolution>(\n `w/${wid}/members/anonymous-resolutions/${resolutionId}/expire`,\n {\n method: 'POST',\n body: JSON.stringify(request || {}),\n }\n );\n }\n}\n","import { BaseApiClient } from './base';\nimport {\n Milestone,\n MilestoneFormData,\n PaginatedResponse,\n MilestoneSortField,\n SortOrder,\n} from '../types';\n\nexport class MilestonesApi extends BaseApiClient {\n async getMilestones(\n wid: string,\n options: {\n page?: number;\n pageSize?: number;\n sortBy?: MilestoneSortField;\n sortOrder?: SortOrder;\n } = {}\n ): Promise<PaginatedResponse<Milestone>> {\n const params = new URLSearchParams();\n if (options.page) params.append('page', options.page.toString());\n if (options.pageSize) params.append('pageSize', options.pageSize.toString());\n if (options.sortBy) params.append('sortBy', options.sortBy);\n if (options.sortOrder) params.append('sortOrder', options.sortOrder);\n\n return this.fetch<PaginatedResponse<Milestone>>(\n `w/${wid}/milestones${params.toString() ? `?${params.toString()}` : ''}`\n );\n }\n\n async getMilestone(wid: string, id: number): Promise<Milestone> {\n return this.fetch<Milestone>(`w/${wid}/milestones/${id}`);\n }\n\n async createMilestone(wid: string, milestone: MilestoneFormData): Promise<Milestone> {\n return this.fetch<Milestone>(`w/${wid}/milestones`, {\n method: 'POST',\n body: JSON.stringify(milestone),\n });\n }\n\n async updateMilestone(\n wid: string,\n id: number,\n milestone: Partial<MilestoneFormData>\n ): Promise<Milestone> {\n return this.fetch<Milestone>(`w/${wid}/milestones/${id}`, {\n method: 'PUT',\n body: JSON.stringify(milestone),\n });\n }\n\n async deleteMilestone(wid: string, id: number): Promise<void> {\n return this.fetch(`w/${wid}/milestones/${id}`, {\n method: 'DELETE',\n });\n }\n}","import { BaseApiClient } from './base';\n\nexport interface MondayBoard {\n id: string;\n name: string;\n}\n\n/** Status label from Monday.com column settings */\nexport interface MondayStatusLabel {\n /** The display text of the status */\n label?: string;\n /** The color of the status (CSS color name or hex) */\n color?: string;\n /** The index used when creating webhooks for specific status changes */\n index?: number;\n /** Whether this status is deactivated */\n is_deactivated?: boolean;\n}\n\n/** Column settings - contains labels for status columns */\nexport interface MondayColumnSettings {\n /** Labels for status columns, keyed by index */\n labels?: Record<string, MondayStatusLabel | string>;\n /** Label colors for status columns */\n labels_colors?: Record<string, { color: string; border: string; var_name: string }>;\n}\n\nexport interface MondayColumn {\n id: string;\n title: string;\n type: string;\n /** Column settings - contains labels for status columns */\n settings?: MondayColumnSettings | null;\n}\n\nexport interface BoardsResponse {\n boards: MondayBoard[];\n}\n\nexport interface ColumnsResponse {\n columns: MondayColumn[];\n}\n\nexport interface WebhookResponse {\n id: string;\n board_id?: string;\n event?: string;\n}\n\nexport interface MondayGroup {\n id: string;\n title: string;\n}\n\nexport interface GroupsResponse {\n groups: MondayGroup[];\n}\n\n/** Configuration for webhook event types that require additional parameters */\nexport interface WebhookConfig {\n /** Column ID - required for change_specific_column_value and change_status_column_value */\n columnId?: string;\n /** Column value filter - for change_status_column_value, use {\"index\": N} */\n columnValue?: { index: number } | Record<string, unknown>;\n /** Group ID - required for item_moved_to_specific_group */\n groupId?: string;\n}\n\nexport interface CreateWebhookParams {\n board_id: string;\n url: string;\n event: string;\n /** Optional config for event types that support filtering */\n config?: WebhookConfig;\n}\n\nexport interface CurrentUserInfoResponse {\n connected: boolean;\n user_name?: string;\n user_email?: string;\n account_name?: string;\n}\n\n/** Detailed webhook info fetched from Monday.com */\nexport interface WebhookDetails {\n id: string;\n board_id?: string;\n event?: string;\n config?: WebhookConfig;\n}\n\n/**\n * API for Monday.com integration operations\n */\nexport class MondayIntegrationApi extends BaseApiClient {\n /**\n * Get list of boards from the user's Monday.com account\n */\n async getBoards(): Promise<BoardsResponse> {\n return this.fetch<BoardsResponse>('integrations/monday/boards');\n }\n\n /**\n * Get columns for a specific Monday.com board\n */\n async getBoardColumns(boardId: string): Promise<ColumnsResponse> {\n return this.fetch<ColumnsResponse>(`integrations/monday/boards/${boardId}/columns`);\n }\n\n /**\n * Create a webhook in Monday.com\n */\n async createWebhook(params: CreateWebhookParams): Promise<WebhookResponse> {\n return this.fetch<WebhookResponse>('integrations/monday/webhooks', {\n method: 'POST',\n body: JSON.stringify(params),\n });\n }\n\n /**\n * Delete a webhook from Monday.com\n */\n async deleteWebhook(webhookId: string): Promise<{ status: string; webhook_id: string }> {\n return this.fetch<{ status: string; webhook_id: string }>(\n `integrations/monday/webhooks/${webhookId}`,\n { method: 'DELETE' }\n );\n }\n\n /**\n * Get details of a specific webhook from Monday.com\n * Returns 404 if the webhook no longer exists\n */\n async getWebhook(boardId: string, webhookId: string): Promise<WebhookDetails> {\n return this.fetch<WebhookDetails>(\n `integrations/monday/boards/${boardId}/webhooks/${webhookId}`\n );\n }\n\n /**\n * Get groups for a specific Monday.com board\n */\n async getBoardGroups(boardId: string): Promise<GroupsResponse> {\n return this.fetch<GroupsResponse>(`integrations/monday/boards/${boardId}/groups`);\n }\n\n /**\n * Get info about the current user's Monday.com connection\n */\n async getCurrentUserInfo(): Promise<CurrentUserInfoResponse> {\n return this.fetch<CurrentUserInfoResponse>('integrations/monday/current-user');\n }\n}\n","import { BaseApiClient } from './base';\n\nexport interface NotificationRule {\n id?: number;\n noticeType: string;\n memberId: number;\n workflowId?: number | null;\n prompt?: string | null;\n notifySms: boolean;\n notifyEmail: boolean;\n notifyVoice: boolean;\n}\n\nexport interface NotificationRuleCreate {\n noticeType: string;\n memberId: number;\n workflowId?: number | null;\n prompt?: string | null;\n notifySms: boolean;\n notifyEmail: boolean;\n notifyVoice: boolean;\n}\n\nexport interface NotificationRuleUpdate {\n noticeType?: string;\n memberId?: number;\n workflowId?: number | null;\n prompt?: string | null;\n notifySms?: boolean;\n notifyEmail?: boolean;\n notifyVoice?: boolean;\n}\n\nexport class NotificationRulesApi extends BaseApiClient {\n async getNotificationRules(wid: string): Promise<NotificationRule[]> {\n return this.fetch<NotificationRule[]>(`w/${wid}/notification-rules`);\n }\n\n async createNotificationRule(\n wid: string,\n rule: NotificationRuleCreate\n ): Promise<NotificationRule> {\n return this.fetch<NotificationRule>(`w/${wid}/notification-rules`, {\n method: 'POST',\n body: JSON.stringify(rule),\n });\n }\n\n async updateNotificationRule(\n wid: string,\n ruleId: number,\n rule: NotificationRuleUpdate\n ): Promise<NotificationRule> {\n return this.fetch<NotificationRule>(`w/${wid}/notification-rules/${ruleId}`, {\n method: 'PUT',\n body: JSON.stringify(rule),\n });\n }\n\n async deleteNotificationRule(wid: string, ruleId: number): Promise<{ message: string }> {\n return this.fetch<{ message: string }>(`w/${wid}/notification-rules/${ruleId}`, {\n method: 'DELETE',\n });\n }\n}\n","import { BaseApiClient } from './base';\nimport type {\n AddGroupMemberRequest,\n ChatMessage,\n CreateOperatorGroupRequest,\n LiveOperatorsResponse,\n OperatorGroup,\n OperatorGroupMember,\n PresenceStatusResponse,\n UpdateOperatorGroupRequest,\n} from '../types';\n\nexport class OperatorApi extends BaseApiClient {\n async getOperatorGroups(wid: string): Promise<OperatorGroup[]> {\n return this.fetch<OperatorGroup[]>(`w/${wid}/operator/groups`);\n }\n\n async getOperatorGroup(wid: string, groupId: number): Promise<OperatorGroup> {\n return this.fetch<OperatorGroup>(`w/${wid}/operator/groups/${groupId}`);\n }\n\n async createOperatorGroup(\n wid: string,\n data: CreateOperatorGroupRequest\n ): Promise<OperatorGroup> {\n return this.fetch<OperatorGroup>(`w/${wid}/operator/groups`, {\n method: 'POST',\n body: JSON.stringify(data),\n });\n }\n\n async updateOperatorGroup(\n wid: string,\n groupId: number,\n data: UpdateOperatorGroupRequest\n ): Promise<OperatorGroup> {\n return this.fetch<OperatorGroup>(`w/${wid}/operator/groups/${groupId}`, {\n method: 'PUT',\n body: JSON.stringify(data),\n });\n }\n\n async deleteOperatorGroup(wid: string, groupId: number): Promise<void> {\n return this.fetch(`w/${wid}/operator/groups/${groupId}`, {\n method: 'DELETE',\n });\n }\n\n async addGroupMember(\n wid: string,\n groupId: number,\n data: AddGroupMemberRequest\n ): Promise<OperatorGroupMember> {\n return this.fetch<OperatorGroupMember>(`w/${wid}/operator/groups/${groupId}/members`, {\n method: 'POST',\n body: JSON.stringify(data),\n });\n }\n\n async removeGroupMember(wid: string, groupId: number, memberId: number): Promise<void> {\n return this.fetch(`w/${wid}/operator/groups/${groupId}/members/${memberId}`, {\n method: 'DELETE',\n });\n }\n\n async getLiveOperators(wid: string): Promise<LiveOperatorsResponse> {\n return this.fetch<LiveOperatorsResponse>(`w/${wid}/presence/live`);\n }\n\n async getPresenceStatus(wid: string): Promise<PresenceStatusResponse> {\n return this.fetch<PresenceStatusResponse>(`w/${wid}/presence/me`);\n }\n\n async disconnectPresence(wid: string): Promise<{ ok: boolean }> {\n return this.fetch<{ ok: boolean }>(`w/${wid}/presence/disconnect-self`, {\n method: 'POST',\n });\n }\n\n // Operator chat message methods\n\n async getOperatorChatMessages(\n wid: string,\n chatId: number,\n limit = 50,\n offset = 0\n ): Promise<ChatMessage[]> {\n return this.fetch<ChatMessage[]>(\n `w/${wid}/operator/chats/${chatId}/messages?limit=${limit}&offset=${offset}`\n );\n }\n\n async sendOperatorMessage(\n wid: string,\n chatId: number,\n content: string\n ): Promise<{\n id: number;\n uuid: string | null;\n role: string;\n content: string;\n createdAt: string | null;\n }> {\n return this.fetch(`w/${wid}/operator/chats/${chatId}/messages`, {\n method: 'POST',\n body: JSON.stringify({ content }),\n });\n }\n}\n","import { BaseApiClient } from './base';\n\n// Third-party OAuth connection types\nexport type OAuthProviderSlug = 'google_calendar' | 'gmail' | 'monday' | 'google' | 'tesla';\n\nexport interface OAuthConnectionStatus {\n connected: boolean;\n email?: string;\n}\n\nexport interface OAuthAuthorizeResponse {\n authorization_url: string;\n}\n\n/**\n * Build the OAuth endpoint path for a provider\n */\nfunction getOAuthPath(\n providerSlug: OAuthProviderSlug,\n action: 'status' | 'authorize' | 'disconnect'\n): string {\n // google_calendar uses /oauth/google/calendar/{action}\n // gmail uses /oauth/google/gmail/{action}\n // monday uses /oauth/monday/{action}\n // google uses /oauth/google/{action}\n if (providerSlug === 'google_calendar') {\n return `oauth/google/calendar/${action}`;\n } else if (providerSlug === 'gmail') {\n return `oauth/google/gmail/${action}`;\n } else if (providerSlug === 'monday') {\n return `oauth/monday/${action}`;\n } else {\n return `oauth/${providerSlug}/${action}`;\n }\n}\n\n/**\n * API for managing third-party OAuth connections (Google Calendar, Gmail, Monday, etc.)\n */\nexport class OAuthConnectionsApi extends BaseApiClient {\n /**\n * Get the connection status for an OAuth provider\n */\n async getConnectionStatus(\n providerSlug: OAuthProviderSlug\n ): Promise<OAuthConnectionStatus | null> {\n const path = getOAuthPath(providerSlug, 'status');\n return this.fetchRoot<OAuthConnectionStatus | null>(path);\n }\n\n /**\n * Get the authorization URL to start OAuth flow\n */\n async getAuthorizationUrl(providerSlug: OAuthProviderSlug): Promise<OAuthAuthorizeResponse> {\n const path = getOAuthPath(providerSlug, 'authorize');\n return this.fetchRoot<OAuthAuthorizeResponse>(path);\n }\n\n /**\n * Disconnect an OAuth provider\n */\n async disconnect(providerSlug: OAuthProviderSlug): Promise<void> {\n const path = getOAuthPath(providerSlug, 'disconnect');\n return this.fetchRoot<void>(path, { method: 'DELETE' });\n }\n}\n\n// Internal OAuth flow types (when Gravity Rail is the OAuth provider)\nexport interface AuthorizeRequest {\n clientId: string;\n workspaceUuid?: string | null;\n scopes: string[];\n redirectUri: string;\n state?: string;\n codeChallenge?: string;\n codeChallengeMethod?: string;\n}\n\nexport interface AuthorizeResponse {\n code: string;\n state?: string;\n}\n\nexport interface TokenRequest {\n grant_type: 'authorization_code' | 'refresh_token';\n code?: string;\n refresh_token?: string;\n client_id: string;\n client_secret: string;\n redirect_uri?: string;\n code_verifier?: string;\n}\n\nexport interface TokenResponse {\n access_token: string;\n token_type: string;\n expires_in: number;\n refresh_token?: string;\n scope: string;\n}\n\n/**\n * Individual scope metadata from the API\n */\nexport interface ApiScope {\n name: string;\n category: string;\n description: string;\n implies: string[];\n dangerous: boolean;\n}\n\n/**\n * Response from the scopes endpoint\n */\nexport interface ScopesListResponse {\n scopes: ApiScope[];\n categories: string[];\n}\n\nexport class OAuthApi extends BaseApiClient {\n /**\n * Get all available OAuth/API key scopes with metadata.\n *\n * This returns the full scope definitions from the backend,\n * ensuring the UI always shows the correct scopes.\n */\n async getAvailableScopes(): Promise<ScopesListResponse> {\n return this.fetch<ScopesListResponse>('oauth/scopes');\n }\n\n /**\n * Create an authorization code for OAuth flow\n * This is called after the user approves the authorization request\n */\n async authorize(request: AuthorizeRequest): Promise<AuthorizeResponse> {\n return this.fetch<AuthorizeResponse>('oauth/authorize', {\n method: 'POST',\n body: JSON.stringify(request),\n });\n }\n\n /**\n * Exchange authorization code for access token\n */\n async exchangeOAuthToken(request: TokenRequest): Promise<TokenResponse> {\n // OAuth token endpoint expects form-encoded data\n const formData = new URLSearchParams();\n formData.append('grant_type', request.grant_type);\n if (request.code) formData.append('code', request.code);\n if (request.refresh_token) formData.append('refresh_token', request.refresh_token);\n formData.append('client_id', request.client_id);\n formData.append('client_secret', request.client_secret);\n if (request.redirect_uri) formData.append('redirect_uri', request.redirect_uri);\n if (request.code_verifier) formData.append('code_verifier', request.code_verifier);\n\n return this.fetch<TokenResponse>('oauth/token', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n },\n body: formData.toString(),\n });\n }\n}\n","import { BaseApiClient } from './base';\nimport {\n PhoneNumber,\n PhoneNumberFormData,\n PhoneCall,\n SMSMessage,\n PaginatedResponse,\n} from '../types';\n\nexport class PhoneNumbersApi extends BaseApiClient {\n async getPhoneNumbers(wid: string): Promise<PhoneNumber[]> {\n return this.fetch<PhoneNumber[]>(`w/${wid}/phone-numbers`);\n }\n\n async getAvailablePhoneNumbers(\n wid: string\n ): Promise<Array<{ phoneNumber: string; friendlyName: string }>> {\n return this.fetch<Array<{ phoneNumber: string; friendlyName: string }>>(\n `w/${wid}/phone-numbers/available-numbers`\n );\n }\n\n async requestPhoneNumber(\n wid: string,\n phoneNumber: string\n ): Promise<{ status: string; message: string }> {\n return this.fetch<{ status: string; message: string }>(`w/${wid}/phone-numbers/request`, {\n method: 'POST',\n body: JSON.stringify({ phone_number: phoneNumber }),\n });\n }\n\n async getPhoneNumber(wid: string, id: number): Promise<PhoneNumber> {\n return this.fetch<PhoneNumber>(`w/${wid}/phone-numbers/${id}`);\n }\n\n async createPhoneNumber(wid: string, phoneNumber: PhoneNumberFormData): Promise<PhoneNumber> {\n return this.fetch<PhoneNumber>(`w/${wid}/phone-numbers`, {\n method: 'POST',\n body: JSON.stringify(phoneNumber),\n });\n }\n\n async updatePhoneNumber(\n wid: string,\n id: number,\n phoneNumber: PhoneNumberFormData\n ): Promise<PhoneNumber> {\n return this.fetch<PhoneNumber>(`w/${wid}/phone-numbers/${id}`, {\n method: 'PUT',\n body: JSON.stringify(phoneNumber),\n });\n }\n\n async deletePhoneNumber(wid: string, id: number): Promise<void> {\n return this.fetch(`w/${wid}/phone-numbers/${id}`, {\n method: 'DELETE',\n });\n }\n\n async getPhoneNumberCalls(\n wid: string,\n id: number,\n page: number = 1,\n pageSize: number = 10\n ): Promise<PaginatedResponse<PhoneCall>> {\n return this.fetch<PaginatedResponse<PhoneCall>>(\n `w/${wid}/phone-numbers/${id}/calls?page=${page}&pageSize=${pageSize}`\n );\n }\n\n async getPhoneNumberMessages(\n wid: string,\n id: number,\n page: number = 1,\n pageSize: number = 10\n ): Promise<PaginatedResponse<SMSMessage>> {\n return this.fetch<PaginatedResponse<SMSMessage>>(\n `w/${wid}/phone-numbers/${id}/messages?page=${page}&pageSize=${pageSize}`\n );\n }\n}\n","import { BaseApiClient } from './base';\nimport type {\n PronunciationEntry,\n CreatePronunciationEntryFormData,\n UpdatePronunciationEntryFormData,\n PronunciationImportEntry,\n PronunciationImportResult,\n RecommendedVoice,\n} from '../types';\n\nexport class PronunciationsApi extends BaseApiClient {\n async getPronunciationEntries(\n orgUuid: string,\n options: { scope?: 'org' | 'account'; accountId?: number } = {}\n ): Promise<PronunciationEntry[]> {\n const params = new URLSearchParams();\n if (options.scope) params.append('scope', options.scope);\n if (options.accountId) params.append('accountId', options.accountId.toString());\n const response = await this.fetch<{ items: PronunciationEntry[]; total: number }>(\n `o/${orgUuid}/pronunciations${params.toString() ? `?${params.toString()}` : ''}`\n );\n return response.items;\n }\n\n async createPronunciationEntry(\n orgUuid: string,\n data: CreatePronunciationEntryFormData\n ): Promise<PronunciationEntry> {\n return this.fetch<PronunciationEntry>(`o/${orgUuid}/pronunciations`, {\n method: 'POST',\n body: JSON.stringify(data),\n });\n }\n\n async updatePronunciationEntry(\n orgUuid: string,\n id: number,\n data: UpdatePronunciationEntryFormData\n ): Promise<PronunciationEntry> {\n return this.fetch<PronunciationEntry>(`o/${orgUuid}/pronunciations/${id}`, {\n method: 'PUT',\n body: JSON.stringify(data),\n });\n }\n\n async deletePronunciationEntry(orgUuid: string, id: number): Promise<void> {\n return this.fetch(`o/${orgUuid}/pronunciations/${id}`, {\n method: 'DELETE',\n });\n }\n\n async exportPronunciationEntries(\n orgUuid: string\n ): Promise<Array<{ term: string; respelling: string }>> {\n return this.fetch(`o/${orgUuid}/pronunciations/export`);\n }\n\n async importPronunciationEntries(\n orgUuid: string,\n entries: PronunciationImportEntry[]\n ): Promise<PronunciationImportResult> {\n return this.fetch<PronunciationImportResult>(`o/${orgUuid}/pronunciations/import`, {\n method: 'POST',\n body: JSON.stringify({ entries }),\n });\n }\n\n async getMyPronunciations(): Promise<PronunciationEntry[]> {\n const response = await this.fetch<{ items: PronunciationEntry[]; total: number }>(\n 'account/pronunciations'\n );\n return response.items;\n }\n\n async createMyPronunciation(\n data: Pick<CreatePronunciationEntryFormData, 'term' | 'respelling'>\n ): Promise<PronunciationEntry> {\n return this.fetch<PronunciationEntry>('account/pronunciations', {\n method: 'POST',\n body: JSON.stringify(data),\n });\n }\n\n async updateMyPronunciation(\n id: number,\n data: UpdatePronunciationEntryFormData\n ): Promise<PronunciationEntry> {\n return this.fetch<PronunciationEntry>(`account/pronunciations/${id}`, {\n method: 'PUT',\n body: JSON.stringify(data),\n });\n }\n\n async deleteMyPronunciation(id: number): Promise<void> {\n return this.fetch(`account/pronunciations/${id}`, {\n method: 'DELETE',\n });\n }\n\n async suggestPronunciations(term: string, language?: string): Promise<string[]> {\n const response = await this.fetch<{ suggestions: string[] }>(\n 'account/pronunciations/suggest',\n {\n method: 'POST',\n body: JSON.stringify({ term, ...(language && { language }) }),\n }\n );\n return response.suggestions;\n }\n\n async getRecommendedVoices(): Promise<RecommendedVoice[]> {\n const response = await this.fetch<{ voices: RecommendedVoice[] }>(\n 'account/pronunciations/voices'\n );\n return response.voices;\n }\n\n async previewPronunciation(data: {\n respelling: string;\n voiceModel: string;\n }): Promise<ArrayBuffer> {\n const response = await this.fetchRaw('account/pronunciations/preview', {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({\n respelling: data.respelling,\n voice_model: data.voiceModel,\n }),\n });\n return response.arrayBuffer();\n }\n}\n","import { BaseApiClient } from './base';\nimport type {\n AssignQualificationRequest,\n CreateQualificationRequest,\n CreateRequirementRequest,\n MemberQualification,\n OverrideCriterionRequest,\n PaginatedResponse,\n Qualification,\n QualificationMemberEntry,\n QualificationRequirement,\n QualificationStatusLogEntry,\n QualificationSubmission,\n ReviewSubmissionRequest,\n SubmitAnswerRequest,\n UpdateMemberQualificationRequest,\n UpdateQualificationRequest,\n UpdateRequirementRequest,\n} from '../types';\n\nexport class QualificationsApi extends BaseApiClient {\n async getQualifications(wid: string): Promise<Qualification[]> {\n return this.fetch<Qualification[]>(`w/${wid}/qualifications`);\n }\n\n async getQualification(wid: string, id: number): Promise<Qualification> {\n return this.fetch<Qualification>(`w/${wid}/qualifications/${id}`);\n }\n\n async createQualification(\n wid: string,\n data: CreateQualificationRequest\n ): Promise<Qualification> {\n return this.fetch<Qualification>(`w/${wid}/qualifications`, {\n method: 'POST',\n body: JSON.stringify(data),\n });\n }\n\n async updateQualification(\n wid: string,\n id: number,\n data: UpdateQualificationRequest\n ): Promise<Qualification> {\n return this.fetch<Qualification>(`w/${wid}/qualifications/${id}`, {\n method: 'PUT',\n body: JSON.stringify(data),\n });\n }\n\n async getQualificationMembers(\n wid: string,\n id: number,\n params?: { status?: string; memberType?: string; page?: number; pageSize?: number }\n ): Promise<PaginatedResponse<QualificationMemberEntry>> {\n const searchParams = new URLSearchParams();\n if (params?.status) searchParams.set('status', params.status);\n if (params?.memberType) searchParams.set('memberType', params.memberType);\n if (params?.page) searchParams.set('page', params.page.toString());\n if (params?.pageSize) searchParams.set('pageSize', params.pageSize.toString());\n const qs = searchParams.toString();\n return this.fetch<PaginatedResponse<QualificationMemberEntry>>(\n `w/${wid}/qualifications/${id}/members${qs ? `?${qs}` : ''}`\n );\n }\n\n async archiveQualification(wid: string, id: number): Promise<void> {\n return this.fetch(`w/${wid}/qualifications/${id}`, {\n method: 'DELETE',\n });\n }\n\n async getMemberQualifications(wid: string, memberId: number): Promise<MemberQualification[]> {\n return this.fetch<MemberQualification[]>(\n `w/${wid}/qualifications/members/${memberId}/qualifications`\n );\n }\n\n async assignQualification(\n wid: string,\n memberId: number,\n data: AssignQualificationRequest\n ): Promise<MemberQualification> {\n return this.fetch<MemberQualification>(\n `w/${wid}/qualifications/members/${memberId}/qualifications`,\n {\n method: 'POST',\n body: JSON.stringify(data),\n }\n );\n }\n\n async updateMemberQualification(\n wid: string,\n memberId: number,\n qualificationId: number,\n data: UpdateMemberQualificationRequest\n ): Promise<MemberQualification> {\n return this.fetch<MemberQualification>(\n `w/${wid}/qualifications/members/${memberId}/qualifications/${qualificationId}`,\n {\n method: 'PUT',\n body: JSON.stringify(data),\n }\n );\n }\n\n async removeMemberQualification(\n wid: string,\n memberId: number,\n qualificationId: number\n ): Promise<void> {\n return this.fetch(\n `w/${wid}/qualifications/members/${memberId}/qualifications/${qualificationId}`,\n {\n method: 'DELETE',\n }\n );\n }\n\n async getMemberQualificationLog(\n wid: string,\n memberId: number,\n qualificationId: number\n ): Promise<QualificationStatusLogEntry[]> {\n return this.fetch<QualificationStatusLogEntry[]>(\n `w/${wid}/qualifications/members/${memberId}/qualifications/${qualificationId}/log`\n );\n }\n\n // ===== Requirements =====\n\n async listRequirements(\n wid: string,\n qualificationId: number\n ): Promise<QualificationRequirement[]> {\n return this.fetch<QualificationRequirement[]>(\n `w/${wid}/qualifications/${qualificationId}/requirements`\n );\n }\n\n async createRequirement(\n wid: string,\n qualificationId: number,\n data: CreateRequirementRequest\n ): Promise<QualificationRequirement> {\n return this.fetch<QualificationRequirement>(\n `w/${wid}/qualifications/${qualificationId}/requirements`,\n {\n method: 'POST',\n body: JSON.stringify(data),\n }\n );\n }\n\n async getRequirement(wid: string, requirementId: number): Promise<QualificationRequirement> {\n return this.fetch<QualificationRequirement>(\n `w/${wid}/qualifications/requirements/${requirementId}`\n );\n }\n\n async updateRequirement(\n wid: string,\n requirementId: number,\n data: UpdateRequirementRequest\n ): Promise<QualificationRequirement> {\n return this.fetch<QualificationRequirement>(\n `w/${wid}/qualifications/requirements/${requirementId}`,\n {\n method: 'PUT',\n body: JSON.stringify(data),\n }\n );\n }\n\n async deleteRequirement(wid: string, requirementId: number): Promise<void> {\n return this.fetch(`w/${wid}/qualifications/requirements/${requirementId}`, {\n method: 'DELETE',\n });\n }\n\n // ===== Submissions =====\n\n async listSubmissions(\n wid: string,\n qualificationId: number,\n params?: { status?: string; memberId?: number }\n ): Promise<QualificationSubmission[]> {\n const searchParams = new URLSearchParams();\n if (params?.status) searchParams.set('status', params.status);\n if (params?.memberId) searchParams.set('memberId', params.memberId.toString());\n const qs = searchParams.toString();\n return this.fetch<QualificationSubmission[]>(\n `w/${wid}/qualifications/${qualificationId}/submissions${qs ? `?${qs}` : ''}`\n );\n }\n\n async getSubmission(wid: string, submissionId: number): Promise<QualificationSubmission> {\n return this.fetch<QualificationSubmission>(\n `w/${wid}/qualifications/submissions/${submissionId}`\n );\n }\n\n async submitAnswer(\n wid: string,\n requirementId: number,\n data: SubmitAnswerRequest\n ): Promise<QualificationSubmission> {\n return this.fetch<QualificationSubmission>(\n `w/${wid}/qualifications/requirements/${requirementId}/submit`,\n {\n method: 'POST',\n body: JSON.stringify(data),\n }\n );\n }\n\n async startScenario(wid: string, requirementId: number): Promise<QualificationSubmission> {\n return this.fetch<QualificationSubmission>(\n `w/${wid}/qualifications/requirements/${requirementId}/start-scenario`,\n {\n method: 'POST',\n }\n );\n }\n\n async retrySubmission(wid: string, submissionId: number): Promise<void> {\n await this.fetch(`w/${wid}/qualifications/submissions/${submissionId}/retry`, {\n method: 'DELETE',\n });\n }\n\n async submitForReview(wid: string, qualificationId: number): Promise<MemberQualification> {\n return this.fetch<MemberQualification>(\n `w/${wid}/qualifications/members/me/qualifications/${qualificationId}/submit`,\n {\n method: 'POST',\n }\n );\n }\n\n async reviewSubmission(\n wid: string,\n submissionId: number,\n data: ReviewSubmissionRequest\n ): Promise<QualificationSubmission> {\n return this.fetch<QualificationSubmission>(\n `w/${wid}/qualifications/submissions/${submissionId}/review`,\n {\n method: 'PUT',\n body: JSON.stringify(data),\n }\n );\n }\n\n async overrideCriterionScore(\n wid: string,\n submissionId: number,\n criterionId: number,\n data: OverrideCriterionRequest\n ): Promise<QualificationSubmission> {\n return this.fetch<QualificationSubmission>(\n `w/${wid}/qualifications/submissions/${submissionId}/criteria/${criterionId}`,\n {\n method: 'PUT',\n body: JSON.stringify(data),\n }\n );\n }\n}\n","import { BaseApiClient } from './base';\n\nexport interface ModelUsageStats {\n model: string;\n provider: string;\n type: string;\n message_count: number;\n prompt_tokens: number;\n completion_tokens: number;\n total_tokens: number;\n cached_tokens: number;\n audio_input_tokens: number;\n audio_output_tokens: number;\n total_cost: number;\n average_tokens_per_message: number;\n average_cost_per_message: number;\n ai_units: number;\n multiplier: number;\n}\n\nexport interface ProviderUsageSummary {\n provider: string;\n total_messages: number;\n total_tokens: number;\n total_cached_tokens: number;\n total_audio_input_tokens: number;\n total_audio_output_tokens: number;\n total_cost: number;\n total_ai_units: number;\n models: ModelUsageStats[];\n}\n\nexport interface AIUsageReport {\n workspace_id: string;\n workspace_name: string;\n report_period_start: string;\n report_period_end: string;\n total_messages: number;\n total_tokens: number;\n total_cached_tokens: number;\n total_audio_input_tokens: number;\n total_audio_output_tokens: number;\n total_cost: number;\n total_ai_units: number;\n by_provider: ProviderUsageSummary[];\n by_type: Record<\n string,\n { messages: number; tokens: number; cached_tokens: number; cost: number; ai_units: number }\n >;\n top_models: ModelUsageStats[];\n}\n\nexport interface AIUsageReportParams {\n start_date?: string;\n end_date?: string;\n}\n\nexport interface SMSUsageRow {\n date: string;\n phoneNumberId: number;\n phoneNumber: string;\n phoneName?: string;\n inbound: number;\n outbound: number;\n totalChars: number;\n}\n\nexport interface PhoneAggregatedData {\n phoneNumberId: number;\n phoneNumber: string;\n phoneName?: string;\n totalMessages: number;\n inbound: number;\n outbound: number;\n totalChars: number;\n}\n\nexport interface DayAggregatedData {\n date: string;\n totalMessages: number;\n inbound: number;\n outbound: number;\n totalChars: number;\n}\n\nexport interface SMSUsageReport {\n workspaceId: string;\n workspaceUuid: string;\n workspaceName: string;\n reportPeriodStart: string;\n reportPeriodEnd: string;\n totalMessages: number;\n totalInbound: number;\n totalOutbound: number;\n totalCharacters: number;\n rows: SMSUsageRow[];\n}\n\nexport interface SMSUsageReportParams {\n start_date?: string;\n end_date?: string;\n}\n\nexport interface PhoneUsageRow {\n date: string;\n phoneNumberId: number;\n phoneNumber: string;\n phoneName?: string;\n inbound: number;\n outbound: number;\n totalDurationSeconds: number;\n}\n\nexport interface PhoneCallAggregatedData {\n phoneNumberId: number;\n phoneNumber: string;\n phoneName?: string;\n totalCalls: number;\n inbound: number;\n outbound: number;\n totalDurationSeconds: number;\n}\n\nexport interface DayCallAggregatedData {\n date: string;\n totalCalls: number;\n inbound: number;\n outbound: number;\n totalDurationSeconds: number;\n}\n\nexport interface PhoneUsageReport {\n workspaceId: string;\n workspaceUuid: string;\n workspaceName: string;\n reportPeriodStart: string;\n reportPeriodEnd: string;\n totalCalls: number;\n totalInbound: number;\n totalOutbound: number;\n totalDurationSeconds: number;\n rows: PhoneUsageRow[];\n}\n\nexport interface PhoneUsageReportParams {\n start_date?: string;\n end_date?: string;\n}\n\nexport interface MemberUsageReport {\n memberId: number;\n periodStart: string;\n periodEnd: string;\n totalChats: number;\n totalMessages: number;\n totalAiUnits: number;\n totalCost: number;\n}\n\nexport interface MemberUsageReportParams {\n start_date?: string;\n end_date?: string;\n}\n\n// Voice Usage Report Types\nexport interface STTUsageRow {\n date: string;\n provider: string;\n model: string;\n messageCount: number;\n totalDurationSeconds: number;\n cost: number;\n}\n\nexport interface TTSUsageRow {\n date: string;\n provider: string;\n model: string;\n messageCount: number;\n totalCharacters: number;\n cost: number;\n}\n\nexport interface STTProviderSummary {\n provider: string;\n model: string;\n totalDurationSeconds: number;\n totalMessages: number;\n cost: number;\n}\n\nexport interface TTSProviderSummary {\n provider: string;\n model: string;\n totalCharacters: number;\n totalMessages: number;\n cost: number;\n}\n\nexport interface VoiceUsageReport {\n workspaceId: string;\n workspaceUuid: string;\n workspaceName: string;\n reportPeriodStart: string;\n reportPeriodEnd: string;\n totalSttDurationSeconds: number;\n totalSttMessages: number;\n totalSttCost: number;\n totalTtsCharacters: number;\n totalTtsMessages: number;\n totalTtsCost: number;\n totalCost: number;\n sttByProvider: STTProviderSummary[];\n ttsByProvider: TTSProviderSummary[];\n sttRows: STTUsageRow[];\n ttsRows: TTSUsageRow[];\n}\n\nexport interface VoiceUsageReportParams {\n start_date?: string;\n end_date?: string;\n}\n\nexport class ReportsApi extends BaseApiClient {\n async getAIUsageReport(wid: string, params?: AIUsageReportParams): Promise<AIUsageReport> {\n const queryParams = new URLSearchParams();\n if (params?.start_date) {\n queryParams.append('start_date', params.start_date);\n }\n if (params?.end_date) {\n queryParams.append('end_date', params.end_date);\n }\n\n const queryString = queryParams.toString();\n const url = `w/${wid}/reports/ai-usage${queryString ? `?${queryString}` : ''}`;\n\n return this.fetch<AIUsageReport>(url);\n }\n\n async getSMSUsageReport(wid: string, params?: SMSUsageReportParams): Promise<SMSUsageReport> {\n const queryParams = new URLSearchParams();\n if (params?.start_date) {\n queryParams.append('start_date', params.start_date);\n }\n if (params?.end_date) {\n queryParams.append('end_date', params.end_date);\n }\n\n const queryString = queryParams.toString();\n const url = `w/${wid}/reports/sms-usage${queryString ? `?${queryString}` : ''}`;\n\n return this.fetch<SMSUsageReport>(url);\n }\n\n async getPhoneUsageReport(\n wid: string,\n params?: PhoneUsageReportParams\n ): Promise<PhoneUsageReport> {\n const queryParams = new URLSearchParams();\n if (params?.start_date) {\n queryParams.append('start_date', params.start_date);\n }\n if (params?.end_date) {\n queryParams.append('end_date', params.end_date);\n }\n\n const queryString = queryParams.toString();\n const url = `w/${wid}/reports/phone-usage${queryString ? `?${queryString}` : ''}`;\n\n return this.fetch<PhoneUsageReport>(url);\n }\n\n async getMemberUsage(\n wid: string,\n memberId: number,\n params?: MemberUsageReportParams\n ): Promise<MemberUsageReport> {\n const queryParams = new URLSearchParams();\n if (params?.start_date) {\n queryParams.append('start_date', params.start_date);\n }\n if (params?.end_date) {\n queryParams.append('end_date', params.end_date);\n }\n\n const queryString = queryParams.toString();\n const url = `w/${wid}/reports/member-usage/${memberId}${queryString ? `?${queryString}` : ''}`;\n\n return this.fetch<MemberUsageReport>(url);\n }\n\n async getVoiceUsageReport(\n wid: string,\n params?: VoiceUsageReportParams\n ): Promise<VoiceUsageReport> {\n const queryParams = new URLSearchParams();\n if (params?.start_date) {\n queryParams.append('start_date', params.start_date);\n }\n if (params?.end_date) {\n queryParams.append('end_date', params.end_date);\n }\n\n const queryString = queryParams.toString();\n const url = `w/${wid}/reports/voice-usage${queryString ? `?${queryString}` : ''}`;\n\n return this.fetch<VoiceUsageReport>(url);\n }\n}\n","import {\n FileUploadRequest,\n FileUploadResponse,\n MenuItem,\n MenuItemFormData,\n MenuTree,\n Page,\n PageFormData,\n PagesQueryParams,\n PaginatedResponse,\n RenderedPage,\n ReorderMenuItemsData,\n Site,\n SiteCountsResponse,\n SiteFormData,\n SiteSignupResponse,\n SiteSlugAvailability,\n} from '../types';\nimport { BaseApiClient } from './base';\n\nexport class SitesApi extends BaseApiClient {\n async getSites(wid: string): Promise<Site[]> {\n return this.fetch<Site[]>(`w/${wid}/sites`);\n }\n\n async checkSiteSlugAvailability(\n wid: string,\n slug: string,\n siteUuid: string | null = null\n ): Promise<SiteSlugAvailability> {\n const params = new URLSearchParams();\n if (siteUuid) params.append('site_uuid', siteUuid);\n return this.fetch<SiteSlugAvailability>(\n `w/${wid}/sites/available/${slug}?${params.toString()}`\n );\n }\n\n async checkSiteDomainAvailability(\n wid: string,\n domain: string,\n siteUuid: string | null = null\n ): Promise<{ result: boolean }> {\n const params = new URLSearchParams();\n if (siteUuid) params.append('site_uuid', siteUuid);\n return this.fetch<{ result: boolean }>(\n `w/${wid}/sites/domain-available/${domain}?${params.toString()}`\n );\n }\n\n async getSite(wid: string, id: number): Promise<Site> {\n return this.fetch<Site>(`w/${wid}/sites/${id}`);\n }\n\n async getSiteByUuid(wid: string, uuid: string): Promise<Site> {\n return this.fetch<Site>(`s/${wid}/${uuid}`);\n }\n\n async getSiteRenderedPage(\n wid: string,\n siteUuid: string,\n pageSlugOrId: string | number\n ): Promise<RenderedPage> {\n return this.fetch<RenderedPage>(`s/${wid}/${siteUuid}/pages/${pageSlugOrId}`);\n }\n\n async getSiteRenderedMenu(wid: string, siteUuid: string): Promise<MenuTree> {\n // Menu always includes all translations - client picks the right one\n return this.fetch<MenuTree>(`s/${wid}/${siteUuid}/menu`);\n }\n\n async siteSignup(wid: string, siteUuid: string): Promise<SiteSignupResponse> {\n return this.fetch<SiteSignupResponse>(`s/${wid}/${siteUuid}/signup`, {\n method: 'POST',\n });\n }\n\n // ===== SITE-SPECIFIC AUTHENTICATION METHODS =====\n async siteSendPhoneCode(\n wid: string,\n siteUuid: string,\n phoneNumber: string\n ): Promise<{ success: boolean; message: string }> {\n return this.fetch<{ success: boolean; message: string }>(\n `s/${wid}/${siteUuid}/auth/send-phone-code`,\n {\n method: 'POST',\n body: JSON.stringify({ phoneNumber }),\n }\n );\n }\n\n async siteSendEmailCode(\n wid: string,\n siteUuid: string,\n email: string\n ): Promise<{ success: boolean; message: string }> {\n return this.fetch<{ success: boolean; message: string }>(\n `s/${wid}/${siteUuid}/auth/send-email-code`,\n {\n method: 'POST',\n body: JSON.stringify({ email }),\n }\n );\n }\n\n async siteVerifyCode(\n wid: string,\n siteUuid: string,\n code: string,\n phoneNumber?: string,\n email?: string\n ): Promise<{ token: string; accountId: number; memberId?: number }> {\n // Verify code and auto-create account+member if needed\n const verifyResponse = await this.fetch<{\n token: string;\n accountId: number;\n memberId?: number;\n }>(`s/${wid}/${siteUuid}/auth/verify`, {\n method: 'POST',\n body: JSON.stringify({ code, phoneNumber, email }),\n });\n\n // Set the auth cookies using the local complete endpoint\n const completeResponse = await fetch(`/api/auth/complete`, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ token: verifyResponse.token }),\n });\n\n if (!completeResponse.ok) {\n throw new Error('Failed to complete authentication');\n }\n\n return verifyResponse;\n }\n\n async crawlSite(wid: string, siteId: number): Promise<Site> {\n return this.fetch<Site>(`w/${wid}/sites/${siteId}/crawl`, {\n method: 'POST',\n });\n }\n\n async createSite(wid: string, site: SiteFormData): Promise<Site> {\n return this.fetch<Site>(`w/${wid}/sites`, {\n method: 'POST',\n body: JSON.stringify(site),\n });\n }\n\n async updateSite(wid: string, id: number, site: Partial<SiteFormData>): Promise<Site> {\n return this.fetch<Site>(`w/${wid}/sites/${id}`, {\n method: 'PUT',\n body: JSON.stringify(site),\n });\n }\n\n async deleteSite(wid: string, id: number): Promise<void> {\n return this.fetch(`w/${wid}/sites/${id}`, {\n method: 'DELETE',\n });\n }\n\n async getSitePages(\n wid: string,\n siteId: number,\n options: PagesQueryParams = {}\n ): Promise<PaginatedResponse<Page>> {\n const params = new URLSearchParams();\n if (options.page) params.append('page', options.page.toString());\n if (options.pageSize) params.append('pageSize', options.pageSize.toString());\n if (options.sortBy) params.append('sortBy', options.sortBy);\n if (options.sortOrder) params.append('sortOrder', options.sortOrder);\n if (options.search) params.append('search', options.search);\n\n return this.fetch<PaginatedResponse<Page>>(\n `w/${wid}/sites/${siteId}/pages${params.toString() ? `?${params.toString()}` : ''}`\n );\n }\n\n async getPage(wid: string, siteId: number, pageId: number): Promise<Page> {\n return this.fetch<Page>(`w/${wid}/sites/${siteId}/pages/${pageId}`);\n }\n\n async getPageBySlug(wid: string, siteId: number, slug: string): Promise<Page> {\n return this.fetch<Page>(`w/${wid}/sites/${siteId}/pages/by-slug/${slug}`);\n }\n\n async createPage(wid: string, siteId: number, page: PageFormData): Promise<Page> {\n return this.fetch<Page>(`w/${wid}/sites/${siteId}/pages`, {\n method: 'POST',\n body: JSON.stringify(page),\n });\n }\n\n async updatePage(\n wid: string,\n siteId: number,\n pageId: number,\n page: Partial<PageFormData>\n ): Promise<Page> {\n return this.fetch<Page>(`w/${wid}/sites/${siteId}/pages/${pageId}`, {\n method: 'PUT',\n body: JSON.stringify(page),\n });\n }\n\n async deletePage(wid: string, siteId: number, pageId: number): Promise<void> {\n return this.fetch(`w/${wid}/sites/${siteId}/pages/${pageId}`, {\n method: 'DELETE',\n });\n }\n\n async getSiteCounts(wid: string, siteId: number): Promise<SiteCountsResponse> {\n return this.fetch<SiteCountsResponse>(`w/${wid}/sites/${siteId}/counts`);\n }\n\n // Menu management methods\n async getSiteMenu(wid: string, siteId: number): Promise<MenuTree> {\n return this.fetch<MenuTree>(`w/${wid}/sites/${siteId}/menu`);\n }\n\n async getMenuItems(wid: string, siteId: number, parentId?: number | null): Promise<MenuItem[]> {\n const params = new URLSearchParams();\n if (parentId !== undefined && parentId !== null) {\n params.append('parent_id', parentId.toString());\n }\n const query = params.toString();\n return this.fetch<MenuItem[]>(\n `w/${wid}/sites/${siteId}/menu/items${query ? `?${query}` : ''}`\n );\n }\n\n async createMenuItem(wid: string, siteId: number, item: MenuItemFormData): Promise<MenuItem> {\n return this.fetch<MenuItem>(`w/${wid}/sites/${siteId}/menu/items`, {\n method: 'POST',\n body: JSON.stringify(item),\n });\n }\n\n async updateMenuItem(\n wid: string,\n siteId: number,\n itemId: number,\n item: Partial<MenuItemFormData>\n ): Promise<MenuItem> {\n return this.fetch<MenuItem>(`w/${wid}/sites/${siteId}/menu/items/${itemId}`, {\n method: 'PUT',\n body: JSON.stringify(item),\n });\n }\n\n async deleteMenuItem(wid: string, siteId: number, itemId: number): Promise<void> {\n return this.fetch(`w/${wid}/sites/${siteId}/menu/items/${itemId}`, {\n method: 'DELETE',\n });\n }\n\n async reorderMenuItems(wid: string, siteId: number, data: ReorderMenuItemsData): Promise<void> {\n return this.fetch(`w/${wid}/sites/${siteId}/menu/reorder`, {\n method: 'POST',\n body: JSON.stringify(data),\n });\n }\n\n // Site media upload method\n async generateSiteMediaUploadUrl(\n wid: string,\n siteId: number,\n uploadRequest: FileUploadRequest\n ): Promise<FileUploadResponse> {\n return this.fetch<FileUploadResponse>(`w/${wid}/sites/${siteId}/media/upload-url`, {\n method: 'POST',\n body: JSON.stringify(uploadRequest),\n });\n }\n\n async siteGoogleOAuthInitiate(\n wid: string,\n siteUuid: string,\n origin: string\n ): Promise<{ authorizationUrl: string }> {\n const params = new URLSearchParams({ origin });\n return this.fetch<{ authorizationUrl: string }>(\n `s/${wid}/${siteUuid}/auth/google/initiate?${params.toString()}`\n );\n }\n}\n","import { BaseApiClient } from './base';\nimport { Subscription } from '../types';\n\nexport class SubscriptionsApi extends BaseApiClient {\n async getSubscriptions(): Promise<Subscription[]> {\n return this.fetch<Subscription[]>('subscriptions');\n }\n\n async getWorkspaceSubscriptions(wid: string): Promise<Subscription[]> {\n return this.fetch<Subscription[]>(`w/${wid}/subscriptions`);\n }\n\n async cancelSubscription(subscriptionId: number): Promise<void> {\n return this.fetch(`subscriptions/${subscriptionId}/cancel`, {\n method: 'POST',\n credentials: 'include',\n });\n }\n\n async reactivateSubscription(subscriptionId: number): Promise<{ message: string }> {\n return this.fetch(`subscriptions/${subscriptionId}/reactivate`, {\n method: 'POST',\n credentials: 'include',\n });\n }\n\n async updateSubscription(\n subscriptionId: number,\n updates: {\n paygBudget?: number | null; // null = unlimited, 0 = disabled, positive = capped\n planPeriod?: string; // Plan period (e.g., \"month\", \"year\")\n }\n ): Promise<{ message: string }> {\n return this.fetch(`subscriptions/${subscriptionId}`, {\n method: 'PUT',\n credentials: 'include',\n body: JSON.stringify(updates),\n headers: {\n 'Content-Type': 'application/json',\n },\n });\n }\n\n async provisionMemberRole(subscriptionId: number): Promise<{ message: string }> {\n return this.fetch(`subscriptions/${subscriptionId}/provision-role`, {\n method: 'POST',\n credentials: 'include',\n });\n }\n}\n","import { BaseApiClient } from './base';\nimport { Task, TaskFormData } from '../types';\n\nexport class TasksApi extends BaseApiClient {\n async getTasks(\n wid: string,\n options: {\n includeArchived?: boolean;\n workflowId?: number;\n } = {}\n ): Promise<Task[]> {\n const params = new URLSearchParams();\n if (options.includeArchived) {\n params.append('include_archived', 'true');\n }\n if (options.workflowId) {\n params.append('workflow_id', options.workflowId.toString());\n }\n return this.fetch<Task[]>(\n `w/${wid}/tasks${params.toString() ? `?${params.toString()}` : ''}`\n );\n }\n\n async getTask(wid: string, id: number | string): Promise<Task> {\n return this.fetch<Task>(`w/${wid}/tasks/${id}`);\n }\n\n async createTask(wid: string, task: TaskFormData): Promise<Task> {\n return this.fetch<Task>(`w/${wid}/tasks`, {\n method: 'POST',\n body: JSON.stringify(task),\n });\n }\n\n async updateTask(wid: string, id: number, task: Partial<TaskFormData>): Promise<Task> {\n return this.fetch<Task>(`w/${wid}/tasks/${id}`, {\n method: 'PUT',\n body: JSON.stringify(task),\n });\n }\n\n async deleteTask(wid: string, id: number): Promise<void> {\n return this.fetch(`w/${wid}/tasks/${id}`, {\n method: 'DELETE',\n });\n }\n\n async archiveTask(wid: string, id: number): Promise<Task> {\n return this.fetch<Task>(`w/${wid}/tasks/${id}/archive`, {\n method: 'PUT',\n });\n }\n\n async unarchiveTask(wid: string, id: number): Promise<Task> {\n return this.fetch<Task>(`w/${wid}/tasks/${id}/unarchive`, {\n method: 'PUT',\n });\n }\n\n /**\n * Convert legacy task relations (files, folders, data types, calendars, tools)\n * to the new abilities system.\n *\n * This migrates a task from the legacy relation-based configuration to abilities.\n * After conversion, the legacy relations are cleared to prevent duplicate functionality.\n */\n async convertToAbilities(\n wid: string,\n taskId: number\n ): Promise<{ converted: boolean; message: string; abilitiesCreated: number }> {\n return this.fetch<{ converted: boolean; message: string; abilitiesCreated: number }>(\n `w/${wid}/tasks/${taskId}/convert-to-abilities`,\n { method: 'POST' }\n );\n }\n\n /**\n * Clone a task with all its dependencies including abilities.\n *\n * This creates a complete copy of the task on the backend, including:\n * - Task properties (name, description, prompt, etc.)\n * - File associations\n * - Data type associations\n * - Event rules\n * - Abilities (task-scoped)\n */\n async cloneTask(wid: string, taskId: number, name: string, slug?: string): Promise<Task> {\n return this.fetch<Task>(`w/${wid}/tasks/${taskId}/clone`, {\n method: 'POST',\n body: JSON.stringify({ name, slug }),\n });\n }\n}\n","import type { ToolkitsResponse, ToolResponse } from '../types/toolkitTypes';\nimport { BaseApiClient } from './base';\n\n/**\n * API client for toolkit-related operations.\n */\nexport class ToolkitsApi extends BaseApiClient {\n /**\n * Get available toolkits for the workspace\n */\n async getToolkits(wid: string): Promise<ToolkitsResponse> {\n return this.fetch<ToolkitsResponse>(`w/${wid}/toolkits`);\n }\n\n /**\n * Get details for a specific tool by name within a chat context.\n * Searches tools available to the chat's assistant.\n */\n async getTool(wid: string, chatId: number, toolName: string): Promise<ToolResponse> {\n return this.fetch<ToolResponse>(\n `w/${wid}/chats/${chatId}/tool/${encodeURIComponent(toolName)}`\n );\n }\n}\n","import { BaseApiClient } from './base';\nimport type { Workflow, WorkflowFormData } from '../types';\nimport type {\n WorkflowTemplate,\n CreateWorkflowFromTemplateFormData,\n WorkflowActivity,\n TaskAssignmentStats,\n TaskChatsListResponse,\n WorkflowContributor,\n CreateWorkflowContributorRequest,\n UpdateWorkflowContributorRequest,\n} from '../types/taskTypes';\nimport type {\n WorkspaceBuilderInfo,\n BuildWorkspaceResponse,\n ValidateWorkflowNameResponse,\n} from '../types/workspaceBuilderTypes';\n\nexport class WorkflowsApi extends BaseApiClient {\n async getWorkflows(wid: string, archived: boolean = false): Promise<Workflow[]> {\n const url = archived ? `w/${wid}/workflows?archived=true` : `w/${wid}/workflows`;\n return this.fetch<Workflow[]>(url);\n }\n\n async getWorkflow(wid: string, id: number | string): Promise<Workflow> {\n return this.fetch<Workflow>(`w/${wid}/workflows/${id}`);\n }\n\n async getWorkflowActivity(\n wid: string,\n id: number,\n options?: { days?: number }\n ): Promise<WorkflowActivity> {\n const params = options?.days ? `?days=${options.days}` : '';\n return this.fetch<WorkflowActivity>(`w/${wid}/workflows/${id}/activity${params}`);\n }\n\n async getWorkflowsActivityBatch(\n wid: string,\n workflowIds: number[],\n options?: { days?: number }\n ): Promise<Record<string, WorkflowActivity>> {\n const params = new URLSearchParams();\n params.set('workflow_ids', workflowIds.join(','));\n if (options?.days) params.set('days', String(options.days));\n return this.fetch<Record<string, WorkflowActivity>>(\n `w/${wid}/workflows/activity/batch?${params.toString()}`\n );\n }\n\n async getWorkflowDiagram(\n wid: string,\n id: number\n ): Promise<{ mermaid: string; taskCount: number }> {\n return this.fetch<{ mermaid: string; taskCount: number }>(`w/${wid}/workflows/${id}/diagram`);\n }\n\n /**\n * Get workflow thumbnail URL.\n * For cross-domain setups, returns a same-origin proxy URL to ensure cookies are sent.\n * For same-origin setups, returns the direct API URL.\n */\n getWorkflowThumbnailUrl(wid: string, id: number): string {\n if (this.isCrossDomain) {\n // Use same-origin proxy route to ensure cookies are sent with the request\n return `/api/v2/w/${wid}/workflows/${id}/thumbnail`;\n }\n // Same-origin: use direct API URL\n return `${this.baseUrl}/api/v2/w/${wid}/workflows/${id}/thumbnail`;\n }\n\n async createWorkflow(wid: string, workflow: WorkflowFormData): Promise<Workflow> {\n return this.fetch<Workflow>(`w/${wid}/workflows`, {\n method: 'POST',\n body: JSON.stringify(workflow),\n });\n }\n\n async updateWorkflow(\n wid: string,\n id: number,\n workflow: Partial<WorkflowFormData>\n ): Promise<Workflow> {\n return this.fetch<Workflow>(`w/${wid}/workflows/${id}`, {\n method: 'PUT',\n body: JSON.stringify(workflow),\n });\n }\n\n async getWorkflowDeletionPreview(\n wid: string,\n id: number\n ): Promise<{\n taskCount: number;\n tasks: Array<{ id: number; name: string; description: string | null }>;\n hasAssignments: boolean;\n }> {\n return this.fetch(`w/${wid}/workflows/${id}/deletion-preview`);\n }\n\n async deleteWorkflow(\n wid: string,\n id: number,\n cascade: boolean = false\n ): Promise<{ status: string; deletedTaskCount: number }> {\n const url = cascade ? `w/${wid}/workflows/${id}?cascade=true` : `w/${wid}/workflows/${id}`;\n return this.fetch(url, {\n method: 'DELETE',\n });\n }\n\n async archiveWorkflow(wid: string, id: number): Promise<{ status: string }> {\n return this.fetch(`w/${wid}/workflows/${id}/archive`, {\n method: 'POST',\n });\n }\n\n async unarchiveWorkflow(wid: string, id: number): Promise<{ status: string }> {\n return this.fetch(`w/${wid}/workflows/${id}/unarchive`, {\n method: 'POST',\n });\n }\n\n async cloneWorkflow(wid: string, id: number, data: { name: string }): Promise<Workflow> {\n return this.fetch<Workflow>(`w/${wid}/workflows/${id}/clone`, {\n method: 'POST',\n body: JSON.stringify(data),\n });\n }\n\n async getWorkflowTemplates(wid: string): Promise<WorkflowTemplate[]> {\n return this.fetch<WorkflowTemplate[]>(`w/${wid}/workflows/templates`);\n }\n\n async createWorkflowFromTemplate(\n wid: string,\n templateUuid: string,\n data: CreateWorkflowFromTemplateFormData\n ): Promise<Workflow> {\n return this.fetch<Workflow>(`w/${wid}/workflows/templates/${templateUuid}/create-workflow`, {\n method: 'POST',\n body: JSON.stringify(data),\n });\n }\n\n async getWorkflowTaskAssignmentStats(\n wid: string,\n id: number,\n fromDate?: string,\n toDate?: string\n ): Promise<Record<number, TaskAssignmentStats>> {\n const params = new URLSearchParams();\n if (fromDate) params.append('from_date', fromDate);\n if (toDate) params.append('to_date', toDate);\n\n return this.fetch<Record<number, TaskAssignmentStats>>(\n `w/${wid}/workflows/${id}/task-assignment-stats?${params.toString()}`\n );\n }\n\n async getTaskChats(\n wid: string,\n workflowId: number,\n taskId: number,\n fromDate?: string,\n toDate?: string,\n limit: number = 100,\n offset: number = 0\n ): Promise<TaskChatsListResponse> {\n const params = new URLSearchParams();\n if (fromDate) params.append('from_date', fromDate);\n if (toDate) params.append('to_date', toDate);\n params.append('limit', limit.toString());\n params.append('offset', offset.toString());\n\n return this.fetch<TaskChatsListResponse>(\n `w/${wid}/workflows/${workflowId}/tasks/${taskId}/chats?${params.toString()}`\n );\n }\n\n // Workflow Contributors API\n async getWorkflowContributors(wid: string, workflowId: number): Promise<WorkflowContributor[]> {\n return this.fetch<WorkflowContributor[]>(`w/${wid}/workflows/${workflowId}/contributors`);\n }\n\n async createWorkflowContributor(\n wid: string,\n workflowId: number,\n data: CreateWorkflowContributorRequest\n ): Promise<WorkflowContributor> {\n return this.fetch<WorkflowContributor>(`w/${wid}/workflows/${workflowId}/contributors`, {\n method: 'POST',\n body: JSON.stringify(data),\n });\n }\n\n async updateWorkflowContributor(\n wid: string,\n workflowId: number,\n contributorId: number,\n data: UpdateWorkflowContributorRequest\n ): Promise<WorkflowContributor> {\n return this.fetch<WorkflowContributor>(\n `w/${wid}/workflows/${workflowId}/contributors/${contributorId}`,\n {\n method: 'PATCH',\n body: JSON.stringify(data),\n }\n );\n }\n\n async deleteWorkflowContributor(\n wid: string,\n workflowId: number,\n contributorId: number\n ): Promise<{ success: boolean }> {\n return this.fetch<{ success: boolean }>(\n `w/${wid}/workflows/${workflowId}/contributors/${contributorId}`,\n {\n method: 'DELETE',\n }\n );\n }\n\n // Workspace Builders API\n\n /**\n * Get list of available workspace builders.\n */\n async getWorkspaceBuilders(wid: string): Promise<WorkspaceBuilderInfo[]> {\n const response = await this.fetch<{ builders: WorkspaceBuilderInfo[] }>(`w/${wid}/builders`);\n return response.builders;\n }\n\n /**\n * Get information about a specific workspace builder.\n */\n async getWorkspaceBuilder(wid: string, builderId: string): Promise<WorkspaceBuilderInfo> {\n return this.fetch<WorkspaceBuilderInfo>(`w/${wid}/builders/${builderId}`);\n }\n\n /**\n * Build and import a workflow from a builder template in one step.\n * Returns the created workflow ID and UUID.\n */\n async buildWorkspace(\n wid: string,\n builderId: string,\n params: Record<string, unknown>\n ): Promise<BuildWorkspaceResponse> {\n return this.fetch<BuildWorkspaceResponse>(`w/${wid}/builders/build`, {\n method: 'POST',\n body: JSON.stringify({ builderId, params }),\n });\n }\n\n /**\n * Validate if a workflow name is available.\n * Returns availability and a suggested alternative if taken.\n */\n async validateWorkflowName(wid: string, name: string): Promise<ValidateWorkflowNameResponse> {\n return this.fetch<ValidateWorkflowNameResponse>(`w/${wid}/builders/validate-name`, {\n method: 'POST',\n body: JSON.stringify({ name }),\n });\n }\n}\n","import {\n Invitation,\n InvitationListResponse,\n InvitationStatus,\n ListInvitationsParams,\n UpdateInvitationFormData,\n} from '../types';\nimport { BaseApiClient } from './base';\n\nexport class WorkspaceInvitationsApi extends BaseApiClient {\n /**\n * List user's own invitations (both org and workspace).\n * For admin listing of a specific workspace's invitations, use listWorkspaceInvitationsAdmin.\n */\n async listWorkspaceInvitations(params?: ListInvitationsParams): Promise<InvitationListResponse> {\n const queryParams = new URLSearchParams();\n\n if (params?.status) queryParams.append('status', params.status);\n if (params?.page) queryParams.append('page', params.page.toString());\n if (params?.pageSize) queryParams.append('page_size', params.pageSize.toString());\n\n const queryString = queryParams.toString();\n const url = `invitations${queryString ? `?${queryString}` : ''}`;\n\n return this.fetch<InvitationListResponse>(url);\n }\n\n async getWorkspaceInvitation(requestId: number): Promise<Invitation> {\n return this.fetch<Invitation>(`invitations/${requestId}`);\n }\n\n async deleteWorkspaceInvitation(requestId: number): Promise<{ message: string }> {\n return this.fetch<{ message: string }>(`invitations/${requestId}`, {\n method: 'DELETE',\n });\n }\n\n /**\n * Request membership to a public workspace.\n * Creates a membership request that workspace admins can approve or deny.\n */\n async requestWorkspaceMembership(workspaceUuid: string, message?: string): Promise<Invitation> {\n return this.fetch<Invitation>(`invitations/workspaces/${workspaceUuid}/request-membership`, {\n method: 'POST',\n body: JSON.stringify({ message }),\n });\n }\n\n // ============================================\n // Workspace-scoped admin methods\n // These require the user to be a workspace member with admin permissions\n // ============================================\n\n /**\n * List invitations for a specific workspace (requires workspace admin permission).\n * Uses the workspace-scoped route: /api/v2/w/{workspaceUuid}/invitations\n */\n async listWorkspaceInvitationsAdmin(\n workspaceUuid: string,\n params?: {\n accountId?: number;\n status?: InvitationStatus;\n page?: number;\n pageSize?: number;\n }\n ): Promise<InvitationListResponse> {\n const queryParams = new URLSearchParams();\n if (params?.accountId) queryParams.append('accountId', params.accountId.toString());\n if (params?.status) queryParams.append('status', params.status);\n if (params?.page) queryParams.append('page', params.page.toString());\n if (params?.pageSize) queryParams.append('page_size', params.pageSize.toString());\n\n const queryString = queryParams.toString();\n const url = `w/${workspaceUuid}/invitations${queryString ? `?${queryString}` : ''}`;\n\n return this.fetch<InvitationListResponse>(url);\n }\n\n /**\n * Invite someone to a workspace (requires workspace admin permission).\n * Uses the workspace-scoped route: POST /api/v2/w/{workspaceUuid}/invitations\n */\n async inviteToWorkspace(\n workspaceUuid: string,\n emailOrAccountId: number | string,\n message?: string,\n memberRoleId?: number,\n name?: string\n ): Promise<Invitation> {\n const body: Record<string, unknown> = {\n message,\n memberRoleId,\n name,\n };\n\n // Check if it's an email (string) or accountId (number)\n if (typeof emailOrAccountId === 'string') {\n body.email = emailOrAccountId;\n } else {\n body.accountId = emailOrAccountId;\n }\n\n return this.fetch<Invitation>(`w/${workspaceUuid}/invitations`, {\n method: 'POST',\n body: JSON.stringify(body),\n });\n }\n\n /**\n * Update an invitation status (requires workspace admin permission).\n * Uses the workspace-scoped route: PUT /api/v2/w/{workspaceUuid}/invitations/{id}\n */\n async updateWorkspaceInvitationAdmin(\n workspaceUuid: string,\n invitationId: number,\n data: UpdateInvitationFormData\n ): Promise<Invitation> {\n return this.fetch<Invitation>(`w/${workspaceUuid}/invitations/${invitationId}`, {\n method: 'PUT',\n body: JSON.stringify(data),\n });\n }\n\n /**\n * Delete an invitation (requires workspace admin permission).\n * Uses the workspace-scoped route: DELETE /api/v2/w/{workspaceUuid}/invitations/{id}\n */\n async deleteWorkspaceInvitationAdmin(\n workspaceUuid: string,\n invitationId: number\n ): Promise<{ message: string }> {\n return this.fetch<{ message: string }>(`w/${workspaceUuid}/invitations/${invitationId}`, {\n method: 'DELETE',\n });\n }\n\n /**\n * Approve an invitation (grant access) - requires workspace admin permission.\n */\n async approveWorkspaceInvitation(\n workspaceUuid: string,\n invitationId: number\n ): Promise<Invitation> {\n return this.updateWorkspaceInvitationAdmin(workspaceUuid, invitationId, {\n status: InvitationStatus.GRANTED,\n });\n }\n\n /**\n * Deny an invitation - requires workspace admin permission.\n */\n async denyWorkspaceInvitation(workspaceUuid: string, invitationId: number): Promise<Invitation> {\n return this.updateWorkspaceInvitationAdmin(workspaceUuid, invitationId, {\n status: InvitationStatus.DENIED,\n });\n }\n\n /**\n * Block an invitation - requires workspace admin permission.\n */\n async blockWorkspaceInvitation(\n workspaceUuid: string,\n invitationId: number\n ): Promise<Invitation> {\n return this.updateWorkspaceInvitationAdmin(workspaceUuid, invitationId, {\n status: InvitationStatus.BLOCKED,\n });\n }\n\n /**\n * Accept an invitation by ID (for invitees accepting their own invitations)\n * Works for both organization and workspace invitations.\n */\n async acceptInvitation(requestId: number): Promise<Invitation> {\n return this.fetch<Invitation>(`invitations/${requestId}/accept`, {\n method: 'POST',\n });\n }\n\n /**\n * Decline an invitation by ID (for invitees declining their own invitations)\n * Works for both organization and workspace invitations.\n */\n async declineInvitation(requestId: number): Promise<Invitation> {\n return this.fetch<Invitation>(`invitations/${requestId}/decline`, {\n method: 'POST',\n });\n }\n}\n","import {\n BillingDashboardResponse,\n ClientWorkspace,\n NoticesResponse,\n Notification,\n PaginatedResponse,\n Product,\n PublicWorkspace,\n SyncUsageRequest,\n SyncUsageResponse,\n ThemesListResponse,\n Workspace,\n WorkspaceCounts,\n WorkspaceDefaults,\n WorkspaceDefaultsFormData,\n WorkspaceFeatureInfo,\n WorkspaceFormData,\n} from '../types';\nimport {\n WorkspaceAutoMapEntities,\n WorkspaceCreateNewEntities,\n WorkspaceExportData,\n WorkspaceImportMapping,\n WorkspaceImportPreviewResponse,\n} from '../types_workspace_transfer';\nimport { BaseApiClient } from './base';\n\n/**\n * Workspace-grantable scope metadata.\n * These are scopes that can be assigned to member roles.\n */\nexport interface WorkspaceScope {\n name: string;\n category: string;\n description: string;\n implies: string[];\n dangerous: boolean;\n}\n\n/**\n * Response containing all workspace-grantable scopes.\n */\nexport interface WorkspaceScopesResponse {\n scopes: WorkspaceScope[];\n categories: string[];\n}\n\nexport class WorkspacesApi extends BaseApiClient {\n async getWorkspaces(): Promise<Workspace[]> {\n return this.fetch<Workspace[]>('w/');\n }\n\n async getPublicWorkspaces(): Promise<PublicWorkspace[]> {\n return this.fetch<PublicWorkspace[]>('w/public');\n }\n\n async getWorkspace(wid: string): Promise<Workspace> {\n return this.fetch<Workspace>(`w/${wid}`);\n }\n\n async createWorkspace(workspace: WorkspaceFormData): Promise<Workspace> {\n return this.fetch<Workspace>('w/', {\n method: 'POST',\n body: JSON.stringify(workspace),\n });\n }\n\n async updateWorkspace(wid: string, workspace: Partial<WorkspaceFormData>): Promise<Workspace> {\n return this.fetch<Workspace>(`w/${wid}`, {\n method: 'PUT',\n body: JSON.stringify(workspace),\n });\n }\n\n async deleteWorkspace(wid: string): Promise<void> {\n return this.fetch(`w/${wid}`, {\n method: 'DELETE',\n });\n }\n\n async leaveWorkspace(wid: string): Promise<{ message: string }> {\n return this.fetch<{ message: string }>(`w/${wid}/me`, {\n method: 'DELETE',\n });\n }\n\n async getWorkspaceDefaults(wid: string): Promise<WorkspaceDefaults> {\n return this.fetch<WorkspaceDefaults>(`w/${wid}/defaults`);\n }\n\n async updateWorkspaceDefaults(\n wid: string,\n defaults: WorkspaceDefaultsFormData\n ): Promise<WorkspaceDefaults> {\n return this.fetch<WorkspaceDefaults>(`w/${wid}/defaults`, {\n method: 'PUT',\n body: JSON.stringify(defaults),\n });\n }\n\n async getWorkspaceCounts(wid: string): Promise<WorkspaceCounts> {\n return this.fetch<WorkspaceCounts>(`w/${wid}/counts`);\n }\n\n async getBusinessHoursStatus(wid: string): Promise<{ isBusinessHours: boolean }> {\n return this.fetch<{ isBusinessHours: boolean }>(`w/${wid}/business-hours-status`);\n }\n\n async getAvailableWorkspaceFeatures(): Promise<WorkspaceFeatureInfo[]> {\n const result = await this.fetch<{ features: WorkspaceFeatureInfo[] }>(`features/registry`);\n return result.features;\n }\n\n async getWorkspaceNotices(wid: string): Promise<NoticesResponse> {\n return this.fetch<NoticesResponse>(`w/${wid}/notices`);\n }\n\n async getNotifications(\n wid: string,\n options: {\n page?: number;\n pageSize?: number;\n } = {}\n ): Promise<PaginatedResponse<Notification>> {\n const params = new URLSearchParams();\n if (options.page) params.append('page', options.page.toString());\n if (options.pageSize) params.append('pageSize', options.pageSize.toString());\n\n const queryString = params.toString();\n const url = `w/${wid}/notifications${queryString ? `?${queryString}` : ''}`;\n\n return this.fetch<PaginatedResponse<Notification>>(url);\n }\n\n async getNotification(wid: string, id: number): Promise<Notification> {\n return this.fetch<Notification>(`w/${wid}/notifications/${id}`);\n }\n\n async getUnreadNotificationCount(wid: string): Promise<number> {\n return this.fetch<number>(`w/${wid}/notifications/unread-count`);\n }\n\n async markNotificationAsRead(wid: string, id: number): Promise<Notification> {\n return this.fetch<Notification>(`w/${wid}/notifications/${id}/read`, {\n method: 'POST',\n });\n }\n\n async dismissNotification(wid: string, id: number): Promise<Notification> {\n return this.fetch<Notification>(`w/${wid}/notifications/${id}/dismiss`, {\n method: 'POST',\n });\n }\n\n async dismissAllNotifications(wid: string): Promise<{ dismissedCount: number }> {\n return this.fetch<{ dismissedCount: number }>(`w/${wid}/notifications/dismiss-all`, {\n method: 'POST',\n });\n }\n\n // ===== Push Notifications =====\n\n async getVapidPublicKey(): Promise<string | null> {\n const response = await this.fetch<{ publicKey: string | null }>('push/vapid-public-key');\n return response.publicKey;\n }\n\n async registerPushSubscription(\n wid: string,\n subscription: { endpoint: string; p256dhKey: string; authKey: string; userAgent?: string }\n ): Promise<{ id: number; endpoint: string; createdAt: string }> {\n return this.fetch<{ id: number; endpoint: string; createdAt: string }>(\n `w/${wid}/push-subscriptions`,\n {\n method: 'POST',\n body: JSON.stringify(subscription),\n }\n );\n }\n\n async unregisterPushSubscription(wid: string, endpoint: string): Promise<{ deleted: boolean }> {\n return this.fetch<{ deleted: boolean }>(\n `w/${wid}/push-subscriptions?endpoint=${encodeURIComponent(endpoint)}`,\n {\n method: 'DELETE',\n }\n );\n }\n\n async listPushSubscriptions(\n wid: string\n ): Promise<{ id: number; endpoint: string; createdAt: string; userAgent: string | null }[]> {\n return this.fetch<\n { id: number; endpoint: string; createdAt: string; userAgent: string | null }[]\n >(`w/${wid}/push-subscriptions`);\n }\n\n async getResellerWorkspaces(wid: string): Promise<ClientWorkspace[]> {\n return this.fetch<ClientWorkspace[]>(`w/${wid}/reseller/workspaces`);\n }\n\n async createClientWorkspace(\n wid: string,\n data: { name: string; slug?: string }\n ): Promise<ClientWorkspace> {\n return this.fetch<ClientWorkspace>(`w/${wid}/reseller/workspaces`, {\n method: 'POST',\n body: JSON.stringify(data),\n });\n }\n\n async getClientWorkspace(wid: string, workspaceId: number): Promise<ClientWorkspace> {\n return this.fetch<ClientWorkspace>(`w/${wid}/reseller/workspaces/${workspaceId}`);\n }\n\n async updateClientWorkspace(\n wid: string,\n workspaceId: number,\n data: { name?: string; slug?: string }\n ): Promise<ClientWorkspace> {\n return this.fetch<ClientWorkspace>(`w/${wid}/reseller/workspaces/${workspaceId}`, {\n method: 'PUT',\n body: JSON.stringify(data),\n });\n }\n\n async deleteClientWorkspace(wid: string, workspaceId: number): Promise<{ message: string }> {\n return this.fetch<{ message: string }>(`w/${wid}/reseller/workspaces/${workspaceId}`, {\n method: 'DELETE',\n });\n }\n\n async provisionClientWorkspace(\n wid: string,\n workspaceId: number\n ): Promise<{ message: string; status: string }> {\n return this.fetch<{ message: string; status: string }>(\n `w/${wid}/reseller/workspaces/${workspaceId}/provision`,\n {\n method: 'POST',\n }\n );\n }\n\n async getProducts(wid: string, featured?: boolean): Promise<Product[]> {\n const params = featured !== undefined ? `?featured=${featured}` : '';\n return this.fetch<Product[]>(`w/${wid}/reseller/products${params}`);\n }\n\n async getProduct(id: number): Promise<Product> {\n // Use global endpoint - access control is handled server-side based on\n // public flag, superuser status, or subscription membership\n return this.fetch<Product>(`products/${id}`);\n }\n\n async getPublicProduct(id: number): Promise<Product> {\n return this.fetch<Product>(`products/${id}`);\n }\n\n async createProduct(wid: string, product: any): Promise<Product> {\n return this.fetch<Product>(`w/${wid}/reseller/products`, {\n method: 'POST',\n body: JSON.stringify(product),\n });\n }\n\n async updateProduct(wid: string, id: number, updates: any): Promise<Product> {\n return this.fetch<Product>(`w/${wid}/reseller/products/${id}`, {\n method: 'PUT',\n body: JSON.stringify(updates),\n });\n }\n\n async deleteProduct(wid: string, id: number): Promise<{ message: string }> {\n return this.fetch<{ message: string }>(`w/${wid}/reseller/products/${id}`, {\n method: 'DELETE',\n });\n }\n\n // Workspace Secret Key\n async resetWorkspaceSecretKey(wid: string): Promise<{ secret: string }> {\n return this.fetch<{ secret: string }>(`w/${wid}/defaults/reset-secret-key`, {\n method: 'POST',\n });\n }\n\n // Workspace Export/Import API\n async exportWorkspace(wid: string, workflowId?: number): Promise<WorkspaceExportData> {\n const params = workflowId ? `?workflow_id=${workflowId}` : '';\n return this.fetch<WorkspaceExportData>(`w/${wid}/export${params}`);\n }\n\n async previewWorkspaceImport(\n wid: string,\n exportData: WorkspaceExportData,\n importMappings: WorkspaceImportMapping,\n createNew: WorkspaceCreateNewEntities,\n autoMap?: WorkspaceAutoMapEntities\n ): Promise<WorkspaceImportPreviewResponse> {\n return this.fetch<WorkspaceImportPreviewResponse>(`w/${wid}/preview-import`, {\n method: 'POST',\n body: JSON.stringify({\n exportData,\n importMappings,\n createNew,\n autoMap,\n }),\n });\n }\n\n async importWorkspace(\n wid: string,\n exportData: WorkspaceExportData,\n importMappings: WorkspaceImportMapping,\n createNew: WorkspaceCreateNewEntities\n ): Promise<WorkspaceImportPreviewResponse> {\n return this.fetch<WorkspaceImportPreviewResponse>(`w/${wid}/import`, {\n method: 'POST',\n body: JSON.stringify({\n exportData,\n importMappings,\n createNew,\n }),\n });\n }\n\n // Legacy method for backward compatibility\n async previewImportWorkspace(\n wid: string,\n exportData: any,\n importMappings: any = {},\n createNew: any = {}\n ): Promise<any> {\n return this.fetch<any>(`w/${wid}/preview-import`, {\n method: 'POST',\n body: JSON.stringify({\n exportData,\n importMappings,\n createNew,\n }),\n });\n }\n\n async getWorkspaceThemes(wid: string): Promise<ThemesListResponse> {\n return this.fetch<ThemesListResponse>(`w/${wid}/themes`);\n }\n\n async updateWorkspaceThemes(wid: string, themes: string[]): Promise<Workspace> {\n return this.fetch<Workspace>(`w/${wid}/themes`, {\n method: 'PUT',\n body: JSON.stringify({ themes }),\n });\n }\n\n /**\n * Get all workspace-grantable scopes that can be assigned to member roles.\n *\n * Returns the full metadata for all scopes including name, category,\n * description, implied scopes, and whether it's a dangerous scope.\n *\n * Note: This does NOT include organization-level scopes (org:read, org:write, org:admin).\n * Org-level permissions come from OrgMember roles, not workspace member roles.\n */\n async getWorkspaceScopes(): Promise<WorkspaceScopesResponse> {\n return this.fetch<WorkspaceScopesResponse>('w/scopes');\n }\n\n /**\n * Get billing dashboard data for a workspace.\n *\n * This endpoint is available to organization owners (with org:billing scope).\n * Superusers should use the admin endpoint via getWorkspaceBillingDashboard.\n *\n * Returns comprehensive billing information including:\n * - Subscription status and plan details\n * - Current period usage metrics\n * - Overage configurations and amounts\n * - Budget tracking status\n */\n async getBillingDashboard(wid: string): Promise<BillingDashboardResponse> {\n return this.fetch<BillingDashboardResponse>(`w/${wid}/billing/dashboard`);\n }\n\n /**\n * Sync workspace usage to Stripe.\n *\n * Note: This is only available via the admin endpoint for superusers.\n * Org owners cannot sync usage - they can only view the billing dashboard.\n */\n async syncUsageToStripe(wid: string, request?: SyncUsageRequest): Promise<SyncUsageResponse> {\n // This still uses the admin endpoint since only superusers can sync\n return this.fetch<SyncUsageResponse>(`admin/workspaces/${wid}/usage/sync`, {\n method: 'POST',\n body: JSON.stringify(request || {}),\n });\n }\n}\n","import { BaseApiClient } from './base';\nimport type { WorkflowNote, WorkflowNoteFormData } from '../types/taskTypes';\n\nexport class WorkflowNotesApi extends BaseApiClient {\n async getWorkflowNotes(wid: string, workflowId: number): Promise<WorkflowNote[]> {\n return this.fetch<WorkflowNote[]>(`w/${wid}/workflow-notes?workflow_id=${workflowId}`);\n }\n\n async getWorkflowNote(wid: string, id: number): Promise<WorkflowNote> {\n return this.fetch<WorkflowNote>(`w/${wid}/workflow-notes/${id}`);\n }\n\n async createWorkflowNote(wid: string, note: WorkflowNoteFormData): Promise<WorkflowNote> {\n return this.fetch<WorkflowNote>(`w/${wid}/workflow-notes`, {\n method: 'POST',\n body: JSON.stringify(note),\n });\n }\n\n async updateWorkflowNote(\n wid: string,\n id: number,\n note: Partial<WorkflowNoteFormData>\n ): Promise<WorkflowNote> {\n return this.fetch<WorkflowNote>(`w/${wid}/workflow-notes/${id}`, {\n method: 'PUT',\n body: JSON.stringify(note),\n });\n }\n\n async deleteWorkflowNote(wid: string, id: number): Promise<void> {\n return this.fetch<void>(`w/${wid}/workflow-notes/${id}`, {\n method: 'DELETE',\n });\n }\n}\n","import {\n AbilitiesApi,\n AccessGrantsApi,\n AdminApi,\n AgentsApi,\n AIModelsApi,\n ApiKeysApi,\n AppsApi,\n AssignmentsApi,\n AssistantsApi,\n AuthApi,\n BuildersApi,\n CalendarsApi,\n CallsApi,\n CELApi,\n ChatsApi,\n CustomToolkitsApi,\n DataTypesApi,\n DiscordBotsApi,\n SlackAppsApi,\n EventsApi,\n FeaturesApi,\n FhirConnectionsApi,\n FilesApi,\n InboxesApi,\n InquiriesApi,\n AppConnectionsApi,\n McpServersApi,\n MembersApi,\n MilestonesApi,\n MondayIntegrationApi,\n NotificationRulesApi,\n OAuthApi,\n OperatorApi,\n OAuthConnectionsApi,\n PhoneNumbersApi,\n PronunciationsApi,\n QualificationsApi,\n ReportsApi,\n SitesApi,\n SubscriptionsApi,\n SupervisorsApi,\n TasksApi,\n TemplatesApi,\n ToolkitsApi,\n WorkflowsApi,\n WorkspaceInvitationsApi,\n WorkspacesApi,\n} from '../api';\nimport { WorkflowNotesApi } from '../api/workflow-notes';\n\nexport interface ApiModules {\n abilities: AbilitiesApi;\n accessGrants: AccessGrantsApi;\n admin: AdminApi;\n agents: AgentsApi;\n aiModels: AIModelsApi;\n apiKeys: ApiKeysApi;\n apps: AppsApi;\n assignments: AssignmentsApi;\n assistants: AssistantsApi;\n auth: AuthApi;\n builders: BuildersApi;\n calendars: CalendarsApi;\n calls: CallsApi;\n cel: CELApi;\n chats: ChatsApi;\n customToolkits: CustomToolkitsApi;\n dataTypes: DataTypesApi;\n discordBots: DiscordBotsApi;\n slackApps: SlackAppsApi;\n events: EventsApi;\n fhirConnections: FhirConnectionsApi;\n features: FeaturesApi;\n files: FilesApi;\n inboxes: InboxesApi;\n inquiries: InquiriesApi;\n appConnections: AppConnectionsApi;\n mcpServers: McpServersApi;\n members: MembersApi;\n milestones: MilestonesApi;\n mondayIntegration: MondayIntegrationApi;\n notificationRules: NotificationRulesApi;\n oauth: OAuthApi;\n operatorGroups: OperatorApi;\n oauthConnections: OAuthConnectionsApi;\n phoneNumbers: PhoneNumbersApi;\n pronunciations: PronunciationsApi;\n qualifications: QualificationsApi;\n reports: ReportsApi;\n sites: SitesApi;\n subscriptions: SubscriptionsApi;\n supervisors: SupervisorsApi;\n tasks: TasksApi;\n templates: TemplatesApi;\n toolkits: ToolkitsApi;\n workflows: WorkflowsApi;\n workflowNotes: WorkflowNotesApi;\n workspaceInvitations: WorkspaceInvitationsApi;\n workspaces: WorkspacesApi;\n}\n\nexport function createApiModules(\n apiKey: string | undefined,\n baseUrl: string,\n customFetch?: typeof fetch\n): ApiModules {\n return {\n abilities: new AbilitiesApi(apiKey, baseUrl, customFetch),\n accessGrants: new AccessGrantsApi(apiKey, baseUrl, customFetch),\n admin: new AdminApi(apiKey, baseUrl, customFetch),\n agents: new AgentsApi(apiKey, baseUrl, customFetch),\n aiModels: new AIModelsApi(apiKey, baseUrl, customFetch),\n apiKeys: new ApiKeysApi(apiKey, baseUrl, customFetch),\n apps: new AppsApi(apiKey, baseUrl, customFetch),\n assignments: new AssignmentsApi(apiKey, baseUrl, customFetch),\n assistants: new AssistantsApi(apiKey, baseUrl, customFetch),\n auth: new AuthApi(apiKey, baseUrl, customFetch),\n builders: new BuildersApi(apiKey, baseUrl, customFetch),\n calendars: new CalendarsApi(apiKey, baseUrl, customFetch),\n calls: new CallsApi(apiKey, baseUrl, customFetch),\n cel: new CELApi(apiKey, baseUrl, customFetch),\n chats: new ChatsApi(apiKey, baseUrl, customFetch),\n customToolkits: new CustomToolkitsApi(apiKey, baseUrl, customFetch),\n dataTypes: new DataTypesApi(apiKey, baseUrl, customFetch),\n discordBots: new DiscordBotsApi(apiKey, baseUrl, customFetch),\n slackApps: new SlackAppsApi(apiKey, baseUrl, customFetch),\n events: new EventsApi(apiKey, baseUrl, customFetch),\n fhirConnections: new FhirConnectionsApi(apiKey, baseUrl, customFetch),\n features: new FeaturesApi(apiKey, baseUrl, customFetch),\n files: new FilesApi(apiKey, baseUrl, customFetch),\n inboxes: new InboxesApi(apiKey, baseUrl, customFetch),\n inquiries: new InquiriesApi(apiKey, baseUrl, customFetch),\n appConnections: new AppConnectionsApi(apiKey, baseUrl, customFetch),\n mcpServers: new McpServersApi(apiKey, baseUrl, customFetch),\n members: new MembersApi(apiKey, baseUrl, customFetch),\n milestones: new MilestonesApi(apiKey, baseUrl, customFetch),\n mondayIntegration: new MondayIntegrationApi(apiKey, baseUrl, customFetch),\n notificationRules: new NotificationRulesApi(apiKey, baseUrl, customFetch),\n oauth: new OAuthApi(apiKey, baseUrl, customFetch),\n operatorGroups: new OperatorApi(apiKey, baseUrl, customFetch),\n oauthConnections: new OAuthConnectionsApi(apiKey, baseUrl, customFetch),\n phoneNumbers: new PhoneNumbersApi(apiKey, baseUrl, customFetch),\n pronunciations: new PronunciationsApi(apiKey, baseUrl, customFetch),\n qualifications: new QualificationsApi(apiKey, baseUrl, customFetch),\n reports: new ReportsApi(apiKey, baseUrl, customFetch),\n sites: new SitesApi(apiKey, baseUrl, customFetch),\n subscriptions: new SubscriptionsApi(apiKey, baseUrl, customFetch),\n supervisors: new SupervisorsApi(apiKey, baseUrl, customFetch),\n tasks: new TasksApi(apiKey, baseUrl, customFetch),\n templates: new TemplatesApi(apiKey, baseUrl, customFetch),\n toolkits: new ToolkitsApi(apiKey, baseUrl, customFetch),\n workflows: new WorkflowsApi(apiKey, baseUrl, customFetch),\n workflowNotes: new WorkflowNotesApi(apiKey, baseUrl, customFetch),\n workspaceInvitations: new WorkspaceInvitationsApi(apiKey, baseUrl, customFetch),\n workspaces: new WorkspacesApi(apiKey, baseUrl, customFetch),\n };\n}\n","import { AccessGrantsApi } from '../../api';\n\nexport interface AccessGrantsBindings {\n getMyReceivedGrants: AccessGrantsApi['getMyReceivedGrants'];\n getMyGivenGrants: AccessGrantsApi['getMyGivenGrants'];\n getAccessGrant: AccessGrantsApi['getAccessGrant'];\n createAccessGrant: AccessGrantsApi['createAccessGrant'];\n resolveAccessGrant: AccessGrantsApi['resolveAccessGrant'];\n revokeAccessGrant: AccessGrantsApi['revokeAccessGrant'];\n getAccessGrants: AccessGrantsApi['getAccessGrants'];\n getMemberGrants: AccessGrantsApi['getMemberGrants'];\n}\n\nexport function bindAccessGrantsMethods(\n target: AccessGrantsBindings,\n accessGrants: AccessGrantsApi\n): void {\n target.getMyReceivedGrants = accessGrants.getMyReceivedGrants.bind(accessGrants);\n target.getMyGivenGrants = accessGrants.getMyGivenGrants.bind(accessGrants);\n target.getAccessGrant = accessGrants.getAccessGrant.bind(accessGrants);\n target.createAccessGrant = accessGrants.createAccessGrant.bind(accessGrants);\n target.resolveAccessGrant = accessGrants.resolveAccessGrant.bind(accessGrants);\n target.revokeAccessGrant = accessGrants.revokeAccessGrant.bind(accessGrants);\n target.getAccessGrants = accessGrants.getAccessGrants.bind(accessGrants);\n target.getMemberGrants = accessGrants.getMemberGrants.bind(accessGrants);\n}\n","import { AgentsApi } from '../../api';\n\nexport interface AgentsBindings {\n getAgents: AgentsApi['getAgents'];\n getAgent: AgentsApi['getAgent'];\n createAgent: AgentsApi['createAgent'];\n updateAgent: AgentsApi['updateAgent'];\n deleteAgent: AgentsApi['deleteAgent'];\n archiveAgent: AgentsApi['archiveAgent'];\n unarchiveAgent: AgentsApi['unarchiveAgent'];\n}\n\nexport function bindAgentsMethods(target: AgentsBindings, agents: AgentsApi): void {\n target.getAgents = agents.getAgents.bind(agents);\n target.getAgent = agents.getAgent.bind(agents);\n target.createAgent = agents.createAgent.bind(agents);\n target.updateAgent = agents.updateAgent.bind(agents);\n target.deleteAgent = agents.deleteAgent.bind(agents);\n target.archiveAgent = agents.archiveAgent.bind(agents);\n target.unarchiveAgent = agents.unarchiveAgent.bind(agents);\n}\n","import { TasksApi } from '../../api';\nimport { AbilitiesApi } from '../../api';\n\nexport interface TasksBindings {\n // Tasks API\n getTasks: TasksApi['getTasks'];\n getTask: TasksApi['getTask'];\n createTask: TasksApi['createTask'];\n updateTask: TasksApi['updateTask'];\n deleteTask: TasksApi['deleteTask'];\n archiveTask: TasksApi['archiveTask'];\n unarchiveTask: TasksApi['unarchiveTask'];\n convertTaskToAbilities: TasksApi['convertToAbilities'];\n cloneTask: TasksApi['cloneTask'];\n\n // Abilities API (only types lookup - abilities are managed inline with parent objects)\n getAbilityTypes: AbilitiesApi['getAbilityTypes'];\n}\n\nexport function bindTasksMethods(\n target: TasksBindings,\n tasks: TasksApi,\n abilities: AbilitiesApi\n): void {\n // Tasks API\n target.getTasks = tasks.getTasks.bind(tasks);\n target.getTask = tasks.getTask.bind(tasks);\n target.createTask = tasks.createTask.bind(tasks);\n target.updateTask = tasks.updateTask.bind(tasks);\n target.deleteTask = tasks.deleteTask.bind(tasks);\n target.archiveTask = tasks.archiveTask.bind(tasks);\n target.unarchiveTask = tasks.unarchiveTask.bind(tasks);\n target.convertTaskToAbilities = tasks.convertToAbilities.bind(tasks);\n target.cloneTask = tasks.cloneTask.bind(tasks);\n\n // Abilities API (only types lookup)\n target.getAbilityTypes = abilities.getAbilityTypes.bind(abilities);\n}\n","import { ChatsApi } from '../../api';\n\nexport interface ChatsBindings {\n // Chats API\n getChats: ChatsApi['getChats'];\n getChat: ChatsApi['getChat'];\n getChatTokenUsage: ChatsApi['getChatTokenUsage'];\n getChatTodos: ChatsApi['getChatTodos'];\n getChatSkills: ChatsApi['getChatSkills'];\n getChatsNeedsResponse: ChatsApi['getChatsNeedsResponse'];\n getChatsDailyCreationStats: ChatsApi['getChatsDailyCreationStats'];\n archiveChat: ChatsApi['archiveChat'];\n unarchiveChat: ChatsApi['unarchiveChat'];\n createChat: ChatsApi['createChat'];\n deleteChat: ChatsApi['deleteChat'];\n updateChat: ChatsApi['updateChat'];\n updateChatMute: ChatsApi['updateChatMute'];\n updateChatNeedsResponse: ChatsApi['updateChatNeedsResponse'];\n summarizeChat: ChatsApi['summarizeChat'];\n getChatMessages: ChatsApi['getChatMessages'];\n getChatToolCallMessages: ChatsApi['getChatToolCallMessages'];\n getChatTools: ChatsApi['getChatTools'];\n initiateOutboundCall: ChatsApi['initiateOutboundCall'];\n sendAssistantMessage: ChatsApi['sendAssistantMessage'];\n rateMessage: ChatsApi['rateMessage'];\n getChatAssignmentTasks: ChatsApi['getChatAssignmentTasks'];\n createChatCompletion: ChatsApi['createChatCompletion'];\n exportChats: ChatsApi['exportChats'];\n exportChat: ChatsApi['exportChat'];\n findOrCreateDMChat: ChatsApi['findOrCreateDMChat'];\n sendChatMessage: ChatsApi['sendChatMessage'];\n // Chat Labels API\n getChatLabels: ChatsApi['getChatLabels'];\n getChatLabel: ChatsApi['getChatLabel'];\n getChatLabelByUuid: ChatsApi['getChatLabelByUuid'];\n createChatLabel: ChatsApi['createChatLabel'];\n updateChatLabel: ChatsApi['updateChatLabel'];\n deleteChatLabel: ChatsApi['deleteChatLabel'];\n // Chat Filters API\n getChatFilters: ChatsApi['getChatFilters'];\n getChatFilter: ChatsApi['getChatFilter'];\n getChatFilterByUuid: ChatsApi['getChatFilterByUuid'];\n createChatFilter: ChatsApi['createChatFilter'];\n updateChatFilter: ChatsApi['updateChatFilter'];\n deleteChatFilter: ChatsApi['deleteChatFilter'];\n}\n\nexport function bindChatsMethods(target: ChatsBindings, chats: ChatsApi): void {\n // Chats API\n target.getChats = chats.getChats.bind(chats);\n target.getChat = chats.getChat.bind(chats);\n target.getChatTokenUsage = chats.getChatTokenUsage.bind(chats);\n target.getChatTodos = chats.getChatTodos.bind(chats);\n target.getChatSkills = chats.getChatSkills.bind(chats);\n target.getChatsNeedsResponse = chats.getChatsNeedsResponse.bind(chats);\n target.getChatsDailyCreationStats = chats.getChatsDailyCreationStats.bind(chats);\n target.archiveChat = chats.archiveChat.bind(chats);\n target.unarchiveChat = chats.unarchiveChat.bind(chats);\n target.createChat = chats.createChat.bind(chats);\n target.deleteChat = chats.deleteChat.bind(chats);\n target.updateChat = chats.updateChat.bind(chats);\n target.updateChatMute = chats.updateChatMute.bind(chats);\n target.updateChatNeedsResponse = chats.updateChatNeedsResponse.bind(chats);\n target.summarizeChat = chats.summarizeChat.bind(chats);\n target.getChatMessages = chats.getChatMessages.bind(chats);\n target.getChatToolCallMessages = chats.getChatToolCallMessages.bind(chats);\n target.getChatTools = chats.getChatTools.bind(chats);\n target.initiateOutboundCall = chats.initiateOutboundCall.bind(chats);\n target.sendAssistantMessage = chats.sendAssistantMessage.bind(chats);\n target.rateMessage = chats.rateMessage.bind(chats);\n target.getChatAssignmentTasks = chats.getChatAssignmentTasks.bind(chats);\n target.createChatCompletion = chats.createChatCompletion.bind(chats);\n target.exportChats = chats.exportChats.bind(chats);\n target.exportChat = chats.exportChat.bind(chats);\n target.findOrCreateDMChat = chats.findOrCreateDMChat.bind(chats);\n target.sendChatMessage = chats.sendChatMessage.bind(chats);\n // Chat Labels API\n target.getChatLabels = chats.getChatLabels.bind(chats);\n target.getChatLabel = chats.getChatLabel.bind(chats);\n target.getChatLabelByUuid = chats.getChatLabelByUuid.bind(chats);\n target.createChatLabel = chats.createChatLabel.bind(chats);\n target.updateChatLabel = chats.updateChatLabel.bind(chats);\n target.deleteChatLabel = chats.deleteChatLabel.bind(chats);\n // Chat Filters API\n target.getChatFilters = chats.getChatFilters.bind(chats);\n target.getChatFilter = chats.getChatFilter.bind(chats);\n target.getChatFilterByUuid = chats.getChatFilterByUuid.bind(chats);\n target.createChatFilter = chats.createChatFilter.bind(chats);\n target.updateChatFilter = chats.updateChatFilter.bind(chats);\n target.deleteChatFilter = chats.deleteChatFilter.bind(chats);\n}\n","import { CallsApi } from '../../api';\nimport { CELApi } from '../../api';\n\nexport interface CallsBindings {\n // Calls API\n initiateCall: CallsApi['initiateCall'];\n getVoiceToken: CallsApi['getVoiceToken'];\n getMessageTiming: CallsApi['getMessageTiming'];\n\n // CEL API\n getCelContext: CELApi['getCelContext'];\n}\n\nexport function bindCallsMethods(target: CallsBindings, calls: CallsApi, cel: CELApi): void {\n // Calls API\n target.initiateCall = calls.initiateCall.bind(calls);\n target.getVoiceToken = calls.getVoiceToken.bind(calls);\n target.getMessageTiming = calls.getMessageTiming.bind(calls);\n\n // CEL API\n target.getCelContext = cel.getCelContext.bind(cel);\n}\n","import { DataTypesApi } from '../../api';\n\nexport interface DataTypesBindings {\n // Data Types API\n getDataTypes: DataTypesApi['getDataTypes'];\n getDataType: DataTypesApi['getDataType'];\n getDataTypeBySlug: DataTypesApi['getDataTypeBySlug'];\n createDataType: DataTypesApi['createDataType'];\n updateDataType: DataTypesApi['updateDataType'];\n deleteDataType: DataTypesApi['deleteDataType'];\n archiveDataType: DataTypesApi['archiveDataType'];\n unarchiveDataType: DataTypesApi['unarchiveDataType'];\n cloneDataType: DataTypesApi['cloneDataType'];\n getDataRecords: DataTypesApi['getDataRecords'];\n getDataRecord: DataTypesApi['getDataRecord'];\n createDataRecord: DataTypesApi['createDataRecord'];\n updateDataRecord: DataTypesApi['updateDataRecord'];\n deleteDataRecord: DataTypesApi['deleteDataRecord'];\n getDataRecordChanges: DataTypesApi['getDataRecordChanges'];\n upsertDataRecord: DataTypesApi['upsertDataRecord'];\n toggleFieldIndex: DataTypesApi['toggleFieldIndex'];\n getFieldIndexStatus: DataTypesApi['getFieldIndexStatus'];\n validateDataTypeSlug: DataTypesApi['validateDataTypeSlug'];\n getMemberRecordCounts: DataTypesApi['getMemberRecordCounts'];\n}\n\nexport function bindDataTypesMethods(target: DataTypesBindings, dataTypes: DataTypesApi): void {\n target.getDataTypes = dataTypes.getDataTypes.bind(dataTypes);\n target.getDataType = dataTypes.getDataType.bind(dataTypes);\n target.getDataTypeBySlug = dataTypes.getDataTypeBySlug.bind(dataTypes);\n target.createDataType = dataTypes.createDataType.bind(dataTypes);\n target.updateDataType = dataTypes.updateDataType.bind(dataTypes);\n target.deleteDataType = dataTypes.deleteDataType.bind(dataTypes);\n target.archiveDataType = dataTypes.archiveDataType.bind(dataTypes);\n target.unarchiveDataType = dataTypes.unarchiveDataType.bind(dataTypes);\n target.cloneDataType = dataTypes.cloneDataType.bind(dataTypes);\n target.getDataRecords = dataTypes.getDataRecords.bind(dataTypes);\n target.getDataRecord = dataTypes.getDataRecord.bind(dataTypes);\n target.createDataRecord = dataTypes.createDataRecord.bind(dataTypes);\n target.updateDataRecord = dataTypes.updateDataRecord.bind(dataTypes);\n target.deleteDataRecord = dataTypes.deleteDataRecord.bind(dataTypes);\n target.getDataRecordChanges = dataTypes.getDataRecordChanges.bind(dataTypes);\n target.upsertDataRecord = dataTypes.upsertDataRecord.bind(dataTypes);\n target.toggleFieldIndex = dataTypes.toggleFieldIndex.bind(dataTypes);\n target.getFieldIndexStatus = dataTypes.getFieldIndexStatus.bind(dataTypes);\n target.validateDataTypeSlug = dataTypes.validateDataTypeSlug.bind(dataTypes);\n target.getMemberRecordCounts = dataTypes.getMemberRecordCounts.bind(dataTypes);\n}\n","import { MembersApi } from '../../api';\n\nexport interface MembersBindings {\n // Members API\n getCurrentMember: MembersApi['getCurrentMember'];\n getOwnedMembers: MembersApi['getOwnedMembers'];\n switchMember: MembersApi['switchMember'];\n clearMemberSwitch: MembersApi['clearMemberSwitch'];\n updateCurrentMember: MembersApi['updateCurrentMember'];\n getWorkspaceMembers: MembersApi['getWorkspaceMembers'];\n getWorkspaceMember: MembersApi['getWorkspaceMember'];\n createWorkspaceMember: MembersApi['createWorkspaceMember'];\n updateMember: MembersApi['updateMember'];\n deleteMember: MembersApi['deleteMember'];\n archiveMember: MembersApi['archiveMember'];\n unarchiveMember: MembersApi['unarchiveMember'];\n importMembers: MembersApi['importMembers'];\n exportMembers: MembersApi['exportMembers'];\n getMembersMessageActivity: MembersApi['getMembersMessageActivity'];\n getMemberFilters: MembersApi['getMemberFilters'];\n getMemberFilter: MembersApi['getMemberFilter'];\n createMemberFilter: MembersApi['createMemberFilter'];\n updateMemberFilter: MembersApi['updateMemberFilter'];\n deleteMemberFilter: MembersApi['deleteMemberFilter'];\n getMemberFilterCount: MembersApi['getMemberFilterCount'];\n getMemberLabels: MembersApi['getMemberLabels'];\n getMemberLabel: MembersApi['getMemberLabel'];\n getMemberLabelByUuid: MembersApi['getMemberLabelByUuid'];\n createMemberLabel: MembersApi['createMemberLabel'];\n updateMemberLabel: MembersApi['updateMemberLabel'];\n deleteMemberLabel: MembersApi['deleteMemberLabel'];\n getMemberRoles: MembersApi['getMemberRoles'];\n getMemberRole: MembersApi['getMemberRole'];\n getMemberRoleByUuid: MembersApi['getMemberRoleByUuid'];\n createMemberRole: MembersApi['createMemberRole'];\n updateMemberRole: MembersApi['updateMemberRole'];\n deleteMemberRole: MembersApi['deleteMemberRole'];\n // Member Fields\n getMemberFields: MembersApi['getMemberFields'];\n getMemberFieldDefinitions: MembersApi['getMemberFieldDefinitions'];\n createMemberField: MembersApi['createMemberField'];\n updateMemberField: MembersApi['updateMemberField'];\n deleteMemberField: MembersApi['deleteMemberField'];\n // Credential Change Invites (Admin-initiated)\n inviteMemberCredentialUpdate: MembersApi['inviteMemberCredentialUpdate'];\n cancelCredentialUpdateInvite: MembersApi['cancelCredentialUpdateInvite'];\n getCredentialUpdateInvites: MembersApi['getCredentialUpdateInvites'];\n // Anonymous Member Resolutions\n getAnonymousResolutions: MembersApi['getAnonymousResolutions'];\n getAnonymousResolution: MembersApi['getAnonymousResolution'];\n resolveAnonymousMember: MembersApi['resolveAnonymousMember'];\n expireAnonymousMember: MembersApi['expireAnonymousMember'];\n}\n\nexport function bindMembersMethods(target: MembersBindings, members: MembersApi): void {\n target.getCurrentMember = members.getCurrentMember.bind(members);\n target.getOwnedMembers = members.getOwnedMembers.bind(members);\n target.switchMember = members.switchMember.bind(members);\n target.clearMemberSwitch = members.clearMemberSwitch.bind(members);\n target.updateCurrentMember = members.updateCurrentMember.bind(members);\n target.getWorkspaceMembers = members.getWorkspaceMembers.bind(members);\n target.getWorkspaceMember = members.getWorkspaceMember.bind(members);\n target.createWorkspaceMember = members.createWorkspaceMember.bind(members);\n target.updateMember = members.updateMember.bind(members);\n target.deleteMember = members.deleteMember.bind(members);\n target.archiveMember = members.archiveMember.bind(members);\n target.unarchiveMember = members.unarchiveMember.bind(members);\n target.importMembers = members.importMembers.bind(members);\n target.exportMembers = members.exportMembers.bind(members);\n target.getMembersMessageActivity = members.getMembersMessageActivity.bind(members);\n target.getMemberFilters = members.getMemberFilters.bind(members);\n target.getMemberFilter = members.getMemberFilter.bind(members);\n target.createMemberFilter = members.createMemberFilter.bind(members);\n target.updateMemberFilter = members.updateMemberFilter.bind(members);\n target.deleteMemberFilter = members.deleteMemberFilter.bind(members);\n target.getMemberFilterCount = members.getMemberFilterCount.bind(members);\n target.getMemberLabels = members.getMemberLabels.bind(members);\n target.getMemberLabel = members.getMemberLabel.bind(members);\n target.getMemberLabelByUuid = members.getMemberLabelByUuid.bind(members);\n target.createMemberLabel = members.createMemberLabel.bind(members);\n target.updateMemberLabel = members.updateMemberLabel.bind(members);\n target.deleteMemberLabel = members.deleteMemberLabel.bind(members);\n target.getMemberRoles = members.getMemberRoles.bind(members);\n target.getMemberRole = members.getMemberRole.bind(members);\n target.getMemberRoleByUuid = members.getMemberRoleByUuid.bind(members);\n target.createMemberRole = members.createMemberRole.bind(members);\n target.updateMemberRole = members.updateMemberRole.bind(members);\n target.deleteMemberRole = members.deleteMemberRole.bind(members);\n // Member Fields\n target.getMemberFields = members.getMemberFields.bind(members);\n target.getMemberFieldDefinitions = members.getMemberFieldDefinitions.bind(members);\n target.createMemberField = members.createMemberField.bind(members);\n target.updateMemberField = members.updateMemberField.bind(members);\n target.deleteMemberField = members.deleteMemberField.bind(members);\n // Credential Change Invites (Admin-initiated)\n target.inviteMemberCredentialUpdate = members.inviteMemberCredentialUpdate.bind(members);\n target.cancelCredentialUpdateInvite = members.cancelCredentialUpdateInvite.bind(members);\n target.getCredentialUpdateInvites = members.getCredentialUpdateInvites.bind(members);\n // Anonymous Member Resolutions\n target.getAnonymousResolutions = members.getAnonymousResolutions.bind(members);\n target.getAnonymousResolution = members.getAnonymousResolution.bind(members);\n target.resolveAnonymousMember = members.resolveAnonymousMember.bind(members);\n target.expireAnonymousMember = members.expireAnonymousMember.bind(members);\n}\n","import { AdminApi } from '../../api';\n\nexport interface AdminBindings {\n // Accounts\n getAccounts: AdminApi['getAccounts'];\n getAccountDetails: AdminApi['getAccountDetails'];\n getAccountByUuid: AdminApi['getAccountByUuid'];\n getAccountMemberships: AdminApi['getAccountMemberships'];\n getAccountOrgMemberships: AdminApi['getAccountOrgMemberships'];\n createAccountOrgMembership: AdminApi['createAccountOrgMembership'];\n deleteAccountOrgMembership: AdminApi['deleteAccountOrgMembership'];\n getAccountMembership: AdminApi['getAccountMembership'];\n updateAccountMembership: AdminApi['updateAccountMembership'];\n createAccountMembership: AdminApi['createAccountMembership'];\n deleteAccountMembership: AdminApi['deleteAccountMembership'];\n updateAccountAsAdmin: AdminApi['updateAccountAsAdmin'];\n createAccountAsAdmin: AdminApi['createAccountAsAdmin'];\n deleteAccountAsAdmin: AdminApi['deleteAccountAsAdmin'];\n lookupAccount: AdminApi['lookupAccount'];\n\n // Organizations\n getOrganizations: AdminApi['getOrganizations'];\n getOrganization: AdminApi['getOrganization'];\n createOrganization: AdminApi['createOrganization'];\n updateOrganization: AdminApi['updateOrganization'];\n deleteOrganization: AdminApi['deleteOrganization'];\n joinOrganization: AdminApi['joinOrganization'];\n leaveOrganization: AdminApi['leaveOrganization'];\n generateLogoUploadUrl: AdminApi['generateLogoUploadUrl'];\n\n // Products\n importProducts: AdminApi['importProducts'];\n createProductAsAdmin: AdminApi['createProductAsAdmin'];\n getProductsAsAdmin: AdminApi['getProductsAsAdmin'];\n getProductAsAdmin: AdminApi['getProductAsAdmin'];\n updateProductAsAdmin: AdminApi['updateProductAsAdmin'];\n deleteProductAsAdmin: AdminApi['deleteProductAsAdmin'];\n\n // Workspaces\n getWorkspacesAsAdmin: AdminApi['getWorkspacesAsAdmin'];\n getWorkspaceAsAdmin: AdminApi['getWorkspaceAsAdmin'];\n getWorkspaceByNumericIdAsAdmin: AdminApi['getWorkspaceByNumericIdAsAdmin'];\n createWorkspaceAsAdmin: AdminApi['createWorkspaceAsAdmin'];\n updateWorkspaceAsAdmin: AdminApi['updateWorkspaceAsAdmin'];\n deleteWorkspaceAsAdmin: AdminApi['deleteWorkspaceAsAdmin'];\n createSchemaAsAdmin: AdminApi['createSchemaAsAdmin'];\n migrateSchemaAsAdmin: AdminApi['migrateSchemaAsAdmin'];\n provisionWorkspaceAsAdmin: AdminApi['provisionWorkspaceAsAdmin'];\n refreshProvisionStatusAsAdmin: AdminApi['refreshProvisionStatusAsAdmin'];\n enableMaintenanceMode: AdminApi['enableMaintenanceMode'];\n disableMaintenanceMode: AdminApi['disableMaintenanceMode'];\n getWorkspaceHealth: AdminApi['getWorkspaceHealth'];\n provisionPlanFeatures: AdminApi['provisionPlanFeatures'];\n\n // Members\n mergeMembers: AdminApi['mergeMembers'];\n getAdminWorkspaceMember: AdminApi['getAdminWorkspaceMember'];\n createAdminWorkspaceMember: AdminApi['createAdminWorkspaceMember'];\n updateAdminWorkspaceMember: AdminApi['updateAdminWorkspaceMember'];\n getAdminWorkspaceMemberRoles: AdminApi['getAdminWorkspaceMemberRoles'];\n getMissingMemberships: AdminApi['getMissingMemberships'];\n linkMissingMembership: AdminApi['linkMissingMembership'];\n\n // Phone Numbers\n createPhoneNumberMapping: AdminApi['createPhoneNumberMapping'];\n deletePhoneNumberMapping: AdminApi['deletePhoneNumberMapping'];\n getPhoneNumberMappings: AdminApi['getPhoneNumberMappings'];\n getPhoneNumberMapping: AdminApi['getPhoneNumberMapping'];\n createAdminPhoneNumberMapping: AdminApi['createAdminPhoneNumberMapping'];\n deleteAdminPhoneNumberMapping: AdminApi['deleteAdminPhoneNumberMapping'];\n getAvailableWorkspacesForPhone: AdminApi['getAvailableWorkspacesForPhone'];\n remapPhoneNumber: AdminApi['remapPhoneNumber'];\n getUnmappedPhoneNumbers: AdminApi['getUnmappedPhoneNumbers'];\n getWorkspaceUnmappedPhoneNumbers: AdminApi['getWorkspaceUnmappedPhoneNumbers'];\n getWorkspacePhoneNumbersAsAdmin: AdminApi['getWorkspacePhoneNumbersAsAdmin'];\n getProviderPhoneNumbers: AdminApi['getProviderPhoneNumbers'];\n getProviderPhoneNumber: AdminApi['getProviderPhoneNumber'];\n updatePhoneNumberStatus: AdminApi['updatePhoneNumberStatus'];\n syncPhoneNumbersFromProviders: AdminApi['syncPhoneNumbersFromProviders'];\n approvePhoneNumberRequest: AdminApi['approvePhoneNumberRequest'];\n rejectPhoneNumberRequest: AdminApi['rejectPhoneNumberRequest'];\n startBulkPhoneClassification: AdminApi['startBulkPhoneClassification'];\n\n // Site Mappings\n getSiteMappings: AdminApi['getSiteMappings'];\n getSiteMapping: AdminApi['getSiteMapping'];\n updateSiteMapping: AdminApi['updateSiteMapping'];\n updateSiteMappingWorkspace: AdminApi['updateSiteMappingWorkspace'];\n adminDeleteSiteMapping: AdminApi['adminDeleteSiteMapping'];\n createSiteMapping: AdminApi['createSiteMapping'];\n createOrUpdateSiteMapping: AdminApi['createOrUpdateSiteMapping'];\n deleteSiteMapping: AdminApi['deleteSiteMapping'];\n\n // Inbox Mappings\n getInboxMappings: AdminApi['getInboxMappings'];\n getInboxMapping: AdminApi['getInboxMapping'];\n updateInboxMapping: AdminApi['updateInboxMapping'];\n deleteAdminInboxMapping: AdminApi['deleteAdminInboxMapping'];\n\n // Utilities\n generateChatSummaries: AdminApi['generateChatSummaries'];\n executeQuery: AdminApi['executeQuery'];\n triggerPeriodicJob: AdminApi['triggerPeriodicJob'];\n listAllThemes: AdminApi['listAllThemes'];\n startBulkTOSAcceptance: AdminApi['startBulkTOSAcceptance'];\n startTokenUsageBackfill: AdminApi['startTokenUsageBackfill'];\n updateChatMessage: AdminApi['updateChatMessage'];\n\n // Stripe Customer Management\n getStripeCustomer: AdminApi['getStripeCustomer'];\n createStripeCustomer: AdminApi['createStripeCustomer'];\n updateStripeCustomer: AdminApi['updateStripeCustomer'];\n\n // Stripe Subscription Management\n getStripeSubscriptions: AdminApi['getStripeSubscriptions'];\n createStripeSubscription: AdminApi['createStripeSubscription'];\n updateStripeSubscription: AdminApi['updateStripeSubscription'];\n cancelStripeSubscription: AdminApi['cancelStripeSubscription'];\n provisionWorkspaceForSubscription: AdminApi['provisionWorkspaceForSubscription'];\n associateWorkspaceWithSubscription: AdminApi['associateWorkspaceWithSubscription'];\n createSubscriptionPaymentLink: AdminApi['createSubscriptionPaymentLink'];\n\n // Stripe Payment Methods\n createSetupIntent: AdminApi['createSetupIntent'];\n getStripePaymentMethods: AdminApi['getStripePaymentMethods'];\n attachStripePaymentMethod: AdminApi['attachStripePaymentMethod'];\n detachStripePaymentMethod: AdminApi['detachStripePaymentMethod'];\n setDefaultStripePaymentMethod: AdminApi['setDefaultStripePaymentMethod'];\n previewWorkspaceOrganizationChange: AdminApi['previewWorkspaceOrganizationChange'];\n changeWorkspaceOrganization: AdminApi['changeWorkspaceOrganization'];\n\n // Stripe Invoices\n createStripeInvoice: AdminApi['createStripeInvoice'];\n getStripeInvoices: AdminApi['getStripeInvoices'];\n getStripeUpcomingInvoice: AdminApi['getStripeUpcomingInvoice'];\n\n // Billing Dashboard\n getWorkspaceBillingDashboard: AdminApi['getWorkspaceBillingDashboard'];\n syncWorkspaceUsageToStripe: AdminApi['syncWorkspaceUsageToStripe'];\n\n // Product Stripe Sync\n compareProductsWithStripe: AdminApi['compareProductsWithStripe'];\n syncProductToStripe: AdminApi['syncProductToStripe'];\n searchStripeProducts: AdminApi['searchStripeProducts'];\n\n // Usage API\n getUsageReport: AdminApi['getUsageReport'];\n\n // Subscriptions Admin API\n getSubscriptionsAsAdmin: AdminApi['getSubscriptionsAsAdmin'];\n\n // Voice Metrics API\n getVoiceMetrics: AdminApi['getVoiceMetrics'];\n\n // Health Dashboard API\n getHealthMetrics: AdminApi['getHealthMetrics'];\n}\n\nexport function bindAdminMethods(target: AdminBindings, admin: AdminApi): void {\n // Accounts\n target.getAccounts = admin.getAccounts.bind(admin);\n target.getAccountDetails = admin.getAccountDetails.bind(admin);\n target.getAccountByUuid = admin.getAccountByUuid.bind(admin);\n target.getAccountMemberships = admin.getAccountMemberships.bind(admin);\n target.getAccountOrgMemberships = admin.getAccountOrgMemberships.bind(admin);\n target.createAccountOrgMembership = admin.createAccountOrgMembership.bind(admin);\n target.deleteAccountOrgMembership = admin.deleteAccountOrgMembership.bind(admin);\n target.getAccountMembership = admin.getAccountMembership.bind(admin);\n target.updateAccountMembership = admin.updateAccountMembership.bind(admin);\n target.createAccountMembership = admin.createAccountMembership.bind(admin);\n target.deleteAccountMembership = admin.deleteAccountMembership.bind(admin);\n target.updateAccountAsAdmin = admin.updateAccountAsAdmin.bind(admin);\n target.createAccountAsAdmin = admin.createAccountAsAdmin.bind(admin);\n target.deleteAccountAsAdmin = admin.deleteAccountAsAdmin.bind(admin);\n target.lookupAccount = admin.lookupAccount.bind(admin);\n\n // Organizations\n target.getOrganizations = admin.getOrganizations.bind(admin);\n target.getOrganization = admin.getOrganization.bind(admin);\n target.createOrganization = admin.createOrganization.bind(admin);\n target.updateOrganization = admin.updateOrganization.bind(admin);\n target.deleteOrganization = admin.deleteOrganization.bind(admin);\n target.joinOrganization = admin.joinOrganization.bind(admin);\n target.leaveOrganization = admin.leaveOrganization.bind(admin);\n target.generateLogoUploadUrl = admin.generateLogoUploadUrl.bind(admin);\n\n // Products\n target.importProducts = admin.importProducts.bind(admin);\n target.createProductAsAdmin = admin.createProductAsAdmin.bind(admin);\n target.getProductsAsAdmin = admin.getProductsAsAdmin.bind(admin);\n target.getProductAsAdmin = admin.getProductAsAdmin.bind(admin);\n target.updateProductAsAdmin = admin.updateProductAsAdmin.bind(admin);\n target.deleteProductAsAdmin = admin.deleteProductAsAdmin.bind(admin);\n\n // Workspaces\n target.getWorkspacesAsAdmin = admin.getWorkspacesAsAdmin.bind(admin);\n target.getWorkspaceAsAdmin = admin.getWorkspaceAsAdmin.bind(admin);\n target.getWorkspaceByNumericIdAsAdmin = admin.getWorkspaceByNumericIdAsAdmin.bind(admin);\n target.createWorkspaceAsAdmin = admin.createWorkspaceAsAdmin.bind(admin);\n target.updateWorkspaceAsAdmin = admin.updateWorkspaceAsAdmin.bind(admin);\n target.deleteWorkspaceAsAdmin = admin.deleteWorkspaceAsAdmin.bind(admin);\n target.createSchemaAsAdmin = admin.createSchemaAsAdmin.bind(admin);\n target.migrateSchemaAsAdmin = admin.migrateSchemaAsAdmin.bind(admin);\n target.provisionWorkspaceAsAdmin = admin.provisionWorkspaceAsAdmin.bind(admin);\n target.refreshProvisionStatusAsAdmin = admin.refreshProvisionStatusAsAdmin.bind(admin);\n target.enableMaintenanceMode = admin.enableMaintenanceMode.bind(admin);\n target.disableMaintenanceMode = admin.disableMaintenanceMode.bind(admin);\n target.getWorkspaceHealth = admin.getWorkspaceHealth.bind(admin);\n target.provisionPlanFeatures = admin.provisionPlanFeatures.bind(admin);\n\n // Members\n target.mergeMembers = admin.mergeMembers.bind(admin);\n target.getAdminWorkspaceMember = admin.getAdminWorkspaceMember.bind(admin);\n target.createAdminWorkspaceMember = admin.createAdminWorkspaceMember.bind(admin);\n target.updateAdminWorkspaceMember = admin.updateAdminWorkspaceMember.bind(admin);\n target.getAdminWorkspaceMemberRoles = admin.getAdminWorkspaceMemberRoles.bind(admin);\n target.getMissingMemberships = admin.getMissingMemberships.bind(admin);\n target.linkMissingMembership = admin.linkMissingMembership.bind(admin);\n\n // Phone Numbers\n target.createPhoneNumberMapping = admin.createPhoneNumberMapping.bind(admin);\n target.deletePhoneNumberMapping = admin.deletePhoneNumberMapping.bind(admin);\n target.getPhoneNumberMappings = admin.getPhoneNumberMappings.bind(admin);\n target.getPhoneNumberMapping = admin.getPhoneNumberMapping.bind(admin);\n target.createAdminPhoneNumberMapping = admin.createAdminPhoneNumberMapping.bind(admin);\n target.deleteAdminPhoneNumberMapping = admin.deleteAdminPhoneNumberMapping.bind(admin);\n target.getAvailableWorkspacesForPhone = admin.getAvailableWorkspacesForPhone.bind(admin);\n target.remapPhoneNumber = admin.remapPhoneNumber.bind(admin);\n target.getUnmappedPhoneNumbers = admin.getUnmappedPhoneNumbers.bind(admin);\n target.getWorkspaceUnmappedPhoneNumbers = admin.getWorkspaceUnmappedPhoneNumbers.bind(admin);\n target.getWorkspacePhoneNumbersAsAdmin = admin.getWorkspacePhoneNumbersAsAdmin.bind(admin);\n target.getProviderPhoneNumbers = admin.getProviderPhoneNumbers.bind(admin);\n target.getProviderPhoneNumber = admin.getProviderPhoneNumber.bind(admin);\n target.updatePhoneNumberStatus = admin.updatePhoneNumberStatus.bind(admin);\n target.syncPhoneNumbersFromProviders = admin.syncPhoneNumbersFromProviders.bind(admin);\n target.approvePhoneNumberRequest = admin.approvePhoneNumberRequest.bind(admin);\n target.rejectPhoneNumberRequest = admin.rejectPhoneNumberRequest.bind(admin);\n target.startBulkPhoneClassification = admin.startBulkPhoneClassification.bind(admin);\n\n // Site Mappings\n target.getSiteMappings = admin.getSiteMappings.bind(admin);\n target.getSiteMapping = admin.getSiteMapping.bind(admin);\n target.updateSiteMapping = admin.updateSiteMapping.bind(admin);\n target.updateSiteMappingWorkspace = admin.updateSiteMappingWorkspace.bind(admin);\n target.adminDeleteSiteMapping = admin.adminDeleteSiteMapping.bind(admin);\n target.createSiteMapping = admin.createSiteMapping.bind(admin);\n target.createOrUpdateSiteMapping = admin.createOrUpdateSiteMapping.bind(admin);\n target.deleteSiteMapping = admin.deleteSiteMapping.bind(admin);\n\n // Inbox Mappings\n target.getInboxMappings = admin.getInboxMappings.bind(admin);\n target.getInboxMapping = admin.getInboxMapping.bind(admin);\n target.updateInboxMapping = admin.updateInboxMapping.bind(admin);\n target.deleteAdminInboxMapping = admin.deleteAdminInboxMapping.bind(admin);\n\n // Utilities\n target.generateChatSummaries = admin.generateChatSummaries.bind(admin);\n target.executeQuery = admin.executeQuery.bind(admin);\n target.triggerPeriodicJob = admin.triggerPeriodicJob.bind(admin);\n target.listAllThemes = admin.listAllThemes.bind(admin);\n target.startBulkTOSAcceptance = admin.startBulkTOSAcceptance.bind(admin);\n target.startTokenUsageBackfill = admin.startTokenUsageBackfill.bind(admin);\n target.updateChatMessage = admin.updateChatMessage.bind(admin);\n\n // Stripe Customer Management\n target.getStripeCustomer = admin.getStripeCustomer.bind(admin);\n target.createStripeCustomer = admin.createStripeCustomer.bind(admin);\n target.updateStripeCustomer = admin.updateStripeCustomer.bind(admin);\n\n // Stripe Subscription Management\n target.getStripeSubscriptions = admin.getStripeSubscriptions.bind(admin);\n target.createStripeSubscription = admin.createStripeSubscription.bind(admin);\n target.updateStripeSubscription = admin.updateStripeSubscription.bind(admin);\n target.cancelStripeSubscription = admin.cancelStripeSubscription.bind(admin);\n target.provisionWorkspaceForSubscription = admin.provisionWorkspaceForSubscription.bind(admin);\n target.associateWorkspaceWithSubscription = admin.associateWorkspaceWithSubscription.bind(admin);\n target.createSubscriptionPaymentLink = admin.createSubscriptionPaymentLink.bind(admin);\n\n // Stripe Payment Methods\n target.createSetupIntent = admin.createSetupIntent.bind(admin);\n target.getStripePaymentMethods = admin.getStripePaymentMethods.bind(admin);\n target.attachStripePaymentMethod = admin.attachStripePaymentMethod.bind(admin);\n target.detachStripePaymentMethod = admin.detachStripePaymentMethod.bind(admin);\n target.setDefaultStripePaymentMethod = admin.setDefaultStripePaymentMethod.bind(admin);\n target.previewWorkspaceOrganizationChange = admin.previewWorkspaceOrganizationChange.bind(admin);\n target.changeWorkspaceOrganization = admin.changeWorkspaceOrganization.bind(admin);\n\n // Stripe Invoices\n target.createStripeInvoice = admin.createStripeInvoice.bind(admin);\n target.getStripeInvoices = admin.getStripeInvoices.bind(admin);\n target.getStripeUpcomingInvoice = admin.getStripeUpcomingInvoice.bind(admin);\n\n // Billing Dashboard\n target.getWorkspaceBillingDashboard = admin.getWorkspaceBillingDashboard.bind(admin);\n target.syncWorkspaceUsageToStripe = admin.syncWorkspaceUsageToStripe.bind(admin);\n\n // Product Stripe Sync\n target.compareProductsWithStripe = admin.compareProductsWithStripe.bind(admin);\n target.syncProductToStripe = admin.syncProductToStripe.bind(admin);\n target.searchStripeProducts = admin.searchStripeProducts.bind(admin);\n\n // Usage API\n target.getUsageReport = admin.getUsageReport.bind(admin);\n\n // Subscriptions Admin API\n target.getSubscriptionsAsAdmin = admin.getSubscriptionsAsAdmin.bind(admin);\n\n // Voice Metrics API\n target.getVoiceMetrics = admin.getVoiceMetrics.bind(admin);\n\n // Health Dashboard API\n target.getHealthMetrics = admin.getHealthMetrics.bind(admin);\n}\n","import { WorkspacesApi, WorkspaceInvitationsApi } from '../../api';\n\nexport interface WorkspacesBindings {\n // Workspaces API\n getWorkspaces: WorkspacesApi['getWorkspaces'];\n getPublicWorkspaces: WorkspacesApi['getPublicWorkspaces'];\n getWorkspace: WorkspacesApi['getWorkspace'];\n createWorkspace: WorkspacesApi['createWorkspace'];\n updateWorkspace: WorkspacesApi['updateWorkspace'];\n deleteWorkspace: WorkspacesApi['deleteWorkspace'];\n leaveWorkspace: WorkspacesApi['leaveWorkspace'];\n getWorkspaceDefaults: WorkspacesApi['getWorkspaceDefaults'];\n updateWorkspaceDefaults: WorkspacesApi['updateWorkspaceDefaults'];\n getWorkspaceCounts: WorkspacesApi['getWorkspaceCounts'];\n getBusinessHoursStatus: WorkspacesApi['getBusinessHoursStatus'];\n getAvailableWorkspaceFeatures: WorkspacesApi['getAvailableWorkspaceFeatures'];\n getWorkspaceNotices: WorkspacesApi['getWorkspaceNotices'];\n getNotifications: WorkspacesApi['getNotifications'];\n getNotification: WorkspacesApi['getNotification'];\n getUnreadNotificationCount: WorkspacesApi['getUnreadNotificationCount'];\n markNotificationAsRead: WorkspacesApi['markNotificationAsRead'];\n dismissNotification: WorkspacesApi['dismissNotification'];\n dismissAllNotifications: WorkspacesApi['dismissAllNotifications'];\n getResellerWorkspaces: WorkspacesApi['getResellerWorkspaces'];\n createClientWorkspace: WorkspacesApi['createClientWorkspace'];\n getClientWorkspace: WorkspacesApi['getClientWorkspace'];\n updateClientWorkspace: WorkspacesApi['updateClientWorkspace'];\n deleteClientWorkspace: WorkspacesApi['deleteClientWorkspace'];\n provisionClientWorkspace: WorkspacesApi['provisionClientWorkspace'];\n getProducts: WorkspacesApi['getProducts'];\n getProduct: WorkspacesApi['getProduct'];\n getPublicProduct: WorkspacesApi['getPublicProduct'];\n createProduct: WorkspacesApi['createProduct'];\n updateProduct: WorkspacesApi['updateProduct'];\n deleteProduct: WorkspacesApi['deleteProduct'];\n resetWorkspaceSecretKey: WorkspacesApi['resetWorkspaceSecretKey'];\n exportWorkspace: WorkspacesApi['exportWorkspace'];\n previewWorkspaceImport: WorkspacesApi['previewWorkspaceImport'];\n importWorkspace: WorkspacesApi['importWorkspace'];\n previewImportWorkspace: WorkspacesApi['previewImportWorkspace'];\n getWorkspaceThemes: WorkspacesApi['getWorkspaceThemes'];\n updateWorkspaceThemes: WorkspacesApi['updateWorkspaceThemes'];\n getWorkspaceBySlug: WorkspacesApi['getWorkspace'];\n getWorkspaceScopes: WorkspacesApi['getWorkspaceScopes'];\n getBillingDashboard: WorkspacesApi['getBillingDashboard'];\n syncUsageToStripe: WorkspacesApi['syncUsageToStripe'];\n\n // Push Notifications API\n getVapidPublicKey: WorkspacesApi['getVapidPublicKey'];\n registerPushSubscription: WorkspacesApi['registerPushSubscription'];\n unregisterPushSubscription: WorkspacesApi['unregisterPushSubscription'];\n listPushSubscriptions: WorkspacesApi['listPushSubscriptions'];\n\n // WorkspaceInvitations API\n listWorkspaceInvitations: WorkspaceInvitationsApi['listWorkspaceInvitations'];\n listWorkspaceInvitationsAdmin: WorkspaceInvitationsApi['listWorkspaceInvitationsAdmin'];\n getWorkspaceInvitation: WorkspaceInvitationsApi['getWorkspaceInvitation'];\n updateWorkspaceInvitationAdmin: WorkspaceInvitationsApi['updateWorkspaceInvitationAdmin'];\n deleteWorkspaceInvitation: WorkspaceInvitationsApi['deleteWorkspaceInvitation'];\n deleteWorkspaceInvitationAdmin: WorkspaceInvitationsApi['deleteWorkspaceInvitationAdmin'];\n requestWorkspaceMembership: WorkspaceInvitationsApi['requestWorkspaceMembership'];\n approveWorkspaceInvitation: WorkspaceInvitationsApi['approveWorkspaceInvitation'];\n denyWorkspaceInvitation: WorkspaceInvitationsApi['denyWorkspaceInvitation'];\n blockWorkspaceInvitation: WorkspaceInvitationsApi['blockWorkspaceInvitation'];\n inviteToWorkspace: WorkspaceInvitationsApi['inviteToWorkspace'];\n acceptInvitation: WorkspaceInvitationsApi['acceptInvitation'];\n declineInvitation: WorkspaceInvitationsApi['declineInvitation'];\n}\n\nexport function bindWorkspacesMethods(\n target: WorkspacesBindings,\n workspaces: WorkspacesApi,\n signupRequests: WorkspaceInvitationsApi\n): void {\n // Workspaces API\n target.getWorkspaces = workspaces.getWorkspaces.bind(workspaces);\n target.getPublicWorkspaces = workspaces.getPublicWorkspaces.bind(workspaces);\n target.getWorkspace = workspaces.getWorkspace.bind(workspaces);\n target.createWorkspace = workspaces.createWorkspace.bind(workspaces);\n target.updateWorkspace = workspaces.updateWorkspace.bind(workspaces);\n target.deleteWorkspace = workspaces.deleteWorkspace.bind(workspaces);\n target.leaveWorkspace = workspaces.leaveWorkspace.bind(workspaces);\n target.getWorkspaceDefaults = workspaces.getWorkspaceDefaults.bind(workspaces);\n target.updateWorkspaceDefaults = workspaces.updateWorkspaceDefaults.bind(workspaces);\n target.getWorkspaceCounts = workspaces.getWorkspaceCounts.bind(workspaces);\n target.getBusinessHoursStatus = workspaces.getBusinessHoursStatus.bind(workspaces);\n target.getAvailableWorkspaceFeatures = workspaces.getAvailableWorkspaceFeatures.bind(workspaces);\n target.getWorkspaceNotices = workspaces.getWorkspaceNotices.bind(workspaces);\n target.getNotifications = workspaces.getNotifications.bind(workspaces);\n target.getNotification = workspaces.getNotification.bind(workspaces);\n target.getUnreadNotificationCount = workspaces.getUnreadNotificationCount.bind(workspaces);\n target.markNotificationAsRead = workspaces.markNotificationAsRead.bind(workspaces);\n target.dismissNotification = workspaces.dismissNotification.bind(workspaces);\n target.dismissAllNotifications = workspaces.dismissAllNotifications.bind(workspaces);\n target.getResellerWorkspaces = workspaces.getResellerWorkspaces.bind(workspaces);\n target.createClientWorkspace = workspaces.createClientWorkspace.bind(workspaces);\n target.getClientWorkspace = workspaces.getClientWorkspace.bind(workspaces);\n target.updateClientWorkspace = workspaces.updateClientWorkspace.bind(workspaces);\n target.deleteClientWorkspace = workspaces.deleteClientWorkspace.bind(workspaces);\n target.provisionClientWorkspace = workspaces.provisionClientWorkspace.bind(workspaces);\n target.getProducts = workspaces.getProducts.bind(workspaces);\n target.getProduct = workspaces.getProduct.bind(workspaces);\n target.getPublicProduct = workspaces.getPublicProduct.bind(workspaces);\n target.createProduct = workspaces.createProduct.bind(workspaces);\n target.updateProduct = workspaces.updateProduct.bind(workspaces);\n target.deleteProduct = workspaces.deleteProduct.bind(workspaces);\n target.resetWorkspaceSecretKey = workspaces.resetWorkspaceSecretKey.bind(workspaces);\n target.exportWorkspace = workspaces.exportWorkspace.bind(workspaces);\n target.previewWorkspaceImport = workspaces.previewWorkspaceImport.bind(workspaces);\n target.importWorkspace = workspaces.importWorkspace.bind(workspaces);\n target.previewImportWorkspace = workspaces.previewImportWorkspace.bind(workspaces);\n target.getWorkspaceThemes = workspaces.getWorkspaceThemes.bind(workspaces);\n target.updateWorkspaceThemes = workspaces.updateWorkspaceThemes.bind(workspaces);\n target.getWorkspaceBySlug = workspaces.getWorkspace.bind(workspaces);\n target.getWorkspaceScopes = workspaces.getWorkspaceScopes.bind(workspaces);\n target.getBillingDashboard = workspaces.getBillingDashboard.bind(workspaces);\n target.syncUsageToStripe = workspaces.syncUsageToStripe.bind(workspaces);\n\n // Push Notifications API\n target.getVapidPublicKey = workspaces.getVapidPublicKey.bind(workspaces);\n target.registerPushSubscription = workspaces.registerPushSubscription.bind(workspaces);\n target.unregisterPushSubscription = workspaces.unregisterPushSubscription.bind(workspaces);\n target.listPushSubscriptions = workspaces.listPushSubscriptions.bind(workspaces);\n\n // WorkspaceInvitations API\n target.listWorkspaceInvitations = signupRequests.listWorkspaceInvitations.bind(signupRequests);\n target.listWorkspaceInvitationsAdmin =\n signupRequests.listWorkspaceInvitationsAdmin.bind(signupRequests);\n target.getWorkspaceInvitation = signupRequests.getWorkspaceInvitation.bind(signupRequests);\n target.updateWorkspaceInvitationAdmin =\n signupRequests.updateWorkspaceInvitationAdmin.bind(signupRequests);\n target.deleteWorkspaceInvitation = signupRequests.deleteWorkspaceInvitation.bind(signupRequests);\n target.deleteWorkspaceInvitationAdmin =\n signupRequests.deleteWorkspaceInvitationAdmin.bind(signupRequests);\n target.requestWorkspaceMembership =\n signupRequests.requestWorkspaceMembership.bind(signupRequests);\n target.approveWorkspaceInvitation =\n signupRequests.approveWorkspaceInvitation.bind(signupRequests);\n target.denyWorkspaceInvitation = signupRequests.denyWorkspaceInvitation.bind(signupRequests);\n target.blockWorkspaceInvitation = signupRequests.blockWorkspaceInvitation.bind(signupRequests);\n target.inviteToWorkspace = signupRequests.inviteToWorkspace.bind(signupRequests);\n target.acceptInvitation = signupRequests.acceptInvitation.bind(signupRequests);\n target.declineInvitation = signupRequests.declineInvitation.bind(signupRequests);\n}\n","import { AuthApi } from '../../api';\nimport { AssignmentsApi } from '../../api';\n\nexport interface AuthBindings {\n // Auth API\n getUserAccount: AuthApi['getUserAccount'];\n updateUserAccount: AuthApi['updateUserAccount'];\n login: AuthApi['login'];\n resendCode: AuthApi['resendCode'];\n verifyCodeWith2FA: AuthApi['verifyCodeWith2FA'];\n emailPasswordLogin: AuthApi['emailPasswordLogin'];\n emailPasswordSignup: AuthApi['emailPasswordSignup'];\n requestMagicLink: AuthApi['requestMagicLink'];\n validateMagicLink: AuthApi['validateMagicLink'];\n sendEmailVerification: AuthApi['sendEmailVerification'];\n verifyEmail: AuthApi['verifyEmail'];\n changePassword: AuthApi['changePassword'];\n setPassword: AuthApi['setPassword'];\n getPasswordStatus: AuthApi['getPasswordStatus'];\n logout: AuthApi['logout'];\n requestCrossDomainToken: AuthApi['requestCrossDomainToken'];\n exchangeToken: AuthApi['exchangeToken'];\n getDomainMapping: AuthApi['getDomainMapping'];\n createSignup: AuthApi['createSignup'];\n createAccount: AuthApi['emailPasswordSignup'];\n\n // Two-Factor Authentication methods\n getTwoFactorStatus: AuthApi['getTwoFactorStatus'];\n setupTOTP: AuthApi['setupTOTP'];\n verifyTOTPSetup: AuthApi['verifyTOTPSetup'];\n setupWebAuthn: AuthApi['setupWebAuthn'];\n verifyWebAuthnSetup: AuthApi['verifyWebAuthnSetup'];\n verifyTOTPAuth: AuthApi['verifyTOTPAuth'];\n verifyRecoveryCodeAuth: AuthApi['verifyRecoveryCodeAuth'];\n getWebAuthnAuthOptions: AuthApi['getWebAuthnAuthOptions'];\n verifyWebAuthnAuth: AuthApi['verifyWebAuthnAuth'];\n generateRecoveryCodes: AuthApi['generateRecoveryCodes'];\n disableTwoFactorMethod: AuthApi['disableTwoFactorMethod'];\n updateTwoFactorMethod: AuthApi['updateTwoFactorMethod'];\n\n // Organization membership methods\n getMyOrganizations: AuthApi['getMyOrganizations'];\n\n // Credential change methods (Verified Credential Architecture)\n requestCredentialChange: AuthApi['requestCredentialChange'];\n verifyCredentialChange: AuthApi['verifyCredentialChange'];\n getPendingCredentialChanges: AuthApi['getPendingCredentialChanges'];\n cancelCredentialChange: AuthApi['cancelCredentialChange'];\n // Credential change invite methods (for members to view/confirm admin-initiated invites)\n getCredentialChangeInviteDetails: AuthApi['getCredentialChangeInviteDetails'];\n confirmCredentialChangeInvite: AuthApi['confirmCredentialChangeInvite'];\n\n // Assignments API\n getAssignments: AssignmentsApi['getAssignments'];\n getAssignment: AssignmentsApi['getAssignment'];\n getAssignmentMessages: AssignmentsApi['getAssignmentMessages'];\n updateAssignment: AssignmentsApi['updateAssignment'];\n deleteAssignment: AssignmentsApi['deleteAssignment'];\n getAssignmentTask: AssignmentsApi['getAssignmentTask'];\n selectCurrentAssignmentTask: AssignmentsApi['selectCurrentAssignmentTask'];\n createAssignment: AssignmentsApi['createAssignment'];\n getAssignmentTaskDetail: AssignmentsApi['getAssignmentTaskDetail'];\n getAssignmentCelContext: AssignmentsApi['getAssignmentCelContext'];\n cancelAssignment: AssignmentsApi['cancelAssignment'];\n getAssignmentTools: AssignmentsApi['getAssignmentTools'];\n executeAssignmentTool: AssignmentsApi['executeAssignmentTool'];\n}\n\nexport function bindAuthMethods(\n target: AuthBindings,\n auth: AuthApi,\n assignments: AssignmentsApi\n): void {\n // Auth API\n target.getUserAccount = auth.getUserAccount.bind(auth);\n target.updateUserAccount = auth.updateUserAccount.bind(auth);\n target.login = auth.login.bind(auth);\n target.resendCode = auth.resendCode.bind(auth);\n target.verifyCodeWith2FA = auth.verifyCodeWith2FA.bind(auth);\n target.emailPasswordLogin = auth.emailPasswordLogin.bind(auth);\n target.emailPasswordSignup = auth.emailPasswordSignup.bind(auth);\n target.requestMagicLink = auth.requestMagicLink.bind(auth);\n target.validateMagicLink = auth.validateMagicLink.bind(auth);\n target.sendEmailVerification = auth.sendEmailVerification.bind(auth);\n target.verifyEmail = auth.verifyEmail.bind(auth);\n target.changePassword = auth.changePassword.bind(auth);\n target.setPassword = auth.setPassword.bind(auth);\n target.getPasswordStatus = auth.getPasswordStatus.bind(auth);\n target.logout = auth.logout.bind(auth);\n target.requestCrossDomainToken = auth.requestCrossDomainToken.bind(auth);\n target.exchangeToken = auth.exchangeToken.bind(auth);\n target.getDomainMapping = auth.getDomainMapping.bind(auth);\n target.createSignup = auth.createSignup.bind(auth);\n target.createAccount = auth.emailPasswordSignup.bind(auth);\n\n // Two-Factor Authentication API\n target.getTwoFactorStatus = auth.getTwoFactorStatus.bind(auth);\n target.setupTOTP = auth.setupTOTP.bind(auth);\n target.verifyTOTPSetup = auth.verifyTOTPSetup.bind(auth);\n target.setupWebAuthn = auth.setupWebAuthn.bind(auth);\n target.verifyWebAuthnSetup = auth.verifyWebAuthnSetup.bind(auth);\n target.verifyTOTPAuth = auth.verifyTOTPAuth.bind(auth);\n target.verifyRecoveryCodeAuth = auth.verifyRecoveryCodeAuth.bind(auth);\n target.getWebAuthnAuthOptions = auth.getWebAuthnAuthOptions.bind(auth);\n target.verifyWebAuthnAuth = auth.verifyWebAuthnAuth.bind(auth);\n target.generateRecoveryCodes = auth.generateRecoveryCodes.bind(auth);\n target.disableTwoFactorMethod = auth.disableTwoFactorMethod.bind(auth);\n target.updateTwoFactorMethod = auth.updateTwoFactorMethod.bind(auth);\n\n // Organization membership methods\n target.getMyOrganizations = auth.getMyOrganizations.bind(auth);\n\n // Credential change methods (Verified Credential Architecture)\n target.requestCredentialChange = auth.requestCredentialChange.bind(auth);\n target.verifyCredentialChange = auth.verifyCredentialChange.bind(auth);\n target.getPendingCredentialChanges = auth.getPendingCredentialChanges.bind(auth);\n target.cancelCredentialChange = auth.cancelCredentialChange.bind(auth);\n // Credential change invite methods (for members to view/confirm admin-initiated invites)\n target.getCredentialChangeInviteDetails = auth.getCredentialChangeInviteDetails.bind(auth);\n target.confirmCredentialChangeInvite = auth.confirmCredentialChangeInvite.bind(auth);\n\n // Assignments API\n target.getAssignments = assignments.getAssignments.bind(assignments);\n target.getAssignment = assignments.getAssignment.bind(assignments);\n target.getAssignmentMessages = assignments.getAssignmentMessages.bind(assignments);\n target.updateAssignment = assignments.updateAssignment.bind(assignments);\n target.deleteAssignment = assignments.deleteAssignment.bind(assignments);\n target.getAssignmentTask = assignments.getAssignmentTask.bind(assignments);\n target.selectCurrentAssignmentTask = assignments.selectCurrentAssignmentTask.bind(assignments);\n target.createAssignment = assignments.createAssignment.bind(assignments);\n target.getAssignmentTaskDetail = assignments.getAssignmentTaskDetail.bind(assignments);\n target.getAssignmentCelContext = assignments.getAssignmentCelContext.bind(assignments);\n target.cancelAssignment = assignments.cancelAssignment.bind(assignments);\n target.getAssignmentTools = assignments.getAssignmentTools.bind(assignments);\n target.executeAssignmentTool = assignments.executeAssignmentTool.bind(assignments);\n}\n","import { SitesApi } from '../../api';\n\nexport interface SitesBindings {\n // Sites API\n getSites: SitesApi['getSites'];\n checkSiteSlugAvailability: SitesApi['checkSiteSlugAvailability'];\n checkSiteDomainAvailability: SitesApi['checkSiteDomainAvailability'];\n getSite: SitesApi['getSite'];\n getSiteByUuid: SitesApi['getSiteByUuid'];\n getSiteRenderedPage: SitesApi['getSiteRenderedPage'];\n getSiteRenderedMenu: SitesApi['getSiteRenderedMenu'];\n siteSignup: SitesApi['siteSignup'];\n siteSendPhoneCode: SitesApi['siteSendPhoneCode'];\n siteSendEmailCode: SitesApi['siteSendEmailCode'];\n siteVerifyCode: SitesApi['siteVerifyCode'];\n siteGoogleOAuthInitiate: SitesApi['siteGoogleOAuthInitiate'];\n crawlSite: SitesApi['crawlSite'];\n createSite: SitesApi['createSite'];\n updateSite: SitesApi['updateSite'];\n deleteSite: SitesApi['deleteSite'];\n getSitePages: SitesApi['getSitePages'];\n getPage: SitesApi['getPage'];\n getPageBySlug: SitesApi['getPageBySlug'];\n createPage: SitesApi['createPage'];\n updatePage: SitesApi['updatePage'];\n deletePage: SitesApi['deletePage'];\n getSiteCounts: SitesApi['getSiteCounts'];\n getSiteMenu: SitesApi['getSiteMenu'];\n getMenuItems: SitesApi['getMenuItems'];\n createMenuItem: SitesApi['createMenuItem'];\n updateMenuItem: SitesApi['updateMenuItem'];\n deleteMenuItem: SitesApi['deleteMenuItem'];\n reorderMenuItems: SitesApi['reorderMenuItems'];\n generateSiteMediaUploadUrl: SitesApi['generateSiteMediaUploadUrl'];\n}\n\nexport function bindSitesMethods(target: SitesBindings, sites: SitesApi): void {\n target.getSites = sites.getSites.bind(sites);\n target.checkSiteSlugAvailability = sites.checkSiteSlugAvailability.bind(sites);\n target.checkSiteDomainAvailability = sites.checkSiteDomainAvailability.bind(sites);\n target.getSite = sites.getSite.bind(sites);\n target.getSiteByUuid = sites.getSiteByUuid.bind(sites);\n target.getSiteRenderedPage = sites.getSiteRenderedPage.bind(sites);\n target.getSiteRenderedMenu = sites.getSiteRenderedMenu.bind(sites);\n target.siteSignup = sites.siteSignup.bind(sites);\n target.siteSendPhoneCode = sites.siteSendPhoneCode.bind(sites);\n target.siteSendEmailCode = sites.siteSendEmailCode.bind(sites);\n target.siteVerifyCode = sites.siteVerifyCode.bind(sites);\n target.siteGoogleOAuthInitiate = sites.siteGoogleOAuthInitiate.bind(sites);\n target.crawlSite = sites.crawlSite.bind(sites);\n target.createSite = sites.createSite.bind(sites);\n target.updateSite = sites.updateSite.bind(sites);\n target.deleteSite = sites.deleteSite.bind(sites);\n target.getSitePages = sites.getSitePages.bind(sites);\n target.getPage = sites.getPage.bind(sites);\n target.getPageBySlug = sites.getPageBySlug.bind(sites);\n target.createPage = sites.createPage.bind(sites);\n target.updatePage = sites.updatePage.bind(sites);\n target.deletePage = sites.deletePage.bind(sites);\n target.getSiteCounts = sites.getSiteCounts.bind(sites);\n target.getSiteMenu = sites.getSiteMenu.bind(sites);\n target.getMenuItems = sites.getMenuItems.bind(sites);\n target.createMenuItem = sites.createMenuItem.bind(sites);\n target.updateMenuItem = sites.updateMenuItem.bind(sites);\n target.deleteMenuItem = sites.deleteMenuItem.bind(sites);\n target.reorderMenuItems = sites.reorderMenuItems.bind(sites);\n target.generateSiteMediaUploadUrl = sites.generateSiteMediaUploadUrl.bind(sites);\n}\n","import { FilesApi } from '../../api';\n\nexport interface FilesBindings {\n // Files API\n getFiles: FilesApi['getFiles'];\n getFile: FilesApi['getFile'];\n createFile: FilesApi['createFile'];\n updateFile: FilesApi['updateFile'];\n deleteFile: FilesApi['deleteFile'];\n convertFile: FilesApi['convertFile'];\n generateFileUploadUrl: FilesApi['generateFileUploadUrl'];\n getFolders: FilesApi['getFolders'];\n getFolder: FilesApi['getFolder'];\n createFolder: FilesApi['createFolder'];\n updateFolder: FilesApi['updateFolder'];\n deleteFolder: FilesApi['deleteFolder'];\n reindexFolder: FilesApi['reindexFolder'];\n searchFolder: FilesApi['searchFolder'];\n // File Labels API\n getFileLabels: FilesApi['getFileLabels'];\n getFileLabel: FilesApi['getFileLabel'];\n getFileLabelByUuid: FilesApi['getFileLabelByUuid'];\n createFileLabel: FilesApi['createFileLabel'];\n updateFileLabel: FilesApi['updateFileLabel'];\n deleteFileLabel: FilesApi['deleteFileLabel'];\n // File/Folder Sharing API\n getFileSharing: FilesApi['getFileSharing'];\n updateFileRoles: FilesApi['updateFileRoles'];\n removeFileRole: FilesApi['removeFileRole'];\n getFolderSharing: FilesApi['getFolderSharing'];\n updateFolderRoles: FilesApi['updateFolderRoles'];\n removeFolderRole: FilesApi['removeFolderRole'];\n // Batch Sharing API\n updateFileSharing: FilesApi['updateFileSharing'];\n updateFolderSharing: FilesApi['updateFolderSharing'];\n // Public Sharing API\n getPublicFile: FilesApi['getPublicFile'];\n getPublicFolder: FilesApi['getPublicFolder'];\n getPublicFolderFiles: FilesApi['getPublicFolderFiles'];\n}\n\nexport function bindFilesMethods(target: FilesBindings, files: FilesApi): void {\n target.getFiles = files.getFiles.bind(files);\n target.getFile = files.getFile.bind(files);\n target.createFile = files.createFile.bind(files);\n target.updateFile = files.updateFile.bind(files);\n target.deleteFile = files.deleteFile.bind(files);\n target.convertFile = files.convertFile.bind(files);\n target.generateFileUploadUrl = files.generateFileUploadUrl.bind(files);\n target.getFolders = files.getFolders.bind(files);\n target.getFolder = files.getFolder.bind(files);\n target.createFolder = files.createFolder.bind(files);\n target.updateFolder = files.updateFolder.bind(files);\n target.deleteFolder = files.deleteFolder.bind(files);\n target.reindexFolder = files.reindexFolder.bind(files);\n target.searchFolder = files.searchFolder.bind(files);\n // File Labels API\n target.getFileLabels = files.getFileLabels.bind(files);\n target.getFileLabel = files.getFileLabel.bind(files);\n target.getFileLabelByUuid = files.getFileLabelByUuid.bind(files);\n target.createFileLabel = files.createFileLabel.bind(files);\n target.updateFileLabel = files.updateFileLabel.bind(files);\n target.deleteFileLabel = files.deleteFileLabel.bind(files);\n // File/Folder Sharing API\n target.getFileSharing = files.getFileSharing.bind(files);\n target.updateFileRoles = files.updateFileRoles.bind(files);\n target.removeFileRole = files.removeFileRole.bind(files);\n target.getFolderSharing = files.getFolderSharing.bind(files);\n target.updateFolderRoles = files.updateFolderRoles.bind(files);\n target.removeFolderRole = files.removeFolderRole.bind(files);\n // Batch Sharing API\n target.updateFileSharing = files.updateFileSharing.bind(files);\n target.updateFolderSharing = files.updateFolderSharing.bind(files);\n // Public Sharing API\n target.getPublicFile = files.getPublicFile.bind(files);\n target.getPublicFolder = files.getPublicFolder.bind(files);\n target.getPublicFolderFiles = files.getPublicFolderFiles.bind(files);\n}\n","import { EventsApi } from '../../api';\n\nexport interface EventsBindings {\n // Event Rules API\n getEventRules: EventsApi['getEventRules'];\n getAvailableActions: EventsApi['getAvailableActions'];\n searchEventRules: EventsApi['searchEventRules'];\n getEventRule: EventsApi['getEventRule'];\n createEventRule: EventsApi['createEventRule'];\n updateEventRule: EventsApi['updateEventRule'];\n deleteEventRule: EventsApi['deleteEventRule'];\n reorderEventRules: EventsApi['reorderEventRules'];\n getWebhookLogs: EventsApi['getWebhookLogs'];\n getRuleExecutions: EventsApi['getRuleExecutions'];\n\n // Events API\n getEvents: EventsApi['getEvents'];\n getEvent: EventsApi['getEvent'];\n createEvent: EventsApi['createEvent'];\n updateEvent: EventsApi['updateEvent'];\n deleteEvent: EventsApi['deleteEvent'];\n runEvent: EventsApi['runEvent'];\n getEventRuns: EventsApi['getEventRuns'];\n resetEventRuns: EventsApi['resetEventRuns'];\n}\n\nexport function bindEventsMethods(target: EventsBindings, events: EventsApi): void {\n // Event Rules API\n target.getEventRules = events.getEventRules.bind(events);\n target.getAvailableActions = events.getAvailableActions.bind(events);\n target.searchEventRules = events.searchEventRules.bind(events);\n target.getEventRule = events.getEventRule.bind(events);\n target.createEventRule = events.createEventRule.bind(events);\n target.updateEventRule = events.updateEventRule.bind(events);\n target.deleteEventRule = events.deleteEventRule.bind(events);\n target.reorderEventRules = events.reorderEventRules.bind(events);\n target.getWebhookLogs = events.getWebhookLogs.bind(events);\n target.getRuleExecutions = events.getRuleExecutions.bind(events);\n\n // Events API\n target.getEvents = events.getEvents.bind(events);\n target.getEvent = events.getEvent.bind(events);\n target.createEvent = events.createEvent.bind(events);\n target.updateEvent = events.updateEvent.bind(events);\n target.deleteEvent = events.deleteEvent.bind(events);\n target.runEvent = events.runEvent.bind(events);\n target.getEventRuns = events.getEventRuns.bind(events);\n target.resetEventRuns = events.resetEventRuns.bind(events);\n}\n","import { WorkflowsApi } from '../../api';\nimport { WorkflowNotesApi } from '../../api/workflow-notes';\nimport { AssistantsApi, SupervisorsApi } from '../../api';\n\nexport interface WorkflowsBindings {\n // Workflows API\n getWorkflows: WorkflowsApi['getWorkflows'];\n getWorkflow: WorkflowsApi['getWorkflow'];\n getWorkflowActivity: WorkflowsApi['getWorkflowActivity'];\n getWorkflowsActivityBatch: WorkflowsApi['getWorkflowsActivityBatch'];\n getWorkflowDiagram: WorkflowsApi['getWorkflowDiagram'];\n getWorkflowThumbnailUrl: WorkflowsApi['getWorkflowThumbnailUrl'];\n createWorkflow: WorkflowsApi['createWorkflow'];\n updateWorkflow: WorkflowsApi['updateWorkflow'];\n getWorkflowDeletionPreview: WorkflowsApi['getWorkflowDeletionPreview'];\n deleteWorkflow: WorkflowsApi['deleteWorkflow'];\n archiveWorkflow: WorkflowsApi['archiveWorkflow'];\n unarchiveWorkflow: WorkflowsApi['unarchiveWorkflow'];\n cloneWorkflow: WorkflowsApi['cloneWorkflow'];\n getWorkflowTemplates: WorkflowsApi['getWorkflowTemplates'];\n createWorkflowFromTemplate: WorkflowsApi['createWorkflowFromTemplate'];\n getWorkflowTaskAssignmentStats: WorkflowsApi['getWorkflowTaskAssignmentStats'];\n getTaskChats: WorkflowsApi['getTaskChats'];\n\n // Workflow Notes API\n getWorkflowNotes: WorkflowNotesApi['getWorkflowNotes'];\n getWorkflowNote: WorkflowNotesApi['getWorkflowNote'];\n createWorkflowNote: WorkflowNotesApi['createWorkflowNote'];\n updateWorkflowNote: WorkflowNotesApi['updateWorkflowNote'];\n deleteWorkflowNote: WorkflowNotesApi['deleteWorkflowNote'];\n\n // Workflow Contributors API\n getWorkflowContributors: WorkflowsApi['getWorkflowContributors'];\n createWorkflowContributor: WorkflowsApi['createWorkflowContributor'];\n updateWorkflowContributor: WorkflowsApi['updateWorkflowContributor'];\n deleteWorkflowContributor: WorkflowsApi['deleteWorkflowContributor'];\n\n // Workspace Builders API\n getWorkspaceBuilders: WorkflowsApi['getWorkspaceBuilders'];\n getWorkspaceBuilder: WorkflowsApi['getWorkspaceBuilder'];\n buildWorkspace: WorkflowsApi['buildWorkspace'];\n validateWorkflowName: WorkflowsApi['validateWorkflowName'];\n\n // Assistants API\n getAssistants: AssistantsApi['getAssistants'];\n getAssistant: AssistantsApi['getAssistant'];\n createAssistant: AssistantsApi['createAssistant'];\n updateAssistant: AssistantsApi['updateAssistant'];\n deleteAssistant: AssistantsApi['deleteAssistant'];\n previewTTS: AssistantsApi['previewTTS'];\n\n // Supervisors API\n getSupervisors: SupervisorsApi['getSupervisors'];\n getSupervisor: SupervisorsApi['getSupervisor'];\n createSupervisor: SupervisorsApi['createSupervisor'];\n updateSupervisor: SupervisorsApi['updateSupervisor'];\n deleteSupervisor: SupervisorsApi['deleteSupervisor'];\n}\n\nexport function bindWorkflowsMethods(\n target: WorkflowsBindings,\n workflows: WorkflowsApi,\n workflowNotes: WorkflowNotesApi,\n assistants: AssistantsApi,\n supervisors: SupervisorsApi\n): void {\n // Workflows API\n target.getWorkflows = workflows.getWorkflows.bind(workflows);\n target.getWorkflow = workflows.getWorkflow.bind(workflows);\n target.getWorkflowActivity = workflows.getWorkflowActivity.bind(workflows);\n target.getWorkflowsActivityBatch = workflows.getWorkflowsActivityBatch.bind(workflows);\n target.getWorkflowDiagram = workflows.getWorkflowDiagram.bind(workflows);\n target.getWorkflowThumbnailUrl = workflows.getWorkflowThumbnailUrl.bind(workflows);\n target.createWorkflow = workflows.createWorkflow.bind(workflows);\n target.updateWorkflow = workflows.updateWorkflow.bind(workflows);\n target.getWorkflowDeletionPreview = workflows.getWorkflowDeletionPreview.bind(workflows);\n target.deleteWorkflow = workflows.deleteWorkflow.bind(workflows);\n target.archiveWorkflow = workflows.archiveWorkflow.bind(workflows);\n target.unarchiveWorkflow = workflows.unarchiveWorkflow.bind(workflows);\n target.cloneWorkflow = workflows.cloneWorkflow.bind(workflows);\n target.getWorkflowTemplates = workflows.getWorkflowTemplates.bind(workflows);\n target.createWorkflowFromTemplate = workflows.createWorkflowFromTemplate.bind(workflows);\n target.getWorkflowTaskAssignmentStats = workflows.getWorkflowTaskAssignmentStats.bind(workflows);\n target.getTaskChats = workflows.getTaskChats.bind(workflows);\n\n // Workflow Notes API\n target.getWorkflowNotes = workflowNotes.getWorkflowNotes.bind(workflowNotes);\n target.getWorkflowNote = workflowNotes.getWorkflowNote.bind(workflowNotes);\n target.createWorkflowNote = workflowNotes.createWorkflowNote.bind(workflowNotes);\n target.updateWorkflowNote = workflowNotes.updateWorkflowNote.bind(workflowNotes);\n target.deleteWorkflowNote = workflowNotes.deleteWorkflowNote.bind(workflowNotes);\n\n // Workflow Contributors API\n target.getWorkflowContributors = workflows.getWorkflowContributors.bind(workflows);\n target.createWorkflowContributor = workflows.createWorkflowContributor.bind(workflows);\n target.updateWorkflowContributor = workflows.updateWorkflowContributor.bind(workflows);\n target.deleteWorkflowContributor = workflows.deleteWorkflowContributor.bind(workflows);\n\n // Workspace Builders API\n target.getWorkspaceBuilders = workflows.getWorkspaceBuilders.bind(workflows);\n target.getWorkspaceBuilder = workflows.getWorkspaceBuilder.bind(workflows);\n target.buildWorkspace = workflows.buildWorkspace.bind(workflows);\n target.validateWorkflowName = workflows.validateWorkflowName.bind(workflows);\n\n // Assistants API\n target.getAssistants = assistants.getAssistants.bind(assistants);\n target.getAssistant = assistants.getAssistant.bind(assistants);\n target.createAssistant = assistants.createAssistant.bind(assistants);\n target.updateAssistant = assistants.updateAssistant.bind(assistants);\n target.deleteAssistant = assistants.deleteAssistant.bind(assistants);\n target.previewTTS = assistants.previewTTS.bind(assistants);\n\n // Supervisors API\n target.getSupervisors = supervisors.getSupervisors.bind(supervisors);\n target.getSupervisor = supervisors.getSupervisor.bind(supervisors);\n target.createSupervisor = supervisors.createSupervisor.bind(supervisors);\n target.updateSupervisor = supervisors.updateSupervisor.bind(supervisors);\n target.deleteSupervisor = supervisors.deleteSupervisor.bind(supervisors);\n}\n","import { CalendarsApi, MilestonesApi } from '../../api';\n\nexport interface CalendarsBindings {\n // Calendars API\n getCalendars: CalendarsApi['getCalendars'];\n getCalendar: CalendarsApi['getCalendar'];\n createCalendar: CalendarsApi['createCalendar'];\n updateCalendar: CalendarsApi['updateCalendar'];\n deleteCalendar: CalendarsApi['deleteCalendar'];\n getCalendarSchedules: CalendarsApi['getCalendarSchedules'];\n createCalendarSchedule: CalendarsApi['createCalendarSchedule'];\n updateCalendarSchedule: CalendarsApi['updateCalendarSchedule'];\n deleteCalendarSchedule: CalendarsApi['deleteCalendarSchedule'];\n checkAvailability: CalendarsApi['checkAvailability'];\n getAvailableSlots: CalendarsApi['getAvailableSlots'];\n getCalendarEvents: CalendarsApi['getCalendarEvents'];\n getCalendarEvent: CalendarsApi['getCalendarEvent'];\n createCalendarEvent: CalendarsApi['createCalendarEvent'];\n updateCalendarEvent: CalendarsApi['updateCalendarEvent'];\n cancelCalendarEvent: CalendarsApi['cancelCalendarEvent'];\n deleteCalendarEvent: CalendarsApi['deleteCalendarEvent'];\n updateEventAttendee: CalendarsApi['updateEventAttendee'];\n getCalendarEventTypes: CalendarsApi['getEventTypes'];\n getCalendarEventType: CalendarsApi['getEventType'];\n createCalendarEventType: CalendarsApi['createEventType'];\n updateCalendarEventType: CalendarsApi['updateEventType'];\n deleteCalendarEventType: CalendarsApi['deleteEventType'];\n generateICalToken: CalendarsApi['generateICalToken'];\n revokeICalToken: CalendarsApi['revokeICalToken'];\n getICalFeedUrl: CalendarsApi['getICalFeedUrl'];\n getGoogleCalendarStatus: CalendarsApi['getGoogleCalendarStatus'];\n listGoogleCalendars: CalendarsApi['listGoogleCalendars'];\n linkCalendarToGoogle: CalendarsApi['linkCalendarToGoogle'];\n unlinkCalendarFromGoogle: CalendarsApi['unlinkCalendarFromGoogle'];\n syncCalendarWithGoogle: CalendarsApi['syncCalendarWithGoogle'];\n\n // Milestones API\n getMilestones: MilestonesApi['getMilestones'];\n getMilestone: MilestonesApi['getMilestone'];\n createMilestone: MilestonesApi['createMilestone'];\n updateMilestone: MilestonesApi['updateMilestone'];\n deleteMilestone: MilestonesApi['deleteMilestone'];\n}\n\nexport function bindCalendarsMethods(\n target: CalendarsBindings,\n calendars: CalendarsApi,\n milestones: MilestonesApi\n): void {\n // Calendars API\n target.getCalendars = calendars.getCalendars.bind(calendars);\n target.getCalendar = calendars.getCalendar.bind(calendars);\n target.createCalendar = calendars.createCalendar.bind(calendars);\n target.updateCalendar = calendars.updateCalendar.bind(calendars);\n target.deleteCalendar = calendars.deleteCalendar.bind(calendars);\n target.getCalendarSchedules = calendars.getCalendarSchedules.bind(calendars);\n target.createCalendarSchedule = calendars.createCalendarSchedule.bind(calendars);\n target.updateCalendarSchedule = calendars.updateCalendarSchedule.bind(calendars);\n target.deleteCalendarSchedule = calendars.deleteCalendarSchedule.bind(calendars);\n target.checkAvailability = calendars.checkAvailability.bind(calendars);\n target.getAvailableSlots = calendars.getAvailableSlots.bind(calendars);\n target.getCalendarEvents = calendars.getCalendarEvents.bind(calendars);\n target.getCalendarEvent = calendars.getCalendarEvent.bind(calendars);\n target.createCalendarEvent = calendars.createCalendarEvent.bind(calendars);\n target.updateCalendarEvent = calendars.updateCalendarEvent.bind(calendars);\n target.cancelCalendarEvent = calendars.cancelCalendarEvent.bind(calendars);\n target.deleteCalendarEvent = calendars.deleteCalendarEvent.bind(calendars);\n target.updateEventAttendee = calendars.updateEventAttendee.bind(calendars);\n target.getCalendarEventTypes = calendars.getEventTypes.bind(calendars);\n target.getCalendarEventType = calendars.getEventType.bind(calendars);\n target.createCalendarEventType = calendars.createEventType.bind(calendars);\n target.updateCalendarEventType = calendars.updateEventType.bind(calendars);\n target.deleteCalendarEventType = calendars.deleteEventType.bind(calendars);\n target.generateICalToken = calendars.generateICalToken.bind(calendars);\n target.revokeICalToken = calendars.revokeICalToken.bind(calendars);\n target.getICalFeedUrl = calendars.getICalFeedUrl.bind(calendars);\n target.getGoogleCalendarStatus = calendars.getGoogleCalendarStatus.bind(calendars);\n target.listGoogleCalendars = calendars.listGoogleCalendars.bind(calendars);\n target.linkCalendarToGoogle = calendars.linkCalendarToGoogle.bind(calendars);\n target.unlinkCalendarFromGoogle = calendars.unlinkCalendarFromGoogle.bind(calendars);\n target.syncCalendarWithGoogle = calendars.syncCalendarWithGoogle.bind(calendars);\n\n // Milestones API\n target.getMilestones = milestones.getMilestones.bind(milestones);\n target.getMilestone = milestones.getMilestone.bind(milestones);\n target.createMilestone = milestones.createMilestone.bind(milestones);\n target.updateMilestone = milestones.updateMilestone.bind(milestones);\n target.deleteMilestone = milestones.deleteMilestone.bind(milestones);\n}\n","import { PhoneNumbersApi, InboxesApi, NotificationRulesApi } from '../../api';\n\nexport interface CommunicationsBindings {\n // Phone Numbers API\n getPhoneNumbers: PhoneNumbersApi['getPhoneNumbers'];\n getAvailablePhoneNumbers: PhoneNumbersApi['getAvailablePhoneNumbers'];\n requestPhoneNumber: PhoneNumbersApi['requestPhoneNumber'];\n getPhoneNumber: PhoneNumbersApi['getPhoneNumber'];\n createPhoneNumber: PhoneNumbersApi['createPhoneNumber'];\n updatePhoneNumber: PhoneNumbersApi['updatePhoneNumber'];\n deletePhoneNumber: PhoneNumbersApi['deletePhoneNumber'];\n getPhoneNumberCalls: PhoneNumbersApi['getPhoneNumberCalls'];\n getPhoneNumberMessages: PhoneNumbersApi['getPhoneNumberMessages'];\n\n // Inboxes API\n getInboxes: InboxesApi['getInboxes'];\n getInbox: InboxesApi['getInbox'];\n createInbox: InboxesApi['createInbox'];\n updateInbox: InboxesApi['updateInbox'];\n deleteInbox: InboxesApi['deleteInbox'];\n getInboxEmails: InboxesApi['getInboxEmails'];\n getInboxEmail: InboxesApi['getInboxEmail'];\n markEmailAsRead: InboxesApi['markEmailAsRead'];\n markEmailAsUnread: InboxesApi['markEmailAsUnread'];\n convertEmail: InboxesApi['convertEmail'];\n downloadEmailAttachment: InboxesApi['downloadEmailAttachment'];\n getInboxThreads: InboxesApi['getInboxThreads'];\n getThreadEmails: InboxesApi['getThreadEmails'];\n getChatEmails: InboxesApi['getChatEmails'];\n\n // Notification Rules API\n getNotificationRules: NotificationRulesApi['getNotificationRules'];\n createNotificationRule: NotificationRulesApi['createNotificationRule'];\n updateNotificationRule: NotificationRulesApi['updateNotificationRule'];\n deleteNotificationRule: NotificationRulesApi['deleteNotificationRule'];\n}\n\nexport function bindCommunicationsMethods(\n target: CommunicationsBindings,\n phoneNumbers: PhoneNumbersApi,\n inboxes: InboxesApi,\n notificationRules: NotificationRulesApi\n): void {\n // Phone Numbers API\n target.getPhoneNumbers = phoneNumbers.getPhoneNumbers.bind(phoneNumbers);\n target.getAvailablePhoneNumbers = phoneNumbers.getAvailablePhoneNumbers.bind(phoneNumbers);\n target.requestPhoneNumber = phoneNumbers.requestPhoneNumber.bind(phoneNumbers);\n target.getPhoneNumber = phoneNumbers.getPhoneNumber.bind(phoneNumbers);\n target.createPhoneNumber = phoneNumbers.createPhoneNumber.bind(phoneNumbers);\n target.updatePhoneNumber = phoneNumbers.updatePhoneNumber.bind(phoneNumbers);\n target.deletePhoneNumber = phoneNumbers.deletePhoneNumber.bind(phoneNumbers);\n target.getPhoneNumberCalls = phoneNumbers.getPhoneNumberCalls.bind(phoneNumbers);\n target.getPhoneNumberMessages = phoneNumbers.getPhoneNumberMessages.bind(phoneNumbers);\n\n // Inboxes API\n target.getInboxes = inboxes.getInboxes.bind(inboxes);\n target.getInbox = inboxes.getInbox.bind(inboxes);\n target.createInbox = inboxes.createInbox.bind(inboxes);\n target.updateInbox = inboxes.updateInbox.bind(inboxes);\n target.deleteInbox = inboxes.deleteInbox.bind(inboxes);\n target.getInboxEmails = inboxes.getInboxEmails.bind(inboxes);\n target.getInboxEmail = inboxes.getInboxEmail.bind(inboxes);\n target.markEmailAsRead = inboxes.markEmailAsRead.bind(inboxes);\n target.markEmailAsUnread = inboxes.markEmailAsUnread.bind(inboxes);\n target.convertEmail = inboxes.convertEmail.bind(inboxes);\n target.downloadEmailAttachment = inboxes.downloadEmailAttachment.bind(inboxes);\n target.getInboxThreads = inboxes.getInboxThreads.bind(inboxes);\n target.getThreadEmails = inboxes.getThreadEmails.bind(inboxes);\n target.getChatEmails = inboxes.getChatEmails.bind(inboxes);\n\n // Notification Rules API\n target.getNotificationRules = notificationRules.getNotificationRules.bind(notificationRules);\n target.createNotificationRule = notificationRules.createNotificationRule.bind(notificationRules);\n target.updateNotificationRule = notificationRules.updateNotificationRule.bind(notificationRules);\n target.deleteNotificationRule = notificationRules.deleteNotificationRule.bind(notificationRules);\n}\n","import {\n ToolkitsApi,\n CustomToolkitsApi,\n McpServersApi,\n TemplatesApi,\n FeaturesApi,\n AIModelsApi,\n} from '../../api';\n\nexport interface ToolkitsBindings {\n // Toolkits API\n getToolkits: ToolkitsApi['getToolkits'];\n getTool: ToolkitsApi['getTool'];\n\n // Templates API\n getTemplateContext: TemplatesApi['getTemplateContext'];\n previewTemplate: TemplatesApi['previewTemplate'];\n getVariableRegistry: TemplatesApi['getVariableRegistry'];\n\n // AI Models API\n getChatModels: AIModelsApi['getChatModels'];\n getRealtimeModels: AIModelsApi['getRealtimeModels'];\n getVoiceModels: AIModelsApi['getVoiceModels'];\n getAllModels: AIModelsApi['getAllModels'];\n\n // Custom Toolkits API\n getCustomToolkits: CustomToolkitsApi['getCustomToolkits'];\n getCustomToolkit: CustomToolkitsApi['getCustomToolkit'];\n createCustomToolkit: CustomToolkitsApi['createCustomToolkit'];\n updateCustomToolkit: CustomToolkitsApi['updateCustomToolkit'];\n deleteCustomToolkit: CustomToolkitsApi['deleteCustomToolkit'];\n enableCustomToolkit: CustomToolkitsApi['enableCustomToolkit'];\n disableCustomToolkit: CustomToolkitsApi['disableCustomToolkit'];\n createCustomTool: CustomToolkitsApi['createCustomTool'];\n updateCustomTool: CustomToolkitsApi['updateCustomTool'];\n deleteCustomTool: CustomToolkitsApi['deleteCustomTool'];\n\n // MCP Servers API\n getMcpServers: McpServersApi['getMcpServers'];\n getMcpServer: McpServersApi['getMcpServer'];\n createMcpServer: McpServersApi['createMcpServer'];\n updateMcpServer: McpServersApi['updateMcpServer'];\n deleteMcpServer: McpServersApi['deleteMcpServer'];\n enableMcpServer: McpServersApi['enableMcpServer'];\n disableMcpServer: McpServersApi['disableMcpServer'];\n getMcpServerTools: McpServersApi['getMcpServerTools'];\n getMcpServerResources: McpServersApi['getMcpServerResources'];\n getMcpServerPrompts: McpServersApi['getMcpServerPrompts'];\n testMcpServerConnection: McpServersApi['testMcpServerConnection'];\n discoverOAuthMetadata: McpServersApi['discoverOAuthMetadata'];\n\n // Features API\n getFeatureRegistry: FeaturesApi['getFeatureRegistry'];\n getFeatureBySlug: FeaturesApi['getFeatureBySlug'];\n}\n\nexport function bindToolkitsMethods(\n target: ToolkitsBindings,\n toolkits: ToolkitsApi,\n templates: TemplatesApi,\n aiModels: AIModelsApi,\n customToolkits: CustomToolkitsApi,\n mcpServers: McpServersApi,\n features: FeaturesApi\n): void {\n // Toolkits API\n target.getToolkits = toolkits.getToolkits.bind(toolkits);\n target.getTool = toolkits.getTool.bind(toolkits);\n\n // Templates API\n target.getTemplateContext = templates.getTemplateContext.bind(templates);\n target.previewTemplate = templates.previewTemplate.bind(templates);\n target.getVariableRegistry = templates.getVariableRegistry.bind(templates);\n\n // AI Models API\n target.getChatModels = aiModels.getChatModels.bind(aiModels);\n target.getRealtimeModels = aiModels.getRealtimeModels.bind(aiModels);\n target.getVoiceModels = aiModels.getVoiceModels.bind(aiModels);\n target.getAllModels = aiModels.getAllModels.bind(aiModels);\n\n // Custom Toolkits API\n target.getCustomToolkits = customToolkits.getCustomToolkits.bind(customToolkits);\n target.getCustomToolkit = customToolkits.getCustomToolkit.bind(customToolkits);\n target.createCustomToolkit = customToolkits.createCustomToolkit.bind(customToolkits);\n target.updateCustomToolkit = customToolkits.updateCustomToolkit.bind(customToolkits);\n target.deleteCustomToolkit = customToolkits.deleteCustomToolkit.bind(customToolkits);\n target.enableCustomToolkit = customToolkits.enableCustomToolkit.bind(customToolkits);\n target.disableCustomToolkit = customToolkits.disableCustomToolkit.bind(customToolkits);\n target.createCustomTool = customToolkits.createCustomTool.bind(customToolkits);\n target.updateCustomTool = customToolkits.updateCustomTool.bind(customToolkits);\n target.deleteCustomTool = customToolkits.deleteCustomTool.bind(customToolkits);\n\n // MCP Servers API\n target.getMcpServers = mcpServers.getMcpServers.bind(mcpServers);\n target.getMcpServer = mcpServers.getMcpServer.bind(mcpServers);\n target.createMcpServer = mcpServers.createMcpServer.bind(mcpServers);\n target.updateMcpServer = mcpServers.updateMcpServer.bind(mcpServers);\n target.deleteMcpServer = mcpServers.deleteMcpServer.bind(mcpServers);\n target.enableMcpServer = mcpServers.enableMcpServer.bind(mcpServers);\n target.disableMcpServer = mcpServers.disableMcpServer.bind(mcpServers);\n target.getMcpServerTools = mcpServers.getMcpServerTools.bind(mcpServers);\n target.getMcpServerResources = mcpServers.getMcpServerResources.bind(mcpServers);\n target.getMcpServerPrompts = mcpServers.getMcpServerPrompts.bind(mcpServers);\n target.testMcpServerConnection = mcpServers.testMcpServerConnection.bind(mcpServers);\n target.discoverOAuthMetadata = mcpServers.discoverOAuthMetadata.bind(mcpServers);\n\n // Features API\n target.getFeatureRegistry = features.getFeatureRegistry.bind(features);\n target.getFeatureBySlug = features.getFeatureBySlug.bind(features);\n}\n","import { ApiKeysApi, SubscriptionsApi, ReportsApi } from '../../api';\n\nexport interface BillingBindings {\n // API Keys API (Workspace-level)\n getApiKeys: ApiKeysApi['getApiKeys'];\n createApiKey: ApiKeysApi['createApiKey'];\n revokeApiKey: ApiKeysApi['revokeApiKey'];\n\n // API Keys API (Global/Account-level)\n getGlobalApiKeys: ApiKeysApi['getGlobalApiKeys'];\n createGlobalApiKey: ApiKeysApi['createGlobalApiKey'];\n revokeGlobalApiKey: ApiKeysApi['revokeGlobalApiKey'];\n\n // Subscriptions API\n getSubscriptions: SubscriptionsApi['getSubscriptions'];\n getWorkspaceSubscriptions: SubscriptionsApi['getWorkspaceSubscriptions'];\n cancelSubscription: SubscriptionsApi['cancelSubscription'];\n reactivateSubscription: SubscriptionsApi['reactivateSubscription'];\n updateSubscription: SubscriptionsApi['updateSubscription'];\n provisionMemberRole: SubscriptionsApi['provisionMemberRole'];\n\n // Reports API\n getAIUsageReport: ReportsApi['getAIUsageReport'];\n getSMSUsageReport: ReportsApi['getSMSUsageReport'];\n getPhoneUsageReport: ReportsApi['getPhoneUsageReport'];\n getVoiceUsageReport: ReportsApi['getVoiceUsageReport'];\n getMemberUsage: ReportsApi['getMemberUsage'];\n}\n\nexport function bindBillingMethods(\n target: BillingBindings,\n apiKeys: ApiKeysApi,\n subscriptions: SubscriptionsApi,\n reports: ReportsApi\n): void {\n // API Keys API (Workspace-level)\n target.getApiKeys = apiKeys.getApiKeys.bind(apiKeys);\n target.createApiKey = apiKeys.createApiKey.bind(apiKeys);\n target.revokeApiKey = apiKeys.revokeApiKey.bind(apiKeys);\n\n // API Keys API (Global/Account-level)\n target.getGlobalApiKeys = apiKeys.getGlobalApiKeys.bind(apiKeys);\n target.createGlobalApiKey = apiKeys.createGlobalApiKey.bind(apiKeys);\n target.revokeGlobalApiKey = apiKeys.revokeGlobalApiKey.bind(apiKeys);\n\n // Subscriptions API\n target.getSubscriptions = subscriptions.getSubscriptions.bind(subscriptions);\n target.getWorkspaceSubscriptions = subscriptions.getWorkspaceSubscriptions.bind(subscriptions);\n target.cancelSubscription = subscriptions.cancelSubscription.bind(subscriptions);\n target.reactivateSubscription = subscriptions.reactivateSubscription.bind(subscriptions);\n target.updateSubscription = subscriptions.updateSubscription.bind(subscriptions);\n target.provisionMemberRole = subscriptions.provisionMemberRole.bind(subscriptions);\n\n // Reports API\n target.getAIUsageReport = reports.getAIUsageReport.bind(reports);\n target.getSMSUsageReport = reports.getSMSUsageReport.bind(reports);\n target.getPhoneUsageReport = reports.getPhoneUsageReport.bind(reports);\n target.getVoiceUsageReport = reports.getVoiceUsageReport.bind(reports);\n target.getMemberUsage = reports.getMemberUsage.bind(reports);\n}\n","import { AppsApi, BuildersApi, InquiriesApi, OAuthApi, OAuthConnectionsApi } from '../../api';\n\nexport interface AppsBindings {\n // Apps API\n listApps: AppsApi['listApps'];\n createApp: AppsApi['createApp'];\n getApp: AppsApi['getApp'];\n getAppByClientId: AppsApi['getAppByClientId'];\n updateApp: AppsApi['updateApp'];\n deleteApp: AppsApi['deleteApp'];\n regenerateClientSecret: AppsApi['regenerateClientSecret'];\n\n // Builders API\n listBuilders: BuildersApi['listBuilders'];\n getBuilder: BuildersApi['getBuilder'];\n getBuilderApps: BuildersApi['getBuilderApps'];\n createBuilder: BuildersApi['createBuilder'];\n updateBuilder: BuildersApi['updateBuilder'];\n deleteBuilder: BuildersApi['deleteBuilder'];\n\n // Inquiries API\n createInquiry: InquiriesApi['createInquiry'];\n listInquiries: InquiriesApi['listInquiries'];\n getInquiry: InquiriesApi['getInquiry'];\n updateInquiry: InquiriesApi['updateInquiry'];\n deleteInquiry: InquiriesApi['deleteInquiry'];\n exportInquiriesCsv: InquiriesApi['exportInquiriesCsv'];\n\n // OAuth API (internal OAuth flow)\n authorize: OAuthApi['authorize'];\n exchangeOAuthToken: OAuthApi['exchangeOAuthToken'];\n getAvailableScopes: OAuthApi['getAvailableScopes'];\n\n // OAuth Connections API (third-party providers)\n getOAuthConnectionStatus: OAuthConnectionsApi['getConnectionStatus'];\n getOAuthAuthorizationUrl: OAuthConnectionsApi['getAuthorizationUrl'];\n disconnectOAuthProvider: OAuthConnectionsApi['disconnect'];\n}\n\nexport function bindAppsMethods(\n target: AppsBindings,\n apps: AppsApi,\n builders: BuildersApi,\n inquiries: InquiriesApi,\n oauth: OAuthApi,\n oauthConnections: OAuthConnectionsApi\n): void {\n // Apps API\n target.listApps = apps.listApps.bind(apps);\n target.createApp = apps.createApp.bind(apps);\n target.getApp = apps.getApp.bind(apps);\n target.getAppByClientId = apps.getAppByClientId.bind(apps);\n target.updateApp = apps.updateApp.bind(apps);\n target.deleteApp = apps.deleteApp.bind(apps);\n target.regenerateClientSecret = apps.regenerateClientSecret.bind(apps);\n\n // Builders API\n target.listBuilders = builders.listBuilders.bind(builders);\n target.getBuilder = builders.getBuilder.bind(builders);\n target.getBuilderApps = builders.getBuilderApps.bind(builders);\n target.createBuilder = builders.createBuilder.bind(builders);\n target.updateBuilder = builders.updateBuilder.bind(builders);\n target.deleteBuilder = builders.deleteBuilder.bind(builders);\n\n // Inquiries API\n target.createInquiry = inquiries.createInquiry.bind(inquiries);\n target.listInquiries = inquiries.listInquiries.bind(inquiries);\n target.getInquiry = inquiries.getInquiry.bind(inquiries);\n target.updateInquiry = inquiries.updateInquiry.bind(inquiries);\n target.deleteInquiry = inquiries.deleteInquiry.bind(inquiries);\n target.exportInquiriesCsv = inquiries.exportInquiriesCsv.bind(inquiries);\n\n // OAuth API (internal OAuth flow)\n target.authorize = oauth.authorize.bind(oauth);\n target.exchangeOAuthToken = oauth.exchangeOAuthToken.bind(oauth);\n target.getAvailableScopes = oauth.getAvailableScopes.bind(oauth);\n\n // OAuth Connections API (third-party providers)\n target.getOAuthConnectionStatus = oauthConnections.getConnectionStatus.bind(oauthConnections);\n target.getOAuthAuthorizationUrl = oauthConnections.getAuthorizationUrl.bind(oauthConnections);\n target.disconnectOAuthProvider = oauthConnections.disconnect.bind(oauthConnections);\n}\n","import {\n DiscordBotsApi,\n FhirConnectionsApi,\n AppConnectionsApi,\n MondayIntegrationApi,\n SlackAppsApi,\n} from '../../api';\n\nexport interface IntegrationsBindings {\n // Monday.com Integration API\n getMondayBoards: MondayIntegrationApi['getBoards'];\n getMondayBoardColumns: MondayIntegrationApi['getBoardColumns'];\n getMondayBoardGroups: MondayIntegrationApi['getBoardGroups'];\n createMondayWebhook: MondayIntegrationApi['createWebhook'];\n deleteMondayWebhook: MondayIntegrationApi['deleteWebhook'];\n getMondayWebhook: MondayIntegrationApi['getWebhook'];\n getMondayCurrentUserInfo: MondayIntegrationApi['getCurrentUserInfo'];\n\n // Discord Bots API\n getDiscordBots: DiscordBotsApi['getDiscordBots'];\n getDiscordBot: DiscordBotsApi['getDiscordBot'];\n getDiscordBotByUuid: DiscordBotsApi['getDiscordBotByUuid'];\n createDiscordBot: DiscordBotsApi['createDiscordBot'];\n updateDiscordBot: DiscordBotsApi['updateDiscordBot'];\n deleteDiscordBot: DiscordBotsApi['deleteDiscordBot'];\n registerDiscordSlashCommands: DiscordBotsApi['registerSlashCommands'];\n registerLinkedRolesMetadata: DiscordBotsApi['registerLinkedRolesMetadata'];\n getDiscordThreads: DiscordBotsApi['getDiscordThreads'];\n getDiscordGuilds: DiscordBotsApi['getDiscordGuilds'];\n getDiscordBotAccounts: DiscordBotsApi['getDiscordBotAccounts'];\n getMyCredentials: DiscordBotsApi['getMyCredentials'];\n unlinkCredential: DiscordBotsApi['unlinkCredential'];\n\n // Slack Apps API\n getSlackApps: SlackAppsApi['getSlackApps'];\n getSlackApp: SlackAppsApi['getSlackApp'];\n createSlackApp: SlackAppsApi['createSlackApp'];\n updateSlackApp: SlackAppsApi['updateSlackApp'];\n deleteSlackApp: SlackAppsApi['deleteSlackApp'];\n getSlackThreads: SlackAppsApi['getSlackThreads'];\n getSlackInstallations: SlackAppsApi['getSlackInstallations'];\n getSlackAppAccounts: SlackAppsApi['getSlackAppAccounts'];\n\n // FHIR Connections API\n getFhirConnections: FhirConnectionsApi['getFhirConnections'];\n getFhirConnection: FhirConnectionsApi['getFhirConnection'];\n getFhirConnectionByUuid: FhirConnectionsApi['getFhirConnectionByUuid'];\n createFhirConnection: FhirConnectionsApi['createFhirConnection'];\n updateFhirConnection: FhirConnectionsApi['updateFhirConnection'];\n deleteFhirConnection: FhirConnectionsApi['deleteFhirConnection'];\n testFhirConnection: FhirConnectionsApi['testFhirConnection'];\n fhirSearchPatients: FhirConnectionsApi['fhirSearchPatients'];\n fhirSearchPractitioners: FhirConnectionsApi['fhirSearchPractitioners'];\n fhirSearchLocations: FhirConnectionsApi['fhirSearchLocations'];\n fhirFetchCareTeam: FhirConnectionsApi['fhirFetchCareTeam'];\n fhirFetchEncounters: FhirConnectionsApi['fhirFetchEncounters'];\n fhirCreateEncounter: FhirConnectionsApi['fhirCreateEncounter'];\n\n // App Connections API\n listAvailableAppConnections: AppConnectionsApi['listAvailableAppConnections'];\n listAppConnections: AppConnectionsApi['listAppConnections'];\n enablePlatformApp: AppConnectionsApi['enablePlatformApp'];\n getPlatformApp: AppConnectionsApi['getPlatformApp'];\n updatePlatformApp: AppConnectionsApi['updatePlatformApp'];\n deletePlatformApp: AppConnectionsApi['deletePlatformApp'];\n}\n\nexport function bindIntegrationsMethods(\n target: IntegrationsBindings,\n mondayIntegration: MondayIntegrationApi,\n discordBots: DiscordBotsApi,\n slackApps: SlackAppsApi,\n fhirConnections: FhirConnectionsApi,\n appConnections: AppConnectionsApi\n): void {\n // Monday.com Integration API\n target.getMondayBoards = mondayIntegration.getBoards.bind(mondayIntegration);\n target.getMondayBoardColumns = mondayIntegration.getBoardColumns.bind(mondayIntegration);\n target.getMondayBoardGroups = mondayIntegration.getBoardGroups.bind(mondayIntegration);\n target.createMondayWebhook = mondayIntegration.createWebhook.bind(mondayIntegration);\n target.deleteMondayWebhook = mondayIntegration.deleteWebhook.bind(mondayIntegration);\n target.getMondayWebhook = mondayIntegration.getWebhook.bind(mondayIntegration);\n target.getMondayCurrentUserInfo = mondayIntegration.getCurrentUserInfo.bind(mondayIntegration);\n\n // Discord Bots API\n target.getDiscordBots = discordBots.getDiscordBots.bind(discordBots);\n target.getDiscordBot = discordBots.getDiscordBot.bind(discordBots);\n target.getDiscordBotByUuid = discordBots.getDiscordBotByUuid.bind(discordBots);\n target.createDiscordBot = discordBots.createDiscordBot.bind(discordBots);\n target.updateDiscordBot = discordBots.updateDiscordBot.bind(discordBots);\n target.deleteDiscordBot = discordBots.deleteDiscordBot.bind(discordBots);\n target.registerDiscordSlashCommands = discordBots.registerSlashCommands.bind(discordBots);\n target.registerLinkedRolesMetadata = discordBots.registerLinkedRolesMetadata.bind(discordBots);\n target.getDiscordThreads = discordBots.getDiscordThreads.bind(discordBots);\n target.getDiscordGuilds = discordBots.getDiscordGuilds.bind(discordBots);\n target.getDiscordBotAccounts = discordBots.getDiscordBotAccounts.bind(discordBots);\n target.getMyCredentials = discordBots.getMyCredentials.bind(discordBots);\n target.unlinkCredential = discordBots.unlinkCredential.bind(discordBots);\n\n // Slack Apps API\n target.getSlackApps = slackApps.getSlackApps.bind(slackApps);\n target.getSlackApp = slackApps.getSlackApp.bind(slackApps);\n target.createSlackApp = slackApps.createSlackApp.bind(slackApps);\n target.updateSlackApp = slackApps.updateSlackApp.bind(slackApps);\n target.deleteSlackApp = slackApps.deleteSlackApp.bind(slackApps);\n target.getSlackThreads = slackApps.getSlackThreads.bind(slackApps);\n target.getSlackInstallations = slackApps.getSlackInstallations.bind(slackApps);\n target.getSlackAppAccounts = slackApps.getSlackAppAccounts.bind(slackApps);\n\n // FHIR Connections API\n target.getFhirConnections = fhirConnections.getFhirConnections.bind(fhirConnections);\n target.getFhirConnection = fhirConnections.getFhirConnection.bind(fhirConnections);\n target.getFhirConnectionByUuid = fhirConnections.getFhirConnectionByUuid.bind(fhirConnections);\n target.createFhirConnection = fhirConnections.createFhirConnection.bind(fhirConnections);\n target.updateFhirConnection = fhirConnections.updateFhirConnection.bind(fhirConnections);\n target.deleteFhirConnection = fhirConnections.deleteFhirConnection.bind(fhirConnections);\n target.testFhirConnection = fhirConnections.testFhirConnection.bind(fhirConnections);\n target.fhirSearchPatients = fhirConnections.fhirSearchPatients.bind(fhirConnections);\n target.fhirSearchPractitioners = fhirConnections.fhirSearchPractitioners.bind(fhirConnections);\n target.fhirSearchLocations = fhirConnections.fhirSearchLocations.bind(fhirConnections);\n target.fhirFetchCareTeam = fhirConnections.fhirFetchCareTeam.bind(fhirConnections);\n target.fhirFetchEncounters = fhirConnections.fhirFetchEncounters.bind(fhirConnections);\n target.fhirCreateEncounter = fhirConnections.fhirCreateEncounter.bind(fhirConnections);\n\n // App Connections API\n target.listAvailableAppConnections =\n appConnections.listAvailableAppConnections.bind(appConnections);\n target.listAppConnections = appConnections.listAppConnections.bind(appConnections);\n target.enablePlatformApp = appConnections.enablePlatformApp.bind(appConnections);\n target.getPlatformApp = appConnections.getPlatformApp.bind(appConnections);\n target.updatePlatformApp = appConnections.updatePlatformApp.bind(appConnections);\n target.deletePlatformApp = appConnections.deletePlatformApp.bind(appConnections);\n}\n","import { OperatorApi } from '../../api';\n\nexport interface OperatorBindings {\n getOperatorGroups: OperatorApi['getOperatorGroups'];\n getOperatorGroup: OperatorApi['getOperatorGroup'];\n createOperatorGroup: OperatorApi['createOperatorGroup'];\n updateOperatorGroup: OperatorApi['updateOperatorGroup'];\n deleteOperatorGroup: OperatorApi['deleteOperatorGroup'];\n addGroupMember: OperatorApi['addGroupMember'];\n removeGroupMember: OperatorApi['removeGroupMember'];\n getLiveOperators: OperatorApi['getLiveOperators'];\n getPresenceStatus: OperatorApi['getPresenceStatus'];\n disconnectPresence: OperatorApi['disconnectPresence'];\n getOperatorChatMessages: OperatorApi['getOperatorChatMessages'];\n sendOperatorMessage: OperatorApi['sendOperatorMessage'];\n}\n\nexport function bindOperatorMethods(target: OperatorBindings, operatorGroups: OperatorApi): void {\n target.getOperatorGroups = operatorGroups.getOperatorGroups.bind(operatorGroups);\n target.getOperatorGroup = operatorGroups.getOperatorGroup.bind(operatorGroups);\n target.createOperatorGroup = operatorGroups.createOperatorGroup.bind(operatorGroups);\n target.updateOperatorGroup = operatorGroups.updateOperatorGroup.bind(operatorGroups);\n target.deleteOperatorGroup = operatorGroups.deleteOperatorGroup.bind(operatorGroups);\n target.addGroupMember = operatorGroups.addGroupMember.bind(operatorGroups);\n target.removeGroupMember = operatorGroups.removeGroupMember.bind(operatorGroups);\n target.getLiveOperators = operatorGroups.getLiveOperators.bind(operatorGroups);\n target.getPresenceStatus = operatorGroups.getPresenceStatus.bind(operatorGroups);\n target.disconnectPresence = operatorGroups.disconnectPresence.bind(operatorGroups);\n target.getOperatorChatMessages = operatorGroups.getOperatorChatMessages.bind(operatorGroups);\n target.sendOperatorMessage = operatorGroups.sendOperatorMessage.bind(operatorGroups);\n}\n","import { PronunciationsApi } from '../../api';\n\nexport interface PronunciationsBindings {\n getPronunciationEntries: PronunciationsApi['getPronunciationEntries'];\n createPronunciationEntry: PronunciationsApi['createPronunciationEntry'];\n updatePronunciationEntry: PronunciationsApi['updatePronunciationEntry'];\n deletePronunciationEntry: PronunciationsApi['deletePronunciationEntry'];\n exportPronunciationEntries: PronunciationsApi['exportPronunciationEntries'];\n importPronunciationEntries: PronunciationsApi['importPronunciationEntries'];\n getMyPronunciations: PronunciationsApi['getMyPronunciations'];\n createMyPronunciation: PronunciationsApi['createMyPronunciation'];\n updateMyPronunciation: PronunciationsApi['updateMyPronunciation'];\n deleteMyPronunciation: PronunciationsApi['deleteMyPronunciation'];\n suggestPronunciations: PronunciationsApi['suggestPronunciations'];\n getRecommendedVoices: PronunciationsApi['getRecommendedVoices'];\n previewPronunciation: PronunciationsApi['previewPronunciation'];\n}\n\nexport function bindPronunciationsMethods(\n target: PronunciationsBindings,\n pronunciations: PronunciationsApi\n) {\n target.getPronunciationEntries = pronunciations.getPronunciationEntries.bind(pronunciations);\n target.createPronunciationEntry = pronunciations.createPronunciationEntry.bind(pronunciations);\n target.updatePronunciationEntry = pronunciations.updatePronunciationEntry.bind(pronunciations);\n target.deletePronunciationEntry = pronunciations.deletePronunciationEntry.bind(pronunciations);\n target.exportPronunciationEntries =\n pronunciations.exportPronunciationEntries.bind(pronunciations);\n target.importPronunciationEntries =\n pronunciations.importPronunciationEntries.bind(pronunciations);\n target.getMyPronunciations = pronunciations.getMyPronunciations.bind(pronunciations);\n target.createMyPronunciation = pronunciations.createMyPronunciation.bind(pronunciations);\n target.updateMyPronunciation = pronunciations.updateMyPronunciation.bind(pronunciations);\n target.deleteMyPronunciation = pronunciations.deleteMyPronunciation.bind(pronunciations);\n target.suggestPronunciations = pronunciations.suggestPronunciations.bind(pronunciations);\n target.getRecommendedVoices = pronunciations.getRecommendedVoices.bind(pronunciations);\n target.previewPronunciation = pronunciations.previewPronunciation.bind(pronunciations);\n}\n","import { QualificationsApi } from '../../api';\n\nexport interface QualificationsBindings {\n getQualifications: QualificationsApi['getQualifications'];\n getQualification: QualificationsApi['getQualification'];\n createQualification: QualificationsApi['createQualification'];\n updateQualification: QualificationsApi['updateQualification'];\n archiveQualification: QualificationsApi['archiveQualification'];\n getQualificationMembers: QualificationsApi['getQualificationMembers'];\n getMemberQualifications: QualificationsApi['getMemberQualifications'];\n assignQualification: QualificationsApi['assignQualification'];\n updateMemberQualification: QualificationsApi['updateMemberQualification'];\n removeMemberQualification: QualificationsApi['removeMemberQualification'];\n getMemberQualificationLog: QualificationsApi['getMemberQualificationLog'];\n // Requirements\n listRequirements: QualificationsApi['listRequirements'];\n createRequirement: QualificationsApi['createRequirement'];\n getRequirement: QualificationsApi['getRequirement'];\n updateRequirement: QualificationsApi['updateRequirement'];\n deleteRequirement: QualificationsApi['deleteRequirement'];\n // Submissions\n listSubmissions: QualificationsApi['listSubmissions'];\n getSubmission: QualificationsApi['getSubmission'];\n submitAnswer: QualificationsApi['submitAnswer'];\n startScenario: QualificationsApi['startScenario'];\n retrySubmission: QualificationsApi['retrySubmission'];\n submitForReview: QualificationsApi['submitForReview'];\n reviewSubmission: QualificationsApi['reviewSubmission'];\n overrideCriterionScore: QualificationsApi['overrideCriterionScore'];\n}\n\nexport function bindQualificationsMethods(\n target: QualificationsBindings,\n qualifications: QualificationsApi\n): void {\n target.getQualifications = qualifications.getQualifications.bind(qualifications);\n target.getQualification = qualifications.getQualification.bind(qualifications);\n target.createQualification = qualifications.createQualification.bind(qualifications);\n target.updateQualification = qualifications.updateQualification.bind(qualifications);\n target.archiveQualification = qualifications.archiveQualification.bind(qualifications);\n target.getQualificationMembers = qualifications.getQualificationMembers.bind(qualifications);\n target.getMemberQualifications = qualifications.getMemberQualifications.bind(qualifications);\n target.assignQualification = qualifications.assignQualification.bind(qualifications);\n target.updateMemberQualification = qualifications.updateMemberQualification.bind(qualifications);\n target.removeMemberQualification = qualifications.removeMemberQualification.bind(qualifications);\n target.getMemberQualificationLog = qualifications.getMemberQualificationLog.bind(qualifications);\n // Requirements\n target.listRequirements = qualifications.listRequirements.bind(qualifications);\n target.createRequirement = qualifications.createRequirement.bind(qualifications);\n target.getRequirement = qualifications.getRequirement.bind(qualifications);\n target.updateRequirement = qualifications.updateRequirement.bind(qualifications);\n target.deleteRequirement = qualifications.deleteRequirement.bind(qualifications);\n // Submissions\n target.listSubmissions = qualifications.listSubmissions.bind(qualifications);\n target.getSubmission = qualifications.getSubmission.bind(qualifications);\n target.submitAnswer = qualifications.submitAnswer.bind(qualifications);\n target.startScenario = qualifications.startScenario.bind(qualifications);\n target.retrySubmission = qualifications.retrySubmission.bind(qualifications);\n target.submitForReview = qualifications.submitForReview.bind(qualifications);\n target.reviewSubmission = qualifications.reviewSubmission.bind(qualifications);\n target.overrideCriterionScore = qualifications.overrideCriterionScore.bind(qualifications);\n}\n","import { WorkspaceInvitationsApi } from '../api';\nimport { EnhancedAuthHandler, OrgAuthHandler } from '../api/base';\nimport { ApiModules, createApiModules } from './api-modules';\nimport {\n AccessGrantsBindings,\n AdminBindings,\n AgentsBindings,\n AppsBindings,\n AuthBindings,\n BillingBindings,\n CalendarsBindings,\n CallsBindings,\n ChatsBindings,\n CommunicationsBindings,\n DataTypesBindings,\n EventsBindings,\n FilesBindings,\n IntegrationsBindings,\n MembersBindings,\n OperatorBindings,\n PronunciationsBindings,\n QualificationsBindings,\n bindPronunciationsMethods,\n SitesBindings,\n TasksBindings,\n ToolkitsBindings,\n WorkflowsBindings,\n WorkspacesBindings,\n bindAccessGrantsMethods,\n bindAdminMethods,\n bindAgentsMethods,\n bindAppsMethods,\n bindAuthMethods,\n bindBillingMethods,\n bindCalendarsMethods,\n bindCallsMethods,\n bindChatsMethods,\n bindCommunicationsMethods,\n bindDataTypesMethods,\n bindEventsMethods,\n bindFilesMethods,\n bindIntegrationsMethods,\n bindMembersMethods,\n bindOperatorMethods,\n bindQualificationsMethods,\n bindSitesMethods,\n bindTasksMethods,\n bindToolkitsMethods,\n bindWorkflowsMethods,\n bindWorkspacesMethods,\n} from './bindings';\n\n/**\n * GravityRailClient provides a unified interface to all public Gravity Rail API endpoints.\n *\n * Methods are organized by domain and bound to their respective API modules.\n * See the bindings directory for the organization of methods by domain.\n *\n * This class excludes admin/superuser methods. For the full client including\n * admin functionality, use {@link ApiClient} instead.\n */\nexport class GravityRailClient\n implements\n TasksBindings,\n ChatsBindings,\n CallsBindings,\n DataTypesBindings,\n MembersBindings,\n WorkspacesBindings,\n AuthBindings,\n SitesBindings,\n FilesBindings,\n EventsBindings,\n WorkflowsBindings,\n CalendarsBindings,\n CommunicationsBindings,\n ToolkitsBindings,\n BillingBindings,\n AppsBindings,\n IntegrationsBindings,\n AgentsBindings,\n PronunciationsBindings,\n QualificationsBindings,\n OperatorBindings,\n AccessGrantsBindings\n{\n // WorkspaceInvitations is exposed publicly for backward compatibility\n public workspaceInvitations: WorkspaceInvitationsApi;\n\n // Store all API modules for cross-cutting operations\n protected apis: ApiModules;\n\n // Tasks API\n getTasks!: TasksBindings['getTasks'];\n getTask!: TasksBindings['getTask'];\n createTask!: TasksBindings['createTask'];\n updateTask!: TasksBindings['updateTask'];\n deleteTask!: TasksBindings['deleteTask'];\n archiveTask!: TasksBindings['archiveTask'];\n unarchiveTask!: TasksBindings['unarchiveTask'];\n convertTaskToAbilities!: TasksBindings['convertTaskToAbilities'];\n cloneTask!: TasksBindings['cloneTask'];\n getAbilityTypes!: TasksBindings['getAbilityTypes'];\n\n // Chats API\n getChats!: ChatsBindings['getChats'];\n getChat!: ChatsBindings['getChat'];\n getChatTokenUsage!: ChatsBindings['getChatTokenUsage'];\n getChatTodos!: ChatsBindings['getChatTodos'];\n getChatSkills!: ChatsBindings['getChatSkills'];\n getChatsNeedsResponse!: ChatsBindings['getChatsNeedsResponse'];\n getChatsDailyCreationStats!: ChatsBindings['getChatsDailyCreationStats'];\n archiveChat!: ChatsBindings['archiveChat'];\n unarchiveChat!: ChatsBindings['unarchiveChat'];\n createChat!: ChatsBindings['createChat'];\n deleteChat!: ChatsBindings['deleteChat'];\n updateChat!: ChatsBindings['updateChat'];\n updateChatMute!: ChatsBindings['updateChatMute'];\n updateChatNeedsResponse!: ChatsBindings['updateChatNeedsResponse'];\n summarizeChat!: ChatsBindings['summarizeChat'];\n getChatMessages!: ChatsBindings['getChatMessages'];\n getChatToolCallMessages!: ChatsBindings['getChatToolCallMessages'];\n getChatTools!: ChatsBindings['getChatTools'];\n initiateOutboundCall!: ChatsBindings['initiateOutboundCall'];\n sendAssistantMessage!: ChatsBindings['sendAssistantMessage'];\n rateMessage!: ChatsBindings['rateMessage'];\n getChatAssignmentTasks!: ChatsBindings['getChatAssignmentTasks'];\n createChatCompletion!: ChatsBindings['createChatCompletion'];\n exportChats!: ChatsBindings['exportChats'];\n exportChat!: ChatsBindings['exportChat'];\n findOrCreateDMChat!: ChatsBindings['findOrCreateDMChat'];\n sendChatMessage!: ChatsBindings['sendChatMessage'];\n getChatLabels!: ChatsBindings['getChatLabels'];\n getChatLabel!: ChatsBindings['getChatLabel'];\n getChatLabelByUuid!: ChatsBindings['getChatLabelByUuid'];\n createChatLabel!: ChatsBindings['createChatLabel'];\n updateChatLabel!: ChatsBindings['updateChatLabel'];\n deleteChatLabel!: ChatsBindings['deleteChatLabel'];\n getChatFilters!: ChatsBindings['getChatFilters'];\n getChatFilter!: ChatsBindings['getChatFilter'];\n getChatFilterByUuid!: ChatsBindings['getChatFilterByUuid'];\n createChatFilter!: ChatsBindings['createChatFilter'];\n updateChatFilter!: ChatsBindings['updateChatFilter'];\n deleteChatFilter!: ChatsBindings['deleteChatFilter'];\n\n // Calls API\n initiateCall!: CallsBindings['initiateCall'];\n getVoiceToken!: CallsBindings['getVoiceToken'];\n getMessageTiming!: CallsBindings['getMessageTiming'];\n getCelContext!: CallsBindings['getCelContext'];\n\n // Data Types API\n getDataTypes!: DataTypesBindings['getDataTypes'];\n getDataType!: DataTypesBindings['getDataType'];\n getDataTypeBySlug!: DataTypesBindings['getDataTypeBySlug'];\n createDataType!: DataTypesBindings['createDataType'];\n updateDataType!: DataTypesBindings['updateDataType'];\n deleteDataType!: DataTypesBindings['deleteDataType'];\n archiveDataType!: DataTypesBindings['archiveDataType'];\n unarchiveDataType!: DataTypesBindings['unarchiveDataType'];\n cloneDataType!: DataTypesBindings['cloneDataType'];\n getDataRecords!: DataTypesBindings['getDataRecords'];\n getDataRecord!: DataTypesBindings['getDataRecord'];\n createDataRecord!: DataTypesBindings['createDataRecord'];\n updateDataRecord!: DataTypesBindings['updateDataRecord'];\n deleteDataRecord!: DataTypesBindings['deleteDataRecord'];\n getDataRecordChanges!: DataTypesBindings['getDataRecordChanges'];\n upsertDataRecord!: DataTypesBindings['upsertDataRecord'];\n toggleFieldIndex!: DataTypesBindings['toggleFieldIndex'];\n getFieldIndexStatus!: DataTypesBindings['getFieldIndexStatus'];\n validateDataTypeSlug!: DataTypesBindings['validateDataTypeSlug'];\n getMemberRecordCounts!: DataTypesBindings['getMemberRecordCounts'];\n\n // Members API\n getCurrentMember!: MembersBindings['getCurrentMember'];\n getOwnedMembers!: MembersBindings['getOwnedMembers'];\n switchMember!: MembersBindings['switchMember'];\n clearMemberSwitch!: MembersBindings['clearMemberSwitch'];\n updateCurrentMember!: MembersBindings['updateCurrentMember'];\n getWorkspaceMembers!: MembersBindings['getWorkspaceMembers'];\n getWorkspaceMember!: MembersBindings['getWorkspaceMember'];\n createWorkspaceMember!: MembersBindings['createWorkspaceMember'];\n updateMember!: MembersBindings['updateMember'];\n deleteMember!: MembersBindings['deleteMember'];\n archiveMember!: MembersBindings['archiveMember'];\n unarchiveMember!: MembersBindings['unarchiveMember'];\n importMembers!: MembersBindings['importMembers'];\n exportMembers!: MembersBindings['exportMembers'];\n getMembersMessageActivity!: MembersBindings['getMembersMessageActivity'];\n getMemberFilters!: MembersBindings['getMemberFilters'];\n getMemberFilter!: MembersBindings['getMemberFilter'];\n createMemberFilter!: MembersBindings['createMemberFilter'];\n updateMemberFilter!: MembersBindings['updateMemberFilter'];\n deleteMemberFilter!: MembersBindings['deleteMemberFilter'];\n getMemberFilterCount!: MembersBindings['getMemberFilterCount'];\n getMemberLabels!: MembersBindings['getMemberLabels'];\n getMemberLabel!: MembersBindings['getMemberLabel'];\n getMemberLabelByUuid!: MembersBindings['getMemberLabelByUuid'];\n createMemberLabel!: MembersBindings['createMemberLabel'];\n updateMemberLabel!: MembersBindings['updateMemberLabel'];\n deleteMemberLabel!: MembersBindings['deleteMemberLabel'];\n getMemberRoles!: MembersBindings['getMemberRoles'];\n getMemberRole!: MembersBindings['getMemberRole'];\n getMemberRoleByUuid!: MembersBindings['getMemberRoleByUuid'];\n createMemberRole!: MembersBindings['createMemberRole'];\n updateMemberRole!: MembersBindings['updateMemberRole'];\n deleteMemberRole!: MembersBindings['deleteMemberRole'];\n // Member Fields\n getMemberFields!: MembersBindings['getMemberFields'];\n getMemberFieldDefinitions!: MembersBindings['getMemberFieldDefinitions'];\n createMemberField!: MembersBindings['createMemberField'];\n updateMemberField!: MembersBindings['updateMemberField'];\n deleteMemberField!: MembersBindings['deleteMemberField'];\n // Credential Change Invites (Admin-initiated)\n inviteMemberCredentialUpdate!: MembersBindings['inviteMemberCredentialUpdate'];\n cancelCredentialUpdateInvite!: MembersBindings['cancelCredentialUpdateInvite'];\n getCredentialUpdateInvites!: MembersBindings['getCredentialUpdateInvites'];\n // Anonymous Member Resolutions\n getAnonymousResolutions!: MembersBindings['getAnonymousResolutions'];\n getAnonymousResolution!: MembersBindings['getAnonymousResolution'];\n resolveAnonymousMember!: MembersBindings['resolveAnonymousMember'];\n expireAnonymousMember!: MembersBindings['expireAnonymousMember'];\n\n // Agents API\n getAgents!: AgentsBindings['getAgents'];\n getAgent!: AgentsBindings['getAgent'];\n createAgent!: AgentsBindings['createAgent'];\n updateAgent!: AgentsBindings['updateAgent'];\n deleteAgent!: AgentsBindings['deleteAgent'];\n archiveAgent!: AgentsBindings['archiveAgent'];\n unarchiveAgent!: AgentsBindings['unarchiveAgent'];\n\n // Qualifications API\n getQualifications!: QualificationsBindings['getQualifications'];\n getQualification!: QualificationsBindings['getQualification'];\n createQualification!: QualificationsBindings['createQualification'];\n updateQualification!: QualificationsBindings['updateQualification'];\n archiveQualification!: QualificationsBindings['archiveQualification'];\n getQualificationMembers!: QualificationsBindings['getQualificationMembers'];\n getMemberQualifications!: QualificationsBindings['getMemberQualifications'];\n assignQualification!: QualificationsBindings['assignQualification'];\n updateMemberQualification!: QualificationsBindings['updateMemberQualification'];\n removeMemberQualification!: QualificationsBindings['removeMemberQualification'];\n getMemberQualificationLog!: QualificationsBindings['getMemberQualificationLog'];\n listRequirements!: QualificationsBindings['listRequirements'];\n createRequirement!: QualificationsBindings['createRequirement'];\n getRequirement!: QualificationsBindings['getRequirement'];\n updateRequirement!: QualificationsBindings['updateRequirement'];\n deleteRequirement!: QualificationsBindings['deleteRequirement'];\n listSubmissions!: QualificationsBindings['listSubmissions'];\n getSubmission!: QualificationsBindings['getSubmission'];\n submitAnswer!: QualificationsBindings['submitAnswer'];\n startScenario!: QualificationsBindings['startScenario'];\n retrySubmission!: QualificationsBindings['retrySubmission'];\n submitForReview!: QualificationsBindings['submitForReview'];\n reviewSubmission!: QualificationsBindings['reviewSubmission'];\n overrideCriterionScore!: QualificationsBindings['overrideCriterionScore'];\n\n // Operator Groups API\n getOperatorGroups!: OperatorBindings['getOperatorGroups'];\n getOperatorGroup!: OperatorBindings['getOperatorGroup'];\n createOperatorGroup!: OperatorBindings['createOperatorGroup'];\n updateOperatorGroup!: OperatorBindings['updateOperatorGroup'];\n deleteOperatorGroup!: OperatorBindings['deleteOperatorGroup'];\n addGroupMember!: OperatorBindings['addGroupMember'];\n removeGroupMember!: OperatorBindings['removeGroupMember'];\n getLiveOperators!: OperatorBindings['getLiveOperators'];\n getPresenceStatus!: OperatorBindings['getPresenceStatus'];\n disconnectPresence!: OperatorBindings['disconnectPresence'];\n getOperatorChatMessages!: OperatorBindings['getOperatorChatMessages'];\n sendOperatorMessage!: OperatorBindings['sendOperatorMessage'];\n\n // Access Grants API\n getMyReceivedGrants!: AccessGrantsBindings['getMyReceivedGrants'];\n getMyGivenGrants!: AccessGrantsBindings['getMyGivenGrants'];\n getAccessGrant!: AccessGrantsBindings['getAccessGrant'];\n createAccessGrant!: AccessGrantsBindings['createAccessGrant'];\n resolveAccessGrant!: AccessGrantsBindings['resolveAccessGrant'];\n revokeAccessGrant!: AccessGrantsBindings['revokeAccessGrant'];\n getAccessGrants!: AccessGrantsBindings['getAccessGrants'];\n getMemberGrants!: AccessGrantsBindings['getMemberGrants'];\n\n // Workspaces API\n getWorkspaces!: WorkspacesBindings['getWorkspaces'];\n getPublicWorkspaces!: WorkspacesBindings['getPublicWorkspaces'];\n getWorkspace!: WorkspacesBindings['getWorkspace'];\n createWorkspace!: WorkspacesBindings['createWorkspace'];\n updateWorkspace!: WorkspacesBindings['updateWorkspace'];\n deleteWorkspace!: WorkspacesBindings['deleteWorkspace'];\n leaveWorkspace!: WorkspacesBindings['leaveWorkspace'];\n getWorkspaceDefaults!: WorkspacesBindings['getWorkspaceDefaults'];\n updateWorkspaceDefaults!: WorkspacesBindings['updateWorkspaceDefaults'];\n getWorkspaceCounts!: WorkspacesBindings['getWorkspaceCounts'];\n getBusinessHoursStatus!: WorkspacesBindings['getBusinessHoursStatus'];\n getAvailableWorkspaceFeatures!: WorkspacesBindings['getAvailableWorkspaceFeatures'];\n getWorkspaceNotices!: WorkspacesBindings['getWorkspaceNotices'];\n getNotifications!: WorkspacesBindings['getNotifications'];\n getNotification!: WorkspacesBindings['getNotification'];\n getUnreadNotificationCount!: WorkspacesBindings['getUnreadNotificationCount'];\n markNotificationAsRead!: WorkspacesBindings['markNotificationAsRead'];\n dismissNotification!: WorkspacesBindings['dismissNotification'];\n dismissAllNotifications!: WorkspacesBindings['dismissAllNotifications'];\n getResellerWorkspaces!: WorkspacesBindings['getResellerWorkspaces'];\n createClientWorkspace!: WorkspacesBindings['createClientWorkspace'];\n getClientWorkspace!: WorkspacesBindings['getClientWorkspace'];\n updateClientWorkspace!: WorkspacesBindings['updateClientWorkspace'];\n deleteClientWorkspace!: WorkspacesBindings['deleteClientWorkspace'];\n provisionClientWorkspace!: WorkspacesBindings['provisionClientWorkspace'];\n getProducts!: WorkspacesBindings['getProducts'];\n getProduct!: WorkspacesBindings['getProduct'];\n getPublicProduct!: WorkspacesBindings['getPublicProduct'];\n createProduct!: WorkspacesBindings['createProduct'];\n updateProduct!: WorkspacesBindings['updateProduct'];\n deleteProduct!: WorkspacesBindings['deleteProduct'];\n resetWorkspaceSecretKey!: WorkspacesBindings['resetWorkspaceSecretKey'];\n exportWorkspace!: WorkspacesBindings['exportWorkspace'];\n previewWorkspaceImport!: WorkspacesBindings['previewWorkspaceImport'];\n importWorkspace!: WorkspacesBindings['importWorkspace'];\n previewImportWorkspace!: WorkspacesBindings['previewImportWorkspace'];\n getWorkspaceThemes!: WorkspacesBindings['getWorkspaceThemes'];\n updateWorkspaceThemes!: WorkspacesBindings['updateWorkspaceThemes'];\n getWorkspaceBySlug!: WorkspacesBindings['getWorkspaceBySlug'];\n getWorkspaceScopes!: WorkspacesBindings['getWorkspaceScopes'];\n getBillingDashboard!: WorkspacesBindings['getBillingDashboard'];\n syncUsageToStripe!: WorkspacesBindings['syncUsageToStripe'];\n getVapidPublicKey!: WorkspacesBindings['getVapidPublicKey'];\n registerPushSubscription!: WorkspacesBindings['registerPushSubscription'];\n unregisterPushSubscription!: WorkspacesBindings['unregisterPushSubscription'];\n listPushSubscriptions!: WorkspacesBindings['listPushSubscriptions'];\n listWorkspaceInvitations!: WorkspacesBindings['listWorkspaceInvitations'];\n listWorkspaceInvitationsAdmin!: WorkspacesBindings['listWorkspaceInvitationsAdmin'];\n getWorkspaceInvitation!: WorkspacesBindings['getWorkspaceInvitation'];\n updateWorkspaceInvitationAdmin!: WorkspacesBindings['updateWorkspaceInvitationAdmin'];\n deleteWorkspaceInvitation!: WorkspacesBindings['deleteWorkspaceInvitation'];\n deleteWorkspaceInvitationAdmin!: WorkspacesBindings['deleteWorkspaceInvitationAdmin'];\n requestWorkspaceMembership!: WorkspacesBindings['requestWorkspaceMembership'];\n approveWorkspaceInvitation!: WorkspacesBindings['approveWorkspaceInvitation'];\n denyWorkspaceInvitation!: WorkspacesBindings['denyWorkspaceInvitation'];\n blockWorkspaceInvitation!: WorkspacesBindings['blockWorkspaceInvitation'];\n inviteToWorkspace!: WorkspacesBindings['inviteToWorkspace'];\n acceptInvitation!: WorkspacesBindings['acceptInvitation'];\n declineInvitation!: WorkspacesBindings['declineInvitation'];\n\n // Auth API\n getUserAccount!: AuthBindings['getUserAccount'];\n updateUserAccount!: AuthBindings['updateUserAccount'];\n login!: AuthBindings['login'];\n resendCode!: AuthBindings['resendCode'];\n verifyCodeWith2FA!: AuthBindings['verifyCodeWith2FA'];\n emailPasswordLogin!: AuthBindings['emailPasswordLogin'];\n emailPasswordSignup!: AuthBindings['emailPasswordSignup'];\n requestMagicLink!: AuthBindings['requestMagicLink'];\n validateMagicLink!: AuthBindings['validateMagicLink'];\n sendEmailVerification!: AuthBindings['sendEmailVerification'];\n verifyEmail!: AuthBindings['verifyEmail'];\n changePassword!: AuthBindings['changePassword'];\n setPassword!: AuthBindings['setPassword'];\n getPasswordStatus!: AuthBindings['getPasswordStatus'];\n logout!: AuthBindings['logout'];\n requestCrossDomainToken!: AuthBindings['requestCrossDomainToken'];\n exchangeToken!: AuthBindings['exchangeToken'];\n getDomainMapping!: AuthBindings['getDomainMapping'];\n createSignup!: AuthBindings['createSignup'];\n createAccount!: AuthBindings['createAccount'];\n getTwoFactorStatus!: AuthBindings['getTwoFactorStatus'];\n setupTOTP!: AuthBindings['setupTOTP'];\n verifyTOTPSetup!: AuthBindings['verifyTOTPSetup'];\n setupWebAuthn!: AuthBindings['setupWebAuthn'];\n verifyWebAuthnSetup!: AuthBindings['verifyWebAuthnSetup'];\n verifyTOTPAuth!: AuthBindings['verifyTOTPAuth'];\n verifyRecoveryCodeAuth!: AuthBindings['verifyRecoveryCodeAuth'];\n getWebAuthnAuthOptions!: AuthBindings['getWebAuthnAuthOptions'];\n verifyWebAuthnAuth!: AuthBindings['verifyWebAuthnAuth'];\n generateRecoveryCodes!: AuthBindings['generateRecoveryCodes'];\n disableTwoFactorMethod!: AuthBindings['disableTwoFactorMethod'];\n updateTwoFactorMethod!: AuthBindings['updateTwoFactorMethod'];\n getMyOrganizations!: AuthBindings['getMyOrganizations'];\n requestCredentialChange!: AuthBindings['requestCredentialChange'];\n verifyCredentialChange!: AuthBindings['verifyCredentialChange'];\n getPendingCredentialChanges!: AuthBindings['getPendingCredentialChanges'];\n cancelCredentialChange!: AuthBindings['cancelCredentialChange'];\n getCredentialChangeInviteDetails!: AuthBindings['getCredentialChangeInviteDetails'];\n confirmCredentialChangeInvite!: AuthBindings['confirmCredentialChangeInvite'];\n getAssignments!: AuthBindings['getAssignments'];\n getAssignment!: AuthBindings['getAssignment'];\n getAssignmentMessages!: AuthBindings['getAssignmentMessages'];\n updateAssignment!: AuthBindings['updateAssignment'];\n deleteAssignment!: AuthBindings['deleteAssignment'];\n getAssignmentTask!: AuthBindings['getAssignmentTask'];\n selectCurrentAssignmentTask!: AuthBindings['selectCurrentAssignmentTask'];\n createAssignment!: AuthBindings['createAssignment'];\n getAssignmentTaskDetail!: AuthBindings['getAssignmentTaskDetail'];\n getAssignmentCelContext!: AuthBindings['getAssignmentCelContext'];\n cancelAssignment!: AuthBindings['cancelAssignment'];\n getAssignmentTools!: AuthBindings['getAssignmentTools'];\n executeAssignmentTool!: AuthBindings['executeAssignmentTool'];\n\n // Sites API\n getSites!: SitesBindings['getSites'];\n checkSiteSlugAvailability!: SitesBindings['checkSiteSlugAvailability'];\n checkSiteDomainAvailability!: SitesBindings['checkSiteDomainAvailability'];\n getSite!: SitesBindings['getSite'];\n getSiteByUuid!: SitesBindings['getSiteByUuid'];\n getSiteRenderedPage!: SitesBindings['getSiteRenderedPage'];\n getSiteRenderedMenu!: SitesBindings['getSiteRenderedMenu'];\n siteSignup!: SitesBindings['siteSignup'];\n siteSendPhoneCode!: SitesBindings['siteSendPhoneCode'];\n siteSendEmailCode!: SitesBindings['siteSendEmailCode'];\n siteVerifyCode!: SitesBindings['siteVerifyCode'];\n siteGoogleOAuthInitiate!: SitesBindings['siteGoogleOAuthInitiate'];\n crawlSite!: SitesBindings['crawlSite'];\n createSite!: SitesBindings['createSite'];\n updateSite!: SitesBindings['updateSite'];\n deleteSite!: SitesBindings['deleteSite'];\n getSitePages!: SitesBindings['getSitePages'];\n getPage!: SitesBindings['getPage'];\n getPageBySlug!: SitesBindings['getPageBySlug'];\n createPage!: SitesBindings['createPage'];\n updatePage!: SitesBindings['updatePage'];\n deletePage!: SitesBindings['deletePage'];\n getSiteCounts!: SitesBindings['getSiteCounts'];\n getSiteMenu!: SitesBindings['getSiteMenu'];\n getMenuItems!: SitesBindings['getMenuItems'];\n createMenuItem!: SitesBindings['createMenuItem'];\n updateMenuItem!: SitesBindings['updateMenuItem'];\n deleteMenuItem!: SitesBindings['deleteMenuItem'];\n reorderMenuItems!: SitesBindings['reorderMenuItems'];\n generateSiteMediaUploadUrl!: SitesBindings['generateSiteMediaUploadUrl'];\n\n // Files API\n getFiles!: FilesBindings['getFiles'];\n getFile!: FilesBindings['getFile'];\n createFile!: FilesBindings['createFile'];\n updateFile!: FilesBindings['updateFile'];\n deleteFile!: FilesBindings['deleteFile'];\n convertFile!: FilesBindings['convertFile'];\n generateFileUploadUrl!: FilesBindings['generateFileUploadUrl'];\n getFolders!: FilesBindings['getFolders'];\n getFolder!: FilesBindings['getFolder'];\n createFolder!: FilesBindings['createFolder'];\n updateFolder!: FilesBindings['updateFolder'];\n deleteFolder!: FilesBindings['deleteFolder'];\n reindexFolder!: FilesBindings['reindexFolder'];\n searchFolder!: FilesBindings['searchFolder'];\n getFileLabels!: FilesBindings['getFileLabels'];\n getFileLabel!: FilesBindings['getFileLabel'];\n getFileLabelByUuid!: FilesBindings['getFileLabelByUuid'];\n createFileLabel!: FilesBindings['createFileLabel'];\n updateFileLabel!: FilesBindings['updateFileLabel'];\n deleteFileLabel!: FilesBindings['deleteFileLabel'];\n getFileSharing!: FilesBindings['getFileSharing'];\n updateFileRoles!: FilesBindings['updateFileRoles'];\n removeFileRole!: FilesBindings['removeFileRole'];\n getFolderSharing!: FilesBindings['getFolderSharing'];\n updateFolderRoles!: FilesBindings['updateFolderRoles'];\n removeFolderRole!: FilesBindings['removeFolderRole'];\n updateFileSharing!: FilesBindings['updateFileSharing'];\n updateFolderSharing!: FilesBindings['updateFolderSharing'];\n // Public Sharing API\n getPublicFile!: FilesBindings['getPublicFile'];\n getPublicFolder!: FilesBindings['getPublicFolder'];\n getPublicFolderFiles!: FilesBindings['getPublicFolderFiles'];\n\n // Events API\n getEventRules!: EventsBindings['getEventRules'];\n getAvailableActions!: EventsBindings['getAvailableActions'];\n searchEventRules!: EventsBindings['searchEventRules'];\n getEventRule!: EventsBindings['getEventRule'];\n createEventRule!: EventsBindings['createEventRule'];\n updateEventRule!: EventsBindings['updateEventRule'];\n deleteEventRule!: EventsBindings['deleteEventRule'];\n reorderEventRules!: EventsBindings['reorderEventRules'];\n getWebhookLogs!: EventsBindings['getWebhookLogs'];\n getRuleExecutions!: EventsBindings['getRuleExecutions'];\n getEvents!: EventsBindings['getEvents'];\n getEvent!: EventsBindings['getEvent'];\n createEvent!: EventsBindings['createEvent'];\n updateEvent!: EventsBindings['updateEvent'];\n deleteEvent!: EventsBindings['deleteEvent'];\n runEvent!: EventsBindings['runEvent'];\n getEventRuns!: EventsBindings['getEventRuns'];\n resetEventRuns!: EventsBindings['resetEventRuns'];\n\n // Workflows API\n getWorkflows!: WorkflowsBindings['getWorkflows'];\n getWorkflow!: WorkflowsBindings['getWorkflow'];\n getWorkflowActivity!: WorkflowsBindings['getWorkflowActivity'];\n getWorkflowsActivityBatch!: WorkflowsBindings['getWorkflowsActivityBatch'];\n getWorkflowDiagram!: WorkflowsBindings['getWorkflowDiagram'];\n getWorkflowThumbnailUrl!: WorkflowsBindings['getWorkflowThumbnailUrl'];\n createWorkflow!: WorkflowsBindings['createWorkflow'];\n updateWorkflow!: WorkflowsBindings['updateWorkflow'];\n getWorkflowDeletionPreview!: WorkflowsBindings['getWorkflowDeletionPreview'];\n deleteWorkflow!: WorkflowsBindings['deleteWorkflow'];\n archiveWorkflow!: WorkflowsBindings['archiveWorkflow'];\n unarchiveWorkflow!: WorkflowsBindings['unarchiveWorkflow'];\n cloneWorkflow!: WorkflowsBindings['cloneWorkflow'];\n getWorkflowTemplates!: WorkflowsBindings['getWorkflowTemplates'];\n createWorkflowFromTemplate!: WorkflowsBindings['createWorkflowFromTemplate'];\n getWorkflowTaskAssignmentStats!: WorkflowsBindings['getWorkflowTaskAssignmentStats'];\n getTaskChats!: WorkflowsBindings['getTaskChats'];\n getWorkflowNotes!: WorkflowsBindings['getWorkflowNotes'];\n getWorkflowNote!: WorkflowsBindings['getWorkflowNote'];\n createWorkflowNote!: WorkflowsBindings['createWorkflowNote'];\n updateWorkflowNote!: WorkflowsBindings['updateWorkflowNote'];\n deleteWorkflowNote!: WorkflowsBindings['deleteWorkflowNote'];\n getWorkflowContributors!: WorkflowsBindings['getWorkflowContributors'];\n createWorkflowContributor!: WorkflowsBindings['createWorkflowContributor'];\n updateWorkflowContributor!: WorkflowsBindings['updateWorkflowContributor'];\n deleteWorkflowContributor!: WorkflowsBindings['deleteWorkflowContributor'];\n getWorkspaceBuilders!: WorkflowsBindings['getWorkspaceBuilders'];\n getWorkspaceBuilder!: WorkflowsBindings['getWorkspaceBuilder'];\n buildWorkspace!: WorkflowsBindings['buildWorkspace'];\n validateWorkflowName!: WorkflowsBindings['validateWorkflowName'];\n getAssistants!: WorkflowsBindings['getAssistants'];\n getAssistant!: WorkflowsBindings['getAssistant'];\n createAssistant!: WorkflowsBindings['createAssistant'];\n updateAssistant!: WorkflowsBindings['updateAssistant'];\n deleteAssistant!: WorkflowsBindings['deleteAssistant'];\n previewTTS!: WorkflowsBindings['previewTTS'];\n getSupervisors!: WorkflowsBindings['getSupervisors'];\n getSupervisor!: WorkflowsBindings['getSupervisor'];\n createSupervisor!: WorkflowsBindings['createSupervisor'];\n updateSupervisor!: WorkflowsBindings['updateSupervisor'];\n deleteSupervisor!: WorkflowsBindings['deleteSupervisor'];\n\n // Calendars API\n getCalendars!: CalendarsBindings['getCalendars'];\n getCalendar!: CalendarsBindings['getCalendar'];\n createCalendar!: CalendarsBindings['createCalendar'];\n updateCalendar!: CalendarsBindings['updateCalendar'];\n deleteCalendar!: CalendarsBindings['deleteCalendar'];\n getCalendarSchedules!: CalendarsBindings['getCalendarSchedules'];\n createCalendarSchedule!: CalendarsBindings['createCalendarSchedule'];\n updateCalendarSchedule!: CalendarsBindings['updateCalendarSchedule'];\n deleteCalendarSchedule!: CalendarsBindings['deleteCalendarSchedule'];\n checkAvailability!: CalendarsBindings['checkAvailability'];\n getAvailableSlots!: CalendarsBindings['getAvailableSlots'];\n getCalendarEvents!: CalendarsBindings['getCalendarEvents'];\n getCalendarEvent!: CalendarsBindings['getCalendarEvent'];\n createCalendarEvent!: CalendarsBindings['createCalendarEvent'];\n updateCalendarEvent!: CalendarsBindings['updateCalendarEvent'];\n cancelCalendarEvent!: CalendarsBindings['cancelCalendarEvent'];\n deleteCalendarEvent!: CalendarsBindings['deleteCalendarEvent'];\n updateEventAttendee!: CalendarsBindings['updateEventAttendee'];\n getCalendarEventTypes!: CalendarsBindings['getCalendarEventTypes'];\n getCalendarEventType!: CalendarsBindings['getCalendarEventType'];\n createCalendarEventType!: CalendarsBindings['createCalendarEventType'];\n updateCalendarEventType!: CalendarsBindings['updateCalendarEventType'];\n deleteCalendarEventType!: CalendarsBindings['deleteCalendarEventType'];\n generateICalToken!: CalendarsBindings['generateICalToken'];\n revokeICalToken!: CalendarsBindings['revokeICalToken'];\n getICalFeedUrl!: CalendarsBindings['getICalFeedUrl'];\n getGoogleCalendarStatus!: CalendarsBindings['getGoogleCalendarStatus'];\n listGoogleCalendars!: CalendarsBindings['listGoogleCalendars'];\n linkCalendarToGoogle!: CalendarsBindings['linkCalendarToGoogle'];\n unlinkCalendarFromGoogle!: CalendarsBindings['unlinkCalendarFromGoogle'];\n syncCalendarWithGoogle!: CalendarsBindings['syncCalendarWithGoogle'];\n getMilestones!: CalendarsBindings['getMilestones'];\n getMilestone!: CalendarsBindings['getMilestone'];\n createMilestone!: CalendarsBindings['createMilestone'];\n updateMilestone!: CalendarsBindings['updateMilestone'];\n deleteMilestone!: CalendarsBindings['deleteMilestone'];\n\n // Communications API\n getPhoneNumbers!: CommunicationsBindings['getPhoneNumbers'];\n getAvailablePhoneNumbers!: CommunicationsBindings['getAvailablePhoneNumbers'];\n requestPhoneNumber!: CommunicationsBindings['requestPhoneNumber'];\n getPhoneNumber!: CommunicationsBindings['getPhoneNumber'];\n createPhoneNumber!: CommunicationsBindings['createPhoneNumber'];\n updatePhoneNumber!: CommunicationsBindings['updatePhoneNumber'];\n deletePhoneNumber!: CommunicationsBindings['deletePhoneNumber'];\n getPhoneNumberCalls!: CommunicationsBindings['getPhoneNumberCalls'];\n getPhoneNumberMessages!: CommunicationsBindings['getPhoneNumberMessages'];\n getInboxes!: CommunicationsBindings['getInboxes'];\n getInbox!: CommunicationsBindings['getInbox'];\n createInbox!: CommunicationsBindings['createInbox'];\n updateInbox!: CommunicationsBindings['updateInbox'];\n deleteInbox!: CommunicationsBindings['deleteInbox'];\n getInboxEmails!: CommunicationsBindings['getInboxEmails'];\n getInboxEmail!: CommunicationsBindings['getInboxEmail'];\n markEmailAsRead!: CommunicationsBindings['markEmailAsRead'];\n markEmailAsUnread!: CommunicationsBindings['markEmailAsUnread'];\n convertEmail!: CommunicationsBindings['convertEmail'];\n downloadEmailAttachment!: CommunicationsBindings['downloadEmailAttachment'];\n getInboxThreads!: CommunicationsBindings['getInboxThreads'];\n getThreadEmails!: CommunicationsBindings['getThreadEmails'];\n getChatEmails!: CommunicationsBindings['getChatEmails'];\n getNotificationRules!: CommunicationsBindings['getNotificationRules'];\n createNotificationRule!: CommunicationsBindings['createNotificationRule'];\n updateNotificationRule!: CommunicationsBindings['updateNotificationRule'];\n deleteNotificationRule!: CommunicationsBindings['deleteNotificationRule'];\n\n // Toolkits API\n getToolkits!: ToolkitsBindings['getToolkits'];\n getTool!: ToolkitsBindings['getTool'];\n getTemplateContext!: ToolkitsBindings['getTemplateContext'];\n previewTemplate!: ToolkitsBindings['previewTemplate'];\n getVariableRegistry!: ToolkitsBindings['getVariableRegistry'];\n getChatModels!: ToolkitsBindings['getChatModels'];\n getRealtimeModels!: ToolkitsBindings['getRealtimeModels'];\n getVoiceModels!: ToolkitsBindings['getVoiceModels'];\n getAllModels!: ToolkitsBindings['getAllModels'];\n getCustomToolkits!: ToolkitsBindings['getCustomToolkits'];\n getCustomToolkit!: ToolkitsBindings['getCustomToolkit'];\n createCustomToolkit!: ToolkitsBindings['createCustomToolkit'];\n updateCustomToolkit!: ToolkitsBindings['updateCustomToolkit'];\n deleteCustomToolkit!: ToolkitsBindings['deleteCustomToolkit'];\n enableCustomToolkit!: ToolkitsBindings['enableCustomToolkit'];\n disableCustomToolkit!: ToolkitsBindings['disableCustomToolkit'];\n createCustomTool!: ToolkitsBindings['createCustomTool'];\n updateCustomTool!: ToolkitsBindings['updateCustomTool'];\n deleteCustomTool!: ToolkitsBindings['deleteCustomTool'];\n getMcpServers!: ToolkitsBindings['getMcpServers'];\n getMcpServer!: ToolkitsBindings['getMcpServer'];\n createMcpServer!: ToolkitsBindings['createMcpServer'];\n updateMcpServer!: ToolkitsBindings['updateMcpServer'];\n deleteMcpServer!: ToolkitsBindings['deleteMcpServer'];\n enableMcpServer!: ToolkitsBindings['enableMcpServer'];\n disableMcpServer!: ToolkitsBindings['disableMcpServer'];\n getMcpServerTools!: ToolkitsBindings['getMcpServerTools'];\n getMcpServerResources!: ToolkitsBindings['getMcpServerResources'];\n getMcpServerPrompts!: ToolkitsBindings['getMcpServerPrompts'];\n testMcpServerConnection!: ToolkitsBindings['testMcpServerConnection'];\n discoverOAuthMetadata!: ToolkitsBindings['discoverOAuthMetadata'];\n getFeatureRegistry!: ToolkitsBindings['getFeatureRegistry'];\n getFeatureBySlug!: ToolkitsBindings['getFeatureBySlug'];\n\n // Billing API\n getApiKeys!: BillingBindings['getApiKeys'];\n createApiKey!: BillingBindings['createApiKey'];\n revokeApiKey!: BillingBindings['revokeApiKey'];\n getGlobalApiKeys!: BillingBindings['getGlobalApiKeys'];\n createGlobalApiKey!: BillingBindings['createGlobalApiKey'];\n revokeGlobalApiKey!: BillingBindings['revokeGlobalApiKey'];\n getSubscriptions!: BillingBindings['getSubscriptions'];\n getWorkspaceSubscriptions!: BillingBindings['getWorkspaceSubscriptions'];\n cancelSubscription!: BillingBindings['cancelSubscription'];\n reactivateSubscription!: BillingBindings['reactivateSubscription'];\n updateSubscription!: BillingBindings['updateSubscription'];\n provisionMemberRole!: BillingBindings['provisionMemberRole'];\n getAIUsageReport!: BillingBindings['getAIUsageReport'];\n getSMSUsageReport!: BillingBindings['getSMSUsageReport'];\n getPhoneUsageReport!: BillingBindings['getPhoneUsageReport'];\n getVoiceUsageReport!: BillingBindings['getVoiceUsageReport'];\n getMemberUsage!: BillingBindings['getMemberUsage'];\n\n // Apps API\n listApps!: AppsBindings['listApps'];\n createApp!: AppsBindings['createApp'];\n getApp!: AppsBindings['getApp'];\n getAppByClientId!: AppsBindings['getAppByClientId'];\n updateApp!: AppsBindings['updateApp'];\n deleteApp!: AppsBindings['deleteApp'];\n regenerateClientSecret!: AppsBindings['regenerateClientSecret'];\n listBuilders!: AppsBindings['listBuilders'];\n getBuilder!: AppsBindings['getBuilder'];\n getBuilderApps!: AppsBindings['getBuilderApps'];\n createBuilder!: AppsBindings['createBuilder'];\n updateBuilder!: AppsBindings['updateBuilder'];\n deleteBuilder!: AppsBindings['deleteBuilder'];\n createInquiry!: AppsBindings['createInquiry'];\n listInquiries!: AppsBindings['listInquiries'];\n getInquiry!: AppsBindings['getInquiry'];\n updateInquiry!: AppsBindings['updateInquiry'];\n deleteInquiry!: AppsBindings['deleteInquiry'];\n exportInquiriesCsv!: AppsBindings['exportInquiriesCsv'];\n authorize!: AppsBindings['authorize'];\n exchangeOAuthToken!: AppsBindings['exchangeOAuthToken'];\n getAvailableScopes!: AppsBindings['getAvailableScopes'];\n getOAuthConnectionStatus!: AppsBindings['getOAuthConnectionStatus'];\n getOAuthAuthorizationUrl!: AppsBindings['getOAuthAuthorizationUrl'];\n disconnectOAuthProvider!: AppsBindings['disconnectOAuthProvider'];\n\n // Integrations API\n getMondayBoards!: IntegrationsBindings['getMondayBoards'];\n getMondayBoardColumns!: IntegrationsBindings['getMondayBoardColumns'];\n getMondayBoardGroups!: IntegrationsBindings['getMondayBoardGroups'];\n createMondayWebhook!: IntegrationsBindings['createMondayWebhook'];\n deleteMondayWebhook!: IntegrationsBindings['deleteMondayWebhook'];\n getMondayWebhook!: IntegrationsBindings['getMondayWebhook'];\n getMondayCurrentUserInfo!: IntegrationsBindings['getMondayCurrentUserInfo'];\n\n // Discord Bots API\n getDiscordBots!: IntegrationsBindings['getDiscordBots'];\n getDiscordBot!: IntegrationsBindings['getDiscordBot'];\n getDiscordBotByUuid!: IntegrationsBindings['getDiscordBotByUuid'];\n createDiscordBot!: IntegrationsBindings['createDiscordBot'];\n updateDiscordBot!: IntegrationsBindings['updateDiscordBot'];\n deleteDiscordBot!: IntegrationsBindings['deleteDiscordBot'];\n registerDiscordSlashCommands!: IntegrationsBindings['registerDiscordSlashCommands'];\n registerLinkedRolesMetadata!: IntegrationsBindings['registerLinkedRolesMetadata'];\n getDiscordThreads!: IntegrationsBindings['getDiscordThreads'];\n getDiscordGuilds!: IntegrationsBindings['getDiscordGuilds'];\n getDiscordBotAccounts!: IntegrationsBindings['getDiscordBotAccounts'];\n getMyCredentials!: IntegrationsBindings['getMyCredentials'];\n unlinkCredential!: IntegrationsBindings['unlinkCredential'];\n\n // Slack Apps API\n getSlackApps!: IntegrationsBindings['getSlackApps'];\n getSlackApp!: IntegrationsBindings['getSlackApp'];\n createSlackApp!: IntegrationsBindings['createSlackApp'];\n updateSlackApp!: IntegrationsBindings['updateSlackApp'];\n deleteSlackApp!: IntegrationsBindings['deleteSlackApp'];\n getSlackThreads!: IntegrationsBindings['getSlackThreads'];\n getSlackInstallations!: IntegrationsBindings['getSlackInstallations'];\n getSlackAppAccounts!: IntegrationsBindings['getSlackAppAccounts'];\n\n // FHIR Connections API\n getFhirConnections!: IntegrationsBindings['getFhirConnections'];\n getFhirConnection!: IntegrationsBindings['getFhirConnection'];\n getFhirConnectionByUuid!: IntegrationsBindings['getFhirConnectionByUuid'];\n createFhirConnection!: IntegrationsBindings['createFhirConnection'];\n updateFhirConnection!: IntegrationsBindings['updateFhirConnection'];\n deleteFhirConnection!: IntegrationsBindings['deleteFhirConnection'];\n testFhirConnection!: IntegrationsBindings['testFhirConnection'];\n fhirSearchPatients!: IntegrationsBindings['fhirSearchPatients'];\n fhirSearchPractitioners!: IntegrationsBindings['fhirSearchPractitioners'];\n fhirSearchLocations!: IntegrationsBindings['fhirSearchLocations'];\n fhirFetchCareTeam!: IntegrationsBindings['fhirFetchCareTeam'];\n fhirFetchEncounters!: IntegrationsBindings['fhirFetchEncounters'];\n fhirCreateEncounter!: IntegrationsBindings['fhirCreateEncounter'];\n\n // App Connections API\n listAvailableAppConnections!: IntegrationsBindings['listAvailableAppConnections'];\n listAppConnections!: IntegrationsBindings['listAppConnections'];\n enablePlatformApp!: IntegrationsBindings['enablePlatformApp'];\n getPlatformApp!: IntegrationsBindings['getPlatformApp'];\n updatePlatformApp!: IntegrationsBindings['updatePlatformApp'];\n deletePlatformApp!: IntegrationsBindings['deletePlatformApp'];\n\n // Pronunciations API\n getPronunciationEntries!: PronunciationsBindings['getPronunciationEntries'];\n createPronunciationEntry!: PronunciationsBindings['createPronunciationEntry'];\n updatePronunciationEntry!: PronunciationsBindings['updatePronunciationEntry'];\n deletePronunciationEntry!: PronunciationsBindings['deletePronunciationEntry'];\n exportPronunciationEntries!: PronunciationsBindings['exportPronunciationEntries'];\n importPronunciationEntries!: PronunciationsBindings['importPronunciationEntries'];\n getMyPronunciations!: PronunciationsBindings['getMyPronunciations'];\n createMyPronunciation!: PronunciationsBindings['createMyPronunciation'];\n updateMyPronunciation!: PronunciationsBindings['updateMyPronunciation'];\n deleteMyPronunciation!: PronunciationsBindings['deleteMyPronunciation'];\n suggestPronunciations!: PronunciationsBindings['suggestPronunciations'];\n getRecommendedVoices!: PronunciationsBindings['getRecommendedVoices'];\n previewPronunciation!: PronunciationsBindings['previewPronunciation'];\n\n constructor(apiKey: string | undefined, baseUrl: string, customFetch?: typeof fetch) {\n // Create all API modules\n const apis = createApiModules(apiKey, baseUrl, customFetch);\n\n // Store all modules for cross-cutting operations\n this.apis = apis;\n\n // Store workspace invitations for public access\n this.workspaceInvitations = apis.workspaceInvitations;\n\n // Bind all public methods from each domain\n bindTasksMethods(this, apis.tasks, apis.abilities);\n bindChatsMethods(this, apis.chats);\n bindCallsMethods(this, apis.calls, apis.cel);\n bindDataTypesMethods(this, apis.dataTypes);\n bindMembersMethods(this, apis.members);\n bindAgentsMethods(this, apis.agents);\n bindQualificationsMethods(this, apis.qualifications);\n bindOperatorMethods(this, apis.operatorGroups);\n bindAccessGrantsMethods(this, apis.accessGrants);\n bindWorkspacesMethods(this, apis.workspaces, apis.workspaceInvitations);\n bindAuthMethods(this, apis.auth, apis.assignments);\n bindSitesMethods(this, apis.sites);\n bindFilesMethods(this, apis.files);\n bindEventsMethods(this, apis.events);\n bindWorkflowsMethods(\n this,\n apis.workflows,\n apis.workflowNotes,\n apis.assistants,\n apis.supervisors\n );\n bindCalendarsMethods(this, apis.calendars, apis.milestones);\n bindCommunicationsMethods(this, apis.phoneNumbers, apis.inboxes, apis.notificationRules);\n bindToolkitsMethods(\n this,\n apis.toolkits,\n apis.templates,\n apis.aiModels,\n apis.customToolkits,\n apis.mcpServers,\n apis.features\n );\n bindBillingMethods(this, apis.apiKeys, apis.subscriptions, apis.reports);\n bindAppsMethods(\n this,\n apis.apps,\n apis.builders,\n apis.inquiries,\n apis.oauth,\n apis.oauthConnections\n );\n bindIntegrationsMethods(\n this,\n apis.mondayIntegration,\n apis.discordBots,\n apis.slackApps,\n apis.fhirConnections,\n apis.appConnections\n );\n bindPronunciationsMethods(this, apis.pronunciations);\n }\n\n /**\n * Set the handler for enhanced authentication requirements (RFC 9470 Step-Up Auth).\n * This handler is called when a 401 response includes WWW-Authenticate header\n * with error=\"insufficient_user_authentication\".\n * Propagates to all API modules.\n */\n setEnhancedAuthHandler(handler: EnhancedAuthHandler | undefined) {\n // Propagate to all API modules\n Object.values(this.apis).forEach((api) => {\n if (typeof api.setEnhancedAuthHandler === 'function') {\n api.setEnhancedAuthHandler(handler);\n }\n });\n }\n\n /**\n * Set the handler for organization authentication requirements.\n * This handler is called when a 401 response includes WWW-Authenticate header\n * with realm=\"org\".\n * Propagates to all API modules.\n */\n setOrgAuthHandler(handler: OrgAuthHandler | undefined) {\n // Propagate to all API modules\n Object.values(this.apis).forEach((api) => {\n if (typeof api.setOrgAuthHandler === 'function') {\n api.setOrgAuthHandler(handler);\n }\n });\n }\n\n /**\n * Update the API key across all modules.\n * Used after successful re-authentication.\n */\n updateApiKey(newApiKey: string) {\n Object.values(this.apis).forEach((api) => {\n if (typeof api.updateApiKey === 'function') {\n api.updateApiKey(newApiKey);\n }\n });\n }\n\n /**\n * Set the acting member UUID for member identity switching.\n * When set, all API requests will include the X-Acting-Member header.\n * The backend will validate that the authenticated account owns this member\n * and use it as the effective identity for the request.\n * Propagates to all API modules.\n */\n setActingMember(memberUuid: string | undefined) {\n Object.values(this.apis).forEach((api) => {\n if (typeof api.setActingMember === 'function') {\n api.setActingMember(memberUuid);\n }\n });\n }\n\n /**\n * Get the current acting member UUID.\n * Returns undefined if no member switch is active.\n */\n getActingMember(): string | undefined {\n // Get from the first API module that has this method\n for (const api of Object.values(this.apis)) {\n if (typeof api.getActingMember === 'function') {\n return api.getActingMember();\n }\n }\n return undefined;\n }\n}\n\n/**\n * ApiClient extends GravityRailClient with admin/superuser methods.\n *\n * This is the full-featured client used internally. For the public SDK,\n * use {@link GravityRailClient} which excludes admin functionality.\n */\nexport class ApiClient extends GravityRailClient implements AdminBindings {\n // Admin API\n getAccounts!: AdminBindings['getAccounts'];\n getAccountDetails!: AdminBindings['getAccountDetails'];\n getAccountByUuid!: AdminBindings['getAccountByUuid'];\n getAccountMemberships!: AdminBindings['getAccountMemberships'];\n getAccountOrgMemberships!: AdminBindings['getAccountOrgMemberships'];\n createAccountOrgMembership!: AdminBindings['createAccountOrgMembership'];\n deleteAccountOrgMembership!: AdminBindings['deleteAccountOrgMembership'];\n getAccountMembership!: AdminBindings['getAccountMembership'];\n updateAccountMembership!: AdminBindings['updateAccountMembership'];\n createAccountMembership!: AdminBindings['createAccountMembership'];\n deleteAccountMembership!: AdminBindings['deleteAccountMembership'];\n updateAccountAsAdmin!: AdminBindings['updateAccountAsAdmin'];\n createAccountAsAdmin!: AdminBindings['createAccountAsAdmin'];\n deleteAccountAsAdmin!: AdminBindings['deleteAccountAsAdmin'];\n lookupAccount!: AdminBindings['lookupAccount'];\n getOrganizations!: AdminBindings['getOrganizations'];\n getOrganization!: AdminBindings['getOrganization'];\n createOrganization!: AdminBindings['createOrganization'];\n updateOrganization!: AdminBindings['updateOrganization'];\n deleteOrganization!: AdminBindings['deleteOrganization'];\n joinOrganization!: AdminBindings['joinOrganization'];\n leaveOrganization!: AdminBindings['leaveOrganization'];\n generateLogoUploadUrl!: AdminBindings['generateLogoUploadUrl'];\n importProducts!: AdminBindings['importProducts'];\n createProductAsAdmin!: AdminBindings['createProductAsAdmin'];\n getProductsAsAdmin!: AdminBindings['getProductsAsAdmin'];\n getProductAsAdmin!: AdminBindings['getProductAsAdmin'];\n updateProductAsAdmin!: AdminBindings['updateProductAsAdmin'];\n deleteProductAsAdmin!: AdminBindings['deleteProductAsAdmin'];\n getWorkspacesAsAdmin!: AdminBindings['getWorkspacesAsAdmin'];\n getWorkspaceAsAdmin!: AdminBindings['getWorkspaceAsAdmin'];\n getWorkspaceByNumericIdAsAdmin!: AdminBindings['getWorkspaceByNumericIdAsAdmin'];\n createWorkspaceAsAdmin!: AdminBindings['createWorkspaceAsAdmin'];\n updateWorkspaceAsAdmin!: AdminBindings['updateWorkspaceAsAdmin'];\n deleteWorkspaceAsAdmin!: AdminBindings['deleteWorkspaceAsAdmin'];\n createSchemaAsAdmin!: AdminBindings['createSchemaAsAdmin'];\n migrateSchemaAsAdmin!: AdminBindings['migrateSchemaAsAdmin'];\n provisionWorkspaceAsAdmin!: AdminBindings['provisionWorkspaceAsAdmin'];\n refreshProvisionStatusAsAdmin!: AdminBindings['refreshProvisionStatusAsAdmin'];\n enableMaintenanceMode!: AdminBindings['enableMaintenanceMode'];\n disableMaintenanceMode!: AdminBindings['disableMaintenanceMode'];\n getWorkspaceHealth!: AdminBindings['getWorkspaceHealth'];\n provisionPlanFeatures!: AdminBindings['provisionPlanFeatures'];\n mergeMembers!: AdminBindings['mergeMembers'];\n getAdminWorkspaceMember!: AdminBindings['getAdminWorkspaceMember'];\n createAdminWorkspaceMember!: AdminBindings['createAdminWorkspaceMember'];\n updateAdminWorkspaceMember!: AdminBindings['updateAdminWorkspaceMember'];\n getAdminWorkspaceMemberRoles!: AdminBindings['getAdminWorkspaceMemberRoles'];\n getMissingMemberships!: AdminBindings['getMissingMemberships'];\n linkMissingMembership!: AdminBindings['linkMissingMembership'];\n createPhoneNumberMapping!: AdminBindings['createPhoneNumberMapping'];\n deletePhoneNumberMapping!: AdminBindings['deletePhoneNumberMapping'];\n getPhoneNumberMappings!: AdminBindings['getPhoneNumberMappings'];\n getPhoneNumberMapping!: AdminBindings['getPhoneNumberMapping'];\n createAdminPhoneNumberMapping!: AdminBindings['createAdminPhoneNumberMapping'];\n deleteAdminPhoneNumberMapping!: AdminBindings['deleteAdminPhoneNumberMapping'];\n getAvailableWorkspacesForPhone!: AdminBindings['getAvailableWorkspacesForPhone'];\n remapPhoneNumber!: AdminBindings['remapPhoneNumber'];\n getUnmappedPhoneNumbers!: AdminBindings['getUnmappedPhoneNumbers'];\n getWorkspaceUnmappedPhoneNumbers!: AdminBindings['getWorkspaceUnmappedPhoneNumbers'];\n getWorkspacePhoneNumbersAsAdmin!: AdminBindings['getWorkspacePhoneNumbersAsAdmin'];\n getProviderPhoneNumbers!: AdminBindings['getProviderPhoneNumbers'];\n getProviderPhoneNumber!: AdminBindings['getProviderPhoneNumber'];\n updatePhoneNumberStatus!: AdminBindings['updatePhoneNumberStatus'];\n syncPhoneNumbersFromProviders!: AdminBindings['syncPhoneNumbersFromProviders'];\n approvePhoneNumberRequest!: AdminBindings['approvePhoneNumberRequest'];\n rejectPhoneNumberRequest!: AdminBindings['rejectPhoneNumberRequest'];\n startBulkPhoneClassification!: AdminBindings['startBulkPhoneClassification'];\n getSiteMappings!: AdminBindings['getSiteMappings'];\n getSiteMapping!: AdminBindings['getSiteMapping'];\n updateSiteMapping!: AdminBindings['updateSiteMapping'];\n updateSiteMappingWorkspace!: AdminBindings['updateSiteMappingWorkspace'];\n adminDeleteSiteMapping!: AdminBindings['adminDeleteSiteMapping'];\n createSiteMapping!: AdminBindings['createSiteMapping'];\n createOrUpdateSiteMapping!: AdminBindings['createOrUpdateSiteMapping'];\n deleteSiteMapping!: AdminBindings['deleteSiteMapping'];\n getInboxMappings!: AdminBindings['getInboxMappings'];\n getInboxMapping!: AdminBindings['getInboxMapping'];\n updateInboxMapping!: AdminBindings['updateInboxMapping'];\n deleteAdminInboxMapping!: AdminBindings['deleteAdminInboxMapping'];\n generateChatSummaries!: AdminBindings['generateChatSummaries'];\n executeQuery!: AdminBindings['executeQuery'];\n triggerPeriodicJob!: AdminBindings['triggerPeriodicJob'];\n listAllThemes!: AdminBindings['listAllThemes'];\n startBulkTOSAcceptance!: AdminBindings['startBulkTOSAcceptance'];\n startTokenUsageBackfill!: AdminBindings['startTokenUsageBackfill'];\n updateChatMessage!: AdminBindings['updateChatMessage'];\n getStripeCustomer!: AdminBindings['getStripeCustomer'];\n createStripeCustomer!: AdminBindings['createStripeCustomer'];\n updateStripeCustomer!: AdminBindings['updateStripeCustomer'];\n getStripeSubscriptions!: AdminBindings['getStripeSubscriptions'];\n createStripeSubscription!: AdminBindings['createStripeSubscription'];\n updateStripeSubscription!: AdminBindings['updateStripeSubscription'];\n cancelStripeSubscription!: AdminBindings['cancelStripeSubscription'];\n provisionWorkspaceForSubscription!: AdminBindings['provisionWorkspaceForSubscription'];\n associateWorkspaceWithSubscription!: AdminBindings['associateWorkspaceWithSubscription'];\n createSubscriptionPaymentLink!: AdminBindings['createSubscriptionPaymentLink'];\n createSetupIntent!: AdminBindings['createSetupIntent'];\n getStripePaymentMethods!: AdminBindings['getStripePaymentMethods'];\n attachStripePaymentMethod!: AdminBindings['attachStripePaymentMethod'];\n detachStripePaymentMethod!: AdminBindings['detachStripePaymentMethod'];\n setDefaultStripePaymentMethod!: AdminBindings['setDefaultStripePaymentMethod'];\n previewWorkspaceOrganizationChange!: AdminBindings['previewWorkspaceOrganizationChange'];\n changeWorkspaceOrganization!: AdminBindings['changeWorkspaceOrganization'];\n createStripeInvoice!: AdminBindings['createStripeInvoice'];\n getStripeInvoices!: AdminBindings['getStripeInvoices'];\n getStripeUpcomingInvoice!: AdminBindings['getStripeUpcomingInvoice'];\n getWorkspaceBillingDashboard!: AdminBindings['getWorkspaceBillingDashboard'];\n syncWorkspaceUsageToStripe!: AdminBindings['syncWorkspaceUsageToStripe'];\n compareProductsWithStripe!: AdminBindings['compareProductsWithStripe'];\n syncProductToStripe!: AdminBindings['syncProductToStripe'];\n searchStripeProducts!: AdminBindings['searchStripeProducts'];\n getUsageReport!: AdminBindings['getUsageReport'];\n getSubscriptionsAsAdmin!: AdminBindings['getSubscriptionsAsAdmin'];\n getVoiceMetrics!: AdminBindings['getVoiceMetrics'];\n getHealthMetrics!: AdminBindings['getHealthMetrics'];\n\n constructor(apiKey: string | undefined, baseUrl: string, customFetch?: typeof fetch) {\n super(apiKey, baseUrl, customFetch);\n bindAdminMethods(this, this.apis.admin);\n }\n}\n","/**\n * Chat type constants for frontend use.\n *\n * These constants mirror the backend ChatType enum in lib/constants.py\n * and should be kept in sync.\n */\n\n/**\n * Available chat types in the system.\n *\n * @property ASSIGNMENT - Standard workflow-based chats with DB assistants\n * @property MANAGER - Workspace management chats using builtin manager assistant\n * @property CONTRIBUTOR - Contributor input chats using builtin contributor assistant\n * @property DEVELOPER - Developer/debugging chats using builtin developer assistant\n * @property AGENT - Agent response generation from DM/email/SMS/voice triggers\n */\nexport const CHAT_TYPES = {\n ASSIGNMENT: 'assignment',\n MANAGER: 'manager',\n CONTRIBUTOR: 'contributor',\n DEVELOPER: 'developer',\n AGENT: 'agent',\n DM: 'dm',\n} as const;\n\n/**\n * Type for valid chat type values.\n */\nexport type ChatType = (typeof CHAT_TYPES)[keyof typeof CHAT_TYPES];\n\n/**\n * Chat types that use builtin (virtual) assistants instead of DB assistants.\n * These chat types don't have an assistant record in the database.\n */\nexport const BUILTIN_ASSISTANT_CHAT_TYPES = new Set<ChatType>([\n CHAT_TYPES.MANAGER,\n CHAT_TYPES.CONTRIBUTOR,\n CHAT_TYPES.DEVELOPER,\n]);\n\n/**\n * Chat types that don't require assistant participant records.\n * Includes builtin assistant types plus DM chats.\n */\nexport const NO_ASSISTANT_PARTICIPANT_CHAT_TYPES = new Set<ChatType>([\n ...BUILTIN_ASSISTANT_CHAT_TYPES,\n CHAT_TYPES.DM,\n]);\n\n/**\n * Check if a chat type uses a builtin assistant.\n *\n * @param chatType - The chat type to check\n * @returns true if the chat type uses a builtin assistant\n */\nexport function usesBuiltinAssistant(chatType: string): boolean {\n return BUILTIN_ASSISTANT_CHAT_TYPES.has(chatType as ChatType);\n}\n\n/**\n * Check if a chat type requires an assistant participant record.\n *\n * @param chatType - The chat type to check\n * @returns true if the chat type requires an assistant participant record\n */\nexport function requiresAssistantParticipant(chatType: string): boolean {\n return !NO_ASSISTANT_PARTICIPANT_CHAT_TYPES.has(chatType as ChatType);\n}\n\n/**\n * Type guard to check if a string is a valid ChatType.\n *\n * @param value - The value to check\n * @returns true if the value is a valid ChatType\n */\nexport function isChatType(value: string): value is ChatType {\n return Object.values(CHAT_TYPES).includes(value as ChatType);\n}\n","/**\n * CLI configuration for remote environments\n */\n\nexport interface EnvironmentConfig {\n apiUrl: string;\n frontendUrl: string;\n}\n\nexport const ENVIRONMENTS: Record<string, EnvironmentConfig> = {\n dev: {\n apiUrl: 'http://localhost:5050',\n frontendUrl: 'http://localhost:3000',\n },\n prod: {\n apiUrl: 'https://api.gravityrail.com',\n frontendUrl: 'https://app.gravityrail.com',\n },\n staging: {\n apiUrl: 'https://api.gr-staging.com',\n frontendUrl: 'https://staging.gravityrail.com',\n },\n};\n\nexport const CALLBACK_PORT = 31337;\nexport const CALLBACK_PATH = '/oauth/callback';\nexport const REDIRECT_URI = `http://localhost:${CALLBACK_PORT}${CALLBACK_PATH}`;\n\nexport function getEnvironmentConfig(env: string): EnvironmentConfig {\n const config = ENVIRONMENTS[env];\n if (!config) {\n throw new Error(`Invalid environment: ${env}. Use 'dev', 'staging', or 'prod'.`);\n }\n\n // Allow env var overrides (used by code interpreter sandboxes)\n const apiUrl = process.env.GRAVITY_RAIL_API_URL || config.apiUrl;\n const frontendUrl = process.env.GRAVITY_RAIL_FRONTEND_URL || config.frontendUrl;\n if (apiUrl !== config.apiUrl || frontendUrl !== config.frontendUrl) {\n return { apiUrl, frontendUrl };\n }\n\n return config;\n}\n","/**\n * CLI OAuth2 authentication utilities\n *\n * Provides OAuth2 with PKCE flow for CLI tools, including:\n * - Credential caching (per environment)\n * - Dynamic client registration\n * - Token refresh\n * - Browser-based authorization\n */\n\nimport { createServer } from 'http';\nimport { createHash, randomBytes } from 'crypto';\nimport { readFileSync, writeFileSync, existsSync, mkdirSync, chmodSync, unlinkSync } from 'fs';\nimport { join } from 'path';\nimport { exec } from 'child_process';\nimport { EnvironmentConfig, CALLBACK_PORT, CALLBACK_PATH, REDIRECT_URI } from './config';\n\nexport interface CLICredentials {\n clientId: string;\n clientSecret: string;\n accessToken?: string;\n refreshToken?: string;\n expiresAt?: string;\n}\n\nexport interface AuthResult {\n accessToken: string;\n credentials?: CLICredentials;\n}\n\n/**\n * Manages CLI credentials storage (flat format, one file per environment)\n */\nexport class CredentialsManager {\n private cacheDir: string;\n\n constructor(rootDir: string) {\n this.cacheDir = join(rootDir, '.gr-cli');\n }\n\n private getCredentialsPath(env: string): string {\n return join(this.cacheDir, `credentials-${env}.json`);\n }\n\n load(env: string): CLICredentials | null {\n const credsPath = this.getCredentialsPath(env);\n if (!existsSync(credsPath)) {\n return null;\n }\n\n try {\n const raw = JSON.parse(readFileSync(credsPath, 'utf-8'));\n\n let creds: CLICredentials;\n if (raw.clientId !== undefined) {\n creds = raw;\n } else if (raw.default) {\n // Migrate from old org-namespaced format to flat\n creds = raw.default;\n this.save(env, creds);\n } else {\n return null;\n }\n\n // Check if access token is expired\n if (creds.expiresAt) {\n const expiresAt = new Date(creds.expiresAt);\n if (expiresAt <= new Date()) {\n if (creds.refreshToken) {\n return creds;\n }\n return null;\n }\n }\n\n return creds;\n } catch {\n return null;\n }\n }\n\n save(env: string, creds: CLICredentials): void {\n if (!existsSync(this.cacheDir)) {\n mkdirSync(this.cacheDir, { recursive: true });\n }\n const credsPath = this.getCredentialsPath(env);\n writeFileSync(credsPath, JSON.stringify(creds, null, 2));\n try {\n chmodSync(credsPath, 0o600);\n } catch {\n // Ignore permission errors on Windows\n }\n }\n\n clear(env: string): void {\n const credsPath = this.getCredentialsPath(env);\n if (!existsSync(credsPath)) {\n return;\n }\n try {\n unlinkSync(credsPath);\n } catch {\n // Ignore\n }\n }\n\n getCacheDir(): string {\n return this.cacheDir;\n }\n}\n\nfunction stderr(msg: string): void {\n process.stderr.write(msg + '\\n');\n}\n\n/**\n * Generate PKCE code verifier and challenge\n */\nexport function generatePKCE(): { codeVerifier: string; codeChallenge: string } {\n const codeVerifier = randomBytes(64).toString('base64url').slice(0, 128);\n const codeChallenge = createHash('sha256').update(codeVerifier).digest('base64url');\n return { codeVerifier, codeChallenge };\n}\n\n/**\n * Open a URL in the default browser\n */\nexport function openBrowser(url: string): void {\n const platform = process.platform;\n let cmd: string;\n if (platform === 'darwin') {\n cmd = `open \"${url}\"`;\n } else if (platform === 'win32') {\n cmd = `start \"\" \"${url}\"`;\n } else {\n cmd = `xdg-open \"${url}\"`;\n }\n\n exec(cmd, (err) => {\n if (err) {\n stderr(' Could not open browser automatically.');\n }\n });\n}\n\n/**\n * Start a local HTTP server to receive the OAuth callback\n */\nexport function startCallbackServer(): Promise<{ code: string; state: string }> {\n return new Promise((resolve, reject) => {\n let authCode: string | null = null;\n let error: string | null = null;\n let receivedState: string | null = null;\n\n const server = createServer((req, res) => {\n const url = new URL(req.url!, `http://localhost:${CALLBACK_PORT}`);\n\n if (url.pathname !== CALLBACK_PATH) {\n res.writeHead(404);\n res.end('Not found');\n return;\n }\n\n if (url.searchParams.has('error')) {\n error = url.searchParams.get('error');\n const errorDesc = url.searchParams.get('error_description') || 'Unknown error';\n res.writeHead(200, { 'Content-Type': 'text/html' });\n res.end(`\n <html>\n <head><title>Authorization Failed</title></head>\n <body style=\"font-family: system-ui; text-align: center; padding: 50px;\">\n <h1 style=\"color: #dc2626;\">Authorization Failed</h1>\n <p>${errorDesc}</p>\n <p>You can close this window.</p>\n </body>\n </html>\n `);\n server.close();\n reject(new Error(`Authorization failed: ${error}`));\n } else if (url.searchParams.has('code')) {\n authCode = url.searchParams.get('code')!;\n receivedState = url.searchParams.get('state')!;\n res.writeHead(200, { 'Content-Type': 'text/html' });\n res.end(`\n <html>\n <head><title>Authorization Successful</title></head>\n <body style=\"font-family: system-ui; text-align: center; padding: 50px;\">\n <h1 style=\"color: #16a34a;\">Authorization Successful!</h1>\n <p>You can close this window and return to the terminal.</p>\n <script>setTimeout(() => window.close(), 2000);</script>\n </body>\n </html>\n `);\n server.close();\n resolve({ code: authCode, state: receivedState });\n } else {\n res.writeHead(400);\n res.end('Missing code parameter');\n }\n });\n\n server.listen(CALLBACK_PORT, 'localhost', () => {\n // Server started\n });\n\n // Timeout after 5 minutes (unref so it doesn't keep the process alive)\n const timeout = setTimeout(\n () => {\n if (!authCode && !error) {\n server.close();\n reject(new Error('Authorization timeout - no response received'));\n }\n },\n 5 * 60 * 1000\n );\n timeout.unref();\n });\n}\n\n/**\n * Register a new OAuth client dynamically\n */\nasync function dynamicClientRegistration(\n envConfig: EnvironmentConfig,\n clientName: string = 'Gravity CLI'\n): Promise<{ client_id: string; client_secret: string }> {\n stderr(' Registering OAuth client...');\n\n const registrationUrl = `${envConfig.apiUrl}/api/v2/oauth/register`;\n\n const registrationData = {\n client_name: clientName,\n redirect_uris: [REDIRECT_URI],\n grant_types: ['authorization_code', 'refresh_token'],\n response_types: ['code'],\n token_endpoint_auth_method: 'client_secret_basic',\n scope: 'workspace:admin',\n };\n\n const response = await fetch(registrationUrl, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify(registrationData),\n });\n\n if (!response.ok) {\n throw new Error(`Client registration failed: ${response.status} - ${await response.text()}`);\n }\n\n return response.json();\n}\n\nexport interface OAuthFlowOptions {\n env: string;\n envConfig: EnvironmentConfig;\n credentialsManager: CredentialsManager;\n clientName?: string;\n}\n\n/**\n * Perform the full OAuth2 browser-based flow with PKCE.\n *\n * This always opens the browser for authorization. It never returns a cached\n * token — that's the job of createAuthenticatedContext. The only thing reused\n * is the registered OAuth client ID (which is identity, not auth).\n */\nexport async function performOAuthFlow(options: OAuthFlowOptions): Promise<AuthResult> {\n const { env, envConfig, credentialsManager, clientName = 'Gravity CLI' } = options;\n\n // Reuse registered client credentials if available, otherwise register\n let creds = credentialsManager.load(env);\n if (!creds || !creds.clientId) {\n const registration = await dynamicClientRegistration(envConfig, clientName);\n creds = {\n clientId: registration.client_id,\n clientSecret: registration.client_secret,\n };\n credentialsManager.save(env, creds);\n } else {\n stderr(' Using cached client credentials');\n }\n\n const { codeVerifier, codeChallenge } = generatePKCE();\n const state = randomBytes(32).toString('base64url');\n\n const authParams = new URLSearchParams({\n response_type: 'code',\n client_id: creds.clientId,\n redirect_uri: REDIRECT_URI,\n scope: 'workspace:admin',\n state: state,\n code_challenge: codeChallenge,\n code_challenge_method: 'S256',\n });\n\n const authUrl = `${envConfig.apiUrl}/api/v2/oauth/authorize?${authParams}`;\n\n const callbackPromise = startCallbackServer();\n\n stderr('\\n Opening browser for authorization...');\n stderr(` If browser doesn't open, visit:\\n ${authUrl}\\n`);\n openBrowser(authUrl);\n\n stderr(' Waiting for authorization (timeout: 5 minutes)...');\n const { code, state: receivedState } = await callbackPromise;\n\n if (receivedState !== state) {\n throw new Error('State mismatch - possible CSRF attack');\n }\n\n stderr(' Authorization code received!');\n stderr(' Exchanging code for tokens...');\n\n const tokenUrl = `${envConfig.apiUrl}/api/v2/oauth/token`;\n const authHeader = Buffer.from(`${creds.clientId}:${creds.clientSecret}`).toString('base64');\n\n const tokenResponse = await fetch(tokenUrl, {\n method: 'POST',\n headers: {\n Authorization: `Basic ${authHeader}`,\n 'Content-Type': 'application/x-www-form-urlencoded',\n },\n body: new URLSearchParams({\n grant_type: 'authorization_code',\n code: code,\n redirect_uri: REDIRECT_URI,\n code_verifier: codeVerifier,\n }),\n });\n\n if (!tokenResponse.ok) {\n throw new Error(\n `Token exchange failed: ${tokenResponse.status} - ${await tokenResponse.text()}`\n );\n }\n\n const tokenData = await tokenResponse.json();\n\n const accessToken = tokenData.access_token as string;\n creds.accessToken = accessToken;\n creds.refreshToken = tokenData.refresh_token;\n creds.expiresAt = new Date(Date.now() + (tokenData.expires_in || 86400) * 1000).toISOString();\n\n credentialsManager.save(env, creds);\n stderr(' Authentication successful!');\n\n return { accessToken, credentials: creds };\n}\n","/**\n * CLI terminal UI utilities\n *\n * Provides interactive terminal UI components for CLI tools\n */\n\nimport * as readline from 'readline';\n\nexport interface SelectOption<T> {\n item: T;\n label: string;\n detail?: string;\n}\n\nexport interface SelectFromListOptions<T> {\n title?: string;\n labelFn?: (item: T) => string;\n detailFn?: (item: T) => string | null;\n env?: string;\n emptyMessage?: string;\n allowNew?: boolean;\n newLabel?: string;\n}\n\nexport interface SelectResult<T> {\n item: T | null;\n isNew: boolean;\n}\n\nconst NEW_ITEM_MARKER = Symbol('NEW_ITEM');\n\n/**\n * Interactive list picker using arrow keys\n */\nexport async function selectFromList<T>(\n items: T[],\n options: SelectFromListOptions<T> = {}\n): Promise<SelectResult<T>> {\n const {\n title = 'Select an item',\n labelFn = (item: T) => String((item as any).name || (item as any).title || item),\n detailFn = null,\n env = null,\n emptyMessage = 'No items found.',\n allowNew = false,\n newLabel = 'Create new...',\n } = options;\n\n if ((!items || items.length === 0) && !allowNew) {\n console.log(`\\n ${emptyMessage}`);\n return { item: null, isNew: false };\n }\n\n // Prepend \"Create new\" option if allowed\n const displayItems: (T | typeof NEW_ITEM_MARKER)[] = allowNew\n ? [NEW_ITEM_MARKER, ...items]\n : items;\n\n return new Promise((resolve) => {\n let selectedIndex = allowNew ? 1 : 0;\n let filterText = '';\n\n const getFilteredItems = (): (T | typeof NEW_ITEM_MARKER)[] => {\n if (!filterText) return displayItems;\n const lower = filterText.toLowerCase();\n return displayItems.filter((item) => {\n if (item === NEW_ITEM_MARKER) return true;\n const label = labelFn(item);\n return label.toLowerCase().includes(lower);\n });\n };\n\n const render = (): void => {\n const filtered = getFilteredItems();\n\n // Clear screen and move cursor to top\n process.stdout.write('\\x1B[2J\\x1B[H');\n\n console.log('='.repeat(60));\n console.log(`${title} (↑/↓ to move, Enter to select, Esc to cancel)`);\n console.log('='.repeat(60));\n if (env) {\n console.log(`Environment: ${env}`);\n }\n console.log(`Filter: ${filterText}${filterText ? '' : '(type to filter)'}`);\n console.log('');\n\n if (filtered.length === 0) {\n console.log(` ${emptyMessage}`);\n console.log('');\n return;\n }\n\n // Show up to 15 items around the selected one\n const maxVisible = 15;\n let startIdx = Math.max(0, selectedIndex - Math.floor(maxVisible / 2));\n let endIdx = Math.min(filtered.length, startIdx + maxVisible);\n if (endIdx - startIdx < maxVisible && startIdx > 0) {\n startIdx = Math.max(0, endIdx - maxVisible);\n }\n\n if (startIdx > 0) {\n console.log(` ... ${startIdx} more above ...`);\n }\n\n for (let i = startIdx; i < endIdx; i++) {\n const item = filtered[i]!;\n const prefix = i === selectedIndex ? '> ' : ' ';\n\n let line: string;\n if (item === NEW_ITEM_MARKER) {\n line = `\\x1B[32m${newLabel}\\x1B[0m`; // Green color for \"Create new\"\n } else {\n const typedItem = item as T;\n line = labelFn(typedItem);\n if (detailFn) {\n const detail = detailFn(typedItem);\n if (detail) {\n line = `${line} \\x1B[90m${detail}\\x1B[0m`;\n }\n }\n }\n\n if (i === selectedIndex) {\n console.log(`\\x1B[7m${prefix}${line}\\x1B[0m`);\n } else {\n console.log(`${prefix}${line}`);\n }\n }\n\n if (endIdx < filtered.length) {\n console.log(` ... ${filtered.length - endIdx} more below ...`);\n }\n\n console.log('');\n console.log(` ${filtered.length} item(s)`);\n };\n\n // Set up raw mode for arrow key input\n readline.emitKeypressEvents(process.stdin);\n if (process.stdin.isTTY) {\n process.stdin.setRawMode(true);\n }\n\n render();\n\n const handleKeypress = (str: string | undefined, key: readline.Key): void => {\n const filtered = getFilteredItems();\n\n if (key.name === 'up') {\n selectedIndex = Math.max(0, selectedIndex - 1);\n render();\n } else if (key.name === 'down') {\n selectedIndex = Math.min(filtered.length - 1, selectedIndex + 1);\n render();\n } else if (key.name === 'return') {\n cleanup();\n if (filtered.length > 0 && selectedIndex < filtered.length) {\n const selected = filtered[selectedIndex]!;\n if (selected === NEW_ITEM_MARKER) {\n resolve({ item: null, isNew: true });\n } else {\n resolve({ item: selected as T, isNew: false });\n }\n } else {\n resolve({ item: null, isNew: false });\n }\n } else if (key.name === 'escape' || (key.ctrl && key.name === 'c')) {\n cleanup();\n resolve({ item: null, isNew: false });\n } else if (key.name === 'backspace') {\n filterText = filterText.slice(0, -1);\n selectedIndex = allowNew ? 0 : 0;\n render();\n } else if (str && str.length === 1 && !key.ctrl && !key.meta) {\n filterText += str;\n selectedIndex = allowNew ? 0 : 0;\n render();\n }\n };\n\n const cleanup = (): void => {\n process.stdin.removeListener('keypress', handleKeypress);\n if (process.stdin.isTTY) {\n process.stdin.setRawMode(false);\n }\n process.stdin.pause();\n process.stdout.write('\\x1B[2J\\x1B[H');\n };\n\n process.stdin.on('keypress', handleKeypress);\n process.stdin.resume();\n });\n}\n\n/**\n * Print a table of items\n */\nexport function printTable<T>(\n items: T[],\n columns: Array<{\n header: string;\n getValue: (item: T) => string;\n maxWidth?: number;\n }>,\n options: { title?: string; env?: string } = {}\n): void {\n if (!items || items.length === 0) {\n console.log('\\nNo items found.');\n return;\n }\n\n if (options.title) {\n console.log(`\\n=== ${options.title} ===`);\n }\n if (options.env) {\n console.log(`Environment: ${options.env}`);\n }\n console.log('');\n\n // Calculate column widths\n const widths = columns.map((col) => {\n const maxContent = Math.max(...items.map((item) => String(col.getValue(item) ?? '').length));\n const width = Math.max(col.header.length, maxContent);\n return col.maxWidth ? Math.min(width, col.maxWidth) : width;\n });\n\n // Print header\n const headerLine = columns.map((col, i) => col.header.padEnd(widths[i]!)).join(' ');\n console.log(headerLine);\n console.log(widths.map((w) => '-'.repeat(w)).join(' '));\n\n // Print rows\n for (const item of items) {\n const row = columns\n .map((col, i) => {\n const value = String(col.getValue(item) ?? '');\n const width = widths[i]!;\n return value.slice(0, width).padEnd(width);\n })\n .join(' ');\n console.log(row);\n }\n\n console.log('');\n console.log(`Total: ${items.length} item(s)`);\n}\n\n/**\n * Format a timestamp for display\n */\nexport function formatTimestamp(isoString: string | null | undefined): string {\n if (!isoString) return '';\n const date = new Date(isoString);\n const now = new Date();\n const diff = now.getTime() - date.getTime();\n\n if (diff < 60000) return 'just now';\n if (diff < 3600000) return `${Math.floor(diff / 60000)}m ago`;\n if (diff < 86400000) return `${Math.floor(diff / 3600000)}h ago`;\n if (diff < 604800000) return `${Math.floor(diff / 86400000)}d ago`;\n\n return date.toLocaleDateString();\n}\n\n/**\n * Wrap text to a maximum width\n */\nexport function wrapText(text: string, width: number = 70): string[] {\n const words = text.split(' ');\n const lines: string[] = [];\n let currentLine = '';\n\n for (const word of words) {\n if (currentLine.length + word.length + 1 <= width) {\n currentLine += (currentLine ? ' ' : '') + word;\n } else {\n if (currentLine) lines.push(currentLine);\n currentLine = word;\n }\n }\n if (currentLine) lines.push(currentLine);\n return lines;\n}\n\n/**\n * Print a chat message with formatting\n */\nexport function printMessage(\n content: string,\n role: 'user' | 'assistant' | 'system',\n indent: string = ' '\n): void {\n const roleColors: Record<string, string> = {\n user: '\\x1B[34m', // Blue\n assistant: '\\x1B[32m', // Green\n system: '\\x1B[90m', // Gray\n };\n const resetColor = '\\x1B[0m';\n const color = roleColors[role] || resetColor;\n\n const label = role === 'user' ? 'You' : role === 'assistant' ? 'Assistant' : 'System';\n console.log(`${indent}${color}[${label}]${resetColor}`);\n\n const lines = content.split('\\n');\n for (const line of lines) {\n const wrapped = wrapText(line, 70);\n for (const wrappedLine of wrapped) {\n console.log(`${indent} ${wrappedLine}`);\n }\n }\n console.log('');\n}\n\n/**\n * Clear the terminal screen\n */\nexport function clearScreen(): void {\n process.stdout.write('\\x1B[2J\\x1B[H');\n}\n","export class CLIError extends Error {\n constructor(\n message: string,\n public exitCode: number = 1\n ) {\n super(message);\n this.name = 'CLIError';\n }\n}\n\nexport class AuthRequiredError extends CLIError {\n constructor(message = 'Not authenticated. Run `gr login` or set GRAVITY_RAIL_API_KEY.') {\n super(message, 2);\n this.name = 'AuthRequiredError';\n }\n}\n\nexport function handleError(err: unknown): never {\n if (err instanceof CLIError) {\n process.stderr.write(`Error: ${err.message}\\n`);\n process.exit(err.exitCode);\n }\n const message = err instanceof Error ? err.message : String(err);\n process.stderr.write(`Error: ${message}\\n`);\n process.exit(1);\n}\n","import type { ArgDef, ParsedArgs } from './types';\nimport { CLIError } from './errors';\n\n/** Standard pagination args used by admin list commands */\nexport const PAGINATION_ARGS: ArgDef[] = [\n { name: 'search', description: 'Search by name' },\n { name: 'page', description: 'Page number' },\n { name: 'page-size', description: 'Page size' },\n];\n\n/** Common args automatically available to all commands */\nconst COMMON_ARGS: ArgDef[] = [\n { name: 'workspace', alias: 'w', description: 'Workspace UUID' },\n { name: 'data', alias: 'd', description: 'JSON data string' },\n { name: 'file', alias: 'f', description: 'Path to JSON file' },\n { name: 'id', description: 'Entity ID' },\n { name: 'uuid', description: 'Entity UUID' },\n];\n\nexport function parseArgs(defs: ArgDef[], argv: string[]): ParsedArgs {\n const allDefs = [...COMMON_ARGS, ...defs];\n const result: ParsedArgs = {};\n\n // Apply defaults\n for (const def of allDefs) {\n if (def.default !== undefined) {\n result[def.name] = def.default;\n }\n }\n\n for (let i = 0; i < argv.length; i++) {\n const arg = argv[i]!;\n const def = findDef(allDefs, arg);\n if (!def) {\n // Skip unknown args silently (they may be global opts already consumed)\n continue;\n }\n if (def.isFlag) {\n result[def.name] = true;\n } else {\n const value = argv[++i];\n if (value === undefined) {\n throw new CLIError(`Missing value for --${def.name}`);\n }\n result[def.name] = value;\n }\n }\n\n // Validate required\n for (const def of allDefs) {\n if (def.required && result[def.name] === undefined) {\n throw new CLIError(`Missing required argument: --${def.name}`);\n }\n }\n\n return result;\n}\n\nfunction findDef(defs: ArgDef[], arg: string): ArgDef | undefined {\n for (const def of defs) {\n if (arg === `--${def.name}`) return def;\n if (def.alias && arg === `-${def.alias}`) return def;\n }\n return undefined;\n}\n","import { printTable } from '@gravity-rail/client/cli';\n\nexport type OutputFormat = 'json' | 'jsonl' | 'table';\n\nexport interface OutputOptions {\n outputFormat: OutputFormat;\n}\n\nexport interface TableColumn<T> {\n header: string;\n getValue: (item: T) => string;\n maxWidth?: number;\n}\n\n/** Detect default output format based on whether stdout is a TTY */\nexport function detectOutputFormat(explicit?: string): OutputFormat {\n if (explicit) return explicit as OutputFormat;\n return process.stdout.isTTY ? 'table' : 'json';\n}\n\n/** Unwrap paginated API responses: { items: [...] } → [...] */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction unwrapItems(data: unknown): any[] {\n if (Array.isArray(data)) return data;\n if (\n data &&\n typeof data === 'object' &&\n 'items' in data &&\n Array.isArray((data as Record<string, unknown>).items)\n ) {\n return (data as Record<string, unknown>).items as unknown[];\n }\n return [data];\n}\n\n/** Write a list of items to stdout in the requested format.\n * Accepts raw arrays, paginated responses ({ items: [...] }), or any object. */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function outputData(data: unknown, opts: OutputOptions, columns?: TableColumn<any>[]): void {\n switch (opts.outputFormat) {\n case 'json':\n process.stdout.write(JSON.stringify(data, null, 2) + '\\n');\n break;\n case 'jsonl':\n for (const item of unwrapItems(data)) {\n process.stdout.write(JSON.stringify(item) + '\\n');\n }\n break;\n case 'table':\n if (columns) {\n printTable(unwrapItems(data), columns);\n } else {\n process.stdout.write(JSON.stringify(data, null, 2) + '\\n');\n }\n break;\n }\n}\n\n/** Write a single object to stdout in the requested format */\nexport function outputSingle<T>(data: T, opts: OutputOptions, columns?: TableColumn<T>[]): void {\n switch (opts.outputFormat) {\n case 'json':\n process.stdout.write(JSON.stringify(data, null, 2) + '\\n');\n break;\n case 'jsonl':\n process.stdout.write(JSON.stringify(data) + '\\n');\n break;\n case 'table':\n if (columns) {\n printTable([data], columns);\n } else {\n process.stdout.write(JSON.stringify(data, null, 2) + '\\n');\n }\n break;\n }\n}\n\n/** Common column factory helpers for domain files */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const COL = {\n id: (): TableColumn<any> => ({ header: 'ID', getValue: (item) => String(item.id ?? '') }),\n uuid: (): TableColumn<any> => ({ header: 'UUID', getValue: (item) => item.uuid ?? '' }),\n name: (): TableColumn<any> => ({ header: 'NAME', getValue: (item) => item.name ?? '' }),\n status: (): TableColumn<any> => ({ header: 'STATUS', getValue: (item) => item.status ?? '' }),\n created: (): TableColumn<any> => ({\n header: 'CREATED',\n getValue: (item) => item.created_at ?? '',\n }),\n updated: (): TableColumn<any> => ({\n header: 'UPDATED',\n getValue: (item) => item.updated_at ?? '',\n }),\n description: (): TableColumn<any> => ({\n header: 'DESCRIPTION',\n getValue: (item) => item.description ?? '',\n }),\n enabled: (): TableColumn<any> => ({\n header: 'ENABLED',\n getValue: (item) => String(item.enabled ?? ''),\n }),\n};\n\n/** Write a status/progress message to stderr (never pollutes stdout) */\nexport function stderr(msg: string): void {\n process.stderr.write(msg + '\\n');\n}\n","import { ApiClient } from '@gravity-rail/client';\nimport {\n CredentialsManager,\n getEnvironmentConfig,\n type EnvironmentConfig,\n} from '@gravity-rail/client/cli';\nimport { homedir } from 'os';\nimport { AuthRequiredError } from './errors';\nimport { detectOutputFormat, type OutputFormat } from './output';\n\nexport interface GlobalOptions {\n env: string;\n outputFormat?: string;\n verbose?: boolean;\n allowWrite?: boolean;\n}\n\nexport interface PublicGlobalOptions {\n apiUrl?: string;\n frontendUrl?: string;\n outputFormat?: string;\n verbose?: boolean;\n allowWrite?: boolean;\n}\n\nexport interface CommandContext {\n env: string;\n envConfig: EnvironmentConfig;\n outputFormat: OutputFormat;\n verbose: boolean;\n allowWrite: boolean;\n credentialsManager: CredentialsManager;\n}\n\nexport interface AuthenticatedContext extends CommandContext {\n accessToken: string;\n apiClient: ApiClient;\n}\n\n/** Create a base command context (no auth required) */\nexport function createContext(opts: GlobalOptions): CommandContext {\n const envConfig = getEnvironmentConfig(opts.env);\n const credentialsManager = new CredentialsManager(homedir());\n return {\n env: opts.env,\n envConfig,\n outputFormat: detectOutputFormat(opts.outputFormat),\n verbose: opts.verbose ?? false,\n allowWrite: opts.allowWrite ?? false,\n credentialsManager,\n };\n}\n\n/** Create an authenticated command context. Tries env var, then cached token. Never auto-triggers OAuth. */\nexport async function createAuthenticatedContext(\n opts: GlobalOptions\n): Promise<AuthenticatedContext> {\n const ctx = createContext(opts);\n\n // Try GRAVITY_RAIL_API_KEY first\n const apiKey = process.env.GRAVITY_RAIL_API_KEY;\n if (apiKey) {\n const apiClient = new ApiClient(apiKey, ctx.envConfig.apiUrl);\n return { ...ctx, accessToken: apiKey, apiClient };\n }\n\n // Try cached credentials (from `gr login`)\n const creds = ctx.credentialsManager.load(ctx.env);\n if (creds?.accessToken) {\n const buffer = 5 * 60 * 1000;\n const notExpired =\n !creds.expiresAt || new Date(creds.expiresAt) > new Date(Date.now() + buffer);\n if (notExpired) {\n const apiClient = new ApiClient(creds.accessToken, ctx.envConfig.apiUrl);\n return { ...ctx, accessToken: creds.accessToken, apiClient };\n }\n }\n\n throw new AuthRequiredError();\n}\n\n/** Create a base command context for the public CLI (no --env flag, defaults to prod) */\nexport function createPublicContext(opts: PublicGlobalOptions): CommandContext {\n const apiUrl = opts.apiUrl || process.env.GRAVITY_RAIL_API_URL || 'https://api.gravityrail.com';\n const frontendUrl =\n opts.frontendUrl || process.env.GRAVITY_RAIL_FRONTEND_URL || 'https://app.gravityrail.com';\n const envConfig: EnvironmentConfig = { apiUrl, frontendUrl };\n const credentialsManager = new CredentialsManager(homedir());\n return {\n env: 'prod',\n envConfig,\n outputFormat: detectOutputFormat(opts.outputFormat),\n verbose: opts.verbose ?? false,\n allowWrite: opts.allowWrite ?? false,\n credentialsManager,\n };\n}\n\n/** Create an authenticated context for the public CLI. Tries env var, then cached token. */\nexport async function createPublicAuthenticatedContext(\n opts: PublicGlobalOptions\n): Promise<AuthenticatedContext> {\n const ctx = createPublicContext(opts);\n\n const apiKey = process.env.GRAVITY_RAIL_API_KEY;\n if (apiKey) {\n const apiClient = new ApiClient(apiKey, ctx.envConfig.apiUrl);\n return { ...ctx, accessToken: apiKey, apiClient };\n }\n\n const creds = ctx.credentialsManager.load(ctx.env);\n if (creds?.accessToken) {\n const buffer = 5 * 60 * 1000;\n const notExpired =\n !creds.expiresAt || new Date(creds.expiresAt) > new Date(Date.now() + buffer);\n if (notExpired) {\n const apiClient = new ApiClient(creds.accessToken, ctx.envConfig.apiUrl);\n return { ...ctx, accessToken: creds.accessToken, apiClient };\n }\n }\n\n throw new AuthRequiredError();\n}\n","import { readFileSync } from 'fs';\nimport type { ParsedArgs } from './types';\nimport { CLIError } from './errors';\n\n/** Read JSON input from --data string, --file path, or stdin (if piped) */\nexport async function readJsonInput(args: ParsedArgs): Promise<unknown | undefined> {\n const dataStr = args.data as string | undefined;\n const filePath = args.file as string | undefined;\n\n if (dataStr) {\n try {\n return JSON.parse(dataStr);\n } catch {\n throw new CLIError('Invalid JSON in --data argument');\n }\n }\n\n if (filePath) {\n try {\n const content = readFileSync(filePath, 'utf-8');\n return JSON.parse(content);\n } catch (err) {\n if (err instanceof SyntaxError) {\n throw new CLIError(`Invalid JSON in file: ${filePath}`);\n }\n throw new CLIError(`Cannot read file: ${filePath}`);\n }\n }\n\n // Read from stdin if piped\n if (!process.stdin.isTTY) {\n return readStdin();\n }\n\n return undefined;\n}\n\nfunction readStdin(): Promise<unknown> {\n return new Promise((resolve, reject) => {\n let data = '';\n process.stdin.setEncoding('utf-8');\n process.stdin.on('data', (chunk: string) => {\n data += chunk;\n });\n process.stdin.on('end', () => {\n if (!data.trim()) {\n resolve(undefined);\n return;\n }\n try {\n resolve(JSON.parse(data));\n } catch {\n reject(new CLIError('Invalid JSON from stdin'));\n }\n });\n process.stdin.on('error', (err: Error) => {\n reject(new CLIError(`Error reading stdin: ${err.message}`));\n });\n });\n}\n","import type { CommandDef, DomainDef } from './types';\n\nexport class CommandRegistry {\n private commands = new Map<string, CommandDef>();\n private domains: DomainDef[] = [];\n\n register(domain: DomainDef): void {\n this.domains.push(domain);\n for (const cmd of domain.commands) {\n const key = cmd.path.join(' ');\n this.commands.set(key, cmd);\n }\n }\n\n registerCommand(cmd: CommandDef): void {\n const key = cmd.path.join(' ');\n this.commands.set(key, cmd);\n }\n\n /** Resolve command words to a CommandDef using longest-match */\n resolve(words: string[]): { cmd: CommandDef; rest: string[] } | undefined {\n // Try 3-word, then 2-word, then 1-word match\n for (let len = Math.min(words.length, 3); len >= 1; len--) {\n const key = words.slice(0, len).join(' ');\n const cmd = this.commands.get(key);\n if (cmd) {\n return { cmd, rest: words.slice(len) };\n }\n }\n return undefined;\n }\n\n /** Generate help text. If prefix given, show commands under that prefix. */\n getHelp(prefix?: string[]): string {\n if (!prefix || prefix.length === 0) {\n return this.getTopLevelHelp();\n }\n\n const prefixStr = prefix.join(' ');\n const matching: CommandDef[] = [];\n for (const [key, cmd] of this.commands) {\n if (key.startsWith(prefixStr + ' ') || key === prefixStr) {\n matching.push(cmd);\n }\n }\n\n if (matching.length === 0) {\n return `No commands found for: ${prefixStr}`;\n }\n\n const lines = [`Usage: gr ${prefixStr} <command> [options]\\n`, 'Commands:'];\n for (const cmd of matching.sort((a, b) => a.path.join(' ').localeCompare(b.path.join(' ')))) {\n const subPath = cmd.path.slice(prefix.length).join(' ') || cmd.path[cmd.path.length - 1]!;\n lines.push(` ${subPath.padEnd(28)} ${cmd.description}`);\n }\n return lines.join('\\n') + '\\n';\n }\n\n private getTopLevelHelp(): string {\n const lines = ['Usage: gr <command> [options]\\n', 'Commands:'];\n\n // Group by domain\n const seen = new Set<string>();\n for (const domain of this.domains) {\n if (!seen.has(domain.name)) {\n seen.add(domain.name);\n lines.push(` ${domain.name.padEnd(28)} ${domain.description}`);\n }\n }\n\n // Add standalone commands (not in any domain)\n for (const [, cmd] of this.commands) {\n const topWord = cmd.path[0]!;\n if (!seen.has(topWord) && cmd.path.length === 1) {\n seen.add(topWord);\n lines.push(` ${topWord.padEnd(28)} ${cmd.description}`);\n }\n }\n\n lines.push(\n '',\n 'Global Options:',\n ' --env <env> Environment: dev, staging, prod (default: dev)',\n ' -o, --output-format <fmt> Output format: json, jsonl, table (default: auto)',\n ' -v, --verbose Verbose output to stderr',\n ' --help Show help',\n ' --version Show version'\n );\n\n return lines.join('\\n') + '\\n';\n }\n}\n","import type { AuthenticatedContext } from './context';\nimport type { TableColumn } from './output';\n\nexport interface ArgDef {\n name: string;\n alias?: string;\n description: string;\n required?: boolean;\n isFlag?: boolean;\n default?: string | boolean;\n}\n\nexport type ParsedArgs = Record<string, string | boolean | undefined>;\n\nexport interface CommandHandlerContext {\n ctx: AuthenticatedContext;\n args: ParsedArgs;\n workspace: string;\n data?: unknown;\n}\n\nexport interface CommandDef<T = unknown> {\n path: string[];\n description: string;\n args?: ArgDef[];\n requiresWorkspace?: boolean;\n requiresAuth?: boolean;\n /** Whether this command mutates data. Requires --allow-write to execute. */\n mutates?: boolean;\n columns?: TableColumn<T>[];\n handler: (hctx: CommandHandlerContext) => Promise<void>;\n}\n\nexport interface DomainDef {\n name: string;\n description: string;\n commands: CommandDef[];\n}\n\n/** Extract a required string arg, throwing if missing or not a string */\nexport function requireString(args: ParsedArgs, key: string): string {\n const val = args[key];\n if (typeof val !== 'string') throw new Error(`Missing required argument: --${key}`);\n return val;\n}\n\n/** Extract a required numeric arg, throwing if missing */\nexport function requireNumber(args: ParsedArgs, key: string): number {\n const val = args[key];\n if (typeof val !== 'string') throw new Error(`Missing required argument: --${key}`);\n const num = Number(val);\n if (isNaN(num)) throw new Error(`Argument --${key} must be a number`);\n return num;\n}\n","import type { ArgDef, CommandDef, CommandHandlerContext } from './types';\nimport type { TableColumn } from './output';\nimport { outputData, outputSingle } from './output';\nimport { CLIError } from './errors';\n\nexport interface CrudConfig<T = unknown> {\n prefix: string[];\n entityName: string;\n listMethod?: string;\n getMethod?: string;\n createMethod?: string;\n updateMethod?: string;\n deleteMethod?: string;\n archiveMethod?: string;\n unarchiveMethod?: string;\n columns?: TableColumn<T>[];\n requiresWorkspace?: boolean;\n listArgs?: ArgDef[];\n extra?: CommandDef[];\n}\n\nexport function crudCommands<T>(config: CrudConfig<T>): CommandDef[] {\n const {\n prefix,\n entityName,\n columns,\n requiresWorkspace = true,\n listArgs = [],\n extra = [],\n } = config;\n\n const cmds: CommandDef[] = [];\n\n if (config.listMethod) {\n cmds.push({\n path: [...prefix, 'list'],\n description: `List ${entityName}s`,\n args: listArgs,\n requiresWorkspace,\n columns: columns as TableColumn<unknown>[] | undefined,\n handler: async (hctx: CommandHandlerContext) => {\n const result =\n listArgs.length > 0\n ? await callApiWithOptions(\n hctx,\n config.listMethod!,\n requiresWorkspace,\n buildListOptions(hctx, listArgs)\n )\n : await callApi(hctx, config.listMethod!, requiresWorkspace);\n const items = unwrapItems(result);\n outputData(items, hctx.ctx, columns as TableColumn<T>[] | undefined);\n },\n });\n }\n\n if (config.getMethod) {\n cmds.push({\n path: [...prefix, 'get'],\n description: `Get a ${entityName} by ID`,\n args: [{ name: 'id', description: `${entityName} ID`, required: true }],\n requiresWorkspace,\n columns: columns as TableColumn<unknown>[] | undefined,\n handler: async (hctx: CommandHandlerContext) => {\n const id = resolveId(hctx);\n const result = await callApiWithId(hctx, config.getMethod!, id, requiresWorkspace);\n outputSingle(result as T, hctx.ctx, columns as TableColumn<T>[] | undefined);\n },\n });\n }\n\n if (config.createMethod) {\n cmds.push({\n path: [...prefix, 'create'],\n description: `Create a ${entityName}`,\n mutates: true,\n requiresWorkspace,\n handler: async (hctx: CommandHandlerContext) => {\n if (!hctx.data) throw new CLIError('JSON data required (--data, --file, or stdin)');\n const result = await callApiWithData(hctx, config.createMethod!, requiresWorkspace);\n outputSingle(result as T, hctx.ctx, columns as TableColumn<T>[] | undefined);\n },\n });\n }\n\n if (config.updateMethod) {\n cmds.push({\n path: [...prefix, 'update'],\n description: `Update a ${entityName}`,\n mutates: true,\n args: [{ name: 'id', description: `${entityName} ID`, required: true }],\n requiresWorkspace,\n handler: async (hctx: CommandHandlerContext) => {\n if (!hctx.data) throw new CLIError('JSON data required (--data, --file, or stdin)');\n const id = resolveId(hctx);\n const result = await callApiWithIdAndData(\n hctx,\n config.updateMethod!,\n id,\n requiresWorkspace\n );\n outputSingle(result as T, hctx.ctx, columns as TableColumn<T>[] | undefined);\n },\n });\n }\n\n if (config.deleteMethod) {\n cmds.push({\n path: [...prefix, 'delete'],\n description: `Delete a ${entityName}`,\n mutates: true,\n args: [{ name: 'id', description: `${entityName} ID`, required: true }],\n requiresWorkspace,\n handler: async (hctx: CommandHandlerContext) => {\n const id = resolveId(hctx);\n await callApiWithId(hctx, config.deleteMethod!, id, requiresWorkspace);\n process.stdout.write(`Deleted ${entityName} ${id}\\n`);\n },\n });\n }\n\n if (config.archiveMethod) {\n cmds.push({\n path: [...prefix, 'archive'],\n description: `Archive a ${entityName}`,\n mutates: true,\n args: [{ name: 'id', description: `${entityName} ID`, required: true }],\n requiresWorkspace,\n handler: async (hctx: CommandHandlerContext) => {\n const id = resolveId(hctx);\n const result = await callApiWithId(hctx, config.archiveMethod!, id, requiresWorkspace);\n outputSingle(result as T, hctx.ctx, columns as TableColumn<T>[] | undefined);\n },\n });\n }\n\n if (config.unarchiveMethod) {\n cmds.push({\n path: [...prefix, 'unarchive'],\n description: `Unarchive a ${entityName}`,\n mutates: true,\n args: [{ name: 'id', description: `${entityName} ID`, required: true }],\n requiresWorkspace,\n handler: async (hctx: CommandHandlerContext) => {\n const id = resolveId(hctx);\n const result = await callApiWithId(\n hctx,\n config.unarchiveMethod!,\n id,\n requiresWorkspace\n );\n outputSingle(result as T, hctx.ctx, columns as TableColumn<T>[] | undefined);\n },\n });\n }\n\n return [...cmds, ...extra];\n}\n\nfunction resolveId(hctx: CommandHandlerContext): string {\n const id = (hctx.args.id ?? hctx.args.uuid) as string | undefined;\n if (!id) throw new CLIError('--id is required');\n return id;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction api(hctx: CommandHandlerContext): any {\n return hctx.ctx.apiClient;\n}\n\nasync function callApi(\n hctx: CommandHandlerContext,\n method: string,\n requiresWorkspace: boolean\n): Promise<unknown> {\n const fn = api(hctx)[method];\n if (!fn) throw new CLIError(`API method not found: ${method}`);\n return requiresWorkspace ? fn.call(api(hctx), hctx.workspace) : fn.call(api(hctx));\n}\n\nasync function callApiWithId(\n hctx: CommandHandlerContext,\n method: string,\n id: string,\n requiresWorkspace: boolean\n): Promise<unknown> {\n const fn = api(hctx)[method];\n if (!fn) throw new CLIError(`API method not found: ${method}`);\n return requiresWorkspace ? fn.call(api(hctx), hctx.workspace, id) : fn.call(api(hctx), id);\n}\n\nasync function callApiWithData(\n hctx: CommandHandlerContext,\n method: string,\n requiresWorkspace: boolean\n): Promise<unknown> {\n const fn = api(hctx)[method];\n if (!fn) throw new CLIError(`API method not found: ${method}`);\n return requiresWorkspace\n ? fn.call(api(hctx), hctx.workspace, hctx.data)\n : fn.call(api(hctx), hctx.data);\n}\n\nasync function callApiWithIdAndData(\n hctx: CommandHandlerContext,\n method: string,\n id: string,\n requiresWorkspace: boolean\n): Promise<unknown> {\n const fn = api(hctx)[method];\n if (!fn) throw new CLIError(`API method not found: ${method}`);\n return requiresWorkspace\n ? fn.call(api(hctx), hctx.workspace, id, hctx.data)\n : fn.call(api(hctx), id, hctx.data);\n}\n\n/** Unwrap paginated API responses: { items: [...] } → [...] */\nfunction unwrapItems(result: unknown): unknown[] {\n if (Array.isArray(result)) return result;\n if (\n result &&\n typeof result === 'object' &&\n 'items' in result &&\n Array.isArray((result as any).items)\n ) {\n return (result as any).items;\n }\n // Fallback: return as single-element array so outputData doesn't crash\n return [result];\n}\n\nfunction buildListOptions(\n hctx: CommandHandlerContext,\n listArgs: ArgDef[]\n): Record<string, unknown> {\n const opts: Record<string, unknown> = {};\n for (const arg of listArgs) {\n const key = arg.name.replace(/-([a-z])/g, (_, c: string) => c.toUpperCase());\n const val = hctx.args[arg.name];\n if (val !== undefined) {\n if (key === 'page' || key === 'pageSize') {\n const num = Number(val);\n if (isNaN(num) || num < 1)\n throw new CLIError(`--${arg.name} must be a positive integer`);\n if (key === 'pageSize' && num > 100)\n throw new CLIError(`--${arg.name} must be at most 100 (API limit)`);\n opts[key] = num;\n } else {\n opts[key] = val;\n }\n }\n }\n return opts;\n}\n\nasync function callApiWithOptions(\n hctx: CommandHandlerContext,\n method: string,\n requiresWorkspace: boolean,\n opts: Record<string, unknown>\n): Promise<unknown> {\n const fn = api(hctx)[method];\n if (!fn) throw new CLIError(`API method not found: ${method}`);\n return requiresWorkspace ? fn.call(api(hctx), hctx.workspace, opts) : fn.call(api(hctx), opts);\n}\n","import type { DomainDef } from '../lib/types';\nimport { requireNumber } from '../lib/types';\nimport type { TableColumn } from '../lib/output';\nimport { crudCommands } from '../lib/crud';\nimport { outputData, outputSingle, COL } from '../lib/output';\n\nconst COLUMNS: TableColumn<unknown>[] = [\n COL.id(),\n COL.uuid(),\n COL.name(),\n COL.status(),\n {\n header: 'WORKFLOW',\n getValue: (item: any) => item.workflow_name ?? String(item.workflow_id ?? ''),\n },\n COL.created(),\n];\n\nexport const tasksDomain: DomainDef = {\n name: 'tasks',\n description: 'Manage tasks',\n commands: [\n ...crudCommands({\n prefix: ['tasks'],\n entityName: 'task',\n listMethod: 'getTasks',\n getMethod: 'getTask',\n createMethod: 'createTask',\n updateMethod: 'updateTask',\n deleteMethod: 'deleteTask',\n archiveMethod: 'archiveTask',\n unarchiveMethod: 'unarchiveTask',\n columns: COLUMNS,\n }),\n {\n path: ['tasks', 'clone'],\n description: 'Clone a task',\n mutates: true,\n requiresWorkspace: true,\n args: [{ name: 'id', description: 'Task ID', required: true }],\n handler: async ({ ctx, workspace, args, data }) => {\n const result = await ctx.apiClient.cloneTask(\n workspace,\n requireNumber(args, 'id'),\n (data as any)?.name ?? '',\n (data as any)?.slug\n );\n outputSingle(result, ctx, COLUMNS);\n },\n },\n {\n path: ['tasks', 'convert-to-abilities'],\n description: 'Convert a task to abilities',\n requiresWorkspace: true,\n args: [{ name: 'id', description: 'Task ID', required: true }],\n handler: async ({ ctx, workspace, args }) => {\n const result = await ctx.apiClient.convertTaskToAbilities(\n workspace,\n requireNumber(args, 'id')\n );\n outputSingle(result, ctx);\n },\n },\n {\n path: ['tasks', 'ability-types'],\n description: 'List available ability types',\n requiresWorkspace: true,\n handler: async ({ ctx, workspace }) => {\n const result = await ctx.apiClient.getAbilityTypes(workspace);\n outputData(result, ctx);\n },\n },\n ],\n};\n","import { type DomainDef, requireNumber } from '../lib/types';\nimport type { TableColumn } from '../lib/output';\nimport { crudCommands } from '../lib/crud';\nimport { outputData, outputSingle, COL } from '../lib/output';\n\nconst COLUMNS: TableColumn<unknown>[] = [\n COL.id(),\n COL.uuid(),\n { header: 'MEMBER', getValue: (item: any) => item.member_name ?? String(item.member_id ?? '') },\n COL.status(),\n { header: 'CHANNEL', getValue: (item: any) => item.channel ?? '' },\n COL.created(),\n];\n\nconst LABEL_COLUMNS: TableColumn<unknown>[] = [\n COL.id(),\n COL.uuid(),\n COL.name(),\n { header: 'COLOR', getValue: (item: any) => item.color ?? '' },\n];\n\nconst FILTER_COLUMNS: TableColumn<unknown>[] = [COL.id(), COL.uuid(), COL.name()];\n\nconst MESSAGE_COLUMNS: TableColumn<unknown>[] = [\n COL.id(),\n { header: 'ROLE', getValue: (item: any) => item.role ?? '' },\n {\n header: 'CONTENT',\n getValue: (item: any) => String(item.content ?? '').slice(0, 80),\n maxWidth: 80,\n },\n COL.created(),\n];\n\nexport const chatsDomain: DomainDef = {\n name: 'chats',\n description: 'Manage chats',\n commands: [\n ...crudCommands({\n prefix: ['chats'],\n entityName: 'chat',\n listMethod: 'getChats',\n getMethod: 'getChat',\n createMethod: 'createChat',\n updateMethod: 'updateChat',\n deleteMethod: 'deleteChat',\n archiveMethod: 'archiveChat',\n unarchiveMethod: 'unarchiveChat',\n columns: COLUMNS,\n }),\n // Messages\n {\n path: ['chats', 'messages'],\n description: 'Get messages for a chat',\n requiresWorkspace: true,\n args: [{ name: 'id', description: 'Chat ID', required: true }],\n handler: async ({ ctx, workspace, args }) => {\n const result = await ctx.apiClient.getChatMessages(\n workspace,\n requireNumber(args, 'id')\n );\n outputData(result, ctx, MESSAGE_COLUMNS);\n },\n },\n {\n path: ['chats', 'send-message'],\n description: 'Send an assistant message to a chat',\n mutates: true,\n requiresWorkspace: true,\n args: [{ name: 'id', description: 'Chat ID', required: true }],\n handler: async ({ ctx, workspace, args, data }) => {\n const result = await ctx.apiClient.sendAssistantMessage(\n workspace,\n requireNumber(args, 'id'),\n data as any\n );\n outputSingle(result, ctx, MESSAGE_COLUMNS);\n },\n },\n // Summarize\n {\n path: ['chats', 'summarize'],\n description: 'Summarize a chat',\n requiresWorkspace: true,\n args: [{ name: 'id', description: 'Chat ID', required: true }],\n handler: async ({ ctx, workspace, args }) => {\n const result = await ctx.apiClient.summarizeChat(workspace, requireNumber(args, 'id'));\n outputSingle(result, ctx);\n },\n },\n // Export\n {\n path: ['chats', 'export'],\n description: 'Export a single chat',\n requiresWorkspace: true,\n args: [{ name: 'id', description: 'Chat ID', required: true }],\n handler: async ({ ctx, workspace, args }) => {\n const result = await ctx.apiClient.exportChat(workspace, requireNumber(args, 'id'));\n outputSingle(result, ctx);\n },\n },\n {\n path: ['chats', 'export-all'],\n description: 'Export all chats',\n requiresWorkspace: true,\n handler: async ({ ctx, workspace }) => {\n const result = await ctx.apiClient.exportChats(workspace);\n outputData(result, ctx);\n },\n },\n // Token usage\n {\n path: ['chats', 'token-usage'],\n description: 'Get token usage for a chat',\n requiresWorkspace: true,\n args: [{ name: 'id', description: 'Chat ID', required: true }],\n handler: async ({ ctx, workspace, args }) => {\n const result = await ctx.apiClient.getChatTokenUsage(\n workspace,\n requireNumber(args, 'id')\n );\n outputSingle(result, ctx);\n },\n },\n // Needs response\n {\n path: ['chats', 'needs-response'],\n description: 'List chats that need a response',\n requiresWorkspace: true,\n handler: async ({ ctx, workspace }) => {\n const result = await ctx.apiClient.getChatsNeedsResponse(workspace);\n outputData(result, ctx, COLUMNS);\n },\n },\n // Chat Labels CRUD\n ...crudCommands({\n prefix: ['chats', 'labels'],\n entityName: 'chat label',\n listMethod: 'getChatLabels',\n getMethod: 'getChatLabel',\n createMethod: 'createChatLabel',\n updateMethod: 'updateChatLabel',\n deleteMethod: 'deleteChatLabel',\n columns: LABEL_COLUMNS,\n }),\n // Chat Filters CRUD\n ...crudCommands({\n prefix: ['chats', 'filters'],\n entityName: 'chat filter',\n listMethod: 'getChatFilters',\n getMethod: 'getChatFilter',\n createMethod: 'createChatFilter',\n updateMethod: 'updateChatFilter',\n deleteMethod: 'deleteChatFilter',\n columns: FILTER_COLUMNS,\n }),\n ],\n};\n","import type { DomainDef } from '../lib/types';\nimport type { TableColumn } from '../lib/output';\nimport { crudCommands } from '../lib/crud';\nimport { outputData, outputSingle, COL } from '../lib/output';\n\nconst COLUMNS: TableColumn<unknown>[] = [\n COL.id(),\n COL.uuid(),\n COL.name(),\n { header: 'ROLE', getValue: (item: any) => item.role ?? '' },\n COL.status(),\n COL.created(),\n];\n\nconst LABEL_COLUMNS: TableColumn<unknown>[] = [\n COL.id(),\n COL.uuid(),\n COL.name(),\n { header: 'COLOR', getValue: (item: any) => item.color ?? '' },\n];\n\nconst FILTER_COLUMNS: TableColumn<unknown>[] = [COL.id(), COL.uuid(), COL.name()];\n\nconst FIELD_COLUMNS: TableColumn<unknown>[] = [\n COL.id(),\n COL.name(),\n { header: 'TYPE', getValue: (item: any) => item.field_type ?? '' },\n { header: 'REQUIRED', getValue: (item: any) => String(item.required ?? false) },\n];\n\nconst ROLE_COLUMNS: TableColumn<unknown>[] = [COL.id(), COL.uuid(), COL.name()];\n\nexport const membersDomain: DomainDef = {\n name: 'members',\n description: 'Manage members',\n commands: [\n ...crudCommands({\n prefix: ['members'],\n entityName: 'member',\n listMethod: 'getWorkspaceMembers',\n getMethod: 'getWorkspaceMember',\n createMethod: 'createWorkspaceMember',\n updateMethod: 'updateMember',\n deleteMethod: 'deleteMember',\n archiveMethod: 'archiveMember',\n unarchiveMethod: 'unarchiveMember',\n columns: COLUMNS,\n }),\n // Current member\n {\n path: ['members', 'me'],\n description: 'Get the current member',\n requiresWorkspace: true,\n handler: async ({ ctx, workspace }) => {\n const result = await ctx.apiClient.getCurrentMember(workspace);\n outputSingle(result, ctx, COLUMNS);\n },\n },\n // Import/Export\n {\n path: ['members', 'import'],\n description: 'Import members from data',\n mutates: true,\n requiresWorkspace: true,\n handler: async ({ ctx, workspace, data }) => {\n const result = await (ctx.apiClient as any).importMembers(workspace, data);\n outputSingle(result, ctx);\n },\n },\n {\n path: ['members', 'export'],\n description: 'Export members',\n requiresWorkspace: true,\n handler: async ({ ctx, workspace }) => {\n const result = await (ctx.apiClient as any).exportMembers(workspace);\n outputData(result, ctx);\n },\n },\n // Member Labels CRUD\n ...crudCommands({\n prefix: ['members', 'labels'],\n entityName: 'member label',\n listMethod: 'getMemberLabels',\n getMethod: 'getMemberLabel',\n createMethod: 'createMemberLabel',\n updateMethod: 'updateMemberLabel',\n deleteMethod: 'deleteMemberLabel',\n columns: LABEL_COLUMNS,\n }),\n // Member Filters CRUD\n ...crudCommands({\n prefix: ['members', 'filters'],\n entityName: 'member filter',\n listMethod: 'getMemberFilters',\n getMethod: 'getMemberFilter',\n createMethod: 'createMemberFilter',\n updateMethod: 'updateMemberFilter',\n deleteMethod: 'deleteMemberFilter',\n columns: FILTER_COLUMNS,\n }),\n // Member Fields CRUD\n ...crudCommands({\n prefix: ['members', 'fields'],\n entityName: 'member field',\n listMethod: 'getMemberFields',\n createMethod: 'createMemberField',\n updateMethod: 'updateMemberField',\n deleteMethod: 'deleteMemberField',\n columns: FIELD_COLUMNS,\n }),\n // Member Roles CRUD\n ...crudCommands({\n prefix: ['members', 'roles'],\n entityName: 'member role',\n listMethod: 'getMemberRoles',\n getMethod: 'getMemberRole',\n createMethod: 'createMemberRole',\n updateMethod: 'updateMemberRole',\n deleteMethod: 'deleteMemberRole',\n columns: ROLE_COLUMNS,\n }),\n ],\n};\n","import type { DomainDef } from '../lib/types';\nimport { requireNumber } from '../lib/types';\nimport type { TableColumn } from '../lib/output';\nimport { crudCommands } from '../lib/crud';\nimport { outputData, outputSingle, COL } from '../lib/output';\n\nconst COLUMNS: TableColumn<unknown>[] = [\n COL.id(),\n COL.uuid(),\n COL.name(),\n { header: 'SLUG', getValue: (item: any) => item.slug ?? '' },\n COL.status(),\n COL.created(),\n];\n\nconst PRODUCT_COLUMNS: TableColumn<unknown>[] = [COL.id(), COL.uuid(), COL.name(), COL.status()];\n\nconst INVITATION_COLUMNS: TableColumn<unknown>[] = [\n COL.id(),\n { header: 'EMAIL', getValue: (item: any) => item.email ?? '' },\n COL.status(),\n COL.created(),\n];\n\nconst NOTIFICATION_COLUMNS: TableColumn<unknown>[] = [\n COL.id(),\n { header: 'TYPE', getValue: (item: any) => item.type ?? '' },\n { header: 'READ', getValue: (item: any) => String(item.read ?? false) },\n COL.created(),\n];\n\nconst FEATURE_COLUMNS: TableColumn<unknown>[] = [\n { header: 'SLUG', getValue: (item: any) => item.slug ?? '' },\n COL.name(),\n { header: 'CATEGORY', getValue: (item: any) => item.category ?? '' },\n];\n\nconst SCOPE_COLUMNS: TableColumn<unknown>[] = [\n COL.name(),\n { header: 'CATEGORY', getValue: (item: any) => item.category ?? '' },\n COL.description(),\n];\n\nconst THEME_COLUMNS: TableColumn<unknown>[] = [\n { header: 'SLUG', getValue: (item: any) => item.slug ?? '' },\n COL.name(),\n COL.description(),\n];\n\nconst DM_COLUMNS: TableColumn<unknown>[] = [\n { header: 'ID', getValue: (item: any) => String(item.id ?? '') },\n {\n header: 'PARTICIPANTS',\n getValue: (item: any) => (item.participants ?? []).map((p: any) => p.name).join(', '),\n maxWidth: 40,\n },\n {\n header: 'SUMMARY',\n getValue: (item: any) => String(item.summary ?? '').slice(0, 60),\n maxWidth: 60,\n },\n { header: 'UPDATED', getValue: (item: any) => item.updatedAt ?? '' },\n];\n\nconst MESSAGE_COLUMNS: TableColumn<unknown>[] = [\n COL.id(),\n { header: 'ROLE', getValue: (item: any) => item.role ?? '' },\n {\n header: 'CONTENT',\n getValue: (item: any) => String(item.content ?? '').slice(0, 80),\n maxWidth: 80,\n },\n COL.created(),\n];\n\nexport const workspacesDomain: DomainDef = {\n name: 'workspaces',\n description: 'Manage workspaces',\n commands: [\n // List workspaces (no workspace required)\n ...crudCommands({\n prefix: ['workspaces'],\n entityName: 'workspace',\n listMethod: 'getWorkspaces',\n getMethod: 'getWorkspace',\n createMethod: 'createWorkspace',\n updateMethod: 'updateWorkspace',\n deleteMethod: 'deleteWorkspace',\n columns: COLUMNS,\n requiresWorkspace: false,\n }),\n // Defaults\n {\n path: ['workspaces', 'defaults'],\n description: 'Get workspace defaults',\n requiresWorkspace: true,\n handler: async ({ ctx, workspace }) => {\n const result = await ctx.apiClient.getWorkspaceDefaults(workspace);\n outputSingle(result, ctx);\n },\n },\n {\n path: ['workspaces', 'update-defaults'],\n description: 'Update workspace defaults',\n mutates: true,\n requiresWorkspace: true,\n handler: async ({ ctx, workspace, data }) => {\n const result = await ctx.apiClient.updateWorkspaceDefaults(workspace, data as any);\n outputSingle(result, ctx);\n },\n },\n // Counts\n {\n path: ['workspaces', 'counts'],\n description: 'Get workspace entity counts',\n requiresWorkspace: true,\n handler: async ({ ctx, workspace }) => {\n const result = await ctx.apiClient.getWorkspaceCounts(workspace);\n outputSingle(result, ctx);\n },\n },\n // Export/Import\n {\n path: ['workspaces', 'export'],\n description: 'Export workspace configuration',\n requiresWorkspace: true,\n handler: async ({ ctx, workspace }) => {\n const result = await ctx.apiClient.exportWorkspace(workspace);\n outputSingle(result, ctx);\n },\n },\n {\n path: ['workspaces', 'import'],\n description: 'Import workspace configuration',\n mutates: true,\n requiresWorkspace: true,\n handler: async ({ ctx, workspace, data }) => {\n const result = await (ctx.apiClient as any).importWorkspace(workspace, data);\n outputSingle(result, ctx);\n },\n },\n {\n path: ['workspaces', 'preview-import'],\n description: 'Preview workspace import',\n requiresWorkspace: true,\n handler: async ({ ctx, workspace, data }) => {\n const result = await ctx.apiClient.previewImportWorkspace(workspace, data as any);\n outputSingle(result, ctx);\n },\n },\n // Features\n {\n path: ['workspaces', 'features'],\n description: 'List available workspace features',\n requiresWorkspace: false,\n handler: async ({ ctx }) => {\n const result = await ctx.apiClient.getAvailableWorkspaceFeatures();\n outputData(result, ctx, FEATURE_COLUMNS);\n },\n },\n // Scopes\n {\n path: ['workspaces', 'scopes'],\n description: 'List workspace scopes',\n requiresWorkspace: false,\n handler: async ({ ctx }) => {\n const result = await ctx.apiClient.getWorkspaceScopes();\n const scopes = (result as any).scopes ?? result;\n outputData(scopes, ctx, SCOPE_COLUMNS);\n },\n },\n // Products CRUD\n ...crudCommands({\n prefix: ['workspaces', 'products'],\n entityName: 'product',\n listMethod: 'getProducts',\n getMethod: 'getProduct',\n createMethod: 'createProduct',\n updateMethod: 'updateProduct',\n deleteMethod: 'deleteProduct',\n columns: PRODUCT_COLUMNS,\n }),\n // Invitations\n ...crudCommands({\n prefix: ['workspaces', 'invitations'],\n entityName: 'invitation',\n listMethod: 'listWorkspaceInvitations',\n getMethod: 'getWorkspaceInvitation',\n deleteMethod: 'deleteWorkspaceInvitation',\n columns: INVITATION_COLUMNS,\n }),\n {\n path: ['workspaces', 'invitations', 'invite'],\n description: 'Invite a user to the workspace',\n mutates: true,\n requiresWorkspace: true,\n handler: async ({ ctx, workspace, data }) => {\n const result = await (ctx.apiClient as any).inviteToWorkspace(workspace, data);\n outputSingle(result, ctx, INVITATION_COLUMNS);\n },\n },\n // Notifications\n ...crudCommands({\n prefix: ['workspaces', 'notifications'],\n entityName: 'notification',\n listMethod: 'getNotifications',\n getMethod: 'getNotification',\n columns: NOTIFICATION_COLUMNS,\n }),\n {\n path: ['workspaces', 'notifications', 'mark-read'],\n description: 'Mark a notification as read',\n mutates: true,\n requiresWorkspace: true,\n args: [{ name: 'id', description: 'Notification ID', required: true }],\n handler: async ({ ctx, workspace, args }) => {\n await ctx.apiClient.markNotificationAsRead(workspace, requireNumber(args, 'id'));\n process.stdout.write(`Marked notification ${args.id} as read\\n`);\n },\n },\n {\n path: ['workspaces', 'notifications', 'dismiss-all'],\n description: 'Dismiss all notifications',\n mutates: true,\n requiresWorkspace: true,\n handler: async ({ ctx, workspace }) => {\n await ctx.apiClient.dismissAllNotifications(workspace);\n process.stdout.write('Dismissed all notifications\\n');\n },\n },\n // Themes\n {\n path: ['workspaces', 'themes', 'list'],\n description: 'List workspace themes',\n requiresWorkspace: true,\n handler: async ({ ctx, workspace }) => {\n const result = await ctx.apiClient.getWorkspaceThemes(workspace);\n outputData(result.themes ?? result, ctx, THEME_COLUMNS);\n },\n },\n {\n path: ['workspaces', 'themes', 'update'],\n description: 'Update workspace themes',\n mutates: true,\n requiresWorkspace: true,\n handler: async ({ ctx, workspace, data }) => {\n const result = await ctx.apiClient.updateWorkspaceThemes(workspace, data as any);\n outputSingle(result, ctx);\n },\n },\n // Direct Messages (via chats API with chatType=dm)\n {\n path: ['workspaces', 'dms', 'list'],\n description: 'List direct message chats',\n requiresWorkspace: true,\n handler: async ({ ctx, workspace }) => {\n const result = await ctx.apiClient.getChats(workspace, {\n chatType: 'dm',\n mine: true,\n sortBy: 'updatedAt',\n sortOrder: 'desc',\n });\n outputData(result.items, ctx, DM_COLUMNS);\n },\n },\n {\n path: ['workspaces', 'dms', 'get'],\n description: 'Get messages for a DM chat',\n requiresWorkspace: true,\n args: [{ name: 'id', description: 'Chat ID', required: true }],\n handler: async ({ ctx, workspace, args }) => {\n const result = await ctx.apiClient.getChatMessages(\n workspace,\n requireNumber(args, 'id')\n );\n outputData(result, ctx, MESSAGE_COLUMNS);\n },\n },\n {\n path: ['workspaces', 'dms', 'send'],\n description: 'Send a message in a DM chat',\n mutates: true,\n requiresWorkspace: true,\n args: [{ name: 'id', description: 'Chat ID', required: true }],\n handler: async ({ ctx, workspace, args, data }) => {\n const chatId = requireNumber(args, 'id');\n const content = (data as any)?.content ?? '';\n const result = await ctx.apiClient.sendChatMessage(workspace, chatId, content);\n outputSingle(result, ctx);\n },\n },\n ],\n};\n","import type { DomainDef } from '../lib/types';\nimport { requireNumber } from '../lib/types';\nimport type { TableColumn } from '../lib/output';\nimport { crudCommands } from '../lib/crud';\nimport { outputData, outputSingle, COL } from '../lib/output';\n\nconst COLUMNS: TableColumn<unknown>[] = [\n COL.id(),\n COL.uuid(),\n COL.name(),\n COL.status(),\n { header: 'TYPE', getValue: (item: any) => item.workflow_type ?? '' },\n COL.created(),\n];\n\nconst NOTE_COLUMNS: TableColumn<unknown>[] = [\n COL.id(),\n { header: 'TITLE', getValue: (item: any) => item.title ?? '' },\n {\n header: 'CONTENT',\n getValue: (item: any) => String(item.content ?? '').slice(0, 60),\n maxWidth: 60,\n },\n COL.created(),\n];\n\nconst CONTRIBUTOR_COLUMNS: TableColumn<unknown>[] = [\n COL.id(),\n {\n header: 'ACCOUNT',\n getValue: (item: any) => item.account_name ?? String(item.account_id ?? ''),\n },\n { header: 'ROLE', getValue: (item: any) => item.role ?? '' },\n];\n\nconst TEMPLATE_COLUMNS: TableColumn<unknown>[] = [\n COL.id(),\n COL.name(),\n {\n header: 'DESCRIPTION',\n getValue: (item: any) => String(item.description ?? '').slice(0, 60),\n maxWidth: 60,\n },\n];\n\nexport const workflowsDomain: DomainDef = {\n name: 'workflows',\n description: 'Manage workflows',\n commands: [\n ...crudCommands({\n prefix: ['workflows'],\n entityName: 'workflow',\n listMethod: 'getWorkflows',\n getMethod: 'getWorkflow',\n createMethod: 'createWorkflow',\n updateMethod: 'updateWorkflow',\n deleteMethod: 'deleteWorkflow',\n archiveMethod: 'archiveWorkflow',\n unarchiveMethod: 'unarchiveWorkflow',\n columns: COLUMNS,\n }),\n // Clone\n {\n path: ['workflows', 'clone'],\n description: 'Clone a workflow',\n mutates: true,\n requiresWorkspace: true,\n args: [{ name: 'id', description: 'Workflow ID', required: true }],\n handler: async ({ ctx, workspace, args, data }) => {\n const result = await ctx.apiClient.cloneWorkflow(\n workspace,\n requireNumber(args, 'id'),\n data as any\n );\n outputSingle(result, ctx, COLUMNS);\n },\n },\n // Templates\n {\n path: ['workflows', 'templates'],\n description: 'List workflow templates',\n requiresWorkspace: true,\n handler: async ({ ctx, workspace }) => {\n const result = await ctx.apiClient.getWorkflowTemplates(workspace);\n outputData(result, ctx, TEMPLATE_COLUMNS);\n },\n },\n {\n path: ['workflows', 'create-from-template'],\n description: 'Create a workflow from a template',\n requiresWorkspace: true,\n handler: async ({ ctx, workspace, data }) => {\n const result = await ctx.apiClient.createWorkflowFromTemplate(\n workspace,\n (data as any)?.templateUuid ?? '',\n data as any\n );\n outputSingle(result, ctx, COLUMNS);\n },\n },\n // Activity\n {\n path: ['workflows', 'activity'],\n description: 'Get workflow activity',\n requiresWorkspace: true,\n args: [{ name: 'id', description: 'Workflow ID', required: true }],\n handler: async ({ ctx, workspace, args }) => {\n const result = await ctx.apiClient.getWorkflowActivity(\n workspace,\n requireNumber(args, 'id')\n );\n outputData(result, ctx);\n },\n },\n // Diagram\n {\n path: ['workflows', 'diagram'],\n description: 'Get workflow diagram',\n requiresWorkspace: true,\n args: [{ name: 'id', description: 'Workflow ID', required: true }],\n handler: async ({ ctx, workspace, args }) => {\n const result = await ctx.apiClient.getWorkflowDiagram(\n workspace,\n requireNumber(args, 'id')\n );\n outputSingle(result, ctx);\n },\n },\n // Notes CRUD\n ...crudCommands({\n prefix: ['workflows', 'notes'],\n entityName: 'workflow note',\n listMethod: 'getWorkflowNotes',\n getMethod: 'getWorkflowNote',\n createMethod: 'createWorkflowNote',\n updateMethod: 'updateWorkflowNote',\n deleteMethod: 'deleteWorkflowNote',\n columns: NOTE_COLUMNS,\n }),\n // Contributors\n ...crudCommands({\n prefix: ['workflows', 'contributors'],\n entityName: 'workflow contributor',\n listMethod: 'getWorkflowContributors',\n createMethod: 'createWorkflowContributor',\n updateMethod: 'updateWorkflowContributor',\n deleteMethod: 'deleteWorkflowContributor',\n columns: CONTRIBUTOR_COLUMNS,\n }),\n ],\n};\n","import type { DomainDef } from '../lib/types';\nimport { crudCommands } from '../lib/crud';\nimport { COL } from '../lib/output';\n\nconst COLUMNS = [COL.id(), COL.uuid(), COL.name(), COL.status(), COL.created()];\n\nexport const agentsDomain: DomainDef = {\n name: 'agents',\n description: 'Manage agents',\n commands: [\n ...crudCommands({\n prefix: ['agents'],\n entityName: 'agent',\n listMethod: 'getAgents',\n getMethod: 'getAgent',\n createMethod: 'createAgent',\n updateMethod: 'updateAgent',\n deleteMethod: 'deleteAgent',\n archiveMethod: 'archiveAgent',\n unarchiveMethod: 'unarchiveAgent',\n columns: COLUMNS,\n }),\n ],\n};\n","import type { DomainDef } from '../lib/types';\nimport type { TableColumn } from '../lib/output';\nimport { crudCommands } from '../lib/crud';\nimport { COL } from '../lib/output';\n\nconst COLUMNS: TableColumn<unknown>[] = [\n COL.id(),\n COL.uuid(),\n COL.name(),\n { header: 'MODEL', getValue: (item: any) => item.model ?? '' },\n COL.status(),\n COL.created(),\n];\n\nexport const assistantsDomain: DomainDef = {\n name: 'assistants',\n description: 'Manage assistants',\n commands: [\n ...crudCommands({\n prefix: ['assistants'],\n entityName: 'assistant',\n listMethod: 'getAssistants',\n getMethod: 'getAssistant',\n createMethod: 'createAssistant',\n updateMethod: 'updateAssistant',\n deleteMethod: 'deleteAssistant',\n columns: COLUMNS,\n }),\n ],\n};\n","import { type DomainDef, requireNumber } from '../lib/types';\nimport type { TableColumn } from '../lib/output';\nimport { crudCommands } from '../lib/crud';\nimport { outputData, outputSingle, COL } from '../lib/output';\n\nconst COLUMNS: TableColumn<unknown>[] = [\n COL.id(),\n COL.status(),\n { header: 'MEMBER', getValue: (item: any) => String(item.member_id ?? '') },\n { header: 'TASK', getValue: (item: any) => String(item.current_assignment_task_id ?? '') },\n COL.created(),\n];\n\nconst MESSAGE_COLUMNS: TableColumn<unknown>[] = [\n COL.id(),\n { header: 'ROLE', getValue: (item: any) => item.role ?? '' },\n { header: 'CONTENT', getValue: (item: any) => (item.content ?? '').slice(0, 80) },\n COL.created(),\n];\n\nconst TASK_COLUMNS: TableColumn<unknown>[] = [COL.id(), COL.name(), COL.status()];\n\nconst TOOL_COLUMNS: TableColumn<unknown>[] = [\n COL.name(),\n { header: 'DESCRIPTION', getValue: (item: any) => (item.description ?? '').slice(0, 60) },\n];\n\nexport const assignmentsDomain: DomainDef = {\n name: 'assignments',\n description: 'Manage assignments',\n commands: [\n ...crudCommands({\n prefix: ['assignments'],\n entityName: 'assignment',\n listMethod: 'getAssignments',\n getMethod: 'getAssignment',\n createMethod: 'createAssignment',\n updateMethod: 'updateAssignment',\n deleteMethod: 'deleteAssignment',\n columns: COLUMNS,\n }),\n {\n path: ['assignments', 'cancel'],\n description: 'Cancel an assignment',\n mutates: true,\n requiresWorkspace: true,\n args: [\n { name: 'id', description: 'Assignment ID', required: true },\n { name: 'reason', description: 'Cancellation reason' },\n ],\n handler: async ({ ctx, workspace, args }) => {\n const data = args.reason ? { reason: args.reason as string } : {};\n const result = await ctx.apiClient.cancelAssignment(\n workspace,\n requireNumber(args, 'id'),\n data\n );\n outputSingle(result, ctx, COLUMNS);\n },\n },\n {\n path: ['assignments', 'messages', 'list'],\n description: 'List messages for an assignment',\n requiresWorkspace: true,\n args: [{ name: 'id', description: 'Assignment ID', required: true }],\n handler: async ({ ctx, workspace, args }) => {\n const result = await ctx.apiClient.getAssignmentMessages(\n workspace,\n requireNumber(args, 'id')\n );\n outputData(result, ctx, MESSAGE_COLUMNS);\n },\n },\n {\n path: ['assignments', 'tasks', 'get'],\n description: 'Get an assignment task',\n requiresWorkspace: true,\n args: [\n { name: 'id', description: 'Assignment ID', required: true },\n { name: 'task-id', description: 'Assignment task ID', required: true },\n ],\n handler: async ({ ctx, workspace, args }) => {\n const result = await ctx.apiClient.getAssignmentTask(\n workspace,\n requireNumber(args, 'id'),\n requireNumber(args, 'task-id')\n );\n outputSingle(result, ctx, TASK_COLUMNS);\n },\n },\n {\n path: ['assignments', 'tasks', 'detail'],\n description: 'Get current task detail for an assignment',\n requiresWorkspace: true,\n args: [{ name: 'id', description: 'Assignment ID', required: true }],\n handler: async ({ ctx, workspace, args }) => {\n const result = await ctx.apiClient.getAssignmentTaskDetail(\n workspace,\n requireNumber(args, 'id')\n );\n outputSingle(result, ctx, TASK_COLUMNS);\n },\n },\n {\n path: ['assignments', 'tasks', 'select'],\n description: 'Select current assignment task',\n requiresWorkspace: true,\n args: [\n { name: 'id', description: 'Assignment ID', required: true },\n { name: 'task-id', description: 'Assignment task ID', required: true },\n ],\n handler: async ({ ctx, workspace, args }) => {\n await ctx.apiClient.selectCurrentAssignmentTask(\n workspace,\n requireNumber(args, 'id'),\n requireNumber(args, 'task-id')\n );\n process.stdout.write(`Selected assignment task ${args['task-id']}\\n`);\n },\n },\n {\n path: ['assignments', 'tools', 'list'],\n description: 'List tools for an assignment',\n requiresWorkspace: true,\n args: [{ name: 'id', description: 'Assignment ID', required: true }],\n handler: async ({ ctx, workspace, args }) => {\n const result = await ctx.apiClient.getAssignmentTools(\n workspace,\n requireNumber(args, 'id')\n );\n const tools = result.tools ?? result;\n outputData(Array.isArray(tools) ? tools : [tools], ctx, TOOL_COLUMNS);\n },\n },\n ],\n};\n","import { type DomainDef, requireString, requireNumber } from '../lib/types';\nimport type { TableColumn } from '../lib/output';\nimport { crudCommands } from '../lib/crud';\nimport { outputData, outputSingle, COL } from '../lib/output';\n\nconst COLUMNS: TableColumn<unknown>[] = [\n COL.id(),\n COL.name(),\n { header: 'SLUG', getValue: (item: any) => item.slug ?? '' },\n COL.status(),\n];\n\nconst RECORD_COLUMNS: TableColumn<unknown>[] = [\n COL.id(),\n { header: 'DATA TYPE', getValue: (item: any) => String(item.data_type_id ?? '') },\n { header: 'MEMBER', getValue: (item: any) => String(item.member_id ?? '') },\n COL.updated(),\n];\n\nexport const dataTypesDomain: DomainDef = {\n name: 'data-types',\n description: 'Manage data types and records',\n commands: [\n ...crudCommands({\n prefix: ['data-types'],\n entityName: 'data type',\n listMethod: 'getDataTypes',\n getMethod: 'getDataType',\n createMethod: 'createDataType',\n updateMethod: 'updateDataType',\n deleteMethod: 'deleteDataType',\n archiveMethod: 'archiveDataType',\n unarchiveMethod: 'unarchiveDataType',\n columns: COLUMNS,\n }),\n {\n path: ['data-types', 'clone'],\n description: 'Clone a data type',\n mutates: true,\n requiresWorkspace: true,\n args: [{ name: 'id', description: 'Data type ID', required: true }],\n handler: async ({ ctx, workspace, args, data }) => {\n const result = await ctx.apiClient.cloneDataType(\n workspace,\n requireNumber(args, 'id'),\n data as any\n );\n outputSingle(result, ctx, COLUMNS);\n },\n },\n {\n path: ['data-types', 'get-by-slug'],\n description: 'Get a data type by slug',\n requiresWorkspace: true,\n args: [{ name: 'slug', description: 'Data type slug', required: true }],\n handler: async ({ ctx, workspace, args }) => {\n const result = await ctx.apiClient.getDataTypeBySlug(\n workspace,\n requireString(args, 'slug')\n );\n outputSingle(result, ctx, COLUMNS);\n },\n },\n // Data Records sub-resource\n {\n path: ['data-types', 'records', 'list'],\n description: 'List records for a data type',\n requiresWorkspace: true,\n args: [{ name: 'data-type-id', description: 'Data type ID', required: true }],\n handler: async ({ ctx, workspace, args }) => {\n const result = await ctx.apiClient.getDataRecords(\n workspace,\n requireNumber(args, 'data-type-id')\n );\n outputData(result, ctx, RECORD_COLUMNS);\n },\n },\n {\n path: ['data-types', 'records', 'get'],\n description: 'Get a data record',\n requiresWorkspace: true,\n args: [\n { name: 'data-type-id', description: 'Data type ID', required: true },\n { name: 'id', description: 'Record ID', required: true },\n ],\n handler: async ({ ctx, workspace, args }) => {\n const result = await ctx.apiClient.getDataRecord(workspace, requireNumber(args, 'id'));\n outputSingle(result, ctx, RECORD_COLUMNS);\n },\n },\n {\n path: ['data-types', 'records', 'create'],\n description: 'Create a data record',\n mutates: true,\n requiresWorkspace: true,\n args: [{ name: 'data-type-id', description: 'Data type ID', required: true }],\n handler: async ({ ctx, workspace, args, data }) => {\n const result = await ctx.apiClient.createDataRecord(\n workspace,\n requireNumber(args, 'data-type-id'),\n data as any\n );\n outputSingle(result, ctx, RECORD_COLUMNS);\n },\n },\n {\n path: ['data-types', 'records', 'update'],\n description: 'Update a data record',\n mutates: true,\n requiresWorkspace: true,\n args: [\n { name: 'data-type-id', description: 'Data type ID', required: true },\n { name: 'id', description: 'Record ID', required: true },\n ],\n handler: async ({ ctx, workspace, args, data }) => {\n const result = await ctx.apiClient.updateDataRecord(\n workspace,\n requireNumber(args, 'data-type-id'),\n requireNumber(args, 'id'),\n data as any\n );\n outputSingle(result, ctx, RECORD_COLUMNS);\n },\n },\n {\n path: ['data-types', 'records', 'delete'],\n description: 'Delete a data record',\n mutates: true,\n requiresWorkspace: true,\n args: [\n { name: 'data-type-id', description: 'Data type ID', required: true },\n { name: 'id', description: 'Record ID', required: true },\n ],\n handler: async ({ ctx, workspace, args }) => {\n await ctx.apiClient.deleteDataRecord(\n workspace,\n requireNumber(args, 'data-type-id'),\n requireNumber(args, 'id')\n );\n process.stdout.write(`Deleted data record ${args.id}\\n`);\n },\n },\n ],\n};\n","import type { DomainDef } from '../lib/types';\nimport { requireNumber } from '../lib/types';\nimport type { TableColumn } from '../lib/output';\nimport { crudCommands } from '../lib/crud';\nimport { outputData, outputSingle, COL } from '../lib/output';\n\nconst COLUMNS: TableColumn<unknown>[] = [\n COL.id(),\n COL.name(),\n { header: 'SLUG', getValue: (item: any) => item.slug ?? '' },\n { header: 'DOMAIN', getValue: (item: any) => item.domain ?? '' },\n];\n\nconst PAGE_COLUMNS: TableColumn<unknown>[] = [\n COL.id(),\n { header: 'TITLE', getValue: (item: any) => item.title ?? '' },\n { header: 'SLUG', getValue: (item: any) => item.slug ?? '' },\n COL.status(),\n];\n\nconst MENU_COLUMNS: TableColumn<unknown>[] = [\n COL.id(),\n { header: 'LABEL', getValue: (item: any) => item.label ?? '' },\n { header: 'TYPE', getValue: (item: any) => item.type ?? '' },\n { header: 'ORDER', getValue: (item: any) => String(item.order ?? '') },\n];\n\nexport const sitesDomain: DomainDef = {\n name: 'sites',\n description: 'Manage sites, pages, and menus',\n commands: [\n ...crudCommands({\n prefix: ['sites'],\n entityName: 'site',\n listMethod: 'getSites',\n getMethod: 'getSite',\n createMethod: 'createSite',\n updateMethod: 'updateSite',\n deleteMethod: 'deleteSite',\n columns: COLUMNS,\n }),\n // Pages sub-resource\n {\n path: ['sites', 'pages', 'list'],\n description: 'List pages for a site',\n requiresWorkspace: true,\n args: [{ name: 'site-id', description: 'Site ID', required: true }],\n handler: async ({ ctx, workspace, args }) => {\n const result = await ctx.apiClient.getSitePages(\n workspace,\n requireNumber(args, 'site-id')\n );\n outputData(result, ctx, PAGE_COLUMNS);\n },\n },\n {\n path: ['sites', 'pages', 'get'],\n description: 'Get a page',\n requiresWorkspace: true,\n args: [\n { name: 'site-id', description: 'Site ID', required: true },\n { name: 'id', description: 'Page ID', required: true },\n ],\n handler: async ({ ctx, workspace, args }) => {\n const result = await ctx.apiClient.getPage(\n workspace,\n requireNumber(args, 'site-id'),\n requireNumber(args, 'id')\n );\n outputSingle(result, ctx, PAGE_COLUMNS);\n },\n },\n {\n path: ['sites', 'pages', 'create'],\n description: 'Create a page',\n mutates: true,\n requiresWorkspace: true,\n args: [{ name: 'site-id', description: 'Site ID', required: true }],\n handler: async ({ ctx, workspace, args, data }) => {\n const result = await ctx.apiClient.createPage(\n workspace,\n requireNumber(args, 'site-id'),\n data as any\n );\n outputSingle(result, ctx, PAGE_COLUMNS);\n },\n },\n {\n path: ['sites', 'pages', 'update'],\n description: 'Update a page',\n mutates: true,\n requiresWorkspace: true,\n args: [\n { name: 'site-id', description: 'Site ID', required: true },\n { name: 'id', description: 'Page ID', required: true },\n ],\n handler: async ({ ctx, workspace, args, data }) => {\n const result = await ctx.apiClient.updatePage(\n workspace,\n requireNumber(args, 'site-id'),\n requireNumber(args, 'id'),\n data as any\n );\n outputSingle(result, ctx, PAGE_COLUMNS);\n },\n },\n {\n path: ['sites', 'pages', 'delete'],\n description: 'Delete a page',\n mutates: true,\n requiresWorkspace: true,\n args: [\n { name: 'site-id', description: 'Site ID', required: true },\n { name: 'id', description: 'Page ID', required: true },\n ],\n handler: async ({ ctx, workspace, args }) => {\n await ctx.apiClient.deletePage(\n workspace,\n requireNumber(args, 'site-id'),\n requireNumber(args, 'id')\n );\n process.stdout.write(`Deleted page ${args.id}\\n`);\n },\n },\n // Menu items sub-resource\n {\n path: ['sites', 'menu', 'list'],\n description: 'List menu items for a site',\n requiresWorkspace: true,\n args: [{ name: 'site-id', description: 'Site ID', required: true }],\n handler: async ({ ctx, workspace, args }) => {\n const result = await ctx.apiClient.getMenuItems(\n workspace,\n requireNumber(args, 'site-id')\n );\n outputData(result, ctx, MENU_COLUMNS);\n },\n },\n {\n path: ['sites', 'menu', 'create'],\n description: 'Create a menu item',\n mutates: true,\n requiresWorkspace: true,\n args: [{ name: 'site-id', description: 'Site ID', required: true }],\n handler: async ({ ctx, workspace, args, data }) => {\n const result = await ctx.apiClient.createMenuItem(\n workspace,\n requireNumber(args, 'site-id'),\n data as any\n );\n outputSingle(result, ctx, MENU_COLUMNS);\n },\n },\n {\n path: ['sites', 'menu', 'update'],\n description: 'Update a menu item',\n mutates: true,\n requiresWorkspace: true,\n args: [\n { name: 'site-id', description: 'Site ID', required: true },\n { name: 'id', description: 'Menu item ID', required: true },\n ],\n handler: async ({ ctx, workspace, args, data }) => {\n const result = await ctx.apiClient.updateMenuItem(\n workspace,\n requireNumber(args, 'site-id'),\n requireNumber(args, 'id'),\n data as any\n );\n outputSingle(result, ctx, MENU_COLUMNS);\n },\n },\n {\n path: ['sites', 'menu', 'delete'],\n description: 'Delete a menu item',\n mutates: true,\n requiresWorkspace: true,\n args: [\n { name: 'site-id', description: 'Site ID', required: true },\n { name: 'id', description: 'Menu item ID', required: true },\n ],\n handler: async ({ ctx, workspace, args }) => {\n await ctx.apiClient.deleteMenuItem(\n workspace,\n requireNumber(args, 'site-id'),\n requireNumber(args, 'id')\n );\n process.stdout.write(`Deleted menu item ${args.id}\\n`);\n },\n },\n ],\n};\n","import { type DomainDef, requireNumber } from '../lib/types';\nimport type { TableColumn } from '../lib/output';\nimport { crudCommands } from '../lib/crud';\nimport { COL } from '../lib/output';\n\nconst COLUMNS: TableColumn<unknown>[] = [\n COL.id(),\n COL.name(),\n { header: 'TYPE', getValue: (item: any) => item.content_type ?? item.type ?? '' },\n { header: 'SIZE', getValue: (item: any) => String(item.size ?? '') },\n { header: 'FOLDER', getValue: (item: any) => String(item.folder_id ?? '') },\n];\n\nconst FOLDER_COLUMNS: TableColumn<unknown>[] = [\n COL.id(),\n COL.name(),\n { header: 'PARENT', getValue: (item: any) => String(item.parent_id ?? '') },\n];\n\nconst LABEL_COLUMNS: TableColumn<unknown>[] = [\n COL.id(),\n COL.name(),\n { header: 'COLOR', getValue: (item: any) => item.color ?? '' },\n];\n\nexport const filesDomain: DomainDef = {\n name: 'files',\n description: 'Manage files, folders, and labels',\n commands: [\n ...crudCommands({\n prefix: ['files'],\n entityName: 'file',\n listMethod: 'getFiles',\n getMethod: 'getFile',\n createMethod: 'createFile',\n updateMethod: 'updateFile',\n deleteMethod: 'deleteFile',\n columns: COLUMNS,\n }),\n // Folders sub-resource\n ...crudCommands({\n prefix: ['files', 'folders'],\n entityName: 'folder',\n listMethod: 'getFolders',\n getMethod: 'getFolder',\n createMethod: 'createFolder',\n updateMethod: 'updateFolder',\n deleteMethod: 'deleteFolder',\n columns: FOLDER_COLUMNS,\n }),\n {\n path: ['files', 'folders', 'reindex'],\n description: 'Reindex a folder',\n mutates: true,\n requiresWorkspace: true,\n args: [{ name: 'id', description: 'Folder ID', required: true }],\n handler: async ({ ctx, workspace, args }) => {\n await ctx.apiClient.reindexFolder(workspace, requireNumber(args, 'id'));\n process.stdout.write(`Reindexing folder ${args.id}\\n`);\n },\n },\n // Labels sub-resource\n ...crudCommands({\n prefix: ['files', 'labels'],\n entityName: 'file label',\n listMethod: 'getFileLabels',\n getMethod: 'getFileLabel',\n createMethod: 'createFileLabel',\n updateMethod: 'updateFileLabel',\n deleteMethod: 'deleteFileLabel',\n columns: LABEL_COLUMNS,\n }),\n ],\n};\n","import { type DomainDef, requireNumber } from '../lib/types';\nimport type { TableColumn } from '../lib/output';\nimport { crudCommands } from '../lib/crud';\nimport { outputData, outputSingle, COL } from '../lib/output';\n\nconst RULE_COLUMNS: TableColumn<unknown>[] = [\n COL.id(),\n COL.name(),\n { header: 'EVENT', getValue: (item: any) => item.event_type ?? '' },\n COL.enabled(),\n];\n\nconst EVENT_COLUMNS: TableColumn<unknown>[] = [\n COL.id(),\n COL.name(),\n { header: 'SLUG', getValue: (item: any) => item.slug ?? '' },\n COL.status(),\n];\n\nexport const eventsDomain: DomainDef = {\n name: 'events',\n description: 'Manage event rules and custom events',\n commands: [\n // Event rules\n ...crudCommands({\n prefix: ['events', 'rules'],\n entityName: 'event rule',\n listMethod: 'getEventRules',\n getMethod: 'getEventRule',\n createMethod: 'createEventRule',\n updateMethod: 'updateEventRule',\n deleteMethod: 'deleteEventRule',\n columns: RULE_COLUMNS,\n }),\n {\n path: ['events', 'rules', 'executions'],\n description: 'List executions for an event rule',\n requiresWorkspace: true,\n args: [{ name: 'id', description: 'Event rule ID', required: true }],\n handler: async ({ ctx, workspace }) => {\n const result = await ctx.apiClient.getRuleExecutions(workspace);\n outputData(result, ctx);\n },\n },\n // Custom events\n ...crudCommands({\n prefix: ['events', 'custom'],\n entityName: 'custom event',\n listMethod: 'getEvents',\n getMethod: 'getEvent',\n createMethod: 'createEvent',\n updateMethod: 'updateEvent',\n deleteMethod: 'deleteEvent',\n columns: EVENT_COLUMNS,\n }),\n {\n path: ['events', 'custom', 'run'],\n description: 'Run a custom event',\n mutates: true,\n requiresWorkspace: true,\n args: [{ name: 'id', description: 'Event ID', required: true }],\n handler: async ({ ctx, workspace, args, data }) => {\n const result = await ctx.apiClient.runEvent(\n workspace,\n requireNumber(args, 'id'),\n (data ?? {}) as any\n );\n outputSingle(result, ctx);\n },\n },\n {\n path: ['events', 'custom', 'runs'],\n description: 'List runs for a custom event',\n requiresWorkspace: true,\n args: [{ name: 'id', description: 'Event ID', required: true }],\n handler: async ({ ctx, workspace }) => {\n const result = await ctx.apiClient.getEventRuns(workspace);\n outputData(result, ctx);\n },\n },\n ],\n};\n","import { type DomainDef, requireNumber } from '../lib/types';\nimport type { TableColumn } from '../lib/output';\nimport { crudCommands } from '../lib/crud';\nimport { outputData, outputSingle, COL } from '../lib/output';\n\nconst COLUMNS: TableColumn<unknown>[] = [\n COL.id(),\n COL.name(),\n { header: 'TIMEZONE', getValue: (item: any) => item.timezone ?? '' },\n];\n\nconst SCHEDULE_COLUMNS: TableColumn<unknown>[] = [\n COL.id(),\n COL.name(),\n { header: 'CALENDAR', getValue: (item: any) => String(item.calendar_id ?? '') },\n];\n\nconst EVENT_COLUMNS: TableColumn<unknown>[] = [\n COL.id(),\n { header: 'TITLE', getValue: (item: any) => item.title ?? item.name ?? '' },\n { header: 'START', getValue: (item: any) => item.start_time ?? item.start ?? '' },\n { header: 'END', getValue: (item: any) => item.end_time ?? item.end ?? '' },\n COL.status(),\n];\n\nconst EVENT_TYPE_COLUMNS: TableColumn<unknown>[] = [\n COL.id(),\n COL.name(),\n { header: 'DURATION', getValue: (item: any) => String(item.duration ?? '') },\n { header: 'SLUG', getValue: (item: any) => item.slug ?? '' },\n];\n\nexport const calendarsDomain: DomainDef = {\n name: 'calendars',\n description: 'Manage calendars, schedules, events, and event types',\n commands: [\n ...crudCommands({\n prefix: ['calendars'],\n entityName: 'calendar',\n listMethod: 'getCalendars',\n getMethod: 'getCalendar',\n createMethod: 'createCalendar',\n updateMethod: 'updateCalendar',\n deleteMethod: 'deleteCalendar',\n columns: COLUMNS,\n }),\n // Schedules sub-resource\n {\n path: ['calendars', 'schedules', 'list'],\n description: 'List schedules for a calendar',\n requiresWorkspace: true,\n args: [{ name: 'calendar-id', description: 'Calendar ID', required: true }],\n handler: async ({ ctx, workspace, args }) => {\n const result = await ctx.apiClient.getCalendarSchedules(\n workspace,\n requireNumber(args, 'calendar-id')\n );\n outputData(result, ctx, SCHEDULE_COLUMNS);\n },\n },\n {\n path: ['calendars', 'schedules', 'create'],\n description: 'Create a schedule',\n mutates: true,\n requiresWorkspace: true,\n args: [{ name: 'calendar-id', description: 'Calendar ID', required: true }],\n handler: async ({ ctx, workspace, args, data }) => {\n const result = await ctx.apiClient.createCalendarSchedule(\n workspace,\n requireNumber(args, 'calendar-id'),\n data as any\n );\n outputSingle(result, ctx, SCHEDULE_COLUMNS);\n },\n },\n {\n path: ['calendars', 'schedules', 'update'],\n description: 'Update a schedule',\n mutates: true,\n requiresWorkspace: true,\n args: [\n { name: 'calendar-id', description: 'Calendar ID', required: true },\n { name: 'id', description: 'Schedule ID', required: true },\n ],\n handler: async ({ ctx, workspace, args, data }) => {\n const result = await ctx.apiClient.updateCalendarSchedule(\n workspace,\n requireNumber(args, 'calendar-id'),\n requireNumber(args, 'id'),\n data as any\n );\n outputSingle(result, ctx, SCHEDULE_COLUMNS);\n },\n },\n {\n path: ['calendars', 'schedules', 'delete'],\n description: 'Delete a schedule',\n mutates: true,\n requiresWorkspace: true,\n args: [\n { name: 'calendar-id', description: 'Calendar ID', required: true },\n { name: 'id', description: 'Schedule ID', required: true },\n ],\n handler: async ({ ctx, workspace, args }) => {\n await ctx.apiClient.deleteCalendarSchedule(\n workspace,\n requireNumber(args, 'calendar-id'),\n requireNumber(args, 'id')\n );\n process.stdout.write(`Deleted schedule ${args.id}\\n`);\n },\n },\n // Events sub-resource\n {\n path: ['calendars', 'events', 'list'],\n description: 'List events for a calendar',\n requiresWorkspace: true,\n args: [{ name: 'calendar-id', description: 'Calendar ID', required: true }],\n handler: async ({ ctx, workspace }) => {\n const result = await ctx.apiClient.getCalendarEvents(workspace);\n outputData(result, ctx, EVENT_COLUMNS);\n },\n },\n {\n path: ['calendars', 'events', 'get'],\n description: 'Get a calendar event',\n requiresWorkspace: true,\n args: [\n { name: 'calendar-id', description: 'Calendar ID', required: true },\n { name: 'id', description: 'Event ID', required: true },\n ],\n handler: async ({ ctx, workspace, args }) => {\n const result = await ctx.apiClient.getCalendarEvent(\n workspace,\n requireNumber(args, 'id')\n );\n outputSingle(result, ctx, EVENT_COLUMNS);\n },\n },\n {\n path: ['calendars', 'events', 'create'],\n description: 'Create a calendar event',\n mutates: true,\n requiresWorkspace: true,\n args: [{ name: 'calendar-id', description: 'Calendar ID', required: true }],\n handler: async ({ ctx, workspace, data }) => {\n const result = await ctx.apiClient.createCalendarEvent(workspace, data as any);\n outputSingle(result, ctx, EVENT_COLUMNS);\n },\n },\n {\n path: ['calendars', 'events', 'update'],\n description: 'Update a calendar event',\n mutates: true,\n requiresWorkspace: true,\n args: [\n { name: 'calendar-id', description: 'Calendar ID', required: true },\n { name: 'id', description: 'Event ID', required: true },\n ],\n handler: async ({ ctx, workspace, args, data }) => {\n const result = await ctx.apiClient.updateCalendarEvent(\n workspace,\n requireNumber(args, 'id'),\n data as any\n );\n outputSingle(result, ctx, EVENT_COLUMNS);\n },\n },\n {\n path: ['calendars', 'events', 'cancel'],\n description: 'Cancel a calendar event',\n mutates: true,\n requiresWorkspace: true,\n args: [\n { name: 'calendar-id', description: 'Calendar ID', required: true },\n { name: 'id', description: 'Event ID', required: true },\n ],\n handler: async ({ ctx, workspace, args }) => {\n const result = await ctx.apiClient.cancelCalendarEvent(\n workspace,\n requireNumber(args, 'id')\n );\n outputSingle(result, ctx, EVENT_COLUMNS);\n },\n },\n {\n path: ['calendars', 'events', 'delete'],\n description: 'Delete a calendar event',\n mutates: true,\n requiresWorkspace: true,\n args: [\n { name: 'calendar-id', description: 'Calendar ID', required: true },\n { name: 'id', description: 'Event ID', required: true },\n ],\n handler: async ({ ctx, workspace, args }) => {\n await ctx.apiClient.deleteCalendarEvent(workspace, requireNumber(args, 'id'));\n process.stdout.write(`Deleted calendar event ${args.id}\\n`);\n },\n },\n // Event types sub-resource\n {\n path: ['calendars', 'event-types', 'list'],\n description: 'List event types for a calendar',\n requiresWorkspace: true,\n args: [{ name: 'calendar-id', description: 'Calendar ID', required: true }],\n handler: async ({ ctx, workspace }) => {\n const result = await ctx.apiClient.getCalendarEventTypes(workspace);\n outputData(result, ctx, EVENT_TYPE_COLUMNS);\n },\n },\n {\n path: ['calendars', 'event-types', 'get'],\n description: 'Get a calendar event type',\n requiresWorkspace: true,\n args: [\n { name: 'calendar-id', description: 'Calendar ID', required: true },\n { name: 'id', description: 'Event type ID', required: true },\n ],\n handler: async ({ ctx, workspace, args }) => {\n const result = await ctx.apiClient.getCalendarEventType(\n workspace,\n requireNumber(args, 'id')\n );\n outputSingle(result, ctx, EVENT_TYPE_COLUMNS);\n },\n },\n {\n path: ['calendars', 'event-types', 'create'],\n description: 'Create a calendar event type',\n mutates: true,\n requiresWorkspace: true,\n args: [{ name: 'calendar-id', description: 'Calendar ID', required: true }],\n handler: async ({ ctx, workspace, data }) => {\n const result = await ctx.apiClient.createCalendarEventType(workspace, data as any);\n outputSingle(result, ctx, EVENT_TYPE_COLUMNS);\n },\n },\n {\n path: ['calendars', 'event-types', 'update'],\n description: 'Update a calendar event type',\n mutates: true,\n requiresWorkspace: true,\n args: [\n { name: 'calendar-id', description: 'Calendar ID', required: true },\n { name: 'id', description: 'Event type ID', required: true },\n ],\n handler: async ({ ctx, workspace, args, data }) => {\n const result = await ctx.apiClient.updateCalendarEventType(\n workspace,\n requireNumber(args, 'id'),\n data as any\n );\n outputSingle(result, ctx, EVENT_TYPE_COLUMNS);\n },\n },\n {\n path: ['calendars', 'event-types', 'delete'],\n description: 'Delete a calendar event type',\n mutates: true,\n requiresWorkspace: true,\n args: [\n { name: 'calendar-id', description: 'Calendar ID', required: true },\n { name: 'id', description: 'Event type ID', required: true },\n ],\n handler: async ({ ctx, workspace, args }) => {\n await ctx.apiClient.deleteCalendarEventType(workspace, requireNumber(args, 'id'));\n process.stdout.write(`Deleted event type ${args.id}\\n`);\n },\n },\n ],\n};\n","import type { DomainDef } from '../lib/types';\nimport { requireNumber } from '../lib/types';\nimport type { TableColumn } from '../lib/output';\nimport { crudCommands } from '../lib/crud';\nimport { outputData, outputSingle, COL } from '../lib/output';\n\nconst COLUMNS: TableColumn<unknown>[] = [COL.id(), COL.name(), COL.status(), COL.created()];\n\nconst REQUIREMENT_COLUMNS: TableColumn<unknown>[] = [\n COL.id(),\n COL.name(),\n { header: 'TYPE', getValue: (item: any) => item.type ?? '' },\n { header: 'REQUIRED', getValue: (item: any) => String(item.required ?? '') },\n];\n\nconst SUBMISSION_COLUMNS: TableColumn<unknown>[] = [\n COL.id(),\n { header: 'MEMBER', getValue: (item: any) => String(item.member_id ?? '') },\n { header: 'REQUIREMENT', getValue: (item: any) => String(item.requirement_id ?? '') },\n COL.status(),\n { header: 'SCORE', getValue: (item: any) => String(item.score ?? '') },\n];\n\nexport const qualificationsDomain: DomainDef = {\n name: 'qualifications',\n description: 'Manage qualifications, requirements, and submissions',\n commands: [\n ...crudCommands({\n prefix: ['qualifications'],\n entityName: 'qualification',\n listMethod: 'getQualifications',\n getMethod: 'getQualification',\n createMethod: 'createQualification',\n updateMethod: 'updateQualification',\n archiveMethod: 'archiveQualification',\n columns: COLUMNS,\n }),\n {\n path: ['qualifications', 'members'],\n description: 'List members for a qualification',\n requiresWorkspace: true,\n args: [{ name: 'id', description: 'Qualification ID', required: true }],\n handler: async ({ ctx, workspace, args }) => {\n const result = await ctx.apiClient.getQualificationMembers(\n workspace,\n requireNumber(args, 'id')\n );\n outputData(result, ctx);\n },\n },\n // Requirements sub-resource\n {\n path: ['qualifications', 'requirements', 'list'],\n description: 'List requirements for a qualification',\n requiresWorkspace: true,\n args: [{ name: 'qualification-id', description: 'Qualification ID', required: true }],\n handler: async ({ ctx, workspace, args }) => {\n const result = await ctx.apiClient.listRequirements(\n workspace,\n requireNumber(args, 'qualification-id')\n );\n outputData(result, ctx, REQUIREMENT_COLUMNS);\n },\n },\n {\n path: ['qualifications', 'requirements', 'get'],\n description: 'Get a requirement',\n requiresWorkspace: true,\n args: [\n { name: 'qualification-id', description: 'Qualification ID', required: true },\n { name: 'id', description: 'Requirement ID', required: true },\n ],\n handler: async ({ ctx, workspace, args }) => {\n const result = await ctx.apiClient.getRequirement(workspace, requireNumber(args, 'id'));\n outputSingle(result, ctx, REQUIREMENT_COLUMNS);\n },\n },\n {\n path: ['qualifications', 'requirements', 'create'],\n description: 'Create a requirement',\n mutates: true,\n requiresWorkspace: true,\n args: [{ name: 'qualification-id', description: 'Qualification ID', required: true }],\n handler: async ({ ctx, workspace, args, data }) => {\n const result = await ctx.apiClient.createRequirement(\n workspace,\n requireNumber(args, 'qualification-id'),\n data as any\n );\n outputSingle(result, ctx, REQUIREMENT_COLUMNS);\n },\n },\n {\n path: ['qualifications', 'requirements', 'update'],\n description: 'Update a requirement',\n mutates: true,\n requiresWorkspace: true,\n args: [\n { name: 'qualification-id', description: 'Qualification ID', required: true },\n { name: 'id', description: 'Requirement ID', required: true },\n ],\n handler: async ({ ctx, workspace, args, data }) => {\n const result = await ctx.apiClient.updateRequirement(\n workspace,\n requireNumber(args, 'id'),\n data as any\n );\n outputSingle(result, ctx, REQUIREMENT_COLUMNS);\n },\n },\n {\n path: ['qualifications', 'requirements', 'delete'],\n description: 'Delete a requirement',\n mutates: true,\n requiresWorkspace: true,\n args: [\n { name: 'qualification-id', description: 'Qualification ID', required: true },\n { name: 'id', description: 'Requirement ID', required: true },\n ],\n handler: async ({ ctx, workspace, args }) => {\n await ctx.apiClient.deleteRequirement(workspace, requireNumber(args, 'id'));\n process.stdout.write(`Deleted requirement ${args.id}\\n`);\n },\n },\n // Submissions sub-resource\n {\n path: ['qualifications', 'submissions', 'list'],\n description: 'List submissions for a qualification',\n requiresWorkspace: true,\n args: [{ name: 'qualification-id', description: 'Qualification ID', required: true }],\n handler: async ({ ctx, workspace, args }) => {\n const result = await ctx.apiClient.listSubmissions(\n workspace,\n requireNumber(args, 'qualification-id')\n );\n outputData(result, ctx, SUBMISSION_COLUMNS);\n },\n },\n {\n path: ['qualifications', 'submissions', 'get'],\n description: 'Get a submission',\n requiresWorkspace: true,\n args: [\n { name: 'qualification-id', description: 'Qualification ID', required: true },\n { name: 'id', description: 'Submission ID', required: true },\n ],\n handler: async ({ ctx, workspace, args }) => {\n const result = await ctx.apiClient.getSubmission(workspace, requireNumber(args, 'id'));\n outputSingle(result, ctx, SUBMISSION_COLUMNS);\n },\n },\n ],\n};\n","import { type DomainDef, requireNumber } from '../lib/types';\nimport type { TableColumn } from '../lib/output';\nimport { crudCommands } from '../lib/crud';\nimport { outputData, COL } from '../lib/output';\n\nconst COLUMNS: TableColumn<unknown>[] = [\n COL.id(),\n { header: 'NUMBER', getValue: (item: any) => item.phone_number ?? '' },\n { header: 'LABEL', getValue: (item: any) => item.label ?? '' },\n COL.status(),\n];\n\nexport const phoneNumbersDomain: DomainDef = {\n name: 'phone-numbers',\n description: 'Manage phone numbers',\n commands: [\n ...crudCommands({\n prefix: ['phone-numbers'],\n entityName: 'phone number',\n listMethod: 'getPhoneNumbers',\n getMethod: 'getPhoneNumber',\n createMethod: 'createPhoneNumber',\n updateMethod: 'updatePhoneNumber',\n deleteMethod: 'deletePhoneNumber',\n columns: COLUMNS,\n }),\n {\n path: ['phone-numbers', 'available'],\n description: 'List available phone numbers for purchase',\n requiresWorkspace: true,\n handler: async ({ ctx, workspace }) => {\n const result = await ctx.apiClient.getAvailablePhoneNumbers(workspace);\n outputData(result, ctx, COLUMNS);\n },\n },\n {\n path: ['phone-numbers', 'request'],\n description: 'Request a phone number',\n mutates: true,\n requiresWorkspace: true,\n handler: async ({ ctx, workspace, data }) => {\n const result = await ctx.apiClient.requestPhoneNumber(workspace, data as any);\n outputData([result], ctx, COLUMNS);\n },\n },\n {\n path: ['phone-numbers', 'calls'],\n description: 'List calls for a phone number',\n requiresWorkspace: true,\n args: [{ name: 'id', description: 'Phone number ID', required: true }],\n handler: async ({ ctx, workspace, args }) => {\n const result = await ctx.apiClient.getPhoneNumberCalls(\n workspace,\n requireNumber(args, 'id')\n );\n outputData(result, ctx);\n },\n },\n {\n path: ['phone-numbers', 'messages'],\n description: 'List messages for a phone number',\n requiresWorkspace: true,\n args: [{ name: 'id', description: 'Phone number ID', required: true }],\n handler: async ({ ctx, workspace, args }) => {\n const result = await ctx.apiClient.getPhoneNumberMessages(\n workspace,\n requireNumber(args, 'id')\n );\n outputData(result, ctx);\n },\n },\n ],\n};\n","import { type DomainDef, requireNumber } from '../lib/types';\nimport type { TableColumn } from '../lib/output';\nimport { crudCommands } from '../lib/crud';\nimport { outputData, outputSingle, COL } from '../lib/output';\n\nconst COLUMNS: TableColumn<unknown>[] = [\n COL.id(),\n COL.name(),\n { header: 'EMAIL', getValue: (item: any) => item.email_address ?? '' },\n COL.status(),\n];\n\nconst EMAIL_COLUMNS: TableColumn<unknown>[] = [\n COL.id(),\n { header: 'SUBJECT', getValue: (item: any) => item.subject ?? '' },\n { header: 'FROM', getValue: (item: any) => item.from_address ?? '' },\n { header: 'DATE', getValue: (item: any) => item.received_at ?? '' },\n { header: 'READ', getValue: (item: any) => String(item.is_read ?? '') },\n];\n\nexport const inboxesDomain: DomainDef = {\n name: 'inboxes',\n description: 'Manage email inboxes',\n commands: [\n ...crudCommands({\n prefix: ['inboxes'],\n entityName: 'inbox',\n listMethod: 'getInboxes',\n getMethod: 'getInbox',\n createMethod: 'createInbox',\n updateMethod: 'updateInbox',\n deleteMethod: 'deleteInbox',\n columns: COLUMNS,\n }),\n {\n path: ['inboxes', 'emails'],\n description: 'List emails in an inbox',\n requiresWorkspace: true,\n args: [{ name: 'id', description: 'Inbox ID', required: true }],\n handler: async ({ ctx, workspace, args }) => {\n const result = await ctx.apiClient.getInboxEmails(workspace, requireNumber(args, 'id'));\n outputData(result, ctx, EMAIL_COLUMNS);\n },\n },\n {\n path: ['inboxes', 'email'],\n description: 'Get a specific email',\n requiresWorkspace: true,\n args: [\n { name: 'inbox-id', description: 'Inbox ID', required: true },\n { name: 'email-id', description: 'Email ID', required: true },\n ],\n handler: async ({ ctx, workspace, args }) => {\n const result = await ctx.apiClient.getInboxEmail(\n workspace,\n requireNumber(args, 'inbox-id'),\n requireNumber(args, 'email-id')\n );\n outputSingle(result, ctx, EMAIL_COLUMNS);\n },\n },\n {\n path: ['inboxes', 'threads'],\n description: 'List email threads in an inbox',\n requiresWorkspace: true,\n args: [{ name: 'id', description: 'Inbox ID', required: true }],\n handler: async ({ ctx, workspace, args }) => {\n const result = await ctx.apiClient.getInboxThreads(\n workspace,\n requireNumber(args, 'id')\n );\n outputData(result, ctx);\n },\n },\n {\n path: ['inboxes', 'mark-read'],\n description: 'Mark an email as read',\n mutates: true,\n requiresWorkspace: true,\n args: [\n { name: 'inbox-id', description: 'Inbox ID', required: true },\n { name: 'email-id', description: 'Email ID', required: true },\n ],\n handler: async ({ ctx, workspace, args }) => {\n await ctx.apiClient.markEmailAsRead(\n workspace,\n requireNumber(args, 'inbox-id'),\n requireNumber(args, 'email-id')\n );\n process.stdout.write('Email marked as read\\n');\n },\n },\n {\n path: ['inboxes', 'mark-unread'],\n description: 'Mark an email as unread',\n mutates: true,\n requiresWorkspace: true,\n args: [\n { name: 'inbox-id', description: 'Inbox ID', required: true },\n { name: 'email-id', description: 'Email ID', required: true },\n ],\n handler: async ({ ctx, workspace, args }) => {\n await ctx.apiClient.markEmailAsUnread(\n workspace,\n requireNumber(args, 'inbox-id'),\n requireNumber(args, 'email-id')\n );\n process.stdout.write('Email marked as unread\\n');\n },\n },\n ],\n};\n","import { type DomainDef, requireNumber } from '../lib/types';\nimport { crudCommands } from '../lib/crud';\nimport { outputData, outputSingle, COL } from '../lib/output';\n\nconst COLUMNS = [COL.id(), COL.name(), COL.description()];\n\nexport const operatorGroupsDomain: DomainDef = {\n name: 'operator-groups',\n description: 'Manage operator groups',\n commands: [\n ...crudCommands({\n prefix: ['operator-groups'],\n entityName: 'operator group',\n listMethod: 'getOperatorGroups',\n getMethod: 'getOperatorGroup',\n createMethod: 'createOperatorGroup',\n updateMethod: 'updateOperatorGroup',\n deleteMethod: 'deleteOperatorGroup',\n columns: COLUMNS,\n }),\n {\n path: ['operator-groups', 'add-member'],\n description: 'Add a member to an operator group',\n mutates: true,\n requiresWorkspace: true,\n args: [\n { name: 'id', description: 'Operator group ID', required: true },\n { name: 'member-id', description: 'Member ID to add', required: true },\n ],\n handler: async ({ ctx, workspace, args }) => {\n const result = await ctx.apiClient.addGroupMember(\n workspace,\n requireNumber(args, 'id'),\n { member_id: requireNumber(args, 'member-id') } as any\n );\n outputSingle(result, ctx);\n },\n },\n {\n path: ['operator-groups', 'remove-member'],\n description: 'Remove a member from an operator group',\n mutates: true,\n requiresWorkspace: true,\n args: [\n { name: 'id', description: 'Operator group ID', required: true },\n { name: 'member-id', description: 'Member ID to remove', required: true },\n ],\n handler: async ({ ctx, workspace, args }) => {\n await ctx.apiClient.removeGroupMember(\n workspace,\n requireNumber(args, 'id'),\n requireNumber(args, 'member-id')\n );\n process.stdout.write('Member removed from group\\n');\n },\n },\n {\n path: ['operator-groups', 'live'],\n description: 'List live operators',\n requiresWorkspace: true,\n handler: async ({ ctx, workspace }) => {\n const result = await ctx.apiClient.getLiveOperators(workspace);\n outputData(result, ctx);\n },\n },\n {\n path: ['operator-groups', 'presence'],\n description: 'Get presence status',\n requiresWorkspace: true,\n handler: async ({ ctx, workspace }) => {\n const result = await ctx.apiClient.getPresenceStatus(workspace);\n outputSingle(result, ctx);\n },\n },\n ],\n};\n","import { type DomainDef, requireString, requireNumber } from '../lib/types';\nimport type { TableColumn } from '../lib/output';\nimport { outputData, outputSingle, COL } from '../lib/output';\n\nconst COLUMNS: TableColumn<unknown>[] = [\n COL.id(),\n COL.status(),\n { header: 'GRANTOR', getValue: (item: any) => String(item.grantor_member_id ?? '') },\n { header: 'GRANTEE', getValue: (item: any) => String(item.grantee_member_id ?? '') },\n COL.created(),\n];\n\nexport const accessGrantsDomain: DomainDef = {\n name: 'access-grants',\n description: 'Manage access grants',\n commands: [\n {\n path: ['access-grants', 'list'],\n description: 'List all access grants',\n requiresWorkspace: true,\n handler: async ({ ctx, workspace }) => {\n const result = await ctx.apiClient.getAccessGrants(workspace);\n outputData(result, ctx, COLUMNS);\n },\n },\n {\n path: ['access-grants', 'get'],\n description: 'Get an access grant by ID',\n requiresWorkspace: true,\n args: [{ name: 'id', description: 'Access grant ID', required: true }],\n handler: async ({ ctx, workspace, args }) => {\n const result = await ctx.apiClient.getAccessGrant(workspace, requireString(args, 'id'));\n outputSingle(result, ctx, COLUMNS);\n },\n },\n {\n path: ['access-grants', 'create'],\n description: 'Create an access grant',\n mutates: true,\n requiresWorkspace: true,\n handler: async ({ ctx, workspace, data }) => {\n const result = await ctx.apiClient.createAccessGrant(workspace, data as any);\n outputSingle(result, ctx, COLUMNS);\n },\n },\n {\n path: ['access-grants', 'received'],\n description: 'List access grants received by me',\n requiresWorkspace: true,\n handler: async ({ ctx, workspace }) => {\n const result = await ctx.apiClient.getMyReceivedGrants(workspace, {\n pageSize: 200,\n });\n outputData(result.items, ctx, COLUMNS);\n },\n },\n {\n path: ['access-grants', 'given'],\n description: 'List access grants given by me',\n requiresWorkspace: true,\n handler: async ({ ctx, workspace }) => {\n const result = await ctx.apiClient.getMyGivenGrants(workspace, { pageSize: 200 });\n outputData(result.items, ctx, COLUMNS);\n },\n },\n {\n path: ['access-grants', 'resolve'],\n description: 'Resolve an access grant',\n requiresWorkspace: true,\n args: [{ name: 'id', description: 'Access grant ID', required: true }],\n handler: async ({ ctx, workspace, args, data }) => {\n const result = await ctx.apiClient.resolveAccessGrant(\n workspace,\n requireString(args, 'id'),\n (data ?? {}) as any\n );\n outputSingle(result, ctx, COLUMNS);\n },\n },\n {\n path: ['access-grants', 'revoke'],\n description: 'Revoke an access grant',\n mutates: true,\n requiresWorkspace: true,\n args: [{ name: 'id', description: 'Access grant ID', required: true }],\n handler: async ({ ctx, workspace, args, data }) => {\n const result = await ctx.apiClient.revokeAccessGrant(\n workspace,\n requireString(args, 'id'),\n (data ?? {}) as any\n );\n outputSingle(result, ctx, COLUMNS);\n },\n },\n {\n path: ['access-grants', 'member'],\n description: 'List access grants for a specific member',\n requiresWorkspace: true,\n args: [{ name: 'member-id', description: 'Member ID', required: true }],\n handler: async ({ ctx, workspace, args }) => {\n const result = await ctx.apiClient.getMemberGrants(\n workspace,\n requireNumber(args, 'member-id')\n );\n outputData(result, ctx, COLUMNS);\n },\n },\n ],\n};\n","import type { DomainDef } from '../lib/types';\nimport { crudCommands } from '../lib/crud';\nimport { COL } from '../lib/output';\n\nconst COLUMNS = [\n COL.id(),\n COL.name(),\n { header: 'TYPE', getValue: (item: any) => item.type ?? '' },\n COL.enabled(),\n];\n\nexport const notificationRulesDomain: DomainDef = {\n name: 'notification-rules',\n description: 'Manage notification rules',\n commands: [\n ...crudCommands({\n prefix: ['notification-rules'],\n entityName: 'notification rule',\n listMethod: 'getNotificationRules',\n createMethod: 'createNotificationRule',\n updateMethod: 'updateNotificationRule',\n deleteMethod: 'deleteNotificationRule',\n columns: COLUMNS,\n }),\n ],\n};\n","import type { DomainDef } from '../lib/types';\nimport { crudCommands } from '../lib/crud';\nimport { COL } from '../lib/output';\n\nconst COLUMNS = [\n COL.id(),\n COL.name(),\n { header: 'TYPE', getValue: (item: any) => item.type ?? '' },\n COL.status(),\n];\n\nexport const supervisorsDomain: DomainDef = {\n name: 'supervisors',\n description: 'Manage supervisors',\n commands: [\n ...crudCommands({\n prefix: ['supervisors'],\n entityName: 'supervisor',\n listMethod: 'getSupervisors',\n getMethod: 'getSupervisor',\n createMethod: 'createSupervisor',\n updateMethod: 'updateSupervisor',\n deleteMethod: 'deleteSupervisor',\n columns: COLUMNS,\n }),\n ],\n};\n","import type { DomainDef } from '../lib/types';\nimport { crudCommands } from '../lib/crud';\nimport { COL } from '../lib/output';\n\nconst COLUMNS = [\n COL.id(),\n COL.name(),\n COL.status(),\n { header: 'DUE DATE', getValue: (item: any) => item.due_date ?? '' },\n];\n\nexport const milestonesDomain: DomainDef = {\n name: 'milestones',\n description: 'Manage milestones',\n commands: [\n ...crudCommands({\n prefix: ['milestones'],\n entityName: 'milestone',\n listMethod: 'getMilestones',\n getMethod: 'getMilestone',\n createMethod: 'createMilestone',\n updateMethod: 'updateMilestone',\n deleteMethod: 'deleteMilestone',\n columns: COLUMNS,\n }),\n ],\n};\n","import { type DomainDef, requireNumber } from '../lib/types';\nimport { crudCommands } from '../lib/crud';\nimport { outputSingle, COL } from '../lib/output';\n\nconst COLUMNS = [COL.id(), COL.name(), COL.description(), COL.enabled()];\n\nconst TOOL_COLUMNS = [COL.id(), COL.name(), COL.description()];\n\nexport const customToolkitsDomain: DomainDef = {\n name: 'custom-toolkits',\n description: 'Manage custom toolkits and their tools',\n commands: [\n ...crudCommands({\n prefix: ['custom-toolkits'],\n entityName: 'custom toolkit',\n listMethod: 'getCustomToolkits',\n getMethod: 'getCustomToolkit',\n createMethod: 'createCustomToolkit',\n updateMethod: 'updateCustomToolkit',\n deleteMethod: 'deleteCustomToolkit',\n columns: COLUMNS,\n }),\n {\n path: ['custom-toolkits', 'enable'],\n description: 'Enable a custom toolkit',\n mutates: true,\n requiresWorkspace: true,\n args: [{ name: 'id', description: 'Custom toolkit ID', required: true }],\n handler: async ({ ctx, workspace, args }) => {\n const result = await ctx.apiClient.enableCustomToolkit(\n workspace,\n requireNumber(args, 'id')\n );\n outputSingle(result, ctx, COLUMNS);\n },\n },\n {\n path: ['custom-toolkits', 'disable'],\n description: 'Disable a custom toolkit',\n mutates: true,\n requiresWorkspace: true,\n args: [{ name: 'id', description: 'Custom toolkit ID', required: true }],\n handler: async ({ ctx, workspace, args }) => {\n const result = await ctx.apiClient.disableCustomToolkit(\n workspace,\n requireNumber(args, 'id')\n );\n outputSingle(result, ctx, COLUMNS);\n },\n },\n ...crudCommands({\n prefix: ['custom-toolkits', 'tools'],\n entityName: 'custom tool',\n createMethod: 'createCustomTool',\n updateMethod: 'updateCustomTool',\n deleteMethod: 'deleteCustomTool',\n columns: TOOL_COLUMNS,\n }),\n ],\n};\n","import { type DomainDef, requireNumber } from '../lib/types';\nimport { crudCommands } from '../lib/crud';\nimport { outputData, outputSingle, COL } from '../lib/output';\n\nconst COLUMNS = [\n COL.id(),\n COL.name(),\n { header: 'URL', getValue: (item: any) => item.url ?? '' },\n COL.enabled(),\n];\n\nexport const mcpServersDomain: DomainDef = {\n name: 'mcp-servers',\n description: 'Manage MCP servers',\n commands: [\n ...crudCommands({\n prefix: ['mcp-servers'],\n entityName: 'MCP server',\n listMethod: 'getMcpServers',\n getMethod: 'getMcpServer',\n createMethod: 'createMcpServer',\n updateMethod: 'updateMcpServer',\n deleteMethod: 'deleteMcpServer',\n columns: COLUMNS,\n }),\n {\n path: ['mcp-servers', 'enable'],\n description: 'Enable an MCP server',\n mutates: true,\n requiresWorkspace: true,\n args: [{ name: 'id', description: 'MCP server ID', required: true }],\n handler: async ({ ctx, workspace, args }) => {\n const result = await ctx.apiClient.enableMcpServer(\n workspace,\n requireNumber(args, 'id')\n );\n outputSingle(result, ctx, COLUMNS);\n },\n },\n {\n path: ['mcp-servers', 'disable'],\n description: 'Disable an MCP server',\n mutates: true,\n requiresWorkspace: true,\n args: [{ name: 'id', description: 'MCP server ID', required: true }],\n handler: async ({ ctx, workspace, args }) => {\n const result = await ctx.apiClient.disableMcpServer(\n workspace,\n requireNumber(args, 'id')\n );\n outputSingle(result, ctx, COLUMNS);\n },\n },\n {\n path: ['mcp-servers', 'tools'],\n description: 'List tools for an MCP server',\n requiresWorkspace: true,\n args: [{ name: 'id', description: 'MCP server ID', required: true }],\n handler: async ({ ctx, workspace, args }) => {\n const result = await ctx.apiClient.getMcpServerTools(\n workspace,\n requireNumber(args, 'id')\n );\n outputData(result, ctx);\n },\n },\n ],\n};\n","import { type DomainDef, requireNumber } from '../lib/types';\nimport type { TableColumn } from '../lib/output';\nimport { outputData, outputSingle, COL } from '../lib/output';\n\nconst COLUMNS: TableColumn<unknown>[] = [\n COL.id(),\n COL.name(),\n { header: 'PREFIX', getValue: (item: any) => item.prefix ?? '' },\n COL.created(),\n];\n\nexport const apiKeysDomain: DomainDef = {\n name: 'api-keys',\n description: 'Manage API keys',\n commands: [\n {\n path: ['api-keys', 'list'],\n description: 'List workspace API keys',\n requiresWorkspace: true,\n handler: async ({ ctx, workspace }) => {\n const result = await ctx.apiClient.getApiKeys(workspace);\n outputData(result, ctx, COLUMNS);\n },\n },\n {\n path: ['api-keys', 'create'],\n description: 'Create a workspace API key',\n mutates: true,\n requiresWorkspace: true,\n handler: async ({ ctx, workspace, data }) => {\n const result = await ctx.apiClient.createApiKey(workspace, data as any);\n outputSingle(result, ctx, COLUMNS);\n },\n },\n {\n path: ['api-keys', 'revoke'],\n description: 'Revoke a workspace API key',\n mutates: true,\n requiresWorkspace: true,\n args: [{ name: 'id', description: 'API key ID', required: true }],\n handler: async ({ ctx, workspace, args }) => {\n const id = requireNumber(args, 'id');\n await ctx.apiClient.revokeApiKey(workspace, id);\n process.stdout.write(`Revoked API key ${id}\\n`);\n },\n },\n {\n path: ['api-keys', 'global-list'],\n description: 'List global/account-level API keys',\n requiresWorkspace: false,\n handler: async ({ ctx }) => {\n const result = await ctx.apiClient.getGlobalApiKeys();\n outputData(result, ctx, COLUMNS);\n },\n },\n {\n path: ['api-keys', 'global-create'],\n description: 'Create a global/account-level API key',\n requiresWorkspace: false,\n handler: async ({ ctx, data }) => {\n const result = await ctx.apiClient.createGlobalApiKey(data as any);\n outputSingle(result, ctx, COLUMNS);\n },\n },\n {\n path: ['api-keys', 'global-revoke'],\n description: 'Revoke a global/account-level API key',\n requiresWorkspace: false,\n args: [{ name: 'id', description: 'API key ID', required: true }],\n handler: async ({ ctx, args }) => {\n const id = requireNumber(args, 'id');\n await ctx.apiClient.revokeGlobalApiKey(id);\n process.stdout.write(`Revoked global API key ${id}\\n`);\n },\n },\n ],\n};\n","import type { DomainDef } from '../lib/types';\nimport { requireNumber } from '../lib/types';\nimport type { TableColumn } from '../lib/output';\nimport { outputData, outputSingle, COL } from '../lib/output';\n\nconst COLUMNS: TableColumn<unknown>[] = [\n COL.id(),\n COL.status(),\n { header: 'PLAN', getValue: (item: any) => item.plan_name ?? item.plan ?? '' },\n COL.created(),\n];\n\nexport const subscriptionsDomain: DomainDef = {\n name: 'subscriptions',\n description: 'Manage subscriptions',\n commands: [\n {\n path: ['subscriptions', 'list'],\n description: 'List all subscriptions',\n requiresWorkspace: false,\n handler: async ({ ctx }) => {\n const result = await ctx.apiClient.getSubscriptions();\n outputData(result, ctx, COLUMNS);\n },\n },\n {\n path: ['subscriptions', 'workspace'],\n description: 'List subscriptions for a workspace',\n requiresWorkspace: true,\n handler: async ({ ctx, workspace }) => {\n const result = await ctx.apiClient.getWorkspaceSubscriptions(workspace);\n outputData(result, ctx, COLUMNS);\n },\n },\n {\n path: ['subscriptions', 'cancel'],\n description: 'Cancel a subscription',\n mutates: true,\n requiresWorkspace: false,\n args: [{ name: 'id', description: 'Subscription ID', required: true }],\n handler: async ({ ctx, args }) => {\n const result = await ctx.apiClient.cancelSubscription(requireNumber(args, 'id'));\n outputSingle(result, ctx, COLUMNS);\n },\n },\n {\n path: ['subscriptions', 'reactivate'],\n description: 'Reactivate a cancelled subscription',\n requiresWorkspace: false,\n args: [{ name: 'id', description: 'Subscription ID', required: true }],\n handler: async ({ ctx, args }) => {\n const result = await ctx.apiClient.reactivateSubscription(requireNumber(args, 'id'));\n outputSingle(result, ctx, COLUMNS);\n },\n },\n {\n path: ['subscriptions', 'update'],\n description: 'Update a subscription',\n mutates: true,\n requiresWorkspace: false,\n args: [{ name: 'id', description: 'Subscription ID', required: true }],\n handler: async ({ ctx, args, data }) => {\n const result = await ctx.apiClient.updateSubscription(\n requireNumber(args, 'id'),\n data as any\n );\n outputSingle(result, ctx, COLUMNS);\n },\n },\n ],\n};\n","import type { DomainDef } from '../lib/types';\nimport { requireNumber } from '../lib/types';\nimport { outputSingle } from '../lib/output';\n\nexport const reportsDomain: DomainDef = {\n name: 'reports',\n description: 'View usage reports',\n commands: [\n {\n path: ['reports', 'ai-usage'],\n description: 'Get AI usage report',\n requiresWorkspace: true,\n handler: async ({ ctx, workspace }) => {\n const result = await ctx.apiClient.getAIUsageReport(workspace);\n outputSingle(result, ctx);\n },\n },\n {\n path: ['reports', 'sms-usage'],\n description: 'Get SMS usage report',\n requiresWorkspace: true,\n handler: async ({ ctx, workspace }) => {\n const result = await ctx.apiClient.getSMSUsageReport(workspace);\n outputSingle(result, ctx);\n },\n },\n {\n path: ['reports', 'phone-usage'],\n description: 'Get phone usage report',\n requiresWorkspace: true,\n handler: async ({ ctx, workspace }) => {\n const result = await ctx.apiClient.getPhoneUsageReport(workspace);\n outputSingle(result, ctx);\n },\n },\n {\n path: ['reports', 'voice-usage'],\n description: 'Get voice usage report',\n requiresWorkspace: true,\n handler: async ({ ctx, workspace }) => {\n const result = await ctx.apiClient.getVoiceUsageReport(workspace);\n outputSingle(result, ctx);\n },\n },\n {\n path: ['reports', 'member-usage'],\n description: 'Get usage for a specific member',\n requiresWorkspace: true,\n args: [{ name: 'member-id', description: 'Member ID', required: true }],\n handler: async ({ ctx, workspace, args }) => {\n const result = await ctx.apiClient.getMemberUsage(\n workspace,\n requireNumber(args, 'member-id')\n );\n outputSingle(result, ctx);\n },\n },\n ],\n};\n","import type { DomainDef } from '../lib/types';\nimport type { TableColumn } from '../lib/output';\nimport { outputData } from '../lib/output';\n\nconst COLUMNS: TableColumn<unknown>[] = [\n { header: 'ID', getValue: (item: any) => String(item.id ?? item.model_id ?? '') },\n { header: 'NAME', getValue: (item: any) => item.name ?? item.display_name ?? '' },\n { header: 'PROVIDER', getValue: (item: any) => item.provider ?? '' },\n { header: 'TYPE', getValue: (item: any) => item.type ?? '' },\n];\n\nexport const aiModelsDomain: DomainDef = {\n name: 'ai-models',\n description: 'List available AI models',\n commands: [\n {\n path: ['ai-models', 'list'],\n description: 'List all available AI models',\n requiresWorkspace: false,\n handler: async ({ ctx }) => {\n const result = await ctx.apiClient.getAllModels();\n outputData(result, ctx, COLUMNS);\n },\n },\n {\n path: ['ai-models', 'chat'],\n description: 'List chat models',\n requiresWorkspace: false,\n handler: async ({ ctx }) => {\n const result = await ctx.apiClient.getChatModels();\n outputData(result, ctx, COLUMNS);\n },\n },\n {\n path: ['ai-models', 'realtime'],\n description: 'List realtime models',\n requiresWorkspace: false,\n handler: async ({ ctx }) => {\n const result = await ctx.apiClient.getRealtimeModels();\n outputData(result, ctx, COLUMNS);\n },\n },\n {\n path: ['ai-models', 'voice'],\n description: 'List voice models',\n requiresWorkspace: false,\n handler: async ({ ctx }) => {\n const result = await ctx.apiClient.getVoiceModels();\n outputData(result, ctx, COLUMNS);\n },\n },\n ],\n};\n","import { type DomainDef, requireString } from '../lib/types';\nimport { outputData, outputSingle, COL } from '../lib/output';\n\nconst COLUMNS = [\n { header: 'SLUG', getValue: (item: any) => item.slug ?? '' },\n COL.name(),\n COL.description(),\n];\n\nexport const featuresDomain: DomainDef = {\n name: 'features',\n description: 'List available features',\n commands: [\n {\n path: ['features', 'list'],\n description: 'List all available features',\n requiresWorkspace: false,\n handler: async ({ ctx }) => {\n const result = await ctx.apiClient.getFeatureRegistry();\n outputData(result, ctx, COLUMNS);\n },\n },\n {\n path: ['features', 'get'],\n description: 'Get a feature by slug',\n requiresWorkspace: false,\n args: [{ name: 'slug', description: 'Feature slug', required: true }],\n handler: async ({ ctx, args }) => {\n const result = await ctx.apiClient.getFeatureBySlug(requireString(args, 'slug'));\n outputSingle(result, ctx, COLUMNS);\n },\n },\n {\n path: ['features', 'workspace'],\n description: 'List available features for a workspace',\n requiresWorkspace: true,\n handler: async ({ ctx, workspace }) => {\n const result = await ctx.apiClient.getAvailableWorkspaceFeatures();\n outputData(result, ctx, COLUMNS);\n },\n },\n ],\n};\n","import { type DomainDef, requireString, requireNumber } from '../lib/types';\nimport type { TableColumn } from '../lib/output';\nimport { outputData, outputSingle, COL } from '../lib/output';\n\nconst COLUMNS: TableColumn<unknown>[] = [\n COL.id(),\n { header: 'WORD', getValue: (item: any) => item.word ?? '' },\n { header: 'PRONUNCIATION', getValue: (item: any) => item.pronunciation ?? '' },\n { header: 'TYPE', getValue: (item: any) => item.type ?? '' },\n];\n\nexport const pronunciationsDomain: DomainDef = {\n name: 'pronunciations',\n description: 'Manage pronunciation entries',\n commands: [\n {\n path: ['pronunciations', 'list'],\n description: 'List pronunciation entries',\n requiresWorkspace: true,\n handler: async ({ ctx, workspace }) => {\n const result = await ctx.apiClient.getPronunciationEntries(workspace);\n outputData(result, ctx, COLUMNS);\n },\n },\n {\n path: ['pronunciations', 'create'],\n description: 'Create a pronunciation entry',\n mutates: true,\n requiresWorkspace: true,\n handler: async ({ ctx, workspace, data }) => {\n const result = await ctx.apiClient.createPronunciationEntry(workspace, data as any);\n outputSingle(result, ctx, COLUMNS);\n },\n },\n {\n path: ['pronunciations', 'update'],\n description: 'Update a pronunciation entry',\n mutates: true,\n requiresWorkspace: true,\n args: [{ name: 'id', description: 'Pronunciation entry ID', required: true }],\n handler: async ({ ctx, workspace, args, data }) => {\n const result = await ctx.apiClient.updatePronunciationEntry(\n workspace,\n requireNumber(args, 'id'),\n data as any\n );\n outputSingle(result, ctx, COLUMNS);\n },\n },\n {\n path: ['pronunciations', 'delete'],\n description: 'Delete a pronunciation entry',\n mutates: true,\n requiresWorkspace: true,\n args: [{ name: 'id', description: 'Pronunciation entry ID', required: true }],\n handler: async ({ ctx, workspace, args }) => {\n const id = requireNumber(args, 'id');\n await ctx.apiClient.deletePronunciationEntry(workspace, id);\n process.stdout.write(`Deleted pronunciation entry ${id}\\n`);\n },\n },\n {\n path: ['pronunciations', 'my-list'],\n description: 'List my personal pronunciations',\n requiresWorkspace: true,\n handler: async ({ ctx }) => {\n const result = await ctx.apiClient.getMyPronunciations();\n outputData(result, ctx, COLUMNS);\n },\n },\n {\n path: ['pronunciations', 'my-create'],\n description: 'Create a personal pronunciation',\n mutates: true,\n requiresWorkspace: true,\n handler: async ({ ctx, data }) => {\n const result = await ctx.apiClient.createMyPronunciation(data as any);\n outputSingle(result, ctx, COLUMNS);\n },\n },\n {\n path: ['pronunciations', 'suggest'],\n description: 'Get pronunciation suggestions for a word',\n requiresWorkspace: true,\n args: [{ name: 'word', description: 'Word to get suggestions for', required: true }],\n handler: async ({ ctx, args }) => {\n const result = await ctx.apiClient.suggestPronunciations(requireString(args, 'word'));\n outputData(result, ctx);\n },\n },\n {\n path: ['pronunciations', 'voices'],\n description: 'Get recommended voices',\n requiresWorkspace: true,\n handler: async ({ ctx }) => {\n const result = await ctx.apiClient.getRecommendedVoices();\n outputData(result, ctx);\n },\n },\n ],\n};\n","import type { DomainDef } from '../lib/types';\nimport { outputData, COL } from '../lib/output';\n\nconst ORG_COLUMNS = [\n COL.id(),\n COL.name(),\n { header: 'ROLE', getValue: (item: any) => item.role ?? '' },\n];\n\nexport const orgDomain: DomainDef = {\n name: 'org',\n description: 'Organization membership',\n commands: [\n {\n path: ['org', 'list'],\n description: 'List my organizations',\n requiresWorkspace: false,\n handler: async ({ ctx }) => {\n const result = await ctx.apiClient.getMyOrganizations();\n outputData(result, ctx, ORG_COLUMNS);\n },\n },\n ],\n};\n","import { type DomainDef, requireNumber } from '../lib/types';\nimport { outputSingle, outputData } from '../lib/output';\n\nexport const authManageDomain: DomainDef = {\n name: 'auth',\n description: 'Manage authentication, 2FA, and credentials',\n commands: [\n {\n path: ['auth', 'account'],\n description: 'Get current user account info',\n requiresWorkspace: false,\n handler: async ({ ctx }) => {\n const result = await ctx.apiClient.getUserAccount();\n outputSingle(result, ctx);\n },\n },\n {\n path: ['auth', 'update-account'],\n description: 'Update current user account',\n mutates: true,\n requiresWorkspace: false,\n handler: async ({ ctx, data }) => {\n const result = await ctx.apiClient.updateUserAccount(data as any);\n outputSingle(result, ctx);\n },\n },\n {\n path: ['auth', 'password-status'],\n description: 'Get password status',\n requiresWorkspace: false,\n handler: async ({ ctx }) => {\n const result = await ctx.apiClient.getPasswordStatus();\n outputSingle(result, ctx);\n },\n },\n {\n path: ['auth', 'change-password'],\n description: 'Change password',\n mutates: true,\n requiresWorkspace: false,\n handler: async ({ ctx, data }) => {\n const result = await ctx.apiClient.changePassword(\n (data as any)?.currentPassword,\n (data as any)?.newPassword\n );\n outputSingle(result, ctx);\n },\n },\n {\n path: ['auth', 'set-password'],\n description: 'Set password (for accounts without one)',\n mutates: true,\n requiresWorkspace: false,\n handler: async ({ ctx, data }) => {\n const result = await ctx.apiClient.setPassword(data as any);\n outputSingle(result, ctx);\n },\n },\n {\n path: ['auth', '2fa-status'],\n description: 'Get two-factor authentication status',\n requiresWorkspace: false,\n handler: async ({ ctx }) => {\n const result = await ctx.apiClient.getTwoFactorStatus();\n outputSingle(result, ctx);\n },\n },\n {\n path: ['auth', 'pending-credential-changes'],\n description: 'List pending credential changes',\n requiresWorkspace: false,\n handler: async ({ ctx }) => {\n const result = await ctx.apiClient.getPendingCredentialChanges();\n outputData(result, ctx);\n },\n },\n {\n path: ['auth', 'request-credential-change'],\n description: 'Request a credential change',\n mutates: true,\n requiresWorkspace: false,\n handler: async ({ ctx, data }) => {\n const result = await ctx.apiClient.requestCredentialChange(\n (data as any)?.credentialType,\n (data as any)?.newValue\n );\n outputSingle(result, ctx);\n },\n },\n {\n path: ['auth', 'cancel-credential-change'],\n description: 'Cancel a pending credential change',\n mutates: true,\n requiresWorkspace: false,\n args: [{ name: 'id', description: 'Credential change ID', required: true }],\n handler: async ({ ctx, args }) => {\n await ctx.apiClient.cancelCredentialChange(requireNumber(args, 'id'));\n process.stdout.write(`Cancelled credential change ${args.id}\\n`);\n },\n },\n ],\n};\n","import { type DomainDef, requireString } from '../lib/types';\nimport type { TableColumn } from '../lib/output';\nimport { crudCommands } from '../lib/crud';\nimport { outputData, outputSingle, COL } from '../lib/output';\n\nconst APP_COLUMNS: TableColumn<unknown>[] = [\n COL.id(),\n COL.name(),\n { header: 'CLIENT_ID', getValue: (item: any) => item.client_id ?? '' },\n COL.status(),\n];\n\nconst BUILDER_COLUMNS: TableColumn<unknown>[] = [COL.id(), COL.name(), COL.status()];\n\nconst INQUIRY_COLUMNS: TableColumn<unknown>[] = [COL.id(), COL.status(), COL.created()];\n\nexport const appsDomain: DomainDef = {\n name: 'apps',\n description: 'Manage apps, builders, and inquiries',\n commands: [\n // Apps\n {\n path: ['apps', 'list'],\n description: 'List apps',\n requiresWorkspace: false,\n handler: async ({ ctx }) => {\n const result = await ctx.apiClient.listApps();\n outputData(result, ctx, APP_COLUMNS);\n },\n },\n {\n path: ['apps', 'get'],\n description: 'Get an app by ID',\n requiresWorkspace: false,\n args: [{ name: 'id', description: 'App ID', required: true }],\n handler: async ({ ctx, args }) => {\n const result = await ctx.apiClient.getApp(requireString(args, 'id'));\n outputSingle(result, ctx, APP_COLUMNS);\n },\n },\n {\n path: ['apps', 'create'],\n description: 'Create an app',\n mutates: true,\n requiresWorkspace: false,\n handler: async ({ ctx, data }) => {\n const result = await ctx.apiClient.createApp(data as any);\n outputSingle(result, ctx, APP_COLUMNS);\n },\n },\n {\n path: ['apps', 'update'],\n description: 'Update an app',\n mutates: true,\n requiresWorkspace: false,\n args: [{ name: 'id', description: 'App ID', required: true }],\n handler: async ({ ctx, args, data }) => {\n const result = await ctx.apiClient.updateApp(requireString(args, 'id'), data as any);\n outputSingle(result, ctx, APP_COLUMNS);\n },\n },\n {\n path: ['apps', 'delete'],\n description: 'Delete an app',\n mutates: true,\n requiresWorkspace: false,\n args: [{ name: 'id', description: 'App ID', required: true }],\n handler: async ({ ctx, args }) => {\n const id = requireString(args, 'id');\n await ctx.apiClient.deleteApp(id);\n process.stdout.write(`Deleted app ${id}\\n`);\n },\n },\n {\n path: ['apps', 'regenerate-secret'],\n description: 'Regenerate client secret for an app',\n requiresWorkspace: false,\n args: [{ name: 'id', description: 'App ID', required: true }],\n handler: async ({ ctx, args }) => {\n const result = await ctx.apiClient.regenerateClientSecret(requireString(args, 'id'));\n outputSingle(result, ctx);\n },\n },\n\n // Builders\n ...crudCommands({\n prefix: ['apps', 'builders'],\n entityName: 'builder',\n listMethod: 'listBuilders',\n getMethod: 'getBuilder',\n createMethod: 'createBuilder',\n updateMethod: 'updateBuilder',\n deleteMethod: 'deleteBuilder',\n columns: BUILDER_COLUMNS,\n requiresWorkspace: false,\n }),\n {\n path: ['apps', 'builders', 'apps'],\n description: 'List apps for a builder',\n requiresWorkspace: false,\n args: [{ name: 'id', description: 'Builder ID', required: true }],\n handler: async ({ ctx, args }) => {\n const result = await ctx.apiClient.getBuilderApps(requireString(args, 'id'));\n outputData(result, ctx, APP_COLUMNS);\n },\n },\n\n // Inquiries\n ...crudCommands({\n prefix: ['apps', 'inquiries'],\n entityName: 'inquiry',\n listMethod: 'listInquiries',\n getMethod: 'getInquiry',\n createMethod: 'createInquiry',\n updateMethod: 'updateInquiry',\n deleteMethod: 'deleteInquiry',\n columns: INQUIRY_COLUMNS,\n requiresWorkspace: false,\n }),\n ],\n};\n","import { type DomainDef, requireString } from '../lib/types';\nimport { outputSingle, outputData } from '../lib/output';\n\nexport const oauthDomain: DomainDef = {\n name: 'oauth',\n description: 'Manage OAuth connections',\n commands: [\n {\n path: ['oauth', 'status'],\n description: 'Get OAuth connection status for a provider',\n requiresWorkspace: false,\n args: [{ name: 'provider', description: 'OAuth provider name', required: true }],\n handler: async ({ ctx, args }) => {\n const result = await ctx.apiClient.getOAuthConnectionStatus(\n requireString(args, 'provider') as any\n );\n outputSingle(result, ctx);\n },\n },\n {\n path: ['oauth', 'auth-url'],\n description: 'Get OAuth authorization URL for a provider',\n requiresWorkspace: false,\n args: [{ name: 'provider', description: 'OAuth provider name', required: true }],\n handler: async ({ ctx, args }) => {\n const result = await ctx.apiClient.getOAuthAuthorizationUrl(\n requireString(args, 'provider') as any\n );\n outputSingle(result, ctx);\n },\n },\n {\n path: ['oauth', 'disconnect'],\n description: 'Disconnect an OAuth provider',\n mutates: true,\n requiresWorkspace: false,\n args: [{ name: 'provider', description: 'OAuth provider name', required: true }],\n handler: async ({ ctx, args }) => {\n const provider = requireString(args, 'provider');\n await ctx.apiClient.disconnectOAuthProvider(provider as any);\n process.stdout.write(`Disconnected OAuth provider ${provider}\\n`);\n },\n },\n {\n path: ['oauth', 'scopes'],\n description: 'List available OAuth scopes',\n requiresWorkspace: false,\n handler: async ({ ctx }) => {\n const result = await ctx.apiClient.getAvailableScopes();\n outputData(result, ctx);\n },\n },\n ],\n};\n","import { type DomainDef, requireNumber } from '../../lib/types';\nimport { crudCommands } from '../../lib/crud';\nimport { outputData, outputSingle, COL } from '../../lib/output';\n\nconst COLUMNS = [COL.id(), COL.name(), COL.status()];\n\nexport const discordBotsDomain: DomainDef = {\n name: 'discord-bots',\n description: 'Manage Discord bot integrations',\n commands: [\n ...crudCommands({\n prefix: ['discord-bots'],\n entityName: 'Discord bot',\n listMethod: 'getDiscordBots',\n getMethod: 'getDiscordBot',\n createMethod: 'createDiscordBot',\n updateMethod: 'updateDiscordBot',\n deleteMethod: 'deleteDiscordBot',\n columns: COLUMNS,\n }),\n {\n path: ['discord-bots', 'register-commands'],\n description: 'Register slash commands for a Discord bot',\n mutates: true,\n requiresWorkspace: true,\n args: [{ name: 'id', description: 'Discord bot ID', required: true }],\n handler: async ({ ctx, workspace, args }) => {\n const result = await ctx.apiClient.registerDiscordSlashCommands(\n workspace,\n requireNumber(args, 'id')\n );\n outputSingle(result, ctx);\n },\n },\n {\n path: ['discord-bots', 'threads'],\n description: 'List Discord threads',\n requiresWorkspace: true,\n args: [{ name: 'id', description: 'Discord bot ID', required: true }],\n handler: async ({ ctx, workspace, args }) => {\n const result = await ctx.apiClient.getDiscordThreads(\n workspace,\n requireNumber(args, 'id')\n );\n outputData(result, ctx);\n },\n },\n {\n path: ['discord-bots', 'guilds'],\n description: 'List Discord guilds',\n requiresWorkspace: true,\n args: [{ name: 'id', description: 'Discord bot ID', required: true }],\n handler: async ({ ctx, workspace, args }) => {\n const result = await ctx.apiClient.getDiscordGuilds(\n workspace,\n requireNumber(args, 'id')\n );\n outputData(result, ctx);\n },\n },\n {\n path: ['discord-bots', 'accounts'],\n description: 'List Discord bot accounts',\n requiresWorkspace: true,\n args: [{ name: 'id', description: 'Discord bot ID', required: true }],\n handler: async ({ ctx, workspace, args }) => {\n const result = await ctx.apiClient.getDiscordBotAccounts(\n workspace,\n requireNumber(args, 'id')\n );\n outputData(result, ctx);\n },\n },\n ],\n};\n","import { type DomainDef, requireNumber } from '../../lib/types';\nimport { crudCommands } from '../../lib/crud';\nimport { outputData, COL } from '../../lib/output';\n\nconst COLUMNS = [COL.id(), COL.name(), COL.status()];\n\nexport const slackAppsDomain: DomainDef = {\n name: 'slack-apps',\n description: 'Manage Slack app integrations',\n commands: [\n ...crudCommands({\n prefix: ['slack-apps'],\n entityName: 'Slack app',\n listMethod: 'getSlackApps',\n getMethod: 'getSlackApp',\n createMethod: 'createSlackApp',\n updateMethod: 'updateSlackApp',\n deleteMethod: 'deleteSlackApp',\n columns: COLUMNS,\n }),\n {\n path: ['slack-apps', 'threads'],\n description: 'List Slack threads',\n requiresWorkspace: true,\n args: [{ name: 'id', description: 'Slack app ID', required: true }],\n handler: async ({ ctx, workspace, args }) => {\n const result = await ctx.apiClient.getSlackThreads(\n workspace,\n requireNumber(args, 'id')\n );\n outputData(result, ctx);\n },\n },\n {\n path: ['slack-apps', 'installations'],\n description: 'List Slack installations',\n requiresWorkspace: true,\n args: [{ name: 'id', description: 'Slack app ID', required: true }],\n handler: async ({ ctx, workspace, args }) => {\n const result = await ctx.apiClient.getSlackInstallations(\n workspace,\n requireNumber(args, 'id')\n );\n outputData(result, ctx);\n },\n },\n {\n path: ['slack-apps', 'accounts'],\n description: 'List Slack app accounts',\n requiresWorkspace: true,\n args: [{ name: 'id', description: 'Slack app ID', required: true }],\n handler: async ({ ctx, workspace, args }) => {\n const result = await ctx.apiClient.getSlackAppAccounts(\n workspace,\n requireNumber(args, 'id')\n );\n outputData(result, ctx);\n },\n },\n ],\n};\n","import { type DomainDef, requireNumber } from '../../lib/types';\nimport type { TableColumn } from '../../lib/output';\nimport { crudCommands } from '../../lib/crud';\nimport { outputSingle, COL } from '../../lib/output';\n\nconst COLUMNS: TableColumn<unknown>[] = [\n COL.id(),\n COL.name(),\n { header: 'URL', getValue: (item: any) => item.base_url ?? '' },\n COL.status(),\n];\n\nexport const fhirConnectionsDomain: DomainDef = {\n name: 'fhir-connections',\n description: 'Manage FHIR connections',\n commands: [\n ...crudCommands({\n prefix: ['fhir-connections'],\n entityName: 'FHIR connection',\n listMethod: 'getFhirConnections',\n getMethod: 'getFhirConnection',\n createMethod: 'createFhirConnection',\n updateMethod: 'updateFhirConnection',\n deleteMethod: 'deleteFhirConnection',\n columns: COLUMNS,\n }),\n {\n path: ['fhir-connections', 'test'],\n description: 'Test a FHIR connection',\n requiresWorkspace: true,\n args: [{ name: 'id', description: 'FHIR connection ID', required: true }],\n handler: async ({ ctx, workspace, args }) => {\n const result = await ctx.apiClient.testFhirConnection(\n workspace,\n requireNumber(args, 'id')\n );\n outputSingle(result, ctx);\n },\n },\n ],\n};\n","import { type DomainDef, requireString } from '../../lib/types';\nimport { outputData, outputSingle, COL } from '../../lib/output';\n\nconst COLUMNS = [\n COL.id(),\n COL.name(),\n { header: 'TYPE', getValue: (item: any) => item.type ?? '' },\n COL.status(),\n];\n\nexport const appConnectionsDomain: DomainDef = {\n name: 'app-connections',\n description: 'Manage platform app connections',\n commands: [\n {\n path: ['app-connections', 'available'],\n description: 'List available app connections',\n requiresWorkspace: true,\n handler: async ({ ctx, workspace }) => {\n const result = await ctx.apiClient.listAvailableAppConnections(workspace);\n outputData(result, ctx, COLUMNS);\n },\n },\n {\n path: ['app-connections', 'list'],\n description: 'List enabled app connections',\n requiresWorkspace: true,\n handler: async ({ ctx, workspace }) => {\n const result = await ctx.apiClient.listAppConnections(workspace);\n outputData(result, ctx, COLUMNS);\n },\n },\n {\n path: ['app-connections', 'enable'],\n description: 'Enable a platform app',\n mutates: true,\n requiresWorkspace: true,\n args: [{ name: 'id', description: 'App connection ID', required: true }],\n handler: async ({ ctx, workspace, args }) => {\n const result = await ctx.apiClient.enablePlatformApp(workspace, {\n app_slug: requireString(args, 'id'),\n } as any);\n outputSingle(result, ctx, COLUMNS);\n },\n },\n {\n path: ['app-connections', 'get'],\n description: 'Get a platform app',\n requiresWorkspace: true,\n args: [{ name: 'id', description: 'App connection ID', required: true }],\n handler: async ({ ctx, workspace, args }) => {\n const result = await ctx.apiClient.getPlatformApp(workspace, requireString(args, 'id'));\n outputSingle(result, ctx, COLUMNS);\n },\n },\n {\n path: ['app-connections', 'update'],\n description: 'Update a platform app',\n mutates: true,\n requiresWorkspace: true,\n args: [{ name: 'id', description: 'App connection ID', required: true }],\n handler: async ({ ctx, workspace, args, data }) => {\n const result = await ctx.apiClient.updatePlatformApp(\n workspace,\n requireString(args, 'id'),\n data as any\n );\n outputSingle(result, ctx, COLUMNS);\n },\n },\n {\n path: ['app-connections', 'delete'],\n description: 'Delete a platform app',\n mutates: true,\n requiresWorkspace: true,\n args: [{ name: 'id', description: 'App connection ID', required: true }],\n handler: async ({ ctx, workspace, args }) => {\n const id = requireString(args, 'id');\n await ctx.apiClient.deletePlatformApp(workspace, id);\n process.stdout.write(`Deleted app connection ${id}\\n`);\n },\n },\n ],\n};\n","import { type DomainDef, requireString } from '../../lib/types';\nimport { outputData, outputSingle } from '../../lib/output';\n\nexport const mondayDomain: DomainDef = {\n name: 'monday',\n description: 'Monday.com integration',\n commands: [\n {\n path: ['monday', 'boards'],\n description: 'List Monday.com boards',\n requiresWorkspace: true,\n handler: async ({ ctx }) => {\n const result = await ctx.apiClient.getMondayBoards();\n outputData(result, ctx);\n },\n },\n {\n path: ['monday', 'board-columns'],\n description: 'List columns for a Monday.com board',\n requiresWorkspace: true,\n args: [{ name: 'board-id', description: 'Board ID', required: true }],\n handler: async ({ ctx, args }) => {\n const result = await ctx.apiClient.getMondayBoardColumns(\n requireString(args, 'board-id')\n );\n outputData(result, ctx);\n },\n },\n {\n path: ['monday', 'board-groups'],\n description: 'List groups for a Monday.com board',\n requiresWorkspace: true,\n args: [{ name: 'board-id', description: 'Board ID', required: true }],\n handler: async ({ ctx, args }) => {\n const result = await ctx.apiClient.getMondayBoardGroups(\n requireString(args, 'board-id')\n );\n outputData(result, ctx);\n },\n },\n {\n path: ['monday', 'webhook-get'],\n description: 'Get a Monday.com webhook',\n requiresWorkspace: true,\n args: [\n { name: 'board-id', description: 'Board ID', required: true },\n { name: 'id', description: 'Webhook ID', required: true },\n ],\n handler: async ({ ctx, args }) => {\n const result = await ctx.apiClient.getMondayWebhook(\n requireString(args, 'board-id'),\n requireString(args, 'id')\n );\n outputSingle(result, ctx);\n },\n },\n {\n path: ['monday', 'webhook-create'],\n description: 'Create a Monday.com webhook',\n mutates: true,\n requiresWorkspace: true,\n handler: async ({ ctx, data }) => {\n const result = await ctx.apiClient.createMondayWebhook(data as any);\n outputSingle(result, ctx);\n },\n },\n {\n path: ['monday', 'webhook-delete'],\n description: 'Delete a Monday.com webhook',\n mutates: true,\n requiresWorkspace: true,\n args: [{ name: 'id', description: 'Webhook ID', required: true }],\n handler: async ({ ctx, args }) => {\n const id = requireString(args, 'id');\n await ctx.apiClient.deleteMondayWebhook(id);\n process.stdout.write(`Deleted Monday webhook ${id}\\n`);\n },\n },\n {\n path: ['monday', 'user-info'],\n description: 'Get current Monday.com user info',\n requiresWorkspace: true,\n handler: async ({ ctx }) => {\n const result = await ctx.apiClient.getMondayCurrentUserInfo();\n outputSingle(result, ctx);\n },\n },\n ],\n};\n","import type { DomainDef, CommandDef } from '../../lib/types';\nimport type { TableColumn } from '../../lib/output';\nimport { crudCommands } from '../../lib/crud';\nimport { outputData, outputSingle } from '../../lib/output';\nimport { PAGINATION_ARGS } from '../../lib/args';\nimport { CLIError } from '../../lib/errors';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype AnyRecord = Record<string, any>;\n\nconst ACCOUNT_COLUMNS: TableColumn<AnyRecord>[] = [\n { header: 'ID', getValue: (a) => String(a.id ?? '') },\n { header: 'UUID', getValue: (a) => a.uuid ?? '' },\n { header: 'Name', getValue: (a) => a.name ?? '' },\n { header: 'Email', getValue: (a) => a.email ?? '' },\n { header: 'Phone', getValue: (a) => a.phone ?? '' },\n];\n\nconst MEMBERSHIP_COLUMNS: TableColumn<AnyRecord>[] = [\n { header: 'Account ID', getValue: (m) => String(m.accountId ?? '') },\n { header: 'Workspace', getValue: (m) => m.workspaceName ?? m.workspaceUuid ?? '' },\n { header: 'Role', getValue: (m) => m.roleName ?? '' },\n];\n\nconst ORG_MEMBERSHIP_COLUMNS: TableColumn<AnyRecord>[] = [\n { header: 'Account ID', getValue: (m) => String(m.accountId ?? '') },\n { header: 'Org ID', getValue: (m) => String(m.organizationId ?? '') },\n { header: 'Org Name', getValue: (m) => m.organizationName ?? '' },\n { header: 'Role', getValue: (m) => m.role ?? '' },\n];\n\nconst extraCommands: CommandDef[] = [\n {\n path: ['admin', 'accounts', 'lookup'],\n description: 'Look up account by email or phone',\n args: [\n { name: 'email', description: 'Email address to look up' },\n { name: 'phone', description: 'Phone number to look up' },\n ],\n requiresWorkspace: false,\n handler: async (hctx) => {\n const email = hctx.args.email as string | undefined;\n const phone = hctx.args.phone as string | undefined;\n if (!email && !phone) throw new CLIError('--email or --phone is required');\n const result = await hctx.ctx.apiClient.lookupAccount({ email, phone });\n outputSingle(result, hctx.ctx);\n },\n },\n {\n path: ['admin', 'accounts', 'memberships'],\n description: 'List workspace memberships for an account',\n args: [{ name: 'account-id', description: 'Account ID', required: true }],\n requiresWorkspace: false,\n columns: MEMBERSHIP_COLUMNS as TableColumn<unknown>[],\n handler: async (hctx) => {\n const accountId = Number(hctx.args['account-id']);\n if (isNaN(accountId)) throw new CLIError('--account-id must be a number');\n const result = await hctx.ctx.apiClient.getAccountMemberships(accountId);\n outputData(result, hctx.ctx, MEMBERSHIP_COLUMNS);\n },\n },\n {\n path: ['admin', 'accounts', 'org-memberships'],\n description: 'List organization memberships for an account',\n args: [{ name: 'account-id', description: 'Account ID', required: true }],\n requiresWorkspace: false,\n columns: ORG_MEMBERSHIP_COLUMNS as TableColumn<unknown>[],\n handler: async (hctx) => {\n const accountId = Number(hctx.args['account-id']);\n if (isNaN(accountId)) throw new CLIError('--account-id must be a number');\n const result = await hctx.ctx.apiClient.getAccountOrgMemberships(accountId);\n outputData(result, hctx.ctx, ORG_MEMBERSHIP_COLUMNS);\n },\n },\n {\n path: ['admin', 'accounts', 'add-org-membership'],\n description: 'Add account to an organization',\n mutates: true,\n args: [\n { name: 'account-id', description: 'Account ID', required: true },\n { name: 'org-id', description: 'Organization ID', required: true },\n { name: 'role', description: 'Role (member, admin, owner)', default: 'member' },\n ],\n requiresWorkspace: false,\n handler: async (hctx) => {\n const accountId = Number(hctx.args['account-id']);\n const orgId = Number(hctx.args['org-id']);\n const role = (hctx.args.role as string) || 'member';\n if (isNaN(accountId)) throw new CLIError('--account-id must be a number');\n if (isNaN(orgId)) throw new CLIError('--org-id must be a number');\n const result = await hctx.ctx.apiClient.createAccountOrgMembership(\n accountId,\n orgId,\n role as 'member' | 'admin' | 'owner'\n );\n outputSingle(result, hctx.ctx);\n },\n },\n {\n path: ['admin', 'accounts', 'remove-org-membership'],\n description: 'Remove account from an organization',\n mutates: true,\n args: [\n { name: 'account-id', description: 'Account ID', required: true },\n { name: 'org-id', description: 'Organization ID', required: true },\n ],\n requiresWorkspace: false,\n handler: async (hctx) => {\n const accountId = Number(hctx.args['account-id']);\n const orgId = Number(hctx.args['org-id']);\n if (isNaN(accountId)) throw new CLIError('--account-id must be a number');\n if (isNaN(orgId)) throw new CLIError('--org-id must be a number');\n const result = await hctx.ctx.apiClient.deleteAccountOrgMembership(accountId, orgId);\n outputSingle(result, hctx.ctx);\n },\n },\n {\n path: ['admin', 'accounts', 'get-membership'],\n description: 'Get a specific workspace membership for an account',\n args: [\n { name: 'account-id', description: 'Account ID', required: true },\n { name: 'workspace-id', description: 'Workspace UUID', required: true },\n ],\n requiresWorkspace: false,\n handler: async (hctx) => {\n const accountId = Number(hctx.args['account-id']);\n const workspaceId = hctx.args['workspace-id'] as string;\n if (isNaN(accountId)) throw new CLIError('--account-id must be a number');\n const result = await hctx.ctx.apiClient.getAccountMembership(accountId, workspaceId);\n outputSingle(result, hctx.ctx, MEMBERSHIP_COLUMNS);\n },\n },\n {\n path: ['admin', 'accounts', 'create-membership'],\n description: 'Create a workspace membership for an account',\n mutates: true,\n args: [\n { name: 'account-id', description: 'Account ID', required: true },\n { name: 'workspace-id', description: 'Workspace UUID', required: true },\n { name: 'role-id', description: 'Member role ID', required: true },\n ],\n requiresWorkspace: false,\n handler: async (hctx) => {\n const accountId = Number(hctx.args['account-id']);\n const workspaceId = hctx.args['workspace-id'] as string;\n const roleId = Number(hctx.args['role-id']);\n if (isNaN(accountId)) throw new CLIError('--account-id must be a number');\n if (isNaN(roleId)) throw new CLIError('--role-id must be a number');\n const result = await hctx.ctx.apiClient.createAccountMembership(accountId, workspaceId, {\n memberRoleId: roleId,\n });\n outputSingle(result, hctx.ctx, MEMBERSHIP_COLUMNS);\n },\n },\n {\n path: ['admin', 'accounts', 'update-membership'],\n description: 'Update a workspace membership for an account',\n mutates: true,\n args: [\n { name: 'account-id', description: 'Account ID', required: true },\n { name: 'workspace-id', description: 'Workspace UUID', required: true },\n ],\n requiresWorkspace: false,\n handler: async (hctx) => {\n if (!hctx.data) throw new CLIError('JSON data required (--data, --file, or stdin)');\n const accountId = Number(hctx.args['account-id']);\n const workspaceId = hctx.args['workspace-id'] as string;\n if (isNaN(accountId)) throw new CLIError('--account-id must be a number');\n const result = await hctx.ctx.apiClient.updateAccountMembership(\n accountId,\n workspaceId,\n hctx.data as AnyRecord\n );\n outputSingle(result, hctx.ctx, MEMBERSHIP_COLUMNS);\n },\n },\n {\n path: ['admin', 'accounts', 'delete-membership'],\n description: 'Delete a workspace membership for an account',\n mutates: true,\n args: [\n { name: 'account-id', description: 'Account ID', required: true },\n { name: 'workspace-id', description: 'Workspace UUID', required: true },\n ],\n requiresWorkspace: false,\n handler: async (hctx) => {\n const accountId = Number(hctx.args['account-id']);\n const workspaceId = hctx.args['workspace-id'] as string;\n if (isNaN(accountId)) throw new CLIError('--account-id must be a number');\n await hctx.ctx.apiClient.deleteAccountMembership(accountId, workspaceId);\n process.stdout.write(\n `Deleted membership for account ${accountId} in workspace ${workspaceId}\\n`\n );\n },\n },\n {\n path: ['admin', 'accounts', 'stripe-customer'],\n description: 'Get Stripe customer for an account',\n args: [{ name: 'account-id', description: 'Account ID', required: true }],\n requiresWorkspace: false,\n handler: async (hctx) => {\n const accountId = Number(hctx.args['account-id']);\n if (isNaN(accountId)) throw new CLIError('--account-id must be a number');\n const result = await hctx.ctx.apiClient.getStripeCustomer(accountId);\n outputSingle(result, hctx.ctx);\n },\n },\n];\n\nexport const adminAccountsDomain: DomainDef = {\n name: 'admin',\n description: 'Admin operations',\n commands: crudCommands({\n prefix: ['admin', 'accounts'],\n entityName: 'account',\n listMethod: 'getAccounts',\n getMethod: 'getAccountDetails',\n createMethod: 'createAccountAsAdmin',\n updateMethod: 'updateAccountAsAdmin',\n deleteMethod: 'deleteAccountAsAdmin',\n requiresWorkspace: false,\n columns: ACCOUNT_COLUMNS,\n listArgs: [\n { name: 'search', description: 'Search by name, email, or phone' },\n ...PAGINATION_ARGS.slice(1),\n ],\n extra: extraCommands,\n }),\n};\n","import type { MergeMembersRequest } from '@gravity-rail/client';\nimport { PAGINATION_ARGS } from '../../lib/args';\nimport { crudCommands } from '../../lib/crud';\nimport { CLIError } from '../../lib/errors';\nimport type { TableColumn } from '../../lib/output';\nimport { outputData, outputSingle } from '../../lib/output';\nimport type { CommandDef, DomainDef } from '../../lib/types';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype AnyRecord = Record<string, any>;\n\nconst WORKSPACE_COLUMNS: TableColumn<AnyRecord>[] = [\n { header: 'ID', getValue: (w) => String(w.id ?? '') },\n { header: 'UUID', getValue: (w) => w.uuid ?? '' },\n { header: 'Name', getValue: (w) => w.name ?? '' },\n { header: 'Status', getValue: (w) => w.provisionStatus ?? w.status ?? '' },\n { header: 'Org', getValue: (w) => w.organizationName ?? String(w.organizationId ?? '') },\n];\n\nconst MEMBER_COLUMNS: TableColumn<AnyRecord>[] = [\n { header: 'ID', getValue: (m) => String(m.id ?? '') },\n { header: 'Name', getValue: (m) => m.name ?? '' },\n { header: 'Role', getValue: (m) => m.roleName ?? '' },\n];\n\nconst ROLE_COLUMNS: TableColumn<AnyRecord>[] = [\n { header: 'ID', getValue: (r) => String(r.id ?? '') },\n { header: 'Name', getValue: (r) => r.name ?? '' },\n { header: 'Description', getValue: (r) => r.description ?? '' },\n];\n\nconst extraCommands: CommandDef[] = [\n {\n path: ['admin', 'workspaces', 'get-by-numeric-id'],\n description: 'Get workspace by numeric ID',\n args: [{ name: 'workspace-id', description: 'Numeric workspace ID', required: true }],\n requiresWorkspace: false,\n handler: async (hctx) => {\n const wsId = Number(hctx.args['workspace-id']);\n if (isNaN(wsId)) throw new CLIError('--workspace-id must be a number');\n const result = await hctx.ctx.apiClient.getWorkspaceByNumericIdAsAdmin(wsId);\n outputSingle(result, hctx.ctx, WORKSPACE_COLUMNS);\n },\n },\n {\n path: ['admin', 'workspaces', 'create-schema'],\n description: 'Create database schema for a workspace',\n args: [{ name: 'wid', description: 'Workspace UUID', required: true }],\n requiresWorkspace: false,\n handler: async (hctx) => {\n const wid = hctx.args.wid as string;\n const result = await hctx.ctx.apiClient.createSchemaAsAdmin(wid);\n outputSingle(result, hctx.ctx, WORKSPACE_COLUMNS);\n },\n },\n {\n path: ['admin', 'workspaces', 'migrate-schema'],\n description: 'Run database migrations for a workspace',\n args: [{ name: 'wid', description: 'Workspace UUID', required: true }],\n requiresWorkspace: false,\n handler: async (hctx) => {\n const wid = hctx.args.wid as string;\n const result = await hctx.ctx.apiClient.migrateSchemaAsAdmin(wid);\n outputSingle(result, hctx.ctx, WORKSPACE_COLUMNS);\n },\n },\n {\n path: ['admin', 'workspaces', 'provision'],\n description: 'Provision a workspace (create schema + migrate)',\n mutates: true,\n args: [{ name: 'wid', description: 'Workspace UUID', required: true }],\n requiresWorkspace: false,\n handler: async (hctx) => {\n const wid = hctx.args.wid as string;\n const result = await hctx.ctx.apiClient.provisionWorkspaceAsAdmin(wid);\n outputSingle(result, hctx.ctx, WORKSPACE_COLUMNS);\n },\n },\n {\n path: ['admin', 'workspaces', 'refresh-provision'],\n description: 'Refresh provision status for a workspace',\n args: [{ name: 'wid', description: 'Workspace UUID', required: true }],\n requiresWorkspace: false,\n handler: async (hctx) => {\n const wid = hctx.args.wid as string;\n const result = await hctx.ctx.apiClient.refreshProvisionStatusAsAdmin(wid);\n outputSingle(result, hctx.ctx, WORKSPACE_COLUMNS);\n },\n },\n {\n path: ['admin', 'workspaces', 'enable-maintenance'],\n description: 'Enable maintenance mode for a workspace',\n args: [{ name: 'wid', description: 'Workspace UUID', required: true }],\n requiresWorkspace: false,\n handler: async (hctx) => {\n const wid = hctx.args.wid as string;\n const result = await hctx.ctx.apiClient.enableMaintenanceMode(wid);\n outputSingle(result, hctx.ctx, WORKSPACE_COLUMNS);\n },\n },\n {\n path: ['admin', 'workspaces', 'disable-maintenance'],\n description: 'Disable maintenance mode for a workspace',\n args: [{ name: 'wid', description: 'Workspace UUID', required: true }],\n requiresWorkspace: false,\n handler: async (hctx) => {\n const wid = hctx.args.wid as string;\n const result = await hctx.ctx.apiClient.disableMaintenanceMode(wid);\n outputSingle(result, hctx.ctx, WORKSPACE_COLUMNS);\n },\n },\n {\n path: ['admin', 'workspaces', 'health'],\n description: 'Get workspace health check',\n args: [{ name: 'wid', description: 'Workspace UUID', required: true }],\n requiresWorkspace: false,\n handler: async (hctx) => {\n const wid = hctx.args.wid as string;\n const result = await hctx.ctx.apiClient.getWorkspaceHealth(wid);\n outputSingle(result, hctx.ctx);\n },\n },\n {\n path: ['admin', 'workspaces', 'provision-plan'],\n description: 'Provision plan features for a workspace',\n args: [{ name: 'wid', description: 'Workspace UUID', required: true }],\n requiresWorkspace: false,\n handler: async (hctx) => {\n const wid = hctx.args.wid as string;\n const data = hctx.data as AnyRecord | undefined;\n const result = await hctx.ctx.apiClient.provisionPlanFeatures(wid, data);\n outputSingle(result, hctx.ctx);\n },\n },\n {\n path: ['admin', 'workspaces', 'merge-members'],\n description: 'Merge duplicate members in a workspace',\n args: [{ name: 'wid', description: 'Workspace UUID', required: true }],\n requiresWorkspace: false,\n handler: async (hctx) => {\n if (!hctx.data) throw new CLIError('JSON data required (--data, --file, or stdin)');\n const wid = hctx.args.wid as string;\n const result = await hctx.ctx.apiClient.mergeMembers(\n wid,\n hctx.data as MergeMembersRequest\n );\n outputSingle(result, hctx.ctx);\n },\n },\n {\n path: ['admin', 'workspaces', 'member'],\n description: 'Get your admin member record in a workspace',\n args: [{ name: 'wid', description: 'Workspace UUID', required: true }],\n requiresWorkspace: false,\n handler: async (hctx) => {\n const wid = hctx.args.wid as string;\n const result = await hctx.ctx.apiClient.getAdminWorkspaceMember(wid);\n outputSingle(result, hctx.ctx, MEMBER_COLUMNS);\n },\n },\n {\n path: ['admin', 'workspaces', 'create-member'],\n description: 'Create your admin member record in a workspace',\n args: [{ name: 'wid', description: 'Workspace UUID', required: true }],\n requiresWorkspace: false,\n handler: async (hctx) => {\n const wid = hctx.args.wid as string;\n const data = hctx.data as AnyRecord | undefined;\n await hctx.ctx.apiClient.createAdminWorkspaceMember(wid, data ?? {});\n process.stdout.write(`Created admin member in workspace ${wid}\\n`);\n },\n },\n {\n path: ['admin', 'workspaces', 'update-member'],\n description: 'Update your admin member record in a workspace',\n args: [{ name: 'wid', description: 'Workspace UUID', required: true }],\n requiresWorkspace: false,\n handler: async (hctx) => {\n if (!hctx.data) throw new CLIError('JSON data required (--data, --file, or stdin)');\n const wid = hctx.args.wid as string;\n await hctx.ctx.apiClient.updateAdminWorkspaceMember(wid, hctx.data as AnyRecord);\n process.stdout.write(`Updated admin member in workspace ${wid}\\n`);\n },\n },\n {\n path: ['admin', 'workspaces', 'member-roles'],\n description: 'List member roles in a workspace',\n args: [{ name: 'wid', description: 'Workspace UUID', required: true }],\n requiresWorkspace: false,\n columns: ROLE_COLUMNS as TableColumn<unknown>[],\n handler: async (hctx) => {\n const wid = hctx.args.wid as string;\n const result = await hctx.ctx.apiClient.getAdminWorkspaceMemberRoles(wid);\n outputData(result, hctx.ctx, ROLE_COLUMNS);\n },\n },\n {\n path: ['admin', 'workspaces', 'missing-memberships'],\n description: 'List members missing account links in a workspace',\n args: [{ name: 'wid', description: 'Workspace UUID', required: true }],\n requiresWorkspace: false,\n handler: async (hctx) => {\n const wid = hctx.args.wid as string;\n const result = await hctx.ctx.apiClient.getMissingMemberships(wid);\n outputData(result, hctx.ctx);\n },\n },\n {\n path: ['admin', 'workspaces', 'link-membership'],\n description: 'Link a member to an account',\n args: [\n { name: 'wid', description: 'Workspace UUID', required: true },\n { name: 'member-id', description: 'Member ID', required: true },\n { name: 'account-id', description: 'Account ID', required: true },\n ],\n requiresWorkspace: false,\n handler: async (hctx) => {\n const wid = hctx.args.wid as string;\n const memberId = Number(hctx.args['member-id']);\n const accountId = Number(hctx.args['account-id']);\n if (isNaN(memberId)) throw new CLIError('--member-id must be a number');\n if (isNaN(accountId)) throw new CLIError('--account-id must be a number');\n const result = await hctx.ctx.apiClient.linkMissingMembership(wid, memberId, accountId);\n outputSingle(result, hctx.ctx);\n },\n },\n {\n path: ['admin', 'workspaces', 'billing-dashboard'],\n description: 'Get billing dashboard for a workspace',\n args: [{ name: 'wid', description: 'Workspace UUID', required: true }],\n requiresWorkspace: false,\n handler: async (hctx) => {\n const wid = hctx.args.wid as string;\n const result = await hctx.ctx.apiClient.getWorkspaceBillingDashboard(wid);\n outputSingle(result, hctx.ctx);\n },\n },\n {\n path: ['admin', 'workspaces', 'sync-usage'],\n description: 'Sync workspace usage to Stripe',\n args: [{ name: 'wid', description: 'Workspace UUID', required: true }],\n requiresWorkspace: false,\n handler: async (hctx) => {\n const wid = hctx.args.wid as string;\n const data = hctx.data as AnyRecord | undefined;\n const result = await hctx.ctx.apiClient.syncWorkspaceUsageToStripe(wid, data);\n outputSingle(result, hctx.ctx);\n },\n },\n {\n path: ['admin', 'workspaces', 'bulk-classify-phones'],\n description: 'Start bulk phone classification for a workspace',\n args: [\n { name: 'wid', description: 'Workspace UUID', required: true },\n { name: 'include-unknown', description: 'Include unknown numbers', isFlag: true },\n ],\n requiresWorkspace: false,\n handler: async (hctx) => {\n const wid = hctx.args.wid as string;\n const includeUnknown = hctx.args['include-unknown'] === true;\n const result = await hctx.ctx.apiClient.startBulkPhoneClassification(wid, includeUnknown);\n outputSingle(result, hctx.ctx);\n },\n },\n {\n path: ['admin', 'workspaces', 'bulk-accept-tos'],\n description: 'Start bulk TOS acceptance for a workspace',\n args: [{ name: 'wid', description: 'Workspace UUID', required: true }],\n requiresWorkspace: false,\n handler: async (hctx) => {\n const wid = hctx.args.wid as string;\n const result = await hctx.ctx.apiClient.startBulkTOSAcceptance(wid);\n outputSingle(result, hctx.ctx);\n },\n },\n {\n path: ['admin', 'workspaces', 'backfill-token-usage'],\n description: 'Start token usage backfill for a workspace',\n args: [{ name: 'wid', description: 'Workspace UUID', required: true }],\n requiresWorkspace: false,\n handler: async (hctx) => {\n const wid = hctx.args.wid as string;\n const result = await hctx.ctx.apiClient.startTokenUsageBackfill(wid);\n outputSingle(result, hctx.ctx);\n },\n },\n {\n path: ['admin', 'workspaces', 'change-org-preview'],\n description: 'Preview workspace organization change impact',\n args: [\n { name: 'wid', description: 'Workspace UUID', required: true },\n { name: 'target-org-id', description: 'Target organization ID', required: true },\n { name: 'new-creator-id', description: 'New creator account ID', required: true },\n ],\n requiresWorkspace: false,\n handler: async (hctx) => {\n const wid = hctx.args.wid as string;\n const targetOrgId = Number(hctx.args['target-org-id']);\n const newCreatorId = Number(hctx.args['new-creator-id']);\n if (isNaN(targetOrgId)) throw new CLIError('--target-org-id must be a number');\n if (isNaN(newCreatorId)) throw new CLIError('--new-creator-id must be a number');\n const result = await hctx.ctx.apiClient.previewWorkspaceOrganizationChange(\n wid,\n targetOrgId,\n newCreatorId\n );\n outputSingle(result, hctx.ctx);\n },\n },\n {\n path: ['admin', 'workspaces', 'change-org'],\n description: 'Change workspace organization',\n args: [\n { name: 'wid', description: 'Workspace UUID', required: true },\n { name: 'target-org-id', description: 'Target organization ID', required: true },\n { name: 'new-creator-id', description: 'New creator account ID', required: true },\n ],\n requiresWorkspace: false,\n handler: async (hctx) => {\n const wid = hctx.args.wid as string;\n const targetOrgId = Number(hctx.args['target-org-id']);\n const newCreatorId = Number(hctx.args['new-creator-id']);\n if (isNaN(targetOrgId)) throw new CLIError('--target-org-id must be a number');\n if (isNaN(newCreatorId)) throw new CLIError('--new-creator-id must be a number');\n const result = await hctx.ctx.apiClient.changeWorkspaceOrganization(\n wid,\n targetOrgId,\n newCreatorId\n );\n outputSingle(result, hctx.ctx);\n },\n },\n];\n\nexport const adminWorkspacesDomain: DomainDef = {\n name: 'admin',\n description: 'Admin operations',\n commands: crudCommands({\n prefix: ['admin', 'workspaces'],\n entityName: 'workspace',\n listMethod: 'getWorkspacesAsAdmin',\n getMethod: 'getWorkspaceAsAdmin',\n createMethod: 'createWorkspaceAsAdmin',\n updateMethod: 'updateWorkspaceAsAdmin',\n deleteMethod: 'deleteWorkspaceAsAdmin',\n requiresWorkspace: false,\n columns: WORKSPACE_COLUMNS,\n listArgs: PAGINATION_ARGS,\n extra: extraCommands,\n }),\n};\n","import type { LogoUploadRequest } from '@gravity-rail/client';\nimport { PAGINATION_ARGS } from '../../lib/args';\nimport { crudCommands } from '../../lib/crud';\nimport { CLIError } from '../../lib/errors';\nimport type { TableColumn } from '../../lib/output';\nimport { outputSingle } from '../../lib/output';\nimport type { CommandDef, DomainDef } from '../../lib/types';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype AnyRecord = Record<string, any>;\n\nconst ORG_COLUMNS: TableColumn<AnyRecord>[] = [\n { header: 'ID', getValue: (o) => String(o.id ?? '') },\n { header: 'UUID', getValue: (o) => o.uuid ?? '' },\n { header: 'Name', getValue: (o) => o.name ?? '' },\n { header: 'Slug', getValue: (o) => o.slug ?? '' },\n];\n\nconst extraCommands: CommandDef[] = [\n {\n path: ['admin', 'orgs', 'join'],\n description: 'Join an organization as superuser',\n mutates: true,\n args: [\n { name: 'org-uuid', description: 'Organization UUID or numeric ID', required: true },\n { name: 'role', description: 'Role (member, admin, owner)', default: 'owner' },\n ],\n requiresWorkspace: false,\n handler: async (hctx) => {\n const orgUuid = hctx.args['org-uuid'] as string;\n const role = (hctx.args.role as string) || 'owner';\n const result = await hctx.ctx.apiClient.joinOrganization(\n orgUuid,\n role as 'member' | 'admin' | 'owner'\n );\n outputSingle(result, hctx.ctx);\n },\n },\n {\n path: ['admin', 'orgs', 'leave'],\n description: 'Leave an organization as superuser',\n mutates: true,\n args: [{ name: 'org-uuid', description: 'Organization UUID or numeric ID', required: true }],\n requiresWorkspace: false,\n handler: async (hctx) => {\n const orgUuid = hctx.args['org-uuid'] as string;\n const result = await hctx.ctx.apiClient.leaveOrganization(orgUuid);\n outputSingle(result, hctx.ctx);\n },\n },\n {\n path: ['admin', 'orgs', 'logo-upload-url'],\n description: 'Generate a logo upload URL for an organization',\n mutates: true,\n args: [{ name: 'org-uuid', description: 'Organization UUID', required: true }],\n requiresWorkspace: false,\n handler: async (hctx) => {\n if (!hctx.data) throw new CLIError('JSON data required (--data, --file, or stdin)');\n const orgUuid = hctx.args['org-uuid'] as string;\n const result = await hctx.ctx.apiClient.generateLogoUploadUrl(\n orgUuid,\n hctx.data as LogoUploadRequest\n );\n outputSingle(result, hctx.ctx);\n },\n },\n];\n\nexport const adminOrgsDomain: DomainDef = {\n name: 'admin',\n description: 'Admin operations',\n commands: crudCommands({\n prefix: ['admin', 'orgs'],\n entityName: 'organization',\n listMethod: 'getOrganizations',\n getMethod: 'getOrganization',\n createMethod: 'createOrganization',\n updateMethod: 'updateOrganization',\n deleteMethod: 'deleteOrganization',\n requiresWorkspace: false,\n columns: ORG_COLUMNS,\n listArgs: PAGINATION_ARGS,\n extra: extraCommands,\n }),\n};\n","import type {\n StripeSubscriptionCreateRequest,\n SyncProductToStripeRequest,\n UsageReportRequest,\n} from '@gravity-rail/client';\nimport { crudCommands } from '../../lib/crud';\nimport { CLIError } from '../../lib/errors';\nimport type { TableColumn } from '../../lib/output';\nimport { outputData, outputSingle } from '../../lib/output';\nimport type { CommandDef, DomainDef } from '../../lib/types';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype AnyRecord = Record<string, any>;\n\nconst PRODUCT_COLUMNS: TableColumn<AnyRecord>[] = [\n { header: 'ID', getValue: (p) => String(p.id ?? '') },\n { header: 'Name', getValue: (p) => p.name ?? '' },\n { header: 'Type', getValue: (p) => p.productType ?? '' },\n { header: 'Active', getValue: (p) => String(p.isActive ?? '') },\n];\n\nconst SUBSCRIPTION_COLUMNS: TableColumn<AnyRecord>[] = [\n { header: 'ID', getValue: (s) => s.id ?? '' },\n { header: 'Status', getValue: (s) => s.status ?? '' },\n { header: 'Product', getValue: (s) => s.productName ?? '' },\n { header: 'Account', getValue: (s) => String(s.accountId ?? '') },\n];\n\nconst INVOICE_COLUMNS: TableColumn<AnyRecord>[] = [\n { header: 'ID', getValue: (i) => i.id ?? '' },\n { header: 'Number', getValue: (i) => i.number ?? '' },\n { header: 'Status', getValue: (i) => i.status ?? '' },\n { header: 'Amount Due', getValue: (i) => String(i.amountDue ?? '') },\n { header: 'Currency', getValue: (i) => i.currency ?? '' },\n { header: 'Paid', getValue: (i) => String(i.paid ?? '') },\n];\n\nconst commands: CommandDef[] = [\n // Products\n ...crudCommands({\n prefix: ['admin', 'products'],\n entityName: 'product',\n listMethod: 'getProductsAsAdmin',\n getMethod: 'getProductAsAdmin',\n createMethod: 'createProductAsAdmin',\n updateMethod: 'updateProductAsAdmin',\n deleteMethod: 'deleteProductAsAdmin',\n requiresWorkspace: false,\n columns: PRODUCT_COLUMNS,\n }),\n {\n path: ['admin', 'products', 'import'],\n description: 'Import products for a workspace',\n mutates: true,\n args: [{ name: 'workspace-id', description: 'Numeric workspace ID', required: true }],\n requiresWorkspace: false,\n handler: async (hctx) => {\n const wsId = Number(hctx.args['workspace-id']);\n if (isNaN(wsId)) throw new CLIError('--workspace-id must be a number');\n await hctx.ctx.apiClient.importProducts(wsId);\n process.stdout.write(`Imported products for workspace ${wsId}\\n`);\n },\n },\n {\n path: ['admin', 'products', 'compare-stripe'],\n description: 'Compare products with Stripe catalog',\n args: [{ name: 'workspace-uuid', description: 'Optional workspace UUID filter' }],\n requiresWorkspace: false,\n handler: async (hctx) => {\n const wsUuid = hctx.args['workspace-uuid'] as string | undefined;\n const result = await hctx.ctx.apiClient.compareProductsWithStripe(wsUuid);\n outputSingle(result, hctx.ctx);\n },\n },\n {\n path: ['admin', 'products', 'sync-stripe'],\n description: 'Sync a product to Stripe',\n mutates: true,\n args: [{ name: 'product-id', description: 'Product ID', required: true }],\n requiresWorkspace: false,\n handler: async (hctx) => {\n const productId = Number(hctx.args['product-id']);\n if (isNaN(productId)) throw new CLIError('--product-id must be a number');\n const data = hctx.data as SyncProductToStripeRequest | undefined;\n const result = await hctx.ctx.apiClient.syncProductToStripe(productId, data);\n outputSingle(result, hctx.ctx);\n },\n },\n {\n path: ['admin', 'products', 'search-stripe'],\n description: 'Search Stripe products',\n args: [\n { name: 'query', description: 'Search query', required: true },\n { name: 'limit', description: 'Result limit', default: '10' },\n ],\n requiresWorkspace: false,\n handler: async (hctx) => {\n const query = hctx.args.query as string;\n const limit = Number(hctx.args.limit ?? 10);\n const result = await hctx.ctx.apiClient.searchStripeProducts(query, limit);\n outputData(result, hctx.ctx);\n },\n },\n\n // Stripe Customers\n {\n path: ['admin', 'stripe', 'customer'],\n description: 'Get Stripe customer for an account',\n args: [{ name: 'account-id', description: 'Account ID', required: true }],\n requiresWorkspace: false,\n handler: async (hctx) => {\n const accountId = Number(hctx.args['account-id']);\n if (isNaN(accountId)) throw new CLIError('--account-id must be a number');\n const result = await hctx.ctx.apiClient.getStripeCustomer(accountId);\n outputSingle(result, hctx.ctx);\n },\n },\n {\n path: ['admin', 'stripe', 'create-customer'],\n description: 'Create a Stripe customer for an account',\n mutates: true,\n args: [{ name: 'account-id', description: 'Account ID', required: true }],\n requiresWorkspace: false,\n handler: async (hctx) => {\n if (!hctx.data) throw new CLIError('JSON data required (--data, --file, or stdin)');\n const accountId = Number(hctx.args['account-id']);\n if (isNaN(accountId)) throw new CLIError('--account-id must be a number');\n const result = await hctx.ctx.apiClient.createStripeCustomer(\n accountId,\n hctx.data as AnyRecord\n );\n outputSingle(result, hctx.ctx);\n },\n },\n {\n path: ['admin', 'stripe', 'update-customer'],\n description: 'Update a Stripe customer for an account',\n mutates: true,\n args: [{ name: 'account-id', description: 'Account ID', required: true }],\n requiresWorkspace: false,\n handler: async (hctx) => {\n if (!hctx.data) throw new CLIError('JSON data required (--data, --file, or stdin)');\n const accountId = Number(hctx.args['account-id']);\n if (isNaN(accountId)) throw new CLIError('--account-id must be a number');\n const result = await hctx.ctx.apiClient.updateStripeCustomer(\n accountId,\n hctx.data as AnyRecord\n );\n outputSingle(result, hctx.ctx);\n },\n },\n\n // Stripe Subscriptions\n {\n path: ['admin', 'stripe', 'subscriptions'],\n description: 'List Stripe subscriptions for an account',\n args: [{ name: 'account-id', description: 'Account ID', required: true }],\n requiresWorkspace: false,\n columns: SUBSCRIPTION_COLUMNS as TableColumn<unknown>[],\n handler: async (hctx) => {\n const accountId = Number(hctx.args['account-id']);\n if (isNaN(accountId)) throw new CLIError('--account-id must be a number');\n const result = await hctx.ctx.apiClient.getStripeSubscriptions(accountId);\n outputData(result, hctx.ctx, SUBSCRIPTION_COLUMNS);\n },\n },\n {\n path: ['admin', 'stripe', 'create-subscription'],\n description: 'Create a Stripe subscription for an account',\n mutates: true,\n args: [{ name: 'account-id', description: 'Account ID', required: true }],\n requiresWorkspace: false,\n handler: async (hctx) => {\n if (!hctx.data) throw new CLIError('JSON data required (--data, --file, or stdin)');\n const accountId = Number(hctx.args['account-id']);\n if (isNaN(accountId)) throw new CLIError('--account-id must be a number');\n const result = await hctx.ctx.apiClient.createStripeSubscription(\n accountId,\n hctx.data as StripeSubscriptionCreateRequest\n );\n outputSingle(result, hctx.ctx, SUBSCRIPTION_COLUMNS);\n },\n },\n {\n path: ['admin', 'stripe', 'update-subscription'],\n description: 'Update a Stripe subscription',\n mutates: true,\n args: [\n { name: 'account-id', description: 'Account ID', required: true },\n { name: 'subscription-id', description: 'Stripe subscription ID', required: true },\n ],\n requiresWorkspace: false,\n handler: async (hctx) => {\n if (!hctx.data) throw new CLIError('JSON data required (--data, --file, or stdin)');\n const accountId = Number(hctx.args['account-id']);\n const subId = hctx.args['subscription-id'] as string;\n if (isNaN(accountId)) throw new CLIError('--account-id must be a number');\n const result = await hctx.ctx.apiClient.updateStripeSubscription(\n accountId,\n subId,\n hctx.data as AnyRecord\n );\n outputSingle(result, hctx.ctx, SUBSCRIPTION_COLUMNS);\n },\n },\n {\n path: ['admin', 'stripe', 'cancel-subscription'],\n description: 'Cancel a Stripe subscription',\n mutates: true,\n args: [\n { name: 'account-id', description: 'Account ID', required: true },\n { name: 'subscription-id', description: 'Stripe subscription ID', required: true },\n ],\n requiresWorkspace: false,\n handler: async (hctx) => {\n const accountId = Number(hctx.args['account-id']);\n const subId = hctx.args['subscription-id'] as string;\n if (isNaN(accountId)) throw new CLIError('--account-id must be a number');\n const result = await hctx.ctx.apiClient.cancelStripeSubscription(accountId, subId);\n outputSingle(result, hctx.ctx);\n },\n },\n {\n path: ['admin', 'stripe', 'provision-subscription'],\n description: 'Provision workspace for a subscription',\n mutates: true,\n args: [\n { name: 'account-id', description: 'Account ID', required: true },\n { name: 'subscription-id', description: 'Stripe subscription ID', required: true },\n ],\n requiresWorkspace: false,\n handler: async (hctx) => {\n const accountId = Number(hctx.args['account-id']);\n const subId = hctx.args['subscription-id'] as string;\n if (isNaN(accountId)) throw new CLIError('--account-id must be a number');\n const result = await hctx.ctx.apiClient.provisionWorkspaceForSubscription(\n accountId,\n subId\n );\n outputSingle(result, hctx.ctx);\n },\n },\n {\n path: ['admin', 'stripe', 'associate-workspace'],\n description: 'Associate a workspace with a subscription',\n mutates: true,\n args: [\n { name: 'account-id', description: 'Account ID', required: true },\n { name: 'subscription-id', description: 'Stripe subscription ID', required: true },\n { name: 'workspace-id', description: 'Numeric workspace ID', required: true },\n ],\n requiresWorkspace: false,\n handler: async (hctx) => {\n const accountId = Number(hctx.args['account-id']);\n const subId = hctx.args['subscription-id'] as string;\n const wsId = Number(hctx.args['workspace-id']);\n if (isNaN(accountId)) throw new CLIError('--account-id must be a number');\n if (isNaN(wsId)) throw new CLIError('--workspace-id must be a number');\n const result = await hctx.ctx.apiClient.associateWorkspaceWithSubscription(\n accountId,\n subId,\n wsId\n );\n outputSingle(result, hctx.ctx, SUBSCRIPTION_COLUMNS);\n },\n },\n {\n path: ['admin', 'stripe', 'payment-link'],\n description: 'Create a payment link for a subscription',\n mutates: true,\n args: [\n { name: 'account-id', description: 'Account ID', required: true },\n { name: 'subscription-id', description: 'Stripe subscription ID', required: true },\n ],\n requiresWorkspace: false,\n handler: async (hctx) => {\n const accountId = Number(hctx.args['account-id']);\n const subId = hctx.args['subscription-id'] as string;\n if (isNaN(accountId)) throw new CLIError('--account-id must be a number');\n const result = await hctx.ctx.apiClient.createSubscriptionPaymentLink(accountId, subId);\n outputSingle(result, hctx.ctx);\n },\n },\n\n // Payment Methods\n {\n path: ['admin', 'stripe', 'payment-methods'],\n description: 'List Stripe payment methods for an account',\n args: [{ name: 'account-id', description: 'Account ID', required: true }],\n requiresWorkspace: false,\n handler: async (hctx) => {\n const accountId = Number(hctx.args['account-id']);\n if (isNaN(accountId)) throw new CLIError('--account-id must be a number');\n const result = await hctx.ctx.apiClient.getStripePaymentMethods(accountId);\n outputData(result, hctx.ctx);\n },\n },\n {\n path: ['admin', 'stripe', 'setup-intent'],\n description: 'Create a Stripe setup intent for an account',\n mutates: true,\n args: [{ name: 'account-id', description: 'Account ID', required: true }],\n requiresWorkspace: false,\n handler: async (hctx) => {\n const accountId = Number(hctx.args['account-id']);\n if (isNaN(accountId)) throw new CLIError('--account-id must be a number');\n const result = await hctx.ctx.apiClient.createSetupIntent(accountId);\n outputSingle(result, hctx.ctx);\n },\n },\n {\n path: ['admin', 'stripe', 'attach-payment-method'],\n description: 'Attach a payment method to an account',\n mutates: true,\n args: [\n { name: 'account-id', description: 'Account ID', required: true },\n { name: 'payment-method-id', description: 'Stripe payment method ID', required: true },\n { name: 'set-default', description: 'Set as default', isFlag: true },\n ],\n requiresWorkspace: false,\n handler: async (hctx) => {\n const accountId = Number(hctx.args['account-id']);\n const pmId = hctx.args['payment-method-id'] as string;\n const setDefault = hctx.args['set-default'] === true;\n if (isNaN(accountId)) throw new CLIError('--account-id must be a number');\n const result = await hctx.ctx.apiClient.attachStripePaymentMethod(\n accountId,\n pmId,\n setDefault\n );\n outputSingle(result, hctx.ctx);\n },\n },\n {\n path: ['admin', 'stripe', 'detach-payment-method'],\n description: 'Detach a payment method from an account',\n mutates: true,\n args: [\n { name: 'account-id', description: 'Account ID', required: true },\n { name: 'payment-method-id', description: 'Stripe payment method ID', required: true },\n ],\n requiresWorkspace: false,\n handler: async (hctx) => {\n const accountId = Number(hctx.args['account-id']);\n const pmId = hctx.args['payment-method-id'] as string;\n if (isNaN(accountId)) throw new CLIError('--account-id must be a number');\n const result = await hctx.ctx.apiClient.detachStripePaymentMethod(accountId, pmId);\n outputSingle(result, hctx.ctx);\n },\n },\n {\n path: ['admin', 'stripe', 'set-default-payment-method'],\n description: 'Set a payment method as default',\n mutates: true,\n args: [\n { name: 'account-id', description: 'Account ID', required: true },\n { name: 'payment-method-id', description: 'Stripe payment method ID', required: true },\n ],\n requiresWorkspace: false,\n handler: async (hctx) => {\n const accountId = Number(hctx.args['account-id']);\n const pmId = hctx.args['payment-method-id'] as string;\n if (isNaN(accountId)) throw new CLIError('--account-id must be a number');\n const result = await hctx.ctx.apiClient.setDefaultStripePaymentMethod(accountId, pmId);\n outputSingle(result, hctx.ctx);\n },\n },\n\n // Invoices\n {\n path: ['admin', 'stripe', 'invoices'],\n description: 'List Stripe invoices for an account',\n args: [\n { name: 'account-id', description: 'Account ID', required: true },\n { name: 'limit', description: 'Number of invoices to return' },\n ],\n requiresWorkspace: false,\n columns: INVOICE_COLUMNS as TableColumn<unknown>[],\n handler: async (hctx) => {\n const accountId = Number(hctx.args['account-id']);\n if (isNaN(accountId)) throw new CLIError('--account-id must be a number');\n const limit = hctx.args.limit ? Number(hctx.args.limit) : undefined;\n const result = await hctx.ctx.apiClient.getStripeInvoices(accountId, { limit });\n outputData(result, hctx.ctx, INVOICE_COLUMNS);\n },\n },\n {\n path: ['admin', 'stripe', 'create-invoice'],\n description: 'Create a Stripe invoice for an account',\n mutates: true,\n args: [{ name: 'account-id', description: 'Account ID', required: true }],\n requiresWorkspace: false,\n handler: async (hctx) => {\n if (!hctx.data) throw new CLIError('JSON data required (--data, --file, or stdin)');\n const accountId = Number(hctx.args['account-id']);\n if (isNaN(accountId)) throw new CLIError('--account-id must be a number');\n const result = await hctx.ctx.apiClient.createStripeInvoice(\n accountId,\n hctx.data as Parameters<typeof hctx.ctx.apiClient.createStripeInvoice>[1]\n );\n outputSingle(result, hctx.ctx, INVOICE_COLUMNS);\n },\n },\n {\n path: ['admin', 'stripe', 'upcoming-invoice'],\n description: 'Get upcoming Stripe invoice for an account',\n args: [\n { name: 'account-id', description: 'Account ID', required: true },\n { name: 'subscription-id', description: 'Optional subscription ID filter' },\n ],\n requiresWorkspace: false,\n handler: async (hctx) => {\n const accountId = Number(hctx.args['account-id']);\n const subId = hctx.args['subscription-id'] as string | undefined;\n if (isNaN(accountId)) throw new CLIError('--account-id must be a number');\n const result = await hctx.ctx.apiClient.getStripeUpcomingInvoice(accountId, subId);\n outputSingle(result, hctx.ctx);\n },\n },\n\n // Admin Subscriptions\n {\n path: ['admin', 'subscriptions', 'list'],\n description: 'List all subscriptions (admin)',\n args: [\n { name: 'product-id', description: 'Filter by product ID' },\n { name: 'page', description: 'Page number' },\n { name: 'page-size', description: 'Page size' },\n ],\n requiresWorkspace: false,\n columns: SUBSCRIPTION_COLUMNS as TableColumn<unknown>[],\n handler: async (hctx) => {\n const result = await hctx.ctx.apiClient.getSubscriptionsAsAdmin({\n productId: hctx.args['product-id'] ? Number(hctx.args['product-id']) : undefined,\n page: hctx.args.page ? Number(hctx.args.page) : undefined,\n pageSize: hctx.args['page-size'] ? Number(hctx.args['page-size']) : undefined,\n });\n outputData(result.items ?? result, hctx.ctx, SUBSCRIPTION_COLUMNS);\n },\n },\n\n // Usage\n {\n path: ['admin', 'usage', 'report'],\n description: 'Generate a usage report',\n requiresWorkspace: false,\n handler: async (hctx) => {\n if (!hctx.data) throw new CLIError('JSON data required (--data, --file, or stdin)');\n const result = await hctx.ctx.apiClient.getUsageReport(hctx.data as UsageReportRequest);\n outputSingle(result, hctx.ctx);\n },\n },\n\n // Voice Metrics\n {\n path: ['admin', 'voice-metrics'],\n description: 'Get voice metrics',\n args: [\n { name: 'hours', description: 'Hours to look back' },\n { name: 'period', description: 'Period in minutes' },\n { name: 'workspace-uuid', description: 'Filter by workspace UUID' },\n { name: 'org-id', description: 'Filter by organization ID' },\n ],\n requiresWorkspace: false,\n handler: async (hctx) => {\n const result = await hctx.ctx.apiClient.getVoiceMetrics({\n hours: hctx.args.hours ? Number(hctx.args.hours) : undefined,\n period: hctx.args.period ? Number(hctx.args.period) : undefined,\n workspace_uuid: hctx.args['workspace-uuid'] as string | undefined,\n organization_id: hctx.args['org-id'] ? Number(hctx.args['org-id']) : undefined,\n });\n outputSingle(result, hctx.ctx);\n },\n },\n];\n\nexport const adminBillingDomain: DomainDef = {\n name: 'admin',\n description: 'Admin operations',\n commands,\n};\n","import type { DomainDef, CommandDef } from '../../lib/types';\nimport type { TableColumn } from '../../lib/output';\nimport { crudCommands } from '../../lib/crud';\nimport { outputData, outputSingle } from '../../lib/output';\nimport { PAGINATION_ARGS } from '../../lib/args';\nimport { CLIError } from '../../lib/errors';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype AnyRecord = Record<string, any>;\n\nconst SITE_MAPPING_COLUMNS: TableColumn<AnyRecord>[] = [\n { header: 'ID', getValue: (s) => String(s.id ?? '') },\n { header: 'Site UUID', getValue: (s) => s.siteUuid ?? '' },\n { header: 'Site Name', getValue: (s) => s.siteName ?? '' },\n { header: 'Workspace', getValue: (s) => s.workspaceName ?? String(s.workspaceId ?? '') },\n];\n\nconst INBOX_MAPPING_COLUMNS: TableColumn<AnyRecord>[] = [\n { header: 'ID', getValue: (m) => String(m.id ?? '') },\n { header: 'Inbox', getValue: (m) => m.inboxName ?? m.inboxAddress ?? '' },\n { header: 'Workspace', getValue: (m) => m.workspaceName ?? String(m.workspaceId ?? '') },\n];\n\nconst extraSiteMappingCommands: CommandDef[] = [\n {\n path: ['admin', 'site-mappings', 'update-workspace'],\n description: 'Update workspace assignment for a site mapping',\n args: [\n { name: 'site-id', description: 'Site mapping ID', required: true },\n { name: 'workspace-id', description: 'New workspace numeric ID', required: true },\n ],\n requiresWorkspace: false,\n handler: async (hctx) => {\n const siteId = Number(hctx.args['site-id']);\n const wsId = Number(hctx.args['workspace-id']);\n if (isNaN(siteId)) throw new CLIError('--site-id must be a number');\n if (isNaN(wsId)) throw new CLIError('--workspace-id must be a number');\n const result = await hctx.ctx.apiClient.updateSiteMappingWorkspace(siteId, wsId);\n outputSingle(result, hctx.ctx, SITE_MAPPING_COLUMNS);\n },\n },\n {\n path: ['admin', 'site-mappings', 'create-for-workspace'],\n description: 'Create or update a site mapping for a workspace',\n args: [{ name: 'wid', description: 'Workspace UUID', required: true }],\n requiresWorkspace: false,\n handler: async (hctx) => {\n if (!hctx.data) throw new CLIError('JSON data required (--data, --file, or stdin)');\n const wid = hctx.args.wid as string;\n const result = await hctx.ctx.apiClient.createOrUpdateSiteMapping(\n wid,\n hctx.data as AnyRecord\n );\n outputSingle(result, hctx.ctx, SITE_MAPPING_COLUMNS);\n },\n },\n {\n path: ['admin', 'site-mappings', 'delete-for-workspace'],\n description: 'Delete a site mapping from a workspace',\n args: [\n { name: 'wid', description: 'Workspace UUID', required: true },\n { name: 'site-uuid', description: 'Site UUID', required: true },\n ],\n requiresWorkspace: false,\n handler: async (hctx) => {\n const wid = hctx.args.wid as string;\n const siteUuid = hctx.args['site-uuid'] as string;\n await hctx.ctx.apiClient.deleteSiteMapping(wid, siteUuid);\n process.stdout.write(`Deleted site mapping ${siteUuid} from workspace ${wid}\\n`);\n },\n },\n];\n\nconst inboxMappingCommands: CommandDef[] = [\n {\n path: ['admin', 'inbox-mappings', 'list'],\n description: 'List inbox mappings',\n args: [\n { name: 'search', description: 'Search by inbox name' },\n { name: 'workspace-id', description: 'Filter by workspace ID' },\n { name: 'page', description: 'Page number' },\n { name: 'page-size', description: 'Page size' },\n ],\n requiresWorkspace: false,\n columns: INBOX_MAPPING_COLUMNS as TableColumn<unknown>[],\n handler: async (hctx) => {\n const result = await hctx.ctx.apiClient.getInboxMappings({\n search: hctx.args.search as string | undefined,\n workspaceId: hctx.args['workspace-id'] ? Number(hctx.args['workspace-id']) : undefined,\n page: hctx.args.page ? Number(hctx.args.page) : undefined,\n pageSize: hctx.args['page-size'] ? Number(hctx.args['page-size']) : undefined,\n });\n outputData(result.items ?? result, hctx.ctx, INBOX_MAPPING_COLUMNS);\n },\n },\n {\n path: ['admin', 'inbox-mappings', 'get'],\n description: 'Get an inbox mapping by ID',\n args: [{ name: 'id', description: 'Inbox mapping ID', required: true }],\n requiresWorkspace: false,\n columns: INBOX_MAPPING_COLUMNS as TableColumn<unknown>[],\n handler: async (hctx) => {\n const id = Number(hctx.args.id);\n if (isNaN(id)) throw new CLIError('--id must be a number');\n const result = await hctx.ctx.apiClient.getInboxMapping(id);\n outputSingle(result, hctx.ctx, INBOX_MAPPING_COLUMNS);\n },\n },\n {\n path: ['admin', 'inbox-mappings', 'update'],\n description: 'Update an inbox mapping workspace assignment',\n mutates: true,\n args: [\n { name: 'id', description: 'Inbox mapping ID', required: true },\n { name: 'workspace-id', description: 'New workspace numeric ID', required: true },\n ],\n requiresWorkspace: false,\n handler: async (hctx) => {\n const id = Number(hctx.args.id);\n const wsId = Number(hctx.args['workspace-id']);\n if (isNaN(id)) throw new CLIError('--id must be a number');\n if (isNaN(wsId)) throw new CLIError('--workspace-id must be a number');\n const result = await hctx.ctx.apiClient.updateInboxMapping(id, wsId);\n outputSingle(result, hctx.ctx, INBOX_MAPPING_COLUMNS);\n },\n },\n {\n path: ['admin', 'inbox-mappings', 'delete'],\n description: 'Delete an inbox mapping',\n mutates: true,\n args: [{ name: 'id', description: 'Inbox mapping ID', required: true }],\n requiresWorkspace: false,\n handler: async (hctx) => {\n const id = Number(hctx.args.id);\n if (isNaN(id)) throw new CLIError('--id must be a number');\n await hctx.ctx.apiClient.deleteAdminInboxMapping(id);\n process.stdout.write(`Deleted inbox mapping ${id}\\n`);\n },\n },\n];\n\nconst siteMappingCrudCommands = crudCommands({\n prefix: ['admin', 'site-mappings'],\n entityName: 'site mapping',\n listMethod: 'getSiteMappings',\n getMethod: 'getSiteMapping',\n createMethod: 'createSiteMapping',\n updateMethod: 'updateSiteMapping',\n deleteMethod: 'adminDeleteSiteMapping',\n requiresWorkspace: false,\n columns: SITE_MAPPING_COLUMNS,\n listArgs: [{ name: 'search', description: 'Search by site name' }, ...PAGINATION_ARGS.slice(1)],\n extra: extraSiteMappingCommands,\n});\n\nexport const adminSiteMappingsDomain: DomainDef = {\n name: 'admin',\n description: 'Admin operations',\n commands: [...siteMappingCrudCommands, ...inboxMappingCommands],\n};\n","import type { CommandRegistry } from '../lib/registry';\n\n// Core domains — Phase 2a\nimport { tasksDomain } from './tasks';\nimport { chatsDomain } from './chats';\nimport { membersDomain } from './members';\nimport { workspacesDomain } from './workspaces';\nimport { workflowsDomain } from './workflows';\nimport { agentsDomain } from './agents';\nimport { assistantsDomain } from './assistants';\n\n// Core domains — Phase 2b\nimport { assignmentsDomain } from './assignments';\nimport { dataTypesDomain } from './data-types';\nimport { sitesDomain } from './sites';\nimport { filesDomain } from './files';\nimport { eventsDomain } from './events';\nimport { calendarsDomain } from './calendars';\nimport { qualificationsDomain } from './qualifications';\n\n// Secondary domains — Phase 3\nimport { phoneNumbersDomain } from './phone-numbers';\nimport { inboxesDomain } from './inboxes';\nimport { operatorGroupsDomain } from './operator-groups';\nimport { accessGrantsDomain } from './access-grants';\nimport { notificationRulesDomain } from './notification-rules';\nimport { supervisorsDomain } from './supervisors';\nimport { milestonesDomain } from './milestones';\nimport { customToolkitsDomain } from './custom-toolkits';\nimport { mcpServersDomain } from './mcp-servers';\nimport { apiKeysDomain } from './api-keys';\nimport { subscriptionsDomain } from './subscriptions';\nimport { reportsDomain } from './reports';\nimport { aiModelsDomain } from './ai-models';\nimport { featuresDomain } from './features';\nimport { pronunciationsDomain } from './pronunciations';\nimport { orgDomain } from './org';\nimport { authManageDomain } from './auth-manage';\nimport { appsDomain } from './apps';\nimport { oauthDomain } from './oauth';\n\n// Integration domains — Phase 4\nimport { discordBotsDomain } from './integrations/discord-bots';\nimport { slackAppsDomain } from './integrations/slack-apps';\nimport { fhirConnectionsDomain } from './integrations/fhir-connections';\nimport { appConnectionsDomain } from './integrations/app-connections';\nimport { mondayDomain } from './integrations/monday';\n\n// Admin domains — Phase 5\nimport { adminDomains } from './admin/index';\n\nexport function registerPublicDomains(registry: CommandRegistry): void {\n // Core\n registry.register(tasksDomain);\n registry.register(chatsDomain);\n registry.register(membersDomain);\n registry.register(workspacesDomain);\n registry.register(workflowsDomain);\n registry.register(agentsDomain);\n registry.register(assistantsDomain);\n registry.register(assignmentsDomain);\n registry.register(dataTypesDomain);\n registry.register(sitesDomain);\n registry.register(filesDomain);\n registry.register(eventsDomain);\n registry.register(calendarsDomain);\n registry.register(qualificationsDomain);\n\n // Secondary\n registry.register(phoneNumbersDomain);\n registry.register(inboxesDomain);\n registry.register(operatorGroupsDomain);\n registry.register(accessGrantsDomain);\n registry.register(notificationRulesDomain);\n registry.register(supervisorsDomain);\n registry.register(milestonesDomain);\n registry.register(customToolkitsDomain);\n registry.register(mcpServersDomain);\n registry.register(apiKeysDomain);\n registry.register(subscriptionsDomain);\n registry.register(reportsDomain);\n registry.register(aiModelsDomain);\n registry.register(featuresDomain);\n registry.register(pronunciationsDomain);\n registry.register(orgDomain);\n registry.register(authManageDomain);\n registry.register(appsDomain);\n registry.register(oauthDomain);\n\n // Integrations\n registry.register(discordBotsDomain);\n registry.register(slackAppsDomain);\n registry.register(fhirConnectionsDomain);\n registry.register(appConnectionsDomain);\n registry.register(mondayDomain);\n}\n\nexport function registerAllDomains(registry: CommandRegistry): void {\n registerPublicDomains(registry);\n\n // Admin\n for (const domain of adminDomains) {\n registry.register(domain);\n }\n}\n","import { existsSync, mkdirSync, writeFileSync, readFileSync } from 'fs';\nimport { execSync } from 'child_process';\nimport { join } from 'path';\nimport { createAuthenticatedContext, type GlobalOptions } from '../lib/context';\nimport { CLIError } from '../lib/errors';\nimport { stderr } from '../lib/output';\n\nfunction parseDevArgs(args: string[]): { workspace?: string } {\n let workspace: string | undefined;\n for (let i = 0; i < args.length; i++) {\n if ((args[i] === '-w' || args[i] === '--workspace') && args[i + 1]) {\n workspace = args[++i];\n }\n }\n return { workspace };\n}\n\nexport async function devImportLocalCommand(opts: GlobalOptions, args: string[]): Promise<void> {\n const { workspace } = parseDevArgs(args);\n if (!workspace) {\n throw new CLIError('Missing required option: -w <workspace-uuid>');\n }\n\n const ctx = await createAuthenticatedContext(opts);\n\n stderr(`Exporting workspace ${workspace}...`);\n const exportData = await ctx.apiClient.exportWorkspace(workspace);\n\n stderr('Export successful!');\n stderr(` Workflows: ${(exportData.workflows || []).length}`);\n stderr(` Tasks: ${(exportData.tasks || []).length}`);\n stderr(` Data Types: ${(exportData.dataTypes || []).length}`);\n stderr(` Sites: ${(exportData.sites || []).length}`);\n\n const slug = workspace.slice(0, 8);\n const importCacheDir = join(ctx.credentialsManager.getCacheDir(), 'imports');\n if (!existsSync(importCacheDir)) {\n mkdirSync(importCacheDir, { recursive: true });\n }\n const filename = `ws-${slug}-${workspace}.json`;\n const filepath = join(importCacheDir, filename);\n writeFileSync(filepath, JSON.stringify(exportData, null, 2));\n stderr(`Saved to: ${filepath}`);\n\n stderr('Running dev:restore...');\n const rootDir = findProjectRoot();\n const relativePath = filepath.replace(rootDir + '/', '');\n\n try {\n const result = execSync(`yarn dev:restore ${relativePath}`, {\n cwd: rootDir,\n stdio: 'pipe',\n encoding: 'utf-8',\n });\n process.stderr.write(result);\n\n const failed =\n (result.includes('Failed/Skipped: ') && !result.includes('Failed/Skipped: 0')) ||\n result.includes('Successfully restored: 0');\n\n if (failed) throw new CLIError('Import failed');\n } catch (error: unknown) {\n if (error instanceof CLIError) throw error;\n const execError = error as { stdout?: string; stderr?: string };\n if (execError.stdout) process.stderr.write(execError.stdout);\n if (execError.stderr) process.stderr.write(execError.stderr);\n throw new CLIError('dev:restore failed');\n }\n\n stderr(`Import complete: ${workspace}`);\n}\n\nfunction findProjectRoot(): string {\n let dir = process.cwd();\n while (dir !== '/') {\n const pkgPath = join(dir, 'package.json');\n if (existsSync(pkgPath)) {\n try {\n const pkg = JSON.parse(readFileSync(pkgPath, 'utf-8'));\n if (pkg.workspaces) return dir;\n } catch {\n // continue\n }\n }\n dir = join(dir, '..');\n }\n return process.cwd();\n}\n","import { ApiClient } from '@gravity-rail/client';\nimport { performOAuthFlow } from '@gravity-rail/client/cli';\nimport { createContext, type GlobalOptions } from '../lib/context';\nimport { stderr } from '../lib/output';\n\nexport async function loginCommand(opts: GlobalOptions): Promise<void> {\n const ctx = createContext(opts);\n\n const { accessToken } = await performOAuthFlow({\n env: ctx.env,\n envConfig: ctx.envConfig,\n credentialsManager: ctx.credentialsManager,\n });\n\n const apiClient = new ApiClient(accessToken, ctx.envConfig.apiUrl);\n const account = await apiClient.getUserAccount();\n stderr(`Logged in as ${account.name} (${account.email})`);\n}\n\nexport async function logoutCommand(opts: GlobalOptions): Promise<void> {\n const ctx = createContext(opts);\n ctx.credentialsManager.clear(ctx.env);\n stderr(`Credentials cleared for ${ctx.env}`);\n}\n","import type { AdminAccountOrgMembership } from '@gravity-rail/client';\nimport { createAuthenticatedContext, type GlobalOptions } from '../lib/context';\nimport { outputData, type TableColumn } from '../lib/output';\n\nconst COLUMNS: TableColumn<AdminAccountOrgMembership>[] = [\n { header: 'NAME', getValue: (o) => o.organizationName || '', maxWidth: 35 },\n { header: 'SLUG', getValue: (o) => o.organizationSlug || '', maxWidth: 25 },\n { header: 'UUID', getValue: (o) => o.organizationUuid },\n { header: 'ROLE', getValue: (o) => o.role || '' },\n];\n\nexport async function organizationsListCommand(opts: GlobalOptions): Promise<void> {\n const ctx = await createAuthenticatedContext(opts);\n const organizations = await ctx.apiClient.getMyOrganizations();\n outputData(organizations, ctx, COLUMNS);\n}\n","import type { Account } from '@gravity-rail/client';\nimport { createAuthenticatedContext, type GlobalOptions } from '../lib/context';\nimport { outputSingle, type TableColumn } from '../lib/output';\n\nconst COLUMNS: TableColumn<Account>[] = [\n { header: 'NAME', getValue: (a) => a.name || '', maxWidth: 30 },\n { header: 'EMAIL', getValue: (a) => a.email || '', maxWidth: 40 },\n { header: 'UUID', getValue: (a) => a.uuid },\n { header: 'SUPERUSER', getValue: (a) => (a.isSuperuser ? 'yes' : 'no') },\n];\n\nexport async function whoamiCommand(opts: GlobalOptions): Promise<void> {\n const ctx = await createAuthenticatedContext(opts);\n const account = await ctx.apiClient.getUserAccount();\n outputSingle(account, ctx, COLUMNS);\n}\n","import {\n CommandRegistry,\n createPublicAuthenticatedContext,\n createPublicContext,\n devImportLocalCommand,\n handleError,\n loginCommand,\n logoutCommand,\n organizationsListCommand,\n parseArgs,\n readJsonInput,\n registerPublicDomains,\n whoamiCommand,\n type CommandHandlerContext,\n type PublicGlobalOptions,\n} from '@gravity-rail/gr-cli/lib';\n\nconst VERSION = '0.1.0';\n\nfunction createRegistry(): CommandRegistry {\n const registry = new CommandRegistry();\n\n // Register public domains only (no admin commands)\n registerPublicDomains(registry);\n\n // Register special commands\n registry.registerCommand({\n path: ['login'],\n description: 'Authenticate via OAuth',\n requiresAuth: false,\n handler: async ({ ctx }) => {\n await loginCommand({\n env: ctx.env,\n outputFormat: ctx.outputFormat,\n verbose: ctx.verbose,\n });\n },\n });\n\n registry.registerCommand({\n path: ['logout'],\n description: 'Clear cached credentials',\n requiresAuth: false,\n handler: async ({ ctx }) => {\n await logoutCommand({\n env: ctx.env,\n outputFormat: ctx.outputFormat,\n verbose: ctx.verbose,\n });\n },\n });\n\n registry.registerCommand({\n path: ['dev', 'import-local'],\n description: 'Import remote workspace locally',\n handler: async ({ ctx, args }) => {\n const restArgs: string[] = [];\n if (args.workspace) restArgs.push('-w', args.workspace as string);\n await devImportLocalCommand(\n { env: ctx.env, outputFormat: ctx.outputFormat, verbose: ctx.verbose },\n restArgs\n );\n },\n });\n\n registry.registerCommand({\n path: ['whoami'],\n description: 'Show current user info',\n handler: async ({ ctx }) => {\n await whoamiCommand({\n env: ctx.env,\n outputFormat: ctx.outputFormat,\n verbose: ctx.verbose,\n });\n },\n });\n\n registry.registerCommand({\n path: ['organizations', 'list'],\n description: 'List organizations',\n handler: async ({ ctx }) => {\n await organizationsListCommand({\n env: ctx.env,\n outputFormat: ctx.outputFormat,\n verbose: ctx.verbose,\n });\n },\n });\n\n registry.registerCommand({\n path: ['orgs', 'list'],\n description: 'List organizations',\n handler: async ({ ctx }) => {\n await organizationsListCommand({\n env: ctx.env,\n outputFormat: ctx.outputFormat,\n verbose: ctx.verbose,\n });\n },\n });\n\n return registry;\n}\n\nfunction parseGlobalOptions(argv: string[]): {\n opts: PublicGlobalOptions;\n commandWords: string[];\n rest: string[];\n} {\n let apiUrl: string | undefined;\n let outputFormat: string | undefined;\n let verbose = false;\n let allowWrite = false;\n const commandWords: string[] = [];\n const rest: string[] = [];\n\n let collectingCommand = true;\n\n for (let i = 0; i < argv.length; i++) {\n const arg = argv[i]!;\n\n if (arg === '--api-url' && argv[i + 1]) {\n apiUrl = argv[++i]!;\n continue;\n }\n if ((arg === '-o' || arg === '--output-format') && argv[i + 1]) {\n outputFormat = argv[++i]!;\n continue;\n }\n if (arg === '-v' || arg === '--verbose') {\n verbose = true;\n continue;\n }\n if (arg === '--allow-write') {\n allowWrite = true;\n continue;\n }\n\n if (collectingCommand && !arg.startsWith('-')) {\n commandWords.push(arg);\n } else {\n collectingCommand = false;\n rest.push(arg);\n }\n }\n\n while (commandWords.length > 3) {\n rest.unshift(commandWords.pop()!);\n }\n\n return {\n opts: { apiUrl, outputFormat, verbose, allowWrite },\n commandWords,\n rest,\n };\n}\n\nasync function main(): Promise<void> {\n const registry = createRegistry();\n const args = process.argv.slice(2);\n\n if (args.length === 0 || args[0] === '--help' || args[0] === '-h') {\n process.stdout.write(registry.getHelp());\n process.exit(0);\n }\n\n if (args[0] === '--version') {\n process.stdout.write(`gr ${VERSION}\\n`);\n process.exit(0);\n }\n\n const { opts, commandWords, rest } = parseGlobalOptions(args);\n\n if (rest.includes('--help') || rest.includes('-h')) {\n process.stdout.write(registry.getHelp(commandWords));\n process.exit(0);\n }\n\n const resolved = registry.resolve(commandWords);\n if (!resolved) {\n if (commandWords.length > 0) {\n const helpText = registry.getHelp(commandWords);\n if (!helpText.startsWith('No commands found')) {\n process.stdout.write(helpText);\n process.exit(0);\n }\n }\n process.stderr.write(`Unknown command: ${commandWords.join(' ') || '(none)'}\\n\\n`);\n process.stdout.write(registry.getHelp());\n process.exit(1);\n }\n\n const { cmd, rest: extraWords } = resolved;\n const allRest = [...extraWords, ...rest];\n\n const parsedArgs = parseArgs(cmd.args ?? [], allRest);\n\n const requiresAuth = cmd.requiresAuth !== false;\n let hctx: CommandHandlerContext;\n\n if (requiresAuth) {\n const ctx = await createPublicAuthenticatedContext(opts);\n\n let workspace = (parsedArgs.workspace ?? parsedArgs.w ?? '') as string;\n if (cmd.requiresWorkspace && !workspace) {\n process.stderr.write('Error: --workspace (-w) is required\\n');\n process.exit(1);\n }\n\n const data = await readJsonInput(parsedArgs);\n\n hctx = { ctx, args: parsedArgs, workspace, data };\n } else {\n const baseCtx = createPublicContext(opts);\n hctx = {\n ctx: baseCtx as CommandHandlerContext['ctx'],\n args: parsedArgs,\n workspace: '',\n };\n }\n\n if (cmd.mutates && !opts.allowWrite) {\n process.stderr.write(\n `Error: \"${commandWords.join(' ')}\" is a write operation. Pass --allow-write to execute.\\n`\n );\n process.exit(1);\n }\n\n await cmd.handler(hctx);\n\n // Flush stdout before exiting — prevents truncation when piped (64KB buffer).\n if (process.stdout.writableNeedDrain) {\n await new Promise<void>((resolve) => process.stdout.once('drain', resolve));\n }\n\n process.exit(0);\n}\n\nmain().catch(handleError);\n"]}
|