@tscircuit/fake-snippets 0.0.84 → 0.0.85

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -410,6 +410,51 @@ declare const aiReviewSchema: z.ZodObject<{
410
410
  processing_error?: any;
411
411
  }>;
412
412
  type AiReview = z.infer<typeof aiReviewSchema>;
413
+ declare const datasheetSchema: z.ZodObject<{
414
+ datasheet_id: z.ZodString;
415
+ chip_name: z.ZodString;
416
+ created_at: z.ZodString;
417
+ pin_information: z.ZodNullable<z.ZodArray<z.ZodObject<{
418
+ pin_number: z.ZodString;
419
+ name: z.ZodString;
420
+ description: z.ZodString;
421
+ capabilities: z.ZodArray<z.ZodString, "many">;
422
+ }, "strip", z.ZodTypeAny, {
423
+ name: string;
424
+ description: string;
425
+ pin_number: string;
426
+ capabilities: string[];
427
+ }, {
428
+ name: string;
429
+ description: string;
430
+ pin_number: string;
431
+ capabilities: string[];
432
+ }>, "many">>;
433
+ datasheet_pdf_urls: z.ZodNullable<z.ZodArray<z.ZodString, "many">>;
434
+ }, "strip", z.ZodTypeAny, {
435
+ created_at: string;
436
+ datasheet_id: string;
437
+ chip_name: string;
438
+ pin_information: {
439
+ name: string;
440
+ description: string;
441
+ pin_number: string;
442
+ capabilities: string[];
443
+ }[] | null;
444
+ datasheet_pdf_urls: string[] | null;
445
+ }, {
446
+ created_at: string;
447
+ datasheet_id: string;
448
+ chip_name: string;
449
+ pin_information: {
450
+ name: string;
451
+ description: string;
452
+ pin_number: string;
453
+ capabilities: string[];
454
+ }[] | null;
455
+ datasheet_pdf_urls: string[] | null;
456
+ }>;
457
+ type Datasheet = z.infer<typeof datasheetSchema>;
413
458
  declare const accountPackageSchema: z.ZodObject<{
414
459
  account_package_id: z.ZodString;
415
460
  account_id: z.ZodString;
@@ -1008,7 +1053,19 @@ declare const createDatabase: ({ seed }?: {
1008
1053
  display_status: "pending" | "completed" | "failed";
1009
1054
  processing_error?: any;
1010
1055
  }[];
1011
- }, "addOrder" | "getOrderById" | "getOrderFilesByOrderId" | "addOrderQuote" | "getOrderQuoteById" | "getJlcpcbOrderStatesByOrderId" | "getJlcpcbOrderStepRunsByJlcpcbOrderStateId" | "updateOrder" | "addJlcpcbOrderState" | "updateJlcpcbOrderState" | "addOrderFile" | "getOrderFileById" | "addAccount" | "addAccountPackage" | "getAccountPackageById" | "updateAccountPackage" | "deleteAccountPackage" | "addSnippet" | "getLatestSnippets" | "getTrendingSnippets" | "getPackagesByAuthor" | "getSnippetByAuthorAndName" | "updateSnippet" | "getSnippetById" | "searchSnippets" | "searchPackages" | "deleteSnippet" | "addSession" | "getSessions" | "createLoginPage" | "getLoginPage" | "updateLoginPage" | "getAccount" | "updateAccount" | "createSession" | "addStar" | "removeStar" | "hasStarred" | "addPackage" | "updatePackage" | "getPackageById" | "getPackageReleaseById" | "addPackageRelease" | "updatePackageRelease" | "deletePackageFile" | "addPackageFile" | "updatePackageFile" | "getStarCount" | "getPackageFilesByReleaseId" | "updatePackageReleaseFsSha" | "addAiReview" | "updateAiReview" | "getAiReviewById" | "listAiReviews"> & {
1056
+ datasheets: {
1057
+ created_at: string;
1058
+ datasheet_id: string;
1059
+ chip_name: string;
1060
+ pin_information: {
1061
+ name: string;
1062
+ description: string;
1063
+ pin_number: string;
1064
+ capabilities: string[];
1065
+ }[] | null;
1066
+ datasheet_pdf_urls: string[] | null;
1067
+ }[];
1068
+ }, "addOrder" | "getOrderById" | "getOrderFilesByOrderId" | "addOrderQuote" | "getOrderQuoteById" | "getJlcpcbOrderStatesByOrderId" | "getJlcpcbOrderStepRunsByJlcpcbOrderStateId" | "updateOrder" | "addJlcpcbOrderState" | "updateJlcpcbOrderState" | "addOrderFile" | "getOrderFileById" | "addAccount" | "addAccountPackage" | "getAccountPackageById" | "updateAccountPackage" | "deleteAccountPackage" | "addSnippet" | "getLatestSnippets" | "getTrendingSnippets" | "getPackagesByAuthor" | "getSnippetByAuthorAndName" | "updateSnippet" | "getSnippetById" | "searchSnippets" | "searchPackages" | "deleteSnippet" | "addSession" | "getSessions" | "createLoginPage" | "getLoginPage" | "updateLoginPage" | "getAccount" | "updateAccount" | "createSession" | "addStar" | "removeStar" | "hasStarred" | "addPackage" | "updatePackage" | "getPackageById" | "getPackageReleaseById" | "addPackageRelease" | "updatePackageRelease" | "deletePackageFile" | "addPackageFile" | "updatePackageFile" | "getStarCount" | "getPackageFilesByReleaseId" | "updatePackageReleaseFsSha" | "addAiReview" | "updateAiReview" | "getAiReviewById" | "listAiReviews" | "addDatasheet" | "getDatasheetById" | "updateDatasheet"> & {
1012
1069
  addOrder: (order: Omit<Order, "order_id">) => Order;
1013
1070
  getOrderById: (orderId: string) => Order | undefined;
1014
1071
  getOrderFilesByOrderId: (orderId: string) => OrderFile[];
@@ -1090,6 +1147,11 @@ declare const createDatabase: ({ seed }?: {
1090
1147
  updateAiReview: (aiReviewId: string, updates: Partial<AiReview>) => AiReview | undefined;
1091
1148
  getAiReviewById: (aiReviewId: string) => AiReview | undefined;
1092
1149
  listAiReviews: () => AiReview[];
1150
+ addDatasheet: ({ chip_name }: {
1151
+ chip_name: string;
1152
+ }) => Datasheet;
1153
+ getDatasheetById: (datasheetId: string) => Datasheet | undefined;
1154
+ updateDatasheet: (datasheetId: string, updates: Partial<Datasheet>) => Datasheet | undefined;
1093
1155
  }> & Omit<{
1094
1156
  idCounter: number;
1095
1157
  snippets: {
@@ -1337,7 +1399,19 @@ declare const createDatabase: ({ seed }?: {
1337
1399
  display_status: "pending" | "completed" | "failed";
1338
1400
  processing_error?: any;
1339
1401
  }[];
1340
- }, "addOrder" | "getOrderById" | "getOrderFilesByOrderId" | "addOrderQuote" | "getOrderQuoteById" | "getJlcpcbOrderStatesByOrderId" | "getJlcpcbOrderStepRunsByJlcpcbOrderStateId" | "updateOrder" | "addJlcpcbOrderState" | "updateJlcpcbOrderState" | "addOrderFile" | "getOrderFileById" | "addAccount" | "addAccountPackage" | "getAccountPackageById" | "updateAccountPackage" | "deleteAccountPackage" | "addSnippet" | "getLatestSnippets" | "getTrendingSnippets" | "getPackagesByAuthor" | "getSnippetByAuthorAndName" | "updateSnippet" | "getSnippetById" | "searchSnippets" | "searchPackages" | "deleteSnippet" | "addSession" | "getSessions" | "createLoginPage" | "getLoginPage" | "updateLoginPage" | "getAccount" | "updateAccount" | "createSession" | "addStar" | "removeStar" | "hasStarred" | "addPackage" | "updatePackage" | "getPackageById" | "getPackageReleaseById" | "addPackageRelease" | "updatePackageRelease" | "deletePackageFile" | "addPackageFile" | "updatePackageFile" | "getStarCount" | "getPackageFilesByReleaseId" | "updatePackageReleaseFsSha" | "addAiReview" | "updateAiReview" | "getAiReviewById" | "listAiReviews"> & {
1402
+ datasheets: {
1403
+ created_at: string;
1404
+ datasheet_id: string;
1405
+ chip_name: string;
1406
+ pin_information: {
1407
+ name: string;
1408
+ description: string;
1409
+ pin_number: string;
1410
+ capabilities: string[];
1411
+ }[] | null;
1412
+ datasheet_pdf_urls: string[] | null;
1413
+ }[];
1414
+ }, "addOrder" | "getOrderById" | "getOrderFilesByOrderId" | "addOrderQuote" | "getOrderQuoteById" | "getJlcpcbOrderStatesByOrderId" | "getJlcpcbOrderStepRunsByJlcpcbOrderStateId" | "updateOrder" | "addJlcpcbOrderState" | "updateJlcpcbOrderState" | "addOrderFile" | "getOrderFileById" | "addAccount" | "addAccountPackage" | "getAccountPackageById" | "updateAccountPackage" | "deleteAccountPackage" | "addSnippet" | "getLatestSnippets" | "getTrendingSnippets" | "getPackagesByAuthor" | "getSnippetByAuthorAndName" | "updateSnippet" | "getSnippetById" | "searchSnippets" | "searchPackages" | "deleteSnippet" | "addSession" | "getSessions" | "createLoginPage" | "getLoginPage" | "updateLoginPage" | "getAccount" | "updateAccount" | "createSession" | "addStar" | "removeStar" | "hasStarred" | "addPackage" | "updatePackage" | "getPackageById" | "getPackageReleaseById" | "addPackageRelease" | "updatePackageRelease" | "deletePackageFile" | "addPackageFile" | "updatePackageFile" | "getStarCount" | "getPackageFilesByReleaseId" | "updatePackageReleaseFsSha" | "addAiReview" | "updateAiReview" | "getAiReviewById" | "listAiReviews" | "addDatasheet" | "getDatasheetById" | "updateDatasheet"> & {
1341
1415
  addOrder: (order: Omit<Order, "order_id">) => Order;
1342
1416
  getOrderById: (orderId: string) => Order | undefined;
1343
1417
  getOrderFilesByOrderId: (orderId: string) => OrderFile[];
@@ -1419,6 +1493,11 @@ declare const createDatabase: ({ seed }?: {
1419
1493
  updateAiReview: (aiReviewId: string, updates: Partial<AiReview>) => AiReview | undefined;
1420
1494
  getAiReviewById: (aiReviewId: string) => AiReview | undefined;
1421
1495
  listAiReviews: () => AiReview[];
1496
+ addDatasheet: ({ chip_name }: {
1497
+ chip_name: string;
1498
+ }) => Datasheet;
1499
+ getDatasheetById: (datasheetId: string) => Datasheet | undefined;
1500
+ updateDatasheet: (datasheetId: string, updates: Partial<Datasheet>) => Datasheet | undefined;
1422
1501
  };
1423
1502
  type DbClient = ReturnType<typeof createDatabase>;
1424
1503
 
package/dist/index.js CHANGED
@@ -129,6 +129,19 @@ var aiReviewSchema = z.object({
129
129
  created_at: z.string().datetime(),
130
130
  display_status: z.enum(["pending", "completed", "failed"])
131
131
  });
132
+ var datasheetPinInformationSchema = z.object({
133
+ pin_number: z.string(),
134
+ name: z.string(),
135
+ description: z.string(),
136
+ capabilities: z.array(z.string())
137
+ });
138
+ var datasheetSchema = z.object({
139
+ datasheet_id: z.string(),
140
+ chip_name: z.string(),
141
+ created_at: z.string(),
142
+ pin_information: datasheetPinInformationSchema.array().nullable(),
143
+ datasheet_pdf_urls: z.array(z.string()).nullable()
144
+ });
132
145
  var accountSnippetSchema = z.object({
133
146
  account_id: z.string(),
134
147
  snippet_id: z.string(),
@@ -274,7 +287,8 @@ var databaseSchema = z.object({
274
287
  jlcpcbOrderState: z.array(jlcpcbOrderStateSchema).default([]),
275
288
  jlcpcbOrderStepRuns: z.array(jlcpcbOrderStepRunSchema).default([]),
276
289
  orderQuotes: z.array(orderQuoteSchema).default([]),
277
- aiReviews: z.array(aiReviewSchema).default([])
290
+ aiReviews: z.array(aiReviewSchema).default([]),
291
+ datasheets: z.array(datasheetSchema).default([])
278
292
  });
279
293
 
280
294
  // fake-snippets-api/lib/db/autoload-dev-packages.ts
@@ -3093,6 +3107,37 @@ var initializer = combine(databaseSchema.parse({}), (set, get) => ({
3093
3107
  listAiReviews: () => {
3094
3108
  const state = get();
3095
3109
  return state.aiReviews;
3110
+ },
3111
+ addDatasheet: ({ chip_name }) => {
3112
+ const newDatasheet = datasheetSchema.parse({
3113
+ datasheet_id: `datasheet_${Date.now()}`,
3114
+ chip_name,
3115
+ created_at: (/* @__PURE__ */ new Date()).toISOString(),
3116
+ pin_information: null,
3117
+ datasheet_pdf_urls: null
3118
+ });
3119
+ set((state) => ({
3120
+ datasheets: [...state.datasheets, newDatasheet]
3121
+ }));
3122
+ return newDatasheet;
3123
+ },
3124
+ getDatasheetById: (datasheetId) => {
3125
+ const state = get();
3126
+ return state.datasheets.find((d) => d.datasheet_id === datasheetId);
3127
+ },
3128
+ updateDatasheet: (datasheetId, updates) => {
3129
+ let updated;
3130
+ set((state) => {
3131
+ const index = state.datasheets.findIndex(
3132
+ (d) => d.datasheet_id === datasheetId
3133
+ );
3134
+ if (index === -1) return state;
3135
+ const datasheets = [...state.datasheets];
3136
+ datasheets[index] = { ...datasheets[index], ...updates };
3137
+ updated = datasheets[index];
3138
+ return { ...state, datasheets };
3139
+ });
3140
+ return updated;
3096
3141
  }
3097
3142
  }));
3098
3143
 
package/dist/schema.d.ts CHANGED
@@ -515,6 +515,67 @@ declare const aiReviewSchema: z.ZodObject<{
515
515
  processing_error?: any;
516
516
  }>;
517
517
  type AiReview = z.infer<typeof aiReviewSchema>;
518
+ declare const datasheetPinInformationSchema: z.ZodObject<{
519
+ pin_number: z.ZodString;
520
+ name: z.ZodString;
521
+ description: z.ZodString;
522
+ capabilities: z.ZodArray<z.ZodString, "many">;
523
+ }, "strip", z.ZodTypeAny, {
524
+ name: string;
525
+ description: string;
526
+ pin_number: string;
527
+ capabilities: string[];
528
+ }, {
529
+ name: string;
530
+ description: string;
531
+ pin_number: string;
532
+ capabilities: string[];
533
+ }>;
534
+ declare const datasheetSchema: z.ZodObject<{
535
+ datasheet_id: z.ZodString;
536
+ chip_name: z.ZodString;
537
+ created_at: z.ZodString;
538
+ pin_information: z.ZodNullable<z.ZodArray<z.ZodObject<{
539
+ pin_number: z.ZodString;
540
+ name: z.ZodString;
541
+ description: z.ZodString;
542
+ capabilities: z.ZodArray<z.ZodString, "many">;
543
+ }, "strip", z.ZodTypeAny, {
544
+ name: string;
545
+ description: string;
546
+ pin_number: string;
547
+ capabilities: string[];
548
+ }, {
549
+ name: string;
550
+ description: string;
551
+ pin_number: string;
552
+ capabilities: string[];
553
+ }>, "many">>;
554
+ datasheet_pdf_urls: z.ZodNullable<z.ZodArray<z.ZodString, "many">>;
555
+ }, "strip", z.ZodTypeAny, {
556
+ created_at: string;
557
+ datasheet_id: string;
558
+ chip_name: string;
559
+ pin_information: {
560
+ name: string;
561
+ description: string;
562
+ pin_number: string;
563
+ capabilities: string[];
564
+ }[] | null;
565
+ datasheet_pdf_urls: string[] | null;
566
+ }, {
567
+ created_at: string;
568
+ datasheet_id: string;
569
+ chip_name: string;
570
+ pin_information: {
571
+ name: string;
572
+ description: string;
573
+ pin_number: string;
574
+ capabilities: string[];
575
+ }[] | null;
576
+ datasheet_pdf_urls: string[] | null;
577
+ }>;
578
+ type Datasheet = z.infer<typeof datasheetSchema>;
518
579
  declare const accountSnippetSchema: z.ZodObject<{
519
580
  account_id: z.ZodString;
520
581
  snippet_id: z.ZodString;
@@ -1646,6 +1707,50 @@ declare const databaseSchema: z.ZodObject<{
1646
1707
  display_status: "pending" | "completed" | "failed";
1647
1708
  processing_error?: any;
1648
1709
  }>, "many">>;
1710
+ datasheets: z.ZodDefault<z.ZodArray<z.ZodObject<{
1711
+ datasheet_id: z.ZodString;
1712
+ chip_name: z.ZodString;
1713
+ created_at: z.ZodString;
1714
+ pin_information: z.ZodNullable<z.ZodArray<z.ZodObject<{
1715
+ pin_number: z.ZodString;
1716
+ name: z.ZodString;
1717
+ description: z.ZodString;
1718
+ capabilities: z.ZodArray<z.ZodString, "many">;
1719
+ }, "strip", z.ZodTypeAny, {
1720
+ name: string;
1721
+ description: string;
1722
+ pin_number: string;
1723
+ capabilities: string[];
1724
+ }, {
1725
+ name: string;
1726
+ description: string;
1727
+ pin_number: string;
1728
+ capabilities: string[];
1729
+ }>, "many">>;
1730
+ datasheet_pdf_urls: z.ZodNullable<z.ZodArray<z.ZodString, "many">>;
1731
+ }, "strip", z.ZodTypeAny, {
1732
+ created_at: string;
1733
+ datasheet_id: string;
1734
+ chip_name: string;
1735
+ pin_information: {
1736
+ name: string;
1737
+ description: string;
1738
+ pin_number: string;
1739
+ capabilities: string[];
1740
+ }[] | null;
1741
+ datasheet_pdf_urls: string[] | null;
1742
+ }, {
1743
+ created_at: string;
1744
+ datasheet_id: string;
1745
+ chip_name: string;
1746
+ pin_information: {
1747
+ name: string;
1748
+ description: string;
1749
+ pin_number: string;
1750
+ capabilities: string[];
1751
+ }[] | null;
1752
+ datasheet_pdf_urls: string[] | null;
1753
+ }>, "many">>;
1649
1754
  }, "strip", z.ZodTypeAny, {
1650
1755
  idCounter: number;
1651
1756
  snippets: {
@@ -1893,6 +1998,18 @@ declare const databaseSchema: z.ZodObject<{
1893
1998
  display_status: "pending" | "completed" | "failed";
1894
1999
  processing_error?: any;
1895
2000
  }[];
2001
+ datasheets: {
2002
+ created_at: string;
2003
+ datasheet_id: string;
2004
+ chip_name: string;
2005
+ pin_information: {
2006
+ name: string;
2007
+ description: string;
2008
+ pin_number: string;
2009
+ capabilities: string[];
2010
+ }[] | null;
2011
+ datasheet_pdf_urls: string[] | null;
2012
+ }[];
1896
2013
  }, {
1897
2014
  idCounter?: number | undefined;
1898
2015
  snippets?: {
@@ -2140,7 +2257,19 @@ declare const databaseSchema: z.ZodObject<{
2140
2257
  display_status: "pending" | "completed" | "failed";
2141
2258
  processing_error?: any;
2142
2259
  }[] | undefined;
2260
+ datasheets?: {
2261
+ created_at: string;
2262
+ datasheet_id: string;
2263
+ chip_name: string;
2264
+ pin_information: {
2265
+ name: string;
2266
+ description: string;
2267
+ pin_number: string;
2268
+ capabilities: string[];
2269
+ }[] | null;
2270
+ datasheet_pdf_urls: string[] | null;
2271
+ }[] | undefined;
2143
2272
  }>;
2144
2273
  type DatabaseSchema = z.infer<typeof databaseSchema>;
2145
2274
 
2146
- export { type Account, type AccountPackage, type AccountSnippet, type AiReview, type DatabaseSchema, type JlcpcbOrderState, type JlcpcbOrderStepRun, type LoginPage, type Order, type OrderFile, type OrderQuote, type Package, type PackageFile, type PackageRelease, type QuotedComponent, type Session, type ShippingOption, type Snippet, accountPackageSchema, accountSchema, accountSnippetSchema, aiReviewSchema, databaseSchema, errorResponseSchema, errorSchema, jlcpcbOrderStateSchema, jlcpcbOrderStepRunSchema, loginPageSchema, orderFileSchema, orderQuoteSchema, orderSchema, packageFileSchema, packageReleaseSchema, packageSchema, quotedComponentSchema, sessionSchema, shippingInfoSchema, snippetSchema };
2275
+ export { type Account, type AccountPackage, type AccountSnippet, type AiReview, type DatabaseSchema, type Datasheet, type JlcpcbOrderState, type JlcpcbOrderStepRun, type LoginPage, type Order, type OrderFile, type OrderQuote, type Package, type PackageFile, type PackageRelease, type QuotedComponent, type Session, type ShippingOption, type Snippet, accountPackageSchema, accountSchema, accountSnippetSchema, aiReviewSchema, databaseSchema, datasheetPinInformationSchema, datasheetSchema, errorResponseSchema, errorSchema, jlcpcbOrderStateSchema, jlcpcbOrderStepRunSchema, loginPageSchema, orderFileSchema, orderQuoteSchema, orderSchema, packageFileSchema, packageReleaseSchema, packageSchema, quotedComponentSchema, sessionSchema, shippingInfoSchema, snippetSchema };
package/dist/schema.js CHANGED
@@ -124,6 +124,19 @@ var aiReviewSchema = z.object({
124
124
  created_at: z.string().datetime(),
125
125
  display_status: z.enum(["pending", "completed", "failed"])
126
126
  });
127
+ var datasheetPinInformationSchema = z.object({
128
+ pin_number: z.string(),
129
+ name: z.string(),
130
+ description: z.string(),
131
+ capabilities: z.array(z.string())
132
+ });
133
+ var datasheetSchema = z.object({
134
+ datasheet_id: z.string(),
135
+ chip_name: z.string(),
136
+ created_at: z.string(),
137
+ pin_information: datasheetPinInformationSchema.array().nullable(),
138
+ datasheet_pdf_urls: z.array(z.string()).nullable()
139
+ });
127
140
  var accountSnippetSchema = z.object({
128
141
  account_id: z.string(),
129
142
  snippet_id: z.string(),
@@ -269,7 +282,8 @@ var databaseSchema = z.object({
269
282
  jlcpcbOrderState: z.array(jlcpcbOrderStateSchema).default([]),
270
283
  jlcpcbOrderStepRuns: z.array(jlcpcbOrderStepRunSchema).default([]),
271
284
  orderQuotes: z.array(orderQuoteSchema).default([]),
272
- aiReviews: z.array(aiReviewSchema).default([])
285
+ aiReviews: z.array(aiReviewSchema).default([]),
286
+ datasheets: z.array(datasheetSchema).default([])
273
287
  });
274
288
  export {
275
289
  accountPackageSchema,
@@ -277,6 +291,8 @@ export {
277
291
  accountSnippetSchema,
278
292
  aiReviewSchema,
279
293
  databaseSchema,
294
+ datasheetPinInformationSchema,
295
+ datasheetSchema,
280
296
  errorResponseSchema,
281
297
  errorSchema,
282
298
  jlcpcbOrderStateSchema,
@@ -18,6 +18,8 @@ import {
18
18
  packageReleaseSchema,
19
19
  type AiReview,
20
20
  aiReviewSchema,
21
+ type Datasheet,
22
+ datasheetSchema,
21
23
  type Session,
22
24
  type Snippet,
23
25
  databaseSchema,
@@ -1378,4 +1380,38 @@ const initializer = combine(databaseSchema.parse({}), (set, get) => ({
1378
1380
  const state = get()
1379
1381
  return state.aiReviews
1380
1382
  },
1383
+ addDatasheet: ({ chip_name }: { chip_name: string }): Datasheet => {
1384
+ const newDatasheet = datasheetSchema.parse({
1385
+ datasheet_id: `datasheet_${Date.now()}`,
1386
+ chip_name,
1387
+ created_at: new Date().toISOString(),
1388
+ pin_information: null,
1389
+ datasheet_pdf_urls: null,
1390
+ })
1391
+ set((state) => ({
1392
+ datasheets: [...state.datasheets, newDatasheet],
1393
+ }))
1394
+ return newDatasheet
1395
+ },
1396
+ getDatasheetById: (datasheetId: string): Datasheet | undefined => {
1397
+ const state = get()
1398
+ return state.datasheets.find((d) => d.datasheet_id === datasheetId)
1399
+ },
1400
+ updateDatasheet: (
1401
+ datasheetId: string,
1402
+ updates: Partial<Datasheet>,
1403
+ ): Datasheet | undefined => {
1404
+ let updated: Datasheet | undefined
1405
+ set((state) => {
1406
+ const index = state.datasheets.findIndex(
1407
+ (d) => d.datasheet_id === datasheetId,
1408
+ )
1409
+ if (index === -1) return state
1410
+ const datasheets = [...state.datasheets]
1411
+ datasheets[index] = { ...datasheets[index], ...updates }
1412
+ updated = datasheets[index]
1413
+ return { ...state, datasheets }
1414
+ })
1415
+ return updated
1416
+ },
1381
1417
  }))
@@ -149,6 +149,22 @@ export const aiReviewSchema = z.object({
149
149
  })
150
150
  export type AiReview = z.infer<typeof aiReviewSchema>
151
151
 
152
+ export const datasheetPinInformationSchema = z.object({
153
+ pin_number: z.string(),
154
+ name: z.string(),
155
+ description: z.string(),
156
+ capabilities: z.array(z.string()),
157
+ })
158
+
159
+ export const datasheetSchema = z.object({
160
+ datasheet_id: z.string(),
161
+ chip_name: z.string(),
162
+ created_at: z.string(),
163
+ pin_information: datasheetPinInformationSchema.array().nullable(),
164
+ datasheet_pdf_urls: z.array(z.string()).nullable(),
165
+ })
166
+ export type Datasheet = z.infer<typeof datasheetSchema>
167
+
152
168
  // TODO: Remove this schema after migration to accountPackages is complete
153
169
  export const accountSnippetSchema = z.object({
154
170
  account_id: z.string(),
@@ -326,5 +342,6 @@ export const databaseSchema = z.object({
326
342
  jlcpcbOrderStepRuns: z.array(jlcpcbOrderStepRunSchema).default([]),
327
343
  orderQuotes: z.array(orderQuoteSchema).default([]),
328
344
  aiReviews: z.array(aiReviewSchema).default([]),
345
+ datasheets: z.array(datasheetSchema).default([]),
329
346
  })
330
347
  export type DatabaseSchema = z.infer<typeof databaseSchema>
@@ -0,0 +1,37 @@
1
+ import { datasheetSchema } from "fake-snippets-api/lib/db/schema"
2
+ import { withRouteSpec } from "fake-snippets-api/lib/middleware/with-winter-spec"
3
+ import { z } from "zod"
4
+
5
+ export const processAllDatasheets = (ctx: any) => {
6
+ const processed = [] as z.infer<typeof datasheetSchema>[]
7
+ ctx.db.datasheets.forEach((ds: any) => {
8
+ if (!ds.pin_information || !ds.datasheet_pdf_urls) {
9
+ const updated = ctx.db.updateDatasheet(ds.datasheet_id, {
10
+ pin_information: [
11
+ {
12
+ pin_number: "1",
13
+ name: "PIN1",
14
+ description: "Placeholder pin",
15
+ capabilities: ["digital"],
16
+ },
17
+ ],
18
+ datasheet_pdf_urls: ["https://example.com/datasheet.pdf"],
19
+ })
20
+ processed.push(updated!)
21
+ } else {
22
+ processed.push(ds)
23
+ }
24
+ })
25
+ return processed
26
+ }
27
+
28
+ export default withRouteSpec({
29
+ methods: ["POST"],
30
+ auth: "none",
31
+ jsonResponse: z.object({
32
+ datasheets: datasheetSchema.array(),
33
+ }),
34
+ })(async (req, ctx) => {
35
+ const datasheets = processAllDatasheets(ctx)
36
+ return ctx.json({ datasheets })
37
+ })
@@ -0,0 +1,12 @@
1
+ import { withRouteSpec } from "fake-snippets-api/lib/middleware/with-winter-spec"
2
+ import { z } from "zod"
3
+ import { processAllDatasheets } from "./datasheets/process_all_datasheets"
4
+
5
+ export default withRouteSpec({
6
+ methods: ["GET"],
7
+ auth: "none",
8
+ jsonResponse: z.object({ ok: z.boolean() }),
9
+ })(async (req, ctx) => {
10
+ processAllDatasheets(ctx)
11
+ return ctx.json({ ok: true })
12
+ })
@@ -0,0 +1,18 @@
1
+ import { datasheetSchema } from "fake-snippets-api/lib/db/schema"
2
+ import { withRouteSpec } from "fake-snippets-api/lib/middleware/with-winter-spec"
3
+ import { z } from "zod"
4
+
5
+ export default withRouteSpec({
6
+ methods: ["POST"],
7
+ auth: "session",
8
+ jsonBody: z.object({
9
+ chip_name: z.string(),
10
+ }),
11
+ jsonResponse: z.object({
12
+ datasheet: datasheetSchema,
13
+ }),
14
+ })(async (req, ctx) => {
15
+ const { chip_name } = req.jsonBody
16
+ const datasheet = ctx.db.addDatasheet({ chip_name })
17
+ return ctx.json({ datasheet })
18
+ })
@@ -0,0 +1,25 @@
1
+ import { datasheetSchema } from "fake-snippets-api/lib/db/schema"
2
+ import { withRouteSpec } from "fake-snippets-api/lib/middleware/with-winter-spec"
3
+ import { z } from "zod"
4
+
5
+ export default withRouteSpec({
6
+ methods: ["GET", "POST"],
7
+ auth: "session",
8
+ queryParams: z.object({
9
+ datasheet_id: z.string(),
10
+ }),
11
+ jsonBody: z.any().optional(),
12
+ jsonResponse: z.object({
13
+ datasheet: datasheetSchema,
14
+ }),
15
+ })(async (req, ctx) => {
16
+ const { datasheet_id } = req.query
17
+ const datasheet = ctx.db.getDatasheetById(datasheet_id)
18
+ if (!datasheet) {
19
+ return ctx.error(404, {
20
+ error_code: "datasheet_not_found",
21
+ message: "Datasheet not found",
22
+ })
23
+ }
24
+ return ctx.json({ datasheet })
25
+ })
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tscircuit/fake-snippets",
3
- "version": "0.0.84",
3
+ "version": "0.0.85",
4
4
  "type": "module",
5
5
  "repository": {
6
6
  "type": "git",