@typespec/compiler 1.1.0-dev.1 → 1.1.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 (56) hide show
  1. package/dist/manifest.js +2 -2
  2. package/dist/src/core/checker.d.ts +6 -0
  3. package/dist/src/core/checker.d.ts.map +1 -1
  4. package/dist/src/core/checker.js +28 -8
  5. package/dist/src/core/checker.js.map +1 -1
  6. package/dist/src/core/cli/actions/compile/args.d.ts +2 -0
  7. package/dist/src/core/cli/actions/compile/args.d.ts.map +1 -1
  8. package/dist/src/core/cli/actions/compile/args.js.map +1 -1
  9. package/dist/src/core/cli/actions/compile/compile.d.ts.map +1 -1
  10. package/dist/src/core/cli/actions/compile/compile.js +54 -0
  11. package/dist/src/core/cli/actions/compile/compile.js.map +1 -1
  12. package/dist/src/core/cli/cli.js +5 -0
  13. package/dist/src/core/cli/cli.js.map +1 -1
  14. package/dist/src/core/linter.d.ts +11 -1
  15. package/dist/src/core/linter.d.ts.map +1 -1
  16. package/dist/src/core/linter.js +17 -2
  17. package/dist/src/core/linter.js.map +1 -1
  18. package/dist/src/core/name-resolver.js +1 -1
  19. package/dist/src/core/name-resolver.js.map +1 -1
  20. package/dist/src/core/program.d.ts.map +1 -1
  21. package/dist/src/core/program.js +40 -8
  22. package/dist/src/core/program.js.map +1 -1
  23. package/dist/src/core/stats.d.ts +39 -0
  24. package/dist/src/core/stats.d.ts.map +1 -0
  25. package/dist/src/core/stats.js +19 -0
  26. package/dist/src/core/stats.js.map +1 -0
  27. package/dist/src/core/types.d.ts.map +1 -1
  28. package/dist/src/core/types.js.map +1 -1
  29. package/dist/src/core/visibility/core.d.ts +7 -0
  30. package/dist/src/core/visibility/core.d.ts.map +1 -1
  31. package/dist/src/core/visibility/core.js +60 -0
  32. package/dist/src/core/visibility/core.js.map +1 -1
  33. package/dist/src/internals/index.d.ts +1 -0
  34. package/dist/src/internals/index.d.ts.map +1 -1
  35. package/dist/src/lib/visibility.d.ts.map +1 -1
  36. package/dist/src/lib/visibility.js +18 -79
  37. package/dist/src/lib/visibility.js.map +1 -1
  38. package/dist/src/server/compile-service.d.ts +5 -1
  39. package/dist/src/server/compile-service.d.ts.map +1 -1
  40. package/dist/src/server/compile-service.js +16 -3
  41. package/dist/src/server/compile-service.js.map +1 -1
  42. package/dist/src/server/index.d.ts +1 -1
  43. package/dist/src/server/index.d.ts.map +1 -1
  44. package/dist/src/server/server-track-action-task.d.ts +18 -0
  45. package/dist/src/server/server-track-action-task.d.ts.map +1 -0
  46. package/dist/src/server/server-track-action-task.js +70 -0
  47. package/dist/src/server/server-track-action-task.js.map +1 -0
  48. package/dist/src/server/server.js +2 -0
  49. package/dist/src/server/server.js.map +1 -1
  50. package/dist/src/server/serverlib.d.ts.map +1 -1
  51. package/dist/src/server/serverlib.js +52 -0
  52. package/dist/src/server/serverlib.js.map +1 -1
  53. package/dist/src/server/types.d.ts +21 -2
  54. package/dist/src/server/types.d.ts.map +1 -1
  55. package/dist/src/server/types.js.map +1 -1
  56. package/package.json +2 -2
package/dist/manifest.js CHANGED
@@ -1,4 +1,4 @@
1
1
  export default {
2
- "version": "1.1.0-dev.1",
3
- "commit": "469bab62b305c73469c81912682267b4359016c1"
2
+ "version": "1.1.0-dev.10",
3
+ "commit": "ef9b2c683351ba88190c8f9a0be4333cf8de55e5"
4
4
  };
@@ -49,6 +49,12 @@ export interface Checker {
49
49
  */
50
50
  getValueExactType(value: Value): Type | undefined;
51
51
  }
52
+ export interface CheckerStats {
53
+ /** Number of types created */
54
+ createdTypes: number;
55
+ /** Number of types finished */
56
+ finishedTypes: number;
57
+ }
52
58
  interface TypePrototype {
53
59
  }
54
60
  export interface TypeSpecCompletionItem {
@@ -1 +1 @@
1
- {"version":3,"file":"checker.d.ts","sourceRoot":"","sources":["../../../src/core/checker.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AASlD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAY5C,OAAO,EAML,cAAc,EACd,kBAAkB,EA+BlB,mBAAmB,EAWnB,KAAK,EAGL,aAAa,EAOb,IAAI,EAGJ,cAAc,EACd,kBAAkB,EASlB,MAAM,EAMN,WAAW,EACX,QAAQ,EACR,aAAa,EACb,iBAAiB,EAUjB,GAAG,EAaH,IAAI,EAaJ,KAAK,EAEN,MAAM,YAAY,CAAC;AAEpB,MAAM,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,EAAE,YAAY,GAAG,YAAY,GAAG,MAAM,aAAa,CAAC,CAAC;AAE5F,MAAM,WAAW,OAAO;IAGtB;;;OAGG;IACH,cAAc,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IAgBjC,SAAS,CAAC,CAAC,SAAS,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,eAAe,CAAC,EAAE;SAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;KAAE,GAAG,CAAC,CAAC;IAKnF,UAAU,CAAC,CAAC,SAAS,IAAI,SAAS,GAAG,GAAG,eAAe,GAAG,KAAK,EAC7D,OAAO,EAAE,CAAC,GACT,CAAC,GAAG,aAAa,GAAG;QAAE,UAAU,EAAE,OAAO,CAAC;QAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5E,mBAAmB,CAAC,CAAC,SAAS,IAAI,SAAS,GAAG,GAAG,eAAe,GAAG,KAAK,EACtE,OAAO,EAAE,CAAC,GACT,CAAC,GAAG,aAAa,CAAC;IACrB,UAAU,CAAC,CAAC,SAAS,IAAI,EAAE,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC;IAC1C,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,iBAAiB,GAAG,aAAa,CAAC;IAC1E,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,kBAAkB,GAAG,cAAc,CAAC;IAC5E,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,kBAAkB,GAAG,cAAc,CAAC;IAC7E,iBAAiB,CACf,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,EAChC,IAAI,CAAC,EAAE,iBAAiB,GAAG,kBAAkB,GAAG,kBAAkB,GACjE,aAAa,GAAG,cAAc,GAAG,cAAc,CAAC;IACnD,iBAAiB,CACf,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,EAChC,IAAI,CAAC,EAAE,iBAAiB,GAAG,kBAAkB,GAAG,kBAAkB,GACjE,aAAa,GAAG,cAAc,GAAG,cAAc,CAAC;IAgBnD;;;;OAIG;IACH,SAAS,CACP,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,mBAAmB,GAC5B,IAAI,IAAI,MAAM,GAAG;QAAE,IAAI,EAAE,mBAAmB,CAAA;KAAE,CAAC;IAClD,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,IAAI,IAAI,IAAI,GAAG;QAAE,IAAI,EAAE,WAAW,CAAA;KAAE,CAAC;IAEnF;;;OAGG;IACH,UAAU,CAAC,CAAC,SAAS,MAAM,QAAQ,EAAE,IAAI,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAE3D;;;;;;;;OAQG;IACH,iBAAiB,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,SAAS,CAAC;CAkCnD;AAED,UAAU,aAAa;CAAG;AAE1B,MAAM,WAAW,sBAAsB;IACrC,GAAG,EAAE,GAAG,CAAC;IAET;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AASD,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,GAAG,OAAO,CA2pL/E;AAgED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,KAAK,EACZ,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,aAAa,KAAK,OAAO,GAC5C,KAAK,CAyEP;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,CAAC,QAAQ,EAAE,aAAa,KAAK,OAAO,GAC3C,KAAK,CAqCP;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,aAAa,GAAG,aAAa,GAAG,SAAS,CAcxF;AAED;;;;;;;GAOG;AACH,wBAAiB,uBAAuB,CAAC,KAAK,EAAE,KAAK,2CAapD;AAYD,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,GAAG,CAAC,CAEpF"}
1
+ {"version":3,"file":"checker.d.ts","sourceRoot":"","sources":["../../../src/core/checker.ts"],"names":[],"mappings":"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"}
@@ -25,6 +25,10 @@ import { IdentifierKind, ResolutionResultFlags, SyntaxKind, } from "./types.js";
25
25
  const TypeInstantiationMap = class extends MultiKeyMap {
26
26
  };
27
27
  export function createChecker(program, resolver) {
28
+ const stats = {
29
+ createdTypes: 0,
30
+ finishedTypes: 0,
31
+ };
28
32
  const stdTypes = {};
29
33
  const indeterminateEntities = new WeakMap();
30
34
  const docFromCommentForSym = new Map();
@@ -83,6 +87,7 @@ export function createChecker(program, resolver) {
83
87
  getValueExactType,
84
88
  getTemplateParameterUsageMap,
85
89
  isTypeAssignableTo: undefined,
90
+ stats,
86
91
  };
87
92
  const relation = createTypeRelationChecker(program, checker);
88
93
  checker.isTypeAssignableTo = relation.isTypeAssignableTo;
@@ -233,7 +238,7 @@ export function createChecker(program, resolver) {
233
238
  }
234
239
  return entity;
235
240
  }
236
- function getValueForNode(node, mapper, constraint, options = {}) {
241
+ function getValueForNode(node, mapper, constraint) {
237
242
  const initial = checkNode(node, mapper, constraint);
238
243
  if (initial === null) {
239
244
  return null;
@@ -245,15 +250,23 @@ export function createChecker(program, resolver) {
245
250
  else {
246
251
  entity = initial;
247
252
  }
248
- // if (options.legacyTupleAndModelCast && entity !== null && isType(entity)) {
249
- // entity = legacy_tryTypeToValueCast(entity, constraint, node);
250
- // }
251
253
  if (entity === null) {
252
254
  return null;
253
255
  }
254
256
  if (isValue(entity)) {
255
257
  return constraint ? inferScalarsFromConstraints(entity, constraint.type) : entity;
256
258
  }
259
+ // If a template parameter that can be a value is used in a template declaration then we allow it but we return null because we don't have an actual value.
260
+ if (entity.kind === "TemplateParameter" &&
261
+ entity.constraint?.valueType &&
262
+ entity.constraint.type === undefined &&
263
+ mapper === undefined) {
264
+ return createValue({
265
+ entityKind: "Value",
266
+ valueKind: "TemplateValue",
267
+ type: entity.constraint.valueType,
268
+ }, entity.constraint.valueType);
269
+ }
257
270
  reportExpectedValue(node, entity);
258
271
  return null;
259
272
  }
@@ -3396,7 +3409,7 @@ export function createChecker(program, resolver) {
3396
3409
  pendingResolutions.start(sym, ResolutionKind.Type);
3397
3410
  type.type = getTypeForNode(prop.value, mapper);
3398
3411
  if (prop.default) {
3399
- const defaultValue = checkDefaultValue(prop.default, type.type);
3412
+ const defaultValue = checkDefaultValue(prop.default, type.type, mapper);
3400
3413
  if (defaultValue !== null) {
3401
3414
  type.defaultValue = defaultValue;
3402
3415
  }
@@ -3427,15 +3440,15 @@ export function createChecker(program, resolver) {
3427
3440
  ],
3428
3441
  };
3429
3442
  }
3430
- function checkDefaultValue(defaultNode, type) {
3443
+ function checkDefaultValue(defaultNode, type, mapper) {
3431
3444
  if (isErrorType(type)) {
3432
3445
  // if the prop type is an error we don't need to validate again.
3433
3446
  return null;
3434
3447
  }
3435
- const defaultValue = getValueForNode(defaultNode, undefined, {
3448
+ const defaultValue = getValueForNode(defaultNode, mapper, {
3436
3449
  kind: "assignment",
3437
3450
  type,
3438
- }, { legacyTupleAndModelCast: true });
3451
+ });
3439
3452
  if (defaultValue === null) {
3440
3453
  return null;
3441
3454
  }
@@ -3444,6 +3457,11 @@ export function createChecker(program, resolver) {
3444
3457
  reportCheckerDiagnostics(diagnostics);
3445
3458
  return null;
3446
3459
  }
3460
+ else if (defaultValue.valueKind === "TemplateValue") {
3461
+ // Right now we don't want to expose `TemplateValue` in the type graph.
3462
+ // And as interating with the template declaration is not a supported feature we can just drop it.
3463
+ return null;
3464
+ }
3447
3465
  else {
3448
3466
  return { ...defaultValue, type };
3449
3467
  }
@@ -4253,6 +4271,7 @@ export function createChecker(program, resolver) {
4253
4271
  * Given the own-properties of a type, returns a fully-initialized type.
4254
4272
  */
4255
4273
  function createType(typeDef) {
4274
+ stats.createdTypes++;
4256
4275
  Object.setPrototypeOf(typeDef, typePrototype);
4257
4276
  typeDef.isFinished = false;
4258
4277
  // If the type has an associated syntax node, check any directives that
@@ -4265,6 +4284,7 @@ export function createChecker(program, resolver) {
4265
4284
  return createdType;
4266
4285
  }
4267
4286
  function finishType(typeDef) {
4287
+ stats.finishedTypes++;
4268
4288
  return finishTypeForProgramAndChecker(program, typePrototype, typeDef);
4269
4289
  }
4270
4290
  function getLiteralType(node) {