@lincs.project/webannotation-schema 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 (119) hide show
  1. package/LICENSE +661 -0
  2. package/README.md +155 -0
  3. package/dist/context.jsonld +24 -0
  4. package/dist/defs.jsonld +949 -0
  5. package/dist/schema.jsonld +621 -0
  6. package/dist/validate.js +1 -0
  7. package/lib/index.d.ts +145 -0
  8. package/lib/index.d.ts.map +1 -0
  9. package/lib/index.js +13 -0
  10. package/lib/index.js.map +1 -0
  11. package/lib/schema/config.d.ts +4 -0
  12. package/lib/schema/config.d.ts.map +1 -0
  13. package/lib/schema/config.js +4 -0
  14. package/lib/schema/config.js.map +1 -0
  15. package/lib/schema/context.d.ts +25 -0
  16. package/lib/schema/context.d.ts.map +1 -0
  17. package/lib/schema/context.js +25 -0
  18. package/lib/schema/context.js.map +1 -0
  19. package/lib/schema/definitions/agent.d.ts +36 -0
  20. package/lib/schema/definitions/agent.d.ts.map +1 -0
  21. package/lib/schema/definitions/agent.js +82 -0
  22. package/lib/schema/definitions/agent.js.map +1 -0
  23. package/lib/schema/definitions/body/citation.d.ts +27 -0
  24. package/lib/schema/definitions/body/citation.d.ts.map +1 -0
  25. package/lib/schema/definitions/body/citation.js +53 -0
  26. package/lib/schema/definitions/body/citation.js.map +1 -0
  27. package/lib/schema/definitions/body/common.d.ts +17 -0
  28. package/lib/schema/definitions/body/common.d.ts.map +1 -0
  29. package/lib/schema/definitions/body/common.js +46 -0
  30. package/lib/schema/definitions/body/common.js.map +1 -0
  31. package/lib/schema/definitions/body/conceptualObject.d.ts +27 -0
  32. package/lib/schema/definitions/body/conceptualObject.d.ts.map +1 -0
  33. package/lib/schema/definitions/body/conceptualObject.js +61 -0
  34. package/lib/schema/definitions/body/conceptualObject.js.map +1 -0
  35. package/lib/schema/definitions/body/correction.d.ts +24 -0
  36. package/lib/schema/definitions/body/correction.d.ts.map +1 -0
  37. package/lib/schema/definitions/body/correction.js +54 -0
  38. package/lib/schema/definitions/body/correction.js.map +1 -0
  39. package/lib/schema/definitions/body/date.d.ts +30 -0
  40. package/lib/schema/definitions/body/date.d.ts.map +1 -0
  41. package/lib/schema/definitions/body/date.js +61 -0
  42. package/lib/schema/definitions/body/date.js.map +1 -0
  43. package/lib/schema/definitions/body/index.d.ts +37 -0
  44. package/lib/schema/definitions/body/index.d.ts.map +1 -0
  45. package/lib/schema/definitions/body/index.js +220 -0
  46. package/lib/schema/definitions/body/index.js.map +1 -0
  47. package/lib/schema/definitions/body/keyword.d.ts +48 -0
  48. package/lib/schema/definitions/body/keyword.d.ts.map +1 -0
  49. package/lib/schema/definitions/body/keyword.js +100 -0
  50. package/lib/schema/definitions/body/keyword.js.map +1 -0
  51. package/lib/schema/definitions/body/link.d.ts +21 -0
  52. package/lib/schema/definitions/body/link.d.ts.map +1 -0
  53. package/lib/schema/definitions/body/link.js +37 -0
  54. package/lib/schema/definitions/body/link.js.map +1 -0
  55. package/lib/schema/definitions/body/note.d.ts +27 -0
  56. package/lib/schema/definitions/body/note.d.ts.map +1 -0
  57. package/lib/schema/definitions/body/note.js +54 -0
  58. package/lib/schema/definitions/body/note.js.map +1 -0
  59. package/lib/schema/definitions/body/organization.d.ts +27 -0
  60. package/lib/schema/definitions/body/organization.d.ts.map +1 -0
  61. package/lib/schema/definitions/body/organization.js +65 -0
  62. package/lib/schema/definitions/body/organization.js.map +1 -0
  63. package/lib/schema/definitions/body/person.d.ts +27 -0
  64. package/lib/schema/definitions/body/person.d.ts.map +1 -0
  65. package/lib/schema/definitions/body/person.js +61 -0
  66. package/lib/schema/definitions/body/person.js.map +1 -0
  67. package/lib/schema/definitions/body/physicalThing.d.ts +27 -0
  68. package/lib/schema/definitions/body/physicalThing.d.ts.map +1 -0
  69. package/lib/schema/definitions/body/physicalThing.js +61 -0
  70. package/lib/schema/definitions/body/physicalThing.js.map +1 -0
  71. package/lib/schema/definitions/body/place.d.ts +30 -0
  72. package/lib/schema/definitions/body/place.d.ts.map +1 -0
  73. package/lib/schema/definitions/body/place.js +64 -0
  74. package/lib/schema/definitions/body/place.js.map +1 -0
  75. package/lib/schema/definitions/body/work.d.ts +27 -0
  76. package/lib/schema/definitions/body/work.d.ts.map +1 -0
  77. package/lib/schema/definitions/body/work.js +61 -0
  78. package/lib/schema/definitions/body/work.js.map +1 -0
  79. package/lib/schema/definitions/index.d.ts +22 -0
  80. package/lib/schema/definitions/index.d.ts.map +1 -0
  81. package/lib/schema/definitions/index.js +24 -0
  82. package/lib/schema/definitions/index.js.map +1 -0
  83. package/lib/schema/definitions/target/index.d.ts +710 -0
  84. package/lib/schema/definitions/target/index.d.ts.map +1 -0
  85. package/lib/schema/definitions/target/index.js +231 -0
  86. package/lib/schema/definitions/target/index.js.map +1 -0
  87. package/lib/schema/definitions/target/selector/index.d.ts +5 -0
  88. package/lib/schema/definitions/target/selector/index.d.ts.map +1 -0
  89. package/lib/schema/definitions/target/selector/index.js +5 -0
  90. package/lib/schema/definitions/target/selector/index.js.map +1 -0
  91. package/lib/schema/definitions/target/selector/range.d.ts +141 -0
  92. package/lib/schema/definitions/target/selector/range.d.ts.map +1 -0
  93. package/lib/schema/definitions/target/selector/range.js +44 -0
  94. package/lib/schema/definitions/target/selector/range.js.map +1 -0
  95. package/lib/schema/definitions/target/selector/textPosition.d.ts +21 -0
  96. package/lib/schema/definitions/target/selector/textPosition.d.ts.map +1 -0
  97. package/lib/schema/definitions/target/selector/textPosition.js +57 -0
  98. package/lib/schema/definitions/target/selector/textPosition.js.map +1 -0
  99. package/lib/schema/definitions/target/selector/textQuote.d.ts +297 -0
  100. package/lib/schema/definitions/target/selector/textQuote.d.ts.map +1 -0
  101. package/lib/schema/definitions/target/selector/textQuote.js +78 -0
  102. package/lib/schema/definitions/target/selector/textQuote.js.map +1 -0
  103. package/lib/schema/definitions/target/selector/xpath.d.ts +46 -0
  104. package/lib/schema/definitions/target/selector/xpath.d.ts.map +1 -0
  105. package/lib/schema/definitions/target/selector/xpath.js +51 -0
  106. package/lib/schema/definitions/target/selector/xpath.js.map +1 -0
  107. package/lib/schema/index.d.ts +5 -0
  108. package/lib/schema/index.d.ts.map +1 -0
  109. package/lib/schema/index.js +5 -0
  110. package/lib/schema/index.js.map +1 -0
  111. package/lib/schema/root.d.ts +1076 -0
  112. package/lib/schema/root.d.ts.map +1 -0
  113. package/lib/schema/root.js +408 -0
  114. package/lib/schema/root.js.map +1 -0
  115. package/lib/validation.d.ts +25 -0
  116. package/lib/validation.d.ts.map +1 -0
  117. package/lib/validation.js +35 -0
  118. package/lib/validation.js.map +1 -0
  119. package/package.json +68 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/schema/definitions/target/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AACrC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAkBxB,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiDiB,CAAC;AAErC,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,MAAM,CAAC,CAAC;AAI5C,eAAO,MAAM,YAAY,EAAE,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,CAwLzD,CAAC"}
@@ -0,0 +1,231 @@
1
+ import { z } from 'zod';
2
+ import { Software } from '../agent';
3
+ import { RangeSelector, TextPositionSelector, TextQuoteSelector, XpathSelector } from './selector';
4
+ // * Pure Typescript Type - Just for reference
5
+ // export interface Target {
6
+ // id: string;
7
+ // type: ['SpecificResource', 'crm:E73_Information_Object'];
8
+ // format?: string[];
9
+ // language?: string[];
10
+ // title?: string;
11
+ // renderedVia?: Software;
12
+ // selector?: TextQuoteSelector | RangeSelector | XpathSelector | TextPositionSelector;
13
+ // }
14
+ // * Type using Zod & Inference
15
+ export const Target = z
16
+ .object({
17
+ id: z
18
+ .union([z.string().url(), z.string().uuid()])
19
+ .describe('The IRI that identifies the Target resource.'),
20
+ type: z
21
+ .tuple([z.literal('SpecificResource'), z.literal('crm:E73_Information_Object')])
22
+ .describe('The class of the Specific Resource.'),
23
+ format: z
24
+ .array(z
25
+ .string() //? Should we make this more stict to specific MIME TYPES?
26
+ .nonempty()
27
+ .describe("The format of the Web Resource's content. The value of the property should be the media-type of the format, following the [rfc6838] specification."))
28
+ .optional()
29
+ .describe("The formats of the Web Resource's content. The value of the property should and array of media-types of the format, following the [rfc6838] specification."),
30
+ language: z
31
+ .array(z
32
+ .string() //? Should we make this more stict following bcp47 rules?
33
+ .min(2)
34
+ .max(3)
35
+ .describe("The language of the Web Resource's content. The value of the property should be a language code following the [bcp47] specification."))
36
+ .min(1)
37
+ .optional()
38
+ .describe("The languages of the Web Resource's content. The value of the property should be an array of language code following the [bcp47] specification."),
39
+ title: z
40
+ .string()
41
+ .nonempty({ message: 'The title cannot be empty' })
42
+ .optional()
43
+ .describe('The title of the document being annotated.'),
44
+ renderedVia: Software.optional().describe('The relationship between the Specific Resource that represents the Target in the annotation, and the piece of software or other system that was used to render the Target when the annotation was created.'),
45
+ selector: z
46
+ .union([TextQuoteSelector, RangeSelector, XpathSelector, TextPositionSelector])
47
+ .optional()
48
+ .describe('The relationship between a Specific Resource and a Selector. '),
49
+ })
50
+ .describe('Web Annotation Target');
51
+ // * JSONSchema
52
+ export const targetSchema = {
53
+ type: 'object',
54
+ description: 'Web Annotation Target',
55
+ properties: {
56
+ id: {
57
+ anyOf: [
58
+ { type: 'string', format: 'uri', description: 'This document URI' },
59
+ { type: 'string', format: 'uuid' },
60
+ ],
61
+ description: 'The IRI that identifies the Target resource.',
62
+ },
63
+ type: {
64
+ type: 'array',
65
+ minItems: 2,
66
+ maxItems: 2,
67
+ items: [
68
+ { type: 'string', const: 'SpecificResource' },
69
+ { type: 'string', const: 'crm:E73_Information_Object' },
70
+ ],
71
+ description: 'The class of the Specific Resource.',
72
+ },
73
+ format: {
74
+ type: 'array',
75
+ items: {
76
+ type: 'string',
77
+ minLength: 1,
78
+ description: "The format of the Web Resource's content. The value of the property should be the media-type of the format, following the [rfc6838] specification.",
79
+ },
80
+ description: "The formats of the Web Resource's content. The value of the property should and array of media-types of the format, following the [rfc6838] specification.",
81
+ },
82
+ language: {
83
+ type: 'array',
84
+ items: {
85
+ type: 'string',
86
+ minLength: 2,
87
+ maxLength: 3,
88
+ description: "The language of the Web Resource's content. The value of the property should be a language code following the [bcp47] specification.",
89
+ },
90
+ minItems: 1,
91
+ description: "The languages of the Web Resource's content. The value of the property should be an array of language code following the [bcp47] specification.",
92
+ },
93
+ title: {
94
+ type: 'string',
95
+ minLength: 1,
96
+ description: 'The title of the document being annotated.',
97
+ },
98
+ renderedVia: {
99
+ $ref: 'defs.jsonld#/definitions/software',
100
+ description: 'The relationship between the Specific Resource that represents the Target in the annotation, and the piece of software or other system that was used to render the Target when the annotation was created.',
101
+ },
102
+ selector: {
103
+ type: 'object',
104
+ oneOf: [
105
+ { $ref: 'defs.jsonld#/definitions/textQuoteSelector' },
106
+ { $ref: 'defs.jsonld#/definitions/rangeSelector' },
107
+ { $ref: 'defs.jsonld#/definitions/xpathSelector' },
108
+ { $ref: 'defs.jsonld#/definitions/textPositionSelector' },
109
+ ],
110
+ description: 'The relationship between a Specific Resource and a Selector. ',
111
+ required: ['id', 'type'],
112
+ },
113
+ },
114
+ required: ['id', 'type'],
115
+ // errorMessage: { properties: { id: 'Must be an URI or an UUID' } },
116
+ allOf: [
117
+ {
118
+ if: {
119
+ type: 'object',
120
+ properties: {
121
+ selector: {
122
+ type: 'object',
123
+ properties: {
124
+ type: {
125
+ type: 'array',
126
+ minItems: 2,
127
+ maxItems: 2,
128
+ items: [
129
+ { type: 'string', const: 'TextQuoteSelector' },
130
+ { type: 'string', const: 'crm:E33_Linguistic_Object' },
131
+ ],
132
+ },
133
+ },
134
+ },
135
+ },
136
+ },
137
+ then: {
138
+ type: 'object',
139
+ properties: {
140
+ selector: { type: 'object', required: ['type', 'exact'] },
141
+ },
142
+ },
143
+ required: ['selector'],
144
+ },
145
+ {
146
+ if: {
147
+ type: 'object',
148
+ properties: {
149
+ selector: {
150
+ type: 'object',
151
+ properties: {
152
+ type: {
153
+ type: 'array',
154
+ minItems: 2,
155
+ maxItems: 2,
156
+ items: [
157
+ { type: 'string', const: 'RangeSelector' },
158
+ { type: 'string', const: 'crm:E73_Information_Object' },
159
+ ],
160
+ },
161
+ },
162
+ },
163
+ },
164
+ },
165
+ then: {
166
+ type: 'object',
167
+ properties: {
168
+ selector: { type: 'object', required: ['type', 'startSelector', 'endSelector'] },
169
+ },
170
+ required: ['selector'],
171
+ },
172
+ },
173
+ {
174
+ if: {
175
+ type: 'object',
176
+ properties: {
177
+ selector: {
178
+ type: 'object',
179
+ properties: {
180
+ type: {
181
+ type: 'array',
182
+ minItems: 2,
183
+ maxItems: 2,
184
+ items: [
185
+ { type: 'string', const: 'XPathSelector' },
186
+ { type: 'string', const: 'crm:E73_Information_Object' },
187
+ ],
188
+ },
189
+ },
190
+ },
191
+ },
192
+ },
193
+ then: {
194
+ type: 'object',
195
+ properties: {
196
+ selector: { type: 'object', required: ['type', 'value'] },
197
+ },
198
+ required: ['selector'],
199
+ },
200
+ },
201
+ {
202
+ if: {
203
+ type: 'object',
204
+ properties: {
205
+ selector: {
206
+ type: 'object',
207
+ properties: {
208
+ type: {
209
+ type: 'array',
210
+ minItems: 2,
211
+ maxItems: 2,
212
+ items: [
213
+ { type: 'string', const: 'TextPositionSelector' },
214
+ { type: 'string', const: 'crm:E73_Information_Object' },
215
+ ],
216
+ },
217
+ },
218
+ },
219
+ },
220
+ },
221
+ then: {
222
+ type: 'object',
223
+ properties: {
224
+ selector: { type: 'object', required: ['type', 'start', 'end'] },
225
+ },
226
+ required: ['selector'],
227
+ },
228
+ },
229
+ ],
230
+ };
231
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/schema/definitions/target/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export * from './range';
2
+ export * from './textPosition';
3
+ export * from './textQuote';
4
+ export * from './xpath';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/schema/definitions/target/selector/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC"}
@@ -0,0 +1,5 @@
1
+ export * from './range';
2
+ export * from './textPosition';
3
+ export * from './textQuote';
4
+ export * from './xpath';
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/schema/definitions/target/selector/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC"}
@@ -0,0 +1,141 @@
1
+ import { JSONSchemaType } from 'ajv';
2
+ import { z } from 'zod';
3
+ export declare const RangeSelector: z.ZodObject<{
4
+ id: z.ZodString;
5
+ type: z.ZodTuple<[z.ZodLiteral<"RangeSelector">, z.ZodLiteral<"crm:E73_Information_Object">], null>;
6
+ startSelector: z.ZodObject<{
7
+ id: z.ZodString;
8
+ type: z.ZodTuple<[z.ZodLiteral<"XPathSelector">, z.ZodLiteral<"crm:E73_Information_Object">], null>;
9
+ value: z.ZodString;
10
+ refinedBy: z.ZodOptional<z.ZodObject<{
11
+ id: z.ZodString;
12
+ type: z.ZodTuple<[z.ZodLiteral<"TextPositionSelector">, z.ZodLiteral<"crm:E73_Information_Object">], null>;
13
+ start: z.ZodNumber;
14
+ end: z.ZodNumber;
15
+ }, "strip", z.ZodTypeAny, {
16
+ type: ["TextPositionSelector", "crm:E73_Information_Object"];
17
+ id: string;
18
+ start: number;
19
+ end: number;
20
+ }, {
21
+ type: ["TextPositionSelector", "crm:E73_Information_Object"];
22
+ id: string;
23
+ start: number;
24
+ end: number;
25
+ }>>;
26
+ }, "strip", z.ZodTypeAny, {
27
+ value: string;
28
+ type: ["XPathSelector", "crm:E73_Information_Object"];
29
+ id: string;
30
+ refinedBy?: {
31
+ type: ["TextPositionSelector", "crm:E73_Information_Object"];
32
+ id: string;
33
+ start: number;
34
+ end: number;
35
+ } | undefined;
36
+ }, {
37
+ value: string;
38
+ type: ["XPathSelector", "crm:E73_Information_Object"];
39
+ id: string;
40
+ refinedBy?: {
41
+ type: ["TextPositionSelector", "crm:E73_Information_Object"];
42
+ id: string;
43
+ start: number;
44
+ end: number;
45
+ } | undefined;
46
+ }>;
47
+ endSelector: z.ZodObject<{
48
+ id: z.ZodString;
49
+ type: z.ZodTuple<[z.ZodLiteral<"XPathSelector">, z.ZodLiteral<"crm:E73_Information_Object">], null>;
50
+ value: z.ZodString;
51
+ refinedBy: z.ZodOptional<z.ZodObject<{
52
+ id: z.ZodString;
53
+ type: z.ZodTuple<[z.ZodLiteral<"TextPositionSelector">, z.ZodLiteral<"crm:E73_Information_Object">], null>;
54
+ start: z.ZodNumber;
55
+ end: z.ZodNumber;
56
+ }, "strip", z.ZodTypeAny, {
57
+ type: ["TextPositionSelector", "crm:E73_Information_Object"];
58
+ id: string;
59
+ start: number;
60
+ end: number;
61
+ }, {
62
+ type: ["TextPositionSelector", "crm:E73_Information_Object"];
63
+ id: string;
64
+ start: number;
65
+ end: number;
66
+ }>>;
67
+ }, "strip", z.ZodTypeAny, {
68
+ value: string;
69
+ type: ["XPathSelector", "crm:E73_Information_Object"];
70
+ id: string;
71
+ refinedBy?: {
72
+ type: ["TextPositionSelector", "crm:E73_Information_Object"];
73
+ id: string;
74
+ start: number;
75
+ end: number;
76
+ } | undefined;
77
+ }, {
78
+ value: string;
79
+ type: ["XPathSelector", "crm:E73_Information_Object"];
80
+ id: string;
81
+ refinedBy?: {
82
+ type: ["TextPositionSelector", "crm:E73_Information_Object"];
83
+ id: string;
84
+ start: number;
85
+ end: number;
86
+ } | undefined;
87
+ }>;
88
+ }, "strip", z.ZodTypeAny, {
89
+ type: ["RangeSelector", "crm:E73_Information_Object"];
90
+ id: string;
91
+ startSelector: {
92
+ value: string;
93
+ type: ["XPathSelector", "crm:E73_Information_Object"];
94
+ id: string;
95
+ refinedBy?: {
96
+ type: ["TextPositionSelector", "crm:E73_Information_Object"];
97
+ id: string;
98
+ start: number;
99
+ end: number;
100
+ } | undefined;
101
+ };
102
+ endSelector: {
103
+ value: string;
104
+ type: ["XPathSelector", "crm:E73_Information_Object"];
105
+ id: string;
106
+ refinedBy?: {
107
+ type: ["TextPositionSelector", "crm:E73_Information_Object"];
108
+ id: string;
109
+ start: number;
110
+ end: number;
111
+ } | undefined;
112
+ };
113
+ }, {
114
+ type: ["RangeSelector", "crm:E73_Information_Object"];
115
+ id: string;
116
+ startSelector: {
117
+ value: string;
118
+ type: ["XPathSelector", "crm:E73_Information_Object"];
119
+ id: string;
120
+ refinedBy?: {
121
+ type: ["TextPositionSelector", "crm:E73_Information_Object"];
122
+ id: string;
123
+ start: number;
124
+ end: number;
125
+ } | undefined;
126
+ };
127
+ endSelector: {
128
+ value: string;
129
+ type: ["XPathSelector", "crm:E73_Information_Object"];
130
+ id: string;
131
+ refinedBy?: {
132
+ type: ["TextPositionSelector", "crm:E73_Information_Object"];
133
+ id: string;
134
+ start: number;
135
+ end: number;
136
+ } | undefined;
137
+ };
138
+ }>;
139
+ export type RangeSelector = z.infer<typeof RangeSelector>;
140
+ export declare const rangeSelectorSchema: JSONSchemaType<RangeSelector>;
141
+ //# sourceMappingURL=range.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"range.d.ts","sourceRoot":"","sources":["../../../../../src/schema/definitions/target/selector/range.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AACrC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAYxB,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAOG,CAAC;AAI9B,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAI1D,eAAO,MAAM,mBAAmB,EAAE,cAAc,CAAC,aAAa,CAwB7D,CAAC"}
@@ -0,0 +1,44 @@
1
+ import { z } from 'zod';
2
+ import { XpathSelector } from './xpath';
3
+ // * Pure Typescript Type - Just for reference
4
+ // export interface RangeSelector {
5
+ // id: string;
6
+ // type: ['RangeSelector', 'crm:E73_Information_Object'];
7
+ // startSelector: XpathSelector;
8
+ // endSelector: XpathSelector;
9
+ // }
10
+ export const RangeSelector = z
11
+ .object({
12
+ id: z.string().uuid().describe('UUID that identifies the selector.'),
13
+ type: z.tuple([z.literal('RangeSelector'), z.literal('crm:E73_Information_Object')]),
14
+ startSelector: XpathSelector,
15
+ endSelector: XpathSelector,
16
+ })
17
+ .describe('Range Selector');
18
+ // * JSONSchema
19
+ export const rangeSelectorSchema = {
20
+ type: 'object',
21
+ description: 'Range Selector',
22
+ properties: {
23
+ id: {
24
+ type: 'string',
25
+ format: 'uuid',
26
+ description: 'UUID that identifies the selector.',
27
+ },
28
+ type: {
29
+ type: 'array',
30
+ minItems: 2,
31
+ maxItems: 2,
32
+ items: [
33
+ { type: 'string', const: 'RangeSelector' },
34
+ { type: 'string', const: 'crm:E73_Information_Object' },
35
+ ],
36
+ description: 'The class of the Selector,',
37
+ },
38
+ startSelector: { $ref: 'defs.jsonld#/definitions/xpathSelector' },
39
+ endSelector: { $ref: 'defs.jsonld#/definitions/xpathSelector' },
40
+ },
41
+ required: ['id', 'type', 'startSelector', 'endSelector'],
42
+ // errorMessage: { properties: { id: 'Must be an URI' } },
43
+ };
44
+ //# sourceMappingURL=range.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"range.js","sourceRoot":"","sources":["../../../../../src/schema/definitions/target/selector/range.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAExC,8CAA8C;AAE9C,mCAAmC;AACnC,gBAAgB;AAChB,2DAA2D;AAC3D,kCAAkC;AAClC,gCAAgC;AAChC,IAAI;AAEJ,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC;KAC3B,MAAM,CAAC;IACN,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,oCAAoC,CAAC;IACpE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC,CAAC;IACpF,aAAa,EAAE,aAAa;IAC5B,WAAW,EAAE,aAAa;CAC3B,CAAC;KACD,QAAQ,CAAC,gBAAgB,CAAC,CAAC;AAM9B,eAAe;AAEf,MAAM,CAAC,MAAM,mBAAmB,GAAkC;IAChE,IAAI,EAAE,QAAQ;IACd,WAAW,EAAE,gBAAgB;IAC7B,UAAU,EAAE;QACV,EAAE,EAAE;YACF,IAAI,EAAE,QAAQ;YACd,MAAM,EAAE,MAAM;YACd,WAAW,EAAE,oCAAoC;SAClD;QACD,IAAI,EAAE;YACJ,IAAI,EAAE,OAAO;YACb,QAAQ,EAAE,CAAC;YACX,QAAQ,EAAE,CAAC;YACX,KAAK,EAAE;gBACL,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,eAAe,EAAE;gBAC1C,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,4BAA4B,EAAE;aACxD;YACD,WAAW,EAAE,4BAA4B;SAC1C;QACD,aAAa,EAAE,EAAE,IAAI,EAAE,wCAAwC,EAAE;QACjE,WAAW,EAAE,EAAE,IAAI,EAAE,wCAAwC,EAAE;KAChE;IACD,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,eAAe,EAAE,aAAa,CAAC;IACxD,0DAA0D;CAC3D,CAAC"}
@@ -0,0 +1,21 @@
1
+ import { JSONSchemaType } from 'ajv';
2
+ import { z } from 'zod';
3
+ export declare const TextPositionSelector: z.ZodObject<{
4
+ id: z.ZodString;
5
+ type: z.ZodTuple<[z.ZodLiteral<"TextPositionSelector">, z.ZodLiteral<"crm:E73_Information_Object">], null>;
6
+ start: z.ZodNumber;
7
+ end: z.ZodNumber;
8
+ }, "strip", z.ZodTypeAny, {
9
+ type: ["TextPositionSelector", "crm:E73_Information_Object"];
10
+ id: string;
11
+ start: number;
12
+ end: number;
13
+ }, {
14
+ type: ["TextPositionSelector", "crm:E73_Information_Object"];
15
+ id: string;
16
+ start: number;
17
+ end: number;
18
+ }>;
19
+ export type TextPositionSelector = z.infer<typeof TextPositionSelector>;
20
+ export declare const textPositionSelectorSchema: JSONSchemaType<TextPositionSelector>;
21
+ //# sourceMappingURL=textPosition.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"textPosition.d.ts","sourceRoot":"","sources":["../../../../../src/schema/definitions/target/selector/textPosition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AACrC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAaxB,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;EAcG,CAAC;AAErC,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAIxE,eAAO,MAAM,0BAA0B,EAAE,cAAc,CAAC,oBAAoB,CAiC3E,CAAC"}
@@ -0,0 +1,57 @@
1
+ import { z } from 'zod';
2
+ // * Pure Typescript Type - Just for reference
3
+ // export interface TextPosition {
4
+ // id: string;
5
+ // type: ['TextPositionSelector', 'crm:E73_Information_Object'];
6
+ // start: number;
7
+ // end: number;
8
+ // }
9
+ // * Type using Zod & Inference
10
+ export const TextPositionSelector = z
11
+ .object({
12
+ id: z.string().url().describe('The IRI that identifies the target resource.'),
13
+ type: z.tuple([z.literal('TextPositionSelector'), z.literal('crm:E73_Information_Object')]),
14
+ start: z
15
+ .number()
16
+ .min(0)
17
+ .describe('The starting position of the segment. The first byte is character position 0.'),
18
+ end: z
19
+ .number()
20
+ .describe('The end position of the segment. The last character is not included within the segment.'),
21
+ })
22
+ .describe('TextPosition Selector');
23
+ // * JSONSchema
24
+ export const textPositionSelectorSchema = {
25
+ type: 'object',
26
+ description: 'TextPosition Selector',
27
+ properties: {
28
+ id: {
29
+ type: 'string',
30
+ format: 'uuid',
31
+ description: 'UUID that identifies the selector.',
32
+ },
33
+ type: {
34
+ type: 'array',
35
+ minItems: 2,
36
+ maxItems: 2,
37
+ items: [
38
+ { type: 'string', const: 'TextPositionSelector' },
39
+ { type: 'string', const: 'crm:E73_Information_Object' },
40
+ ],
41
+ description: 'The class of the Selector.',
42
+ },
43
+ start: {
44
+ type: 'number',
45
+ minimum: 0,
46
+ description: 'The starting position of the segment. The first byte is character position 0.',
47
+ },
48
+ end: {
49
+ type: 'number',
50
+ minimum: 0,
51
+ description: 'The end position of the segment. The last character is not included within the segment.',
52
+ },
53
+ },
54
+ required: ['id', 'type', 'start', 'end'],
55
+ // errorMessage: { properties: { id: 'Must be an URI' } },
56
+ };
57
+ //# sourceMappingURL=textPosition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"textPosition.js","sourceRoot":"","sources":["../../../../../src/schema/definitions/target/selector/textPosition.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,8CAA8C;AAE9C,kCAAkC;AAClC,gBAAgB;AAChB,kEAAkE;AAClE,mBAAmB;AACnB,iBAAiB;AACjB,IAAI;AAEJ,+BAA+B;AAE/B,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC;KAClC,MAAM,CAAC;IACN,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,8CAA8C,CAAC;IAC7E,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,sBAAsB,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC,CAAC;IAC3F,KAAK,EAAE,CAAC;SACL,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,CAAC,+EAA+E,CAAC;IAC5F,GAAG,EAAE,CAAC;SACH,MAAM,EAAE;SACR,QAAQ,CACP,yFAAyF,CAC1F;CACJ,CAAC;KACD,QAAQ,CAAC,uBAAuB,CAAC,CAAC;AAIrC,eAAe;AAEf,MAAM,CAAC,MAAM,0BAA0B,GAAyC;IAC9E,IAAI,EAAE,QAAQ;IACd,WAAW,EAAE,uBAAuB;IACpC,UAAU,EAAE;QACV,EAAE,EAAE;YACF,IAAI,EAAE,QAAQ;YACd,MAAM,EAAE,MAAM;YACd,WAAW,EAAE,oCAAoC;SAClD;QACD,IAAI,EAAE;YACJ,IAAI,EAAE,OAAO;YACb,QAAQ,EAAE,CAAC;YACX,QAAQ,EAAE,CAAC;YACX,KAAK,EAAE;gBACL,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,sBAAsB,EAAE;gBACjD,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,4BAA4B,EAAE;aACxD;YACD,WAAW,EAAE,4BAA4B;SAC1C;QACD,KAAK,EAAE;YACL,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,CAAC;YACV,WAAW,EAAE,+EAA+E;SAC7F;QACD,GAAG,EAAE;YACH,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,CAAC;YACV,WAAW,EACT,yFAAyF;SAC5F;KACF;IACD,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC;IACxC,0DAA0D;CAC3D,CAAC"}