@keetanetwork/anchor 0.0.39 → 0.0.41
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/client/index.d.ts +6 -0
- package/client/index.d.ts.map +1 -1
- package/client/index.js +7 -0
- package/client/index.js.map +1 -1
- package/lib/block-listener.d.ts +93 -0
- package/lib/block-listener.d.ts.map +1 -0
- package/lib/block-listener.js +259 -0
- package/lib/block-listener.js.map +1 -0
- package/lib/error.d.ts.map +1 -1
- package/lib/error.js +3 -1
- package/lib/error.js.map +1 -1
- package/lib/http-server/index.d.ts +14 -1
- package/lib/http-server/index.d.ts.map +1 -1
- package/lib/http-server/index.js +86 -7
- package/lib/http-server/index.js.map +1 -1
- package/lib/queue/index.d.ts +20 -5
- package/lib/queue/index.d.ts.map +1 -1
- package/lib/queue/index.js +52 -17
- package/lib/queue/index.js.map +1 -1
- package/lib/resolver.d.ts +57 -0
- package/lib/resolver.d.ts.map +1 -1
- package/lib/resolver.js +864 -250
- package/lib/resolver.js.map +1 -1
- package/npm-shrinkwrap.json +4 -4
- package/package.json +1 -1
- package/services/asset-movement/client.d.ts +9 -2
- package/services/asset-movement/client.d.ts.map +1 -1
- package/services/asset-movement/client.js +35 -2
- package/services/asset-movement/client.js.map +1 -1
- package/services/asset-movement/common.d.ts +1 -0
- package/services/asset-movement/common.d.ts.map +1 -1
- package/services/asset-movement/common.js +75 -0
- package/services/asset-movement/common.js.map +1 -1
- package/services/asset-movement/server.d.ts +0 -10
- package/services/asset-movement/server.d.ts.map +1 -1
- package/services/asset-movement/server.js +0 -2
- package/services/asset-movement/server.js.map +1 -1
- package/services/fx/common.d.ts +1 -1
- package/services/fx/common.js.map +1 -1
- package/services/fx/server.d.ts +37 -6
- package/services/fx/server.d.ts.map +1 -1
- package/services/fx/server.js +207 -66
- package/services/fx/server.js.map +1 -1
- package/services/storage/client.d.ts +332 -0
- package/services/storage/client.d.ts.map +1 -0
- package/services/storage/client.js +1078 -0
- package/services/storage/client.js.map +1 -0
- package/services/storage/clients/contacts.d.ts +94 -0
- package/services/storage/clients/contacts.d.ts.map +1 -0
- package/services/storage/clients/contacts.generated.d.ts +3 -0
- package/services/storage/clients/contacts.generated.d.ts.map +1 -0
- package/services/storage/clients/contacts.generated.js +1197 -0
- package/services/storage/clients/contacts.generated.js.map +1 -0
- package/services/storage/clients/contacts.js +141 -0
- package/services/storage/clients/contacts.js.map +1 -0
- package/services/storage/common.d.ts +667 -0
- package/services/storage/common.d.ts.map +1 -0
- package/services/storage/common.generated.d.ts +17 -0
- package/services/storage/common.generated.d.ts.map +1 -0
- package/services/storage/common.generated.js +863 -0
- package/services/storage/common.generated.js.map +1 -0
- package/services/storage/common.js +587 -0
- package/services/storage/common.js.map +1 -0
- package/services/storage/lib/validators.d.ts +64 -0
- package/services/storage/lib/validators.d.ts.map +1 -0
- package/services/storage/lib/validators.js +82 -0
- package/services/storage/lib/validators.js.map +1 -0
- package/services/storage/server.d.ts +127 -0
- package/services/storage/server.d.ts.map +1 -0
- package/services/storage/server.js +626 -0
- package/services/storage/server.js.map +1 -0
- package/services/storage/test-utils.d.ts +70 -0
- package/services/storage/test-utils.d.ts.map +1 -0
- package/services/storage/test-utils.js +347 -0
- package/services/storage/test-utils.js.map +1 -0
- package/services/storage/utils.d.ts +3 -0
- package/services/storage/utils.d.ts.map +1 -0
- package/services/storage/utils.js +10 -0
- package/services/storage/utils.js.map +1 -0
- package/services/username/client.d.ts +145 -0
- package/services/username/client.d.ts.map +1 -0
- package/services/username/client.js +681 -0
- package/services/username/client.js.map +1 -0
- package/services/username/common.d.ts +136 -0
- package/services/username/common.d.ts.map +1 -0
- package/services/username/common.generated.d.ts +13 -0
- package/services/username/common.generated.d.ts.map +1 -0
- package/services/username/common.generated.js +256 -0
- package/services/username/common.generated.js.map +1 -0
- package/services/username/common.js +226 -0
- package/services/username/common.js.map +1 -0
- package/services/username/server.d.ts +49 -0
- package/services/username/server.d.ts.map +1 -0
- package/services/username/server.js +262 -0
- package/services/username/server.js.map +1 -0
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
import { lib as KeetaNetLib } from '@keetanetwork/keetanet-client';
|
|
2
|
+
import { getDefaultResolver } from '../../config.js';
|
|
3
|
+
import type { UserClient as KeetaNetUserClient } from '@keetanetwork/keetanet-client';
|
|
4
|
+
import type { Logger } from '../../lib/log/index.ts';
|
|
5
|
+
import Resolver from '../../lib/resolver.js';
|
|
6
|
+
import type { ServiceMetadata, ServiceMetadataAuthenticationType, SharedLookupCriteria } from '../../lib/resolver.ts';
|
|
7
|
+
import type { BrandedString } from '../../lib/utils/brand.ts';
|
|
8
|
+
import type { TransferUsernameOwnershipSignablePayload, KeetaUsernameAnchorUsernameWithAccount, KeetaUsernameAnchorSearchRequestParameters } from './common.js';
|
|
9
|
+
import { type KeetaNetAccount, type GloballyIdentifiableUsername } from './common.js';
|
|
10
|
+
import type { HTTPSignedField } from '../../lib/http-server/common.js';
|
|
11
|
+
export type KeetaUsernameAnchorClientConfig = {
|
|
12
|
+
id?: string;
|
|
13
|
+
logger?: Logger | undefined;
|
|
14
|
+
resolver?: Resolver;
|
|
15
|
+
signer?: InstanceType<typeof KeetaNetLib.Account>;
|
|
16
|
+
account?: InstanceType<typeof KeetaNetLib.Account>;
|
|
17
|
+
} & Omit<NonNullable<Parameters<typeof getDefaultResolver>[1]>, 'client'>;
|
|
18
|
+
type ProviderID = BrandedString<'UsernameProviderID'>;
|
|
19
|
+
type KeetaUsernameAnchorOperations = {
|
|
20
|
+
[operation in keyof NonNullable<ServiceMetadata['services']['username']>[string]['operations']]?: {
|
|
21
|
+
url: (params?: {
|
|
22
|
+
[key: string]: string;
|
|
23
|
+
}) => URL;
|
|
24
|
+
options: {
|
|
25
|
+
authentication: ServiceMetadataAuthenticationType;
|
|
26
|
+
};
|
|
27
|
+
};
|
|
28
|
+
};
|
|
29
|
+
type KeetaUsernameServiceInfo = {
|
|
30
|
+
operations: {
|
|
31
|
+
[operation in keyof KeetaUsernameAnchorOperations]: Promise<KeetaUsernameAnchorOperations[operation]>;
|
|
32
|
+
};
|
|
33
|
+
usernamePattern?: string;
|
|
34
|
+
};
|
|
35
|
+
type ClaimUsernameOptions = {
|
|
36
|
+
account?: KeetaNetAccount | undefined;
|
|
37
|
+
transfer?: {
|
|
38
|
+
from: KeetaNetAccount | string;
|
|
39
|
+
signed?: HTTPSignedField;
|
|
40
|
+
};
|
|
41
|
+
};
|
|
42
|
+
interface KeetaUsernameAnchorBaseConfig {
|
|
43
|
+
client: KeetaNetUserClient;
|
|
44
|
+
logger?: Logger | undefined;
|
|
45
|
+
account?: InstanceType<typeof KeetaNetLib.Account> | undefined;
|
|
46
|
+
signer?: InstanceType<typeof KeetaNetLib.Account> | undefined;
|
|
47
|
+
}
|
|
48
|
+
declare class KeetaUsernameAnchorBase {
|
|
49
|
+
protected readonly client: KeetaNetUserClient;
|
|
50
|
+
protected readonly logger?: Logger | undefined;
|
|
51
|
+
protected readonly account?: InstanceType<typeof KeetaNetLib.Account> | undefined;
|
|
52
|
+
protected readonly signer?: InstanceType<typeof KeetaNetLib.Account> | undefined;
|
|
53
|
+
constructor(config: KeetaUsernameAnchorBaseConfig);
|
|
54
|
+
}
|
|
55
|
+
export interface KeetaUsernameAnchorUsernameWithAccountAndProvider extends KeetaUsernameAnchorUsernameWithAccount {
|
|
56
|
+
providerID: ProviderID;
|
|
57
|
+
globallyIdentifiableUsername: GloballyIdentifiableUsername;
|
|
58
|
+
}
|
|
59
|
+
declare class KeetaUsernameAnchorProvider extends KeetaUsernameAnchorBase {
|
|
60
|
+
#private;
|
|
61
|
+
readonly serviceInfo: KeetaUsernameServiceInfo;
|
|
62
|
+
readonly providerID: ProviderID;
|
|
63
|
+
private readonly parent;
|
|
64
|
+
constructor(serviceInfo: KeetaUsernameServiceInfo, providerID: ProviderID, parent: KeetaUsernameAnchorClient);
|
|
65
|
+
get usernamePattern(): string | undefined;
|
|
66
|
+
/**
|
|
67
|
+
* Check if a username is valid according to the provider's username pattern if set and default validation.
|
|
68
|
+
* @param username The username to check
|
|
69
|
+
* @returns True if the username is valid, false otherwise
|
|
70
|
+
*/
|
|
71
|
+
isUsernameValid(username: string): boolean;
|
|
72
|
+
/**
|
|
73
|
+
* Resolve a username for a specific provider
|
|
74
|
+
* @param input The value to lookup, can be a username, PublicKeyString, or an account
|
|
75
|
+
* @returns The resolved account and username, or null if not found
|
|
76
|
+
*/
|
|
77
|
+
resolve(input: string | KeetaNetAccount): Promise<KeetaUsernameAnchorUsernameWithAccountAndProvider | null>;
|
|
78
|
+
/**
|
|
79
|
+
* Claim a username for a specific provider
|
|
80
|
+
* @param usernameInput The username to claim
|
|
81
|
+
* @param options The account to claim for, and options related to transfer if applicable
|
|
82
|
+
* @returns True if the claim was successful, false otherwise
|
|
83
|
+
*/
|
|
84
|
+
claimUsername(usernameInput: string, options?: ClaimUsernameOptions): Promise<boolean>;
|
|
85
|
+
/**
|
|
86
|
+
* Release a username for a specific provider
|
|
87
|
+
* @param options The account to claim for, and options related to transfer if applicable
|
|
88
|
+
* @returns True if the claim was successful, false otherwise
|
|
89
|
+
*/
|
|
90
|
+
releaseUsername(input?: {
|
|
91
|
+
account?: KeetaNetAccount;
|
|
92
|
+
}): Promise<boolean>;
|
|
93
|
+
/**
|
|
94
|
+
* Release a username for a specific provider
|
|
95
|
+
* @param options The account to claim for, and options related to transfer if applicable
|
|
96
|
+
* @returns True if the claim was successful, false otherwise
|
|
97
|
+
*/
|
|
98
|
+
search(parameters: KeetaUsernameAnchorSearchRequestParameters): Promise<{
|
|
99
|
+
results: KeetaUsernameAnchorUsernameWithAccountAndProvider[];
|
|
100
|
+
}>;
|
|
101
|
+
}
|
|
102
|
+
declare class KeetaUsernameAnchorClient extends KeetaUsernameAnchorBase {
|
|
103
|
+
#private;
|
|
104
|
+
readonly resolver: Resolver;
|
|
105
|
+
readonly id: string;
|
|
106
|
+
constructor(client: KeetaNetUserClient, config?: KeetaUsernameAnchorClientConfig);
|
|
107
|
+
getProvider(providerID: string, shared?: SharedLookupCriteria): Promise<KeetaUsernameAnchorProvider | null>;
|
|
108
|
+
/**
|
|
109
|
+
* Resolve a globally identifiable username via the appropriate provider.
|
|
110
|
+
* @param username The globally identifiable username to resolve
|
|
111
|
+
* @param shared Shared resolver lookup criteria
|
|
112
|
+
* @returns The resolution result, or null if not found
|
|
113
|
+
*/
|
|
114
|
+
resolve(username: GloballyIdentifiableUsername, shared?: SharedLookupCriteria): ReturnType<KeetaUsernameAnchorProvider['resolve']>;
|
|
115
|
+
/**
|
|
116
|
+
* Resolve against all username providers for the given input.
|
|
117
|
+
* @param input The value to search for, either a globally identifiable username, a username, or an account
|
|
118
|
+
* @param shared Shared lookup criteria
|
|
119
|
+
* @returns A mapping of provider IDs to their resolution results, or null if no providers found a match
|
|
120
|
+
*/
|
|
121
|
+
resolveMulti(input: string | KeetaNetAccount | GloballyIdentifiableUsername, shared?: SharedLookupCriteria): Promise<({
|
|
122
|
+
[providerId: ProviderID]: Awaited<ReturnType<KeetaUsernameAnchorProvider['resolve']>>;
|
|
123
|
+
}) | null>;
|
|
124
|
+
/**
|
|
125
|
+
* Resolve against all username providers for the given input.
|
|
126
|
+
* @param input The value to search for, either a globally identifiable username, a username, or an account
|
|
127
|
+
* @param shared Shared lookup criteria
|
|
128
|
+
* @returns A mapping of provider IDs to their resolution results, or null if no providers found a match
|
|
129
|
+
*/
|
|
130
|
+
search(parameters: KeetaUsernameAnchorSearchRequestParameters, responseType: 'separate', shared?: SharedLookupCriteria): Promise<({
|
|
131
|
+
[providerId: ProviderID]: Awaited<ReturnType<KeetaUsernameAnchorProvider['search']>>;
|
|
132
|
+
}) | null>;
|
|
133
|
+
search(parameters: KeetaUsernameAnchorSearchRequestParameters, responseType?: 'joined', shared?: SharedLookupCriteria): Promise<Awaited<ReturnType<KeetaUsernameAnchorProvider['search']>> | null>;
|
|
134
|
+
/**
|
|
135
|
+
* Claim a globally identifiable username from the appropriate provider.
|
|
136
|
+
* @param input The globally identifiable username to claim
|
|
137
|
+
* @param options Claim options
|
|
138
|
+
* @returns True if the claim was successful, false otherwise
|
|
139
|
+
*/
|
|
140
|
+
claimUsername(input: GloballyIdentifiableUsername, options?: ClaimUsernameOptions, shared?: SharedLookupCriteria): ReturnType<KeetaUsernameAnchorProvider['claimUsername']>;
|
|
141
|
+
signUsernameTransfer(request: Omit<TransferUsernameOwnershipSignablePayload, 'from'>, from?: KeetaNetAccount): Promise<HTTPSignedField>;
|
|
142
|
+
}
|
|
143
|
+
export default KeetaUsernameAnchorClient;
|
|
144
|
+
export { KeetaUsernameAnchorProvider };
|
|
145
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/services/username/client.ts"],"names":[],"mappings":"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"}
|