@typespec/openapi3 0.60.0-dev.5 → 0.60.0-dev.7

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 (52) hide show
  1. package/dist/src/cli/actions/convert/convert-file.d.ts.map +1 -1
  2. package/dist/src/cli/actions/convert/convert-file.js +4 -2
  3. package/dist/src/cli/actions/convert/convert-file.js.map +1 -1
  4. package/dist/src/cli/actions/convert/convert.d.ts.map +1 -1
  5. package/dist/src/cli/actions/convert/convert.js +4 -2
  6. package/dist/src/cli/actions/convert/convert.js.map +1 -1
  7. package/dist/src/cli/actions/convert/generators/generate-main.d.ts +2 -1
  8. package/dist/src/cli/actions/convert/generators/generate-main.d.ts.map +1 -1
  9. package/dist/src/cli/actions/convert/generators/generate-main.js +4 -4
  10. package/dist/src/cli/actions/convert/generators/generate-main.js.map +1 -1
  11. package/dist/src/cli/actions/convert/generators/generate-model.d.ts +3 -3
  12. package/dist/src/cli/actions/convert/generators/generate-model.d.ts.map +1 -1
  13. package/dist/src/cli/actions/convert/generators/generate-model.js +30 -35
  14. package/dist/src/cli/actions/convert/generators/generate-model.js.map +1 -1
  15. package/dist/src/cli/actions/convert/generators/generate-namespace.d.ts +2 -1
  16. package/dist/src/cli/actions/convert/generators/generate-namespace.d.ts.map +1 -1
  17. package/dist/src/cli/actions/convert/generators/generate-namespace.js +4 -4
  18. package/dist/src/cli/actions/convert/generators/generate-namespace.js.map +1 -1
  19. package/dist/src/cli/actions/convert/generators/generate-operation.d.ts +2 -1
  20. package/dist/src/cli/actions/convert/generators/generate-operation.d.ts.map +1 -1
  21. package/dist/src/cli/actions/convert/generators/generate-operation.js +10 -14
  22. package/dist/src/cli/actions/convert/generators/generate-operation.js.map +1 -1
  23. package/dist/src/cli/actions/convert/generators/generate-service-info.d.ts.map +1 -1
  24. package/dist/src/cli/actions/convert/generators/generate-service-info.js +1 -3
  25. package/dist/src/cli/actions/convert/generators/generate-service-info.js.map +1 -1
  26. package/dist/src/cli/actions/convert/generators/generate-types.d.ts +12 -8
  27. package/dist/src/cli/actions/convert/generators/generate-types.d.ts.map +1 -1
  28. package/dist/src/cli/actions/convert/generators/generate-types.js +138 -109
  29. package/dist/src/cli/actions/convert/generators/generate-types.js.map +1 -1
  30. package/dist/src/cli/actions/convert/interfaces.d.ts +1 -0
  31. package/dist/src/cli/actions/convert/interfaces.d.ts.map +1 -1
  32. package/dist/src/cli/actions/convert/transforms/transform-component-parameters.d.ts +3 -3
  33. package/dist/src/cli/actions/convert/transforms/transform-component-parameters.d.ts.map +1 -1
  34. package/dist/src/cli/actions/convert/transforms/transform-component-parameters.js +14 -27
  35. package/dist/src/cli/actions/convert/transforms/transform-component-parameters.js.map +1 -1
  36. package/dist/src/cli/actions/convert/transforms/transform-component-schemas.d.ts +2 -2
  37. package/dist/src/cli/actions/convert/transforms/transform-component-schemas.d.ts.map +1 -1
  38. package/dist/src/cli/actions/convert/transforms/transform-component-schemas.js +114 -96
  39. package/dist/src/cli/actions/convert/transforms/transform-component-schemas.js.map +1 -1
  40. package/dist/src/cli/actions/convert/transforms/transforms.d.ts +2 -2
  41. package/dist/src/cli/actions/convert/transforms/transforms.d.ts.map +1 -1
  42. package/dist/src/cli/actions/convert/transforms/transforms.js +6 -6
  43. package/dist/src/cli/actions/convert/transforms/transforms.js.map +1 -1
  44. package/dist/src/cli/actions/convert/utils/context.d.ts +10 -0
  45. package/dist/src/cli/actions/convert/utils/context.d.ts.map +1 -0
  46. package/dist/src/cli/actions/convert/utils/context.js +23 -0
  47. package/dist/src/cli/actions/convert/utils/context.js.map +1 -0
  48. package/dist/src/cli/actions/convert/utils/generate-namespace-name.d.ts +2 -0
  49. package/dist/src/cli/actions/convert/utils/generate-namespace-name.d.ts.map +1 -0
  50. package/dist/src/cli/actions/convert/utils/generate-namespace-name.js +4 -0
  51. package/dist/src/cli/actions/convert/utils/generate-namespace-name.js.map +1 -0
  52. package/package.json +1 -1
@@ -1,5 +1,4 @@
1
1
  import { printIdentifier } from "@typespec/compiler";
2
- import { getArrayType, getIntegerType, getNumberType, getRefName, getStringType, } from "../generators/generate-types.js";
3
2
  import { getDecoratorsForSchema } from "../utils/decorators.js";
4
3
  import { getScopeAndName } from "../utils/get-scope-and-name.js";
5
4
  /**
@@ -9,114 +8,133 @@ import { getScopeAndName } from "../utils/get-scope-and-name.js";
9
8
  * @param schemas
10
9
  * @returns
11
10
  */
12
- export function transformComponentSchemas(models, schemas) {
11
+ export function transformComponentSchemas(context, models) {
12
+ const schemas = context.openApi3Doc.components?.schemas;
13
13
  if (!schemas)
14
14
  return;
15
15
  for (const name of Object.keys(schemas)) {
16
16
  const schema = schemas[name];
17
17
  transformComponentSchema(models, name, schema);
18
18
  }
19
- }
20
- function transformComponentSchema(types, name, schema) {
21
- const kind = getTypeSpecKind(schema);
22
- switch (kind) {
23
- case "alias":
24
- return populateAlias(types, name, schema);
25
- case "enum":
26
- return populateEnum(types, name, schema);
27
- case "model":
28
- return populateModel(types, name, schema);
29
- case "union":
30
- return populateUnion(types, name, schema);
31
- case "scalar":
32
- return populateScalar(types, name, schema);
19
+ return;
20
+ function transformComponentSchema(types, name, schema) {
21
+ const kind = getTypeSpecKind(schema);
22
+ switch (kind) {
23
+ case "alias":
24
+ return populateAlias(types, name, schema);
25
+ case "enum":
26
+ return populateEnum(types, name, schema);
27
+ case "model":
28
+ return populateModel(types, name, schema);
29
+ case "union":
30
+ return populateUnion(types, name, schema);
31
+ case "scalar":
32
+ return populateScalar(types, name, schema);
33
+ }
33
34
  }
34
- }
35
- function populateAlias(types, name, schema) {
36
- if (!("$ref" in schema)) {
37
- return;
35
+ function populateAlias(types, rawName, schema) {
36
+ if (!("$ref" in schema)) {
37
+ return;
38
+ }
39
+ const { name, scope } = getScopeAndName(rawName);
40
+ types.push({
41
+ kind: "alias",
42
+ name,
43
+ scope,
44
+ doc: schema.description,
45
+ ref: context.getRefName(schema.$ref, scope),
46
+ });
38
47
  }
39
- types.push({
40
- kind: "alias",
41
- ...getScopeAndName(name),
42
- doc: schema.description,
43
- ref: getRefName(schema.$ref),
44
- });
45
- }
46
- function populateEnum(types, name, schema) {
47
- const tsEnum = {
48
- kind: "enum",
49
- ...getScopeAndName(name),
50
- decorators: getDecoratorsForSchema(schema),
51
- doc: schema.description,
52
- schema,
53
- };
54
- types.push(tsEnum);
55
- }
56
- function populateScalar(types, name, schema) {
57
- types.push({
58
- kind: "scalar",
59
- ...getScopeAndName(name),
60
- decorators: getDecoratorsForSchema(schema),
61
- doc: schema.description,
62
- schema,
63
- });
64
- }
65
- function populateUnion(types, name, schema) {
66
- const union = {
67
- kind: "union",
68
- ...getScopeAndName(name),
69
- decorators: getDecoratorsForSchema(schema),
70
- doc: schema.description,
71
- schema,
72
- };
73
- types.push(union);
74
- }
75
- function populateModel(types, name, schema) {
76
- const extendsParent = getModelExtends(schema);
77
- const isParent = getModelIs(schema);
78
- types.push({
79
- kind: "model",
80
- ...getScopeAndName(name),
81
- decorators: [...getDecoratorsForSchema(schema)],
82
- doc: schema.description,
83
- properties: getModelPropertiesFromObjectSchema(schema),
84
- additionalProperties: typeof schema.additionalProperties === "object" ? schema.additionalProperties : undefined,
85
- extends: extendsParent,
86
- is: isParent,
87
- type: schema.type,
88
- });
89
- }
90
- function getModelExtends(schema) {
91
- switch (schema.type) {
92
- case "boolean":
93
- return "boolean";
94
- case "integer":
95
- return getIntegerType(schema);
96
- case "number":
97
- return getNumberType(schema);
98
- case "string":
99
- return getStringType(schema);
48
+ function populateEnum(types, name, schema) {
49
+ const tsEnum = {
50
+ kind: "enum",
51
+ ...getScopeAndName(name),
52
+ decorators: getDecoratorsForSchema(schema),
53
+ doc: schema.description,
54
+ schema,
55
+ };
56
+ types.push(tsEnum);
100
57
  }
101
- if (schema.type !== "object" || !schema.allOf) {
102
- return;
58
+ function populateModel(types, rawName, schema) {
59
+ const { name, scope } = getScopeAndName(rawName);
60
+ const allOfDetails = getAllOfDetails(schema, scope);
61
+ const isParent = getModelIs(schema, scope);
62
+ types.push({
63
+ kind: "model",
64
+ name,
65
+ scope,
66
+ decorators: [...getDecoratorsForSchema(schema)],
67
+ doc: schema.description,
68
+ properties: [...getModelPropertiesFromObjectSchema(schema), ...allOfDetails.properties],
69
+ additionalProperties: typeof schema.additionalProperties === "object" ? schema.additionalProperties : undefined,
70
+ extends: allOfDetails.extends,
71
+ is: isParent,
72
+ type: schema.type,
73
+ spread: allOfDetails.spread,
74
+ });
103
75
  }
104
- if (schema.allOf.length !== 1) {
105
- // TODO: Emit warning - can't extend more than 1 model
106
- return;
76
+ function populateUnion(types, name, schema) {
77
+ const union = {
78
+ kind: "union",
79
+ ...getScopeAndName(name),
80
+ decorators: getDecoratorsForSchema(schema),
81
+ doc: schema.description,
82
+ schema,
83
+ };
84
+ types.push(union);
107
85
  }
108
- const parent = schema.allOf[0];
109
- if (!parent || !("$ref" in parent)) {
110
- // TODO: Error getting parent - must be a reference, not expression
111
- return;
86
+ function populateScalar(types, name, schema) {
87
+ types.push({
88
+ kind: "scalar",
89
+ ...getScopeAndName(name),
90
+ decorators: getDecoratorsForSchema(schema),
91
+ doc: schema.description,
92
+ schema,
93
+ });
112
94
  }
113
- return getRefName(parent.$ref);
114
- }
115
- function getModelIs(schema) {
116
- if (schema.type !== "array") {
117
- return;
95
+ function getAllOfDetails(schema, callingScope) {
96
+ const details = {
97
+ spread: [],
98
+ properties: [],
99
+ };
100
+ if (!schema.allOf) {
101
+ return details;
102
+ }
103
+ let foundParentWithDiscriminator = false;
104
+ for (const member of schema.allOf) {
105
+ // inline-schemas treated as normal objects with properties
106
+ if (!("$ref" in member)) {
107
+ details.properties.push(...getModelPropertiesFromObjectSchema(member));
108
+ continue;
109
+ }
110
+ const refSchema = context.getSchemaByRef(member.$ref);
111
+ // Inheritance only supported if parent has a discriminator defined, otherwise prefer
112
+ // composition via spreading.
113
+ if (!refSchema?.discriminator) {
114
+ details.spread.push(context.getRefName(member.$ref, callingScope));
115
+ continue;
116
+ }
117
+ if (!foundParentWithDiscriminator) {
118
+ details.extends = context.getRefName(member.$ref, callingScope);
119
+ foundParentWithDiscriminator = true;
120
+ continue;
121
+ }
122
+ // can only extend once, so if we have multiple potential parents, spread them all
123
+ // user will need to resolve TypeSpec errors (e.g. duplicate fields) manually
124
+ if (details.extends) {
125
+ details.spread.push(details.extends);
126
+ details.extends = undefined;
127
+ }
128
+ details.spread.push(context.getRefName(member.$ref, callingScope));
129
+ }
130
+ return details;
131
+ }
132
+ function getModelIs(schema, callingScope) {
133
+ if (schema.type !== "array") {
134
+ return;
135
+ }
136
+ return context.generateTypeFromRefableSchema(schema, callingScope);
118
137
  }
119
- return getArrayType(schema);
120
138
  }
121
139
  function getModelPropertiesFromObjectSchema({ properties, required = [], }) {
122
140
  if (!properties)
@@ -1 +1 @@
1
- {"version":3,"file":"transform-component-schemas.js","sourceRoot":"","sources":["../../../../../../src/cli/actions/convert/transforms/transform-component-schemas.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transform-component-schemas.js","sourceRoot":"","sources":["../../../../../../src/cli/actions/convert/transforms/transform-component-schemas.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { OpenAPI3Document } from "../../../../types.js";
2
1
  import { TypeSpecProgram } from "../interfaces.js";
3
- export declare function transform(openapi: OpenAPI3Document): TypeSpecProgram;
2
+ import { Context } from "../utils/context.js";
3
+ export declare function transform(context: Context): TypeSpecProgram;
4
4
  //# sourceMappingURL=transforms.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"transforms.d.ts","sourceRoot":"","sources":["../../../../../../src/cli/actions/convert/transforms/transforms.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAiB,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAOlE,wBAAgB,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,eAAe,CASpE"}
1
+ {"version":3,"file":"transforms.d.ts","sourceRoot":"","sources":["../../../../../../src/cli/actions/convert/transforms/transforms.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAO9C,wBAAgB,SAAS,CAAC,OAAO,EAAE,OAAO,GAAG,eAAe,CAU3D"}
@@ -3,8 +3,9 @@ import { transformComponentSchemas } from "./transform-component-schemas.js";
3
3
  import { transformNamespaces } from "./transform-namespaces.js";
4
4
  import { transformPaths } from "./transform-paths.js";
5
5
  import { transformServiceInfo } from "./transform-service-info.js";
6
- export function transform(openapi) {
7
- const models = collectModels(openapi);
6
+ export function transform(context) {
7
+ const openapi = context.openApi3Doc;
8
+ const models = collectDataTypes(context);
8
9
  const operations = transformPaths(models, openapi.paths);
9
10
  return {
10
11
  serviceInfo: transformServiceInfo(openapi.info),
@@ -12,13 +13,12 @@ export function transform(openapi) {
12
13
  augmentations: [],
13
14
  };
14
15
  }
15
- function collectModels(document) {
16
+ function collectDataTypes(context) {
16
17
  const models = [];
17
- const components = document.components;
18
18
  // get models from `#/components/schema
19
- transformComponentSchemas(models, components?.schemas);
19
+ transformComponentSchemas(context, models);
20
20
  // get models from `#/components/parameters
21
- transformComponentParameters(models, components?.parameters);
21
+ transformComponentParameters(context, models);
22
22
  return models;
23
23
  }
24
24
  //# sourceMappingURL=transforms.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"transforms.js","sourceRoot":"","sources":["../../../../../../src/cli/actions/convert/transforms/transforms.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,4BAA4B,EAAE,MAAM,qCAAqC,CAAC;AACnF,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAC7E,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAEnE,MAAM,UAAU,SAAS,CAAC,OAAyB;IACjD,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;IACtC,MAAM,UAAU,GAAG,cAAc,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IAEzD,OAAO;QACL,WAAW,EAAE,oBAAoB,CAAC,OAAO,CAAC,IAAI,CAAC;QAC/C,GAAG,mBAAmB,CAAC,MAAM,EAAE,UAAU,CAAC;QAC1C,aAAa,EAAE,EAAE;KAClB,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,QAA0B;IAC/C,MAAM,MAAM,GAAoB,EAAE,CAAC;IACnC,MAAM,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC;IACvC,uCAAuC;IACvC,yBAAyB,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;IACvD,2CAA2C;IAC3C,4BAA4B,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;IAE7D,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"transforms.js","sourceRoot":"","sources":["../../../../../../src/cli/actions/convert/transforms/transforms.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,4BAA4B,EAAE,MAAM,qCAAqC,CAAC;AACnF,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAC7E,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAEnE,MAAM,UAAU,SAAS,CAAC,OAAgB;IACxC,MAAM,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC;IACpC,MAAM,MAAM,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACzC,MAAM,UAAU,GAAG,cAAc,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IAEzD,OAAO;QACL,WAAW,EAAE,oBAAoB,CAAC,OAAO,CAAC,IAAI,CAAC;QAC/C,GAAG,mBAAmB,CAAC,MAAM,EAAE,UAAU,CAAC;QAC1C,aAAa,EAAE,EAAE;KAClB,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,OAAgB;IACxC,MAAM,MAAM,GAAoB,EAAE,CAAC;IACnC,uCAAuC;IACvC,yBAAyB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC3C,2CAA2C;IAC3C,4BAA4B,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAE9C,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { OpenAPI3Document, OpenAPI3Schema, Refable } from "../../../../types.js";
2
+ export interface Context {
3
+ readonly openApi3Doc: OpenAPI3Document;
4
+ readonly rootNamespace: string;
5
+ generateTypeFromRefableSchema(schema: Refable<OpenAPI3Schema>, callingScope: string[]): string;
6
+ getRefName(ref: string, callingScope: string[]): string;
7
+ getSchemaByRef(ref: string): OpenAPI3Schema | undefined;
8
+ }
9
+ export declare function createContext(openApi3Doc: OpenAPI3Document): Context;
10
+ //# sourceMappingURL=context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../../../../src/cli/actions/convert/utils/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAIjF,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,WAAW,EAAE,gBAAgB,CAAC;IACvC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAE/B,6BAA6B,CAAC,MAAM,EAAE,OAAO,CAAC,cAAc,CAAC,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;IAC/F,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;IACxD,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAAC;CACzD;AAED,wBAAgB,aAAa,CAAC,WAAW,EAAE,gBAAgB,GAAG,OAAO,CAqBpE"}
@@ -0,0 +1,23 @@
1
+ import { SchemaToExpressionGenerator } from "../generators/generate-types.js";
2
+ import { generateNamespaceName } from "./generate-namespace-name.js";
3
+ export function createContext(openApi3Doc) {
4
+ const rootNamespace = generateNamespaceName(openApi3Doc.info.title);
5
+ const schemaExpressionGenerator = new SchemaToExpressionGenerator(rootNamespace);
6
+ const context = {
7
+ openApi3Doc,
8
+ rootNamespace,
9
+ getRefName(ref, callingScope) {
10
+ return schemaExpressionGenerator.getRefName(ref, callingScope);
11
+ },
12
+ generateTypeFromRefableSchema(schema, callingScope) {
13
+ return schemaExpressionGenerator.generateTypeFromRefableSchema(schema, callingScope);
14
+ },
15
+ getSchemaByRef(ref) {
16
+ const schemaName = ref.replace("#/components/schemas/", "");
17
+ const schema = openApi3Doc.components?.schemas?.[schemaName];
18
+ return schema;
19
+ },
20
+ };
21
+ return context;
22
+ }
23
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../../../../../src/cli/actions/convert/utils/context.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,2BAA2B,EAAE,MAAM,iCAAiC,CAAC;AAC9E,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAWrE,MAAM,UAAU,aAAa,CAAC,WAA6B;IACzD,MAAM,aAAa,GAAG,qBAAqB,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACpE,MAAM,yBAAyB,GAAG,IAAI,2BAA2B,CAAC,aAAa,CAAC,CAAC;IAEjF,MAAM,OAAO,GAAY;QACvB,WAAW;QACX,aAAa;QACb,UAAU,CAAC,GAAW,EAAE,YAAsB;YAC5C,OAAO,yBAAyB,CAAC,UAAU,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;QACjE,CAAC;QACD,6BAA6B,CAAC,MAA+B,EAAE,YAAsB;YACnF,OAAO,yBAAyB,CAAC,6BAA6B,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;QACvF,CAAC;QACD,cAAc,CAAC,GAAG;YAChB,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC,uBAAuB,EAAE,EAAE,CAAC,CAAC;YAC5D,MAAM,MAAM,GAAG,WAAW,CAAC,UAAU,EAAE,OAAO,EAAE,CAAC,UAAU,CAAC,CAAC;YAC7D,OAAO,MAAM,CAAC;QAChB,CAAC;KACF,CAAC;IAEF,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function generateNamespaceName(name: string): string;
2
+ //# sourceMappingURL=generate-namespace-name.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-namespace-name.d.ts","sourceRoot":"","sources":["../../../../../../src/cli/actions/convert/utils/generate-namespace-name.ts"],"names":[],"mappings":"AAAA,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE1D"}
@@ -0,0 +1,4 @@
1
+ export function generateNamespaceName(name) {
2
+ return name.replaceAll(/[^\w^\d_]+/g, "");
3
+ }
4
+ //# sourceMappingURL=generate-namespace-name.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-namespace-name.js","sourceRoot":"","sources":["../../../../../../src/cli/actions/convert/utils/generate-namespace-name.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,qBAAqB,CAAC,IAAY;IAChD,OAAO,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;AAC5C,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@typespec/openapi3",
3
- "version": "0.60.0-dev.5",
3
+ "version": "0.60.0-dev.7",
4
4
  "author": "Microsoft Corporation",
5
5
  "description": "TypeSpec library for emitting OpenAPI 3.0 from the TypeSpec REST protocol binding and converting OpenAPI3 to TypeSpec",
6
6
  "homepage": "https://typespec.io",