@fxhash/params 0.0.10 → 0.0.11

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 (196) hide show
  1. package/dist/{chunk-7H32FZ35.js → chunk-B3N473DY.js} +45 -37
  2. package/dist/chunk-B3N473DY.js.map +1 -0
  3. package/dist/index.d.ts +249 -3
  4. package/dist/index.js +100 -5
  5. package/dist/index.js.map +1 -1
  6. package/dist/utils-jEvPb5wq.d.ts +141 -0
  7. package/dist/utils.d.ts +1 -50
  8. package/dist/utils.js +2 -32
  9. package/dist/utils.js.map +1 -1
  10. package/package.json +31 -47
  11. package/dist/BaseInput.cjs +0 -13
  12. package/dist/BaseInput.cjs.map +0 -1
  13. package/dist/BaseInput.css +0 -112
  14. package/dist/BaseInput.css.map +0 -1
  15. package/dist/BaseInput.d.ts +0 -12
  16. package/dist/BaseInput.js +0 -13
  17. package/dist/BaseInput.js.map +0 -1
  18. package/dist/Context.cjs +0 -49
  19. package/dist/Context.cjs.map +0 -1
  20. package/dist/Context.d.ts +0 -19
  21. package/dist/Context.js +0 -49
  22. package/dist/Context.js.map +0 -1
  23. package/dist/Controller/BigInt.cjs +0 -10
  24. package/dist/Controller/BigInt.cjs.map +0 -1
  25. package/dist/Controller/BigInt.css +0 -183
  26. package/dist/Controller/BigInt.css.map +0 -1
  27. package/dist/Controller/BigInt.d.ts +0 -8
  28. package/dist/Controller/BigInt.js +0 -10
  29. package/dist/Controller/BigInt.js.map +0 -1
  30. package/dist/Controller/Boolean.cjs +0 -9
  31. package/dist/Controller/Boolean.cjs.map +0 -1
  32. package/dist/Controller/Boolean.css +0 -183
  33. package/dist/Controller/Boolean.css.map +0 -1
  34. package/dist/Controller/Boolean.d.ts +0 -8
  35. package/dist/Controller/Boolean.js +0 -9
  36. package/dist/Controller/Boolean.js.map +0 -1
  37. package/dist/Controller/Bytes.cjs +0 -9
  38. package/dist/Controller/Bytes.cjs.map +0 -1
  39. package/dist/Controller/Bytes.css +0 -191
  40. package/dist/Controller/Bytes.css.map +0 -1
  41. package/dist/Controller/Bytes.d.ts +0 -8
  42. package/dist/Controller/Bytes.js +0 -9
  43. package/dist/Controller/Bytes.js.map +0 -1
  44. package/dist/Controller/Color.cjs +0 -10
  45. package/dist/Controller/Color.cjs.map +0 -1
  46. package/dist/Controller/Color.css +0 -227
  47. package/dist/Controller/Color.css.map +0 -1
  48. package/dist/Controller/Color.d.ts +0 -8
  49. package/dist/Controller/Color.js +0 -10
  50. package/dist/Controller/Color.js.map +0 -1
  51. package/dist/Controller/Controller.cjs +0 -14
  52. package/dist/Controller/Controller.cjs.map +0 -1
  53. package/dist/Controller/Controller.css +0 -183
  54. package/dist/Controller/Controller.css.map +0 -1
  55. package/dist/Controller/Controller.d.ts +0 -41
  56. package/dist/Controller/Controller.js +0 -14
  57. package/dist/Controller/Controller.js.map +0 -1
  58. package/dist/Controller/Invalid.cjs +0 -7
  59. package/dist/Controller/Invalid.cjs.map +0 -1
  60. package/dist/Controller/Invalid.css +0 -48
  61. package/dist/Controller/Invalid.css.map +0 -1
  62. package/dist/Controller/Invalid.d.ts +0 -11
  63. package/dist/Controller/Invalid.js +0 -7
  64. package/dist/Controller/Invalid.js.map +0 -1
  65. package/dist/Controller/Number.cjs +0 -9
  66. package/dist/Controller/Number.cjs.map +0 -1
  67. package/dist/Controller/Number.css +0 -183
  68. package/dist/Controller/Number.css.map +0 -1
  69. package/dist/Controller/Number.d.ts +0 -8
  70. package/dist/Controller/Number.js +0 -9
  71. package/dist/Controller/Number.js.map +0 -1
  72. package/dist/Controller/Param.cjs +0 -21
  73. package/dist/Controller/Param.cjs.map +0 -1
  74. package/dist/Controller/Param.css +0 -283
  75. package/dist/Controller/Param.css.map +0 -1
  76. package/dist/Controller/Param.d.ts +0 -25
  77. package/dist/Controller/Param.js +0 -21
  78. package/dist/Controller/Param.js.map +0 -1
  79. package/dist/Controller/Select.cjs +0 -9
  80. package/dist/Controller/Select.cjs.map +0 -1
  81. package/dist/Controller/Select.css +0 -183
  82. package/dist/Controller/Select.css.map +0 -1
  83. package/dist/Controller/Select.d.ts +0 -8
  84. package/dist/Controller/Select.js +0 -9
  85. package/dist/Controller/Select.js.map +0 -1
  86. package/dist/Controller/String.cjs +0 -9
  87. package/dist/Controller/String.cjs.map +0 -1
  88. package/dist/Controller/String.css +0 -183
  89. package/dist/Controller/String.css.map +0 -1
  90. package/dist/Controller/String.d.ts +0 -8
  91. package/dist/Controller/String.js +0 -9
  92. package/dist/Controller/String.js.map +0 -1
  93. package/dist/Controls.cjs +0 -102
  94. package/dist/Controls.cjs.map +0 -1
  95. package/dist/Controls.css +0 -304
  96. package/dist/Controls.css.map +0 -1
  97. package/dist/Controls.d.ts +0 -17
  98. package/dist/Controls.js +0 -102
  99. package/dist/Controls.js.map +0 -1
  100. package/dist/LockButton/LockButton.cjs +0 -8
  101. package/dist/LockButton/LockButton.cjs.map +0 -1
  102. package/dist/LockButton/LockButton.css +0 -117
  103. package/dist/LockButton/LockButton.css.map +0 -1
  104. package/dist/LockButton/LockButton.d.ts +0 -11
  105. package/dist/LockButton/LockButton.js +0 -8
  106. package/dist/LockButton/LockButton.js.map +0 -1
  107. package/dist/ParamsHistory.cjs +0 -89
  108. package/dist/ParamsHistory.cjs.map +0 -1
  109. package/dist/ParamsHistory.d.ts +0 -22
  110. package/dist/ParamsHistory.js +0 -89
  111. package/dist/ParamsHistory.js.map +0 -1
  112. package/dist/RuntimeContext.cjs +0 -10
  113. package/dist/RuntimeContext.cjs.map +0 -1
  114. package/dist/RuntimeContext.d.ts +0 -44
  115. package/dist/RuntimeContext.js +0 -10
  116. package/dist/RuntimeContext.js.map +0 -1
  117. package/dist/chunk-2SARESCF.js +0 -135
  118. package/dist/chunk-2SARESCF.js.map +0 -1
  119. package/dist/chunk-2XWOWIXK.cjs +0 -23
  120. package/dist/chunk-2XWOWIXK.cjs.map +0 -1
  121. package/dist/chunk-3OF5LR4Y.cjs +0 -110
  122. package/dist/chunk-3OF5LR4Y.cjs.map +0 -1
  123. package/dist/chunk-3QFEC7SK.cjs +0 -39
  124. package/dist/chunk-3QFEC7SK.cjs.map +0 -1
  125. package/dist/chunk-4OKETOHR.js +0 -120
  126. package/dist/chunk-4OKETOHR.js.map +0 -1
  127. package/dist/chunk-7H32FZ35.js.map +0 -1
  128. package/dist/chunk-AMJCUB2I.cjs +0 -46
  129. package/dist/chunk-AMJCUB2I.cjs.map +0 -1
  130. package/dist/chunk-BEDRMOBJ.js +0 -43
  131. package/dist/chunk-BEDRMOBJ.js.map +0 -1
  132. package/dist/chunk-CVLSVTCX.cjs +0 -43
  133. package/dist/chunk-CVLSVTCX.cjs.map +0 -1
  134. package/dist/chunk-EACKNC6C.cjs +0 -103
  135. package/dist/chunk-EACKNC6C.cjs.map +0 -1
  136. package/dist/chunk-GDSG5VLX.js +0 -67
  137. package/dist/chunk-GDSG5VLX.js.map +0 -1
  138. package/dist/chunk-GXCX5YCI.js +0 -46
  139. package/dist/chunk-GXCX5YCI.js.map +0 -1
  140. package/dist/chunk-HIC6NEI2.js +0 -39
  141. package/dist/chunk-HIC6NEI2.js.map +0 -1
  142. package/dist/chunk-JSFJKANM.js +0 -115
  143. package/dist/chunk-JSFJKANM.js.map +0 -1
  144. package/dist/chunk-K22KNCGR.cjs +0 -24
  145. package/dist/chunk-K22KNCGR.cjs.map +0 -1
  146. package/dist/chunk-K6UPSPM5.cjs +0 -115
  147. package/dist/chunk-K6UPSPM5.cjs.map +0 -1
  148. package/dist/chunk-LTIGECX6.cjs +0 -44
  149. package/dist/chunk-LTIGECX6.cjs.map +0 -1
  150. package/dist/chunk-LVN3UGUH.cjs +0 -404
  151. package/dist/chunk-LVN3UGUH.cjs.map +0 -1
  152. package/dist/chunk-M7HJ2CKM.cjs +0 -135
  153. package/dist/chunk-M7HJ2CKM.cjs.map +0 -1
  154. package/dist/chunk-MWP7SJWC.js +0 -103
  155. package/dist/chunk-MWP7SJWC.js.map +0 -1
  156. package/dist/chunk-NBDFYP3Y.js +0 -24
  157. package/dist/chunk-NBDFYP3Y.js.map +0 -1
  158. package/dist/chunk-SOEAQVIE.js +0 -34
  159. package/dist/chunk-SOEAQVIE.js.map +0 -1
  160. package/dist/chunk-TQGOPELV.cjs +0 -67
  161. package/dist/chunk-TQGOPELV.cjs.map +0 -1
  162. package/dist/chunk-WHVPVEYH.cjs +0 -34
  163. package/dist/chunk-WHVPVEYH.cjs.map +0 -1
  164. package/dist/chunk-X4GS3I5P.js +0 -110
  165. package/dist/chunk-X4GS3I5P.js.map +0 -1
  166. package/dist/chunk-XYWE6TCQ.js +0 -37
  167. package/dist/chunk-XYWE6TCQ.js.map +0 -1
  168. package/dist/chunk-YLZI7BR5.cjs +0 -120
  169. package/dist/chunk-YLZI7BR5.cjs.map +0 -1
  170. package/dist/chunk-YNPYJVNU.js +0 -44
  171. package/dist/chunk-YNPYJVNU.js.map +0 -1
  172. package/dist/chunk-Z5Z6AKH7.cjs +0 -37
  173. package/dist/chunk-Z5Z6AKH7.cjs.map +0 -1
  174. package/dist/chunk-ZALRIFOG.js +0 -23
  175. package/dist/chunk-ZALRIFOG.js.map +0 -1
  176. package/dist/hooks.cjs +0 -29
  177. package/dist/hooks.cjs.map +0 -1
  178. package/dist/hooks.d.ts +0 -6
  179. package/dist/hooks.js +0 -29
  180. package/dist/hooks.js.map +0 -1
  181. package/dist/index.cjs +0 -7
  182. package/dist/index.cjs.map +0 -1
  183. package/dist/index.css +0 -112
  184. package/dist/index.css.map +0 -1
  185. package/dist/types.cjs +0 -1
  186. package/dist/types.cjs.map +0 -1
  187. package/dist/types.d.ts +0 -100
  188. package/dist/types.js +0 -1
  189. package/dist/types.js.map +0 -1
  190. package/dist/utils.cjs +0 -33
  191. package/dist/utils.cjs.map +0 -1
  192. package/dist/validation.cjs +0 -9
  193. package/dist/validation.cjs.map +0 -1
  194. package/dist/validation.d.ts +0 -241
  195. package/dist/validation.js +0 -9
  196. package/dist/validation.js.map +0 -1
@@ -1,115 +0,0 @@
1
- import {
2
- jsonStringifyBigint,
3
- sumBytesParams
4
- } from "./chunk-7H32FZ35.js";
5
-
6
- // src/RuntimeContext.tsx
7
- import { useMemo, useState } from "react";
8
- import { createContext } from "react";
9
- import sha1 from "sha1";
10
- import { jsx } from "react/jsx-runtime";
11
- function hashRuntimeState(state) {
12
- return sha1(jsonStringifyBigint(state));
13
- }
14
- function hashRuntimeHardState(state, definition) {
15
- const staticParams = {};
16
- for (const id in state.params) {
17
- const def = definition?.find((def2) => def2.id === id);
18
- if (!def || !def.update || def.update === "page-reload") {
19
- staticParams[id] = state.params[id];
20
- }
21
- }
22
- return hashRuntimeState({
23
- ...state,
24
- params: staticParams
25
- });
26
- }
27
- var defaultRuntimeContext = {
28
- state: {
29
- hash: "",
30
- minter: "",
31
- params: {},
32
- update: () => {
33
- },
34
- iteration: 1,
35
- context: "standalone"
36
- },
37
- definition: {
38
- params: null,
39
- version: null,
40
- update: () => {
41
- }
42
- },
43
- details: {
44
- paramsByteSize: 0,
45
- stateHash: {
46
- soft: "",
47
- hard: ""
48
- }
49
- }
50
- };
51
- var RuntimeContext = createContext(defaultRuntimeContext);
52
- function RuntimeProvider({ children }) {
53
- const [state, setState] = useState({
54
- hash: "",
55
- minter: "",
56
- params: {},
57
- iteration: 1,
58
- context: new URLSearchParams(window.location.search).get(
59
- "fxcontext"
60
- ) || "standalone"
61
- });
62
- const [definition, setDefinition] = useState({
63
- params: null,
64
- version: null
65
- });
66
- const update = (data) => {
67
- setState((lastState) => ({
68
- ...lastState,
69
- ...data
70
- }));
71
- };
72
- const updateDefinition = (data) => {
73
- setDefinition((lastDefinition) => ({
74
- ...lastDefinition,
75
- ...data
76
- }));
77
- };
78
- const definitionEnhanced = useMemo(
79
- () => ({
80
- ...definition,
81
- params: definition.params?.map((p) => ({
82
- ...p,
83
- version: definition.version || "0"
84
- })) || null
85
- }),
86
- [definition]
87
- );
88
- const ctx = {
89
- state: {
90
- ...state,
91
- update
92
- },
93
- definition: {
94
- ...definitionEnhanced,
95
- update: updateDefinition
96
- },
97
- details: useMemo(
98
- () => ({
99
- paramsByteSize: sumBytesParams(definition.params || []),
100
- stateHash: {
101
- soft: hashRuntimeState(state),
102
- hard: hashRuntimeHardState(state, definition.params)
103
- }
104
- }),
105
- [state, definition.params]
106
- )
107
- };
108
- return /* @__PURE__ */ jsx(RuntimeContext.Provider, { value: ctx, children });
109
- }
110
-
111
- export {
112
- RuntimeContext,
113
- RuntimeProvider
114
- };
115
- //# sourceMappingURL=chunk-JSFJKANM.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/RuntimeContext.tsx"],"sourcesContent":["import { FxParamDefinition, FxParamType, FxParamsData } from \"types\"\nimport { PropsWithChildren, useMemo, useState } from \"react\"\nimport { createContext } from \"react\"\nimport sha1 from \"sha1\"\nimport { jsonStringifyBigint, sumBytesParams } from \"utils\"\n\nexport type TUpdateStateFn<T> = (data: Partial<T>) => void\n\nexport type TUpdateableState<T> = T & {\n update: TUpdateStateFn<T>\n}\n/**\n * The Runtime Context is responsible for managing the state of a project ran\n * in a frame. It centralizes any source of data to derive the project and\n * facilitate their manipulation from the outside.\n *\n * See comments on IRuntimeContext for more details.\n */\n\nexport type TExecutionContext = \"minting\" | \"standalone\" | \"capture\"\n\nexport interface RuntimeState {\n hash: string\n minter: string\n params: FxParamsData\n iteration: number\n context: TExecutionContext\n}\n\nexport interface RuntimeDefinition {\n params: FxParamDefinition<FxParamType>[] | null\n version: string | null\n}\n\n/**\n * Hashes a runtime state using sha1\n */\nfunction hashRuntimeState(state: RuntimeState): string {\n return sha1(jsonStringifyBigint(state))\n}\n\n/**\n * Hashes the hard-refresh properties of a runtime state:\n * - hash\n * - minter address\n * - params in update mode \"page-reload\"\n */\nfunction hashRuntimeHardState(\n state: RuntimeState,\n definition: FxParamDefinition<FxParamType>[] | null\n): string {\n const staticParams: FxParamsData = {}\n for (const id in state.params) {\n const def = definition?.find(def => def.id === id)\n // if no definition, or update == \"page-reload\" (which is default value)\n if (!def || !def.update || def.update === \"page-reload\") {\n staticParams[id] = state.params[id]\n }\n }\n return hashRuntimeState({\n ...state,\n params: staticParams,\n })\n}\n\nexport interface IRuntimeContext {\n // the base state of the runtime\n state: TUpdateableState<RuntimeState>\n // definitions, used to manipulate the state\n definition: TUpdateableState<RuntimeDefinition>\n // extra details derived from the state & definition\n details: {\n paramsByteSize: number\n stateHash: {\n soft: string\n hard: string\n }\n }\n}\n\nconst defaultRuntimeContext: IRuntimeContext = {\n state: {\n hash: \"\",\n minter: \"\",\n params: {},\n update: () => {},\n iteration: 1,\n context: \"standalone\",\n },\n definition: {\n params: null,\n version: null,\n update: () => {},\n },\n details: {\n paramsByteSize: 0,\n stateHash: {\n soft: \"\",\n hard: \"\",\n },\n },\n}\n\nexport const RuntimeContext = createContext(defaultRuntimeContext)\n\ntype Props = PropsWithChildren<any>\nexport function RuntimeProvider({ children }: Props) {\n const [state, setState] = useState<RuntimeState>({\n hash: \"\",\n minter: \"\",\n params: {},\n iteration: 1,\n context:\n (new URLSearchParams(window.location.search).get(\n \"fxcontext\"\n ) as TExecutionContext) || \"standalone\",\n })\n const [definition, setDefinition] = useState<RuntimeDefinition>({\n params: null,\n version: null,\n })\n\n const update: TUpdateStateFn<RuntimeState> = data => {\n setState(lastState => ({\n ...lastState,\n ...data,\n }))\n }\n\n const updateDefinition: TUpdateStateFn<RuntimeDefinition> = data => {\n setDefinition(lastDefinition => ({\n ...lastDefinition,\n ...data,\n }))\n }\n\n // enhance each param definition with the version (useful for serialization)\n const definitionEnhanced = useMemo(\n () => ({\n ...definition,\n params:\n definition.params?.map((p: FxParamDefinition<FxParamType>) => ({\n ...p,\n version: definition.version || \"0\",\n })) || null,\n }),\n [definition]\n )\n\n const ctx: IRuntimeContext = {\n state: {\n ...state,\n update,\n },\n definition: {\n ...definitionEnhanced,\n update: updateDefinition,\n },\n details: useMemo(\n () => ({\n paramsByteSize: sumBytesParams(definition.params || []),\n stateHash: {\n soft: hashRuntimeState(state),\n hard: hashRuntimeHardState(state, definition.params),\n },\n }),\n [state, definition.params]\n ),\n }\n\n return (\n <RuntimeContext.Provider value={ctx}>{children}</RuntimeContext.Provider>\n )\n}\n"],"mappings":";;;;;;AACA,SAA4B,SAAS,gBAAgB;AACrD,SAAS,qBAAqB;AAC9B,OAAO,UAAU;AAwKb;AAtIJ,SAAS,iBAAiB,OAA6B;AACrD,SAAO,KAAK,oBAAoB,KAAK,CAAC;AACxC;AAQA,SAAS,qBACP,OACA,YACQ;AACR,QAAM,eAA6B,CAAC;AACpC,aAAW,MAAM,MAAM,QAAQ;AAC7B,UAAM,MAAM,YAAY,KAAK,CAAAA,SAAOA,KAAI,OAAO,EAAE;AAEjD,QAAI,CAAC,OAAO,CAAC,IAAI,UAAU,IAAI,WAAW,eAAe;AACvD,mBAAa,EAAE,IAAI,MAAM,OAAO,EAAE;AAAA,IACpC;AAAA,EACF;AACA,SAAO,iBAAiB;AAAA,IACtB,GAAG;AAAA,IACH,QAAQ;AAAA,EACV,CAAC;AACH;AAiBA,IAAM,wBAAyC;AAAA,EAC7C,OAAO;AAAA,IACL,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,QAAQ,CAAC;AAAA,IACT,QAAQ,MAAM;AAAA,IAAC;AAAA,IACf,WAAW;AAAA,IACX,SAAS;AAAA,EACX;AAAA,EACA,YAAY;AAAA,IACV,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,QAAQ,MAAM;AAAA,IAAC;AAAA,EACjB;AAAA,EACA,SAAS;AAAA,IACP,gBAAgB;AAAA,IAChB,WAAW;AAAA,MACT,MAAM;AAAA,MACN,MAAM;AAAA,IACR;AAAA,EACF;AACF;AAEO,IAAM,iBAAiB,cAAc,qBAAqB;AAG1D,SAAS,gBAAgB,EAAE,SAAS,GAAU;AACnD,QAAM,CAAC,OAAO,QAAQ,IAAI,SAAuB;AAAA,IAC/C,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,QAAQ,CAAC;AAAA,IACT,WAAW;AAAA,IACX,SACG,IAAI,gBAAgB,OAAO,SAAS,MAAM,EAAE;AAAA,MAC3C;AAAA,IACF,KAA2B;AAAA,EAC/B,CAAC;AACD,QAAM,CAAC,YAAY,aAAa,IAAI,SAA4B;AAAA,IAC9D,QAAQ;AAAA,IACR,SAAS;AAAA,EACX,CAAC;AAED,QAAM,SAAuC,UAAQ;AACnD,aAAS,gBAAc;AAAA,MACrB,GAAG;AAAA,MACH,GAAG;AAAA,IACL,EAAE;AAAA,EACJ;AAEA,QAAM,mBAAsD,UAAQ;AAClE,kBAAc,qBAAmB;AAAA,MAC/B,GAAG;AAAA,MACH,GAAG;AAAA,IACL,EAAE;AAAA,EACJ;AAGA,QAAM,qBAAqB;AAAA,IACzB,OAAO;AAAA,MACL,GAAG;AAAA,MACH,QACE,WAAW,QAAQ,IAAI,CAAC,OAAuC;AAAA,QAC7D,GAAG;AAAA,QACH,SAAS,WAAW,WAAW;AAAA,MACjC,EAAE,KAAK;AAAA,IACX;AAAA,IACA,CAAC,UAAU;AAAA,EACb;AAEA,QAAM,MAAuB;AAAA,IAC3B,OAAO;AAAA,MACL,GAAG;AAAA,MACH;AAAA,IACF;AAAA,IACA,YAAY;AAAA,MACV,GAAG;AAAA,MACH,QAAQ;AAAA,IACV;AAAA,IACA,SAAS;AAAA,MACP,OAAO;AAAA,QACL,gBAAgB,eAAe,WAAW,UAAU,CAAC,CAAC;AAAA,QACtD,WAAW;AAAA,UACT,MAAM,iBAAiB,KAAK;AAAA,UAC5B,MAAM,qBAAqB,OAAO,WAAW,MAAM;AAAA,QACrD;AAAA,MACF;AAAA,MACA,CAAC,OAAO,WAAW,MAAM;AAAA,IAC3B;AAAA,EACF;AAEA,SACE,oBAAC,eAAe,UAAf,EAAwB,OAAO,KAAM,UAAS;AAEnD;","names":["def"]}
@@ -1,24 +0,0 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
2
-
3
- var _chunkM7HJ2CKMcjs = require('./chunk-M7HJ2CKM.cjs');
4
-
5
- // src/Controller/String.tsx
6
- var _jsxruntime = require('react/jsx-runtime');
7
- function StringController(props) {
8
- const { options } = props;
9
- const minLength = Number(_optionalChain([options, 'optionalAccess', _ => _.minLength])) || 0;
10
- const maxLength = Number(_optionalChain([options, 'optionalAccess', _2 => _2.maxLength])) || 64;
11
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
12
- _chunkM7HJ2CKMcjs.HTMLInputController,
13
- {
14
- type: "text",
15
- inputProps: { minLength, maxLength },
16
- ...props
17
- }
18
- );
19
- }
20
-
21
-
22
-
23
- exports.StringController = StringController;
24
- //# sourceMappingURL=chunk-K22KNCGR.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/Controller/String.tsx"],"names":[],"mappings":";;;;;AAQI;AANG,SAAS,iBAAiB,OAAyC;AACxE,QAAM,EAAE,QAAQ,IAAI;AACpB,QAAM,YAAY,OAAO,SAAS,SAAS,KAAK;AAChD,QAAM,YAAY,OAAO,SAAS,SAAS,KAAK;AAEhD,SACE;AAAA,IAAC;AAAA;AAAA,MACC,MAAK;AAAA,MACL,YAAY,EAAE,WAAW,UAAU;AAAA,MAClC,GAAG;AAAA;AAAA,EACN;AAEJ","sourcesContent":["import { FxParamControllerProps, HTMLInputController } from \"./Controller\"\n\nexport function StringController(props: FxParamControllerProps<\"string\">) {\n const { options } = props\n const minLength = Number(options?.minLength) || 0\n const maxLength = Number(options?.maxLength) || 64\n\n return (\n <HTMLInputController\n type=\"text\"\n inputProps={{ minLength, maxLength }}\n {...props}\n />\n )\n}\n"]}
@@ -1,115 +0,0 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
2
-
3
-
4
- var _chunkLVN3UGUHcjs = require('./chunk-LVN3UGUH.cjs');
5
-
6
- // src/RuntimeContext.tsx
7
- var _react = require('react');
8
-
9
- var _sha1 = require('sha1'); var _sha12 = _interopRequireDefault(_sha1);
10
- var _jsxruntime = require('react/jsx-runtime');
11
- function hashRuntimeState(state) {
12
- return _sha12.default.call(void 0, _chunkLVN3UGUHcjs.jsonStringifyBigint.call(void 0, state));
13
- }
14
- function hashRuntimeHardState(state, definition) {
15
- const staticParams = {};
16
- for (const id in state.params) {
17
- const def = _optionalChain([definition, 'optionalAccess', _ => _.find, 'call', _2 => _2((def2) => def2.id === id)]);
18
- if (!def || !def.update || def.update === "page-reload") {
19
- staticParams[id] = state.params[id];
20
- }
21
- }
22
- return hashRuntimeState({
23
- ...state,
24
- params: staticParams
25
- });
26
- }
27
- var defaultRuntimeContext = {
28
- state: {
29
- hash: "",
30
- minter: "",
31
- params: {},
32
- update: () => {
33
- },
34
- iteration: 1,
35
- context: "standalone"
36
- },
37
- definition: {
38
- params: null,
39
- version: null,
40
- update: () => {
41
- }
42
- },
43
- details: {
44
- paramsByteSize: 0,
45
- stateHash: {
46
- soft: "",
47
- hard: ""
48
- }
49
- }
50
- };
51
- var RuntimeContext = _react.createContext.call(void 0, defaultRuntimeContext);
52
- function RuntimeProvider({ children }) {
53
- const [state, setState] = _react.useState.call(void 0, {
54
- hash: "",
55
- minter: "",
56
- params: {},
57
- iteration: 1,
58
- context: new URLSearchParams(window.location.search).get(
59
- "fxcontext"
60
- ) || "standalone"
61
- });
62
- const [definition, setDefinition] = _react.useState.call(void 0, {
63
- params: null,
64
- version: null
65
- });
66
- const update = (data) => {
67
- setState((lastState) => ({
68
- ...lastState,
69
- ...data
70
- }));
71
- };
72
- const updateDefinition = (data) => {
73
- setDefinition((lastDefinition) => ({
74
- ...lastDefinition,
75
- ...data
76
- }));
77
- };
78
- const definitionEnhanced = _react.useMemo.call(void 0,
79
- () => ({
80
- ...definition,
81
- params: _optionalChain([definition, 'access', _3 => _3.params, 'optionalAccess', _4 => _4.map, 'call', _5 => _5((p) => ({
82
- ...p,
83
- version: definition.version || "0"
84
- }))]) || null
85
- }),
86
- [definition]
87
- );
88
- const ctx = {
89
- state: {
90
- ...state,
91
- update
92
- },
93
- definition: {
94
- ...definitionEnhanced,
95
- update: updateDefinition
96
- },
97
- details: _react.useMemo.call(void 0,
98
- () => ({
99
- paramsByteSize: _chunkLVN3UGUHcjs.sumBytesParams.call(void 0, definition.params || []),
100
- stateHash: {
101
- soft: hashRuntimeState(state),
102
- hard: hashRuntimeHardState(state, definition.params)
103
- }
104
- }),
105
- [state, definition.params]
106
- )
107
- };
108
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, RuntimeContext.Provider, { value: ctx, children });
109
- }
110
-
111
-
112
-
113
-
114
- exports.RuntimeContext = RuntimeContext; exports.RuntimeProvider = RuntimeProvider;
115
- //# sourceMappingURL=chunk-K6UPSPM5.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/RuntimeContext.tsx"],"names":["def"],"mappings":";;;;;;AACA,SAA4B,SAAS,gBAAgB;AACrD,SAAS,qBAAqB;AAC9B,OAAO,UAAU;AAwKb;AAtIJ,SAAS,iBAAiB,OAA6B;AACrD,SAAO,KAAK,oBAAoB,KAAK,CAAC;AACxC;AAQA,SAAS,qBACP,OACA,YACQ;AACR,QAAM,eAA6B,CAAC;AACpC,aAAW,MAAM,MAAM,QAAQ;AAC7B,UAAM,MAAM,YAAY,KAAK,CAAAA,SAAOA,KAAI,OAAO,EAAE;AAEjD,QAAI,CAAC,OAAO,CAAC,IAAI,UAAU,IAAI,WAAW,eAAe;AACvD,mBAAa,EAAE,IAAI,MAAM,OAAO,EAAE;AAAA,IACpC;AAAA,EACF;AACA,SAAO,iBAAiB;AAAA,IACtB,GAAG;AAAA,IACH,QAAQ;AAAA,EACV,CAAC;AACH;AAiBA,IAAM,wBAAyC;AAAA,EAC7C,OAAO;AAAA,IACL,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,QAAQ,CAAC;AAAA,IACT,QAAQ,MAAM;AAAA,IAAC;AAAA,IACf,WAAW;AAAA,IACX,SAAS;AAAA,EACX;AAAA,EACA,YAAY;AAAA,IACV,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,QAAQ,MAAM;AAAA,IAAC;AAAA,EACjB;AAAA,EACA,SAAS;AAAA,IACP,gBAAgB;AAAA,IAChB,WAAW;AAAA,MACT,MAAM;AAAA,MACN,MAAM;AAAA,IACR;AAAA,EACF;AACF;AAEO,IAAM,iBAAiB,cAAc,qBAAqB;AAG1D,SAAS,gBAAgB,EAAE,SAAS,GAAU;AACnD,QAAM,CAAC,OAAO,QAAQ,IAAI,SAAuB;AAAA,IAC/C,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,QAAQ,CAAC;AAAA,IACT,WAAW;AAAA,IACX,SACG,IAAI,gBAAgB,OAAO,SAAS,MAAM,EAAE;AAAA,MAC3C;AAAA,IACF,KAA2B;AAAA,EAC/B,CAAC;AACD,QAAM,CAAC,YAAY,aAAa,IAAI,SAA4B;AAAA,IAC9D,QAAQ;AAAA,IACR,SAAS;AAAA,EACX,CAAC;AAED,QAAM,SAAuC,UAAQ;AACnD,aAAS,gBAAc;AAAA,MACrB,GAAG;AAAA,MACH,GAAG;AAAA,IACL,EAAE;AAAA,EACJ;AAEA,QAAM,mBAAsD,UAAQ;AAClE,kBAAc,qBAAmB;AAAA,MAC/B,GAAG;AAAA,MACH,GAAG;AAAA,IACL,EAAE;AAAA,EACJ;AAGA,QAAM,qBAAqB;AAAA,IACzB,OAAO;AAAA,MACL,GAAG;AAAA,MACH,QACE,WAAW,QAAQ,IAAI,CAAC,OAAuC;AAAA,QAC7D,GAAG;AAAA,QACH,SAAS,WAAW,WAAW;AAAA,MACjC,EAAE,KAAK;AAAA,IACX;AAAA,IACA,CAAC,UAAU;AAAA,EACb;AAEA,QAAM,MAAuB;AAAA,IAC3B,OAAO;AAAA,MACL,GAAG;AAAA,MACH;AAAA,IACF;AAAA,IACA,YAAY;AAAA,MACV,GAAG;AAAA,MACH,QAAQ;AAAA,IACV;AAAA,IACA,SAAS;AAAA,MACP,OAAO;AAAA,QACL,gBAAgB,eAAe,WAAW,UAAU,CAAC,CAAC;AAAA,QACtD,WAAW;AAAA,UACT,MAAM,iBAAiB,KAAK;AAAA,UAC5B,MAAM,qBAAqB,OAAO,WAAW,MAAM;AAAA,QACrD;AAAA,MACF;AAAA,MACA,CAAC,OAAO,WAAW,MAAM;AAAA,IAC3B;AAAA,EACF;AAEA,SACE,oBAAC,eAAe,UAAf,EAAwB,OAAO,KAAM,UAAS;AAEnD","sourcesContent":["import { FxParamDefinition, FxParamType, FxParamsData } from \"types\"\nimport { PropsWithChildren, useMemo, useState } from \"react\"\nimport { createContext } from \"react\"\nimport sha1 from \"sha1\"\nimport { jsonStringifyBigint, sumBytesParams } from \"utils\"\n\nexport type TUpdateStateFn<T> = (data: Partial<T>) => void\n\nexport type TUpdateableState<T> = T & {\n update: TUpdateStateFn<T>\n}\n/**\n * The Runtime Context is responsible for managing the state of a project ran\n * in a frame. It centralizes any source of data to derive the project and\n * facilitate their manipulation from the outside.\n *\n * See comments on IRuntimeContext for more details.\n */\n\nexport type TExecutionContext = \"minting\" | \"standalone\" | \"capture\"\n\nexport interface RuntimeState {\n hash: string\n minter: string\n params: FxParamsData\n iteration: number\n context: TExecutionContext\n}\n\nexport interface RuntimeDefinition {\n params: FxParamDefinition<FxParamType>[] | null\n version: string | null\n}\n\n/**\n * Hashes a runtime state using sha1\n */\nfunction hashRuntimeState(state: RuntimeState): string {\n return sha1(jsonStringifyBigint(state))\n}\n\n/**\n * Hashes the hard-refresh properties of a runtime state:\n * - hash\n * - minter address\n * - params in update mode \"page-reload\"\n */\nfunction hashRuntimeHardState(\n state: RuntimeState,\n definition: FxParamDefinition<FxParamType>[] | null\n): string {\n const staticParams: FxParamsData = {}\n for (const id in state.params) {\n const def = definition?.find(def => def.id === id)\n // if no definition, or update == \"page-reload\" (which is default value)\n if (!def || !def.update || def.update === \"page-reload\") {\n staticParams[id] = state.params[id]\n }\n }\n return hashRuntimeState({\n ...state,\n params: staticParams,\n })\n}\n\nexport interface IRuntimeContext {\n // the base state of the runtime\n state: TUpdateableState<RuntimeState>\n // definitions, used to manipulate the state\n definition: TUpdateableState<RuntimeDefinition>\n // extra details derived from the state & definition\n details: {\n paramsByteSize: number\n stateHash: {\n soft: string\n hard: string\n }\n }\n}\n\nconst defaultRuntimeContext: IRuntimeContext = {\n state: {\n hash: \"\",\n minter: \"\",\n params: {},\n update: () => {},\n iteration: 1,\n context: \"standalone\",\n },\n definition: {\n params: null,\n version: null,\n update: () => {},\n },\n details: {\n paramsByteSize: 0,\n stateHash: {\n soft: \"\",\n hard: \"\",\n },\n },\n}\n\nexport const RuntimeContext = createContext(defaultRuntimeContext)\n\ntype Props = PropsWithChildren<any>\nexport function RuntimeProvider({ children }: Props) {\n const [state, setState] = useState<RuntimeState>({\n hash: \"\",\n minter: \"\",\n params: {},\n iteration: 1,\n context:\n (new URLSearchParams(window.location.search).get(\n \"fxcontext\"\n ) as TExecutionContext) || \"standalone\",\n })\n const [definition, setDefinition] = useState<RuntimeDefinition>({\n params: null,\n version: null,\n })\n\n const update: TUpdateStateFn<RuntimeState> = data => {\n setState(lastState => ({\n ...lastState,\n ...data,\n }))\n }\n\n const updateDefinition: TUpdateStateFn<RuntimeDefinition> = data => {\n setDefinition(lastDefinition => ({\n ...lastDefinition,\n ...data,\n }))\n }\n\n // enhance each param definition with the version (useful for serialization)\n const definitionEnhanced = useMemo(\n () => ({\n ...definition,\n params:\n definition.params?.map((p: FxParamDefinition<FxParamType>) => ({\n ...p,\n version: definition.version || \"0\",\n })) || null,\n }),\n [definition]\n )\n\n const ctx: IRuntimeContext = {\n state: {\n ...state,\n update,\n },\n definition: {\n ...definitionEnhanced,\n update: updateDefinition,\n },\n details: useMemo(\n () => ({\n paramsByteSize: sumBytesParams(definition.params || []),\n stateHash: {\n soft: hashRuntimeState(state),\n hard: hashRuntimeHardState(state, definition.params),\n },\n }),\n [state, definition.params]\n ),\n }\n\n return (\n <RuntimeContext.Provider value={ctx}>{children}</RuntimeContext.Provider>\n )\n}\n"]}
@@ -1,44 +0,0 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
2
-
3
-
4
- var _chunkM7HJ2CKMcjs = require('./chunk-M7HJ2CKM.cjs');
5
-
6
- // src/Controller/Number.tsx
7
- var _react = require('react');
8
- var _jsxruntime = require('react/jsx-runtime');
9
- function NumberController(props) {
10
- const { options, value, inputProps } = props;
11
- const min = _react.useMemo.call(void 0, () => {
12
- if (typeof _optionalChain([options, 'optionalAccess', _ => _.min]) === "undefined")
13
- return Number.MIN_SAFE_INTEGER;
14
- return options.min;
15
- }, [_optionalChain([options, 'optionalAccess', _2 => _2.min])]);
16
- const max = _react.useMemo.call(void 0, () => {
17
- if (typeof _optionalChain([options, 'optionalAccess', _3 => _3.max]) === "undefined")
18
- return Number.MAX_SAFE_INTEGER;
19
- return options.max;
20
- }, [_optionalChain([options, 'optionalAccess', _4 => _4.max])]);
21
- const step = _optionalChain([options, 'optionalAccess', _5 => _5.step]) || 1;
22
- const stringValue = `${value}`;
23
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
24
- _chunkM7HJ2CKMcjs.HTMLInputControllerWithTextInput,
25
- {
26
- type: "range",
27
- inputProps: { min, max, step },
28
- textInputProps: {
29
- type: "number",
30
- min,
31
- max,
32
- step,
33
- className: _chunkM7HJ2CKMcjs.Controller_module_default.numberInput
34
- },
35
- ...props,
36
- value: stringValue
37
- }
38
- );
39
- }
40
-
41
-
42
-
43
- exports.NumberController = NumberController;
44
- //# sourceMappingURL=chunk-LTIGECX6.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/Controller/Number.tsx"],"names":[],"mappings":";;;;;;AAKA,SAAS,eAAe;AAepB;AAbG,SAAS,iBAAiB,OAAyC;AACxE,QAAM,EAAE,SAAS,OAAO,WAAW,IAAI;AACvC,QAAM,MAAM,QAAQ,MAAM;AACxB,QAAI,OAAO,SAAS,QAAQ;AAAa,aAAO,OAAO;AACvD,WAAO,QAAQ;AAAA,EACjB,GAAG,CAAC,SAAS,GAAG,CAAC;AACjB,QAAM,MAAM,QAAQ,MAAM;AACxB,QAAI,OAAO,SAAS,QAAQ;AAAa,aAAO,OAAO;AACvD,WAAO,QAAQ;AAAA,EACjB,GAAG,CAAC,SAAS,GAAG,CAAC;AACjB,QAAM,OAAO,SAAS,QAAQ;AAC9B,QAAM,cAAc,GAAG;AACvB,SACE;AAAA,IAAC;AAAA;AAAA,MACC,MAAK;AAAA,MACL,YAAY,EAAE,KAAK,KAAK,KAAK;AAAA,MAC7B,gBAAgB;AAAA,QACd,MAAM;AAAA,QACN;AAAA,QACA;AAAA,QACA;AAAA,QACA,WAAW,0BAAQ;AAAA,MACrB;AAAA,MACC,GAAG;AAAA,MACJ,OAAO;AAAA;AAAA,EACT;AAEJ","sourcesContent":["import {\n FxParamControllerProps,\n HTMLInputControllerWithTextInput,\n} from \"./Controller\"\nimport classes from \"./Controller.module.scss\"\nimport { useMemo } from \"react\"\n\nexport function NumberController(props: FxParamControllerProps<\"number\">) {\n const { options, value, inputProps } = props\n const min = useMemo(() => {\n if (typeof options?.min === \"undefined\") return Number.MIN_SAFE_INTEGER\n return options.min\n }, [options?.min])\n const max = useMemo(() => {\n if (typeof options?.max === \"undefined\") return Number.MAX_SAFE_INTEGER\n return options.max\n }, [options?.max])\n const step = options?.step || 1\n const stringValue = `${value}`\n return (\n <HTMLInputControllerWithTextInput\n type=\"range\"\n inputProps={{ min, max, step }}\n textInputProps={{\n type: \"number\",\n min,\n max,\n step,\n className: classes.numberInput,\n }}\n {...props}\n value={stringValue}\n />\n )\n}\n"]}