@0xobelisk/sui-common 1.1.7 → 1.1.9

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/dist/index.js CHANGED
@@ -1,10 +1,10 @@
1
- import v from"prettier";import q from"prettier-plugin-move-js";async function T(e,t){let r;t&&(r=await v.resolveConfig(t));try{return v.format(e,{plugins:[q],parser:"move-parse",printWidth:120,semi:!0,tabWidth:2,useTabs:!1,bracketSpacing:!0,...r})}catch(a){let n;return a instanceof Error?n=a.message:n=a,console.log(`Error during output formatting: ${n}`),e}}async function V(e){return v.format(e,{parser:"typescript"})}import y from"node:fs/promises";import R from"node:path";import E from"debug";var b=E("dubhe:common"),J=E("dubhe:common");b.log=console.debug.bind(console);J.log=console.error.bind(console);var $=b.extend("codegen"),P=b.extend("codegen");$.log=console.debug.bind(console);P.log=console.error.bind(console);async function c(e,t,r){let a=await T(e),n=` // Copyright (c) Obelisk Labs, Inc.
1
+ import v from"prettier";import X from"prettier-plugin-move-js";async function T(e,t){let r;t&&(r=await v.resolveConfig(t));try{return v.format(e,{plugins:[X],parser:"move-parse",printWidth:120,semi:!0,tabWidth:2,useTabs:!1,bracketSpacing:!0,...r})}catch(a){let n;return a instanceof Error?n=a.message:n=a,console.log(`Error during output formatting: ${n}`),e}}async function C(e){return v.format(e,{parser:"typescript"})}import $ from"node:fs/promises";import R from"node:path";import V from"debug";var b=V("dubhe:common"),Y=V("dubhe:common");b.log=console.debug.bind(console);Y.log=console.error.bind(console);var h=b.extend("codegen"),q=b.extend("codegen");h.log=console.debug.bind(console);q.log=console.error.bind(console);async function c(e,t,r){let a=await T(e),n=` // Copyright (c) Obelisk Labs, Inc.
2
2
  // SPDX-License-Identifier: Apache-2.0
3
3
  #[allow(unused_use)]
4
4
 
5
5
  /* Autogenerated file. Do not edit manually. */
6
6
 
7
- `,o="#[test_only]",s=n+a,i="#[allow(lint(share_owned))]";t.includes(".toml")||t.includes("system")||t.includes("migrate")?s=a:t.includes("init")?s=o+a:t.includes("genesis")&&(s=i+a),await y.mkdir(R.dirname(t),{recursive:!0}),await y.writeFile(t,s),$(`${r}: ${t}`)}async function Te(e,t,r){let a=await V(e);await y.mkdir(R.dirname(t),{recursive:!0}),await y.writeFile(t,a),$(`${r}: ${t}`)}function Ee(e){return e.replace(/\\/g,"/")}import{existsSync as A}from"fs";import g from"fs";function x(e){g.existsSync(e)&&(g.readdirSync(e).forEach(t=>{let r=`${e}/${t}`;g.lstatSync(r).isDirectory()?x(r):g.unlinkSync(r)}),g.rmdirSync(e))}function f(e){return Object.entries(e).map(([t,r])=>`${t}`).join(",")}function U(e){return`(${Object.entries(e).map(([t,r])=>`${r}`)})`}function u(e){return Object.entries(e).map(([t,r])=>`${t}: ${r}`)}function O(e){return Object.entries(e).map(([t,r])=>`self.${t}`)}function W(e,t){for(let r in e)if(e.hasOwnProperty(r)){let a=e[r];if(typeof a=="string"&&a===t)return!0}return!1}async function G(e,t){console.log(`
7
+ `,s="#[test_only]",o=n+a,i="#[allow(lint(share_owned))]";t.includes(".toml")||t.includes("system")||t.includes("migrate")?o=a:t.includes("init")?o=s+a:t.includes("genesis")&&(o=i+a),await $.mkdir(R.dirname(t),{recursive:!0}),await $.writeFile(t,o),h(`${r}: ${t}`)}async function Te(e,t,r){let a=await C(e);await $.mkdir(R.dirname(t),{recursive:!0}),await $.writeFile(t,a),h(`${r}: ${t}`)}function Ve(e){return e.replace(/\\/g,"/")}import{existsSync as k}from"fs";import _ from"fs";function x(e){_.existsSync(e)&&(_.readdirSync(e).forEach(t=>{let r=`${e}/${t}`;_.lstatSync(r).isDirectory()?x(r):_.unlinkSync(r)}),_.rmdirSync(e))}function g(e){return Object.entries(e).map(([t,r])=>`${t}`).join(",")}function E(e){return`(${Object.entries(e).map(([t,r])=>`${r}`)})`}function u(e){return Object.entries(e).map(([t,r])=>`${t}: ${r}`)}function U(e){return Object.entries(e).map(([t,r])=>`self.${t}`)}function W(e,t){for(let r in e)if(e.hasOwnProperty(r)){let a=e[r];if(typeof a=="string"&&a===t||typeof a=="string"&&a.includes(t)&&a.includes(">"))return!0}return!1}async function O(e,t){console.log(`
8
8
  \u{1F4C4} Starting Move.toml Generation...`),console.log(` \u2514\u2500 Output path: ${t}/contracts/${e.name}/Move.toml`);let r=`[package]
9
9
  name = "${e.name}"
10
10
  version = "1.0.0"
@@ -24,43 +24,42 @@ ${e.name} = "0x0"
24
24
  `)}function te(e,t){return`public(package) fun set(self: &mut ${e}, ${u(t)}) {
25
25
  ${Object.entries(t).map(([r])=>`self.${r} = ${r};`).join(`
26
26
  `)}
27
- }`}function re(e,t){return`public fun get(self: &${e}): ${U(t)} {
28
- (${O(t)})
27
+ }`}function re(e,t){return`public fun get(self: &${e}): ${E(t)} {
28
+ (${U(t)})
29
29
  }`}function ae(e,t){return Object.entries(t).map(([r,a])=>`public fun get_${r}(self: &${e}): ${a} {
30
30
  self.${r}
31
31
  }`).join(`
32
- `)}function d(e){return e.replace(/([A-Z])/g,"_$1").toLowerCase().replace(/^_/,"")}async function j(e,t,r){console.log(`
33
- \u{1F4E6} Starting Schema Data Generation...`);for(let a of Object.keys(t)){let n=a,o=t[a];console.log(` \u2514\u2500 Generating ${n} ${Array.isArray(o)?"(enum)":"(struct)"}`);let s="",i=Object.keys(t).filter(p=>Array.isArray(t[p])).map(p=>p);if(console.log(i),Array.isArray(o)){let p=N(o);s=`module ${e}::${e}_${d(n)} {
32
+ `)}function l(e){return e.replace(/([A-Z])/g,"_$1").toLowerCase().replace(/^_/,"")}async function j(e,t,r){console.log(`
33
+ \u{1F4E6} Starting Schema Data Generation...`);for(let a of Object.keys(t)){let n=a,s=t[a];console.log(` \u2514\u2500 ${n} ${Array.isArray(s)?"(enum)":"(struct)"}: ${JSON.stringify(s)}`);let o="",i=Object.keys(t).filter(p=>Array.isArray(t[p])).map(p=>p);if(Array.isArray(s)){let p=N(s);o=`module ${e}::${e}_${l(n)} {
34
34
  public enum ${n} has copy, drop , store {
35
35
  ${p}
36
36
  }
37
37
 
38
- ${p.map(m=>`public fun new_${d(m)}(): ${n} {
38
+ ${p.map(m=>`public fun new_${l(m)}(): ${n} {
39
39
  ${n}::${m}
40
- }`).join("")}`}else s=`module ${e}::${e}_${d(n)} {
40
+ }`).join("")}`}else o=`module ${e}::${e}_${l(n)} {
41
41
  use std::ascii::String;
42
42
 
43
- ${Object.keys(t).map(p=>{if(W(o,p))return`use ${e}::${e}_${d(p)}::${p};`}).filter(Boolean).join(`
43
+ ${Object.keys(t).map(p=>{if(W(s,p))return`use ${e}::${e}_${l(p)}::${p};`}).filter(Boolean).join(`
44
44
  `)}
45
45
 
46
46
  public struct ${n} has copy, drop , store {
47
- ${u(o)}
47
+ ${u(s)}
48
48
  }
49
49
 
50
- public fun new(${u(o)}): ${n} {
50
+ public fun new(${u(s)}): ${n} {
51
51
  ${n} {
52
- ${f(o)}
52
+ ${g(s)}
53
53
  }
54
54
  }
55
55
 
56
- ${re(n,o)}
57
- ${ae(n,o)}
58
- ${ee(n,o)}
59
- ${te(n,o)}
60
- }`;await c(s,`${r}/contracts/${e}/sources/codegen/data/${d(n)}.move`,"formatAndWriteMove")}console.log(`\u2705 Schema Data Generation Complete
61
- `)}function oe(e,t){return t!=null?Object.keys(t).map(a=>`use ${e}::${e}_${d(a)}::${a};`).join(`
56
+ ${re(n,s)}
57
+ ${ae(n,s)}
58
+ ${ee(n,s)}
59
+ ${te(n,s)}
60
+ }`;await c(o,`${r}/contracts/${e}/sources/codegen/data/${l(n)}.move`,"formatAndWriteMove")}}function se(e,t){return t!=null?Object.keys(t).map(a=>`use ${e}::${e}_${l(a)}::${a};`).join(`
62
61
  `):""}async function w(e,t,r,a){console.log(`
63
- \u{1F528} Starting Schema Structure Generation...`),console.log(` \u251C\u2500 Output path: ${a}/contracts/${e}/sources/codegen/schema.move`),console.log(` \u2514\u2500 Structure fields: ${Object.values(r).length}`);let n=`module ${e}::${e}_schema {
62
+ \u{1F528} Starting Schema Structure Generation...`),Object.entries(r).forEach(([s,o])=>{console.log(` \u2514\u2500 ${s}: ${o}`)});let n=`module ${e}::${e}_schema {
64
63
  use std::ascii::String;
65
64
  use std::ascii::string;
66
65
  use sui::package::UpgradeCap;
@@ -70,24 +69,78 @@ ${e.name} = "0x0"
70
69
  use dubhe::storage_map::{Self, StorageMap};
71
70
  use dubhe::storage_double_map::{Self, StorageDoubleMap};
72
71
  use sui::dynamic_field as df;
72
+ use ${e}::${e}_dapp_metadata::DappMetadata;
73
73
 
74
- ${oe(e,t)}
74
+ ${se(e,t)}
75
75
 
76
76
  public struct Schema has key, store { id: UID }
77
+
78
+ // Default storage
79
+ public fun borrow_dapp__admin(self: &Schema): &StorageValue<address> {
80
+ storage::borrow_field(&self.id, b"dapp__admin")
81
+ }
82
+
83
+ public fun borrow_dapp__package_id(self: &Schema): &StorageValue<address> {
84
+ storage::borrow_field(&self.id, b"dapp__package_id")
85
+ }
86
+
87
+ public fun borrow_dapp__version(self: &Schema): &StorageValue<u32> {
88
+ storage::borrow_field(&self.id, b"dapp__version")
89
+ }
90
+
91
+ public fun borrow_dapp__metadata(self: &Schema): &StorageValue<DappMetadata> {
92
+ storage::borrow_field(&self.id, b"dapp__metadata")
93
+ }
94
+
95
+ public fun borrow_dapp__safe_mode(self: &Schema): &StorageValue<bool> {
96
+ storage::borrow_field(&self.id, b"dapp__safe_mode")
97
+ }
98
+
99
+ public fun borrow_dapp__authorised_schemas(self: &Schema): &StorageValue<vector<address>> {
100
+ storage::borrow_field(&self.id, b"dapp__authorised_schemas")
101
+ }
102
+
103
+ public fun borrow_dapp__schemas(self: &Schema): &StorageValue<vector<address>> {
104
+ storage::borrow_field(&self.id, b"dapp__schemas")
105
+ }
106
+
107
+ public(package) fun dapp__admin(self: &mut Schema): &mut StorageValue<address> {
108
+ storage::borrow_mut_field(&mut self.id, b"dapp__admin")
109
+ }
110
+
111
+ public(package) fun dapp__package_id(self: &mut Schema): &mut StorageValue<address> {
112
+ storage::borrow_mut_field(&mut self.id, b"dapp__package_id")
113
+ }
114
+
115
+ public(package) fun dapp__version(self: &mut Schema): &mut StorageValue<u32> {
116
+ storage::borrow_mut_field(&mut self.id, b"dapp__version")
117
+ }
118
+
119
+ public(package) fun dapp__metadata(self: &mut Schema): &mut StorageValue<DappMetadata> {
120
+ storage::borrow_mut_field(&mut self.id, b"dapp__metadata")
121
+ }
122
+
123
+ public(package) fun dapp__safe_mode(self: &mut Schema): &mut StorageValue<bool> {
124
+ storage::borrow_mut_field(&mut self.id, b"dapp__safe_mode")
125
+ }
126
+
127
+ public(package) fun dapp__authorised_schemas(self: &mut Schema): &mut StorageValue<vector<address>> {
128
+ storage::borrow_mut_field(&mut self.id, b"dapp__authorised_schemas")
129
+ }
77
130
 
78
- ${Object.entries(r).map(([o,s])=>`public fun borrow_${o}(self: &Schema) : &${s} {
79
- storage::borrow_field(&self.id, b"${o}")
131
+ ${Object.entries(r).map(([s,o])=>`public fun borrow_${s}(self: &Schema) : &${o} {
132
+ storage::borrow_field(&self.id, b"${s}")
80
133
  }
81
134
 
82
- public(package) fun ${o}(self: &mut Schema): &mut ${s} {
83
- storage::borrow_mut_field(&mut self.id, b"${o}")
135
+ public(package) fun ${s}(self: &mut Schema): &mut ${o} {
136
+ storage::borrow_mut_field(&mut self.id, b"${s}")
84
137
  }
85
138
  `).join("")}
86
139
 
87
140
 
88
141
  public(package) fun create(ctx: &mut TxContext): Schema {
89
142
  let mut id = object::new(ctx);
90
- ${Object.entries(r).map(([o,s])=>{let i="";return s.includes("StorageValue")?i=`storage_value::new(b"${o}", ctx)`:s.includes("StorageMap")?i=`storage_map::new(b"${o}", ctx)`:s.includes("StorageDoubleMap")&&(i=`storage_double_map::new(b"${o}", ctx)`),`storage::add_field<${s}>(&mut id, b"${o}", ${i});`}).join(`
143
+ ${Object.entries(r).map(([s,o])=>{let i="";return o.includes("StorageValue")?i=`storage_value::new(b"${s}", ctx)`:o.includes("StorageMap")?i=`storage_map::new(b"${s}", ctx)`:o.includes("StorageDoubleMap")&&(i=`storage_double_map::new(b"${s}", ctx)`),`storage::add_field<${o}>(&mut id, b"${s}", ${i});`}).join(`
91
144
  `)}
92
145
 
93
146
  Schema { id }
@@ -105,373 +158,284 @@ ${e.name} = "0x0"
105
158
 
106
159
 
107
160
  // ======================================== View Functions ========================================
108
- ${Object.entries(r).map(([o,s])=>{let i=s.match(/<(.+)>/)[1].split(",").map(Y=>Y.trim()),p=[],m="",_="";return s.includes("StorageValue")?(p=[],m=`${i[0]}`,_="get()"):s.includes("StorageMap")?(p=[`key: ${i[0]}`],m=`${i[1]}`,_="get(key)"):s.includes("StorageDoubleMap")&&(p=[`key1: ${i[0]}`,`key2: ${i[1]}`],m=`${i[2]}`,_="get(key1, key2)"),`public fun get_${o}(self: &Schema, ${p}) : &${m} {
109
- self.borrow_${o}().${_}
161
+ ${Object.entries(r).map(([s,o])=>{let i=o.match(/<(.+)>/)[1].split(",").map(P=>P.trim()),p=[],m="",f="";return o.includes("StorageValue")?(p=[],m=`${i[0]}`,f="get()"):o.includes("StorageMap")?(p=[`key: ${i[0]}`],m=`${i[1]}`,f="get(key)"):o.includes("StorageDoubleMap")&&(p=[`key1: ${i[0]}`,`key2: ${i[1]}`],m=`${i[2]}`,f="get(key1, key2)"),`public fun get_${s}(self: &Schema, ${p}) : &${m} {
162
+ self.borrow_${s}().${f}
110
163
  }`}).join(`
111
164
  `)}
112
165
  // =========================================================================================================
113
- }`;await c(n,`${a}/contracts/${e}/sources/codegen/schema.move`,"formatAndWriteMove"),console.log(`\u2705 Schema Structure Generation Complete
114
- `)}import{existsSync as I}from"fs";async function F(e,t){console.log(`
115
- \u{1F4DD} Starting Deploy Hook Generation...`),console.log(` \u2514\u2500 Output path: ${t}/contracts/${e.name}/sources/scripts/deploy_hook.move`);let r=`${t}/contracts/${e.name}/sources/scripts/deploy_hook.move`;if(!I(r)){let a=`module ${e.name}::${e.name}_deploy_hook {
166
+ }`;await c(n,`${a}/contracts/${e}/sources/codegen/core/schema.move`,"formatAndWriteMove")}import{existsSync as F}from"fs";async function L(e,t){let r=`${t}/contracts/${e.name}/sources/scripts/deploy_hook.move`;if(!F(r)){let a=`module ${e.name}::${e.name}_deploy_hook {
116
167
  use ${e.name}::${e.name}_schema::Schema;
117
168
 
118
169
  public(package) fun run(_schema: &mut Schema, _ctx: &mut TxContext) {
119
170
 
120
171
  }
121
- }`;await c(a,r,"formatAndWriteMove")}console.log(`\u2705 Deploy Hook Generation Complete
122
- `)}async function L(e,t){if(!I(`${t}/contracts/${e.name}/sources/scripts/migrate.move`)){let r=`module ${e.name}::${e.name}_migrate {
172
+ }`;await c(a,r,"formatAndWriteMove")}}async function B(e,t){if(!F(`${t}/contracts/${e.name}/sources/scripts/migrate.move`)){let r=`module ${e.name}::${e.name}_migrate {
123
173
  const ON_CHAIN_VERSION: u32 = 1;
124
174
 
125
175
  public fun on_chain_version(): u32 {
126
176
  ON_CHAIN_VERSION
127
177
  }
128
178
  }
129
- `;await c(r,`${t}/contracts/${e.name}/sources/scripts/migrate.move`,"formatAndWriteMove")}}function l(e){return e.split("_").map(t=>t.charAt(0).toUpperCase()+t.slice(1).toLowerCase()).join("")}function ne(e){return e.replace(/([A-Z])/g,"_$1").toLowerCase().replace(/^_/,"")}function B(e,t){return t!=null?Object.keys(t).map(a=>`use ${e}::${e}_${ne(a)}::${a};`).join(`
179
+ `;await c(r,`${t}/contracts/${e.name}/sources/scripts/migrate.move`,"formatAndWriteMove")}}function d(e){return e.split("_").map(t=>t.charAt(0).toUpperCase()+t.slice(1).toLowerCase()).join("")}function oe(e){return e.replace(/([A-Z])/g,"_$1").toLowerCase().replace(/^_/,"")}function I(e,t){return t!=null?Object.keys(t).map(a=>`use ${e}::${e}_${oe(a)}::${a};`).join(`
130
180
  `):""}async function D(e,t,r,a){console.log(`
131
- \u{1F4E6} Starting Schema Event Generation...`);for(let o of Object.keys(r)){let s=o,i=r[o];console.log(` \u2514\u2500 Generating ${s} event: ${i}`);let p=`module ${e}::${e}_${s}_event {
181
+ \u{1F4E6} Starting Schema Event Generation...`);for(let s of Object.keys(r)){let o=s,i=r[s];console.log(` \u2514\u2500 ${o} event: ${JSON.stringify(i)}`);let p=`module ${e}::${e}_${o}_event {
132
182
  use sui::event;
133
183
  use std::ascii::String;
134
- ${B(e,t)}
184
+ ${I(e,t)}
135
185
 
136
- public struct ${l(s)}Event has copy, drop {
186
+ public struct ${d(o)}Event has copy, drop {
137
187
  ${u(i)}
138
188
  }
139
189
 
140
- public fun new(${u(i)}): ${l(s)}Event {
141
- ${l(s)}Event {
142
- ${f(i)}
190
+ public fun new(${u(i)}): ${d(o)}Event {
191
+ ${d(o)}Event {
192
+ ${g(i)}
143
193
  }
144
194
  }
145
- }`;await c(p,`${a}/contracts/${e}/sources/codegen/data/${s}_event.move`,"formatAndWriteMove")}let n=`module ${e}::${e}_events {
195
+ }`;await c(p,`${a}/contracts/${e}/sources/codegen/data/${o}_event.move`,"formatAndWriteMove")}let n=`module ${e}::${e}_events {
146
196
  use std::ascii::{String, string};
147
- ${B(e,t)}
148
- ${Object.entries(r).map(([o,s])=>`
149
- use ${e}::${e}_${o}_event::${l(o)}Event;
150
- use ${e}::${e}_${o}_event;
151
- public fun ${o}_event(${u(s)}) {
152
- dubhe::storage_event::emit_set_record<${l(o)}Event, ${l(o)}Event, ${l(o)}Event>(
153
- string(b"${o}_event"),
197
+ ${I(e,t)}
198
+ ${Object.entries(r).map(([s,o])=>`
199
+ use ${e}::${e}_${s}_event::${d(s)}Event;
200
+ use ${e}::${e}_${s}_event;
201
+ public fun ${s}_event(${u(o)}) {
202
+ dubhe::storage_event::emit_set_record<${d(s)}Event, ${d(s)}Event, ${d(s)}Event>(
203
+ string(b"${s}_event"),
154
204
  option::none(),
155
205
  option::none(),
156
- option::some(${e}_${o}_event::new(${f(s)}))
206
+ option::some(${e}_${s}_event::new(${g(o)}))
157
207
  )
158
208
  }
159
209
  `).join(`
160
210
  `)}
161
- }`;await c(n,`${a}/contracts/${e}/sources/codegen/events.move`,"formatAndWriteMove"),console.log(`\u2705 Schema Event Generation Complete
162
- `)}import{existsSync as se}from"fs";import ie from"node:fs/promises";async function K(e,t){console.log(`
163
- \u2699\uFE0F Starting System Generation...`),console.log(" \u251C\u2500 Generating systems"),console.log(` \u2514\u2500 Output path: ${t}/contracts/${e.name}/sources/systems`),se(`${t}/contracts/${e.name}/sources/systems`)||await ie.mkdir(`${t}/contracts/${e.name}/sources/systems`,{recursive:!0}),console.log(`\u2705 System Generation Complete
164
- `)}async function H(e,t,r){console.log(`
211
+ }`;await c(n,`${a}/contracts/${e}/sources/codegen/events.move`,"formatAndWriteMove")}import{existsSync as ne}from"fs";import ie from"node:fs/promises";async function K(e,t){ne(`${t}/contracts/${e.name}/sources/systems`)||await ie.mkdir(`${t}/contracts/${e.name}/sources/systems`,{recursive:!0})}async function G(e,t,r){console.log(`
165
212
  \u{1F4E6} Starting Schema Error Generation...`);let a=`module ${e}::${e}_errors {
166
- ${Object.entries(t).map(([n,o])=>(console.log(` \u251C\u2500 Generating Error: ${n}`),console.log(` \u2502 \u2514\u2500 Message: ${o}`),`#[error]
167
- const ${n.toUpperCase()}: vector<u8> = b"${o}";
213
+ ${Object.entries(t).map(([n,s])=>(console.log(` \u2514\u2500 ${n}: ${s}`),`#[error]
214
+ const ${n.toUpperCase()}: vector<u8> = b"${s}";
168
215
  public fun ${n}_error(condition: bool) { assert!(condition, ${n.toUpperCase()}) }
169
216
  `)).join(`
170
217
  `)}
171
- }`;await c(a,`${r}/contracts/${e}/sources/codegen/errors.move`,"formatAndWriteMove"),console.log(`\u2705 Schema Error Generation Complete
172
- `)}import{existsSync as k}from"fs";async function z(e,t){await ce(e,t),await pe(e,t),await ue(e,t)}async function ce(e,t){let r=`${t}/contracts/${e.name}/sources/codegen/dapp/metadata.move`;if(!k(r)){let a=`module ${e.name}::${e.name}_dapp_metadata {
173
- use std::ascii::String;
174
-
175
- public struct DappMetadata has drop, copy, store {
176
- name: String,
177
- description: String,
178
- icon_url: String,
179
- website_url: String,
180
- created_at: u64,
181
- partners: vector<String>,
182
- }
218
+ }`;await c(a,`${r}/contracts/${e}/sources/codegen/errors.move`,"formatAndWriteMove")}import{existsSync as z}from"fs";async function H(e,t){await ce(e,t),await pe(e,t)}async function ce(e,t){let r=`${t}/contracts/${e.name}/sources/codegen/core/metadata.move`;if(!z(r)){let a=`module ${e.name}::${e.name}_dapp_metadata {
219
+ use std::ascii::String;
220
+
221
+ public struct DappMetadata has drop, copy, store {
222
+ name: String,
223
+ description: String,
224
+ cover_url: vector<String>,
225
+ website_url: String,
226
+ created_at: u64,
227
+ partners: vector<String>,
228
+ }
183
229
 
184
- public fun new(
185
- name: String,
186
- description: String,
187
- icon_url: String,
188
- website_url: String,
189
- created_at: u64,
190
- partners: vector<String>,
191
- ): DappMetadata {
192
- DappMetadata {
230
+ public fun new(
231
+ name: String,
232
+ description: String,
233
+ cover_url: vector<String>,
234
+ website_url: String,
235
+ created_at: u64,
236
+ partners: vector<String>,
237
+ ): DappMetadata {
238
+ DappMetadata {
193
239
  name,
194
240
  description,
195
- icon_url,
241
+ cover_url,
196
242
  website_url,
197
243
  created_at,
198
244
  partners,
199
245
  }
200
- }
201
-
202
- public fun set(
203
- self: &mut DappMetadata,
204
- name: String,
205
- description: String,
206
- icon_url: String,
207
- website_url: String,
208
- created_at: u64,
209
- partners: vector<String>,
210
- ) {
211
- self.name = name;
212
- self.description = description;
213
- self.icon_url = icon_url;
214
- self.website_url = website_url;
215
- self.created_at = created_at;
216
- self.partners = partners;
217
- }
218
-
219
- public fun set_name(self: &mut DappMetadata, name: String) {
220
- self.name = name;
221
- }
222
-
223
- public fun set_description(self: &mut DappMetadata, description: String) {
224
- self.description = description;
225
- }
226
-
227
- public fun set_icon_url(self: &mut DappMetadata, icon_url: String) {
228
- self.icon_url = icon_url;
229
- }
230
-
231
- public fun set_website_url(self: &mut DappMetadata, website_url: String) {
232
- self.website_url = website_url;
233
- }
234
-
235
- public fun set_created_at(self: &mut DappMetadata, created_at: u64) {
236
- self.created_at = created_at;
237
- }
238
-
239
- public fun set_partners(self: &mut DappMetadata, partners: vector<String>) {
240
- self.partners = partners;
241
- }
242
-
243
- public fun get_name(self: &DappMetadata): String {
244
- self.name
245
- }
246
-
247
- public fun get_description(self: &DappMetadata): String {
248
- self.description
249
- }
250
-
251
- public fun get_icon_url(self: &DappMetadata): String {
252
- self.icon_url
253
- }
254
-
255
- public fun get_website_url(self: &DappMetadata): String {
256
- self.website_url
257
- }
258
-
259
- public fun get_created_at(self: &DappMetadata): u64 {
260
- self.created_at
261
- }
262
-
263
- public fun get_partners(self: &DappMetadata): vector<String> {
264
- self.partners
265
- }
266
-
267
- }
268
- `;await c(a,r,"formatAndWriteMove")}}async function pe(e,t){let r=`${t}/contracts/${e.name}/sources/codegen/dapp/schema.move`;if(!k(r)){let a=`module ${e.name}::${e.name}_dapp_schema {
269
- use ${e.name}::${e.name}_dapp_metadata::DappMetadata;
270
- use dubhe::storage_value;
271
- use dubhe::storage_value::StorageValue;
272
- use dubhe::storage;
273
- use sui::transfer::public_share_object;
274
- use dubhe::type_info;
275
-
276
- public struct Dapp has key, store {
277
- id: UID,
278
- }
279
-
280
- public fun borrow_admin(self: &Dapp): &StorageValue<address> {
281
- storage::borrow_field(&self.id, b"admin")
282
- }
283
-
284
- public(package) fun admin(self: &mut Dapp): &mut StorageValue<address> {
285
- storage::borrow_mut_field(&mut self.id, b"admin")
286
246
  }
287
247
 
288
- public fun borrow_package_id(self: &Dapp): &StorageValue<address> {
289
- storage::borrow_field(&self.id, b"package_id")
248
+ public fun set(
249
+ self: &mut DappMetadata,
250
+ name: String,
251
+ description: String,
252
+ cover_url: vector<String>,
253
+ website_url: String,
254
+ created_at: u64,
255
+ partners: vector<String>,
256
+ ) {
257
+ self.name = name;
258
+ self.description = description;
259
+ self.cover_url = cover_url;
260
+ self.website_url = website_url;
261
+ self.created_at = created_at;
262
+ self.partners = partners;
290
263
  }
291
264
 
292
- public(package) fun package_id(self: &mut Dapp): &mut StorageValue<address> {
293
- storage::borrow_mut_field(&mut self.id, b"package_id")
265
+ public fun set_name(self: &mut DappMetadata, name: String) {
266
+ self.name = name;
294
267
  }
295
268
 
296
- public fun borrow_version(self: &Dapp): &StorageValue<u32> {
297
- storage::borrow_field(&self.id, b"version")
269
+ public fun set_description(self: &mut DappMetadata, description: String) {
270
+ self.description = description;
298
271
  }
299
272
 
300
- public(package) fun version(self: &mut Dapp): &mut StorageValue<u32> {
301
- storage::borrow_mut_field(&mut self.id, b"version")
273
+ public fun set_cover_url(self: &mut DappMetadata, cover_url: vector<String>) {
274
+ self.cover_url = cover_url;
302
275
  }
303
276
 
304
- public fun borrow_metadata(self: &Dapp): &StorageValue<DappMetadata> {
305
- storage::borrow_field(&self.id, b"metadata")
277
+ public fun set_website_url(self: &mut DappMetadata, website_url: String) {
278
+ self.website_url = website_url;
306
279
  }
307
280
 
308
- public(package) fun metadata(self: &mut Dapp): &mut StorageValue<DappMetadata> {
309
- storage::borrow_mut_field(&mut self.id, b"metadata")
281
+ public fun set_created_at(self: &mut DappMetadata, created_at: u64) {
282
+ self.created_at = created_at;
310
283
  }
311
284
 
312
- public fun borrow_safe_mode(self: &Dapp): &StorageValue<bool> {
313
- storage::borrow_field(&self.id, b"safe_mode")
285
+ public fun set_partners(self: &mut DappMetadata, partners: vector<String>) {
286
+ self.partners = partners;
314
287
  }
315
288
 
316
- public(package) fun safe_mode(self: &mut Dapp): &mut StorageValue<bool> {
317
- storage::borrow_mut_field(&mut self.id, b"safe_mode")
289
+ public fun get_name(self: &DappMetadata): String {
290
+ self.name
318
291
  }
319
-
320
- public(package) fun borrow_schemas(self: &Dapp): &StorageValue<vector<address>> {
321
- storage::borrow_field(&self.id, b"schemas")
322
- }
323
292
 
324
- public(package) fun schemas(self: &mut Dapp): &mut StorageValue<vector<address>> {
325
- storage::borrow_mut_field(&mut self.id, b"schemas")
293
+ public fun get_description(self: &DappMetadata): String {
294
+ self.description
326
295
  }
327
296
 
328
-
329
- public(package) fun create(ctx: &mut TxContext): Dapp {
330
- let mut id = object::new(ctx);
331
- storage::add_field<StorageValue<address>>(&mut id, b"admin", storage_value::new(b"admin", ctx));
332
- storage::add_field<StorageValue<address>>(&mut id, b"package_id", storage_value::new(b"package_id", ctx));
333
- storage::add_field<StorageValue<u32>>(&mut id, b"version", storage_value::new(b"version", ctx));
334
- storage::add_field<StorageValue<DappMetadata>>(&mut id, b"metadata", storage_value::new(b"metadata", ctx));
335
- storage::add_field<StorageValue<bool>>(&mut id, b"safe_mode", storage_value::new(b"safe_mode", ctx));
336
- storage::add_field<StorageValue<vector<address>>>(&mut id, b"schemas", storage_value::new(b"schemas", ctx));
337
- Dapp { id }
297
+ public fun get_cover_url(self: &DappMetadata): vector<String> {
298
+ self.cover_url
338
299
  }
339
300
 
340
- public(package) fun upgrade<DappKey: drop>(dapp: &mut Dapp, ctx: &TxContext) {
341
- assert!(dapp.borrow_metadata().contains(), 0);
342
- assert!(dapp.borrow_admin().get() == ctx.sender(), 0);
343
- let new_package_id = type_info::current_package_id<DappKey>();
344
- dapp.package_id().set(new_package_id);
345
- let current_version = dapp.version()[];
346
- dapp.version().set(current_version + 1);
347
- }
348
-
349
- public(package) fun add_schema<Schema: key + store>(dapp: &mut Dapp, schema: Schema) {
350
- let mut schemas = dapp.schemas()[];
351
- schemas.push_back(object::id_address<Schema>(&schema));
352
- dapp.schemas().set(schemas);
353
- public_share_object(schema);
301
+ public fun get_website_url(self: &DappMetadata): String {
302
+ self.website_url
354
303
  }
355
304
 
356
- #[test_only]
357
-
358
- public fun create_dapp_for_testing(ctx: &mut TxContext): Dapp {
359
- create(ctx)
305
+ public fun get_created_at(self: &DappMetadata): u64 {
306
+ self.created_at
360
307
  }
361
308
 
362
- #[test_only]
363
-
364
- public fun distroy_dapp_for_testing(dapp: Dapp) {
365
- let Dapp { id } = dapp;
366
- id.delete();
309
+ public fun get_partners(self: &DappMetadata): vector<String> {
310
+ self.partners
367
311
  }
368
312
  }
369
- `;await c(a,r,"formatAndWriteMove")}}async function ue(e,t){let r=`${t}/contracts/${e.name}/sources/codegen/dapp/system.move`;if(!k(r)){let a=`module ${e.name}::${e.name}_dapp_system {
313
+ `;await c(a,r,"formatAndWriteMove")}}async function pe(e,t){let r=`${t}/contracts/${e.name}/sources/codegen/core/system.move`;if(!z(r)){let a=`module ${e.name}::${e.name}_dapp_system {
370
314
  use std::ascii::String;
371
315
  use std::ascii;
372
316
  use dubhe::type_info;
373
317
  use sui::clock::Clock;
374
- use ${e.name}::${e.name}_dapp_schema;
318
+ use sui::transfer::public_share_object;
319
+ use ${e.name}::${e.name}_schema::Schema;
375
320
  use ${e.name}::${e.name}_dapp_metadata;
376
- use ${e.name}::${e.name}_dapp_schema::Dapp;
321
+ use ${e.name}::${e.name}_dapp_metadata::DappMetadata;
322
+ use dubhe::storage::add_field;
323
+ use dubhe::storage_value;
324
+ use dubhe::storage_value::StorageValue;
377
325
 
378
326
  public struct DappKey has drop {}
379
327
  public(package) fun new(): DappKey {
380
328
  DappKey { }
381
329
  }
382
330
 
383
- public(package) fun create(name: String, description: String, clock: &Clock, ctx: &mut TxContext): Dapp {
384
- let mut dapp = ${e.name}_dapp_schema::create(ctx);
385
- assert!(!dapp.borrow_metadata().contains(), 0);
386
- dapp.metadata().set(
387
- ${e.name}_dapp_metadata::new(
388
- name,
389
- description,
390
- ascii::string(b""),
391
- ascii::string(b""),
392
- clock.timestamp_ms(),
393
- vector[]
394
- )
395
- );
396
- let package_id = type_info::current_package_id<DappKey>();
397
- dapp.package_id().set(package_id);
398
- dapp.admin().set(ctx.sender());
399
- dapp.version().set(1);
400
- dapp.safe_mode().set(false);
401
- dapp.schemas().set(vector[]);
402
- dapp
403
- }
404
-
405
331
  public entry fun set_metadata(
406
- dapp: &mut Dapp,
332
+ schema: &mut Schema,
407
333
  name: String,
408
334
  description: String,
409
- icon_url: String,
335
+ cover_url: vector<String>,
410
336
  website_url: String,
411
337
  partners: vector<String>,
412
338
  ctx: &TxContext,
413
339
  ) {
414
- let admin = dapp.admin().try_get();
415
- assert!(admin == option::some(ctx.sender()), 0);
416
- let created_at = dapp.metadata().get().get_created_at();
417
- dapp.metadata().set(
340
+ let admin = schema.dapp__admin().try_get();
341
+ assert!(admin == option::some(ctx.sender()), 0);
342
+ let created_at = schema.dapp__metadata().get().get_created_at();
343
+ schema.dapp__metadata().set(
418
344
  ${e.name}_dapp_metadata::new(
419
345
  name,
420
346
  description,
421
- icon_url,
347
+ cover_url,
422
348
  website_url,
423
349
  created_at,
424
350
  partners
425
351
  )
426
352
  );
427
- }
353
+ }
428
354
 
429
- public entry fun transfer_ownership(dapp: &mut Dapp, new_admin: address, ctx: &mut TxContext) {
430
- let admin = dapp.admin().try_get();
431
- assert!(admin == option::some(ctx.sender()), 0);
432
- dapp.admin().set(new_admin);
433
- }
434
355
 
435
- public entry fun set_safe_mode(dapp: &mut Dapp, safe_mode: bool, ctx: &TxContext) {
436
- let admin = dapp.admin().try_get();
437
- assert!(admin == option::some(ctx.sender()), 0);
438
- dapp.safe_mode().set(safe_mode);
439
- }
356
+ public entry fun transfer_ownership(schema: &mut Schema, new_admin: address, ctx: &mut TxContext) {
357
+ let admin = schema.dapp__admin().try_get();
358
+ assert!(admin == option::some(ctx.sender()), 0);
359
+ schema.dapp__admin().set(new_admin);
360
+ }
440
361
 
441
- public fun ensure_no_safe_mode(dapp: &Dapp) {
442
- assert!(!dapp.borrow_safe_mode()[], 0);
443
- }
362
+ public entry fun set_safe_mode(schema: &mut Schema, safe_mode: bool, ctx: &TxContext) {
363
+ let admin = schema.dapp__admin().try_get();
364
+ assert!(admin == option::some(ctx.sender()), 0);
365
+ schema.dapp__safe_mode().set(safe_mode);
366
+ }
444
367
 
445
- public fun ensure_has_authority(dapp: &Dapp, ctx: &TxContext) {
446
- assert!(dapp.borrow_admin().get() == ctx.sender(), 0);
447
- }
368
+ public fun ensure_no_safe_mode(schema: &mut Schema) {
369
+ assert!(!schema.dapp__safe_mode()[], 0);
370
+ }
448
371
 
449
- public fun ensure_has_schema<Schema: key + store>(dapp: &Dapp, schema: &Schema) {
450
- let schema_id = object::id_address(schema);
451
- assert!(dapp.borrow_schemas().get().contains(&schema_id), 0);
452
- }
453
- }
372
+ public fun ensure_has_authority(schema: &mut Schema, ctx: &TxContext) {
373
+ assert!(schema.dapp__admin().get() == ctx.sender(), 0);
374
+ }
375
+
376
+ public fun ensure_has_schema<S: key + store>(schema: &mut Schema, new_schema: &S) {
377
+ let schema_id = object::id_address(new_schema);
378
+ assert!(schema.dapp__authorised_schemas().get().contains(&schema_id), 0);
379
+ }
454
380
 
381
+ public(package) fun create(schema: &mut Schema, name: String, description: String, clock: &Clock, ctx: &mut TxContext){
382
+ add_field<StorageValue<address>>(schema.id(), b"dapp__admin", storage_value::new(b"dapp__admin", ctx));
383
+ add_field<StorageValue<address>>(schema.id(), b"dapp__package_id", storage_value::new(b"dapp__package_id", ctx));
384
+ add_field<StorageValue<u32>>(schema.id(), b"dapp__version", storage_value::new(b"dapp__version", ctx));
385
+ add_field<StorageValue<DappMetadata>>(schema.id(), b"dapp__metadata", storage_value::new(b"dapp__metadata", ctx));
386
+ add_field<StorageValue<bool>>(schema.id(), b"dapp__safe_mode", storage_value::new(b"dapp__safe_mode", ctx));
387
+ add_field<StorageValue<vector<address>>>(schema.id(), b"dapp__authorised_schemas", storage_value::new(b"dapp__authorised_schemas", ctx));
388
+ schema.dapp__metadata().set(
389
+ ${e.name}_dapp_metadata::new(
390
+ name,
391
+ description,
392
+ vector[],
393
+ ascii::string(b""),
394
+ clock.timestamp_ms(),
395
+ vector[]
396
+ )
397
+ );
398
+ let package_id = type_info::current_package_id<DappKey>();
399
+ schema.dapp__package_id().set(package_id);
400
+ schema.dapp__admin().set(ctx.sender());
401
+ schema.dapp__version().set(1);
402
+ schema.dapp__safe_mode().set(false);
403
+ schema.dapp__authorised_schemas().set(vector[]);
404
+ }
405
+
406
+ public(package) fun upgrade<DappKey: drop>(schema: &mut Schema, ctx: &TxContext) {
407
+ assert!(schema.dapp__metadata().contains(), 0);
408
+ assert!(schema.dapp__admin().get() == ctx.sender(), 0);
409
+ let new_package_id = type_info::current_package_id<DappKey>();
410
+ schema.dapp__package_id().set(new_package_id);
411
+ let current_version = schema.dapp__version()[];
412
+ schema.dapp__version().set(current_version + 1);
413
+ }
414
+
415
+ public(package) fun add_schema<S: key + store>(schema: &mut Schema, new_schema: S) {
416
+ let mut schemas = schema.dapp__authorised_schemas()[];
417
+ schemas.push_back(object::id_address<S>(&new_schema));
418
+ schema.dapp__authorised_schemas().set(schemas);
419
+ public_share_object(new_schema);
420
+ }
421
+ }
455
422
 
456
- `;await c(a,r,"formatAndWriteMove")}}async function Q(e,t){console.log(`
457
- \u{1F4DD} Starting Init Generation...`),console.log(` \u2514\u2500 Output path: ${t}/contracts/${e.name}/sources/tests/init.move`);let r=`module ${e.name}::${e.name}_init_test {
458
- use ${e.name}::${e.name}_dapp_schema::Dapp;
423
+ `;await c(a,r,"formatAndWriteMove")}}async function Q(e,t){let r=`module ${e.name}::${e.name}_init_test {
459
424
  use sui::clock;
460
425
  use sui::test_scenario;
461
426
  use sui::test_scenario::Scenario;
462
427
 
463
- public fun deploy_dapp_for_testing(sender: address): (Scenario, Dapp) {
428
+ public fun deploy_dapp_for_testing(sender: address): Scenario {
464
429
  let mut scenario = test_scenario::begin(sender);
465
430
  let ctx = test_scenario::ctx(&mut scenario);
466
431
  let clock = clock::create_for_testing(ctx);
467
432
  ${e.name}::${e.name}_genesis::run(&clock, ctx);
468
433
  clock::destroy_for_testing(clock);
469
434
  test_scenario::next_tx(&mut scenario,sender);
470
- let dapp = test_scenario::take_shared<Dapp>(&scenario);
471
- (scenario, dapp)
435
+ scenario
472
436
  }
473
437
  }
474
- `;await c(r,`${t}/contracts/${e.name}/sources/tests/init.move`,"formatAndWriteMove");let a=`module ${e.name}::${e.name}_genesis {
438
+ `;await c(r,`${t}/contracts/${e.name}/sources/codegen/core/init_test.move`,"formatAndWriteMove");let a=`module ${e.name}::${e.name}_genesis {
475
439
  use std::ascii::string;
476
440
 
477
441
  use sui::clock::Clock;
@@ -479,19 +443,18 @@ use ${e}::${e}_${o}_event;
479
443
  use ${e.name}::${e.name}_dapp_system;
480
444
 
481
445
  public entry fun run(clock: &Clock, ctx: &mut TxContext) {
482
- // Create a dapp.
483
- let mut dapp = ${e.name}_dapp_system::create(string(b"${e.name}"),string(b"${e.description}"), clock , ctx);
484
446
  // Create schemas
485
447
  let mut schema = ${e.name}::${e.name}_schema::create(ctx);
448
+ // Setup default storage
449
+ ${e.name}_dapp_system::create(&mut schema, string(b"${e.name}"),string(b"${e.description}"), clock , ctx);
486
450
  // Logic that needs to be automated once the contract is deployed
487
451
  ${e.name}::${e.name}_deploy_hook::run(&mut schema, ctx);
488
452
  // Authorize schemas and public share objects
489
- dapp.add_schema(schema);
490
- sui::transfer::public_share_object(dapp);
453
+ sui::transfer::public_share_object(schema);
491
454
  }
492
455
  }
493
- `;await c(a,`${t}/contracts/${e.name}/sources/codegen/genesis.move`,"formatAndWriteMove"),console.log(`\u2705 Init Generation Complete
494
- `)}async function _t(e,t,r){console.log(`
495
- \u{1F680} Starting Schema Generation Process...`),console.log("\u{1F4CB} Project Configuration:"),console.log(` \u251C\u2500 Name: ${e.name}`),console.log(` \u251C\u2500 Description: ${e.description||"No description provided"}`),console.log(` \u251C\u2500 Network: ${r||"testnet"}`);let a=t??process.cwd();A(`${a}/contracts/${e.name}`)&&x(`${a}/contracts/${e.name}/sources/codegen`),A(`${a}/contracts/${e.name}/Move.toml`)||await G(e,a),A(`${a}/contracts/${e.name}/sources/script/deploy_hook.move`)||await F(e,a),e.events&&(e.data?await D(e.name,e.data,e.events,a):await D(e.name,null,e.events,a)),e.data?(await j(e.name,e.data,a),await w(e.name,e.data,e.schemas,a)):await w(e.name,null,e.schemas,a),e.errors&&await H(e.name,e.errors,a),await z(e,a),await Q(e,a),await K(e,a),await L(e,a),console.log(`\u2705 Schema Generation Process Complete!
496
- `)}import{findUp as me}from"find-up";import C from"path";import le from"esbuild";var h=class extends Error{name="NotInsideProjectError";message="You are not inside a Dubhe project"};import{rmSync as de}from"fs";import{pathToFileURL as ge}from"url";import fe from"os";var _e=["dubhe.config.js","dubhe.config.mjs","dubhe.config.ts","dubhe.config.mts"],M="dubhe.config.example.mjs";async function kt(e){e=await Z(e);try{return await le.build({entryPoints:[e],format:"esm",outfile:M,platform:"node",bundle:!0,packages:"external"}),e=await Z(M,!0),(await import(e+`?update=${Date.now()}`)).dubheConfig}finally{de(M,{force:!0})}}async function Z(e,t){return e===void 0?e=await be():C.isAbsolute(e)||(e=C.join(process.cwd(),e),e=C.normalize(e)),t&&fe.platform()==="win32"?ge(e).href:e}async function be(){let e=await me(_e);if(e===void 0)throw new h;return e}function Ut(...e){if(e.length===1)return`StorageValue<${e[0]}>`;if(e.length===2)return`StorageMap<${e[0]}, ${e[1]}>`;if(e.length===3)return`StorageDoubleMap<${e[0]}, ${e[1]}, ${e[2]}>`;throw new Error("Invalid number of arguments for storage()")}var S=e=>{if(typeof e!="object"||e===null)return e;let t={};for(let r in e)if(e.hasOwnProperty(r)){let a=e[r];typeof a=="object"&&a!==null?Array.isArray(a)?t[r]=X(a):a.hasOwnProperty("variant")?t[r]={[a.variant]:{}}:a.hasOwnProperty("fields")?t[r]=S(a.fields):t[r]=S(a):t[r]=a}return t},X=e=>{let t=[];return e.forEach(r=>{typeof r=="object"&&r!==null?Array.isArray(r)?t.push(X(r)):r.hasOwnProperty("variant")?t.push({[r.variant]:{}}):r.hasOwnProperty("fields")?t.push(S(r.fields)):t.push(S(r)):t.push(r)}),t};var $e=(r=>(r.Event="event",r.Schema="schema",r))($e||{});export{$e as SubscriptionKind,c as formatAndWriteMove,Te as formatAndWriteTypescript,T as formatMove,V as formatTypescript,kt as loadConfig,S as parseData,Ee as posixPath,Z as resolveConfigPath,_t as schemaGen,Ut as storage};
456
+ `;await c(a,`${t}/contracts/${e.name}/sources/codegen/core/genesis.move`,"formatAndWriteMove")}async function gt(e,t,r){console.log(`
457
+ \u{1F680} Starting Schema Generation Process...`),console.log("\u{1F4CB} Project Configuration:"),console.log(` \u2514\u2500 Name: ${e.name}`),console.log(` \u2514\u2500 Description: ${e.description||"No description provided"}`),console.log(` \u2514\u2500 Network: ${r||"testnet"}`);let a=t??process.cwd();k(`${a}/contracts/${e.name}`)&&x(`${a}/contracts/${e.name}/sources/codegen`),k(`${a}/contracts/${e.name}/Move.toml`)||await O(e,a),k(`${a}/contracts/${e.name}/sources/script/deploy_hook.move`)||await L(e,a),e.events&&(e.data?await D(e.name,e.data,e.events,a):await D(e.name,null,e.events,a)),e.data?(await j(e.name,e.data,a),await w(e.name,e.data,e.schemas,a)):await w(e.name,null,e.schemas,a),e.errors&&await G(e.name,e.errors,a),await H(e,a),await Q(e,a),await K(e,a),await B(e,a),console.log(`
458
+ \u2705 Schema Generation Process Complete!
459
+ `)}import{findUp as ue}from"find-up";import A from"path";import me from"esbuild";var S=class extends Error{name="NotInsideProjectError";message="You are not inside a Dubhe project"};import{rmSync as de}from"fs";import{pathToFileURL as le}from"url";import _e from"os";var ge=["dubhe.config.js","dubhe.config.mjs","dubhe.config.ts","dubhe.config.mts"],M="dubhe.config.example.mjs";async function Dt(e){e=await Z(e);try{return await me.build({entryPoints:[e],format:"esm",outfile:M,platform:"node",bundle:!0,packages:"external"}),e=await Z(M,!0),(await import(e+`?update=${Date.now()}`)).dubheConfig}finally{de(M,{force:!0})}}async function Z(e,t){return e===void 0?e=await fe():A.isAbsolute(e)||(e=A.join(process.cwd(),e),e=A.normalize(e)),t&&_e.platform()==="win32"?le(e).href:e}async function fe(){let e=await ue(ge);if(e===void 0)throw new S;return e}function Et(...e){if(e.length===1)return`StorageValue<${e[0]}>`;if(e.length===2)return`StorageMap<${e[0]}, ${e[1]}>`;if(e.length===3)return`StorageDoubleMap<${e[0]}, ${e[1]}, ${e[2]}>`;throw new Error("Invalid number of arguments for storage()")}var y=e=>{if(typeof e!="object"||e===null)return e;let t={};for(let r in e)if(e.hasOwnProperty(r)){let a=e[r];typeof a=="object"&&a!==null?Array.isArray(a)?t[r]=J(a):a.hasOwnProperty("variant")?t[r]={[a.variant]:{}}:a.hasOwnProperty("fields")?t[r]=y(a.fields):t[r]=y(a):t[r]=a}return t},J=e=>{let t=[];return e.forEach(r=>{typeof r=="object"&&r!==null?Array.isArray(r)?t.push(J(r)):r.hasOwnProperty("variant")?t.push({[r.variant]:{}}):r.hasOwnProperty("fields")?t.push(y(r.fields)):t.push(y(r)):t.push(r)}),t};var be=(r=>(r.Event="event",r.Schema="schema",r))(be||{});export{be as SubscriptionKind,c as formatAndWriteMove,Te as formatAndWriteTypescript,T as formatMove,C as formatTypescript,Dt as loadConfig,y as parseData,Ve as posixPath,Z as resolveConfigPath,gt as schemaGen,Et as storage};
497
460
  //# sourceMappingURL=index.js.map