{"language":"javascript","client_name":"inchjs","args":[],"client_version":"0.4.1","git_repo_url":"git@github.com:tremho/gen-format.git","branch_name":"review-revisions-1","objects":[{"comment":"","meta":{"range":[353,410],"filename":"index.js","lineno":5,"columnno":71,"path":"/build","code":{"id":"astnode100000061","name":"get","type":"FunctionExpression"}},"undocumented":true,"name":"get","longname":"get","kind":"function","scope":"global"},{"comment":"","meta":{"range":[477,525],"filename":"index.js","lineno":6,"columnno":62,"path":"/build","code":{"id":"astnode100000078","name":"get","type":"FunctionExpression"}},"undocumented":true,"name":"get","longname":"get","kind":"function","scope":"global"},{"comment":"","meta":{"range":[601,658],"filename":"index.js","lineno":7,"columnno":71,"path":"/build","code":{"id":"astnode100000095","name":"get","type":"FunctionExpression"}},"undocumented":true,"name":"get","longname":"get","kind":"function","scope":"global"},{"comment":"","meta":{"range":[728,779],"filename":"index.js","lineno":8,"columnno":65,"path":"/build","code":{"id":"astnode100000112","name":"get","type":"FunctionExpression"}},"undocumented":true,"name":"get","longname":"get","kind":"function","scope":"global"},{"comment":"","meta":{"range":[849,900],"filename":"index.js","lineno":9,"columnno":65,"path":"/build","code":{"id":"astnode100000129","name":"get","type":"FunctionExpression"}},"undocumented":true,"name":"get","longname":"get","kind":"function","scope":"global"},{"comment":"/**\n* Error thrown for an invalid value passed to the date formatter.\n*\n* This may be due to a string that fails to parse, a non-Date object instance,\n* an Invalid Date instance, or not a Date or a string.\n*\n* @param message\n* @constructor\n*/","meta":{"range":[3274,3667],"filename":"DateFormatter.js","lineno":72,"columnno":0,"path":"/build/src/format","code":{"id":"astnode100000363","name":"BadDateValue","type":"FunctionDeclaration","paramnames":["message"]},"vars":{"BadDateValue":"BadDateValue~BadDateValue","":null}},"description":"Error thrown for an invalid value passed to the date formatter.\n\nThis may be due to a string that fails to parse, a non-Date object instance,\nan Invalid Date instance, or not a Date or a string.","params":[{"name":"message"}],"kind":"class","name":"BadDateValue","longname":"BadDateValue","scope":"global"},{"comment":"/**\n* Picks from the timezone list.\n* Note: probably unnecessary at this point; it is already\n* somewhat redundant to findTimezone.\n* @param tz\n* @param entries\n*\n* @private\n*/","meta":{"range":[33383,34312],"filename":"DateFormatter.js","lineno":827,"columnno":0,"path":"/build/src/format","code":{"id":"astnode100004484","name":"pickTimezone","type":"FunctionDeclaration","paramnames":["tz","entries"]},"vars":{"bestEntry":"pickTimezone~bestEntry","tzu":"pickTimezone~tzu","tzl":"pickTimezone~tzl","i":"pickTimezone~i","tze":"pickTimezone~tze","anchor":"pickTimezone~anchor","city":"pickTimezone~city","sabbr":"pickTimezone~sabbr","dabbr":"pickTimezone~dabbr"}},"description":"Picks from the timezone list.\nNote: probably unnecessary at this point; it is already\nsomewhat redundant to findTimezone.","params":[{"name":"tz"},{"name":"entries"}],"access":"private","name":"pickTimezone","longname":"pickTimezone","kind":"function","scope":"global"},{"comment":"","meta":{"range":[34313,35106],"filename":"DateFormatter.js","lineno":855,"columnno":0,"path":"/build/src/format","code":{"id":"astnode100004651","name":"pickTimezoneBlock","type":"FunctionDeclaration","paramnames":["tz","blocks"]},"vars":{"bestBlock":"pickTimezoneBlock~bestBlock","tzu":"pickTimezoneBlock~tzu","tzl":"pickTimezoneBlock~tzl","i":"pickTimezoneBlock~i","block":"pickTimezoneBlock~block","anchor":"pickTimezoneBlock~anchor","city":"pickTimezoneBlock~city"}},"undocumented":true,"name":"pickTimezoneBlock","longname":"pickTimezoneBlock","kind":"function","scope":"global","params":[]},{"comment":"/**\n* Adjust the current time by interval of years\n* @param v\n*\n* @private\n*/","meta":{"range":[35190,35464],"filename":"DateFormatter.js","lineno":884,"columnno":0,"path":"/build/src/format","code":{"id":"astnode100004782","name":"yearMark","type":"FunctionDeclaration","paramnames":["v","top"]},"vars":{"top":"yearMark~top","dt":"yearMark~dt"}},"description":"Adjust the current time by interval of years","params":[{"name":"v"}],"access":"private","name":"yearMark","longname":"yearMark","kind":"function","scope":"global"},{"comment":"/**\n* Adjust the current time by interval of months\n* where (n) is the month relative to current month.\n* by setting to the current date in month (n).\n* If the current date in month (n) is invalid,\n* set the date to 4 weeks ahead/back from the current date instead\n* (per setDate)\n* @param v\n*\n* @private\n*/","meta":{"range":[35851,36482],"filename":"DateFormatter.js","lineno":907,"columnno":0,"path":"/build/src/format","code":{"id":"astnode100004858","name":"monthMark","type":"FunctionDeclaration","paramnames":["v","top"]},"vars":{"top":"monthMark~top","dt":"monthMark~dt","curMo":"monthMark~curMo","newMo":"monthMark~newMo","date":"monthMark~date","yo":"monthMark~yo"}},"description":"Adjust the current time by interval of months\nwhere (n) is the month relative to current month.\nby setting to the current date in month (n).\nIf the current date in month (n) is invalid,\nset the date to 4 weeks ahead/back from the current date instead\n(per setDate)","params":[{"name":"v"}],"access":"private","name":"monthMark","longname":"monthMark","kind":"function","scope":"global"},{"comment":"/**\n* Adjust date/time by a relative number of weeks\n* @param v\n*\n* @private\n*/","meta":{"range":[36568,36932],"filename":"DateFormatter.js","lineno":935,"columnno":0,"path":"/build/src/format","code":{"id":"astnode100004985","name":"weekMark","type":"FunctionDeclaration","paramnames":["v","top"]},"vars":{"top":"weekMark~top","dt":"weekMark~dt","date":"weekMark~date","wd":"weekMark~wd"}},"description":"Adjust date/time by a relative number of weeks","params":[{"name":"v"}],"access":"private","name":"weekMark","longname":"weekMark","kind":"function","scope":"global"},{"comment":"/**\n* Adjust date/time by a relative number of days\n* @param v\n*\n* @private\n*/","meta":{"range":[37017,37294],"filename":"DateFormatter.js","lineno":953,"columnno":0,"path":"/build/src/format","code":{"id":"astnode100005050","name":"dayMark","type":"FunctionDeclaration","paramnames":["v"]},"vars":{"dt":"dayMark~dt","date":"dayMark~date","off":"dayMark~off"}},"description":"Adjust date/time by a relative number of days","params":[{"name":"v"}],"access":"private","name":"dayMark","longname":"dayMark","kind":"function","scope":"global"},{"comment":"/**\n* set time to top of current hour\n* @param v\n*\n* @private\n*/","meta":{"range":[37365,37503],"filename":"DateFormatter.js","lineno":967,"columnno":0,"path":"/build/src/format","code":{"id":"astnode100005095","name":"hourMark","type":"FunctionDeclaration","paramnames":["v"]},"vars":{"dt":"hourMark~dt","hr":"hourMark~hr"}},"description":"set time to top of current hour","params":[{"name":"v"}],"access":"private","name":"hourMark","longname":"hourMark","kind":"function","scope":"global"},{"comment":"/**\n* set time to top of current minute\n* @param v\n*\n* @private\n*/","meta":{"range":[37576,37750],"filename":"DateFormatter.js","lineno":979,"columnno":0,"path":"/build/src/format","code":{"id":"astnode100005125","name":"minuteMark","type":"FunctionDeclaration","paramnames":["v"]},"vars":{"dt":"minuteMark~dt","hr":"minuteMark~hr","mn":"minuteMark~mn"}},"description":"set time to top of current minute","params":[{"name":"v"}],"access":"private","name":"minuteMark","longname":"minuteMark","kind":"function","scope":"global"},{"comment":"/**\n* set time to top of current second\n* @param v\n*\n* @private\n*/","meta":{"range":[37823,38031],"filename":"DateFormatter.js","lineno":992,"columnno":0,"path":"/build/src/format","code":{"id":"astnode100005162","name":"secondMark","type":"FunctionDeclaration","paramnames":["v"]},"vars":{"dt":"secondMark~dt","hr":"secondMark~hr","mn":"secondMark~mn","sc":"secondMark~sc"}},"description":"set time to top of current second","params":[{"name":"v"}],"access":"private","name":"secondMark","longname":"secondMark","kind":"function","scope":"global"},{"comment":"/**\n* Parse the string for @ hh:mm:ss.sss am/pm time specifier\n* and return the time offset (milliseconds) from midnight this time represents\n*\n* no time spec results in the current time offset from midnight\n*\n* @param str\n*\n* @private\n*/","meta":{"range":[38280,39859],"filename":"DateFormatter.js","lineno":1010,"columnno":0,"path":"/build/src/format","code":{"id":"astnode100005206","name":"parseTimeArg","type":"FunctionDeclaration","paramnames":["str"]},"vars":{"hr":"parseTimeArg~hr","mn":"parseTimeArg~mn","sn":"parseTimeArg~sn","isAm":"parseTimeArg~isAm","isPm":"parseTimeArg~isPm","timeset":"parseTimeArg~timeset","pi":"parseTimeArg~pi","tmstr":"parseTimeArg~tmstr","ai":"parseTimeArg~ai","se":"parseTimeArg~se","hi":"parseTimeArg~hi","hs":"parseTimeArg~hs","mi":"parseTimeArg~mi","ms":"parseTimeArg~ms","ss":"parseTimeArg~ss","now":"parseTimeArg~now"}},"description":"Parse the string for @ hh:mm:ss.sss am/pm time specifier\nand return the time offset (milliseconds) from midnight this time represents\n\nno time spec results in the current time offset from midnight","params":[{"name":"str"}],"access":"private","name":"parseTimeArg","longname":"parseTimeArg","kind":"function","scope":"global"},{"comment":"/**\n* Find the referenced weekday in a string such as 'last Tuesday' or 'next Th'\n* @param str\n*\n* @private\n*/","meta":{"range":[39976,40618],"filename":"DateFormatter.js","lineno":1067,"columnno":0,"path":"/build/src/format","code":{"id":"astnode100005489","name":"findWeekdayName","type":"FunctionDeclaration","paramnames":["str"]},"vars":{"si":"findWeekdayName~si","se":"findWeekdayName~se","wkdName":"findWeekdayName~wkdName","i":"findWeekdayName~i","fn":"findWeekdayName~fn","a1":"findWeekdayName~a1","a2":"findWeekdayName~a2","a3":"findWeekdayName~a3"}},"description":"Find the referenced weekday in a string such as 'last Tuesday' or 'next Th'","params":[{"name":"str"}],"access":"private","name":"findWeekdayName","longname":"findWeekdayName","kind":"function","scope":"global"},{"comment":"/**\n* Move to the last occurrence of the given weekday prior to the current day\n* @param wd\n* @param midnight\n*\n* @private\n*/","meta":{"range":[40751,41092],"filename":"DateFormatter.js","lineno":1092,"columnno":0,"path":"/build/src/format","code":{"id":"astnode100005610","name":"lastWeekday","type":"FunctionDeclaration","paramnames":["wd","midnight"]},"vars":{"ndt":"lastWeekday~ndt","nwd":"lastWeekday~nwd","wm":"lastWeekday~wm","dt":"lastWeekday~dt"}},"description":"Move to the last occurrence of the given weekday prior to the current day","params":[{"name":"wd"},{"name":"midnight"}],"access":"private","name":"lastWeekday","longname":"lastWeekday","kind":"function","scope":"global"},{"comment":"/**\n* Move forward to the next occurrence of the given weekday\n* @param wd\n* @param midnight\n*\n* @private\n*/","meta":{"range":[41208,41538],"filename":"DateFormatter.js","lineno":1110,"columnno":0,"path":"/build/src/format","code":{"id":"astnode100005666","name":"nextWeekday","type":"FunctionDeclaration","paramnames":["wd"]},"vars":{"ndt":"nextWeekday~ndt","nwd":"nextWeekday~nwd","wm":"nextWeekday~wm","dt":"nextWeekday~dt"}},"description":"Move forward to the next occurrence of the given weekday","params":[{"name":"wd"},{"name":"midnight"}],"access":"private","name":"nextWeekday","longname":"nextWeekday","kind":"function","scope":"global"},{"comment":"/**\n* move forward or back to to named weekday within the current week\n* @param wd\n* @param midnight\n*\n* @private\n*/","meta":{"range":[41662,41875],"filename":"DateFormatter.js","lineno":1128,"columnno":0,"path":"/build/src/format","code":{"id":"astnode100005720","name":"thisWeekday","type":"FunctionDeclaration","paramnames":["wd"]},"vars":{"dt":"thisWeekday~dt"}},"description":"move forward or back to to named weekday within the current week","params":[{"name":"wd"},{"name":"midnight"}],"access":"private","name":"thisWeekday","longname":"thisWeekday","kind":"function","scope":"global"},{"comment":"","meta":{"range":[41876,42345],"filename":"DateFormatter.js","lineno":1133,"columnno":0,"path":"/build/src/format","code":{"id":"astnode100005749","name":"i18nMonth","type":"FunctionDeclaration","paramnames":["locale","mn","style"]},"vars":{"locale":"i18nMonth~locale","style":"i18nMonth~style","ikey":"i18nMonth~ikey","value":"i18nMonth~value"}},"undocumented":true,"name":"i18nMonth","longname":"i18nMonth","kind":"function","scope":"global","params":[]},{"comment":"","meta":{"range":[42346,42882],"filename":"DateFormatter.js","lineno":1148,"columnno":0,"path":"/build/src/format","code":{"id":"astnode100005819","name":"i18nWeekday","type":"FunctionDeclaration","paramnames":["locale","wd","style"]},"vars":{"locale":"i18nWeekday~locale","style":"i18nWeekday~style","ikey":"i18nWeekday~ikey","value":"i18nWeekday~value"}},"undocumented":true,"name":"i18nWeekday","longname":"i18nWeekday","kind":"function","scope":"global","params":[]},{"comment":"","meta":{"range":[42883,43425],"filename":"DateFormatter.js","lineno":1163,"columnno":0,"path":"/build/src/format","code":{"id":"astnode100005896","name":"i18nTimezone","type":"FunctionDeclaration","paramnames":["locale","tzName","style","dt"]},"vars":{"locale":"i18nTimezone~locale","blocks":"i18nTimezone~blocks","block":"i18nTimezone~block","value":"i18nTimezone~value","abbr":"i18nTimezone~abbr","name_2":"i18nTimezone~name_2"}},"undocumented":true,"name":"i18nTimezone","longname":"i18nTimezone","kind":"function","scope":"global","params":[]},{"comment":"","meta":{"range":[43426,43499],"filename":"DateFormatter.js","lineno":1177,"columnno":0,"path":"/build/src/format","code":{"id":"astnode100005982","name":"useIntl","type":"FunctionDeclaration","paramnames":[]}},"undocumented":true,"name":"useIntl","longname":"useIntl","kind":"function","scope":"global","params":[]},{"comment":"/**\n* Complement to `setArtificialNow`, returns\n* the agreed upon current time\n*\n* @return {number} real or artificial current timestamp, in milliseconds\n*/","meta":{"range":[734,795],"filename":"DateRangeFormatter.js","lineno":21,"columnno":0,"path":"/build/src/format","code":{"id":"astnode100006080","name":"getNow","type":"FunctionDeclaration","paramnames":[]}},"description":"Complement to `setArtificialNow`, returns\nthe agreed upon current time","returns":[{"type":{"names":["number"]},"description":"real or artificial current timestamp, in milliseconds"}],"name":"getNow","longname":"getNow","kind":"function","scope":"global","params":[]},{"comment":"/**\n* Set an artificial value for 'currentTime'.\n* Useful for debugging, or for setting up relative time scenarios\n* against a non-current context.\n* A string or number or Date suitable for a Date constructor\n* can be passed. Pass 0 or undefined to turn off.\n*\n* @param [datevalue] - a value suitable for a Date constructor, or none to turn off\n*\n*/","meta":{"range":[1180,1421],"filename":"DateRangeFormatter.js","lineno":35,"columnno":0,"path":"/build/src/format","code":{"id":"astnode100006096","name":"setArtificialNow","type":"FunctionDeclaration","paramnames":["datevalue"]},"vars":{"artificialNow":"setArtificialNow~artificialNow"}},"description":"Set an artificial value for 'currentTime'.\nUseful for debugging, or for setting up relative time scenarios\nagainst a non-current context.\nA string or number or Date suitable for a Date constructor\ncan be passed. Pass 0 or undefined to turn off.","params":[{"optional":true,"description":"a value suitable for a Date constructor, or none to turn off","name":"datevalue"}],"name":"setArtificialNow","longname":"setArtificialNow","kind":"function","scope":"global"},{"comment":"/**\n* Break down the interval into a DurationParts object that describes the span in graduated unite of time.\n* @param ms\n*\n* @private\n*/","meta":{"range":[11665,12886],"filename":"DateRangeFormatter.js","lineno":287,"columnno":0,"path":"/build/src/format","code":{"id":"astnode100007279","name":"getDurationParts","type":"FunctionDeclaration","paramnames":["ms"]},"vars":{"out":"getDurationParts~out","msPerSec":"getDurationParts~msPerSec","secPerMin":"getDurationParts~secPerMin","minPerHr":"getDurationParts~minPerHr","hrsPerDay":"getDurationParts~hrsPerDay","dayPerWeek":"getDurationParts~dayPerWeek","weeksPerMonth":"getDurationParts~weeksPerMonth","monthsPerYear":"getDurationParts~monthsPerYear","out.sign":"getDurationParts~out.sign","ms":"getDurationParts~ms","out.totalms":"getDurationParts~out.totalms","out.seconds":"getDurationParts~out.seconds","out.minutes":"getDurationParts~out.minutes","out.hours":"getDurationParts~out.hours","out.days":"getDurationParts~out.days","out.weeks":"getDurationParts~out.weeks","out.months":"getDurationParts~out.months","out.years":"getDurationParts~out.years","out.milliseconds":"getDurationParts~out.milliseconds"}},"description":"Break down the interval into a DurationParts object that describes the span in graduated unite of time.","params":[{"name":"ms"}],"access":"private","name":"getDurationParts","longname":"getDurationParts","kind":"function","scope":"global"},{"comment":"/**\n* Break down the parts and structure a duration display in the proper semantics\n* based on the options.  Use Intl where appropriate; format our own where not.\n*\n* @param dparts\n* @param locale\n* @param specParts\n* @param isHuman\n* @param relStyle\n*\n* @private\n*/","meta":{"range":[13165,20211],"filename":"DateRangeFormatter.js","lineno":327,"columnno":0,"path":"/build/src/format","code":{"id":"astnode100007542","name":"fitRelativeTime","type":"FunctionDeclaration","paramnames":["dparts","locale","specParts","isHuman","relStyle"]},"vars":{"dparts.sign":"dparts.sign","dparts":"fitRelativeTime~dparts","out":"fitRelativeTime~out","express":"fitRelativeTime~express","":null,"expressHMS":"fitRelativeTime~expressHMS","dparts.seconds":"fitRelativeTime~dparts.seconds","dparts.milliseconds":"fitRelativeTime~dparts.milliseconds","tDate":"fitRelativeTime~tDate","dparts.minutes":"fitRelativeTime~dparts.minutes","opts":"fitRelativeTime~opts","rtf":"fitRelativeTime~rtf","type":"fitRelativeTime~type","value":"fitRelativeTime~value"}},"description":"Break down the parts and structure a duration display in the proper semantics\nbased on the options.  Use Intl where appropriate; format our own where not.","params":[{"name":"dparts"},{"name":"locale"},{"name":"specParts"},{"name":"isHuman"},{"name":"relStyle"}],"access":"private","name":"fitRelativeTime","longname":"fitRelativeTime","kind":"function","scope":"global"},{"comment":"","meta":{"range":[20212,20640],"filename":"DateRangeFormatter.js","lineno":520,"columnno":0,"path":"/build/src/format","code":{"id":"astnode100008487","name":"roundUpDParts","type":"FunctionDeclaration","paramnames":["dparts"]},"vars":{"dparts.milliseconds":"dparts.milliseconds","dparts.seconds":"dparts.seconds","dparts.minutes":"dparts.minutes","dparts.hours":"dparts.hours"}},"undocumented":true,"name":"roundUpDParts","longname":"roundUpDParts","kind":"function","scope":"global","params":[]},{"comment":"","meta":{"range":[20641,23587],"filename":"DateRangeFormatter.js","lineno":539,"columnno":0,"path":"/build/src/format","code":{"id":"astnode100008565","name":"fitRelativeDate","type":"FunctionDeclaration","paramnames":["dt"]},"vars":{"out":"fitRelativeDate~out","isToday":"fitRelativeDate~isToday","today":"fitRelativeDate~today","timeDiff":"fitRelativeDate~timeDiff","years":"fitRelativeDate~years","months":"fitRelativeDate~months","days":"fitRelativeDate~days","sign":"fitRelativeDate~sign","weeks":"fitRelativeDate~weeks","dateStyle":"fitRelativeDate~dateStyle","weekday":"fitRelativeDate~weekday"}},"undocumented":true,"name":"fitRelativeDate","longname":"fitRelativeDate","kind":"function","scope":"global","params":[]},{"comment":"","meta":{"range":[23588,23661],"filename":"DateRangeFormatter.js","lineno":615,"columnno":0,"path":"/build/src/format","code":{"id":"astnode100008966","name":"useIntl","type":"FunctionDeclaration","paramnames":[]}},"undocumented":true,"name":"useIntl","longname":"useIntl","kind":"function","scope":"global","params":[]},{"comment":"","meta":{"range":[216,3076],"filename":"Shared.js","lineno":6,"columnno":0,"path":"/build/src/format","code":{"id":"astnode100010107","name":"i18nFormatByStyle","type":"FunctionDeclaration","paramnames":["locale","dateStyle","timeStyle","isUtc","fallbackSeparator"]},"vars":{"locale":"i18nFormatByStyle~locale","dateStyle":"i18nFormatByStyle~dateStyle","timeStyle":"i18nFormatByStyle~timeStyle","ikeyDate":"i18nFormatByStyle~ikeyDate","ikeyTime":"i18nFormatByStyle~ikeyTime","dateFmt":"i18nFormatByStyle~dateFmt","timeFmt":"i18nFormatByStyle~timeFmt","tmf":"i18nFormatByStyle~tmf","isUS":"i18nFormatByStyle~isUS","h":"i18nFormatByStyle~h"}},"undocumented":true,"name":"i18nFormatByStyle","longname":"i18nFormatByStyle","kind":"function","scope":"global","params":[]},{"comment":"/**\n* Support for the `formatV` operation.\n*\n* Parses the format template into parsed items\n*\n* new format form is \"literal $(fmt) or $2(fmt) or $name(fmt)\"\n*\n* @private\n*/","meta":{"range":[490,2653],"filename":"TemplateFormatter.js","lineno":22,"columnno":0,"path":"/build/src/format","code":{"id":"astnode100010870","name":"parseFormat","type":"FunctionDeclaration","paramnames":["fmt"]},"vars":{"fmt":"parseFormat~fmt","parsedItems":"parseFormat~parsedItems","natOrder":"parseFormat~natOrder","pi":"parseFormat~pi","ps":"parseFormat~ps","item":"parseFormat~item","item.prelit":"parseFormat~item.prelit","fi":"parseFormat~fi","fe":"parseFormat~fe","item.format":"parseFormat~item.format","pf":"parseFormat~pf","sn":"parseFormat~sn","m":"parseFormat~m","ni":"parseFormat~ni","pd":"parseFormat~pd","item.argProp":"parseFormat~item.argProp","item.argOrdinal":"parseFormat~item.argOrdinal"}},"description":"Support for the `formatV` operation.\n\nParses the format template into parsed items\n\nnew format form is \"literal $(fmt) or $2(fmt) or $name(fmt)\"","access":"private","name":"parseFormat","longname":"parseFormat","kind":"function","scope":"global","params":[]},{"comment":"/**\n* Applies the values to the corresponding formats\n*\n* @param formatter\n* @param items\n* @param args\n*\n* @private\n*/","meta":{"range":[2817,3660],"filename":"TemplateFormatter.js","lineno":98,"columnno":0,"path":"/build/src/format","code":{"id":"astnode100011198","name":"applyItems","type":"FunctionDeclaration","paramnames":["formatter","items","args"]},"vars":{"out":"applyItems~out","i":"applyItems~i","item":"applyItems~item","n":"applyItems~n","v":"applyItems~v","item.format":"applyItems~item.format","formed":"applyItems~formed"}},"description":"Applies the values to the corresponding formats","params":[{"name":"formatter"},{"name":"items"},{"name":"args"}],"access":"private","name":"applyItems","longname":"applyItems","kind":"function","scope":"global"},{"comment":"/**\n* Find the Timezone entries that matches the string given\n*\n* @param {string} tzString\n* @return {TimezoneEntry[]} array of entries that match this string\n*\n* @private\n*/","meta":{"range":[1671,3260],"filename":"Timezone.js","lineno":50,"columnno":0,"path":"/build/src/format","code":{"id":"astnode100011590","name":"findTimezones","type":"FunctionDeclaration","paramnames":["tzString"]},"vars":{"found":"findTimezones~found","tzString":"findTimezones~tzString","tzAbbr":"findTimezones~tzAbbr","":null}},"description":"Find the Timezone entries that matches the string given","params":[{"type":{"names":["string"]},"name":"tzString"}],"returns":[{"type":{"names":["Array.<TimezoneEntry>"]},"description":"array of entries that match this string"}],"access":"private","name":"findTimezones","longname":"findTimezones","kind":"function","scope":"global"},{"comment":"","meta":{"range":[3300,3636],"filename":"Timezone.js","lineno":93,"columnno":0,"path":"/build/src/format","code":{"id":"astnode100011847","name":"findTimezonesByOffset","type":"FunctionDeclaration","paramnames":["offset"]},"vars":{"found":"findTimezonesByOffset~found","":null}},"undocumented":true,"name":"findTimezonesByOffset","longname":"findTimezonesByOffset","kind":"function","scope":"global","params":[]},{"comment":"","meta":{"range":[3692,4100],"filename":"Timezone.js","lineno":105,"columnno":0,"path":"/build/src/format","code":{"id":"astnode100011901","name":"chooseBlock","type":"FunctionDeclaration","paramnames":["tzd","dt"]},"vars":{"t":"chooseBlock~t","th":"chooseBlock~th","block":"chooseBlock~block","i":"chooseBlock~i","st":"chooseBlock~st","end":"chooseBlock~end","block.city":"chooseBlock~block.city"}},"undocumented":true,"name":"chooseBlock","longname":"chooseBlock","kind":"function","scope":"global","params":[]},{"comment":"","meta":{"range":[4101,4354],"filename":"Timezone.js","lineno":120,"columnno":0,"path":"/build/src/format","code":{"id":"astnode100011985","name":"findTimezoneBlocksForDate","type":"FunctionDeclaration","paramnames":["dt"]},"vars":{"found":"findTimezoneBlocksForDate~found","offset":"findTimezoneBlocksForDate~offset","zones":"findTimezoneBlocksForDate~zones","":null}},"undocumented":true,"name":"findTimezoneBlocksForDate","longname":"findTimezoneBlocksForDate","kind":"function","scope":"global","params":[]},{"comment":"","meta":{"range":[4418,4807],"filename":"Timezone.js","lineno":130,"columnno":0,"path":"/build/src/format","code":{"id":"astnode100012031","name":"findTimezoneBlocks","type":"FunctionDeclaration","paramnames":["nameOrAbbr","dt"]},"vars":{"found":"findTimezoneBlocks~found","zones":"findTimezoneBlocks~zones","i":"findTimezoneBlocks~i","block":"findTimezoneBlocks~block"}},"undocumented":true,"name":"findTimezoneBlocks","longname":"findTimezoneBlocks","kind":"function","scope":"global","params":[]},{"comment":"/**\n* Sets up the file operation functions needed for the `i18n` / `locale-string-tables` support\n* This must be done prior to any use of the features of this module.\n* By default, file operations for a typical NodeJS environment are loaded.  If this does not\n* fit your needs, you MUST call this setup function.\n* @param {FileOps} fileOps\n*/","meta":{"range":[1429,1485],"filename":"Formatter.js","lineno":27,"columnno":0,"path":"/build/src","code":{"id":"astnode100038346","name":"setFileOps","type":"FunctionDeclaration","paramnames":["fileOps"]},"vars":{"gFileOps":"setFileOps~gFileOps"}},"description":"Sets up the file operation functions needed for the `i18n` / `locale-string-tables` support\nThis must be done prior to any use of the features of this module.\nBy default, file operations for a typical NodeJS environment are loaded.  If this does not\nfit your needs, you MUST call this setup function.","params":[{"type":{"names":["FileOps"]},"name":"fileOps"}],"name":"setFileOps","longname":"setFileOps","kind":"function","scope":"global"},{"comment":"/**\n* Returns the currently loaded fileOps object\n* @return {FileOps} fileOps\n*/","meta":{"range":[1603,1649],"filename":"Formatter.js","lineno":35,"columnno":0,"path":"/build/src","code":{"id":"astnode100038360","name":"getFileOps","type":"FunctionDeclaration","paramnames":[]}},"description":"Returns the currently loaded fileOps object","returns":[{"type":{"names":["FileOps"]},"description":"fileOps"}],"name":"getFileOps","longname":"getFileOps","kind":"function","scope":"global","params":[]},{"comment":"","meta":{"range":[1723,2083],"filename":"Formatter.js","lineno":40,"columnno":0,"path":"/build/src","code":{"id":"astnode100038379","name":"hasLanguages","type":"FunctionDeclaration","paramnames":[]},"vars":{"january":"hasLanguages~january","spanish":"hasLanguages~spanish","japanese":"hasLanguages~japanese"}},"undocumented":true,"name":"hasLanguages","longname":"hasLanguages","kind":"function","scope":"global","params":[]},{"comment":"/**\n* Returns a string describing the availability and support for\n* W3C \"Intl\" library for DateTimeFormat.\n*\n* If availability is complete, and the function `useIntl(true)` is called (with `true`),\n* this library will be used for most of the localization aspects of the date/time formatting.\n*\n* Intl support may be necessary to support extended numbering systems or calendar options, or\n* to faithfully represent formats for certain locales.\n*\n* @returns {string} one of:\n*\n*  - `complete` :  the Intl library appears to support languages beyond the system locale\n*  - `partial` : the Intl libary appears to support the system locale, but perhaps not others\n*  - `none` : there is no Intl support available on this system.\n*/","meta":{"range":[2827,3022],"filename":"Formatter.js","lineno":67,"columnno":0,"path":"/build/src","code":{"id":"astnode100038431","name":"checkIntlSupport","type":"FunctionDeclaration","paramnames":[]}},"description":"Returns a string describing the availability and support for\nW3C \"Intl\" library for DateTimeFormat.\n\nIf availability is complete, and the function `useIntl(true)` is called (with `true`),\nthis library will be used for most of the localization aspects of the date/time formatting.\n\nIntl support may be necessary to support extended numbering systems or calendar options, or\nto faithfully represent formats for certain locales.","returns":[{"type":{"names":["string"]},"description":"one of:\n\n - `complete` :  the Intl library appears to support languages beyond the system locale\n - `partial` : the Intl libary appears to support the system locale, but perhaps not others\n - `none` : there is no Intl support available on this system."}],"name":"checkIntlSupport","longname":"checkIntlSupport","kind":"function","scope":"global","params":[]},{"comment":"/**\n* Call with the option to utilize the W3C Intl library, if available.\n*\n* Use the `checkIntlSupport()` function to determine type of support available on this system.\n*\n* If set true, Intl.DateTimeFormat will be called where appropriate rather than using the formatting and localization\n* entirely through this library.\n*\n* Default is `false`: no use of Intl.\n*\n* @param use - pass `true` to enable Intl support, false to disable\n*/","meta":{"range":[3516,3566],"filename":"Formatter.js","lineno":91,"columnno":0,"path":"/build/src","code":{"id":"astnode100038453","name":"useIntl","type":"FunctionDeclaration","paramnames":["use"]},"vars":{"useIntlChoice":"useIntl~useIntlChoice"}},"description":"Call with the option to utilize the W3C Intl library, if available.\n\nUse the `checkIntlSupport()` function to determine type of support available on this system.\n\nIf set true, Intl.DateTimeFormat will be called where appropriate rather than using the formatting and localization\nentirely through this library.\n\nDefault is `false`: no use of Intl.","params":[{"description":"pass `true` to enable Intl support, false to disable","name":"use"}],"name":"useIntl","longname":"useIntl","kind":"function","scope":"global"},{"comment":"/**\n* Returns the current setting of the `useIntl` choice\n*\n* @return {boolean} the choice currently in effect\n*/","meta":{"range":[3712,3769],"filename":"Formatter.js","lineno":100,"columnno":0,"path":"/build/src","code":{"id":"astnode100038467","name":"getUseIntlChoice","type":"FunctionDeclaration","paramnames":[]}},"description":"Returns the current setting of the `useIntl` choice","returns":[{"type":{"names":["boolean"]},"description":"the choice currently in effect"}],"name":"getUseIntlChoice","longname":"getUseIntlChoice","kind":"function","scope":"global","params":[]},{"comment":"/**\n* Attaches a format handler to the general Formatter choices\n* May be used to create a unique `IFormatHandler` instance as a new named type\n* @param type\n* @param handler\n*\n* @example\n*      class MyFoobarFormatter extends IFormatHandler) {\n*          format(specParts:SpecParts, value:any):string {\n*              return 'FUBAR!'\n*          }\n*      }\n*      registerFormatHandler('foobar', MyFoobarFormatter)\n*/","meta":{"range":[4749,4838],"filename":"Formatter.js","lineno":133,"columnno":0,"path":"/build/src","code":{"id":"astnode100038499","name":"registerFormatHandler","type":"FunctionDeclaration","paramnames":["type","handler"]},"vars":{"registeredHandlers[undefined]":null}},"description":"Attaches a format handler to the general Formatter choices\nMay be used to create a unique `IFormatHandler` instance as a new named type","params":[{"name":"type"},{"name":"handler"}],"examples":["class MyFoobarFormatter extends IFormatHandler) {\n         format(specParts:SpecParts, value:any):string {\n             return 'FUBAR!'\n         }\n     }\n     registerFormatHandler('foobar', MyFoobarFormatter)"],"name":"registerFormatHandler","longname":"registerFormatHandler","kind":"function","scope":"global"},{"comment":"/**\n* The primary export of the gen-format module: The `Formatter` operation (sometimes `F` as shorthand)\n* is represented by this function\n*\n* A _specifier string_ defines the type of format handler either by name (e.g. 'date') or by inference (i.e. numbers and strings)\n* as well as the format and any hints or locale.\n*\n* format type names are given first, followed by any locale or hint declarations, followed by a \"|\" character and\n* then the format.\n*\n* locales are preceded by a tilde character (~).  Locales passed to date or number formatters may include\n* unicode extended values for calendar and numbering system if Intl support is available and enabled.\n*\n* hints are indicated by a ? character.  If there are multiple hints, each is separated by a dash (-) character.\n* Hints vary according to the type of formatter used. Refer to the documentation for the specific formatter type.\n*\n* Refer to the examples elsewhere in the `gen-format` module documentation\n* for the types of specifier strings and values that can be passed.\n*\n*\n* @param {string} spec The format specifier string.\n* @param {any} value The value to be formatted\n*\n* @example\n*      import F, {useIntl} from '@tremho/gen-format\n*      useIntl(true) // assumes Intl is available. see `checkIntlSupport`\n*\n*      console.log( F('date~zh-ZH-u-nu-hans-ca-chinese?Asia/Hong Kong|full', 'now') )\n*/","meta":{"range":[6295,6593],"filename":"Formatter.js","lineno":166,"columnno":0,"path":"/build/src","code":{"id":"astnode100038516","name":"formatFactory","type":"FunctionDeclaration","paramnames":["spec","value"]},"vars":{"specParts":"formatFactory~specParts","handler":"formatFactory~handler"}},"description":"The primary export of the gen-format module: The `Formatter` operation (sometimes `F` as shorthand)\nis represented by this function\n\nA _specifier string_ defines the type of format handler either by name (e.g. 'date') or by inference (i.e. numbers and strings)\nas well as the format and any hints or locale.\n\nformat type names are given first, followed by any locale or hint declarations, followed by a \"|\" character and\nthen the format.\n\nlocales are preceded by a tilde character (~).  Locales passed to date or number formatters may include\nunicode extended values for calendar and numbering system if Intl support is available and enabled.\n\nhints are indicated by a ? character.  If there are multiple hints, each is separated by a dash (-) character.\nHints vary according to the type of formatter used. Refer to the documentation for the specific formatter type.\n\nRefer to the examples elsewhere in the `gen-format` module documentation\nfor the types of specifier strings and values that can be passed.","params":[{"type":{"names":["string"]},"description":"The format specifier string.","name":"spec"},{"type":{"names":["any"]},"description":"The value to be formatted","name":"value"}],"examples":["import F, {useIntl} from '@tremho/gen-format\n     useIntl(true) // assumes Intl is available. see `checkIntlSupport`\n\n     console.log( F('date~zh-ZH-u-nu-hans-ca-chinese?Asia/Hong Kong|full', 'now') )"],"name":"formatFactory","longname":"formatFactory","kind":"function","scope":"global"},{"comment":"/**\n* Error thrown for a specified type that does not exist\n*\n* @param message\n* @constructor\n*/","meta":{"range":[6729,7157],"filename":"Formatter.js","lineno":181,"columnno":0,"path":"/build/src","code":{"id":"astnode100038562","name":"UnknownFormatType","type":"FunctionDeclaration","paramnames":["message"]},"vars":{"UnknownFormatType":"UnknownFormatType~UnknownFormatType","":null}},"description":"Error thrown for a specified type that does not exist","params":[{"name":"message"}],"kind":"class","name":"UnknownFormatType","longname":"UnknownFormatType","scope":"global"},{"comment":"/**\n* Error thrown for the wrong type of value passed to a handler\n*\n* @param message\n* @constructor\n*/","meta":{"range":[7314,7770],"filename":"Formatter.js","lineno":200,"columnno":0,"path":"/build/src","code":{"id":"astnode100038614","name":"IncompatibleValueType","type":"FunctionDeclaration","paramnames":["message"]},"vars":{"IncompatibleValueType":"IncompatibleValueType~IncompatibleValueType","":null}},"description":"Error thrown for the wrong type of value passed to a handler","params":[{"name":"message"}],"kind":"class","name":"IncompatibleValueType","longname":"IncompatibleValueType","scope":"global"},{"comment":"/**\n* Error thrown for a syntax error in the format specifier\n*\n* @param message\n* @constructor\n*/","meta":{"range":[7930,8365],"filename":"Formatter.js","lineno":219,"columnno":0,"path":"/build/src","code":{"id":"astnode100038666","name":"BadFormatSpecifier","type":"FunctionDeclaration","paramnames":["message"]},"vars":{"BadFormatSpecifier":"BadFormatSpecifier~BadFormatSpecifier","":null}},"description":"Error thrown for a syntax error in the format specifier","params":[{"name":"message"}],"kind":"class","name":"BadFormatSpecifier","longname":"BadFormatSpecifier","scope":"global"},{"comment":"/**\n* Parses the format specifier into SpecParts object for processing\n* @param str\n*\n* @private\n*/","meta":{"range":[8520,10511],"filename":"Formatter.js","lineno":238,"columnno":0,"path":"/build/src","code":{"id":"astnode100038718","name":"decodeSpec","type":"FunctionDeclaration","paramnames":["str"]},"vars":{"fi":"decodeSpec~fi","hi":"decodeSpec~hi","li":"decodeSpec~li","di":"decodeSpec~di","ci":"decodeSpec~ci","specParts":"decodeSpec~specParts","specParts.type":"decodeSpec~specParts.type","te":"decodeSpec~te","he":"decodeSpec~he","specParts.hints":"decodeSpec~specParts.hints","le":"decodeSpec~le","specParts.locale":"decodeSpec~specParts.locale","fe":"decodeSpec~fe","specParts.format":"decodeSpec~specParts.format"}},"description":"Parses the format specifier into SpecParts object for processing","params":[{"name":"str"}],"access":"private","name":"decodeSpec","longname":"decodeSpec","kind":"function","scope":"global"},{"comment":"/**\n* Use a format template string and passed arguments to create\n* a formatted output\n*\n* @param fmt The first parameter is a string that defines the format template\n* @param args Subsequent arguments represent the value sources that are represented\n*\n* @example\n*\n*      import {formatV} from 'gen-format'\n*\n*      formatV(\"Pi day, $(date|MMM DD} honors the value Pi which is $(1.2)\", '2021-03-14Z', Math.PI)\n*/","meta":{"range":[11003,11268],"filename":"Formatter.js","lineno":317,"columnno":0,"path":"/build/src","code":{"id":"astnode100039073","name":"formatV","type":"FunctionDeclaration","paramnames":["fmt"]},"vars":{"args":"formatV~args","_i":"formatV~_i","args[undefined]":"formatV~args.undefined]","items":"formatV~items"}},"description":"Use a format template string and passed arguments to create\na formatted output","params":[{"description":"The first parameter is a string that defines the format template","name":"fmt"},{"description":"Subsequent arguments represent the value sources that are represented","name":"args"}],"examples":["import {formatV} from 'gen-format'\n\n     formatV(\"Pi day, $(date|MMM DD} honors the value Pi which is $(1.2)\", '2021-03-14Z', Math.PI)"],"name":"formatV","longname":"formatV","kind":"function","scope":"global"},{"comment":"/**\n* This is access to the localization support features of the internal `@tremho/locale-string-tables` module\n* that `gen-format` uses.  This API allows you to use the `i18n` string tables for your own purposes as well.\n*\n* Access this API with `import {i18n} from \"@tremho/gen-format\")`\n*\n* for the i18n API reference, see the [@tremho/locale-string-tables reference](https://github.com/tremho/locale-string-tables#api)\n*\n* each of the API functions listed there can be found off of the imported `i18n` namespace object.\n*\n* _Note: `loadForLocale` is not exported by this API bridge. use `setLocale` instead, which will also load if needed_\n*\n* In addition to the APIs revealed by this bridge, please note the `init` function documented below.\n*\n*/","meta":{"range":[1051,1074],"filename":"i18n.js","lineno":22,"columnno":0,"path":"/build/src","code":{"id":"astnode100039211","name":"i18n_API","type":"FunctionDeclaration","paramnames":[]}},"description":"This is access to the localization support features of the internal `@tremho/locale-string-tables` module\nthat `gen-format` uses.  This API allows you to use the `i18n` string tables for your own purposes as well.\n\nAccess this API with `import {i18n} from \"@tremho/gen-format\")`\n\nfor the i18n API reference, see the [@tremho/locale-string-tables reference](https://github.com/tremho/locale-string-tables#api)\n\neach of the API functions listed there can be found off of the imported `i18n` namespace object.\n\n_Note: `loadForLocale` is not exported by this API bridge. use `setLocale` instead, which will also load if needed_\n\nIn addition to the APIs revealed by this bridge, please note the `init` function documented below.","name":"i18n_API","longname":"i18n_API","kind":"function","scope":"global","params":[]},{"comment":"/**\n* Call once before using other functions of the i18n API.\n* If you do not call this before using any of the api functions, then it will be called upon first entry into an\n* api function, but there may be a resulting slight delay due to the initialization.\n* For this reason, it is best to initialize ahead of time.\n* As a convenience if you need to supply custom FileOps (see `Formatter.setFileOps()`), you may pass your\n* FileOps object here rather than having to call `Formatter.setFileOps()` first.  Both methods are equivalent\n* in functional result.\n*\n* @param withFileOps The FileOps that will be passed to `Formatter.setFileOps()` before initializing the\n* i18n system.\n*/","meta":{"range":[1838,2334],"filename":"i18n.js","lineno":36,"columnno":4,"path":"/build/src","code":{"id":"astnode100039218","name":"init","type":"FunctionExpression"},"vars":{"i18n":"wrapper.init~i18n"}},"description":"Call once before using other functions of the i18n API.\nIf you do not call this before using any of the api functions, then it will be called upon first entry into an\napi function, but there may be a resulting slight delay due to the initialization.\nFor this reason, it is best to initialize ahead of time.\nAs a convenience if you need to supply custom FileOps (see `Formatter.setFileOps()`), you may pass your\nFileOps object here rather than having to call `Formatter.setFileOps()` first.  Both methods are equivalent\nin functional result.","params":[{"description":"The FileOps that will be passed to `Formatter.setFileOps()` before initializing the\ni18n system.","name":"withFileOps"}],"name":"init","longname":"wrapper.init","kind":"function","memberof":"wrapper","scope":"static"},{"comment":"","meta":{"range":[2340,2480],"filename":"i18n.js","lineno":47,"columnno":4,"path":"/build/src","code":{"id":"astnode100039256","name":"getSystemLocale","type":"FunctionExpression"}},"undocumented":true,"name":"getSystemLocale","longname":"wrapper.getSystemLocale","kind":"function","memberof":"wrapper","scope":"static"},{"comment":"","meta":{"range":[2486,2608],"filename":"i18n.js","lineno":52,"columnno":4,"path":"/build/src","code":{"id":"astnode100039272","name":"setLocale","type":"FunctionExpression"}},"undocumented":true,"name":"setLocale","longname":"wrapper.setLocale","kind":"function","memberof":"wrapper","scope":"static"},{"comment":"","meta":{"range":[2614,2746],"filename":"i18n.js","lineno":57,"columnno":4,"path":"/build/src","code":{"id":"astnode100039290","name":"isLocaleLoaded","type":"FunctionExpression"}},"undocumented":true,"name":"isLocaleLoaded","longname":"wrapper.isLocaleLoaded","kind":"function","memberof":"wrapper","scope":"static"},{"comment":"","meta":{"range":[2752,2878],"filename":"i18n.js","lineno":62,"columnno":4,"path":"/build/src","code":{"id":"astnode100039308","name":"hasLocaleString","type":"FunctionExpression"}},"undocumented":true,"name":"hasLocaleString","longname":"wrapper.hasLocaleString","kind":"function","memberof":"wrapper","scope":"static"},{"comment":"","meta":{"range":[2884,3050],"filename":"i18n.js","lineno":67,"columnno":4,"path":"/build/src","code":{"id":"astnode100039326","name":"getLocaleString","type":"FunctionExpression"}},"undocumented":true,"name":"getLocaleString","longname":"wrapper.getLocaleString","kind":"function","memberof":"wrapper","scope":"static"},{"comment":"","meta":{"range":[3056,3214],"filename":"i18n.js","lineno":72,"columnno":4,"path":"/build/src","code":{"id":"astnode100039348","name":"populateObjectStrings","type":"FunctionExpression"}},"undocumented":true,"name":"populateObjectStrings","longname":"wrapper.populateObjectStrings","kind":"function","memberof":"wrapper","scope":"static"},{"comment":"","meta":{"range":[3220,3380],"filename":"i18n.js","lineno":77,"columnno":4,"path":"/build/src","code":{"id":"astnode100039368","name":"translateObjectStrings","type":"FunctionExpression"}},"undocumented":true,"name":"translateObjectStrings","longname":"wrapper.translateObjectStrings","kind":"function","memberof":"wrapper","scope":"static"},{"comment":"","meta":{"range":[3386,3534],"filename":"i18n.js","lineno":82,"columnno":4,"path":"/build/src","code":{"id":"astnode100039388","name":"getTokenDefault","type":"FunctionExpression"}},"undocumented":true,"name":"getTokenDefault","longname":"wrapper.getTokenDefault","kind":"function","memberof":"wrapper","scope":"static"},{"comment":"","meta":{"range":[3540,3780],"filename":"i18n.js","lineno":87,"columnno":4,"path":"/build/src","code":{"id":"astnode100039408","name":"getPluralizedString","type":"FunctionExpression"},"vars":{"type":"wrapper.getPluralizedString~type"}},"undocumented":true,"name":"getPluralizedString","longname":"wrapper.getPluralizedString","kind":"function","memberof":"wrapper","scope":"static"},{"comment":"","meta":{"range":[3786,3998],"filename":"i18n.js","lineno":93,"columnno":4,"path":"/build/src","code":{"id":"astnode100039442","name":"pluralize","type":"FunctionExpression"},"vars":{"type":"wrapper.pluralize~type"}},"undocumented":true,"name":"pluralize","longname":"wrapper.pluralize","kind":"function","memberof":"wrapper","scope":"static"},{"comment":"","meta":{"range":[4004,4134],"filename":"i18n.js","lineno":99,"columnno":4,"path":"/build/src","code":{"id":"astnode100039476","name":"getInstalledLocales","type":"FunctionExpression"}},"undocumented":true,"name":"getInstalledLocales","longname":"wrapper.getInstalledLocales","kind":"function","memberof":"wrapper","scope":"static"},{"comment":"","meta":{"range":[4140,4298],"filename":"i18n.js","lineno":104,"columnno":4,"path":"/build/src","code":{"id":"astnode100039492","name":"enumerateAvailableLocales","type":"FunctionExpression"}},"undocumented":true,"name":"enumerateAvailableLocales","longname":"wrapper.enumerateAvailableLocales","kind":"function","memberof":"wrapper","scope":"static"},{"comment":"","meta":{"range":[1143,1347],"filename":"NodeFileOps.js","lineno":33,"columnno":8,"path":"/build/src","code":{"id":"astnode100039687","name":"get","type":"FunctionExpression"},"vars":{"displayed":"get~displayed"}},"undocumented":true,"name":"get","longname":"get","kind":"function","scope":"global"}]}