@inkbar/core 0.2.0 → 0.4.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.
package/schema.json CHANGED
@@ -28,10 +28,36 @@
28
28
  "author": { "type": "string" },
29
29
  "contents": { "type": "string" },
30
30
  "inReplyTo": { "type": "string" },
31
- "createdAt": { "type": "string" },
32
- "modifiedAt": { "type": "string" },
33
- "source": { "type": "string", "enum": ["session", "pdf"] },
34
- "locked": { "type": "boolean" },
31
+ "createdAt": {
32
+ "type": "string",
33
+ "format": "date-time",
34
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
35
+ },
36
+ "modifiedAt": {
37
+ "type": "string",
38
+ "format": "date-time",
39
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
40
+ },
41
+ "subject": { "type": "string" },
42
+ "intent": {
43
+ "anyOf": [
44
+ {
45
+ "type": "string",
46
+ "enum": [
47
+ "FreeText",
48
+ "FreeTextCallout",
49
+ "FreeTextTypeWriter",
50
+ "LineArrow",
51
+ "LineDimension",
52
+ "PolygonCloud",
53
+ "PolygonDimension",
54
+ "PolyLineDimension"
55
+ ]
56
+ },
57
+ { "type": "string", "pattern": "^[^\\s()<>[\\]{}/%]+$" }
58
+ ],
59
+ "description": "One of FreeText, FreeTextCallout, FreeTextTypeWriter, LineArrow, LineDimension, PolygonCloud, PolygonDimension, PolyLineDimension. Any other PDF name is allowed and kept unchanged."
60
+ },
35
61
  "custom": {
36
62
  "type": "object",
37
63
  "propertyNames": { "type": "string" },
@@ -97,7 +123,6 @@
97
123
  "opacity",
98
124
  "createdAt",
99
125
  "modifiedAt",
100
- "source",
101
126
  "type",
102
127
  "quads"
103
128
  ],
@@ -124,20 +149,60 @@
124
149
  "author": { "type": "string" },
125
150
  "contents": { "type": "string" },
126
151
  "inReplyTo": { "type": "string" },
127
- "createdAt": { "type": "string" },
128
- "modifiedAt": { "type": "string" },
129
- "source": { "type": "string", "enum": ["session", "pdf"] },
130
- "locked": { "type": "boolean" },
152
+ "createdAt": {
153
+ "type": "string",
154
+ "format": "date-time",
155
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
156
+ },
157
+ "modifiedAt": {
158
+ "type": "string",
159
+ "format": "date-time",
160
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
161
+ },
162
+ "subject": { "type": "string" },
163
+ "intent": {
164
+ "anyOf": [
165
+ {
166
+ "type": "string",
167
+ "enum": [
168
+ "FreeText",
169
+ "FreeTextCallout",
170
+ "FreeTextTypeWriter",
171
+ "LineArrow",
172
+ "LineDimension",
173
+ "PolygonCloud",
174
+ "PolygonDimension",
175
+ "PolyLineDimension"
176
+ ]
177
+ },
178
+ { "type": "string", "pattern": "^[^\\s()<>[\\]{}/%]+$" }
179
+ ],
180
+ "description": "One of FreeText, FreeTextCallout, FreeTextTypeWriter, LineArrow, LineDimension, PolygonCloud, PolygonDimension, PolyLineDimension. Any other PDF name is allowed and kept unchanged."
181
+ },
131
182
  "custom": {
132
183
  "type": "object",
133
184
  "propertyNames": { "type": "string" },
134
185
  "additionalProperties": {}
135
186
  },
136
- "type": { "type": "string", "const": "note" },
187
+ "type": { "type": "string", "const": "text" },
137
188
  "icon": {
138
- "default": "comment",
139
- "type": "string",
140
- "enum": ["comment", "note", "help", "insert", "key", "paragraph"]
189
+ "default": "Note",
190
+ "anyOf": [
191
+ {
192
+ "type": "string",
193
+ "enum": [
194
+ "Comment",
195
+ "Note",
196
+ "Help",
197
+ "Insert",
198
+ "Key",
199
+ "NewParagraph",
200
+ "Paragraph"
201
+ ]
202
+ },
203
+ { "type": "string", "pattern": "^[^\\s()<>[\\]{}/%]+$" }
204
+ ],
205
+ "description": "One of Comment, Note, Help, Insert, Key, NewParagraph, Paragraph. Any other PDF name is allowed and kept unchanged."
141
206
  }
142
207
  },
143
208
  "required": [
@@ -148,9 +213,7 @@
148
213
  "opacity",
149
214
  "createdAt",
150
215
  "modifiedAt",
151
- "source",
152
- "type",
153
- "icon"
216
+ "type"
154
217
  ],
155
218
  "additionalProperties": false
156
219
  },
@@ -175,23 +238,83 @@
175
238
  "author": { "type": "string" },
176
239
  "contents": { "type": "string" },
177
240
  "inReplyTo": { "type": "string" },
178
- "createdAt": { "type": "string" },
179
- "modifiedAt": { "type": "string" },
180
- "source": { "type": "string", "enum": ["session", "pdf"] },
181
- "locked": { "type": "boolean" },
241
+ "createdAt": {
242
+ "type": "string",
243
+ "format": "date-time",
244
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
245
+ },
246
+ "modifiedAt": {
247
+ "type": "string",
248
+ "format": "date-time",
249
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
250
+ },
251
+ "subject": { "type": "string" },
252
+ "intent": {
253
+ "anyOf": [
254
+ {
255
+ "type": "string",
256
+ "enum": [
257
+ "FreeText",
258
+ "FreeTextCallout",
259
+ "FreeTextTypeWriter",
260
+ "LineArrow",
261
+ "LineDimension",
262
+ "PolygonCloud",
263
+ "PolygonDimension",
264
+ "PolyLineDimension"
265
+ ]
266
+ },
267
+ { "type": "string", "pattern": "^[^\\s()<>[\\]{}/%]+$" }
268
+ ],
269
+ "description": "One of FreeText, FreeTextCallout, FreeTextTypeWriter, LineArrow, LineDimension, PolygonCloud, PolygonDimension, PolyLineDimension. Any other PDF name is allowed and kept unchanged."
270
+ },
182
271
  "custom": {
183
272
  "type": "object",
184
273
  "propertyNames": { "type": "string" },
185
274
  "additionalProperties": {}
186
275
  },
187
- "type": { "type": "string", "const": "freeText" },
188
- "text": { "type": "string" },
189
- "fontSize": { "default": 12, "type": "number", "exclusiveMinimum": 0 },
190
- "fontFamily": { "default": "Helvetica", "type": "string" },
191
- "align": {
192
- "default": "left",
193
- "type": "string",
194
- "enum": ["left", "center", "right"]
276
+ "type": { "type": "string", "const": "freetext" },
277
+ "borderColor": { "type": "string", "pattern": "^#[0-9a-fA-F]{6}$" },
278
+ "width": { "default": 0, "type": "number", "minimum": 0 },
279
+ "dashes": {
280
+ "minItems": 1,
281
+ "type": "array",
282
+ "items": { "type": "number", "minimum": 0 }
283
+ },
284
+ "cornerRadius": { "type": "number", "minimum": 0 },
285
+ "defaultStyle": {
286
+ "type": "object",
287
+ "properties": {
288
+ "fontFamily": {
289
+ "default": "Helvetica",
290
+ "type": "string",
291
+ "minLength": 1
292
+ },
293
+ "fontSize": { "default": 12, "type": "number", "exclusiveMinimum": 0 },
294
+ "color": { "type": "string", "pattern": "^#[0-9a-fA-F]{6}$" },
295
+ "textAlign": {
296
+ "default": "left",
297
+ "type": "string",
298
+ "enum": ["left", "center", "right", "justify"]
299
+ },
300
+ "fontWeight": { "type": "string", "const": "bold" },
301
+ "fontStyle": { "type": "string", "const": "italic" },
302
+ "textDecoration": { "type": "string", "const": "underline" },
303
+ "align": { "not": {} }
304
+ },
305
+ "required": ["color"],
306
+ "additionalProperties": false
307
+ },
308
+ "fringe": {
309
+ "type": "object",
310
+ "properties": {
311
+ "left": { "type": "number", "minimum": 0 },
312
+ "top": { "type": "number", "minimum": 0 },
313
+ "right": { "type": "number", "minimum": 0 },
314
+ "bottom": { "type": "number", "minimum": 0 }
315
+ },
316
+ "required": ["left", "top", "right", "bottom"],
317
+ "additionalProperties": false
195
318
  },
196
319
  "callout": {
197
320
  "minItems": 2,
@@ -203,22 +326,42 @@
203
326
  "required": ["x", "y"],
204
327
  "additionalProperties": false
205
328
  }
206
- }
329
+ },
330
+ "head": {
331
+ "anyOf": [
332
+ {
333
+ "type": "string",
334
+ "enum": [
335
+ "None",
336
+ "Square",
337
+ "Circle",
338
+ "Diamond",
339
+ "OpenArrow",
340
+ "ClosedArrow",
341
+ "Butt",
342
+ "ROpenArrow",
343
+ "RClosedArrow",
344
+ "Slash"
345
+ ]
346
+ },
347
+ { "type": "string", "pattern": "^[^\\s()<>[\\]{}/%]+$" }
348
+ ],
349
+ "description": "One of None, Square, Circle, Diamond, OpenArrow, ClosedArrow, Butt, ROpenArrow, RClosedArrow, Slash. Any other PDF name is allowed and kept unchanged."
350
+ },
351
+ "fontFamily": { "not": {} },
352
+ "fontSize": { "not": {} },
353
+ "align": { "not": {} }
207
354
  },
208
355
  "required": [
209
356
  "id",
210
357
  "page",
211
358
  "rect",
212
- "color",
213
359
  "opacity",
360
+ "contents",
214
361
  "createdAt",
215
362
  "modifiedAt",
216
- "source",
217
363
  "type",
218
- "text",
219
- "fontSize",
220
- "fontFamily",
221
- "align"
364
+ "defaultStyle"
222
365
  ],
223
366
  "additionalProperties": false
224
367
  },
@@ -243,18 +386,50 @@
243
386
  "author": { "type": "string" },
244
387
  "contents": { "type": "string" },
245
388
  "inReplyTo": { "type": "string" },
246
- "createdAt": { "type": "string" },
247
- "modifiedAt": { "type": "string" },
248
- "source": { "type": "string", "enum": ["session", "pdf"] },
249
- "locked": { "type": "boolean" },
389
+ "createdAt": {
390
+ "type": "string",
391
+ "format": "date-time",
392
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
393
+ },
394
+ "modifiedAt": {
395
+ "type": "string",
396
+ "format": "date-time",
397
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
398
+ },
399
+ "subject": { "type": "string" },
400
+ "intent": {
401
+ "anyOf": [
402
+ {
403
+ "type": "string",
404
+ "enum": [
405
+ "FreeText",
406
+ "FreeTextCallout",
407
+ "FreeTextTypeWriter",
408
+ "LineArrow",
409
+ "LineDimension",
410
+ "PolygonCloud",
411
+ "PolygonDimension",
412
+ "PolyLineDimension"
413
+ ]
414
+ },
415
+ { "type": "string", "pattern": "^[^\\s()<>[\\]{}/%]+$" }
416
+ ],
417
+ "description": "One of FreeText, FreeTextCallout, FreeTextTypeWriter, LineArrow, LineDimension, PolygonCloud, PolygonDimension, PolyLineDimension. Any other PDF name is allowed and kept unchanged."
418
+ },
250
419
  "custom": {
251
420
  "type": "object",
252
421
  "propertyNames": { "type": "string" },
253
422
  "additionalProperties": {}
254
423
  },
255
- "type": { "type": "string", "enum": ["square", "circle"] },
256
- "strokeWidth": { "default": 1, "type": "number", "minimum": 0 },
257
- "fill": { "type": "string", "pattern": "^#[0-9a-fA-F]{6}$" }
424
+ "type": { "type": "string", "const": "square" },
425
+ "width": { "default": 1, "type": "number", "minimum": 0 },
426
+ "dashes": {
427
+ "minItems": 1,
428
+ "type": "array",
429
+ "items": { "type": "number", "minimum": 0 }
430
+ },
431
+ "interiorColor": { "type": "string", "pattern": "^#[0-9a-fA-F]{6}$" },
432
+ "cornerRadius": { "type": "number", "minimum": 0 }
258
433
  },
259
434
  "required": [
260
435
  "id",
@@ -264,9 +439,7 @@
264
439
  "opacity",
265
440
  "createdAt",
266
441
  "modifiedAt",
267
- "source",
268
- "type",
269
- "strokeWidth"
442
+ "type"
270
443
  ],
271
444
  "additionalProperties": false
272
445
  },
@@ -291,10 +464,114 @@
291
464
  "author": { "type": "string" },
292
465
  "contents": { "type": "string" },
293
466
  "inReplyTo": { "type": "string" },
294
- "createdAt": { "type": "string" },
295
- "modifiedAt": { "type": "string" },
296
- "source": { "type": "string", "enum": ["session", "pdf"] },
297
- "locked": { "type": "boolean" },
467
+ "createdAt": {
468
+ "type": "string",
469
+ "format": "date-time",
470
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
471
+ },
472
+ "modifiedAt": {
473
+ "type": "string",
474
+ "format": "date-time",
475
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
476
+ },
477
+ "subject": { "type": "string" },
478
+ "intent": {
479
+ "anyOf": [
480
+ {
481
+ "type": "string",
482
+ "enum": [
483
+ "FreeText",
484
+ "FreeTextCallout",
485
+ "FreeTextTypeWriter",
486
+ "LineArrow",
487
+ "LineDimension",
488
+ "PolygonCloud",
489
+ "PolygonDimension",
490
+ "PolyLineDimension"
491
+ ]
492
+ },
493
+ { "type": "string", "pattern": "^[^\\s()<>[\\]{}/%]+$" }
494
+ ],
495
+ "description": "One of FreeText, FreeTextCallout, FreeTextTypeWriter, LineArrow, LineDimension, PolygonCloud, PolygonDimension, PolyLineDimension. Any other PDF name is allowed and kept unchanged."
496
+ },
497
+ "custom": {
498
+ "type": "object",
499
+ "propertyNames": { "type": "string" },
500
+ "additionalProperties": {}
501
+ },
502
+ "type": { "type": "string", "const": "circle" },
503
+ "width": { "default": 1, "type": "number", "minimum": 0 },
504
+ "dashes": {
505
+ "minItems": 1,
506
+ "type": "array",
507
+ "items": { "type": "number", "minimum": 0 }
508
+ },
509
+ "interiorColor": { "type": "string", "pattern": "^#[0-9a-fA-F]{6}$" },
510
+ "cornerRadius": { "not": {} }
511
+ },
512
+ "required": [
513
+ "id",
514
+ "page",
515
+ "rect",
516
+ "color",
517
+ "opacity",
518
+ "createdAt",
519
+ "modifiedAt",
520
+ "type"
521
+ ],
522
+ "additionalProperties": false
523
+ },
524
+ {
525
+ "type": "object",
526
+ "properties": {
527
+ "id": { "type": "string", "minLength": 1 },
528
+ "page": { "type": "integer", "minimum": 0, "maximum": 9007199254740991 },
529
+ "rect": {
530
+ "type": "object",
531
+ "properties": {
532
+ "x": { "type": "number" },
533
+ "y": { "type": "number" },
534
+ "width": { "type": "number", "minimum": 0 },
535
+ "height": { "type": "number", "minimum": 0 }
536
+ },
537
+ "required": ["x", "y", "width", "height"],
538
+ "additionalProperties": false
539
+ },
540
+ "color": { "type": "string", "pattern": "^#[0-9a-fA-F]{6}$" },
541
+ "opacity": { "type": "number", "minimum": 0, "maximum": 1 },
542
+ "author": { "type": "string" },
543
+ "contents": { "type": "string" },
544
+ "inReplyTo": { "type": "string" },
545
+ "createdAt": {
546
+ "type": "string",
547
+ "format": "date-time",
548
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
549
+ },
550
+ "modifiedAt": {
551
+ "type": "string",
552
+ "format": "date-time",
553
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
554
+ },
555
+ "subject": { "type": "string" },
556
+ "intent": {
557
+ "anyOf": [
558
+ {
559
+ "type": "string",
560
+ "enum": [
561
+ "FreeText",
562
+ "FreeTextCallout",
563
+ "FreeTextTypeWriter",
564
+ "LineArrow",
565
+ "LineDimension",
566
+ "PolygonCloud",
567
+ "PolygonDimension",
568
+ "PolyLineDimension"
569
+ ]
570
+ },
571
+ { "type": "string", "pattern": "^[^\\s()<>[\\]{}/%]+$" }
572
+ ],
573
+ "description": "One of FreeText, FreeTextCallout, FreeTextTypeWriter, LineArrow, LineDimension, PolygonCloud, PolygonDimension, PolyLineDimension. Any other PDF name is allowed and kept unchanged."
574
+ },
298
575
  "custom": {
299
576
  "type": "object",
300
577
  "propertyNames": { "type": "string" },
@@ -313,40 +590,53 @@
313
590
  "required": ["x", "y"],
314
591
  "additionalProperties": false
315
592
  },
316
- "strokeWidth": { "default": 1, "type": "number", "minimum": 0 },
317
- "endings": {
593
+ "width": { "default": 1, "type": "number", "minimum": 0 },
594
+ "dashes": {
595
+ "minItems": 1,
318
596
  "type": "array",
319
- "prefixItems": [
597
+ "items": { "type": "number", "minimum": 0 }
598
+ },
599
+ "head": {
600
+ "anyOf": [
320
601
  {
321
602
  "type": "string",
322
603
  "enum": [
323
- "none",
324
- "openArrow",
325
- "closedArrow",
326
- "square",
327
- "circle",
328
- "diamond",
329
- "butt",
330
- "slash"
604
+ "None",
605
+ "Square",
606
+ "Circle",
607
+ "Diamond",
608
+ "OpenArrow",
609
+ "ClosedArrow",
610
+ "Butt",
611
+ "ROpenArrow",
612
+ "RClosedArrow",
613
+ "Slash"
331
614
  ]
332
615
  },
616
+ { "type": "string", "pattern": "^[^\\s()<>[\\]{}/%]+$" }
617
+ ],
618
+ "description": "One of None, Square, Circle, Diamond, OpenArrow, ClosedArrow, Butt, ROpenArrow, RClosedArrow, Slash. Any other PDF name is allowed and kept unchanged."
619
+ },
620
+ "tail": {
621
+ "anyOf": [
333
622
  {
334
623
  "type": "string",
335
624
  "enum": [
336
- "none",
337
- "openArrow",
338
- "closedArrow",
339
- "square",
340
- "circle",
341
- "diamond",
342
- "butt",
343
- "slash"
625
+ "None",
626
+ "Square",
627
+ "Circle",
628
+ "Diamond",
629
+ "OpenArrow",
630
+ "ClosedArrow",
631
+ "Butt",
632
+ "ROpenArrow",
633
+ "RClosedArrow",
634
+ "Slash"
344
635
  ]
345
- }
636
+ },
637
+ { "type": "string", "pattern": "^[^\\s()<>[\\]{}/%]+$" }
346
638
  ],
347
- "items": false,
348
- "minItems": 2,
349
- "maxItems": 2
639
+ "description": "One of None, Square, Circle, Diamond, OpenArrow, ClosedArrow, Butt, ROpenArrow, RClosedArrow, Slash. Any other PDF name is allowed and kept unchanged."
350
640
  }
351
641
  },
352
642
  "required": [
@@ -357,11 +647,139 @@
357
647
  "opacity",
358
648
  "createdAt",
359
649
  "modifiedAt",
360
- "source",
361
650
  "type",
362
651
  "start",
363
- "end",
364
- "strokeWidth"
652
+ "end"
653
+ ],
654
+ "additionalProperties": false
655
+ },
656
+ {
657
+ "type": "object",
658
+ "properties": {
659
+ "id": { "type": "string", "minLength": 1 },
660
+ "page": { "type": "integer", "minimum": 0, "maximum": 9007199254740991 },
661
+ "rect": {
662
+ "type": "object",
663
+ "properties": {
664
+ "x": { "type": "number" },
665
+ "y": { "type": "number" },
666
+ "width": { "type": "number", "minimum": 0 },
667
+ "height": { "type": "number", "minimum": 0 }
668
+ },
669
+ "required": ["x", "y", "width", "height"],
670
+ "additionalProperties": false
671
+ },
672
+ "color": { "type": "string", "pattern": "^#[0-9a-fA-F]{6}$" },
673
+ "opacity": { "type": "number", "minimum": 0, "maximum": 1 },
674
+ "author": { "type": "string" },
675
+ "contents": { "type": "string" },
676
+ "inReplyTo": { "type": "string" },
677
+ "createdAt": {
678
+ "type": "string",
679
+ "format": "date-time",
680
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
681
+ },
682
+ "modifiedAt": {
683
+ "type": "string",
684
+ "format": "date-time",
685
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
686
+ },
687
+ "subject": { "type": "string" },
688
+ "intent": {
689
+ "anyOf": [
690
+ {
691
+ "type": "string",
692
+ "enum": [
693
+ "FreeText",
694
+ "FreeTextCallout",
695
+ "FreeTextTypeWriter",
696
+ "LineArrow",
697
+ "LineDimension",
698
+ "PolygonCloud",
699
+ "PolygonDimension",
700
+ "PolyLineDimension"
701
+ ]
702
+ },
703
+ { "type": "string", "pattern": "^[^\\s()<>[\\]{}/%]+$" }
704
+ ],
705
+ "description": "One of FreeText, FreeTextCallout, FreeTextTypeWriter, LineArrow, LineDimension, PolygonCloud, PolygonDimension, PolyLineDimension. Any other PDF name is allowed and kept unchanged."
706
+ },
707
+ "custom": {
708
+ "type": "object",
709
+ "propertyNames": { "type": "string" },
710
+ "additionalProperties": {}
711
+ },
712
+ "type": { "type": "string", "const": "polyline" },
713
+ "vertices": {
714
+ "minItems": 2,
715
+ "type": "array",
716
+ "items": {
717
+ "type": "object",
718
+ "properties": { "x": { "type": "number" }, "y": { "type": "number" } },
719
+ "required": ["x", "y"],
720
+ "additionalProperties": false
721
+ }
722
+ },
723
+ "width": { "default": 1, "type": "number", "minimum": 0 },
724
+ "dashes": {
725
+ "minItems": 1,
726
+ "type": "array",
727
+ "items": { "type": "number", "minimum": 0 }
728
+ },
729
+ "interiorColor": { "type": "string", "pattern": "^#[0-9a-fA-F]{6}$" },
730
+ "head": {
731
+ "anyOf": [
732
+ {
733
+ "type": "string",
734
+ "enum": [
735
+ "None",
736
+ "Square",
737
+ "Circle",
738
+ "Diamond",
739
+ "OpenArrow",
740
+ "ClosedArrow",
741
+ "Butt",
742
+ "ROpenArrow",
743
+ "RClosedArrow",
744
+ "Slash"
745
+ ]
746
+ },
747
+ { "type": "string", "pattern": "^[^\\s()<>[\\]{}/%]+$" }
748
+ ],
749
+ "description": "One of None, Square, Circle, Diamond, OpenArrow, ClosedArrow, Butt, ROpenArrow, RClosedArrow, Slash. Any other PDF name is allowed and kept unchanged."
750
+ },
751
+ "tail": {
752
+ "anyOf": [
753
+ {
754
+ "type": "string",
755
+ "enum": [
756
+ "None",
757
+ "Square",
758
+ "Circle",
759
+ "Diamond",
760
+ "OpenArrow",
761
+ "ClosedArrow",
762
+ "Butt",
763
+ "ROpenArrow",
764
+ "RClosedArrow",
765
+ "Slash"
766
+ ]
767
+ },
768
+ { "type": "string", "pattern": "^[^\\s()<>[\\]{}/%]+$" }
769
+ ],
770
+ "description": "One of None, Square, Circle, Diamond, OpenArrow, ClosedArrow, Butt, ROpenArrow, RClosedArrow, Slash. Any other PDF name is allowed and kept unchanged."
771
+ }
772
+ },
773
+ "required": [
774
+ "id",
775
+ "page",
776
+ "rect",
777
+ "color",
778
+ "opacity",
779
+ "createdAt",
780
+ "modifiedAt",
781
+ "type",
782
+ "vertices"
365
783
  ],
366
784
  "additionalProperties": false
367
785
  },
@@ -386,16 +804,42 @@
386
804
  "author": { "type": "string" },
387
805
  "contents": { "type": "string" },
388
806
  "inReplyTo": { "type": "string" },
389
- "createdAt": { "type": "string" },
390
- "modifiedAt": { "type": "string" },
391
- "source": { "type": "string", "enum": ["session", "pdf"] },
392
- "locked": { "type": "boolean" },
807
+ "createdAt": {
808
+ "type": "string",
809
+ "format": "date-time",
810
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
811
+ },
812
+ "modifiedAt": {
813
+ "type": "string",
814
+ "format": "date-time",
815
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
816
+ },
817
+ "subject": { "type": "string" },
818
+ "intent": {
819
+ "anyOf": [
820
+ {
821
+ "type": "string",
822
+ "enum": [
823
+ "FreeText",
824
+ "FreeTextCallout",
825
+ "FreeTextTypeWriter",
826
+ "LineArrow",
827
+ "LineDimension",
828
+ "PolygonCloud",
829
+ "PolygonDimension",
830
+ "PolyLineDimension"
831
+ ]
832
+ },
833
+ { "type": "string", "pattern": "^[^\\s()<>[\\]{}/%]+$" }
834
+ ],
835
+ "description": "One of FreeText, FreeTextCallout, FreeTextTypeWriter, LineArrow, LineDimension, PolygonCloud, PolygonDimension, PolyLineDimension. Any other PDF name is allowed and kept unchanged."
836
+ },
393
837
  "custom": {
394
838
  "type": "object",
395
839
  "propertyNames": { "type": "string" },
396
840
  "additionalProperties": {}
397
841
  },
398
- "type": { "type": "string", "enum": ["polyline", "polygon"] },
842
+ "type": { "type": "string", "const": "polygon" },
399
843
  "vertices": {
400
844
  "minItems": 2,
401
845
  "type": "array",
@@ -406,8 +850,15 @@
406
850
  "additionalProperties": false
407
851
  }
408
852
  },
409
- "strokeWidth": { "default": 1, "type": "number", "minimum": 0 },
410
- "fill": { "type": "string", "pattern": "^#[0-9a-fA-F]{6}$" }
853
+ "width": { "default": 1, "type": "number", "minimum": 0 },
854
+ "dashes": {
855
+ "minItems": 1,
856
+ "type": "array",
857
+ "items": { "type": "number", "minimum": 0 }
858
+ },
859
+ "interiorColor": { "type": "string", "pattern": "^#[0-9a-fA-F]{6}$" },
860
+ "head": { "not": {} },
861
+ "tail": { "not": {} }
411
862
  },
412
863
  "required": [
413
864
  "id",
@@ -417,10 +868,8 @@
417
868
  "opacity",
418
869
  "createdAt",
419
870
  "modifiedAt",
420
- "source",
421
871
  "type",
422
- "vertices",
423
- "strokeWidth"
872
+ "vertices"
424
873
  ],
425
874
  "additionalProperties": false
426
875
  },
@@ -445,17 +894,43 @@
445
894
  "author": { "type": "string" },
446
895
  "contents": { "type": "string" },
447
896
  "inReplyTo": { "type": "string" },
448
- "createdAt": { "type": "string" },
449
- "modifiedAt": { "type": "string" },
450
- "source": { "type": "string", "enum": ["session", "pdf"] },
451
- "locked": { "type": "boolean" },
897
+ "createdAt": {
898
+ "type": "string",
899
+ "format": "date-time",
900
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
901
+ },
902
+ "modifiedAt": {
903
+ "type": "string",
904
+ "format": "date-time",
905
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
906
+ },
907
+ "subject": { "type": "string" },
908
+ "intent": {
909
+ "anyOf": [
910
+ {
911
+ "type": "string",
912
+ "enum": [
913
+ "FreeText",
914
+ "FreeTextCallout",
915
+ "FreeTextTypeWriter",
916
+ "LineArrow",
917
+ "LineDimension",
918
+ "PolygonCloud",
919
+ "PolygonDimension",
920
+ "PolyLineDimension"
921
+ ]
922
+ },
923
+ { "type": "string", "pattern": "^[^\\s()<>[\\]{}/%]+$" }
924
+ ],
925
+ "description": "One of FreeText, FreeTextCallout, FreeTextTypeWriter, LineArrow, LineDimension, PolygonCloud, PolygonDimension, PolyLineDimension. Any other PDF name is allowed and kept unchanged."
926
+ },
452
927
  "custom": {
453
928
  "type": "object",
454
929
  "propertyNames": { "type": "string" },
455
930
  "additionalProperties": {}
456
931
  },
457
932
  "type": { "type": "string", "const": "ink" },
458
- "paths": {
933
+ "inklist": {
459
934
  "minItems": 1,
460
935
  "type": "array",
461
936
  "items": {
@@ -469,7 +944,19 @@
469
944
  }
470
945
  }
471
946
  },
472
- "strokeWidth": { "default": 2, "type": "number", "minimum": 0 }
947
+ "pressure": {
948
+ "type": "array",
949
+ "items": {
950
+ "type": "array",
951
+ "items": { "type": "number", "minimum": 0, "maximum": 1 }
952
+ }
953
+ },
954
+ "width": { "default": 2, "type": "number", "minimum": 0 },
955
+ "dashes": {
956
+ "minItems": 1,
957
+ "type": "array",
958
+ "items": { "type": "number", "minimum": 0 }
959
+ }
473
960
  },
474
961
  "required": [
475
962
  "id",
@@ -479,10 +966,8 @@
479
966
  "opacity",
480
967
  "createdAt",
481
968
  "modifiedAt",
482
- "source",
483
969
  "type",
484
- "paths",
485
- "strokeWidth"
970
+ "inklist"
486
971
  ],
487
972
  "additionalProperties": false
488
973
  },
@@ -507,10 +992,264 @@
507
992
  "author": { "type": "string" },
508
993
  "contents": { "type": "string" },
509
994
  "inReplyTo": { "type": "string" },
510
- "createdAt": { "type": "string" },
511
- "modifiedAt": { "type": "string" },
512
- "source": { "type": "string", "enum": ["session", "pdf"] },
513
- "locked": { "type": "boolean" },
995
+ "createdAt": {
996
+ "type": "string",
997
+ "format": "date-time",
998
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
999
+ },
1000
+ "modifiedAt": {
1001
+ "type": "string",
1002
+ "format": "date-time",
1003
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
1004
+ },
1005
+ "subject": { "type": "string" },
1006
+ "intent": {
1007
+ "anyOf": [
1008
+ {
1009
+ "type": "string",
1010
+ "enum": [
1011
+ "FreeText",
1012
+ "FreeTextCallout",
1013
+ "FreeTextTypeWriter",
1014
+ "LineArrow",
1015
+ "LineDimension",
1016
+ "PolygonCloud",
1017
+ "PolygonDimension",
1018
+ "PolyLineDimension"
1019
+ ]
1020
+ },
1021
+ { "type": "string", "pattern": "^[^\\s()<>[\\]{}/%]+$" }
1022
+ ],
1023
+ "description": "One of FreeText, FreeTextCallout, FreeTextTypeWriter, LineArrow, LineDimension, PolygonCloud, PolygonDimension, PolyLineDimension. Any other PDF name is allowed and kept unchanged."
1024
+ },
1025
+ "custom": {
1026
+ "type": "object",
1027
+ "propertyNames": { "type": "string" },
1028
+ "additionalProperties": {}
1029
+ },
1030
+ "type": { "type": "string", "const": "stamp" },
1031
+ "imagedata": {
1032
+ "type": "string",
1033
+ "pattern": "^data:image\\/(png|jpeg);base64,"
1034
+ },
1035
+ "rotation": {
1036
+ "anyOf": [
1037
+ { "type": "number", "const": 0 },
1038
+ { "type": "number", "const": 90 },
1039
+ { "type": "number", "const": 180 },
1040
+ { "type": "number", "const": 270 }
1041
+ ]
1042
+ }
1043
+ },
1044
+ "required": [
1045
+ "id",
1046
+ "page",
1047
+ "rect",
1048
+ "color",
1049
+ "opacity",
1050
+ "createdAt",
1051
+ "modifiedAt",
1052
+ "type",
1053
+ "imagedata"
1054
+ ],
1055
+ "additionalProperties": false
1056
+ },
1057
+ {
1058
+ "type": "object",
1059
+ "properties": {
1060
+ "id": { "type": "string", "minLength": 1 },
1061
+ "page": { "type": "integer", "minimum": 0, "maximum": 9007199254740991 },
1062
+ "rect": {
1063
+ "type": "object",
1064
+ "properties": {
1065
+ "x": { "type": "number" },
1066
+ "y": { "type": "number" },
1067
+ "width": { "type": "number", "minimum": 0 },
1068
+ "height": { "type": "number", "minimum": 0 }
1069
+ },
1070
+ "required": ["x", "y", "width", "height"],
1071
+ "additionalProperties": false
1072
+ },
1073
+ "color": { "type": "string", "pattern": "^#[0-9a-fA-F]{6}$" },
1074
+ "opacity": { "type": "number", "minimum": 0, "maximum": 1 },
1075
+ "author": { "type": "string" },
1076
+ "contents": { "type": "string" },
1077
+ "inReplyTo": { "type": "string" },
1078
+ "createdAt": {
1079
+ "type": "string",
1080
+ "format": "date-time",
1081
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
1082
+ },
1083
+ "modifiedAt": {
1084
+ "type": "string",
1085
+ "format": "date-time",
1086
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
1087
+ },
1088
+ "subject": { "type": "string" },
1089
+ "intent": {
1090
+ "anyOf": [
1091
+ {
1092
+ "type": "string",
1093
+ "enum": [
1094
+ "FreeText",
1095
+ "FreeTextCallout",
1096
+ "FreeTextTypeWriter",
1097
+ "LineArrow",
1098
+ "LineDimension",
1099
+ "PolygonCloud",
1100
+ "PolygonDimension",
1101
+ "PolyLineDimension"
1102
+ ]
1103
+ },
1104
+ { "type": "string", "pattern": "^[^\\s()<>[\\]{}/%]+$" }
1105
+ ],
1106
+ "description": "One of FreeText, FreeTextCallout, FreeTextTypeWriter, LineArrow, LineDimension, PolygonCloud, PolygonDimension, PolyLineDimension. Any other PDF name is allowed and kept unchanged."
1107
+ },
1108
+ "custom": {
1109
+ "type": "object",
1110
+ "propertyNames": { "type": "string" },
1111
+ "additionalProperties": {}
1112
+ },
1113
+ "type": { "type": "string", "const": "loupe" },
1114
+ "magnification": { "default": 2, "type": "number", "exclusiveMinimum": 1 },
1115
+ "width": { "default": 2, "type": "number", "minimum": 0 }
1116
+ },
1117
+ "required": [
1118
+ "id",
1119
+ "page",
1120
+ "rect",
1121
+ "color",
1122
+ "opacity",
1123
+ "createdAt",
1124
+ "modifiedAt",
1125
+ "type"
1126
+ ],
1127
+ "additionalProperties": false
1128
+ },
1129
+ {
1130
+ "type": "object",
1131
+ "properties": {
1132
+ "id": { "type": "string", "minLength": 1 },
1133
+ "page": { "type": "integer", "minimum": 0, "maximum": 9007199254740991 },
1134
+ "rect": {
1135
+ "type": "object",
1136
+ "properties": {
1137
+ "x": { "type": "number" },
1138
+ "y": { "type": "number" },
1139
+ "width": { "type": "number", "minimum": 0 },
1140
+ "height": { "type": "number", "minimum": 0 }
1141
+ },
1142
+ "required": ["x", "y", "width", "height"],
1143
+ "additionalProperties": false
1144
+ },
1145
+ "color": { "type": "string", "pattern": "^#[0-9a-fA-F]{6}$" },
1146
+ "opacity": { "type": "number", "minimum": 0, "maximum": 1 },
1147
+ "author": { "type": "string" },
1148
+ "contents": { "type": "string" },
1149
+ "inReplyTo": { "type": "string" },
1150
+ "createdAt": {
1151
+ "type": "string",
1152
+ "format": "date-time",
1153
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
1154
+ },
1155
+ "modifiedAt": {
1156
+ "type": "string",
1157
+ "format": "date-time",
1158
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
1159
+ },
1160
+ "subject": { "type": "string" },
1161
+ "intent": {
1162
+ "anyOf": [
1163
+ {
1164
+ "type": "string",
1165
+ "enum": [
1166
+ "FreeText",
1167
+ "FreeTextCallout",
1168
+ "FreeTextTypeWriter",
1169
+ "LineArrow",
1170
+ "LineDimension",
1171
+ "PolygonCloud",
1172
+ "PolygonDimension",
1173
+ "PolyLineDimension"
1174
+ ]
1175
+ },
1176
+ { "type": "string", "pattern": "^[^\\s()<>[\\]{}/%]+$" }
1177
+ ],
1178
+ "description": "One of FreeText, FreeTextCallout, FreeTextTypeWriter, LineArrow, LineDimension, PolygonCloud, PolygonDimension, PolyLineDimension. Any other PDF name is allowed and kept unchanged."
1179
+ },
1180
+ "custom": {
1181
+ "type": "object",
1182
+ "propertyNames": { "type": "string" },
1183
+ "additionalProperties": {}
1184
+ },
1185
+ "type": { "type": "string", "const": "mask" },
1186
+ "shape": { "type": "string", "enum": ["rect", "ellipse"] },
1187
+ "dim": { "default": 0.5, "type": "number", "minimum": 0, "maximum": 1 }
1188
+ },
1189
+ "required": [
1190
+ "id",
1191
+ "page",
1192
+ "rect",
1193
+ "color",
1194
+ "opacity",
1195
+ "createdAt",
1196
+ "modifiedAt",
1197
+ "type",
1198
+ "shape"
1199
+ ],
1200
+ "additionalProperties": false
1201
+ },
1202
+ {
1203
+ "type": "object",
1204
+ "properties": {
1205
+ "id": { "type": "string", "minLength": 1 },
1206
+ "page": { "type": "integer", "minimum": 0, "maximum": 9007199254740991 },
1207
+ "rect": {
1208
+ "type": "object",
1209
+ "properties": {
1210
+ "x": { "type": "number" },
1211
+ "y": { "type": "number" },
1212
+ "width": { "type": "number", "minimum": 0 },
1213
+ "height": { "type": "number", "minimum": 0 }
1214
+ },
1215
+ "required": ["x", "y", "width", "height"],
1216
+ "additionalProperties": false
1217
+ },
1218
+ "color": { "type": "string", "pattern": "^#[0-9a-fA-F]{6}$" },
1219
+ "opacity": { "type": "number", "minimum": 0, "maximum": 1 },
1220
+ "author": { "type": "string" },
1221
+ "contents": { "type": "string" },
1222
+ "inReplyTo": { "type": "string" },
1223
+ "createdAt": {
1224
+ "type": "string",
1225
+ "format": "date-time",
1226
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
1227
+ },
1228
+ "modifiedAt": {
1229
+ "type": "string",
1230
+ "format": "date-time",
1231
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
1232
+ },
1233
+ "subject": { "type": "string" },
1234
+ "intent": {
1235
+ "anyOf": [
1236
+ {
1237
+ "type": "string",
1238
+ "enum": [
1239
+ "FreeText",
1240
+ "FreeTextCallout",
1241
+ "FreeTextTypeWriter",
1242
+ "LineArrow",
1243
+ "LineDimension",
1244
+ "PolygonCloud",
1245
+ "PolygonDimension",
1246
+ "PolyLineDimension"
1247
+ ]
1248
+ },
1249
+ { "type": "string", "pattern": "^[^\\s()<>[\\]{}/%]+$" }
1250
+ ],
1251
+ "description": "One of FreeText, FreeTextCallout, FreeTextTypeWriter, LineArrow, LineDimension, PolygonCloud, PolygonDimension, PolyLineDimension. Any other PDF name is allowed and kept unchanged."
1252
+ },
514
1253
  "custom": {
515
1254
  "type": "object",
516
1255
  "propertyNames": { "type": "string" },
@@ -585,7 +1324,7 @@
585
1324
  "additionalProperties": false
586
1325
  },
587
1326
  "overlayText": { "type": "string" },
588
- "fill": { "type": "string", "pattern": "^#[0-9a-fA-F]{6}$" }
1327
+ "interiorColor": { "type": "string", "pattern": "^#[0-9a-fA-F]{6}$" }
589
1328
  },
590
1329
  "required": [
591
1330
  "id",
@@ -595,10 +1334,8 @@
595
1334
  "opacity",
596
1335
  "createdAt",
597
1336
  "modifiedAt",
598
- "source",
599
1337
  "type",
600
- "origin",
601
- "fill"
1338
+ "interiorColor"
602
1339
  ],
603
1340
  "additionalProperties": false
604
1341
  }