@graphprotocol/hypergraph 0.0.1 → 0.0.2

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 (328) hide show
  1. package/dist/connect/abis/MainVotingPlugin.json +1865 -0
  2. package/dist/connect/abis/PersonalSpaceAdminPlugin.json +531 -0
  3. package/dist/connect/abis.d.ts +115 -0
  4. package/dist/connect/abis.d.ts.map +1 -0
  5. package/dist/connect/abis.js +141 -0
  6. package/dist/connect/abis.js.map +1 -0
  7. package/dist/connect/auth-storage.d.ts +15 -0
  8. package/dist/connect/auth-storage.js +53 -0
  9. package/dist/connect/auth-storage.js.map +1 -0
  10. package/dist/connect/create-app-identity.d.ts +7 -0
  11. package/dist/connect/create-app-identity.js +15 -0
  12. package/dist/connect/create-app-identity.js.map +1 -0
  13. package/dist/connect/create-auth-url.d.ts +15 -0
  14. package/dist/connect/create-callback-params.d.ts +28 -0
  15. package/dist/connect/create-callback-params.d.ts.map +1 -1
  16. package/dist/connect/create-callback-params.js.map +1 -1
  17. package/dist/connect/create-identity-keys.d.ts +3 -0
  18. package/dist/connect/create-identity-keys.js +20 -0
  19. package/dist/connect/create-identity-keys.js.map +1 -0
  20. package/dist/connect/identity-encryption.d.ts +12 -0
  21. package/dist/connect/identity-encryption.d.ts.map +1 -1
  22. package/dist/connect/identity-encryption.js +187 -0
  23. package/dist/connect/identity-encryption.js.map +1 -0
  24. package/dist/connect/index.d.ts +11 -0
  25. package/dist/connect/index.d.ts.map +1 -1
  26. package/dist/connect/index.js +11 -0
  27. package/dist/connect/index.js.map +1 -0
  28. package/dist/connect/login.d.ts +22 -0
  29. package/dist/connect/login.d.ts.map +1 -1
  30. package/dist/connect/login.js +172 -0
  31. package/dist/connect/login.js.map +1 -0
  32. package/dist/connect/parse-auth-params.d.ts +14 -0
  33. package/dist/connect/parse-auth-params.d.ts.map +1 -0
  34. package/dist/connect/parse-auth-params.js +40 -0
  35. package/dist/connect/parse-auth-params.js.map +1 -0
  36. package/dist/connect/parse-callback-params.d.ts +13 -0
  37. package/dist/connect/parse-callback-params.d.ts.map +1 -1
  38. package/dist/connect/parse-callback-params.js +4 -1
  39. package/dist/connect/parse-callback-params.js.map +1 -1
  40. package/dist/connect/smart-account.d.ts +96 -0
  41. package/dist/connect/smart-account.d.ts.map +1 -0
  42. package/dist/connect/smart-account.js +761 -0
  43. package/dist/connect/smart-account.js.map +1 -0
  44. package/dist/connect/types.d.ts +2 -0
  45. package/dist/connect/types.d.ts.map +1 -1
  46. package/dist/connect/types.js.map +1 -1
  47. package/dist/entity/create.d.ts +8 -0
  48. package/dist/entity/create.js +51 -0
  49. package/dist/entity/create.js.map +1 -0
  50. package/dist/entity/decodedEntitiesCache.d.ts +23 -0
  51. package/dist/entity/decodedEntitiesCache.d.ts.map +1 -1
  52. package/dist/entity/decodedEntitiesCache.js +2 -0
  53. package/dist/entity/decodedEntitiesCache.js.map +1 -0
  54. package/dist/entity/delete.d.ts +12 -0
  55. package/dist/entity/delete.js +44 -0
  56. package/dist/entity/delete.js.map +1 -0
  57. package/dist/entity/entity.d.ts +18 -0
  58. package/dist/entity/entity.js +19 -0
  59. package/dist/entity/entity.js.map +1 -0
  60. package/dist/entity/entityRelationParentsMap.d.ts +4 -0
  61. package/dist/entity/entityRelationParentsMap.js +2 -0
  62. package/dist/entity/entityRelationParentsMap.js.map +1 -0
  63. package/dist/entity/findMany.d.ts +22 -0
  64. package/dist/entity/findMany.d.ts.map +1 -1
  65. package/dist/entity/findMany.js +8 -8
  66. package/dist/entity/findMany.js.map +1 -1
  67. package/dist/entity/findOne.d.ts +8 -0
  68. package/dist/entity/findOne.js +31 -0
  69. package/dist/entity/findOne.js.map +1 -0
  70. package/dist/entity/getEntityRelations.d.ts +4 -0
  71. package/dist/entity/getEntityRelations.d.ts.map +1 -1
  72. package/dist/entity/getEntityRelations.js +35 -0
  73. package/dist/entity/getEntityRelations.js.map +1 -0
  74. package/dist/entity/hasValidTypesProperty.d.ts +2 -0
  75. package/dist/entity/hasValidTypesProperty.d.ts.map +1 -0
  76. package/dist/entity/hasValidTypesProperty.js +4 -0
  77. package/dist/entity/hasValidTypesProperty.js.map +1 -0
  78. package/dist/entity/index.d.ts +9 -0
  79. package/dist/entity/index.js +9 -0
  80. package/dist/entity/index.js.map +1 -0
  81. package/dist/entity/relationParentsMap.d.ts +4 -0
  82. package/dist/entity/relationParentsMap.js +2 -0
  83. package/dist/entity/relationParentsMap.js.map +1 -0
  84. package/dist/entity/removeRelation.d.ts +7 -0
  85. package/dist/entity/removeRelation.js +17 -0
  86. package/dist/entity/removeRelation.js.map +1 -0
  87. package/dist/entity/test.d.ts +2 -0
  88. package/dist/entity/test.d.ts.map +1 -0
  89. package/dist/entity/test.js +2 -0
  90. package/dist/entity/test.js.map +1 -0
  91. package/dist/entity/types.d.ts +8 -8
  92. package/dist/entity/update.d.ts +8 -0
  93. package/dist/entity/update.js +58 -0
  94. package/dist/entity/update.js.map +1 -0
  95. package/dist/entity/variant-schema.d.ts +247 -0
  96. package/dist/entity/variant-schema.d.ts.map +1 -0
  97. package/dist/entity/variant-schema.js +204 -0
  98. package/dist/entity/variant-schema.js.map +1 -0
  99. package/dist/identity/auth-storage.d.ts +6 -0
  100. package/dist/identity/auth-storage.d.ts.map +1 -1
  101. package/dist/identity/auth-storage.js +52 -0
  102. package/dist/identity/auth-storage.js.map +1 -0
  103. package/dist/identity/get-verified-identity.d.ts +7 -0
  104. package/dist/identity/get-verified-identity.d.ts.map +1 -1
  105. package/dist/identity/get-verified-identity.js +37 -0
  106. package/dist/identity/get-verified-identity.js.map +1 -0
  107. package/dist/identity/identity-encryption.d.ts +7 -0
  108. package/dist/identity/identity-encryption.js +120 -0
  109. package/dist/identity/identity-encryption.js.map +1 -0
  110. package/dist/identity/index.d.ts +7 -0
  111. package/dist/identity/index.d.ts.map +1 -1
  112. package/dist/identity/index.js +7 -0
  113. package/dist/identity/index.js.map +1 -0
  114. package/dist/identity/logout.d.ts +3 -0
  115. package/dist/identity/logout.js +9 -0
  116. package/dist/identity/logout.js.map +1 -0
  117. package/dist/identity/prove-ownership.d.ts +15 -0
  118. package/dist/identity/prove-ownership.d.ts.map +1 -1
  119. package/dist/identity/prove-ownership.js +90 -0
  120. package/dist/identity/prove-ownership.js.map +1 -0
  121. package/dist/identity/types.d.ts +37 -0
  122. package/dist/identity/types.d.ts.map +1 -0
  123. package/dist/identity/types.js +11 -0
  124. package/dist/identity/types.js.map +1 -0
  125. package/dist/inboxes/create-inbox.d.ts +22 -0
  126. package/dist/inboxes/create-inbox.js +76 -0
  127. package/dist/inboxes/create-inbox.js.map +1 -0
  128. package/dist/inboxes/get-list-inboxes.d.ts +20 -0
  129. package/dist/inboxes/get-list-inboxes.js +45 -0
  130. package/dist/inboxes/get-list-inboxes.js.map +1 -0
  131. package/dist/inboxes/index.d.ts +11 -0
  132. package/dist/inboxes/index.js +11 -0
  133. package/dist/inboxes/index.js.map +1 -0
  134. package/dist/inboxes/merge-messages.d.ts +6 -0
  135. package/dist/inboxes/merge-messages.js +23 -0
  136. package/dist/inboxes/merge-messages.js.map +1 -0
  137. package/dist/inboxes/message-encryption.d.ts +15 -0
  138. package/dist/inboxes/message-encryption.js +29 -0
  139. package/dist/inboxes/message-encryption.js.map +1 -0
  140. package/dist/inboxes/message-validation.d.ts +6 -0
  141. package/dist/inboxes/message-validation.d.ts.map +1 -1
  142. package/dist/inboxes/message-validation.js +53 -0
  143. package/dist/inboxes/message-validation.js.map +1 -0
  144. package/dist/inboxes/prepare-message.d.ts +2 -2
  145. package/dist/inboxes/prepare-message.js +78 -0
  146. package/dist/inboxes/prepare-message.js.map +1 -0
  147. package/dist/inboxes/recover-inbox-creator.d.ts +5 -0
  148. package/dist/inboxes/recover-inbox-creator.js +24 -0
  149. package/dist/inboxes/recover-inbox-creator.js.map +1 -0
  150. package/dist/inboxes/recover-inbox-message-signer.d.ts +4 -0
  151. package/dist/inboxes/recover-inbox-message-signer.js +32 -0
  152. package/dist/inboxes/recover-inbox-message-signer.js.map +1 -0
  153. package/dist/inboxes/send-message.d.ts +19 -0
  154. package/dist/inboxes/send-message.js +58 -0
  155. package/dist/inboxes/send-message.js.map +1 -0
  156. package/dist/inboxes/types.d.ts +4 -0
  157. package/dist/inboxes/types.d.ts.map +1 -0
  158. package/dist/inboxes/types.js +3 -0
  159. package/dist/inboxes/types.js.map +1 -0
  160. package/dist/index.d.ts +14 -0
  161. package/dist/index.js +14 -0
  162. package/dist/index.js.map +1 -0
  163. package/dist/key/create-key.d.ts +11 -0
  164. package/dist/key/create-key.d.ts.map +1 -0
  165. package/dist/key/create-key.js +22 -0
  166. package/dist/key/create-key.js.map +1 -0
  167. package/dist/key/decrypt-key.d.ts +9 -0
  168. package/dist/key/decrypt-key.d.ts.map +1 -0
  169. package/dist/key/decrypt-key.js +16 -0
  170. package/dist/key/decrypt-key.js.map +1 -0
  171. package/dist/key/encrypt-key.d.ts +11 -0
  172. package/dist/key/encrypt-key.d.ts.map +1 -0
  173. package/dist/key/encrypt-key.js +20 -0
  174. package/dist/key/encrypt-key.js.map +1 -0
  175. package/dist/key/index.d.ts +5 -0
  176. package/dist/key/index.d.ts.map +1 -0
  177. package/dist/key/index.js +5 -0
  178. package/dist/key/index.js.map +1 -0
  179. package/dist/key/key-box.d.ts +19 -0
  180. package/dist/key/key-box.d.ts.map +1 -0
  181. package/dist/key/key-box.js +38 -0
  182. package/dist/key/key-box.js.map +1 -0
  183. package/dist/messages/decrypt-message.d.ts +7 -0
  184. package/dist/messages/decrypt-message.d.ts.map +1 -0
  185. package/dist/messages/decrypt-message.js +11 -0
  186. package/dist/messages/decrypt-message.js.map +1 -0
  187. package/dist/messages/encrypt-message.d.ts +7 -0
  188. package/dist/messages/encrypt-message.d.ts.map +1 -0
  189. package/dist/messages/encrypt-message.js +12 -0
  190. package/dist/messages/encrypt-message.js.map +1 -0
  191. package/dist/messages/index.d.ts +6 -0
  192. package/dist/messages/index.js +6 -0
  193. package/dist/messages/index.js.map +1 -0
  194. package/dist/messages/serialize.d.ts +3 -0
  195. package/dist/messages/serialize.d.ts.map +1 -0
  196. package/dist/messages/serialize.js +30 -0
  197. package/dist/messages/serialize.js.map +1 -0
  198. package/dist/messages/signed-update-message.d.ts +23 -0
  199. package/dist/messages/signed-update-message.js +56 -0
  200. package/dist/messages/signed-update-message.js.map +1 -0
  201. package/dist/messages/types.d.ts +1268 -0
  202. package/dist/messages/types.d.ts.map +1 -1
  203. package/dist/messages/types.js +312 -0
  204. package/dist/messages/types.js.map +1 -0
  205. package/dist/space-events/accept-invitation.d.ts +9 -0
  206. package/dist/space-events/accept-invitation.js +28 -0
  207. package/dist/space-events/accept-invitation.js.map +1 -0
  208. package/dist/space-events/apply-event.d.ts +11 -0
  209. package/dist/space-events/apply-event.js +130 -0
  210. package/dist/space-events/apply-event.js.map +1 -0
  211. package/dist/space-events/create-inbox.d.ts +14 -0
  212. package/dist/space-events/create-inbox.js +41 -0
  213. package/dist/space-events/create-inbox.js.map +1 -0
  214. package/dist/space-events/create-invitation.d.ts +12 -0
  215. package/dist/space-events/create-invitation.js +30 -0
  216. package/dist/space-events/create-invitation.js.map +1 -0
  217. package/dist/space-events/create-space.d.ts +9 -0
  218. package/dist/space-events/create-space.js +29 -0
  219. package/dist/space-events/create-space.js.map +1 -0
  220. package/dist/space-events/delete-space.d.ts +10 -0
  221. package/dist/space-events/delete-space.js +30 -0
  222. package/dist/space-events/delete-space.js.map +1 -0
  223. package/dist/space-events/hash-event.d.ts +3 -0
  224. package/dist/space-events/hash-event.js +7 -0
  225. package/dist/space-events/hash-event.js.map +1 -0
  226. package/dist/space-events/index.d.ts +9 -0
  227. package/dist/space-events/index.js +9 -0
  228. package/dist/space-events/index.js.map +1 -0
  229. package/dist/space-events/types.d.ts +222 -0
  230. package/dist/space-events/types.d.ts.map +1 -0
  231. package/dist/space-events/types.js +102 -0
  232. package/dist/space-events/types.js.map +1 -0
  233. package/dist/space-info/decrypt-space-info.d.ts +7 -0
  234. package/dist/space-info/decrypt-space-info.js +18 -0
  235. package/dist/space-info/decrypt-space-info.js.map +1 -0
  236. package/dist/space-info/encrypt-and-sign-space-info.d.ts +17 -0
  237. package/dist/space-info/encrypt-and-sign-space-info.js +39 -0
  238. package/dist/space-info/encrypt-and-sign-space-info.js.map +1 -0
  239. package/dist/space-info/index.d.ts +4 -0
  240. package/dist/space-info/index.js +4 -0
  241. package/dist/space-info/index.js.map +1 -0
  242. package/dist/space-info/types.d.ts +6 -0
  243. package/dist/space-info/types.d.ts.map +1 -0
  244. package/dist/space-info/types.js +5 -0
  245. package/dist/space-info/types.js.map +1 -0
  246. package/dist/store-connect.d.ts +149 -0
  247. package/dist/store-connect.d.ts.map +1 -1
  248. package/dist/store-connect.js +289 -0
  249. package/dist/store-connect.js.map +1 -0
  250. package/dist/store.d.ts +158 -0
  251. package/dist/store.d.ts.map +1 -1
  252. package/dist/store.js +354 -0
  253. package/dist/store.js.map +1 -0
  254. package/dist/type/type.d.ts +14 -0
  255. package/dist/type/type.d.ts.map +1 -1
  256. package/dist/type/type.js +25 -0
  257. package/dist/type/type.js.map +1 -0
  258. package/dist/types.d.ts +80 -0
  259. package/dist/types.d.ts.map +1 -0
  260. package/dist/types.js +37 -0
  261. package/dist/types.js.map +1 -0
  262. package/dist/utils/assertExhaustive.d.ts +2 -0
  263. package/dist/utils/assertExhaustive.d.ts.map +1 -0
  264. package/dist/utils/assertExhaustive.js +4 -0
  265. package/dist/utils/assertExhaustive.js.map +1 -0
  266. package/dist/utils/automergeId.d.ts +1 -1
  267. package/dist/utils/automergeId.d.ts.map +1 -1
  268. package/dist/utils/automergeId.js +1 -1
  269. package/dist/utils/automergeId.js.map +1 -1
  270. package/dist/utils/base58.d.ts +36 -0
  271. package/dist/utils/base58.d.ts.map +1 -0
  272. package/dist/utils/base58.js +62 -0
  273. package/dist/utils/base58.js.map +1 -0
  274. package/dist/utils/hexBytesAddressUtils.d.ts +4 -0
  275. package/dist/utils/hexBytesAddressUtils.d.ts.map +1 -0
  276. package/dist/utils/hexBytesAddressUtils.js +21 -0
  277. package/dist/utils/hexBytesAddressUtils.js.map +1 -0
  278. package/dist/utils/index.d.ts +9 -0
  279. package/dist/utils/index.js +9 -0
  280. package/dist/utils/index.js.map +1 -0
  281. package/dist/utils/internal/base58Utils.d.ts +4 -0
  282. package/dist/utils/internal/base58Utils.d.ts.map +1 -0
  283. package/dist/utils/internal/base58Utils.js +40 -0
  284. package/dist/utils/internal/base58Utils.js.map +1 -0
  285. package/dist/utils/internal/deep-merge.d.ts +7 -0
  286. package/dist/utils/internal/deep-merge.d.ts.map +1 -0
  287. package/dist/utils/internal/deep-merge.js +33 -0
  288. package/dist/utils/internal/deep-merge.js.map +1 -0
  289. package/dist/utils/isRelationField.d.ts +3 -0
  290. package/dist/utils/isRelationField.d.ts.map +1 -0
  291. package/dist/utils/isRelationField.js +8 -0
  292. package/dist/utils/isRelationField.js.map +1 -0
  293. package/dist/utils/jsc.d.ts +49 -0
  294. package/dist/utils/jsc.d.ts.map +1 -0
  295. package/dist/utils/jsc.js +88 -0
  296. package/dist/utils/jsc.js.map +1 -0
  297. package/dist/utils/stringToUint8Array.d.ts +3 -0
  298. package/dist/utils/stringToUint8Array.d.ts.map +1 -0
  299. package/dist/utils/stringToUint8Array.js +9 -0
  300. package/dist/utils/stringToUint8Array.js.map +1 -0
  301. package/package.json +5 -2
  302. package/src/connect/abis/MainVotingPlugin.json +1865 -0
  303. package/src/connect/abis/PersonalSpaceAdminPlugin.json +531 -0
  304. package/src/connect/abis.ts +183 -0
  305. package/src/connect/create-callback-params.ts +4 -1
  306. package/src/connect/identity-encryption.ts +10 -14
  307. package/src/connect/index.ts +1 -1
  308. package/src/connect/login.ts +106 -18
  309. package/src/connect/parse-callback-params.ts +4 -1
  310. package/src/connect/smart-account.ts +915 -0
  311. package/src/connect/types.ts +2 -0
  312. package/src/entity/decodedEntitiesCache.ts +1 -1
  313. package/src/entity/findMany.ts +16 -14
  314. package/src/entity/getEntityRelations.ts +1 -1
  315. package/src/entity/types.ts +8 -8
  316. package/src/identity/auth-storage.ts +11 -1
  317. package/src/identity/get-verified-identity.ts +6 -1
  318. package/src/identity/index.ts +1 -1
  319. package/src/identity/prove-ownership.ts +52 -8
  320. package/src/inboxes/message-validation.ts +17 -2
  321. package/src/messages/types.ts +6 -0
  322. package/src/store-connect.ts +1 -52
  323. package/src/store.ts +78 -48
  324. package/src/type/type.ts +4 -2
  325. package/src/types.ts +19 -1
  326. package/src/utils/automergeId.ts +1 -1
  327. package/dist/connect/prove-ownership.d.ts.map +0 -1
  328. package/src/connect/prove-ownership.ts +0 -58
@@ -0,0 +1,9 @@
1
+ export * from './create.js';
2
+ export * from './delete.js';
3
+ export * from './entity.js';
4
+ export * from './findMany.js';
5
+ export * from './findOne.js';
6
+ export * from './removeRelation.js';
7
+ export * from './types.js';
8
+ export * from './update.js';
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../src/entity/index.ts"],"sourcesContent":[null],"mappings":"AAAA,cAAc,aAAa;AAC3B,cAAc,aAAa;AAC3B,cAAc,aAAa;AAC3B,cAAc,eAAe;AAC7B,cAAc,cAAc;AAC5B,cAAc,qBAAqB;AACnC,cAAc,YAAY;AAC1B,cAAc,aAAa","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ import type { DecodedEntitiesCacheEntry } from './decodedEntitiesCache.js';
2
+ export declare const relationParentsMap: Map<string, // relation Id
3
+ Map<DecodedEntitiesCacheEntry, number>>;
4
+ //# sourceMappingURL=relationParentsMap.d.ts.map
@@ -0,0 +1,2 @@
1
+ export const relationParentsMap = /*#__PURE__*/new Map();
2
+ //# sourceMappingURL=relationParentsMap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"relationParentsMap.js","names":["relationParentsMap","Map"],"sources":["../../src/entity/relationParentsMap.ts"],"sourcesContent":[null],"mappings":"AAEA,OAAO,MAAMA,kBAAkB,gBAG3B,IAAIC,GAAG,EAAE","ignoreList":[]}
@@ -0,0 +1,7 @@
1
+ import type { DocHandle } from '@automerge/automerge-repo';
2
+ import type { DocumentContent } from './types.js';
3
+ /**
4
+ * Removes a relation from an entity
5
+ */
6
+ export declare const removeRelation: (handle: DocHandle<DocumentContent>) => (relationId: string) => boolean;
7
+ //# sourceMappingURL=removeRelation.d.ts.map
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Removes a relation from an entity
3
+ */
4
+ export const removeRelation = handle => {
5
+ return relationId => {
6
+ let result = false;
7
+ // apply changes to the repo -> removes the existing entity by its id
8
+ handle.change(doc => {
9
+ if (doc.relations?.[relationId] !== undefined) {
10
+ doc.relations[relationId].__deleted = true;
11
+ result = true;
12
+ }
13
+ });
14
+ return result;
15
+ };
16
+ };
17
+ //# sourceMappingURL=removeRelation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"removeRelation.js","names":["removeRelation","handle","relationId","result","change","doc","relations","undefined","__deleted"],"sources":["../../src/entity/removeRelation.ts"],"sourcesContent":[null],"mappings":"AAGA;;;AAGA,OAAO,MAAMA,cAAc,GAAIC,MAAkC,IAAI;EACnE,OAAQC,UAAkB,IAAa;IACrC,IAAIC,MAAM,GAAG,KAAK;IAElB;IACAF,MAAM,CAACG,MAAM,CAAEC,GAAG,IAAI;MACpB,IAAIA,GAAG,CAACC,SAAS,GAAGJ,UAAU,CAAC,KAAKK,SAAS,EAAE;QAC7CF,GAAG,CAACC,SAAS,CAACJ,UAAU,CAAC,CAACM,SAAS,GAAG,IAAI;QAC1CL,MAAM,GAAG,IAAI;MACf;IACF,CAAC,CAAC;IAEF,OAAOA,MAAM;EACf,CAAC;AACH,CAAC","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test.d.ts","sourceRoot":"","sources":["../../src/entity/test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test.js","names":[],"sources":["../../src/entity/test.ts"],"sourcesContent":[null],"mappings":"","ignoreList":[]}
@@ -43,8 +43,8 @@ export type EntityNumberFilter = {
43
43
  is?: number;
44
44
  greaterThan?: number;
45
45
  lessThan?: number;
46
- NOT?: EntityNumberFilter;
47
- OR?: EntityNumberFilter[];
46
+ not?: EntityNumberFilter;
47
+ or?: EntityNumberFilter[];
48
48
  };
49
49
  export type EntityTextFilter = {
50
50
  is?: string;
@@ -52,19 +52,19 @@ export type EntityTextFilter = {
52
52
  endsWith?: string;
53
53
  contains?: string;
54
54
  equals?: string;
55
- NOT?: EntityTextFilter;
56
- OR?: EntityTextFilter[];
55
+ not?: EntityTextFilter;
56
+ or?: EntityTextFilter[];
57
57
  };
58
58
  export type CrossFieldFilter<T> = {
59
59
  [K in keyof T]?: EntityFieldFilter<T[K]>;
60
60
  } & {
61
- OR?: Array<CrossFieldFilter<T>>;
62
- NOT?: CrossFieldFilter<T>;
61
+ or?: Array<CrossFieldFilter<T>>;
62
+ not?: CrossFieldFilter<T>;
63
63
  };
64
64
  export type EntityFieldFilter<T> = {
65
65
  is?: T;
66
- NOT?: EntityFieldFilter<T>;
67
- OR?: Array<EntityFieldFilter<T>>;
66
+ not?: EntityFieldFilter<T>;
67
+ or?: Array<EntityFieldFilter<T>>;
68
68
  } & (T extends boolean ? {
69
69
  is?: boolean;
70
70
  } : T extends number ? {
@@ -0,0 +1,8 @@
1
+ import type { DocHandle } from '@automerge/automerge-repo';
2
+ import * as Schema from 'effect/Schema';
3
+ import type { AnyNoContext, DocumentContent, Entity, Update } from './types.js';
4
+ /**
5
+ * Update an existing entity model of given type in the repo.
6
+ */
7
+ export declare const update: <const S extends AnyNoContext>(handle: DocHandle<DocumentContent>, type: S) => (id: string, data: Schema.Simplify<Partial<Schema.Schema.Type<Update<S>>>>) => Entity<S>;
8
+ //# sourceMappingURL=update.d.ts.map
@@ -0,0 +1,58 @@
1
+ import * as Schema from 'effect/Schema';
2
+ import { EntityNotFoundError } from './entity.js';
3
+ /**
4
+ * Update an existing entity model of given type in the repo.
5
+ */
6
+ export const update = (handle, type) => {
7
+ const validate = Schema.validateSync(Schema.partial(type.update));
8
+ const encode = Schema.encodeSync(type.update);
9
+ const decode = Schema.decodeUnknownSync(type.update);
10
+ // TODO: what's the right way to get the name of the type?
11
+ // @ts-expect-error name is defined
12
+ const typeName = type.name;
13
+ return (id, data) => {
14
+ validate(data);
15
+ // apply changes to the repo -> updates the existing entity to the repo entities document
16
+ let updated = undefined;
17
+ handle.change(doc => {
18
+ if (doc.entities === undefined) {
19
+ return;
20
+ }
21
+ // TODO: Fetch the pre-decoded value from the local cache.
22
+ const entity = doc.entities[id] ?? undefined;
23
+ if (entity === undefined || typeof entity !== 'object') {
24
+ return;
25
+ }
26
+ // TODO: Try to get a diff of the entity properties and only override the changed ones.
27
+ updated = {
28
+ ...decode(entity),
29
+ ...data
30
+ };
31
+ const encoded = {
32
+ ...encode(updated),
33
+ '@@types@@': [typeName],
34
+ __deleted: entity.__deleted ?? false,
35
+ __version: entity.__version ?? ''
36
+ };
37
+ // filter out undefined values otherwise Automerge will throw an error
38
+ for (const key in updated) {
39
+ if (updated[key] === undefined) {
40
+ delete encoded[key];
41
+ }
42
+ }
43
+ doc.entities[id] = encoded;
44
+ });
45
+ if (updated === undefined) {
46
+ throw new EntityNotFoundError({
47
+ id,
48
+ type
49
+ });
50
+ }
51
+ return {
52
+ id,
53
+ type: typeName,
54
+ ...updated
55
+ };
56
+ };
57
+ };
58
+ //# sourceMappingURL=update.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update.js","names":["Schema","EntityNotFoundError","update","handle","type","validate","validateSync","partial","encode","encodeSync","decode","decodeUnknownSync","typeName","name","id","data","updated","undefined","change","doc","entities","entity","encoded","__deleted","__version","key"],"sources":["../../src/entity/update.ts"],"sourcesContent":[null],"mappings":"AACA,OAAO,KAAKA,MAAM,MAAM,eAAe;AACvC,SAASC,mBAAmB,QAAQ,aAAa;AAGjD;;;AAGA,OAAO,MAAMC,MAAM,GAAGA,CAA+BC,MAAkC,EAAEC,IAAO,KAAI;EAClG,MAAMC,QAAQ,GAAGL,MAAM,CAACM,YAAY,CAACN,MAAM,CAACO,OAAO,CAACH,IAAI,CAACF,MAAM,CAAC,CAAC;EACjE,MAAMM,MAAM,GAAGR,MAAM,CAACS,UAAU,CAACL,IAAI,CAACF,MAAM,CAAC;EAC7C,MAAMQ,MAAM,GAAGV,MAAM,CAACW,iBAAiB,CAACP,IAAI,CAACF,MAAM,CAAC;EAEpD;EACA;EACA,MAAMU,QAAQ,GAAGR,IAAI,CAACS,IAAI;EAE1B,OAAO,CAACC,EAAU,EAAEC,IAA6D,KAAe;IAC9FV,QAAQ,CAACU,IAAI,CAAC;IAEd;IACA,IAAIC,OAAO,GAAsCC,SAAS;IAC1Dd,MAAM,CAACe,MAAM,CAAEC,GAAG,IAAI;MACpB,IAAIA,GAAG,CAACC,QAAQ,KAAKH,SAAS,EAAE;QAC9B;MACF;MAEA;MACA,MAAMI,MAAM,GAAGF,GAAG,CAACC,QAAQ,CAACN,EAAE,CAAC,IAAIG,SAAS;MAC5C,IAAII,MAAM,KAAKJ,SAAS,IAAI,OAAOI,MAAM,KAAK,QAAQ,EAAE;QACtD;MACF;MAEA;MACAL,OAAO,GAAG;QAAE,GAAGN,MAAM,CAACW,MAAM,CAAC;QAAE,GAAGN;MAAI,CAAE;MAExC,MAAMO,OAAO,GAAG;QACd,GAAGd,MAAM,CAACQ,OAAO,CAAC;QAClB,WAAW,EAAE,CAACJ,QAAQ,CAAC;QACvBW,SAAS,EAAEF,MAAM,CAACE,SAAS,IAAI,KAAK;QACpCC,SAAS,EAAEH,MAAM,CAACG,SAAS,IAAI;OAChC;MACD;MACA,KAAK,MAAMC,GAAG,IAAIT,OAAO,EAAE;QACzB,IAAIA,OAAO,CAACS,GAAG,CAAC,KAAKR,SAAS,EAAE;UAC9B,OAAOK,OAAO,CAACG,GAAG,CAAC;QACrB;MACF;MACAN,GAAG,CAACC,QAAQ,CAACN,EAAE,CAAC,GAAGQ,OAAO;IAC5B,CAAC,CAAC;IAEF,IAAIN,OAAO,KAAKC,SAAS,EAAE;MACzB,MAAM,IAAIhB,mBAAmB,CAAC;QAAEa,EAAE;QAAEV;MAAI,CAAE,CAAC;IAC7C;IAEA,OAAO;MAAEU,EAAE;MAAEV,IAAI,EAAEQ,QAAQ;MAAE,GAAII;IAAiC,CAAE;EACtE,CAAC;AACH,CAAC","ignoreList":[]}
@@ -0,0 +1,247 @@
1
+ /**
2
+ * @since 1.0.0
3
+ */
4
+ import type { Brand } from 'effect/Brand';
5
+ import type * as Effect from 'effect/Effect';
6
+ import * as Option from 'effect/Option';
7
+ import * as ParseResult from 'effect/ParseResult';
8
+ import { type Pipeable } from 'effect/Pipeable';
9
+ import * as Schema from 'effect/Schema';
10
+ import type * as AST from 'effect/SchemaAST';
11
+ /**
12
+ * @since 1.0.0
13
+ * @category type ids
14
+ */
15
+ export declare const TypeId: unique symbol;
16
+ /**
17
+ * @since 1.0.0
18
+ * @category type ids
19
+ */
20
+ export type TypeId = typeof TypeId;
21
+ /**
22
+ * @since 1.0.0
23
+ * @category models
24
+ */
25
+ export interface Struct<in out A extends Field.Fields> extends Pipeable {
26
+ readonly [TypeId]: A;
27
+ }
28
+ /**
29
+ * @since 1.0.0
30
+ * @category guards
31
+ */
32
+ export declare const isStruct: (u: unknown) => u is Struct<any>;
33
+ /**
34
+ * @since 1.0.0
35
+ * @category models
36
+ */
37
+ export declare namespace Struct {
38
+ /**
39
+ * @since 1.0.0
40
+ * @category models
41
+ */
42
+ type Any = {
43
+ readonly [TypeId]: any;
44
+ };
45
+ /**
46
+ * @since 1.0.0
47
+ * @category models
48
+ */
49
+ type Fields = {
50
+ readonly [key: string]: Schema.Schema.All | Schema.PropertySignature.All | Field<any> | Struct<any> | undefined;
51
+ };
52
+ /**
53
+ * @since 1.0.0
54
+ * @category models
55
+ */
56
+ type Validate<A, Variant extends string> = {
57
+ readonly [K in keyof A]: A[K] extends {
58
+ readonly [TypeId]: infer _;
59
+ } ? Validate<A[K], Variant> : A[K] extends Field<infer Config> ? [keyof Config] extends [Variant] ? {} : 'field must have valid variants' : {};
60
+ };
61
+ }
62
+ /**
63
+ * @since 1.0.0
64
+ * @category type ids
65
+ */
66
+ export declare const FieldTypeId: unique symbol;
67
+ /**
68
+ * @since 1.0.0
69
+ * @category type ids
70
+ */
71
+ export type FieldTypeId = typeof FieldTypeId;
72
+ /**
73
+ * @since 1.0.0
74
+ * @category models
75
+ */
76
+ export interface Field<in out A extends Field.Config> extends Pipeable {
77
+ readonly [FieldTypeId]: FieldTypeId;
78
+ readonly schemas: A;
79
+ }
80
+ /**
81
+ * @since 1.0.0
82
+ * @category guards
83
+ */
84
+ export declare const isField: (u: unknown) => u is Field<any>;
85
+ /**
86
+ * @since 1.0.0
87
+ * @category models
88
+ */
89
+ export declare namespace Field {
90
+ /**
91
+ * @since 1.0.0
92
+ * @category models
93
+ */
94
+ type Any = {
95
+ readonly [FieldTypeId]: FieldTypeId;
96
+ };
97
+ /**
98
+ * @since 1.0.0
99
+ * @category models
100
+ */
101
+ type ValueAny = Schema.Schema.All | Schema.PropertySignature.All;
102
+ /**
103
+ * @since 1.0.0
104
+ * @category models
105
+ */
106
+ type Config = {
107
+ readonly [key: string]: Schema.Schema.All | Schema.PropertySignature.All | undefined;
108
+ };
109
+ /**
110
+ * @since 1.0.0
111
+ * @category models
112
+ */
113
+ type ConfigWithKeys<K extends string> = {
114
+ readonly [P in K]?: Schema.Schema.All | Schema.PropertySignature.All;
115
+ };
116
+ /**
117
+ * @since 1.0.0
118
+ * @category models
119
+ */
120
+ type Fields = {
121
+ readonly [key: string]: Schema.Schema.All | Schema.PropertySignature.All | Field<any> | Struct<any> | undefined;
122
+ };
123
+ }
124
+ /**
125
+ * @since 1.0.0
126
+ * @category extractors
127
+ */
128
+ export type ExtractFields<V extends string, Fields extends Struct.Fields, IsDefault = false> = {
129
+ readonly [K in keyof Fields as [Fields[K]] extends [Field<infer Config>] ? V extends keyof Config ? K : never : K]: [Fields[K]] extends [Struct<infer _>] ? Extract<V, Fields[K], IsDefault> : [Fields[K]] extends [Field<infer Config>] ? [Config[V]] extends [Schema.Schema.All | Schema.PropertySignature.All] ? Config[V] : never : [Fields[K]] extends [Schema.Schema.All | Schema.PropertySignature.All] ? Fields[K] : never;
130
+ };
131
+ /**
132
+ * @since 1.0.0
133
+ * @category extractors
134
+ */
135
+ export type Extract<V extends string, A extends Struct<any>, IsDefault = false> = [A] extends [Struct<infer Fields>] ? IsDefault extends true ? [A] extends [Schema.Schema.Any] ? A : Schema.Struct<Schema.Simplify<ExtractFields<V, Fields>>> : Schema.Struct<Schema.Simplify<ExtractFields<V, Fields>>> : never;
136
+ /**
137
+ * @category accessors
138
+ * @since 1.0.0
139
+ */
140
+ export declare const fields: <A extends Struct<any>>(self: A) => A[TypeId];
141
+ type RequiredKeys<T> = {
142
+ [K in keyof T]-?: {} extends Pick<T, K> ? never : K;
143
+ }[keyof T];
144
+ /**
145
+ * @since 1.0.0
146
+ * @category models
147
+ */
148
+ export interface Class<Self, Fields extends Struct.Fields, SchemaFields extends Schema.Struct.Fields, A, I, R, C> extends Schema.Schema<Self, Schema.Simplify<I>, R>, Struct<Fields> {
149
+ new (props: RequiredKeys<C> extends never ? void | Schema.Simplify<C> : Schema.Simplify<C>, options?: {
150
+ readonly disableValidation?: boolean;
151
+ }): A;
152
+ readonly ast: AST.Transformation;
153
+ make<Args extends Array<any>, X>(this: {
154
+ new (...args: Args): X;
155
+ }, ...args: Args): X;
156
+ annotations(annotations: Schema.Annotations.Schema<Self>): Schema.SchemaClass<Self, Schema.Simplify<I>, R>;
157
+ readonly identifier: string;
158
+ readonly fields: SchemaFields;
159
+ }
160
+ type ClassFromFields<Self, Fields extends Struct.Fields, SchemaFields extends Schema.Struct.Fields> = Class<Self, Fields, SchemaFields, Schema.Struct.Type<SchemaFields>, Schema.Struct.Encoded<SchemaFields>, Schema.Struct.Context<SchemaFields>, Schema.Struct.Constructor<SchemaFields>>;
161
+ type MissingSelfGeneric<Params extends string = ''> = `Missing \`Self\` generic - use \`class Self extends Class<Self>()(${Params}{ ... })\``;
162
+ /**
163
+ * @since 1.0.0
164
+ * @category models
165
+ */
166
+ export interface Union<Members extends ReadonlyArray<Struct<any>>> extends Schema.Union<{
167
+ readonly [K in keyof Members]: [Members[K]] extends [Schema.Schema.All] ? Members[K] : never;
168
+ }> {
169
+ }
170
+ /**
171
+ * @since 1.0.0
172
+ * @category models
173
+ */
174
+ export declare namespace Union {
175
+ /**
176
+ * @since 1.0.0
177
+ * @category models
178
+ */
179
+ type Variants<Members extends ReadonlyArray<Struct<any>>, Variants extends string> = {
180
+ readonly [Variant in Variants]: Schema.Union<{
181
+ [K in keyof Members]: Extract<Variant, Members[K]>;
182
+ }>;
183
+ };
184
+ }
185
+ /**
186
+ * @since 1.0.0
187
+ * @category models
188
+ */
189
+ export interface fromKey<S extends Schema.Schema.All, Key extends string> extends Schema.PropertySignature<':', Schema.Schema.Type<S>, Key, ':', Schema.Schema.Encoded<S>, false, Schema.Schema.Context<S>> {
190
+ }
191
+ /**
192
+ * @since 1.0.0
193
+ * @category models
194
+ */
195
+ export declare namespace fromKey {
196
+ /**
197
+ * @since 1.0.0
198
+ */
199
+ type Rename<S, Key extends string> = S extends Schema.PropertySignature<infer _TypeToken, infer _Type, infer _Key, infer _EncodedToken, infer _Encoded, infer _HasDefault, infer _R> ? Schema.PropertySignature<_TypeToken, _Type, Key, _EncodedToken, _Encoded, _HasDefault, _R> : S extends Schema.Schema.All ? fromKey<S, Key> : never;
200
+ }
201
+ /**
202
+ * @since 1.0.0
203
+ * @category constructors
204
+ */
205
+ export declare const make: <const Variants extends ReadonlyArray<string>, const Default extends Variants[number]>(options: {
206
+ readonly variants: Variants;
207
+ readonly defaultVariant: Default;
208
+ }) => {
209
+ readonly Struct: <const A extends Struct.Fields>(fields: A & Struct.Validate<A, Variants[number]>) => Struct<A>;
210
+ readonly Field: <const A extends Field.ConfigWithKeys<Variants[number]>>(config: A & { readonly [K in Exclude<keyof A, Variants[number]>]: never; }) => Field<A>;
211
+ readonly FieldOnly: <const Keys extends ReadonlyArray<Variants[number]>>(...keys: Keys) => <S extends Schema.Schema.All | Schema.PropertySignature.All>(schema: S) => Field<{ readonly [K in Keys[number]]: S; }>;
212
+ readonly FieldExcept: <const Keys extends ReadonlyArray<Variants[number]>>(...keys: Keys) => <S extends Schema.Schema.All | Schema.PropertySignature.All>(schema: S) => Field<{ readonly [K in Exclude<Variants[number], Keys[number]>]: S; }>;
213
+ readonly fieldEvolve: {
214
+ <Self extends Field<any> | Field.ValueAny, const Mapping extends Self extends Field<infer S> ? { readonly [K in keyof S]?: (variant: S[K]) => Field.ValueAny; } : { readonly [K in Variants[number]]?: (variant: Self) => Field.ValueAny; }>(f: Mapping): (self: Self) => Field<Self extends Field<infer S> ? { readonly [K in keyof S]: K extends keyof Mapping ? Mapping[K] extends (arg: any) => any ? ReturnType<Mapping[K]> : S[K] : S[K]; } : { readonly [K in Variants[number]]: K extends keyof Mapping ? Mapping[K] extends (arg: any) => any ? ReturnType<Mapping[K]> : Self : Self; }>;
215
+ <Self extends Field<any> | Field.ValueAny, const Mapping_1 extends Self extends Field<infer S> ? { readonly [K in keyof S]?: (variant: S[K]) => Field.ValueAny; } : { readonly [K in Variants[number]]?: (variant: Self) => Field.ValueAny; }>(self: Self, f: Mapping_1): Field<Self extends Field<infer S> ? { readonly [K in keyof S]: K extends keyof Mapping_1 ? Mapping_1[K] extends (arg: any) => any ? ReturnType<Mapping_1[K]> : S[K] : S[K]; } : { readonly [K in Variants[number]]: K extends keyof Mapping_1 ? Mapping_1[K] extends (arg: any) => any ? ReturnType<Mapping_1[K]> : Self : Self; }>;
216
+ };
217
+ readonly fieldFromKey: {
218
+ <Self extends Field<any> | Field.ValueAny, const Mapping_2 extends Self extends Field<infer S> ? { readonly [K in keyof S]?: string; } : { readonly [K in Variants[number]]?: string; }>(mapping: Mapping_2): (self: Self) => Field<Self extends Field<infer S> ? { readonly [K in keyof S]: K extends keyof Mapping_2 ? Mapping_2[K] extends string ? fromKey.Rename<S[K], Mapping_2[K]> : S[K] : S[K]; } : { readonly [K in Variants[number]]: K extends keyof Mapping_2 ? Mapping_2[K] extends string ? fromKey.Rename<Self, Mapping_2[K]> : Self : Self; }>;
219
+ <Self extends Field<any> | Field.ValueAny, const Mapping_3 extends Self extends Field<infer S> ? { readonly [K in keyof S]?: string; } : { readonly [K in Variants[number]]?: string; }>(self: Self, mapping: Mapping_3): Field<Self extends Field<infer S> ? { readonly [K in keyof S]: K extends keyof Mapping_3 ? Mapping_3[K] extends string ? fromKey.Rename<S[K], Mapping_3[K]> : S[K] : S[K]; } : { readonly [K in Variants[number]]: K extends keyof Mapping_3 ? Mapping_3[K] extends string ? fromKey.Rename<Self, Mapping_3[K]> : Self : Self; }>;
220
+ };
221
+ readonly Class: <Self = never>(identifier: string) => <const Fields extends Struct.Fields>(fields: Fields & Struct.Validate<Fields, Variants[number]>, annotations?: Schema.Annotations.Schema<Self>) => [Self] extends [never] ? MissingSelfGeneric : ClassFromFields<Self, Fields, Schema.Simplify<ExtractFields<Default, Fields, true>>> & { readonly [V in Variants[number]]: Extract<V, Struct<Fields>>; };
222
+ readonly Union: <const Members extends ReadonlyArray<Struct<any>>>(...members: Members) => Union<Members> & Union.Variants<Members, Variants[number]>;
223
+ readonly extract: {
224
+ <V extends Variants[number]>(variant: V): <A extends Struct<any>>(self: A) => Extract<V, A, V extends Default ? true : false>;
225
+ <V extends Variants[number], A extends Struct<any>>(self: A, variant: V): Extract<V, A, V extends Default ? true : false>;
226
+ };
227
+ };
228
+ /**
229
+ * @since 1.0.0
230
+ * @category overrideable
231
+ */
232
+ export declare const Override: <A>(value: A) => A & Brand<"Override">;
233
+ /**
234
+ * @since 1.0.0
235
+ * @category overrideable
236
+ */
237
+ export interface Overrideable<To, From, R = never> extends Schema.PropertySignature<':', (To & Brand<'Override'>) | undefined, never, ':', From, true, R> {
238
+ }
239
+ /**
240
+ * @since 1.0.0
241
+ * @category overrideable
242
+ */
243
+ export declare const Overrideable: <From, IFrom, RFrom, To, ITo, R>(from: Schema.Schema<From, IFrom, RFrom>, to: Schema.Schema<To, ITo>, options: {
244
+ readonly generate: (_: Option.Option<ITo>) => Effect.Effect<From, ParseResult.ParseIssue, R>;
245
+ }) => Overrideable<To, IFrom, RFrom | R>;
246
+ export {};
247
+ //# sourceMappingURL=variant-schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"variant-schema.d.ts","sourceRoot":"","sources":["../../src/entity/variant-schema.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,204 @@
1
+ import { constUndefined, dual } from 'effect/Function';
2
+ import * as Option from 'effect/Option';
3
+ import * as ParseResult from 'effect/ParseResult';
4
+ import { pipeArguments } from 'effect/Pipeable';
5
+ import * as Predicate from 'effect/Predicate';
6
+ import * as Schema from 'effect/Schema';
7
+ import * as Struct_ from 'effect/Struct';
8
+ /**
9
+ * @since 1.0.0
10
+ * @category type ids
11
+ */
12
+ export const TypeId = /*#__PURE__*/Symbol.for('@effect/experimental/VariantSchema');
13
+ const cacheSymbol = /*#__PURE__*/Symbol.for('@effect/experimental/VariantSchema/cache');
14
+ /**
15
+ * @since 1.0.0
16
+ * @category guards
17
+ */
18
+ export const isStruct = u => Predicate.hasProperty(u, TypeId);
19
+ /**
20
+ * @since 1.0.0
21
+ * @category type ids
22
+ */
23
+ export const FieldTypeId = /*#__PURE__*/Symbol.for('@effect/experimental/VariantSchema/Field');
24
+ /**
25
+ * @since 1.0.0
26
+ * @category guards
27
+ */
28
+ export const isField = u => Predicate.hasProperty(u, FieldTypeId);
29
+ const extract = /*#__PURE__*/dual(args => isStruct(args[0]), (self, variant, options) => {
30
+ const cache = self[cacheSymbol] ?? (self[cacheSymbol] = {});
31
+ const cacheKey = options?.isDefault === true ? '__default' : variant;
32
+ if (cache[cacheKey] !== undefined) {
33
+ return cache[cacheKey];
34
+ }
35
+ const fields = {};
36
+ for (const key of Object.keys(self[TypeId])) {
37
+ const value = self[TypeId][key];
38
+ if (TypeId in value) {
39
+ if (options?.isDefault === true && Schema.isSchema(value)) {
40
+ fields[key] = value;
41
+ } else {
42
+ fields[key] = extract(value, variant);
43
+ }
44
+ } else if (FieldTypeId in value) {
45
+ if (variant in value.schemas) {
46
+ fields[key] = value.schemas[variant];
47
+ }
48
+ } else {
49
+ fields[key] = value;
50
+ }
51
+ }
52
+ return cache[cacheKey] = Schema.Struct(fields);
53
+ });
54
+ /**
55
+ * @category accessors
56
+ * @since 1.0.0
57
+ */
58
+ export const fields = self => self[TypeId];
59
+ /**
60
+ * @since 1.0.0
61
+ * @category constructors
62
+ */
63
+ export const make = options => {
64
+ function Class(identifier) {
65
+ return (fields, annotations) => {
66
+ const idField = Field({
67
+ select: Schema.String
68
+ });
69
+ const deletedField = Field({
70
+ select: Schema.Boolean
71
+ });
72
+ const versionField = Field({
73
+ select: Schema.String
74
+ });
75
+ const relationField = Field({
76
+ select: Schema.optional(Schema.Struct({
77
+ id: Schema.String
78
+ }))
79
+ });
80
+ const extractFields = {
81
+ ...fields,
82
+ id: idField,
83
+ __deleted: deletedField,
84
+ __version: versionField,
85
+ _relation: relationField
86
+ };
87
+ const variantStruct = Struct(extractFields);
88
+ const schema = extract(variantStruct, options.defaultVariant, {
89
+ isDefault: true
90
+ });
91
+ class Base extends Schema.Class(identifier)(schema.fields, annotations) {
92
+ static [TypeId] = extractFields;
93
+ }
94
+ for (const variant of options.variants) {
95
+ Object.defineProperty(Base, variant, {
96
+ value: extract(variantStruct, variant).annotations({
97
+ identifier: `${identifier}.${variant}`,
98
+ title: `${identifier}.${variant}`
99
+ })
100
+ });
101
+ }
102
+ return Base;
103
+ };
104
+ }
105
+ function FieldOnly(...keys) {
106
+ return schema => {
107
+ const obj = {};
108
+ for (const key of keys) {
109
+ obj[key] = schema;
110
+ }
111
+ return Field(obj);
112
+ };
113
+ }
114
+ function FieldExcept(...keys) {
115
+ return schema => {
116
+ const obj = {};
117
+ for (const variant of options.variants) {
118
+ if (!keys.includes(variant)) {
119
+ obj[variant] = schema;
120
+ }
121
+ }
122
+ return Field(obj);
123
+ };
124
+ }
125
+ function UnionVariants(...members) {
126
+ return Union(members, options.variants);
127
+ }
128
+ const fieldEvolve = dual(2, (self, f) => {
129
+ const field = isField(self) ? self : Field(Object.fromEntries(options.variants.map(variant => [variant, self])));
130
+ return Field(Struct_.evolve(field.schemas, f));
131
+ });
132
+ const fieldFromKey = dual(2, (self, mapping) => {
133
+ const obj = {};
134
+ if (isField(self)) {
135
+ for (const [key, schema] of Object.entries(self.schemas)) {
136
+ obj[key] = mapping[key] !== undefined ? renameFieldValue(schema, mapping[key]) : schema;
137
+ }
138
+ } else {
139
+ for (const key of options.variants) {
140
+ obj[key] = mapping[key] !== undefined ? renameFieldValue(self, mapping[key]) : self;
141
+ }
142
+ }
143
+ return Field(obj);
144
+ });
145
+ const extractVariants = dual(2, (self, variant) => extract(self, variant, {
146
+ isDefault: variant === options.defaultVariant
147
+ }));
148
+ return {
149
+ Struct,
150
+ Field,
151
+ FieldOnly,
152
+ FieldExcept,
153
+ Class,
154
+ Union: UnionVariants,
155
+ fieldEvolve,
156
+ fieldFromKey,
157
+ extract: extractVariants
158
+ };
159
+ };
160
+ /**
161
+ * @since 1.0.0
162
+ * @category overrideable
163
+ */
164
+ export const Override = value => value;
165
+ /**
166
+ * @since 1.0.0
167
+ * @category overrideable
168
+ */
169
+ export const Overrideable = (from, to, options) => Schema.transformOrFail(from, Schema.Union(Schema.Undefined, to.pipe(Schema.brand('Override'))), {
170
+ decode: _ => ParseResult.succeed(undefined),
171
+ encode: dt => options.generate(dt === undefined ? Option.none() : Option.some(dt))
172
+ }).pipe(Schema.propertySignature, Schema.withConstructorDefault(constUndefined));
173
+ const StructProto = {
174
+ pipe() {
175
+ return pipeArguments(this, arguments);
176
+ }
177
+ };
178
+ const Struct = fields => {
179
+ const self = Object.create(StructProto);
180
+ self[TypeId] = fields;
181
+ return self;
182
+ };
183
+ const FieldProto = {
184
+ [FieldTypeId]: FieldTypeId,
185
+ pipe() {
186
+ return pipeArguments(this, arguments);
187
+ }
188
+ };
189
+ const Field = schemas => {
190
+ const self = Object.create(FieldProto);
191
+ self.schemas = schemas;
192
+ return self;
193
+ };
194
+ const Union = (members, variants) => {
195
+ class VariantUnion extends Schema.Union(...members.filter(member => Schema.isSchema(member))) {}
196
+ for (const variant of variants) {
197
+ Object.defineProperty(VariantUnion, variant, {
198
+ value: Schema.Union(...members.map(member => extract(member, variant)))
199
+ });
200
+ }
201
+ return VariantUnion;
202
+ };
203
+ const renameFieldValue = (self, key) => Schema.isPropertySignature(self) ? Schema.fromKey(self, key) : Schema.fromKey(Schema.propertySignature(self), key);
204
+ //# sourceMappingURL=variant-schema.js.map