@etc-utils/typespec-amqp-ws 1.0.0

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 (77) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +287 -0
  3. package/dist/src/amqp/builder.d.ts +4 -0
  4. package/dist/src/amqp/builder.d.ts.map +1 -0
  5. package/dist/src/amqp/builder.js +121 -0
  6. package/dist/src/amqp/builder.js.map +1 -0
  7. package/dist/src/amqp/decorators.d.ts +32 -0
  8. package/dist/src/amqp/decorators.d.ts.map +1 -0
  9. package/dist/src/amqp/decorators.js +38 -0
  10. package/dist/src/amqp/decorators.js.map +1 -0
  11. package/dist/src/amqp/index.d.ts +5 -0
  12. package/dist/src/amqp/index.d.ts.map +1 -0
  13. package/dist/src/amqp/index.js +7 -0
  14. package/dist/src/amqp/index.js.map +1 -0
  15. package/dist/src/index.d.ts +3 -0
  16. package/dist/src/index.d.ts.map +1 -0
  17. package/dist/src/index.js +5 -0
  18. package/dist/src/index.js.map +1 -0
  19. package/dist/src/shared/asyncapi-emitter.d.ts +5 -0
  20. package/dist/src/shared/asyncapi-emitter.d.ts.map +1 -0
  21. package/dist/src/shared/asyncapi-emitter.js +70 -0
  22. package/dist/src/shared/asyncapi-emitter.js.map +1 -0
  23. package/dist/src/shared/decorators-service.d.ts +33 -0
  24. package/dist/src/shared/decorators-service.d.ts.map +1 -0
  25. package/dist/src/shared/decorators-service.js +13 -0
  26. package/dist/src/shared/decorators-service.js.map +1 -0
  27. package/dist/src/shared/document.d.ts +134 -0
  28. package/dist/src/shared/document.d.ts.map +1 -0
  29. package/dist/src/shared/document.js +4 -0
  30. package/dist/src/shared/document.js.map +1 -0
  31. package/dist/src/shared/lib.d.ts +250 -0
  32. package/dist/src/shared/lib.d.ts.map +1 -0
  33. package/dist/src/shared/lib.js +108 -0
  34. package/dist/src/shared/lib.js.map +1 -0
  35. package/dist/src/shared/options.d.ts +8 -0
  36. package/dist/src/shared/options.d.ts.map +1 -0
  37. package/dist/src/shared/options.js +25 -0
  38. package/dist/src/shared/options.js.map +1 -0
  39. package/dist/src/shared/schema-emitter.d.ts +34 -0
  40. package/dist/src/shared/schema-emitter.d.ts.map +1 -0
  41. package/dist/src/shared/schema-emitter.js +351 -0
  42. package/dist/src/shared/schema-emitter.js.map +1 -0
  43. package/dist/src/shared/state.d.ts +13 -0
  44. package/dist/src/shared/state.d.ts.map +1 -0
  45. package/dist/src/shared/state.js +14 -0
  46. package/dist/src/shared/state.js.map +1 -0
  47. package/dist/src/shared/yaml-writer.d.ts +7 -0
  48. package/dist/src/shared/yaml-writer.d.ts.map +1 -0
  49. package/dist/src/shared/yaml-writer.js +8 -0
  50. package/dist/src/shared/yaml-writer.js.map +1 -0
  51. package/dist/src/testing.d.ts +2 -0
  52. package/dist/src/testing.d.ts.map +1 -0
  53. package/dist/src/testing.js +6 -0
  54. package/dist/src/testing.js.map +1 -0
  55. package/dist/src/ws/builder.d.ts +4 -0
  56. package/dist/src/ws/builder.d.ts.map +1 -0
  57. package/dist/src/ws/builder.js +94 -0
  58. package/dist/src/ws/builder.js.map +1 -0
  59. package/dist/src/ws/decorators.d.ts +12 -0
  60. package/dist/src/ws/decorators.d.ts.map +1 -0
  61. package/dist/src/ws/decorators.js +18 -0
  62. package/dist/src/ws/decorators.js.map +1 -0
  63. package/dist/src/ws/index.d.ts +5 -0
  64. package/dist/src/ws/index.d.ts.map +1 -0
  65. package/dist/src/ws/index.js +7 -0
  66. package/dist/src/ws/index.js.map +1 -0
  67. package/docs/README.md +48 -0
  68. package/docs/architecture.md +319 -0
  69. package/docs/usage.md +281 -0
  70. package/examples/amqp-consume.tsp +26 -0
  71. package/examples/amqp-publish.tsp +25 -0
  72. package/examples/ws-discriminator.tsp +26 -0
  73. package/examples/ws-reply.tsp +29 -0
  74. package/lib/amqp.tsp +83 -0
  75. package/lib/main.tsp +65 -0
  76. package/lib/ws.tsp +42 -0
  77. package/package.json +75 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"asyncapi-emitter.js","sourceRoot":"","sources":["../../../src/shared/asyncapi-emitter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ import type { DecoratorContext, Namespace } from "@typespec/compiler";
2
+ export declare const namespace = "TspAsyncApi";
3
+ export interface InfoOptions {
4
+ version: string;
5
+ description?: string;
6
+ contact?: {
7
+ name?: string;
8
+ url?: string;
9
+ email?: string;
10
+ };
11
+ license?: {
12
+ name: string;
13
+ url?: string;
14
+ };
15
+ externalDocs?: {
16
+ url: string;
17
+ description?: string;
18
+ };
19
+ }
20
+ export interface ServerOptions {
21
+ host: string;
22
+ protocol: string;
23
+ pathname?: string;
24
+ description?: string;
25
+ variables?: Record<string, {
26
+ default?: string;
27
+ description?: string;
28
+ enum?: string[];
29
+ }>;
30
+ }
31
+ export declare function $info(context: DecoratorContext, target: Namespace, options: InfoOptions): void;
32
+ export declare function $server(context: DecoratorContext, target: Namespace, name: string, options: ServerOptions): void;
33
+ //# sourceMappingURL=decorators-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decorators-service.d.ts","sourceRoot":"","sources":["../../../src/shared/decorators-service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAItE,eAAO,MAAM,SAAS,gBAAgB,CAAC;AAEvC,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1D,OAAO,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACzC,YAAY,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACtD;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;CACzF;AAED,wBAAgB,KAAK,CAAC,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,GAAG,IAAI,CAE9F;AAED,wBAAgB,OAAO,CACrB,OAAO,EAAE,gBAAgB,EACzB,MAAM,EAAE,SAAS,EACjB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,aAAa,GACrB,IAAI,CAMN"}
@@ -0,0 +1,13 @@
1
+ import { InfoKey, ServerKey } from "./state.js";
2
+ // Сопоставление TypeSpec-namespace с JS-модулем.
3
+ export const namespace = "TspAsyncApi";
4
+ export function $info(context, target, options) {
5
+ context.program.stateMap(InfoKey).set(target, options);
6
+ }
7
+ export function $server(context, target, name, options) {
8
+ const map = context.program.stateMap(ServerKey).get(target) ??
9
+ new Map();
10
+ map.set(name, options);
11
+ context.program.stateMap(ServerKey).set(target, map);
12
+ }
13
+ //# sourceMappingURL=decorators-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decorators-service.js","sourceRoot":"","sources":["../../../src/shared/decorators-service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEhD,iDAAiD;AACjD,MAAM,CAAC,MAAM,SAAS,GAAG,aAAa,CAAC;AAkBvC,MAAM,UAAU,KAAK,CAAC,OAAyB,EAAE,MAAiB,EAAE,OAAoB;IACtF,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,OAAO,CACrB,OAAyB,EACzB,MAAiB,EACjB,IAAY,EACZ,OAAsB;IAEtB,MAAM,GAAG,GACN,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,MAAM,CAA4C;QAC3F,IAAI,GAAG,EAAE,CAAC;IACZ,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACvB,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AACvD,CAAC"}
@@ -0,0 +1,134 @@
1
+ /**
2
+ * Типизированное представление AsyncAPI 3.0 документа.
3
+ * Используется как промежуточная структура перед сериализацией в YAML/JSON.
4
+ */
5
+ export interface AsyncApiDoc {
6
+ asyncapi: "3.0.0";
7
+ info: AsyncApiInfo;
8
+ servers?: Record<string, AsyncApiServer>;
9
+ channels?: Record<string, AsyncApiChannel>;
10
+ operations?: Record<string, AsyncApiOperation>;
11
+ components?: AsyncApiComponents;
12
+ }
13
+ export interface AsyncApiInfo {
14
+ title: string;
15
+ version: string;
16
+ description?: string;
17
+ contact?: {
18
+ name?: string;
19
+ url?: string;
20
+ email?: string;
21
+ };
22
+ license?: {
23
+ name: string;
24
+ url?: string;
25
+ };
26
+ externalDocs?: {
27
+ url: string;
28
+ description?: string;
29
+ };
30
+ }
31
+ export interface AsyncApiServer {
32
+ host: string;
33
+ protocol: string;
34
+ pathname?: string;
35
+ description?: string;
36
+ variables?: Record<string, {
37
+ default?: string;
38
+ description?: string;
39
+ enum?: string[];
40
+ }>;
41
+ }
42
+ export interface AsyncApiChannel {
43
+ address?: string;
44
+ description?: string;
45
+ messages?: Record<string, {
46
+ $ref: string;
47
+ }>;
48
+ bindings?: Record<string, unknown>;
49
+ }
50
+ export interface AsyncApiOperation {
51
+ action: "send" | "receive";
52
+ channel: {
53
+ $ref: string;
54
+ };
55
+ summary?: string;
56
+ description?: string;
57
+ messages?: Array<{
58
+ $ref: string;
59
+ }>;
60
+ reply?: {
61
+ channel: {
62
+ $ref: string;
63
+ };
64
+ messages: Array<{
65
+ $ref: string;
66
+ }>;
67
+ };
68
+ }
69
+ export interface AsyncApiComponents {
70
+ schemas?: Record<string, Schema>;
71
+ messages?: Record<string, AsyncApiMessage>;
72
+ }
73
+ export interface AsyncApiMessage {
74
+ summary?: string;
75
+ description?: string;
76
+ contentType?: string;
77
+ payload?: Schema | {
78
+ $ref: string;
79
+ };
80
+ }
81
+ /**
82
+ * JSON Schema подмножество, которое мы реально генерируем.
83
+ * Намеренно не пытаемся типизировать всё JSON Schema — только то, что эмиттим.
84
+ */
85
+ export type Schema = RefSchema | StringSchema | BooleanSchema | IntegerSchema | NullableStringSchema | NullableBooleanSchema | NullableIntegerSchema | ArraySchema | ObjectSchema | AllOfSchema;
86
+ export interface RefSchema {
87
+ $ref: string;
88
+ description?: string;
89
+ }
90
+ export interface StringSchema {
91
+ type: "string";
92
+ description?: string;
93
+ enum?: string[];
94
+ const?: string;
95
+ format?: "binary";
96
+ }
97
+ export interface BooleanSchema {
98
+ type: "boolean";
99
+ description?: string;
100
+ }
101
+ export interface IntegerSchema {
102
+ type: "integer";
103
+ description?: string;
104
+ }
105
+ export interface NullableStringSchema {
106
+ type: ["string", "null"];
107
+ description?: string;
108
+ }
109
+ export interface NullableBooleanSchema {
110
+ type: ["boolean", "null"];
111
+ description?: string;
112
+ }
113
+ export interface NullableIntegerSchema {
114
+ type: ["integer", "null"];
115
+ description?: string;
116
+ }
117
+ export interface ArraySchema {
118
+ type: "array";
119
+ items: Schema;
120
+ description?: string;
121
+ }
122
+ export interface ObjectSchema {
123
+ type: "object";
124
+ properties?: Record<string, Schema>;
125
+ required?: string[];
126
+ additionalProperties?: false | Schema;
127
+ description?: string;
128
+ }
129
+ export interface AllOfSchema {
130
+ allOf: Schema[];
131
+ description?: string;
132
+ }
133
+ export declare function emptyDoc(): AsyncApiDoc;
134
+ //# sourceMappingURL=document.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"document.d.ts","sourceRoot":"","sources":["../../../src/shared/document.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export function emptyDoc() {
2
+ return { asyncapi: "3.0.0", info: { title: "Untitled", version: "0.0.0" } };
3
+ }
4
+ //# sourceMappingURL=document.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"document.js","sourceRoot":"","sources":["../../../src/shared/document.ts"],"names":[],"mappings":"AAsIA,MAAM,UAAU,QAAQ;IACtB,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC;AAC9E,CAAC"}
@@ -0,0 +1,250 @@
1
+ import { type EmitterOptions } from "./options.js";
2
+ export declare const $lib: import("@typespec/compiler").TypeSpecLibrary<{
3
+ "unsupported-sized-int": {
4
+ readonly default: import("@typespec/compiler").CallableMessage<["name"]>;
5
+ };
6
+ "unsupported-int64": {
7
+ readonly default: "64-битные числа должны передаваться через 'string'. Поясните формат в @doc.";
8
+ };
9
+ "unsupported-float": {
10
+ readonly default: "Числа с плавающей точкой передавайте через 'string' во избежание потерь точности на границе между языками.";
11
+ };
12
+ "unsupported-fuzzy-numeric": {
13
+ readonly default: import("@typespec/compiler").CallableMessage<["name"]>;
14
+ };
15
+ "unsupported-temporal": {
16
+ readonly default: import("@typespec/compiler").CallableMessage<["name"]>;
17
+ };
18
+ "unsupported-url": {
19
+ readonly default: "URL — это 'string'.";
20
+ };
21
+ "anonymous-model": {
22
+ readonly default: import("@typespec/compiler").CallableMessage<["field", "parent", "suggested"]>;
23
+ };
24
+ "anonymous-return": {
25
+ readonly default: import("@typespec/compiler").CallableMessage<["op"]>;
26
+ };
27
+ "non-string-enum": {
28
+ readonly default: import("@typespec/compiler").CallableMessage<["name"]>;
29
+ };
30
+ "invalid-enum-value": {
31
+ readonly default: import("@typespec/compiler").CallableMessage<["value"]>;
32
+ };
33
+ "publish-without-exchange": {
34
+ readonly default: "@publish требует поле 'exchange' в конфиге.";
35
+ };
36
+ "consume-without-queue": {
37
+ readonly default: "@consume требует поле 'queue' в конфиге.";
38
+ };
39
+ "unknown-exchange-type": {
40
+ readonly default: import("@typespec/compiler").CallableMessage<["type"]>;
41
+ };
42
+ "reply-on-amqp": {
43
+ readonly default: "@reply не поддерживается в AMQP-таргете — request/reply реализуется через два отдельных канала.";
44
+ };
45
+ "missing-doc": {
46
+ readonly default: import("@typespec/compiler").CallableMessage<["name"]>;
47
+ };
48
+ "unsupported-union": {
49
+ readonly default: "Поддерживаются только union'ы формы 'T | null'. Прочие union'ы не входят в v1.";
50
+ };
51
+ }, EmitterOptions, never>;
52
+ export declare const reportDiagnostic: <C extends "unsupported-sized-int" | "unsupported-int64" | "unsupported-float" | "unsupported-fuzzy-numeric" | "unsupported-temporal" | "unsupported-url" | "anonymous-model" | "anonymous-return" | "non-string-enum" | "invalid-enum-value" | "publish-without-exchange" | "consume-without-queue" | "unknown-exchange-type" | "reply-on-amqp" | "missing-doc" | "unsupported-union", M extends keyof {
53
+ "unsupported-sized-int": {
54
+ readonly default: import("@typespec/compiler").CallableMessage<["name"]>;
55
+ };
56
+ "unsupported-int64": {
57
+ readonly default: "64-битные числа должны передаваться через 'string'. Поясните формат в @doc.";
58
+ };
59
+ "unsupported-float": {
60
+ readonly default: "Числа с плавающей точкой передавайте через 'string' во избежание потерь точности на границе между языками.";
61
+ };
62
+ "unsupported-fuzzy-numeric": {
63
+ readonly default: import("@typespec/compiler").CallableMessage<["name"]>;
64
+ };
65
+ "unsupported-temporal": {
66
+ readonly default: import("@typespec/compiler").CallableMessage<["name"]>;
67
+ };
68
+ "unsupported-url": {
69
+ readonly default: "URL — это 'string'.";
70
+ };
71
+ "anonymous-model": {
72
+ readonly default: import("@typespec/compiler").CallableMessage<["field", "parent", "suggested"]>;
73
+ };
74
+ "anonymous-return": {
75
+ readonly default: import("@typespec/compiler").CallableMessage<["op"]>;
76
+ };
77
+ "non-string-enum": {
78
+ readonly default: import("@typespec/compiler").CallableMessage<["name"]>;
79
+ };
80
+ "invalid-enum-value": {
81
+ readonly default: import("@typespec/compiler").CallableMessage<["value"]>;
82
+ };
83
+ "publish-without-exchange": {
84
+ readonly default: "@publish требует поле 'exchange' в конфиге.";
85
+ };
86
+ "consume-without-queue": {
87
+ readonly default: "@consume требует поле 'queue' в конфиге.";
88
+ };
89
+ "unknown-exchange-type": {
90
+ readonly default: import("@typespec/compiler").CallableMessage<["type"]>;
91
+ };
92
+ "reply-on-amqp": {
93
+ readonly default: "@reply не поддерживается в AMQP-таргете — request/reply реализуется через два отдельных канала.";
94
+ };
95
+ "missing-doc": {
96
+ readonly default: import("@typespec/compiler").CallableMessage<["name"]>;
97
+ };
98
+ "unsupported-union": {
99
+ readonly default: "Поддерживаются только union'ы формы 'T | null'. Прочие union'ы не входят в v1.";
100
+ };
101
+ }[C]>(program: import("@typespec/compiler").Program, diag: import("@typespec/compiler").DiagnosticReport<{
102
+ "unsupported-sized-int": {
103
+ readonly default: import("@typespec/compiler").CallableMessage<["name"]>;
104
+ };
105
+ "unsupported-int64": {
106
+ readonly default: "64-битные числа должны передаваться через 'string'. Поясните формат в @doc.";
107
+ };
108
+ "unsupported-float": {
109
+ readonly default: "Числа с плавающей точкой передавайте через 'string' во избежание потерь точности на границе между языками.";
110
+ };
111
+ "unsupported-fuzzy-numeric": {
112
+ readonly default: import("@typespec/compiler").CallableMessage<["name"]>;
113
+ };
114
+ "unsupported-temporal": {
115
+ readonly default: import("@typespec/compiler").CallableMessage<["name"]>;
116
+ };
117
+ "unsupported-url": {
118
+ readonly default: "URL — это 'string'.";
119
+ };
120
+ "anonymous-model": {
121
+ readonly default: import("@typespec/compiler").CallableMessage<["field", "parent", "suggested"]>;
122
+ };
123
+ "anonymous-return": {
124
+ readonly default: import("@typespec/compiler").CallableMessage<["op"]>;
125
+ };
126
+ "non-string-enum": {
127
+ readonly default: import("@typespec/compiler").CallableMessage<["name"]>;
128
+ };
129
+ "invalid-enum-value": {
130
+ readonly default: import("@typespec/compiler").CallableMessage<["value"]>;
131
+ };
132
+ "publish-without-exchange": {
133
+ readonly default: "@publish требует поле 'exchange' в конфиге.";
134
+ };
135
+ "consume-without-queue": {
136
+ readonly default: "@consume требует поле 'queue' в конфиге.";
137
+ };
138
+ "unknown-exchange-type": {
139
+ readonly default: import("@typespec/compiler").CallableMessage<["type"]>;
140
+ };
141
+ "reply-on-amqp": {
142
+ readonly default: "@reply не поддерживается в AMQP-таргете — request/reply реализуется через два отдельных канала.";
143
+ };
144
+ "missing-doc": {
145
+ readonly default: import("@typespec/compiler").CallableMessage<["name"]>;
146
+ };
147
+ "unsupported-union": {
148
+ readonly default: "Поддерживаются только union'ы формы 'T | null'. Прочие union'ы не входят в v1.";
149
+ };
150
+ }, C, M>) => void, createDiagnostic: <C extends "unsupported-sized-int" | "unsupported-int64" | "unsupported-float" | "unsupported-fuzzy-numeric" | "unsupported-temporal" | "unsupported-url" | "anonymous-model" | "anonymous-return" | "non-string-enum" | "invalid-enum-value" | "publish-without-exchange" | "consume-without-queue" | "unknown-exchange-type" | "reply-on-amqp" | "missing-doc" | "unsupported-union", M extends keyof {
151
+ "unsupported-sized-int": {
152
+ readonly default: import("@typespec/compiler").CallableMessage<["name"]>;
153
+ };
154
+ "unsupported-int64": {
155
+ readonly default: "64-битные числа должны передаваться через 'string'. Поясните формат в @doc.";
156
+ };
157
+ "unsupported-float": {
158
+ readonly default: "Числа с плавающей точкой передавайте через 'string' во избежание потерь точности на границе между языками.";
159
+ };
160
+ "unsupported-fuzzy-numeric": {
161
+ readonly default: import("@typespec/compiler").CallableMessage<["name"]>;
162
+ };
163
+ "unsupported-temporal": {
164
+ readonly default: import("@typespec/compiler").CallableMessage<["name"]>;
165
+ };
166
+ "unsupported-url": {
167
+ readonly default: "URL — это 'string'.";
168
+ };
169
+ "anonymous-model": {
170
+ readonly default: import("@typespec/compiler").CallableMessage<["field", "parent", "suggested"]>;
171
+ };
172
+ "anonymous-return": {
173
+ readonly default: import("@typespec/compiler").CallableMessage<["op"]>;
174
+ };
175
+ "non-string-enum": {
176
+ readonly default: import("@typespec/compiler").CallableMessage<["name"]>;
177
+ };
178
+ "invalid-enum-value": {
179
+ readonly default: import("@typespec/compiler").CallableMessage<["value"]>;
180
+ };
181
+ "publish-without-exchange": {
182
+ readonly default: "@publish требует поле 'exchange' в конфиге.";
183
+ };
184
+ "consume-without-queue": {
185
+ readonly default: "@consume требует поле 'queue' в конфиге.";
186
+ };
187
+ "unknown-exchange-type": {
188
+ readonly default: import("@typespec/compiler").CallableMessage<["type"]>;
189
+ };
190
+ "reply-on-amqp": {
191
+ readonly default: "@reply не поддерживается в AMQP-таргете — request/reply реализуется через два отдельных канала.";
192
+ };
193
+ "missing-doc": {
194
+ readonly default: import("@typespec/compiler").CallableMessage<["name"]>;
195
+ };
196
+ "unsupported-union": {
197
+ readonly default: "Поддерживаются только union'ы формы 'T | null'. Прочие union'ы не входят в v1.";
198
+ };
199
+ }[C]>(diag: import("@typespec/compiler").DiagnosticReport<{
200
+ "unsupported-sized-int": {
201
+ readonly default: import("@typespec/compiler").CallableMessage<["name"]>;
202
+ };
203
+ "unsupported-int64": {
204
+ readonly default: "64-битные числа должны передаваться через 'string'. Поясните формат в @doc.";
205
+ };
206
+ "unsupported-float": {
207
+ readonly default: "Числа с плавающей точкой передавайте через 'string' во избежание потерь точности на границе между языками.";
208
+ };
209
+ "unsupported-fuzzy-numeric": {
210
+ readonly default: import("@typespec/compiler").CallableMessage<["name"]>;
211
+ };
212
+ "unsupported-temporal": {
213
+ readonly default: import("@typespec/compiler").CallableMessage<["name"]>;
214
+ };
215
+ "unsupported-url": {
216
+ readonly default: "URL — это 'string'.";
217
+ };
218
+ "anonymous-model": {
219
+ readonly default: import("@typespec/compiler").CallableMessage<["field", "parent", "suggested"]>;
220
+ };
221
+ "anonymous-return": {
222
+ readonly default: import("@typespec/compiler").CallableMessage<["op"]>;
223
+ };
224
+ "non-string-enum": {
225
+ readonly default: import("@typespec/compiler").CallableMessage<["name"]>;
226
+ };
227
+ "invalid-enum-value": {
228
+ readonly default: import("@typespec/compiler").CallableMessage<["value"]>;
229
+ };
230
+ "publish-without-exchange": {
231
+ readonly default: "@publish требует поле 'exchange' в конфиге.";
232
+ };
233
+ "consume-without-queue": {
234
+ readonly default: "@consume требует поле 'queue' в конфиге.";
235
+ };
236
+ "unknown-exchange-type": {
237
+ readonly default: import("@typespec/compiler").CallableMessage<["type"]>;
238
+ };
239
+ "reply-on-amqp": {
240
+ readonly default: "@reply не поддерживается в AMQP-таргете — request/reply реализуется через два отдельных канала.";
241
+ };
242
+ "missing-doc": {
243
+ readonly default: import("@typespec/compiler").CallableMessage<["name"]>;
244
+ };
245
+ "unsupported-union": {
246
+ readonly default: "Поддерживаются только union'ы формы 'T | null'. Прочие union'ы не входят в v1.";
247
+ };
248
+ }, C, M>) => import("@typespec/compiler").Diagnostic, createStateSymbol: (name: string) => symbol;
249
+ export type { EmitterOptions };
250
+ //# sourceMappingURL=lib.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lib.d.ts","sourceRoot":"","sources":["../../../src/shared/lib.ts"],"names":[],"mappings":"AACA,OAAO,EAAwB,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AAEzE,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yBAuGf,CAAC;AAEH,eAAO,MAAQ,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBAAE,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sDAAE,iBAAiB,0BAAS,CAAC;AAC9E,YAAY,EAAE,cAAc,EAAE,CAAC"}
@@ -0,0 +1,108 @@
1
+ import { createTypeSpecLibrary, paramMessage } from "@typespec/compiler";
2
+ import { EmitterOptionsSchema } from "./options.js";
3
+ export const $lib = createTypeSpecLibrary({
4
+ name: "@etc-utils/typespec-amqp-ws",
5
+ diagnostics: {
6
+ "unsupported-sized-int": {
7
+ severity: "error",
8
+ messages: {
9
+ default: paramMessage `Тип '${"name"}' не поддерживается. Используйте 'integer' — codegen всё равно генерирует signed int32 для всех ширин и игнорирует format. Размер-специфичные типы создают ложное ожидание сохранения семантики.`,
10
+ },
11
+ },
12
+ "unsupported-int64": {
13
+ severity: "error",
14
+ messages: {
15
+ default: `64-битные числа должны передаваться через 'string'. Поясните формат в @doc.`,
16
+ },
17
+ },
18
+ "unsupported-float": {
19
+ severity: "error",
20
+ messages: {
21
+ default: `Числа с плавающей точкой передавайте через 'string' во избежание потерь точности на границе между языками.`,
22
+ },
23
+ },
24
+ "unsupported-fuzzy-numeric": {
25
+ severity: "error",
26
+ messages: {
27
+ default: paramMessage `Тип '${"name"}' неоднозначен для кодогенерации; используйте 'integer'.`,
28
+ },
29
+ },
30
+ "unsupported-temporal": {
31
+ severity: "error",
32
+ messages: {
33
+ default: paramMessage `Тип '${"name"}' не поддерживается. Дата/время — это 'string' в RFC-3339 с пояснением в @doc. Типизированных дат не используем — TypeScript-codegen подставляет Date, что ломает разбор RFC-3339 при разных локалях.`,
34
+ },
35
+ },
36
+ "unsupported-url": {
37
+ severity: "error",
38
+ messages: {
39
+ default: `URL — это 'string'.`,
40
+ },
41
+ },
42
+ "anonymous-model": {
43
+ severity: "error",
44
+ messages: {
45
+ default: paramMessage `Поле '${"field"}' в модели '${"parent"}' использует анонимную inline-модель. Объявите её через 'model ${"suggested"} { ... }' и используйте именованный тип.`,
46
+ },
47
+ },
48
+ "anonymous-return": {
49
+ severity: "error",
50
+ messages: {
51
+ default: paramMessage `Операция '${"op"}' возвращает анонимную inline-модель. Объявите модель отдельно.`,
52
+ },
53
+ },
54
+ "non-string-enum": {
55
+ severity: "error",
56
+ messages: {
57
+ default: paramMessage `Enum '${"name"}' содержит non-string значения. Поддерживаются только string-enum.`,
58
+ },
59
+ },
60
+ "invalid-enum-value": {
61
+ severity: "error",
62
+ messages: {
63
+ default: paramMessage `Значение enum '${"value"}' не подходит как идентификатор C++/Go/TS. Допустимый regex: ^[a-zA-Z][a-zA-Z0-9_]*$`,
64
+ },
65
+ },
66
+ "publish-without-exchange": {
67
+ severity: "error",
68
+ messages: {
69
+ default: `@publish требует поле 'exchange' в конфиге.`,
70
+ },
71
+ },
72
+ "consume-without-queue": {
73
+ severity: "error",
74
+ messages: {
75
+ default: `@consume требует поле 'queue' в конфиге.`,
76
+ },
77
+ },
78
+ "unknown-exchange-type": {
79
+ severity: "error",
80
+ messages: {
81
+ default: paramMessage `Неизвестный тип exchange: '${"type"}'. Поддерживаются: direct, fanout.`,
82
+ },
83
+ },
84
+ "reply-on-amqp": {
85
+ severity: "error",
86
+ messages: {
87
+ default: `@reply не поддерживается в AMQP-таргете — request/reply реализуется через два отдельных канала.`,
88
+ },
89
+ },
90
+ "missing-doc": {
91
+ severity: "warning",
92
+ messages: {
93
+ default: paramMessage `Модель/enum '${"name"}' не имеет @doc — добавьте описание для читаемости.`,
94
+ },
95
+ },
96
+ "unsupported-union": {
97
+ severity: "error",
98
+ messages: {
99
+ default: `Поддерживаются только union'ы формы 'T | null'. Прочие union'ы не входят в v1.`,
100
+ },
101
+ },
102
+ },
103
+ emitter: {
104
+ options: EmitterOptionsSchema,
105
+ },
106
+ });
107
+ export const { reportDiagnostic, createDiagnostic, createStateSymbol } = $lib;
108
+ //# sourceMappingURL=lib.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lib.js","sourceRoot":"","sources":["../../../src/shared/lib.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACzE,OAAO,EAAE,oBAAoB,EAAuB,MAAM,cAAc,CAAC;AAEzE,MAAM,CAAC,MAAM,IAAI,GAAG,qBAAqB,CAAC;IACxC,IAAI,EAAE,6BAA6B;IACnC,WAAW,EAAE;QACX,uBAAuB,EAAE;YACvB,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE;gBACR,OAAO,EAAE,YAAY,CAAA,QAAQ,MAAM,kMAAkM;aACtO;SACF;QACD,mBAAmB,EAAE;YACnB,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE;gBACR,OAAO,EAAE,6EAA6E;aACvF;SACF;QACD,mBAAmB,EAAE;YACnB,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE;gBACR,OAAO,EAAE,4GAA4G;aACtH;SACF;QACD,2BAA2B,EAAE;YAC3B,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE;gBACR,OAAO,EAAE,YAAY,CAAA,QAAQ,MAAM,0DAA0D;aAC9F;SACF;QACD,sBAAsB,EAAE;YACtB,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE;gBACR,OAAO,EAAE,YAAY,CAAA,QAAQ,MAAM,uMAAuM;aAC3O;SACF;QACD,iBAAiB,EAAE;YACjB,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE;gBACR,OAAO,EAAE,qBAAqB;aAC/B;SACF;QACD,iBAAiB,EAAE;YACjB,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE;gBACR,OAAO,EAAE,YAAY,CAAA,SAAS,OAAO,eAAe,QAAQ,kEAAkE,WAAW,0CAA0C;aACpL;SACF;QACD,kBAAkB,EAAE;YAClB,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE;gBACR,OAAO,EAAE,YAAY,CAAA,aAAa,IAAI,iEAAiE;aACxG;SACF;QACD,iBAAiB,EAAE;YACjB,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE;gBACR,OAAO,EAAE,YAAY,CAAA,SAAS,MAAM,oEAAoE;aACzG;SACF;QACD,oBAAoB,EAAE;YACpB,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE;gBACR,OAAO,EAAE,YAAY,CAAA,kBAAkB,OAAO,sFAAsF;aACrI;SACF;QACD,0BAA0B,EAAE;YAC1B,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE;gBACR,OAAO,EAAE,6CAA6C;aACvD;SACF;QACD,uBAAuB,EAAE;YACvB,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE;gBACR,OAAO,EAAE,0CAA0C;aACpD;SACF;QACD,uBAAuB,EAAE;YACvB,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE;gBACR,OAAO,EAAE,YAAY,CAAA,8BAA8B,MAAM,oCAAoC;aAC9F;SACF;QACD,eAAe,EAAE;YACf,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE;gBACR,OAAO,EAAE,iGAAiG;aAC3G;SACF;QACD,aAAa,EAAE;YACb,QAAQ,EAAE,SAAS;YACnB,QAAQ,EAAE;gBACR,OAAO,EAAE,YAAY,CAAA,gBAAgB,MAAM,qDAAqD;aACjG;SACF;QACD,mBAAmB,EAAE;YACnB,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE;gBACR,OAAO,EAAE,gFAAgF;aAC1F;SACF;KACF;IACD,OAAO,EAAE;QACP,OAAO,EAAE,oBAAoB;KAC9B;CACF,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,GAAG,IAAI,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { JSONSchemaType } from "@typespec/compiler";
2
+ export interface EmitterOptions {
3
+ "file-type"?: "yaml" | "json";
4
+ "output-file"?: string;
5
+ "new-line"?: "lf" | "crlf";
6
+ }
7
+ export declare const EmitterOptionsSchema: JSONSchemaType<EmitterOptions>;
8
+ //# sourceMappingURL=options.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../../src/shared/options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD,MAAM,WAAW,cAAc;IAC7B,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC9B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC;CAC5B;AAED,eAAO,MAAM,oBAAoB,EAAE,cAAc,CAAC,cAAc,CAuB/D,CAAC"}
@@ -0,0 +1,25 @@
1
+ export const EmitterOptionsSchema = {
2
+ type: "object",
3
+ additionalProperties: false,
4
+ properties: {
5
+ "file-type": {
6
+ type: "string",
7
+ enum: ["yaml", "json"],
8
+ nullable: true,
9
+ default: "yaml",
10
+ },
11
+ "output-file": {
12
+ type: "string",
13
+ nullable: true,
14
+ default: "asyncapi.yaml",
15
+ },
16
+ "new-line": {
17
+ type: "string",
18
+ enum: ["lf", "crlf"],
19
+ nullable: true,
20
+ default: "lf",
21
+ },
22
+ },
23
+ required: [],
24
+ };
25
+ //# sourceMappingURL=options.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"options.js","sourceRoot":"","sources":["../../../src/shared/options.ts"],"names":[],"mappings":"AAQA,MAAM,CAAC,MAAM,oBAAoB,GAAmC;IAClE,IAAI,EAAE,QAAQ;IACd,oBAAoB,EAAE,KAAK;IAC3B,UAAU,EAAE;QACV,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;YACtB,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE,MAAM;SAChB;QACD,aAAa,EAAE;YACb,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE,eAAe;SACzB;QACD,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC;YACpB,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE,IAAI;SACd;KACF;IACD,QAAQ,EAAE,EAAE;CACb,CAAC"}