@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/bun-tests/fake-snippets-api/routes/datasheets/create.test.ts +15 -0
- package/bun-tests/fake-snippets-api/routes/datasheets/get.test.ts +17 -0
- package/bun-tests/fake-snippets-api/routes/datasheets/process_all_datasheets.test.ts +21 -0
- package/bun-tests/fake-snippets-api/routes/datasheets/run_async_tasks.test.ts +18 -0
- package/dist/bundle.js +558 -421
- package/dist/index.d.ts +81 -2
- package/dist/index.js +46 -1
- package/dist/schema.d.ts +130 -1
- package/dist/schema.js +17 -1
- package/fake-snippets-api/lib/db/db-client.ts +36 -0
- package/fake-snippets-api/lib/db/schema.ts +17 -0
- package/fake-snippets-api/routes/api/_fake/datasheets/process_all_datasheets.ts +37 -0
- package/fake-snippets-api/routes/api/_fake/run_async_tasks.ts +12 -0
- package/fake-snippets-api/routes/api/datasheets/create.ts +18 -0
- package/fake-snippets-api/routes/api/datasheets/get.ts +25 -0
- package/package.json +1 -1
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
|
-
|
|
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
|
-
|
|
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
|
+
})
|