@coopenomics/sdk 2.2.2 → 2.2.3
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.
- package/dist/index.cjs +150 -3
- package/dist/index.d.cts +151 -24
- package/dist/index.d.mts +151 -24
- package/dist/index.d.ts +151 -24
- package/dist/index.mjs +151 -4
- package/package.json +2 -2
package/dist/index.cjs
CHANGED
|
@@ -11,6 +11,133 @@ function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'defau
|
|
|
11
11
|
|
|
12
12
|
const WebSocket__default = /*#__PURE__*/_interopDefaultCompat(WebSocket);
|
|
13
13
|
|
|
14
|
+
var __defProp$2 = Object.defineProperty;
|
|
15
|
+
var __defNormalProp$2 = (obj, key, value) => key in obj ? __defProp$2(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
16
|
+
var __publicField$2 = (obj, key, value) => {
|
|
17
|
+
__defNormalProp$2(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
18
|
+
return value;
|
|
19
|
+
};
|
|
20
|
+
class Account {
|
|
21
|
+
constructor() {
|
|
22
|
+
__publicField$2(this, "username");
|
|
23
|
+
__publicField$2(this, "private_key");
|
|
24
|
+
__publicField$2(this, "public_key");
|
|
25
|
+
this.username = Account.generateUsername();
|
|
26
|
+
const keys = Account.generateKeys();
|
|
27
|
+
this.private_key = keys.private_key;
|
|
28
|
+
this.public_key = keys.public_key;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Генерирует случайное имя длиной 12 символов, состоящее только из букв.
|
|
32
|
+
* @returns Случайное имя.
|
|
33
|
+
*/
|
|
34
|
+
static generateUsername() {
|
|
35
|
+
let result = "";
|
|
36
|
+
const possible = "abcdefghijklmnopqrstuvwxyz";
|
|
37
|
+
for (let i = 0; i < 12; i++) {
|
|
38
|
+
result += possible.charAt(Math.floor(Math.random() * possible.length));
|
|
39
|
+
}
|
|
40
|
+
return result;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Генерирует пару ключей (приватный и публичный) с использованием библиотеки @wharfkit/antelope.
|
|
44
|
+
* @returns Объект с приватным и публичным ключами.
|
|
45
|
+
*/
|
|
46
|
+
static generateKeys() {
|
|
47
|
+
const private_key_data = antelope.PrivateKey.generate("K1");
|
|
48
|
+
const public_key = private_key_data.toPublic().toString();
|
|
49
|
+
const private_key = private_key_data.toWif();
|
|
50
|
+
return {
|
|
51
|
+
private_key,
|
|
52
|
+
public_key
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
var __defProp$1 = Object.defineProperty;
|
|
58
|
+
var __defNormalProp$1 = (obj, key, value) => key in obj ? __defProp$1(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
59
|
+
var __publicField$1 = (obj, key, value) => {
|
|
60
|
+
__defNormalProp$1(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
61
|
+
return value;
|
|
62
|
+
};
|
|
63
|
+
class Canvas {
|
|
64
|
+
/**
|
|
65
|
+
* Создаёт элемент `<canvas>` внутри указанного контейнера.
|
|
66
|
+
* @param container - HTML-элемент, внутри которого создаётся canvas.
|
|
67
|
+
* @param width - Ширина canvas (по умолчанию 300).
|
|
68
|
+
* @param height - Высота canvas (по умолчанию 150).
|
|
69
|
+
*/
|
|
70
|
+
constructor(container, width = 300, height = 150) {
|
|
71
|
+
__publicField$1(this, "canvas");
|
|
72
|
+
__publicField$1(this, "ctx");
|
|
73
|
+
__publicField$1(this, "state", {
|
|
74
|
+
drawing: false,
|
|
75
|
+
lastX: 0,
|
|
76
|
+
lastY: 0
|
|
77
|
+
});
|
|
78
|
+
this.canvas = document.createElement("canvas");
|
|
79
|
+
this.canvas.width = width;
|
|
80
|
+
this.canvas.height = height;
|
|
81
|
+
container.appendChild(this.canvas);
|
|
82
|
+
this.ctx = this.canvas.getContext("2d");
|
|
83
|
+
this.ctx.lineWidth = 5;
|
|
84
|
+
this.ctx.lineJoin = "round";
|
|
85
|
+
this.ctx.lineCap = "round";
|
|
86
|
+
this.ctx.strokeStyle = "#000";
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Полностью очищает canvas.
|
|
90
|
+
*/
|
|
91
|
+
clearCanvas() {
|
|
92
|
+
this.ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Запускает процесс рисования (фиксирует начальные координаты).
|
|
96
|
+
* @param e - Событие мыши или касания.
|
|
97
|
+
*/
|
|
98
|
+
startDrawing(e) {
|
|
99
|
+
e.preventDefault();
|
|
100
|
+
this.state.drawing = true;
|
|
101
|
+
const rect = this.canvas.getBoundingClientRect();
|
|
102
|
+
const clientX = e instanceof MouseEvent ? e.clientX : e.touches[0].clientX;
|
|
103
|
+
const clientY = e instanceof MouseEvent ? e.clientY : e.touches[0].clientY;
|
|
104
|
+
this.state.lastX = clientX - rect.left;
|
|
105
|
+
this.state.lastY = clientY - rect.top;
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Выполняет рисование линии от предыдущей точки к текущей.
|
|
109
|
+
* @param e - Событие мыши или касания.
|
|
110
|
+
*/
|
|
111
|
+
draw(e) {
|
|
112
|
+
if (!this.state.drawing)
|
|
113
|
+
return;
|
|
114
|
+
e.preventDefault();
|
|
115
|
+
this.ctx.beginPath();
|
|
116
|
+
this.ctx.moveTo(this.state.lastX, this.state.lastY);
|
|
117
|
+
const rect = this.canvas.getBoundingClientRect();
|
|
118
|
+
const clientX = e instanceof MouseEvent ? e.clientX : e.touches[0].clientX;
|
|
119
|
+
const clientY = e instanceof MouseEvent ? e.clientY : e.touches[0].clientY;
|
|
120
|
+
const x = clientX - rect.left;
|
|
121
|
+
const y = clientY - rect.top;
|
|
122
|
+
this.ctx.lineTo(x, y);
|
|
123
|
+
this.ctx.stroke();
|
|
124
|
+
this.state.lastX = x;
|
|
125
|
+
this.state.lastY = y;
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Завершает процесс рисования (drawing = false).
|
|
129
|
+
*/
|
|
130
|
+
endDrawing() {
|
|
131
|
+
this.state.drawing = false;
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Возвращает текущее содержимое canvas в формате base64 (PNG).
|
|
135
|
+
*/
|
|
136
|
+
getSignature() {
|
|
137
|
+
return this.canvas.toDataURL("image/png");
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
|
|
14
141
|
var __defProp = Object.defineProperty;
|
|
15
142
|
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
16
143
|
var __publicField = (obj, key, value) => {
|
|
@@ -103,6 +230,8 @@ class Wallet {
|
|
|
103
230
|
|
|
104
231
|
const Classes = {
|
|
105
232
|
__proto__: null,
|
|
233
|
+
Account: Account,
|
|
234
|
+
Canvas: Canvas,
|
|
106
235
|
Wallet: Wallet
|
|
107
236
|
};
|
|
108
237
|
|
|
@@ -1373,12 +1502,22 @@ const Gql = Chain(HOST, {
|
|
|
1373
1502
|
const ZeusScalars = ZeusSelect();
|
|
1374
1503
|
const fields = (k) => {
|
|
1375
1504
|
const t = ReturnTypes[k];
|
|
1505
|
+
const fnType = k in AllTypesProps ? AllTypesProps[k] : void 0;
|
|
1506
|
+
const hasFnTypes = typeof fnType === "object" ? fnType : void 0;
|
|
1376
1507
|
const o = Object.fromEntries(
|
|
1377
|
-
Object.entries(t).filter(([, value]) => {
|
|
1508
|
+
Object.entries(t).filter(([k2, value]) => {
|
|
1509
|
+
const isFunctionType = hasFnTypes && k2 in hasFnTypes && !!hasFnTypes[k2];
|
|
1510
|
+
if (isFunctionType)
|
|
1511
|
+
return false;
|
|
1378
1512
|
const isReturnType = ReturnTypes[value];
|
|
1379
|
-
if (!isReturnType
|
|
1513
|
+
if (!isReturnType)
|
|
1514
|
+
return true;
|
|
1515
|
+
if (typeof isReturnType !== "string")
|
|
1516
|
+
return false;
|
|
1517
|
+
if (isReturnType.startsWith("scalar.")) {
|
|
1380
1518
|
return true;
|
|
1381
1519
|
}
|
|
1520
|
+
return false;
|
|
1382
1521
|
}).map(([key]) => [key, true])
|
|
1383
1522
|
);
|
|
1384
1523
|
return o;
|
|
@@ -3147,6 +3286,14 @@ if (typeof globalThis.WebSocket === "undefined") {
|
|
|
3147
3286
|
globalThis.WebSocket = WebSocket__default;
|
|
3148
3287
|
}
|
|
3149
3288
|
let currentHeaders = {};
|
|
3289
|
+
const scalars = ZeusScalars({
|
|
3290
|
+
DateTime: {
|
|
3291
|
+
decode: (e) => new Date(e),
|
|
3292
|
+
// Преобразует строку в объект Date
|
|
3293
|
+
encode: (e) => e.toISOString()
|
|
3294
|
+
// Преобразует Date в ISO-строку
|
|
3295
|
+
}
|
|
3296
|
+
});
|
|
3150
3297
|
function createThunder(baseUrl) {
|
|
3151
3298
|
return Thunder(async (query, variables) => {
|
|
3152
3299
|
const response = await fetch(baseUrl, {
|
|
@@ -3175,7 +3322,7 @@ function createThunder(baseUrl) {
|
|
|
3175
3322
|
throw json.errors;
|
|
3176
3323
|
}
|
|
3177
3324
|
return json.data;
|
|
3178
|
-
});
|
|
3325
|
+
}, { scalars });
|
|
3179
3326
|
}
|
|
3180
3327
|
function createClient(options) {
|
|
3181
3328
|
currentHeaders = options.headers || {};
|
package/dist/index.d.cts
CHANGED
|
@@ -50,9 +50,10 @@ declare const Gql: <O extends keyof typeof Ops, OVERRIDESCLR extends ScalarDefin
|
|
|
50
50
|
variables?: Record<string, unknown>;
|
|
51
51
|
}) => Promise<InputType<GraphQLTypes[R], Z, UnionOverrideKeys<ScalarDefinition, OVERRIDESCLR>>>;
|
|
52
52
|
declare const ZeusScalars: SelectionFunction<ScalarCoders>;
|
|
53
|
+
type BaseSymbol = number | string | undefined | boolean | null;
|
|
53
54
|
type ScalarsSelector<T> = {
|
|
54
55
|
[X in Required<{
|
|
55
|
-
[P in keyof T]: T[P] extends
|
|
56
|
+
[P in keyof T]: T[P] extends BaseSymbol | Array<BaseSymbol> ? P : never;
|
|
56
57
|
}>[keyof T]]: true;
|
|
57
58
|
};
|
|
58
59
|
declare const fields: <T extends keyof ModelTypes>(k: T) => ScalarsSelector<ModelTypes[T]>;
|
|
@@ -300,6 +301,7 @@ type ValueTypes = {
|
|
|
300
301
|
totalPages?: boolean | `@${string}`;
|
|
301
302
|
__typename?: boolean | `@${string}`;
|
|
302
303
|
}>;
|
|
304
|
+
/** Массив комплексных актов, содержащих полную информацию о сгенерированном и опубликованном документах */
|
|
303
305
|
["ActDetail"]: AliasType<{
|
|
304
306
|
action?: ValueTypes["ExtendedBlockchainAction"];
|
|
305
307
|
document?: ValueTypes["GeneratedDocument"];
|
|
@@ -951,15 +953,15 @@ type ValueTypes = {
|
|
|
951
953
|
__typename?: boolean | `@${string}`;
|
|
952
954
|
}>;
|
|
953
955
|
["ExtensionInput"]: {
|
|
954
|
-
/**
|
|
956
|
+
/** Объект конфигурации расширения */
|
|
955
957
|
config: ValueTypes["JSON"] | Variable<any, string>;
|
|
956
|
-
/**
|
|
958
|
+
/** Дата установки расширения */
|
|
957
959
|
created_at?: ValueTypes["DateTime"] | undefined | null | Variable<any, string>;
|
|
958
|
-
/**
|
|
960
|
+
/** Флаг того, включено ли расширение сейчас */
|
|
959
961
|
enabled: boolean | Variable<any, string>;
|
|
960
|
-
/**
|
|
962
|
+
/** Уникальное имя расширения (является идентификатором) */
|
|
961
963
|
name: string | Variable<any, string>;
|
|
962
|
-
/**
|
|
964
|
+
/** Дата обновления расширения */
|
|
963
965
|
updated_at?: ValueTypes["DateTime"] | undefined | null | Variable<any, string>;
|
|
964
966
|
};
|
|
965
967
|
["FreeDecisionDocument"]: AliasType<{
|
|
@@ -2454,6 +2456,7 @@ type ResolverInputTypes = {
|
|
|
2454
2456
|
totalPages?: boolean | `@${string}`;
|
|
2455
2457
|
__typename?: boolean | `@${string}`;
|
|
2456
2458
|
}>;
|
|
2459
|
+
/** Массив комплексных актов, содержащих полную информацию о сгенерированном и опубликованном документах */
|
|
2457
2460
|
["ActDetail"]: AliasType<{
|
|
2458
2461
|
action?: ResolverInputTypes["ExtendedBlockchainAction"];
|
|
2459
2462
|
document?: ResolverInputTypes["GeneratedDocument"];
|
|
@@ -3105,15 +3108,15 @@ type ResolverInputTypes = {
|
|
|
3105
3108
|
__typename?: boolean | `@${string}`;
|
|
3106
3109
|
}>;
|
|
3107
3110
|
["ExtensionInput"]: {
|
|
3108
|
-
/**
|
|
3111
|
+
/** Объект конфигурации расширения */
|
|
3109
3112
|
config: ResolverInputTypes["JSON"];
|
|
3110
|
-
/**
|
|
3113
|
+
/** Дата установки расширения */
|
|
3111
3114
|
created_at?: ResolverInputTypes["DateTime"] | undefined | null;
|
|
3112
|
-
/**
|
|
3115
|
+
/** Флаг того, включено ли расширение сейчас */
|
|
3113
3116
|
enabled: boolean;
|
|
3114
|
-
/**
|
|
3117
|
+
/** Уникальное имя расширения (является идентификатором) */
|
|
3115
3118
|
name: string;
|
|
3116
|
-
/**
|
|
3119
|
+
/** Дата обновления расширения */
|
|
3117
3120
|
updated_at?: ResolverInputTypes["DateTime"] | undefined | null;
|
|
3118
3121
|
};
|
|
3119
3122
|
["FreeDecisionDocument"]: AliasType<{
|
|
@@ -4608,6 +4611,7 @@ type ModelTypes = {
|
|
|
4608
4611
|
/** Общее количество страниц */
|
|
4609
4612
|
totalPages: number;
|
|
4610
4613
|
};
|
|
4614
|
+
/** Массив комплексных актов, содержащих полную информацию о сгенерированном и опубликованном документах */
|
|
4611
4615
|
["ActDetail"]: {
|
|
4612
4616
|
action?: ModelTypes["ExtendedBlockchainAction"] | undefined | null;
|
|
4613
4617
|
document?: ModelTypes["GeneratedDocument"] | undefined | null;
|
|
@@ -5229,15 +5233,15 @@ type ModelTypes = {
|
|
|
5229
5233
|
updated_at: ModelTypes["DateTime"];
|
|
5230
5234
|
};
|
|
5231
5235
|
["ExtensionInput"]: {
|
|
5232
|
-
/**
|
|
5236
|
+
/** Объект конфигурации расширения */
|
|
5233
5237
|
config: ModelTypes["JSON"];
|
|
5234
|
-
/**
|
|
5238
|
+
/** Дата установки расширения */
|
|
5235
5239
|
created_at?: ModelTypes["DateTime"] | undefined | null;
|
|
5236
|
-
/**
|
|
5240
|
+
/** Флаг того, включено ли расширение сейчас */
|
|
5237
5241
|
enabled: boolean;
|
|
5238
|
-
/**
|
|
5242
|
+
/** Уникальное имя расширения (является идентификатором) */
|
|
5239
5243
|
name: string;
|
|
5240
|
-
/**
|
|
5244
|
+
/** Дата обновления расширения */
|
|
5241
5245
|
updated_at?: ModelTypes["DateTime"] | undefined | null;
|
|
5242
5246
|
};
|
|
5243
5247
|
["FreeDecisionDocument"]: {
|
|
@@ -6613,6 +6617,7 @@ type GraphQLTypes = {
|
|
|
6613
6617
|
/** Общее количество страниц */
|
|
6614
6618
|
totalPages: number;
|
|
6615
6619
|
};
|
|
6620
|
+
/** Массив комплексных актов, содержащих полную информацию о сгенерированном и опубликованном документах */
|
|
6616
6621
|
["ActDetail"]: {
|
|
6617
6622
|
__typename: "ActDetail";
|
|
6618
6623
|
action?: GraphQLTypes["ExtendedBlockchainAction"] | undefined | null;
|
|
@@ -7266,15 +7271,15 @@ type GraphQLTypes = {
|
|
|
7266
7271
|
updated_at: GraphQLTypes["DateTime"];
|
|
7267
7272
|
};
|
|
7268
7273
|
["ExtensionInput"]: {
|
|
7269
|
-
/**
|
|
7274
|
+
/** Объект конфигурации расширения */
|
|
7270
7275
|
config: GraphQLTypes["JSON"];
|
|
7271
|
-
/**
|
|
7276
|
+
/** Дата установки расширения */
|
|
7272
7277
|
created_at?: GraphQLTypes["DateTime"] | undefined | null;
|
|
7273
|
-
/**
|
|
7278
|
+
/** Флаг того, включено ли расширение сейчас */
|
|
7274
7279
|
enabled: boolean;
|
|
7275
|
-
/**
|
|
7280
|
+
/** Уникальное имя расширения (является идентификатором) */
|
|
7276
7281
|
name: string;
|
|
7277
|
-
/**
|
|
7282
|
+
/** Дата обновления расширения */
|
|
7278
7283
|
updated_at?: GraphQLTypes["DateTime"] | undefined | null;
|
|
7279
7284
|
};
|
|
7280
7285
|
["FreeDecisionDocument"]: {
|
|
@@ -9081,6 +9086,104 @@ declare namespace index$j {
|
|
|
9081
9086
|
export type { index$j_AccountResourceInfo as AccountResourceInfo, index$j_Authority as Authority, index$j_BlockchainAccountInterface as BlockchainAccountInterface, index$j_BlockchainConfig as BlockchainConfig, index$j_ClientConnectionOptions as ClientConnectionOptions, index$j_DeserializedDescriptionOfExtension as DeserializedDescriptionOfExtension, index$j_GetInfoResult as GetInfoResult, index$j_IndexPosition as IndexPosition, index$j_KeyWeight as KeyWeight, index$j_Permission as Permission, index$j_PermissionLevel as PermissionLevel, index$j_PermissionLevelWeight as PermissionLevelWeight, index$j_RefundRequest as RefundRequest, index$j_ResourceDelegation as ResourceDelegation, index$j_ResourceOverview as ResourceOverview, index$j_WaitWeight as WaitWeight };
|
|
9082
9087
|
}
|
|
9083
9088
|
|
|
9089
|
+
/**
|
|
9090
|
+
* Класс `Account` генерирует объект с именем, приватным и публичным ключами.
|
|
9091
|
+
*
|
|
9092
|
+
* @example
|
|
9093
|
+
* ```ts
|
|
9094
|
+
* const account = new Account();
|
|
9095
|
+
* console.log(account);
|
|
9096
|
+
* // {
|
|
9097
|
+
* // name: "abcdxyzuvwrs",
|
|
9098
|
+
* // privateKey: "5JxyzABC1234567890defGHIJKLMNopqRSTUV",
|
|
9099
|
+
* // publicKey: "EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5SozEZ8i8jUBS6yX79y6"
|
|
9100
|
+
* // }
|
|
9101
|
+
* ```
|
|
9102
|
+
*/
|
|
9103
|
+
declare class Account {
|
|
9104
|
+
username: string;
|
|
9105
|
+
private_key: string;
|
|
9106
|
+
public_key: string;
|
|
9107
|
+
constructor();
|
|
9108
|
+
/**
|
|
9109
|
+
* Генерирует случайное имя длиной 12 символов, состоящее только из букв.
|
|
9110
|
+
* @returns Случайное имя.
|
|
9111
|
+
*/
|
|
9112
|
+
private static generateUsername;
|
|
9113
|
+
/**
|
|
9114
|
+
* Генерирует пару ключей (приватный и публичный) с использованием библиотеки @wharfkit/antelope.
|
|
9115
|
+
* @returns Объект с приватным и публичным ключами.
|
|
9116
|
+
*/
|
|
9117
|
+
private static generateKeys;
|
|
9118
|
+
}
|
|
9119
|
+
|
|
9120
|
+
/**
|
|
9121
|
+
* Класс `Canvas` инкапсулирует работу с HTML5 `<canvas>`:
|
|
9122
|
+
* - создание и инициализация canvas внутри переданного контейнера;
|
|
9123
|
+
* - очистка canvas;
|
|
9124
|
+
* - управление процессом рисования (начало, рисование, завершение);
|
|
9125
|
+
* - получение содержимого (подписи) в формате base64.
|
|
9126
|
+
*
|
|
9127
|
+
* @remarks
|
|
9128
|
+
* Все методы и состояние рисования (координаты, флаг `drawing`) хранятся внутри класса.
|
|
9129
|
+
*
|
|
9130
|
+
* @example
|
|
9131
|
+
* ```ts
|
|
9132
|
+
* const container = document.getElementById('canvas-container') as HTMLElement
|
|
9133
|
+
* const myCanvas = new Canvas(container, 500, 300)
|
|
9134
|
+
*
|
|
9135
|
+
* // События мыши
|
|
9136
|
+
* myCanvas.canvas.addEventListener('mousedown', (e) => myCanvas.startDrawing(e))
|
|
9137
|
+
* myCanvas.canvas.addEventListener('mousemove', (e) => myCanvas.draw(e))
|
|
9138
|
+
* myCanvas.canvas.addEventListener('mouseup', () => myCanvas.endDrawing())
|
|
9139
|
+
*
|
|
9140
|
+
* // Очистка холста
|
|
9141
|
+
* document.getElementById('clear-btn')?.addEventListener('click', () => {
|
|
9142
|
+
* myCanvas.clearCanvas()
|
|
9143
|
+
* })
|
|
9144
|
+
*
|
|
9145
|
+
* // Получение подписи (base64)
|
|
9146
|
+
* document.getElementById('get-sign-btn')?.addEventListener('click', () => {
|
|
9147
|
+
* const signature = myCanvas.getSignature()
|
|
9148
|
+
* console.log('Подпись (base64):', signature)
|
|
9149
|
+
* })
|
|
9150
|
+
* ```
|
|
9151
|
+
*/
|
|
9152
|
+
declare class Canvas {
|
|
9153
|
+
canvas: HTMLCanvasElement;
|
|
9154
|
+
ctx: CanvasRenderingContext2D;
|
|
9155
|
+
private state;
|
|
9156
|
+
/**
|
|
9157
|
+
* Создаёт элемент `<canvas>` внутри указанного контейнера.
|
|
9158
|
+
* @param container - HTML-элемент, внутри которого создаётся canvas.
|
|
9159
|
+
* @param width - Ширина canvas (по умолчанию 300).
|
|
9160
|
+
* @param height - Высота canvas (по умолчанию 150).
|
|
9161
|
+
*/
|
|
9162
|
+
constructor(container: HTMLElement, width?: number, height?: number);
|
|
9163
|
+
/**
|
|
9164
|
+
* Полностью очищает canvas.
|
|
9165
|
+
*/
|
|
9166
|
+
clearCanvas(): void;
|
|
9167
|
+
/**
|
|
9168
|
+
* Запускает процесс рисования (фиксирует начальные координаты).
|
|
9169
|
+
* @param e - Событие мыши или касания.
|
|
9170
|
+
*/
|
|
9171
|
+
startDrawing(e: MouseEvent | TouchEvent): void;
|
|
9172
|
+
/**
|
|
9173
|
+
* Выполняет рисование линии от предыдущей точки к текущей.
|
|
9174
|
+
* @param e - Событие мыши или касания.
|
|
9175
|
+
*/
|
|
9176
|
+
draw(e: MouseEvent | TouchEvent): void;
|
|
9177
|
+
/**
|
|
9178
|
+
* Завершает процесс рисования (drawing = false).
|
|
9179
|
+
*/
|
|
9180
|
+
endDrawing(): void;
|
|
9181
|
+
/**
|
|
9182
|
+
* Возвращает текущее содержимое canvas в формате base64 (PNG).
|
|
9183
|
+
*/
|
|
9184
|
+
getSignature(): string;
|
|
9185
|
+
}
|
|
9186
|
+
|
|
9084
9187
|
/**
|
|
9085
9188
|
* Описание класса будет здесь
|
|
9086
9189
|
*/
|
|
@@ -9112,10 +9215,14 @@ declare class Wallet {
|
|
|
9112
9215
|
private createTable;
|
|
9113
9216
|
}
|
|
9114
9217
|
|
|
9218
|
+
type Classes_Account = Account;
|
|
9219
|
+
declare const Classes_Account: typeof Account;
|
|
9220
|
+
type Classes_Canvas = Canvas;
|
|
9221
|
+
declare const Classes_Canvas: typeof Canvas;
|
|
9115
9222
|
type Classes_Wallet = Wallet;
|
|
9116
9223
|
declare const Classes_Wallet: typeof Wallet;
|
|
9117
9224
|
declare namespace Classes {
|
|
9118
|
-
export { Classes_Wallet as Wallet };
|
|
9225
|
+
export { Classes_Account as Account, Classes_Canvas as Canvas, Classes_Wallet as Wallet };
|
|
9119
9226
|
}
|
|
9120
9227
|
|
|
9121
9228
|
declare const name$J = "installExtension";
|
|
@@ -14060,7 +14167,17 @@ declare function createClient(options: ClientConnectionOptions): {
|
|
|
14060
14167
|
getPaymentMethods: GraphQLTypes["PaymentMethodPaginationResult"];
|
|
14061
14168
|
getPayments: GraphQLTypes["PaymentPaginationResult"];
|
|
14062
14169
|
getSystemInfo: GraphQLTypes["SystemInfo"];
|
|
14063
|
-
}, Z, Omit<
|
|
14170
|
+
}, Z, Omit<{
|
|
14171
|
+
DateTime: {
|
|
14172
|
+
decode: (e: unknown) => Date;
|
|
14173
|
+
encode: (e: unknown) => string;
|
|
14174
|
+
};
|
|
14175
|
+
}, "DateTime"> & {
|
|
14176
|
+
DateTime: {
|
|
14177
|
+
decode: (e: unknown) => Date;
|
|
14178
|
+
encode: (e: unknown) => string;
|
|
14179
|
+
};
|
|
14180
|
+
}>>;
|
|
14064
14181
|
Mutation: <Z extends AliasType<{
|
|
14065
14182
|
addParticipant?: [{
|
|
14066
14183
|
data: ValueTypes["AddParticipantInput"] | Variable<any, string>;
|
|
@@ -14236,7 +14353,17 @@ declare function createClient(options: ClientConnectionOptions): {
|
|
|
14236
14353
|
updateBankAccount: GraphQLTypes["PaymentMethod"];
|
|
14237
14354
|
updateExtension: GraphQLTypes["Extension"];
|
|
14238
14355
|
updateSystem: GraphQLTypes["SystemInfo"];
|
|
14239
|
-
}, Z, Omit<
|
|
14356
|
+
}, Z, Omit<{
|
|
14357
|
+
DateTime: {
|
|
14358
|
+
decode: (e: unknown) => Date;
|
|
14359
|
+
encode: (e: unknown) => string;
|
|
14360
|
+
};
|
|
14361
|
+
}, "DateTime"> & {
|
|
14362
|
+
DateTime: {
|
|
14363
|
+
decode: (e: unknown) => Date;
|
|
14364
|
+
encode: (e: unknown) => string;
|
|
14365
|
+
};
|
|
14366
|
+
}>>;
|
|
14240
14367
|
Subscription: <O extends keyof typeof Ops, OVERRIDESCLR extends ScalarDefinition, R extends keyof ValueTypes = GenericOperation<O>>(operation: O, graphqlOptions?: ThunderGraphQLOptions<OVERRIDESCLR> | undefined) => <Z extends ValueTypes[R]>(o: Z & { [P in keyof Z]: P extends keyof ValueTypes[R] ? Z[P] : never; }, ops?: (OperationOptions & {
|
|
14241
14368
|
variables?: ExtractVariables<Z> | undefined;
|
|
14242
14369
|
}) | undefined) => SubscriptionToGraphQL<Z, GraphQLTypes[R], Omit<ScalarDefinition, keyof OVERRIDESCLR> & OVERRIDESCLR>;
|
package/dist/index.d.mts
CHANGED
|
@@ -50,9 +50,10 @@ declare const Gql: <O extends keyof typeof Ops, OVERRIDESCLR extends ScalarDefin
|
|
|
50
50
|
variables?: Record<string, unknown>;
|
|
51
51
|
}) => Promise<InputType<GraphQLTypes[R], Z, UnionOverrideKeys<ScalarDefinition, OVERRIDESCLR>>>;
|
|
52
52
|
declare const ZeusScalars: SelectionFunction<ScalarCoders>;
|
|
53
|
+
type BaseSymbol = number | string | undefined | boolean | null;
|
|
53
54
|
type ScalarsSelector<T> = {
|
|
54
55
|
[X in Required<{
|
|
55
|
-
[P in keyof T]: T[P] extends
|
|
56
|
+
[P in keyof T]: T[P] extends BaseSymbol | Array<BaseSymbol> ? P : never;
|
|
56
57
|
}>[keyof T]]: true;
|
|
57
58
|
};
|
|
58
59
|
declare const fields: <T extends keyof ModelTypes>(k: T) => ScalarsSelector<ModelTypes[T]>;
|
|
@@ -300,6 +301,7 @@ type ValueTypes = {
|
|
|
300
301
|
totalPages?: boolean | `@${string}`;
|
|
301
302
|
__typename?: boolean | `@${string}`;
|
|
302
303
|
}>;
|
|
304
|
+
/** Массив комплексных актов, содержащих полную информацию о сгенерированном и опубликованном документах */
|
|
303
305
|
["ActDetail"]: AliasType<{
|
|
304
306
|
action?: ValueTypes["ExtendedBlockchainAction"];
|
|
305
307
|
document?: ValueTypes["GeneratedDocument"];
|
|
@@ -951,15 +953,15 @@ type ValueTypes = {
|
|
|
951
953
|
__typename?: boolean | `@${string}`;
|
|
952
954
|
}>;
|
|
953
955
|
["ExtensionInput"]: {
|
|
954
|
-
/**
|
|
956
|
+
/** Объект конфигурации расширения */
|
|
955
957
|
config: ValueTypes["JSON"] | Variable<any, string>;
|
|
956
|
-
/**
|
|
958
|
+
/** Дата установки расширения */
|
|
957
959
|
created_at?: ValueTypes["DateTime"] | undefined | null | Variable<any, string>;
|
|
958
|
-
/**
|
|
960
|
+
/** Флаг того, включено ли расширение сейчас */
|
|
959
961
|
enabled: boolean | Variable<any, string>;
|
|
960
|
-
/**
|
|
962
|
+
/** Уникальное имя расширения (является идентификатором) */
|
|
961
963
|
name: string | Variable<any, string>;
|
|
962
|
-
/**
|
|
964
|
+
/** Дата обновления расширения */
|
|
963
965
|
updated_at?: ValueTypes["DateTime"] | undefined | null | Variable<any, string>;
|
|
964
966
|
};
|
|
965
967
|
["FreeDecisionDocument"]: AliasType<{
|
|
@@ -2454,6 +2456,7 @@ type ResolverInputTypes = {
|
|
|
2454
2456
|
totalPages?: boolean | `@${string}`;
|
|
2455
2457
|
__typename?: boolean | `@${string}`;
|
|
2456
2458
|
}>;
|
|
2459
|
+
/** Массив комплексных актов, содержащих полную информацию о сгенерированном и опубликованном документах */
|
|
2457
2460
|
["ActDetail"]: AliasType<{
|
|
2458
2461
|
action?: ResolverInputTypes["ExtendedBlockchainAction"];
|
|
2459
2462
|
document?: ResolverInputTypes["GeneratedDocument"];
|
|
@@ -3105,15 +3108,15 @@ type ResolverInputTypes = {
|
|
|
3105
3108
|
__typename?: boolean | `@${string}`;
|
|
3106
3109
|
}>;
|
|
3107
3110
|
["ExtensionInput"]: {
|
|
3108
|
-
/**
|
|
3111
|
+
/** Объект конфигурации расширения */
|
|
3109
3112
|
config: ResolverInputTypes["JSON"];
|
|
3110
|
-
/**
|
|
3113
|
+
/** Дата установки расширения */
|
|
3111
3114
|
created_at?: ResolverInputTypes["DateTime"] | undefined | null;
|
|
3112
|
-
/**
|
|
3115
|
+
/** Флаг того, включено ли расширение сейчас */
|
|
3113
3116
|
enabled: boolean;
|
|
3114
|
-
/**
|
|
3117
|
+
/** Уникальное имя расширения (является идентификатором) */
|
|
3115
3118
|
name: string;
|
|
3116
|
-
/**
|
|
3119
|
+
/** Дата обновления расширения */
|
|
3117
3120
|
updated_at?: ResolverInputTypes["DateTime"] | undefined | null;
|
|
3118
3121
|
};
|
|
3119
3122
|
["FreeDecisionDocument"]: AliasType<{
|
|
@@ -4608,6 +4611,7 @@ type ModelTypes = {
|
|
|
4608
4611
|
/** Общее количество страниц */
|
|
4609
4612
|
totalPages: number;
|
|
4610
4613
|
};
|
|
4614
|
+
/** Массив комплексных актов, содержащих полную информацию о сгенерированном и опубликованном документах */
|
|
4611
4615
|
["ActDetail"]: {
|
|
4612
4616
|
action?: ModelTypes["ExtendedBlockchainAction"] | undefined | null;
|
|
4613
4617
|
document?: ModelTypes["GeneratedDocument"] | undefined | null;
|
|
@@ -5229,15 +5233,15 @@ type ModelTypes = {
|
|
|
5229
5233
|
updated_at: ModelTypes["DateTime"];
|
|
5230
5234
|
};
|
|
5231
5235
|
["ExtensionInput"]: {
|
|
5232
|
-
/**
|
|
5236
|
+
/** Объект конфигурации расширения */
|
|
5233
5237
|
config: ModelTypes["JSON"];
|
|
5234
|
-
/**
|
|
5238
|
+
/** Дата установки расширения */
|
|
5235
5239
|
created_at?: ModelTypes["DateTime"] | undefined | null;
|
|
5236
|
-
/**
|
|
5240
|
+
/** Флаг того, включено ли расширение сейчас */
|
|
5237
5241
|
enabled: boolean;
|
|
5238
|
-
/**
|
|
5242
|
+
/** Уникальное имя расширения (является идентификатором) */
|
|
5239
5243
|
name: string;
|
|
5240
|
-
/**
|
|
5244
|
+
/** Дата обновления расширения */
|
|
5241
5245
|
updated_at?: ModelTypes["DateTime"] | undefined | null;
|
|
5242
5246
|
};
|
|
5243
5247
|
["FreeDecisionDocument"]: {
|
|
@@ -6613,6 +6617,7 @@ type GraphQLTypes = {
|
|
|
6613
6617
|
/** Общее количество страниц */
|
|
6614
6618
|
totalPages: number;
|
|
6615
6619
|
};
|
|
6620
|
+
/** Массив комплексных актов, содержащих полную информацию о сгенерированном и опубликованном документах */
|
|
6616
6621
|
["ActDetail"]: {
|
|
6617
6622
|
__typename: "ActDetail";
|
|
6618
6623
|
action?: GraphQLTypes["ExtendedBlockchainAction"] | undefined | null;
|
|
@@ -7266,15 +7271,15 @@ type GraphQLTypes = {
|
|
|
7266
7271
|
updated_at: GraphQLTypes["DateTime"];
|
|
7267
7272
|
};
|
|
7268
7273
|
["ExtensionInput"]: {
|
|
7269
|
-
/**
|
|
7274
|
+
/** Объект конфигурации расширения */
|
|
7270
7275
|
config: GraphQLTypes["JSON"];
|
|
7271
|
-
/**
|
|
7276
|
+
/** Дата установки расширения */
|
|
7272
7277
|
created_at?: GraphQLTypes["DateTime"] | undefined | null;
|
|
7273
|
-
/**
|
|
7278
|
+
/** Флаг того, включено ли расширение сейчас */
|
|
7274
7279
|
enabled: boolean;
|
|
7275
|
-
/**
|
|
7280
|
+
/** Уникальное имя расширения (является идентификатором) */
|
|
7276
7281
|
name: string;
|
|
7277
|
-
/**
|
|
7282
|
+
/** Дата обновления расширения */
|
|
7278
7283
|
updated_at?: GraphQLTypes["DateTime"] | undefined | null;
|
|
7279
7284
|
};
|
|
7280
7285
|
["FreeDecisionDocument"]: {
|
|
@@ -9081,6 +9086,104 @@ declare namespace index$j {
|
|
|
9081
9086
|
export type { index$j_AccountResourceInfo as AccountResourceInfo, index$j_Authority as Authority, index$j_BlockchainAccountInterface as BlockchainAccountInterface, index$j_BlockchainConfig as BlockchainConfig, index$j_ClientConnectionOptions as ClientConnectionOptions, index$j_DeserializedDescriptionOfExtension as DeserializedDescriptionOfExtension, index$j_GetInfoResult as GetInfoResult, index$j_IndexPosition as IndexPosition, index$j_KeyWeight as KeyWeight, index$j_Permission as Permission, index$j_PermissionLevel as PermissionLevel, index$j_PermissionLevelWeight as PermissionLevelWeight, index$j_RefundRequest as RefundRequest, index$j_ResourceDelegation as ResourceDelegation, index$j_ResourceOverview as ResourceOverview, index$j_WaitWeight as WaitWeight };
|
|
9082
9087
|
}
|
|
9083
9088
|
|
|
9089
|
+
/**
|
|
9090
|
+
* Класс `Account` генерирует объект с именем, приватным и публичным ключами.
|
|
9091
|
+
*
|
|
9092
|
+
* @example
|
|
9093
|
+
* ```ts
|
|
9094
|
+
* const account = new Account();
|
|
9095
|
+
* console.log(account);
|
|
9096
|
+
* // {
|
|
9097
|
+
* // name: "abcdxyzuvwrs",
|
|
9098
|
+
* // privateKey: "5JxyzABC1234567890defGHIJKLMNopqRSTUV",
|
|
9099
|
+
* // publicKey: "EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5SozEZ8i8jUBS6yX79y6"
|
|
9100
|
+
* // }
|
|
9101
|
+
* ```
|
|
9102
|
+
*/
|
|
9103
|
+
declare class Account {
|
|
9104
|
+
username: string;
|
|
9105
|
+
private_key: string;
|
|
9106
|
+
public_key: string;
|
|
9107
|
+
constructor();
|
|
9108
|
+
/**
|
|
9109
|
+
* Генерирует случайное имя длиной 12 символов, состоящее только из букв.
|
|
9110
|
+
* @returns Случайное имя.
|
|
9111
|
+
*/
|
|
9112
|
+
private static generateUsername;
|
|
9113
|
+
/**
|
|
9114
|
+
* Генерирует пару ключей (приватный и публичный) с использованием библиотеки @wharfkit/antelope.
|
|
9115
|
+
* @returns Объект с приватным и публичным ключами.
|
|
9116
|
+
*/
|
|
9117
|
+
private static generateKeys;
|
|
9118
|
+
}
|
|
9119
|
+
|
|
9120
|
+
/**
|
|
9121
|
+
* Класс `Canvas` инкапсулирует работу с HTML5 `<canvas>`:
|
|
9122
|
+
* - создание и инициализация canvas внутри переданного контейнера;
|
|
9123
|
+
* - очистка canvas;
|
|
9124
|
+
* - управление процессом рисования (начало, рисование, завершение);
|
|
9125
|
+
* - получение содержимого (подписи) в формате base64.
|
|
9126
|
+
*
|
|
9127
|
+
* @remarks
|
|
9128
|
+
* Все методы и состояние рисования (координаты, флаг `drawing`) хранятся внутри класса.
|
|
9129
|
+
*
|
|
9130
|
+
* @example
|
|
9131
|
+
* ```ts
|
|
9132
|
+
* const container = document.getElementById('canvas-container') as HTMLElement
|
|
9133
|
+
* const myCanvas = new Canvas(container, 500, 300)
|
|
9134
|
+
*
|
|
9135
|
+
* // События мыши
|
|
9136
|
+
* myCanvas.canvas.addEventListener('mousedown', (e) => myCanvas.startDrawing(e))
|
|
9137
|
+
* myCanvas.canvas.addEventListener('mousemove', (e) => myCanvas.draw(e))
|
|
9138
|
+
* myCanvas.canvas.addEventListener('mouseup', () => myCanvas.endDrawing())
|
|
9139
|
+
*
|
|
9140
|
+
* // Очистка холста
|
|
9141
|
+
* document.getElementById('clear-btn')?.addEventListener('click', () => {
|
|
9142
|
+
* myCanvas.clearCanvas()
|
|
9143
|
+
* })
|
|
9144
|
+
*
|
|
9145
|
+
* // Получение подписи (base64)
|
|
9146
|
+
* document.getElementById('get-sign-btn')?.addEventListener('click', () => {
|
|
9147
|
+
* const signature = myCanvas.getSignature()
|
|
9148
|
+
* console.log('Подпись (base64):', signature)
|
|
9149
|
+
* })
|
|
9150
|
+
* ```
|
|
9151
|
+
*/
|
|
9152
|
+
declare class Canvas {
|
|
9153
|
+
canvas: HTMLCanvasElement;
|
|
9154
|
+
ctx: CanvasRenderingContext2D;
|
|
9155
|
+
private state;
|
|
9156
|
+
/**
|
|
9157
|
+
* Создаёт элемент `<canvas>` внутри указанного контейнера.
|
|
9158
|
+
* @param container - HTML-элемент, внутри которого создаётся canvas.
|
|
9159
|
+
* @param width - Ширина canvas (по умолчанию 300).
|
|
9160
|
+
* @param height - Высота canvas (по умолчанию 150).
|
|
9161
|
+
*/
|
|
9162
|
+
constructor(container: HTMLElement, width?: number, height?: number);
|
|
9163
|
+
/**
|
|
9164
|
+
* Полностью очищает canvas.
|
|
9165
|
+
*/
|
|
9166
|
+
clearCanvas(): void;
|
|
9167
|
+
/**
|
|
9168
|
+
* Запускает процесс рисования (фиксирует начальные координаты).
|
|
9169
|
+
* @param e - Событие мыши или касания.
|
|
9170
|
+
*/
|
|
9171
|
+
startDrawing(e: MouseEvent | TouchEvent): void;
|
|
9172
|
+
/**
|
|
9173
|
+
* Выполняет рисование линии от предыдущей точки к текущей.
|
|
9174
|
+
* @param e - Событие мыши или касания.
|
|
9175
|
+
*/
|
|
9176
|
+
draw(e: MouseEvent | TouchEvent): void;
|
|
9177
|
+
/**
|
|
9178
|
+
* Завершает процесс рисования (drawing = false).
|
|
9179
|
+
*/
|
|
9180
|
+
endDrawing(): void;
|
|
9181
|
+
/**
|
|
9182
|
+
* Возвращает текущее содержимое canvas в формате base64 (PNG).
|
|
9183
|
+
*/
|
|
9184
|
+
getSignature(): string;
|
|
9185
|
+
}
|
|
9186
|
+
|
|
9084
9187
|
/**
|
|
9085
9188
|
* Описание класса будет здесь
|
|
9086
9189
|
*/
|
|
@@ -9112,10 +9215,14 @@ declare class Wallet {
|
|
|
9112
9215
|
private createTable;
|
|
9113
9216
|
}
|
|
9114
9217
|
|
|
9218
|
+
type Classes_Account = Account;
|
|
9219
|
+
declare const Classes_Account: typeof Account;
|
|
9220
|
+
type Classes_Canvas = Canvas;
|
|
9221
|
+
declare const Classes_Canvas: typeof Canvas;
|
|
9115
9222
|
type Classes_Wallet = Wallet;
|
|
9116
9223
|
declare const Classes_Wallet: typeof Wallet;
|
|
9117
9224
|
declare namespace Classes {
|
|
9118
|
-
export { Classes_Wallet as Wallet };
|
|
9225
|
+
export { Classes_Account as Account, Classes_Canvas as Canvas, Classes_Wallet as Wallet };
|
|
9119
9226
|
}
|
|
9120
9227
|
|
|
9121
9228
|
declare const name$J = "installExtension";
|
|
@@ -14060,7 +14167,17 @@ declare function createClient(options: ClientConnectionOptions): {
|
|
|
14060
14167
|
getPaymentMethods: GraphQLTypes["PaymentMethodPaginationResult"];
|
|
14061
14168
|
getPayments: GraphQLTypes["PaymentPaginationResult"];
|
|
14062
14169
|
getSystemInfo: GraphQLTypes["SystemInfo"];
|
|
14063
|
-
}, Z, Omit<
|
|
14170
|
+
}, Z, Omit<{
|
|
14171
|
+
DateTime: {
|
|
14172
|
+
decode: (e: unknown) => Date;
|
|
14173
|
+
encode: (e: unknown) => string;
|
|
14174
|
+
};
|
|
14175
|
+
}, "DateTime"> & {
|
|
14176
|
+
DateTime: {
|
|
14177
|
+
decode: (e: unknown) => Date;
|
|
14178
|
+
encode: (e: unknown) => string;
|
|
14179
|
+
};
|
|
14180
|
+
}>>;
|
|
14064
14181
|
Mutation: <Z extends AliasType<{
|
|
14065
14182
|
addParticipant?: [{
|
|
14066
14183
|
data: ValueTypes["AddParticipantInput"] | Variable<any, string>;
|
|
@@ -14236,7 +14353,17 @@ declare function createClient(options: ClientConnectionOptions): {
|
|
|
14236
14353
|
updateBankAccount: GraphQLTypes["PaymentMethod"];
|
|
14237
14354
|
updateExtension: GraphQLTypes["Extension"];
|
|
14238
14355
|
updateSystem: GraphQLTypes["SystemInfo"];
|
|
14239
|
-
}, Z, Omit<
|
|
14356
|
+
}, Z, Omit<{
|
|
14357
|
+
DateTime: {
|
|
14358
|
+
decode: (e: unknown) => Date;
|
|
14359
|
+
encode: (e: unknown) => string;
|
|
14360
|
+
};
|
|
14361
|
+
}, "DateTime"> & {
|
|
14362
|
+
DateTime: {
|
|
14363
|
+
decode: (e: unknown) => Date;
|
|
14364
|
+
encode: (e: unknown) => string;
|
|
14365
|
+
};
|
|
14366
|
+
}>>;
|
|
14240
14367
|
Subscription: <O extends keyof typeof Ops, OVERRIDESCLR extends ScalarDefinition, R extends keyof ValueTypes = GenericOperation<O>>(operation: O, graphqlOptions?: ThunderGraphQLOptions<OVERRIDESCLR> | undefined) => <Z extends ValueTypes[R]>(o: Z & { [P in keyof Z]: P extends keyof ValueTypes[R] ? Z[P] : never; }, ops?: (OperationOptions & {
|
|
14241
14368
|
variables?: ExtractVariables<Z> | undefined;
|
|
14242
14369
|
}) | undefined) => SubscriptionToGraphQL<Z, GraphQLTypes[R], Omit<ScalarDefinition, keyof OVERRIDESCLR> & OVERRIDESCLR>;
|
package/dist/index.d.ts
CHANGED
|
@@ -50,9 +50,10 @@ declare const Gql: <O extends keyof typeof Ops, OVERRIDESCLR extends ScalarDefin
|
|
|
50
50
|
variables?: Record<string, unknown>;
|
|
51
51
|
}) => Promise<InputType<GraphQLTypes[R], Z, UnionOverrideKeys<ScalarDefinition, OVERRIDESCLR>>>;
|
|
52
52
|
declare const ZeusScalars: SelectionFunction<ScalarCoders>;
|
|
53
|
+
type BaseSymbol = number | string | undefined | boolean | null;
|
|
53
54
|
type ScalarsSelector<T> = {
|
|
54
55
|
[X in Required<{
|
|
55
|
-
[P in keyof T]: T[P] extends
|
|
56
|
+
[P in keyof T]: T[P] extends BaseSymbol | Array<BaseSymbol> ? P : never;
|
|
56
57
|
}>[keyof T]]: true;
|
|
57
58
|
};
|
|
58
59
|
declare const fields: <T extends keyof ModelTypes>(k: T) => ScalarsSelector<ModelTypes[T]>;
|
|
@@ -300,6 +301,7 @@ type ValueTypes = {
|
|
|
300
301
|
totalPages?: boolean | `@${string}`;
|
|
301
302
|
__typename?: boolean | `@${string}`;
|
|
302
303
|
}>;
|
|
304
|
+
/** Массив комплексных актов, содержащих полную информацию о сгенерированном и опубликованном документах */
|
|
303
305
|
["ActDetail"]: AliasType<{
|
|
304
306
|
action?: ValueTypes["ExtendedBlockchainAction"];
|
|
305
307
|
document?: ValueTypes["GeneratedDocument"];
|
|
@@ -951,15 +953,15 @@ type ValueTypes = {
|
|
|
951
953
|
__typename?: boolean | `@${string}`;
|
|
952
954
|
}>;
|
|
953
955
|
["ExtensionInput"]: {
|
|
954
|
-
/**
|
|
956
|
+
/** Объект конфигурации расширения */
|
|
955
957
|
config: ValueTypes["JSON"] | Variable<any, string>;
|
|
956
|
-
/**
|
|
958
|
+
/** Дата установки расширения */
|
|
957
959
|
created_at?: ValueTypes["DateTime"] | undefined | null | Variable<any, string>;
|
|
958
|
-
/**
|
|
960
|
+
/** Флаг того, включено ли расширение сейчас */
|
|
959
961
|
enabled: boolean | Variable<any, string>;
|
|
960
|
-
/**
|
|
962
|
+
/** Уникальное имя расширения (является идентификатором) */
|
|
961
963
|
name: string | Variable<any, string>;
|
|
962
|
-
/**
|
|
964
|
+
/** Дата обновления расширения */
|
|
963
965
|
updated_at?: ValueTypes["DateTime"] | undefined | null | Variable<any, string>;
|
|
964
966
|
};
|
|
965
967
|
["FreeDecisionDocument"]: AliasType<{
|
|
@@ -2454,6 +2456,7 @@ type ResolverInputTypes = {
|
|
|
2454
2456
|
totalPages?: boolean | `@${string}`;
|
|
2455
2457
|
__typename?: boolean | `@${string}`;
|
|
2456
2458
|
}>;
|
|
2459
|
+
/** Массив комплексных актов, содержащих полную информацию о сгенерированном и опубликованном документах */
|
|
2457
2460
|
["ActDetail"]: AliasType<{
|
|
2458
2461
|
action?: ResolverInputTypes["ExtendedBlockchainAction"];
|
|
2459
2462
|
document?: ResolverInputTypes["GeneratedDocument"];
|
|
@@ -3105,15 +3108,15 @@ type ResolverInputTypes = {
|
|
|
3105
3108
|
__typename?: boolean | `@${string}`;
|
|
3106
3109
|
}>;
|
|
3107
3110
|
["ExtensionInput"]: {
|
|
3108
|
-
/**
|
|
3111
|
+
/** Объект конфигурации расширения */
|
|
3109
3112
|
config: ResolverInputTypes["JSON"];
|
|
3110
|
-
/**
|
|
3113
|
+
/** Дата установки расширения */
|
|
3111
3114
|
created_at?: ResolverInputTypes["DateTime"] | undefined | null;
|
|
3112
|
-
/**
|
|
3115
|
+
/** Флаг того, включено ли расширение сейчас */
|
|
3113
3116
|
enabled: boolean;
|
|
3114
|
-
/**
|
|
3117
|
+
/** Уникальное имя расширения (является идентификатором) */
|
|
3115
3118
|
name: string;
|
|
3116
|
-
/**
|
|
3119
|
+
/** Дата обновления расширения */
|
|
3117
3120
|
updated_at?: ResolverInputTypes["DateTime"] | undefined | null;
|
|
3118
3121
|
};
|
|
3119
3122
|
["FreeDecisionDocument"]: AliasType<{
|
|
@@ -4608,6 +4611,7 @@ type ModelTypes = {
|
|
|
4608
4611
|
/** Общее количество страниц */
|
|
4609
4612
|
totalPages: number;
|
|
4610
4613
|
};
|
|
4614
|
+
/** Массив комплексных актов, содержащих полную информацию о сгенерированном и опубликованном документах */
|
|
4611
4615
|
["ActDetail"]: {
|
|
4612
4616
|
action?: ModelTypes["ExtendedBlockchainAction"] | undefined | null;
|
|
4613
4617
|
document?: ModelTypes["GeneratedDocument"] | undefined | null;
|
|
@@ -5229,15 +5233,15 @@ type ModelTypes = {
|
|
|
5229
5233
|
updated_at: ModelTypes["DateTime"];
|
|
5230
5234
|
};
|
|
5231
5235
|
["ExtensionInput"]: {
|
|
5232
|
-
/**
|
|
5236
|
+
/** Объект конфигурации расширения */
|
|
5233
5237
|
config: ModelTypes["JSON"];
|
|
5234
|
-
/**
|
|
5238
|
+
/** Дата установки расширения */
|
|
5235
5239
|
created_at?: ModelTypes["DateTime"] | undefined | null;
|
|
5236
|
-
/**
|
|
5240
|
+
/** Флаг того, включено ли расширение сейчас */
|
|
5237
5241
|
enabled: boolean;
|
|
5238
|
-
/**
|
|
5242
|
+
/** Уникальное имя расширения (является идентификатором) */
|
|
5239
5243
|
name: string;
|
|
5240
|
-
/**
|
|
5244
|
+
/** Дата обновления расширения */
|
|
5241
5245
|
updated_at?: ModelTypes["DateTime"] | undefined | null;
|
|
5242
5246
|
};
|
|
5243
5247
|
["FreeDecisionDocument"]: {
|
|
@@ -6613,6 +6617,7 @@ type GraphQLTypes = {
|
|
|
6613
6617
|
/** Общее количество страниц */
|
|
6614
6618
|
totalPages: number;
|
|
6615
6619
|
};
|
|
6620
|
+
/** Массив комплексных актов, содержащих полную информацию о сгенерированном и опубликованном документах */
|
|
6616
6621
|
["ActDetail"]: {
|
|
6617
6622
|
__typename: "ActDetail";
|
|
6618
6623
|
action?: GraphQLTypes["ExtendedBlockchainAction"] | undefined | null;
|
|
@@ -7266,15 +7271,15 @@ type GraphQLTypes = {
|
|
|
7266
7271
|
updated_at: GraphQLTypes["DateTime"];
|
|
7267
7272
|
};
|
|
7268
7273
|
["ExtensionInput"]: {
|
|
7269
|
-
/**
|
|
7274
|
+
/** Объект конфигурации расширения */
|
|
7270
7275
|
config: GraphQLTypes["JSON"];
|
|
7271
|
-
/**
|
|
7276
|
+
/** Дата установки расширения */
|
|
7272
7277
|
created_at?: GraphQLTypes["DateTime"] | undefined | null;
|
|
7273
|
-
/**
|
|
7278
|
+
/** Флаг того, включено ли расширение сейчас */
|
|
7274
7279
|
enabled: boolean;
|
|
7275
|
-
/**
|
|
7280
|
+
/** Уникальное имя расширения (является идентификатором) */
|
|
7276
7281
|
name: string;
|
|
7277
|
-
/**
|
|
7282
|
+
/** Дата обновления расширения */
|
|
7278
7283
|
updated_at?: GraphQLTypes["DateTime"] | undefined | null;
|
|
7279
7284
|
};
|
|
7280
7285
|
["FreeDecisionDocument"]: {
|
|
@@ -9081,6 +9086,104 @@ declare namespace index$j {
|
|
|
9081
9086
|
export type { index$j_AccountResourceInfo as AccountResourceInfo, index$j_Authority as Authority, index$j_BlockchainAccountInterface as BlockchainAccountInterface, index$j_BlockchainConfig as BlockchainConfig, index$j_ClientConnectionOptions as ClientConnectionOptions, index$j_DeserializedDescriptionOfExtension as DeserializedDescriptionOfExtension, index$j_GetInfoResult as GetInfoResult, index$j_IndexPosition as IndexPosition, index$j_KeyWeight as KeyWeight, index$j_Permission as Permission, index$j_PermissionLevel as PermissionLevel, index$j_PermissionLevelWeight as PermissionLevelWeight, index$j_RefundRequest as RefundRequest, index$j_ResourceDelegation as ResourceDelegation, index$j_ResourceOverview as ResourceOverview, index$j_WaitWeight as WaitWeight };
|
|
9082
9087
|
}
|
|
9083
9088
|
|
|
9089
|
+
/**
|
|
9090
|
+
* Класс `Account` генерирует объект с именем, приватным и публичным ключами.
|
|
9091
|
+
*
|
|
9092
|
+
* @example
|
|
9093
|
+
* ```ts
|
|
9094
|
+
* const account = new Account();
|
|
9095
|
+
* console.log(account);
|
|
9096
|
+
* // {
|
|
9097
|
+
* // name: "abcdxyzuvwrs",
|
|
9098
|
+
* // privateKey: "5JxyzABC1234567890defGHIJKLMNopqRSTUV",
|
|
9099
|
+
* // publicKey: "EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5SozEZ8i8jUBS6yX79y6"
|
|
9100
|
+
* // }
|
|
9101
|
+
* ```
|
|
9102
|
+
*/
|
|
9103
|
+
declare class Account {
|
|
9104
|
+
username: string;
|
|
9105
|
+
private_key: string;
|
|
9106
|
+
public_key: string;
|
|
9107
|
+
constructor();
|
|
9108
|
+
/**
|
|
9109
|
+
* Генерирует случайное имя длиной 12 символов, состоящее только из букв.
|
|
9110
|
+
* @returns Случайное имя.
|
|
9111
|
+
*/
|
|
9112
|
+
private static generateUsername;
|
|
9113
|
+
/**
|
|
9114
|
+
* Генерирует пару ключей (приватный и публичный) с использованием библиотеки @wharfkit/antelope.
|
|
9115
|
+
* @returns Объект с приватным и публичным ключами.
|
|
9116
|
+
*/
|
|
9117
|
+
private static generateKeys;
|
|
9118
|
+
}
|
|
9119
|
+
|
|
9120
|
+
/**
|
|
9121
|
+
* Класс `Canvas` инкапсулирует работу с HTML5 `<canvas>`:
|
|
9122
|
+
* - создание и инициализация canvas внутри переданного контейнера;
|
|
9123
|
+
* - очистка canvas;
|
|
9124
|
+
* - управление процессом рисования (начало, рисование, завершение);
|
|
9125
|
+
* - получение содержимого (подписи) в формате base64.
|
|
9126
|
+
*
|
|
9127
|
+
* @remarks
|
|
9128
|
+
* Все методы и состояние рисования (координаты, флаг `drawing`) хранятся внутри класса.
|
|
9129
|
+
*
|
|
9130
|
+
* @example
|
|
9131
|
+
* ```ts
|
|
9132
|
+
* const container = document.getElementById('canvas-container') as HTMLElement
|
|
9133
|
+
* const myCanvas = new Canvas(container, 500, 300)
|
|
9134
|
+
*
|
|
9135
|
+
* // События мыши
|
|
9136
|
+
* myCanvas.canvas.addEventListener('mousedown', (e) => myCanvas.startDrawing(e))
|
|
9137
|
+
* myCanvas.canvas.addEventListener('mousemove', (e) => myCanvas.draw(e))
|
|
9138
|
+
* myCanvas.canvas.addEventListener('mouseup', () => myCanvas.endDrawing())
|
|
9139
|
+
*
|
|
9140
|
+
* // Очистка холста
|
|
9141
|
+
* document.getElementById('clear-btn')?.addEventListener('click', () => {
|
|
9142
|
+
* myCanvas.clearCanvas()
|
|
9143
|
+
* })
|
|
9144
|
+
*
|
|
9145
|
+
* // Получение подписи (base64)
|
|
9146
|
+
* document.getElementById('get-sign-btn')?.addEventListener('click', () => {
|
|
9147
|
+
* const signature = myCanvas.getSignature()
|
|
9148
|
+
* console.log('Подпись (base64):', signature)
|
|
9149
|
+
* })
|
|
9150
|
+
* ```
|
|
9151
|
+
*/
|
|
9152
|
+
declare class Canvas {
|
|
9153
|
+
canvas: HTMLCanvasElement;
|
|
9154
|
+
ctx: CanvasRenderingContext2D;
|
|
9155
|
+
private state;
|
|
9156
|
+
/**
|
|
9157
|
+
* Создаёт элемент `<canvas>` внутри указанного контейнера.
|
|
9158
|
+
* @param container - HTML-элемент, внутри которого создаётся canvas.
|
|
9159
|
+
* @param width - Ширина canvas (по умолчанию 300).
|
|
9160
|
+
* @param height - Высота canvas (по умолчанию 150).
|
|
9161
|
+
*/
|
|
9162
|
+
constructor(container: HTMLElement, width?: number, height?: number);
|
|
9163
|
+
/**
|
|
9164
|
+
* Полностью очищает canvas.
|
|
9165
|
+
*/
|
|
9166
|
+
clearCanvas(): void;
|
|
9167
|
+
/**
|
|
9168
|
+
* Запускает процесс рисования (фиксирует начальные координаты).
|
|
9169
|
+
* @param e - Событие мыши или касания.
|
|
9170
|
+
*/
|
|
9171
|
+
startDrawing(e: MouseEvent | TouchEvent): void;
|
|
9172
|
+
/**
|
|
9173
|
+
* Выполняет рисование линии от предыдущей точки к текущей.
|
|
9174
|
+
* @param e - Событие мыши или касания.
|
|
9175
|
+
*/
|
|
9176
|
+
draw(e: MouseEvent | TouchEvent): void;
|
|
9177
|
+
/**
|
|
9178
|
+
* Завершает процесс рисования (drawing = false).
|
|
9179
|
+
*/
|
|
9180
|
+
endDrawing(): void;
|
|
9181
|
+
/**
|
|
9182
|
+
* Возвращает текущее содержимое canvas в формате base64 (PNG).
|
|
9183
|
+
*/
|
|
9184
|
+
getSignature(): string;
|
|
9185
|
+
}
|
|
9186
|
+
|
|
9084
9187
|
/**
|
|
9085
9188
|
* Описание класса будет здесь
|
|
9086
9189
|
*/
|
|
@@ -9112,10 +9215,14 @@ declare class Wallet {
|
|
|
9112
9215
|
private createTable;
|
|
9113
9216
|
}
|
|
9114
9217
|
|
|
9218
|
+
type Classes_Account = Account;
|
|
9219
|
+
declare const Classes_Account: typeof Account;
|
|
9220
|
+
type Classes_Canvas = Canvas;
|
|
9221
|
+
declare const Classes_Canvas: typeof Canvas;
|
|
9115
9222
|
type Classes_Wallet = Wallet;
|
|
9116
9223
|
declare const Classes_Wallet: typeof Wallet;
|
|
9117
9224
|
declare namespace Classes {
|
|
9118
|
-
export { Classes_Wallet as Wallet };
|
|
9225
|
+
export { Classes_Account as Account, Classes_Canvas as Canvas, Classes_Wallet as Wallet };
|
|
9119
9226
|
}
|
|
9120
9227
|
|
|
9121
9228
|
declare const name$J = "installExtension";
|
|
@@ -14060,7 +14167,17 @@ declare function createClient(options: ClientConnectionOptions): {
|
|
|
14060
14167
|
getPaymentMethods: GraphQLTypes["PaymentMethodPaginationResult"];
|
|
14061
14168
|
getPayments: GraphQLTypes["PaymentPaginationResult"];
|
|
14062
14169
|
getSystemInfo: GraphQLTypes["SystemInfo"];
|
|
14063
|
-
}, Z, Omit<
|
|
14170
|
+
}, Z, Omit<{
|
|
14171
|
+
DateTime: {
|
|
14172
|
+
decode: (e: unknown) => Date;
|
|
14173
|
+
encode: (e: unknown) => string;
|
|
14174
|
+
};
|
|
14175
|
+
}, "DateTime"> & {
|
|
14176
|
+
DateTime: {
|
|
14177
|
+
decode: (e: unknown) => Date;
|
|
14178
|
+
encode: (e: unknown) => string;
|
|
14179
|
+
};
|
|
14180
|
+
}>>;
|
|
14064
14181
|
Mutation: <Z extends AliasType<{
|
|
14065
14182
|
addParticipant?: [{
|
|
14066
14183
|
data: ValueTypes["AddParticipantInput"] | Variable<any, string>;
|
|
@@ -14236,7 +14353,17 @@ declare function createClient(options: ClientConnectionOptions): {
|
|
|
14236
14353
|
updateBankAccount: GraphQLTypes["PaymentMethod"];
|
|
14237
14354
|
updateExtension: GraphQLTypes["Extension"];
|
|
14238
14355
|
updateSystem: GraphQLTypes["SystemInfo"];
|
|
14239
|
-
}, Z, Omit<
|
|
14356
|
+
}, Z, Omit<{
|
|
14357
|
+
DateTime: {
|
|
14358
|
+
decode: (e: unknown) => Date;
|
|
14359
|
+
encode: (e: unknown) => string;
|
|
14360
|
+
};
|
|
14361
|
+
}, "DateTime"> & {
|
|
14362
|
+
DateTime: {
|
|
14363
|
+
decode: (e: unknown) => Date;
|
|
14364
|
+
encode: (e: unknown) => string;
|
|
14365
|
+
};
|
|
14366
|
+
}>>;
|
|
14240
14367
|
Subscription: <O extends keyof typeof Ops, OVERRIDESCLR extends ScalarDefinition, R extends keyof ValueTypes = GenericOperation<O>>(operation: O, graphqlOptions?: ThunderGraphQLOptions<OVERRIDESCLR> | undefined) => <Z extends ValueTypes[R]>(o: Z & { [P in keyof Z]: P extends keyof ValueTypes[R] ? Z[P] : never; }, ops?: (OperationOptions & {
|
|
14241
14368
|
variables?: ExtractVariables<Z> | undefined;
|
|
14242
14369
|
}) | undefined) => SubscriptionToGraphQL<Z, GraphQLTypes[R], Omit<ScalarDefinition, keyof OVERRIDESCLR> & OVERRIDESCLR>;
|
package/dist/index.mjs
CHANGED
|
@@ -1,10 +1,137 @@
|
|
|
1
1
|
import { Session, PrivateKey as PrivateKey$1, Bytes, Checksum256 } from '@wharfkit/session';
|
|
2
2
|
import WebSocket from 'isomorphic-ws';
|
|
3
|
-
import {
|
|
3
|
+
import { PrivateKey, APIClient, Action } from '@wharfkit/antelope';
|
|
4
4
|
import { ContractKit, Table } from '@wharfkit/contract';
|
|
5
5
|
import { WalletPluginPrivateKey } from '@wharfkit/wallet-plugin-privatekey';
|
|
6
6
|
import { createClient as createClient$1 } from 'graphql-ws';
|
|
7
7
|
|
|
8
|
+
var __defProp$2 = Object.defineProperty;
|
|
9
|
+
var __defNormalProp$2 = (obj, key, value) => key in obj ? __defProp$2(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
10
|
+
var __publicField$2 = (obj, key, value) => {
|
|
11
|
+
__defNormalProp$2(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
12
|
+
return value;
|
|
13
|
+
};
|
|
14
|
+
class Account {
|
|
15
|
+
constructor() {
|
|
16
|
+
__publicField$2(this, "username");
|
|
17
|
+
__publicField$2(this, "private_key");
|
|
18
|
+
__publicField$2(this, "public_key");
|
|
19
|
+
this.username = Account.generateUsername();
|
|
20
|
+
const keys = Account.generateKeys();
|
|
21
|
+
this.private_key = keys.private_key;
|
|
22
|
+
this.public_key = keys.public_key;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Генерирует случайное имя длиной 12 символов, состоящее только из букв.
|
|
26
|
+
* @returns Случайное имя.
|
|
27
|
+
*/
|
|
28
|
+
static generateUsername() {
|
|
29
|
+
let result = "";
|
|
30
|
+
const possible = "abcdefghijklmnopqrstuvwxyz";
|
|
31
|
+
for (let i = 0; i < 12; i++) {
|
|
32
|
+
result += possible.charAt(Math.floor(Math.random() * possible.length));
|
|
33
|
+
}
|
|
34
|
+
return result;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Генерирует пару ключей (приватный и публичный) с использованием библиотеки @wharfkit/antelope.
|
|
38
|
+
* @returns Объект с приватным и публичным ключами.
|
|
39
|
+
*/
|
|
40
|
+
static generateKeys() {
|
|
41
|
+
const private_key_data = PrivateKey.generate("K1");
|
|
42
|
+
const public_key = private_key_data.toPublic().toString();
|
|
43
|
+
const private_key = private_key_data.toWif();
|
|
44
|
+
return {
|
|
45
|
+
private_key,
|
|
46
|
+
public_key
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
var __defProp$1 = Object.defineProperty;
|
|
52
|
+
var __defNormalProp$1 = (obj, key, value) => key in obj ? __defProp$1(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
53
|
+
var __publicField$1 = (obj, key, value) => {
|
|
54
|
+
__defNormalProp$1(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
55
|
+
return value;
|
|
56
|
+
};
|
|
57
|
+
class Canvas {
|
|
58
|
+
/**
|
|
59
|
+
* Создаёт элемент `<canvas>` внутри указанного контейнера.
|
|
60
|
+
* @param container - HTML-элемент, внутри которого создаётся canvas.
|
|
61
|
+
* @param width - Ширина canvas (по умолчанию 300).
|
|
62
|
+
* @param height - Высота canvas (по умолчанию 150).
|
|
63
|
+
*/
|
|
64
|
+
constructor(container, width = 300, height = 150) {
|
|
65
|
+
__publicField$1(this, "canvas");
|
|
66
|
+
__publicField$1(this, "ctx");
|
|
67
|
+
__publicField$1(this, "state", {
|
|
68
|
+
drawing: false,
|
|
69
|
+
lastX: 0,
|
|
70
|
+
lastY: 0
|
|
71
|
+
});
|
|
72
|
+
this.canvas = document.createElement("canvas");
|
|
73
|
+
this.canvas.width = width;
|
|
74
|
+
this.canvas.height = height;
|
|
75
|
+
container.appendChild(this.canvas);
|
|
76
|
+
this.ctx = this.canvas.getContext("2d");
|
|
77
|
+
this.ctx.lineWidth = 5;
|
|
78
|
+
this.ctx.lineJoin = "round";
|
|
79
|
+
this.ctx.lineCap = "round";
|
|
80
|
+
this.ctx.strokeStyle = "#000";
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Полностью очищает canvas.
|
|
84
|
+
*/
|
|
85
|
+
clearCanvas() {
|
|
86
|
+
this.ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Запускает процесс рисования (фиксирует начальные координаты).
|
|
90
|
+
* @param e - Событие мыши или касания.
|
|
91
|
+
*/
|
|
92
|
+
startDrawing(e) {
|
|
93
|
+
e.preventDefault();
|
|
94
|
+
this.state.drawing = true;
|
|
95
|
+
const rect = this.canvas.getBoundingClientRect();
|
|
96
|
+
const clientX = e instanceof MouseEvent ? e.clientX : e.touches[0].clientX;
|
|
97
|
+
const clientY = e instanceof MouseEvent ? e.clientY : e.touches[0].clientY;
|
|
98
|
+
this.state.lastX = clientX - rect.left;
|
|
99
|
+
this.state.lastY = clientY - rect.top;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Выполняет рисование линии от предыдущей точки к текущей.
|
|
103
|
+
* @param e - Событие мыши или касания.
|
|
104
|
+
*/
|
|
105
|
+
draw(e) {
|
|
106
|
+
if (!this.state.drawing)
|
|
107
|
+
return;
|
|
108
|
+
e.preventDefault();
|
|
109
|
+
this.ctx.beginPath();
|
|
110
|
+
this.ctx.moveTo(this.state.lastX, this.state.lastY);
|
|
111
|
+
const rect = this.canvas.getBoundingClientRect();
|
|
112
|
+
const clientX = e instanceof MouseEvent ? e.clientX : e.touches[0].clientX;
|
|
113
|
+
const clientY = e instanceof MouseEvent ? e.clientY : e.touches[0].clientY;
|
|
114
|
+
const x = clientX - rect.left;
|
|
115
|
+
const y = clientY - rect.top;
|
|
116
|
+
this.ctx.lineTo(x, y);
|
|
117
|
+
this.ctx.stroke();
|
|
118
|
+
this.state.lastX = x;
|
|
119
|
+
this.state.lastY = y;
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Завершает процесс рисования (drawing = false).
|
|
123
|
+
*/
|
|
124
|
+
endDrawing() {
|
|
125
|
+
this.state.drawing = false;
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Возвращает текущее содержимое canvas в формате base64 (PNG).
|
|
129
|
+
*/
|
|
130
|
+
getSignature() {
|
|
131
|
+
return this.canvas.toDataURL("image/png");
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
|
|
8
135
|
var __defProp = Object.defineProperty;
|
|
9
136
|
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
10
137
|
var __publicField = (obj, key, value) => {
|
|
@@ -97,6 +224,8 @@ class Wallet {
|
|
|
97
224
|
|
|
98
225
|
const Classes = {
|
|
99
226
|
__proto__: null,
|
|
227
|
+
Account: Account,
|
|
228
|
+
Canvas: Canvas,
|
|
100
229
|
Wallet: Wallet
|
|
101
230
|
};
|
|
102
231
|
|
|
@@ -1367,12 +1496,22 @@ const Gql = Chain(HOST, {
|
|
|
1367
1496
|
const ZeusScalars = ZeusSelect();
|
|
1368
1497
|
const fields = (k) => {
|
|
1369
1498
|
const t = ReturnTypes[k];
|
|
1499
|
+
const fnType = k in AllTypesProps ? AllTypesProps[k] : void 0;
|
|
1500
|
+
const hasFnTypes = typeof fnType === "object" ? fnType : void 0;
|
|
1370
1501
|
const o = Object.fromEntries(
|
|
1371
|
-
Object.entries(t).filter(([, value]) => {
|
|
1502
|
+
Object.entries(t).filter(([k2, value]) => {
|
|
1503
|
+
const isFunctionType = hasFnTypes && k2 in hasFnTypes && !!hasFnTypes[k2];
|
|
1504
|
+
if (isFunctionType)
|
|
1505
|
+
return false;
|
|
1372
1506
|
const isReturnType = ReturnTypes[value];
|
|
1373
|
-
if (!isReturnType
|
|
1507
|
+
if (!isReturnType)
|
|
1508
|
+
return true;
|
|
1509
|
+
if (typeof isReturnType !== "string")
|
|
1510
|
+
return false;
|
|
1511
|
+
if (isReturnType.startsWith("scalar.")) {
|
|
1374
1512
|
return true;
|
|
1375
1513
|
}
|
|
1514
|
+
return false;
|
|
1376
1515
|
}).map(([key]) => [key, true])
|
|
1377
1516
|
);
|
|
1378
1517
|
return o;
|
|
@@ -3141,6 +3280,14 @@ if (typeof globalThis.WebSocket === "undefined") {
|
|
|
3141
3280
|
globalThis.WebSocket = WebSocket;
|
|
3142
3281
|
}
|
|
3143
3282
|
let currentHeaders = {};
|
|
3283
|
+
const scalars = ZeusScalars({
|
|
3284
|
+
DateTime: {
|
|
3285
|
+
decode: (e) => new Date(e),
|
|
3286
|
+
// Преобразует строку в объект Date
|
|
3287
|
+
encode: (e) => e.toISOString()
|
|
3288
|
+
// Преобразует Date в ISO-строку
|
|
3289
|
+
}
|
|
3290
|
+
});
|
|
3144
3291
|
function createThunder(baseUrl) {
|
|
3145
3292
|
return Thunder(async (query, variables) => {
|
|
3146
3293
|
const response = await fetch(baseUrl, {
|
|
@@ -3169,7 +3316,7 @@ function createThunder(baseUrl) {
|
|
|
3169
3316
|
throw json.errors;
|
|
3170
3317
|
}
|
|
3171
3318
|
return json.data;
|
|
3172
|
-
});
|
|
3319
|
+
}, { scalars });
|
|
3173
3320
|
}
|
|
3174
3321
|
function createClient(options) {
|
|
3175
3322
|
currentHeaders = options.headers || {};
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@coopenomics/sdk",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "2.2.
|
|
4
|
+
"version": "2.2.3",
|
|
5
5
|
"private": false,
|
|
6
6
|
"packageManager": "pnpm@9.9.0",
|
|
7
7
|
"description": "",
|
|
@@ -74,5 +74,5 @@
|
|
|
74
74
|
"vite": "^5.4.3",
|
|
75
75
|
"vitest": "^2.0.5"
|
|
76
76
|
},
|
|
77
|
-
"gitHead": "
|
|
77
|
+
"gitHead": "40fb5c80eb4136e82813fd553703f4a7926166a0"
|
|
78
78
|
}
|