@wishknish/knishio-client-ts 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +674 -0
- package/README.md +425 -0
- package/dist/index.cjs +9961 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.iife.js +32241 -0
- package/dist/index.iife.js.map +1 -0
- package/dist/index.js +9853 -0
- package/dist/index.js.map +1 -0
- package/package.json +113 -0
- package/src/AuthToken.ts +214 -0
- package/src/KnishIOClient.ts +2020 -0
- package/src/constants.ts +398 -0
- package/src/core/Atom.ts +646 -0
- package/src/core/AtomMeta.ts +278 -0
- package/src/core/Meta.ts +428 -0
- package/src/core/Molecule.ts +825 -0
- package/src/core/PolicyMeta.ts +130 -0
- package/src/core/TokenUnit.ts +148 -0
- package/src/core/Wallet.ts +467 -0
- package/src/exception/AtomIndexException.ts +97 -0
- package/src/exception/AtomsMissingException.ts +109 -0
- package/src/exception/AuthorizationRejectedException.ts +63 -0
- package/src/exception/BalanceInsufficientException.ts +58 -0
- package/src/exception/BaseException.ts +275 -0
- package/src/exception/BatchIdException.ts +58 -0
- package/src/exception/CodeException.ts +119 -0
- package/src/exception/DecryptionKeyException.ts +65 -0
- package/src/exception/InvalidResponseException.ts +112 -0
- package/src/exception/MetaMissingException.ts +58 -0
- package/src/exception/MolecularHashMismatchException.ts +115 -0
- package/src/exception/MolecularHashMissingException.ts +58 -0
- package/src/exception/NegativeAmountException.ts +58 -0
- package/src/exception/PolicyInvalidException.ts +58 -0
- package/src/exception/SignatureMalformedException.ts +58 -0
- package/src/exception/SignatureMismatchException.ts +98 -0
- package/src/exception/StackableUnitAmountException.ts +65 -0
- package/src/exception/StackableUnitDecimalsException.ts +65 -0
- package/src/exception/TransferBalanceException.ts +98 -0
- package/src/exception/TransferMalformedException.ts +58 -0
- package/src/exception/TransferMismatchedException.ts +58 -0
- package/src/exception/TransferRemainderException.ts +58 -0
- package/src/exception/TransferToSelfException.ts +58 -0
- package/src/exception/TransferUnbalancedException.ts +58 -0
- package/src/exception/UnauthenticatedException.ts +147 -0
- package/src/exception/WalletCredentialException.ts +108 -0
- package/src/exception/WalletShadowException.ts +65 -0
- package/src/exception/WrongTokenTypeException.ts +58 -0
- package/src/exception/index.ts +272 -0
- package/src/index.ts +512 -0
- package/src/instance/rules/Callback.ts +257 -0
- package/src/instance/rules/Condition.ts +96 -0
- package/src/instance/rules/Meta.ts +163 -0
- package/src/instance/rules/Rule.ts +29 -0
- package/src/instance/rules/exception/RuleArgumentException.ts +65 -0
- package/src/libraries/CheckMolecule.ts +581 -0
- package/src/libraries/Decimal.ts +94 -0
- package/src/libraries/Dot.ts +202 -0
- package/src/libraries/GraphQLClient.ts +276 -0
- package/src/libraries/Hex.ts +155 -0
- package/src/libraries/UrqlClientWrapper.ts +336 -0
- package/src/libraries/array.ts +91 -0
- package/src/libraries/crypto.ts +816 -0
- package/src/libraries/strings.ts +458 -0
- package/src/mutation/Mutation.ts +103 -0
- package/src/mutation/MutationActiveSession.ts +108 -0
- package/src/mutation/MutationClaimShadowWallet.ts +91 -0
- package/src/mutation/MutationCreateIdentifier.ts +86 -0
- package/src/mutation/MutationCreateMeta.ts +92 -0
- package/src/mutation/MutationCreateRule.ts +90 -0
- package/src/mutation/MutationCreateToken.ts +92 -0
- package/src/mutation/MutationCreateWallet.ts +78 -0
- package/src/mutation/MutationDepositBufferToken.ts +72 -0
- package/src/mutation/MutationLinkIdentifier.ts +87 -0
- package/src/mutation/MutationProposeMolecule.ts +147 -0
- package/src/mutation/MutationRequestAuthorization.ts +77 -0
- package/src/mutation/MutationRequestAuthorizationGuest.ts +85 -0
- package/src/mutation/MutationRequestTokens.ts +98 -0
- package/src/mutation/MutationTransferTokens.ts +87 -0
- package/src/mutation/MutationWithdrawBufferToken.ts +73 -0
- package/src/query/Query.ts +187 -0
- package/src/query/QueryActiveSession.ts +89 -0
- package/src/query/QueryAtom.ts +275 -0
- package/src/query/QueryBalance.ts +102 -0
- package/src/query/QueryBatch.ts +145 -0
- package/src/query/QueryBatchHistory.ts +86 -0
- package/src/query/QueryContinuId.ts +91 -0
- package/src/query/QueryMetaType.ts +177 -0
- package/src/query/QueryMetaTypeViaAtom.ts +199 -0
- package/src/query/QueryPolicy.ts +91 -0
- package/src/query/QueryToken.ts +90 -0
- package/src/query/QueryUserActivity.ts +153 -0
- package/src/query/QueryWalletBundle.ts +92 -0
- package/src/query/QueryWalletList.ts +106 -0
- package/src/response/EnhancedResponse.ts +345 -0
- package/src/response/Response.ts +254 -0
- package/src/response/ResponseActiveSession.ts +72 -0
- package/src/response/ResponseAtom.ts +132 -0
- package/src/response/ResponseAuthorizationGuest.ts +119 -0
- package/src/response/ResponseBalance.ts +153 -0
- package/src/response/ResponseClaimShadowWallet.ts +56 -0
- package/src/response/ResponseContinuId.ts +101 -0
- package/src/response/ResponseCreateIdentifier.ts +56 -0
- package/src/response/ResponseCreateMeta.ts +58 -0
- package/src/response/ResponseCreateRule.ts +56 -0
- package/src/response/ResponseCreateToken.ts +58 -0
- package/src/response/ResponseCreateWallet.ts +58 -0
- package/src/response/ResponseLinkIdentifier.ts +87 -0
- package/src/response/ResponseMetaBatch.ts +72 -0
- package/src/response/ResponseMetaType.ts +108 -0
- package/src/response/ResponseMetaTypeViaAtom.ts +108 -0
- package/src/response/ResponsePolicy.ts +90 -0
- package/src/response/ResponseProposeMolecule.ts +155 -0
- package/src/response/ResponseQueryActiveSession.ts +105 -0
- package/src/response/ResponseQueryUserActivity.ts +89 -0
- package/src/response/ResponseRequestAuthorization.ts +100 -0
- package/src/response/ResponseRequestAuthorizationGuest.ts +133 -0
- package/src/response/ResponseRequestTokens.ts +58 -0
- package/src/response/ResponseTransferTokens.ts +72 -0
- package/src/response/ResponseWalletBundle.ts +95 -0
- package/src/response/ResponseWalletList.ts +165 -0
- package/src/schemas/index.ts +457 -0
- package/src/subscribe/ActiveSessionSubscribe.ts +72 -0
- package/src/subscribe/ActiveWalletSubscribe.ts +99 -0
- package/src/subscribe/CreateMoleculeSubscribe.ts +106 -0
- package/src/subscribe/Subscribe.ts +182 -0
- package/src/subscribe/WalletStatusSubscribe.ts +70 -0
- package/src/subscribe/index.ts +59 -0
- package/src/types/assertions.ts +722 -0
- package/src/types/client.ts +567 -0
- package/src/types/crypto.ts +541 -0
- package/src/types/graphql.ts +630 -0
- package/src/types/guards.ts +659 -0
- package/src/types/index.ts +614 -0
- package/src/types/response.ts +133 -0
- package/src/types/template-literals.ts +382 -0
- package/src/validation/UNIVERSAL_CONFIGURATION_INTERFACES.ts +580 -0
- package/src/validation/ValidationService.ts +607 -0
- package/src/validation/schemas.ts +447 -0
- package/src/versions/HashAtom.ts +170 -0
- package/src/versions/Version4.ts +120 -0
- package/src/versions/index.ts +80 -0
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
/*
|
|
2
|
+
(
|
|
3
|
+
(/(
|
|
4
|
+
(//(
|
|
5
|
+
(///(
|
|
6
|
+
(/////(
|
|
7
|
+
(//////( )
|
|
8
|
+
(////////( (/)
|
|
9
|
+
(////////( (///)
|
|
10
|
+
(//////////( (////)
|
|
11
|
+
(//////////( (//////)
|
|
12
|
+
(////////////( (///////)
|
|
13
|
+
(/////////////( (/////////)
|
|
14
|
+
(//////////////( (///////////)
|
|
15
|
+
(///////////////( (/////////////)
|
|
16
|
+
(////////////////( (//////////////)
|
|
17
|
+
((((((((((((((((((( (((((((((((((((
|
|
18
|
+
((((((((((((((((((( ((((((((((((((
|
|
19
|
+
((((((((((((((((((( ((((((((((((((
|
|
20
|
+
(((((((((((((((((((( (((((((((((((
|
|
21
|
+
(((((((((((((((((((( ((((((((((((
|
|
22
|
+
((((((((((((((((((( ((((((((((((
|
|
23
|
+
((((((((((((((((((( ((((((((((
|
|
24
|
+
((((((((((((((((((/ (((((((((
|
|
25
|
+
(((((((((((((((((( ((((((((
|
|
26
|
+
((((((((((((((((( (((((((
|
|
27
|
+
(((((((((((((((((( (((((
|
|
28
|
+
################# ##
|
|
29
|
+
################ #
|
|
30
|
+
################# ##
|
|
31
|
+
%################ ###
|
|
32
|
+
###############( ####
|
|
33
|
+
############### ####
|
|
34
|
+
############### ######
|
|
35
|
+
%#############( (#######
|
|
36
|
+
%############# #########
|
|
37
|
+
############( ##########
|
|
38
|
+
########### #############
|
|
39
|
+
######### ##############
|
|
40
|
+
%######
|
|
41
|
+
|
|
42
|
+
Powered by Knish.IO: Connecting a Decentralized World
|
|
43
|
+
|
|
44
|
+
Please visit https://github.com/WishKnish/KnishIO-Client-TS for information.
|
|
45
|
+
|
|
46
|
+
License: https://github.com/WishKnish/KnishIO-Client-TS/blob/master/LICENSE
|
|
47
|
+
*/
|
|
48
|
+
|
|
49
|
+
import { diff } from '../libraries/array'
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* PolicyMeta class - Manages metadata access policies
|
|
53
|
+
* Matches JavaScript SDK PolicyMeta implementation exactly
|
|
54
|
+
*/
|
|
55
|
+
export default class PolicyMeta {
|
|
56
|
+
public policy: Record<string, any>
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* Create new PolicyMeta instance
|
|
60
|
+
* Matches JavaScript SDK constructor signature exactly
|
|
61
|
+
*/
|
|
62
|
+
constructor(policy: Record<string, any> = {}, metaKeys: string[] = []) {
|
|
63
|
+
this.policy = PolicyMeta.normalizePolicy(policy)
|
|
64
|
+
this.fillDefault(metaKeys)
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
/**
|
|
68
|
+
* Normalize policy object structure
|
|
69
|
+
* Matches JavaScript SDK normalizePolicy method exactly
|
|
70
|
+
*/
|
|
71
|
+
static normalizePolicy(policy: Record<string, any> = {}): Record<string, any> {
|
|
72
|
+
const policyMeta: Record<string, any> = {}
|
|
73
|
+
|
|
74
|
+
for (const [policyKey, value] of Object.entries(policy)) {
|
|
75
|
+
if (value !== null && ['read', 'write'].includes(policyKey)) {
|
|
76
|
+
policyMeta[policyKey] = {}
|
|
77
|
+
for (const [key, content] of Object.entries(value as Record<string, any>)) {
|
|
78
|
+
policyMeta[policyKey][key] = content
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
return policyMeta
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
/**
|
|
87
|
+
* Fill default policy values for metadata keys
|
|
88
|
+
* Matches JavaScript SDK fillDefault method exactly
|
|
89
|
+
*/
|
|
90
|
+
fillDefault(metaKeys: string[] = []): void {
|
|
91
|
+
// Exactly match JavaScript SDK behavior with Array.from
|
|
92
|
+
const readPolicy = Array.from(this.policy as any).filter((item: any) => item.action === 'read')
|
|
93
|
+
const writePolicy = Array.from(this.policy as any).filter((item: any) => item.action === 'write')
|
|
94
|
+
|
|
95
|
+
for (const [type, value] of Object.entries({
|
|
96
|
+
read: readPolicy,
|
|
97
|
+
write: writePolicy
|
|
98
|
+
})) {
|
|
99
|
+
const policyKey = (value as any[]).map((item: any) => item.key)
|
|
100
|
+
|
|
101
|
+
if (!this.policy[type]) {
|
|
102
|
+
this.policy[type] = {}
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
for (const key of diff(metaKeys, policyKey)) {
|
|
106
|
+
if (!this.policy[type][key]) {
|
|
107
|
+
this.policy[type][key] = (type === 'write' && !['characters', 'pubkey'].includes(key))
|
|
108
|
+
? ['self']
|
|
109
|
+
: ['all']
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
/**
|
|
116
|
+
* Get the policy object
|
|
117
|
+
* Matches JavaScript SDK get method exactly
|
|
118
|
+
*/
|
|
119
|
+
get(): Record<string, any> {
|
|
120
|
+
return this.policy
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
/**
|
|
124
|
+
* Convert policy to JSON string
|
|
125
|
+
* Matches JavaScript SDK toJson method exactly
|
|
126
|
+
*/
|
|
127
|
+
toJson(): string {
|
|
128
|
+
return JSON.stringify(this.get())
|
|
129
|
+
}
|
|
130
|
+
}
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
/*
|
|
2
|
+
(
|
|
3
|
+
(/(
|
|
4
|
+
(//(
|
|
5
|
+
(///(
|
|
6
|
+
(/////(
|
|
7
|
+
(//////( )
|
|
8
|
+
(////////( (/)
|
|
9
|
+
(////////( (///)
|
|
10
|
+
(//////////( (////)
|
|
11
|
+
(//////////( (//////)
|
|
12
|
+
(////////////( (///////)
|
|
13
|
+
(/////////////( (/////////)
|
|
14
|
+
(//////////////( (///////////)
|
|
15
|
+
(///////////////( (/////////////)
|
|
16
|
+
(////////////////( (//////////////)
|
|
17
|
+
((((((((((((((((((( (((((((((((((((
|
|
18
|
+
((((((((((((((((((( ((((((((((((((
|
|
19
|
+
((((((((((((((((((( ((((((((((((((
|
|
20
|
+
(((((((((((((((((((( (((((((((((((
|
|
21
|
+
(((((((((((((((((((( ((((((((((((
|
|
22
|
+
((((((((((((((((((( ((((((((((((
|
|
23
|
+
((((((((((((((((((( ((((((((((
|
|
24
|
+
((((((((((((((((((/ (((((((((
|
|
25
|
+
(((((((((((((((((( ((((((((
|
|
26
|
+
((((((((((((((((( (((((((
|
|
27
|
+
(((((((((((((((((( (((((
|
|
28
|
+
################# ##
|
|
29
|
+
################ #
|
|
30
|
+
################# ##
|
|
31
|
+
%################ ###
|
|
32
|
+
###############( ####
|
|
33
|
+
############### ####
|
|
34
|
+
############### ######
|
|
35
|
+
%#############( (#######
|
|
36
|
+
%############# #########
|
|
37
|
+
############( ##########
|
|
38
|
+
########### #############
|
|
39
|
+
######### ##############
|
|
40
|
+
%######
|
|
41
|
+
|
|
42
|
+
Powered by Knish.IO: Connecting a Decentralized World
|
|
43
|
+
|
|
44
|
+
Please visit https://github.com/WishKnish/KnishIO-Client-TS for information.
|
|
45
|
+
|
|
46
|
+
License: https://github.com/WishKnish/KnishIO-Client-TS/blob/master/LICENSE
|
|
47
|
+
*/
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* TokenUnit class - Manages token utility data
|
|
51
|
+
* Matches JavaScript SDK TokenUnit implementation exactly
|
|
52
|
+
*/
|
|
53
|
+
export default class TokenUnit {
|
|
54
|
+
public id: string
|
|
55
|
+
public name: string
|
|
56
|
+
public metas: Record<string, any>
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* Create new TokenUnit instance
|
|
60
|
+
* Matches JavaScript SDK constructor signature exactly
|
|
61
|
+
*/
|
|
62
|
+
constructor(id: string, name: string, metas?: Record<string, any>) {
|
|
63
|
+
this.id = id
|
|
64
|
+
this.name = name
|
|
65
|
+
this.metas = metas || {}
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
/**
|
|
69
|
+
* Create TokenUnit from GraphQL response data
|
|
70
|
+
* Matches JavaScript SDK createFromGraphQL method exactly
|
|
71
|
+
*/
|
|
72
|
+
static createFromGraphQL(data: {
|
|
73
|
+
id: string
|
|
74
|
+
name: string
|
|
75
|
+
metas?: any
|
|
76
|
+
}): TokenUnit {
|
|
77
|
+
let metas = data.metas || {}
|
|
78
|
+
|
|
79
|
+
if (Array.isArray(metas) && metas.length) {
|
|
80
|
+
try {
|
|
81
|
+
metas = JSON.parse(metas as any)
|
|
82
|
+
if (!metas) { // set an empty object instead of an array
|
|
83
|
+
metas = {}
|
|
84
|
+
}
|
|
85
|
+
} catch (error) {
|
|
86
|
+
metas = {}
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
return new TokenUnit(
|
|
91
|
+
data.id,
|
|
92
|
+
data.name,
|
|
93
|
+
metas
|
|
94
|
+
)
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
/**
|
|
98
|
+
* Create TokenUnit from database array data
|
|
99
|
+
* Matches JavaScript SDK createFromDB method exactly
|
|
100
|
+
*/
|
|
101
|
+
static createFromDB(data: [string, string, Record<string, any>?]): TokenUnit {
|
|
102
|
+
return new TokenUnit(
|
|
103
|
+
data[0],
|
|
104
|
+
data[1],
|
|
105
|
+
data.length > 2 ? data[2] : {}
|
|
106
|
+
)
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
/**
|
|
110
|
+
* Get fragment zone from metadata
|
|
111
|
+
* Matches JavaScript SDK getFragmentZone method exactly
|
|
112
|
+
*/
|
|
113
|
+
getFragmentZone(): any | null {
|
|
114
|
+
return this.metas.fragmentZone || null
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
/**
|
|
118
|
+
* Get fused token units from metadata
|
|
119
|
+
* Matches JavaScript SDK getFusedTokenUnits method exactly
|
|
120
|
+
*/
|
|
121
|
+
getFusedTokenUnits(): any | null {
|
|
122
|
+
return this.metas.fusedTokenUnits || null
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
/**
|
|
126
|
+
* Convert to data array format
|
|
127
|
+
* Matches JavaScript SDK toData method exactly
|
|
128
|
+
*/
|
|
129
|
+
toData(): [string, string, Record<string, any>] {
|
|
130
|
+
return [this.id, this.name, this.metas]
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
/**
|
|
134
|
+
* Convert to GraphQL response format
|
|
135
|
+
* Matches JavaScript SDK toGraphQLResponse method exactly
|
|
136
|
+
*/
|
|
137
|
+
toGraphQLResponse(): {
|
|
138
|
+
id: string
|
|
139
|
+
name: string
|
|
140
|
+
metas: string
|
|
141
|
+
} {
|
|
142
|
+
return {
|
|
143
|
+
id: this.id,
|
|
144
|
+
name: this.name,
|
|
145
|
+
metas: JSON.stringify(this.metas)
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
}
|