@biorate/schema-registry 0.29.1 → 0.30.5

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.
@@ -0,0 +1,131 @@
1
+
2
+ <!doctype html>
3
+ <html lang="en">
4
+
5
+ <head>
6
+ <title>Code coverage report for schema-registry/src</title>
7
+ <meta charset="utf-8" />
8
+ <link rel="stylesheet" href="../../prettify.css" />
9
+ <link rel="stylesheet" href="../../base.css" />
10
+ <link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" />
11
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
12
+ <style type='text/css'>
13
+ .coverage-summary .sorter {
14
+ background-image: url(../../sort-arrow-sprite.png);
15
+ }
16
+ </style>
17
+ </head>
18
+
19
+ <body>
20
+ <div class='wrapper'>
21
+ <div class='pad1'>
22
+ <h1><a href="../../index.html">All files</a> schema-registry/src</h1>
23
+ <div class='clearfix'>
24
+
25
+ <div class='fl pad1y space-right2'>
26
+ <span class="strong">100% </span>
27
+ <span class="quiet">Statements</span>
28
+ <span class='fraction'>28/28</span>
29
+ </div>
30
+
31
+
32
+ <div class='fl pad1y space-right2'>
33
+ <span class="strong">100% </span>
34
+ <span class="quiet">Branches</span>
35
+ <span class='fraction'>0/0</span>
36
+ </div>
37
+
38
+
39
+ <div class='fl pad1y space-right2'>
40
+ <span class="strong">100% </span>
41
+ <span class="quiet">Functions</span>
42
+ <span class='fraction'>10/10</span>
43
+ </div>
44
+
45
+
46
+ <div class='fl pad1y space-right2'>
47
+ <span class="strong">100% </span>
48
+ <span class="quiet">Lines</span>
49
+ <span class='fraction'>25/25</span>
50
+ </div>
51
+
52
+
53
+ </div>
54
+ <p class="quiet">
55
+ Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
56
+ </p>
57
+ <template id="filterTemplate">
58
+ <div class="quiet">
59
+ Filter:
60
+ <input oninput="onInput()" type="search" id="fileSearch">
61
+ </div>
62
+ </template>
63
+ </div>
64
+ <div class='status-line high'></div>
65
+ <div class="pad1">
66
+ <table class="coverage-summary">
67
+ <thead>
68
+ <tr>
69
+ <th data-col="file" data-fmt="html" data-html="true" class="file">File</th>
70
+ <th data-col="pic" data-type="number" data-fmt="html" data-html="true" class="pic"></th>
71
+ <th data-col="statements" data-type="number" data-fmt="pct" class="pct">Statements</th>
72
+ <th data-col="statements_raw" data-type="number" data-fmt="html" class="abs"></th>
73
+ <th data-col="branches" data-type="number" data-fmt="pct" class="pct">Branches</th>
74
+ <th data-col="branches_raw" data-type="number" data-fmt="html" class="abs"></th>
75
+ <th data-col="functions" data-type="number" data-fmt="pct" class="pct">Functions</th>
76
+ <th data-col="functions_raw" data-type="number" data-fmt="html" class="abs"></th>
77
+ <th data-col="lines" data-type="number" data-fmt="pct" class="pct">Lines</th>
78
+ <th data-col="lines_raw" data-type="number" data-fmt="html" class="abs"></th>
79
+ </tr>
80
+ </thead>
81
+ <tbody><tr>
82
+ <td class="file high" data-value="api.ts"><a href="api.ts.html">api.ts</a></td>
83
+ <td data-value="100" class="pic high">
84
+ <div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
85
+ </td>
86
+ <td data-value="100" class="pct high">100%</td>
87
+ <td data-value="17" class="abs high">17/17</td>
88
+ <td data-value="100" class="pct high">100%</td>
89
+ <td data-value="0" class="abs high">0/0</td>
90
+ <td data-value="100" class="pct high">100%</td>
91
+ <td data-value="8" class="abs high">8/8</td>
92
+ <td data-value="100" class="pct high">100%</td>
93
+ <td data-value="16" class="abs high">16/16</td>
94
+ </tr>
95
+
96
+ <tr>
97
+ <td class="file high" data-value="index.ts"><a href="index.ts.html">index.ts</a></td>
98
+ <td data-value="100" class="pic high">
99
+ <div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
100
+ </td>
101
+ <td data-value="100" class="pct high">100%</td>
102
+ <td data-value="11" class="abs high">11/11</td>
103
+ <td data-value="100" class="pct high">100%</td>
104
+ <td data-value="0" class="abs high">0/0</td>
105
+ <td data-value="100" class="pct high">100%</td>
106
+ <td data-value="2" class="abs high">2/2</td>
107
+ <td data-value="100" class="pct high">100%</td>
108
+ <td data-value="9" class="abs high">9/9</td>
109
+ </tr>
110
+
111
+ </tbody>
112
+ </table>
113
+ </div>
114
+ <div class='push'></div><!-- for sticky footer -->
115
+ </div><!-- /wrapper -->
116
+ <div class='footer quiet pad2 space-top1 center small'>
117
+ Code coverage generated by
118
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
119
+ at Sat Apr 09 2022 13:27:38 GMT+0300 (GMT+03:00)
120
+ </div>
121
+ <script src="../../prettify.js"></script>
122
+ <script>
123
+ window.onload = function () {
124
+ prettyPrint();
125
+ };
126
+ </script>
127
+ <script src="../../sorter.js"></script>
128
+ <script src="../../block-navigation.js"></script>
129
+ </body>
130
+ </html>
131
+
@@ -0,0 +1,175 @@
1
+
2
+ <!doctype html>
3
+ <html lang="en">
4
+
5
+ <head>
6
+ <title>Code coverage report for schema-registry/src/index.ts</title>
7
+ <meta charset="utf-8" />
8
+ <link rel="stylesheet" href="../../prettify.css" />
9
+ <link rel="stylesheet" href="../../base.css" />
10
+ <link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" />
11
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
12
+ <style type='text/css'>
13
+ .coverage-summary .sorter {
14
+ background-image: url(../../sort-arrow-sprite.png);
15
+ }
16
+ </style>
17
+ </head>
18
+
19
+ <body>
20
+ <div class='wrapper'>
21
+ <div class='pad1'>
22
+ <h1><a href="../../index.html">All files</a> / <a href="index.html">schema-registry/src</a> index.ts</h1>
23
+ <div class='clearfix'>
24
+
25
+ <div class='fl pad1y space-right2'>
26
+ <span class="strong">100% </span>
27
+ <span class="quiet">Statements</span>
28
+ <span class='fraction'>11/11</span>
29
+ </div>
30
+
31
+
32
+ <div class='fl pad1y space-right2'>
33
+ <span class="strong">100% </span>
34
+ <span class="quiet">Branches</span>
35
+ <span class='fraction'>0/0</span>
36
+ </div>
37
+
38
+
39
+ <div class='fl pad1y space-right2'>
40
+ <span class="strong">100% </span>
41
+ <span class="quiet">Functions</span>
42
+ <span class='fraction'>2/2</span>
43
+ </div>
44
+
45
+
46
+ <div class='fl pad1y space-right2'>
47
+ <span class="strong">100% </span>
48
+ <span class="quiet">Lines</span>
49
+ <span class='fraction'>9/9</span>
50
+ </div>
51
+
52
+
53
+ </div>
54
+ <p class="quiet">
55
+ Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
56
+ </p>
57
+ <template id="filterTemplate">
58
+ <div class="quiet">
59
+ Filter:
60
+ <input oninput="onInput()" type="search" id="fileSearch">
61
+ </div>
62
+ </template>
63
+ </div>
64
+ <div class='status-line high'></div>
65
+ <pre><table class="coverage">
66
+ <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
67
+ <a name='L2'></a><a href='#L2'>2</a>
68
+ <a name='L3'></a><a href='#L3'>3</a>
69
+ <a name='L4'></a><a href='#L4'>4</a>
70
+ <a name='L5'></a><a href='#L5'>5</a>
71
+ <a name='L6'></a><a href='#L6'>6</a>
72
+ <a name='L7'></a><a href='#L7'>7</a>
73
+ <a name='L8'></a><a href='#L8'>8</a>
74
+ <a name='L9'></a><a href='#L9'>9</a>
75
+ <a name='L10'></a><a href='#L10'>10</a>
76
+ <a name='L11'></a><a href='#L11'>11</a>
77
+ <a name='L12'></a><a href='#L12'>12</a>
78
+ <a name='L13'></a><a href='#L13'>13</a>
79
+ <a name='L14'></a><a href='#L14'>14</a>
80
+ <a name='L15'></a><a href='#L15'>15</a>
81
+ <a name='L16'></a><a href='#L16'>16</a>
82
+ <a name='L17'></a><a href='#L17'>17</a>
83
+ <a name='L18'></a><a href='#L18'>18</a>
84
+ <a name='L19'></a><a href='#L19'>19</a>
85
+ <a name='L20'></a><a href='#L20'>20</a>
86
+ <a name='L21'></a><a href='#L21'>21</a>
87
+ <a name='L22'></a><a href='#L22'>22</a>
88
+ <a name='L23'></a><a href='#L23'>23</a>
89
+ <a name='L24'></a><a href='#L24'>24</a>
90
+ <a name='L25'></a><a href='#L25'>25</a>
91
+ <a name='L26'></a><a href='#L26'>26</a>
92
+ <a name='L27'></a><a href='#L27'>27</a>
93
+ <a name='L28'></a><a href='#L28'>28</a>
94
+ <a name='L29'></a><a href='#L29'>29</a>
95
+ <a name='L30'></a><a href='#L30'>30</a>
96
+ <a name='L31'></a><a href='#L31'>31</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
97
+ <span class="cline-any cline-neutral">&nbsp;</span>
98
+ <span class="cline-any cline-neutral">&nbsp;</span>
99
+ <span class="cline-any cline-yes">1x</span>
100
+ <span class="cline-any cline-neutral">&nbsp;</span>
101
+ <span class="cline-any cline-yes">1x</span>
102
+ <span class="cline-any cline-yes">1x</span>
103
+ <span class="cline-any cline-yes">1x</span>
104
+ <span class="cline-any cline-yes">1x</span>
105
+ <span class="cline-any cline-neutral">&nbsp;</span>
106
+ <span class="cline-any cline-neutral">&nbsp;</span>
107
+ <span class="cline-any cline-neutral">&nbsp;</span>
108
+ <span class="cline-any cline-neutral">&nbsp;</span>
109
+ <span class="cline-any cline-neutral">&nbsp;</span>
110
+ <span class="cline-any cline-neutral">&nbsp;</span>
111
+ <span class="cline-any cline-neutral">&nbsp;</span>
112
+ <span class="cline-any cline-neutral">&nbsp;</span>
113
+ <span class="cline-any cline-neutral">&nbsp;</span>
114
+ <span class="cline-any cline-neutral">&nbsp;</span>
115
+ <span class="cline-any cline-neutral">&nbsp;</span>
116
+ <span class="cline-any cline-neutral">&nbsp;</span>
117
+ <span class="cline-any cline-yes">1x</span>
118
+ <span class="cline-any cline-neutral">&nbsp;</span>
119
+ <span class="cline-any cline-neutral">&nbsp;</span>
120
+ <span class="cline-any cline-neutral">&nbsp;</span>
121
+ <span class="cline-any cline-yes">1x</span>
122
+ <span class="cline-any cline-neutral">&nbsp;</span>
123
+ <span class="cline-any cline-yes">1x</span>
124
+ <span class="cline-any cline-neutral">&nbsp;</span>
125
+ <span class="cline-any cline-neutral">&nbsp;</span>
126
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import { init, inject, injectable, Types } from '@biorate/inversion';
127
+ import { IConfig } from '@biorate/config';
128
+ import { ISchemaRegistryConfig, ISchemaRegistryConnection } from './interfaces';
129
+ import { Connector } from '@biorate/connector';
130
+ // import { ConnectorConnectionNotExistsError } from './errors';
131
+ import { create } from './api';
132
+ export * from './api';
133
+ export * from './errors';
134
+ export * from './interfaces';
135
+ &nbsp;
136
+ /**
137
+ * @description Schema registry connector
138
+ *
139
+ * ### Features:
140
+ * - connector manager for schema registry
141
+ *
142
+ * @example
143
+ * ```
144
+ * ```
145
+ */
146
+ @injectable()
147
+ export class SchemaRegistryConnector extends Connector&lt;
148
+ ISchemaRegistryConfig,
149
+ ISchemaRegistryConnection
150
+ &gt; {
151
+ protected readonly namespace = 'SchemaRegistry';
152
+ protected async connect(config) {
153
+ return create(config);
154
+ }
155
+ }
156
+ &nbsp;</pre></td></tr></table></pre>
157
+
158
+ <div class='push'></div><!-- for sticky footer -->
159
+ </div><!-- /wrapper -->
160
+ <div class='footer quiet pad2 space-top1 center small'>
161
+ Code coverage generated by
162
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
163
+ at Sat Apr 09 2022 13:27:38 GMT+0300 (GMT+03:00)
164
+ </div>
165
+ <script src="../../prettify.js"></script>
166
+ <script>
167
+ window.onload = function () {
168
+ prettyPrint();
169
+ };
170
+ </script>
171
+ <script src="../../sorter.js"></script>
172
+ <script src="../../block-navigation.js"></script>
173
+ </body>
174
+ </html>
175
+
@@ -1,5 +1,5 @@
1
1
  TN:
2
- SF:src/api.ts
2
+ SF:src/file:/www/biorate/core/packages/@biorate/schema-registry/src/api.ts
3
3
  FN:6,(anonymous_0)
4
4
  FN:9,(anonymous_1)
5
5
  FN:13,(anonymous_2)
@@ -129,7 +129,7 @@ BRF:7
129
129
  BRH:4
130
130
  end_of_record
131
131
  TN:
132
- SF:src/errors.ts
132
+ SF:src/file:/www/biorate/core/packages/@biorate/schema-registry/src/errors.ts
133
133
  FN:4,(anonymous_0)
134
134
  FN:10,(anonymous_1)
135
135
  FNF:2
@@ -147,7 +147,7 @@ BRF:0
147
147
  BRH:0
148
148
  end_of_record
149
149
  TN:
150
- SF:src/index.ts
150
+ SF:src/file:/www/biorate/core/packages/@biorate/schema-registry/src/index.ts
151
151
  FN:70,(anonymous_5)
152
152
  FN:75,(anonymous_6)
153
153
  FNF:2
@@ -0,0 +1,190 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.create = void 0;
4
+ const axios_1 = require("@biorate/axios");
5
+ const avsc_1 = require("avsc");
6
+ const errors_1 = require("./errors");
7
+ const create = (config) => {
8
+ const cache = new Map();
9
+ class SchemaRegistryApi extends axios_1.Axios {
10
+ constructor() {
11
+ super(...arguments);
12
+ this.baseURL = config.baseURL;
13
+ }
14
+ }
15
+ class Ping extends SchemaRegistryApi {
16
+ constructor() {
17
+ super(...arguments);
18
+ this.url = '/';
19
+ this.method = 'get';
20
+ }
21
+ static fetch() {
22
+ return this._fetch({});
23
+ }
24
+ }
25
+ class GetSchemasById extends SchemaRegistryApi {
26
+ constructor() {
27
+ super(...arguments);
28
+ this.url = '/schemas/ids/:id';
29
+ this.method = 'get';
30
+ }
31
+ static fetch(id) {
32
+ return this._fetch({ path: { id } });
33
+ }
34
+ }
35
+ class GetSchemasTypes extends SchemaRegistryApi {
36
+ constructor() {
37
+ super(...arguments);
38
+ this.url = '/schemas/types';
39
+ this.method = 'get';
40
+ }
41
+ static fetch() {
42
+ return this._fetch({});
43
+ }
44
+ }
45
+ class GetSchemasVersionsById extends SchemaRegistryApi {
46
+ constructor() {
47
+ super(...arguments);
48
+ this.url = '/schemas/ids/:id/versions';
49
+ this.method = 'get';
50
+ }
51
+ static fetch(id) {
52
+ return this._fetch({ path: { id } });
53
+ }
54
+ }
55
+ class GetSubjects extends SchemaRegistryApi {
56
+ constructor() {
57
+ super(...arguments);
58
+ this.url = '/subjects';
59
+ this.method = 'get';
60
+ }
61
+ static fetch() {
62
+ return this._fetch({});
63
+ }
64
+ }
65
+ class GetSubjectsVersions extends SchemaRegistryApi {
66
+ constructor() {
67
+ super(...arguments);
68
+ this.url = '/subjects/:subject/versions';
69
+ this.method = 'get';
70
+ }
71
+ static fetch(subject) {
72
+ return this._fetch({ path: { subject } });
73
+ }
74
+ }
75
+ class DeleteSubjects extends SchemaRegistryApi {
76
+ constructor() {
77
+ super(...arguments);
78
+ this.url = '/subjects/:subject';
79
+ this.method = 'delete';
80
+ }
81
+ static fetch(data) {
82
+ return this._fetch({
83
+ path: { subject: data.subject },
84
+ params: { permanent: !!data.permanent },
85
+ });
86
+ }
87
+ }
88
+ class GetSubjectsByVersion extends SchemaRegistryApi {
89
+ constructor() {
90
+ super(...arguments);
91
+ this.url = '/subjects/:subject/versions/:version';
92
+ this.method = 'get';
93
+ }
94
+ static fetch(data) {
95
+ return this._fetch({ path: data });
96
+ }
97
+ }
98
+ class GetSchemaBySubjectsAndVersion extends SchemaRegistryApi {
99
+ constructor() {
100
+ super(...arguments);
101
+ this.url = '/subjects/:subject/versions/:version/schema';
102
+ this.method = 'get';
103
+ }
104
+ static fetch(data) {
105
+ return this._fetch({ path: data });
106
+ }
107
+ }
108
+ class PostSubjectsVersions extends SchemaRegistryApi {
109
+ constructor() {
110
+ super(...arguments);
111
+ this.url = '/subjects/:subject/versions';
112
+ this.method = 'post';
113
+ }
114
+ static fetch(data) {
115
+ return this._fetch({
116
+ path: { subject: data.subject },
117
+ params: { normalize: !!data.normalize },
118
+ data: {
119
+ schema: toStringData(data.schema),
120
+ schemaType: data.schemaType,
121
+ reference: data.reference,
122
+ },
123
+ });
124
+ }
125
+ }
126
+ class PostSubjects extends SchemaRegistryApi {
127
+ constructor() {
128
+ super(...arguments);
129
+ this.url = '/subjects/:subject';
130
+ this.method = 'post';
131
+ }
132
+ static fetch(data) {
133
+ return this._fetch({
134
+ path: { subject: data.subject },
135
+ params: { normalize: !!data.normalize },
136
+ data: {
137
+ schema: toStringData(data.schema),
138
+ schemaType: data.schemaType,
139
+ reference: data.reference,
140
+ },
141
+ });
142
+ }
143
+ }
144
+ async function encode(subject, data, version = 'latest') {
145
+ const errors = [];
146
+ const response = await GetSubjectsByVersion.fetch({ subject, version });
147
+ const header = Buffer.alloc(5);
148
+ const schema = avsc_1.Type.forSchema(JSON.parse(response.data.schema));
149
+ schema.isValid(data, {
150
+ errorHook: (path, value) => {
151
+ errors.push(`${path.join('.')}: ${value} (${typeof value})`);
152
+ },
153
+ });
154
+ if (errors.length)
155
+ throw new errors_1.SchemaRegistryAvroSchemaParseError(errors);
156
+ header.writeInt32BE(response.data.id, 1);
157
+ return Buffer.concat([header, schema.toBuffer(data)]);
158
+ }
159
+ async function decode(buffer) {
160
+ const id = buffer.readInt32BE(1);
161
+ let data = cache.get(id);
162
+ if (!data) {
163
+ const response = await GetSchemasById.fetch(id);
164
+ data = avsc_1.Type.forSchema(JSON.parse(response.data.schema));
165
+ cache.set(id, data);
166
+ }
167
+ const schema = avsc_1.Type.forSchema(data);
168
+ return schema.fromBuffer(buffer.slice(5));
169
+ }
170
+ function toStringData(data) {
171
+ return typeof data === 'string' ? data : JSON.stringify(data);
172
+ }
173
+ return {
174
+ ping: Ping.fetch.bind(Ping),
175
+ getSchemasById: (GetSchemasById.fetch.bind(GetSchemasById)),
176
+ getSchemasTypes: (GetSchemasTypes.fetch.bind(GetSchemasTypes)),
177
+ getSchemasVersionsById: (GetSchemasVersionsById.fetch.bind(GetSchemasVersionsById)),
178
+ getSubjects: GetSubjects.fetch.bind(GetSubjects),
179
+ getSubjectsVersions: (GetSubjectsVersions.fetch.bind(GetSubjectsVersions)),
180
+ deleteSubjects: (DeleteSubjects.fetch.bind(DeleteSubjects)),
181
+ getSubjectsByVersion: (GetSubjectsByVersion.fetch.bind(GetSubjectsByVersion)),
182
+ getSchemaBySubjectsAndVersion: (GetSchemaBySubjectsAndVersion.fetch.bind(GetSchemaBySubjectsAndVersion)),
183
+ postSubjects: PostSubjects.fetch.bind(PostSubjects),
184
+ postSubjectsVersions: (PostSubjectsVersions.fetch.bind(PostSubjectsVersions)),
185
+ encode,
186
+ decode,
187
+ };
188
+ };
189
+ exports.create = create;
190
+ //# sourceMappingURL=api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/api.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SchemaRegistryAvroSchemaParseError = exports.SchemaRegistryCantConnectError = void 0;
4
+ const errors_1 = require("@biorate/errors");
5
+ class SchemaRegistryCantConnectError extends errors_1.BaseError {
6
+ constructor(e) {
7
+ super(`Can't connect to schema registry: [%s]`, [e.message]);
8
+ }
9
+ }
10
+ exports.SchemaRegistryCantConnectError = SchemaRegistryCantConnectError;
11
+ class SchemaRegistryAvroSchemaParseError extends errors_1.BaseError {
12
+ constructor(errors) {
13
+ super('%s', [errors.join('; ')], {
14
+ status: 400,
15
+ });
16
+ }
17
+ }
18
+ exports.SchemaRegistryAvroSchemaParseError = SchemaRegistryAvroSchemaParseError;
19
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":";;;AAAA,4CAA4C;AAE5C,MAAa,8BAA+B,SAAQ,kBAAS;IAC3D,YAAmB,CAAQ;QACzB,KAAK,CAAC,wCAAwC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IAC/D,CAAC;CACF;AAJD,wEAIC;AAED,MAAa,kCAAmC,SAAQ,kBAAS;IAC/D,YAAmB,MAAgB;QACjC,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE;YAC/B,MAAM,EAAE,GAAG;SACZ,CAAC,CAAC;IACL,CAAC;CACF;AAND,gFAMC"}
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
14
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
15
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
16
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
17
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
18
+ };
19
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
20
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
21
+ };
22
+ Object.defineProperty(exports, "__esModule", { value: true });
23
+ exports.SchemaRegistryConnector = void 0;
24
+ const inversion_1 = require("@biorate/inversion");
25
+ const connector_1 = require("@biorate/connector");
26
+ const errors_1 = require("./errors");
27
+ const api_1 = require("./api");
28
+ __exportStar(require("./api"), exports);
29
+ __exportStar(require("./errors"), exports);
30
+ __exportStar(require("./interfaces"), exports);
31
+ let SchemaRegistryConnector = class SchemaRegistryConnector extends connector_1.Connector {
32
+ constructor() {
33
+ super(...arguments);
34
+ this.namespace = 'SchemaRegistry';
35
+ }
36
+ async connect(config) {
37
+ const connection = (0, api_1.create)(config);
38
+ try {
39
+ await connection.ping();
40
+ }
41
+ catch (e) {
42
+ throw new errors_1.SchemaRegistryCantConnectError(e);
43
+ }
44
+ return connection;
45
+ }
46
+ };
47
+ SchemaRegistryConnector = __decorate([
48
+ (0, inversion_1.injectable)()
49
+ ], SchemaRegistryConnector);
50
+ exports.SchemaRegistryConnector = SchemaRegistryConnector;
51
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAAgD;AAEhD,kDAA+C;AAC/C,qCAA0D;AAC1D,+BAA+B;AAC/B,wCAAsB;AACtB,2CAAyB;AACzB,+CAA6B;AA8D7B,IAAa,uBAAuB,GAApC,MAAa,uBAAwB,SAAQ,qBAG5C;IAHD;;QAIqB,cAAS,GAAG,gBAAgB,CAAC;IAUlD,CAAC;IATW,KAAK,CAAC,OAAO,CAAC,MAAM;QAC5B,MAAM,UAAU,GAAG,IAAA,YAAM,EAAC,MAAM,CAAC,CAAC;QAClC,IAAI;YACF,MAAM,UAAU,CAAC,IAAI,EAAE,CAAC;SACzB;QAAC,OAAO,CAAC,EAAE;YACV,MAAM,IAAI,uCAA8B,CAAC,CAAC,CAAC,CAAC;SAC7C;QACD,OAAO,UAAU,CAAC;IACpB,CAAC;CACF,CAAA;AAdY,uBAAuB;IADnC,IAAA,sBAAU,GAAE;GACA,uBAAuB,CAcnC;AAdY,0DAAuB"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=interfaces.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../src/interfaces.ts"],"names":[],"mappings":""}