@typespec/versioning 0.57.0-dev.4 → 0.57.0-dev.6

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 (39) hide show
  1. package/dist/src/decorators.d.ts +64 -0
  2. package/dist/src/decorators.d.ts.map +1 -0
  3. package/dist/src/decorators.js +304 -0
  4. package/dist/src/decorators.js.map +1 -0
  5. package/dist/src/index.d.ts +2 -0
  6. package/dist/src/index.d.ts.map +1 -1
  7. package/dist/src/index.js +2 -0
  8. package/dist/src/index.js.map +1 -1
  9. package/dist/src/internal-projection-functions.d.ts +21 -0
  10. package/dist/src/internal-projection-functions.d.ts.map +1 -0
  11. package/dist/src/internal-projection-functions.js +88 -0
  12. package/dist/src/internal-projection-functions.js.map +1 -0
  13. package/dist/src/lib.d.ts +45 -45
  14. package/dist/src/lib.d.ts.map +1 -1
  15. package/dist/src/lib.js +15 -3
  16. package/dist/src/lib.js.map +1 -1
  17. package/dist/src/projection.d.ts +10 -0
  18. package/dist/src/projection.d.ts.map +1 -0
  19. package/dist/src/projection.js +38 -0
  20. package/dist/src/projection.js.map +1 -0
  21. package/dist/src/testing/index.d.ts +1 -1
  22. package/dist/src/testing/index.d.ts.map +1 -1
  23. package/dist/src/types.d.ts +1 -1
  24. package/dist/src/types.d.ts.map +1 -1
  25. package/dist/src/validate.d.ts +1 -1
  26. package/dist/src/validate.d.ts.map +1 -1
  27. package/dist/src/validate.js +5 -2
  28. package/dist/src/validate.js.map +1 -1
  29. package/dist/src/versioning-timeline.d.ts +2 -2
  30. package/dist/src/versioning-timeline.d.ts.map +1 -1
  31. package/dist/src/versioning-timeline.js.map +1 -1
  32. package/dist/src/versioning.d.ts +3 -89
  33. package/dist/src/versioning.d.ts.map +1 -1
  34. package/dist/src/versioning.js +23 -446
  35. package/dist/src/versioning.js.map +1 -1
  36. package/lib/decorators.tsp +180 -212
  37. package/lib/main.tsp +3 -0
  38. package/lib/{versioning.tsp → projection.tsp} +34 -2
  39. package/package.json +2 -2
@@ -1,383 +1,12 @@
1
- import { getNamespaceFullName, } from "@typespec/compiler";
2
- import { createStateSymbol, reportDiagnostic } from "./lib.js";
3
- import { VersioningTimeline } from "./versioning-timeline.js";
4
- const addedOnKey = createStateSymbol("addedOn");
5
- const removedOnKey = createStateSymbol("removedOn");
6
- const versionsKey = createStateSymbol("versions");
7
- const versionDependencyKey = createStateSymbol("versionDependency");
8
- const useDependencyNamespaceKey = createStateSymbol("useDependencyNamespace");
9
- const useDependencyEnumKey = createStateSymbol("useDependencyEnum");
10
- const renamedFromKey = createStateSymbol("renamedFrom");
11
- const madeOptionalKey = createStateSymbol("madeOptional");
12
- const madeRequiredKey = createStateSymbol("madeRequired");
13
- const typeChangedFromKey = createStateSymbol("typeChangedFrom");
14
- const returnTypeChangedFromKey = createStateSymbol("returnTypeChangedFrom");
15
- export const namespace = "TypeSpec.Versioning";
16
- function checkIsVersion(program, enumMember, diagnosticTarget) {
17
- const version = getVersionForEnumMember(program, enumMember);
18
- if (!version) {
19
- reportDiagnostic(program, {
20
- code: "version-not-found",
21
- target: diagnosticTarget,
22
- format: { version: enumMember.name, enumName: enumMember.enum.name },
23
- });
24
- }
25
- return version;
26
- }
27
- export const $added = (context, t, v) => {
28
- const { program } = context;
29
- const version = checkIsVersion(context.program, v, context.getArgumentTarget(0));
30
- if (!version) {
31
- return;
32
- }
33
- // retrieve statemap to update or create a new one
34
- const record = program.stateMap(addedOnKey).get(t) ?? new Array();
35
- record.push(version);
36
- // ensure that records are stored in ascending order
37
- record.sort((a, b) => a.index - b.index);
38
- program.stateMap(addedOnKey).set(t, record);
39
- };
40
- export function $removed(context, t, v) {
41
- const { program } = context;
42
- const version = checkIsVersion(context.program, v, context.getArgumentTarget(0));
43
- if (!version) {
44
- return;
45
- }
46
- // retrieve statemap to update or create a new one
47
- const record = program.stateMap(removedOnKey).get(t) ?? new Array();
48
- record.push(version);
49
- // ensure that records are stored in ascending order
50
- record.sort((a, b) => a.index - b.index);
51
- program.stateMap(removedOnKey).set(t, record);
52
- }
53
- /**
54
- * Returns the mapping of versions to old type values, if applicable
55
- * @param p TypeSpec program
56
- * @param t type to query
57
- * @returns Map of versions to old types, if any
58
- */
59
- export function getTypeChangedFrom(p, t) {
60
- return p.stateMap(typeChangedFromKey).get(t);
61
- }
62
- export const $typeChangedFrom = (context, prop, v, oldType) => {
63
- const { program } = context;
64
- const version = checkIsVersion(context.program, v, context.getArgumentTarget(0));
65
- if (!version) {
66
- return;
67
- }
68
- // retrieve statemap to update or create a new one
69
- let record = getTypeChangedFrom(program, prop) ?? new Map();
70
- record.set(version, oldType);
71
- // ensure the map is sorted by version
72
- record = new Map([...record.entries()].sort((a, b) => a[0].index - b[0].index));
73
- program.stateMap(typeChangedFromKey).set(prop, record);
74
- };
75
- /**
76
- * Returns the mapping of versions to old return type values, if applicable
77
- * @param p TypeSpec program
78
- * @param t type to query
79
- * @returns Map of versions to old types, if any
80
- */
81
- export function getReturnTypeChangedFrom(p, t) {
82
- return p.stateMap(returnTypeChangedFromKey).get(t);
83
- }
84
- export const $returnTypeChangedFrom = (context, op, v, oldReturnType) => {
85
- const { program } = context;
86
- const version = checkIsVersion(context.program, v, context.getArgumentTarget(0));
87
- if (!version) {
88
- return;
89
- }
90
- // retrieve statemap to update or create a new one
91
- let record = getReturnTypeChangedFrom(program, op) ?? new Map();
92
- record.set(version, oldReturnType);
93
- // ensure the map is sorted by version
94
- record = new Map([...record.entries()].sort((a, b) => a[0].index - b[0].index));
95
- program.stateMap(returnTypeChangedFromKey).set(op, record);
96
- };
97
- export const $renamedFrom = (context, t, v, oldName) => {
98
- const { program } = context;
99
- const version = checkIsVersion(context.program, v, context.getArgumentTarget(0));
100
- if (!version) {
101
- return;
102
- }
103
- if (oldName === "") {
104
- reportDiagnostic(program, {
105
- code: "invalid-renamed-from-value",
106
- target: t,
107
- });
108
- }
109
- // retrieve statemap to update or create a new one
110
- const record = getRenamedFrom(program, t) ?? [];
111
- record.push({ version: version, oldName: oldName });
112
- // ensure that records are stored in ascending order
113
- record.sort((a, b) => a.version.index - b.version.index);
114
- program.stateMap(renamedFromKey).set(t, record);
115
- };
116
- export const $madeOptional = (context, t, v) => {
117
- const { program } = context;
118
- const version = checkIsVersion(context.program, v, context.getArgumentTarget(0));
119
- if (!version) {
120
- return;
121
- }
122
- program.stateMap(madeOptionalKey).set(t, version);
123
- };
124
- export const $madeRequired = (context, t, v) => {
125
- const { program } = context;
126
- const version = checkIsVersion(context.program, v, context.getArgumentTarget(0));
127
- if (!version) {
128
- return;
129
- }
130
- program.stateMap(madeRequiredKey).set(t, version);
131
- };
132
- /**
133
- * @returns the array of RenamedFrom metadata if applicable.
134
- */
135
- export function getRenamedFrom(p, t) {
136
- return p.stateMap(renamedFromKey).get(t);
137
- }
138
- /**
139
- * @returns the list of versions for which this decorator has been applied
140
- */
141
- export function getRenamedFromVersions(p, t) {
142
- return getRenamedFrom(p, t)?.map((x) => x.version);
143
- }
144
- /**
145
- * @returns get old name if applicable.
146
- */
147
- export function getNameAtVersion(p, t, versionKey) {
148
- const versioningState = getVersioningState(p, versionKey);
149
- const allValues = getRenamedFrom(p, t);
150
- if (!allValues)
151
- return "";
152
- for (const val of allValues) {
153
- if (versioningState.timeline.isBefore(versioningState.projectingMoment, val.version)) {
154
- return val.oldName;
155
- }
156
- }
157
- return "";
158
- }
159
- /**
160
- * @returns get old type if applicable.
161
- */
162
- export function getTypeBeforeVersion(p, t, versionKey) {
163
- const versioningState = getVersioningState(p, versionKey);
164
- const map = getTypeChangedFrom(p, t);
165
- if (!map)
166
- return undefined;
167
- for (const [changedAtVersion, oldType] of map) {
168
- if (versioningState.timeline.isBefore(versioningState.projectingMoment, changedAtVersion)) {
169
- return oldType;
170
- }
171
- }
172
- return undefined;
173
- }
174
- /**
175
- * @returns get old type if applicable.
176
- */
177
- export function getReturnTypeBeforeVersion(p, t, versionKey) {
178
- const versioningState = getVersioningState(p, versionKey);
179
- const map = getReturnTypeChangedFrom(p, t);
180
- if (!map)
181
- return "";
182
- for (const [changedAtVersion, val] of map) {
183
- if (versioningState.timeline.isBefore(versioningState.projectingMoment, changedAtVersion)) {
184
- return val;
185
- }
186
- }
187
- return "";
188
- }
189
- export function getAddedOnVersions(p, t) {
190
- return p.stateMap(addedOnKey).get(t);
191
- }
192
- export function getRemovedOnVersions(p, t) {
193
- return p.stateMap(removedOnKey).get(t);
194
- }
195
- /**
196
- * @returns version when the given type was made optional if applicable.
197
- */
198
- export function getMadeOptionalOn(p, t) {
199
- return p.stateMap(madeOptionalKey).get(t);
200
- }
201
- /**
202
- * @returns version when the given type was made required if applicable.
203
- */
204
- export function getMadeRequiredOn(p, t) {
205
- return p.stateMap(madeRequiredKey).get(t);
206
- }
207
- export class VersionMap {
208
- map = new Map();
209
- constructor(namespace, enumType) {
210
- let index = 0;
211
- for (const member of enumType.members.values()) {
212
- this.map.set(member, {
213
- name: member.name,
214
- value: member.value?.toString() ?? member.name,
215
- enumMember: member,
216
- index,
217
- namespace,
218
- });
219
- index++;
220
- }
221
- }
222
- getVersionForEnumMember(member) {
223
- return this.map.get(member);
224
- }
225
- getVersions() {
226
- return [...this.map.values()];
227
- }
228
- get size() {
229
- return this.map.size;
230
- }
231
- }
232
- export const $versioned = (context, t, versions) => {
233
- context.program.stateMap(versionsKey).set(t, new VersionMap(t, versions));
234
- };
235
- /**
236
- * Get the version map of the namespace.
237
- */
238
- export function getVersion(program, namespace) {
239
- return program.stateMap(versionsKey).get(namespace);
240
- }
241
- export function findVersionedNamespace(program, namespace) {
242
- let current = namespace;
243
- while (current) {
244
- if (program.stateMap(versionsKey).has(current)) {
245
- return current;
246
- }
247
- current = current.namespace;
248
- }
249
- return undefined;
250
- }
251
- export function $useDependency(context, target, ...versionRecords) {
252
- const versions = [];
253
- // ensure only valid versions are passed in
254
- for (const record of versionRecords) {
255
- const ver = checkIsVersion(context.program, record, context.getArgumentTarget(0));
256
- if (ver) {
257
- versions.push(ver);
258
- }
259
- }
260
- if (target.kind === "Namespace") {
261
- let state = context.program.stateMap(useDependencyNamespaceKey).get(target);
262
- if (!state) {
263
- state = versions;
264
- }
265
- else {
266
- state.push(...versions);
267
- }
268
- context.program.stateMap(useDependencyNamespaceKey).set(target, state);
269
- }
270
- else if (target.kind === "EnumMember") {
271
- const targetEnum = target.enum;
272
- let state = context.program.stateMap(useDependencyEnumKey).get(targetEnum);
273
- if (!state) {
274
- state = new Map();
275
- }
276
- // get any existing versions and combine them
277
- const currentVersions = state.get(target) ?? [];
278
- currentVersions.push(...versions);
279
- state.set(target, currentVersions);
280
- context.program.stateMap(useDependencyEnumKey).set(targetEnum, state);
281
- }
282
- }
283
- export function getUseDependencies(program, target, searchEnum = true) {
284
- const result = new Map();
285
- if (target.kind === "Namespace") {
286
- let current = target;
287
- while (current) {
288
- const data = program.stateMap(useDependencyNamespaceKey).get(current);
289
- if (!data) {
290
- // See if the namspace has a version enum
291
- if (searchEnum) {
292
- const versions = getVersion(program, current)?.getVersions();
293
- if (versions?.length) {
294
- const enumDeps = getUseDependencies(program, versions[0].enumMember.enum);
295
- if (enumDeps) {
296
- return enumDeps;
297
- }
298
- }
299
- }
300
- current = current.namespace;
301
- }
302
- else {
303
- for (const v of data) {
304
- result.set(v.namespace, v);
305
- }
306
- return result;
307
- }
308
- }
309
- return undefined;
310
- }
311
- else if (target.kind === "Enum") {
312
- const data = program.stateMap(useDependencyEnumKey).get(target);
313
- if (!data) {
314
- return undefined;
315
- }
316
- const resolved = resolveVersionDependency(program, data);
317
- if (resolved instanceof Map) {
318
- for (const [enumVer, value] of resolved) {
319
- for (const val of value) {
320
- const targetNamespace = val.enumMember.enum.namespace;
321
- if (!targetNamespace) {
322
- reportDiagnostic(program, {
323
- code: "version-not-found",
324
- target: val.enumMember.enum,
325
- format: { version: val.enumMember.name, enumName: val.enumMember.enum.name },
326
- });
327
- return undefined;
328
- }
329
- let subMap = result.get(targetNamespace);
330
- if (subMap) {
331
- subMap.set(enumVer, val);
332
- }
333
- else {
334
- subMap = new Map([[enumVer, val]]);
335
- }
336
- result.set(targetNamespace, subMap);
337
- }
338
- }
339
- }
340
- }
341
- return result;
342
- }
343
- function findVersionDependencyForNamespace(program, namespace) {
344
- let current = namespace;
345
- while (current) {
346
- const data = program.stateMap(versionDependencyKey).get(current);
347
- if (data) {
348
- return data;
349
- }
350
- current = current.namespace;
351
- }
352
- return undefined;
353
- }
1
+ import { compilerAssert, getNamespaceFullName } from "@typespec/compiler";
2
+ import { getAddedOnVersions, getRemovedOnVersions, getReturnTypeChangedFrom, getTypeChangedFrom, getUseDependencies, getVersion, } from "./decorators.js";
3
+ import { TimelineMoment, VersioningTimeline } from "./versioning-timeline.js";
354
4
  export function getVersionDependencies(program, namespace) {
355
5
  const useDeps = getUseDependencies(program, namespace);
356
6
  if (useDeps) {
357
7
  return useDeps;
358
8
  }
359
- const data = findVersionDependencyForNamespace(program, namespace);
360
- if (data === undefined) {
361
- return undefined;
362
- }
363
- const result = new Map();
364
- for (const [key, value] of data) {
365
- result.set(key, resolveVersionDependency(program, value));
366
- }
367
- return result;
368
- }
369
- function resolveVersionDependency(program, data) {
370
- if (!(data instanceof Map)) {
371
- return data;
372
- }
373
- const mapping = new Map();
374
- for (const [key, value] of data) {
375
- const sourceVersion = getVersionForEnumMember(program, key);
376
- if (sourceVersion !== undefined) {
377
- mapping.set(sourceVersion, value);
378
- }
379
- }
380
- return mapping;
9
+ return undefined;
381
10
  }
382
11
  /**
383
12
  * Resolve the version of dependencies
@@ -441,42 +70,6 @@ export function resolveVersions(program, namespace) {
441
70
  });
442
71
  }
443
72
  }
444
- /**
445
- * @internal
446
- */
447
- export function indexTimeline(program, timeline, projectingMoment) {
448
- const versionKey = program.checker.createType({
449
- kind: "Object",
450
- properties: {},
451
- });
452
- program.stateMap(versionIndexKey).set(versionKey, { timeline, projectingMoment });
453
- return versionKey;
454
- }
455
- function getVersioningState(program, versionKey) {
456
- return program.stateMap(versionIndexKey).get(versionKey);
457
- }
458
- const versionIndexKey = createStateSymbol("version-index");
459
- export function buildVersionProjections(program, rootNs) {
460
- const resolutions = resolveVersions(program, rootNs);
461
- const timeline = new VersioningTimeline(program, resolutions.map((x) => x.versions));
462
- return resolutions.map((resolution) => {
463
- if (resolution.versions.size === 0) {
464
- return { version: undefined, projections: [] };
465
- }
466
- else {
467
- const versionKey = indexTimeline(program, timeline, timeline.get(resolution.versions.values().next().value));
468
- return {
469
- version: resolution.rootVersion?.value,
470
- projections: [
471
- {
472
- projectionName: "v",
473
- arguments: [versionKey],
474
- },
475
- ],
476
- };
477
- }
478
- });
479
- }
480
73
  const versionCache = new WeakMap();
481
74
  function cacheVersion(key, versions) {
482
75
  versionCache.set(key, versions);
@@ -579,10 +172,28 @@ export function getAvailabilityMap(program, type) {
579
172
  typeChanged === undefined &&
580
173
  returnTypeChanged === undefined)
581
174
  return undefined;
175
+ let parentMap = undefined;
176
+ if (type.kind === "ModelProperty" && type.model !== undefined) {
177
+ parentMap = getAvailabilityMap(program, type.model);
178
+ }
179
+ else if (type.kind === "Operation" && type.interface !== undefined) {
180
+ parentMap = getAvailabilityMap(program, type.interface);
181
+ }
582
182
  // implicitly, all versioned things are assumed to have been added at
583
183
  // v1 if not specified
584
184
  if (!added.length) {
585
- added.push(allVersions[0]);
185
+ if (parentMap !== undefined) {
186
+ parentMap.forEach((key, value) => {
187
+ if (key === Availability.Added.valueOf()) {
188
+ const match = allVersions.find((x) => x.name === value);
189
+ compilerAssert(match !== undefined, "Version not found");
190
+ added.push(match);
191
+ }
192
+ });
193
+ }
194
+ else {
195
+ added.push(allVersions[0]);
196
+ }
586
197
  }
587
198
  // something isn't available by default
588
199
  let isAvail = false;
@@ -647,40 +258,6 @@ export function getAvailabilityMapInTimeline(program, type, timeline) {
647
258
  }
648
259
  return avail;
649
260
  }
650
- export function existsAtVersion(p, type, versionKey) {
651
- const versioningState = getVersioningState(p, versionKey);
652
- // if unversioned then everything exists
653
- const availability = getAvailabilityMapInTimeline(p, type, versioningState.timeline);
654
- if (!availability)
655
- return true;
656
- const isAvail = availability.get(versioningState.projectingMoment);
657
- return isAvail === Availability.Added || isAvail === Availability.Available;
658
- }
659
- export function hasDifferentNameAtVersion(p, type, version) {
660
- return getNameAtVersion(p, type, version) !== "";
661
- }
662
- export function madeOptionalAfter(program, type, versionKey) {
663
- const versioningState = getVersioningState(program, versionKey);
664
- const madeOptionalAtVersion = getMadeOptionalOn(program, type);
665
- if (madeOptionalAtVersion === undefined) {
666
- return false;
667
- }
668
- return versioningState.timeline.isBefore(versioningState.projectingMoment, madeOptionalAtVersion);
669
- }
670
- export function madeRequiredAfter(program, type, versionKey) {
671
- const versioningState = getVersioningState(program, versionKey);
672
- const madeRequiredAtVersion = getMadeRequiredOn(program, type);
673
- if (madeRequiredAtVersion === undefined) {
674
- return false;
675
- }
676
- return versioningState.timeline.isBefore(versioningState.projectingMoment, madeRequiredAtVersion);
677
- }
678
- export function hasDifferentTypeAtVersion(p, type, version) {
679
- return getTypeBeforeVersion(p, type, version) !== undefined;
680
- }
681
- export function hasDifferentReturnTypeAtVersion(p, type, version) {
682
- return getReturnTypeBeforeVersion(p, type, version) !== "";
683
- }
684
261
  export function getVersionForEnumMember(program, member) {
685
262
  // Always lookup for the original type. This ensure reference equality when comparing versions.
686
263
  member = member.projectionBase ?? member;
@@ -1 +1 @@
1
- {"version":3,"file":"versioning.js","sourceRoot":"","sources":["../../src/versioning.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"versioning.js","sourceRoot":"","sources":["../../src/versioning.ts"],"names":[],"mappings":"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"}