@productminds/article-events 0.0.8 → 0.0.10

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,530 @@
1
+ import { Schema } from '@effect/schema';
2
+ export declare const InternalArticleEvent: Schema.Struct<{
3
+ kind: Schema.Literal<["INTERNAL_ARTICLE_EVENT"]>;
4
+ payload: Schema.Struct<{
5
+ article: Schema.Struct<{
6
+ id: typeof Schema.UUID;
7
+ title: typeof Schema.NonEmpty;
8
+ teaser: typeof Schema.NonEmpty;
9
+ content: typeof Schema.NonEmpty;
10
+ publishedAt: typeof Schema.Date;
11
+ updatedAt: typeof Schema.Date;
12
+ retrievedAt: typeof Schema.Date;
13
+ url: typeof Schema.NonEmpty;
14
+ site: typeof Schema.NonEmpty;
15
+ tags: Schema.Array$<Schema.Union<[Schema.Struct<{
16
+ type: Schema.Literal<["CATEGORY"]>;
17
+ value: typeof Schema.NonEmpty;
18
+ }>, Schema.Struct<{
19
+ type: Schema.Literal<["EXTERNAL_ARTICLE_REFERENCE"]>;
20
+ id: typeof Schema.UUID;
21
+ }>, Schema.Struct<{
22
+ type: Schema.Literal<["ENTITY"]>;
23
+ entityType: Schema.Literal<["PERSON"]>;
24
+ value: typeof Schema.NonEmpty;
25
+ }>]>>;
26
+ authors: Schema.Array$<Schema.Struct<{
27
+ name: typeof Schema.NonEmpty;
28
+ }>>;
29
+ meta: Schema.optional<typeof Schema.Unknown>;
30
+ }>;
31
+ status: Schema.Literal<["NEW", "UPDATED"]>;
32
+ source: Schema.Literal<["INTERNAL"]>;
33
+ }>;
34
+ }>;
35
+ declare const _default: {
36
+ decode: (u: unknown, overrideOptions?: import("@effect/schema/AST").ParseOptions) => import("effect/Either").Either<{
37
+ readonly kind: "INTERNAL_ARTICLE_EVENT";
38
+ readonly payload: {
39
+ readonly article: {
40
+ readonly id: string;
41
+ readonly title: string;
42
+ readonly teaser: string;
43
+ readonly content: string;
44
+ readonly publishedAt: Date;
45
+ readonly updatedAt: Date;
46
+ readonly retrievedAt: Date;
47
+ readonly url: string;
48
+ readonly site: string;
49
+ readonly tags: readonly ({
50
+ readonly type: "CATEGORY";
51
+ readonly value: string;
52
+ } | {
53
+ readonly type: "EXTERNAL_ARTICLE_REFERENCE";
54
+ readonly id: string;
55
+ } | {
56
+ readonly type: "ENTITY";
57
+ readonly value: string;
58
+ readonly entityType: "PERSON";
59
+ })[];
60
+ readonly authors: readonly {
61
+ readonly name: string;
62
+ }[];
63
+ readonly meta?: unknown;
64
+ };
65
+ readonly status: "NEW" | "UPDATED";
66
+ readonly source: "INTERNAL";
67
+ };
68
+ }, import("@effect/schema/ParseResult").ParseError>;
69
+ decodeExn: (u: unknown) => {
70
+ readonly kind: "INTERNAL_ARTICLE_EVENT";
71
+ readonly payload: {
72
+ readonly article: {
73
+ readonly id: string;
74
+ readonly title: string;
75
+ readonly teaser: string;
76
+ readonly content: string;
77
+ readonly publishedAt: Date;
78
+ readonly updatedAt: Date;
79
+ readonly retrievedAt: Date;
80
+ readonly url: string;
81
+ readonly site: string;
82
+ readonly tags: readonly ({
83
+ readonly type: "CATEGORY";
84
+ readonly value: string;
85
+ } | {
86
+ readonly type: "EXTERNAL_ARTICLE_REFERENCE";
87
+ readonly id: string;
88
+ } | {
89
+ readonly type: "ENTITY";
90
+ readonly value: string;
91
+ readonly entityType: "PERSON";
92
+ })[];
93
+ readonly authors: readonly {
94
+ readonly name: string;
95
+ }[];
96
+ readonly meta?: unknown;
97
+ };
98
+ readonly status: "NEW" | "UPDATED";
99
+ readonly source: "INTERNAL";
100
+ };
101
+ };
102
+ encode: (a: {
103
+ readonly kind: "INTERNAL_ARTICLE_EVENT";
104
+ readonly payload: {
105
+ readonly article: {
106
+ readonly id: string;
107
+ readonly title: string;
108
+ readonly teaser: string;
109
+ readonly content: string;
110
+ readonly publishedAt: Date;
111
+ readonly updatedAt: Date;
112
+ readonly retrievedAt: Date;
113
+ readonly url: string;
114
+ readonly site: string;
115
+ readonly tags: readonly ({
116
+ readonly type: "CATEGORY";
117
+ readonly value: string;
118
+ } | {
119
+ readonly type: "EXTERNAL_ARTICLE_REFERENCE";
120
+ readonly id: string;
121
+ } | {
122
+ readonly type: "ENTITY";
123
+ readonly value: string;
124
+ readonly entityType: "PERSON";
125
+ })[];
126
+ readonly authors: readonly {
127
+ readonly name: string;
128
+ }[];
129
+ readonly meta?: unknown;
130
+ };
131
+ readonly status: "NEW" | "UPDATED";
132
+ readonly source: "INTERNAL";
133
+ };
134
+ }, overrideOptions?: import("@effect/schema/AST").ParseOptions) => import("effect/Either").Either<{
135
+ readonly kind: "INTERNAL_ARTICLE_EVENT";
136
+ readonly payload: {
137
+ readonly article: {
138
+ readonly id: string;
139
+ readonly title: string;
140
+ readonly teaser: string;
141
+ readonly content: string;
142
+ readonly publishedAt: string;
143
+ readonly updatedAt: string;
144
+ readonly retrievedAt: string;
145
+ readonly url: string;
146
+ readonly site: string;
147
+ readonly tags: readonly ({
148
+ readonly type: "CATEGORY";
149
+ readonly value: string;
150
+ } | {
151
+ readonly type: "EXTERNAL_ARTICLE_REFERENCE";
152
+ readonly id: string;
153
+ } | {
154
+ readonly type: "ENTITY";
155
+ readonly value: string;
156
+ readonly entityType: "PERSON";
157
+ })[];
158
+ readonly authors: readonly {
159
+ readonly name: string;
160
+ }[];
161
+ readonly meta?: unknown;
162
+ };
163
+ readonly status: "NEW" | "UPDATED";
164
+ readonly source: "INTERNAL";
165
+ };
166
+ }, import("@effect/schema/ParseResult").ParseError>;
167
+ encodeExn: (event: {
168
+ readonly kind: "INTERNAL_ARTICLE_EVENT";
169
+ readonly payload: {
170
+ readonly article: {
171
+ readonly id: string;
172
+ readonly title: string;
173
+ readonly teaser: string;
174
+ readonly content: string;
175
+ readonly publishedAt: Date;
176
+ readonly updatedAt: Date;
177
+ readonly retrievedAt: Date;
178
+ readonly url: string;
179
+ readonly site: string;
180
+ readonly tags: readonly ({
181
+ readonly type: "CATEGORY";
182
+ readonly value: string;
183
+ } | {
184
+ readonly type: "EXTERNAL_ARTICLE_REFERENCE";
185
+ readonly id: string;
186
+ } | {
187
+ readonly type: "ENTITY";
188
+ readonly value: string;
189
+ readonly entityType: "PERSON";
190
+ })[];
191
+ readonly authors: readonly {
192
+ readonly name: string;
193
+ }[];
194
+ readonly meta?: unknown;
195
+ };
196
+ readonly status: "NEW" | "UPDATED";
197
+ readonly source: "INTERNAL";
198
+ };
199
+ }) => {
200
+ readonly kind: "INTERNAL_ARTICLE_EVENT";
201
+ readonly payload: {
202
+ readonly article: {
203
+ readonly id: string;
204
+ readonly title: string;
205
+ readonly teaser: string;
206
+ readonly content: string;
207
+ readonly publishedAt: string;
208
+ readonly updatedAt: string;
209
+ readonly retrievedAt: string;
210
+ readonly url: string;
211
+ readonly site: string;
212
+ readonly tags: readonly ({
213
+ readonly type: "CATEGORY";
214
+ readonly value: string;
215
+ } | {
216
+ readonly type: "EXTERNAL_ARTICLE_REFERENCE";
217
+ readonly id: string;
218
+ } | {
219
+ readonly type: "ENTITY";
220
+ readonly value: string;
221
+ readonly entityType: "PERSON";
222
+ })[];
223
+ readonly authors: readonly {
224
+ readonly name: string;
225
+ }[];
226
+ readonly meta?: unknown;
227
+ };
228
+ readonly status: "NEW" | "UPDATED";
229
+ readonly source: "INTERNAL";
230
+ };
231
+ };
232
+ fromString: (msg: string) => import("effect/Either").Either<{
233
+ readonly kind: "INTERNAL_ARTICLE_EVENT";
234
+ readonly payload: {
235
+ readonly article: {
236
+ readonly id: string;
237
+ readonly title: string;
238
+ readonly teaser: string;
239
+ readonly content: string;
240
+ readonly publishedAt: Date;
241
+ readonly updatedAt: Date;
242
+ readonly retrievedAt: Date;
243
+ readonly url: string;
244
+ readonly site: string;
245
+ readonly tags: readonly ({
246
+ readonly type: "CATEGORY";
247
+ readonly value: string;
248
+ } | {
249
+ readonly type: "EXTERNAL_ARTICLE_REFERENCE";
250
+ readonly id: string;
251
+ } | {
252
+ readonly type: "ENTITY";
253
+ readonly value: string;
254
+ readonly entityType: "PERSON";
255
+ })[];
256
+ readonly authors: readonly {
257
+ readonly name: string;
258
+ }[];
259
+ readonly meta?: unknown;
260
+ };
261
+ readonly status: "NEW" | "UPDATED";
262
+ readonly source: "INTERNAL";
263
+ };
264
+ }, import("@effect/schema/ParseResult").ParseError>;
265
+ fromBuffer: (msg: Buffer) => import("effect/Either").Either<{
266
+ readonly kind: "INTERNAL_ARTICLE_EVENT";
267
+ readonly payload: {
268
+ readonly article: {
269
+ readonly id: string;
270
+ readonly title: string;
271
+ readonly teaser: string;
272
+ readonly content: string;
273
+ readonly publishedAt: Date;
274
+ readonly updatedAt: Date;
275
+ readonly retrievedAt: Date;
276
+ readonly url: string;
277
+ readonly site: string;
278
+ readonly tags: readonly ({
279
+ readonly type: "CATEGORY";
280
+ readonly value: string;
281
+ } | {
282
+ readonly type: "EXTERNAL_ARTICLE_REFERENCE";
283
+ readonly id: string;
284
+ } | {
285
+ readonly type: "ENTITY";
286
+ readonly value: string;
287
+ readonly entityType: "PERSON";
288
+ })[];
289
+ readonly authors: readonly {
290
+ readonly name: string;
291
+ }[];
292
+ readonly meta?: unknown;
293
+ };
294
+ readonly status: "NEW" | "UPDATED";
295
+ readonly source: "INTERNAL";
296
+ };
297
+ }, import("@effect/schema/ParseResult").ParseError>;
298
+ fromStringExn: (msg: string) => {
299
+ readonly kind: "INTERNAL_ARTICLE_EVENT";
300
+ readonly payload: {
301
+ readonly article: {
302
+ readonly id: string;
303
+ readonly title: string;
304
+ readonly teaser: string;
305
+ readonly content: string;
306
+ readonly publishedAt: Date;
307
+ readonly updatedAt: Date;
308
+ readonly retrievedAt: Date;
309
+ readonly url: string;
310
+ readonly site: string;
311
+ readonly tags: readonly ({
312
+ readonly type: "CATEGORY";
313
+ readonly value: string;
314
+ } | {
315
+ readonly type: "EXTERNAL_ARTICLE_REFERENCE";
316
+ readonly id: string;
317
+ } | {
318
+ readonly type: "ENTITY";
319
+ readonly value: string;
320
+ readonly entityType: "PERSON";
321
+ })[];
322
+ readonly authors: readonly {
323
+ readonly name: string;
324
+ }[];
325
+ readonly meta?: unknown;
326
+ };
327
+ readonly status: "NEW" | "UPDATED";
328
+ readonly source: "INTERNAL";
329
+ };
330
+ };
331
+ fromBufferExn: (msg: Buffer) => {
332
+ readonly kind: "INTERNAL_ARTICLE_EVENT";
333
+ readonly payload: {
334
+ readonly article: {
335
+ readonly id: string;
336
+ readonly title: string;
337
+ readonly teaser: string;
338
+ readonly content: string;
339
+ readonly publishedAt: Date;
340
+ readonly updatedAt: Date;
341
+ readonly retrievedAt: Date;
342
+ readonly url: string;
343
+ readonly site: string;
344
+ readonly tags: readonly ({
345
+ readonly type: "CATEGORY";
346
+ readonly value: string;
347
+ } | {
348
+ readonly type: "EXTERNAL_ARTICLE_REFERENCE";
349
+ readonly id: string;
350
+ } | {
351
+ readonly type: "ENTITY";
352
+ readonly value: string;
353
+ readonly entityType: "PERSON";
354
+ })[];
355
+ readonly authors: readonly {
356
+ readonly name: string;
357
+ }[];
358
+ readonly meta?: unknown;
359
+ };
360
+ readonly status: "NEW" | "UPDATED";
361
+ readonly source: "INTERNAL";
362
+ };
363
+ };
364
+ toString: (event: {
365
+ readonly kind: "INTERNAL_ARTICLE_EVENT";
366
+ readonly payload: {
367
+ readonly article: {
368
+ readonly id: string;
369
+ readonly title: string;
370
+ readonly teaser: string;
371
+ readonly content: string;
372
+ readonly publishedAt: Date;
373
+ readonly updatedAt: Date;
374
+ readonly retrievedAt: Date;
375
+ readonly url: string;
376
+ readonly site: string;
377
+ readonly tags: readonly ({
378
+ readonly type: "CATEGORY";
379
+ readonly value: string;
380
+ } | {
381
+ readonly type: "EXTERNAL_ARTICLE_REFERENCE";
382
+ readonly id: string;
383
+ } | {
384
+ readonly type: "ENTITY";
385
+ readonly value: string;
386
+ readonly entityType: "PERSON";
387
+ })[];
388
+ readonly authors: readonly {
389
+ readonly name: string;
390
+ }[];
391
+ readonly meta?: unknown;
392
+ };
393
+ readonly status: "NEW" | "UPDATED";
394
+ readonly source: "INTERNAL";
395
+ };
396
+ }) => string;
397
+ toBuffer: (event: {
398
+ readonly kind: "INTERNAL_ARTICLE_EVENT";
399
+ readonly payload: {
400
+ readonly article: {
401
+ readonly id: string;
402
+ readonly title: string;
403
+ readonly teaser: string;
404
+ readonly content: string;
405
+ readonly publishedAt: Date;
406
+ readonly updatedAt: Date;
407
+ readonly retrievedAt: Date;
408
+ readonly url: string;
409
+ readonly site: string;
410
+ readonly tags: readonly ({
411
+ readonly type: "CATEGORY";
412
+ readonly value: string;
413
+ } | {
414
+ readonly type: "EXTERNAL_ARTICLE_REFERENCE";
415
+ readonly id: string;
416
+ } | {
417
+ readonly type: "ENTITY";
418
+ readonly value: string;
419
+ readonly entityType: "PERSON";
420
+ })[];
421
+ readonly authors: readonly {
422
+ readonly name: string;
423
+ }[];
424
+ readonly meta?: unknown;
425
+ };
426
+ readonly status: "NEW" | "UPDATED";
427
+ readonly source: "INTERNAL";
428
+ };
429
+ }) => Buffer;
430
+ toStringExn: (event: {
431
+ readonly kind: "INTERNAL_ARTICLE_EVENT";
432
+ readonly payload: {
433
+ readonly article: {
434
+ readonly id: string;
435
+ readonly title: string;
436
+ readonly teaser: string;
437
+ readonly content: string;
438
+ readonly publishedAt: Date;
439
+ readonly updatedAt: Date;
440
+ readonly retrievedAt: Date;
441
+ readonly url: string;
442
+ readonly site: string;
443
+ readonly tags: readonly ({
444
+ readonly type: "CATEGORY";
445
+ readonly value: string;
446
+ } | {
447
+ readonly type: "EXTERNAL_ARTICLE_REFERENCE";
448
+ readonly id: string;
449
+ } | {
450
+ readonly type: "ENTITY";
451
+ readonly value: string;
452
+ readonly entityType: "PERSON";
453
+ })[];
454
+ readonly authors: readonly {
455
+ readonly name: string;
456
+ }[];
457
+ readonly meta?: unknown;
458
+ };
459
+ readonly status: "NEW" | "UPDATED";
460
+ readonly source: "INTERNAL";
461
+ };
462
+ }) => string;
463
+ toBufferExn: (event: {
464
+ readonly kind: "INTERNAL_ARTICLE_EVENT";
465
+ readonly payload: {
466
+ readonly article: {
467
+ readonly id: string;
468
+ readonly title: string;
469
+ readonly teaser: string;
470
+ readonly content: string;
471
+ readonly publishedAt: Date;
472
+ readonly updatedAt: Date;
473
+ readonly retrievedAt: Date;
474
+ readonly url: string;
475
+ readonly site: string;
476
+ readonly tags: readonly ({
477
+ readonly type: "CATEGORY";
478
+ readonly value: string;
479
+ } | {
480
+ readonly type: "EXTERNAL_ARTICLE_REFERENCE";
481
+ readonly id: string;
482
+ } | {
483
+ readonly type: "ENTITY";
484
+ readonly value: string;
485
+ readonly entityType: "PERSON";
486
+ })[];
487
+ readonly authors: readonly {
488
+ readonly name: string;
489
+ }[];
490
+ readonly meta?: unknown;
491
+ };
492
+ readonly status: "NEW" | "UPDATED";
493
+ readonly source: "INTERNAL";
494
+ };
495
+ }) => Buffer;
496
+ Schema: Schema.Struct<{
497
+ kind: Schema.Literal<["INTERNAL_ARTICLE_EVENT"]>;
498
+ payload: Schema.Struct<{
499
+ article: Schema.Struct<{
500
+ id: typeof Schema.UUID;
501
+ title: typeof Schema.NonEmpty;
502
+ teaser: typeof Schema.NonEmpty;
503
+ content: typeof Schema.NonEmpty;
504
+ publishedAt: typeof Schema.Date;
505
+ updatedAt: typeof Schema.Date;
506
+ retrievedAt: typeof Schema.Date;
507
+ url: typeof Schema.NonEmpty;
508
+ site: typeof Schema.NonEmpty;
509
+ tags: Schema.Array$<Schema.Union<[Schema.Struct<{
510
+ type: Schema.Literal<["CATEGORY"]>;
511
+ value: typeof Schema.NonEmpty;
512
+ }>, Schema.Struct<{
513
+ type: Schema.Literal<["EXTERNAL_ARTICLE_REFERENCE"]>;
514
+ id: typeof Schema.UUID;
515
+ }>, Schema.Struct<{
516
+ type: Schema.Literal<["ENTITY"]>;
517
+ entityType: Schema.Literal<["PERSON"]>;
518
+ value: typeof Schema.NonEmpty;
519
+ }>]>>;
520
+ authors: Schema.Array$<Schema.Struct<{
521
+ name: typeof Schema.NonEmpty;
522
+ }>>;
523
+ meta: Schema.optional<typeof Schema.Unknown>;
524
+ }>;
525
+ status: Schema.Literal<["NEW", "UPDATED"]>;
526
+ source: Schema.Literal<["INTERNAL"]>;
527
+ }>;
528
+ }>;
529
+ };
530
+ export default _default;
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.InternalArticleEvent = void 0;
4
+ const schema_1 = require("@effect/schema");
5
+ const Article_1 = require("../types/Article");
6
+ exports.InternalArticleEvent = schema_1.Schema.Struct({
7
+ kind: schema_1.Schema.Literal('INTERNAL_ARTICLE_EVENT'),
8
+ payload: schema_1.Schema.Struct({
9
+ article: Article_1.ArticleSchema,
10
+ status: schema_1.Schema.Literal('NEW', 'UPDATED'),
11
+ source: schema_1.Schema.Literal('INTERNAL')
12
+ })
13
+ });
14
+ const makeHelpers_1 = require("../utils/makeHelpers");
15
+ const helpers = (0, makeHelpers_1.makeHelpers)(exports.InternalArticleEvent);
16
+ exports.default = Object.assign({ Schema: exports.InternalArticleEvent }, helpers);
@@ -0,0 +1,55 @@
1
+ import { Schema } from '@effect/schema';
2
+ export declare const DateTimeSchema: typeof Schema.Date;
3
+ export declare const CategoryTagSchema: Schema.Struct<{
4
+ type: Schema.Literal<["CATEGORY"]>;
5
+ value: typeof Schema.NonEmpty;
6
+ }>;
7
+ export declare const ArticleReferenceSchema: Schema.Struct<{
8
+ type: Schema.Literal<["EXTERNAL_ARTICLE_REFERENCE"]>;
9
+ id: typeof Schema.UUID;
10
+ }>;
11
+ export declare const EntityTag: Schema.Struct<{
12
+ type: Schema.Literal<["ENTITY"]>;
13
+ entityType: Schema.Literal<["PERSON"]>;
14
+ value: typeof Schema.NonEmpty;
15
+ }>;
16
+ export declare const TagSchema: Schema.Union<[Schema.Struct<{
17
+ type: Schema.Literal<["CATEGORY"]>;
18
+ value: typeof Schema.NonEmpty;
19
+ }>, Schema.Struct<{
20
+ type: Schema.Literal<["EXTERNAL_ARTICLE_REFERENCE"]>;
21
+ id: typeof Schema.UUID;
22
+ }>, Schema.Struct<{
23
+ type: Schema.Literal<["ENTITY"]>;
24
+ entityType: Schema.Literal<["PERSON"]>;
25
+ value: typeof Schema.NonEmpty;
26
+ }>]>;
27
+ export declare const AuthorSchema: Schema.Struct<{
28
+ name: typeof Schema.NonEmpty;
29
+ }>;
30
+ export declare const ArticleSchema: Schema.Struct<{
31
+ id: typeof Schema.UUID;
32
+ title: typeof Schema.NonEmpty;
33
+ teaser: typeof Schema.NonEmpty;
34
+ content: typeof Schema.NonEmpty;
35
+ publishedAt: typeof Schema.Date;
36
+ updatedAt: typeof Schema.Date;
37
+ retrievedAt: typeof Schema.Date;
38
+ url: typeof Schema.NonEmpty;
39
+ site: typeof Schema.NonEmpty;
40
+ tags: Schema.Array$<Schema.Union<[Schema.Struct<{
41
+ type: Schema.Literal<["CATEGORY"]>;
42
+ value: typeof Schema.NonEmpty;
43
+ }>, Schema.Struct<{
44
+ type: Schema.Literal<["EXTERNAL_ARTICLE_REFERENCE"]>;
45
+ id: typeof Schema.UUID;
46
+ }>, Schema.Struct<{
47
+ type: Schema.Literal<["ENTITY"]>;
48
+ entityType: Schema.Literal<["PERSON"]>;
49
+ value: typeof Schema.NonEmpty;
50
+ }>]>>;
51
+ authors: Schema.Array$<Schema.Struct<{
52
+ name: typeof Schema.NonEmpty;
53
+ }>>;
54
+ meta: Schema.optional<typeof Schema.Unknown>;
55
+ }>;
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ArticleSchema = exports.AuthorSchema = exports.TagSchema = exports.EntityTag = exports.ArticleReferenceSchema = exports.CategoryTagSchema = exports.DateTimeSchema = void 0;
4
+ const schema_1 = require("@effect/schema");
5
+ exports.DateTimeSchema = schema_1.Schema.Date.annotations({
6
+ jsonSchema: { format: 'date-time' }
7
+ });
8
+ exports.CategoryTagSchema = schema_1.Schema.Struct({
9
+ type: schema_1.Schema.Literal('CATEGORY'),
10
+ value: schema_1.Schema.NonEmpty
11
+ });
12
+ exports.ArticleReferenceSchema = schema_1.Schema.Struct({
13
+ type: schema_1.Schema.Literal('EXTERNAL_ARTICLE_REFERENCE'),
14
+ id: schema_1.Schema.UUID
15
+ });
16
+ exports.EntityTag = schema_1.Schema.Struct({
17
+ type: schema_1.Schema.Literal('ENTITY'),
18
+ entityType: schema_1.Schema.Literal('PERSON'),
19
+ value: schema_1.Schema.NonEmpty
20
+ });
21
+ exports.TagSchema = schema_1.Schema.Union(exports.CategoryTagSchema, exports.ArticleReferenceSchema, exports.EntityTag);
22
+ exports.AuthorSchema = schema_1.Schema.Struct({
23
+ name: schema_1.Schema.NonEmpty
24
+ });
25
+ exports.ArticleSchema = schema_1.Schema.Struct({
26
+ id: schema_1.Schema.UUID,
27
+ title: schema_1.Schema.NonEmpty,
28
+ teaser: schema_1.Schema.NonEmpty,
29
+ content: schema_1.Schema.NonEmpty,
30
+ publishedAt: exports.DateTimeSchema,
31
+ updatedAt: exports.DateTimeSchema,
32
+ retrievedAt: exports.DateTimeSchema,
33
+ url: schema_1.Schema.NonEmpty,
34
+ site: schema_1.Schema.NonEmpty,
35
+ tags: schema_1.Schema.Array(exports.TagSchema),
36
+ authors: schema_1.Schema.Array(exports.AuthorSchema),
37
+ meta: schema_1.Schema.optional(schema_1.Schema.Unknown)
38
+ });
@@ -0,0 +1,15 @@
1
+ import { Schema } from '@effect/schema';
2
+ export declare const makeHelpers: <A, I>(schema: Schema.Schema<A, I, never>) => {
3
+ decode: (u: unknown, overrideOptions?: import("@effect/schema/AST").ParseOptions) => import("effect/Either").Either<A, import("@effect/schema/ParseResult").ParseError>;
4
+ decodeExn: (u: unknown) => A;
5
+ encode: (a: A, overrideOptions?: import("@effect/schema/AST").ParseOptions) => import("effect/Either").Either<I, import("@effect/schema/ParseResult").ParseError>;
6
+ encodeExn: (event: typeof schema.Type) => I;
7
+ fromString: (msg: string) => import("effect/Either").Either<A, import("@effect/schema/ParseResult").ParseError>;
8
+ fromBuffer: (msg: Buffer) => import("effect/Either").Either<A, import("@effect/schema/ParseResult").ParseError>;
9
+ fromStringExn: (msg: string) => A;
10
+ fromBufferExn: (msg: Buffer) => A;
11
+ toString: (event: typeof schema.Type) => string;
12
+ toBuffer: (event: typeof schema.Type) => Buffer;
13
+ toStringExn: (event: typeof schema.Type) => string;
14
+ toBufferExn: (event: typeof schema.Type) => Buffer;
15
+ };