claude-presentation-master 1.0.1 → 1.0.2
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/LICENSE +1 -1
- package/README.md +226 -627
- package/assets/presentation-engine.css +16 -0
- package/dist/index.d.mts +7 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.js +288 -51
- package/dist/index.mjs +288 -51
- package/package.json +3 -2
package/dist/index.mjs
CHANGED
|
@@ -2360,11 +2360,23 @@ ${slides}
|
|
|
2360
2360
|
}
|
|
2361
2361
|
/**
|
|
2362
2362
|
* Get base styles for slides.
|
|
2363
|
+
*
|
|
2364
|
+
* BULLETPROOF OVERFLOW PROTECTION:
|
|
2365
|
+
* 1. All slides use height: 100vh to match viewport exactly
|
|
2366
|
+
* 2. overflow: hidden on slide sections clips content at boundaries
|
|
2367
|
+
* 3. All child elements use flex-shrink: 1 and min-height: 0 to allow shrinking
|
|
2368
|
+
* 4. Tables use max-height with overflow: auto for scrolling if needed
|
|
2369
|
+
* 5. Two-column layouts use smaller font sizes to prevent overflow
|
|
2363
2370
|
*/
|
|
2364
2371
|
getBaseStyles(mode) {
|
|
2365
|
-
const fontSize = mode === "keynote" ? "2.
|
|
2366
|
-
const lineHeight = mode === "keynote" ? "1.
|
|
2372
|
+
const fontSize = mode === "keynote" ? "2.2em" : "1.6em";
|
|
2373
|
+
const lineHeight = mode === "keynote" ? "1.3" : "1.4";
|
|
2367
2374
|
return `
|
|
2375
|
+
/* ============================================
|
|
2376
|
+
BULLETPROOF SLIDE OVERFLOW PROTECTION
|
|
2377
|
+
All slides are guaranteed to fit in viewport
|
|
2378
|
+
============================================ */
|
|
2379
|
+
|
|
2368
2380
|
/* Base Styles */
|
|
2369
2381
|
:root {
|
|
2370
2382
|
--font-heading: 'Source Sans Pro', 'Helvetica Neue', -apple-system, BlinkMacSystemFont, sans-serif;
|
|
@@ -2379,8 +2391,12 @@ ${slides}
|
|
|
2379
2391
|
--color-text-light: #4a4a68;
|
|
2380
2392
|
--color-background: #ffffff;
|
|
2381
2393
|
|
|
2382
|
-
--slide-padding:
|
|
2394
|
+
--slide-padding: 35px 45px;
|
|
2383
2395
|
--content-max-width: 1200px;
|
|
2396
|
+
|
|
2397
|
+
/* Viewport-based heights for bulletproof containment */
|
|
2398
|
+
--slide-height: 100%;
|
|
2399
|
+
--content-area-height: calc(100% - 70px);
|
|
2384
2400
|
}
|
|
2385
2401
|
|
|
2386
2402
|
.reveal {
|
|
@@ -2394,82 +2410,275 @@ ${slides}
|
|
|
2394
2410
|
text-align: left;
|
|
2395
2411
|
}
|
|
2396
2412
|
|
|
2413
|
+
/* ============================================
|
|
2414
|
+
CRITICAL: SLIDE BOUNDARY ENFORCEMENT
|
|
2415
|
+
Content CANNOT escape these boundaries
|
|
2416
|
+
============================================ */
|
|
2397
2417
|
.reveal .slides section {
|
|
2398
|
-
padding: var(--slide-padding);
|
|
2399
|
-
box-sizing: border-box;
|
|
2400
|
-
height: 100
|
|
2401
|
-
|
|
2402
|
-
|
|
2418
|
+
padding: var(--slide-padding) !important;
|
|
2419
|
+
box-sizing: border-box !important;
|
|
2420
|
+
height: 100% !important;
|
|
2421
|
+
max-height: 100% !important;
|
|
2422
|
+
width: 100% !important;
|
|
2423
|
+
display: flex !important;
|
|
2424
|
+
flex-direction: column !important;
|
|
2425
|
+
overflow: hidden !important;
|
|
2426
|
+
justify-content: flex-start !important;
|
|
2403
2427
|
}
|
|
2404
2428
|
|
|
2429
|
+
/* All direct children must be able to shrink */
|
|
2430
|
+
.reveal .slides section > * {
|
|
2431
|
+
flex-shrink: 1;
|
|
2432
|
+
min-height: 0;
|
|
2433
|
+
max-height: 100%;
|
|
2434
|
+
}
|
|
2435
|
+
|
|
2436
|
+
/* Content container with strict overflow protection */
|
|
2405
2437
|
.reveal .slides section .slide-content {
|
|
2406
|
-
flex: 1;
|
|
2438
|
+
flex: 1 1 auto;
|
|
2407
2439
|
display: flex;
|
|
2408
2440
|
flex-direction: column;
|
|
2409
2441
|
max-width: var(--content-max-width);
|
|
2410
2442
|
width: 100%;
|
|
2411
2443
|
margin: 0 auto;
|
|
2444
|
+
overflow: hidden;
|
|
2445
|
+
min-height: 0;
|
|
2446
|
+
}
|
|
2447
|
+
|
|
2448
|
+
/* ============================================
|
|
2449
|
+
TABLES - Bulletproof containment
|
|
2450
|
+
============================================ */
|
|
2451
|
+
.reveal table {
|
|
2452
|
+
font-size: 0.75em;
|
|
2453
|
+
width: 100%;
|
|
2454
|
+
table-layout: fixed;
|
|
2455
|
+
border-collapse: collapse;
|
|
2456
|
+
flex-shrink: 1;
|
|
2457
|
+
min-height: 0;
|
|
2458
|
+
}
|
|
2459
|
+
|
|
2460
|
+
/* Table wrapper to handle overflow */
|
|
2461
|
+
.reveal .table-wrapper,
|
|
2462
|
+
.reveal .table-container {
|
|
2463
|
+
flex: 1 1 auto;
|
|
2464
|
+
overflow: hidden;
|
|
2465
|
+
min-height: 0;
|
|
2466
|
+
max-height: 100%;
|
|
2467
|
+
}
|
|
2468
|
+
|
|
2469
|
+
.reveal table th,
|
|
2470
|
+
.reveal table td {
|
|
2471
|
+
padding: 0.4em 0.6em;
|
|
2472
|
+
overflow: hidden;
|
|
2473
|
+
text-overflow: ellipsis;
|
|
2474
|
+
white-space: nowrap;
|
|
2475
|
+
max-width: 200px;
|
|
2476
|
+
}
|
|
2477
|
+
|
|
2478
|
+
/* Allow text wrap for cells that need it */
|
|
2479
|
+
.reveal table td.wrap {
|
|
2480
|
+
white-space: normal;
|
|
2481
|
+
}
|
|
2482
|
+
|
|
2483
|
+
/* ============================================
|
|
2484
|
+
TWO-COLUMN LAYOUTS - Smaller text, strict bounds
|
|
2485
|
+
============================================ */
|
|
2486
|
+
.reveal .two-column,
|
|
2487
|
+
.reveal .two-columns {
|
|
2488
|
+
display: flex;
|
|
2489
|
+
gap: 1.5em;
|
|
2490
|
+
flex: 1 1 auto;
|
|
2491
|
+
min-height: 0;
|
|
2492
|
+
overflow: hidden;
|
|
2493
|
+
max-height: calc(100% - 60px);
|
|
2494
|
+
}
|
|
2495
|
+
|
|
2496
|
+
.reveal .two-column > *,
|
|
2497
|
+
.reveal .two-columns > * {
|
|
2498
|
+
flex: 1 1 50%;
|
|
2499
|
+
min-width: 0;
|
|
2500
|
+
min-height: 0;
|
|
2501
|
+
overflow: hidden;
|
|
2502
|
+
display: flex;
|
|
2503
|
+
flex-direction: column;
|
|
2504
|
+
}
|
|
2505
|
+
|
|
2506
|
+
/* Two-column content gets smaller fonts */
|
|
2507
|
+
.reveal .two-column h2,
|
|
2508
|
+
.reveal .two-columns h2 {
|
|
2509
|
+
font-size: 1.2em;
|
|
2510
|
+
margin-bottom: 0.3em;
|
|
2511
|
+
}
|
|
2512
|
+
|
|
2513
|
+
.reveal .two-column h3,
|
|
2514
|
+
.reveal .two-columns h3 {
|
|
2515
|
+
font-size: 1em;
|
|
2516
|
+
margin-bottom: 0.2em;
|
|
2517
|
+
}
|
|
2518
|
+
|
|
2519
|
+
.reveal .two-column p,
|
|
2520
|
+
.reveal .two-column li,
|
|
2521
|
+
.reveal .two-columns p,
|
|
2522
|
+
.reveal .two-columns li {
|
|
2523
|
+
font-size: 0.8em;
|
|
2524
|
+
line-height: 1.3;
|
|
2525
|
+
margin-bottom: 0.3em;
|
|
2526
|
+
}
|
|
2527
|
+
|
|
2528
|
+
.reveal .two-column table,
|
|
2529
|
+
.reveal .two-columns table {
|
|
2530
|
+
font-size: 0.7em;
|
|
2531
|
+
}
|
|
2532
|
+
|
|
2533
|
+
/* ============================================
|
|
2534
|
+
GRIDS - Auto-fit to available space
|
|
2535
|
+
============================================ */
|
|
2536
|
+
.reveal .stats-grid,
|
|
2537
|
+
.reveal .metrics-grid {
|
|
2538
|
+
display: grid;
|
|
2539
|
+
gap: 0.8em;
|
|
2540
|
+
width: 100%;
|
|
2541
|
+
flex-shrink: 1;
|
|
2542
|
+
min-height: 0;
|
|
2412
2543
|
}
|
|
2413
2544
|
|
|
2414
|
-
/*
|
|
2545
|
+
/* ============================================
|
|
2546
|
+
METRIC CARDS - Compact sizing
|
|
2547
|
+
============================================ */
|
|
2548
|
+
.reveal .metric-card {
|
|
2549
|
+
padding: 0.8em 1em;
|
|
2550
|
+
font-size: 0.85em;
|
|
2551
|
+
flex-shrink: 1;
|
|
2552
|
+
}
|
|
2553
|
+
|
|
2554
|
+
.reveal .metric-card .number {
|
|
2555
|
+
font-size: 1.6em;
|
|
2556
|
+
}
|
|
2557
|
+
|
|
2558
|
+
.reveal .metric-card .label {
|
|
2559
|
+
font-size: 0.7em;
|
|
2560
|
+
}
|
|
2561
|
+
|
|
2562
|
+
/* ============================================
|
|
2563
|
+
HIGHLIGHT BOXES - Compact
|
|
2564
|
+
============================================ */
|
|
2565
|
+
.reveal .highlight-box {
|
|
2566
|
+
padding: 0.6em 0.8em;
|
|
2567
|
+
margin: 0.4em 0;
|
|
2568
|
+
font-size: 0.85em;
|
|
2569
|
+
flex-shrink: 1;
|
|
2570
|
+
}
|
|
2571
|
+
|
|
2572
|
+
/* ============================================
|
|
2573
|
+
PROGRESS BARS - Fixed height
|
|
2574
|
+
============================================ */
|
|
2575
|
+
.reveal .progress-bar {
|
|
2576
|
+
height: 16px;
|
|
2577
|
+
margin: 3px 0;
|
|
2578
|
+
flex-shrink: 0;
|
|
2579
|
+
}
|
|
2580
|
+
|
|
2581
|
+
.reveal .progress-fill {
|
|
2582
|
+
font-size: 0.6em;
|
|
2583
|
+
}
|
|
2584
|
+
|
|
2585
|
+
/* ============================================
|
|
2586
|
+
STAT ITEMS - Compact
|
|
2587
|
+
============================================ */
|
|
2588
|
+
.reveal .stat-item {
|
|
2589
|
+
padding: 0.4em;
|
|
2590
|
+
flex-shrink: 1;
|
|
2591
|
+
}
|
|
2592
|
+
|
|
2593
|
+
.reveal .stat-item .value {
|
|
2594
|
+
font-size: 1.5em;
|
|
2595
|
+
}
|
|
2596
|
+
|
|
2597
|
+
.reveal .stat-item .label {
|
|
2598
|
+
font-size: 0.65em;
|
|
2599
|
+
}
|
|
2600
|
+
|
|
2601
|
+
/* ============================================
|
|
2602
|
+
TYPOGRAPHY - Reduced for density
|
|
2603
|
+
============================================ */
|
|
2415
2604
|
.reveal h1, .reveal h2, .reveal h3 {
|
|
2416
2605
|
font-family: var(--font-heading);
|
|
2417
2606
|
font-weight: 700;
|
|
2418
2607
|
letter-spacing: -0.02em;
|
|
2419
2608
|
color: var(--color-primary);
|
|
2420
|
-
|
|
2609
|
+
flex-shrink: 0;
|
|
2421
2610
|
}
|
|
2422
2611
|
|
|
2423
|
-
.reveal h1 {
|
|
2424
|
-
|
|
2425
|
-
|
|
2612
|
+
.reveal h1 {
|
|
2613
|
+
font-size: 2em;
|
|
2614
|
+
margin-bottom: 0.3em;
|
|
2615
|
+
}
|
|
2616
|
+
.reveal h2 {
|
|
2617
|
+
font-size: 1.5em;
|
|
2618
|
+
margin-bottom: 0.3em;
|
|
2619
|
+
}
|
|
2620
|
+
.reveal h3 {
|
|
2621
|
+
font-size: 1.1em;
|
|
2622
|
+
margin-bottom: 0.2em;
|
|
2623
|
+
}
|
|
2426
2624
|
|
|
2427
2625
|
.reveal p {
|
|
2428
|
-
margin: 0 0
|
|
2626
|
+
margin: 0 0 0.6em 0;
|
|
2627
|
+
flex-shrink: 1;
|
|
2429
2628
|
}
|
|
2430
2629
|
|
|
2431
2630
|
.reveal .subtitle {
|
|
2432
|
-
font-size: 0.
|
|
2631
|
+
font-size: 0.65em;
|
|
2433
2632
|
color: var(--color-text-light);
|
|
2434
2633
|
}
|
|
2435
2634
|
|
|
2436
|
-
/*
|
|
2635
|
+
/* ============================================
|
|
2636
|
+
LISTS - Compact spacing
|
|
2637
|
+
============================================ */
|
|
2437
2638
|
.reveal ul, .reveal ol {
|
|
2438
|
-
margin: 0 0 1em
|
|
2639
|
+
margin: 0 0 0.6em 1em;
|
|
2439
2640
|
padding: 0;
|
|
2641
|
+
flex-shrink: 1;
|
|
2440
2642
|
}
|
|
2441
2643
|
|
|
2442
2644
|
.reveal li {
|
|
2443
|
-
margin-bottom: 0.
|
|
2645
|
+
margin-bottom: 0.3em;
|
|
2646
|
+
line-height: 1.3;
|
|
2444
2647
|
}
|
|
2445
2648
|
|
|
2446
|
-
/*
|
|
2649
|
+
/* ============================================
|
|
2650
|
+
COLUMNS - Flex with overflow protection
|
|
2651
|
+
============================================ */
|
|
2447
2652
|
.reveal .columns {
|
|
2448
2653
|
display: flex;
|
|
2449
|
-
gap:
|
|
2450
|
-
flex: 1;
|
|
2654
|
+
gap: 25px;
|
|
2655
|
+
flex: 1 1 auto;
|
|
2451
2656
|
align-items: flex-start;
|
|
2657
|
+
min-height: 0;
|
|
2658
|
+
overflow: hidden;
|
|
2452
2659
|
}
|
|
2453
2660
|
|
|
2454
|
-
.reveal .two-columns .column
|
|
2455
|
-
flex: 1;
|
|
2456
|
-
}
|
|
2457
|
-
|
|
2661
|
+
.reveal .two-columns .column,
|
|
2458
2662
|
.reveal .three-columns .column {
|
|
2459
2663
|
flex: 1;
|
|
2664
|
+
min-width: 0;
|
|
2665
|
+
min-height: 0;
|
|
2666
|
+
overflow: hidden;
|
|
2460
2667
|
}
|
|
2461
2668
|
|
|
2462
|
-
/*
|
|
2669
|
+
/* ============================================
|
|
2670
|
+
BIG ELEMENTS - Sized appropriately
|
|
2671
|
+
============================================ */
|
|
2463
2672
|
.reveal .big-idea-text,
|
|
2464
2673
|
.reveal .statement {
|
|
2465
|
-
font-size:
|
|
2674
|
+
font-size: 1.8em;
|
|
2466
2675
|
font-weight: 700;
|
|
2467
2676
|
line-height: 1.2;
|
|
2468
2677
|
text-align: center;
|
|
2469
2678
|
}
|
|
2470
2679
|
|
|
2471
2680
|
.reveal .number {
|
|
2472
|
-
font-size:
|
|
2681
|
+
font-size: 3em;
|
|
2473
2682
|
font-weight: 800;
|
|
2474
2683
|
color: var(--color-highlight);
|
|
2475
2684
|
text-align: center;
|
|
@@ -2478,85 +2687,113 @@ ${slides}
|
|
|
2478
2687
|
.reveal .number-context {
|
|
2479
2688
|
text-align: center;
|
|
2480
2689
|
color: var(--color-text-light);
|
|
2690
|
+
font-size: 0.9em;
|
|
2481
2691
|
}
|
|
2482
2692
|
|
|
2483
|
-
/*
|
|
2693
|
+
/* ============================================
|
|
2694
|
+
QUOTES - Compact
|
|
2695
|
+
============================================ */
|
|
2484
2696
|
.reveal blockquote {
|
|
2485
2697
|
border-left: 4px solid var(--color-accent);
|
|
2486
|
-
padding-left:
|
|
2698
|
+
padding-left: 0.8em;
|
|
2487
2699
|
font-style: italic;
|
|
2488
|
-
margin:
|
|
2700
|
+
margin: 0.6em 0;
|
|
2701
|
+
flex-shrink: 1;
|
|
2489
2702
|
}
|
|
2490
2703
|
|
|
2491
2704
|
.reveal .attribution {
|
|
2492
2705
|
text-align: right;
|
|
2493
2706
|
color: var(--color-text-light);
|
|
2494
|
-
font-size: 0.
|
|
2707
|
+
font-size: 0.75em;
|
|
2495
2708
|
}
|
|
2496
2709
|
|
|
2497
|
-
/*
|
|
2710
|
+
/* ============================================
|
|
2711
|
+
IMAGES - Contained within bounds
|
|
2712
|
+
============================================ */
|
|
2498
2713
|
.reveal img {
|
|
2499
2714
|
max-width: 100%;
|
|
2715
|
+
max-height: 100%;
|
|
2500
2716
|
height: auto;
|
|
2501
2717
|
border-radius: 8px;
|
|
2718
|
+
object-fit: contain;
|
|
2502
2719
|
}
|
|
2503
2720
|
|
|
2504
2721
|
.reveal .image-container {
|
|
2505
2722
|
text-align: center;
|
|
2723
|
+
flex: 1 1 auto;
|
|
2724
|
+
min-height: 0;
|
|
2725
|
+
overflow: hidden;
|
|
2726
|
+
display: flex;
|
|
2727
|
+
align-items: center;
|
|
2728
|
+
justify-content: center;
|
|
2506
2729
|
}
|
|
2507
2730
|
|
|
2508
2731
|
.reveal .caption {
|
|
2509
|
-
font-size: 0.
|
|
2732
|
+
font-size: 0.65em;
|
|
2510
2733
|
color: var(--color-text-light);
|
|
2511
|
-
margin-top: 0.
|
|
2734
|
+
margin-top: 0.3em;
|
|
2735
|
+
flex-shrink: 0;
|
|
2512
2736
|
}
|
|
2513
2737
|
|
|
2514
|
-
/*
|
|
2738
|
+
/* ============================================
|
|
2739
|
+
METRICS - Responsive grid
|
|
2740
|
+
============================================ */
|
|
2515
2741
|
.reveal .metrics-grid {
|
|
2516
2742
|
display: grid;
|
|
2517
|
-
grid-template-columns: repeat(auto-fit, minmax(
|
|
2518
|
-
gap:
|
|
2743
|
+
grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
|
|
2744
|
+
gap: 20px;
|
|
2519
2745
|
text-align: center;
|
|
2520
2746
|
}
|
|
2521
2747
|
|
|
2522
2748
|
.reveal .metric-value {
|
|
2523
|
-
font-size:
|
|
2749
|
+
font-size: 1.6em;
|
|
2524
2750
|
font-weight: 700;
|
|
2525
2751
|
color: var(--color-highlight);
|
|
2526
2752
|
}
|
|
2527
2753
|
|
|
2528
2754
|
.reveal .metric-label {
|
|
2529
|
-
font-size: 0.
|
|
2755
|
+
font-size: 0.7em;
|
|
2530
2756
|
color: var(--color-text-light);
|
|
2531
2757
|
}
|
|
2532
2758
|
|
|
2533
2759
|
.reveal .metric-change {
|
|
2534
|
-
font-size: 0.
|
|
2760
|
+
font-size: 0.65em;
|
|
2535
2761
|
}
|
|
2536
2762
|
|
|
2537
2763
|
.reveal .metric-change.up { color: #27ae60; }
|
|
2538
2764
|
.reveal .metric-change.down { color: #e74c3c; }
|
|
2539
2765
|
|
|
2540
|
-
/*
|
|
2766
|
+
/* ============================================
|
|
2767
|
+
CHARTS - Contained
|
|
2768
|
+
============================================ */
|
|
2541
2769
|
.reveal .chart-container {
|
|
2542
|
-
margin:
|
|
2770
|
+
margin: 0.6em 0;
|
|
2771
|
+
flex: 1 1 auto;
|
|
2772
|
+
min-height: 0;
|
|
2773
|
+
overflow: hidden;
|
|
2543
2774
|
}
|
|
2544
2775
|
|
|
2545
|
-
/*
|
|
2776
|
+
/* ============================================
|
|
2777
|
+
SOURCE ATTRIBUTION
|
|
2778
|
+
============================================ */
|
|
2546
2779
|
.reveal .source {
|
|
2547
2780
|
position: absolute;
|
|
2548
|
-
bottom:
|
|
2781
|
+
bottom: 15px;
|
|
2549
2782
|
right: 20px;
|
|
2550
|
-
font-size: 0.
|
|
2783
|
+
font-size: 0.45em;
|
|
2551
2784
|
color: var(--color-text-light);
|
|
2552
2785
|
}
|
|
2553
2786
|
|
|
2554
|
-
/*
|
|
2787
|
+
/* ============================================
|
|
2788
|
+
SPEAKER NOTES
|
|
2789
|
+
============================================ */
|
|
2555
2790
|
.reveal aside.notes {
|
|
2556
2791
|
display: none;
|
|
2557
2792
|
}
|
|
2558
2793
|
|
|
2559
|
-
/*
|
|
2794
|
+
/* ============================================
|
|
2795
|
+
SLIDE TYPE SPECIFIC LAYOUTS
|
|
2796
|
+
============================================ */
|
|
2560
2797
|
.reveal .slide-title .slide-content {
|
|
2561
2798
|
justify-content: center;
|
|
2562
2799
|
text-align: center;
|
|
@@ -2590,12 +2827,12 @@ ${slides}
|
|
|
2590
2827
|
|
|
2591
2828
|
.reveal .cta-button {
|
|
2592
2829
|
display: inline-block;
|
|
2593
|
-
padding: 0.
|
|
2830
|
+
padding: 0.4em 1.2em;
|
|
2594
2831
|
background: var(--color-highlight);
|
|
2595
2832
|
color: white;
|
|
2596
2833
|
border-radius: 4px;
|
|
2597
2834
|
font-weight: 600;
|
|
2598
|
-
margin-top:
|
|
2835
|
+
margin-top: 0.8em;
|
|
2599
2836
|
}
|
|
2600
2837
|
`;
|
|
2601
2838
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "claude-presentation-master",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.2",
|
|
4
4
|
"description": "Generate world-class presentations using expert methodologies from Duarte, Reynolds, Gallo, and Anderson. Enforces rigorous quality standards through real visual validation.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "dist/index.mjs",
|
|
@@ -20,7 +20,8 @@
|
|
|
20
20
|
"lint:fix": "eslint src/**/*.ts --fix",
|
|
21
21
|
"format": "prettier --write \"src/**/*.ts\"",
|
|
22
22
|
"typecheck": "tsc --noEmit",
|
|
23
|
-
"
|
|
23
|
+
"sync-knowledge": "bash scripts/sync-knowledge.sh",
|
|
24
|
+
"prepublishOnly": "npm run sync-knowledge && npm run build && npm test",
|
|
24
25
|
"qa": "node bin/cli.js validate"
|
|
25
26
|
},
|
|
26
27
|
"keywords": [
|