PageSourceSearch

https://app.foxglove.dev/.assets/4128.61805cf226e0e84c0ea1.js

js foxglove.dev collected 2026-09-24 15:30:44 UTC 25,214 bytes, 84 lines download raw bytes

1(()=>{(function(){try{var F=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};F.SENTRY_RELEASE={id:"61452baeb3a610d0c12922600661bb5199f4e61a"}}catch{}})();(()=>{"use strict";var F={6298(a,m,n){n.d(m,{FF:()=>P});const A={DeviceCodeToken:"DeviceCodeToken",GoogleIdToken:"GoogleIdToken",MicrosoftIdToken:"MicrosoftIdToken",OidcIdToken:"OidcIdToken",MagicLinkToken:"MagicLinkToken",SelfHostedWhoamiToken:"SelfHostedWhoamiToken"},e=1e4-1e3,w="embed",L=null,R=[...["oidc","google","microsoft"],"email","self-hosted-whoami"],P={ADMIN:"admin",USER:"user"},$={BASIC:"basic",DEVELOPER:"developer"},de={AUTO:"auto",SONNET:"sonnet",OPUS:"opus"},U={SONNET_5:"claude-sonnet-5",OPUS_5:"claude-opus-5"},k={ABOUT_DATA:"about-data",SEARCH:"search"},ue={ACTIVE:"active",INVITED:"invited",PENDING_APPROVAL:"pending-approval",DENIED_APPROVAL:"denied-approval"},z=4e4,J=["compute","egress","indexing","storage"],le={importId:"importId",deviceId:"deviceId",importTime:"importTime",dataStart:"dataStart",dataEnd:"dataEnd"},Q={logTime:"logTime"},_e=null,pe=null,Me=null,Le=null,Ue=null,Ke=null,Fe=null,ke=null,Be=null,Ye="NoStreamableRecordings",fe={deviceId:"deviceId","device.id":"device.id","device.name":"deviceName",deviceName:"device.name",start:"start",end:"end"},Ve=null,We=null,ye={requestId:"requestId",deviceId:"deviceId",importId:"importId",createdAt:"createdAt",updatedAt:"updatedAt","device.name":"device.name",deviceName:"deviceName","device.id":"device.id",error:"error"},Z={topic:"topic",version:"version"},je=100,Ge={DeviceCode:"device_code",GoogleSignin:"google_signin",OidcSignin:"oidc_signin",MicrosoftSignin:"microsoft_signin",MicrosoftVerification:"microsoft_signin+magic_link",MagicLink:"magic_link",Impersonate:"impersonate",SelfHostedWhoami:"self_hosted_whoami"},B=null,me=null;function ge(l){return me.includes(l)}function He(l){return l.includePartyOnly?B:B.filter(C=>!ge(C))}function Xe(l){let C;try{C=new URL(l).hostname}catch{return!1}return C==="localhost"||C==="127.0.0.1"||C==="[::1]"||C.endsWith(".local")?!0:C==="foxglove.party"||C.endsWith(".foxglove.party")}const Y="aws:",Te="gcp:",Ee="azure:";function Se(l){return B.includes(l)}function $e(l){return l.startsWith(Y)}function ze(l){return l.startsWith(Ee)}function Je(l){return`${l.region}:${l.cloudProjectId}`}function Qe(l){return l.startsWith(Te)}function Ze(l){return`${l.region}:${l.cloudProjectId}`}const qe=null,et=null,he=null;function tt(l){return he.includes(l)||Se(l)}function y(l){return l.startsWith(Y)?l.slice(Y.length):void 0}const g=["edge"],V=["customer-managed","byos","byob",...["foxglove-hosted"]],q=null,K=[...g,...V],ee=null;function ve(l){return l.region!=null&&ee.includes(l.type)}const W=null;function te(l){return W.includes(l)}function ne(l){return te(l.type)&&"region"in l&&l.region!=null}const j=null,re=null;function Ne(l){return re.includes(l)}const oe=null,be=null,xe=null,Ie=[...["recording.created","recording.imported","session.created","device.created","device.updated","event.created","event.updated"],"ping"],se=null,we={device:"device",event:"event",session:"session"},Oe=null,Ae=null},14424(a,m,n){n.d(m,{h:()=>A,v:()=>N});const A="ros/index.d.ts",N=`
2  export declare interface Duration {
3    sec: number;
4    nsec: number;
5  }
6
7  export declare interface Time {
8    sec: number;
9    nsec: number;
10  }
11
12  /**
13   * Once a data source Messages will be populated with interfaces matching the data source messages.
14   *
15   * @deprecated This type is deprecated and will be removed in a future version.
16   *  Use \`import { Message } from "./types.ts";\` instead.
17   */
18  export declare namespace Messages {}
19
20  // Once a data source TopicsToMessageDefinition will be populated with topic names to message interfaces.
21  export declare interface TopicsToMessageDefinition {}
22
23  /**
24   * To correctly type your inputs, you use this type to refer to specific
25   * input topics, e.g. 'Input<"/your_input_topic">'. If you have
26   * multiple input topics, use a union type, e.g.
27   * 'Input<"/your_input_topic_1"> |
28   * Input<"/your_input_topic_2">'.
29   *
30   * These types are dynamically generated from the data source currently in your
31   * Foxglove session, so if a datatype changes, your User Script
32   * may not compile on the currently loaded data source.
33   *
34   * @deprecated This type is deprecated and will be removed in a future version.
35   *  Use \`import { Input } from "./types.ts";\` instead.
36   */
37  export declare interface Input<T extends keyof TopicsToMessageDefinition> {
38    topic: T;
39    receiveTime: Time;
40    publishTime?: Time;
41    message: TopicsToMessageDefinition[T];
42  }
43
44`},26809(a,m,n){n.d(m,{iT:()=>w});var A=n(6298);function N(x){return typeof x=="object"&&x!=null}function e(x){return PrimarySiteTypes.includes(x.type)}function w(x,R="Unknown error"){return x instanceof Error?x:new Error(R)}function L(x){return x!=null}},40598(a,m,n){var A=n(25087),N=n(99313),e=n.n(N);function w(t,i){const o=[];let d=0;for(const s of t){const p=i(s,d++);p&&o.push(p)}return o}var L=n(64394),x=n(71910);const R=[e().factory.createModifier(e().SyntaxKind.ExportKeyword),e().factory.createModifier(e().SyntaxKind.DeclareKeyword)],P=(t,i,o)=>e().factory.createPropertySignature(void 0,t,o,i),$=t=>e().factory.createInterfaceDeclaration(R,t,void 0,void 0,[P("sec",e().factory.createKeywordTypeNode(e().SyntaxKind.NumberKeyword)),P("nsec",e().factory.createKeywordTypeNode(e().SyntaxKind.NumberKeyword))]),de=e().factory.createInterfaceDeclaration(R,"json",void 0,void 0,[]),U=t=>t.replace(/\//g,"__"),k=new Map([["uint8",e().SyntaxKind.NumberKeyword],["int8",e().SyntaxKind.NumberKeyword],["uint16",e().SyntaxKind.NumberKeyword],["int16",e().SyntaxKind.NumberKeyword],["uint32",e().SyntaxKind.NumberKeyword],["int32",e().SyntaxKind.NumberKeyword],["float32",e().SyntaxKind.NumberKeyword],["float64",e().SyntaxKind.NumberKeyword],["int64",e().SyntaxKind.NumberKeyword],["uint64",e().SyntaxKind.NumberKeyword],["string",e().SyntaxKind.StringKeyword],["bool",e().SyntaxKind.BooleanKeyword]]),ue=new Map([["uint8","Uint8Array"],["int8","Int8Array"]]),z=$("Time"),J=$("Duration"),le=new Map([["time",z],["duration",J]]),Q=t=>{const i={};for(const[o,d]of t){if(o.includes(".")||i[o])continue;const s=w(d.definitions,({name:p,type:T,isArray:u,isConstant:r})=>{let c;const O=ue.get(T),I=k.get(T),b=le.get(T);if(r!==!0)return u===!0&&O!=null?c=e().factory.createTypeReferenceNode(O):I!=null?c=e().factory.createKeywordTypeNode(I):b?c=e().factory.createTypeReferenceNode(b.name):c=e().factory.createTypeReferenceNode(U(T)),u===!0&&O==null&&(c=e().factory.createArrayTypeNode(c)),P(p,c)});i[o]=e().factory.createInterfaceDeclaration([e().factory.createModifier(e().SyntaxKind.ExportKeyword)],U(o),void 0,void 0,s)}return i},pe=({topics:t,datatypes:i})=>{let o=e().factory.createInterfaceDeclaration(R,"TopicsToMessageDefinition",void 0,void 0,[]);
44const d=e().factory.createInterfaceDeclaration(R,"Input",[e().factory.createTypeParameterDeclaration([],"T",e().factory.createTypeOperatorNode(e().SyntaxKind.KeyOfKeyword,e().factory.createTypeReferenceNode(o.name)))],void 0,[P("topic",e().factory.createTypeReferenceNode("T")),P("receiveTime",e().factory.createTypeReferenceNode("Time")),P("publishTime",e().factory.createTypeReferenceNode("Time"),e().factory.createToken(e().SyntaxKind.QuestionToken)),P("message",e().factory.createTypeReferenceNode("TopicsToMessageDefinition[T]"))]),s="Messages";let p=Q(i);const T=new Set;for(const{schemaName:I,name:b}of t)I!=null&&(T.has(b)||(T.add(b),p[I]||(p={...p,...Q(new Map(Object.entries({[I]:{definitions:[]}})))}),o=e().factory.updateInterfaceDeclaration(o,R,o.name,void 0,void 0,[...o.members,P(e().factory.createStringLiteral(b),e().factory.createTypeReferenceNode(`${s}.${U(I)}`))])));const u=e().factory.createModuleDeclaration(R,e().factory.createIdentifier(s),e().factory.createModuleBlock(Object.values(p).map(I=>I)),e().NodeFlags.Namespace),r=e().createSourceFile("","",e().ScriptTarget.Latest,!1,e().ScriptKind.TS),c=e().createPrinter();return`
45    ${c.printNode(e().EmitHint.Unspecified,de,r)}
46    ${c.printNode(e().EmitHint.Unspecified,o,r)}
47    ${c.printNode(e().EmitHint.Unspecified,J,r)}
48    ${c.printNode(e().EmitHint.Unspecified,z,r)}
49
50    /**
51     * This type contains every message declaration in your bag, so that you can
52     * refer to the type "std_msgs/RGBA" as "std_msgs__RGBA" wherever you like.
53     *
54     * @deprecated This type is deprecated. Use \`import { Message } from "./types.ts";\` instead.
55     */
56    ${c.printNode(e().EmitHint.Unspecified,u,r)}
57
58    /**
59     * To correctly type your inputs, you use this type to refer to specific
60     * input topics, e.g. 'Input<"/your_input_topic">'. If you have
61     * multiple input topics, use a union type, e.g.
62     * 'Input<"/your_input_topic_1"> |
63     * Input<"/your_input_topic_2">'.
64     *
65     * These types are dynamically generated from the data source currently in your
66     * Foxglove session, so if a datatype changes, your User Script
67     * may not compile on the currently loaded data source.
68     *
69     * @deprecated This type is deprecated. Use \`import { Input } from "./types.ts";\` instead.
70     */
71    ${c.printNode(e().EmitHint.Unspecified,d,r)}
72  `};var Me=n(52174),Le=n(26171),Ue=n(24921),Ke=n(19549),Fe=n(35074),ke=n(88496),Be=n(98727),Ye=n(91922),fe=n(26809),Ve=n(51261),We=n(26893);const ye=409,Z=[404,410,416,429],je=[ye,...Z];function Ge(t){return t!=null&&Z.includes(t)}var B=n(95774),me=n(3784),ge=n(20291),He=n(44102),Xe=n(75336),Y=n(54155),Te=n(47824),Ee=n(80407),Se=n(25124),$e=n(75277),ze=n(84297),Je=n(69844),Qe=n(9832),Ze=n(82637),qe=n(6298),et=n(10993),he=n(6593),tt=n(91047);const y={Hint:1,Info:2,Warning:4,Error:8},g={Typescript:"Typescript",DatatypeExtraction:"DatatypeExtraction",InputTopicsChecker:"InputTopicsChecker",OutputTopicChecker:"OutputTopicChecker",Runtime:"Runtime"},h={RUNTIME:1,DatatypeExtraction:{NO_DEFAULT_EXPORT:1,NON_FUNC_DEFAULT_EXPORT:2,NO_TYPE_RETURN:3,BAD_TYPE_RETURN:4,UNKNOWN_ERROR:5,NO_UNIONS:6,NO_FUNCTIONS:7,NO_CLASSES:8,NO_TYPE_LITERALS:9,NO_TUPLES:10,NO_INTERSECTION_TYPES:11,STRICT_MARKERS_RETURN_TYPE:14,LIMITED_UNIONS:15,NO_NESTED_ANY:16,NO_MAPPED_TYPES:17,INVALID_PROPERTY:18,INVALID_INDEXED_ACCESS:19,TOP_LEVEL_ARRAY:20},InputTopicsChecker:{NO_TOPIC_AVAIL:1,NO_INPUTS_EXPORT:2,EMPTY_INPUTS_EXPORT:3,BAD_INPUTS_TYPE:4},OutputTopicChecker:{NO_OUTPUTS:1,NOT_UNIQUE:2,EXISTING_TOPIC:3}},V={severity:y.Error,message:{id:"ECbvbs"},source:g.DatatypeExtraction,code:h.DatatypeExtraction.NO_DEFAULT_EXPORT},q={severity:y.Error,message:{id:"O8Dbu8"},source:g.DatatypeExtraction,code:h.DatatypeExtraction.NON_FUNC_DEFAULT_EXPORT},K={severity:y.Error,message:{id:"M3iYzO"},source:g.DatatypeExtraction,code:h.DatatypeExtraction.BAD_TYPE_RETURN},ee={severity:y.Error,message:{id:"h_JeU9"},source:g.DatatypeExtraction,code:h.DatatypeExtraction.LIMITED_UNIONS},ve={severity:y.Error,message:{id:"sljxw0"},source:g.DatatypeExtraction,code:h.DatatypeExtraction.NO_UNIONS},W={severity:y.Error,message:{id:"xSwnat"},source:g.DatatypeExtraction,code:h.DatatypeExtraction.NO_FUNCTIONS},te={severity:y.Error,message:{id:"-DsExq"},source:g.DatatypeExtraction,code:h.DatatypeExtraction.NO_TYPE_LITERALS},ne={severity:y.Error,message:{id:"-Aoxx9"},source:g.DatatypeExtraction,code:h.DatatypeExtraction.NO_INTERSECTION_TYPES},j={severity:y.Error,message:{id:"3CJE-_"},source:g.DatatypeExtraction,code:h.DatatypeExtraction.NO_CLASSES},re={severity:y.Error,message:{id:"81TC_X"},source:g.DatatypeExtraction,code:h.DatatypeExtraction.NO_TUPLES},Ne={severity:y.Error,message:{id:"z95WP4"},source:g.DatatypeExtraction,code:h.DatatypeExtraction.NO_NESTED_ANY},oe={severity:y.Error,message:{id:"eik4gU"}
72,source:g.DatatypeExtraction,code:h.DatatypeExtraction.NO_MAPPED_TYPES},be={severity:y.Error,message:{id:"SYNBUM"},source:g.DatatypeExtraction,code:h.DatatypeExtraction.TOP_LEVEL_ARRAY},xe=100;class v extends Error{diagnostic;constructor(i){super(),this.diagnostic=i}}const Ie=(t,i)=>e().forEachChild(t,o=>{if(i.includes(o.kind))return o}),se=(t,i)=>{for(const o of t.declarations??[])if(i.includes(o.kind))return o};function we(t){return t?.symbol}const Oe=(t,i)=>{const o=we(t);if(!o)return;const d=i.getExportsOfModule(o).find(u=>u.escapedName==="default");if(!d)throw new v(V);const s=se(d,[e().SyntaxKind.FunctionDeclaration]);if(s)return s;const p=se(d,[e().SyntaxKind.ExportAssignment]);if(!p)throw new v(V);const T=Ie(p,[e().SyntaxKind.FunctionDeclaration,e().SyntaxKind.FunctionExpression,e().SyntaxKind.ArrowFunction,e().SyntaxKind.Identifier]);if(!T)throw new v(q);return T},Ae=(t,i)=>{const d=t.getTypeAtLocation(i).getCallSignatures(),s=d[0];if(d.length!==1||!s)throw new v(q);const T=t.getReturnTypeOfSignature(s).getNonNullableType();if(T.isIntersection())throw new v(ne);if(T.isClass())throw new v(j);if(T.isUnion())throw new v(ee);const u=T.getSymbol();if(!u)throw new v(K);if(!u.declarations||u.declarations.length===0)throw new v(K);let r;if(u.declarations.length===1?r=u.declarations[0]:r=u.declarations.find(c=>c.kind===e().SyntaxKind.InterfaceDeclaration),!r)throw new v(K);if(e().isTypeLiteralNode(r))return r;if(e().isInterfaceDeclaration(r))return r;throw e().isMappedTypeNode(r)?new v(oe):e().isClassDeclaration(r)?new v(j):e().isFunctionLike(r)?new v(W):new v(K)},l=(t,i,o,d)=>{const s=new Map;function p(u,r,c,O){if(O>xe)throw new Error("Max AST traversal depth exceeded.");const I=c.getSymbol();if(I==null){let S;if(t.getStringType()===c)S="string";else if(t.getBooleanType()===c)S="bool";else if(t.getBigIntType()===c)S="int64";else if(t.getNumberType()===c)S="float64";else throw c.isUnion()?new v(ve):c.isIntersection()?new v(ne):c.isLiteral()?new v(te):t.isTupleType(c)?new v(re):t.getAnyType()===c?new v(Ne):new v({severity:y.Error,message:{id:"SDPW0D",values:{name:u}},source:g.DatatypeExtraction,code:h.DatatypeExtraction.UNKNOWN_ERROR});return{name:u,type:S,isComplex:!1,isArray:!1,arrayLength:void 0}}const b=I.declarations?.[0];if(b==null)throw new v({severity:y.Error,message:{id:"SDPW0D",values:{name:u}},source:g.DatatypeExtraction,code:h.DatatypeExtraction.UNKNOWN_ERROR});if(e().isEnumDeclaration(b))return{name:u,type:"uint32",isArray:!1,isComplex:!1,arrayLength:void 0};if(c.isClass())throw new v(j);if(e().isFunctionLike(b))throw new v(W);if(e().isMappedTypeNode(b))throw new v(oe);const G=e().isInterfaceDeclaration(b)?b.name.text:void 0,_=b.getSourceFile().fileName,ie=G!=null?d[G]:void 0;if(_.endsWith("ros/index.d.ts")&&ie!=null)return{name:u,type:ie,isComplex:!0,isArray:!1,arrayLength:void 0};if(_==="/foxglove_script/generatedTypes.ts"){if(e().isPropertySignature(b.parent)&&e().isStringLiteral(b.parent.name)){const S=b.parent.name.text;return{name:u,type:S,isComplex:!0,isArray:!1,arrayLength:void 0}}if(e().isTypeAliasDeclaration(b.parent)&&b.parent.name.text==="Time")return{name:u,type:"time",isComplex:!1,isArray:!1,arrayLength:void 0};throw Error("Failed to extract generated message type")}const ae=/^\/foxglove_script\/node_modules\/@foxglove\/schemas\/(\w+)\.ts$/,H=_.match(ae)?.[1];if(H)return{name:u,type:`foxglove.${H}`,isComplex:!0,isArray:!1,arrayLength:void 0};const E=t.isArrayLikeType(c);if(E&&O===0)throw new v(be);if(E){const S=c.typeArguments?.[0];if(S==null)throw new Error("Failed to extract array type");return{...p(u,r,S,O),isArray:E}}const D={definitions:c.getProperties().map(S=>{const M=t.getTypeOfSymbol(S);return p(S.getName(),`${r}/${S.getName()}`,M,O+1)})};if(D.definitions.length===2){const S=D.definitions.find(ce=>ce.name==="sec"),M=D.definitions.find(ce=>ce.name==="nsec");if(S&&M&&S.isComplex!==!0&&M.isComplex!==!0&&S.isArray!==!0&&M.isArray!==!0)return{name:u,type:"time",isArray:!1,isComplex:!1,arrayLength:void 0}}return s.set(r,D),{name:u,type:r,isComplex:!0,isArray:!1,arrayLength:void 0}}return{outputDatatype:p(o,o,t.getTypeAtLocation(i),0).type,datatypes:s}};
72var C=n(23380);const nt=`// eslint-disable-next-line @typescript-eslint/no-empty-object-type
73type MessageTypeByTopic = {
74  // placeholder
75};
76// eslint-disable-next-line @typescript-eslint/no-empty-object-type
77type MessageTypeBySchemaName = {
78  // placeholder
79};
80
81export type { MessageTypeByTopic, MessageTypeBySchemaName };
82`,rt=t=>{switch(t){case e().DiagnosticCategory.Error:return y.Error;case e().DiagnosticCategory.Warning:return y.Warning;case e().DiagnosticCategory.Message:return y.Info;case e().DiagnosticCategory.Suggestion:return y.Hint;default:throw new Error("Diagnostic category not recognized")}},ot=t=>{if(!t.file||t.start==null||t.length==null)throw new Error("Invariant: diagnostic is not initialized");const{line:i,character:o}=t.file.getLineAndCharacterOfPosition(t.start),{line:d,character:s}=t.file.getLineAndCharacterOfPosition(t.start+t.length);return{message:Re(t.messageText,`
83`),severity:rt(t.category),source:"Typescript",startLineNumber:i,startColumn:o,endLineNumber:d,endColumn:s,code:t.code}};function Re(t,i,o=0){if(typeof t=="string")return t;if(t==null)return"";let d="";if(o>0){d+=i;for(let s=0;s<o;s++)d+="  "}if(d+=t.messageText,t.next)for(const s of t.next)d+=Re(s,i,o+1);return d}const Ce={strict:!0,target:e().ScriptTarget.ES2024,module:e().ModuleKind.CommonJS,moduleResolution:e().ModuleResolutionKind.Bundler,rewriteRelativeImportExtensions:!0},De=t=>t.diagnostics.some(({severity:i})=>i===y.Error),st=t=>{const{sourceFile:i,typeChecker:o}=t;if(!i||!o){const r={severity:y.Error,message:"Either the 'sourceFile' or 'typeChecker' is absent. There is a problem with the compile step.",source:g.InputTopicsChecker,code:h.InputTopicsChecker.BAD_INPUTS_TYPE};return{...t,diagnostics:[...t.diagnostics,r]}}const d=o.getSymbolAtLocation(i);if(!d){const r={severity:y.Error,message:{id:"3lnPRU"},source:g.InputTopicsChecker,code:h.InputTopicsChecker.NO_INPUTS_EXPORT};return{...t,diagnostics:[...t.diagnostics,r]}}const s=o.getExportsOfModule(d).find(r=>r.escapedName==="inputs");if(!s){const r={severity:y.Error,message:{id:"kH5dbY"},source:g.InputTopicsChecker,code:h.InputTopicsChecker.EMPTY_INPUTS_EXPORT};return{...t,diagnostics:[...t.diagnostics,r]}}const p=s.declarations?.[0];if(!p||!e().isVariableDeclaration(p)){const r={severity:y.Error,message:{id:"iEb1XE"},source:g.InputTopicsChecker,code:h.InputTopicsChecker.BAD_INPUTS_TYPE};return{...t,diagnostics:[...t.diagnostics,r]}}if(!p.initializer||!e().isArrayLiteralExpression(p.initializer)){const r={severity:y.Error,message:{id:"iEb1XE"},source:g.InputTopicsChecker,code:h.InputTopicsChecker.BAD_INPUTS_TYPE};return{...t,diagnostics:[...t.diagnostics,r]}}const T=p.initializer.elements;if(T.some(({kind:r})=>r!==e().SyntaxKind.StringLiteral)){const r={severity:y.Error,message:{id:"uvSAKn"},source:g.InputTopicsChecker,code:h.InputTopicsChecker.BAD_INPUTS_TYPE};return{...t,diagnostics:[...t.diagnostics,r]}}const u=w(T,r=>{if(e().isStringLiteral(r))return r.text});if(u.length===0){const r={severity:y.Error,message:{id:"DokhE6"},source:g.InputTopicsChecker,code:h.InputTopicsChecker.EMPTY_INPUTS_EXPORT};return{...t,diagnostics:[...t.diagnostics,r]}}return{...t,inputTopics:u}},it=t=>{const i=/^\s*export\s+const\s+output\s*=\s*("([^"]+)"|'([^']+)')/gm.exec(t.sourceCode),o=i?.[2]??i?.[3];if(o==null){const d={severity:y.Error,message:{id:"R4IVGo"},source:g.OutputTopicChecker,code:h.OutputTopicChecker.NO_OUTPUTS};return{...t,diagnostics:[...t.diagnostics,d]}}return{...t,outputTopic:o}},at=(t,i)=>{const{inputTopics:o}=t,d=i.map(({name:p})=>p),s=[];for(const p of o)d.includes(p)||s.push({severity:y.Error,message:{id:"UVhP-t",values:{inputTopic:p}},source:g.InputTopicsChecker,code:h.InputTopicsChecker.NO_TOPIC_AVAIL});return{...t,diagnostics:[...t.diagnostics,...s]}},ct=t=>{const{sourceCode:i,rosLib:o,typesLib:d,extensionUtilities:s=[]}=t,p=Ce,T="/foxglove_script/index.ts",u=(0,C.G)(s),r=new Map,c=new Map;c.set(T,i),c.set(u.rosLib.filePath,o),c.set("/foxglove_script/generatedTypes.ts",d||nt);for(const E of u.builtinUtilityFiles)c.set(E.filePath,E.sourceCode);for(const E of u.extensionUtilityFiles)c.set(E.filePath,E.sourceCode);for(const E of u.declarations)c.set(E.filePath,E.sourceCode);let O="",I=!1;const b=E=>{for(const[S,M]of c.entries())if(E===S||E.endsWith(S))return{key:S,code:M};const D=`${E}.ts`;for(const[S,M]of c.entries())if(D===S||D.endsWith(S))return{key:S,code:M}},G={getDefaultLibFileName:()=>u.defaultLibFileName,getCurrentDirectory:()=>"",getCanonicalFileName:E=>E,useCaseSensitiveFileNames:()=>!1,readFile:()=>{},fileExists:E=>b(E)!=null,writeFile:(E,D)=>{I=!0,E==="/foxglove_script/index.js"?O=D:r.set(E,D)},getNewLine:()=>`
84`,getSourceFile:E=>{const S=b(E)?.code??"";return e().createSourceFile(E,S,Ce.target??e().ScriptTarget.ES2024,!0)}},_=e().createProgram([T],p,G);if(_.emit(),!I){const E={severity:y.Error,message:"Program code was not emitted.",source:g.InputTopicsChecker,code:h.InputTopicsChecker.BAD_INPUTS_TYPE};return{...t,diagnostics:[...t.diagnostics,E]}}const ae=[..._.getSemanticDiagnostics(),..._.getSyntacticDiagnostics()].map(ot),Pe=_.getSourceFile(T),H=_.getTypeChecker();return{...t,sourceFile:Pe,typeChecker:H,transpiledCode:O,projectCode:r,diagnostics:[...t.diagnostics,...ae]}},dt=t=>{if(De(t))return t;const{sourceFile:i}=t;if(!i)throw new Error("'sourceFile' is absent'. There is a problem with the `compile` step.");const o=i.forEachChild(s=>{if(e().isTypeAliasDeclaration(s)&&e().isTypeLiteralNode(s.type)&&s.name.text==="GlobalVariables")return s.type.members;if(e().isInterfaceDeclaration(s)&&s.name.text==="GlobalVariables")return s.members}),d=w(o??[],s=>
84{if(s.name&&(e().isIdentifier(s.name)||e().isStringLiteral(s.name)))return s.name.text});return{...t,globalVariables:d}},ut=(t,i,o)=>{if(De(t))return t;const{sourceFile:d,typeChecker:s,name:p}=t;if(!d||!s)throw new Error("Either the 'sourceFile' or 'typeChecker' is absent'. There is a problem with the `compile` step.");const T={};for(const r of o.keys())T[U(r)]=r;let u=!1;try{const r=Oe(d,s);if(!r)throw new Error("Your script must default export a function");(e().isFunctionDeclaration(r)||e().isArrowFunction(r)||e().isFunctionExpression(r))&&(u=r.parameters.length>=2);const c=Ae(s,r),{outputDatatype:O,datatypes:I}=l(s,c,p,T);return{...t,usesGlobalVariables:u,datatypes:I,outputDatatype:O}}catch(r){return r instanceof v?{...t,usesGlobalVariables:u,diagnostics:[...t.diagnostics,r.diagnostic]}:{...t,usesGlobalVariables:u,diagnostics:[...t.diagnostics,{message:(0,fe.iT)(r).message,severity:y.Error,source:g.DatatypeExtraction,code:h.DatatypeExtraction.UNKNOWN_ERROR}]}}},lt=(...t)=>(i,o,d)=>{let s=i;for(const p of t)s=p(s,o,d);return s},pt={transform:t=>{const{name:i,sourceCode:o,topics:d,rosLib:s,typesLib:p,datatypes:T,extensionUtilities:u}=t;return{...lt(it,ct,st,at,ut,dt)({name:i,sourceCode:o,rosLib:s,typesLib:p,extensionUtilities:u,transpiledCode:"",projectCode:void 0,inputTopics:[],outputTopic:"",outputDatatype:"",diagnostics:[],globalVariables:[],usesGlobalVariables:!1,datatypes:new Map,sourceFile:void 0,typeChecker:void 0},d,T),sourceFile:void 0,typeChecker:void 0}},generateRosLib:pe};A.p(pt)},73494(a,m,n){n.d(m,{e:()=>A});const A={nextTick:(N,...e)=>{queueMicrotask(()=>{N(...e)})},title:"browser",browser:!0,env:{},argv:[],versions:{}}}},X={};function f(a){var m=X[a];if(m!==void 0)return m.exports;var n=X[a]={exports:{}};return F[a].call(n.exports,n,n.exports,f),n.exports}f.m=F,f.x=()=>{var a=f.O(void 0,[9340,3086,4589,7105,8483,2083,8744,9018,1486,8989,407,9417,5567],()=>f(40598));return a=f.O(a),a},(()=>{var a=[];f.O=(m,n,A,N)=>{if(n){N=N||0;for(var e=a.length;e>0&&a[e-1][2]>N;e--)a[e]=a[e-1];a[e]=[n,A,N];return}for(var w=1/0,e=0;e<a.length;e++){for(var[n,A,N]=a[e],L=!0,x=0;x<n.length;x++)(N&!1||w>=N)&&Object.keys(f.O).every(k=>f.O[k](n[x]))?n.splice(x--,1):(L=!1,N<w&&(w=N));if(L){a.splice(e--,1);var R=A();R!==void 0&&(m=R)}}return m}})(),f.n=a=>{var m=a&&a.__esModule?()=>a.default:()=>a;return f.d(m,{a:m}),m},f.d=(a,m)=>{for(var n in m)f.o(m,n)&&!f.o(a,n)&&Object.defineProperty(a,n,{enumerable:!0,get:m[n]})},f.f={},f.e=a=>Promise.all(Object.keys(f.f).reduce((m,n)=>(f.f[n](a,m),m),[])),f.u=a=>""+a+"."+{407:"94ff286bde30fc16c413",1486:"f1d2ecea4c5003e456f3",2083:"80172d667b5b940b3475",3086:"02c58482963144904222",4589:"cd91c160301dc5eeea10",5567:"cf8c781ca3f1af3e4e7d",7105:"ad6b7182af537b992e98",8483:"f55194f1935f385b222e",8744:"ca4225e97391de383c19",8989:"a35c8faff5c01db7dcd1",9018:"68a999363b3831ae3bd3",9340:"1182eaac83035abc7252",9417:"622a0049a23ae20a65a5"}[a]+".js",f.g=(function(){if(typeof globalThis=="object")return globalThis;try{return this||new Function("return this")()}catch{if(typeof window=="object")return window}})(),f.o=(a,m)=>Object.prototype.hasOwnProperty.call(a,m),f.r=a=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(a,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(a,"__esModule",{value:!0})},f.p="/.assets/",(()=>{var a={4128:1},m=N=>{var[e,w,L]=N;for(var x in w)f.o(w,x)&&(f.m[x]=w[x]);for(L&&L(f);e.length;)a[e.pop()]=1;A(N)};f.f.i=(N,e)=>{a[N]||importScripts(f.p+f.u(N))};var n=self.webpackChunk=self.webpackChunk||[],A=n.push.bind(n);n.push=m})(),(()=>{var a=f.x;f.x=()=>Promise.all([9340,3086,4589,7105,8483,2083,8744,9018,1486,8989,407,9417,5567].map(f.e,f)).then(a)})();var ft=f.x()})();})();

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.