truecourse 0.1.0

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 (31) hide show
  1. package/cli.mjs +3886 -0
  2. package/db/migrations/0000_daily_paper_doll.sql +82 -0
  3. package/db/migrations/meta/0000_snapshot.json +569 -0
  4. package/db/migrations/meta/_journal.json +13 -0
  5. package/package.json +34 -0
  6. package/public/404.html +12 -0
  7. package/public/_next/static/chunks/414-8318b3e90e55d32a.js +1 -0
  8. package/public/_next/static/chunks/597-63908a91b482ecc2.js +1 -0
  9. package/public/_next/static/chunks/7273c211-8e9085ce5065411a.js +1 -0
  10. package/public/_next/static/chunks/728-8bf3f63c2116a9f4.js +1 -0
  11. package/public/_next/static/chunks/a51c26f2-7912c8e37f20294d.js +1 -0
  12. package/public/_next/static/chunks/app/_not-found/page-fa912e0095c03faf.js +1 -0
  13. package/public/_next/static/chunks/app/layout-8b7c9093ed7416a9.js +1 -0
  14. package/public/_next/static/chunks/app/page-a584f9a9455d99db.js +1 -0
  15. package/public/_next/static/chunks/app/repos/[[...slug]]/page-e5fdcbd6e95a0351.js +1 -0
  16. package/public/_next/static/chunks/framework-cd8a7ea2c29e04e3.js +1 -0
  17. package/public/_next/static/chunks/main-75f848718c47ce7f.js +1 -0
  18. package/public/_next/static/chunks/main-app-6713e5440a400899.js +1 -0
  19. package/public/_next/static/chunks/pages/_app-cbca4c5e73429fb7.js +1 -0
  20. package/public/_next/static/chunks/pages/_error-b3f1a96c07a42193.js +1 -0
  21. package/public/_next/static/chunks/polyfills-42372ed130431b0a.js +1 -0
  22. package/public/_next/static/chunks/webpack-2f0ed87fd33e9d1c.js +1 -0
  23. package/public/_next/static/css/2de88e1f79a8a35f.css +1 -0
  24. package/public/_next/static/css/599369d853c61df7.css +31 -0
  25. package/public/_next/static/jBjG46wvKRKD4-YnOkixD/_buildManifest.js +1 -0
  26. package/public/_next/static/jBjG46wvKRKD4-YnOkixD/_ssgManifest.js +1 -0
  27. package/public/index.html +12 -0
  28. package/public/index.txt +19 -0
  29. package/public/repos.html +1 -0
  30. package/public/repos.txt +17 -0
  31. package/server.mjs +107306 -0
@@ -0,0 +1,82 @@
1
+ CREATE TABLE "analyses" (
2
+ "id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
3
+ "repo_id" uuid NOT NULL,
4
+ "branch" text,
5
+ "architecture" text NOT NULL,
6
+ "metadata" jsonb,
7
+ "node_positions" jsonb,
8
+ "created_at" timestamp DEFAULT now() NOT NULL
9
+ );
10
+ --> statement-breakpoint
11
+ CREATE TABLE "conversations" (
12
+ "id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
13
+ "repo_id" uuid NOT NULL,
14
+ "branch" text,
15
+ "created_at" timestamp DEFAULT now() NOT NULL,
16
+ "updated_at" timestamp DEFAULT now() NOT NULL
17
+ );
18
+ --> statement-breakpoint
19
+ CREATE TABLE "insights" (
20
+ "id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
21
+ "repo_id" uuid NOT NULL,
22
+ "analysis_id" uuid NOT NULL,
23
+ "type" text NOT NULL,
24
+ "title" text NOT NULL,
25
+ "content" text NOT NULL,
26
+ "severity" text NOT NULL,
27
+ "target_service_id" uuid,
28
+ "fix_prompt" text,
29
+ "created_at" timestamp DEFAULT now() NOT NULL
30
+ );
31
+ --> statement-breakpoint
32
+ CREATE TABLE "messages" (
33
+ "id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
34
+ "conversation_id" uuid NOT NULL,
35
+ "role" text NOT NULL,
36
+ "content" text NOT NULL,
37
+ "node_context" jsonb,
38
+ "created_at" timestamp DEFAULT now() NOT NULL
39
+ );
40
+ --> statement-breakpoint
41
+ CREATE TABLE "repos" (
42
+ "id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
43
+ "name" text NOT NULL,
44
+ "path" text NOT NULL,
45
+ "last_analyzed_at" timestamp,
46
+ "created_at" timestamp DEFAULT now() NOT NULL,
47
+ "updated_at" timestamp DEFAULT now() NOT NULL,
48
+ CONSTRAINT "repos_path_unique" UNIQUE("path")
49
+ );
50
+ --> statement-breakpoint
51
+ CREATE TABLE "service_dependencies" (
52
+ "id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
53
+ "analysis_id" uuid NOT NULL,
54
+ "source_service_id" uuid NOT NULL,
55
+ "target_service_id" uuid NOT NULL,
56
+ "dependency_count" integer,
57
+ "dependency_type" text
58
+ );
59
+ --> statement-breakpoint
60
+ CREATE TABLE "services" (
61
+ "id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
62
+ "analysis_id" uuid NOT NULL,
63
+ "name" text NOT NULL,
64
+ "root_path" text NOT NULL,
65
+ "type" text NOT NULL,
66
+ "framework" text,
67
+ "file_count" integer,
68
+ "description" text,
69
+ "layer_summary" jsonb,
70
+ "created_at" timestamp DEFAULT now() NOT NULL
71
+ );
72
+ --> statement-breakpoint
73
+ ALTER TABLE "analyses" ADD CONSTRAINT "analyses_repo_id_repos_id_fk" FOREIGN KEY ("repo_id") REFERENCES "public"."repos"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
74
+ ALTER TABLE "conversations" ADD CONSTRAINT "conversations_repo_id_repos_id_fk" FOREIGN KEY ("repo_id") REFERENCES "public"."repos"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
75
+ ALTER TABLE "insights" ADD CONSTRAINT "insights_repo_id_repos_id_fk" FOREIGN KEY ("repo_id") REFERENCES "public"."repos"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
76
+ ALTER TABLE "insights" ADD CONSTRAINT "insights_analysis_id_analyses_id_fk" FOREIGN KEY ("analysis_id") REFERENCES "public"."analyses"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
77
+ ALTER TABLE "insights" ADD CONSTRAINT "insights_target_service_id_services_id_fk" FOREIGN KEY ("target_service_id") REFERENCES "public"."services"("id") ON DELETE set null ON UPDATE no action;--> statement-breakpoint
78
+ ALTER TABLE "messages" ADD CONSTRAINT "messages_conversation_id_conversations_id_fk" FOREIGN KEY ("conversation_id") REFERENCES "public"."conversations"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
79
+ ALTER TABLE "service_dependencies" ADD CONSTRAINT "service_dependencies_analysis_id_analyses_id_fk" FOREIGN KEY ("analysis_id") REFERENCES "public"."analyses"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
80
+ ALTER TABLE "service_dependencies" ADD CONSTRAINT "service_dependencies_source_service_id_services_id_fk" FOREIGN KEY ("source_service_id") REFERENCES "public"."services"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
81
+ ALTER TABLE "service_dependencies" ADD CONSTRAINT "service_dependencies_target_service_id_services_id_fk" FOREIGN KEY ("target_service_id") REFERENCES "public"."services"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
82
+ ALTER TABLE "services" ADD CONSTRAINT "services_analysis_id_analyses_id_fk" FOREIGN KEY ("analysis_id") REFERENCES "public"."analyses"("id") ON DELETE cascade ON UPDATE no action;
@@ -0,0 +1,569 @@
1
+ {
2
+ "id": "87f88294-7ce5-4a9c-9fd8-15117f103630",
3
+ "prevId": "00000000-0000-0000-0000-000000000000",
4
+ "version": "7",
5
+ "dialect": "postgresql",
6
+ "tables": {
7
+ "public.analyses": {
8
+ "name": "analyses",
9
+ "schema": "",
10
+ "columns": {
11
+ "id": {
12
+ "name": "id",
13
+ "type": "uuid",
14
+ "primaryKey": true,
15
+ "notNull": true,
16
+ "default": "gen_random_uuid()"
17
+ },
18
+ "repo_id": {
19
+ "name": "repo_id",
20
+ "type": "uuid",
21
+ "primaryKey": false,
22
+ "notNull": true
23
+ },
24
+ "branch": {
25
+ "name": "branch",
26
+ "type": "text",
27
+ "primaryKey": false,
28
+ "notNull": false
29
+ },
30
+ "architecture": {
31
+ "name": "architecture",
32
+ "type": "text",
33
+ "primaryKey": false,
34
+ "notNull": true
35
+ },
36
+ "metadata": {
37
+ "name": "metadata",
38
+ "type": "jsonb",
39
+ "primaryKey": false,
40
+ "notNull": false
41
+ },
42
+ "node_positions": {
43
+ "name": "node_positions",
44
+ "type": "jsonb",
45
+ "primaryKey": false,
46
+ "notNull": false
47
+ },
48
+ "created_at": {
49
+ "name": "created_at",
50
+ "type": "timestamp",
51
+ "primaryKey": false,
52
+ "notNull": true,
53
+ "default": "now()"
54
+ }
55
+ },
56
+ "indexes": {},
57
+ "foreignKeys": {
58
+ "analyses_repo_id_repos_id_fk": {
59
+ "name": "analyses_repo_id_repos_id_fk",
60
+ "tableFrom": "analyses",
61
+ "tableTo": "repos",
62
+ "columnsFrom": [
63
+ "repo_id"
64
+ ],
65
+ "columnsTo": [
66
+ "id"
67
+ ],
68
+ "onDelete": "cascade",
69
+ "onUpdate": "no action"
70
+ }
71
+ },
72
+ "compositePrimaryKeys": {},
73
+ "uniqueConstraints": {},
74
+ "policies": {},
75
+ "checkConstraints": {},
76
+ "isRLSEnabled": false
77
+ },
78
+ "public.conversations": {
79
+ "name": "conversations",
80
+ "schema": "",
81
+ "columns": {
82
+ "id": {
83
+ "name": "id",
84
+ "type": "uuid",
85
+ "primaryKey": true,
86
+ "notNull": true,
87
+ "default": "gen_random_uuid()"
88
+ },
89
+ "repo_id": {
90
+ "name": "repo_id",
91
+ "type": "uuid",
92
+ "primaryKey": false,
93
+ "notNull": true
94
+ },
95
+ "branch": {
96
+ "name": "branch",
97
+ "type": "text",
98
+ "primaryKey": false,
99
+ "notNull": false
100
+ },
101
+ "created_at": {
102
+ "name": "created_at",
103
+ "type": "timestamp",
104
+ "primaryKey": false,
105
+ "notNull": true,
106
+ "default": "now()"
107
+ },
108
+ "updated_at": {
109
+ "name": "updated_at",
110
+ "type": "timestamp",
111
+ "primaryKey": false,
112
+ "notNull": true,
113
+ "default": "now()"
114
+ }
115
+ },
116
+ "indexes": {},
117
+ "foreignKeys": {
118
+ "conversations_repo_id_repos_id_fk": {
119
+ "name": "conversations_repo_id_repos_id_fk",
120
+ "tableFrom": "conversations",
121
+ "tableTo": "repos",
122
+ "columnsFrom": [
123
+ "repo_id"
124
+ ],
125
+ "columnsTo": [
126
+ "id"
127
+ ],
128
+ "onDelete": "cascade",
129
+ "onUpdate": "no action"
130
+ }
131
+ },
132
+ "compositePrimaryKeys": {},
133
+ "uniqueConstraints": {},
134
+ "policies": {},
135
+ "checkConstraints": {},
136
+ "isRLSEnabled": false
137
+ },
138
+ "public.insights": {
139
+ "name": "insights",
140
+ "schema": "",
141
+ "columns": {
142
+ "id": {
143
+ "name": "id",
144
+ "type": "uuid",
145
+ "primaryKey": true,
146
+ "notNull": true,
147
+ "default": "gen_random_uuid()"
148
+ },
149
+ "repo_id": {
150
+ "name": "repo_id",
151
+ "type": "uuid",
152
+ "primaryKey": false,
153
+ "notNull": true
154
+ },
155
+ "analysis_id": {
156
+ "name": "analysis_id",
157
+ "type": "uuid",
158
+ "primaryKey": false,
159
+ "notNull": true
160
+ },
161
+ "type": {
162
+ "name": "type",
163
+ "type": "text",
164
+ "primaryKey": false,
165
+ "notNull": true
166
+ },
167
+ "title": {
168
+ "name": "title",
169
+ "type": "text",
170
+ "primaryKey": false,
171
+ "notNull": true
172
+ },
173
+ "content": {
174
+ "name": "content",
175
+ "type": "text",
176
+ "primaryKey": false,
177
+ "notNull": true
178
+ },
179
+ "severity": {
180
+ "name": "severity",
181
+ "type": "text",
182
+ "primaryKey": false,
183
+ "notNull": true
184
+ },
185
+ "target_service_id": {
186
+ "name": "target_service_id",
187
+ "type": "uuid",
188
+ "primaryKey": false,
189
+ "notNull": false
190
+ },
191
+ "fix_prompt": {
192
+ "name": "fix_prompt",
193
+ "type": "text",
194
+ "primaryKey": false,
195
+ "notNull": false
196
+ },
197
+ "created_at": {
198
+ "name": "created_at",
199
+ "type": "timestamp",
200
+ "primaryKey": false,
201
+ "notNull": true,
202
+ "default": "now()"
203
+ }
204
+ },
205
+ "indexes": {},
206
+ "foreignKeys": {
207
+ "insights_repo_id_repos_id_fk": {
208
+ "name": "insights_repo_id_repos_id_fk",
209
+ "tableFrom": "insights",
210
+ "tableTo": "repos",
211
+ "columnsFrom": [
212
+ "repo_id"
213
+ ],
214
+ "columnsTo": [
215
+ "id"
216
+ ],
217
+ "onDelete": "cascade",
218
+ "onUpdate": "no action"
219
+ },
220
+ "insights_analysis_id_analyses_id_fk": {
221
+ "name": "insights_analysis_id_analyses_id_fk",
222
+ "tableFrom": "insights",
223
+ "tableTo": "analyses",
224
+ "columnsFrom": [
225
+ "analysis_id"
226
+ ],
227
+ "columnsTo": [
228
+ "id"
229
+ ],
230
+ "onDelete": "cascade",
231
+ "onUpdate": "no action"
232
+ },
233
+ "insights_target_service_id_services_id_fk": {
234
+ "name": "insights_target_service_id_services_id_fk",
235
+ "tableFrom": "insights",
236
+ "tableTo": "services",
237
+ "columnsFrom": [
238
+ "target_service_id"
239
+ ],
240
+ "columnsTo": [
241
+ "id"
242
+ ],
243
+ "onDelete": "set null",
244
+ "onUpdate": "no action"
245
+ }
246
+ },
247
+ "compositePrimaryKeys": {},
248
+ "uniqueConstraints": {},
249
+ "policies": {},
250
+ "checkConstraints": {},
251
+ "isRLSEnabled": false
252
+ },
253
+ "public.messages": {
254
+ "name": "messages",
255
+ "schema": "",
256
+ "columns": {
257
+ "id": {
258
+ "name": "id",
259
+ "type": "uuid",
260
+ "primaryKey": true,
261
+ "notNull": true,
262
+ "default": "gen_random_uuid()"
263
+ },
264
+ "conversation_id": {
265
+ "name": "conversation_id",
266
+ "type": "uuid",
267
+ "primaryKey": false,
268
+ "notNull": true
269
+ },
270
+ "role": {
271
+ "name": "role",
272
+ "type": "text",
273
+ "primaryKey": false,
274
+ "notNull": true
275
+ },
276
+ "content": {
277
+ "name": "content",
278
+ "type": "text",
279
+ "primaryKey": false,
280
+ "notNull": true
281
+ },
282
+ "node_context": {
283
+ "name": "node_context",
284
+ "type": "jsonb",
285
+ "primaryKey": false,
286
+ "notNull": false
287
+ },
288
+ "created_at": {
289
+ "name": "created_at",
290
+ "type": "timestamp",
291
+ "primaryKey": false,
292
+ "notNull": true,
293
+ "default": "now()"
294
+ }
295
+ },
296
+ "indexes": {},
297
+ "foreignKeys": {
298
+ "messages_conversation_id_conversations_id_fk": {
299
+ "name": "messages_conversation_id_conversations_id_fk",
300
+ "tableFrom": "messages",
301
+ "tableTo": "conversations",
302
+ "columnsFrom": [
303
+ "conversation_id"
304
+ ],
305
+ "columnsTo": [
306
+ "id"
307
+ ],
308
+ "onDelete": "cascade",
309
+ "onUpdate": "no action"
310
+ }
311
+ },
312
+ "compositePrimaryKeys": {},
313
+ "uniqueConstraints": {},
314
+ "policies": {},
315
+ "checkConstraints": {},
316
+ "isRLSEnabled": false
317
+ },
318
+ "public.repos": {
319
+ "name": "repos",
320
+ "schema": "",
321
+ "columns": {
322
+ "id": {
323
+ "name": "id",
324
+ "type": "uuid",
325
+ "primaryKey": true,
326
+ "notNull": true,
327
+ "default": "gen_random_uuid()"
328
+ },
329
+ "name": {
330
+ "name": "name",
331
+ "type": "text",
332
+ "primaryKey": false,
333
+ "notNull": true
334
+ },
335
+ "path": {
336
+ "name": "path",
337
+ "type": "text",
338
+ "primaryKey": false,
339
+ "notNull": true
340
+ },
341
+ "last_analyzed_at": {
342
+ "name": "last_analyzed_at",
343
+ "type": "timestamp",
344
+ "primaryKey": false,
345
+ "notNull": false
346
+ },
347
+ "created_at": {
348
+ "name": "created_at",
349
+ "type": "timestamp",
350
+ "primaryKey": false,
351
+ "notNull": true,
352
+ "default": "now()"
353
+ },
354
+ "updated_at": {
355
+ "name": "updated_at",
356
+ "type": "timestamp",
357
+ "primaryKey": false,
358
+ "notNull": true,
359
+ "default": "now()"
360
+ }
361
+ },
362
+ "indexes": {},
363
+ "foreignKeys": {},
364
+ "compositePrimaryKeys": {},
365
+ "uniqueConstraints": {
366
+ "repos_path_unique": {
367
+ "name": "repos_path_unique",
368
+ "nullsNotDistinct": false,
369
+ "columns": [
370
+ "path"
371
+ ]
372
+ }
373
+ },
374
+ "policies": {},
375
+ "checkConstraints": {},
376
+ "isRLSEnabled": false
377
+ },
378
+ "public.service_dependencies": {
379
+ "name": "service_dependencies",
380
+ "schema": "",
381
+ "columns": {
382
+ "id": {
383
+ "name": "id",
384
+ "type": "uuid",
385
+ "primaryKey": true,
386
+ "notNull": true,
387
+ "default": "gen_random_uuid()"
388
+ },
389
+ "analysis_id": {
390
+ "name": "analysis_id",
391
+ "type": "uuid",
392
+ "primaryKey": false,
393
+ "notNull": true
394
+ },
395
+ "source_service_id": {
396
+ "name": "source_service_id",
397
+ "type": "uuid",
398
+ "primaryKey": false,
399
+ "notNull": true
400
+ },
401
+ "target_service_id": {
402
+ "name": "target_service_id",
403
+ "type": "uuid",
404
+ "primaryKey": false,
405
+ "notNull": true
406
+ },
407
+ "dependency_count": {
408
+ "name": "dependency_count",
409
+ "type": "integer",
410
+ "primaryKey": false,
411
+ "notNull": false
412
+ },
413
+ "dependency_type": {
414
+ "name": "dependency_type",
415
+ "type": "text",
416
+ "primaryKey": false,
417
+ "notNull": false
418
+ }
419
+ },
420
+ "indexes": {},
421
+ "foreignKeys": {
422
+ "service_dependencies_analysis_id_analyses_id_fk": {
423
+ "name": "service_dependencies_analysis_id_analyses_id_fk",
424
+ "tableFrom": "service_dependencies",
425
+ "tableTo": "analyses",
426
+ "columnsFrom": [
427
+ "analysis_id"
428
+ ],
429
+ "columnsTo": [
430
+ "id"
431
+ ],
432
+ "onDelete": "cascade",
433
+ "onUpdate": "no action"
434
+ },
435
+ "service_dependencies_source_service_id_services_id_fk": {
436
+ "name": "service_dependencies_source_service_id_services_id_fk",
437
+ "tableFrom": "service_dependencies",
438
+ "tableTo": "services",
439
+ "columnsFrom": [
440
+ "source_service_id"
441
+ ],
442
+ "columnsTo": [
443
+ "id"
444
+ ],
445
+ "onDelete": "cascade",
446
+ "onUpdate": "no action"
447
+ },
448
+ "service_dependencies_target_service_id_services_id_fk": {
449
+ "name": "service_dependencies_target_service_id_services_id_fk",
450
+ "tableFrom": "service_dependencies",
451
+ "tableTo": "services",
452
+ "columnsFrom": [
453
+ "target_service_id"
454
+ ],
455
+ "columnsTo": [
456
+ "id"
457
+ ],
458
+ "onDelete": "cascade",
459
+ "onUpdate": "no action"
460
+ }
461
+ },
462
+ "compositePrimaryKeys": {},
463
+ "uniqueConstraints": {},
464
+ "policies": {},
465
+ "checkConstraints": {},
466
+ "isRLSEnabled": false
467
+ },
468
+ "public.services": {
469
+ "name": "services",
470
+ "schema": "",
471
+ "columns": {
472
+ "id": {
473
+ "name": "id",
474
+ "type": "uuid",
475
+ "primaryKey": true,
476
+ "notNull": true,
477
+ "default": "gen_random_uuid()"
478
+ },
479
+ "analysis_id": {
480
+ "name": "analysis_id",
481
+ "type": "uuid",
482
+ "primaryKey": false,
483
+ "notNull": true
484
+ },
485
+ "name": {
486
+ "name": "name",
487
+ "type": "text",
488
+ "primaryKey": false,
489
+ "notNull": true
490
+ },
491
+ "root_path": {
492
+ "name": "root_path",
493
+ "type": "text",
494
+ "primaryKey": false,
495
+ "notNull": true
496
+ },
497
+ "type": {
498
+ "name": "type",
499
+ "type": "text",
500
+ "primaryKey": false,
501
+ "notNull": true
502
+ },
503
+ "framework": {
504
+ "name": "framework",
505
+ "type": "text",
506
+ "primaryKey": false,
507
+ "notNull": false
508
+ },
509
+ "file_count": {
510
+ "name": "file_count",
511
+ "type": "integer",
512
+ "primaryKey": false,
513
+ "notNull": false
514
+ },
515
+ "description": {
516
+ "name": "description",
517
+ "type": "text",
518
+ "primaryKey": false,
519
+ "notNull": false
520
+ },
521
+ "layer_summary": {
522
+ "name": "layer_summary",
523
+ "type": "jsonb",
524
+ "primaryKey": false,
525
+ "notNull": false
526
+ },
527
+ "created_at": {
528
+ "name": "created_at",
529
+ "type": "timestamp",
530
+ "primaryKey": false,
531
+ "notNull": true,
532
+ "default": "now()"
533
+ }
534
+ },
535
+ "indexes": {},
536
+ "foreignKeys": {
537
+ "services_analysis_id_analyses_id_fk": {
538
+ "name": "services_analysis_id_analyses_id_fk",
539
+ "tableFrom": "services",
540
+ "tableTo": "analyses",
541
+ "columnsFrom": [
542
+ "analysis_id"
543
+ ],
544
+ "columnsTo": [
545
+ "id"
546
+ ],
547
+ "onDelete": "cascade",
548
+ "onUpdate": "no action"
549
+ }
550
+ },
551
+ "compositePrimaryKeys": {},
552
+ "uniqueConstraints": {},
553
+ "policies": {},
554
+ "checkConstraints": {},
555
+ "isRLSEnabled": false
556
+ }
557
+ },
558
+ "enums": {},
559
+ "schemas": {},
560
+ "sequences": {},
561
+ "roles": {},
562
+ "policies": {},
563
+ "views": {},
564
+ "_meta": {
565
+ "columns": {},
566
+ "schemas": {},
567
+ "tables": {}
568
+ }
569
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "version": "7",
3
+ "dialect": "postgresql",
4
+ "entries": [
5
+ {
6
+ "idx": 0,
7
+ "version": "7",
8
+ "when": 1773441480658,
9
+ "tag": "0000_daily_paper_doll",
10
+ "breakpoints": true
11
+ }
12
+ ]
13
+ }
package/package.json ADDED
@@ -0,0 +1,34 @@
1
+ {
2
+ "name": "truecourse",
3
+ "version": "0.1.0",
4
+ "description": "Visualize your codebase architecture as an interactive graph",
5
+ "type": "module",
6
+ "bin": {
7
+ "truecourse": "./cli.mjs"
8
+ },
9
+ "engines": {
10
+ "node": ">=20"
11
+ },
12
+ "dependencies": {
13
+ "tree-sitter": "^0.21.1",
14
+ "tree-sitter-typescript": "^0.21.2",
15
+ "tree-sitter-javascript": "^0.21.4",
16
+ "embedded-postgres": "18.3.0-beta.16",
17
+ "dotenv": "^16.4.0",
18
+ "postgres": "^3.4.0",
19
+ "commander": "^12.1.0",
20
+ "@clack/prompts": "^0.9.0"
21
+ },
22
+ "license": "MIT",
23
+ "repository": {
24
+ "type": "git",
25
+ "url": "https://github.com/specmind/truecourse"
26
+ },
27
+ "keywords": [
28
+ "codebase",
29
+ "architecture",
30
+ "visualization",
31
+ "graph",
32
+ "tree-sitter"
33
+ ]
34
+ }