@objectid/oid-provider 1.0.6

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 (189) hide show
  1. package/README.md +67 -0
  2. package/dist/api.d.ts +30 -0
  3. package/dist/api.d.ts.map +1 -0
  4. package/dist/api.js +41 -0
  5. package/dist/api.js.map +1 -0
  6. package/dist/env.d.ts +28 -0
  7. package/dist/env.d.ts.map +1 -0
  8. package/dist/env.js +114 -0
  9. package/dist/env.js.map +1 -0
  10. package/dist/index.d.ts +11 -0
  11. package/dist/index.d.ts.map +1 -0
  12. package/dist/index.js +12 -0
  13. package/dist/index.js.map +1 -0
  14. package/dist/methods/component.d.ts +18 -0
  15. package/dist/methods/component.d.ts.map +1 -0
  16. package/dist/methods/component.js +58 -0
  17. package/dist/methods/component.js.map +1 -0
  18. package/dist/methods/counter.d.ts +43 -0
  19. package/dist/methods/counter.d.ts.map +1 -0
  20. package/dist/methods/counter.js +144 -0
  21. package/dist/methods/counter.js.map +1 -0
  22. package/dist/methods/document.d.ts +90 -0
  23. package/dist/methods/document.d.ts.map +1 -0
  24. package/dist/methods/document.js +332 -0
  25. package/dist/methods/document.js.map +1 -0
  26. package/dist/methods/event.d.ts +26 -0
  27. package/dist/methods/event.d.ts.map +1 -0
  28. package/dist/methods/event.js +107 -0
  29. package/dist/methods/event.js.map +1 -0
  30. package/dist/methods/index.d.ts +7 -0
  31. package/dist/methods/index.d.ts.map +1 -0
  32. package/dist/methods/index.js +7 -0
  33. package/dist/methods/index.js.map +1 -0
  34. package/dist/methods/object.d.ts +74 -0
  35. package/dist/methods/object.d.ts.map +1 -0
  36. package/dist/methods/object.js +293 -0
  37. package/dist/methods/object.js.map +1 -0
  38. package/dist/methods/objectMessages.d.ts +30 -0
  39. package/dist/methods/objectMessages.d.ts.map +1 -0
  40. package/dist/methods/objectMessages.js +144 -0
  41. package/dist/methods/objectMessages.js.map +1 -0
  42. package/dist/methods.d.ts +2 -0
  43. package/dist/methods.d.ts.map +1 -0
  44. package/dist/methods.js +2 -0
  45. package/dist/methods.js.map +1 -0
  46. package/dist/oid/caps.d.ts +8 -0
  47. package/dist/oid/caps.d.ts.map +1 -0
  48. package/dist/oid/caps.js +61 -0
  49. package/dist/oid/caps.js.map +1 -0
  50. package/dist/oid/credit.d.ts +7 -0
  51. package/dist/oid/credit.d.ts.map +1 -0
  52. package/dist/oid/credit.js +48 -0
  53. package/dist/oid/credit.js.map +1 -0
  54. package/dist/oid/graphql.d.ts +4 -0
  55. package/dist/oid/graphql.d.ts.map +1 -0
  56. package/dist/oid/graphql.js +69 -0
  57. package/dist/oid/graphql.js.map +1 -0
  58. package/dist/oid/index.d.ts +92 -0
  59. package/dist/oid/index.d.ts.map +1 -0
  60. package/dist/oid/index.js +378 -0
  61. package/dist/oid/index.js.map +1 -0
  62. package/dist/oid/ownedObjects.d.ts +9 -0
  63. package/dist/oid/ownedObjects.d.ts.map +1 -0
  64. package/dist/oid/ownedObjects.js +38 -0
  65. package/dist/oid/ownedObjects.js.map +1 -0
  66. package/dist/onchain/config.d.ts +37 -0
  67. package/dist/onchain/config.d.ts.map +1 -0
  68. package/dist/onchain/config.js +109 -0
  69. package/dist/onchain/config.js.map +1 -0
  70. package/dist/onchain/defaults.d.ts +13 -0
  71. package/dist/onchain/defaults.d.ts.map +1 -0
  72. package/dist/onchain/defaults.js +17 -0
  73. package/dist/onchain/defaults.js.map +1 -0
  74. package/dist/onchain/getObjects.d.ts +17 -0
  75. package/dist/onchain/getObjects.d.ts.map +1 -0
  76. package/dist/onchain/getObjects.js +112 -0
  77. package/dist/onchain/getObjects.js.map +1 -0
  78. package/dist/onchain/identity.d.ts +2 -0
  79. package/dist/onchain/identity.d.ts.map +1 -0
  80. package/dist/onchain/identity.js +9 -0
  81. package/dist/onchain/identity.js.map +1 -0
  82. package/dist/react/ObjectIdProvider.d.ts +53 -0
  83. package/dist/react/ObjectIdProvider.d.ts.map +1 -0
  84. package/dist/react/ObjectIdProvider.js +431 -0
  85. package/dist/react/ObjectIdProvider.js.map +1 -0
  86. package/dist/react/index.d.ts +4 -0
  87. package/dist/react/index.d.ts.map +1 -0
  88. package/dist/react/index.js +3 -0
  89. package/dist/react/index.js.map +1 -0
  90. package/dist/types/documentData.d.ts +25 -0
  91. package/dist/types/documentData.d.ts.map +1 -0
  92. package/dist/types/documentData.js +2 -0
  93. package/dist/types/documentData.js.map +1 -0
  94. package/dist/types/objectData.d.ts +24 -0
  95. package/dist/types/objectData.d.ts.map +1 -0
  96. package/dist/types/objectData.js +2 -0
  97. package/dist/types/objectData.js.map +1 -0
  98. package/dist/types/types.d.ts +65 -0
  99. package/dist/types/types.d.ts.map +1 -0
  100. package/dist/types/types.js +2 -0
  101. package/dist/types/types.js.map +1 -0
  102. package/dist/utils/geolocation.d.ts +1 -0
  103. package/dist/utils/geolocation.d.ts.map +1 -0
  104. package/dist/utils/geolocation.js +2 -0
  105. package/dist/utils/geolocation.js.map +1 -0
  106. package/dist/utils/getObject.d.ts +3 -0
  107. package/dist/utils/getObject.d.ts.map +1 -0
  108. package/dist/utils/getObject.js +18 -0
  109. package/dist/utils/getObject.js.map +1 -0
  110. package/dist/utils/getObjectData.d.ts +4 -0
  111. package/dist/utils/getObjectData.d.ts.map +1 -0
  112. package/dist/utils/getObjectData.js +26 -0
  113. package/dist/utils/getObjectData.js.map +1 -0
  114. package/dist/utils/graphql.d.ts +3 -0
  115. package/dist/utils/graphql.d.ts.map +1 -0
  116. package/dist/utils/graphql.js +35 -0
  117. package/dist/utils/graphql.js.map +1 -0
  118. package/dist/utils/tx.d.ts +21 -0
  119. package/dist/utils/tx.d.ts.map +1 -0
  120. package/dist/utils/tx.js +125 -0
  121. package/dist/utils/tx.js.map +1 -0
  122. package/dist/utils/url.d.ts +10 -0
  123. package/dist/utils/url.d.ts.map +1 -0
  124. package/dist/utils/url.js +24 -0
  125. package/dist/utils/url.js.map +1 -0
  126. package/dist-cjs/api.js +44 -0
  127. package/dist-cjs/api.js.map +1 -0
  128. package/dist-cjs/env.js +118 -0
  129. package/dist-cjs/env.js.map +1 -0
  130. package/dist-cjs/index.js +44 -0
  131. package/dist-cjs/index.js.map +1 -0
  132. package/dist-cjs/methods/component.js +62 -0
  133. package/dist-cjs/methods/component.js.map +1 -0
  134. package/dist-cjs/methods/counter.js +151 -0
  135. package/dist-cjs/methods/counter.js.map +1 -0
  136. package/dist-cjs/methods/document.js +348 -0
  137. package/dist-cjs/methods/document.js.map +1 -0
  138. package/dist-cjs/methods/event.js +112 -0
  139. package/dist-cjs/methods/event.js.map +1 -0
  140. package/dist-cjs/methods/index.js +23 -0
  141. package/dist-cjs/methods/index.js.map +1 -0
  142. package/dist-cjs/methods/object.js +305 -0
  143. package/dist-cjs/methods/object.js.map +1 -0
  144. package/dist-cjs/methods/objectMessages.js +151 -0
  145. package/dist-cjs/methods/objectMessages.js.map +1 -0
  146. package/dist-cjs/methods.js +18 -0
  147. package/dist-cjs/methods.js.map +1 -0
  148. package/dist-cjs/oid/caps.js +65 -0
  149. package/dist-cjs/oid/caps.js.map +1 -0
  150. package/dist-cjs/oid/credit.js +51 -0
  151. package/dist-cjs/oid/credit.js.map +1 -0
  152. package/dist-cjs/oid/graphql.js +73 -0
  153. package/dist-cjs/oid/graphql.js.map +1 -0
  154. package/dist-cjs/oid/index.js +381 -0
  155. package/dist-cjs/oid/index.js.map +1 -0
  156. package/dist-cjs/oid/ownedObjects.js +41 -0
  157. package/dist-cjs/oid/ownedObjects.js.map +1 -0
  158. package/dist-cjs/onchain/config.js +118 -0
  159. package/dist-cjs/onchain/config.js.map +1 -0
  160. package/dist-cjs/onchain/defaults.js +20 -0
  161. package/dist-cjs/onchain/defaults.js.map +1 -0
  162. package/dist-cjs/onchain/getObjects.js +117 -0
  163. package/dist-cjs/onchain/getObjects.js.map +1 -0
  164. package/dist-cjs/onchain/identity.js +10 -0
  165. package/dist-cjs/onchain/identity.js.map +1 -0
  166. package/dist-cjs/package.json +3 -0
  167. package/dist-cjs/react/ObjectIdProvider.js +437 -0
  168. package/dist-cjs/react/ObjectIdProvider.js.map +1 -0
  169. package/dist-cjs/react/index.js +10 -0
  170. package/dist-cjs/react/index.js.map +1 -0
  171. package/dist-cjs/types/documentData.js +3 -0
  172. package/dist-cjs/types/documentData.js.map +1 -0
  173. package/dist-cjs/types/objectData.js +3 -0
  174. package/dist-cjs/types/objectData.js.map +1 -0
  175. package/dist-cjs/types/types.js +3 -0
  176. package/dist-cjs/types/types.js.map +1 -0
  177. package/dist-cjs/utils/geolocation.js +2 -0
  178. package/dist-cjs/utils/geolocation.js.map +1 -0
  179. package/dist-cjs/utils/getObject.js +21 -0
  180. package/dist-cjs/utils/getObject.js.map +1 -0
  181. package/dist-cjs/utils/getObjectData.js +29 -0
  182. package/dist-cjs/utils/getObjectData.js.map +1 -0
  183. package/dist-cjs/utils/graphql.js +38 -0
  184. package/dist-cjs/utils/graphql.js.map +1 -0
  185. package/dist-cjs/utils/tx.js +128 -0
  186. package/dist-cjs/utils/tx.js.map +1 -0
  187. package/dist-cjs/utils/url.js +27 -0
  188. package/dist-cjs/utils/url.js.map +1 -0
  189. package/package.json +61 -0
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.graphqlAllByType = graphqlAllByType;
4
+ exports.graphqlAllByTypeAndOwner = graphqlAllByTypeAndOwner;
5
+ async function fetchEdges(graphqlProvider, query, variables) {
6
+ const resp = await fetch(graphqlProvider, {
7
+ method: "POST",
8
+ headers: { "content-type": "application/json" },
9
+ body: JSON.stringify({ query, variables }),
10
+ });
11
+ const json = (await resp.json().catch(() => null));
12
+ if (!resp.ok)
13
+ throw Object.assign(new Error(`GraphQL HTTP ${resp.status}`), { status: resp.status, json });
14
+ if (json?.errors)
15
+ throw Object.assign(new Error("GraphQL errors"), { errors: json.errors });
16
+ const page = json?.data?.objects;
17
+ const pageEdges = page?.edges ?? [];
18
+ const hasNext = !!page?.pageInfo?.hasNextPage;
19
+ const endCursor = (page?.pageInfo?.endCursor ?? null);
20
+ return { edges: pageEdges, endCursor, hasNext };
21
+ }
22
+ async function graphqlAll(graphqlProvider, query, makeVariables) {
23
+ const edges = [];
24
+ let after = null;
25
+ for (;;) {
26
+ const page = await fetchEdges(graphqlProvider, query, makeVariables(after));
27
+ if (page.edges.length)
28
+ edges.push(...page.edges);
29
+ if (!page.hasNext || !page.endCursor)
30
+ break;
31
+ after = page.endCursor;
32
+ }
33
+ return edges;
34
+ }
35
+ async function graphqlAllByType(graphqlProvider, type) {
36
+ const query = `
37
+ query ($type: String!, $after: String) {
38
+ objects(filter: { type: $type }, first: 50, after: $after) {
39
+ edges {
40
+ cursor
41
+ node {
42
+ address
43
+ asMoveObject {
44
+ contents { type { repr } data }
45
+ }
46
+ }
47
+ }
48
+ pageInfo { hasNextPage endCursor }
49
+ }
50
+ }
51
+ `;
52
+ return graphqlAll(graphqlProvider, query, (after) => ({ type, after }));
53
+ }
54
+ async function graphqlAllByTypeAndOwner(graphqlProvider, type, owner) {
55
+ const query = `
56
+ query ($type: String!, $after: String, $owner: IotaAddress) {
57
+ objects(filter: { type: $type, owner: $owner }, first: 50, after: $after) {
58
+ edges {
59
+ cursor
60
+ node {
61
+ address
62
+ asMoveObject {
63
+ contents { type { repr } data }
64
+ }
65
+ }
66
+ }
67
+ pageInfo { hasNextPage endCursor }
68
+ }
69
+ }
70
+ `;
71
+ return graphqlAll(graphqlProvider, query, (after) => ({ type, after, owner }));
72
+ }
73
+ //# sourceMappingURL=graphql.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graphql.js","sourceRoot":"","sources":["../../src/oid/graphql.ts"],"names":[],"mappings":";;AA4CA,4CAmBC;AAED,4DAuBC;AAtFD,KAAK,UAAU,UAAU,CACvB,eAAuB,EACvB,KAAa,EACb,SAA8B;IAE9B,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,eAAe,EAAE;QACxC,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;QAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;KAC3C,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAQ,CAAC;IAC1D,IAAI,CAAC,IAAI,CAAC,EAAE;QAAE,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,gBAAgB,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3G,IAAI,IAAI,EAAE,MAAM;QAAE,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IAE5F,MAAM,IAAI,GAAG,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC;IACjC,MAAM,SAAS,GAAI,IAAI,EAAE,KAAkC,IAAI,EAAE,CAAC;IAClE,MAAM,OAAO,GAAG,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,WAAW,CAAC;IAC9C,MAAM,SAAS,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,IAAI,IAAI,CAAkB,CAAC;IAEvE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC;AAClD,CAAC;AAED,KAAK,UAAU,UAAU,CACvB,eAAuB,EACvB,KAAa,EACb,aAA4D;IAE5D,MAAM,KAAK,GAAiB,EAAE,CAAC;IAC/B,IAAI,KAAK,GAAkB,IAAI,CAAC;IAEhC,SAAS,CAAC;QACR,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,eAAe,EAAE,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;QAC5E,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM;YAAE,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QAEjD,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS;YAAE,MAAM;QAC5C,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC;IACzB,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAEM,KAAK,UAAU,gBAAgB,CAAC,eAAuB,EAAE,IAAY;IAC1E,MAAM,KAAK,GAAG;;;;;;;;;;;;;;;GAeb,CAAC;IAEF,OAAO,UAAU,CAAC,eAAe,EAAE,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;AAC1E,CAAC;AAEM,KAAK,UAAU,wBAAwB,CAC5C,eAAuB,EACvB,IAAY,EACZ,KAAa;IAEb,MAAM,KAAK,GAAG;;;;;;;;;;;;;;;GAeb,CAAC;IAEF,OAAO,UAAU,CAAC,eAAe,EAAE,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;AACjF,CAAC"}
@@ -0,0 +1,381 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createOid = createOid;
4
+ const client_1 = require("@iota/iota-sdk/client");
5
+ const api_1 = require("../api");
6
+ const config_1 = require("../onchain/config");
7
+ const getObjects_1 = require("../onchain/getObjects");
8
+ const getObject_1 = require("../utils/getObject");
9
+ const caps_1 = require("./caps");
10
+ const credit_1 = require("./credit");
11
+ const graphql_1 = require("./graphql");
12
+ const ownedObjects_1 = require("./ownedObjects");
13
+ function notInitialized() {
14
+ throw new Error("not initialized");
15
+ }
16
+ /** Loose network normalization (for selecting a chain to READ public config from). */
17
+ function normalizeNetworkLoose(network) {
18
+ const n = String(network ?? "")
19
+ .toLowerCase()
20
+ .trim();
21
+ if (n === "mainnet" || n === "iota")
22
+ return "mainnet";
23
+ return "testnet";
24
+ }
25
+ /** Strict network read (for setting session network from config JSON). */
26
+ function readNetworkFromConfigJson(cfg) {
27
+ const n = String(cfg?.network ?? "")
28
+ .toLowerCase()
29
+ .trim();
30
+ if (n === "mainnet" || n === "iota")
31
+ return "mainnet";
32
+ if (n === "testnet")
33
+ return "testnet";
34
+ throw new Error("configJSON.network must be 'testnet' or 'mainnet'");
35
+ }
36
+ function tryReadNetworkFromConfigJson(cfg) {
37
+ try {
38
+ return readNetworkFromConfigJson(cfg);
39
+ }
40
+ catch {
41
+ return null;
42
+ }
43
+ }
44
+ function extractOfficialPackages(json) {
45
+ const raw = json?.officialPackages ?? json?.official_packages ?? json?.official_packages_ids ?? [];
46
+ const arr = Array.isArray(raw) ? raw : [];
47
+ const out = arr.map((x) => (0, caps_1.normalizeHex)(String(x ?? "").trim())).filter((x) => !!x);
48
+ return Array.from(new Set(out));
49
+ }
50
+ function createOid() {
51
+ let api = null;
52
+ let s = null;
53
+ // Credit change listeners
54
+ const creditListeners = new Set();
55
+ const emitCreditChanged = (r) => {
56
+ for (const cb of creditListeners) {
57
+ try {
58
+ cb(r);
59
+ }
60
+ catch {
61
+ /* ignore */
62
+ }
63
+ }
64
+ };
65
+ const ensureSession = () => {
66
+ if (!api || !s || !s.initialized)
67
+ notInitialized();
68
+ return { api, s };
69
+ };
70
+ const loadDefaultPublicConfigJson = async (network) => {
71
+ const net = normalizeNetworkLoose(network ?? "testnet");
72
+ const loaded = await (0, config_1.loadPublicConfig)(net);
73
+ return { net, loaded, json: (loaded.json ?? {}) };
74
+ };
75
+ const officialPackages = async (network) => {
76
+ const { json } = await loadDefaultPublicConfigJson(network);
77
+ return extractOfficialPackages(json);
78
+ };
79
+ // ---- helpers: credit token type + refresh ----
80
+ const getCreditTypeArgFromCfg = (cfgAny) => {
81
+ const pkg = (0, caps_1.normalizeHex)(String(cfgAny?.OIDcreditPackage ?? cfgAny?.oidCreditPackage ?? "").trim());
82
+ if (!pkg)
83
+ throw new Error("Missing OIDcreditPackage in config JSON");
84
+ return `${pkg}::oid_credit::OID_CREDIT`;
85
+ };
86
+ const getCreditTokenStructTypeFromCfg = (cfgAny) => {
87
+ const creditTypeArg = getCreditTypeArgFromCfg(cfgAny);
88
+ return `0x2::token::Token<${creditTypeArg}>`;
89
+ };
90
+ const refreshSessionCreditTokens = async (client, cfgAny) => {
91
+ if (!s?.initialized)
92
+ return [];
93
+ const creditTokenType = getCreditTokenStructTypeFromCfg(cfgAny);
94
+ const tokens = await (0, ownedObjects_1.getOwnedObjectIdsByType)(client, s.address, creditTokenType);
95
+ s.creditTokens = tokens;
96
+ if (!s.activeCreditToken || !tokens.includes(s.activeCreditToken)) {
97
+ s.activeCreditToken = tokens[0];
98
+ }
99
+ return tokens;
100
+ };
101
+ const applyConfigJsonForSession = async (did, seed, seedPath, network, cfgJson, configObjectId, publicConfig) => {
102
+ const merged = {
103
+ ...cfgJson,
104
+ network,
105
+ seed,
106
+ seedPath,
107
+ };
108
+ api = (0, api_1.createObjectIdApi)(merged);
109
+ api.onTxExecuted = (r) => emitCreditChanged(r);
110
+ const env = await api.env();
111
+ const client = env.client;
112
+ const address = env.sender;
113
+ const graphqlProvider = env.graphqlProvider;
114
+ const cfgAny = cfgJson;
115
+ const iotaIdentityPackage = (0, caps_1.normalizeHex)(String(cfgAny.IOTAidentityPackage ?? ""));
116
+ const oidIdentityPackage = (0, caps_1.normalizeHex)(String(cfgAny.OIDidentityPackage ?? ""));
117
+ if (!iotaIdentityPackage)
118
+ throw new Error("Missing IOTAidentityPackage in config JSON");
119
+ if (!oidIdentityPackage)
120
+ throw new Error("Missing OIDidentityPackage in config JSON");
121
+ const identityCapType = `${iotaIdentityPackage}::controller::ControllerCap`;
122
+ const oidCapType = `${oidIdentityPackage}::oid_identity::ControllerCap`;
123
+ const identityCapIds = await (0, ownedObjects_1.getOwnedObjectIdsByType)(client, address, identityCapType);
124
+ const identityControllerCap = await (0, caps_1.pickCapMatchingDid)(client, identityCapIds, did);
125
+ if (!identityControllerCap)
126
+ throw new Error("IOTA Identity ControllerCap not found for the provided DID");
127
+ // OID Identity ControllerCap is OPTIONAL.
128
+ const didId = (() => {
129
+ const ss = String(did ?? "").trim();
130
+ const last = ss.split(":").pop() ?? "";
131
+ const ok = last && /^(0x)?[0-9a-fA-F]+$/.test(last);
132
+ return ok ? (0, caps_1.normalizeHex)(last) : "";
133
+ })();
134
+ let oidControllerCap;
135
+ let identityIsLinked = false;
136
+ // RPC-only: scan owned ControllerCap objects and match fields.controller_of == didId
137
+ if (didId) {
138
+ try {
139
+ const oidCapIds = await (0, getObjects_1.getObjectIdsByType)(client, address, oidCapType);
140
+ const matches = [];
141
+ for (const id of oidCapIds) {
142
+ const obj = await (0, getObject_1.getObject)(client, id);
143
+ if (!obj)
144
+ continue;
145
+ const fields = obj?.content?.fields ??
146
+ obj?.content?.data?.fields ??
147
+ obj?.data?.content?.fields ??
148
+ obj?.data?.content?.data?.fields ??
149
+ {};
150
+ const controllerOf = (0, caps_1.normalizeHex)(String(fields?.controller_of ?? ""));
151
+ if (!controllerOf || controllerOf !== didId)
152
+ continue;
153
+ const vRaw = obj?.version;
154
+ let v = 0n;
155
+ try {
156
+ if (typeof vRaw === "string" && vRaw)
157
+ v = BigInt(vRaw);
158
+ else if (typeof vRaw === "number")
159
+ v = BigInt(vRaw);
160
+ }
161
+ catch {
162
+ v = 0n;
163
+ }
164
+ matches.push({ id, version: v });
165
+ }
166
+ if (matches.length > 0) {
167
+ matches.sort((a, b) => (a.version === b.version ? a.id.localeCompare(b.id) : a.version > b.version ? -1 : 1));
168
+ oidControllerCap = matches[0].id;
169
+ identityIsLinked = true;
170
+ }
171
+ }
172
+ catch {
173
+ // ok: remains false
174
+ }
175
+ }
176
+ const creditTokenType = getCreditTokenStructTypeFromCfg(cfgAny);
177
+ const creditTokens = await (0, ownedObjects_1.getOwnedObjectIdsByType)(client, address, creditTokenType);
178
+ s = {
179
+ initialized: true,
180
+ network,
181
+ did,
182
+ seed,
183
+ seedPath,
184
+ address,
185
+ graphqlProvider,
186
+ configJson: cfgJson,
187
+ configObjectId,
188
+ publicConfig,
189
+ identityControllerCap,
190
+ oidControllerCap,
191
+ identityIsLinked,
192
+ creditTokens,
193
+ activeCreditToken: creditTokens[0],
194
+ };
195
+ };
196
+ // --- API: setSession(configJSON) ---
197
+ const setSession = async (configJSON) => {
198
+ const { s: cur } = ensureSession();
199
+ if (!configJSON || typeof configJSON !== "object" || Array.isArray(configJSON)) {
200
+ throw new Error("configJSON must be an object");
201
+ }
202
+ const net = readNetworkFromConfigJson(configJSON);
203
+ await applyConfigJsonForSession(cur.did, cur.seed, cur.seedPath, net, configJSON);
204
+ };
205
+ // --- Read-only session.config(network?) with requested semantics ---
206
+ const sessionConfig = async (network) => {
207
+ const requestedNet = normalizeNetworkLoose(network ?? s?.network ?? "testnet");
208
+ // session attiva:
209
+ // - config() o config(session.network) => config di sessione
210
+ // - config(other) => default pubblico dell'altra rete
211
+ if (s?.initialized) {
212
+ const sessionNet = normalizeNetworkLoose(String(s.network ?? "testnet"));
213
+ if (!network || requestedNet === sessionNet)
214
+ return s.configJson;
215
+ const { json } = await loadDefaultPublicConfigJson(requestedNet);
216
+ return json;
217
+ }
218
+ // no session => default pubblico della rete richiesta
219
+ const { json } = await loadDefaultPublicConfigJson(requestedNet);
220
+ return json;
221
+ };
222
+ const connect = async (p) => {
223
+ const did = String(p?.did ?? "").trim();
224
+ const seed = String(p?.seed ?? "").trim();
225
+ const seedPath = String(p?.seedPath ?? "").trim() || undefined;
226
+ if (!did)
227
+ throw new Error("DID is required.");
228
+ if (!seed)
229
+ throw new Error("Seed is required.");
230
+ // Bootstrapping: read pinned public config from the selected chain.
231
+ const { loaded, json } = await loadDefaultPublicConfigJson(p.network);
232
+ // Session network is derived from json.network (strict if present; fallback to the chain used to read public config).
233
+ const net = tryReadNetworkFromConfigJson(json) ?? normalizeNetworkLoose(p.network);
234
+ await applyConfigJsonForSession(did, seed, seedPath, net, json, loaded.objectId, loaded);
235
+ };
236
+ const disconnect = () => {
237
+ api = null;
238
+ s = null;
239
+ };
240
+ const sessionObj = {
241
+ get network() {
242
+ return ensureSession().s.network;
243
+ },
244
+ get did() {
245
+ return ensureSession().s.did;
246
+ },
247
+ get address() {
248
+ return ensureSession().s.address;
249
+ },
250
+ get identityIsLinked() {
251
+ return ensureSession().s.identityIsLinked;
252
+ },
253
+ get oidControllerCap() {
254
+ return ensureSession().s.oidControllerCap;
255
+ },
256
+ get identityControllerCap() {
257
+ return ensureSession().s.identityControllerCap;
258
+ },
259
+ get creditTokens() {
260
+ return ensureSession().s.creditTokens;
261
+ },
262
+ creditToken(id) {
263
+ const { s } = ensureSession();
264
+ if (id === undefined)
265
+ return s.activeCreditToken;
266
+ const t = id.trim();
267
+ if (!t)
268
+ throw new Error("creditToken id is required");
269
+ if (!s.creditTokens.includes(t))
270
+ throw new Error("creditToken not owned by the current address");
271
+ s.activeCreditToken = t;
272
+ return s.activeCreditToken;
273
+ },
274
+ onCreditChanged(cb) {
275
+ creditListeners.add(cb);
276
+ return () => creditListeners.delete(cb);
277
+ },
278
+ async credit() {
279
+ const { api, s } = ensureSession();
280
+ const tokenId = s.activeCreditToken;
281
+ if (!tokenId)
282
+ return null;
283
+ const env = await api.env();
284
+ const obj = await (0, getObject_1.getObject)(env.client, tokenId);
285
+ return (0, credit_1.extractBalance)(obj ?? null);
286
+ },
287
+ config: sessionConfig,
288
+ raw() {
289
+ return ensureSession().s;
290
+ },
291
+ };
292
+ const base = {
293
+ connect,
294
+ disconnect,
295
+ setSession,
296
+ async faucet() {
297
+ const { s } = ensureSession();
298
+ const net = String(s.network).toLowerCase().trim();
299
+ if (net !== "testnet")
300
+ throw new Error("faucet is available only for an active testnet session");
301
+ const cfg = await sessionConfig();
302
+ const faucetURL = String(cfg.faucetURL).trim();
303
+ if (!faucetURL)
304
+ throw new Error("Missing faucetURL in config JSON");
305
+ const cfgAny = cfg;
306
+ const OIDcreditPackage = (0, caps_1.normalizeHex)(String(cfgAny.OIDcreditPackage ?? "").trim());
307
+ if (!OIDcreditPackage)
308
+ throw new Error("Missing OIDcreditPackage in config JSON");
309
+ const address = String(s.address).trim();
310
+ const response = await fetch(faucetURL, {
311
+ method: "POST",
312
+ headers: { "Content-Type": "application/json" },
313
+ body: JSON.stringify({ packageId: OIDcreditPackage, address }),
314
+ });
315
+ try {
316
+ await response.json();
317
+ }
318
+ catch {
319
+ /* ignore */
320
+ }
321
+ if (!response.ok) {
322
+ return "❌ Failed to request free credits. You own credit!";
323
+ }
324
+ else {
325
+ return "✅ 20 free credits have been minted to your address!";
326
+ }
327
+ },
328
+ officialPackages,
329
+ get policyToken() {
330
+ const { api } = ensureSession();
331
+ return api.env().then((e) => e.policy);
332
+ },
333
+ session: sessionObj,
334
+ // uninitialized-safe methods
335
+ async getObject(id, network) {
336
+ const client = new client_1.IotaClient({ url: (0, client_1.getFullnodeUrl)(network) });
337
+ const obj = await (0, getObject_1.getObject)(client, id);
338
+ return obj ?? null;
339
+ },
340
+ async getObjectsByType(type, network) {
341
+ const cfg = await sessionConfig(network);
342
+ const graphqlProvider = String(cfg?.graphqlProvider ?? "").trim();
343
+ if (!graphqlProvider)
344
+ throw new Error("graphqlProvider not found in public config");
345
+ return await (0, graphql_1.graphqlAllByType)(graphqlProvider, type);
346
+ },
347
+ async getObjectsByTypeAndOwner(type, owner, network) {
348
+ const cfg = await sessionConfig(network);
349
+ const graphqlProvider = String(cfg?.graphqlProvider ?? "").trim();
350
+ if (!graphqlProvider)
351
+ throw new Error("graphqlProvider not found in public config");
352
+ return await (0, graphql_1.graphqlAllByTypeAndOwner)(graphqlProvider, type, owner);
353
+ },
354
+ };
355
+ return new Proxy(base, {
356
+ get(_target, prop) {
357
+ if (prop in base)
358
+ return base[prop];
359
+ if (prop === "toJSON")
360
+ return () => ({
361
+ connected: !!s?.initialized,
362
+ network: s?.network,
363
+ address: s?.address,
364
+ });
365
+ if (api && api[prop] !== undefined) {
366
+ const v = api[prop];
367
+ if (typeof v === "function" && (prop === "create_object" || prop === "create_document")) {
368
+ return (params) => {
369
+ const { s } = ensureSession();
370
+ if (!s.identityIsLinked)
371
+ throw new Error("function not allowed");
372
+ return v.call(api, params);
373
+ };
374
+ }
375
+ return typeof v === "function" ? v.bind(api) : v;
376
+ }
377
+ return () => notInitialized();
378
+ },
379
+ });
380
+ }
381
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/oid/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getOwnedObjectIdsByType = getOwnedObjectIdsByType;
4
+ /**
5
+ * Fetch all owned objectIds for a specific Move type.
6
+ *
7
+ * Uses the RPC ownedObjects listing and matches either the top-level `data.type`
8
+ * or `data.content.type`.
9
+ */
10
+ async function getOwnedObjectIdsByType(client, owner, targetType) {
11
+ const found = [];
12
+ let cursor = null;
13
+ for (;;) {
14
+ const page = await client.getOwnedObjects({
15
+ owner,
16
+ cursor,
17
+ options: { showType: true, showContent: true },
18
+ });
19
+ const items = page?.data ?? [];
20
+ for (const item of items) {
21
+ const objId = item.data?.objectId;
22
+ if (!objId)
23
+ continue;
24
+ const directType = item.data?.type;
25
+ if (directType && directType === targetType) {
26
+ found.push(objId);
27
+ continue;
28
+ }
29
+ const content = item.data?.content;
30
+ const contentType = content?.type;
31
+ if (contentType && contentType === targetType) {
32
+ found.push(objId);
33
+ }
34
+ }
35
+ if (!page?.hasNextPage || !page.nextCursor)
36
+ break;
37
+ cursor = page.nextCursor;
38
+ }
39
+ return found;
40
+ }
41
+ //# sourceMappingURL=ownedObjects.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ownedObjects.js","sourceRoot":"","sources":["../../src/oid/ownedObjects.ts"],"names":[],"mappings":";;AAQA,0DAsCC;AA5CD;;;;;GAKG;AACI,KAAK,UAAU,uBAAuB,CAC3C,MAAkB,EAClB,KAAa,EACb,UAAkB;IAElB,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,MAAM,GAAkB,IAAI,CAAC;IAEjC,SAAS,CAAC;QACR,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC;YACxC,KAAK;YACL,MAAM;YACN,OAAO,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE;SAC/C,CAAC,CAAC;QAEH,MAAM,KAAK,GAAG,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC;QAC/B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC;YAClC,IAAI,CAAC,KAAK;gBAAE,SAAS;YAErB,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC;YACnC,IAAI,UAAU,IAAI,UAAU,KAAK,UAAU,EAAE,CAAC;gBAC5C,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAClB,SAAS;YACX,CAAC;YAED,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,OAAc,CAAC;YAC1C,MAAM,WAAW,GAAG,OAAO,EAAE,IAA0B,CAAC;YACxD,IAAI,WAAW,IAAI,WAAW,KAAK,UAAU,EAAE,CAAC;gBAC9C,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACpB,CAAC;QACH,CAAC;QAED,IAAI,CAAC,IAAI,EAAE,WAAW,IAAI,CAAC,IAAI,CAAC,UAAU;YAAE,MAAM;QAClD,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC;IAC3B,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -0,0 +1,118 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.dlvcProxyUrl = void 0;
4
+ exports.getObjectJson = getObjectJson;
5
+ exports.loadConfigJsonByObjectId = loadConfigJsonByObjectId;
6
+ exports.configType = configType;
7
+ exports.findUserConfigObjectId = findUserConfigObjectId;
8
+ exports.loadPublicConfig = loadPublicConfig;
9
+ exports.loadEffectiveConfig = loadEffectiveConfig;
10
+ const client_1 = require("@iota/iota-sdk/client");
11
+ const defaults_1 = require("./defaults");
12
+ function normalizeNetwork(network) {
13
+ const n = String(network ?? "")
14
+ .toLowerCase()
15
+ .trim();
16
+ if (n === "mainnet" || n === "iota")
17
+ return "mainnet";
18
+ return "testnet";
19
+ }
20
+ function normalizeHex(s) {
21
+ const x = String(s ?? "").trim();
22
+ if (!x)
23
+ return "";
24
+ return x.startsWith("0x") ? x : `0x${x}`;
25
+ }
26
+ function decodeJsonBytes(bytes) {
27
+ if (!Array.isArray(bytes))
28
+ throw new Error("Expected vector<u8> (array) in fields.json");
29
+ if (bytes.length === 0)
30
+ return {};
31
+ const u8 = new Uint8Array(bytes.map((n) => Number(n)));
32
+ const text = new TextDecoder("utf-8").decode(u8).trim();
33
+ if (!text)
34
+ return {};
35
+ return JSON.parse(text);
36
+ }
37
+ async function getObjectJson(client, objectId) {
38
+ const resp = await client.getObject({
39
+ id: normalizeHex(objectId),
40
+ options: { showContent: true, showType: true },
41
+ });
42
+ const fields = resp?.data?.content?.fields;
43
+ if (!fields)
44
+ throw new Error("Object has no Move fields/content");
45
+ return decodeJsonBytes(fields.json);
46
+ }
47
+ /**
48
+ * Loads a config JSON stored as UTF-8 bytes in `Config.json` (vector<u8>) by object id.
49
+ * Uses JSON-RPC only (browser CORS must allow the node endpoint).
50
+ */
51
+ async function loadConfigJsonByObjectId(network, objectId) {
52
+ const net = normalizeNetwork(network);
53
+ const client = new client_1.IotaClient({ url: (0, client_1.getFullnodeUrl)(net) });
54
+ return await getObjectJson(client, objectId);
55
+ }
56
+ function configType(packageId) {
57
+ // <pkg>::oid_config::Config
58
+ return `${normalizeHex(packageId)}::oid_config::Config`;
59
+ }
60
+ /**
61
+ * Finds the latest user-owned Config object for the given address, if any.
62
+ * IMPORTANT: filters strictly by StructType == <cfgPkg>::oid_config::Config (no suffix matching).
63
+ */
64
+ async function findUserConfigObjectId(client, owner, configPkgId) {
65
+ const type = configType(configPkgId);
66
+ const resp = await client.getOwnedObjects({
67
+ owner: normalizeHex(owner),
68
+ filter: { StructType: type },
69
+ options: { showType: true, showContent: false },
70
+ limit: 10,
71
+ });
72
+ const data = resp?.data ?? [];
73
+ if (!data.length)
74
+ return null;
75
+ data.sort((a, b) => Number(b?.data?.version ?? b?.version ?? 0) - Number(a?.data?.version ?? a?.version ?? 0));
76
+ const objId = data[0]?.data?.objectId ?? data[0]?.objectId ?? null;
77
+ return objId ? String(objId) : null;
78
+ }
79
+ /**
80
+ * Loads the effective config:
81
+ * 1) user-owned Config (same configPkgId) if present
82
+ * 2) HARD default shared Config pinned in DEFAULT_SHARED_CONFIG_OBJECT_ID[network]
83
+ *
84
+ * No discovery via tx and no GraphQL.
85
+ */
86
+ /**
87
+ * Loads the public/shared default config for a given network (pinned object id).
88
+ * This does NOT attempt to load any user-owned config.
89
+ */
90
+ async function loadPublicConfig(network) {
91
+ const net = normalizeNetwork(network);
92
+ const client = new client_1.IotaClient({ url: (0, client_1.getFullnodeUrl)(net) });
93
+ const defaultId = defaults_1.DEFAULT_SHARED_CONFIG_OBJECT_ID[net];
94
+ if (!defaultId)
95
+ throw new Error(`Missing DEFAULT_SHARED_CONFIG_OBJECT_ID for network=${net}`);
96
+ const json = await getObjectJson(client, defaultId);
97
+ return { source: "default", objectId: String(defaultId), json };
98
+ }
99
+ async function loadEffectiveConfig(network, configPkgs, ownerAddress) {
100
+ const net = normalizeNetwork(network);
101
+ const client = new client_1.IotaClient({ url: (0, client_1.getFullnodeUrl)(net) });
102
+ const cfgPkg = net === "mainnet" ? configPkgs.mainnet : configPkgs.testnet;
103
+ if (!cfgPkg)
104
+ throw new Error(`Missing config packageId for network=${net}`);
105
+ const userId = await findUserConfigObjectId(client, ownerAddress, cfgPkg);
106
+ if (userId) {
107
+ const json = await getObjectJson(client, userId);
108
+ return { source: "user", objectId: userId, json };
109
+ }
110
+ const defaultId = defaults_1.DEFAULT_SHARED_CONFIG_OBJECT_ID[net];
111
+ if (!defaultId) {
112
+ throw new Error(`Missing DEFAULT_SHARED_CONFIG_OBJECT_ID for network=${net}`);
113
+ }
114
+ const json = await getObjectJson(client, defaultId);
115
+ return { source: "default", objectId: defaultId, json };
116
+ }
117
+ exports.dlvcProxyUrl = "https://api.objectid.io/api/dlvc-proxy";
118
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/onchain/config.ts"],"names":[],"mappings":";;;AAsCA,sCASC;AAMD,4DAIC;AAED,gCAGC;AAMD,wDAoBC;AAcD,4CAOC;AAED,kDAwBC;AAvID,kDAAmE;AACnE,yCAA6D;AAE7D,SAAS,gBAAgB,CAAC,OAAe;IACvC,MAAM,CAAC,GAAG,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;SAC5B,WAAW,EAAE;SACb,IAAI,EAAE,CAAC;IACV,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,MAAM;QAAE,OAAO,SAAS,CAAC;IACtD,OAAO,SAAS,CAAC;AACnB,CAAC;AAaD,SAAS,YAAY,CAAC,CAAS;IAC7B,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACjC,IAAI,CAAC,CAAC;QAAE,OAAO,EAAE,CAAC;IAClB,OAAO,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;AAC3C,CAAC;AAED,SAAS,eAAe,CAAC,KAAU;IACjC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;IACzF,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAElC,MAAM,EAAE,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5D,MAAM,IAAI,GAAG,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACxD,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;IACrB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAEM,KAAK,UAAU,aAAa,CAAC,MAAkB,EAAE,QAAgB;IACtE,MAAM,IAAI,GAAQ,MAAM,MAAM,CAAC,SAAS,CAAC;QACvC,EAAE,EAAE,YAAY,CAAC,QAAQ,CAAC;QAC1B,OAAO,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE;KAC/C,CAAC,CAAC;IAEH,MAAM,MAAM,GAAQ,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC;IAChD,IAAI,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;IAClE,OAAO,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACtC,CAAC;AAED;;;GAGG;AACI,KAAK,UAAU,wBAAwB,CAAC,OAAe,EAAE,QAAgB;IAC9E,MAAM,GAAG,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACtC,MAAM,MAAM,GAAG,IAAI,mBAAU,CAAC,EAAE,GAAG,EAAE,IAAA,uBAAc,EAAC,GAAU,CAAC,EAAE,CAAC,CAAC;IACnE,OAAO,MAAM,aAAa,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AAC/C,CAAC;AAED,SAAgB,UAAU,CAAC,SAAiB;IAC1C,4BAA4B;IAC5B,OAAO,GAAG,YAAY,CAAC,SAAS,CAAC,sBAAsB,CAAC;AAC1D,CAAC;AAED;;;GAGG;AACI,KAAK,UAAU,sBAAsB,CAC1C,MAAkB,EAClB,KAAa,EACb,WAAmB;IAEnB,MAAM,IAAI,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC;IAErC,MAAM,IAAI,GAAQ,MAAO,MAAc,CAAC,eAAe,CAAC;QACtD,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC;QAC1B,MAAM,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE;QAC5B,OAAO,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE;QAC/C,KAAK,EAAE,EAAE;KACV,CAAC,CAAC;IAEH,MAAM,IAAI,GAAU,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC;IACrC,IAAI,CAAC,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IAE9B,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,IAAI,CAAC,EAAE,OAAO,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,IAAI,CAAC,EAAE,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;IAC/G,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,IAAI,IAAI,CAAC;IACnE,OAAO,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACtC,CAAC;AAED;;;;;;GAMG;AAEH;;;GAGG;AACI,KAAK,UAAU,gBAAgB,CAAC,OAAe;IACpD,MAAM,GAAG,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACtC,MAAM,MAAM,GAAG,IAAI,mBAAU,CAAC,EAAE,GAAG,EAAE,IAAA,uBAAc,EAAC,GAAU,CAAC,EAAE,CAAC,CAAC;IACnE,MAAM,SAAS,GAAG,0CAA+B,CAAC,GAAG,CAAC,CAAC;IACvD,IAAI,CAAC,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,uDAAuD,GAAG,EAAE,CAAC,CAAC;IAC9F,MAAM,IAAI,GAAG,MAAM,aAAa,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACpD,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,CAAC;AAClE,CAAC;AAEM,KAAK,UAAU,mBAAmB,CACvC,OAAe,EACf,UAA4B,EAC5B,YAAoB;IAEpB,MAAM,GAAG,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACtC,MAAM,MAAM,GAAG,IAAI,mBAAU,CAAC,EAAE,GAAG,EAAE,IAAA,uBAAc,EAAC,GAAU,CAAC,EAAE,CAAC,CAAC;IAEnE,MAAM,MAAM,GAAG,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC;IAC3E,IAAI,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,wCAAwC,GAAG,EAAE,CAAC,CAAC;IAE5E,MAAM,MAAM,GAAG,MAAM,sBAAsB,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC;IAC1E,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,IAAI,GAAG,MAAM,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACjD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IACpD,CAAC;IAED,MAAM,SAAS,GAAG,0CAA+B,CAAC,GAAG,CAAC,CAAC;IACvD,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,uDAAuD,GAAG,EAAE,CAAC,CAAC;IAChF,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,aAAa,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACpD,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;AAC1D,CAAC;AAEY,QAAA,YAAY,GAAG,wCAAwC,CAAC"}