@beclab/olaresid 0.1.13 → 0.2.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 (181) hide show
  1. package/CLI-TREE.md +107 -0
  2. package/CLI.md +122 -1340
  3. package/README.md +30 -12
  4. package/SDK-TREE.md +151 -0
  5. package/TAG.md +95 -41
  6. package/config.json +6 -4
  7. package/dist/abi/TerminusDIDQueryABI.d.ts +397 -0
  8. package/dist/abi/TerminusDIDQueryABI.d.ts.map +1 -0
  9. package/dist/abi/TerminusDIDQueryABI.js +519 -0
  10. package/dist/abi/TerminusDIDQueryABI.js.map +1 -0
  11. package/dist/business/index.d.ts.map +1 -1
  12. package/dist/business/index.js +9 -23
  13. package/dist/business/index.js.map +1 -1
  14. package/dist/business/tag-context.d.ts +1 -0
  15. package/dist/business/tag-context.d.ts.map +1 -1
  16. package/dist/business/tag-context.js +13 -7
  17. package/dist/business/tag-context.js.map +1 -1
  18. package/dist/cli.js +177 -76
  19. package/dist/cli.js.map +1 -1
  20. package/dist/config/index.d.ts +16 -4
  21. package/dist/config/index.d.ts.map +1 -1
  22. package/dist/config/index.js +28 -14
  23. package/dist/config/index.js.map +1 -1
  24. package/dist/domain/core.d.ts +65 -0
  25. package/dist/domain/core.d.ts.map +1 -0
  26. package/dist/domain/core.js +317 -0
  27. package/dist/domain/core.js.map +1 -0
  28. package/dist/domain/index.d.ts +104 -57
  29. package/dist/domain/index.d.ts.map +1 -1
  30. package/dist/domain/index.js +188 -428
  31. package/dist/domain/index.js.map +1 -1
  32. package/dist/domain/types.d.ts +56 -0
  33. package/dist/domain/types.d.ts.map +1 -0
  34. package/dist/domain/types.js +3 -0
  35. package/dist/domain/types.js.map +1 -0
  36. package/dist/index.d.ts +80 -23
  37. package/dist/index.d.ts.map +1 -1
  38. package/dist/index.js +152 -143
  39. package/dist/index.js.map +1 -1
  40. package/dist/utils/crypto-utils.d.ts +110 -0
  41. package/dist/utils/crypto-utils.d.ts.map +1 -1
  42. package/dist/utils/crypto-utils.js +127 -8
  43. package/dist/utils/crypto-utils.js.map +1 -1
  44. package/dist/utils/error-parser.d.ts.map +1 -1
  45. package/dist/utils/error-parser.js +2 -1
  46. package/dist/utils/error-parser.js.map +1 -1
  47. package/dist/utils/event-parser.d.ts +161 -0
  48. package/dist/utils/event-parser.d.ts.map +1 -0
  49. package/dist/utils/event-parser.js +140 -0
  50. package/dist/utils/event-parser.js.map +1 -0
  51. package/dist/utils/tag-type-builder.d.ts +43 -0
  52. package/dist/utils/tag-type-builder.d.ts.map +1 -1
  53. package/dist/utils/tag-type-builder.js +122 -0
  54. package/dist/utils/tag-type-builder.js.map +1 -1
  55. package/dist/utils/tag-type-parser.d.ts +70 -0
  56. package/dist/utils/tag-type-parser.d.ts.map +1 -0
  57. package/dist/utils/tag-type-parser.js +190 -0
  58. package/dist/utils/tag-type-parser.js.map +1 -0
  59. package/examples/create-with-rpc-demo.ts +142 -0
  60. package/examples/fetch-all-flat-demo.ts +159 -0
  61. package/examples/fetch-by-indices-demo.ts +235 -0
  62. package/examples/fetch-domain-demo.ts +137 -0
  63. package/examples/fetch-domains-demo.ts +221 -0
  64. package/examples/frontend-demo/index.html +2 -2
  65. package/examples/frontend-demo/package-lock.json +4 -1
  66. package/examples/index.ts +3 -5
  67. package/jest.config.js +25 -0
  68. package/package.json +6 -2
  69. package/src/abi/TerminusDIDQueryABI.ts +516 -0
  70. package/src/business/index.ts +9 -33
  71. package/src/business/tag-context.ts +35 -7
  72. package/src/cli.ts +253 -90
  73. package/src/config/index.ts +34 -19
  74. package/src/domain/core.ts +382 -0
  75. package/src/domain/index.ts +271 -641
  76. package/src/domain/types.ts +59 -0
  77. package/src/index.ts +221 -207
  78. package/src/utils/crypto-utils.ts +205 -2
  79. package/src/utils/error-parser.ts +2 -1
  80. package/src/utils/event-parser.ts +353 -0
  81. package/src/utils/tag-type-builder.ts +138 -0
  82. package/src/utils/tag-type-parser.ts +246 -0
  83. package/tests/unit/crypto-utils.test.ts +338 -0
  84. package/tests/unit/ed25519-jwk.test.ts +201 -0
  85. package/tests/unit/event-parser.test.ts +690 -0
  86. package/tests/unit/generate-mnemonic.test.ts +268 -0
  87. package/tests/unit/olares-id-format.test.ts +321 -0
  88. package/tests/unit/tag-type-parser.test.ts +802 -0
  89. package/tests/unit/tag-types.test.ts +821 -0
  90. package/tsconfig.json +3 -2
  91. package/dist/abi/ABITypeABI.d.ts +0 -88
  92. package/dist/abi/ABITypeABI.d.ts.map +0 -1
  93. package/dist/abi/ABITypeABI.js +0 -382
  94. package/dist/abi/ABITypeABI.js.map +0 -1
  95. package/dist/abi/RegistryABI.d.ts +0 -77
  96. package/dist/abi/RegistryABI.d.ts.map +0 -1
  97. package/dist/abi/RegistryABI.js +0 -462
  98. package/dist/abi/RegistryABI.js.map +0 -1
  99. package/dist/tag/address.d.ts +0 -11
  100. package/dist/tag/address.d.ts.map +0 -1
  101. package/dist/tag/address.js +0 -44
  102. package/dist/tag/address.js.map +0 -1
  103. package/dist/tag/array.d.ts +0 -14
  104. package/dist/tag/array.d.ts.map +0 -1
  105. package/dist/tag/array.js +0 -72
  106. package/dist/tag/array.js.map +0 -1
  107. package/dist/tag/bool.d.ts +0 -11
  108. package/dist/tag/bool.d.ts.map +0 -1
  109. package/dist/tag/bool.js +0 -43
  110. package/dist/tag/bool.js.map +0 -1
  111. package/dist/tag/bytes.d.ts +0 -11
  112. package/dist/tag/bytes.d.ts.map +0 -1
  113. package/dist/tag/bytes.js +0 -37
  114. package/dist/tag/bytes.js.map +0 -1
  115. package/dist/tag/flarray.d.ts +0 -15
  116. package/dist/tag/flarray.d.ts.map +0 -1
  117. package/dist/tag/flarray.js +0 -81
  118. package/dist/tag/flarray.js.map +0 -1
  119. package/dist/tag/flbytes.d.ts +0 -11
  120. package/dist/tag/flbytes.d.ts.map +0 -1
  121. package/dist/tag/flbytes.js +0 -47
  122. package/dist/tag/flbytes.js.map +0 -1
  123. package/dist/tag/index.d.ts +0 -32
  124. package/dist/tag/index.d.ts.map +0 -1
  125. package/dist/tag/index.js +0 -121
  126. package/dist/tag/index.js.map +0 -1
  127. package/dist/tag/int.d.ts +0 -12
  128. package/dist/tag/int.d.ts.map +0 -1
  129. package/dist/tag/int.js +0 -49
  130. package/dist/tag/int.js.map +0 -1
  131. package/dist/tag/string.d.ts +0 -11
  132. package/dist/tag/string.d.ts.map +0 -1
  133. package/dist/tag/string.js +0 -37
  134. package/dist/tag/string.js.map +0 -1
  135. package/dist/tag/tag.d.ts +0 -67
  136. package/dist/tag/tag.d.ts.map +0 -1
  137. package/dist/tag/tag.js +0 -157
  138. package/dist/tag/tag.js.map +0 -1
  139. package/dist/tag/tuple.d.ts +0 -17
  140. package/dist/tag/tuple.d.ts.map +0 -1
  141. package/dist/tag/tuple.js +0 -162
  142. package/dist/tag/tuple.js.map +0 -1
  143. package/dist/tag/uint.d.ts +0 -12
  144. package/dist/tag/uint.d.ts.map +0 -1
  145. package/dist/tag/uint.js +0 -49
  146. package/dist/tag/uint.js.map +0 -1
  147. package/dist/test/did.d.ts +0 -2
  148. package/dist/test/did.d.ts.map +0 -1
  149. package/dist/test/did.js +0 -177
  150. package/dist/test/did.js.map +0 -1
  151. package/dist/utils/tag-abi-codec.d.ts +0 -69
  152. package/dist/utils/tag-abi-codec.d.ts.map +0 -1
  153. package/dist/utils/tag-abi-codec.js +0 -144
  154. package/dist/utils/tag-abi-codec.js.map +0 -1
  155. package/examples/crypto-utilities.ts +0 -140
  156. package/examples/ed25519-jwk.ts +0 -73
  157. package/examples/generate-mnemonic.ts +0 -149
  158. package/examples/legacy.ts +0 -33
  159. package/examples/olares-id-format.ts +0 -197
  160. package/examples/tag-builder.ts +0 -235
  161. package/examples/tag-nested-tuple.ts +0 -190
  162. package/examples/tag-simple.ts +0 -149
  163. package/examples/tag-tagger.ts +0 -217
  164. package/examples/test-nested-tuple-conversion.ts +0 -143
  165. package/examples/test-type-bytes-parser.ts +0 -70
  166. package/src/abi/ABITypeABI.ts +0 -379
  167. package/src/abi/RegistryABI.ts +0 -459
  168. package/src/tag/address.ts +0 -48
  169. package/src/tag/array.ts +0 -80
  170. package/src/tag/bool.ts +0 -43
  171. package/src/tag/bytes.ts +0 -38
  172. package/src/tag/flarray.ts +0 -99
  173. package/src/tag/flbytes.ts +0 -48
  174. package/src/tag/index.ts +0 -170
  175. package/src/tag/int.ts +0 -51
  176. package/src/tag/string.ts +0 -38
  177. package/src/tag/tag.ts +0 -229
  178. package/src/tag/tuple.ts +0 -193
  179. package/src/tag/uint.ts +0 -51
  180. package/src/test/did.ts +0 -346
  181. package/src/utils/tag-abi-codec.ts +0 -158
package/CLI-TREE.md ADDED
@@ -0,0 +1,107 @@
1
+ # OlaresID CLI Command Reference
2
+
3
+ Command: `did-cli`
4
+ Install: `npm install -g @beclab/olaresid`
5
+
6
+ For scenario-based usage examples, see [CLI.md](./CLI.md).
7
+
8
+ > **Signer for write operations:** `export PRIVATE_KEY_OR_MNEMONIC="your-key-or-mnemonic"`
9
+ > **Olares ID format:** `alice@olares.com` and `alice.olares.com` are interchangeable in all commands.
10
+
11
+ ```
12
+ did-cli
13
+
14
+ ├── Query [🌐 Public]
15
+ │ ├── info <domain> metadata: name / DID / owner / allowSubdomain
16
+ │ ├── owner <domain> NFT owner address
17
+ │ ├── fetch <domain> full domain data including all tags
18
+ │ └── fetch-all [--output <file>] download all domains to JSON
19
+
20
+ ├── RSA key
21
+ │ ├── rsa get <domain> [🌐 Public] PEM public key
22
+ │ ├── rsa generate [--key-length <bits>] [-o] [🌐 Local] generate RSA key pair
23
+ │ ├── rsa set <domain> <pem-file> [🔑 Domain Owner]
24
+ │ └── rsa remove <domain> [🔑 Domain Owner]
25
+
26
+ ├── IP
27
+ │ ├── ip get <domain> [🌐 Public] DNS A record (IPv4)
28
+ │ ├── ip set <domain> <ipv4> [🔑 Domain Owner]
29
+ │ └── ip remove <domain> [🔑 Domain Owner]
30
+
31
+ ├── Wallet
32
+ │ ├── wallet evm list <domain> [🌐 Public]
33
+ │ ├── wallet solana list <domain> [🌐 Public]
34
+ │ ├── wallet evm add <domain> [🔑 Domain Owner] env: EVM_PRIVATE_KEY
35
+ │ ├── wallet evm remove <domain> [🔑 Domain Owner] env: EVM_PRIVATE_KEY
36
+ │ ├── wallet solana add <domain> [🔑 Domain Owner] env: SOLANA_PRIVATE_KEY
37
+ │ └── wallet solana remove <domain> [🔑 Domain Owner] env: SOLANA_PRIVATE_KEY
38
+
39
+ ├── Domain operations [🔑 Domain Owner]
40
+ │ ├── is-owner <domain> check if signer owns the domain
41
+ │ ├── subdomain register <parent> <label> env: SUBDOMAIN_OWNER_MNEMONIC (auto-gen if unset)
42
+ │ └── transfer <domain> env: TO_MNEMONIC (auto-gen if unset)
43
+
44
+ ├── Tag [--from <domain|root> default: target domain]
45
+ │ ├── tag get <domain> <tag-name> [🌐 Public]
46
+ │ ├── tag list <domain> [🌐 Public] all tag values on domain
47
+ │ ├── tag list-defined [<domain>] [🌐 Public] tag types defined by domain
48
+ │ ├── tag get-tagger <domain> <tag-name> [🌐 Public]
49
+ │ ├── tag define <domain> <tag-name> <type> [🔑 Domain Owner]
50
+ │ │ └── types: string / uint8 / uint256 / int8 / int256 / bool / address / bytes / bytes32
51
+ │ │ string[] / uint8[] / address[] / ...
52
+ │ ├── tag set-tagger <domain> <tag-name> <addr> [🔑 Domain Owner]
53
+ │ ├── tag set <domain> <tag-name> <value> [🔑 Domain Owner] value: string or JSON
54
+ │ └── tag remove <domain> <tag-name> [🔑 Domain Owner]
55
+
56
+ ├── Admin
57
+ │ ├── admin get-owner [🌐 Public]
58
+ │ ├── admin get-totalsupply [🌐 Public]
59
+ │ ├── admin get-operator [🌐 Public]
60
+ │ ├── admin set-operator <address> [👑 Contract Owner]
61
+ │ ├── admin transfer-ownership <address> [👑 Contract Owner] 2-step: initiate
62
+ │ └── admin accept-ownership [👑 Contract Owner] 2-step: confirm
63
+
64
+ ├── crypto / convert [🌐 Local — no network]
65
+ │ ├── crypto generate [--words <n>] [-o <file>] generate BIP39 mnemonic
66
+ │ ├── crypto address derive Ethereum address
67
+ │ ├── crypto did derive DID from mnemonic
68
+ │ ├── crypto privatekey [-o <file>] derive EVM private key
69
+ │ ├── crypto derive [-o <file>] derive all keys from mnemonic
70
+ │ ├── convert pem-to-der <file> PEM → DER hex
71
+ │ ├── convert der-to-pem <hex> DER hex → PEM
72
+ │ ├── convert ip-to-bytes <ip> IPv4 → bytes4
73
+ │ └── convert bytes-to-ip <hex> bytes4 → IPv4
74
+
75
+ └── config [🌐 Local config file]
76
+ ├── config show [--network <network>]
77
+ ├── config list
78
+ └── config set <key> <value> [--network <network>]
79
+ └── keys: rpc / contractDid / contractRootResolver / contractAbiType
80
+ contractRootResolver2 / supportSvcUrl / queryContract
81
+ ```
82
+
83
+ ---
84
+
85
+ ```
86
+ Global options
87
+ -n, --network <network> mainnet (default) | sepolia
88
+ --from <domain|root> tag source domain (tag commands)
89
+ --rpc <url> override RPC endpoint
90
+ --contract-did <addr> override DID contract
91
+ --contract-resolver <addr> override RootResolver contract
92
+ --contract-resolver2 <addr> override RootResolver2 contract
93
+ -j, --json machine-readable JSON output
94
+ -v, --verbose verbose debug output
95
+ -o, --output <file> output file path
96
+ --key-length <bits> RSA key length (default 2048)
97
+ -h, --help
98
+ -V, --version
99
+
100
+ Permission legend
101
+ 🌐 Public no signing required
102
+ 🔑 Domain Owner holder of the domain NFT
103
+ 👑 Contract Owner Ownable2Step super-admin
104
+
105
+ ⚠️ Operator role: exists at the contract level for registering root domains;
106
+ not exposed as a CLI command.
107
+ ```