@fallen-8/studio 0.0.32

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.
Files changed (231) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +93 -0
  3. package/dist-lib/Canvas3D-C5og4ZIQ.js +62011 -0
  4. package/dist-lib/F8GraphCanvas-Db7vzDtJ.js +11085 -0
  5. package/dist-lib/abap-Bs8kvjsq.js +1398 -0
  6. package/dist-lib/apex-Dspwrl5m.js +326 -0
  7. package/dist-lib/azcli-k1BiOau1.js +68 -0
  8. package/dist-lib/bat-BIP72KWc.js +100 -0
  9. package/dist-lib/bicep-VhQeYhS3.js +102 -0
  10. package/dist-lib/cameligo-DnuAXtHg.js +174 -0
  11. package/dist-lib/canvas.js +13 -0
  12. package/dist-lib/clojure-BAuDPsal.js +761 -0
  13. package/dist-lib/coffee-BV06qSnj.js +232 -0
  14. package/dist-lib/cpp-Cz8Jeyrf.js +389 -0
  15. package/dist-lib/csharp-F6hhlXFb.js +326 -0
  16. package/dist-lib/csp-KzlEHCyI.js +53 -0
  17. package/dist-lib/css-e4FKntZ3.js +187 -0
  18. package/dist-lib/cssMode-Czf2vRA3.js +1571 -0
  19. package/dist-lib/cypher-CpvDGKRr.js +263 -0
  20. package/dist-lib/dart-DdHeFWR0.js +281 -0
  21. package/dist-lib/dockerfile-aoNXDcio.js +130 -0
  22. package/dist-lib/ecl-C4Q0DYuA.js +456 -0
  23. package/dist-lib/elixir-C9X42b0T.js +569 -0
  24. package/dist-lib/f8-studio.css +1 -0
  25. package/dist-lib/f8-studio.js +16 -0
  26. package/dist-lib/flow9-Bff42pfB.js +142 -0
  27. package/dist-lib/freemarker2-BtInkOsd.js +989 -0
  28. package/dist-lib/fsharp-C6vPAsHG.js +217 -0
  29. package/dist-lib/go-DEr8zx9f.js +218 -0
  30. package/dist-lib/graphql-BiNBBRFh.js +151 -0
  31. package/dist-lib/handlebars-UwZ7mBGA.js +419 -0
  32. package/dist-lib/hcl-2T9lKuFg.js +183 -0
  33. package/dist-lib/html-BXX93YIe.js +308 -0
  34. package/dist-lib/htmlMode-BCqQu1PO.js +1581 -0
  35. package/dist-lib/index-DFm6T7Un.js +132450 -0
  36. package/dist-lib/ini-CZGtssYM.js +71 -0
  37. package/dist-lib/java-B260NeH3.js +232 -0
  38. package/dist-lib/javascript-CK1z7Ynl.js +70 -0
  39. package/dist-lib/jsonMode-C4Q3fVvV.js +1996 -0
  40. package/dist-lib/julia-kuNLM9c5.js +511 -0
  41. package/dist-lib/kotlin-Bz6kAefA.js +253 -0
  42. package/dist-lib/less-AZUtS89I.js +162 -0
  43. package/dist-lib/lexon-BcmgnyRb.js +157 -0
  44. package/dist-lib/liquid-BnCUERBj.js +240 -0
  45. package/dist-lib/lua-Dz1RbATg.js +162 -0
  46. package/dist-lib/m3-CIMooLFn.js +210 -0
  47. package/dist-lib/markdown-C1BsCK9P.js +229 -0
  48. package/dist-lib/mdx-D2enmFMs.js +165 -0
  49. package/dist-lib/mips-BovsnfLQ.js +198 -0
  50. package/dist-lib/msdax-CiRB2ZB-.js +375 -0
  51. package/dist-lib/mysql-BwdpPE19.js +878 -0
  52. package/dist-lib/objective-c-D4nfHfso.js +183 -0
  53. package/dist-lib/pascal--j5-PYtz.js +251 -0
  54. package/dist-lib/pascaligo-C7TcJxNL.js +164 -0
  55. package/dist-lib/perl-BzEWqUb5.js +626 -0
  56. package/dist-lib/pgsql-B_KZ0mGX.js +851 -0
  57. package/dist-lib/php-A19QHzQV.js +500 -0
  58. package/dist-lib/pla-COeKY1hA.js +137 -0
  59. package/dist-lib/postiats-BfMp7zJL.js +907 -0
  60. package/dist-lib/powerquery-B0TS_5Gb.js +890 -0
  61. package/dist-lib/powershell-5jSbKdYB.js +239 -0
  62. package/dist-lib/protobuf-YgnOutn3.js +420 -0
  63. package/dist-lib/pug-DLej6kn5.js +402 -0
  64. package/dist-lib/python-DJvSF53q.js +301 -0
  65. package/dist-lib/qsharp-AhjqtSHB.js +301 -0
  66. package/dist-lib/r-D-F4P80w.js +243 -0
  67. package/dist-lib/razor-RerkagjP.js +550 -0
  68. package/dist-lib/redis-hwwIlMnV.js +302 -0
  69. package/dist-lib/redshift-Bcm_kjEG.js +809 -0
  70. package/dist-lib/restructuredtext-CrdzfPP-.js +174 -0
  71. package/dist-lib/ruby-QC2UNm1s.js +511 -0
  72. package/dist-lib/rust-5aqiQ3L5.js +343 -0
  73. package/dist-lib/sb-B1g1ZfLJ.js +115 -0
  74. package/dist-lib/scala-C2U4R5Gb.js +370 -0
  75. package/dist-lib/scheme-DeFRbslr.js +108 -0
  76. package/dist-lib/scss-RSTCiCmI.js +262 -0
  77. package/dist-lib/shell-BpF-iNu8.js +221 -0
  78. package/dist-lib/solidity-C00r2mbQ.js +1367 -0
  79. package/dist-lib/sophia-DVW5ZKDB.js +199 -0
  80. package/dist-lib/sparql-B0nmpxeX.js +201 -0
  81. package/dist-lib/sql-CJwKPERn.js +853 -0
  82. package/dist-lib/st-DPlKG5DT.js +416 -0
  83. package/dist-lib/swift-YZBAbVHV.js +309 -0
  84. package/dist-lib/systemverilog-CDQSaH63.js +576 -0
  85. package/dist-lib/tcl-Dlu8sp6Q.js +232 -0
  86. package/dist-lib/tsMode-C-6d-f_-.js +886 -0
  87. package/dist-lib/twig-C5TO7-kw.js +392 -0
  88. package/dist-lib/types/api/changefeed.d.ts +113 -0
  89. package/dist-lib/types/api/client.d.ts +81 -0
  90. package/dist-lib/types/api/endpoints.d.ts +197 -0
  91. package/dist-lib/types/api/queries.d.ts +8 -0
  92. package/dist-lib/types/api/types.d.ts +1032 -0
  93. package/dist-lib/types/app/AppShell.d.ts +10 -0
  94. package/dist-lib/types/app/NamespaceScope.d.ts +11 -0
  95. package/dist-lib/types/app/applyStudioConfig.d.ts +18 -0
  96. package/dist-lib/types/app/mount.d.ts +19 -0
  97. package/dist-lib/types/app/nav.d.ts +91 -0
  98. package/dist-lib/types/app/routes.d.ts +9 -0
  99. package/dist-lib/types/app/studioConfig.d.ts +106 -0
  100. package/dist-lib/types/canvas/Canvas2D.d.ts +18 -0
  101. package/dist-lib/types/canvas/Canvas3D.d.ts +14 -0
  102. package/dist-lib/types/canvas/ConnectPanel.d.ts +10 -0
  103. package/dist-lib/types/canvas/FindPanel.d.ts +14 -0
  104. package/dist-lib/types/canvas/GraphCanvas.d.ts +66 -0
  105. package/dist-lib/types/canvas/StylePanel.d.ts +7 -0
  106. package/dist-lib/types/canvas/eclipse.d.ts +136 -0
  107. package/dist-lib/types/canvas/imageAssets.d.ts +3 -0
  108. package/dist-lib/types/canvas/styleConfig.d.ts +48 -0
  109. package/dist-lib/types/canvas/styleEngine.d.ts +125 -0
  110. package/dist-lib/types/canvas/styling.d.ts +15 -0
  111. package/dist-lib/types/components/AdjacencyPanel.d.ts +11 -0
  112. package/dist-lib/types/components/AnalyticsRunner.d.ts +1 -0
  113. package/dist-lib/types/components/ConfigurationPanel.d.ts +1 -0
  114. package/dist-lib/types/components/ConfirmDialog.d.ts +18 -0
  115. package/dist-lib/types/components/DurabilityNotice.d.ts +18 -0
  116. package/dist-lib/types/components/ElementDetail.d.ts +11 -0
  117. package/dist-lib/types/components/ElementTable.d.ts +19 -0
  118. package/dist-lib/types/components/EmbeddingsTab.d.ts +15 -0
  119. package/dist-lib/types/components/ErrorBox.d.ts +8 -0
  120. package/dist-lib/types/components/EventFeedBell.d.ts +16 -0
  121. package/dist-lib/types/components/EventFeedPanel.d.ts +10 -0
  122. package/dist-lib/types/components/Field.d.ts +14 -0
  123. package/dist-lib/types/components/GraphShapePanel.d.ts +1 -0
  124. package/dist-lib/types/components/InspectLink.d.ts +5 -0
  125. package/dist-lib/types/components/ListCapNote.d.ts +10 -0
  126. package/dist-lib/types/components/MutationsPanel.d.ts +1 -0
  127. package/dist-lib/types/components/NamespaceSwitcher.d.ts +22 -0
  128. package/dist-lib/types/components/NamespacesPanel.d.ts +11 -0
  129. package/dist-lib/types/components/NeighborhoodPreview.d.ts +10 -0
  130. package/dist-lib/types/components/PluginsPanel.d.ts +9 -0
  131. package/dist-lib/types/components/PropertiesTab.d.ts +4 -0
  132. package/dist-lib/types/components/PropertyListEditor.d.ts +26 -0
  133. package/dist-lib/types/components/SampleGraphsPanel.d.ts +3 -0
  134. package/dist-lib/types/components/SectionHelp.d.ts +11 -0
  135. package/dist-lib/types/components/SemanticBlockEditor.d.ts +29 -0
  136. package/dist-lib/types/components/SemanticQueryEditor.d.ts +15 -0
  137. package/dist-lib/types/components/SettingRow.d.ts +15 -0
  138. package/dist-lib/types/components/Stat.d.ts +10 -0
  139. package/dist-lib/types/components/StoredQueriesPanel.d.ts +14 -0
  140. package/dist-lib/types/components/StoredQueryControls.d.ts +29 -0
  141. package/dist-lib/types/components/Truncated.d.ts +17 -0
  142. package/dist-lib/types/components/TruncationBadge.d.ts +6 -0
  143. package/dist-lib/types/components/TypedLiteralEditor.d.ts +13 -0
  144. package/dist-lib/types/components/VertexFilterSlot.d.ts +25 -0
  145. package/dist-lib/types/delegate/DelegateEditor.d.ts +10 -0
  146. package/dist-lib/types/delegate/DelegateSlot.d.ts +18 -0
  147. package/dist-lib/types/delegate/editorOptions.d.ts +25 -0
  148. package/dist-lib/types/delegate/kinds.d.ts +19 -0
  149. package/dist-lib/types/delegate/markers.d.ts +21 -0
  150. package/dist-lib/types/delegate/monacoSetup.d.ts +3 -0
  151. package/dist-lib/types/delegate/nl/NlAssistPanel.d.ts +10 -0
  152. package/dist-lib/types/delegate/nl/NlBackendConfig.d.ts +12 -0
  153. package/dist-lib/types/delegate/nl/NlDraftList.d.ts +42 -0
  154. package/dist-lib/types/delegate/nl/config.d.ts +105 -0
  155. package/dist-lib/types/delegate/nl/feedback.d.ts +30 -0
  156. package/dist-lib/types/delegate/nl/format.d.ts +6 -0
  157. package/dist-lib/types/delegate/nl/generate.d.ts +57 -0
  158. package/dist-lib/types/delegate/nl/prompt.d.ts +21 -0
  159. package/dist-lib/types/delegate/nl/useNlRun.d.ts +24 -0
  160. package/dist-lib/types/delegate/providers.d.ts +26 -0
  161. package/dist-lib/types/delegate/snippets.d.ts +25 -0
  162. package/dist-lib/types/embed/F8GraphCanvas.d.ts +37 -0
  163. package/dist-lib/types/embed/canvas.d.ts +23 -0
  164. package/dist-lib/types/embed/index.d.ts +14 -0
  165. package/dist-lib/types/firstrun/FirstRunOverlay.d.ts +10 -0
  166. package/dist-lib/types/firstrun/FirstRunShow.d.ts +22 -0
  167. package/dist-lib/types/firstrun/beats.d.ts +23 -0
  168. package/dist-lib/types/firstrun/firstRunStore.d.ts +38 -0
  169. package/dist-lib/types/firstrun/mockGraph.d.ts +56 -0
  170. package/dist-lib/types/firstrun/useBeatTimeline.d.ts +35 -0
  171. package/dist-lib/types/firstrun/useReducedMotion.d.ts +7 -0
  172. package/dist-lib/types/instances/registry.d.ts +83 -0
  173. package/dist-lib/types/instances/types.d.ts +49 -0
  174. package/dist-lib/types/lib/canvasCap.d.ts +7 -0
  175. package/dist-lib/types/lib/connectPaths.d.ts +55 -0
  176. package/dist-lib/types/lib/embeddingProperties.d.ts +6 -0
  177. package/dist-lib/types/lib/fieldHelp.d.ts +139 -0
  178. package/dist-lib/types/lib/format.d.ts +16 -0
  179. package/dist-lib/types/lib/hydrate.d.ts +37 -0
  180. package/dist-lib/types/lib/indexCapabilities.d.ts +17 -0
  181. package/dist-lib/types/lib/jsonlGraph.d.ts +42 -0
  182. package/dist-lib/types/lib/listCaps.d.ts +48 -0
  183. package/dist-lib/types/lib/literals.d.ts +36 -0
  184. package/dist-lib/types/lib/namespaceName.d.ts +10 -0
  185. package/dist-lib/types/lib/neighborhood.d.ts +37 -0
  186. package/dist-lib/types/lib/patternValidation.d.ts +12 -0
  187. package/dist-lib/types/lib/restartCopy.d.ts +11 -0
  188. package/dist-lib/types/lib/sampleLoader.d.ts +95 -0
  189. package/dist-lib/types/lib/samples.d.ts +87 -0
  190. package/dist-lib/types/lib/sbomGraph.d.ts +58 -0
  191. package/dist-lib/types/lib/sectionHelp.d.ts +39 -0
  192. package/dist-lib/types/lib/semantic.d.ts +95 -0
  193. package/dist-lib/types/lib/storedQueries.d.ts +43 -0
  194. package/dist-lib/types/lib/truncate.d.ts +34 -0
  195. package/dist-lib/types/lib/truncation.d.ts +7 -0
  196. package/dist-lib/types/lib/vector.d.ts +13 -0
  197. package/dist-lib/types/main.d.ts +1 -0
  198. package/dist-lib/types/plugin/PluginEditor.d.ts +20 -0
  199. package/dist-lib/types/plugin/nl/PluginNlAssistPanel.d.ts +13 -0
  200. package/dist-lib/types/plugin/nl/pluginPrompt.d.ts +48 -0
  201. package/dist-lib/types/plugin/scaffolds.d.ts +26 -0
  202. package/dist-lib/types/screens/AnalyticsScreen.d.ts +8 -0
  203. package/dist-lib/types/screens/BenchmarkScreen.d.ts +1 -0
  204. package/dist-lib/types/screens/BrowserScreen.d.ts +6 -0
  205. package/dist-lib/types/screens/CanvasScreen.d.ts +10 -0
  206. package/dist-lib/types/screens/ConnectScreen.d.ts +1 -0
  207. package/dist-lib/types/screens/DashboardScreen.d.ts +13 -0
  208. package/dist-lib/types/screens/IndexesScreen.d.ts +8 -0
  209. package/dist-lib/types/screens/IntegrationsScreen.d.ts +14 -0
  210. package/dist-lib/types/screens/KnowledgeScreen.d.ts +1 -0
  211. package/dist-lib/types/screens/PathScreen.d.ts +9 -0
  212. package/dist-lib/types/screens/PluginsScreen.d.ts +1 -0
  213. package/dist-lib/types/screens/QueryScreen.d.ts +1 -0
  214. package/dist-lib/types/screens/SamplesScreen.d.ts +7 -0
  215. package/dist-lib/types/screens/SaveGamesScreen.d.ts +7 -0
  216. package/dist-lib/types/screens/SubgraphScreen.d.ts +1 -0
  217. package/dist-lib/types/state/eventFeed.d.ts +63 -0
  218. package/dist-lib/types/state/feedFilter.d.ts +42 -0
  219. package/dist-lib/types/state/graphShape.d.ts +37 -0
  220. package/dist-lib/types/state/instanceStore.d.ts +280 -0
  221. package/dist-lib/types/state/integrations.d.ts +25 -0
  222. package/dist-lib/types/state/liveFeed.d.ts +37 -0
  223. package/dist-lib/types/state/scopeKey.d.ts +8 -0
  224. package/dist-lib/types/state/status.d.ts +21 -0
  225. package/dist-lib/typescript-aCo3H3H0.js +343 -0
  226. package/dist-lib/typespec-BsmjDEu7.js +117 -0
  227. package/dist-lib/vb-ChHvIDrk.js +372 -0
  228. package/dist-lib/wgsl-XEp1ju8c.js +439 -0
  229. package/dist-lib/xml-CSt-F-dl.js +95 -0
  230. package/dist-lib/yaml-kSsc3ru_.js +206 -0
  231. package/package.json +98 -0
@@ -0,0 +1,392 @@
1
+ var t = {
2
+ wordPattern: /(-?\d*\.\d\w*)|([^\`\~\!\@\$\^\&\*\(\)\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\s]+)/g,
3
+ comments: {
4
+ blockComment: ["{#", "#}"]
5
+ },
6
+ brackets: [
7
+ ["{#", "#}"],
8
+ ["{%", "%}"],
9
+ ["{{", "}}"],
10
+ ["(", ")"],
11
+ ["[", "]"],
12
+ // HTML
13
+ ["<!--", "-->"],
14
+ ["<", ">"]
15
+ ],
16
+ autoClosingPairs: [
17
+ { open: "{# ", close: " #}" },
18
+ { open: "{% ", close: " %}" },
19
+ { open: "{{ ", close: " }}" },
20
+ { open: "[", close: "]" },
21
+ { open: "(", close: ")" },
22
+ { open: '"', close: '"' },
23
+ { open: "'", close: "'" }
24
+ ],
25
+ surroundingPairs: [
26
+ { open: '"', close: '"' },
27
+ { open: "'", close: "'" },
28
+ // HTML
29
+ { open: "<", close: ">" }
30
+ ]
31
+ }, e = {
32
+ defaultToken: "",
33
+ tokenPostfix: "",
34
+ ignoreCase: !0,
35
+ keywords: [
36
+ // (opening) tags
37
+ "apply",
38
+ "autoescape",
39
+ "block",
40
+ "deprecated",
41
+ "do",
42
+ "embed",
43
+ "extends",
44
+ "flush",
45
+ "for",
46
+ "from",
47
+ "if",
48
+ "import",
49
+ "include",
50
+ "macro",
51
+ "sandbox",
52
+ "set",
53
+ "use",
54
+ "verbatim",
55
+ "with",
56
+ // closing tags
57
+ "endapply",
58
+ "endautoescape",
59
+ "endblock",
60
+ "endembed",
61
+ "endfor",
62
+ "endif",
63
+ "endmacro",
64
+ "endsandbox",
65
+ "endset",
66
+ "endwith",
67
+ // literals
68
+ "true",
69
+ "false"
70
+ ],
71
+ tokenizer: {
72
+ root: [
73
+ // whitespace
74
+ [/\s+/],
75
+ // Twig Tag Delimiters
76
+ [/{#/, "comment.twig", "@commentState"],
77
+ [/{%[-~]?/, "delimiter.twig", "@blockState"],
78
+ [/{{[-~]?/, "delimiter.twig", "@variableState"],
79
+ // HTML
80
+ [/<!DOCTYPE/, "metatag.html", "@doctype"],
81
+ [/<!--/, "comment.html", "@comment"],
82
+ [/(<)((?:[\w\-]+:)?[\w\-]+)(\s*)(\/>)/, ["delimiter.html", "tag.html", "", "delimiter.html"]],
83
+ [/(<)(script)/, ["delimiter.html", { token: "tag.html", next: "@script" }]],
84
+ [/(<)(style)/, ["delimiter.html", { token: "tag.html", next: "@style" }]],
85
+ [/(<)((?:[\w\-]+:)?[\w\-]+)/, ["delimiter.html", { token: "tag.html", next: "@otherTag" }]],
86
+ [/(<\/)((?:[\w\-]+:)?[\w\-]+)/, ["delimiter.html", { token: "tag.html", next: "@otherTag" }]],
87
+ [/</, "delimiter.html"],
88
+ [/[^<{]+/]
89
+ // text
90
+ ],
91
+ /**
92
+ * Comment Tag Handling
93
+ */
94
+ commentState: [
95
+ [/#}/, "comment.twig", "@pop"],
96
+ [/./, "comment.twig"]
97
+ ],
98
+ /**
99
+ * Block Tag Handling
100
+ */
101
+ blockState: [
102
+ [/[-~]?%}/, "delimiter.twig", "@pop"],
103
+ // whitespace
104
+ [/\s+/],
105
+ // verbatim
106
+ // Unlike other blocks, verbatim ehas its own state
107
+ // transition to ensure we mark its contents as strings.
108
+ [
109
+ /(verbatim)(\s*)([-~]?%})/,
110
+ ["keyword.twig", "", { token: "delimiter.twig", next: "@rawDataState" }]
111
+ ],
112
+ { include: "expression" }
113
+ ],
114
+ rawDataState: [
115
+ // endverbatim
116
+ [
117
+ /({%[-~]?)(\s*)(endverbatim)(\s*)([-~]?%})/,
118
+ ["delimiter.twig", "", "keyword.twig", "", { token: "delimiter.twig", next: "@popall" }]
119
+ ],
120
+ [/./, "string.twig"]
121
+ ],
122
+ /**
123
+ * Variable Tag Handling
124
+ */
125
+ variableState: [[/[-~]?}}/, "delimiter.twig", "@pop"], { include: "expression" }],
126
+ stringState: [
127
+ // closing double quoted string
128
+ [/"/, "string.twig", "@pop"],
129
+ // interpolation start
130
+ [/#{\s*/, "string.twig", "@interpolationState"],
131
+ // string part
132
+ [/[^#"\\]*(?:(?:\\.|#(?!\{))[^#"\\]*)*/, "string.twig"]
133
+ ],
134
+ interpolationState: [
135
+ // interpolation end
136
+ [/}/, "string.twig", "@pop"],
137
+ { include: "expression" }
138
+ ],
139
+ /**
140
+ * Expression Handling
141
+ */
142
+ expression: [
143
+ // whitespace
144
+ [/\s+/],
145
+ // operators - math
146
+ [/\+|-|\/{1,2}|%|\*{1,2}/, "operators.twig"],
147
+ // operators - logic
148
+ [/(and|or|not|b-and|b-xor|b-or)(\s+)/, ["operators.twig", ""]],
149
+ // operators - comparison (symbols)
150
+ [/==|!=|<|>|>=|<=/, "operators.twig"],
151
+ // operators - comparison (words)
152
+ [/(starts with|ends with|matches)(\s+)/, ["operators.twig", ""]],
153
+ // operators - containment
154
+ [/(in)(\s+)/, ["operators.twig", ""]],
155
+ // operators - test
156
+ [/(is)(\s+)/, ["operators.twig", ""]],
157
+ // operators - misc
158
+ [/\||~|:|\.{1,2}|\?{1,2}/, "operators.twig"],
159
+ // names
160
+ [
161
+ /[^\W\d][\w]*/,
162
+ {
163
+ cases: {
164
+ "@keywords": "keyword.twig",
165
+ "@default": "variable.twig"
166
+ }
167
+ }
168
+ ],
169
+ // numbers
170
+ [/\d+(\.\d+)?/, "number.twig"],
171
+ // punctuation
172
+ [/\(|\)|\[|\]|{|}|,/, "delimiter.twig"],
173
+ // strings
174
+ [/"([^#"\\]*(?:\\.[^#"\\]*)*)"|\'([^\'\\]*(?:\\.[^\'\\]*)*)\'/, "string.twig"],
175
+ // opening double quoted string
176
+ [/"/, "string.twig", "@stringState"],
177
+ // misc syntactic constructs
178
+ // These are not operators per se, but for the purposes of lexical analysis we
179
+ // can treat them as such.
180
+ // arrow functions
181
+ [/=>/, "operators.twig"],
182
+ // assignment
183
+ [/=/, "operators.twig"]
184
+ ],
185
+ /**
186
+ * HTML
187
+ */
188
+ doctype: [
189
+ [/[^>]+/, "metatag.content.html"],
190
+ [/>/, "metatag.html", "@pop"]
191
+ ],
192
+ comment: [
193
+ [/-->/, "comment.html", "@pop"],
194
+ [/[^-]+/, "comment.content.html"],
195
+ [/./, "comment.content.html"]
196
+ ],
197
+ otherTag: [
198
+ [/\/?>/, "delimiter.html", "@pop"],
199
+ [/"([^"]*)"/, "attribute.value.html"],
200
+ [/'([^']*)'/, "attribute.value.html"],
201
+ [/[\w\-]+/, "attribute.name.html"],
202
+ [/=/, "delimiter.html"],
203
+ [/[ \t\r\n]+/]
204
+ // whitespace
205
+ ],
206
+ // -- BEGIN <script> tags handling
207
+ // After <script
208
+ script: [
209
+ [/type/, "attribute.name.html", "@scriptAfterType"],
210
+ [/"([^"]*)"/, "attribute.value.html"],
211
+ [/'([^']*)'/, "attribute.value.html"],
212
+ [/[\w\-]+/, "attribute.name.html"],
213
+ [/=/, "delimiter.html"],
214
+ [
215
+ />/,
216
+ {
217
+ token: "delimiter.html",
218
+ next: "@scriptEmbedded",
219
+ nextEmbedded: "text/javascript"
220
+ }
221
+ ],
222
+ [/[ \t\r\n]+/],
223
+ // whitespace
224
+ [
225
+ /(<\/)(script\s*)(>)/,
226
+ ["delimiter.html", "tag.html", { token: "delimiter.html", next: "@pop" }]
227
+ ]
228
+ ],
229
+ // After <script ... type
230
+ scriptAfterType: [
231
+ [/=/, "delimiter.html", "@scriptAfterTypeEquals"],
232
+ [
233
+ />/,
234
+ {
235
+ token: "delimiter.html",
236
+ next: "@scriptEmbedded",
237
+ nextEmbedded: "text/javascript"
238
+ }
239
+ ],
240
+ // cover invalid e.g. <script type>
241
+ [/[ \t\r\n]+/],
242
+ // whitespace
243
+ [/<\/script\s*>/, { token: "@rematch", next: "@pop" }]
244
+ ],
245
+ // After <script ... type =
246
+ scriptAfterTypeEquals: [
247
+ [
248
+ /"([^"]*)"/,
249
+ {
250
+ token: "attribute.value.html",
251
+ switchTo: "@scriptWithCustomType.$1"
252
+ }
253
+ ],
254
+ [
255
+ /'([^']*)'/,
256
+ {
257
+ token: "attribute.value.html",
258
+ switchTo: "@scriptWithCustomType.$1"
259
+ }
260
+ ],
261
+ [
262
+ />/,
263
+ {
264
+ token: "delimiter.html",
265
+ next: "@scriptEmbedded",
266
+ nextEmbedded: "text/javascript"
267
+ }
268
+ ],
269
+ // cover invalid e.g. <script type=>
270
+ [/[ \t\r\n]+/],
271
+ // whitespace
272
+ [/<\/script\s*>/, { token: "@rematch", next: "@pop" }]
273
+ ],
274
+ // After <script ... type = $S2
275
+ scriptWithCustomType: [
276
+ [
277
+ />/,
278
+ {
279
+ token: "delimiter.html",
280
+ next: "@scriptEmbedded.$S2",
281
+ nextEmbedded: "$S2"
282
+ }
283
+ ],
284
+ [/"([^"]*)"/, "attribute.value.html"],
285
+ [/'([^']*)'/, "attribute.value.html"],
286
+ [/[\w\-]+/, "attribute.name.html"],
287
+ [/=/, "delimiter.html"],
288
+ [/[ \t\r\n]+/],
289
+ // whitespace
290
+ [/<\/script\s*>/, { token: "@rematch", next: "@pop" }]
291
+ ],
292
+ scriptEmbedded: [
293
+ [/<\/script/, { token: "@rematch", next: "@pop", nextEmbedded: "@pop" }],
294
+ [/[^<]+/, ""]
295
+ ],
296
+ // -- END <script> tags handling
297
+ // -- BEGIN <style> tags handling
298
+ // After <style
299
+ style: [
300
+ [/type/, "attribute.name.html", "@styleAfterType"],
301
+ [/"([^"]*)"/, "attribute.value.html"],
302
+ [/'([^']*)'/, "attribute.value.html"],
303
+ [/[\w\-]+/, "attribute.name.html"],
304
+ [/=/, "delimiter.html"],
305
+ [
306
+ />/,
307
+ {
308
+ token: "delimiter.html",
309
+ next: "@styleEmbedded",
310
+ nextEmbedded: "text/css"
311
+ }
312
+ ],
313
+ [/[ \t\r\n]+/],
314
+ // whitespace
315
+ [
316
+ /(<\/)(style\s*)(>)/,
317
+ ["delimiter.html", "tag.html", { token: "delimiter.html", next: "@pop" }]
318
+ ]
319
+ ],
320
+ // After <style ... type
321
+ styleAfterType: [
322
+ [/=/, "delimiter.html", "@styleAfterTypeEquals"],
323
+ [
324
+ />/,
325
+ {
326
+ token: "delimiter.html",
327
+ next: "@styleEmbedded",
328
+ nextEmbedded: "text/css"
329
+ }
330
+ ],
331
+ // cover invalid e.g. <style type>
332
+ [/[ \t\r\n]+/],
333
+ // whitespace
334
+ [/<\/style\s*>/, { token: "@rematch", next: "@pop" }]
335
+ ],
336
+ // After <style ... type =
337
+ styleAfterTypeEquals: [
338
+ [
339
+ /"([^"]*)"/,
340
+ {
341
+ token: "attribute.value.html",
342
+ switchTo: "@styleWithCustomType.$1"
343
+ }
344
+ ],
345
+ [
346
+ /'([^']*)'/,
347
+ {
348
+ token: "attribute.value.html",
349
+ switchTo: "@styleWithCustomType.$1"
350
+ }
351
+ ],
352
+ [
353
+ />/,
354
+ {
355
+ token: "delimiter.html",
356
+ next: "@styleEmbedded",
357
+ nextEmbedded: "text/css"
358
+ }
359
+ ],
360
+ // cover invalid e.g. <style type=>
361
+ [/[ \t\r\n]+/],
362
+ // whitespace
363
+ [/<\/style\s*>/, { token: "@rematch", next: "@pop" }]
364
+ ],
365
+ // After <style ... type = $S2
366
+ styleWithCustomType: [
367
+ [
368
+ />/,
369
+ {
370
+ token: "delimiter.html",
371
+ next: "@styleEmbedded.$S2",
372
+ nextEmbedded: "$S2"
373
+ }
374
+ ],
375
+ [/"([^"]*)"/, "attribute.value.html"],
376
+ [/'([^']*)'/, "attribute.value.html"],
377
+ [/[\w\-]+/, "attribute.name.html"],
378
+ [/=/, "delimiter.html"],
379
+ [/[ \t\r\n]+/],
380
+ // whitespace
381
+ [/<\/style\s*>/, { token: "@rematch", next: "@pop" }]
382
+ ],
383
+ styleEmbedded: [
384
+ [/<\/style/, { token: "@rematch", next: "@pop", nextEmbedded: "@pop" }],
385
+ [/[^<]+/, ""]
386
+ ]
387
+ }
388
+ };
389
+ export {
390
+ t as conf,
391
+ e as language
392
+ };
@@ -0,0 +1,113 @@
1
+ import type { InstanceConfig } from "../instances/types";
2
+ /**
3
+ * Change feed consumption (feature change-feed, spec §3.7): fetch-based SSE reading of
4
+ * GET /changefeed with the instance's auth headers - the browser-native EventSource
5
+ * cannot set headers, and the API key NEVER goes into a query string (URLs leak into
6
+ * logs and proxies).
7
+ *
8
+ * The client recipe encoded here: fetch, then stream; on resync, re-fetch. Delivery is
9
+ * in-order, at-most-once per connection; whenever continuity is lost the server says so
10
+ * in-band with a `resync` event. Reconnects carry the last seen `id:` value as `since`
11
+ * (the catch-up contract), with exponential backoff. A 503 means the feed is disabled
12
+ * (or full) - the stream stops quietly instead of hammering the server.
13
+ */
14
+ export type ChangeEventKind = "vertexCreated" | "vertexRemoved" | "edgeCreated" | "edgeRemoved" | "propertySet" | "propertyRemoved" | "resync";
15
+ export type ChangeElementType = "vertex" | "edge";
16
+ export type ResyncReason = "trim" | "tabulaRasa" | "load" | "delegateWrite" | "overflow" | "seekOutOfRange";
17
+ export interface ChangeEvent {
18
+ /** Monotonic per process epoch, commit order. */
19
+ seq: number;
20
+ /** Commit timestamp (UTC, ISO-8601), shared by a transaction's events. */
21
+ ts: string;
22
+ kind: ChangeEventKind;
23
+ /** Element events only. */
24
+ element?: ChangeElementType;
25
+ /** Element id - element events only. */
26
+ id?: number;
27
+ /** Omitted when the element has no label. */
28
+ label?: string;
29
+ /** The edge's type (its edgePropertyId) - edgeCreated only. */
30
+ edgePropertyId?: string;
31
+ /** Property key - propertySet/propertyRemoved only (never the value). */
32
+ key?: string;
33
+ /** Source vertex id - edgeCreated only. */
34
+ source?: number;
35
+ /** Target vertex id - edgeCreated only. */
36
+ target?: number;
37
+ /** resync only. */
38
+ reason?: ResyncReason;
39
+ }
40
+ /** Declarative server-side filter (spec §3.4): AND across dimensions, OR within one. */
41
+ export interface ChangeFeedFilter {
42
+ kinds?: ChangeEventKind[];
43
+ elements?: ChangeElementType[];
44
+ labels?: string[];
45
+ keys?: string[];
46
+ }
47
+ /** Maps a filter + catch-up position onto the comma-separated query grammar. */
48
+ export declare function buildChangeFeedQuery(filter?: ChangeFeedFilter, since?: string): Record<string, string | undefined>;
49
+ /** One dispatched SSE frame; `data` joins multiple data lines with \n per the SSE spec. */
50
+ export interface SseFrame {
51
+ id?: string;
52
+ event?: string;
53
+ data: string;
54
+ }
55
+ /**
56
+ * Incremental SSE parser: feed it chunks (split at ANY boundary), it dispatches complete
57
+ * frames. Comment lines (": keepalive") and unknown fields are ignored; a blank line
58
+ * dispatches; \n, \r\n and \r all terminate a line.
59
+ */
60
+ export declare class SseParser {
61
+ private readonly onFrame;
62
+ private buffer;
63
+ private id;
64
+ private event;
65
+ private dataLines;
66
+ constructor(onFrame: (frame: SseFrame) => void);
67
+ push(chunk: string): void;
68
+ private handleLine;
69
+ private dispatch;
70
+ }
71
+ /** Decodes one `data:` payload; null when it is not a well-formed change event. */
72
+ export declare function parseChangeEvent(data: string): ChangeEvent | null;
73
+ /**
74
+ * Why the stream stopped for good:
75
+ * - "aborted" - the caller's AbortSignal fired (instance switch, unmount).
76
+ * - "unavailable" - the server answered 503 (feed disabled or subscriber limit); the
77
+ * caller stays in its polling behaviour, no reconnect storm.
78
+ * - "fatal" - a non-retryable client error (400 bad filter, 401/403 auth).
79
+ */
80
+ export type StreamCloseReason = "aborted" | "unavailable" | "fatal";
81
+ export interface StreamChangesOptions {
82
+ filter?: ChangeFeedFilter;
83
+ /** Catch-up position for the FIRST request; reconnects carry the last seen id automatically. */
84
+ since?: string;
85
+ signal: AbortSignal;
86
+ /** Element events only - resync events go EXCLUSIVELY to onResync, never here. */
87
+ onEvent: (event: ChangeEvent) => void;
88
+ /** Continuity was lost - re-fetch what you display (mandatory per the contract). */
89
+ onResync?: (event: ChangeEvent) => void;
90
+ /** The stream is connected (also after a successful reconnect). */
91
+ onOpen?: () => void;
92
+ /** A transient error before a reconnect attempt; the loop handles the retry itself. */
93
+ onError?: (error: unknown) => void;
94
+ /** The stream stopped for good and will NOT reconnect. */
95
+ onClose?: (reason: StreamCloseReason) => void;
96
+ /** A reconnect is scheduled (attempt counter and the backoff delay about to be waited). */
97
+ onRetry?: (attempt: number, delayMs: number) => void;
98
+ /**
99
+ * Every SSE `id:` as it arrives (`epoch:seq`) - the caller's catch-up position for a
100
+ * FUTURE subscription (the loop already carries it across its own reconnects).
101
+ */
102
+ onFrameId?: (id: string) => void;
103
+ /** First reconnect delay; doubles per attempt (default 1000). */
104
+ initialBackoffMs?: number;
105
+ /** Backoff ceiling (default 30000). */
106
+ maxBackoffMs?: number;
107
+ }
108
+ /**
109
+ * Consumes GET /changefeed until the signal aborts, reconnecting with `since=<last id>`
110
+ * and exponential backoff whenever the connection drops. Resolves when the stream has
111
+ * stopped for good (after onClose).
112
+ */
113
+ export declare function streamChanges(instance: InstanceConfig, options: StreamChangesOptions): Promise<void>;
@@ -0,0 +1,81 @@
1
+ import type { InstanceConfig } from "../instances/types";
2
+ /**
3
+ * Thin, instance-bound transport for the Fallen-8 REST surface (design §2.3).
4
+ *
5
+ * Hard rules encoded here:
6
+ * - Routes are root-level ("/graph", "/status", ...) - never under /api/v0.1/.
7
+ * - Missing elements come back as 200-with-null or 204: an empty body resolves to null,
8
+ * it is NOT an error.
9
+ * - Every failed request throws an ApiError carrying status + the server's message so the
10
+ * UI can always show both (NFR: no silent failures).
11
+ * - Auth (lightweight, extensible): an instance's API key travels as
12
+ * `Authorization: Bearer <key>` by default (the shape a future OIDC/JWT scheme reuses),
13
+ * or in a named header (X-Api-Key style) when configured. Keys never leave the browser
14
+ * except toward their own instance.
15
+ */
16
+ /**
17
+ * The human-readable message from a REST error body. Fallen-8 returns every error as RFC 7807
18
+ * `application/problem+json` (feature api-error-envelope), which carries the message in `detail`
19
+ * (falling back to `title`); any other body - a plain string, an empty body, a pre-envelope
20
+ * server, or a JSON object without a usable `detail`/`title` - is returned unchanged. So for
21
+ * Fallen-8's own responses the Studio error surface always shows the server's message rather than
22
+ * the raw problem+json object.
23
+ */
24
+ export declare function problemDetail(body: string): string;
25
+ export declare class ApiError extends Error {
26
+ readonly status: number;
27
+ readonly url: string;
28
+ /**
29
+ * The server's human-readable message - the problem+json `detail`/`title` when the body is an
30
+ * RFC 7807 envelope, otherwise the raw body. For Fallen-8's own errors (always carrying a
31
+ * `detail`/`title`) this is a clean message, never a raw JSON object.
32
+ */
33
+ readonly body: string;
34
+ constructor(status: number, url: string, body: string);
35
+ }
36
+ export interface RequestOptions {
37
+ method?: "GET" | "POST" | "PUT" | "DELETE" | "HEAD" | "PATCH";
38
+ body?: unknown;
39
+ query?: Record<string, string | number | boolean | undefined>;
40
+ signal?: AbortSignal;
41
+ /**
42
+ * Namespace scoping (feature graph-namespaces). "namespace" (the default) prefixes the
43
+ * path with /ns/{namespace} when the instance is namespace-bound - the namespace is
44
+ * ALWAYS explicit on the wire, "default" included. "fallen8" pins Fallen-8-level
45
+ * endpoints (save games, delegate validation, the /ns management routes) to their bare
46
+ * form regardless of binding.
47
+ */
48
+ scope?: "namespace" | "fallen8";
49
+ }
50
+ /**
51
+ * The /ns/{namespace} prefix for a namespace-bound instance; the bare path for an unbound
52
+ * one (pre-namespace servers and Fallen-8-level callers).
53
+ */
54
+ export declare function scopedPath(instance: InstanceConfig, path: string): string;
55
+ export declare function buildUrl(baseUrl: string, path: string, query?: RequestOptions["query"]): string;
56
+ /**
57
+ * Credential headers for the SYNCHRONOUS auth kinds (none/apiKey). A `bearer` instance
58
+ * (feature studio-embeddable: host-supplied async token provider) cannot be served here -
59
+ * its token only resolves in {@link resolveAuthHeaders}, which every transport call site
60
+ * goes through - so it THROWS rather than returning empty headers: a new sync call site
61
+ * must fail loudly instead of silently sending the request unauthenticated.
62
+ */
63
+ export declare function authHeaders(instance: InstanceConfig): Record<string, string>;
64
+ /**
65
+ * Credential headers for ALL auth kinds - the one function transport call sites use. For
66
+ * `bearer` it awaits the host's token provider per request (the host caches/refreshes as it
67
+ * sees fit); the standalone kinds pass through {@link authHeaders} synchronously.
68
+ */
69
+ export declare function resolveAuthHeaders(instance: InstanceConfig): Promise<Record<string, string>>;
70
+ /**
71
+ * The single place a non-ok response becomes an {@link ApiError} (status + the server's body).
72
+ * Shared by {@link apiRequest} and the raw-fetch bulk endpoints so every failure looks the same.
73
+ */
74
+ export declare function throwIfNotOk(response: Response, url: string): Promise<void>;
75
+ export declare function apiRequest<T>(instance: InstanceConfig, path: string, options?: RequestOptions): Promise<T | null>;
76
+ /**
77
+ * Multipart POST (feature unstructured-ingestion: the document upload). Same URL scoping,
78
+ * auth and error mapping as {@link apiRequest}; the browser sets the multipart boundary
79
+ * itself, so no Content-Type is written here.
80
+ */
81
+ export declare function apiForm<T>(instance: InstanceConfig, path: string, form: FormData, options?: Pick<RequestOptions, "signal" | "scope">): Promise<T | null>;