@0xobelisk/sui-common 1.1.6 → 1.1.8

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.d.ts CHANGED
@@ -32,6 +32,10 @@ type SchemaData = Record<string, string> | string[];
32
32
  type SchemaType = string;
33
33
  type EventData = Record<string, string>;
34
34
  type ErrorData = Record<string, string>;
35
+ type DataType = any;
36
+ declare function storage<T extends DataType>(value: T): SchemaType;
37
+ declare function storage<K extends DataType, V extends DataType>(key: K, value: V): SchemaType;
38
+ declare function storage<K1 extends DataType, K2 extends DataType, V extends DataType>(key1: K1, key2: K2, value: V): SchemaType;
35
39
  type DubheConfig = {
36
40
  name: string;
37
41
  description: string;
@@ -49,4 +53,17 @@ declare function resolveConfigPath(configPath: string | undefined, toFileURL?: b
49
53
 
50
54
  declare const parseData: (data: any) => any;
51
55
 
52
- export { BaseType, BaseValueType, DubheConfig, ErrorData, EventData, MoveType, SchemaData, SchemaType, StorageDataType, StorageMapType, formatAndWriteMove, formatAndWriteTypescript, formatMove, formatTypescript, loadConfig, parseData, posixPath, resolveConfigPath, schemaGen };
56
+ declare enum SubscriptionKind {
57
+ Event = "event",
58
+ Schema = "schema"
59
+ }
60
+ type SubscribableType = {
61
+ kind: SubscriptionKind.Event;
62
+ name?: string;
63
+ sender?: string;
64
+ } | {
65
+ kind: SubscriptionKind.Schema;
66
+ name?: string;
67
+ };
68
+
69
+ export { BaseType, BaseValueType, DubheConfig, ErrorData, EventData, MoveType, SchemaData, SchemaType, StorageDataType, StorageMapType, SubscribableType, SubscriptionKind, formatAndWriteMove, formatAndWriteTypescript, formatMove, formatTypescript, loadConfig, parseData, posixPath, resolveConfigPath, schemaGen, storage };
package/dist/index.js CHANGED
@@ -1,10 +1,10 @@
1
- import w from"prettier";import q from"prettier-plugin-move-js";async function T(e,t){let r;t&&(r=await w.resolveConfig(t));try{return w.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 R(e){return w.format(e,{parser:"typescript"})}import h from"node:fs/promises";import O 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 Y from"prettier-plugin-move-js";async function C(e,t){let r;t&&(r=await v.resolveConfig(t));try{return v.format(e,{plugins:[Y],parser:"move-parse",printWidth:120,semi:!0,tabWidth:2,useTabs:!1,bracketSpacing:!0,...r})}catch(a){let o;return a instanceof Error?o=a.message:o=a,console.log(`Error during output formatting: ${o}`),e}}async function V(e){return v.format(e,{parser:"typescript"})}import y from"node:fs/promises";import E from"node:path";import R from"debug";var b=R("dubhe:common"),q=R("dubhe:common");b.log=console.debug.bind(console);q.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 i(e,t,r){let a=await C(e),o=` // 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
- `,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 h.mkdir(O.dirname(t),{recursive:!0}),await h.writeFile(t,o),$(`${r}: ${t}`)}async function Me(e,t,r){let a=await R(e);await h.mkdir(O.dirname(t),{recursive:!0}),await h.writeFile(t,a),$(`${r}: ${t}`)}function Re(e){return e.replace(/\\/g,"/")}import{existsSync as A}from"fs";import g from"fs";function v(e){g.existsSync(e)&&(g.readdirSync(e).forEach(t=>{let r=`${e}/${t}`;g.lstatSync(r).isDirectory()?v(r):g.unlinkSync(r)}),g.rmdirSync(e))}function f(e){return Object.entries(e).map(([t,r])=>`${t}`).join(",")}function W(e){return`(${Object.entries(e).map(([t,r])=>`${r}`)})`}function u(e){return Object.entries(e).map(([t,r])=>`${t}: ${r}`)}function G(e){return Object.entries(e).map(([t,r])=>`self.${t}`)}function V(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 j(e,t){console.log(`
7
+ `,s="#[test_only]",n=o+a,c="#[allow(lint(share_owned))]";t.includes(".toml")||t.includes("system")||t.includes("migrate")?n=a:t.includes("init")?n=s+a:t.includes("genesis")&&(n=c+a),await y.mkdir(E.dirname(t),{recursive:!0}),await y.writeFile(t,n),$(`${r}: ${t}`)}async function Ce(e,t,r){let a=await V(e);await y.mkdir(E.dirname(t),{recursive:!0}),await y.writeFile(t,a),$(`${r}: ${t}`)}function Re(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 W(e){return Object.entries(e).map(([t,r])=>`self.${t}`)}function O(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 j(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"
@@ -17,50 +17,49 @@ Dubhe = { git = "https://github.com/0xobelisk/dubhe-framework.git", rev = "dubhe
17
17
  [addresses]
18
18
  sui = "0x2"
19
19
  ${e.name} = "0x0"
20
- `;await c(r,`${t}/contracts/${e.name}/Move.toml`,"formatAndWriteMove"),console.log(`\u2705 Move.toml Generation Complete
21
- `)}function N(e){return e.sort((t,r)=>{let a=t.charAt(0).toLowerCase(),n=r.charAt(0).toLowerCase();return a<n?-1:a>n?1:0})}function ee(e,t){return Object.entries(t).map(([r,a])=>`public(package) fun set_${r}(self: &mut ${e}, ${r}: ${a}) {
20
+ `;await i(r,`${t}/contracts/${e.name}/Move.toml`,"formatAndWriteMove"),console.log(`\u2705 Move.toml Generation Complete
21
+ `)}function N(e){return e.sort((t,r)=>{let a=t.charAt(0).toLowerCase(),o=r.charAt(0).toLowerCase();return a<o?-1:a>o?1:0})}function ee(e,t){return Object.entries(t).map(([r,a])=>`public(package) fun set_${r}(self: &mut ${e}, ${r}: ${a}) {
22
22
  self.${r} = ${r};
23
23
  }`).join(`
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}): ${W(t)} {
28
- (${G(t)})
27
+ }`}function re(e,t){return`public fun get(self: &${e}): ${U(t)} {
28
+ (${W(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 L(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 Generating ${n} ${Array.isArray(s)?"(enum)":"(struct)"}`);let o="",i=Object.keys(t).filter(p=>Array.isArray(t[p])).map(p=>p);if(console.log(i),Array.isArray(s)){let p=N(s);o=`module ${e}::${e}_${d(n)} {
34
- public enum ${n} has copy, drop , store {
32
+ `)}function l(e){return e.replace(/([A-Z])/g,"_$1").toLowerCase().replace(/^_/,"")}async function F(e,t,r){console.log(`
33
+ \u{1F4E6} Starting Schema Data Generation...`);for(let a of Object.keys(t)){let o=a,s=t[a];console.log(` \u2514\u2500 ${o} ${Array.isArray(s)?"(enum)":"(struct)"}: ${JSON.stringify(s)}`);let n="",c=Object.keys(t).filter(p=>Array.isArray(t[p])).map(p=>p);if(Array.isArray(s)){let p=N(s);n=`module ${e}::${e}_${l(o)} {
34
+ public enum ${o} has copy, drop , store {
35
35
  ${p}
36
36
  }
37
37
 
38
- ${p.map(l=>`public fun new_${d(l)}(): ${n} {
39
- ${n}::${l}
40
- }`).join("")}`}else o=`module ${e}::${e}_${d(n)} {
38
+ ${p.map(m=>`public fun new_${l(m)}(): ${o} {
39
+ ${o}::${m}
40
+ }`).join("")}`}else n=`module ${e}::${e}_${l(o)} {
41
41
  use std::ascii::String;
42
42
 
43
- ${Object.keys(t).map(p=>{if(V(s,p))return`use ${e}::${e}_${d(p)}::${p};`}).filter(Boolean).join(`
43
+ ${Object.keys(t).map(p=>{if(O(s,p))return`use ${e}::${e}_${l(p)}::${p};`}).filter(Boolean).join(`
44
44
  `)}
45
45
 
46
- public struct ${n} has copy, drop , store {
46
+ public struct ${o} has copy, drop , store {
47
47
  ${u(s)}
48
48
  }
49
49
 
50
- public fun new(${u(s)}): ${n} {
51
- ${n} {
50
+ public fun new(${u(s)}): ${o} {
51
+ ${o} {
52
52
  ${f(s)}
53
53
  }
54
54
  }
55
55
 
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/${d(n)}.move`,"formatAndWriteMove")}console.log(`\u2705 Schema Data Generation Complete
61
- `)}function se(e,t){return t!=null?Object.keys(t).map(a=>`use ${e}::${e}_${d(a)}::${a};`).join(`
62
- `):""}async function x(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 {
56
+ ${re(o,s)}
57
+ ${ae(o,s)}
58
+ ${ee(o,s)}
59
+ ${te(o,s)}
60
+ }`;await i(n,`${r}/contracts/${e}/sources/codegen/data/${l(o)}.move`,"formatAndWriteMove")}}function se(e,t){return t!=null?Object.keys(t).map(a=>`use ${e}::${e}_${l(a)}::${a};`).join(`
61
+ `):""}async function w(e,t,r,a){console.log(`
62
+ \u{1F528} Starting Schema Structure Generation...`),Object.entries(r).forEach(([s,n])=>{console.log(` \u2514\u2500 ${s}: ${n}`)});let o=`module ${e}::${e}_schema {
64
63
  use std::ascii::String;
65
64
  use std::ascii::string;
66
65
  use sui::package::UpgradeCap;
@@ -75,11 +74,11 @@ ${e.name} = "0x0"
75
74
 
76
75
  public struct Schema has key, store { id: UID }
77
76
 
78
- ${Object.entries(r).map(([s,o])=>`public fun borrow_${s}(self: &Schema) : &${o} {
77
+ ${Object.entries(r).map(([s,n])=>`public fun borrow_${s}(self: &Schema) : &${n} {
79
78
  storage::borrow_field(&self.id, b"${s}")
80
79
  }
81
80
 
82
- public(package) fun ${s}(self: &mut Schema): &mut ${o} {
81
+ public(package) fun ${s}(self: &mut Schema): &mut ${n} {
83
82
  storage::borrow_mut_field(&mut self.id, b"${s}")
84
83
  }
85
84
  `).join("")}
@@ -87,7 +86,7 @@ ${e.name} = "0x0"
87
86
 
88
87
  public(package) fun create(ctx: &mut TxContext): Schema {
89
88
  let mut id = object::new(ctx);
90
- ${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(`
89
+ ${Object.entries(r).map(([s,n])=>{let c="";return n.includes("StorageValue")?c=`storage_value::new(b"${s}", ctx)`:n.includes("StorageMap")?c=`storage_map::new(b"${s}", ctx)`:n.includes("StorageDoubleMap")&&(c=`storage_double_map::new(b"${s}", ctx)`),`storage::add_field<${n}>(&mut id, b"${s}", ${c});`}).join(`
91
90
  `)}
92
91
 
93
92
  Schema { id }
@@ -105,71 +104,64 @@ ${e.name} = "0x0"
105
104
 
106
105
 
107
106
  // ======================================== View Functions ========================================
108
- ${Object.entries(r).map(([s,o])=>{let i=o.match(/<(.+)>/)[1].split(",").map(Y=>Y.trim()),p=[],l="",_="";return o.includes("StorageValue")?(p=[],l=`${i[0]}`,_="get()"):o.includes("StorageMap")?(p=[`key: ${i[0]}`],l=`${i[1]}`,_="get(key)"):o.includes("StorageDoubleMap")&&(p=[`key1: ${i[0]}`,`key2: ${i[1]}`],l=`${i[2]}`,_="get(key1, key2)"),`public fun get_${s}(self: &Schema, ${p}) : &${l} {
107
+ ${Object.entries(r).map(([s,n])=>{let c=n.match(/<(.+)>/)[1].split(",").map(X=>X.trim()),p=[],m="",_="";return n.includes("StorageValue")?(p=[],m=`${c[0]}`,_="get()"):n.includes("StorageMap")?(p=[`key: ${c[0]}`],m=`${c[1]}`,_="get(key)"):n.includes("StorageDoubleMap")&&(p=[`key1: ${c[0]}`,`key2: ${c[1]}`],m=`${c[2]}`,_="get(key1, key2)"),`public fun get_${s}(self: &Schema, ${p}) : &${m} {
109
108
  self.borrow_${s}().${_}
110
109
  }`}).join(`
111
110
  `)}
112
111
  // =========================================================================================================
113
- }`;await c(n,`${a}/contracts/${e}/sources/codegen/schema.move`,"formatAndWriteMove"),console.log(`\u2705 Schema Structure Generation Complete
114
- `)}import{existsSync as U}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(!U(r)){let a=`module ${e.name}::${e.name}_deploy_hook {
112
+ }`;await i(o,`${a}/contracts/${e}/sources/codegen/schema.move`,"formatAndWriteMove")}import{existsSync as L}from"fs";async function B(e,t){let r=`${t}/contracts/${e.name}/sources/scripts/deploy_hook.move`;if(!L(r)){let a=`module ${e.name}::${e.name}_deploy_hook {
116
113
  use ${e.name}::${e.name}_schema::Schema;
117
114
 
118
115
  public(package) fun run(_schema: &mut Schema, _ctx: &mut TxContext) {
119
116
 
120
117
  }
121
- }`;await c(a,r,"formatAndWriteMove")}console.log(`\u2705 Deploy Hook Generation Complete
122
- `)}async function I(e,t){if(!U(`${t}/contracts/${e.name}/sources/scripts/migrate.move`)){let r=`module ${e.name}::${e.name}_migrate {
118
+ }`;await i(a,r,"formatAndWriteMove")}}async function I(e,t){if(!L(`${t}/contracts/${e.name}/sources/scripts/migrate.move`)){let r=`module ${e.name}::${e.name}_migrate {
123
119
  const ON_CHAIN_VERSION: u32 = 1;
124
120
 
125
121
  public fun on_chain_version(): u32 {
126
122
  ON_CHAIN_VERSION
127
123
  }
128
124
  }
129
- `;await c(r,`${t}/contracts/${e.name}/sources/scripts/migrate.move`,"formatAndWriteMove")}}function m(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}_${m(a)}::${a};`).join(`
125
+ `;await i(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 ne(e){return e.replace(/([A-Z])/g,"_$1").toLowerCase().replace(/^_/,"")}function K(e,t){return t!=null?Object.keys(t).map(a=>`use ${e}::${e}_${ne(a)}::${a};`).join(`
130
126
  `):""}async function D(e,t,r,a){console.log(`
131
- \u{1F4E6} Starting Schema Event Generation...`);for(let s of Object.keys(r)){let o=s,i=r[s];console.log(` \u2514\u2500 Generating ${o} event: ${i}`);let p=`module ${e}::${e}_${m(o)}_event {
127
+ \u{1F4E6} Starting Schema Event Generation...`);for(let s of Object.keys(r)){let n=s,c=r[s];console.log(` \u2514\u2500 ${n} event: ${JSON.stringify(c)}`);let p=`module ${e}::${e}_${n}_event {
132
128
  use sui::event;
133
129
  use std::ascii::String;
134
- ${B(e,t)}
130
+ ${K(e,t)}
135
131
 
136
- public struct ${o}Event has copy, drop {
137
- ${u(i)}
132
+ public struct ${d(n)}Event has copy, drop {
133
+ ${u(c)}
138
134
  }
139
135
 
140
- public fun new(${u(i)}): ${o}Event {
141
- ${o}Event {
142
- ${f(i)}
136
+ public fun new(${u(c)}): ${d(n)}Event {
137
+ ${d(n)}Event {
138
+ ${f(c)}
143
139
  }
144
140
  }
145
- }`;await c(p,`${a}/contracts/${e}/sources/codegen/data/${m(o)}_event.move`,"formatAndWriteMove")}let n=`module ${e}::${e}_events {
141
+ }`;await i(p,`${a}/contracts/${e}/sources/codegen/data/${n}_event.move`,"formatAndWriteMove")}let o=`module ${e}::${e}_events {
146
142
  use std::ascii::{String, string};
147
- ${B(e,t)}
148
- ${Object.entries(r).map(([s,o])=>`
149
- use ${e}::${e}_${m(s)}_event::${s}Event;
150
- use ${e}::${e}_${m(s)}_event;
151
- public fun ${m(s)}_event(${u(o)}) {
152
- dubhe::storage_event::emit_set_record<${s}Event, ${s}Event, ${s}Event>(
153
- string(b"${m(s)}_event"),
143
+ ${K(e,t)}
144
+ ${Object.entries(r).map(([s,n])=>`
145
+ use ${e}::${e}_${s}_event::${d(s)}Event;
146
+ use ${e}::${e}_${s}_event;
147
+ public fun ${s}_event(${u(n)}) {
148
+ dubhe::storage_event::emit_set_record<${d(s)}Event, ${d(s)}Event, ${d(s)}Event>(
149
+ string(b"${s}_event"),
154
150
  option::none(),
155
151
  option::none(),
156
- option::some(${e}_${m(s)}_event::new(${f(o)}))
152
+ option::some(${e}_${s}_event::new(${f(n)}))
157
153
  )
158
154
  }
159
155
  `).join(`
160
156
  `)}
161
- }`;await c(n,`${a}/contracts/${e}/sources/codegen/events.move`,"formatAndWriteMove"),console.log(`\u2705 Schema Event Generation Complete
162
- `)}import{existsSync as ne}from"fs";import oe from"node:fs/promises";async function z(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`),ne(`${t}/contracts/${e.name}/sources/systems`)||await oe.mkdir(`${t}/contracts/${e.name}/sources/systems`,{recursive:!0}),console.log(`\u2705 System Generation Complete
164
- `)}function ie(e){return e.replace(/([A-Z])/g,"_$1").toLowerCase().replace(/^_/,"")}async function H(e,t,r){console.log(`
157
+ }`;await i(o,`${a}/contracts/${e}/sources/codegen/events.move`,"formatAndWriteMove")}import{existsSync as oe}from"fs";import ie from"node:fs/promises";async function G(e,t){oe(`${t}/contracts/${e.name}/sources/systems`)||await ie.mkdir(`${t}/contracts/${e.name}/sources/systems`,{recursive:!0})}async function z(e,t,r){console.log(`
165
158
  \u{1F4E6} Starting Schema Error Generation...`);let a=`module ${e}::${e}_errors {
166
- ${Object.entries(t).map(([n,s])=>(console.log(` \u251C\u2500 Generating Error: ${n}`),console.log(` \u2502 \u2514\u2500 Message: ${s}`),`#[error]
167
- const ${n}: vector<u8> = b"${s}";
168
- public fun ${ie(n)}_error(condition: bool) { assert!(condition, ${n}) }
159
+ ${Object.entries(t).map(([o,s])=>(console.log(` \u2514\u2500 ${o}: ${s}`),`#[error]
160
+ const ${o.toUpperCase()}: vector<u8> = b"${s}";
161
+ public fun ${o}_error(condition: bool) { assert!(condition, ${o.toUpperCase()}) }
169
162
  `)).join(`
170
163
  `)}
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 K(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 {
164
+ }`;await i(a,`${r}/contracts/${e}/sources/codegen/errors.move`,"formatAndWriteMove")}import{existsSync as k}from"fs";async function H(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
165
  use std::ascii::String;
174
166
 
175
167
  public struct DappMetadata has drop, copy, store {
@@ -265,7 +257,7 @@ use ${e}::${e}_${m(s)}_event;
265
257
  }
266
258
 
267
259
  }
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 {
260
+ `;await i(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
261
  use ${e.name}::${e.name}_dapp_metadata::DappMetadata;
270
262
  use dubhe::storage_value;
271
263
  use dubhe::storage_value::StorageValue;
@@ -366,7 +358,7 @@ use ${e}::${e}_${m(s)}_event;
366
358
  id.delete();
367
359
  }
368
360
  }
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 {
361
+ `;await i(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 {
370
362
  use std::ascii::String;
371
363
  use std::ascii;
372
364
  use dubhe::type_info;
@@ -453,8 +445,7 @@ use ${e}::${e}_${m(s)}_event;
453
445
  }
454
446
 
455
447
 
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 {
448
+ `;await i(a,r,"formatAndWriteMove")}}async function Q(e,t){let r=`module ${e.name}::${e.name}_init_test {
458
449
  use ${e.name}::${e.name}_dapp_schema::Dapp;
459
450
  use sui::clock;
460
451
  use sui::test_scenario;
@@ -471,7 +462,7 @@ use ${e}::${e}_${m(s)}_event;
471
462
  (scenario, dapp)
472
463
  }
473
464
  }
474
- `;await c(r,`${t}/contracts/${e.name}/sources/tests/init.move`,"formatAndWriteMove");let a=`module ${e.name}::${e.name}_genesis {
465
+ `;await i(r,`${t}/contracts/${e.name}/sources/tests/init.move`,"formatAndWriteMove");let a=`module ${e.name}::${e.name}_genesis {
475
466
  use std::ascii::string;
476
467
 
477
468
  use sui::clock::Clock;
@@ -490,8 +481,8 @@ use ${e}::${e}_${m(s)}_event;
490
481
  sui::transfer::public_share_object(dapp);
491
482
  }
492
483
  }
493
- `;await c(a,`${t}/contracts/${e.name}/sources/codegen/genesis.move`,"formatAndWriteMove"),console.log(`\u2705 Init Generation Complete
494
- `)}async function ft(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}`)&&v(`${a}/contracts/${e.name}/sources/codegen`),A(`${a}/contracts/${e.name}/Move.toml`)||await j(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 L(e.name,e.data,a),await x(e.name,e.data,e.schemas,a)):await x(e.name,null,e.schemas,a),e.errors&&await H(e.name,e.errors,a),await K(e,a),await Q(e,a),await z(e,a),await I(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 S=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 Dt(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 S;return e}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]=X(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},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(y(r.fields)):t.push(y(r)):t.push(r)}),t};export{c as formatAndWriteMove,Me as formatAndWriteTypescript,T as formatMove,R as formatTypescript,Dt as loadConfig,y as parseData,Re as posixPath,Z as resolveConfigPath,ft as schemaGen};
484
+ `;await i(a,`${t}/contracts/${e.name}/sources/codegen/genesis.move`,"formatAndWriteMove")}async function _t(e,t,r){console.log(`
485
+ \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();A(`${a}/contracts/${e.name}`)&&x(`${a}/contracts/${e.name}/sources/codegen`),A(`${a}/contracts/${e.name}/Move.toml`)||await j(e,a),A(`${a}/contracts/${e.name}/sources/script/deploy_hook.move`)||await B(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 F(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 z(e.name,e.errors,a),await H(e,a),await Q(e,a),await G(e,a),await I(e,a),console.log(`
486
+ \u2705 Schema Generation Process Complete!
487
+ `)}import{findUp as me}from"find-up";import T from"path";import de from"esbuild";var h=class extends Error{name="NotInsideProjectError";message="You are not inside a Dubhe project"};import{rmSync as le}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 de.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{le(M,{force:!0})}}async function Z(e,t){return e===void 0?e=await be():T.isAbsolute(e)||(e=T.join(process.cwd(),e),e=T.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]=J(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},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(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,i as formatAndWriteMove,Ce as formatAndWriteTypescript,C as formatMove,V as formatTypescript,kt as loadConfig,S as parseData,Re as posixPath,Z as resolveConfigPath,_t as schemaGen,Ut as storage};
497
488
  //# sourceMappingURL=index.js.map