@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
package/lib/index.d.ts ADDED
@@ -0,0 +1,145 @@
1
+ export * from './schema';
2
+ export * from './validation';
3
+ export declare const ajv: import("ajv/dist/core").default;
4
+ export declare const validator: import("ajv").ValidateFunction<Required<{
5
+ status: "draft" | "approved" | "published";
6
+ type: ["Annotation", "crm:E33_Linguistic_Object"];
7
+ id: string;
8
+ creator: {
9
+ type: "crm:E21_Person";
10
+ id: string;
11
+ name: string;
12
+ };
13
+ target: {
14
+ type: ["SpecificResource", "crm:E73_Information_Object"];
15
+ id: string;
16
+ format?: string[] | undefined;
17
+ language?: string[] | undefined;
18
+ title?: string | undefined;
19
+ renderedVia?: {
20
+ type: ["Software", "crm:P16_used_specific_object"];
21
+ id: string;
22
+ label: string;
23
+ softwareVersion?: string | undefined;
24
+ } | undefined;
25
+ selector?: {
26
+ type: ["TextPositionSelector", "crm:E73_Information_Object"];
27
+ id: string;
28
+ start: number;
29
+ end: number;
30
+ } | {
31
+ value: string;
32
+ type: ["XPathSelector", "crm:E73_Information_Object"];
33
+ id: string;
34
+ refinedBy?: {
35
+ type: ["TextPositionSelector", "crm:E73_Information_Object"];
36
+ id: string;
37
+ start: number;
38
+ end: number;
39
+ } | undefined;
40
+ } | {
41
+ type: ["RangeSelector", "crm:E73_Information_Object"];
42
+ id: string;
43
+ startSelector: {
44
+ value: string;
45
+ type: ["XPathSelector", "crm:E73_Information_Object"];
46
+ id: string;
47
+ refinedBy?: {
48
+ type: ["TextPositionSelector", "crm:E73_Information_Object"];
49
+ id: string;
50
+ start: number;
51
+ end: number;
52
+ } | undefined;
53
+ };
54
+ endSelector: {
55
+ value: string;
56
+ type: ["XPathSelector", "crm:E73_Information_Object"];
57
+ id: string;
58
+ refinedBy?: {
59
+ type: ["TextPositionSelector", "crm:E73_Information_Object"];
60
+ id: string;
61
+ start: number;
62
+ end: number;
63
+ } | undefined;
64
+ };
65
+ } | {
66
+ exact: string;
67
+ type: ["TextQuoteSelector", "crm:E33_Linguistic_Object"];
68
+ id: string;
69
+ prefix?: string | undefined;
70
+ sufix?: string | undefined;
71
+ refinedBy?: {
72
+ type: ["TextPositionSelector", "crm:E73_Information_Object"];
73
+ id: string;
74
+ start: number;
75
+ end: number;
76
+ } | {
77
+ value: string;
78
+ type: ["XPathSelector", "crm:E73_Information_Object"];
79
+ id: string;
80
+ refinedBy?: {
81
+ type: ["TextPositionSelector", "crm:E73_Information_Object"];
82
+ id: string;
83
+ start: number;
84
+ end: number;
85
+ } | undefined;
86
+ } | {
87
+ type: ["RangeSelector", "crm:E73_Information_Object"];
88
+ id: string;
89
+ startSelector: {
90
+ value: string;
91
+ type: ["XPathSelector", "crm:E73_Information_Object"];
92
+ id: string;
93
+ refinedBy?: {
94
+ type: ["TextPositionSelector", "crm:E73_Information_Object"];
95
+ id: string;
96
+ start: number;
97
+ end: number;
98
+ } | undefined;
99
+ };
100
+ endSelector: {
101
+ value: string;
102
+ type: ["XPathSelector", "crm:E73_Information_Object"];
103
+ id: string;
104
+ refinedBy?: {
105
+ type: ["TextPositionSelector", "crm:E73_Information_Object"];
106
+ id: string;
107
+ start: number;
108
+ end: number;
109
+ } | undefined;
110
+ };
111
+ } | undefined;
112
+ } | undefined;
113
+ };
114
+ body: {
115
+ id: string;
116
+ entityType: ["cito:Citation", "crm:E73_Information_Object"] | "crm:E28_Conceptual_Object" | ["crm:E28_Conceptual_Object", "wikidata:Q15831596"] | ("crm:E28_Conceptual_Object" & ["crm:E28_Conceptual_Object", "wikidata:Q15831596"]) | (["crm:E28_Conceptual_Object", "wikidata:Q15831596"] & "crm:E28_Conceptual_Object") | "crm:E33_Linguistic_Object" | ["fabio:Correction", "crm:E33_Linguistic_Object"] | ["xsd:date", "crm:E52_Time-Span"] | "crmdig:D1_Digital_Object" | ["crm:E55_Type", "crmdig:D1_Digital_Object"] | ["crm:E55_Type", "crm:E33_Linguistic_Object"] | ["foaf:Organization", "crm:E74_Group" | "crm:E89_Propositional_Object"] | ["Person", "crm:E21_Person" | "crm:E89_Propositional_Object"] | "crm:E18_Physical_Thing" | ["crm:E18_Physical_Thing", "wikidata:Q15831596"] | ("crm:E18_Physical_Thing" & ["crm:E18_Physical_Thing", "wikidata:Q15831596"]) | (["crm:E18_Physical_Thing", "wikidata:Q15831596"] & "crm:E18_Physical_Thing") | "cwrc:place" | ["cwrc:place", "crm:E89_Propositional_Object"] | ("cwrc:place" & ["cwrc:place", "crm:E89_Propositional_Object"]) | (["cwrc:place", "crm:E89_Propositional_Object"] & "cwrc:place") | ["crm:E89_Propositional_Object", "frbroo:F1" | "wikidata:Q15306849"] | (["cito:Citation", "crm:E73_Information_Object"] & "crm:E28_Conceptual_Object") | (["cito:Citation", "crm:E73_Information_Object"] & "crm:E33_Linguistic_Object") | (["cito:Citation", "crm:E73_Information_Object"] & "crmdig:D1_Digital_Object") | (["cito:Citation", "crm:E73_Information_Object"] & "crm:E18_Physical_Thing") | (["cito:Citation", "crm:E73_Information_Object"] & "cwrc:place") | ("crm:E28_Conceptual_Object" & ["cito:Citation", "crm:E73_Information_Object"]) | ("crm:E28_Conceptual_Object" & ["fabio:Correction", "crm:E33_Linguistic_Object"]) | ("crm:E28_Conceptual_Object" & ["xsd:date", "crm:E52_Time-Span"]) | ("crm:E28_Conceptual_Object" & ["crm:E55_Type", "crmdig:D1_Digital_Object"]) | ("crm:E28_Conceptual_Object" & ["crm:E55_Type", "crm:E33_Linguistic_Object"]) | ("crm:E28_Conceptual_Object" & ["foaf:Organization", "crm:E74_Group" | "crm:E89_Propositional_Object"]) | ("crm:E28_Conceptual_Object" & ["Person", "crm:E21_Person" | "crm:E89_Propositional_Object"]) | ("crm:E28_Conceptual_Object" & ["crm:E18_Physical_Thing", "wikidata:Q15831596"]) | ("crm:E28_Conceptual_Object" & ["cwrc:place", "crm:E89_Propositional_Object"]) | ("crm:E28_Conceptual_Object" & ["crm:E89_Propositional_Object", "frbroo:F1" | "wikidata:Q15306849"]) | (["crm:E28_Conceptual_Object", "wikidata:Q15831596"] & "crm:E33_Linguistic_Object") | (["crm:E28_Conceptual_Object", "wikidata:Q15831596"] & "crmdig:D1_Digital_Object") | (["crm:E28_Conceptual_Object", "wikidata:Q15831596"] & "crm:E18_Physical_Thing") | (["crm:E28_Conceptual_Object", "wikidata:Q15831596"] & "cwrc:place") | ("crm:E33_Linguistic_Object" & ["cito:Citation", "crm:E73_Information_Object"]) | ("crm:E33_Linguistic_Object" & ["crm:E28_Conceptual_Object", "wikidata:Q15831596"]) | ("crm:E33_Linguistic_Object" & ["fabio:Correction", "crm:E33_Linguistic_Object"]) | ("crm:E33_Linguistic_Object" & ["xsd:date", "crm:E52_Time-Span"]) | ("crm:E33_Linguistic_Object" & ["crm:E55_Type", "crmdig:D1_Digital_Object"]) | ("crm:E33_Linguistic_Object" & ["crm:E55_Type", "crm:E33_Linguistic_Object"]) | ("crm:E33_Linguistic_Object" & ["foaf:Organization", "crm:E74_Group" | "crm:E89_Propositional_Object"]) | ("crm:E33_Linguistic_Object" & ["Person", "crm:E21_Person" | "crm:E89_Propositional_Object"]) | ("crm:E33_Linguistic_Object" & ["crm:E18_Physical_Thing", "wikidata:Q15831596"]) | ("crm:E33_Linguistic_Object" & ["cwrc:place", "crm:E89_Propositional_Object"]) | ("crm:E33_Linguistic_Object" & ["crm:E89_Propositional_Object", "frbroo:F1" | "wikidata:Q15306849"]) | (["fabio:Correction", "crm:E33_Linguistic_Object"] & "crm:E28_Conceptual_Object") | (["fabio:Correction", "crm:E33_Linguistic_Object"] & "crm:E33_Linguistic_Object") | (["fabio:Correction", "crm:E33_Linguistic_Object"] & "crmdig:D1_Digital_Object") | (["fabio:Correction", "crm:E33_Linguistic_Object"] & "crm:E18_Physical_Thing") | (["fabio:Correction", "crm:E33_Linguistic_Object"] & "cwrc:place") | (["xsd:date", "crm:E52_Time-Span"] & "crm:E28_Conceptual_Object") | (["xsd:date", "crm:E52_Time-Span"] & "crm:E33_Linguistic_Object") | (["xsd:date", "crm:E52_Time-Span"] & "crmdig:D1_Digital_Object") | (["xsd:date", "crm:E52_Time-Span"] & "crm:E18_Physical_Thing") | (["xsd:date", "crm:E52_Time-Span"] & "cwrc:place") | ("crmdig:D1_Digital_Object" & ["cito:Citation", "crm:E73_Information_Object"]) | ("crmdig:D1_Digital_Object" & ["crm:E28_Conceptual_Object", "wikidata:Q15831596"]) | ("crmdig:D1_Digital_Object" & ["fabio:Correction", "crm:E33_Linguistic_Object"]) | ("crmdig:D1_Digital_Object" & ["xsd:date", "crm:E52_Time-Span"]) | ("crmdig:D1_Digital_Object" & ["crm:E55_Type", "crmdig:D1_Digital_Object"]) | ("crmdig:D1_Digital_Object" & ["crm:E55_Type", "crm:E33_Linguistic_Object"]) | ("crmdig:D1_Digital_Object" & ["foaf:Organization", "crm:E74_Group" | "crm:E89_Propositional_Object"]) | ("crmdig:D1_Digital_Object" & ["Person", "crm:E21_Person" | "crm:E89_Propositional_Object"]) | ("crmdig:D1_Digital_Object" & ["crm:E18_Physical_Thing", "wikidata:Q15831596"]) | ("crmdig:D1_Digital_Object" & ["cwrc:place", "crm:E89_Propositional_Object"]) | ("crmdig:D1_Digital_Object" & ["crm:E89_Propositional_Object", "frbroo:F1" | "wikidata:Q15306849"]) | (["crm:E55_Type", "crmdig:D1_Digital_Object"] & "crm:E28_Conceptual_Object") | (["crm:E55_Type", "crmdig:D1_Digital_Object"] & "crm:E33_Linguistic_Object") | (["crm:E55_Type", "crmdig:D1_Digital_Object"] & "crmdig:D1_Digital_Object") | (["crm:E55_Type", "crmdig:D1_Digital_Object"] & "crm:E18_Physical_Thing") | (["crm:E55_Type", "crmdig:D1_Digital_Object"] & "cwrc:place") | (["crm:E55_Type", "crm:E33_Linguistic_Object"] & "crm:E28_Conceptual_Object") | (["crm:E55_Type", "crm:E33_Linguistic_Object"] & "crm:E33_Linguistic_Object") | (["crm:E55_Type", "crm:E33_Linguistic_Object"] & "crmdig:D1_Digital_Object") | (["crm:E55_Type", "crm:E33_Linguistic_Object"] & "crm:E18_Physical_Thing") | (["crm:E55_Type", "crm:E33_Linguistic_Object"] & "cwrc:place") | (["foaf:Organization", "crm:E74_Group" | "crm:E89_Propositional_Object"] & "crm:E28_Conceptual_Object") | (["foaf:Organization", "crm:E74_Group" | "crm:E89_Propositional_Object"] & "crm:E33_Linguistic_Object") | (["foaf:Organization", "crm:E74_Group" | "crm:E89_Propositional_Object"] & "crmdig:D1_Digital_Object") | (["foaf:Organization", "crm:E74_Group" | "crm:E89_Propositional_Object"] & "crm:E18_Physical_Thing") | (["foaf:Organization", "crm:E74_Group" | "crm:E89_Propositional_Object"] & "cwrc:place") | (["Person", "crm:E21_Person" | "crm:E89_Propositional_Object"] & "crm:E28_Conceptual_Object") | (["Person", "crm:E21_Person" | "crm:E89_Propositional_Object"] & "crm:E33_Linguistic_Object") | (["Person", "crm:E21_Person" | "crm:E89_Propositional_Object"] & "crmdig:D1_Digital_Object") | (["Person", "crm:E21_Person" | "crm:E89_Propositional_Object"] & "crm:E18_Physical_Thing") | (["Person", "crm:E21_Person" | "crm:E89_Propositional_Object"] & "cwrc:place") | ("crm:E18_Physical_Thing" & ["cito:Citation", "crm:E73_Information_Object"]) | ("crm:E18_Physical_Thing" & ["crm:E28_Conceptual_Object", "wikidata:Q15831596"]) | ("crm:E18_Physical_Thing" & ["fabio:Correction", "crm:E33_Linguistic_Object"]) | ("crm:E18_Physical_Thing" & ["xsd:date", "crm:E52_Time-Span"]) | ("crm:E18_Physical_Thing" & ["crm:E55_Type", "crmdig:D1_Digital_Object"]) | ("crm:E18_Physical_Thing" & ["crm:E55_Type", "crm:E33_Linguistic_Object"]) | ("crm:E18_Physical_Thing" & ["foaf:Organization", "crm:E74_Group" | "crm:E89_Propositional_Object"]) | ("crm:E18_Physical_Thing" & ["Person", "crm:E21_Person" | "crm:E89_Propositional_Object"]) | ("crm:E18_Physical_Thing" & ["cwrc:place", "crm:E89_Propositional_Object"]) | ("crm:E18_Physical_Thing" & ["crm:E89_Propositional_Object", "frbroo:F1" | "wikidata:Q15306849"]) | (["crm:E18_Physical_Thing", "wikidata:Q15831596"] & "crm:E28_Conceptual_Object") | (["crm:E18_Physical_Thing", "wikidata:Q15831596"] & "crm:E33_Linguistic_Object") | (["crm:E18_Physical_Thing", "wikidata:Q15831596"] & "crmdig:D1_Digital_Object") | (["crm:E18_Physical_Thing", "wikidata:Q15831596"] & "cwrc:place") | ("cwrc:place" & ["cito:Citation", "crm:E73_Information_Object"]) | ("cwrc:place" & ["crm:E28_Conceptual_Object", "wikidata:Q15831596"]) | ("cwrc:place" & ["fabio:Correction", "crm:E33_Linguistic_Object"]) | ("cwrc:place" & ["xsd:date", "crm:E52_Time-Span"]) | ("cwrc:place" & ["crm:E55_Type", "crmdig:D1_Digital_Object"]) | ("cwrc:place" & ["crm:E55_Type", "crm:E33_Linguistic_Object"]) | ("cwrc:place" & ["foaf:Organization", "crm:E74_Group" | "crm:E89_Propositional_Object"]) | ("cwrc:place" & ["Person", "crm:E21_Person" | "crm:E89_Propositional_Object"]) | ("cwrc:place" & ["crm:E18_Physical_Thing", "wikidata:Q15831596"]) | ("cwrc:place" & ["crm:E89_Propositional_Object", "frbroo:F1" | "wikidata:Q15306849"]) | (["cwrc:place", "crm:E89_Propositional_Object"] & "crm:E28_Conceptual_Object") | (["cwrc:place", "crm:E89_Propositional_Object"] & "crm:E33_Linguistic_Object") | (["cwrc:place", "crm:E89_Propositional_Object"] & "crmdig:D1_Digital_Object") | (["cwrc:place", "crm:E89_Propositional_Object"] & "crm:E18_Physical_Thing") | (["crm:E89_Propositional_Object", "frbroo:F1" | "wikidata:Q15306849"] & "crm:E28_Conceptual_Object") | (["crm:E89_Propositional_Object", "frbroo:F1" | "wikidata:Q15306849"] & "crm:E33_Linguistic_Object") | (["crm:E89_Propositional_Object", "frbroo:F1" | "wikidata:Q15306849"] & "crmdig:D1_Digital_Object") | (["crm:E89_Propositional_Object", "frbroo:F1" | "wikidata:Q15306849"] & "crm:E18_Physical_Thing") | (["crm:E89_Propositional_Object", "frbroo:F1" | "wikidata:Q15306849"] & "cwrc:place");
117
+ type?: "TextualBody" | undefined;
118
+ additionalType?: string | string[] | undefined;
119
+ value?: string | undefined;
120
+ certainty?: "edit:qualityLow" | "edit:qualityMedium" | "edit:qualityHigh" | "edit:qualityUnknown" | undefined;
121
+ precision?: "edit:qualityLow" | "edit:qualityMedium" | "edit:qualityHigh" | "edit:qualityUnknown" | undefined;
122
+ label?: string | undefined;
123
+ description?: string | undefined;
124
+ };
125
+ '@context': ["http://www.w3.org/ns/anno.jsonld", "https://wa.lincsproject.ca/v1/ns/anno.jsonld"];
126
+ motivation: ["identifying" | "describing" | "correcting" | "tagging" | "classifying" | "linking" | "citing", "crm:E33_Linguistic_Object"];
127
+ created: string;
128
+ generator: {
129
+ type: ["Software", "crm:P16_used_specific_object"];
130
+ id: string;
131
+ label: string;
132
+ softwareVersion?: string | undefined;
133
+ };
134
+ modified?: string | undefined;
135
+ contributor?: [{
136
+ type: "crm:E21_Person";
137
+ id: string;
138
+ name: string;
139
+ }, ...{
140
+ type: "crm:E21_Person";
141
+ id: string;
142
+ name: string;
143
+ }[]] | undefined;
144
+ }>>;
145
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAG7B,eAAO,MAAM,GAAG,iCAGqC,CAAC;AAItD,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAAmC,CAAC"}
package/lib/index.js ADDED
@@ -0,0 +1,13 @@
1
+ import Ajv from 'ajv';
2
+ import addFormats from 'ajv-formats';
3
+ import { definitionSchema, webAnnotationSchema } from './schema';
4
+ export * from './schema';
5
+ export * from './validation';
6
+ //* Create and Compile Validator
7
+ export const ajv = new Ajv({
8
+ code: { source: true },
9
+ allErrors: true,
10
+ }).addSchema([webAnnotationSchema, definitionSchema]);
11
+ addFormats(ajv);
12
+ export const validator = ajv.compile(webAnnotationSchema);
13
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,UAAU,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAEjE,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAE7B,gCAAgC;AAChC,MAAM,CAAC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC;IACzB,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;IACtB,SAAS,EAAE,IAAI;CAChB,CAAC,CAAC,SAAS,CAAC,CAAC,mBAAmB,EAAE,gBAAgB,CAAC,CAAC,CAAC;AAEtD,UAAU,CAAC,GAAG,CAAC,CAAC;AAEhB,MAAM,CAAC,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC"}
@@ -0,0 +1,4 @@
1
+ export declare const contextUri = "https://wa.lincsproject.ca/v1/ns/anno.jsonld";
2
+ export declare const schemaId = "https://wa.lincsproject.ca/v1/schema.jsonld";
3
+ export declare const defsId = "https://wa.lincsproject.ca/v1/defs.jsonld";
4
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/schema/config.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU,iDAAiD,CAAC;AACzE,eAAO,MAAM,QAAQ,gDAAgD,CAAA;AACrE,eAAO,MAAM,MAAM,8CAA8C,CAAC"}
@@ -0,0 +1,4 @@
1
+ export const contextUri = 'https://wa.lincsproject.ca/v1/ns/anno.jsonld';
2
+ export const schemaId = 'https://wa.lincsproject.ca/v1/schema.jsonld';
3
+ export const defsId = 'https://wa.lincsproject.ca/v1/defs.jsonld';
4
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/schema/config.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,UAAU,GAAG,8CAA8C,CAAC;AACzE,MAAM,CAAC,MAAM,QAAQ,GAAG,6CAA6C,CAAA;AACrE,MAAM,CAAC,MAAM,MAAM,GAAG,2CAA2C,CAAC"}
@@ -0,0 +1,25 @@
1
+ export declare const schemaContext: {
2
+ bf: string;
3
+ cito: string;
4
+ cwrc: string;
5
+ edit: string;
6
+ fabio: string;
7
+ frbroo: string;
8
+ wikidata: string;
9
+ crm: string;
10
+ crmdig: string;
11
+ certainty: string;
12
+ contributor: string;
13
+ description: string;
14
+ precision: string;
15
+ softwareVersion: string;
16
+ status: string;
17
+ entityType: string;
18
+ addicionalType: string;
19
+ approved: string;
20
+ citing: string;
21
+ correcting: string;
22
+ draft: string;
23
+ published: string;
24
+ };
25
+ //# sourceMappingURL=context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/schema/context.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;CA0BzB,CAAC"}
@@ -0,0 +1,25 @@
1
+ export const schemaContext = {
2
+ bf: 'http://www.openlinksw.com/schemas/bif#',
3
+ cito: 'https://sparontologies.github.io/cito/current/cito.html#',
4
+ cwrc: 'http://id.lincsproject.ca/cwrc#',
5
+ edit: 'http://id.lincsproject.ca/edit/#',
6
+ fabio: 'https://purl.org/spar/fabio#',
7
+ frbroo: 'https://www.iflastandards.info/fr/frbr/frbroo#',
8
+ wikidata: 'https://www.wikidata.org/wiki/',
9
+ crm: 'http://www.cidoc-crm.org/cidoc-crm/',
10
+ crmdig: 'http://www.ics.forth.gr/isl/CRMdig/',
11
+ certainty: 'crm:P2_has_type',
12
+ contributor: 'dcterms:contributor',
13
+ description: 'rdfs:comment',
14
+ precision: 'crm:P2_has_type',
15
+ softwareVersion: 'schema:softwareVersion',
16
+ status: 'crm:P2_has_type',
17
+ entityType: 'crm:P2_has_type',
18
+ addicionalType: 'crm:P2_has_type',
19
+ approved: 'edit:statusApproved',
20
+ citing: 'edit:citing',
21
+ correcting: 'edit:correcting',
22
+ draft: 'edit:statusDraft',
23
+ published: 'edit:statusPublished',
24
+ };
25
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/schema/context.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,EAAE,EAAE,wCAAwC;IAC5C,IAAI,EAAE,0DAA0D;IAChE,IAAI,EAAE,iCAAiC;IACvC,IAAI,EAAE,kCAAkC;IACxC,KAAK,EAAE,8BAA8B;IACrC,MAAM,EAAE,gDAAgD;IACxD,QAAQ,EAAE,gCAAgC;IAC1C,GAAG,EAAE,qCAAqC;IAC1C,MAAM,EAAE,qCAAqC;IAE7C,SAAS,EAAE,iBAAiB;IAC5B,WAAW,EAAE,qBAAqB;IAClC,WAAW,EAAE,cAAc;IAC3B,SAAS,EAAE,iBAAiB;IAC5B,eAAe,EAAE,wBAAwB;IACzC,MAAM,EAAE,iBAAiB;IAEzB,UAAU,EAAE,iBAAiB;IAC7B,cAAc,EAAE,iBAAiB;IAEjC,QAAQ,EAAE,qBAAqB;IAC/B,MAAM,EAAE,aAAa;IACrB,UAAU,EAAE,iBAAiB;IAC7B,KAAK,EAAE,kBAAkB;IACzB,SAAS,EAAE,sBAAsB;CAClC,CAAC"}
@@ -0,0 +1,36 @@
1
+ import { JSONSchemaType } from 'ajv';
2
+ import { z } from 'zod';
3
+ export declare const User: z.ZodObject<{
4
+ id: z.ZodUnion<[z.ZodString, z.ZodLiteral<"anonymous">]>;
5
+ type: z.ZodLiteral<"crm:E21_Person">;
6
+ name: z.ZodString;
7
+ }, "strip", z.ZodTypeAny, {
8
+ type: "crm:E21_Person";
9
+ id: string;
10
+ name: string;
11
+ }, {
12
+ type: "crm:E21_Person";
13
+ id: string;
14
+ name: string;
15
+ }>;
16
+ export type User = z.infer<typeof User>;
17
+ export declare const creatorSchema: JSONSchemaType<User>;
18
+ export declare const Software: z.ZodObject<{
19
+ id: z.ZodString;
20
+ type: z.ZodTuple<[z.ZodLiteral<"Software">, z.ZodLiteral<"crm:P16_used_specific_object">], null>;
21
+ label: z.ZodString;
22
+ softwareVersion: z.ZodOptional<z.ZodString>;
23
+ }, "strip", z.ZodTypeAny, {
24
+ type: ["Software", "crm:P16_used_specific_object"];
25
+ id: string;
26
+ label: string;
27
+ softwareVersion?: string | undefined;
28
+ }, {
29
+ type: ["Software", "crm:P16_used_specific_object"];
30
+ id: string;
31
+ label: string;
32
+ softwareVersion?: string | undefined;
33
+ }>;
34
+ export type Software = z.infer<typeof Software>;
35
+ export declare const softwareSchema: JSONSchemaType<Required<Software>>;
36
+ //# sourceMappingURL=agent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../../src/schema/definitions/agent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AACrC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAYxB,eAAO,MAAM,IAAI;;;;;;;;;;;;EAQS,CAAC;AAE3B,MAAM,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;AAIxC,eAAO,MAAM,aAAa,EAAE,cAAc,CAAC,IAAI,CAe9C,CAAC;AAeF,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;EAYQ,CAAC;AAE9B,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,QAAQ,CAAC,CAAC;AAIhD,eAAO,MAAM,cAAc,EAAE,cAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAuB7D,CAAC"}
@@ -0,0 +1,82 @@
1
+ import { z } from 'zod';
2
+ // * Pure Typescript Type - Just for reference
3
+ // export interface User {
4
+ // id: string;
5
+ // type: 'crm:E21_Person';
6
+ // name: string;
7
+ // }
8
+ // * Type using Zod & Inference
9
+ export const User = z
10
+ .object({
11
+ id: z
12
+ .union([z.string().url({ message: 'Must be an URI' }), z.literal('anonymous')])
13
+ .describe('The IRI that identifies the agent (Creator or Contributor).'),
14
+ type: z.literal('crm:E21_Person').describe('The type of the Agent.'),
15
+ name: z.string().nonempty({ message: 'Cannot be empty' }).describe('The name of the agent.'),
16
+ })
17
+ .describe('Human Agent');
18
+ // * JSONSchema
19
+ export const creatorSchema = {
20
+ type: 'object',
21
+ description: 'Software Agent',
22
+ properties: {
23
+ id: {
24
+ anyOf: [
25
+ { type: 'string', format: 'uri' },
26
+ { type: 'string', const: 'anonymous' },
27
+ ],
28
+ description: 'The URI that identifies the agent (Creator or Contributor).',
29
+ },
30
+ type: { type: 'string', const: 'crm:E21_Person' },
31
+ name: { type: 'string', minLength: 1, description: 'The name of the agent.' },
32
+ },
33
+ required: ['id', 'type', 'name'],
34
+ };
35
+ //** -------------- */
36
+ // * Pure Typescript Type - Just for reference
37
+ // export interface Software {
38
+ // id: string;
39
+ // type: ['Software', 'crm:P16_used_specific_object'];
40
+ // label: string;
41
+ // softwareVersion?: string;
42
+ // }
43
+ // * Type using Zod & Inference
44
+ export const Software = z
45
+ .object({
46
+ id: z
47
+ .string()
48
+ .url({ message: 'Must be an URI' })
49
+ .describe('The IRI that identifies the agent (software).'),
50
+ type: z
51
+ .tuple([z.literal('Software'), z.literal('crm:P16_used_specific_object')])
52
+ .describe('The type of the Agent.'),
53
+ label: z.string().nonempty().describe('The name of the software.'),
54
+ softwareVersion: z.string().optional().describe('The software version.'),
55
+ })
56
+ .describe('Software Agent');
57
+ // * JSONSchema
58
+ export const softwareSchema = {
59
+ type: 'object',
60
+ description: 'Software Agent',
61
+ properties: {
62
+ id: {
63
+ type: 'string',
64
+ format: 'uri',
65
+ description: 'The IRI that identifies the agent (software).',
66
+ },
67
+ type: {
68
+ type: 'array',
69
+ minItems: 2,
70
+ maxItems: 2,
71
+ items: [
72
+ { type: 'string', const: 'Software' },
73
+ { type: 'string', const: 'crm:P16_used_specific_object' },
74
+ ],
75
+ description: 'The type of the Agent.',
76
+ },
77
+ label: { type: 'string', minLength: 1, description: 'The name of the software.' },
78
+ softwareVersion: { type: 'string', description: 'The software version.' },
79
+ },
80
+ required: ['id', 'type', 'label'],
81
+ };
82
+ //# sourceMappingURL=agent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../../src/schema/definitions/agent.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ import { JSONSchemaType } from 'ajv';
2
+ import { z } from 'zod';
3
+ export declare const CitationEntityType: z.ZodTuple<[z.ZodLiteral<"cito:Citation">, z.ZodLiteral<"crm:E73_Information_Object">], null>;
4
+ export type CitationEntityType = z.infer<typeof CitationEntityType>;
5
+ export declare const Citation: z.ZodObject<{
6
+ id: z.ZodString;
7
+ entityType: z.ZodTuple<[z.ZodLiteral<"cito:Citation">, z.ZodLiteral<"crm:E73_Information_Object">], null>;
8
+ certainty: z.ZodOptional<z.ZodEnum<["edit:qualityLow", "edit:qualityMedium", "edit:qualityHigh", "edit:qualityUnknown"]>>;
9
+ label: z.ZodOptional<z.ZodString>;
10
+ description: z.ZodOptional<z.ZodString>;
11
+ }, "strip", z.ZodTypeAny, {
12
+ id: string;
13
+ entityType: ["cito:Citation", "crm:E73_Information_Object"];
14
+ certainty?: "edit:qualityLow" | "edit:qualityMedium" | "edit:qualityHigh" | "edit:qualityUnknown" | undefined;
15
+ label?: string | undefined;
16
+ description?: string | undefined;
17
+ }, {
18
+ id: string;
19
+ entityType: ["cito:Citation", "crm:E73_Information_Object"];
20
+ certainty?: "edit:qualityLow" | "edit:qualityMedium" | "edit:qualityHigh" | "edit:qualityUnknown" | undefined;
21
+ label?: string | undefined;
22
+ description?: string | undefined;
23
+ }>;
24
+ export type Citation = z.infer<typeof Citation>;
25
+ export declare const citationEntityTypeSchema: JSONSchemaType<CitationEntityType>;
26
+ export declare const citationSchema: JSONSchemaType<Citation>;
27
+ //# sourceMappingURL=citation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"citation.d.ts","sourceRoot":"","sources":["../../../../src/schema/definitions/body/citation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AACrC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAexB,eAAO,MAAM,kBAAkB,+FAG7B,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAIpE,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;EAWE,CAAC;AAExB,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,QAAQ,CAAC,CAAC;AAIhD,eAAO,MAAM,wBAAwB,EAAE,cAAc,CAAC,kBAAkB,CAQvE,CAAC;AAIF,eAAO,MAAM,cAAc,EAAE,cAAc,CAAC,QAAQ,CAYnD,CAAC"}
@@ -0,0 +1,53 @@
1
+ import { z } from 'zod';
2
+ import { Certainty, Description, Label } from './common';
3
+ // * Pure Typescript Type - Just for reference
4
+ // export interface Citation {
5
+ // id: string;
6
+ // entityType: ['cito:Citation', 'crm:E73_Information_Object'];
7
+ // certainty?: string;
8
+ // label?: string;
9
+ // description?: string;
10
+ // }
11
+ // * Property: entityType - Type using Zod & Inference
12
+ export const CitationEntityType = z.tuple([
13
+ z.literal('cito:Citation'),
14
+ z.literal('crm:E73_Information_Object'),
15
+ ]);
16
+ // * Type using Zod & Inference
17
+ export const Citation = z
18
+ .object({
19
+ id: z
20
+ .string()
21
+ .url({ message: 'Must be an URI' })
22
+ .describe('The IRI that identifies the Body resource.'),
23
+ entityType: z.tuple([z.literal('cito:Citation'), z.literal('crm:E73_Information_Object')]),
24
+ certainty: Certainty.optional(),
25
+ label: Label.optional(),
26
+ description: Description.optional(),
27
+ })
28
+ .describe('Citation');
29
+ // * JSONSchema - entityType
30
+ export const citationEntityTypeSchema = {
31
+ type: 'array',
32
+ minItems: 2,
33
+ maxItems: 2,
34
+ items: [
35
+ { type: 'string', const: 'cito:Citation' },
36
+ { type: 'string', const: 'crm:E73_Information_Object' },
37
+ ],
38
+ };
39
+ // * JSONSchema
40
+ export const citationSchema = {
41
+ type: 'object',
42
+ description: 'A citation entity',
43
+ properties: {
44
+ id: { type: 'string', format: 'uri', description: 'The IRI that identifies the Body resource' },
45
+ entityType: citationEntityTypeSchema,
46
+ certainty: { $ref: 'defs.jsonld#/definitions/certainty' },
47
+ label: { $ref: 'defs.jsonld#/definitions/label' },
48
+ description: { $ref: 'defs.jsonld#/definitions/description' },
49
+ },
50
+ required: ['id', 'entityType'],
51
+ // errorMessage: { properties: { id: 'Must be an URI' } },
52
+ };
53
+ //# sourceMappingURL=citation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"citation.js","sourceRoot":"","sources":["../../../../src/schema/definitions/body/citation.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAEzD,8CAA8C;AAE9C,8BAA8B;AAC9B,gBAAgB;AAChB,iEAAiE;AACjE,wBAAwB;AACxB,oBAAoB;AACpB,0BAA0B;AAC1B,IAAI;AAEJ,sDAAsD;AAEtD,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC;IACxC,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC;IAC1B,CAAC,CAAC,OAAO,CAAC,4BAA4B,CAAC;CACxC,CAAC,CAAC;AAIH,+BAA+B;AAE/B,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC;KACtB,MAAM,CAAC;IACN,EAAE,EAAE,CAAC;SACF,MAAM,EAAE;SACR,GAAG,CAAC,EAAE,OAAO,EAAE,gBAAgB,EAAE,CAAC;SAClC,QAAQ,CAAC,4CAA4C,CAAC;IACzD,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC,CAAC;IAC1F,SAAS,EAAE,SAAS,CAAC,QAAQ,EAAE;IAC/B,KAAK,EAAE,KAAK,CAAC,QAAQ,EAAE;IACvB,WAAW,EAAE,WAAW,CAAC,QAAQ,EAAE;CACpC,CAAC;KACD,QAAQ,CAAC,UAAU,CAAC,CAAC;AAIxB,4BAA4B;AAE5B,MAAM,CAAC,MAAM,wBAAwB,GAAuC;IAC1E,IAAI,EAAE,OAAO;IACb,QAAQ,EAAE,CAAC;IACX,QAAQ,EAAE,CAAC;IACX,KAAK,EAAE;QACL,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,eAAe,EAAE;QAC1C,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,4BAA4B,EAAE;KACxD;CACF,CAAC;AAEF,eAAe;AAEf,MAAM,CAAC,MAAM,cAAc,GAA6B;IACtD,IAAI,EAAE,QAAQ;IACd,WAAW,EAAE,mBAAmB;IAChC,UAAU,EAAE;QACV,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,2CAA2C,EAAE;QAC/F,UAAU,EAAE,wBAAwB;QACpC,SAAS,EAAE,EAAE,IAAI,EAAE,oCAAoC,EAAE;QACzD,KAAK,EAAE,EAAE,IAAI,EAAE,gCAAgC,EAAE;QACjD,WAAW,EAAE,EAAE,IAAI,EAAE,sCAAsC,EAAE;KAC9D;IACD,QAAQ,EAAE,CAAC,IAAI,EAAE,YAAY,CAAC;IAC9B,0DAA0D;CAC3D,CAAC"}
@@ -0,0 +1,17 @@
1
+ import { JSONSchemaType } from 'ajv';
2
+ import { z } from 'zod';
3
+ export declare const Quality: readonly ["edit:qualityLow", "edit:qualityMedium", "edit:qualityHigh", "edit:qualityUnknown"];
4
+ export type Quality = (typeof Quality)[number];
5
+ export declare const Certainty: z.ZodEnum<["edit:qualityLow", "edit:qualityMedium", "edit:qualityHigh", "edit:qualityUnknown"]>;
6
+ export type Certainty = z.infer<typeof Certainty>;
7
+ export declare const certaintySchema: JSONSchemaType<Certainty>;
8
+ export declare const Precision: z.ZodEnum<["edit:qualityLow", "edit:qualityMedium", "edit:qualityHigh", "edit:qualityUnknown"]>;
9
+ export type Precision = z.infer<typeof Precision>;
10
+ export declare const precisionSchema: JSONSchemaType<Quality>;
11
+ export declare const Label: z.ZodString;
12
+ export type Label = z.infer<typeof Label>;
13
+ export declare const labelSchema: JSONSchemaType<Label>;
14
+ export declare const Description: z.ZodString;
15
+ export type Description = z.infer<typeof Description>;
16
+ export declare const descriptionSchema: JSONSchemaType<Description>;
17
+ //# sourceMappingURL=common.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../../src/schema/definitions/body/common.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AACrC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,OAAO,+FAKV,CAAC;AAEX,MAAM,MAAM,OAAO,GAAG,CAAC,OAAO,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC;AAI/C,eAAO,MAAM,SAAS,iGAInB,CAAC;AAEJ,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,SAAS,CAAC,CAAC;AAElD,eAAO,MAAM,eAAe,EAAE,cAAc,CAAC,SAAS,CAKrD,CAAC;AAKF,eAAO,MAAM,SAAS,iGAInB,CAAC;AAEJ,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,SAAS,CAAC,CAAC;AAElD,eAAO,MAAM,eAAe,EAAE,cAAc,CAAC,OAAO,CAKnD,CAAC;AAIF,eAAO,MAAM,KAAK,aAGoD,CAAC;AAEvE,MAAM,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,KAAK,CAAC,CAAC;AAE1C,eAAO,MAAM,WAAW,EAAE,cAAc,CAAC,KAAK,CAI7C,CAAC;AAIF,eAAO,MAAM,WAAW,aAEiD,CAAC;AAE1E,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AAEtD,eAAO,MAAM,iBAAiB,EAAE,cAAc,CAAC,WAAW,CAGzD,CAAC"}
@@ -0,0 +1,46 @@
1
+ import { z } from 'zod';
2
+ //* -------------------
3
+ export const Quality = [
4
+ 'edit:qualityLow',
5
+ 'edit:qualityMedium',
6
+ 'edit:qualityHigh',
7
+ 'edit:qualityUnknown',
8
+ ];
9
+ //* -------------------
10
+ export const Certainty = z
11
+ .enum(Quality)
12
+ .describe('Indicates the degree of certainty associated with some aspect of an assertion, description, identification, or entity linked to the annotation body.');
13
+ export const certaintySchema = {
14
+ type: 'string',
15
+ enum: Quality,
16
+ description: 'Indicates the degree of certainty associated with some aspect of an assertion, description, identification, or entity linked to the annotation body.',
17
+ };
18
+ //* -------------------
19
+ // export type Precision = Quality;
20
+ export const Precision = z
21
+ .enum(Quality)
22
+ .describe('Indicates the degree of precision associated with the location of the entity linked to the annotation body.');
23
+ export const precisionSchema = {
24
+ type: 'string',
25
+ enum: Quality,
26
+ description: 'Indicates the degree of precision associated with the location of the entity linked to the annotation body.',
27
+ };
28
+ //* -------------------
29
+ export const Label = z
30
+ .string()
31
+ .nonempty({ message: 'The label cannot be empty' })
32
+ .describe('The title or name of a linked resource or named entity.');
33
+ export const labelSchema = {
34
+ type: 'string',
35
+ minLength: 1,
36
+ description: 'The title or name of a linked resource or named entity.',
37
+ };
38
+ //* -------------------
39
+ export const Description = z
40
+ .string()
41
+ .describe('Short description of the linked resources or named entity.');
42
+ export const descriptionSchema = {
43
+ type: 'string',
44
+ description: 'Short description of the linked resources or named entity.',
45
+ };
46
+ //# sourceMappingURL=common.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.js","sourceRoot":"","sources":["../../../../src/schema/definitions/body/common.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,uBAAuB;AAEvB,MAAM,CAAC,MAAM,OAAO,GAAG;IACrB,iBAAiB;IACjB,oBAAoB;IACpB,kBAAkB;IAClB,qBAAqB;CACb,CAAC;AAIX,uBAAuB;AAEvB,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC;KACvB,IAAI,CAAC,OAAO,CAAC;KACb,QAAQ,CACP,sJAAsJ,CACvJ,CAAC;AAIJ,MAAM,CAAC,MAAM,eAAe,GAA8B;IACxD,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,OAAO;IACb,WAAW,EACT,sJAAsJ;CACzJ,CAAC;AAEF,uBAAuB;AAEvB,mCAAmC;AACnC,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC;KACvB,IAAI,CAAC,OAAO,CAAC;KACb,QAAQ,CACP,6GAA6G,CAC9G,CAAC;AAIJ,MAAM,CAAC,MAAM,eAAe,GAA4B;IACtD,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,OAAO;IACb,WAAW,EACT,6GAA6G;CAChH,CAAC;AAEF,uBAAuB;AAEvB,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC;KACnB,MAAM,EAAE;KACR,QAAQ,CAAC,EAAE,OAAO,EAAE,2BAA2B,EAAE,CAAC;KAClD,QAAQ,CAAC,yDAAyD,CAAC,CAAC;AAIvE,MAAM,CAAC,MAAM,WAAW,GAA0B;IAChD,IAAI,EAAE,QAAQ;IACd,SAAS,EAAE,CAAC;IACZ,WAAW,EAAE,yDAAyD;CACvE,CAAC;AAEF,uBAAuB;AAEvB,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC;KACzB,MAAM,EAAE;KACR,QAAQ,CAAC,4DAA4D,CAAC,CAAC;AAI1E,MAAM,CAAC,MAAM,iBAAiB,GAAgC;IAC5D,IAAI,EAAE,QAAQ;IACd,WAAW,EAAE,4DAA4D;CAC1E,CAAC"}
@@ -0,0 +1,27 @@
1
+ import { JSONSchemaType } from 'ajv';
2
+ import { z } from 'zod';
3
+ export declare const ConceptualObjectEntityType: z.ZodUnion<[z.ZodLiteral<"crm:E28_Conceptual_Object">, z.ZodTuple<[z.ZodLiteral<"crm:E28_Conceptual_Object">, z.ZodLiteral<"wikidata:Q15831596">], null>]>;
4
+ export type ConceptualObjectEntityType = z.infer<typeof ConceptualObjectEntityType>;
5
+ export declare const ConceptualObject: z.ZodObject<{
6
+ id: z.ZodString;
7
+ entityType: z.ZodUnion<[z.ZodLiteral<"crm:E28_Conceptual_Object">, z.ZodTuple<[z.ZodLiteral<"crm:E28_Conceptual_Object">, z.ZodLiteral<"wikidata:Q15831596">], null>]>;
8
+ certainty: z.ZodOptional<z.ZodEnum<["edit:qualityLow", "edit:qualityMedium", "edit:qualityHigh", "edit:qualityUnknown"]>>;
9
+ label: z.ZodOptional<z.ZodString>;
10
+ description: z.ZodOptional<z.ZodString>;
11
+ }, "strip", z.ZodTypeAny, {
12
+ id: string;
13
+ entityType: ("crm:E28_Conceptual_Object" | ["crm:E28_Conceptual_Object", "wikidata:Q15831596"]) & ("crm:E28_Conceptual_Object" | ["crm:E28_Conceptual_Object", "wikidata:Q15831596"] | undefined);
14
+ certainty?: "edit:qualityLow" | "edit:qualityMedium" | "edit:qualityHigh" | "edit:qualityUnknown" | undefined;
15
+ label?: string | undefined;
16
+ description?: string | undefined;
17
+ }, {
18
+ id: string;
19
+ entityType: ("crm:E28_Conceptual_Object" | ["crm:E28_Conceptual_Object", "wikidata:Q15831596"]) & ("crm:E28_Conceptual_Object" | ["crm:E28_Conceptual_Object", "wikidata:Q15831596"] | undefined);
20
+ certainty?: "edit:qualityLow" | "edit:qualityMedium" | "edit:qualityHigh" | "edit:qualityUnknown" | undefined;
21
+ label?: string | undefined;
22
+ description?: string | undefined;
23
+ }>;
24
+ export type ConceptualObject = z.infer<typeof ConceptualObject>;
25
+ export declare const conceptualObjectEntityTypeSchema: JSONSchemaType<ConceptualObjectEntityType>;
26
+ export declare const conceptualObjectSchema: JSONSchemaType<ConceptualObject>;
27
+ //# sourceMappingURL=conceptualObject.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conceptualObject.d.ts","sourceRoot":"","sources":["../../../../src/schema/definitions/body/conceptualObject.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AACrC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAexB,eAAO,MAAM,0BAA0B,4JAMrC,CAAC;AAEH,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAIpF,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;EAWG,CAAC;AAEjC,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAIhE,eAAO,MAAM,gCAAgC,EAAE,cAAc,CAAC,0BAA0B,CAavF,CAAC;AAIF,eAAO,MAAM,sBAAsB,EAAE,cAAc,CAAC,gBAAgB,CAYnE,CAAC"}