@sundaeswap/sprinkles 0.4.0 → 0.6.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 (140) hide show
  1. package/dist/cjs/Sprinkle/__tests__/encryption.test.js +22 -8
  2. package/dist/cjs/Sprinkle/__tests__/encryption.test.js.map +1 -1
  3. package/dist/cjs/Sprinkle/__tests__/enhancements.test.js +37 -46
  4. package/dist/cjs/Sprinkle/__tests__/enhancements.test.js.map +1 -1
  5. package/dist/cjs/Sprinkle/__tests__/field-utils.test.js +170 -0
  6. package/dist/cjs/Sprinkle/__tests__/field-utils.test.js.map +1 -0
  7. package/dist/cjs/Sprinkle/__tests__/fill-in-struct.test.js +283 -81
  8. package/dist/cjs/Sprinkle/__tests__/fill-in-struct.test.js.map +1 -1
  9. package/dist/cjs/Sprinkle/__tests__/formatting.test.js +97 -0
  10. package/dist/cjs/Sprinkle/__tests__/formatting.test.js.map +1 -0
  11. package/dist/cjs/Sprinkle/__tests__/show-menu.test.js +97 -7
  12. package/dist/cjs/Sprinkle/__tests__/show-menu.test.js.map +1 -1
  13. package/dist/cjs/Sprinkle/__tests__/tx-dialog.test.js +30 -0
  14. package/dist/cjs/Sprinkle/__tests__/tx-dialog.test.js.map +1 -1
  15. package/dist/cjs/Sprinkle/encryption.js +131 -0
  16. package/dist/cjs/Sprinkle/encryption.js.map +1 -0
  17. package/dist/cjs/Sprinkle/index.js +427 -438
  18. package/dist/cjs/Sprinkle/index.js.map +1 -1
  19. package/dist/cjs/Sprinkle/menus/array-menu.js +195 -0
  20. package/dist/cjs/Sprinkle/menus/array-menu.js.map +1 -0
  21. package/dist/cjs/Sprinkle/menus/field-menu.js +161 -0
  22. package/dist/cjs/Sprinkle/menus/field-menu.js.map +1 -0
  23. package/dist/cjs/Sprinkle/menus/index.js +33 -0
  24. package/dist/cjs/Sprinkle/menus/index.js.map +1 -0
  25. package/dist/cjs/Sprinkle/menus/object-menu.js +324 -0
  26. package/dist/cjs/Sprinkle/menus/object-menu.js.map +1 -0
  27. package/dist/cjs/Sprinkle/prompts.js +459 -0
  28. package/dist/cjs/Sprinkle/prompts.js.map +1 -0
  29. package/dist/cjs/Sprinkle/schemas.js +97 -0
  30. package/dist/cjs/Sprinkle/schemas.js.map +1 -0
  31. package/dist/cjs/Sprinkle/tx-dialog.js +101 -0
  32. package/dist/cjs/Sprinkle/tx-dialog.js.map +1 -0
  33. package/dist/cjs/Sprinkle/type-guards.js +89 -0
  34. package/dist/cjs/Sprinkle/type-guards.js.map +1 -0
  35. package/dist/cjs/Sprinkle/types.js +73 -0
  36. package/dist/cjs/Sprinkle/types.js.map +1 -0
  37. package/dist/cjs/Sprinkle/utils/field-utils.js +154 -0
  38. package/dist/cjs/Sprinkle/utils/field-utils.js.map +1 -0
  39. package/dist/cjs/Sprinkle/utils/formatting.js +126 -0
  40. package/dist/cjs/Sprinkle/utils/formatting.js.map +1 -0
  41. package/dist/cjs/Sprinkle/utils/index.js +56 -0
  42. package/dist/cjs/Sprinkle/utils/index.js.map +1 -0
  43. package/dist/cjs/Sprinkle/wallet.js +98 -0
  44. package/dist/cjs/Sprinkle/wallet.js.map +1 -0
  45. package/dist/esm/Sprinkle/__tests__/encryption.test.js +22 -8
  46. package/dist/esm/Sprinkle/__tests__/encryption.test.js.map +1 -1
  47. package/dist/esm/Sprinkle/__tests__/enhancements.test.js +37 -46
  48. package/dist/esm/Sprinkle/__tests__/enhancements.test.js.map +1 -1
  49. package/dist/esm/Sprinkle/__tests__/field-utils.test.js +168 -0
  50. package/dist/esm/Sprinkle/__tests__/field-utils.test.js.map +1 -0
  51. package/dist/esm/Sprinkle/__tests__/fill-in-struct.test.js +284 -82
  52. package/dist/esm/Sprinkle/__tests__/fill-in-struct.test.js.map +1 -1
  53. package/dist/esm/Sprinkle/__tests__/formatting.test.js +95 -0
  54. package/dist/esm/Sprinkle/__tests__/formatting.test.js.map +1 -0
  55. package/dist/esm/Sprinkle/__tests__/show-menu.test.js +98 -8
  56. package/dist/esm/Sprinkle/__tests__/show-menu.test.js.map +1 -1
  57. package/dist/esm/Sprinkle/__tests__/tx-dialog.test.js +30 -0
  58. package/dist/esm/Sprinkle/__tests__/tx-dialog.test.js.map +1 -1
  59. package/dist/esm/Sprinkle/encryption.js +117 -0
  60. package/dist/esm/Sprinkle/encryption.js.map +1 -0
  61. package/dist/esm/Sprinkle/index.js +248 -425
  62. package/dist/esm/Sprinkle/index.js.map +1 -1
  63. package/dist/esm/Sprinkle/menus/array-menu.js +190 -0
  64. package/dist/esm/Sprinkle/menus/array-menu.js.map +1 -0
  65. package/dist/esm/Sprinkle/menus/field-menu.js +155 -0
  66. package/dist/esm/Sprinkle/menus/field-menu.js.map +1 -0
  67. package/dist/esm/Sprinkle/menus/index.js +8 -0
  68. package/dist/esm/Sprinkle/menus/index.js.map +1 -0
  69. package/dist/esm/Sprinkle/menus/object-menu.js +318 -0
  70. package/dist/esm/Sprinkle/menus/object-menu.js.map +1 -0
  71. package/dist/esm/Sprinkle/prompts.js +443 -0
  72. package/dist/esm/Sprinkle/prompts.js.map +1 -0
  73. package/dist/esm/Sprinkle/schemas.js +91 -0
  74. package/dist/esm/Sprinkle/schemas.js.map +1 -0
  75. package/dist/esm/Sprinkle/tx-dialog.js +90 -0
  76. package/dist/esm/Sprinkle/tx-dialog.js.map +1 -0
  77. package/dist/esm/Sprinkle/type-guards.js +66 -0
  78. package/dist/esm/Sprinkle/type-guards.js.map +1 -0
  79. package/dist/esm/Sprinkle/types.js +66 -0
  80. package/dist/esm/Sprinkle/types.js.map +1 -0
  81. package/dist/esm/Sprinkle/utils/field-utils.js +145 -0
  82. package/dist/esm/Sprinkle/utils/field-utils.js.map +1 -0
  83. package/dist/esm/Sprinkle/utils/formatting.js +118 -0
  84. package/dist/esm/Sprinkle/utils/formatting.js.map +1 -0
  85. package/dist/esm/Sprinkle/utils/index.js +7 -0
  86. package/dist/esm/Sprinkle/utils/index.js.map +1 -0
  87. package/dist/esm/Sprinkle/wallet.js +90 -0
  88. package/dist/esm/Sprinkle/wallet.js.map +1 -0
  89. package/dist/types/Sprinkle/encryption.d.ts +43 -0
  90. package/dist/types/Sprinkle/encryption.d.ts.map +1 -0
  91. package/dist/types/Sprinkle/index.d.ts +17 -177
  92. package/dist/types/Sprinkle/index.d.ts.map +1 -1
  93. package/dist/types/Sprinkle/menus/array-menu.d.ts +31 -0
  94. package/dist/types/Sprinkle/menus/array-menu.d.ts.map +1 -0
  95. package/dist/types/Sprinkle/menus/field-menu.d.ts +34 -0
  96. package/dist/types/Sprinkle/menus/field-menu.d.ts.map +1 -0
  97. package/dist/types/Sprinkle/menus/index.d.ts +10 -0
  98. package/dist/types/Sprinkle/menus/index.d.ts.map +1 -0
  99. package/dist/types/Sprinkle/menus/object-menu.d.ts +34 -0
  100. package/dist/types/Sprinkle/menus/object-menu.d.ts.map +1 -0
  101. package/dist/types/Sprinkle/prompts.d.ts +119 -0
  102. package/dist/types/Sprinkle/prompts.d.ts.map +1 -0
  103. package/dist/types/Sprinkle/schemas.d.ts +125 -0
  104. package/dist/types/Sprinkle/schemas.d.ts.map +1 -0
  105. package/dist/types/Sprinkle/tx-dialog.d.ts +37 -0
  106. package/dist/types/Sprinkle/tx-dialog.d.ts.map +1 -0
  107. package/dist/types/Sprinkle/type-guards.d.ts +45 -0
  108. package/dist/types/Sprinkle/type-guards.d.ts.map +1 -0
  109. package/dist/types/Sprinkle/types.d.ts +115 -0
  110. package/dist/types/Sprinkle/types.d.ts.map +1 -0
  111. package/dist/types/Sprinkle/utils/field-utils.d.ts +47 -0
  112. package/dist/types/Sprinkle/utils/field-utils.d.ts.map +1 -0
  113. package/dist/types/Sprinkle/utils/formatting.d.ts +30 -0
  114. package/dist/types/Sprinkle/utils/formatting.d.ts.map +1 -0
  115. package/dist/types/Sprinkle/wallet.d.ts +27 -0
  116. package/dist/types/Sprinkle/wallet.d.ts.map +1 -0
  117. package/dist/types/tsconfig.build.tsbuildinfo +1 -1
  118. package/package.json +1 -1
  119. package/src/Sprinkle/__tests__/encryption.test.ts +23 -8
  120. package/src/Sprinkle/__tests__/enhancements.test.ts +34 -47
  121. package/src/Sprinkle/__tests__/field-utils.test.ts +191 -0
  122. package/src/Sprinkle/__tests__/fill-in-struct.test.ts +301 -86
  123. package/src/Sprinkle/__tests__/formatting.test.ts +115 -0
  124. package/src/Sprinkle/__tests__/show-menu.test.ts +102 -8
  125. package/src/Sprinkle/__tests__/tx-dialog.test.ts +30 -0
  126. package/src/Sprinkle/encryption.ts +130 -0
  127. package/src/Sprinkle/index.ts +368 -598
  128. package/src/Sprinkle/menus/array-menu.ts +191 -0
  129. package/src/Sprinkle/menus/field-menu.ts +145 -0
  130. package/src/Sprinkle/menus/index.ts +12 -0
  131. package/src/Sprinkle/menus/object-menu.ts +336 -0
  132. package/src/Sprinkle/prompts.ts +551 -0
  133. package/src/Sprinkle/schemas.ts +111 -0
  134. package/src/Sprinkle/tx-dialog.ts +100 -0
  135. package/src/Sprinkle/type-guards.ts +93 -0
  136. package/src/Sprinkle/types.ts +116 -0
  137. package/src/Sprinkle/utils/field-utils.ts +158 -0
  138. package/src/Sprinkle/utils/formatting.ts +127 -0
  139. package/src/Sprinkle/utils/index.ts +17 -0
  140. package/src/Sprinkle/wallet.ts +133 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wallet.js","names":["Blockfrost","Blaze","ColdWallet","Core","HotWallet","wordlist","confirmCancellable","UserCancelledError","GetProvider","network","settings","type","projectId","queryModule","Maestro","Error","apiKey","GetWallet","provider","fromMasterkey","Bip32PrivateKeyHex","privateKey","Address","fromBech32","address","GetBlaze","providerSettings","walletSettings","wallet","from","generateWalletFromMnemonic","mnemonic","generateMnemonic","words","split","console","log","i","toString","padStart","padEnd","confirmed","message","default","entropy","mnemonicToEntropy","masterKey","Bip32PrivateKey","fromBip39Entropy","Buffer","hex"],"sources":["../../../src/Sprinkle/wallet.ts"],"sourcesContent":["/**\n * Wallet and provider setup utilities.\n * Functions for creating providers, wallets, and Blaze instances.\n */\n\nimport { Blockfrost, type Provider } from \"@blaze-cardano/query\";\nimport {\n Blaze,\n ColdWallet,\n Core,\n HotWallet,\n type Wallet,\n} from \"@blaze-cardano/sdk\";\nimport { wordlist } from \"@blaze-cardano/core\";\nimport { confirmCancellable } from \"./prompts.js\";\nimport { UserCancelledError, type TExact } from \"./types.js\";\nimport {\n NetworkSchema,\n ProviderSettingsSchema,\n WalletSettingsSchema,\n} from \"./schemas.js\";\n\n/**\n * Creates a blockchain data provider based on settings.\n */\nexport async function GetProvider(\n network: TExact<typeof NetworkSchema>,\n settings: TExact<typeof ProviderSettingsSchema>,\n): Promise<Provider> {\n switch (settings.type) {\n case \"blockfrost\":\n return new Blockfrost({\n network: `cardano-${network}`,\n projectId: settings.projectId,\n });\n case \"maestro\":\n // Dynamic import - Maestro may or may not be exported depending on @blaze-cardano/query version\n const queryModule = (await import(\"@blaze-cardano/query\")) as any;\n if (!queryModule.Maestro) {\n throw new Error(\n \"Maestro is not available in the installed version of @blaze-cardano/query. Please install a version that includes Maestro support.\",\n );\n }\n return new queryModule.Maestro({\n network: network as \"mainnet\" | \"preview\" | \"preprod\",\n apiKey: settings.apiKey,\n });\n default:\n throw new Error(\"Invalid provider type\");\n }\n}\n\n/**\n * Creates a wallet instance based on settings.\n */\nexport async function GetWallet(\n settings: TExact<typeof WalletSettingsSchema>,\n provider: Provider,\n): Promise<Wallet> {\n switch (settings.type) {\n case \"hot\":\n return HotWallet.fromMasterkey(\n Core.Bip32PrivateKeyHex(settings.privateKey),\n provider,\n provider.network,\n );\n case \"cold\":\n return new ColdWallet(\n Core.Address.fromBech32(settings.address),\n provider.network,\n provider,\n );\n default:\n throw new Error(\"Invalid wallet type\");\n }\n}\n\n/**\n * Creates a Blaze instance with provider and wallet.\n */\nexport async function GetBlaze(\n network: TExact<typeof NetworkSchema>,\n providerSettings: TExact<typeof ProviderSettingsSchema>,\n walletSettings: TExact<typeof WalletSettingsSchema>,\n): Promise<Blaze<Provider, Wallet>> {\n const provider = await GetProvider(network, providerSettings);\n const wallet = await GetWallet(walletSettings, provider);\n return Blaze.from(provider, wallet);\n}\n\n/**\n * Generates a new wallet from a BIP39 mnemonic phrase.\n * Displays the 24-word recovery phrase and requires user confirmation.\n * @returns The Bip32PrivateKey hex string for storage\n */\nexport async function generateWalletFromMnemonic(): Promise<string> {\n const mnemonic = Core.generateMnemonic(wordlist, 256); // 24 words\n const words = mnemonic.split(\" \");\n\n console.log(\"\\n=== NEW WALLET GENERATED ===\\n\");\n console.log(\"IMPORTANT: Save these 24 words in a secure location.\");\n console.log(\"This is the ONLY way to recover your wallet.\\n\");\n\n // Display in 4 columns\n for (let i = 0; i < 6; i++) {\n console.log(\n `${(i + 1).toString().padStart(2)}. ${words[i]!.padEnd(12)} ` +\n `${(i + 7).toString().padStart(2)}. ${words[i + 6]!.padEnd(12)} ` +\n `${(i + 13).toString().padStart(2)}. ${words[i + 12]!.padEnd(12)} ` +\n `${(i + 19).toString().padStart(2)}. ${words[i + 18]}`,\n );\n }\n console.log(\"\");\n\n const confirmed = await confirmCancellable({\n message: \"Have you saved your recovery phrase?\",\n default: false,\n });\n\n if (confirmed === null) {\n throw new UserCancelledError(\"Wallet generation cancelled\");\n }\n if (!confirmed) {\n throw new Error(\"Wallet generation cancelled - recovery phrase not saved\");\n }\n\n const entropy = Core.mnemonicToEntropy(mnemonic, wordlist);\n const masterKey = Core.Bip32PrivateKey.fromBip39Entropy(\n Buffer.from(entropy),\n \"\",\n );\n return masterKey.hex();\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Encryption utilities for sensitive field handling.
3
+ * Functions for encrypting, decrypting, and masking sensitive data in settings.
4
+ */
5
+ import type { TSchema } from "@sinclair/typebox";
6
+ import type { IEncryptionOptions } from "./types.js";
7
+ /**
8
+ * Recursively collect paths to all sensitive fields in a schema.
9
+ */
10
+ export declare function collectSensitivePaths(type: TSchema, prefix?: string): string[];
11
+ /**
12
+ * Get a nested value from an object by dot-separated path.
13
+ */
14
+ export declare function getNestedValue(obj: any, path: string): unknown;
15
+ /**
16
+ * Set a nested value in an object by dot-separated path.
17
+ */
18
+ export declare function setNestedValue(obj: any, path: string, value: unknown): void;
19
+ /**
20
+ * JSON replacer that converts BigInt to string with 'n' suffix.
21
+ */
22
+ export declare function bigIntReplacer(_key: string, value: unknown): unknown;
23
+ /**
24
+ * JSON reviver that converts strings with 'n' suffix back to BigInt.
25
+ */
26
+ export declare function bigIntReviver(_key: string, value: unknown): unknown;
27
+ /**
28
+ * Deep clone an object, preserving BigInt values.
29
+ */
30
+ export declare function cloneWithBigInt<T>(obj: T): T;
31
+ /**
32
+ * Encrypt all sensitive fields in a settings object.
33
+ */
34
+ export declare function encryptSensitiveFields<T>(settings: T, type: TSchema, encryption: IEncryptionOptions): T;
35
+ /**
36
+ * Decrypt all sensitive fields in a settings object.
37
+ */
38
+ export declare function decryptSensitiveFields<T>(settings: T, type: TSchema, encryption: IEncryptionOptions): Promise<T>;
39
+ /**
40
+ * Mask all sensitive fields in a settings object for display.
41
+ */
42
+ export declare function maskSensitiveFields<T>(settings: T, type: TSchema): T;
43
+ //# sourceMappingURL=encryption.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encryption.d.ts","sourceRoot":"","sources":["../../../src/Sprinkle/encryption.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAEjD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAErD;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,OAAO,EACb,MAAM,GAAE,MAAW,GAClB,MAAM,EAAE,CAkBV;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAE9D;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CAO3E;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAEpE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAKnE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAE5C;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,CAAC,EACtC,QAAQ,EAAE,CAAC,EACX,IAAI,EAAE,OAAO,EACb,UAAU,EAAE,kBAAkB,GAC7B,CAAC,CAUH;AAED;;GAEG;AACH,wBAAsB,sBAAsB,CAAC,CAAC,EAC5C,QAAQ,EAAE,CAAC,EACX,IAAI,EAAE,OAAO,EACb,UAAU,EAAE,kBAAkB,GAC7B,OAAO,CAAC,CAAC,CAAC,CAUZ;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,GAAG,CAAC,CAUpE"}
@@ -1,147 +1,16 @@
1
1
  import { type Provider } from "@blaze-cardano/query";
2
2
  import { Blaze, Core, type Wallet } from "@blaze-cardano/sdk";
3
- import { type Static, type TBigInt, type TLiteral, type TObject, type TSchema, type TString, type TUnion, type TArray, type TRef, type TImport } from "@sinclair/typebox";
3
+ import { type TSchema } from "@sinclair/typebox";
4
4
  export * from "@sinclair/typebox";
5
- export type TExact<T> = T extends TSchema ? Static<T> : T;
6
- export interface IEncryptionOptions {
7
- encrypt: (plaintext: string) => string;
8
- decrypt: (ciphertext: string) => Promise<string>;
9
- }
10
- export interface ISprinkleOptions {
11
- encryption?: IEncryptionOptions;
12
- }
13
- export interface IProfileMeta {
14
- name: string;
15
- description?: string;
16
- createdAt: string;
17
- updatedAt: string;
18
- }
19
- export interface ICurrentProfile extends IProfileMeta {
20
- id: string;
21
- }
22
- export interface IProfileEntry {
23
- id: string;
24
- meta: IProfileMeta;
25
- }
26
- export interface TxDialogResult {
27
- action: "submitted" | "signed" | "cancelled";
28
- txId?: string;
29
- tx: Core.Transaction;
30
- }
31
- export interface TxDialogOptions {
32
- beforeSign?: () => Promise<void>;
33
- }
34
- export declare const NetworkSchema: TUnion<[TLiteral<"mainnet">, TLiteral<"preview">, TLiteral<"preprod">]>;
35
- export declare const MultisigScriptModule: import("@sinclair/typebox").TModule<{
36
- MultisigScript: TUnion<[TObject<{
37
- Signature: TObject<{
38
- key_hash: TString;
39
- }>;
40
- }>, TObject<{
41
- AllOf: TObject<{
42
- scripts: TArray<TRef<"MultisigScript">>;
43
- }>;
44
- }>, TObject<{
45
- AnyOf: TObject<{
46
- scripts: TArray<TRef<"MultisigScript">>;
47
- }>;
48
- }>, TObject<{
49
- AtLeast: TObject<{
50
- required: TBigInt;
51
- scripts: TArray<TRef<"MultisigScript">>;
52
- }>;
53
- }>, TObject<{
54
- Before: TObject<{
55
- time: TBigInt;
56
- }>;
57
- }>, TObject<{
58
- After: TObject<{
59
- time: TBigInt;
60
- }>;
61
- }>, TObject<{
62
- Script: TObject<{
63
- script_hash: TString;
64
- }>;
65
- }>]>;
66
- }, {
67
- MultisigScript: TUnion<[TObject<{
68
- Signature: TObject<{
69
- key_hash: TString;
70
- }>;
71
- }>, TObject<{
72
- AllOf: TObject<{
73
- scripts: TArray<TRef<"MultisigScript">>;
74
- }>;
75
- }>, TObject<{
76
- AnyOf: TObject<{
77
- scripts: TArray<TRef<"MultisigScript">>;
78
- }>;
79
- }>, TObject<{
80
- AtLeast: TObject<{
81
- required: TBigInt;
82
- scripts: TArray<TRef<"MultisigScript">>;
83
- }>;
84
- }>, TObject<{
85
- Before: TObject<{
86
- time: TBigInt;
87
- }>;
88
- }>, TObject<{
89
- After: TObject<{
90
- time: TBigInt;
91
- }>;
92
- }>, TObject<{
93
- Script: TObject<{
94
- script_hash: TString;
95
- }>;
96
- }>]>;
97
- }>;
98
- export declare const MultisigScript: TImport<{
99
- MultisigScript: TUnion<[TObject<{
100
- Signature: TObject<{
101
- key_hash: TString;
102
- }>;
103
- }>, TObject<{
104
- AllOf: TObject<{
105
- scripts: TArray<TRef<"MultisigScript">>;
106
- }>;
107
- }>, TObject<{
108
- AnyOf: TObject<{
109
- scripts: TArray<TRef<"MultisigScript">>;
110
- }>;
111
- }>, TObject<{
112
- AtLeast: TObject<{
113
- required: TBigInt;
114
- scripts: TArray<TRef<"MultisigScript">>;
115
- }>;
116
- }>, TObject<{
117
- Before: TObject<{
118
- time: TBigInt;
119
- }>;
120
- }>, TObject<{
121
- After: TObject<{
122
- time: TBigInt;
123
- }>;
124
- }>, TObject<{
125
- Script: TObject<{
126
- script_hash: TString;
127
- }>;
128
- }>]>;
129
- }, "MultisigScript">;
130
- export type TMultisigScript = TExact<typeof MultisigScript>;
131
- export declare const ProviderSettingsSchema: TUnion<[TObject<{
132
- type: TLiteral<"blockfrost">;
133
- projectId: TString;
134
- }>, TObject<{
135
- type: TLiteral<"maestro">;
136
- apiKey: TString;
137
- }>]>;
138
- export declare const WalletSettingsSchema: TUnion<[TObject<{
139
- type: TLiteral<"hot">;
140
- privateKey: TString;
141
- }>, TObject<{
142
- type: TLiteral<"cold">;
143
- address: TString;
144
- }>]>;
5
+ export type { TExact } from "./types.js";
6
+ export type { IEncryptionOptions, ISprinkleOptions, IProfileMeta, ICurrentProfile, IProfileEntry, TxDialogResult, TxDialogOptions, FieldState, RequiredFieldCount, FieldMenuResult, ObjectMenuResult, ArrayMenuResult, } from "./types.js";
7
+ export { UserCancelledError } from "./types.js";
8
+ import type { TExact, ISprinkleOptions, IProfileMeta, ICurrentProfile, IProfileEntry, TxDialogResult, TxDialogOptions } from "./types.js";
9
+ export { NetworkSchema, MultisigScriptModule, MultisigScript, ProviderSettingsSchema, WalletSettingsSchema, } from "./schemas.js";
10
+ export type { TMultisigScript } from "./schemas.js";
11
+ export { isOptional, isImport, isArray, isBigInt, isLiteral, isObject, isRef, isString, isThis, isTuple, isUnion, isSensitive, isNull, isNullable, unwrapNullable, hasDefault, getDefault, } from "./type-guards.js";
12
+ import { NetworkSchema, ProviderSettingsSchema, WalletSettingsSchema } from "./schemas.js";
13
+ export { GetProvider, GetWallet, GetBlaze } from "./wallet.js";
145
14
  export interface IMenuAction<S extends TSchema> {
146
15
  title: string;
147
16
  action: (sprinkle: Sprinkle<S>) => Promise<Sprinkle<S> | void>;
@@ -199,52 +68,23 @@ export declare class Sprinkle<S extends TSchema> {
199
68
  name: string;
200
69
  value: T;
201
70
  }[];
202
- }): Promise<T>;
71
+ }): Promise<T | null>;
203
72
  static SettingsPath(storagePath: string): string;
204
73
  LoadSettings(type: S, storagePath: string): Promise<void>;
205
74
  static bigIntReviver(key: string, value: unknown): unknown;
206
- private static bigIntReplacer;
207
- private static collectSensitivePaths;
208
- private static getNestedValue;
209
- private static setNestedValue;
210
75
  private encryptSettings;
211
76
  private decryptSettings;
212
77
  saveSettings(): void;
213
78
  getDisplaySettings(): TExact<S>;
79
+ TxDialog<P extends Provider, W extends Wallet>(blaze: Blaze<P, W>, tx: Core.Transaction, opts?: TxDialogOptions): Promise<TxDialogResult>;
214
80
  /**
215
- * Get the payment key hash from a HotWallet's first address
216
- */
217
- private getWalletPaymentKeyHash;
218
- /**
219
- * Count the number of vkey signatures in a transaction's witness set
220
- */
221
- private countSignatures;
222
- /**
223
- * Check if a specific public key has already signed the transaction
224
- * Compares by vkey (public key bytes)
225
- */
226
- private hasVkeySigned;
227
- /**
228
- * Get the list of required signer key hashes from the transaction body
229
- */
230
- private getRequiredSigners;
231
- /**
232
- * Compute the transaction body hash for display
233
- */
234
- private getTxBodyHash;
235
- /**
236
- * Format a hash for display: first 8 chars + ... + last 8 chars
237
- */
238
- private formatHash;
239
- /**
240
- * Merge signatures from source transaction into target transaction.
241
- * Prevents duplicate signatures by comparing vkey (public key).
242
- * Returns the count of newly added signatures.
81
+ * Edit an existing struct value using a menu-based interface.
82
+ * This is now unified with FillInStruct - both use the same menu system.
83
+ * @param type - The TypeBox schema
84
+ * @param current - The current value to edit
85
+ * @returns The edited value
243
86
  */
244
- private mergeSignatures;
245
- TxDialog<P extends Provider, W extends Wallet>(blaze: Blaze<P, W>, tx: Core.Transaction, opts?: TxDialogOptions): Promise<TxDialogResult>;
246
87
  EditStruct<U extends TSchema>(type: U, current: TExact<U>): Promise<TExact<U>>;
247
- _editStruct<U extends TSchema>(type: U, path: string[], current?: TExact<U>): Promise<TExact<U>>;
248
88
  FillInStruct<U extends TSchema>(type: U, def?: TExact<U>): Promise<TExact<U>>;
249
89
  _fillInStruct<U extends TSchema>(type: U, path: string[], defs: Record<string, TSchema>, def?: TExact<U>): Promise<TExact<U>>;
250
90
  resolveType<T extends TSchema>(type: T, path: string[], defs: Record<string, TSchema>): T;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Sprinkle/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Sprinkle/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Array menu module for menu-based struct editing.
3
+ * Shows array items and allows adding/removing/editing.
4
+ */
5
+ import type { TArray, TSchema } from "@sinclair/typebox";
6
+ import type { ArrayMenuResult } from "../types.js";
7
+ import type { FillFunction } from "./object-menu.js";
8
+ /**
9
+ * Options for the array menu prompt.
10
+ */
11
+ export interface ArrayMenuOptions {
12
+ /** The array schema */
13
+ type: TArray;
14
+ /** Current path for display */
15
+ path: string[];
16
+ /** Type definitions for resolving refs */
17
+ defs: Record<string, TSchema>;
18
+ /** Existing array values */
19
+ defaults?: unknown[];
20
+ /** Function to fill individual items */
21
+ fillField: FillFunction;
22
+ }
23
+ /**
24
+ * Show a menu-based editor for an array.
25
+ * Allows adding, removing, and editing items.
26
+ *
27
+ * @param options - Array menu options
28
+ * @returns The edited array or back result
29
+ */
30
+ export declare function promptArray<T>(options: ArrayMenuOptions): Promise<ArrayMenuResult<T>>;
31
+ //# sourceMappingURL=array-menu.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"array-menu.d.ts","sourceRoot":"","sources":["../../../../src/Sprinkle/menus/array-menu.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAEzD,OAAO,KAAK,EAAE,eAAe,EAAc,MAAM,aAAa,CAAC;AAI/D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAErD;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,uBAAuB;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,+BAA+B;IAC/B,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,0CAA0C;IAC1C,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,4BAA4B;IAC5B,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;IACrB,wCAAwC;IACxC,SAAS,EAAE,YAAY,CAAC;CACzB;AAED;;;;;;GAMG;AACH,wBAAsB,WAAW,CAAC,CAAC,EACjC,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAuJ7B"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Field menu module for menu-based struct editing.
3
+ * Handles the sub-menu shown when selecting a field with an existing value.
4
+ */
5
+ import type { TSchema } from "@sinclair/typebox";
6
+ import type { FieldMenuResult, FieldState } from "../types.js";
7
+ /**
8
+ * Options for the field menu prompt.
9
+ */
10
+ export interface FieldMenuOptions<T> {
11
+ /** The field name */
12
+ fieldName: string;
13
+ /** The field's schema */
14
+ fieldType: TSchema;
15
+ /** Current state of the field */
16
+ state: FieldState<T>;
17
+ }
18
+ /**
19
+ * Show a sub-menu for a field that has a value.
20
+ * Provides options to edit, view, clear, set null, or reset to default.
21
+ *
22
+ * @param options - Field menu options
23
+ * @returns The user's chosen action
24
+ */
25
+ export declare function promptFieldMenu<T>(options: FieldMenuOptions<T>): Promise<FieldMenuResult<T>>;
26
+ /**
27
+ * Display the full value of a field.
28
+ * Shows formatted JSON and waits for user to press Enter.
29
+ *
30
+ * @param fieldName - The field name
31
+ * @param value - The value to display
32
+ */
33
+ export declare function displayFullValue(fieldName: string, value: unknown): Promise<void>;
34
+ //# sourceMappingURL=field-menu.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"field-menu.d.ts","sourceRoot":"","sources":["../../../../src/Sprinkle/menus/field-menu.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAEjD,OAAO,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAK/D;;GAEG;AACH,MAAM,WAAW,gBAAgB,CAAC,CAAC;IACjC,qBAAqB;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,yBAAyB;IACzB,SAAS,EAAE,OAAO,CAAC;IACnB,iCAAiC;IACjC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;CACtB;AAED;;;;;;GAMG;AACH,wBAAsB,eAAe,CAAC,CAAC,EACrC,OAAO,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAC3B,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CA+E7B;AAED;;;;;;GAMG;AACH,wBAAsB,gBAAgB,CACpC,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,OAAO,GACb,OAAO,CAAC,IAAI,CAAC,CAmBf"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Menu modules for menu-based struct editing.
3
+ */
4
+ export { promptFieldMenu, displayFullValue } from "./field-menu.js";
5
+ export type { FieldMenuOptions } from "./field-menu.js";
6
+ export { promptObject } from "./object-menu.js";
7
+ export type { ObjectMenuOptions, FillFunction } from "./object-menu.js";
8
+ export { promptArray } from "./array-menu.js";
9
+ export type { ArrayMenuOptions } from "./array-menu.js";
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/Sprinkle/menus/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACpE,YAAY,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAExD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,YAAY,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAExE,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,YAAY,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Object menu module for menu-based struct editing.
3
+ * Shows all fields of an object and allows non-linear editing.
4
+ */
5
+ import type { TObject, TSchema } from "@sinclair/typebox";
6
+ import type { ObjectMenuResult } from "../types.js";
7
+ /**
8
+ * Type for the fill function that handles individual field types.
9
+ */
10
+ export type FillFunction = <U extends TSchema>(type: U, path: string[], defs: Record<string, TSchema>, def?: unknown) => Promise<unknown>;
11
+ /**
12
+ * Options for the object menu prompt.
13
+ */
14
+ export interface ObjectMenuOptions {
15
+ /** The object schema */
16
+ type: TObject;
17
+ /** Current path for display */
18
+ path: string[];
19
+ /** Type definitions for resolving refs */
20
+ defs: Record<string, TSchema>;
21
+ /** Default/existing values */
22
+ defaults?: Record<string, unknown>;
23
+ /** Function to fill individual fields */
24
+ fillField: FillFunction;
25
+ }
26
+ /**
27
+ * Show a menu-based editor for an object.
28
+ * Allows non-linear editing of fields with Submit/Cancel.
29
+ *
30
+ * @param options - Object menu options
31
+ * @returns The edited object or cancel result
32
+ */
33
+ export declare function promptObject<T extends Record<string, unknown>>(options: ObjectMenuOptions): Promise<ObjectMenuResult<T>>;
34
+ //# sourceMappingURL=object-menu.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"object-menu.d.ts","sourceRoot":"","sources":["../../../../src/Sprinkle/menus/object-menu.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAG1D,OAAO,KAAK,EAAc,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAahE;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,SAAS,OAAO,EAC3C,IAAI,EAAE,CAAC,EACP,IAAI,EAAE,MAAM,EAAE,EACd,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,GAAG,CAAC,EAAE,OAAO,KACV,OAAO,CAAC,OAAO,CAAC,CAAC;AAEtB;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,wBAAwB;IACxB,IAAI,EAAE,OAAO,CAAC;IACd,+BAA+B;IAC/B,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,0CAA0C;IAC1C,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,8BAA8B;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,yCAAyC;IACzC,SAAS,EAAE,YAAY,CAAC;CACzB;AAED;;;;;;GAMG;AACH,wBAAsB,YAAY,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClE,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CA2O9B"}
@@ -0,0 +1,119 @@
1
+ /**
2
+ * Cancellable prompt wrappers with escape key support.
3
+ * Uses @inquirer/core's createPrompt and useKeypress for proper escape handling.
4
+ */
5
+ import { Separator, type Theme } from "@inquirer/core";
6
+ import type { PartialDeep } from "@inquirer/type";
7
+ declare const selectTheme: {
8
+ icon: {
9
+ cursor: string;
10
+ };
11
+ style: {
12
+ disabled: (text: string) => string;
13
+ description: (text: string) => string;
14
+ helpTip: string;
15
+ };
16
+ helpMode: "always";
17
+ };
18
+ interface SelectChoice<T> {
19
+ name?: string;
20
+ value: T;
21
+ description?: string;
22
+ short?: string;
23
+ disabled?: boolean | string;
24
+ }
25
+ interface SelectConfig<T> {
26
+ message: string;
27
+ choices: ReadonlyArray<SelectChoice<T> | Separator | string>;
28
+ default?: T;
29
+ pageSize?: number;
30
+ loop?: boolean;
31
+ theme?: PartialDeep<Theme<typeof selectTheme>>;
32
+ }
33
+ /**
34
+ * Select prompt with escape key support.
35
+ * Returns null if user presses Escape.
36
+ */
37
+ export declare const selectCancellable: import("@inquirer/type").Prompt<unknown, SelectConfig<unknown>>;
38
+ /**
39
+ * Clears N lines above the cursor.
40
+ * Used after prompts to clean up menu output.
41
+ */
42
+ export declare function clearLines(count: number): void;
43
+ /**
44
+ * Select prompt that clears its output after completion.
45
+ * Returns the selected value or null if cancelled.
46
+ */
47
+ export declare function selectWithClear<T>(config: SelectConfig<T>): Promise<T | null>;
48
+ /**
49
+ * Input prompt that clears its output after completion.
50
+ * Returns the input value or null if cancelled.
51
+ */
52
+ export declare function inputWithClear(config: InputConfig): Promise<string | null>;
53
+ /**
54
+ * Password prompt that clears its output after completion.
55
+ * Returns the password or null if cancelled.
56
+ */
57
+ export declare function passwordWithClear(config: PasswordConfig): Promise<string | null>;
58
+ /**
59
+ * Confirm prompt that clears its output after completion.
60
+ * Returns true/false or null if cancelled.
61
+ */
62
+ export declare function confirmWithClear(config: ConfirmConfig): Promise<boolean | null>;
63
+ interface InputConfig {
64
+ message: string;
65
+ default?: string;
66
+ transformer?: (value: string, options: {
67
+ isFinal: boolean;
68
+ }) => string;
69
+ validate?: (value: string) => boolean | string | Promise<boolean | string>;
70
+ }
71
+ /**
72
+ * Input prompt with escape key support.
73
+ * Returns null if user presses Escape.
74
+ */
75
+ export declare const inputCancellable: import("@inquirer/type").Prompt<string | null, InputConfig>;
76
+ interface PasswordConfig {
77
+ message: string;
78
+ mask?: string;
79
+ validate?: (value: string) => boolean | string | Promise<boolean | string>;
80
+ }
81
+ /**
82
+ * Password prompt with escape key support.
83
+ * Returns null if user presses Escape.
84
+ */
85
+ export declare const passwordCancellable: import("@inquirer/type").Prompt<string | null, PasswordConfig>;
86
+ interface ConfirmConfig {
87
+ message: string;
88
+ default?: boolean;
89
+ }
90
+ /**
91
+ * Confirm prompt with escape key support.
92
+ * Returns null if user presses Escape.
93
+ */
94
+ export declare const confirmCancellable: import("@inquirer/type").Prompt<boolean | null, ConfirmConfig>;
95
+ /**
96
+ * Type-safe wrapper for selectCancellable.
97
+ * Returns the selected value with proper typing, or null if cancelled.
98
+ */
99
+ export declare function select<T>(config: SelectConfig<T>): Promise<T | null>;
100
+ interface SearchConfig<T> {
101
+ message: string;
102
+ source: (term: string | undefined) => Promise<{
103
+ name: string;
104
+ value: T;
105
+ }[]> | {
106
+ name: string;
107
+ value: T;
108
+ }[];
109
+ }
110
+ /**
111
+ * Search prompt with escape key support.
112
+ * Returns null if user presses Escape.
113
+ *
114
+ * Note: This wraps @inquirer/search which has built-in escape handling,
115
+ * but we provide a consistent API with other cancellable prompts.
116
+ */
117
+ export declare const searchCancellable: import("@inquirer/type").Prompt<unknown, SearchConfig<unknown>>;
118
+ export {};
119
+ //# sourceMappingURL=prompts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../../src/Sprinkle/prompts.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAYL,SAAS,EAET,KAAK,KAAK,EACX,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAQlD,QAAA,MAAM,WAAW;;;;;yBAGI,MAAM;4BACH,MAAM;;;;CAI7B,CAAC;AASF,UAAU,YAAY,CAAC,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,CAAC,CAAC;IACT,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;CAC7B;AAED,UAAU,YAAY,CAAC,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,SAAS,GAAG,MAAM,CAAC,CAAC;IAC7D,OAAO,CAAC,EAAE,CAAC,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,WAAW,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC;CAChD;AA8BD;;;GAGG;AACH,eAAO,MAAM,iBAAiB,iEA4G5B,CAAC;AAEH;;;GAGG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAG9C;AAED;;;GAGG;AACH,wBAAsB,eAAe,CAAC,CAAC,EACrC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,GACtB,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CAQnB;AAED;;;GAGG;AACH,wBAAsB,cAAc,CAClC,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAOxB;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,cAAc,GACrB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAOxB;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,aAAa,GACpB,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAOzB;AAED,UAAU,WAAW;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,KAAK,MAAM,CAAC;IACvE,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC;CAC5E;AAED;;;GAGG;AACH,eAAO,MAAM,gBAAgB,6DAsD5B,CAAC;AAEF,UAAU,cAAc;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC;CAC5E;AAED;;;GAGG;AACH,eAAO,MAAM,mBAAmB,gEAmD/B,CAAC;AAEF,UAAU,aAAa;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;GAGG;AACH,eAAO,MAAM,kBAAkB,gEAuC9B,CAAC;AAEF;;;GAGG;AACH,wBAAsB,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CAE1E;AAED,UAAU,YAAY,CAAC,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,CACN,IAAI,EAAE,MAAM,GAAG,SAAS,KACrB,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,CAAC,CAAA;KAAE,EAAE,CAAC,GAAG;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,CAAC,CAAA;KAAE,EAAE,CAAC;CAC3E;AAED;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,iEAyE7B,CAAC"}