@3sixty/auditable-item-graph-models 0.0.0-stage → 0.20.0-next.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 (201) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +26 -2
  3. package/dist/es/compiled/validators.js +1885 -0
  4. package/dist/es/compiled/validators.js.map +1 -0
  5. package/dist/es/dataTypes/auditableItemGraphDataTypes.js +103 -0
  6. package/dist/es/dataTypes/auditableItemGraphDataTypes.js.map +1 -0
  7. package/dist/es/index.js +43 -0
  8. package/dist/es/index.js.map +1 -0
  9. package/dist/es/models/IAuditableItemGraphAlias.js +2 -0
  10. package/dist/es/models/IAuditableItemGraphAlias.js.map +1 -0
  11. package/dist/es/models/IAuditableItemGraphAuditedElement.js +4 -0
  12. package/dist/es/models/IAuditableItemGraphAuditedElement.js.map +1 -0
  13. package/dist/es/models/IAuditableItemGraphChangeset.js +2 -0
  14. package/dist/es/models/IAuditableItemGraphChangeset.js.map +1 -0
  15. package/dist/es/models/IAuditableItemGraphChangesetList.js +2 -0
  16. package/dist/es/models/IAuditableItemGraphChangesetList.js.map +1 -0
  17. package/dist/es/models/IAuditableItemGraphComponent.js +2 -0
  18. package/dist/es/models/IAuditableItemGraphComponent.js.map +1 -0
  19. package/dist/es/models/IAuditableItemGraphEdge.js +2 -0
  20. package/dist/es/models/IAuditableItemGraphEdge.js.map +1 -0
  21. package/dist/es/models/IAuditableItemGraphListPatch.js +2 -0
  22. package/dist/es/models/IAuditableItemGraphListPatch.js.map +1 -0
  23. package/dist/es/models/IAuditableItemGraphPartialVertex.js +2 -0
  24. package/dist/es/models/IAuditableItemGraphPartialVertex.js.map +1 -0
  25. package/dist/es/models/IAuditableItemGraphPatchOperation.js +2 -0
  26. package/dist/es/models/IAuditableItemGraphPatchOperation.js.map +1 -0
  27. package/dist/es/models/IAuditableItemGraphResource.js +2 -0
  28. package/dist/es/models/IAuditableItemGraphResource.js.map +1 -0
  29. package/dist/es/models/IAuditableItemGraphVertex.js +2 -0
  30. package/dist/es/models/IAuditableItemGraphVertex.js.map +1 -0
  31. package/dist/es/models/IAuditableItemGraphVertexList.js +2 -0
  32. package/dist/es/models/IAuditableItemGraphVertexList.js.map +1 -0
  33. package/dist/es/models/IAuditableItemGraphVertexVersionList.js +2 -0
  34. package/dist/es/models/IAuditableItemGraphVertexVersionList.js.map +1 -0
  35. package/dist/es/models/api/IAuditableItemGraphChangesetGetRequest.js +2 -0
  36. package/dist/es/models/api/IAuditableItemGraphChangesetGetRequest.js.map +1 -0
  37. package/dist/es/models/api/IAuditableItemGraphChangesetGetResponse.js +2 -0
  38. package/dist/es/models/api/IAuditableItemGraphChangesetGetResponse.js.map +1 -0
  39. package/dist/es/models/api/IAuditableItemGraphChangesetListRequest.js +2 -0
  40. package/dist/es/models/api/IAuditableItemGraphChangesetListRequest.js.map +1 -0
  41. package/dist/es/models/api/IAuditableItemGraphChangesetListResponse.js +2 -0
  42. package/dist/es/models/api/IAuditableItemGraphChangesetListResponse.js.map +1 -0
  43. package/dist/es/models/api/IAuditableItemGraphCreateRequest.js +2 -0
  44. package/dist/es/models/api/IAuditableItemGraphCreateRequest.js.map +1 -0
  45. package/dist/es/models/api/IAuditableItemGraphGetRequest.js +2 -0
  46. package/dist/es/models/api/IAuditableItemGraphGetRequest.js.map +1 -0
  47. package/dist/es/models/api/IAuditableItemGraphGetResponse.js +2 -0
  48. package/dist/es/models/api/IAuditableItemGraphGetResponse.js.map +1 -0
  49. package/dist/es/models/api/IAuditableItemGraphListRequest.js +2 -0
  50. package/dist/es/models/api/IAuditableItemGraphListRequest.js.map +1 -0
  51. package/dist/es/models/api/IAuditableItemGraphListResponse.js +2 -0
  52. package/dist/es/models/api/IAuditableItemGraphListResponse.js.map +1 -0
  53. package/dist/es/models/api/IAuditableItemGraphRemoveProofRequest.js +4 -0
  54. package/dist/es/models/api/IAuditableItemGraphRemoveProofRequest.js.map +1 -0
  55. package/dist/es/models/api/IAuditableItemGraphUpdatePartialRequest.js +2 -0
  56. package/dist/es/models/api/IAuditableItemGraphUpdatePartialRequest.js.map +1 -0
  57. package/dist/es/models/api/IAuditableItemGraphUpdateRequest.js +2 -0
  58. package/dist/es/models/api/IAuditableItemGraphUpdateRequest.js.map +1 -0
  59. package/dist/es/models/api/IAuditableItemGraphVersionGetRequest.js +2 -0
  60. package/dist/es/models/api/IAuditableItemGraphVersionGetRequest.js.map +1 -0
  61. package/dist/es/models/api/IAuditableItemGraphVersionGetResponse.js +2 -0
  62. package/dist/es/models/api/IAuditableItemGraphVersionGetResponse.js.map +1 -0
  63. package/dist/es/models/api/IAuditableItemGraphVersionListRequest.js +2 -0
  64. package/dist/es/models/api/IAuditableItemGraphVersionListRequest.js.map +1 -0
  65. package/dist/es/models/api/IAuditableItemGraphVersionListResponse.js +2 -0
  66. package/dist/es/models/api/IAuditableItemGraphVersionListResponse.js.map +1 -0
  67. package/dist/es/models/auditableItemGraphAuditMode.js +17 -0
  68. package/dist/es/models/auditableItemGraphAuditMode.js.map +1 -0
  69. package/dist/es/models/auditableItemGraphContexts.js +33 -0
  70. package/dist/es/models/auditableItemGraphContexts.js.map +1 -0
  71. package/dist/es/models/auditableItemGraphMetricIds.js +69 -0
  72. package/dist/es/models/auditableItemGraphMetricIds.js.map +1 -0
  73. package/dist/es/models/auditableItemGraphMetrics.js +82 -0
  74. package/dist/es/models/auditableItemGraphMetrics.js.map +1 -0
  75. package/dist/es/models/auditableItemGraphTopics.js +17 -0
  76. package/dist/es/models/auditableItemGraphTopics.js.map +1 -0
  77. package/dist/es/models/auditableItemGraphTypes.js +57 -0
  78. package/dist/es/models/auditableItemGraphTypes.js.map +1 -0
  79. package/dist/es/models/eventBus/IAuditableItemGraphEventBusVertexCreated.js +4 -0
  80. package/dist/es/models/eventBus/IAuditableItemGraphEventBusVertexCreated.js.map +1 -0
  81. package/dist/es/models/eventBus/IAuditableItemGraphEventBusVertexUpdated.js +2 -0
  82. package/dist/es/models/eventBus/IAuditableItemGraphEventBusVertexUpdated.js.map +1 -0
  83. package/dist/es/models/verifyDepth.js +21 -0
  84. package/dist/es/models/verifyDepth.js.map +1 -0
  85. package/dist/es/schemas/AuditableItemGraphAlias.json +58 -0
  86. package/dist/es/schemas/AuditableItemGraphAuditMode.json +16 -0
  87. package/dist/es/schemas/AuditableItemGraphAuditedElement.json +25 -0
  88. package/dist/es/schemas/AuditableItemGraphChangeset.json +66 -0
  89. package/dist/es/schemas/AuditableItemGraphChangesetList.json +52 -0
  90. package/dist/es/schemas/AuditableItemGraphEdge.json +62 -0
  91. package/dist/es/schemas/AuditableItemGraphListPatch.json +33 -0
  92. package/dist/es/schemas/AuditableItemGraphPartialVertex.json +115 -0
  93. package/dist/es/schemas/AuditableItemGraphPatchOperation.json +72 -0
  94. package/dist/es/schemas/AuditableItemGraphResource.json +45 -0
  95. package/dist/es/schemas/AuditableItemGraphVertex.json +100 -0
  96. package/dist/es/schemas/AuditableItemGraphVertexList.json +52 -0
  97. package/dist/es/schemas/AuditableItemGraphVertexVersionList.json +64 -0
  98. package/dist/types/compiled/validators.d.ts +53 -0
  99. package/dist/types/dataTypes/auditableItemGraphDataTypes.d.ts +9 -0
  100. package/dist/types/index.d.ts +40 -0
  101. package/dist/types/models/IAuditableItemGraphAlias.d.ts +36 -0
  102. package/dist/types/models/IAuditableItemGraphAuditedElement.d.ts +24 -0
  103. package/dist/types/models/IAuditableItemGraphChangeset.d.ts +57 -0
  104. package/dist/types/models/IAuditableItemGraphChangesetList.d.ts +27 -0
  105. package/dist/types/models/IAuditableItemGraphComponent.d.ts +143 -0
  106. package/dist/types/models/IAuditableItemGraphEdge.d.ts +36 -0
  107. package/dist/types/models/IAuditableItemGraphListPatch.d.ts +18 -0
  108. package/dist/types/models/IAuditableItemGraphPartialVertex.d.ts +45 -0
  109. package/dist/types/models/IAuditableItemGraphPatchOperation.d.ts +36 -0
  110. package/dist/types/models/IAuditableItemGraphResource.d.ts +22 -0
  111. package/dist/types/models/IAuditableItemGraphVertex.d.ts +73 -0
  112. package/dist/types/models/IAuditableItemGraphVertexList.d.ts +27 -0
  113. package/dist/types/models/IAuditableItemGraphVertexVersionList.d.ts +29 -0
  114. package/dist/types/models/api/IAuditableItemGraphChangesetGetRequest.d.ts +35 -0
  115. package/dist/types/models/api/IAuditableItemGraphChangesetGetResponse.d.ts +17 -0
  116. package/dist/types/models/api/IAuditableItemGraphChangesetListRequest.d.ts +39 -0
  117. package/dist/types/models/api/IAuditableItemGraphChangesetListResponse.d.ts +18 -0
  118. package/dist/types/models/api/IAuditableItemGraphCreateRequest.d.ts +10 -0
  119. package/dist/types/models/api/IAuditableItemGraphGetRequest.d.ts +35 -0
  120. package/dist/types/models/api/IAuditableItemGraphGetResponse.d.ts +17 -0
  121. package/dist/types/models/api/IAuditableItemGraphListRequest.d.ts +60 -0
  122. package/dist/types/models/api/IAuditableItemGraphListResponse.d.ts +18 -0
  123. package/dist/types/models/api/IAuditableItemGraphRemoveProofRequest.d.ts +14 -0
  124. package/dist/types/models/api/IAuditableItemGraphUpdatePartialRequest.d.ts +20 -0
  125. package/dist/types/models/api/IAuditableItemGraphUpdateRequest.d.ts +19 -0
  126. package/dist/types/models/api/IAuditableItemGraphVersionGetRequest.d.ts +25 -0
  127. package/dist/types/models/api/IAuditableItemGraphVersionGetResponse.d.ts +17 -0
  128. package/dist/types/models/api/IAuditableItemGraphVersionListRequest.d.ts +34 -0
  129. package/dist/types/models/api/IAuditableItemGraphVersionListResponse.d.ts +17 -0
  130. package/dist/types/models/auditableItemGraphAuditMode.d.ts +17 -0
  131. package/dist/types/models/auditableItemGraphContexts.d.ts +33 -0
  132. package/dist/types/models/auditableItemGraphMetricIds.d.ts +69 -0
  133. package/dist/types/models/auditableItemGraphMetrics.d.ts +5 -0
  134. package/dist/types/models/auditableItemGraphTopics.d.ts +17 -0
  135. package/dist/types/models/auditableItemGraphTypes.d.ts +57 -0
  136. package/dist/types/models/eventBus/IAuditableItemGraphEventBusVertexCreated.d.ts +9 -0
  137. package/dist/types/models/eventBus/IAuditableItemGraphEventBusVertexUpdated.d.ts +14 -0
  138. package/dist/types/models/verifyDepth.d.ts +21 -0
  139. package/docs/changelog.md +0 -0
  140. package/docs/examples.md +22 -0
  141. package/docs/reference/classes/AuditableItemGraphDataTypes.md +25 -0
  142. package/docs/reference/index.md +71 -0
  143. package/docs/reference/interfaces/IAuditableItemGraphAlias.md +95 -0
  144. package/docs/reference/interfaces/IAuditableItemGraphAuditedElement.md +41 -0
  145. package/docs/reference/interfaces/IAuditableItemGraphChangeset.md +76 -0
  146. package/docs/reference/interfaces/IAuditableItemGraphChangesetGetRequest.md +49 -0
  147. package/docs/reference/interfaces/IAuditableItemGraphChangesetGetResponse.md +23 -0
  148. package/docs/reference/interfaces/IAuditableItemGraphChangesetList.md +27 -0
  149. package/docs/reference/interfaces/IAuditableItemGraphChangesetListRequest.md +55 -0
  150. package/docs/reference/interfaces/IAuditableItemGraphChangesetListResponse.md +27 -0
  151. package/docs/reference/interfaces/IAuditableItemGraphComponent.md +393 -0
  152. package/docs/reference/interfaces/IAuditableItemGraphCreateRequest.md +11 -0
  153. package/docs/reference/interfaces/IAuditableItemGraphEdge.md +95 -0
  154. package/docs/reference/interfaces/IAuditableItemGraphEventBusVertexCreated.md +11 -0
  155. package/docs/reference/interfaces/IAuditableItemGraphEventBusVertexUpdated.md +19 -0
  156. package/docs/reference/interfaces/IAuditableItemGraphGetRequest.md +49 -0
  157. package/docs/reference/interfaces/IAuditableItemGraphGetResponse.md +23 -0
  158. package/docs/reference/interfaces/IAuditableItemGraphListPatch.md +25 -0
  159. package/docs/reference/interfaces/IAuditableItemGraphListRequest.md +84 -0
  160. package/docs/reference/interfaces/IAuditableItemGraphListResponse.md +27 -0
  161. package/docs/reference/interfaces/IAuditableItemGraphPartialVertex.md +164 -0
  162. package/docs/reference/interfaces/IAuditableItemGraphPatchOperation.md +51 -0
  163. package/docs/reference/interfaces/IAuditableItemGraphRemoveProofRequest.md +17 -0
  164. package/docs/reference/interfaces/IAuditableItemGraphResource.md +79 -0
  165. package/docs/reference/interfaces/IAuditableItemGraphUpdatePartialRequest.md +26 -0
  166. package/docs/reference/interfaces/IAuditableItemGraphUpdateRequest.md +25 -0
  167. package/docs/reference/interfaces/IAuditableItemGraphVersionGetRequest.md +35 -0
  168. package/docs/reference/interfaces/IAuditableItemGraphVersionGetResponse.md +23 -0
  169. package/docs/reference/interfaces/IAuditableItemGraphVersionListRequest.md +49 -0
  170. package/docs/reference/interfaces/IAuditableItemGraphVersionListResponse.md +23 -0
  171. package/docs/reference/interfaces/IAuditableItemGraphVertex.md +139 -0
  172. package/docs/reference/interfaces/IAuditableItemGraphVertexList.md +27 -0
  173. package/docs/reference/interfaces/IAuditableItemGraphVertexVersionList.md +35 -0
  174. package/docs/reference/type-aliases/AuditableItemGraphAuditMode.md +5 -0
  175. package/docs/reference/type-aliases/AuditableItemGraphContexts.md +5 -0
  176. package/docs/reference/type-aliases/AuditableItemGraphMetricIds.md +5 -0
  177. package/docs/reference/type-aliases/AuditableItemGraphTopics.md +5 -0
  178. package/docs/reference/type-aliases/AuditableItemGraphTypes.md +5 -0
  179. package/docs/reference/type-aliases/VerifyDepth.md +5 -0
  180. package/docs/reference/variables/AuditableItemGraphAuditMode.md +19 -0
  181. package/docs/reference/variables/AuditableItemGraphContexts.md +43 -0
  182. package/docs/reference/variables/AuditableItemGraphMetricIds.md +97 -0
  183. package/docs/reference/variables/AuditableItemGraphMetrics.md +5 -0
  184. package/docs/reference/variables/AuditableItemGraphTopics.md +19 -0
  185. package/docs/reference/variables/AuditableItemGraphTypes.md +79 -0
  186. package/docs/reference/variables/CompiledAuditableItemGraphAlias.md +5 -0
  187. package/docs/reference/variables/CompiledAuditableItemGraphAuditMode.md +5 -0
  188. package/docs/reference/variables/CompiledAuditableItemGraphAuditedElement.md +5 -0
  189. package/docs/reference/variables/CompiledAuditableItemGraphChangeset.md +5 -0
  190. package/docs/reference/variables/CompiledAuditableItemGraphChangesetList.md +5 -0
  191. package/docs/reference/variables/CompiledAuditableItemGraphEdge.md +5 -0
  192. package/docs/reference/variables/CompiledAuditableItemGraphListPatch.md +5 -0
  193. package/docs/reference/variables/CompiledAuditableItemGraphPartialVertex.md +5 -0
  194. package/docs/reference/variables/CompiledAuditableItemGraphPatchOperation.md +5 -0
  195. package/docs/reference/variables/CompiledAuditableItemGraphResource.md +5 -0
  196. package/docs/reference/variables/CompiledAuditableItemGraphVertex.md +5 -0
  197. package/docs/reference/variables/CompiledAuditableItemGraphVertexList.md +5 -0
  198. package/docs/reference/variables/CompiledAuditableItemGraphVertexVersionList.md +5 -0
  199. package/docs/reference/variables/VerifyDepth.md +25 -0
  200. package/locales/en.json +3 -0
  201. package/package.json +57 -5
@@ -0,0 +1,100 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://schema.3sixty.global/aig/AuditableItemGraphVertex",
4
+ "title": "AuditableItemGraphVertex",
5
+ "description": "Interface describing an auditable item graph vertex.",
6
+ "type": "object",
7
+ "properties": {
8
+ "@context": {
9
+ "type": "array",
10
+ "prefixItems": [
11
+ {
12
+ "const": "https://schema.3sixty.global/aig/"
13
+ },
14
+ {
15
+ "const": "https://schema.3sixty.global/common/"
16
+ }
17
+ ],
18
+ "items": {
19
+ "$ref": "https://schema.3sixty.global/json-ld/JsonLdContextDefinitionElement"
20
+ },
21
+ "minItems": 2,
22
+ "description": "JSON-LD Context."
23
+ },
24
+ "id": {
25
+ "type": "string",
26
+ "description": "The id of the element."
27
+ },
28
+ "type": {
29
+ "const": "AuditableItemGraphVertex",
30
+ "description": "JSON-LD Type."
31
+ },
32
+ "organizationIdentity": {
33
+ "type": "string",
34
+ "description": "The identity of the organization which controls the vertex."
35
+ },
36
+ "auditMode": {
37
+ "$ref": "https://schema.3sixty.global/aig/AuditableItemGraphAuditMode",
38
+ "description": "How the mutations of the vertex are recorded, when absent the vertex behaves as audited.\nOnce a vertex is set to bypass it can not be returned to audited."
39
+ },
40
+ "annotationObject": {
41
+ "$ref": "https://schema.3sixty.global/json-ld/JsonLdNodeObject",
42
+ "description": "The JSON-LD annotation object for the vertex."
43
+ },
44
+ "aliases": {
45
+ "type": "array",
46
+ "items": {
47
+ "$ref": "https://schema.3sixty.global/aig/AuditableItemGraphAlias"
48
+ },
49
+ "description": "Alternative aliases that can be used to identify the vertex."
50
+ },
51
+ "resources": {
52
+ "type": "array",
53
+ "items": {
54
+ "$ref": "https://schema.3sixty.global/aig/AuditableItemGraphResource"
55
+ },
56
+ "description": "The resources attached to the vertex."
57
+ },
58
+ "edges": {
59
+ "type": "array",
60
+ "items": {
61
+ "$ref": "https://schema.3sixty.global/aig/AuditableItemGraphEdge"
62
+ },
63
+ "description": "Edges connected to the vertex."
64
+ },
65
+ "verified": {
66
+ "type": "boolean",
67
+ "description": "Is the vertex verified, will only be populated when verification is requested.\nAlways undefined when the vertex is in bypass mode."
68
+ },
69
+ "version": {
70
+ "type": "number",
71
+ "description": "The version of the vertex, populated only when getting a specific version.\nAlways undefined when the vertex is in bypass mode.\nMaps to https://schema.org/version."
72
+ }
73
+ },
74
+ "required": [
75
+ "@context",
76
+ "id",
77
+ "type"
78
+ ],
79
+ "allOf": [
80
+ {
81
+ "description": "Interface describing the base properties for auditable elements.",
82
+ "type": "object",
83
+ "properties": {
84
+ "dateCreated": {
85
+ "type": "string",
86
+ "description": "The date/time of when the element was created."
87
+ },
88
+ "dateModified": {
89
+ "type": "string",
90
+ "description": "The date/time of when the element was modified."
91
+ },
92
+ "dateDeleted": {
93
+ "type": "string",
94
+ "description": "The date/time of when the element was deleted, as we never actually remove items."
95
+ }
96
+ },
97
+ "$comment": "Inlined utility base type AuditableItemGraphAuditedElement so utility transformations can operate on concrete properties instead of a $ref."
98
+ }
99
+ ]
100
+ }
@@ -0,0 +1,52 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://schema.3sixty.global/aig/AuditableItemGraphVertexList",
4
+ "title": "AuditableItemGraphVertexList",
5
+ "description": "Interface describing an auditable item graph vertex list.",
6
+ "type": "object",
7
+ "properties": {
8
+ "@context": {
9
+ "type": "array",
10
+ "prefixItems": [
11
+ {
12
+ "const": "https://schema.org"
13
+ },
14
+ {
15
+ "const": "https://schema.3sixty.global/aig/"
16
+ }
17
+ ],
18
+ "items": {
19
+ "$ref": "https://schema.3sixty.global/json-ld/JsonLdContextDefinitionElement"
20
+ },
21
+ "minItems": 2,
22
+ "description": "JSON-LD Context."
23
+ },
24
+ "type": {
25
+ "type": "array",
26
+ "prefixItems": [
27
+ {
28
+ "const": "ItemList"
29
+ },
30
+ {
31
+ "const": "AuditableItemGraphVertexList"
32
+ }
33
+ ],
34
+ "items": false,
35
+ "minItems": 2,
36
+ "maxItems": 2,
37
+ "description": "JSON-LD Type."
38
+ },
39
+ "itemListElement": {
40
+ "type": "array",
41
+ "items": {
42
+ "$ref": "https://schema.3sixty.global/aig/AuditableItemGraphVertex"
43
+ },
44
+ "description": "The list of vertices."
45
+ }
46
+ },
47
+ "required": [
48
+ "@context",
49
+ "type",
50
+ "itemListElement"
51
+ ]
52
+ }
@@ -0,0 +1,64 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://schema.3sixty.global/aig/AuditableItemGraphVertexVersionList",
4
+ "title": "AuditableItemGraphVertexVersionList",
5
+ "description": "Interface describing a list of auditable item graph vertex version numbers.",
6
+ "type": "object",
7
+ "properties": {
8
+ "@context": {
9
+ "type": "array",
10
+ "prefixItems": [
11
+ {
12
+ "const": "https://schema.org"
13
+ },
14
+ {
15
+ "const": "https://schema.3sixty.global/aig/"
16
+ }
17
+ ],
18
+ "items": {
19
+ "$ref": "https://schema.3sixty.global/json-ld/JsonLdContextDefinitionElement"
20
+ },
21
+ "minItems": 2,
22
+ "description": "JSON-LD Context."
23
+ },
24
+ "type": {
25
+ "type": "array",
26
+ "prefixItems": [
27
+ {
28
+ "const": "ItemList"
29
+ },
30
+ {
31
+ "const": "AuditableItemGraphVertexVersionList"
32
+ }
33
+ ],
34
+ "items": false,
35
+ "minItems": 2,
36
+ "maxItems": 2,
37
+ "description": "JSON-LD Type."
38
+ },
39
+ "itemListElement": {
40
+ "type": "array",
41
+ "items": {
42
+ "type": "object",
43
+ "properties": {
44
+ "version": {
45
+ "type": "number"
46
+ },
47
+ "dateCreated": {
48
+ "type": "string"
49
+ }
50
+ },
51
+ "required": [
52
+ "version",
53
+ "dateCreated"
54
+ ]
55
+ },
56
+ "description": "The list of versions."
57
+ }
58
+ },
59
+ "required": [
60
+ "@context",
61
+ "type",
62
+ "itemListElement"
63
+ ]
64
+ }
@@ -0,0 +1,53 @@
1
+ import type { ICompiledValidator } from "@3sixty/data-core";
2
+ /**
3
+ * Compiled validator for the AuditableItemGraphAuditMode schema.
4
+ */
5
+ export declare const CompiledAuditableItemGraphAuditMode: ICompiledValidator;
6
+ /**
7
+ * Compiled validator for the AuditableItemGraphAlias schema.
8
+ */
9
+ export declare const CompiledAuditableItemGraphAlias: ICompiledValidator;
10
+ /**
11
+ * Compiled validator for the AuditableItemGraphAuditedElement schema.
12
+ */
13
+ export declare const CompiledAuditableItemGraphAuditedElement: ICompiledValidator;
14
+ /**
15
+ * Compiled validator for the AuditableItemGraphChangeset schema.
16
+ */
17
+ export declare const CompiledAuditableItemGraphChangeset: ICompiledValidator;
18
+ /**
19
+ * Compiled validator for the AuditableItemGraphChangesetList schema.
20
+ */
21
+ export declare const CompiledAuditableItemGraphChangesetList: ICompiledValidator;
22
+ /**
23
+ * Compiled validator for the AuditableItemGraphEdge schema.
24
+ */
25
+ export declare const CompiledAuditableItemGraphEdge: ICompiledValidator;
26
+ /**
27
+ * Compiled validator for the AuditableItemGraphListPatch schema.
28
+ */
29
+ export declare const CompiledAuditableItemGraphListPatch: ICompiledValidator;
30
+ /**
31
+ * Compiled validator for the AuditableItemGraphPartialVertex schema.
32
+ */
33
+ export declare const CompiledAuditableItemGraphPartialVertex: ICompiledValidator;
34
+ /**
35
+ * Compiled validator for the AuditableItemGraphPatchOperation schema.
36
+ */
37
+ export declare const CompiledAuditableItemGraphPatchOperation: ICompiledValidator;
38
+ /**
39
+ * Compiled validator for the AuditableItemGraphResource schema.
40
+ */
41
+ export declare const CompiledAuditableItemGraphResource: ICompiledValidator;
42
+ /**
43
+ * Compiled validator for the AuditableItemGraphVertex schema.
44
+ */
45
+ export declare const CompiledAuditableItemGraphVertex: ICompiledValidator;
46
+ /**
47
+ * Compiled validator for the AuditableItemGraphVertexList schema.
48
+ */
49
+ export declare const CompiledAuditableItemGraphVertexList: ICompiledValidator;
50
+ /**
51
+ * Compiled validator for the AuditableItemGraphVertexVersionList schema.
52
+ */
53
+ export declare const CompiledAuditableItemGraphVertexVersionList: ICompiledValidator;
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Handle all the data types for auditable item graph.
3
+ */
4
+ export declare class AuditableItemGraphDataTypes {
5
+ /**
6
+ * Register all the data types.
7
+ */
8
+ static registerTypes(): void;
9
+ }
@@ -0,0 +1,40 @@
1
+ export * from "./compiled/validators.js";
2
+ export * from "./dataTypes/auditableItemGraphDataTypes.js";
3
+ export * from "./models/api/IAuditableItemGraphChangesetGetRequest.js";
4
+ export * from "./models/api/IAuditableItemGraphChangesetGetResponse.js";
5
+ export * from "./models/api/IAuditableItemGraphChangesetListRequest.js";
6
+ export * from "./models/api/IAuditableItemGraphChangesetListResponse.js";
7
+ export * from "./models/api/IAuditableItemGraphCreateRequest.js";
8
+ export * from "./models/api/IAuditableItemGraphGetRequest.js";
9
+ export * from "./models/api/IAuditableItemGraphGetResponse.js";
10
+ export * from "./models/api/IAuditableItemGraphListRequest.js";
11
+ export * from "./models/api/IAuditableItemGraphListResponse.js";
12
+ export * from "./models/api/IAuditableItemGraphRemoveProofRequest.js";
13
+ export * from "./models/api/IAuditableItemGraphUpdateRequest.js";
14
+ export * from "./models/api/IAuditableItemGraphUpdatePartialRequest.js";
15
+ export * from "./models/api/IAuditableItemGraphVersionGetRequest.js";
16
+ export * from "./models/api/IAuditableItemGraphVersionGetResponse.js";
17
+ export * from "./models/api/IAuditableItemGraphVersionListRequest.js";
18
+ export * from "./models/api/IAuditableItemGraphVersionListResponse.js";
19
+ export * from "./models/auditableItemGraphAuditMode.js";
20
+ export * from "./models/auditableItemGraphContexts.js";
21
+ export * from "./models/auditableItemGraphMetricIds.js";
22
+ export * from "./models/auditableItemGraphMetrics.js";
23
+ export * from "./models/auditableItemGraphTopics.js";
24
+ export * from "./models/auditableItemGraphTypes.js";
25
+ export * from "./models/eventBus/IAuditableItemGraphEventBusVertexCreated.js";
26
+ export * from "./models/eventBus/IAuditableItemGraphEventBusVertexUpdated.js";
27
+ export * from "./models/IAuditableItemGraphAlias.js";
28
+ export * from "./models/IAuditableItemGraphAuditedElement.js";
29
+ export * from "./models/IAuditableItemGraphChangeset.js";
30
+ export * from "./models/IAuditableItemGraphChangesetList.js";
31
+ export * from "./models/IAuditableItemGraphComponent.js";
32
+ export * from "./models/IAuditableItemGraphEdge.js";
33
+ export * from "./models/IAuditableItemGraphPatchOperation.js";
34
+ export * from "./models/IAuditableItemGraphListPatch.js";
35
+ export * from "./models/IAuditableItemGraphPartialVertex.js";
36
+ export * from "./models/IAuditableItemGraphResource.js";
37
+ export * from "./models/IAuditableItemGraphVertex.js";
38
+ export * from "./models/IAuditableItemGraphVertexList.js";
39
+ export * from "./models/IAuditableItemGraphVertexVersionList.js";
40
+ export * from "./models/verifyDepth.js";
@@ -0,0 +1,36 @@
1
+ import type { IJsonLdContextDefinitionElement, IJsonLdNodeObject } from "@3sixty/data-json-ld";
2
+ import type { AuditableItemGraphContexts } from "./auditableItemGraphContexts.js";
3
+ import type { AuditableItemGraphTypes } from "./auditableItemGraphTypes.js";
4
+ import type { IAuditableItemGraphAuditedElement } from "./IAuditableItemGraphAuditedElement.js";
5
+ /**
6
+ * Interface describing an alias for a vertex.
7
+ */
8
+ export interface IAuditableItemGraphAlias extends IAuditableItemGraphAuditedElement {
9
+ /**
10
+ * JSON-LD Context.
11
+ */
12
+ "@context"?: typeof AuditableItemGraphContexts.Context | [typeof AuditableItemGraphContexts.Context, ...IJsonLdContextDefinitionElement[]];
13
+ /**
14
+ * The id of the element.
15
+ */
16
+ id: string;
17
+ /**
18
+ * JSON-LD Type.
19
+ */
20
+ type: typeof AuditableItemGraphTypes.Alias;
21
+ /**
22
+ * The JSON-LD annotation object for the alias.
23
+ * @json-ld namespace:twin-common
24
+ */
25
+ annotationObject?: IJsonLdNodeObject;
26
+ /**
27
+ * The format of the id in the alias.
28
+ * @json-ld type:sch:Text
29
+ */
30
+ aliasFormat?: string;
31
+ /**
32
+ * Whether the alias should be unique across the graph, meaning that no other vertex can have the same alias. Defaults to false.
33
+ * @json-ld type:sch:Boolean
34
+ */
35
+ unique?: boolean;
36
+ }
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Interface describing the base properties for auditable elements.
3
+ */
4
+ export interface IAuditableItemGraphAuditedElement {
5
+ /**
6
+ * The id of the element.
7
+ */
8
+ id?: string;
9
+ /**
10
+ * The date/time of when the element was created.
11
+ * @json-ld namespace:sch
12
+ */
13
+ dateCreated?: string;
14
+ /**
15
+ * The date/time of when the element was modified.
16
+ * @json-ld namespace:sch
17
+ */
18
+ dateModified?: string;
19
+ /**
20
+ * The date/time of when the element was deleted, as we never actually remove items.
21
+ * @json-ld namespace:sch
22
+ */
23
+ dateDeleted?: string;
24
+ }
@@ -0,0 +1,57 @@
1
+ import type { IJsonLdContextDefinitionElement } from "@3sixty/data-json-ld";
2
+ import type { IImmutableProofVerification } from "@3sixty/immutable-proof-models";
3
+ import type { AuditableItemGraphContexts } from "./auditableItemGraphContexts.js";
4
+ import type { AuditableItemGraphTypes } from "./auditableItemGraphTypes.js";
5
+ import type { IAuditableItemGraphPatchOperation } from "./IAuditableItemGraphPatchOperation.js";
6
+ /**
7
+ * Interface describing a set of changes to the vertex.
8
+ */
9
+ export interface IAuditableItemGraphChangeset {
10
+ /**
11
+ * JSON-LD Context.
12
+ */
13
+ "@context"?: [
14
+ typeof AuditableItemGraphContexts.Context,
15
+ typeof AuditableItemGraphContexts.ContextCommon,
16
+ ...IJsonLdContextDefinitionElement[]
17
+ ];
18
+ /**
19
+ * JSON-LD Type.
20
+ */
21
+ type: typeof AuditableItemGraphTypes.Changeset;
22
+ /**
23
+ * The id of the changeset.
24
+ */
25
+ id: string;
26
+ /**
27
+ * The date/time of when the changeset was created.
28
+ * @json-ld namespace:sch
29
+ */
30
+ dateCreated: string;
31
+ /**
32
+ * The user identity that created the changes.
33
+ * @json-ld namespace:twin-common
34
+ */
35
+ userIdentity?: string;
36
+ /**
37
+ * The patches in the changeset.
38
+ * @json-ld container:set
39
+ */
40
+ patches: IAuditableItemGraphPatchOperation[];
41
+ /**
42
+ * The immutable proof id which contains the signature for this changeset.
43
+ * @json-ld type:sch:identifier
44
+ */
45
+ proofId?: string;
46
+ /**
47
+ * The verification for the changeset.
48
+ * @json-ld id
49
+ */
50
+ verification?: IImmutableProofVerification;
51
+ /**
52
+ * The version number of the vertex after this changeset was applied.
53
+ * Maps to https://schema.org/version.
54
+ * @json-ld namespace:sch
55
+ */
56
+ version?: number;
57
+ }
@@ -0,0 +1,27 @@
1
+ import type { IJsonLdContextDefinitionElement } from "@3sixty/data-json-ld";
2
+ import type { SchemaOrgContexts, SchemaOrgTypes } from "@3sixty/standards-schema-org";
3
+ import type { AuditableItemGraphContexts } from "./auditableItemGraphContexts.js";
4
+ import type { AuditableItemGraphTypes } from "./auditableItemGraphTypes.js";
5
+ import type { IAuditableItemGraphChangeset } from "./IAuditableItemGraphChangeset.js";
6
+ /**
7
+ * Interface describing an auditable item graph changeset list.
8
+ */
9
+ export interface IAuditableItemGraphChangesetList {
10
+ /**
11
+ * JSON-LD Context.
12
+ */
13
+ "@context": [
14
+ typeof SchemaOrgContexts.Context,
15
+ typeof AuditableItemGraphContexts.Context,
16
+ ...IJsonLdContextDefinitionElement[]
17
+ ];
18
+ /**
19
+ * JSON-LD Type.
20
+ */
21
+ type: [typeof SchemaOrgTypes.ItemList, typeof AuditableItemGraphTypes.ChangesetList];
22
+ /**
23
+ * The list of changesets.
24
+ * @json-ld namespace:sch
25
+ */
26
+ [SchemaOrgTypes.ItemListElement]: IAuditableItemGraphChangeset[];
27
+ }
@@ -0,0 +1,143 @@
1
+ import type { IComponent } from "@3sixty/core";
2
+ import type { EntityCondition, SortDirection } from "@3sixty/entity";
3
+ import type { IAuditableItemGraphChangeset } from "./IAuditableItemGraphChangeset.js";
4
+ import type { IAuditableItemGraphChangesetList } from "./IAuditableItemGraphChangesetList.js";
5
+ import type { IAuditableItemGraphPartialVertex } from "./IAuditableItemGraphPartialVertex.js";
6
+ import type { IAuditableItemGraphVertex } from "./IAuditableItemGraphVertex.js";
7
+ import type { IAuditableItemGraphVertexList } from "./IAuditableItemGraphVertexList.js";
8
+ import type { IAuditableItemGraphVertexVersionList } from "./IAuditableItemGraphVertexVersionList.js";
9
+ import type { VerifyDepth } from "./verifyDepth.js";
10
+ /**
11
+ * Interface describing an auditable item graph contract.
12
+ */
13
+ export interface IAuditableItemGraphComponent extends IComponent {
14
+ /**
15
+ * Create a new graph vertex.
16
+ * @param vertex The vertex to create.
17
+ * @param vertex.auditMode How the mutations of the vertex are recorded, defaults to audited.
18
+ * @param vertex.annotationObject The annotation object for the vertex as JSON-LD.
19
+ * @param vertex.aliases Alternative aliases that can be used to identify the vertex.
20
+ * @param vertex.resources The resources attached to the vertex.
21
+ * @param vertex.edges The edges connected to the vertex.
22
+ * @returns The id of the new graph item.
23
+ */
24
+ create(vertex: Omit<IAuditableItemGraphVertex, "id">): Promise<string>;
25
+ /**
26
+ * Update a graph vertex (PUT - full replacement of vertex state).
27
+ * Concurrent updates for the same vertex are serialized via `Mutex` on the vertex id.
28
+ * Multi-replica deployments are not coordinated.
29
+ * @param vertex The vertex to update.
30
+ * @param vertex.id The id of the vertex to update.
31
+ * @param vertex.auditMode How the mutations of the vertex are recorded, when absent the current mode is kept.
32
+ * @param vertex.annotationObject The annotation object for the vertex as JSON-LD.
33
+ * @param vertex.aliases Alternative aliases that can be used to identify the vertex.
34
+ * @param vertex.resources The resources attached to the vertex.
35
+ * @param vertex.edges The edges connected to the vertex.
36
+ * @returns A promise that resolves when the vertex has been updated.
37
+ * @throws GeneralError If a bypass vertex is being switched back to audited.
38
+ */
39
+ update(vertex: IAuditableItemGraphVertex): Promise<void>;
40
+ /**
41
+ * Partially update a graph vertex (PATCH); only properties that are not undefined are applied.
42
+ * Sub-lists use explicit `{ add, remove }` patch objects. Serialized with `update()` via `Mutex`
43
+ * on the same vertex id.
44
+ * @param partial The partial vertex update (must include `id`).
45
+ * @returns A promise that resolves when the partial update has been applied.
46
+ * @throws GeneralError If a bypass vertex is being switched back to audited.
47
+ */
48
+ updatePartial(partial: IAuditableItemGraphPartialVertex): Promise<void>;
49
+ /**
50
+ * Get a graph vertex.
51
+ * @param id The id of the vertex to get.
52
+ * @param options Additional options for the get operation.
53
+ * @param options.includeDeleted Whether to include deleted aliases, resource, edges, defaults to false.
54
+ * @param options.verifySignatureDepth How many signatures to verify, defaults to "none".
55
+ * @returns The vertex if found.
56
+ * @throws NotFoundError if the vertex is not found.
57
+ */
58
+ get(id: string, options?: {
59
+ includeDeleted?: boolean;
60
+ verifySignatureDepth?: VerifyDepth;
61
+ }): Promise<IAuditableItemGraphVertex>;
62
+ /**
63
+ * Get a graph vertex changeset list.
64
+ * @param id The id of the vertex to get.
65
+ * @param cursor The optional cursor to get next chunk.
66
+ * @param limit Limit the number of entities to return.
67
+ * @param options Additional options for the get operation.
68
+ * @param options.verifySignatureDepth How many signatures to verify, defaults to "none".
69
+ * @returns The changeset if found, always empty for a bypass vertex.
70
+ * @throws NotFoundError if the vertex is not found.
71
+ */
72
+ getChangesets(id: string, cursor?: string, limit?: number, options?: {
73
+ verifySignatureDepth?: VerifyDepth;
74
+ }): Promise<{
75
+ changesets: IAuditableItemGraphChangesetList;
76
+ cursor?: string;
77
+ }>;
78
+ /**
79
+ * Get a graph vertex changeset.
80
+ * @param id The id of the vertex to get.
81
+ * @param options Additional options for the get operation.
82
+ * @param options.verifySignatureDepth How many signatures to verify, defaults to "none".
83
+ * @returns The changeset if found.
84
+ * @throws NotFoundError if the vertex or changeset is not found, a bypass vertex never has changesets.
85
+ */
86
+ getChangeset(id: string, options?: {
87
+ verifySignatureDepth?: VerifyDepth;
88
+ }): Promise<IAuditableItemGraphChangeset>;
89
+ /**
90
+ * Get a graph vertex at a specific version.
91
+ * @param id The id of the vertex.
92
+ * @param version The version number to retrieve.
93
+ * @returns The vertex reconstructed at that version.
94
+ * @throws NotFoundError if the vertex or version is not found, a bypass vertex never has versions.
95
+ */
96
+ getVersion(id: string, version: number): Promise<IAuditableItemGraphVertex>;
97
+ /**
98
+ * Get all versions of a graph vertex.
99
+ * @param id The id of the vertex.
100
+ * @param options Additional options for the operation.
101
+ * @param options.after Only return versions created after this ISO 8601 timestamp (exclusive).
102
+ * @param options.before Only return versions created before this ISO 8601 timestamp (exclusive).
103
+ * @returns The list of vertex versions, a bypass vertex returns a single baseline entry for its
104
+ * current state when that falls within the requested range.
105
+ * @throws NotFoundError if the vertex is not found.
106
+ */
107
+ getVersions(id: string, options?: {
108
+ after?: string;
109
+ before?: string;
110
+ }): Promise<IAuditableItemGraphVertexVersionList>;
111
+ /**
112
+ * Remove the proof for an item.
113
+ * @param id The id of the vertex to remove the proof from.
114
+ * @returns A promise that resolves when the proof has been removed from all changesets.
115
+ * @throws NotFoundError if the vertex is not found.
116
+ */
117
+ removeProof(id: string): Promise<void>;
118
+ /**
119
+ * Query the graph for vertices.
120
+ * @param options The query options.
121
+ * @param options.id The optional id to look for.
122
+ * @param options.idMode Look in id, alias or both, defaults to both.
123
+ * @param options.idExact Find only exact matches, default to false meaning partial matching.
124
+ * @param options.resourceTypes Include vertices with specific resource types.
125
+ * @param conditions Conditions to use in the query.
126
+ * @param orderBy The order for the results, defaults to dateCreated.
127
+ * @param orderByDirection The direction for the order, defaults to descending.
128
+ * @param properties The properties to return, if not provided defaults to id, dateCreated, aliases and object.
129
+ * @param cursor The cursor to request the next chunk of entities.
130
+ * @param limit The maximum number of entities to return, a page can contain fewer so follow
131
+ * the cursor until it is absent to read them all.
132
+ * @returns The entities, which can be partial if a limited keys list was provided.
133
+ */
134
+ query(options?: {
135
+ id?: string;
136
+ idMode?: "id" | "alias" | "both";
137
+ idExact?: boolean;
138
+ resourceTypes?: string[];
139
+ }, conditions?: EntityCondition<IAuditableItemGraphVertex>, orderBy?: keyof Pick<IAuditableItemGraphVertex, "dateCreated" | "dateModified">, orderByDirection?: SortDirection, properties?: (keyof IAuditableItemGraphVertex)[], cursor?: string, limit?: number): Promise<{
140
+ entries: IAuditableItemGraphVertexList;
141
+ cursor?: string;
142
+ }>;
143
+ }
@@ -0,0 +1,36 @@
1
+ import type { IJsonLdContextDefinitionElement, IJsonLdNodeObject } from "@3sixty/data-json-ld";
2
+ import type { AuditableItemGraphContexts } from "./auditableItemGraphContexts.js";
3
+ import type { AuditableItemGraphTypes } from "./auditableItemGraphTypes.js";
4
+ import type { IAuditableItemGraphAuditedElement } from "./IAuditableItemGraphAuditedElement.js";
5
+ /**
6
+ * Interface describing an edge between two vertices in an auditable item graph.
7
+ */
8
+ export interface IAuditableItemGraphEdge extends IAuditableItemGraphAuditedElement {
9
+ /**
10
+ * JSON-LD Context.
11
+ */
12
+ "@context"?: typeof AuditableItemGraphContexts.Context | [typeof AuditableItemGraphContexts.Context, ...IJsonLdContextDefinitionElement[]];
13
+ /**
14
+ * The id of the element.
15
+ */
16
+ id?: string;
17
+ /**
18
+ * The target vertex id the edge connects to.
19
+ * @json-ld type:@id
20
+ */
21
+ targetId: string;
22
+ /**
23
+ * JSON-LD Type.
24
+ */
25
+ type: typeof AuditableItemGraphTypes.Edge;
26
+ /**
27
+ * The JSON-LD annotation object for the edge.
28
+ * @json-ld namespace:twin-common
29
+ */
30
+ annotationObject?: IJsonLdNodeObject;
31
+ /**
32
+ * The relationships between the two vertices.
33
+ * @json-ld container:set
34
+ */
35
+ edgeRelationships: string[];
36
+ }
@@ -0,0 +1,18 @@
1
+ import type { IAuditableItemGraphAlias } from "./IAuditableItemGraphAlias.js";
2
+ import type { IAuditableItemGraphEdge } from "./IAuditableItemGraphEdge.js";
3
+ import type { IAuditableItemGraphResource } from "./IAuditableItemGraphResource.js";
4
+ /**
5
+ * PATCH operations for a sub-list on a vertex.
6
+ */
7
+ export interface IAuditableItemGraphListPatch<TItem = IAuditableItemGraphEdge | IAuditableItemGraphAlias | IAuditableItemGraphResource> {
8
+ /**
9
+ * Items to add or update in the active set.
10
+ * @json-ld container:set
11
+ */
12
+ add?: TItem[];
13
+ /**
14
+ * Identifiers of items to remove from the active set (soft-delete).
15
+ * @json-ld container:set
16
+ */
17
+ remove?: string[];
18
+ }