@0xobelisk/sui-common 1.2.0-pre.99 → 2.0.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 (39) hide show
  1. package/LICENSE +92 -0
  2. package/README.md +670 -1
  3. package/dist/index.d.ts +61 -27
  4. package/dist/index.js +1078 -461
  5. package/dist/index.js.map +1 -1
  6. package/package.json +15 -17
  7. package/src/codegen/debug.ts +0 -4
  8. package/src/codegen/types/index.ts +46 -10
  9. package/src/codegen/utils/config.ts +1 -1
  10. package/src/codegen/utils/format.ts +0 -6
  11. package/src/codegen/utils/formatAndWrite.ts +10 -31
  12. package/src/codegen/utils/generateLock.ts +122 -0
  13. package/src/codegen/utils/index.ts +4 -2
  14. package/src/codegen/utils/renderMove/{schemaGen.ts → codegen.ts} +40 -28
  15. package/src/codegen/utils/renderMove/common.ts +0 -65
  16. package/src/codegen/utils/renderMove/dapp.ts +2 -14
  17. package/src/codegen/utils/renderMove/generateDappKey.ts +33 -18
  18. package/src/codegen/utils/renderMove/generateError.ts +32 -15
  19. package/src/codegen/utils/renderMove/generateGenesis.ts +55 -22
  20. package/src/codegen/utils/renderMove/generateInitTest.ts +26 -14
  21. package/src/codegen/utils/renderMove/generateObjects.ts +377 -0
  22. package/src/codegen/utils/renderMove/generatePermits.ts +151 -0
  23. package/src/codegen/utils/renderMove/generateResources.ts +894 -242
  24. package/src/codegen/utils/renderMove/generateScenes.ts +467 -0
  25. package/src/codegen/utils/renderMove/generateScript.ts +18 -13
  26. package/src/codegen/utils/renderMove/generateSystem.ts +0 -2
  27. package/src/codegen/utils/renderMove/generateUserStorageInit.ts +37 -0
  28. package/src/codegen/utils/validateConfig.ts +237 -0
  29. package/src/index.ts +0 -1
  30. package/src/modules.d.ts +0 -10
  31. package/src/codegen/modules.d.ts +0 -1
  32. package/src/codegen/utils/posixPath.ts +0 -8
  33. package/src/codegen/utils/renderMove/generateComponents.ts +0 -802
  34. package/src/codegen/utils/renderMove/generateDefaultSchema.ts +0 -216
  35. package/src/codegen/utils/renderMove/generateEvent.ts +0 -99
  36. package/src/codegen/utils/renderMove/generateSchema.ts +0 -287
  37. package/src/codegen/utils/renderMove/generateSchemaHub.ts +0 -60
  38. package/src/parseData/index.ts +0 -1
  39. package/src/parseData/parser/index.ts +0 -47
package/dist/index.d.ts CHANGED
@@ -1,57 +1,91 @@
1
1
  declare function formatMove(content: string, prettierConfigPath?: string): Promise<string>;
2
- declare function formatTypescript(content: string): Promise<string>;
3
2
 
4
3
  declare function formatAndWriteMove(output: string, fullOutputPath: string, logPrefix?: string): Promise<void>;
5
- /**
6
- * Formats typescript code using prettier and write it to a file
7
- * @param output typescript code
8
- * @param fullOutputPath full path to the output file
9
- * @param logPrefix prefix for debug logs
10
- */
11
- declare function formatAndWriteTypescript(output: string, fullOutputPath: string, logPrefix: string): Promise<void>;
12
-
13
- /**
14
- * Explicitly normalize a given path to a posix path (using `/` as separator).
15
- * This should be used for generating Solidity files that will be consumed by solc,
16
- * because solc expects `/` as path separator, but path.join produces `\` if the user is on windows.
17
- */
18
- declare function posixPath(path: string): string;
19
4
 
20
5
  type ComponentType = 'Onchain' | 'Offchain';
21
6
  type MoveType = 'address' | 'bool' | 'u8' | 'u32' | 'u64' | 'u128' | 'u256' | 'String' | 'vector<address>' | 'vector<bool>' | 'vector<u8>' | 'vector<vector<u8>>' | 'vector<u32>' | 'vector<u64>' | 'vector<u128>' | 'vector<u256>' | string;
22
7
  type Component = {
23
8
  offchain?: boolean;
9
+ global?: boolean;
24
10
  fields: Record<string, MoveType>;
25
11
  keys?: string[];
12
+ reactive?: boolean;
13
+ fungible?: boolean;
14
+ transferable?: boolean;
15
+ listable?: boolean;
16
+ };
17
+ /** Config for a DApp-owned named shared object (e.g. guild, boss). */
18
+ type ObjectConfig = {
19
+ fields: Record<string, MoveType>;
20
+ /** Resources (from the `resources` section) this object accepts for transfers. */
21
+ accepts?: string[];
22
+ /** Other objects/scenes whose data can be transferred into this object. */
23
+ acceptsFrom?: string[];
24
+ /** If true, only the DApp admin can call create_<key>. */
25
+ adminOnly?: boolean;
26
+ };
27
+ /** Config for a standalone ScenePermit (participant management only). */
28
+ type PermitConfig = {};
29
+ type SceneAuthorization = {
30
+ kind: 'permit';
31
+ permit: string;
32
+ } | {
33
+ kind: 'system';
26
34
  };
27
- type EmptyComponent = Record<string, never>;
35
+ /** Config for a SceneStorage object (pure data storage, symmetric to ObjectConfig). */
36
+ type SceneConfig = {
37
+ fields: Record<string, MoveType>;
38
+ /** Resources this scene accepts for transfers. */
39
+ accepts?: string[];
40
+ /** Other objects/scenes whose data can be transferred into this scene. */
41
+ acceptsFrom?: string[];
42
+ /** Explicit write authorization model for this SceneStorage. */
43
+ authorization: SceneAuthorization;
44
+ };
45
+ type ErrorDefinition = {
46
+ message: string;
47
+ };
48
+ type ErrorEntry = string | ErrorDefinition;
28
49
  type DubheConfig = {
29
50
  name: string;
30
51
  description: string;
31
52
  enums?: Record<string, string[]>;
32
- components: Record<string, Component | MoveType | EmptyComponent>;
33
- resources: Record<string, Component | MoveType>;
34
- errors?: Record<string, string>;
53
+ resources?: Record<string, Component | MoveType>;
54
+ objects?: Record<string, ObjectConfig>;
55
+ permits?: Record<string, PermitConfig>;
56
+ scenes?: Record<string, SceneConfig>;
57
+ errors?: Record<string, ErrorEntry>;
35
58
  };
36
59
  type DubheMetadata = {
37
- components: Record<string, Component | MoveType | EmptyComponent>;
38
60
  resources: Record<string, Component | MoveType>;
39
61
  enums: Record<string, string[]>;
40
62
  };
41
63
  type BaseType = any;
42
- type ErrorData = any;
64
+ type ErrorData = Record<string, ErrorEntry>;
43
65
  type EventData = any;
44
- type SchemaData = any;
45
- type SchemaType = any;
46
66
 
47
- declare function schemaGen(rootDir: string, config: DubheConfig, network?: 'mainnet' | 'testnet' | 'devnet' | 'localnet'): Promise<void>;
67
+ declare function codegen(rootDir: string, config: DubheConfig, network?: 'mainnet' | 'testnet' | 'devnet' | 'localnet', initialMode?: 0 | 1): Promise<void>;
68
+ /** @deprecated Use `codegen` instead. */
69
+ declare const schemaGen: typeof codegen;
48
70
 
49
71
  declare const defineConfig: (config: DubheConfig) => DubheConfig;
50
72
 
73
+ declare function generateObjects(config: DubheConfig, outputDir: string): Promise<void>;
74
+
75
+ declare function generateScenes(config: DubheConfig, outputDir: string): Promise<void>;
76
+
51
77
  declare function loadConfig(configPath?: string): Promise<unknown>;
52
- declare function resolveConfigPath(configPath: string | undefined, toFileURL?: boolean): Promise<string>;
53
78
 
54
- declare const parseData: (data: any) => any;
79
+ /**
80
+ * Read the existing lock file (if any), check for breaking changes against the
81
+ * current config, then write an updated lock file.
82
+ *
83
+ * Call this at the start of `codegen()` before any file generation begins.
84
+ *
85
+ * @param rootDir The project root directory (same dir passed to `codegen()`).
86
+ * @param config The parsed DubheConfig.
87
+ */
88
+ declare function checkAndUpdateLock(rootDir: string, config: DubheConfig): void;
55
89
 
56
90
  declare enum SubscriptionKind {
57
91
  Event = "event",
@@ -66,4 +100,4 @@ type SubscribableType = {
66
100
  name?: string;
67
101
  };
68
102
 
69
- export { BaseType, Component, ComponentType, DubheConfig, DubheMetadata, EmptyComponent, ErrorData, EventData, MoveType, SchemaData, SchemaType, SubscribableType, SubscriptionKind, defineConfig, formatAndWriteMove, formatAndWriteTypescript, formatMove, formatTypescript, loadConfig, parseData, posixPath, resolveConfigPath, schemaGen };
103
+ export { BaseType, Component, ComponentType, DubheConfig, DubheMetadata, ErrorData, ErrorDefinition, ErrorEntry, EventData, MoveType, ObjectConfig, PermitConfig, SceneAuthorization, SceneConfig, SubscribableType, SubscriptionKind, checkAndUpdateLock, codegen, defineConfig, formatAndWriteMove, formatMove, generateObjects, generateScenes, loadConfig, schemaGen };