@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.
Files changed (141) hide show
  1. package/LICENSE +674 -0
  2. package/README.md +425 -0
  3. package/dist/index.cjs +9961 -0
  4. package/dist/index.cjs.map +1 -0
  5. package/dist/index.iife.js +32241 -0
  6. package/dist/index.iife.js.map +1 -0
  7. package/dist/index.js +9853 -0
  8. package/dist/index.js.map +1 -0
  9. package/package.json +113 -0
  10. package/src/AuthToken.ts +214 -0
  11. package/src/KnishIOClient.ts +2020 -0
  12. package/src/constants.ts +398 -0
  13. package/src/core/Atom.ts +646 -0
  14. package/src/core/AtomMeta.ts +278 -0
  15. package/src/core/Meta.ts +428 -0
  16. package/src/core/Molecule.ts +825 -0
  17. package/src/core/PolicyMeta.ts +130 -0
  18. package/src/core/TokenUnit.ts +148 -0
  19. package/src/core/Wallet.ts +467 -0
  20. package/src/exception/AtomIndexException.ts +97 -0
  21. package/src/exception/AtomsMissingException.ts +109 -0
  22. package/src/exception/AuthorizationRejectedException.ts +63 -0
  23. package/src/exception/BalanceInsufficientException.ts +58 -0
  24. package/src/exception/BaseException.ts +275 -0
  25. package/src/exception/BatchIdException.ts +58 -0
  26. package/src/exception/CodeException.ts +119 -0
  27. package/src/exception/DecryptionKeyException.ts +65 -0
  28. package/src/exception/InvalidResponseException.ts +112 -0
  29. package/src/exception/MetaMissingException.ts +58 -0
  30. package/src/exception/MolecularHashMismatchException.ts +115 -0
  31. package/src/exception/MolecularHashMissingException.ts +58 -0
  32. package/src/exception/NegativeAmountException.ts +58 -0
  33. package/src/exception/PolicyInvalidException.ts +58 -0
  34. package/src/exception/SignatureMalformedException.ts +58 -0
  35. package/src/exception/SignatureMismatchException.ts +98 -0
  36. package/src/exception/StackableUnitAmountException.ts +65 -0
  37. package/src/exception/StackableUnitDecimalsException.ts +65 -0
  38. package/src/exception/TransferBalanceException.ts +98 -0
  39. package/src/exception/TransferMalformedException.ts +58 -0
  40. package/src/exception/TransferMismatchedException.ts +58 -0
  41. package/src/exception/TransferRemainderException.ts +58 -0
  42. package/src/exception/TransferToSelfException.ts +58 -0
  43. package/src/exception/TransferUnbalancedException.ts +58 -0
  44. package/src/exception/UnauthenticatedException.ts +147 -0
  45. package/src/exception/WalletCredentialException.ts +108 -0
  46. package/src/exception/WalletShadowException.ts +65 -0
  47. package/src/exception/WrongTokenTypeException.ts +58 -0
  48. package/src/exception/index.ts +272 -0
  49. package/src/index.ts +512 -0
  50. package/src/instance/rules/Callback.ts +257 -0
  51. package/src/instance/rules/Condition.ts +96 -0
  52. package/src/instance/rules/Meta.ts +163 -0
  53. package/src/instance/rules/Rule.ts +29 -0
  54. package/src/instance/rules/exception/RuleArgumentException.ts +65 -0
  55. package/src/libraries/CheckMolecule.ts +581 -0
  56. package/src/libraries/Decimal.ts +94 -0
  57. package/src/libraries/Dot.ts +202 -0
  58. package/src/libraries/GraphQLClient.ts +276 -0
  59. package/src/libraries/Hex.ts +155 -0
  60. package/src/libraries/UrqlClientWrapper.ts +336 -0
  61. package/src/libraries/array.ts +91 -0
  62. package/src/libraries/crypto.ts +816 -0
  63. package/src/libraries/strings.ts +458 -0
  64. package/src/mutation/Mutation.ts +103 -0
  65. package/src/mutation/MutationActiveSession.ts +108 -0
  66. package/src/mutation/MutationClaimShadowWallet.ts +91 -0
  67. package/src/mutation/MutationCreateIdentifier.ts +86 -0
  68. package/src/mutation/MutationCreateMeta.ts +92 -0
  69. package/src/mutation/MutationCreateRule.ts +90 -0
  70. package/src/mutation/MutationCreateToken.ts +92 -0
  71. package/src/mutation/MutationCreateWallet.ts +78 -0
  72. package/src/mutation/MutationDepositBufferToken.ts +72 -0
  73. package/src/mutation/MutationLinkIdentifier.ts +87 -0
  74. package/src/mutation/MutationProposeMolecule.ts +147 -0
  75. package/src/mutation/MutationRequestAuthorization.ts +77 -0
  76. package/src/mutation/MutationRequestAuthorizationGuest.ts +85 -0
  77. package/src/mutation/MutationRequestTokens.ts +98 -0
  78. package/src/mutation/MutationTransferTokens.ts +87 -0
  79. package/src/mutation/MutationWithdrawBufferToken.ts +73 -0
  80. package/src/query/Query.ts +187 -0
  81. package/src/query/QueryActiveSession.ts +89 -0
  82. package/src/query/QueryAtom.ts +275 -0
  83. package/src/query/QueryBalance.ts +102 -0
  84. package/src/query/QueryBatch.ts +145 -0
  85. package/src/query/QueryBatchHistory.ts +86 -0
  86. package/src/query/QueryContinuId.ts +91 -0
  87. package/src/query/QueryMetaType.ts +177 -0
  88. package/src/query/QueryMetaTypeViaAtom.ts +199 -0
  89. package/src/query/QueryPolicy.ts +91 -0
  90. package/src/query/QueryToken.ts +90 -0
  91. package/src/query/QueryUserActivity.ts +153 -0
  92. package/src/query/QueryWalletBundle.ts +92 -0
  93. package/src/query/QueryWalletList.ts +106 -0
  94. package/src/response/EnhancedResponse.ts +345 -0
  95. package/src/response/Response.ts +254 -0
  96. package/src/response/ResponseActiveSession.ts +72 -0
  97. package/src/response/ResponseAtom.ts +132 -0
  98. package/src/response/ResponseAuthorizationGuest.ts +119 -0
  99. package/src/response/ResponseBalance.ts +153 -0
  100. package/src/response/ResponseClaimShadowWallet.ts +56 -0
  101. package/src/response/ResponseContinuId.ts +101 -0
  102. package/src/response/ResponseCreateIdentifier.ts +56 -0
  103. package/src/response/ResponseCreateMeta.ts +58 -0
  104. package/src/response/ResponseCreateRule.ts +56 -0
  105. package/src/response/ResponseCreateToken.ts +58 -0
  106. package/src/response/ResponseCreateWallet.ts +58 -0
  107. package/src/response/ResponseLinkIdentifier.ts +87 -0
  108. package/src/response/ResponseMetaBatch.ts +72 -0
  109. package/src/response/ResponseMetaType.ts +108 -0
  110. package/src/response/ResponseMetaTypeViaAtom.ts +108 -0
  111. package/src/response/ResponsePolicy.ts +90 -0
  112. package/src/response/ResponseProposeMolecule.ts +155 -0
  113. package/src/response/ResponseQueryActiveSession.ts +105 -0
  114. package/src/response/ResponseQueryUserActivity.ts +89 -0
  115. package/src/response/ResponseRequestAuthorization.ts +100 -0
  116. package/src/response/ResponseRequestAuthorizationGuest.ts +133 -0
  117. package/src/response/ResponseRequestTokens.ts +58 -0
  118. package/src/response/ResponseTransferTokens.ts +72 -0
  119. package/src/response/ResponseWalletBundle.ts +95 -0
  120. package/src/response/ResponseWalletList.ts +165 -0
  121. package/src/schemas/index.ts +457 -0
  122. package/src/subscribe/ActiveSessionSubscribe.ts +72 -0
  123. package/src/subscribe/ActiveWalletSubscribe.ts +99 -0
  124. package/src/subscribe/CreateMoleculeSubscribe.ts +106 -0
  125. package/src/subscribe/Subscribe.ts +182 -0
  126. package/src/subscribe/WalletStatusSubscribe.ts +70 -0
  127. package/src/subscribe/index.ts +59 -0
  128. package/src/types/assertions.ts +722 -0
  129. package/src/types/client.ts +567 -0
  130. package/src/types/crypto.ts +541 -0
  131. package/src/types/graphql.ts +630 -0
  132. package/src/types/guards.ts +659 -0
  133. package/src/types/index.ts +614 -0
  134. package/src/types/response.ts +133 -0
  135. package/src/types/template-literals.ts +382 -0
  136. package/src/validation/UNIVERSAL_CONFIGURATION_INTERFACES.ts +580 -0
  137. package/src/validation/ValidationService.ts +607 -0
  138. package/src/validation/schemas.ts +447 -0
  139. package/src/versions/HashAtom.ts +170 -0
  140. package/src/versions/Version4.ts +120 -0
  141. 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
+ }