@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.
- package/dist/connect/abis/MainVotingPlugin.json +1865 -0
- package/dist/connect/abis/PersonalSpaceAdminPlugin.json +531 -0
- package/dist/connect/abis.d.ts +115 -0
- package/dist/connect/abis.d.ts.map +1 -0
- package/dist/connect/abis.js +141 -0
- package/dist/connect/abis.js.map +1 -0
- package/dist/connect/auth-storage.d.ts +15 -0
- package/dist/connect/auth-storage.js +53 -0
- package/dist/connect/auth-storage.js.map +1 -0
- package/dist/connect/create-app-identity.d.ts +7 -0
- package/dist/connect/create-app-identity.js +15 -0
- package/dist/connect/create-app-identity.js.map +1 -0
- package/dist/connect/create-auth-url.d.ts +15 -0
- package/dist/connect/create-callback-params.d.ts +28 -0
- package/dist/connect/create-callback-params.d.ts.map +1 -1
- package/dist/connect/create-callback-params.js.map +1 -1
- package/dist/connect/create-identity-keys.d.ts +3 -0
- package/dist/connect/create-identity-keys.js +20 -0
- package/dist/connect/create-identity-keys.js.map +1 -0
- package/dist/connect/identity-encryption.d.ts +12 -0
- package/dist/connect/identity-encryption.d.ts.map +1 -1
- package/dist/connect/identity-encryption.js +187 -0
- package/dist/connect/identity-encryption.js.map +1 -0
- package/dist/connect/index.d.ts +11 -0
- package/dist/connect/index.d.ts.map +1 -1
- package/dist/connect/index.js +11 -0
- package/dist/connect/index.js.map +1 -0
- package/dist/connect/login.d.ts +22 -0
- package/dist/connect/login.d.ts.map +1 -1
- package/dist/connect/login.js +172 -0
- package/dist/connect/login.js.map +1 -0
- package/dist/connect/parse-auth-params.d.ts +14 -0
- package/dist/connect/parse-auth-params.d.ts.map +1 -0
- package/dist/connect/parse-auth-params.js +40 -0
- package/dist/connect/parse-auth-params.js.map +1 -0
- package/dist/connect/parse-callback-params.d.ts +13 -0
- package/dist/connect/parse-callback-params.d.ts.map +1 -1
- package/dist/connect/parse-callback-params.js +4 -1
- package/dist/connect/parse-callback-params.js.map +1 -1
- package/dist/connect/smart-account.d.ts +96 -0
- package/dist/connect/smart-account.d.ts.map +1 -0
- package/dist/connect/smart-account.js +761 -0
- package/dist/connect/smart-account.js.map +1 -0
- package/dist/connect/types.d.ts +2 -0
- package/dist/connect/types.d.ts.map +1 -1
- package/dist/connect/types.js.map +1 -1
- package/dist/entity/create.d.ts +8 -0
- package/dist/entity/create.js +51 -0
- package/dist/entity/create.js.map +1 -0
- package/dist/entity/decodedEntitiesCache.d.ts +23 -0
- package/dist/entity/decodedEntitiesCache.d.ts.map +1 -1
- package/dist/entity/decodedEntitiesCache.js +2 -0
- package/dist/entity/decodedEntitiesCache.js.map +1 -0
- package/dist/entity/delete.d.ts +12 -0
- package/dist/entity/delete.js +44 -0
- package/dist/entity/delete.js.map +1 -0
- package/dist/entity/entity.d.ts +18 -0
- package/dist/entity/entity.js +19 -0
- package/dist/entity/entity.js.map +1 -0
- package/dist/entity/entityRelationParentsMap.d.ts +4 -0
- package/dist/entity/entityRelationParentsMap.js +2 -0
- package/dist/entity/entityRelationParentsMap.js.map +1 -0
- package/dist/entity/findMany.d.ts +22 -0
- package/dist/entity/findMany.d.ts.map +1 -1
- package/dist/entity/findMany.js +8 -8
- package/dist/entity/findMany.js.map +1 -1
- package/dist/entity/findOne.d.ts +8 -0
- package/dist/entity/findOne.js +31 -0
- package/dist/entity/findOne.js.map +1 -0
- package/dist/entity/getEntityRelations.d.ts +4 -0
- package/dist/entity/getEntityRelations.d.ts.map +1 -1
- package/dist/entity/getEntityRelations.js +35 -0
- package/dist/entity/getEntityRelations.js.map +1 -0
- package/dist/entity/hasValidTypesProperty.d.ts +2 -0
- package/dist/entity/hasValidTypesProperty.d.ts.map +1 -0
- package/dist/entity/hasValidTypesProperty.js +4 -0
- package/dist/entity/hasValidTypesProperty.js.map +1 -0
- package/dist/entity/index.d.ts +9 -0
- package/dist/entity/index.js +9 -0
- package/dist/entity/index.js.map +1 -0
- package/dist/entity/relationParentsMap.d.ts +4 -0
- package/dist/entity/relationParentsMap.js +2 -0
- package/dist/entity/relationParentsMap.js.map +1 -0
- package/dist/entity/removeRelation.d.ts +7 -0
- package/dist/entity/removeRelation.js +17 -0
- package/dist/entity/removeRelation.js.map +1 -0
- package/dist/entity/test.d.ts +2 -0
- package/dist/entity/test.d.ts.map +1 -0
- package/dist/entity/test.js +2 -0
- package/dist/entity/test.js.map +1 -0
- package/dist/entity/types.d.ts +8 -8
- package/dist/entity/update.d.ts +8 -0
- package/dist/entity/update.js +58 -0
- package/dist/entity/update.js.map +1 -0
- package/dist/entity/variant-schema.d.ts +247 -0
- package/dist/entity/variant-schema.d.ts.map +1 -0
- package/dist/entity/variant-schema.js +204 -0
- package/dist/entity/variant-schema.js.map +1 -0
- package/dist/identity/auth-storage.d.ts +6 -0
- package/dist/identity/auth-storage.d.ts.map +1 -1
- package/dist/identity/auth-storage.js +52 -0
- package/dist/identity/auth-storage.js.map +1 -0
- package/dist/identity/get-verified-identity.d.ts +7 -0
- package/dist/identity/get-verified-identity.d.ts.map +1 -1
- package/dist/identity/get-verified-identity.js +37 -0
- package/dist/identity/get-verified-identity.js.map +1 -0
- package/dist/identity/identity-encryption.d.ts +7 -0
- package/dist/identity/identity-encryption.js +120 -0
- package/dist/identity/identity-encryption.js.map +1 -0
- package/dist/identity/index.d.ts +7 -0
- package/dist/identity/index.d.ts.map +1 -1
- package/dist/identity/index.js +7 -0
- package/dist/identity/index.js.map +1 -0
- package/dist/identity/logout.d.ts +3 -0
- package/dist/identity/logout.js +9 -0
- package/dist/identity/logout.js.map +1 -0
- package/dist/identity/prove-ownership.d.ts +15 -0
- package/dist/identity/prove-ownership.d.ts.map +1 -1
- package/dist/identity/prove-ownership.js +90 -0
- package/dist/identity/prove-ownership.js.map +1 -0
- package/dist/identity/types.d.ts +37 -0
- package/dist/identity/types.d.ts.map +1 -0
- package/dist/identity/types.js +11 -0
- package/dist/identity/types.js.map +1 -0
- package/dist/inboxes/create-inbox.d.ts +22 -0
- package/dist/inboxes/create-inbox.js +76 -0
- package/dist/inboxes/create-inbox.js.map +1 -0
- package/dist/inboxes/get-list-inboxes.d.ts +20 -0
- package/dist/inboxes/get-list-inboxes.js +45 -0
- package/dist/inboxes/get-list-inboxes.js.map +1 -0
- package/dist/inboxes/index.d.ts +11 -0
- package/dist/inboxes/index.js +11 -0
- package/dist/inboxes/index.js.map +1 -0
- package/dist/inboxes/merge-messages.d.ts +6 -0
- package/dist/inboxes/merge-messages.js +23 -0
- package/dist/inboxes/merge-messages.js.map +1 -0
- package/dist/inboxes/message-encryption.d.ts +15 -0
- package/dist/inboxes/message-encryption.js +29 -0
- package/dist/inboxes/message-encryption.js.map +1 -0
- package/dist/inboxes/message-validation.d.ts +6 -0
- package/dist/inboxes/message-validation.d.ts.map +1 -1
- package/dist/inboxes/message-validation.js +53 -0
- package/dist/inboxes/message-validation.js.map +1 -0
- package/dist/inboxes/prepare-message.d.ts +2 -2
- package/dist/inboxes/prepare-message.js +78 -0
- package/dist/inboxes/prepare-message.js.map +1 -0
- package/dist/inboxes/recover-inbox-creator.d.ts +5 -0
- package/dist/inboxes/recover-inbox-creator.js +24 -0
- package/dist/inboxes/recover-inbox-creator.js.map +1 -0
- package/dist/inboxes/recover-inbox-message-signer.d.ts +4 -0
- package/dist/inboxes/recover-inbox-message-signer.js +32 -0
- package/dist/inboxes/recover-inbox-message-signer.js.map +1 -0
- package/dist/inboxes/send-message.d.ts +19 -0
- package/dist/inboxes/send-message.js +58 -0
- package/dist/inboxes/send-message.js.map +1 -0
- package/dist/inboxes/types.d.ts +4 -0
- package/dist/inboxes/types.d.ts.map +1 -0
- package/dist/inboxes/types.js +3 -0
- package/dist/inboxes/types.js.map +1 -0
- package/dist/index.d.ts +14 -0
- package/dist/index.js +14 -0
- package/dist/index.js.map +1 -0
- package/dist/key/create-key.d.ts +11 -0
- package/dist/key/create-key.d.ts.map +1 -0
- package/dist/key/create-key.js +22 -0
- package/dist/key/create-key.js.map +1 -0
- package/dist/key/decrypt-key.d.ts +9 -0
- package/dist/key/decrypt-key.d.ts.map +1 -0
- package/dist/key/decrypt-key.js +16 -0
- package/dist/key/decrypt-key.js.map +1 -0
- package/dist/key/encrypt-key.d.ts +11 -0
- package/dist/key/encrypt-key.d.ts.map +1 -0
- package/dist/key/encrypt-key.js +20 -0
- package/dist/key/encrypt-key.js.map +1 -0
- package/dist/key/index.d.ts +5 -0
- package/dist/key/index.d.ts.map +1 -0
- package/dist/key/index.js +5 -0
- package/dist/key/index.js.map +1 -0
- package/dist/key/key-box.d.ts +19 -0
- package/dist/key/key-box.d.ts.map +1 -0
- package/dist/key/key-box.js +38 -0
- package/dist/key/key-box.js.map +1 -0
- package/dist/messages/decrypt-message.d.ts +7 -0
- package/dist/messages/decrypt-message.d.ts.map +1 -0
- package/dist/messages/decrypt-message.js +11 -0
- package/dist/messages/decrypt-message.js.map +1 -0
- package/dist/messages/encrypt-message.d.ts +7 -0
- package/dist/messages/encrypt-message.d.ts.map +1 -0
- package/dist/messages/encrypt-message.js +12 -0
- package/dist/messages/encrypt-message.js.map +1 -0
- package/dist/messages/index.d.ts +6 -0
- package/dist/messages/index.js +6 -0
- package/dist/messages/index.js.map +1 -0
- package/dist/messages/serialize.d.ts +3 -0
- package/dist/messages/serialize.d.ts.map +1 -0
- package/dist/messages/serialize.js +30 -0
- package/dist/messages/serialize.js.map +1 -0
- package/dist/messages/signed-update-message.d.ts +23 -0
- package/dist/messages/signed-update-message.js +56 -0
- package/dist/messages/signed-update-message.js.map +1 -0
- package/dist/messages/types.d.ts +1268 -0
- package/dist/messages/types.d.ts.map +1 -1
- package/dist/messages/types.js +312 -0
- package/dist/messages/types.js.map +1 -0
- package/dist/space-events/accept-invitation.d.ts +9 -0
- package/dist/space-events/accept-invitation.js +28 -0
- package/dist/space-events/accept-invitation.js.map +1 -0
- package/dist/space-events/apply-event.d.ts +11 -0
- package/dist/space-events/apply-event.js +130 -0
- package/dist/space-events/apply-event.js.map +1 -0
- package/dist/space-events/create-inbox.d.ts +14 -0
- package/dist/space-events/create-inbox.js +41 -0
- package/dist/space-events/create-inbox.js.map +1 -0
- package/dist/space-events/create-invitation.d.ts +12 -0
- package/dist/space-events/create-invitation.js +30 -0
- package/dist/space-events/create-invitation.js.map +1 -0
- package/dist/space-events/create-space.d.ts +9 -0
- package/dist/space-events/create-space.js +29 -0
- package/dist/space-events/create-space.js.map +1 -0
- package/dist/space-events/delete-space.d.ts +10 -0
- package/dist/space-events/delete-space.js +30 -0
- package/dist/space-events/delete-space.js.map +1 -0
- package/dist/space-events/hash-event.d.ts +3 -0
- package/dist/space-events/hash-event.js +7 -0
- package/dist/space-events/hash-event.js.map +1 -0
- package/dist/space-events/index.d.ts +9 -0
- package/dist/space-events/index.js +9 -0
- package/dist/space-events/index.js.map +1 -0
- package/dist/space-events/types.d.ts +222 -0
- package/dist/space-events/types.d.ts.map +1 -0
- package/dist/space-events/types.js +102 -0
- package/dist/space-events/types.js.map +1 -0
- package/dist/space-info/decrypt-space-info.d.ts +7 -0
- package/dist/space-info/decrypt-space-info.js +18 -0
- package/dist/space-info/decrypt-space-info.js.map +1 -0
- package/dist/space-info/encrypt-and-sign-space-info.d.ts +17 -0
- package/dist/space-info/encrypt-and-sign-space-info.js +39 -0
- package/dist/space-info/encrypt-and-sign-space-info.js.map +1 -0
- package/dist/space-info/index.d.ts +4 -0
- package/dist/space-info/index.js +4 -0
- package/dist/space-info/index.js.map +1 -0
- package/dist/space-info/types.d.ts +6 -0
- package/dist/space-info/types.d.ts.map +1 -0
- package/dist/space-info/types.js +5 -0
- package/dist/space-info/types.js.map +1 -0
- package/dist/store-connect.d.ts +149 -0
- package/dist/store-connect.d.ts.map +1 -1
- package/dist/store-connect.js +289 -0
- package/dist/store-connect.js.map +1 -0
- package/dist/store.d.ts +158 -0
- package/dist/store.d.ts.map +1 -1
- package/dist/store.js +354 -0
- package/dist/store.js.map +1 -0
- package/dist/type/type.d.ts +14 -0
- package/dist/type/type.d.ts.map +1 -1
- package/dist/type/type.js +25 -0
- package/dist/type/type.js.map +1 -0
- package/dist/types.d.ts +80 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +37 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/assertExhaustive.d.ts +2 -0
- package/dist/utils/assertExhaustive.d.ts.map +1 -0
- package/dist/utils/assertExhaustive.js +4 -0
- package/dist/utils/assertExhaustive.js.map +1 -0
- package/dist/utils/automergeId.d.ts +1 -1
- package/dist/utils/automergeId.d.ts.map +1 -1
- package/dist/utils/automergeId.js +1 -1
- package/dist/utils/automergeId.js.map +1 -1
- package/dist/utils/base58.d.ts +36 -0
- package/dist/utils/base58.d.ts.map +1 -0
- package/dist/utils/base58.js +62 -0
- package/dist/utils/base58.js.map +1 -0
- package/dist/utils/hexBytesAddressUtils.d.ts +4 -0
- package/dist/utils/hexBytesAddressUtils.d.ts.map +1 -0
- package/dist/utils/hexBytesAddressUtils.js +21 -0
- package/dist/utils/hexBytesAddressUtils.js.map +1 -0
- package/dist/utils/index.d.ts +9 -0
- package/dist/utils/index.js +9 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/internal/base58Utils.d.ts +4 -0
- package/dist/utils/internal/base58Utils.d.ts.map +1 -0
- package/dist/utils/internal/base58Utils.js +40 -0
- package/dist/utils/internal/base58Utils.js.map +1 -0
- package/dist/utils/internal/deep-merge.d.ts +7 -0
- package/dist/utils/internal/deep-merge.d.ts.map +1 -0
- package/dist/utils/internal/deep-merge.js +33 -0
- package/dist/utils/internal/deep-merge.js.map +1 -0
- package/dist/utils/isRelationField.d.ts +3 -0
- package/dist/utils/isRelationField.d.ts.map +1 -0
- package/dist/utils/isRelationField.js +8 -0
- package/dist/utils/isRelationField.js.map +1 -0
- package/dist/utils/jsc.d.ts +49 -0
- package/dist/utils/jsc.d.ts.map +1 -0
- package/dist/utils/jsc.js +88 -0
- package/dist/utils/jsc.js.map +1 -0
- package/dist/utils/stringToUint8Array.d.ts +3 -0
- package/dist/utils/stringToUint8Array.d.ts.map +1 -0
- package/dist/utils/stringToUint8Array.js +9 -0
- package/dist/utils/stringToUint8Array.js.map +1 -0
- package/package.json +5 -2
- package/src/connect/abis/MainVotingPlugin.json +1865 -0
- package/src/connect/abis/PersonalSpaceAdminPlugin.json +531 -0
- package/src/connect/abis.ts +183 -0
- package/src/connect/create-callback-params.ts +4 -1
- package/src/connect/identity-encryption.ts +10 -14
- package/src/connect/index.ts +1 -1
- package/src/connect/login.ts +106 -18
- package/src/connect/parse-callback-params.ts +4 -1
- package/src/connect/smart-account.ts +915 -0
- package/src/connect/types.ts +2 -0
- package/src/entity/decodedEntitiesCache.ts +1 -1
- package/src/entity/findMany.ts +16 -14
- package/src/entity/getEntityRelations.ts +1 -1
- package/src/entity/types.ts +8 -8
- package/src/identity/auth-storage.ts +11 -1
- package/src/identity/get-verified-identity.ts +6 -1
- package/src/identity/index.ts +1 -1
- package/src/identity/prove-ownership.ts +52 -8
- package/src/inboxes/message-validation.ts +17 -2
- package/src/messages/types.ts +6 -0
- package/src/store-connect.ts +1 -52
- package/src/store.ts +78 -48
- package/src/type/type.ts +4 -2
- package/src/types.ts +19 -1
- package/src/utils/automergeId.ts +1 -1
- package/dist/connect/prove-ownership.d.ts.map +0 -1
- 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 @@
|
|
|
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 @@
|
|
|
1
|
+
{"version":3,"file":"test.d.ts","sourceRoot":"","sources":["../../src/entity/test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test.js","names":[],"sources":["../../src/entity/test.ts"],"sourcesContent":[null],"mappings":"","ignoreList":[]}
|
package/dist/entity/types.d.ts
CHANGED
|
@@ -43,8 +43,8 @@ export type EntityNumberFilter = {
|
|
|
43
43
|
is?: number;
|
|
44
44
|
greaterThan?: number;
|
|
45
45
|
lessThan?: number;
|
|
46
|
-
|
|
47
|
-
|
|
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
|
-
|
|
56
|
-
|
|
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
|
-
|
|
62
|
-
|
|
61
|
+
or?: Array<CrossFieldFilter<T>>;
|
|
62
|
+
not?: CrossFieldFilter<T>;
|
|
63
63
|
};
|
|
64
64
|
export type EntityFieldFilter<T> = {
|
|
65
65
|
is?: T;
|
|
66
|
-
|
|
67
|
-
|
|
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
|