@sogni-ai/sogni-client 4.2.0-alpha.21 → 4.2.0-alpha.22

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 (170) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/CLAUDE.md +7 -0
  3. package/README.md +45 -25
  4. package/dist/Chat/ChatTools.js +30 -16
  5. package/dist/Chat/ChatTools.js.map +1 -1
  6. package/dist/Chat/hostedToolValidation.generated.d.ts +46 -0
  7. package/dist/Chat/hostedToolValidation.generated.js +306 -0
  8. package/dist/Chat/hostedToolValidation.generated.js.map +1 -0
  9. package/dist/Chat/index.d.ts +41 -1
  10. package/dist/Chat/index.js +166 -2
  11. package/dist/Chat/index.js.map +1 -1
  12. package/dist/Chat/modelRouting.d.ts +8 -26
  13. package/dist/Chat/modelRouting.js +11 -106
  14. package/dist/Chat/modelRouting.js.map +1 -1
  15. package/dist/Chat/sogniHostedTools.generated.json +1285 -283
  16. package/dist/Chat/tools.d.ts +52 -3
  17. package/dist/Chat/tools.js +80 -27
  18. package/dist/Chat/tools.js.map +1 -1
  19. package/dist/Chat/types.d.ts +119 -3
  20. package/dist/CreativeWorkflows/index.d.ts +1 -7
  21. package/dist/CreativeWorkflows/index.js +23 -21
  22. package/dist/CreativeWorkflows/index.js.map +1 -1
  23. package/dist/CreativeWorkflows/types.d.ts +27 -33
  24. package/dist/index.d.ts +19 -4
  25. package/dist/index.js +1 -1
  26. package/dist/index.js.map +1 -1
  27. package/dist/lib/Cache.js +6 -1
  28. package/dist/lib/Cache.js.map +1 -1
  29. package/dist-esm/Account/CurrentAccount.js +59 -0
  30. package/dist-esm/Account/CurrentAccount.js.map +1 -0
  31. package/dist-esm/Account/index.js +543 -0
  32. package/dist-esm/Account/index.js.map +1 -0
  33. package/dist-esm/Account/types.js +2 -0
  34. package/dist-esm/Account/types.js.map +1 -0
  35. package/dist-esm/ApiClient/WebSocketClient/BrowserWebSocketClient/ChannelCoordinator.js +327 -0
  36. package/dist-esm/ApiClient/WebSocketClient/BrowserWebSocketClient/ChannelCoordinator.js.map +1 -0
  37. package/dist-esm/ApiClient/WebSocketClient/BrowserWebSocketClient/index.js +222 -0
  38. package/dist-esm/ApiClient/WebSocketClient/BrowserWebSocketClient/index.js.map +1 -0
  39. package/dist-esm/ApiClient/WebSocketClient/ErrorCode.js +15 -0
  40. package/dist-esm/ApiClient/WebSocketClient/ErrorCode.js.map +1 -0
  41. package/dist-esm/ApiClient/WebSocketClient/eventSubscriptions.js +35 -0
  42. package/dist-esm/ApiClient/WebSocketClient/eventSubscriptions.js.map +1 -0
  43. package/dist-esm/ApiClient/WebSocketClient/events.js +2 -0
  44. package/dist-esm/ApiClient/WebSocketClient/events.js.map +1 -0
  45. package/dist-esm/ApiClient/WebSocketClient/index.js +221 -0
  46. package/dist-esm/ApiClient/WebSocketClient/index.js.map +1 -0
  47. package/dist-esm/ApiClient/WebSocketClient/messages.js +2 -0
  48. package/dist-esm/ApiClient/WebSocketClient/messages.js.map +1 -0
  49. package/dist-esm/ApiClient/WebSocketClient/types.js +2 -0
  50. package/dist-esm/ApiClient/WebSocketClient/types.js.map +1 -0
  51. package/dist-esm/ApiClient/events.js +2 -0
  52. package/dist-esm/ApiClient/events.js.map +1 -0
  53. package/dist-esm/ApiClient/index.js +120 -0
  54. package/dist-esm/ApiClient/index.js.map +1 -0
  55. package/dist-esm/ApiGroup.js +10 -0
  56. package/dist-esm/ApiGroup.js.map +1 -0
  57. package/dist-esm/Chat/ChatStream.js +181 -0
  58. package/dist-esm/Chat/ChatStream.js.map +1 -0
  59. package/dist-esm/Chat/ChatTools.js +562 -0
  60. package/dist-esm/Chat/ChatTools.js.map +1 -0
  61. package/dist-esm/Chat/hostedToolValidation.generated.js +301 -0
  62. package/dist-esm/Chat/hostedToolValidation.generated.js.map +1 -0
  63. package/dist-esm/Chat/index.js +598 -0
  64. package/dist-esm/Chat/index.js.map +1 -0
  65. package/dist-esm/Chat/modelRouting.js +326 -0
  66. package/dist-esm/Chat/modelRouting.js.map +1 -0
  67. package/dist-esm/Chat/sogniHostedTools.generated.json +1531 -0
  68. package/dist-esm/Chat/tools.js +149 -0
  69. package/dist-esm/Chat/tools.js.map +1 -0
  70. package/dist-esm/Chat/types.js +2 -0
  71. package/dist-esm/Chat/types.js.map +1 -0
  72. package/dist-esm/CreativeWorkflows/index.js +256 -0
  73. package/dist-esm/CreativeWorkflows/index.js.map +1 -0
  74. package/dist-esm/CreativeWorkflows/types.js +2 -0
  75. package/dist-esm/CreativeWorkflows/types.js.map +1 -0
  76. package/dist-esm/Projects/Job.js +391 -0
  77. package/dist-esm/Projects/Job.js.map +1 -0
  78. package/dist-esm/Projects/Project.js +295 -0
  79. package/dist-esm/Projects/Project.js.map +1 -0
  80. package/dist-esm/Projects/createJobRequestMessage.js +528 -0
  81. package/dist-esm/Projects/createJobRequestMessage.js.map +1 -0
  82. package/dist-esm/Projects/index.js +1309 -0
  83. package/dist-esm/Projects/index.js.map +1 -0
  84. package/dist-esm/Projects/types/ComfySamplerParams.js +2 -0
  85. package/dist-esm/Projects/types/ComfySamplerParams.js.map +1 -0
  86. package/dist-esm/Projects/types/ControlNetParams.js +2 -0
  87. package/dist-esm/Projects/types/ControlNetParams.js.map +1 -0
  88. package/dist-esm/Projects/types/EstimationResponse.js +2 -0
  89. package/dist-esm/Projects/types/EstimationResponse.js.map +1 -0
  90. package/dist-esm/Projects/types/ModelOptions.js +89 -0
  91. package/dist-esm/Projects/types/ModelOptions.js.map +1 -0
  92. package/dist-esm/Projects/types/ModelTiersRaw.js +13 -0
  93. package/dist-esm/Projects/types/ModelTiersRaw.js.map +1 -0
  94. package/dist-esm/Projects/types/RawProject.js +2 -0
  95. package/dist-esm/Projects/types/RawProject.js.map +1 -0
  96. package/dist-esm/Projects/types/events.js +2 -0
  97. package/dist-esm/Projects/types/events.js.map +1 -0
  98. package/dist-esm/Projects/types/index.js +10 -0
  99. package/dist-esm/Projects/types/index.js.map +1 -0
  100. package/dist-esm/Projects/utils/index.js +229 -0
  101. package/dist-esm/Projects/utils/index.js.map +1 -0
  102. package/dist-esm/Projects/utils/samplers.js +36 -0
  103. package/dist-esm/Projects/utils/samplers.js.map +1 -0
  104. package/dist-esm/Projects/utils/scheduler.js +27 -0
  105. package/dist-esm/Projects/utils/scheduler.js.map +1 -0
  106. package/dist-esm/Stats/index.js +20 -0
  107. package/dist-esm/Stats/index.js.map +1 -0
  108. package/dist-esm/Stats/types.js +2 -0
  109. package/dist-esm/Stats/types.js.map +1 -0
  110. package/dist-esm/events.js +2 -0
  111. package/dist-esm/events.js.map +1 -0
  112. package/dist-esm/index.js +144 -0
  113. package/dist-esm/index.js.map +1 -0
  114. package/dist-esm/lib/AuthManager/ApiKeyAuthManager.js +58 -0
  115. package/dist-esm/lib/AuthManager/ApiKeyAuthManager.js.map +1 -0
  116. package/dist-esm/lib/AuthManager/AuthManagerBase.js +9 -0
  117. package/dist-esm/lib/AuthManager/AuthManagerBase.js.map +1 -0
  118. package/dist-esm/lib/AuthManager/CookieAuthManager.js +48 -0
  119. package/dist-esm/lib/AuthManager/CookieAuthManager.js.map +1 -0
  120. package/dist-esm/lib/AuthManager/TokenAuthManager.js +186 -0
  121. package/dist-esm/lib/AuthManager/TokenAuthManager.js.map +1 -0
  122. package/dist-esm/lib/AuthManager/index.js +5 -0
  123. package/dist-esm/lib/AuthManager/index.js.map +1 -0
  124. package/dist-esm/lib/Cache.js +32 -0
  125. package/dist-esm/lib/Cache.js.map +1 -0
  126. package/dist-esm/lib/DataEntity.js +30 -0
  127. package/dist-esm/lib/DataEntity.js.map +1 -0
  128. package/dist-esm/lib/DefaultLogger.js +32 -0
  129. package/dist-esm/lib/DefaultLogger.js.map +1 -0
  130. package/dist-esm/lib/EIP712Helper.js +37 -0
  131. package/dist-esm/lib/EIP712Helper.js.map +1 -0
  132. package/dist-esm/lib/RestClient.js +90 -0
  133. package/dist-esm/lib/RestClient.js.map +1 -0
  134. package/dist-esm/lib/TypedEventEmitter.js +68 -0
  135. package/dist-esm/lib/TypedEventEmitter.js.map +1 -0
  136. package/dist-esm/lib/base64.js +18 -0
  137. package/dist-esm/lib/base64.js.map +1 -0
  138. package/dist-esm/lib/getUUID.js +7 -0
  139. package/dist-esm/lib/getUUID.js.map +1 -0
  140. package/dist-esm/lib/isNodejs.js +3 -0
  141. package/dist-esm/lib/isNodejs.js.map +1 -0
  142. package/dist-esm/lib/mediaValidation.js +277 -0
  143. package/dist-esm/lib/mediaValidation.js.map +1 -0
  144. package/dist-esm/lib/utils/index.js +30 -0
  145. package/dist-esm/lib/utils/index.js.map +1 -0
  146. package/dist-esm/lib/validation.js +138 -0
  147. package/dist-esm/lib/validation.js.map +1 -0
  148. package/dist-esm/package.json +3 -0
  149. package/dist-esm/types/ErrorData.js +2 -0
  150. package/dist-esm/types/ErrorData.js.map +1 -0
  151. package/dist-esm/types/json.js +2 -0
  152. package/dist-esm/types/json.js.map +1 -0
  153. package/dist-esm/types/token.js +2 -0
  154. package/dist-esm/types/token.js.map +1 -0
  155. package/dist-esm/version.js +3 -0
  156. package/dist-esm/version.js.map +1 -0
  157. package/llms-full.txt +11 -20
  158. package/llms.txt +9 -18
  159. package/package.json +21 -5
  160. package/src/Chat/ChatTools.ts +36 -16
  161. package/src/Chat/hostedToolValidation.generated.ts +453 -0
  162. package/src/Chat/index.ts +198 -3
  163. package/src/Chat/modelRouting.ts +26 -150
  164. package/src/Chat/sogniHostedTools.generated.json +1285 -283
  165. package/src/Chat/tools.ts +106 -41
  166. package/src/Chat/types.ts +131 -3
  167. package/src/CreativeWorkflows/index.ts +22 -41
  168. package/src/CreativeWorkflows/types.ts +69 -42
  169. package/src/index.ts +33 -12
  170. package/src/lib/Cache.ts +8 -1
@@ -0,0 +1,90 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ var __rest = (this && this.__rest) || function (s, e) {
11
+ var t = {};
12
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
13
+ t[p] = s[p];
14
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
15
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
16
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
17
+ t[p[i]] = s[p[i]];
18
+ }
19
+ return t;
20
+ };
21
+ import { ApiError } from '../ApiClient';
22
+ import TypedEventEmitter from './TypedEventEmitter';
23
+ class RestClient extends TypedEventEmitter {
24
+ constructor(baseUrl, auth, logger) {
25
+ super();
26
+ this.baseUrl = baseUrl;
27
+ this._auth = auth;
28
+ this._logger = logger;
29
+ }
30
+ get auth() {
31
+ return this._auth;
32
+ }
33
+ formatUrl(relativeUrl, query = {}) {
34
+ const url = new URL(relativeUrl, this.baseUrl);
35
+ Object.keys(query).forEach((key) => {
36
+ url.searchParams.append(key, query[key]);
37
+ });
38
+ return url.toString();
39
+ }
40
+ request(url_1) {
41
+ return __awaiter(this, arguments, void 0, function* (url, options = {}) {
42
+ const { timeoutMs = 30000 } = options, requestOptions = __rest(options, ["timeoutMs"]);
43
+ const init = yield this.auth.authenticateRequest(requestOptions);
44
+ // Add a timeout to detect hanging requests
45
+ const controller = new AbortController();
46
+ const timeoutId = setTimeout(() => {
47
+ controller.abort();
48
+ }, timeoutMs);
49
+ try {
50
+ const response = yield fetch(url, Object.assign(Object.assign({}, init), { signal: controller.signal }));
51
+ clearTimeout(timeoutId);
52
+ return this.processResponse(response);
53
+ }
54
+ catch (fetchError) {
55
+ clearTimeout(timeoutId);
56
+ throw fetchError;
57
+ }
58
+ });
59
+ }
60
+ processResponse(response) {
61
+ return __awaiter(this, void 0, void 0, function* () {
62
+ let responseData;
63
+ try {
64
+ responseData = yield response.json();
65
+ }
66
+ catch (e) {
67
+ this._logger.error('Failed to parse response:', e);
68
+ throw new Error('Failed to parse response');
69
+ }
70
+ // 401 means that the client instance is not authenticated, so we clear the authentication
71
+ if (response.status === 401 && this.auth.isAuthenticated) {
72
+ this.auth.clear();
73
+ }
74
+ if (!response.ok) {
75
+ throw new ApiError(response.status, responseData);
76
+ }
77
+ return responseData;
78
+ });
79
+ }
80
+ get(path, query = {}) {
81
+ return this.request(this.formatUrl(path, query));
82
+ }
83
+ post(path, body = {}, options = {}) {
84
+ return this.request(this.formatUrl(path), Object.assign({ method: 'POST', headers: {
85
+ 'Content-Type': 'application/json'
86
+ }, body: JSON.stringify(body) }, options));
87
+ }
88
+ }
89
+ export default RestClient;
90
+ //# sourceMappingURL=RestClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RestClient.js","sourceRoot":"","sources":["../../src/lib/RestClient.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,QAAQ,EAAoB,MAAM,cAAc,CAAC;AAC1D,OAAO,iBAA+B,MAAM,qBAAqB,CAAC;AASlE,MAAM,UAAuC,SAAQ,iBAAoB;IAKvE,YAAY,OAAe,EAAE,IAAiB,EAAE,MAAc;QAC5D,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IACxB,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAEO,SAAS,CAAC,WAAmB,EAAE,QAAgC,EAAE;QACvE,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAC/C,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YACjC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;QACH,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC;IACxB,CAAC;IAEa,OAAO;6DAAgB,GAAW,EAAE,UAA2B,EAAE;YAC7E,MAAM,EAAE,SAAS,GAAG,KAAK,KAAwB,OAAO,EAA1B,cAAc,UAAK,OAAO,EAAlD,aAAwC,CAAU,CAAC;YACzD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,cAAc,CAAC,CAAC;YAEjE,2CAA2C;YAC3C,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;YACzC,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE;gBAChC,UAAU,CAAC,KAAK,EAAE,CAAC;YACrB,CAAC,EAAE,SAAS,CAAC,CAAC;YAEd,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,kCAAO,IAAI,KAAE,MAAM,EAAE,UAAU,CAAC,MAAM,IAAG,CAAC;gBAC1E,YAAY,CAAC,SAAS,CAAC,CAAC;gBACxB,OAAO,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAM,CAAC;YAC7C,CAAC;YAAC,OAAO,UAAe,EAAE,CAAC;gBACzB,YAAY,CAAC,SAAS,CAAC,CAAC;gBACxB,MAAM,UAAU,CAAC;YACnB,CAAC;QACH,CAAC;KAAA;IAEa,eAAe,CAAC,QAAkB;;YAC9C,IAAI,YAAY,CAAC;YACjB,IAAI,CAAC;gBACH,YAAY,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YACvC,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,2BAA2B,EAAE,CAAC,CAAC,CAAC;gBACnD,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;YAC9C,CAAC;YACD,0FAA0F;YAC1F,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;gBACzD,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YACpB,CAAC;YACD,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,YAAgC,CAAC,CAAC;YACxE,CAAC;YACD,OAAO,YAAyB,CAAC;QACnC,CAAC;KAAA;IAED,GAAG,CAAgB,IAAY,EAAE,QAA6B,EAAE;QAC9D,OAAO,IAAI,CAAC,OAAO,CAAI,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;IACtD,CAAC;IAED,IAAI,CACF,IAAY,EACZ,OAAgC,EAAE,EAClC,UAA8C,EAAE;QAEhD,OAAO,IAAI,CAAC,OAAO,CAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,kBACzC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;aACnC,EACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IACvB,OAAO,EACV,CAAC;IACL,CAAC;CACF;AAED,eAAe,UAAU,CAAC"}
@@ -0,0 +1,68 @@
1
+ class TypedEventEmitter {
2
+ constructor() {
3
+ this.listeners = {};
4
+ }
5
+ /**
6
+ * Add an event listener, returns a function that can be called to remove the listener
7
+ * @param event
8
+ * @param listener
9
+ */
10
+ on(event, listener) {
11
+ if (!this.listeners[event]) {
12
+ this.listeners[event] = [];
13
+ }
14
+ this.listeners[event].push(listener);
15
+ return () => {
16
+ this.off(event, listener);
17
+ };
18
+ }
19
+ /**
20
+ * Add an event listener that will be called only once
21
+ * @param event
22
+ * @param listener
23
+ */
24
+ once(event, listener) {
25
+ const remove = this.on(event, (data) => {
26
+ remove();
27
+ listener(data);
28
+ });
29
+ return remove;
30
+ }
31
+ /**
32
+ * Remove an event listener
33
+ * @param event
34
+ * @param listener
35
+ */
36
+ off(event, listener) {
37
+ if (!this.listeners[event]) {
38
+ return;
39
+ }
40
+ this.listeners[event] = this.listeners[event].filter((l) => l !== listener);
41
+ }
42
+ /**
43
+ * Remove all event listeners, optionally for a specific event
44
+ * @param event
45
+ */
46
+ removeAllListeners(event) {
47
+ if (event) {
48
+ delete this.listeners[event];
49
+ }
50
+ else {
51
+ this.listeners = {};
52
+ }
53
+ }
54
+ /**
55
+ * Dispatch an event to all listeners
56
+ * @param event
57
+ * @param data
58
+ */
59
+ emit(event, data) {
60
+ const listeners = this.listeners[event];
61
+ if (!listeners) {
62
+ return;
63
+ }
64
+ listeners.forEach((listener) => listener(data));
65
+ }
66
+ }
67
+ export default TypedEventEmitter;
68
+ //# sourceMappingURL=TypedEventEmitter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TypedEventEmitter.js","sourceRoot":"","sources":["../../src/lib/TypedEventEmitter.ts"],"names":[],"mappings":"AAQA,MAAe,iBAAiB;IAAhC;QACY,cAAS,GAA+C,EAAE,CAAC;IAkEvE,CAAC;IAhEC;;;;OAIG;IACH,EAAE,CAAoB,KAAQ,EAAE,QAA6B;QAC3D,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;YAC3B,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;QAC7B,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,KAAK,CAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACtC,OAAO,GAAG,EAAE;YACV,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAC5B,CAAC,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,IAAI,CAAoB,KAAQ,EAAE,QAA6B;QAC7D,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE;YACrC,MAAM,EAAE,CAAC;YACT,QAAQ,CAAC,IAAI,CAAC,CAAC;QACjB,CAAC,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;OAIG;IACH,GAAG,CAAoB,KAAQ,EAAE,QAA6B;QAC5D,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;YAC3B,OAAO;QACT,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC;IAC/E,CAAC;IAED;;;OAGG;IACH,kBAAkB,CAAoB,KAAS;QAC7C,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QACtB,CAAC;IACH,CAAC;IAED;;;;OAIG;IACO,IAAI,CAAoB,KAAQ,EAAE,IAAU;QACpD,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACxC,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO;QACT,CAAC;QACD,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;IAClD,CAAC;CACF;AAED,eAAe,iBAAiB,CAAC"}
@@ -0,0 +1,18 @@
1
+ export function base64Encode(str) {
2
+ const encoder = new TextEncoder();
3
+ const uint8Array = encoder.encode(str);
4
+ // Process in chunks to avoid "Maximum call stack size exceeded" with large payloads
5
+ const chunkSize = 8192;
6
+ let binaryString = '';
7
+ for (let i = 0; i < uint8Array.length; i += chunkSize) {
8
+ binaryString += String.fromCharCode(...uint8Array.subarray(i, i + chunkSize));
9
+ }
10
+ return btoa(binaryString);
11
+ }
12
+ export function base64Decode(str) {
13
+ const binaryString = atob(str);
14
+ const binaryArray = Uint8Array.from(binaryString, (char) => char.charCodeAt(0));
15
+ const decoder = new TextDecoder();
16
+ return decoder.decode(binaryArray);
17
+ }
18
+ //# sourceMappingURL=base64.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base64.js","sourceRoot":"","sources":["../../src/lib/base64.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,YAAY,CAAC,GAAW;IACtC,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;IAClC,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACvC,oFAAoF;IACpF,MAAM,SAAS,GAAG,IAAI,CAAC;IACvB,IAAI,YAAY,GAAG,EAAE,CAAC;IACtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,IAAI,SAAS,EAAE,CAAC;QACtD,YAAY,IAAI,MAAM,CAAC,YAAY,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;IAChF,CAAC;IACD,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,GAAW;IACtC,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;IAC/B,MAAM,WAAW,GAAG,UAAU,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IAChF,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;IAClC,OAAO,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;AACrC,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { v4 as uuidV4 } from '@lukeed/uuid';
2
+ // Mac app is using uppercase UUIDs, we need to keep it consistent so Mac workers can process the data
3
+ function getUUID() {
4
+ return uuidV4().toUpperCase();
5
+ }
6
+ export default getUUID;
7
+ //# sourceMappingURL=getUUID.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getUUID.js","sourceRoot":"","sources":["../../src/lib/getUUID.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,cAAc,CAAC;AAE5C,sGAAsG;AACtG,SAAS,OAAO;IACd,OAAO,MAAM,EAAE,CAAC,WAAW,EAAE,CAAC;AAChC,CAAC;AAED,eAAe,OAAO,CAAC"}
@@ -0,0 +1,3 @@
1
+ const isNodejs = typeof process !== 'undefined' && process.versions != null && process.versions.node != null;
2
+ export default isNodejs;
3
+ //# sourceMappingURL=isNodejs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isNodejs.js","sourceRoot":"","sources":["../../src/lib/isNodejs.ts"],"names":[],"mappings":"AAAA,MAAM,QAAQ,GACZ,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,QAAQ,IAAI,IAAI,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,IAAI,IAAI,CAAC;AAE9F,eAAe,QAAQ,CAAC"}
@@ -0,0 +1,277 @@
1
+ const BASE64_BODY_PATTERN = /^[A-Za-z0-9+/]*={0,2}$/;
2
+ const IMAGE_MIME_FORMATS = {
3
+ 'image/jpeg': 'jpeg',
4
+ 'image/jpg': 'jpeg',
5
+ 'image/png': 'png'
6
+ };
7
+ const AUDIO_MIME_FORMATS = {
8
+ 'audio/m4a': 'mp4',
9
+ 'audio/mp3': 'mpeg',
10
+ 'audio/mp4': 'mp4',
11
+ 'audio/mpeg': 'mpeg',
12
+ 'audio/wav': 'wav',
13
+ 'audio/wave': 'wav',
14
+ 'audio/x-m4a': 'mp4',
15
+ 'audio/x-wav': 'wav'
16
+ };
17
+ const VIDEO_MIME_FORMATS = {
18
+ 'video/mp4': 'mp4',
19
+ 'video/quicktime': 'quicktime'
20
+ };
21
+ function getAllowedMimeTypes(mediaType) {
22
+ switch (mediaType) {
23
+ case 'image':
24
+ return Object.keys(IMAGE_MIME_FORMATS);
25
+ case 'audio':
26
+ return Object.keys(AUDIO_MIME_FORMATS);
27
+ case 'video':
28
+ return Object.keys(VIDEO_MIME_FORMATS);
29
+ default:
30
+ return [];
31
+ }
32
+ }
33
+ function ascii(bytes, start, length) {
34
+ if (start + length > bytes.length) {
35
+ return '';
36
+ }
37
+ return String.fromCharCode(...bytes.slice(start, start + length));
38
+ }
39
+ function hasPrefix(bytes, prefix, offset = 0) {
40
+ if (offset + prefix.length > bytes.length) {
41
+ return false;
42
+ }
43
+ return prefix.every((value, index) => bytes[offset + index] === value);
44
+ }
45
+ function addBase64Padding(base64) {
46
+ const remainder = base64.length % 4;
47
+ if (remainder === 0)
48
+ return base64;
49
+ if (remainder === 1) {
50
+ throw new Error('Invalid base64 payload');
51
+ }
52
+ return base64.padEnd(base64.length + (4 - remainder), '=');
53
+ }
54
+ function encodeBase64(bytes) {
55
+ if (typeof Buffer !== 'undefined') {
56
+ return Buffer.from(bytes).toString('base64');
57
+ }
58
+ let binary = '';
59
+ for (const byte of bytes) {
60
+ binary += String.fromCharCode(byte);
61
+ }
62
+ if (typeof btoa === 'function') {
63
+ return btoa(binary);
64
+ }
65
+ throw new Error('No base64 encoder available in this environment');
66
+ }
67
+ function decodeStrictBase64(base64) {
68
+ const sanitized = base64.replace(/\s+/g, '');
69
+ if (!BASE64_BODY_PATTERN.test(sanitized)) {
70
+ throw new Error('Invalid base64 payload');
71
+ }
72
+ const padded = addBase64Padding(sanitized);
73
+ let bytes;
74
+ if (typeof Buffer !== 'undefined') {
75
+ bytes = Uint8Array.from(Buffer.from(padded, 'base64'));
76
+ }
77
+ else if (typeof atob === 'function') {
78
+ const binaryString = atob(padded);
79
+ bytes = new Uint8Array(binaryString.length);
80
+ for (let i = 0; i < binaryString.length; i++) {
81
+ bytes[i] = binaryString.charCodeAt(i);
82
+ }
83
+ }
84
+ else {
85
+ throw new Error('No base64 decoder available in this environment');
86
+ }
87
+ if (bytes.length === 0) {
88
+ throw new Error('Invalid base64 payload');
89
+ }
90
+ if (encodeBase64(bytes) !== padded) {
91
+ throw new Error('Invalid base64 payload');
92
+ }
93
+ return bytes;
94
+ }
95
+ function detectImageFormat(bytes) {
96
+ if (hasPrefix(bytes, [0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a])) {
97
+ return 'png';
98
+ }
99
+ if (hasPrefix(bytes, [0xff, 0xd8, 0xff])) {
100
+ return 'jpeg';
101
+ }
102
+ return null;
103
+ }
104
+ function detectIsoBmffFormat(bytes) {
105
+ if (bytes.length < 12 || ascii(bytes, 4, 4) !== 'ftyp') {
106
+ return null;
107
+ }
108
+ const majorBrand = ascii(bytes, 8, 4);
109
+ if (majorBrand === 'qt ') {
110
+ return 'quicktime';
111
+ }
112
+ return 'mp4';
113
+ }
114
+ function isLikelyMp3Frame(bytes) {
115
+ if (bytes.length < 2) {
116
+ return false;
117
+ }
118
+ const b0 = bytes[0];
119
+ const b1 = bytes[1];
120
+ const versionBits = (b1 >> 3) & 0x03;
121
+ const layerBits = (b1 >> 1) & 0x03;
122
+ return b0 === 0xff && (b1 & 0xe0) === 0xe0 && versionBits !== 0x01 && layerBits !== 0x00;
123
+ }
124
+ function detectAudioFormat(bytes) {
125
+ if (ascii(bytes, 0, 4) === 'RIFF' && ascii(bytes, 8, 4) === 'WAVE') {
126
+ return 'wav';
127
+ }
128
+ if (ascii(bytes, 0, 3) === 'ID3' || isLikelyMp3Frame(bytes)) {
129
+ return 'mpeg';
130
+ }
131
+ const isoFormat = detectIsoBmffFormat(bytes);
132
+ if (isoFormat === 'mp4') {
133
+ return 'mp4';
134
+ }
135
+ return null;
136
+ }
137
+ function detectVideoFormat(bytes) {
138
+ const isoFormat = detectIsoBmffFormat(bytes);
139
+ if (isoFormat === 'quicktime') {
140
+ return 'quicktime';
141
+ }
142
+ if (isoFormat === 'mp4') {
143
+ return 'mp4';
144
+ }
145
+ return null;
146
+ }
147
+ function parsePngDimensions(bytes) {
148
+ if (bytes.length < 24 || ascii(bytes, 12, 4) !== 'IHDR') {
149
+ return null;
150
+ }
151
+ const width = (bytes[16] << 24) | (bytes[17] << 16) | (bytes[18] << 8) | bytes[19];
152
+ const height = (bytes[20] << 24) | (bytes[21] << 16) | (bytes[22] << 8) | bytes[23];
153
+ if (width <= 0 || height <= 0) {
154
+ return null;
155
+ }
156
+ return { width, height };
157
+ }
158
+ function parseJpegDimensions(bytes) {
159
+ let offset = 2;
160
+ while (offset + 1 < bytes.length) {
161
+ while (offset < bytes.length && bytes[offset] !== 0xff) {
162
+ offset += 1;
163
+ }
164
+ while (offset < bytes.length && bytes[offset] === 0xff) {
165
+ offset += 1;
166
+ }
167
+ if (offset >= bytes.length) {
168
+ break;
169
+ }
170
+ const marker = bytes[offset];
171
+ offset += 1;
172
+ if (marker === 0xd8 ||
173
+ marker === 0xd9 ||
174
+ (marker >= 0xd0 && marker <= 0xd7) ||
175
+ marker === 0x01) {
176
+ continue;
177
+ }
178
+ if (offset + 1 >= bytes.length) {
179
+ break;
180
+ }
181
+ const segmentLength = (bytes[offset] << 8) | bytes[offset + 1];
182
+ if (segmentLength < 2 || offset + segmentLength > bytes.length) {
183
+ break;
184
+ }
185
+ const isStartOfFrame = marker >= 0xc0 && marker <= 0xcf && marker !== 0xc4 && marker !== 0xc8 && marker !== 0xcc;
186
+ if (isStartOfFrame) {
187
+ if (offset + 6 >= bytes.length) {
188
+ break;
189
+ }
190
+ const height = (bytes[offset + 3] << 8) | bytes[offset + 4];
191
+ const width = (bytes[offset + 5] << 8) | bytes[offset + 6];
192
+ if (width > 0 && height > 0) {
193
+ return { width, height };
194
+ }
195
+ return null;
196
+ }
197
+ offset += segmentLength;
198
+ }
199
+ return null;
200
+ }
201
+ function parseImageDimensions(bytes, format) {
202
+ switch (format) {
203
+ case 'png':
204
+ return parsePngDimensions(bytes);
205
+ case 'jpeg':
206
+ return parseJpegDimensions(bytes);
207
+ default:
208
+ return null;
209
+ }
210
+ }
211
+ function validateMagicBytes(mediaType, mimeType, bytes) {
212
+ if (mediaType === 'image') {
213
+ const expectedFormat = IMAGE_MIME_FORMATS[mimeType];
214
+ if (!expectedFormat) {
215
+ throw new Error(`Unsupported inline image MIME type ${mimeType}. Allowed types: ${getAllowedMimeTypes('image').join(', ')}`);
216
+ }
217
+ const detectedFormat = detectImageFormat(bytes);
218
+ if (detectedFormat !== expectedFormat) {
219
+ throw new Error(`Inline image data does not match declared MIME type ${mimeType}`);
220
+ }
221
+ const dimensions = parseImageDimensions(bytes, detectedFormat);
222
+ if (!dimensions) {
223
+ throw new Error('Unable to determine inline image dimensions');
224
+ }
225
+ return dimensions;
226
+ }
227
+ if (mediaType === 'audio') {
228
+ const expectedFormat = AUDIO_MIME_FORMATS[mimeType];
229
+ if (!expectedFormat) {
230
+ throw new Error(`Unsupported inline audio MIME type ${mimeType}. Allowed types: ${getAllowedMimeTypes('audio').join(', ')}`);
231
+ }
232
+ const detectedFormat = detectAudioFormat(bytes);
233
+ if (detectedFormat !== expectedFormat) {
234
+ throw new Error(`Inline audio data does not match declared MIME type ${mimeType}`);
235
+ }
236
+ return undefined;
237
+ }
238
+ const expectedFormat = VIDEO_MIME_FORMATS[mimeType];
239
+ if (!expectedFormat) {
240
+ throw new Error(`Unsupported inline video MIME type ${mimeType}. Allowed types: ${getAllowedMimeTypes('video').join(', ')}`);
241
+ }
242
+ const detectedFormat = detectVideoFormat(bytes);
243
+ if (detectedFormat !== expectedFormat) {
244
+ throw new Error(`Inline video data does not match declared MIME type ${mimeType}`);
245
+ }
246
+ return undefined;
247
+ }
248
+ function validateImageDimensions(dimensions, maxLongestSide) {
249
+ if (Math.max(dimensions.width, dimensions.height) > maxLongestSide) {
250
+ throw new Error(`Inline image exceeds maximum dimensions of ${maxLongestSide}px on its longest side`);
251
+ }
252
+ }
253
+ export function parseInlineMediaDataUri(input, mediaType, options = {}) {
254
+ const trimmed = input.trim();
255
+ const match = /^data:([^;,]+);base64,([A-Za-z0-9+/=\s]+)$/i.exec(trimmed);
256
+ if (!match) {
257
+ throw new Error(`Only inline base64-encoded data URIs are supported for ${mediaType} inputs; remote URLs are not allowed`);
258
+ }
259
+ const mimeType = match[1].toLowerCase();
260
+ const bytes = decodeStrictBase64(match[2]);
261
+ if (options.maxBytes !== undefined && bytes.length > options.maxBytes) {
262
+ throw new Error(`${mediaType} input exceeds ${Math.round(options.maxBytes / (1024 * 1024))}MB limit`);
263
+ }
264
+ const imageDimensions = validateMagicBytes(mediaType, mimeType, bytes);
265
+ if (imageDimensions && options.maxImageLongestSide !== undefined) {
266
+ validateImageDimensions(imageDimensions, options.maxImageLongestSide);
267
+ }
268
+ const blobBytes = new Uint8Array(bytes.length);
269
+ blobBytes.set(bytes);
270
+ return {
271
+ mimeType,
272
+ blob: new Blob([blobBytes], { type: mimeType }),
273
+ byteLength: bytes.length,
274
+ imageDimensions
275
+ };
276
+ }
277
+ //# sourceMappingURL=mediaValidation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mediaValidation.js","sourceRoot":"","sources":["../../src/lib/mediaValidation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import { jwtDecode } from 'jwt-decode';
11
+ export function decodeToken(token) {
12
+ const data = jwtDecode(token);
13
+ return {
14
+ walletAddress: data.addr,
15
+ expiresAt: new Date(data.exp * 1000)
16
+ };
17
+ }
18
+ export function decodeRefreshToken(token) {
19
+ const data = jwtDecode(token);
20
+ return {
21
+ env: data.env,
22
+ expiresAt: new Date(data.exp * 1000)
23
+ };
24
+ }
25
+ export function delay(ms) {
26
+ return __awaiter(this, void 0, void 0, function* () {
27
+ return new Promise((resolve) => setTimeout(resolve, ms));
28
+ });
29
+ }
30
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/utils/index.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC,MAAM,UAAU,WAAW,CAAC,KAAa;IACvC,MAAM,IAAI,GAAG,SAAS,CAA0D,KAAK,CAAC,CAAC;IACvF,OAAO;QACL,aAAa,EAAE,IAAI,CAAC,IAAI;QACxB,SAAS,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC;KACrC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,KAAa;IAC9C,MAAM,IAAI,GAAG,SAAS,CAA0D,KAAK,CAAC,CAAC;IACvF,OAAO;QACL,GAAG,EAAE,IAAI,CAAC,GAAG;QACb,SAAS,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC;KACrC,CAAC;AACJ,CAAC;AAED,MAAM,UAAgB,KAAK,CAAC,EAAU;;QACpC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;IAC3D,CAAC;CAAA"}