@beclab/olaresid 0.1.12 → 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 (182) hide show
  1. package/CLI-TREE.md +107 -0
  2. package/CLI.md +122 -1329
  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 +1 -1
  12. package/dist/business/index.d.ts.map +1 -1
  13. package/dist/business/index.js +11 -24
  14. package/dist/business/index.js.map +1 -1
  15. package/dist/business/tag-context.d.ts +1 -0
  16. package/dist/business/tag-context.d.ts.map +1 -1
  17. package/dist/business/tag-context.js +13 -7
  18. package/dist/business/tag-context.js.map +1 -1
  19. package/dist/cli.js +238 -107
  20. package/dist/cli.js.map +1 -1
  21. package/dist/config/index.d.ts +16 -4
  22. package/dist/config/index.d.ts.map +1 -1
  23. package/dist/config/index.js +28 -14
  24. package/dist/config/index.js.map +1 -1
  25. package/dist/domain/core.d.ts +65 -0
  26. package/dist/domain/core.d.ts.map +1 -0
  27. package/dist/domain/core.js +317 -0
  28. package/dist/domain/core.js.map +1 -0
  29. package/dist/domain/index.d.ts +104 -57
  30. package/dist/domain/index.d.ts.map +1 -1
  31. package/dist/domain/index.js +188 -428
  32. package/dist/domain/index.js.map +1 -1
  33. package/dist/domain/types.d.ts +56 -0
  34. package/dist/domain/types.d.ts.map +1 -0
  35. package/dist/domain/types.js +3 -0
  36. package/dist/domain/types.js.map +1 -0
  37. package/dist/index.d.ts +81 -24
  38. package/dist/index.d.ts.map +1 -1
  39. package/dist/index.js +153 -143
  40. package/dist/index.js.map +1 -1
  41. package/dist/utils/crypto-utils.d.ts +124 -0
  42. package/dist/utils/crypto-utils.d.ts.map +1 -1
  43. package/dist/utils/crypto-utils.js +156 -8
  44. package/dist/utils/crypto-utils.js.map +1 -1
  45. package/dist/utils/error-parser.d.ts.map +1 -1
  46. package/dist/utils/error-parser.js +2 -1
  47. package/dist/utils/error-parser.js.map +1 -1
  48. package/dist/utils/event-parser.d.ts +161 -0
  49. package/dist/utils/event-parser.d.ts.map +1 -0
  50. package/dist/utils/event-parser.js +140 -0
  51. package/dist/utils/event-parser.js.map +1 -0
  52. package/dist/utils/tag-type-builder.d.ts +43 -0
  53. package/dist/utils/tag-type-builder.d.ts.map +1 -1
  54. package/dist/utils/tag-type-builder.js +122 -0
  55. package/dist/utils/tag-type-builder.js.map +1 -1
  56. package/dist/utils/tag-type-parser.d.ts +70 -0
  57. package/dist/utils/tag-type-parser.d.ts.map +1 -0
  58. package/dist/utils/tag-type-parser.js +190 -0
  59. package/dist/utils/tag-type-parser.js.map +1 -0
  60. package/examples/create-with-rpc-demo.ts +142 -0
  61. package/examples/fetch-all-flat-demo.ts +159 -0
  62. package/examples/fetch-by-indices-demo.ts +235 -0
  63. package/examples/fetch-domain-demo.ts +137 -0
  64. package/examples/fetch-domains-demo.ts +221 -0
  65. package/examples/frontend-demo/index.html +2 -2
  66. package/examples/frontend-demo/package-lock.json +4 -1
  67. package/examples/index.ts +3 -5
  68. package/jest.config.js +25 -0
  69. package/package.json +6 -2
  70. package/src/abi/TerminusDIDQueryABI.ts +516 -0
  71. package/src/business/index.ts +10 -33
  72. package/src/business/tag-context.ts +35 -7
  73. package/src/cli.ts +344 -121
  74. package/src/config/index.ts +34 -19
  75. package/src/domain/core.ts +382 -0
  76. package/src/domain/index.ts +271 -641
  77. package/src/domain/types.ts +59 -0
  78. package/src/index.ts +222 -207
  79. package/src/utils/crypto-utils.ts +239 -2
  80. package/src/utils/error-parser.ts +2 -1
  81. package/src/utils/event-parser.ts +353 -0
  82. package/src/utils/tag-type-builder.ts +138 -0
  83. package/src/utils/tag-type-parser.ts +246 -0
  84. package/tests/unit/crypto-utils.test.ts +338 -0
  85. package/tests/unit/ed25519-jwk.test.ts +201 -0
  86. package/tests/unit/event-parser.test.ts +690 -0
  87. package/tests/unit/generate-mnemonic.test.ts +268 -0
  88. package/tests/unit/olares-id-format.test.ts +321 -0
  89. package/tests/unit/tag-type-parser.test.ts +802 -0
  90. package/tests/unit/tag-types.test.ts +821 -0
  91. package/tsconfig.json +3 -2
  92. package/dist/abi/ABITypeABI.d.ts +0 -88
  93. package/dist/abi/ABITypeABI.d.ts.map +0 -1
  94. package/dist/abi/ABITypeABI.js +0 -382
  95. package/dist/abi/ABITypeABI.js.map +0 -1
  96. package/dist/abi/RegistryABI.d.ts +0 -77
  97. package/dist/abi/RegistryABI.d.ts.map +0 -1
  98. package/dist/abi/RegistryABI.js +0 -462
  99. package/dist/abi/RegistryABI.js.map +0 -1
  100. package/dist/tag/address.d.ts +0 -11
  101. package/dist/tag/address.d.ts.map +0 -1
  102. package/dist/tag/address.js +0 -44
  103. package/dist/tag/address.js.map +0 -1
  104. package/dist/tag/array.d.ts +0 -14
  105. package/dist/tag/array.d.ts.map +0 -1
  106. package/dist/tag/array.js +0 -72
  107. package/dist/tag/array.js.map +0 -1
  108. package/dist/tag/bool.d.ts +0 -11
  109. package/dist/tag/bool.d.ts.map +0 -1
  110. package/dist/tag/bool.js +0 -43
  111. package/dist/tag/bool.js.map +0 -1
  112. package/dist/tag/bytes.d.ts +0 -11
  113. package/dist/tag/bytes.d.ts.map +0 -1
  114. package/dist/tag/bytes.js +0 -37
  115. package/dist/tag/bytes.js.map +0 -1
  116. package/dist/tag/flarray.d.ts +0 -15
  117. package/dist/tag/flarray.d.ts.map +0 -1
  118. package/dist/tag/flarray.js +0 -81
  119. package/dist/tag/flarray.js.map +0 -1
  120. package/dist/tag/flbytes.d.ts +0 -11
  121. package/dist/tag/flbytes.d.ts.map +0 -1
  122. package/dist/tag/flbytes.js +0 -47
  123. package/dist/tag/flbytes.js.map +0 -1
  124. package/dist/tag/index.d.ts +0 -32
  125. package/dist/tag/index.d.ts.map +0 -1
  126. package/dist/tag/index.js +0 -121
  127. package/dist/tag/index.js.map +0 -1
  128. package/dist/tag/int.d.ts +0 -12
  129. package/dist/tag/int.d.ts.map +0 -1
  130. package/dist/tag/int.js +0 -49
  131. package/dist/tag/int.js.map +0 -1
  132. package/dist/tag/string.d.ts +0 -11
  133. package/dist/tag/string.d.ts.map +0 -1
  134. package/dist/tag/string.js +0 -37
  135. package/dist/tag/string.js.map +0 -1
  136. package/dist/tag/tag.d.ts +0 -67
  137. package/dist/tag/tag.d.ts.map +0 -1
  138. package/dist/tag/tag.js +0 -157
  139. package/dist/tag/tag.js.map +0 -1
  140. package/dist/tag/tuple.d.ts +0 -17
  141. package/dist/tag/tuple.d.ts.map +0 -1
  142. package/dist/tag/tuple.js +0 -162
  143. package/dist/tag/tuple.js.map +0 -1
  144. package/dist/tag/uint.d.ts +0 -12
  145. package/dist/tag/uint.d.ts.map +0 -1
  146. package/dist/tag/uint.js +0 -49
  147. package/dist/tag/uint.js.map +0 -1
  148. package/dist/test/did.d.ts +0 -2
  149. package/dist/test/did.d.ts.map +0 -1
  150. package/dist/test/did.js +0 -177
  151. package/dist/test/did.js.map +0 -1
  152. package/dist/utils/tag-abi-codec.d.ts +0 -69
  153. package/dist/utils/tag-abi-codec.d.ts.map +0 -1
  154. package/dist/utils/tag-abi-codec.js +0 -144
  155. package/dist/utils/tag-abi-codec.js.map +0 -1
  156. package/examples/crypto-utilities.ts +0 -140
  157. package/examples/ed25519-jwk.ts +0 -73
  158. package/examples/generate-mnemonic.ts +0 -149
  159. package/examples/legacy.ts +0 -33
  160. package/examples/olares-id-format.ts +0 -197
  161. package/examples/tag-builder.ts +0 -235
  162. package/examples/tag-nested-tuple.ts +0 -190
  163. package/examples/tag-simple.ts +0 -149
  164. package/examples/tag-tagger.ts +0 -217
  165. package/examples/test-nested-tuple-conversion.ts +0 -143
  166. package/examples/test-type-bytes-parser.ts +0 -70
  167. package/src/abi/ABITypeABI.ts +0 -379
  168. package/src/abi/RegistryABI.ts +0 -459
  169. package/src/tag/address.ts +0 -48
  170. package/src/tag/array.ts +0 -80
  171. package/src/tag/bool.ts +0 -43
  172. package/src/tag/bytes.ts +0 -38
  173. package/src/tag/flarray.ts +0 -99
  174. package/src/tag/flbytes.ts +0 -48
  175. package/src/tag/index.ts +0 -170
  176. package/src/tag/int.ts +0 -51
  177. package/src/tag/string.ts +0 -38
  178. package/src/tag/tag.ts +0 -229
  179. package/src/tag/tuple.ts +0 -193
  180. package/src/tag/uint.ts +0 -51
  181. package/src/test/did.ts +0 -346
  182. 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
+ ```