confluent-schema-registry 3.3.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (173) hide show
  1. package/.dockerignore +2 -0
  2. package/.prettierrc.js +8 -0
  3. package/CHANGELOG.md +166 -0
  4. package/Dockerfile +10 -0
  5. package/LICENSE +21 -0
  6. package/README.md +44 -0
  7. package/bin/avdlToAVSC.sh +9 -0
  8. package/dist/@types.d.ts +93 -0
  9. package/dist/@types.js +10 -0
  10. package/dist/@types.js.map +1 -0
  11. package/dist/AvroHelper.d.ts +12 -0
  12. package/dist/AvroHelper.js +67 -0
  13. package/dist/AvroHelper.js.map +1 -0
  14. package/dist/JsonHelper.d.ts +7 -0
  15. package/dist/JsonHelper.js +20 -0
  16. package/dist/JsonHelper.js.map +1 -0
  17. package/dist/JsonSchema.d.ts +31 -0
  18. package/dist/JsonSchema.js +58 -0
  19. package/dist/JsonSchema.js.map +1 -0
  20. package/dist/ProtoHelper.d.ts +7 -0
  21. package/dist/ProtoHelper.js +23 -0
  22. package/dist/ProtoHelper.js.map +1 -0
  23. package/dist/ProtoSchema.d.ts +14 -0
  24. package/dist/ProtoSchema.js +66 -0
  25. package/dist/ProtoSchema.js.map +1 -0
  26. package/dist/SchemaRegistry.d.ts +48 -0
  27. package/dist/SchemaRegistry.js +250 -0
  28. package/dist/SchemaRegistry.js.map +1 -0
  29. package/dist/api/index.d.ts +43 -0
  30. package/dist/api/index.js +90 -0
  31. package/dist/api/index.js.map +1 -0
  32. package/dist/api/middleware/confluentEncoderMiddleware.d.ts +3 -0
  33. package/dist/api/middleware/confluentEncoderMiddleware.js +31 -0
  34. package/dist/api/middleware/confluentEncoderMiddleware.js.map +1 -0
  35. package/dist/api/middleware/errorMiddleware.d.ts +3 -0
  36. package/dist/api/middleware/errorMiddleware.js +20 -0
  37. package/dist/api/middleware/errorMiddleware.js.map +1 -0
  38. package/dist/api/middleware/userAgent.d.ts +3 -0
  39. package/dist/api/middleware/userAgent.js +18 -0
  40. package/dist/api/middleware/userAgent.js.map +1 -0
  41. package/dist/cache.d.ts +20 -0
  42. package/dist/cache.js +24 -0
  43. package/dist/cache.js.map +1 -0
  44. package/dist/constants.d.ts +11 -0
  45. package/dist/constants.js +15 -0
  46. package/dist/constants.js.map +1 -0
  47. package/dist/errors.d.ts +14 -0
  48. package/dist/errors.js +26 -0
  49. package/dist/errors.js.map +1 -0
  50. package/dist/index.d.ts +4 -0
  51. package/dist/index.js +13 -0
  52. package/dist/index.js.map +1 -0
  53. package/dist/schemaTypeResolver.d.ts +4 -0
  54. package/dist/schemaTypeResolver.js +80 -0
  55. package/dist/schemaTypeResolver.js.map +1 -0
  56. package/dist/utils/avdlToAVSC.d.ts +2 -0
  57. package/dist/utils/avdlToAVSC.js +85 -0
  58. package/dist/utils/avdlToAVSC.js.map +1 -0
  59. package/dist/utils/index.d.ts +2 -0
  60. package/dist/utils/index.js +9 -0
  61. package/dist/utils/index.js.map +1 -0
  62. package/dist/utils/readAVSC.d.ts +3 -0
  63. package/dist/utils/readAVSC.js +33 -0
  64. package/dist/utils/readAVSC.js.map +1 -0
  65. package/dist/wireDecoder.d.ts +7 -0
  66. package/dist/wireDecoder.js +8 -0
  67. package/dist/wireDecoder.js.map +1 -0
  68. package/dist/wireEncoder.d.ts +3 -0
  69. package/dist/wireEncoder.js +10 -0
  70. package/dist/wireEncoder.js.map +1 -0
  71. package/dockest-error.json +11 -0
  72. package/dockest.ts +30 -0
  73. package/jest.setup.ts +60 -0
  74. package/package.json +56 -0
  75. package/release/CHANGELOG.md +166 -0
  76. package/release/LICENSE +21 -0
  77. package/release/README.md +44 -0
  78. package/release/dist/@types.d.ts +93 -0
  79. package/release/dist/@types.js +10 -0
  80. package/release/dist/@types.js.map +1 -0
  81. package/release/dist/AvroHelper.d.ts +12 -0
  82. package/release/dist/AvroHelper.js +67 -0
  83. package/release/dist/AvroHelper.js.map +1 -0
  84. package/release/dist/JsonHelper.d.ts +7 -0
  85. package/release/dist/JsonHelper.js +20 -0
  86. package/release/dist/JsonHelper.js.map +1 -0
  87. package/release/dist/JsonSchema.d.ts +31 -0
  88. package/release/dist/JsonSchema.js +58 -0
  89. package/release/dist/JsonSchema.js.map +1 -0
  90. package/release/dist/ProtoHelper.d.ts +7 -0
  91. package/release/dist/ProtoHelper.js +23 -0
  92. package/release/dist/ProtoHelper.js.map +1 -0
  93. package/release/dist/ProtoSchema.d.ts +14 -0
  94. package/release/dist/ProtoSchema.js +66 -0
  95. package/release/dist/ProtoSchema.js.map +1 -0
  96. package/release/dist/SchemaRegistry.d.ts +48 -0
  97. package/release/dist/SchemaRegistry.js +250 -0
  98. package/release/dist/SchemaRegistry.js.map +1 -0
  99. package/release/dist/api/index.d.ts +43 -0
  100. package/release/dist/api/index.js +90 -0
  101. package/release/dist/api/index.js.map +1 -0
  102. package/release/dist/api/middleware/confluentEncoderMiddleware.d.ts +3 -0
  103. package/release/dist/api/middleware/confluentEncoderMiddleware.js +31 -0
  104. package/release/dist/api/middleware/confluentEncoderMiddleware.js.map +1 -0
  105. package/release/dist/api/middleware/errorMiddleware.d.ts +3 -0
  106. package/release/dist/api/middleware/errorMiddleware.js +20 -0
  107. package/release/dist/api/middleware/errorMiddleware.js.map +1 -0
  108. package/release/dist/api/middleware/userAgent.d.ts +3 -0
  109. package/release/dist/api/middleware/userAgent.js +18 -0
  110. package/release/dist/api/middleware/userAgent.js.map +1 -0
  111. package/release/dist/cache.d.ts +20 -0
  112. package/release/dist/cache.js +24 -0
  113. package/release/dist/cache.js.map +1 -0
  114. package/release/dist/constants.d.ts +11 -0
  115. package/release/dist/constants.js +15 -0
  116. package/release/dist/constants.js.map +1 -0
  117. package/release/dist/errors.d.ts +14 -0
  118. package/release/dist/errors.js +26 -0
  119. package/release/dist/errors.js.map +1 -0
  120. package/release/dist/index.d.ts +4 -0
  121. package/release/dist/index.js +13 -0
  122. package/release/dist/index.js.map +1 -0
  123. package/release/dist/schemaTypeResolver.d.ts +4 -0
  124. package/release/dist/schemaTypeResolver.js +80 -0
  125. package/release/dist/schemaTypeResolver.js.map +1 -0
  126. package/release/dist/utils/avdlToAVSC.d.ts +2 -0
  127. package/release/dist/utils/avdlToAVSC.js +85 -0
  128. package/release/dist/utils/avdlToAVSC.js.map +1 -0
  129. package/release/dist/utils/index.d.ts +2 -0
  130. package/release/dist/utils/index.js +9 -0
  131. package/release/dist/utils/index.js.map +1 -0
  132. package/release/dist/utils/readAVSC.d.ts +3 -0
  133. package/release/dist/utils/readAVSC.js +33 -0
  134. package/release/dist/utils/readAVSC.js.map +1 -0
  135. package/release/dist/wireDecoder.d.ts +7 -0
  136. package/release/dist/wireDecoder.js +8 -0
  137. package/release/dist/wireDecoder.js.map +1 -0
  138. package/release/dist/wireEncoder.d.ts +3 -0
  139. package/release/dist/wireEncoder.js +10 -0
  140. package/release/dist/wireEncoder.js.map +1 -0
  141. package/release/package.json +56 -0
  142. package/src/@types.ts +105 -0
  143. package/src/AvroHelper.ts +91 -0
  144. package/src/JsonHelper.ts +35 -0
  145. package/src/JsonSchema.ts +80 -0
  146. package/src/ProtoHelper.ts +38 -0
  147. package/src/ProtoSchema.ts +80 -0
  148. package/src/SchemaRegistry.avro.spec.ts +558 -0
  149. package/src/SchemaRegistry.json.spec.ts +364 -0
  150. package/src/SchemaRegistry.newApi.spec.ts +622 -0
  151. package/src/SchemaRegistry.protobuf.spec.ts +372 -0
  152. package/src/SchemaRegistry.spec.ts +252 -0
  153. package/src/SchemaRegistry.ts +387 -0
  154. package/src/api/index.spec.ts +23 -0
  155. package/src/api/index.ts +121 -0
  156. package/src/api/middleware/confluentEncoderMiddleware.ts +36 -0
  157. package/src/api/middleware/errorMiddleware.spec.ts +67 -0
  158. package/src/api/middleware/errorMiddleware.ts +37 -0
  159. package/src/api/middleware/userAgent.spec.ts +53 -0
  160. package/src/api/middleware/userAgent.ts +19 -0
  161. package/src/cache.ts +34 -0
  162. package/src/constants.ts +13 -0
  163. package/src/errors.ts +26 -0
  164. package/src/index.ts +4 -0
  165. package/src/schemaTypeResolver.ts +101 -0
  166. package/src/utils/avdlToAVSC.spec.ts +79 -0
  167. package/src/utils/avdlToAVSC.ts +106 -0
  168. package/src/utils/index.ts +2 -0
  169. package/src/utils/readAVSC.spec.ts +23 -0
  170. package/src/utils/readAVSC.ts +36 -0
  171. package/src/wireDecoder.ts +5 -0
  172. package/src/wireEncoder.ts +10 -0
  173. package/tsconfig.json +22 -0
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ class Cache {
4
+ constructor() {
5
+ this.getLatestRegistryId = (subject) => this.registryIdBySubject[subject];
6
+ this.setLatestRegistryId = (subject, id) => {
7
+ this.registryIdBySubject[subject] = id;
8
+ return this.registryIdBySubject[subject];
9
+ };
10
+ this.getSchema = (registryId) => this.schemasByRegistryId[registryId];
11
+ this.setSchema = (registryId, type, schema) => {
12
+ this.schemasByRegistryId[registryId] = { type, schema };
13
+ return this.schemasByRegistryId[registryId];
14
+ };
15
+ this.clear = () => {
16
+ this.registryIdBySubject = {};
17
+ this.schemasByRegistryId = {};
18
+ };
19
+ this.registryIdBySubject = {};
20
+ this.schemasByRegistryId = {};
21
+ }
22
+ }
23
+ exports.default = Cache;
24
+ //# sourceMappingURL=cache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache.js","sourceRoot":"","sources":["../src/cache.ts"],"names":[],"mappings":";;AAIA,MAAqB,KAAK;IAIxB;QAKA,wBAAmB,GAAG,CAAC,OAAe,EAAsB,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAA;QAEhG,wBAAmB,GAAG,CAAC,OAAe,EAAE,EAAU,EAAU,EAAE;YAC5D,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,GAAG,EAAE,CAAA;YAEtC,OAAO,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAA;QAC1C,CAAC,CAAA;QAED,cAAS,GAAG,CAAC,UAAkB,EAA0B,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAA;QAEhG,cAAS,GAAG,CAAC,UAAkB,EAAE,IAAgB,EAAE,MAAc,EAAc,EAAE;YAC/E,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAA;YAEvD,OAAO,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAA;QAC7C,CAAC,CAAA;QAED,UAAK,GAAG,GAAS,EAAE;YACjB,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAA;YAC7B,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAA;QAC/B,CAAC,CAAA;QAvBC,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAA;QAC7B,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAA;IAC/B,CAAC;CAsBF;AA7BD,wBA6BC"}
@@ -0,0 +1,11 @@
1
+ export declare enum COMPATIBILITY {
2
+ NONE = "NONE",
3
+ FULL = "FULL",
4
+ BACKWARD = "BACKWARD",
5
+ FORWARD = "FORWARD",
6
+ BACKWARD_TRANSITIVE = "BACKWARD_TRANSITIVE",
7
+ FORWARD_TRANSITIVE = "FORWARD_TRANSITIVE",
8
+ FULL_TRANSITIVE = "FULL_TRANSITIVE"
9
+ }
10
+ export declare const DEFAULT_SEPERATOR = ".";
11
+ export declare const DEFAULT_API_CLIENT_ID = "Confluent_Schema_Registry";
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var COMPATIBILITY;
4
+ (function (COMPATIBILITY) {
5
+ COMPATIBILITY["NONE"] = "NONE";
6
+ COMPATIBILITY["FULL"] = "FULL";
7
+ COMPATIBILITY["BACKWARD"] = "BACKWARD";
8
+ COMPATIBILITY["FORWARD"] = "FORWARD";
9
+ COMPATIBILITY["BACKWARD_TRANSITIVE"] = "BACKWARD_TRANSITIVE";
10
+ COMPATIBILITY["FORWARD_TRANSITIVE"] = "FORWARD_TRANSITIVE";
11
+ COMPATIBILITY["FULL_TRANSITIVE"] = "FULL_TRANSITIVE";
12
+ })(COMPATIBILITY = exports.COMPATIBILITY || (exports.COMPATIBILITY = {}));
13
+ exports.DEFAULT_SEPERATOR = '.';
14
+ exports.DEFAULT_API_CLIENT_ID = 'Confluent_Schema_Registry';
15
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":";;AAAA,IAAY,aAQX;AARD,WAAY,aAAa;IACvB,8BAAa,CAAA;IACb,8BAAa,CAAA;IACb,sCAAqB,CAAA;IACrB,oCAAmB,CAAA;IACnB,4DAA2C,CAAA;IAC3C,0DAAyC,CAAA;IACzC,oDAAmC,CAAA;AACrC,CAAC,EARW,aAAa,GAAb,qBAAa,KAAb,qBAAa,QAQxB;AAEY,QAAA,iBAAiB,GAAG,GAAG,CAAA;AAEvB,QAAA,qBAAqB,GAAG,2BAA2B,CAAA"}
@@ -0,0 +1,14 @@
1
+ declare class ConfluentSchemaRegistryError extends Error {
2
+ constructor(error: any);
3
+ }
4
+ declare class ConfluentSchemaRegistryArgumentError extends ConfluentSchemaRegistryError {
5
+ }
6
+ declare class ConfluentSchemaRegistryCompatibilityError extends ConfluentSchemaRegistryError {
7
+ }
8
+ declare class ConfluentSchemaRegistryInvalidSchemaError extends ConfluentSchemaRegistryError {
9
+ }
10
+ declare class ConfluentSchemaRegistryValidationError extends ConfluentSchemaRegistryError {
11
+ paths: string[][];
12
+ constructor(error: any, paths: string[][]);
13
+ }
14
+ export { ConfluentSchemaRegistryError, ConfluentSchemaRegistryArgumentError, ConfluentSchemaRegistryCompatibilityError, ConfluentSchemaRegistryInvalidSchemaError, ConfluentSchemaRegistryValidationError, };
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ class ConfluentSchemaRegistryError extends Error {
4
+ constructor(error) {
5
+ super(error.message || error);
6
+ this.name = this.constructor.name;
7
+ }
8
+ }
9
+ exports.ConfluentSchemaRegistryError = ConfluentSchemaRegistryError;
10
+ class ConfluentSchemaRegistryArgumentError extends ConfluentSchemaRegistryError {
11
+ }
12
+ exports.ConfluentSchemaRegistryArgumentError = ConfluentSchemaRegistryArgumentError;
13
+ class ConfluentSchemaRegistryCompatibilityError extends ConfluentSchemaRegistryError {
14
+ }
15
+ exports.ConfluentSchemaRegistryCompatibilityError = ConfluentSchemaRegistryCompatibilityError;
16
+ class ConfluentSchemaRegistryInvalidSchemaError extends ConfluentSchemaRegistryError {
17
+ }
18
+ exports.ConfluentSchemaRegistryInvalidSchemaError = ConfluentSchemaRegistryInvalidSchemaError;
19
+ class ConfluentSchemaRegistryValidationError extends ConfluentSchemaRegistryError {
20
+ constructor(error, paths) {
21
+ super(error);
22
+ this.paths = paths;
23
+ }
24
+ }
25
+ exports.ConfluentSchemaRegistryValidationError = ConfluentSchemaRegistryValidationError;
26
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":";;AAAA,MAAM,4BAA6B,SAAQ,KAAK;IAC9C,YAAY,KAAU;QACpB,KAAK,CAAC,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,CAAA;QAC7B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAA;IACnC,CAAC;CACF;AAeC,oEAA4B;AAb9B,MAAM,oCAAqC,SAAQ,4BAA4B;CAAG;AAchF,oFAAoC;AAbtC,MAAM,yCAA0C,SAAQ,4BAA4B;CAAG;AAcrF,8FAAyC;AAb3C,MAAM,yCAA0C,SAAQ,4BAA4B;CAAG;AAcrF,8FAAyC;AAb3C,MAAM,sCAAuC,SAAQ,4BAA4B;IAG/E,YAAY,KAAU,EAAE,KAAiB;QACvC,KAAK,CAAC,KAAK,CAAC,CAAA;QACZ,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;IACpB,CAAC;CACF;AAOC,wFAAsC"}
@@ -0,0 +1,4 @@
1
+ export { default as SchemaRegistry } from './SchemaRegistry';
2
+ export * from './utils';
3
+ export { SchemaType } from './@types';
4
+ export { COMPATIBILITY } from './constants';
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ function __export(m) {
3
+ for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
4
+ }
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ var SchemaRegistry_1 = require("./SchemaRegistry");
7
+ exports.SchemaRegistry = SchemaRegistry_1.default;
8
+ __export(require("./utils"));
9
+ var _types_1 = require("./@types");
10
+ exports.SchemaType = _types_1.SchemaType;
11
+ var constants_1 = require("./constants");
12
+ exports.COMPATIBILITY = constants_1.COMPATIBILITY;
13
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;AAAA,mDAA4D;AAAnD,0CAAA,OAAO,CAAkB;AAClC,6BAAuB;AACvB,mCAAqC;AAA5B,8BAAA,UAAU,CAAA;AACnB,yCAA2C;AAAlC,oCAAA,aAAa,CAAA"}
@@ -0,0 +1,4 @@
1
+ import { SchemaType, SchemaHelper, ConfluentSchema, LegacyOptions, ProtocolOptions, Schema, AvroSchema } from './@types';
2
+ export declare const schemaTypeFromString: (schemaTypeString: string) => SchemaType;
3
+ export declare const helperTypeFromSchemaType: (schemaType?: SchemaType) => SchemaHelper;
4
+ export declare const schemaFromConfluentSchema: (confluentSchema: ConfluentSchema, options?: ProtocolOptions | LegacyOptions | undefined) => Schema | AvroSchema;
@@ -0,0 +1,80 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const AvroHelper_1 = __importDefault(require("./AvroHelper"));
7
+ const JsonHelper_1 = __importDefault(require("./JsonHelper"));
8
+ const JsonSchema_1 = __importDefault(require("./JsonSchema"));
9
+ const ProtoHelper_1 = __importDefault(require("./ProtoHelper"));
10
+ const ProtoSchema_1 = __importDefault(require("./ProtoSchema"));
11
+ const _types_1 = require("./@types");
12
+ const errors_1 = require("./errors");
13
+ const helperTypeFromSchemaTypeMap = {};
14
+ exports.schemaTypeFromString = (schemaTypeString) => {
15
+ switch (schemaTypeString) {
16
+ case 'AVRO':
17
+ case undefined:
18
+ return _types_1.SchemaType.AVRO;
19
+ case 'JSON':
20
+ return _types_1.SchemaType.JSON;
21
+ case 'PROTOBUF':
22
+ return _types_1.SchemaType.PROTOBUF;
23
+ default:
24
+ return _types_1.SchemaType.UNKNOWN;
25
+ }
26
+ };
27
+ exports.helperTypeFromSchemaType = (schemaType = _types_1.SchemaType.AVRO) => {
28
+ const schemaTypeStr = schemaType.toString();
29
+ if (!helperTypeFromSchemaTypeMap[schemaTypeStr]) {
30
+ let helper;
31
+ switch (schemaType) {
32
+ case _types_1.SchemaType.AVRO: {
33
+ helper = new AvroHelper_1.default();
34
+ break;
35
+ }
36
+ case _types_1.SchemaType.JSON: {
37
+ helper = new JsonHelper_1.default();
38
+ break;
39
+ }
40
+ case _types_1.SchemaType.PROTOBUF: {
41
+ helper = new ProtoHelper_1.default();
42
+ break;
43
+ }
44
+ default:
45
+ throw new errors_1.ConfluentSchemaRegistryArgumentError('invalid schemaType');
46
+ }
47
+ helperTypeFromSchemaTypeMap[schemaTypeStr] = helper;
48
+ }
49
+ return helperTypeFromSchemaTypeMap[schemaTypeStr];
50
+ };
51
+ exports.schemaFromConfluentSchema = (confluentSchema, options) => {
52
+ var _a, _b, _c, _d;
53
+ try {
54
+ let schema;
55
+ switch (confluentSchema.type) {
56
+ case _types_1.SchemaType.AVRO: {
57
+ const opts = ((_a = options) === null || _a === void 0 ? void 0 : _a.forSchemaOptions) || ((_b = options) === null || _b === void 0 ? void 0 : _b[_types_1.SchemaType.AVRO]);
58
+ schema = exports.helperTypeFromSchemaType(confluentSchema.type).getAvroSchema(confluentSchema, opts);
59
+ break;
60
+ }
61
+ case _types_1.SchemaType.JSON: {
62
+ const opts = (_c = options) === null || _c === void 0 ? void 0 : _c[_types_1.SchemaType.JSON];
63
+ schema = new JsonSchema_1.default(confluentSchema, opts);
64
+ break;
65
+ }
66
+ case _types_1.SchemaType.PROTOBUF: {
67
+ const opts = (_d = options) === null || _d === void 0 ? void 0 : _d[_types_1.SchemaType.PROTOBUF];
68
+ schema = new ProtoSchema_1.default(confluentSchema, opts);
69
+ break;
70
+ }
71
+ default:
72
+ throw new errors_1.ConfluentSchemaRegistryArgumentError('invalid schemaType');
73
+ }
74
+ return schema;
75
+ }
76
+ catch (err) {
77
+ throw new errors_1.ConfluentSchemaRegistryArgumentError(err.message);
78
+ }
79
+ };
80
+ //# sourceMappingURL=schemaTypeResolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schemaTypeResolver.js","sourceRoot":"","sources":["../src/schemaTypeResolver.ts"],"names":[],"mappings":";;;;;AAAA,8DAAqC;AACrC,8DAAqC;AACrC,8DAAqC;AACrC,gEAAuC;AACvC,gEAAuC;AACvC,qCAYiB;AACjB,qCAA+D;AAE/D,MAAM,2BAA2B,GAAiC,EAAE,CAAA;AAEvD,QAAA,oBAAoB,GAAG,CAAC,gBAAwB,EAAE,EAAE;IAC/D,QAAQ,gBAAgB,EAAE;QACxB,KAAK,MAAM,CAAC;QACZ,KAAK,SAAS;YACZ,OAAO,mBAAU,CAAC,IAAI,CAAA;QACxB,KAAK,MAAM;YACT,OAAO,mBAAU,CAAC,IAAI,CAAA;QACxB,KAAK,UAAU;YACb,OAAO,mBAAU,CAAC,QAAQ,CAAA;QAC5B;YACE,OAAO,mBAAU,CAAC,OAAO,CAAA;KAC5B;AACH,CAAC,CAAA;AAEY,QAAA,wBAAwB,GAAG,CACtC,aAAyB,mBAAU,CAAC,IAAI,EAC1B,EAAE;IAChB,MAAM,aAAa,GAAG,UAAU,CAAC,QAAQ,EAAE,CAAA;IAE3C,IAAI,CAAC,2BAA2B,CAAC,aAAa,CAAC,EAAE;QAC/C,IAAI,MAAM,CAAA;QACV,QAAQ,UAAU,EAAE;YAClB,KAAK,mBAAU,CAAC,IAAI,CAAC,CAAC;gBACpB,MAAM,GAAG,IAAI,oBAAU,EAAE,CAAA;gBACzB,MAAK;aACN;YACD,KAAK,mBAAU,CAAC,IAAI,CAAC,CAAC;gBACpB,MAAM,GAAG,IAAI,oBAAU,EAAE,CAAA;gBACzB,MAAK;aACN;YACD,KAAK,mBAAU,CAAC,QAAQ,CAAC,CAAC;gBACxB,MAAM,GAAG,IAAI,qBAAW,EAAE,CAAA;gBAC1B,MAAK;aACN;YACD;gBACE,MAAM,IAAI,6CAAoC,CAAC,oBAAoB,CAAC,CAAA;SACvE;QACD,2BAA2B,CAAC,aAAa,CAAC,GAAG,MAAM,CAAA;KACpD;IACD,OAAO,2BAA2B,CAAC,aAAa,CAAC,CAAA;AACnD,CAAC,CAAA;AAEY,QAAA,yBAAyB,GAAG,CACvC,eAAgC,EAChC,OAAwC,EACnB,EAAE;;IACvB,IAAI;QACF,IAAI,MAAc,CAAA;QAElB,QAAQ,eAAe,CAAC,IAAI,EAAE;YAC5B,KAAK,mBAAU,CAAC,IAAI,CAAC,CAAC;gBACpB,MAAM,IAAI,GACR,OAAC,OAAyB,0CAAE,gBAAgB,YAC3C,OAA2B,0CAAG,mBAAU,CAAC,IAAI,EAAC,CAAA;gBACjD,MAAM,GAAI,gCAAwB,CAAC,eAAe,CAAC,IAAI,CAAgB,CAAC,aAAa,CACnF,eAAe,EACf,IAAI,CACL,CAAA;gBACD,MAAK;aACN;YACD,KAAK,mBAAU,CAAC,IAAI,CAAC,CAAC;gBACpB,MAAM,IAAI,SAA6B,OAA2B,0CAAG,mBAAU,CAAC,IAAI,CAAC,CAAA;gBACrF,MAAM,GAAG,IAAI,oBAAU,CAAC,eAAe,EAAE,IAAI,CAAC,CAAA;gBAC9C,MAAK;aACN;YACD,KAAK,mBAAU,CAAC,QAAQ,CAAC,CAAC;gBACxB,MAAM,IAAI,SAA8B,OAA2B,0CAAG,mBAAU,CAAC,QAAQ,CAAC,CAAA;gBAC1F,MAAM,GAAG,IAAI,qBAAW,CAAC,eAAe,EAAE,IAAI,CAAC,CAAA;gBAC/C,MAAK;aACN;YACD;gBACE,MAAM,IAAI,6CAAoC,CAAC,oBAAoB,CAAC,CAAA;SACvE;QAED,OAAO,MAAM,CAAA;KACd;IAAC,OAAO,GAAG,EAAE;QACZ,MAAM,IAAI,6CAAoC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;KAC5D;AACH,CAAC,CAAA"}
@@ -0,0 +1,2 @@
1
+ export declare function avdlToAVSC(path: any): any;
2
+ export declare function avdlToAVSCAsync(path: string): Promise<any>;
@@ -0,0 +1,85 @@
1
+ "use strict";
2
+ var __importStar = (this && this.__importStar) || function (mod) {
3
+ if (mod && mod.__esModule) return mod;
4
+ var result = {};
5
+ if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
6
+ result["default"] = mod;
7
+ return result;
8
+ };
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ const fs = __importStar(require("fs"));
11
+ const avsc_1 = require("avsc");
12
+ const errors_1 = require("../errors");
13
+ let cache;
14
+ const merge = Object.assign;
15
+ const isObject = (obj) => obj && typeof obj === 'object';
16
+ const isIterable = (obj) => isObject(obj) && typeof obj.map !== 'undefined';
17
+ const isFieldArray = (field) => isObject(field) && isObject(field.type) && field.type.type === 'array';
18
+ const combine = (rootType, types) => {
19
+ if (!rootType.fields) {
20
+ return rootType;
21
+ }
22
+ const find = (name) => {
23
+ if (typeof name === 'string') {
24
+ name = name.toLowerCase();
25
+ }
26
+ const typeToCombine = types.find((t) => {
27
+ const names = [];
28
+ if (t.namespace) {
29
+ names.push(`${t.namespace}.`);
30
+ }
31
+ names.push(t.name.toLowerCase());
32
+ return names.join('') === name;
33
+ });
34
+ if (!typeToCombine || cache[typeToCombine.name]) {
35
+ return null;
36
+ }
37
+ cache[typeToCombine.name] = 1;
38
+ return combine(typeToCombine, types);
39
+ };
40
+ const combinedFields = rootType.fields.map((field) => {
41
+ if (isFieldArray(field)) {
42
+ const typeToCombine = find(field.type.items);
43
+ return typeToCombine
44
+ ? merge(field, { type: merge(field.type, { items: typeToCombine }) })
45
+ : field;
46
+ }
47
+ else if (isIterable(field.type)) {
48
+ const type = field.type.map((unionType) => {
49
+ if (isObject(unionType)) {
50
+ const typeToCombine = find(unionType.items);
51
+ return typeToCombine ? merge(unionType, { items: typeToCombine }) : unionType;
52
+ }
53
+ else {
54
+ return find(unionType) || unionType;
55
+ }
56
+ });
57
+ return merge(field, { type });
58
+ }
59
+ const typeToCombine = find(field.type);
60
+ return typeToCombine ? merge(field, { type: typeToCombine }) : field;
61
+ });
62
+ return merge(rootType, { fields: combinedFields });
63
+ };
64
+ function avdlToAVSC(path) {
65
+ cache = {};
66
+ const protocol = avsc_1.readProtocol(fs.readFileSync(path, 'utf8'));
67
+ return merge({ namespace: protocol.namespace }, combine(protocol.types.pop(), protocol.types));
68
+ }
69
+ exports.avdlToAVSC = avdlToAVSC;
70
+ async function avdlToAVSCAsync(path) {
71
+ cache = {};
72
+ const protocol = await new Promise((resolve, reject) => {
73
+ avsc_1.assembleProtocol(path, (err, schema) => {
74
+ if (err) {
75
+ reject(new errors_1.ConfluentSchemaRegistryError(`${err.message}. Caused by: ${err.path}`));
76
+ }
77
+ else {
78
+ resolve(schema);
79
+ }
80
+ });
81
+ });
82
+ return merge({ namespace: protocol.namespace }, combine(protocol.types.pop(), protocol.types));
83
+ }
84
+ exports.avdlToAVSCAsync = avdlToAVSCAsync;
85
+ //# sourceMappingURL=avdlToAVSC.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"avdlToAVSC.js","sourceRoot":"","sources":["../../src/utils/avdlToAVSC.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export { avdlToAVSC, avdlToAVSCAsync } from './avdlToAVSC';
2
+ export { readAVSC, readAVSCAsync } from './readAVSC';
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var avdlToAVSC_1 = require("./avdlToAVSC");
4
+ exports.avdlToAVSC = avdlToAVSC_1.avdlToAVSC;
5
+ exports.avdlToAVSCAsync = avdlToAVSC_1.avdlToAVSCAsync;
6
+ var readAVSC_1 = require("./readAVSC");
7
+ exports.readAVSC = readAVSC_1.readAVSC;
8
+ exports.readAVSCAsync = readAVSC_1.readAVSCAsync;
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;AAAA,2CAA0D;AAAjD,kCAAA,UAAU,CAAA;AAAE,uCAAA,eAAe,CAAA;AACpC,uCAAoD;AAA3C,8BAAA,QAAQ,CAAA;AAAE,mCAAA,aAAa,CAAA"}
@@ -0,0 +1,3 @@
1
+ import { RawAvroSchema } from '../@types';
2
+ export declare function readAVSC(path: string): RawAvroSchema;
3
+ export declare function readAVSCAsync(path: string): Promise<RawAvroSchema>;
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const fs_1 = __importDefault(require("fs"));
7
+ const util_1 = require("util");
8
+ const errors_1 = require("../errors");
9
+ const readFileAsync = util_1.promisify(fs_1.default.readFile);
10
+ const ENCODING = 'utf-8';
11
+ function isValidSchema(rawSchema) {
12
+ return ('name' in rawSchema &&
13
+ 'type' in rawSchema &&
14
+ rawSchema.type === 'record' &&
15
+ 'fields' in rawSchema);
16
+ }
17
+ function validatedSchema(path, rawSchema) {
18
+ if (!isValidSchema(rawSchema)) {
19
+ throw new errors_1.ConfluentSchemaRegistryInvalidSchemaError(`${path} is not recognized as a valid AVSC file (expecting valid top-level name, type and fields attributes)`);
20
+ }
21
+ return rawSchema;
22
+ }
23
+ function readAVSC(path) {
24
+ const rawSchema = JSON.parse(fs_1.default.readFileSync(path, ENCODING));
25
+ return validatedSchema(path, rawSchema);
26
+ }
27
+ exports.readAVSC = readAVSC;
28
+ async function readAVSCAsync(path) {
29
+ const rawSchema = JSON.parse(await readFileAsync(path, ENCODING));
30
+ return validatedSchema(path, rawSchema);
31
+ }
32
+ exports.readAVSCAsync = readAVSCAsync;
33
+ //# sourceMappingURL=readAVSC.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"readAVSC.js","sourceRoot":"","sources":["../../src/utils/readAVSC.ts"],"names":[],"mappings":";;;;;AAAA,4CAAmB;AACnB,+BAAgC;AAGhC,sCAAqE;AAErE,MAAM,aAAa,GAAG,gBAAS,CAAC,YAAE,CAAC,QAAQ,CAAC,CAAA;AAC5C,MAAM,QAAQ,GAAG,OAAO,CAAA;AAExB,SAAS,aAAa,CAAC,SAAc;IACnC,OAAO,CACL,MAAM,IAAI,SAAS;QACnB,MAAM,IAAI,SAAS;QACnB,SAAS,CAAC,IAAI,KAAK,QAAQ;QAC3B,QAAQ,IAAI,SAAS,CACtB,CAAA;AACH,CAAC;AAED,SAAS,eAAe,CAAC,IAAY,EAAE,SAAc;IACnD,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE;QAC7B,MAAM,IAAI,kDAAyC,CACjD,GAAG,IAAI,sGAAsG,CAC9G,CAAA;KACF;IACD,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,SAAgB,QAAQ,CAAC,IAAY;IACnC,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,YAAE,CAAC,YAAY,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAA;IAC7D,OAAO,eAAe,CAAC,IAAI,EAAE,SAAS,CAAC,CAAA;AACzC,CAAC;AAHD,4BAGC;AAEM,KAAK,UAAU,aAAa,CAAC,IAAY;IAC9C,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,aAAa,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAA;IACjE,OAAO,eAAe,CAAC,IAAI,EAAE,SAAS,CAAC,CAAA;AACzC,CAAC;AAHD,sCAGC"}
@@ -0,0 +1,7 @@
1
+ /// <reference types="node" />
2
+ declare const _default: (buffer: Buffer) => {
3
+ magicByte: Buffer;
4
+ registryId: number;
5
+ payload: Buffer;
6
+ };
7
+ export default _default;
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.default = (buffer) => ({
4
+ magicByte: buffer.slice(0, 1),
5
+ registryId: buffer.slice(1, 5).readInt32BE(0),
6
+ payload: buffer.slice(5, buffer.length),
7
+ });
8
+ //# sourceMappingURL=wireDecoder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wireDecoder.js","sourceRoot":"","sources":["../src/wireDecoder.ts"],"names":[],"mappings":";;AAAA,kBAAe,CAAC,MAAc,EAAE,EAAE,CAAC,CAAC;IAClC,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;IAC7B,UAAU,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;IAC7C,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC;CACxC,CAAC,CAAA"}
@@ -0,0 +1,3 @@
1
+ /// <reference types="node" />
2
+ export declare const MAGIC_BYTE: Buffer;
3
+ export declare const encode: (registryId: number, payload: Buffer) => Buffer;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const DEFAULT_OFFSET = 0;
4
+ exports.MAGIC_BYTE = Buffer.alloc(1);
5
+ exports.encode = (registryId, payload) => {
6
+ const registryIdBuffer = Buffer.alloc(4);
7
+ registryIdBuffer.writeInt32BE(registryId, DEFAULT_OFFSET);
8
+ return Buffer.concat([exports.MAGIC_BYTE, registryIdBuffer, payload]);
9
+ };
10
+ //# sourceMappingURL=wireEncoder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wireEncoder.js","sourceRoot":"","sources":["../src/wireEncoder.ts"],"names":[],"mappings":";;AAAA,MAAM,cAAc,GAAG,CAAC,CAAA;AAEX,QAAA,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;AAE5B,QAAA,MAAM,GAAG,CAAC,UAAkB,EAAE,OAAe,EAAE,EAAE;IAC5D,MAAM,gBAAgB,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IACxC,gBAAgB,CAAC,YAAY,CAAC,UAAU,EAAE,cAAc,CAAC,CAAA;IAEzD,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,kBAAU,EAAE,gBAAgB,EAAE,OAAO,CAAC,CAAC,CAAA;AAC/D,CAAC,CAAA"}
@@ -0,0 +1,56 @@
1
+ {
2
+ "name": "@kafkajs/confluent-schema-registry",
3
+ "version": "3.3.1",
4
+ "main": "dist/index.js",
5
+ "description": "ConfluentSchemaRegistry is a library that makes it easier to interact with the Confluent schema registry, it provides convenient methods to encode, decode and register new schemas using the Apache Avro serialization format.",
6
+ "keywords": [
7
+ "confluent schema registry",
8
+ "kafka"
9
+ ],
10
+ "repository": {
11
+ "type": "git",
12
+ "url": "https://github.com/kafkajs/confluent-schema-registry.git"
13
+ },
14
+ "scripts": {
15
+ "prepare:release": "./pipeline/prepareRelease.sh",
16
+ "build": "rm -rf ./dist && tsc",
17
+ "build:watch": "rm -rf ./dist && tsc --watch",
18
+ "test:unit:watch": "yarn test:unit --watch",
19
+ "test:unit": "jest",
20
+ "test": "ts-node ./dockest.ts",
21
+ "test:debug": "ts-node ./dockest.ts debug",
22
+ "lint": "eslint './src/**/*.ts'",
23
+ "format": "yarn lint --fix"
24
+ },
25
+ "dependencies": {
26
+ "ajv": "^7.1.0",
27
+ "avsc": ">= 5.4.13 < 6",
28
+ "mappersmith": ">= 2.30.1 < 3",
29
+ "protobufjs": "^6.11.4"
30
+ },
31
+ "devDependencies": {
32
+ "@types/execa": "^2.0.0",
33
+ "@types/fs-extra": "^8.0.0",
34
+ "@types/jest": "^25.2.1",
35
+ "@types/node": "^12.7.3",
36
+ "@types/prettier": "^1.18.2",
37
+ "@types/uuid": "^3.4.5",
38
+ "@typescript-eslint/eslint-plugin": "^2.1.0",
39
+ "@typescript-eslint/parser": "^2.1.0",
40
+ "@typescript-eslint/typescript-estree": "^2.1.0",
41
+ "ajv8": "npm:ajv@^8.6.3",
42
+ "dockest": "^2.1.0",
43
+ "eslint": "^6.3.0",
44
+ "eslint-config-prettier": "^6.1.0",
45
+ "eslint-plugin-no-only-tests": "^2.3.1",
46
+ "eslint-plugin-prettier": "^3.1.0",
47
+ "execa": "^2.0.4",
48
+ "fs-extra": "^8.1.0",
49
+ "jest": "^25.2.7",
50
+ "prettier": "^1.18.2",
51
+ "ts-jest": "^24.0.2",
52
+ "ts-node": "^8.3.0",
53
+ "typescript": "^3.6.2",
54
+ "uuid": "^3.3.3"
55
+ }
56
+ }
package/src/@types.ts ADDED
@@ -0,0 +1,105 @@
1
+ import { Resolver, ForSchemaOptions, Type } from 'avsc'
2
+ import { ValidateFunction } from './JsonSchema'
3
+ import Ajv from 'ajv'
4
+
5
+ export enum SchemaType {
6
+ AVRO = 'AVRO',
7
+ JSON = 'JSON',
8
+ PROTOBUF = 'PROTOBUF',
9
+ UNKNOWN = 'UNKNOWN',
10
+ }
11
+ export interface SchemaHelper {
12
+ validate(schema: Schema): void
13
+ getSubject(confluentSchema: ConfluentSchema, schema: Schema, separator: string): ConfluentSubject
14
+ toConfluentSchema(data: SchemaResponse): ConfluentSchema
15
+ updateOptionsFromSchemaReferences(
16
+ referencedSchemas: ConfluentSchema[],
17
+ options?: ProtocolOptions,
18
+ ): ProtocolOptions
19
+ }
20
+
21
+ export type AvroOptions = Partial<ForSchemaOptions> & {
22
+ referencedSchemas?: AvroConfluentSchema[]
23
+ }
24
+
25
+ export type JsonOptions = ConstructorParameters<typeof Ajv>[0] & {
26
+ ajvInstance?: {
27
+ addSchema: Ajv['addSchema']
28
+ compile: (schema: any) => ValidateFunction
29
+ }
30
+ referencedSchemas?: JsonConfluentSchema[]
31
+ }
32
+ export type ProtoOptions = { messageName?: string; referencedSchemas?: ProtoConfluentSchema[] }
33
+
34
+ export interface LegacyOptions {
35
+ forSchemaOptions?: AvroOptions
36
+ }
37
+ export interface ProtocolOptions {
38
+ [SchemaType.AVRO]?: AvroOptions
39
+ [SchemaType.JSON]?: JsonOptions
40
+ [SchemaType.PROTOBUF]?: ProtoOptions
41
+ }
42
+ export type SchemaRegistryAPIClientOptions = ProtocolOptions | LegacyOptions
43
+
44
+ export interface Schema {
45
+ toBuffer(payload: object): Buffer // FIXME:
46
+ fromBuffer(buffer: Buffer, resolver?: Resolver, noCheck?: boolean): any
47
+ isValid(
48
+ payload: object,
49
+ opts?: { errorHook: (path: Array<string>, value: any, type?: any) => void },
50
+ ): boolean
51
+ }
52
+
53
+ export interface RawAvroSchema {
54
+ name: string
55
+ namespace?: string
56
+ type: 'record'
57
+ fields: any[]
58
+ }
59
+
60
+ export interface AvroSchema
61
+ extends Schema,
62
+ RawAvroSchema,
63
+ Pick<Type, 'equals' | 'createResolver'> {}
64
+
65
+ export interface ConfluentSubject {
66
+ name: string
67
+ }
68
+
69
+ export interface AvroConfluentSchema {
70
+ type: SchemaType.AVRO
71
+ schema: string | RawAvroSchema
72
+ references?: SchemaReference[]
73
+ }
74
+
75
+ export type SchemaReference = {
76
+ name: string
77
+ subject: string
78
+ version: number
79
+ }
80
+ export interface ProtoConfluentSchema {
81
+ type: SchemaType.PROTOBUF
82
+ schema: string
83
+ references?: SchemaReference[]
84
+ }
85
+ export interface JsonConfluentSchema {
86
+ type: SchemaType.JSON
87
+ schema: string
88
+ references?: SchemaReference[]
89
+ }
90
+ export interface SchemaResponse {
91
+ schema: string
92
+ schemaType: string
93
+ references?: SchemaReference[]
94
+ }
95
+
96
+ export type ConfluentSchema = AvroConfluentSchema | ProtoConfluentSchema | JsonConfluentSchema
97
+
98
+ declare global {
99
+ // eslint-disable-next-line @typescript-eslint/no-namespace
100
+ namespace jest {
101
+ interface Matchers<R, T = {}> {
102
+ toMatchConfluentEncodedPayload(args: { registryId: number; payload: Buffer }): R
103
+ }
104
+ }
105
+ }