@typespec/compiler 1.16.0-dev.0 → 1.16.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 (101) hide show
  1. package/dist/manifest.js +2 -2
  2. package/dist/src/config/config-loader.d.ts.map +1 -1
  3. package/dist/src/config/config-loader.js +21 -1
  4. package/dist/src/config/config-loader.js.map +1 -1
  5. package/dist/src/config/types.d.ts +2 -2
  6. package/dist/src/config/types.d.ts.map +1 -1
  7. package/dist/src/core/binder.d.ts.map +1 -1
  8. package/dist/src/core/binder.js +14 -0
  9. package/dist/src/core/binder.js.map +1 -1
  10. package/dist/src/core/checker.d.ts.map +1 -1
  11. package/dist/src/core/checker.js +117 -0
  12. package/dist/src/core/checker.js.map +1 -1
  13. package/dist/src/core/external-error.d.ts +1 -1
  14. package/dist/src/core/external-error.d.ts.map +1 -1
  15. package/dist/src/core/external-error.js +3 -1
  16. package/dist/src/core/external-error.js.map +1 -1
  17. package/dist/src/core/features.d.ts +6 -0
  18. package/dist/src/core/features.d.ts.map +1 -1
  19. package/dist/src/core/features.js +6 -0
  20. package/dist/src/core/features.js.map +1 -1
  21. package/dist/src/core/helpers/index.d.ts +1 -1
  22. package/dist/src/core/helpers/index.d.ts.map +1 -1
  23. package/dist/src/core/helpers/index.js +1 -1
  24. package/dist/src/core/helpers/index.js.map +1 -1
  25. package/dist/src/core/helpers/path-interpolation.d.ts +15 -0
  26. package/dist/src/core/helpers/path-interpolation.d.ts.map +1 -1
  27. package/dist/src/core/helpers/path-interpolation.js +20 -0
  28. package/dist/src/core/helpers/path-interpolation.js.map +1 -1
  29. package/dist/src/core/helpers/type-name-utils.d.ts.map +1 -1
  30. package/dist/src/core/helpers/type-name-utils.js +29 -0
  31. package/dist/src/core/helpers/type-name-utils.js.map +1 -1
  32. package/dist/src/core/js-marshaller.js +3 -5
  33. package/dist/src/core/js-marshaller.js.map +1 -1
  34. package/dist/src/core/library.d.ts +15 -1
  35. package/dist/src/core/library.d.ts.map +1 -1
  36. package/dist/src/core/library.js +16 -0
  37. package/dist/src/core/library.js.map +1 -1
  38. package/dist/src/core/linter-ruleset-file.d.ts +20 -0
  39. package/dist/src/core/linter-ruleset-file.d.ts.map +1 -0
  40. package/dist/src/core/linter-ruleset-file.js +61 -0
  41. package/dist/src/core/linter-ruleset-file.js.map +1 -0
  42. package/dist/src/core/linter.d.ts +15 -1
  43. package/dist/src/core/linter.d.ts.map +1 -1
  44. package/dist/src/core/linter.js +66 -3
  45. package/dist/src/core/linter.js.map +1 -1
  46. package/dist/src/core/messages.d.ts +79 -2
  47. package/dist/src/core/messages.d.ts.map +1 -1
  48. package/dist/src/core/messages.js +25 -0
  49. package/dist/src/core/messages.js.map +1 -1
  50. package/dist/src/core/parser.d.ts.map +1 -1
  51. package/dist/src/core/parser.js +10 -0
  52. package/dist/src/core/parser.js.map +1 -1
  53. package/dist/src/core/program.d.ts +11 -1
  54. package/dist/src/core/program.d.ts.map +1 -1
  55. package/dist/src/core/program.js +39 -1
  56. package/dist/src/core/program.js.map +1 -1
  57. package/dist/src/core/semantic-walker.d.ts.map +1 -1
  58. package/dist/src/core/semantic-walker.js +3 -0
  59. package/dist/src/core/semantic-walker.js.map +1 -1
  60. package/dist/src/core/type-relation-checker.d.ts.map +1 -1
  61. package/dist/src/core/type-relation-checker.js +17 -6
  62. package/dist/src/core/type-relation-checker.js.map +1 -1
  63. package/dist/src/core/types.d.ts +66 -1
  64. package/dist/src/core/types.d.ts.map +1 -1
  65. package/dist/src/core/types.js.map +1 -1
  66. package/dist/src/experimental/mutators.js +1 -0
  67. package/dist/src/experimental/mutators.js.map +1 -1
  68. package/dist/src/formatter/print/comment-handler.d.ts.map +1 -1
  69. package/dist/src/formatter/print/comment-handler.js +34 -60
  70. package/dist/src/formatter/print/comment-handler.js.map +1 -1
  71. package/dist/src/formatter/print/printer.d.ts.map +1 -1
  72. package/dist/src/formatter/print/printer.js +76 -12
  73. package/dist/src/formatter/print/printer.js.map +1 -1
  74. package/dist/src/index.d.ts +3 -3
  75. package/dist/src/index.d.ts.map +1 -1
  76. package/dist/src/index.js +2 -2
  77. package/dist/src/index.js.map +1 -1
  78. package/dist/src/install/install.d.ts.map +1 -1
  79. package/dist/src/install/install.js +26 -5
  80. package/dist/src/install/install.js.map +1 -1
  81. package/dist/src/lib/examples.js +7 -0
  82. package/dist/src/lib/examples.js.map +1 -1
  83. package/dist/src/package-manger/npm-package-download.d.ts +2 -2
  84. package/dist/src/package-manger/npm-package-download.d.ts.map +1 -1
  85. package/dist/src/package-manger/npm-package-download.js +22 -3
  86. package/dist/src/package-manger/npm-package-download.js.map +1 -1
  87. package/dist/src/package-manger/npm-registry.d.ts +30 -31
  88. package/dist/src/package-manger/npm-registry.d.ts.map +1 -1
  89. package/dist/src/package-manger/npm-registry.js +58 -4
  90. package/dist/src/package-manger/npm-registry.js.map +1 -1
  91. package/dist/src/server/completion.js +10 -1
  92. package/dist/src/server/completion.js.map +1 -1
  93. package/dist/src/server/tmlanguage.d.ts.map +1 -1
  94. package/dist/src/server/tmlanguage.js +16 -1
  95. package/dist/src/server/tmlanguage.js.map +1 -1
  96. package/dist/src/server/type-details.js +28 -12
  97. package/dist/src/server/type-details.js.map +1 -1
  98. package/dist/src/yaml/diagnostics.js +4 -1
  99. package/dist/src/yaml/diagnostics.js.map +1 -1
  100. package/dist/typespec.tmLanguage +36 -0
  101. package/package.json +16 -16
@@ -1,7 +1,7 @@
1
1
  import type { LibraryMetadata } from "./types.js";
2
2
  export type Colors = "reset" | "bold" | "dim" | "italic" | "underline" | "inverse" | "hidden" | "strikethrough" | "black" | "red" | "green" | "yellow" | "blue" | "magenta" | "cyan" | "white" | "gray" | "bgBlack" | "bgRed" | "bgGreen" | "bgYellow" | "bgBlue" | "bgMagenta" | "bgCyan" | "bgWhite";
3
3
  export interface ExternalErrorInfo {
4
- kind: "emitter" | "validator";
4
+ kind: "emitter" | "validator" | "info";
5
5
  error: unknown;
6
6
  metadata: LibraryMetadata;
7
7
  }
@@ -1 +1 @@
1
- {"version":3,"file":"external-error.d.ts","sourceRoot":"","sources":["../../../src/core/external-error.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAGlD,MAAM,MAAM,MAAM,GACd,OAAO,GACP,MAAM,GACN,KAAK,GACL,QAAQ,GACR,WAAW,GACX,SAAS,GACT,QAAQ,GACR,eAAe,GACf,OAAO,GACP,KAAK,GACL,OAAO,GACP,QAAQ,GACR,MAAM,GACN,SAAS,GACT,MAAM,GACN,OAAO,GACP,MAAM,GACN,SAAS,GACT,OAAO,GACP,SAAS,GACT,UAAU,GACV,QAAQ,GACR,WAAW,GACX,QAAQ,GACR,SAAS,CAAC;AAEd,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,SAAS,GAAG,WAAW,CAAC;IAC9B,KAAK,EAAE,OAAO,CAAC;IACf,QAAQ,EAAE,eAAe,CAAC;CAC3B;AAED,MAAM,MAAM,aAAa,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;AACpE,qBAAa,aAAc,SAAQ,KAAK;IACnB,IAAI,EAAE,iBAAiB;gBAAvB,IAAI,EAAE,iBAAiB;IAK1C,MAAM,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM;CAGrC"}
1
+ {"version":3,"file":"external-error.d.ts","sourceRoot":"","sources":["../../../src/core/external-error.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAGlD,MAAM,MAAM,MAAM,GACd,OAAO,GACP,MAAM,GACN,KAAK,GACL,QAAQ,GACR,WAAW,GACX,SAAS,GACT,QAAQ,GACR,eAAe,GACf,OAAO,GACP,KAAK,GACL,OAAO,GACP,QAAQ,GACR,MAAM,GACN,SAAS,GACT,MAAM,GACN,OAAO,GACP,MAAM,GACN,SAAS,GACT,OAAO,GACP,SAAS,GACT,UAAU,GACV,QAAQ,GACR,WAAW,GACX,QAAQ,GACR,SAAS,CAAC;AAEd,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,SAAS,GAAG,WAAW,GAAG,MAAM,CAAC;IACvC,KAAK,EAAE,OAAO,CAAC;IACf,QAAQ,EAAE,eAAe,CAAC;CAC3B;AAED,MAAM,MAAM,aAAa,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;AACpE,qBAAa,aAAc,SAAQ,KAAK;IACnB,IAAI,EAAE,iBAAiB;gBAAvB,IAAI,EAAE,iBAAiB;IAK1C,MAAM,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM;CAGrC"}
@@ -15,7 +15,9 @@ function renderExternalErrorInfo(info, color = (x) => x) {
15
15
  const msg = [
16
16
  color(kind === "emitter"
17
17
  ? `Emitter "${metadata.name}" crashed! This is a bug.`
18
- : `Library "${metadata.name}" $onValidate crashed! This is a bug.`, "red"),
18
+ : kind === "info"
19
+ ? `Library "${metadata.name}" $provideTypeInfo crashed! This is a bug.`
20
+ : `Library "${metadata.name}" $onValidate crashed! This is a bug.`, "red"),
19
21
  ];
20
22
  if (metadata.bugs?.url) {
21
23
  msg.push(`Please file an issue at ${color(metadata.bugs?.url, "cyan")}`);
@@ -1 +1 @@
1
- {"version":3,"file":"external-error.js","sourceRoot":"","sources":["../../../src/core/external-error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAsC1C,MAAM,OAAO,aAAc,SAAQ,KAAK;IACnB;IAAnB,YAAmB,IAAuB;QACxC,KAAK,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC,CAAC;QADpB,SAAI,GAAJ,IAAI,CAAmB;QAExC,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;IAC9B,CAAC;IAED,MAAM,CAAC,KAAoB;QACzB,OAAO,uBAAuB,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACnD,CAAC;CACF;AAED,SAAS,uBAAuB,CAC9B,IAAuB,EACvB,QAAiD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAEzD,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;IAChC,MAAM,GAAG,GAAG;QACV,KAAK,CACH,IAAI,KAAK,SAAS;YAChB,CAAC,CAAC,YAAY,QAAQ,CAAC,IAAI,2BAA2B;YACtD,CAAC,CAAC,YAAY,QAAQ,CAAC,IAAI,uCAAuC,EACpE,KAAK,CACN;KACF,CAAC;IACF,IAAI,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC;QACvB,GAAG,CAAC,IAAI,CAAC,2BAA2B,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;IAC3E,CAAC;SAAM,CAAC;QACN,GAAG,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAC;IAClE,CAAC;IACD,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACb,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;IAE7C,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEb,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;IACzC,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACxB,CAAC;AAED,SAAS,aAAa,CAAC,EAAE,KAAK,EAAqB;IACjD,IACE,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,OAAO,IAAI,KAAK;QAChB,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,EAC/B,CAAC;QACD,OAAO,KAAK,CAAC,KAAK,CAAC;IACrB,CAAC;SAAM,CAAC;QACN,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CAAC,QAAyB,EAAE,KAAoB;IACpE,MAAM,OAAO,GAAG;QACd,iBAAiB,EAAE,QAAQ,CAAC,OAAO,IAAI,GAAG;QAC1C,2BAA2B,EAAE,QAAQ,CAAC,OAAO;KAC9C,CAAC;IACF,OAAO;QACL,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;QACd,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC;QACnF,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;KACf,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"external-error.js","sourceRoot":"","sources":["../../../src/core/external-error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAsC1C,MAAM,OAAO,aAAc,SAAQ,KAAK;IACnB;IAAnB,YAAmB,IAAuB;QACxC,KAAK,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC,CAAC;QADpB,SAAI,GAAJ,IAAI,CAAmB;QAExC,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;IAC9B,CAAC;IAED,MAAM,CAAC,KAAoB;QACzB,OAAO,uBAAuB,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACnD,CAAC;CACF;AAED,SAAS,uBAAuB,CAC9B,IAAuB,EACvB,QAAiD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAEzD,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;IAChC,MAAM,GAAG,GAAG;QACV,KAAK,CACH,IAAI,KAAK,SAAS;YAChB,CAAC,CAAC,YAAY,QAAQ,CAAC,IAAI,2BAA2B;YACtD,CAAC,CAAC,IAAI,KAAK,MAAM;gBACf,CAAC,CAAC,YAAY,QAAQ,CAAC,IAAI,4CAA4C;gBACvE,CAAC,CAAC,YAAY,QAAQ,CAAC,IAAI,uCAAuC,EACtE,KAAK,CACN;KACF,CAAC;IACF,IAAI,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC;QACvB,GAAG,CAAC,IAAI,CAAC,2BAA2B,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;IAC3E,CAAC;SAAM,CAAC;QACN,GAAG,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAC;IAClE,CAAC;IACD,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACb,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;IAE7C,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEb,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;IACzC,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACxB,CAAC;AAED,SAAS,aAAa,CAAC,EAAE,KAAK,EAAqB;IACjD,IACE,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,OAAO,IAAI,KAAK;QAChB,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,EAC/B,CAAC;QACD,OAAO,KAAK,CAAC,KAAK,CAAC;IACrB,CAAC;SAAM,CAAC;QACN,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CAAC,QAAyB,EAAE,KAAoB;IACpE,MAAM,OAAO,GAAG;QACd,iBAAiB,EAAE,QAAQ,CAAC,OAAO,IAAI,GAAG;QAC1C,2BAA2B,EAAE,QAAQ,CAAC,OAAO;KAC9C,CAAC;IACF,OAAO;QACL,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;QACd,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC;QACnF,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;KACf,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC"}
@@ -10,6 +10,12 @@ export declare const compilerFeatures: {
10
10
  readonly "auto-decorators": {
11
11
  readonly description: "Allows use of auto decorator declarations without experimental warnings in project code.";
12
12
  };
13
+ readonly "type-info-provider": {
14
+ readonly description: "Enables the experimental `$provideTypeInfo` provider allowing libraries to contribute extra information about types to IDE hover and tooling (queried via `program.getTypeInfo`).";
15
+ };
16
+ readonly "union-extends": {
17
+ readonly description: "Enables experimental union `extends` clauses in project code.";
18
+ };
13
19
  };
14
20
  export type CompilerFeatureName = keyof typeof compilerFeatures;
15
21
  export declare const compilerFeatureNames: CompilerFeatureName[];
@@ -1 +1 @@
1
- {"version":3,"file":"features.d.ts","sourceRoot":"","sources":["../../../src/core/features.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAED,eAAO,MAAM,gBAAgB;;;;;;;CASiC,CAAC;AAE/D,MAAM,MAAM,mBAAmB,GAAG,MAAM,OAAO,gBAAgB,CAAC;AAEhE,eAAO,MAAM,oBAAoB,EAAoC,mBAAmB,EAAE,CAAC;AAI3F,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,IAAI,mBAAmB,CAErF;AAED,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,mBAAmB,EAC5B,MAAM,CAAC,EAAE,gBAAgB,GACxB,OAAO,CAmBT"}
1
+ {"version":3,"file":"features.d.ts","sourceRoot":"","sources":["../../../src/core/features.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAED,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;CAgBiC,CAAC;AAE/D,MAAM,MAAM,mBAAmB,GAAG,MAAM,OAAO,gBAAgB,CAAC;AAEhE,eAAO,MAAM,oBAAoB,EAAoC,mBAAmB,EAAE,CAAC;AAI3F,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,IAAI,mBAAmB,CAErF;AAED,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,mBAAmB,EAC5B,MAAM,CAAC,EAAE,gBAAgB,GACxB,OAAO,CAmBT"}
@@ -6,6 +6,12 @@ export const compilerFeatures = {
6
6
  "auto-decorators": {
7
7
  description: "Allows use of auto decorator declarations without experimental warnings in project code.",
8
8
  },
9
+ "type-info-provider": {
10
+ description: "Enables the experimental `$provideTypeInfo` provider allowing libraries to contribute extra information about types to IDE hover and tooling (queried via `program.getTypeInfo`).",
11
+ },
12
+ "union-extends": {
13
+ description: "Enables experimental union `extends` clauses in project code.",
14
+ },
9
15
  };
10
16
  export const compilerFeatureNames = Object.keys(compilerFeatures);
11
17
  const compilerFeatureNameSet = new Set(compilerFeatureNames);
@@ -1 +1 @@
1
- {"version":3,"file":"features.js","sourceRoot":"","sources":["../../../src/core/features.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAQnE,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,uBAAuB,EAAE;QACvB,WAAW,EACT,oFAAoF;KACvF;IACD,iBAAiB,EAAE;QACjB,WAAW,EACT,0FAA0F;KAC7F;CAC2D,CAAC;AAI/D,MAAM,CAAC,MAAM,oBAAoB,GAAG,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAA0B,CAAC;AAE3F,MAAM,sBAAsB,GAAG,IAAI,GAAG,CAAS,oBAAoB,CAAC,CAAC;AAErE,MAAM,UAAU,qBAAqB,CAAC,OAAe;IACnD,OAAO,sBAAsB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,OAAgB,EAChB,OAA4B,EAC5B,MAAyB;IAEzB,uFAAuF;IACvF,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,OAAO,OAAO,CAAC,eAAe,CAAC,UAAU,EAAE,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC;IAClF,CAAC;IAED,uFAAuF;IACvF,uFAAuF;IACvF,kCAAkC;IAClC,MAAM,OAAO,GAAG,kBAAkB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACpD,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;QACrB,KAAK,SAAS;YACZ,OAAO,OAAO,CAAC,eAAe,CAAC,UAAU,EAAE,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC;QAClF,KAAK,SAAS;YACZ,OAAO,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC;QACtD;YACE,kEAAkE;YAClE,OAAO,KAAK,CAAC;IACjB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"features.js","sourceRoot":"","sources":["../../../src/core/features.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAQnE,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,uBAAuB,EAAE;QACvB,WAAW,EACT,oFAAoF;KACvF;IACD,iBAAiB,EAAE;QACjB,WAAW,EACT,0FAA0F;KAC7F;IACD,oBAAoB,EAAE;QACpB,WAAW,EACT,mLAAmL;KACtL;IACD,eAAe,EAAE;QACf,WAAW,EAAE,+DAA+D;KAC7E;CAC2D,CAAC;AAI/D,MAAM,CAAC,MAAM,oBAAoB,GAAG,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAA0B,CAAC;AAE3F,MAAM,sBAAsB,GAAG,IAAI,GAAG,CAAS,oBAAoB,CAAC,CAAC;AAErE,MAAM,UAAU,qBAAqB,CAAC,OAAe;IACnD,OAAO,sBAAsB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,OAAgB,EAChB,OAA4B,EAC5B,MAAyB;IAEzB,uFAAuF;IACvF,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,OAAO,OAAO,CAAC,eAAe,CAAC,UAAU,EAAE,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC;IAClF,CAAC;IAED,uFAAuF;IACvF,uFAAuF;IACvF,kCAAkC;IAClC,MAAM,OAAO,GAAG,kBAAkB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACpD,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;QACrB,KAAK,SAAS;YACZ,OAAO,OAAO,CAAC,eAAe,CAAC,UAAU,EAAE,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC;QAClF,KAAK,SAAS;YACZ,OAAO,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC;QACtD;YACE,kEAAkE;YAClE,OAAO,KAAK,CAAC;IACjB,CAAC;AACH,CAAC"}
@@ -2,7 +2,7 @@ export { getDiscriminatedUnion, getDiscriminatedUnionFromInheritance, } from "./
2
2
  export type { DiscriminatedUnion, DiscriminatedUnionLegacy } from "./discriminator-utils.js";
3
3
  export { getLocationContext } from "./location-context.js";
4
4
  export { listOperationsIn, type ListOperationOptions } from "./operation-utils.js";
5
- export { interpolatePath } from "./path-interpolation.js";
5
+ export { interpolatePath, sanitizePathSegment } from "./path-interpolation.js";
6
6
  export { cacheRawText, getCachedRawText, getRawTextWithCache } from "./raw-text-cache.js";
7
7
  export { explainStringTemplateNotSerializable } from "./string-template-utils.js";
8
8
  export { printIdentifier as formatIdentifier, printIdentifier } from "./syntax-utils.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/helpers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,oCAAoC,GACrC,MAAM,0BAA0B,CAAC;AAClC,YAAY,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AAC7F,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,KAAK,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AACnF,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE1D,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1F,OAAO,EAAE,oCAAoC,EAAE,MAAM,4BAA4B,CAAC;AAClF,OAAO,EAAE,eAAe,IAAI,gBAAgB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzF,OAAO,EACL,aAAa,EACb,oBAAoB,EACpB,WAAW,EACX,cAAc,GACf,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EACL,UAAU,EACV,aAAa,EACb,KAAK,kBAAkB,EACvB,KAAK,aAAa,EAClB,KAAK,YAAY,GAClB,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/helpers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,oCAAoC,GACrC,MAAM,0BAA0B,CAAC;AAClC,YAAY,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AAC7F,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,KAAK,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AACnF,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAE/E,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1F,OAAO,EAAE,oCAAoC,EAAE,MAAM,4BAA4B,CAAC;AAClF,OAAO,EAAE,eAAe,IAAI,gBAAgB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzF,OAAO,EACL,aAAa,EACb,oBAAoB,EACpB,WAAW,EACX,cAAc,GACf,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EACL,UAAU,EACV,aAAa,EACb,KAAK,kBAAkB,EACvB,KAAK,aAAa,EAClB,KAAK,YAAY,GAClB,MAAM,qBAAqB,CAAC"}
@@ -1,7 +1,7 @@
1
1
  export { getDiscriminatedUnion, getDiscriminatedUnionFromInheritance, } from "./discriminator-utils.js";
2
2
  export { getLocationContext } from "./location-context.js";
3
3
  export { listOperationsIn } from "./operation-utils.js";
4
- export { interpolatePath } from "./path-interpolation.js";
4
+ export { interpolatePath, sanitizePathSegment } from "./path-interpolation.js";
5
5
  export { cacheRawText, getCachedRawText, getRawTextWithCache } from "./raw-text-cache.js";
6
6
  export { explainStringTemplateNotSerializable } from "./string-template-utils.js";
7
7
  export { printIdentifier as formatIdentifier, printIdentifier } from "./syntax-utils.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/helpers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,oCAAoC,GACrC,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAA6B,MAAM,sBAAsB,CAAC;AACnF,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE1D,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1F,OAAO,EAAE,oCAAoC,EAAE,MAAM,4BAA4B,CAAC;AAClF,OAAO,EAAE,eAAe,IAAI,gBAAgB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzF,OAAO,EACL,aAAa,EACb,oBAAoB,EACpB,WAAW,EACX,cAAc,GACf,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,UAAU,EACV,aAAa,GAId,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/helpers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,oCAAoC,GACrC,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAA6B,MAAM,sBAAsB,CAAC;AACnF,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAE/E,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1F,OAAO,EAAE,oCAAoC,EAAE,MAAM,4BAA4B,CAAC;AAClF,OAAO,EAAE,eAAe,IAAI,gBAAgB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzF,OAAO,EACL,aAAa,EACb,oBAAoB,EACpB,WAAW,EACX,cAAc,GACf,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,UAAU,EACV,aAAa,GAId,MAAM,qBAAqB,CAAC"}
@@ -1,3 +1,18 @@
1
+ /**
2
+ * Sanitize a value so it is safe to use as a single segment of a path.
3
+ *
4
+ * Path separators, drive letter separators and NUL are replaced with `_` and values only made of `.`(e.g. `.` or `..`) are replaced with `_`.
5
+ * This prevents values coming from a TypeSpec spec(e.g. a version or a service name) from escaping the directory the file was meant to be written to.
6
+ *
7
+ * @param value Value to sanitize.
8
+ *
9
+ * @example
10
+ * ```ts
11
+ * sanitizePathSegment("2021-10-01-preview"); // "2021-10-01-preview"
12
+ * sanitizePathSegment("../../etc/passwd"); // ".._.._etc_passwd"
13
+ * ```
14
+ */
15
+ export declare function sanitizePathSegment(value: string): string;
1
16
  /**
2
17
  * Interpolate a path template
3
18
  * @param pathTemplate Path template
@@ -1 +1 @@
1
- {"version":3,"file":"path-interpolation.d.ts","sourceRoot":"","sources":["../../../../src/core/helpers/path-interpolation.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,wBAAgB,eAAe,CAC7B,YAAY,EAAE,MAAM,EACpB,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,GACtD,MAAM,CASR"}
1
+ {"version":3,"file":"path-interpolation.d.ts","sourceRoot":"","sources":["../../../../src/core/helpers/path-interpolation.ts"],"names":[],"mappings":"AAKA;;;;;;;;;;;;;GAaG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAGzD;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAC7B,YAAY,EAAE,MAAM,EACpB,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,GACtD,MAAM,CASR"}
@@ -1,4 +1,24 @@
1
1
  const VariableInterpolationRegex = /{([a-zA-Z-_.]+)}(\/|\.?)/g;
2
+ const UnsafePathSegmentCharsRegex = /[/\\:\0]/g;
3
+ const OnlyDotsRegex = /^\.+$/;
4
+ /**
5
+ * Sanitize a value so it is safe to use as a single segment of a path.
6
+ *
7
+ * Path separators, drive letter separators and NUL are replaced with `_` and values only made of `.`(e.g. `.` or `..`) are replaced with `_`.
8
+ * This prevents values coming from a TypeSpec spec(e.g. a version or a service name) from escaping the directory the file was meant to be written to.
9
+ *
10
+ * @param value Value to sanitize.
11
+ *
12
+ * @example
13
+ * ```ts
14
+ * sanitizePathSegment("2021-10-01-preview"); // "2021-10-01-preview"
15
+ * sanitizePathSegment("../../etc/passwd"); // ".._.._etc_passwd"
16
+ * ```
17
+ */
18
+ export function sanitizePathSegment(value) {
19
+ const sanitized = value.replace(UnsafePathSegmentCharsRegex, "_");
20
+ return OnlyDotsRegex.test(sanitized) ? "_" : sanitized;
21
+ }
2
22
  /**
3
23
  * Interpolate a path template
4
24
  * @param pathTemplate Path template
@@ -1 +1 @@
1
- {"version":3,"file":"path-interpolation.js","sourceRoot":"","sources":["../../../../src/core/helpers/path-interpolation.ts"],"names":[],"mappings":"AAAA,MAAM,0BAA0B,GAAG,2BAA2B,CAAC;AAE/D;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAC7B,YAAoB,EACpB,mBAAuD;IAEvD,OAAO,YAAY,CAAC,OAAO,CAAC,0BAA0B,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE;QACpF,MAAM,aAAa,GAAG,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG,CAAC;QACvD,MAAM,QAAQ,GAAG,iBAAiB,CAAC,mBAAmB,EAAE,UAAU,CAAC,CAAC;QACpE,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO,aAAa,CAAC,CAAC,CAAC,GAAG,QAAQ,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;QAC3D,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,iBAAiB,CACxB,mBAAuD,EACvD,UAAkB;IAElB,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACvC,IAAI,QAAQ,GAAQ,mBAAmB,CAAC;IACxC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC7B,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IAED,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACjC,OAAO,QAAQ,CAAC;IAClB,CAAC;SAAM,CAAC;QACN,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"path-interpolation.js","sourceRoot":"","sources":["../../../../src/core/helpers/path-interpolation.ts"],"names":[],"mappings":"AAAA,MAAM,0BAA0B,GAAG,2BAA2B,CAAC;AAE/D,MAAM,2BAA2B,GAAG,WAAW,CAAC;AAChD,MAAM,aAAa,GAAG,OAAO,CAAC;AAE9B;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAa;IAC/C,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,2BAA2B,EAAE,GAAG,CAAC,CAAC;IAClE,OAAO,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;AACzD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAC7B,YAAoB,EACpB,mBAAuD;IAEvD,OAAO,YAAY,CAAC,OAAO,CAAC,0BAA0B,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE;QACpF,MAAM,aAAa,GAAG,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG,CAAC;QACvD,MAAM,QAAQ,GAAG,iBAAiB,CAAC,mBAAmB,EAAE,UAAU,CAAC,CAAC;QACpE,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO,aAAa,CAAC,CAAC,CAAC,GAAG,QAAQ,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;QAC3D,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,iBAAiB,CACxB,mBAAuD,EACvD,UAAkB;IAElB,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACvC,IAAI,QAAQ,GAAQ,mBAAmB,CAAC;IACxC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC7B,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IAED,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACjC,OAAO,QAAQ,CAAC;IAClB,CAAC;SAAM,CAAC;QACN,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"type-name-utils.d.ts","sourceRoot":"","sources":["../../../../src/core/helpers/type-name-utils.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,MAAM,EAON,SAAS,EAIT,IAAI,EAGL,MAAM,aAAa,CAAC;AAIrB,MAAM,WAAW,eAAe;IAC9B,eAAe,CAAC,EAAE,CAAC,EAAE,EAAE,SAAS,KAAK,OAAO,CAAC;IAC7C,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,MAAM,CA2CzE;AAmCD,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,MAAM,CAkB/E;AAED,wBAAgB,cAAc,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAO5D;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,MAAM,CAavF"}
1
+ {"version":3,"file":"type-name-utils.d.ts","sourceRoot":"","sources":["../../../../src/core/helpers/type-name-utils.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,MAAM,EAON,SAAS,EAIT,IAAI,EAGL,MAAM,aAAa,CAAC;AAKrB,MAAM,WAAW,eAAe;IAC9B,eAAe,CAAC,EAAE,CAAC,EAAE,EAAE,SAAS,KAAK,OAAO,CAAC;IAC7C,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,MAAM,CA2CzE;AAmCD,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,MAAM,CAkB/E;AAED,wBAAgB,cAAc,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAO5D;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,MAAM,CAavF"}
@@ -1,5 +1,6 @@
1
1
  import { isDefined } from "../../utils/misc.js";
2
2
  import { isTemplateInstance, isType, isValue } from "../type-utils.js";
3
+ import { SyntaxKind } from "../types.js";
3
4
  import { getCachedRawText } from "./raw-text-cache.js";
4
5
  import { printIdentifier } from "./syntax-utils.js";
5
6
  export function getTypeName(type, options) {
@@ -138,6 +139,12 @@ function getScalarName(scalar, options) {
138
139
  }
139
140
  function getModelName(model, options) {
140
141
  const nsPrefix = getNamespacePrefix(model.namespace, options);
142
+ if (model.name === "") {
143
+ const operationParametersName = getOperationParametersName(model, options);
144
+ if (operationParametersName !== undefined) {
145
+ return operationParametersName;
146
+ }
147
+ }
141
148
  if (model.name === "" && model.properties.size === 0) {
142
149
  return "{}";
143
150
  }
@@ -169,6 +176,28 @@ function getModelName(model, options) {
169
176
  return modelName;
170
177
  }
171
178
  }
179
+ function getOperationParametersName(model, options) {
180
+ const node = model.node;
181
+ if (node?.kind !== SyntaxKind.ModelExpression)
182
+ return undefined;
183
+ const signature = node.parent;
184
+ if (signature?.kind !== SyntaxKind.OperationSignatureDeclaration ||
185
+ signature.parameters !== node) {
186
+ return undefined;
187
+ }
188
+ const operation = signature.parent;
189
+ if (operation?.kind !== SyntaxKind.OperationStatement)
190
+ return undefined;
191
+ const opName = getIdentifierName(operation.id.sv, options);
192
+ if (options?.nameOnly === true) {
193
+ return `${opName}::parameters`;
194
+ }
195
+ const iface = operation.parent;
196
+ const prefix = iface?.kind === SyntaxKind.InterfaceStatement
197
+ ? `${getNamespacePrefix(model.namespace, options)}${getIdentifierName(iface.id.sv, options)}.`
198
+ : getNamespacePrefix(model.namespace, options);
199
+ return `${prefix}${opName}::parameters`;
200
+ }
172
201
  function getUnionName(type, options) {
173
202
  const nsPrefix = type.expression ? "" : getNamespacePrefix(type.namespace, options);
174
203
  const typeName = type.name
@@ -1 +1 @@
1
- {"version":3,"file":"type-name-utils.js","sourceRoot":"","sources":["../../../../src/core/helpers/type-name-utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"type-name-utils.js","sourceRoot":"","sources":["../../../../src/core/helpers/type-name-utils.ts"],"names":[],"mappings":"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"}
@@ -61,11 +61,9 @@ function numericValueToJs(type, valueConstraint) {
61
61
  return type.value;
62
62
  }
63
63
  function objectValueToJs(type) {
64
- const result = {};
65
- for (const [key, value] of type.properties) {
66
- result[key] = marshalTypeForJs(value.value, undefined);
67
- }
68
- return result;
64
+ // Object.fromEntries defines every member as an own property, so special names
65
+ // like `__proto__` or `constructor` never interact with Object.prototype.
66
+ return Object.fromEntries([...type.properties].map(([key, value]) => [key, marshalTypeForJs(value.value, undefined)]));
69
67
  }
70
68
  function arrayValueToJs(type) {
71
69
  return type.values.map((x) => marshalTypeForJs(x, undefined));
@@ -1 +1 @@
1
- {"version":3,"file":"js-marshaller.js","sourceRoot":"","sources":["../../../src/core/js-marshaller.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"js-marshaller.js","sourceRoot":"","sources":["../../../src/core/js-marshaller.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { DiagnosticMessages, LinterDefinition, LinterRuleDefinition, PackageFlags, TypeSpecLibrary, TypeSpecLibraryDef } from "./types.js";
1
+ import type { DiagnosticMessages, LinterDefinition, LinterRuleDefinition, PackageFlags, TypeInfoProvider, TypeSpecLibrary, TypeSpecLibraryDef } from "./types.js";
2
2
  export { paramMessage } from "./param-message.js";
3
3
  /**
4
4
  * Create a new TypeSpec library definition.
@@ -23,6 +23,20 @@ export declare function createTypeSpecLibrary<const T extends {
23
23
  }, const E extends Record<string, any>, const State extends string = never>(lib: Readonly<TypeSpecLibraryDef<T, E, State>>): TypeSpecLibrary<T, E, State>;
24
24
  export declare function definePackageFlags(flags: PackageFlags): PackageFlags;
25
25
  export declare function defineLinter(def: LinterDefinition): LinterDefinition;
26
+ /**
27
+ * Define a `$provideTypeInfo` provider that contributes extra information about types to IDE hover
28
+ * documentation and tooling. This helper only provides typing; export the result as `$provideTypeInfo`
29
+ * from your library's entry point.
30
+ *
31
+ * @example
32
+ * ```ts
33
+ * export const $provideTypeInfo = defineTypeInfoProvider(({ target }) => {
34
+ * if (target.kind !== "Operation") return undefined;
35
+ * return { content: `Operation ${target.name}` };
36
+ * });
37
+ * ```
38
+ */
39
+ export declare function defineTypeInfoProvider(provider: TypeInfoProvider): TypeInfoProvider;
26
40
  /** Create a new linter rule. */
27
41
  export declare function createLinterRule<const N extends string, const T extends DiagnosticMessages, const Options extends Record<string, unknown> = Record<string, never>>(definition: LinterRuleDefinition<N, T, Options>): LinterRuleDefinition<N, T, Options>;
28
42
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"library.d.ts","sourceRoot":"","sources":["../../../src/core/library.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,kBAAkB,EAElB,gBAAgB,EAChB,oBAAoB,EACpB,YAAY,EAEZ,eAAe,EACf,kBAAkB,EACnB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AA4BlD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,CAAC,CAAC,SAAS;IAAE,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,CAAA;CAAE,EACtD,KAAK,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACnC,KAAK,CAAC,KAAK,SAAS,MAAM,GAAG,KAAK,EAClC,GAAG,EAAE,QAAQ,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAwC9E;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,YAAY,GAAG,YAAY,CAEpE;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,gBAAgB,GAAG,gBAAgB,CAEpE;AAED,gCAAgC;AAChC,wBAAgB,gBAAgB,CAC9B,KAAK,CAAC,CAAC,SAAS,MAAM,EACtB,KAAK,CAAC,CAAC,SAAS,kBAAkB,EAClC,KAAK,CAAC,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EACrE,UAAU,EAAE,oBAAoB,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,uCAGhD;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,MAAM,EACjB,GAAG,SAAS,EAAE,KAAK,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,GAC3C,IAAI,CAEN"}
1
+ {"version":3,"file":"library.d.ts","sourceRoot":"","sources":["../../../src/core/library.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,kBAAkB,EAElB,gBAAgB,EAChB,oBAAoB,EACpB,YAAY,EAEZ,gBAAgB,EAChB,eAAe,EACf,kBAAkB,EACnB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AA4BlD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,CAAC,CAAC,SAAS;IAAE,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,CAAA;CAAE,EACtD,KAAK,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACnC,KAAK,CAAC,KAAK,SAAS,MAAM,GAAG,KAAK,EAClC,GAAG,EAAE,QAAQ,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAwC9E;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,YAAY,GAAG,YAAY,CAEpE;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,gBAAgB,GAAG,gBAAgB,CAEpE;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,gBAAgB,GAAG,gBAAgB,CAEnF;AAED,gCAAgC;AAChC,wBAAgB,gBAAgB,CAC9B,KAAK,CAAC,CAAC,SAAS,MAAM,EACtB,KAAK,CAAC,CAAC,SAAS,kBAAkB,EAClC,KAAK,CAAC,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EACrE,UAAU,EAAE,oBAAoB,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,uCAGhD;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,MAAM,EACjB,GAAG,SAAS,EAAE,KAAK,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,GAC3C,IAAI,CAEN"}
@@ -77,6 +77,22 @@ export function definePackageFlags(flags) {
77
77
  export function defineLinter(def) {
78
78
  return def;
79
79
  }
80
+ /**
81
+ * Define a `$provideTypeInfo` provider that contributes extra information about types to IDE hover
82
+ * documentation and tooling. This helper only provides typing; export the result as `$provideTypeInfo`
83
+ * from your library's entry point.
84
+ *
85
+ * @example
86
+ * ```ts
87
+ * export const $provideTypeInfo = defineTypeInfoProvider(({ target }) => {
88
+ * if (target.kind !== "Operation") return undefined;
89
+ * return { content: `Operation ${target.name}` };
90
+ * });
91
+ * ```
92
+ */
93
+ export function defineTypeInfoProvider(provider) {
94
+ return provider;
95
+ }
80
96
  /** Create a new linter rule. */
81
97
  export function createLinterRule(definition) {
82
98
  compilerAssert(!definition.name.includes("/"), "Rule name cannot contain a '/'.");
@@ -1 +1 @@
1
- {"version":3,"file":"library.js","sourceRoot":"","sources":["../../../src/core/library.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"library.js","sourceRoot":"","sources":["../../../src/core/library.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import type { YamlScript } from "../yaml/types.js";
2
+ import type { Diagnostic, DiagnosticTarget, JSONSchemaType, LinterRuleSet, SystemHost } from "./types.js";
3
+ import { NoTarget } from "./types.js";
4
+ /** Prefix used in `extends` to reference a ruleset defined in a yaml file. */
5
+ export declare const linterRuleSetFilePrefix = "file:";
6
+ export declare const LinterRuleSetFileJsonSchema: JSONSchemaType<LinterRuleSet>;
7
+ /** A linter ruleset loaded from a yaml file. */
8
+ export interface LoadedLinterRuleSetFile {
9
+ readonly ruleSet: LinterRuleSet;
10
+ /** Parsed yaml, used to locate diagnostics reported for entries of this ruleset. */
11
+ readonly script: YamlScript;
12
+ }
13
+ /**
14
+ * Load a linter ruleset defined in a yaml file.
15
+ * @param host Host used to read the file.
16
+ * @param path Absolute path to the yaml file.
17
+ * @param target Target to report the file loading errors on. Typically the reference that led to this file.
18
+ */
19
+ export declare function loadLinterRuleSetFile(host: SystemHost, path: string, target?: DiagnosticTarget | typeof NoTarget): Promise<[LoadedLinterRuleSetFile | undefined, readonly Diagnostic[]]>;
20
+ //# sourceMappingURL=linter-ruleset-file.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"linter-ruleset-file.d.ts","sourceRoot":"","sources":["../../../src/core/linter-ruleset-file.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD,OAAO,KAAK,EACV,UAAU,EACV,gBAAgB,EAChB,cAAc,EACd,aAAa,EACb,UAAU,EACX,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,8EAA8E;AAC9E,eAAO,MAAM,uBAAuB,UAAU,CAAC;AAE/C,eAAO,MAAM,2BAA2B,EAAE,cAAc,CAAC,aAAa,CAyB9D,CAAC;AAIT,gDAAgD;AAChD,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;IAChC,oFAAoF;IACpF,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;CAC7B;AAED;;;;;GAKG;AACH,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,UAAU,EAChB,IAAI,EAAE,MAAM,EACZ,MAAM,GAAE,gBAAgB,GAAG,OAAO,QAAmB,GACpD,OAAO,CAAC,CAAC,uBAAuB,GAAG,SAAS,EAAE,SAAS,UAAU,EAAE,CAAC,CAAC,CAuBvE"}
@@ -0,0 +1,61 @@
1
+ import { doIO } from "../utils/io.js";
2
+ import { parseYaml } from "../yaml/parser.js";
3
+ import { createJSONSchemaValidator } from "./schema-validator.js";
4
+ import { NoTarget } from "./types.js";
5
+ /** Prefix used in `extends` to reference a ruleset defined in a yaml file. */
6
+ export const linterRuleSetFilePrefix = "file:";
7
+ export const LinterRuleSetFileJsonSchema = {
8
+ type: "object",
9
+ additionalProperties: false,
10
+ required: [],
11
+ properties: {
12
+ extends: {
13
+ type: "array",
14
+ nullable: true,
15
+ items: { type: "string" },
16
+ },
17
+ enable: {
18
+ type: "object",
19
+ required: [],
20
+ nullable: true,
21
+ additionalProperties: {
22
+ oneOf: [{ type: "boolean" }, { type: "object" }],
23
+ },
24
+ },
25
+ disable: {
26
+ type: "object",
27
+ required: [],
28
+ nullable: true,
29
+ additionalProperties: { type: "string" },
30
+ },
31
+ },
32
+ }; // ajv type system doesn't like the string templates
33
+ const ruleSetFileValidator = createJSONSchemaValidator(LinterRuleSetFileJsonSchema);
34
+ /**
35
+ * Load a linter ruleset defined in a yaml file.
36
+ * @param host Host used to read the file.
37
+ * @param path Absolute path to the yaml file.
38
+ * @param target Target to report the file loading errors on. Typically the reference that led to this file.
39
+ */
40
+ export async function loadLinterRuleSetFile(host, path, target = NoTarget) {
41
+ const diagnostics = [];
42
+ const reportDiagnostic = (d) => diagnostics.push(d);
43
+ const file = await doIO(host.readFile, path, reportDiagnostic, { diagnosticTarget: target });
44
+ if (file === undefined) {
45
+ return [undefined, diagnostics];
46
+ }
47
+ const [script, yamlDiagnostics] = parseYaml(file);
48
+ diagnostics.push(...yamlDiagnostics);
49
+ if (yamlDiagnostics.some((d) => d.severity === "error")) {
50
+ return [undefined, diagnostics];
51
+ }
52
+ // An empty yaml file is a valid, empty, ruleset.
53
+ const data = script.value ?? {};
54
+ const validationDiagnostics = ruleSetFileValidator.validate(data, script);
55
+ diagnostics.push(...validationDiagnostics);
56
+ if (validationDiagnostics.some((d) => d.severity === "error")) {
57
+ return [undefined, diagnostics];
58
+ }
59
+ return [{ ruleSet: data, script }, diagnostics];
60
+ }
61
+ //# sourceMappingURL=linter-ruleset-file.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"linter-ruleset-file.js","sourceRoot":"","sources":["../../../src/core/linter-ruleset-file.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE9C,OAAO,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAQlE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,8EAA8E;AAC9E,MAAM,CAAC,MAAM,uBAAuB,GAAG,OAAO,CAAC;AAE/C,MAAM,CAAC,MAAM,2BAA2B,GAAkC;IACxE,IAAI,EAAE,QAAQ;IACd,oBAAoB,EAAE,KAAK;IAC3B,QAAQ,EAAE,EAAE;IACZ,UAAU,EAAE;QACV,OAAO,EAAE;YACP,IAAI,EAAE,OAAO;YACb,QAAQ,EAAE,IAAI;YACd,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;SAC1B;QACD,MAAM,EAAE;YACN,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,EAAE;YACZ,QAAQ,EAAE,IAAI;YACd,oBAAoB,EAAE;gBACpB,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;aACjD;SACF;QACD,OAAO,EAAE;YACP,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,EAAE;YACZ,QAAQ,EAAE,IAAI;YACd,oBAAoB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;SACzC;KACF;CACK,CAAC,CAAC,oDAAoD;AAE9D,MAAM,oBAAoB,GAAG,yBAAyB,CAAC,2BAA2B,CAAC,CAAC;AASpF;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,IAAgB,EAChB,IAAY,EACZ,SAA6C,QAAQ;IAErD,MAAM,WAAW,GAAiB,EAAE,CAAC;IACrC,MAAM,gBAAgB,GAAG,CAAC,CAAa,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAChE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,gBAAgB,EAAE,EAAE,gBAAgB,EAAE,MAAM,EAAE,CAAC,CAAC;IAC7F,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,OAAO,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IAClC,CAAC;IAED,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAClD,WAAW,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,CAAC;IACrC,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC,EAAE,CAAC;QACxD,OAAO,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IAClC,CAAC;IAED,iDAAiD;IACjD,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC;IAChC,MAAM,qBAAqB,GAAG,oBAAoB,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC1E,WAAW,CAAC,IAAI,CAAC,GAAG,qBAAqB,CAAC,CAAC;IAC3C,IAAI,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC,EAAE,CAAC;QAC9D,OAAO,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IAClC,CAAC;IAED,OAAO,CAAC,EAAE,OAAO,EAAE,IAAqB,EAAE,MAAM,EAAE,EAAE,WAAW,CAAC,CAAC;AACnE,CAAC"}
@@ -1,3 +1,4 @@
1
+ import type { YamlScript } from "../yaml/types.js";
1
2
  import type { DiagnosticCodeResolver } from "./diagnostic-code.js";
2
3
  import type { DiagnosticCollector } from "./diagnostics.js";
3
4
  import type { Program } from "./program.js";
@@ -5,8 +6,21 @@ import type { Diagnostic, DiagnosticMessages, LinterDefinition, LinterResolvedDe
5
6
  type LinterLibraryInstance = {
6
7
  linter: LinterResolvedDefinition;
7
8
  };
9
+ /** Yaml a ruleset was defined in, used to locate diagnostics on the offending entry. */
10
+ export interface RuleSetYamlSource {
11
+ readonly script: YamlScript;
12
+ /** Path of the ruleset within the yaml. Empty in a ruleset file, `["linter"]` in `tspconfig.yaml`. */
13
+ readonly path: readonly string[];
14
+ }
15
+ export interface ExtendRuleSetOptions {
16
+ /** Directory used to resolve relative `file:` ruleset references. Defaults to the program project root. */
17
+ readonly baseDir?: string;
18
+ /** Yaml the ruleset was defined in. */
19
+ readonly source?: RuleSetYamlSource;
20
+ }
8
21
  export interface Linter {
9
- extendRuleSet(ruleSet: LinterRuleSet): Promise<readonly Diagnostic[]>;
22
+ /** Extend the current set of enabled rules with the given ruleset. */
23
+ extendRuleSet(ruleSet: LinterRuleSet, options?: ExtendRuleSetOptions): Promise<readonly Diagnostic[]>;
10
24
  registerLinterLibrary(name: string, lib?: LinterLibraryInstance): void;
11
25
  lint(): Promise<LinterResult>;
12
26
  }
@@ -1 +1 @@
1
- {"version":3,"file":"linter.d.ts","sourceRoot":"","sources":["../../../src/core/linter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAEnE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAQ5D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAG5C,OAAO,KAAK,EACV,UAAU,EACV,kBAAkB,EAClB,gBAAgB,EAChB,wBAAwB,EACxB,UAAU,EACV,iBAAiB,EAGjB,aAAa,EAGd,MAAM,YAAY,CAAC;AAGpB,KAAK,qBAAqB,GAAG;IAAE,MAAM,EAAE,wBAAwB,CAAA;CAAE,CAAC;AAElE,MAAM,WAAW,MAAM;IACrB,aAAa,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,SAAS,UAAU,EAAE,CAAC,CAAC;IACtE,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,qBAAqB,GAAG,IAAI,CAAC;IACvE,IAAI,IAAI,OAAO,CAAC,YAAY,CAAC,CAAC;CAC/B;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KAC/B,CAAC;CACH;AACD,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,WAAW,EAAE,SAAS,UAAU,EAAE,CAAC;IAC5C,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;CAC7B;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,gBAAgB,GACvB,wBAAwB,CAoB1B;AAED,wBAAgB,YAAY,CAC1B,OAAO,EAAE,OAAO,EAChB,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,qBAAqB,GAAG,SAAS,CAAC,EACzE,YAAY,CAAC,EAAE,sBAAsB,GACpC,MAAM,CA2SR;AAMD,wBAAgB,uBAAuB,CACrC,CAAC,SAAS,MAAM,EAChB,EAAE,SAAS,kBAAkB,EAC7B,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAEvC,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,UAAU,CAAC,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,EAChC,OAAO,EAAE,OAAO,EAChB,mBAAmB,EAAE,mBAAmB,GACvC,iBAAiB,CAAC,EAAE,EAAE,OAAO,CAAC,CA4ChC;AAED,eAAO,MAAM,wBAAwB,uBAAuB,CAAC;AAC7D,wBAAgB,0BAA0B,IAAI,qBAAqB,CAMlE"}
1
+ {"version":3,"file":"linter.d.ts","sourceRoot":"","sources":["../../../src/core/linter.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAEnE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAU5D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAG5C,OAAO,KAAK,EACV,UAAU,EACV,kBAAkB,EAElB,gBAAgB,EAChB,wBAAwB,EACxB,UAAU,EACV,iBAAiB,EAGjB,aAAa,EAGd,MAAM,YAAY,CAAC;AAGpB,KAAK,qBAAqB,GAAG;IAAE,MAAM,EAAE,wBAAwB,CAAA;CAAE,CAAC;AAiBlE,wFAAwF;AACxF,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAC5B,sGAAsG;IACtG,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;CAClC;AAED,MAAM,WAAW,oBAAoB;IACnC,2GAA2G;IAC3G,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,uCAAuC;IACvC,QAAQ,CAAC,MAAM,CAAC,EAAE,iBAAiB,CAAC;CACrC;AAED,MAAM,WAAW,MAAM;IACrB,sEAAsE;IACtE,aAAa,CACX,OAAO,EAAE,aAAa,EACtB,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,SAAS,UAAU,EAAE,CAAC,CAAC;IAClC,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,qBAAqB,GAAG,IAAI,CAAC;IACvE,IAAI,IAAI,OAAO,CAAC,YAAY,CAAC,CAAC;CAC/B;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KAC/B,CAAC;CACH;AACD,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,WAAW,EAAE,SAAS,UAAU,EAAE,CAAC;IAC5C,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;CAC7B;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,gBAAgB,GACvB,wBAAwB,CAoB1B;AAED,wBAAgB,YAAY,CAC1B,OAAO,EAAE,OAAO,EAChB,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,qBAAqB,GAAG,SAAS,CAAC,EACzE,YAAY,CAAC,EAAE,sBAAsB,GACpC,MAAM,CAqYR;AAMD,wBAAgB,uBAAuB,CACrC,CAAC,SAAS,MAAM,EAChB,EAAE,SAAS,kBAAkB,EAC7B,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAEvC,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,UAAU,CAAC,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,EAChC,OAAO,EAAE,OAAO,EAChB,mBAAmB,EAAE,mBAAmB,GACvC,iBAAiB,CAAC,EAAE,EAAE,OAAO,CAAC,CA4ChC;AAED,eAAO,MAAM,wBAAwB,uBAAuB,CAAC;AAC7D,wBAAgB,0BAA0B,IAAI,qBAAqB,CAMlE"}