@typespec/compiler 0.55.0-dev.0 → 0.55.0-dev.10

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 (60) hide show
  1. package/dist/generated-defs/TypeSpec.d.ts +498 -0
  2. package/dist/generated-defs/TypeSpec.d.ts.map +1 -0
  3. package/dist/generated-defs/TypeSpec.js +2 -0
  4. package/dist/generated-defs/TypeSpec.js.map +1 -0
  5. package/dist/generated-defs/TypeSpec.ts-test.d.ts +2 -0
  6. package/dist/generated-defs/TypeSpec.ts-test.d.ts.map +1 -0
  7. package/dist/generated-defs/TypeSpec.ts-test.js +45 -0
  8. package/dist/generated-defs/TypeSpec.ts-test.js.map +1 -0
  9. package/dist/manifest.js +2 -2
  10. package/dist/src/core/binder.d.ts.map +1 -1
  11. package/dist/src/core/binder.js +3 -0
  12. package/dist/src/core/binder.js.map +1 -1
  13. package/dist/src/core/checker.d.ts.map +1 -1
  14. package/dist/src/core/checker.js +5 -0
  15. package/dist/src/core/checker.js.map +1 -1
  16. package/dist/src/core/messages.js +1 -1
  17. package/dist/src/core/parser.d.ts.map +1 -1
  18. package/dist/src/core/parser.js +8 -1
  19. package/dist/src/core/parser.js.map +1 -1
  20. package/dist/src/core/program.d.ts.map +1 -1
  21. package/dist/src/core/program.js +6 -2
  22. package/dist/src/core/program.js.map +1 -1
  23. package/dist/src/core/projection-members.d.ts.map +1 -1
  24. package/dist/src/core/projection-members.js +4 -0
  25. package/dist/src/core/projection-members.js.map +1 -1
  26. package/dist/src/core/types.d.ts +34 -30
  27. package/dist/src/core/types.d.ts.map +1 -1
  28. package/dist/src/core/types.js +29 -28
  29. package/dist/src/core/types.js.map +1 -1
  30. package/dist/src/formatter/print/printer.d.ts.map +1 -1
  31. package/dist/src/formatter/print/printer.js +2 -0
  32. package/dist/src/formatter/print/printer.js.map +1 -1
  33. package/dist/src/lib/decorators.d.ts +40 -40
  34. package/dist/src/lib/decorators.d.ts.map +1 -1
  35. package/dist/src/lib/decorators.js +89 -89
  36. package/dist/src/lib/decorators.js.map +1 -1
  37. package/dist/src/lib/service.d.ts +3 -2
  38. package/dist/src/lib/service.d.ts.map +1 -1
  39. package/dist/src/lib/service.js +10 -2
  40. package/dist/src/lib/service.js.map +1 -1
  41. package/dist/src/server/classify.d.ts.map +1 -1
  42. package/dist/src/server/classify.js +3 -0
  43. package/dist/src/server/classify.js.map +1 -1
  44. package/dist/src/server/serverlib.d.ts.map +1 -1
  45. package/dist/src/server/serverlib.js +7 -11
  46. package/dist/src/server/serverlib.js.map +1 -1
  47. package/dist/src/server/tmlanguage.d.ts.map +1 -1
  48. package/dist/src/server/tmlanguage.js +64 -11
  49. package/dist/src/server/tmlanguage.js.map +1 -1
  50. package/dist/typespec.tmLanguage +226 -42
  51. package/lib/decorators.tsp +1 -0
  52. package/package.json +11 -10
  53. package/dist/.scripts/build-init-templates.d.ts +0 -2
  54. package/dist/.scripts/build-init-templates.d.ts.map +0 -1
  55. package/dist/.scripts/build-init-templates.js +0 -48
  56. package/dist/.scripts/build-init-templates.js.map +0 -1
  57. package/dist/.scripts/helpers.d.ts +0 -4
  58. package/dist/.scripts/helpers.d.ts.map +0 -1
  59. package/dist/.scripts/helpers.js +0 -44
  60. package/dist/.scripts/helpers.js.map +0 -1
@@ -10,7 +10,7 @@
10
10
  <string>source.tsp</string>
11
11
  <key>fileTypes</key>
12
12
  <array>
13
- <string>.tsp</string>
13
+ <string>tsp</string>
14
14
  </array>
15
15
  <key>patterns</key>
16
16
  <array>
@@ -140,7 +140,7 @@
140
140
  <key>name</key>
141
141
  <string>meta.decorator-declaration-statement.typespec</string>
142
142
  <key>begin</key>
143
- <string>(?:(extern)\s+)?\b(dec)\b\s+(\b[_$[:alpha:]][_$[:alnum:]]*\b)</string>
143
+ <string>(?:(extern)\s+)?\b(dec)\b\s+(\b[_$[:alpha:]][_$[:alnum:]]*\b|`(?:[^`\\]|\\.)*`)</string>
144
144
  <key>beginCaptures</key>
145
145
  <dict>
146
146
  <key>1</key>
@@ -256,7 +256,7 @@
256
256
  <key>name</key>
257
257
  <string>comment.block.tsp</string>
258
258
  <key>match</key>
259
- <string>(?x)((@)(?:param|template))\s+(\b[_$[:alpha:]][_$[:alnum:]]*\b)\b</string>
259
+ <string>(?x)((@)(?:param|template))\s+(\b[_$[:alpha:]][_$[:alnum:]]*\b|`(?:[^`\\]|\\.)*`)\b</string>
260
260
  <key>captures</key>
261
261
  <dict>
262
262
  <key>1</key>
@@ -301,7 +301,7 @@
301
301
  <key>name</key>
302
302
  <string>comment.block.tsp</string>
303
303
  <key>match</key>
304
- <string>(?x)((@)(?:\b[_$[:alpha:]][_$[:alnum:]]*\b))\b</string>
304
+ <string>(?x)((@)(?:\b[_$[:alpha:]][_$[:alnum:]]*\b|`(?:[^`\\]|\\.)*`))\b</string>
305
305
  <key>captures</key>
306
306
  <dict>
307
307
  <key>1</key>
@@ -377,12 +377,93 @@
377
377
  </dict>
378
378
  </array>
379
379
  </dict>
380
+ <key>enum-body</key>
381
+ <dict>
382
+ <key>name</key>
383
+ <string>meta.enum-body.typespec</string>
384
+ <key>begin</key>
385
+ <string>\{</string>
386
+ <key>beginCaptures</key>
387
+ <dict>
388
+ <key>0</key>
389
+ <dict>
390
+ <key>name</key>
391
+ <string>punctuation.curlybrace.open.tsp</string>
392
+ </dict>
393
+ </dict>
394
+ <key>end</key>
395
+ <string>\}</string>
396
+ <key>endCaptures</key>
397
+ <dict>
398
+ <key>0</key>
399
+ <dict>
400
+ <key>name</key>
401
+ <string>punctuation.curlybrace.close.tsp</string>
402
+ </dict>
403
+ </dict>
404
+ <key>patterns</key>
405
+ <array>
406
+ <dict>
407
+ <key>include</key>
408
+ <string>#enum-member</string>
409
+ </dict>
410
+ <dict>
411
+ <key>include</key>
412
+ <string>#token</string>
413
+ </dict>
414
+ <dict>
415
+ <key>include</key>
416
+ <string>#directive</string>
417
+ </dict>
418
+ <dict>
419
+ <key>include</key>
420
+ <string>#decorator</string>
421
+ </dict>
422
+ <dict>
423
+ <key>include</key>
424
+ <string>#punctuation-comma</string>
425
+ </dict>
426
+ </array>
427
+ </dict>
428
+ <key>enum-member</key>
429
+ <dict>
430
+ <key>name</key>
431
+ <string>meta.enum-member.typespec</string>
432
+ <key>begin</key>
433
+ <string>(?:(\b[_$[:alpha:]][_$[:alnum:]]*\b|`(?:[^`\\]|\\.)*`)\s*(:?))</string>
434
+ <key>beginCaptures</key>
435
+ <dict>
436
+ <key>1</key>
437
+ <dict>
438
+ <key>name</key>
439
+ <string>variable.name.tsp</string>
440
+ </dict>
441
+ <key>2</key>
442
+ <dict>
443
+ <key>name</key>
444
+ <string>keyword.operator.type.annotation.tsp</string>
445
+ </dict>
446
+ </dict>
447
+ <key>end</key>
448
+ <string>(?=,|;|@|\)|\}|\b(?:extern)\b|\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\b)</string>
449
+ <key>patterns</key>
450
+ <array>
451
+ <dict>
452
+ <key>include</key>
453
+ <string>#token</string>
454
+ </dict>
455
+ <dict>
456
+ <key>include</key>
457
+ <string>#type-annotation</string>
458
+ </dict>
459
+ </array>
460
+ </dict>
380
461
  <key>enum-statement</key>
381
462
  <dict>
382
463
  <key>name</key>
383
464
  <string>meta.enum-statement.typespec</string>
384
465
  <key>begin</key>
385
- <string>\b(enum)\b</string>
466
+ <string>\b(enum)\b\s+(\b[_$[:alpha:]][_$[:alnum:]]*\b|`(?:[^`\\]|\\.)*`)</string>
386
467
  <key>beginCaptures</key>
387
468
  <dict>
388
469
  <key>1</key>
@@ -390,6 +471,11 @@
390
471
  <key>name</key>
391
472
  <string>keyword.other.tsp</string>
392
473
  </dict>
474
+ <key>2</key>
475
+ <dict>
476
+ <key>name</key>
477
+ <string>entity.name.type.tsp</string>
478
+ </dict>
393
479
  </dict>
394
480
  <key>end</key>
395
481
  <string>(?&lt;=\})|(?=,|;|@|\)|\}|\b(?:extern)\b|\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\b)</string>
@@ -401,7 +487,7 @@
401
487
  </dict>
402
488
  <dict>
403
489
  <key>include</key>
404
- <string>#expression</string>
490
+ <string>#enum-body</string>
405
491
  </dict>
406
492
  </array>
407
493
  </dict>
@@ -455,7 +541,7 @@
455
541
  <key>name</key>
456
542
  <string>meta.function-call.typespec</string>
457
543
  <key>begin</key>
458
- <string>(\b[_$[:alpha:]][_$[:alnum:]]*\b)\s*(\()</string>
544
+ <string>(\b[_$[:alpha:]][_$[:alnum:]]*\b|`(?:[^`\\]|\\.)*`)\s*(\()</string>
459
545
  <key>beginCaptures</key>
460
546
  <dict>
461
547
  <key>1</key>
@@ -492,7 +578,7 @@
492
578
  <key>name</key>
493
579
  <string>meta.function-declaration-statement.typespec</string>
494
580
  <key>begin</key>
495
- <string>(?:(extern)\s+)?\b(fn)\b\s+(\b[_$[:alpha:]][_$[:alnum:]]*\b)</string>
581
+ <string>(?:(extern)\s+)?\b(fn)\b\s+(\b[_$[:alpha:]][_$[:alnum:]]*\b|`(?:[^`\\]|\\.)*`)</string>
496
582
  <key>beginCaptures</key>
497
583
  <dict>
498
584
  <key>1</key>
@@ -534,7 +620,7 @@
534
620
  <key>name</key>
535
621
  <string>entity.name.type.tsp</string>
536
622
  <key>match</key>
537
- <string>\b[_$[:alpha:]][_$[:alnum:]]*\b</string>
623
+ <string>\b[_$[:alpha:]][_$[:alnum:]]*\b|`(?:[^`\\]|\\.)*`</string>
538
624
  </dict>
539
625
  <key>if-expression</key>
540
626
  <dict>
@@ -669,7 +755,7 @@
669
755
  <key>name</key>
670
756
  <string>meta.interface-member.typespec</string>
671
757
  <key>begin</key>
672
- <string>(?:\b(op)\b\s+)?(\b[_$[:alpha:]][_$[:alnum:]]*\b)</string>
758
+ <string>(?:\b(op)\b\s+)?(\b[_$[:alpha:]][_$[:alnum:]]*\b|`(?:[^`\\]|\\.)*`)</string>
673
759
  <key>beginCaptures</key>
674
760
  <dict>
675
761
  <key>1</key>
@@ -719,6 +805,10 @@
719
805
  <key>include</key>
720
806
  <string>#token</string>
721
807
  </dict>
808
+ <dict>
809
+ <key>include</key>
810
+ <string>#type-parameters</string>
811
+ </dict>
722
812
  <dict>
723
813
  <key>include</key>
724
814
  <string>#interface-heritage</string>
@@ -784,7 +874,7 @@
784
874
  </dict>
785
875
  <dict>
786
876
  <key>include</key>
787
- <string>#model-spread-property</string>
877
+ <string>#spread-operator</string>
788
878
  </dict>
789
879
  <dict>
790
880
  <key>include</key>
@@ -825,7 +915,7 @@
825
915
  <key>name</key>
826
916
  <string>meta.model-property.typespec</string>
827
917
  <key>begin</key>
828
- <string>(?:(\b[_$[:alpha:]][_$[:alnum:]]*\b)|(\"(?:[^\"\\]|\\.)*\"))</string>
918
+ <string>(?:(\b[_$[:alpha:]][_$[:alnum:]]*\b|`(?:[^`\\]|\\.)*`)|(\"(?:[^\"\\]|\\.)*\"))</string>
829
919
  <key>beginCaptures</key>
830
920
  <dict>
831
921
  <key>1</key>
@@ -861,30 +951,6 @@
861
951
  </dict>
862
952
  </array>
863
953
  </dict>
864
- <key>model-spread-property</key>
865
- <dict>
866
- <key>name</key>
867
- <string>meta.model-spread-property.typespec</string>
868
- <key>begin</key>
869
- <string>\.\.\.</string>
870
- <key>beginCaptures</key>
871
- <dict>
872
- <key>0</key>
873
- <dict>
874
- <key>name</key>
875
- <string>keyword.operator.spread.tsp</string>
876
- </dict>
877
- </dict>
878
- <key>end</key>
879
- <string>(?=,|;|@|\)|\}|\b(?:extern)\b|\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\b)</string>
880
- <key>patterns</key>
881
- <array>
882
- <dict>
883
- <key>include</key>
884
- <string>#expression</string>
885
- </dict>
886
- </array>
887
- </dict>
888
954
  <key>model-statement</key>
889
955
  <dict>
890
956
  <key>name</key>
@@ -1076,7 +1142,7 @@
1076
1142
  </dict>
1077
1143
  <dict>
1078
1144
  <key>include</key>
1079
- <string>#model-spread-property</string>
1145
+ <string>#spread-operator</string>
1080
1146
  </dict>
1081
1147
  <dict>
1082
1148
  <key>include</key>
@@ -1111,7 +1177,7 @@
1111
1177
  <key>name</key>
1112
1178
  <string>meta.operation-statement.typespec</string>
1113
1179
  <key>begin</key>
1114
- <string>\b(op)\b\s+(\b[_$[:alpha:]][_$[:alnum:]]*\b)</string>
1180
+ <string>\b(op)\b\s+(\b[_$[:alpha:]][_$[:alnum:]]*\b|`(?:[^`\\]|\\.)*`)</string>
1115
1181
  <key>beginCaptures</key>
1116
1182
  <dict>
1117
1183
  <key>1</key>
@@ -1273,7 +1339,7 @@
1273
1339
  <key>name</key>
1274
1340
  <string>meta.projection-parameter.typespec</string>
1275
1341
  <key>begin</key>
1276
- <string>(\b[_$[:alpha:]][_$[:alnum:]]*\b)</string>
1342
+ <string>(\b[_$[:alpha:]][_$[:alnum:]]*\b|`(?:[^`\\]|\\.)*`)</string>
1277
1343
  <key>beginCaptures</key>
1278
1344
  <dict>
1279
1345
  <key>1</key>
@@ -1328,7 +1394,7 @@
1328
1394
  <key>name</key>
1329
1395
  <string>meta.projection-statement.typespec</string>
1330
1396
  <key>begin</key>
1331
- <string>\b(projection)\b\s+(\b[_$[:alpha:]][_$[:alnum:]]*\b)(#)(\b[_$[:alpha:]][_$[:alnum:]]*\b)</string>
1397
+ <string>\b(projection)\b\s+(\b[_$[:alpha:]][_$[:alnum:]]*\b|`(?:[^`\\]|\\.)*`)(#)(\b[_$[:alpha:]][_$[:alnum:]]*\b|`(?:[^`\\]|\\.)*`)</string>
1332
1398
  <key>beginCaptures</key>
1333
1399
  <dict>
1334
1400
  <key>1</key>
@@ -1479,6 +1545,30 @@
1479
1545
  </dict>
1480
1546
  </array>
1481
1547
  </dict>
1548
+ <key>spread-operator</key>
1549
+ <dict>
1550
+ <key>name</key>
1551
+ <string>meta.spread-operator.typespec</string>
1552
+ <key>begin</key>
1553
+ <string>\.\.\.</string>
1554
+ <key>beginCaptures</key>
1555
+ <dict>
1556
+ <key>0</key>
1557
+ <dict>
1558
+ <key>name</key>
1559
+ <string>keyword.operator.spread.tsp</string>
1560
+ </dict>
1561
+ </dict>
1562
+ <key>end</key>
1563
+ <string>(?=,|;|@|\)|\}|\b(?:extern)\b|\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\b)</string>
1564
+ <key>patterns</key>
1565
+ <array>
1566
+ <dict>
1567
+ <key>include</key>
1568
+ <string>#expression</string>
1569
+ </dict>
1570
+ </array>
1571
+ </dict>
1482
1572
  <key>statement</key>
1483
1573
  <dict>
1484
1574
  <key>patterns</key>
@@ -1773,7 +1863,7 @@
1773
1863
  <key>name</key>
1774
1864
  <string>meta.type-parameter.typespec</string>
1775
1865
  <key>begin</key>
1776
- <string>(\b[_$[:alpha:]][_$[:alnum:]]*\b)</string>
1866
+ <string>(\b[_$[:alpha:]][_$[:alnum:]]*\b|`(?:[^`\\]|\\.)*`)</string>
1777
1867
  <key>beginCaptures</key>
1778
1868
  <dict>
1779
1869
  <key>1</key>
@@ -1786,6 +1876,10 @@
1786
1876
  <string>(?=&gt;)|(?=,|;|@|\)|\}|\b(?:extern)\b|\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\b)</string>
1787
1877
  <key>patterns</key>
1788
1878
  <array>
1879
+ <dict>
1880
+ <key>include</key>
1881
+ <string>#token</string>
1882
+ </dict>
1789
1883
  <dict>
1790
1884
  <key>include</key>
1791
1885
  <string>#type-parameter-constraint</string>
@@ -1880,12 +1974,64 @@
1880
1974
  </dict>
1881
1975
  </array>
1882
1976
  </dict>
1977
+ <key>union-body</key>
1978
+ <dict>
1979
+ <key>name</key>
1980
+ <string>meta.union-body.typespec</string>
1981
+ <key>begin</key>
1982
+ <string>\{</string>
1983
+ <key>beginCaptures</key>
1984
+ <dict>
1985
+ <key>0</key>
1986
+ <dict>
1987
+ <key>name</key>
1988
+ <string>punctuation.curlybrace.open.tsp</string>
1989
+ </dict>
1990
+ </dict>
1991
+ <key>end</key>
1992
+ <string>\}</string>
1993
+ <key>endCaptures</key>
1994
+ <dict>
1995
+ <key>0</key>
1996
+ <dict>
1997
+ <key>name</key>
1998
+ <string>punctuation.curlybrace.close.tsp</string>
1999
+ </dict>
2000
+ </dict>
2001
+ <key>patterns</key>
2002
+ <array>
2003
+ <dict>
2004
+ <key>include</key>
2005
+ <string>#union-variant</string>
2006
+ </dict>
2007
+ <dict>
2008
+ <key>include</key>
2009
+ <string>#token</string>
2010
+ </dict>
2011
+ <dict>
2012
+ <key>include</key>
2013
+ <string>#directive</string>
2014
+ </dict>
2015
+ <dict>
2016
+ <key>include</key>
2017
+ <string>#decorator</string>
2018
+ </dict>
2019
+ <dict>
2020
+ <key>include</key>
2021
+ <string>#expression</string>
2022
+ </dict>
2023
+ <dict>
2024
+ <key>include</key>
2025
+ <string>#punctuation-comma</string>
2026
+ </dict>
2027
+ </array>
2028
+ </dict>
1883
2029
  <key>union-statement</key>
1884
2030
  <dict>
1885
2031
  <key>name</key>
1886
2032
  <string>meta.union-statement.typespec</string>
1887
2033
  <key>begin</key>
1888
- <string>\b(union)\b</string>
2034
+ <string>\b(union)\b\s+(\b[_$[:alpha:]][_$[:alnum:]]*\b|`(?:[^`\\]|\\.)*`)</string>
1889
2035
  <key>beginCaptures</key>
1890
2036
  <dict>
1891
2037
  <key>1</key>
@@ -1893,10 +2039,48 @@
1893
2039
  <key>name</key>
1894
2040
  <string>keyword.other.tsp</string>
1895
2041
  </dict>
2042
+ <key>2</key>
2043
+ <dict>
2044
+ <key>name</key>
2045
+ <string>entity.name.type.tsp</string>
2046
+ </dict>
1896
2047
  </dict>
1897
2048
  <key>end</key>
1898
2049
  <string>(?&lt;=\})|(?=,|;|@|\)|\}|\b(?:extern)\b|\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\b)</string>
1899
2050
  <key>patterns</key>
2051
+ <array>
2052
+ <dict>
2053
+ <key>include</key>
2054
+ <string>#token</string>
2055
+ </dict>
2056
+ <dict>
2057
+ <key>include</key>
2058
+ <string>#union-body</string>
2059
+ </dict>
2060
+ </array>
2061
+ </dict>
2062
+ <key>union-variant</key>
2063
+ <dict>
2064
+ <key>name</key>
2065
+ <string>meta.union-variant.typespec</string>
2066
+ <key>begin</key>
2067
+ <string>(?:(\b[_$[:alpha:]][_$[:alnum:]]*\b|`(?:[^`\\]|\\.)*`)\s*(:))</string>
2068
+ <key>beginCaptures</key>
2069
+ <dict>
2070
+ <key>1</key>
2071
+ <dict>
2072
+ <key>name</key>
2073
+ <string>variable.name.tsp</string>
2074
+ </dict>
2075
+ <key>2</key>
2076
+ <dict>
2077
+ <key>name</key>
2078
+ <string>keyword.operator.type.annotation.tsp</string>
2079
+ </dict>
2080
+ </dict>
2081
+ <key>end</key>
2082
+ <string>(?=,|;|@|\)|\}|\b(?:extern)\b|\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\b)</string>
2083
+ <key>patterns</key>
1900
2084
  <array>
1901
2085
  <dict>
1902
2086
  <key>include</key>
@@ -366,6 +366,7 @@ extern dec overload(target: Operation, overloadbase: Operation);
366
366
  * }
367
367
  * ```
368
368
  */
369
+ #deprecated "Use `@encodedName` instead for changing the name over the wire."
369
370
  extern dec projectedName(
370
371
  target: unknown,
371
372
  targetName: valueof string,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@typespec/compiler",
3
- "version": "0.55.0-dev.0",
3
+ "version": "0.55.0-dev.10",
4
4
  "description": "TypeSpec Compiler Preview",
5
5
  "author": "Microsoft Corporation",
6
6
  "license": "MIT",
@@ -63,8 +63,8 @@
63
63
  "dependencies": {
64
64
  "@babel/code-frame": "~7.23.5",
65
65
  "ajv": "~8.12.0",
66
- "change-case": "~5.4.2",
67
- "globby": "~14.0.0",
66
+ "change-case": "~5.4.3",
67
+ "globby": "~14.0.1",
68
68
  "mustache": "~4.2.0",
69
69
  "picocolors": "~1.0.0",
70
70
  "prettier": "~3.2.5",
@@ -72,7 +72,7 @@
72
72
  "semver": "^7.6.0",
73
73
  "vscode-languageserver": "~9.0.1",
74
74
  "vscode-languageserver-textdocument": "~1.0.11",
75
- "yaml": "~2.3.4",
75
+ "yaml": "~2.4.1",
76
76
  "yargs": "~17.7.2"
77
77
  },
78
78
  "devDependencies": {
@@ -80,23 +80,23 @@
80
80
  "@types/mustache": "~4.2.5",
81
81
  "@types/node": "~18.11.19",
82
82
  "@types/prompts": "~2.4.9",
83
- "@types/semver": "^7.5.6",
83
+ "@types/semver": "^7.5.8",
84
84
  "@types/sinon": "~17.0.3",
85
85
  "@types/yargs": "~17.0.32",
86
86
  "@typespec/eslint-config-typespec": "~0.54.0 || >=0.55.0-dev <0.55.0",
87
87
  "@typespec/internal-build-utils": "~0.54.0 || >=0.55.0-dev <0.55.0",
88
- "@vitest/coverage-v8": "^1.2.2",
89
- "@vitest/ui": "^1.2.2",
88
+ "@vitest/coverage-v8": "^1.4.0",
89
+ "@vitest/ui": "^1.4.0",
90
90
  "c8": "^9.1.0",
91
- "eslint": "^8.56.0",
91
+ "eslint": "^8.57.0",
92
92
  "grammarkdown": "~3.3.2",
93
93
  "rimraf": "~5.0.5",
94
94
  "sinon": "~17.0.1",
95
95
  "source-map-support": "~0.5.21",
96
96
  "tmlanguage-generator": "~0.5.3 || >=0.6.0-dev <0.6.0",
97
97
  "ts-node": "~10.9.2",
98
- "typescript": "~5.3.3",
99
- "vitest": "^1.2.2",
98
+ "typescript": "~5.4.2",
99
+ "vitest": "^1.4.0",
100
100
  "vscode-oniguruma": "~2.0.1",
101
101
  "vscode-textmate": "~9.0.0"
102
102
  },
@@ -109,6 +109,7 @@
109
109
  "watch": "tsc -p . --watch",
110
110
  "watch-tmlanguage": "node scripts/watch-tmlanguage.js",
111
111
  "generate-tmlanguage": "node scripts/generate-tmlanguage.js",
112
+ "gen-extern-signature": "node --no-warnings --experimental-specifier-resolution=node --loader ts-node/esm ./.scripts/gen-extern-signature.ts",
112
113
  "dogfood": "node scripts/dogfood.js",
113
114
  "test": "vitest run",
114
115
  "test:ui": "vitest --ui",
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=build-init-templates.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"build-init-templates.d.ts","sourceRoot":"","sources":["../../.scripts/build-init-templates.ts"],"names":[],"mappings":""}
@@ -1,48 +0,0 @@
1
- import { mkdir, readFile, writeFile } from "fs/promises";
2
- import { resolve } from "path/posix";
3
- import { localDir, packageRoot } from "./helpers.js";
4
- const pkgJson = JSON.parse((await readFile(resolve(packageRoot, "package.json"))).toString("utf-8"));
5
- const minCompilerVersion = pkgJson.version;
6
- const builtInTemplates = {
7
- empty: {
8
- title: "Empty project",
9
- description: "Create an empty project.",
10
- libraries: [],
11
- compilerVersion: minCompilerVersion,
12
- },
13
- rest: {
14
- title: "Generic REST API",
15
- description: "Create a project representing a generic REST API",
16
- compilerVersion: minCompilerVersion,
17
- libraries: ["@typespec/http", "@typespec/rest", "@typespec/openapi3"],
18
- config: {
19
- emit: ["@typespec/openapi3"],
20
- },
21
- },
22
- "library-ts": {
23
- title: "TypeSpec Library (With TypeScript)",
24
- description: "Create a new package to add decorators or linters to typespec.",
25
- compilerVersion: minCompilerVersion,
26
- libraries: [],
27
- files: [
28
- { destination: "main.tsp", skipGeneration: true },
29
- { destination: "tspconfig.yaml", skipGeneration: true },
30
- ...(await localDir("library-ts")),
31
- ],
32
- },
33
- "emitter-ts": {
34
- title: "TypeSpec Emitter (With TypeScript)",
35
- description: "Create a new package that will be emitting typespec",
36
- compilerVersion: minCompilerVersion,
37
- libraries: [],
38
- files: [
39
- { destination: "main.tsp", skipGeneration: true },
40
- { destination: "tspconfig.yaml", skipGeneration: true },
41
- ...(await localDir("emitter-ts")),
42
- ],
43
- },
44
- };
45
- const distDir = resolve(packageRoot, "dist");
46
- await mkdir(distDir, { recursive: true });
47
- await writeFile(resolve(packageRoot, "templates", "scaffolding.json"), JSON.stringify(builtInTemplates, null, 2));
48
- //# sourceMappingURL=build-init-templates.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"build-init-templates.js","sourceRoot":"","sources":["../../.scripts/build-init-templates.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErC,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAErD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CACxB,CAAC,MAAM,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CACzE,CAAC;AACF,MAAM,kBAAkB,GAAG,OAAO,CAAC,OAAO,CAAC;AAE3C,MAAM,gBAAgB,GAAiC;IACrD,KAAK,EAAE;QACL,KAAK,EAAE,eAAe;QACtB,WAAW,EAAE,0BAA0B;QACvC,SAAS,EAAE,EAAE;QACb,eAAe,EAAE,kBAAkB;KACpC;IACD,IAAI,EAAE;QACJ,KAAK,EAAE,kBAAkB;QACzB,WAAW,EAAE,kDAAkD;QAC/D,eAAe,EAAE,kBAAkB;QACnC,SAAS,EAAE,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,oBAAoB,CAAC;QACrE,MAAM,EAAE;YACN,IAAI,EAAE,CAAC,oBAAoB,CAAC;SAC7B;KACF;IACD,YAAY,EAAE;QACZ,KAAK,EAAE,oCAAoC;QAC3C,WAAW,EAAE,gEAAgE;QAC7E,eAAe,EAAE,kBAAkB;QACnC,SAAS,EAAE,EAAE;QACb,KAAK,EAAE;YACL,EAAE,WAAW,EAAE,UAAU,EAAE,cAAc,EAAE,IAAI,EAAE;YACjD,EAAE,WAAW,EAAE,gBAAgB,EAAE,cAAc,EAAE,IAAI,EAAE;YACvD,GAAG,CAAC,MAAM,QAAQ,CAAC,YAAY,CAAC,CAAC;SAClC;KACF;IACD,YAAY,EAAE;QACZ,KAAK,EAAE,oCAAoC;QAC3C,WAAW,EAAE,qDAAqD;QAClE,eAAe,EAAE,kBAAkB;QACnC,SAAS,EAAE,EAAE;QACb,KAAK,EAAE;YACL,EAAE,WAAW,EAAE,UAAU,EAAE,cAAc,EAAE,IAAI,EAAE;YACjD,EAAE,WAAW,EAAE,gBAAgB,EAAE,cAAc,EAAE,IAAI,EAAE;YACvD,GAAG,CAAC,MAAM,QAAQ,CAAC,YAAY,CAAC,CAAC;SAClC;KACF;CACF,CAAC;AAEF,MAAM,OAAO,GAAG,OAAO,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;AAC7C,MAAM,KAAK,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AAC1C,MAAM,SAAS,CACb,OAAO,CAAC,WAAW,EAAE,WAAW,EAAE,kBAAkB,CAAC,EACrD,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE,IAAI,EAAE,CAAC,CAAC,CAC1C,CAAC"}
@@ -1,4 +0,0 @@
1
- export declare const packageRoot: string;
2
- export declare function localFile(templateName: string, path: string): any;
3
- export declare function localDir(templateName: string): Promise<any[]>;
4
- //# sourceMappingURL=helpers.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../.scripts/helpers.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,WAAW,QAAyD,CAAC;AA+BlF,wBAAgB,SAAS,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,GAAG,CAGjE;AAED,wBAAsB,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,CAGnE"}
@@ -1,44 +0,0 @@
1
- import { readdir } from "fs/promises";
2
- import { dirname } from "path";
3
- import { join, resolve } from "path/posix";
4
- import { fileURLToPath } from "url";
5
- export const packageRoot = resolve(dirname(fileURLToPath(import.meta.url)), "..");
6
- const templateDir = "templates";
7
- function isEnoentError(e) {
8
- return typeof e === "object" && e !== null && "code" in e;
9
- }
10
- async function readFilesInDirRecursively(dir) {
11
- let entries;
12
- try {
13
- entries = await readdir(dir, { withFileTypes: true });
14
- }
15
- catch (e) {
16
- if (isEnoentError(e)) {
17
- return [];
18
- }
19
- else {
20
- throw new Error(`Failed to read dir "${dir}"\n Error: ${e}`);
21
- }
22
- }
23
- const files = [];
24
- for (const entry of entries) {
25
- if (entry.isDirectory()) {
26
- for (const file of await readFilesInDirRecursively(resolve(dir, entry.name))) {
27
- files.push(join(entry.name, file));
28
- }
29
- }
30
- else {
31
- files.push(entry.name);
32
- }
33
- }
34
- return files;
35
- }
36
- export function localFile(templateName, path) {
37
- const destination = path.endsWith(".mu") ? path.slice(0, -3) : path;
38
- return { path: join(templateName, path), destination };
39
- }
40
- export async function localDir(templateName) {
41
- const files = await readFilesInDirRecursively(resolve(templateDir, templateName));
42
- return files.map((f) => localFile(templateName, f));
43
- }
44
- //# sourceMappingURL=helpers.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../.scripts/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAEpC,MAAM,CAAC,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AAClF,MAAM,WAAW,GAAG,WAAW,CAAC;AAEhC,SAAS,aAAa,CAAC,CAAU;IAC/B,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,IAAI,MAAM,IAAI,CAAC,CAAC;AAC5D,CAAC;AAED,KAAK,UAAU,yBAAyB,CAAC,GAAW;IAClD,IAAI,OAAO,CAAC;IACZ,IAAI,CAAC;QACH,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IACxD,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,IAAI,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;YACrB,OAAO,EAAE,CAAC;QACZ,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,uBAAuB,GAAG,cAAc,CAAC,EAAE,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;IACD,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;YACxB,KAAK,MAAM,IAAI,IAAI,MAAM,yBAAyB,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;gBAC7E,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;YACrC,CAAC;QACH,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,YAAoB,EAAE,IAAY;IAC1D,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACpE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,EAAE,WAAW,EAAE,CAAC;AACzD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,YAAoB;IACjD,MAAM,KAAK,GAAG,MAAM,yBAAyB,CAAC,OAAO,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC,CAAC;IAClF,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC;AACtD,CAAC"}