@tscircuit/runframe 0.0.595 → 0.0.597

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.
@@ -5,6 +5,19 @@ import * as TabsPrimitive from "@radix-ui/react-tabs";
5
5
  // lib/utils/index.ts
6
6
  import { clsx } from "clsx";
7
7
  import { twMerge } from "tailwind-merge";
8
+
9
+ // lib/utils/posthog.ts
10
+ import posthog from "posthog-js";
11
+ if (!window.location.hostname.includes("localhost") && !window.location.hostname.includes("127.0.0.1")) {
12
+ if (!posthog.__loaded) {
13
+ posthog.init("phc_htd8AQjSfVEsFCLQMAiUooG4Q0DKBCjqYuQglc9V3Wo", {
14
+ api_host: "https://postpig.tscircuit.com",
15
+ person_profiles: "always"
16
+ });
17
+ }
18
+ }
19
+
20
+ // lib/utils/index.ts
8
21
  function cn(...inputs) {
9
22
  return twMerge(clsx(inputs));
10
23
  }
@@ -54,7 +67,7 @@ TabsContent.displayName = TabsPrimitive.Content.displayName;
54
67
 
55
68
  // lib/components/CircuitJsonPreview/CircuitJsonPreview.tsx
56
69
  import { CadViewer } from "@tscircuit/3d-viewer";
57
- import { useCallback, useEffect as useEffect3, useState as useState5, useMemo as useMemo2 } from "react";
70
+ import { useCallback, useEffect as useEffect4, useState as useState5, useMemo as useMemo2 } from "react";
58
71
 
59
72
  // lib/components/ErrorFallback.tsx
60
73
  import "react";
@@ -1213,8 +1226,42 @@ var RenderLogViewer = ({
1213
1226
  ] });
1214
1227
  };
1215
1228
 
1229
+ // lib/hooks/use-error-telemetry.ts
1230
+ import { useEffect as useEffect3 } from "react";
1231
+ var useErrorTelemetry = ({
1232
+ errorMessage,
1233
+ errorStack,
1234
+ circuitJsonErrors
1235
+ }) => {
1236
+ useEffect3(() => {
1237
+ if (errorMessage) {
1238
+ const err = new Error(errorMessage);
1239
+ if (errorStack) err.stack = errorStack;
1240
+ try {
1241
+ posthog.captureException(err);
1242
+ } catch {
1243
+ }
1244
+ }
1245
+ }, [errorMessage, errorStack]);
1246
+ useEffect3(() => {
1247
+ if (circuitJsonErrors && circuitJsonErrors.length > 0) {
1248
+ for (const error of circuitJsonErrors) {
1249
+ const err = new Error(error.message || "Circuit JSON Error");
1250
+ if (error.stack) {
1251
+ ;
1252
+ err.stack = error.stack;
1253
+ }
1254
+ try {
1255
+ posthog.captureException(err, { error_type: error.type });
1256
+ } catch {
1257
+ }
1258
+ }
1259
+ }
1260
+ }, [circuitJsonErrors]);
1261
+ };
1262
+
1216
1263
  // package.json
1217
- var version = "0.0.593";
1264
+ var version = "0.0.596";
1218
1265
 
1219
1266
  // lib/components/RunFrame/runner-store/use-runner-store.ts
1220
1267
  import { create } from "zustand";
@@ -1287,6 +1334,11 @@ var CircuitJsonPreview = ({
1287
1334
  (e) => e && "warning_type" in e || e.type.includes("warning")
1288
1335
  );
1289
1336
  }, [circuitJson]);
1337
+ useErrorTelemetry({
1338
+ errorMessage,
1339
+ errorStack,
1340
+ circuitJsonErrors
1341
+ });
1290
1342
  const [activeTab, setActiveTabState] = useState5(
1291
1343
  defaultActiveTab ?? "pcb"
1292
1344
  );
@@ -1302,12 +1354,12 @@ var CircuitJsonPreview = ({
1302
1354
  const toggleFullScreen = () => {
1303
1355
  setIsFullScreen(!isFullScreen);
1304
1356
  };
1305
- useEffect3(() => {
1357
+ useEffect4(() => {
1306
1358
  if (errorMessage) {
1307
1359
  setActiveTab("errors");
1308
1360
  }
1309
1361
  }, [errorMessage]);
1310
- useEffect3(() => {
1362
+ useEffect4(() => {
1311
1363
  if ((activeTab === "code" || activeTab === "errors") && circuitJson && !errorMessage) {
1312
1364
  setActiveTab(defaultActiveTab ?? "pcb");
1313
1365
  }
@@ -1870,7 +1922,7 @@ import { QueryClient, QueryClientProvider } from "react-query";
1870
1922
  // lib/components/OrderDialog/InitialOrder.tsx
1871
1923
  import { Loader2 as Loader22 } from "lucide-react";
1872
1924
  import { GitHubLogoIcon as GitHubLogoIcon2 } from "@radix-ui/react-icons";
1873
- import { useEffect as useEffect4, useMemo as useMemo3, useState as useState6 } from "react";
1925
+ import { useEffect as useEffect5, useMemo as useMemo3, useState as useState6 } from "react";
1874
1926
 
1875
1927
  // lib/components/OrderDialog/VendorQuoteCard.tsx
1876
1928
  import { Truck, Package } from "lucide-react";
@@ -2066,7 +2118,7 @@ var InitialOrderScreen = ({
2066
2118
  const [selectedShippingCarrier, setSelectedShippingCarrier] = useState6(null);
2067
2119
  const [orderQuoteId, setOrderQuoteId] = useState6(null);
2068
2120
  const { mutate: createOrderQuote2, error: createOrderQuoteError } = useCreateOrderQuote();
2069
- useEffect4(() => {
2121
+ useEffect5(() => {
2070
2122
  if (packageReleaseId) {
2071
2123
  createOrderQuote2(packageReleaseId, {
2072
2124
  onSuccess: (data) => {
@@ -2082,7 +2134,7 @@ var InitialOrderScreen = ({
2082
2134
  );
2083
2135
  window.location.href = `${stripeCheckoutBaseUrl}?client_reference_id=${orderQuoteId2}&shipping_option=${selectedShippingCarrier}`;
2084
2136
  };
2085
- useEffect4(() => {
2137
+ useEffect5(() => {
2086
2138
  if (selectedShippingCarrier === null && orderQuote && Array.isArray(orderQuote.shipping_options) && orderQuote.shipping_options.length > 0) {
2087
2139
  const lowest = orderQuote.shipping_options.reduce(
2088
2140
  (min, curr) => curr.cost < min.cost ? curr : min,
package/dist/preview.js CHANGED
@@ -8,7 +8,7 @@ import {
8
8
  linkify,
9
9
  useOrderDialog,
10
10
  useOrderDialogCli
11
- } from "./chunk-Q3HHZAAJ.js";
11
+ } from "./chunk-XBBBLCNW.js";
12
12
  export {
13
13
  BomTable,
14
14
  CadViewer,
package/dist/runner.js CHANGED
@@ -37,7 +37,7 @@ import {
37
37
  useOrderDialogCli,
38
38
  useRunFrameStore,
39
39
  useRunnerStore
40
- } from "./chunk-Q3HHZAAJ.js";
40
+ } from "./chunk-XBBBLCNW.js";
41
41
 
42
42
  // lib/components/RunFrame/RunFrame.tsx
43
43
  import { createCircuitWebWorker } from "@tscircuit/eval/worker";