asgard-tide 0.12.42 → 0.12.45

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 (96) hide show
  1. package/LICENSE +334 -0
  2. package/README.md +103 -2
  3. package/dist/cjs/contracts/BaseContract.d.ts +47 -0
  4. package/dist/cjs/contracts/BaseContract.d.ts.map +1 -0
  5. package/dist/{contracts → cjs/contracts}/BaseContract.js +39 -11
  6. package/dist/cjs/contracts/BaseContract.js.map +1 -0
  7. package/dist/{contracts → cjs/contracts}/GenericRealmAccessThresholdRoleContract.d.ts +3 -2
  8. package/dist/cjs/contracts/GenericRealmAccessThresholdRoleContract.d.ts.map +1 -0
  9. package/dist/{contracts → cjs/contracts}/GenericRealmAccessThresholdRoleContract.js +6 -2
  10. package/dist/cjs/contracts/GenericRealmAccessThresholdRoleContract.js.map +1 -0
  11. package/dist/{contracts → cjs/contracts}/GenericResourceAccessThresholdRoleContract.d.ts +3 -2
  12. package/dist/cjs/contracts/GenericResourceAccessThresholdRoleContract.d.ts.map +1 -0
  13. package/dist/{contracts → cjs/contracts}/GenericResourceAccessThresholdRoleContract.js +6 -2
  14. package/dist/cjs/contracts/GenericResourceAccessThresholdRoleContract.js.map +1 -0
  15. package/dist/cjs/index.d.ts +15 -0
  16. package/dist/cjs/index.d.ts.map +1 -0
  17. package/dist/{index.js → cjs/index.js} +7 -3
  18. package/dist/cjs/index.js.map +1 -0
  19. package/dist/cjs/models/CustomTideRequest.d.ts +19 -0
  20. package/dist/cjs/models/CustomTideRequest.d.ts.map +1 -0
  21. package/dist/cjs/models/CustomTideRequest.js +40 -0
  22. package/dist/cjs/models/CustomTideRequest.js.map +1 -0
  23. package/dist/{models → cjs/models}/Policy.d.ts +17 -2
  24. package/dist/cjs/models/Policy.d.ts.map +1 -0
  25. package/dist/{models → cjs/models}/Policy.js +126 -29
  26. package/dist/cjs/models/Policy.js.map +1 -0
  27. package/dist/cjs/models/TideRequest.d.ts.map +1 -0
  28. package/dist/{models → cjs/models}/TideRequest.js +1 -1
  29. package/dist/cjs/models/TideRequest.js.map +1 -0
  30. package/dist/cjs/utils/Serialization.d.ts.map +1 -0
  31. package/dist/cjs/utils/Serialization.js.map +1 -0
  32. package/dist/cjs/utils/TideMemory.d.ts.map +1 -0
  33. package/dist/cjs/utils/TideMemory.js.map +1 -0
  34. package/dist/esm/contracts/BaseContract.d.ts +47 -0
  35. package/dist/esm/contracts/BaseContract.d.ts.map +1 -0
  36. package/dist/esm/contracts/BaseContract.js +154 -0
  37. package/dist/esm/contracts/BaseContract.js.map +1 -0
  38. package/dist/esm/contracts/GenericRealmAccessThresholdRoleContract.d.ts +8 -0
  39. package/dist/esm/contracts/GenericRealmAccessThresholdRoleContract.d.ts.map +1 -0
  40. package/dist/esm/contracts/GenericRealmAccessThresholdRoleContract.js +22 -0
  41. package/dist/esm/contracts/GenericRealmAccessThresholdRoleContract.js.map +1 -0
  42. package/dist/esm/contracts/GenericResourceAccessThresholdRoleContract.d.ts +8 -0
  43. package/dist/esm/contracts/GenericResourceAccessThresholdRoleContract.d.ts.map +1 -0
  44. package/dist/esm/contracts/GenericResourceAccessThresholdRoleContract.js +22 -0
  45. package/dist/esm/contracts/GenericResourceAccessThresholdRoleContract.js.map +1 -0
  46. package/dist/esm/index.d.ts +15 -0
  47. package/dist/esm/index.d.ts.map +1 -0
  48. package/dist/{index.d.ts → esm/index.js} +5 -5
  49. package/dist/esm/index.js.map +1 -0
  50. package/dist/esm/models/CustomTideRequest.d.ts +19 -0
  51. package/dist/esm/models/CustomTideRequest.d.ts.map +1 -0
  52. package/dist/esm/models/CustomTideRequest.js +31 -0
  53. package/dist/esm/models/CustomTideRequest.js.map +1 -0
  54. package/dist/esm/models/Policy.d.ts +41 -0
  55. package/dist/esm/models/Policy.d.ts.map +1 -0
  56. package/dist/esm/models/Policy.js +263 -0
  57. package/dist/esm/models/Policy.js.map +1 -0
  58. package/dist/esm/models/TideRequest.d.ts +48 -0
  59. package/dist/esm/models/TideRequest.d.ts.map +1 -0
  60. package/dist/esm/models/TideRequest.js +252 -0
  61. package/dist/esm/models/TideRequest.js.map +1 -0
  62. package/dist/esm/utils/Serialization.d.ts +7 -0
  63. package/dist/esm/utils/Serialization.d.ts.map +1 -0
  64. package/dist/esm/utils/Serialization.js +98 -0
  65. package/dist/esm/utils/Serialization.js.map +1 -0
  66. package/dist/esm/utils/TideMemory.d.ts +10 -0
  67. package/dist/esm/utils/TideMemory.d.ts.map +1 -0
  68. package/dist/esm/utils/TideMemory.js +106 -0
  69. package/dist/esm/utils/TideMemory.js.map +1 -0
  70. package/package.json +14 -5
  71. package/dist/contracts/BaseContract.d.ts +0 -30
  72. package/dist/contracts/BaseContract.d.ts.map +0 -1
  73. package/dist/contracts/BaseContract.js.map +0 -1
  74. package/dist/contracts/GenericRealmAccessThresholdRoleContract.d.ts.map +0 -1
  75. package/dist/contracts/GenericRealmAccessThresholdRoleContract.js.map +0 -1
  76. package/dist/contracts/GenericResourceAccessThresholdRoleContract.d.ts.map +0 -1
  77. package/dist/contracts/GenericResourceAccessThresholdRoleContract.js.map +0 -1
  78. package/dist/index.d.ts.map +0 -1
  79. package/dist/index.js.map +0 -1
  80. package/dist/models/CustomTideRequest.d.ts +0 -16
  81. package/dist/models/CustomTideRequest.d.ts.map +0 -1
  82. package/dist/models/CustomTideRequest.js +0 -55
  83. package/dist/models/CustomTideRequest.js.map +0 -1
  84. package/dist/models/Policy.d.ts.map +0 -1
  85. package/dist/models/Policy.js.map +0 -1
  86. package/dist/models/TideRequest.d.ts.map +0 -1
  87. package/dist/models/TideRequest.js.map +0 -1
  88. package/dist/utils/Serialization.d.ts.map +0 -1
  89. package/dist/utils/Serialization.js.map +0 -1
  90. package/dist/utils/TideMemory.d.ts.map +0 -1
  91. package/dist/utils/TideMemory.js.map +0 -1
  92. /package/dist/{models → cjs/models}/TideRequest.d.ts +0 -0
  93. /package/dist/{utils → cjs/utils}/Serialization.d.ts +0 -0
  94. /package/dist/{utils → cjs/utils}/Serialization.js +0 -0
  95. /package/dist/{utils → cjs/utils}/TideMemory.d.ts +0 -0
  96. /package/dist/{utils → cjs/utils}/TideMemory.js +0 -0
@@ -0,0 +1,263 @@
1
+ import { TideMemory } from "../utils/TideMemory";
2
+ import { BigIntToByteArray, BigIntFromByteArray, StringFromUint8Array, StringToUint8Array } from "../utils/Serialization";
3
+ export var ApprovalType;
4
+ (function (ApprovalType) {
5
+ ApprovalType[ApprovalType["EXPLICIT"] = 0] = "EXPLICIT";
6
+ ApprovalType[ApprovalType["IMPLICIT"] = 1] = "IMPLICIT";
7
+ })(ApprovalType || (ApprovalType = {}));
8
+ export var ExecutionType;
9
+ (function (ExecutionType) {
10
+ ExecutionType[ExecutionType["PRIVATE"] = 0] = "PRIVATE";
11
+ ExecutionType[ExecutionType["PUBLIC"] = 1] = "PUBLIC";
12
+ })(ExecutionType || (ExecutionType = {}));
13
+ export class Policy {
14
+ constructor(data) {
15
+ if (typeof data["version"] !== "string")
16
+ throw 'Version is not a string';
17
+ this.version = data["version"];
18
+ if (typeof data["contractId"] !== "string")
19
+ throw 'ContractId is not a string';
20
+ this.contractId = data["contractId"];
21
+ if (typeof data["modelId"] !== "string")
22
+ throw 'ModelId is not a string';
23
+ this.modelId = data["modelId"];
24
+ if (typeof data["keyId"] !== "string")
25
+ throw 'KeyId is not a string';
26
+ this.keyId = data["keyId"];
27
+ this.approvalType = data.approvalType;
28
+ this.executionType = data.executionType;
29
+ if (!data["params"])
30
+ throw 'Params is null';
31
+ this.params = data["params"] instanceof PolicyParameters ? data["params"] : new PolicyParameters(data["params"]);
32
+ this.dataToVerify = TideMemory.CreateFromArray([
33
+ StringToUint8Array(this.version),
34
+ StringToUint8Array(this.contractId),
35
+ StringToUint8Array(this.modelId),
36
+ StringToUint8Array(this.keyId),
37
+ StringToUint8Array(ApprovalType[this.approvalType]),
38
+ StringToUint8Array(ExecutionType[this.executionType]),
39
+ this.params.toBytes()
40
+ ]);
41
+ }
42
+ static from(data) {
43
+ const d = new TideMemory(data.length);
44
+ d.set(data);
45
+ const dataToVerify = d.GetValue(0);
46
+ const version = StringFromUint8Array(dataToVerify.GetValue(0));
47
+ if (version != Policy.latestVersion) {
48
+ // old version
49
+ switch (version) {
50
+ case PolicyV1.thisVersion:
51
+ return PolicyV1.from(d);
52
+ default:
53
+ throw Error("Unknown policy version: " + version);
54
+ }
55
+ }
56
+ const contractId = StringFromUint8Array(dataToVerify.GetValue(1));
57
+ const modelId = StringFromUint8Array(dataToVerify.GetValue(2));
58
+ const keyId = StringFromUint8Array(dataToVerify.GetValue(3));
59
+ const approvalType = ApprovalType[StringFromUint8Array(dataToVerify.GetValue(4))];
60
+ const executionType = ExecutionType[StringFromUint8Array(dataToVerify.GetValue(5))];
61
+ const params = new PolicyParameters(dataToVerify.GetValue(6));
62
+ const p = new Policy({
63
+ version,
64
+ contractId,
65
+ modelId,
66
+ keyId,
67
+ approvalType,
68
+ executionType,
69
+ params
70
+ });
71
+ const sigRes = { result: undefined };
72
+ if (d.TryGetValue(1, sigRes)) {
73
+ p.signature = sigRes.result;
74
+ }
75
+ return p;
76
+ }
77
+ toBytes() {
78
+ let d = [
79
+ TideMemory.CreateFromArray([
80
+ StringToUint8Array(this.version),
81
+ StringToUint8Array(this.contractId),
82
+ StringToUint8Array(this.modelId),
83
+ StringToUint8Array(this.keyId),
84
+ StringToUint8Array(ApprovalType[this.approvalType]),
85
+ StringToUint8Array(ExecutionType[this.executionType]),
86
+ this.params.toBytes()
87
+ ])
88
+ ];
89
+ if (this.signature)
90
+ d.push(this.signature);
91
+ return TideMemory.CreateFromArray(d);
92
+ }
93
+ }
94
+ Policy.latestVersion = "2";
95
+ export class PolicyParameters {
96
+ constructor(data) {
97
+ if (data instanceof Uint8Array) {
98
+ this.entries = PolicyParameters.fromBytes(data);
99
+ }
100
+ else {
101
+ this.entries = new Map(data);
102
+ }
103
+ }
104
+ static fromBytes(data) {
105
+ let params = new Map();
106
+ let i = 0;
107
+ const value = { result: undefined };
108
+ // Create TideMemory instance to access TryGetValue
109
+ const tideData = new TideMemory(data.length);
110
+ tideData.set(data);
111
+ // Try to get values at sequential indices
112
+ while (tideData.TryGetValue(i, value)) {
113
+ const nameBytes = value.result.GetValue(0);
114
+ const name = StringFromUint8Array(nameBytes);
115
+ const typeBytes = value.result.GetValue(1);
116
+ const type = StringFromUint8Array(typeBytes);
117
+ const dataBytes = value.result.GetValue(2);
118
+ let datum;
119
+ switch (type) {
120
+ case "str":
121
+ datum = StringFromUint8Array(dataBytes);
122
+ break;
123
+ case "num":
124
+ const numView = new DataView(dataBytes.buffer, dataBytes.byteOffset, dataBytes.byteLength);
125
+ datum = numView.getInt32(0, true); // little-endian
126
+ break;
127
+ case "bnum":
128
+ // Convert bytes to BigInt (little-endian)
129
+ datum = BigIntFromByteArray(dataBytes);
130
+ break;
131
+ case "bln":
132
+ datum = dataBytes[0] === 1;
133
+ break;
134
+ case "byt":
135
+ datum = new Uint8Array(dataBytes);
136
+ break;
137
+ default:
138
+ throw new Error(`Could not find type of ${type}`);
139
+ }
140
+ params.set(name, datum);
141
+ i++;
142
+ }
143
+ return params;
144
+ }
145
+ tryGetParameter(key) {
146
+ try {
147
+ return [true, this.getParameter(key)];
148
+ }
149
+ catch {
150
+ return [false, null];
151
+ }
152
+ }
153
+ getParameter(key) {
154
+ if (!this.entries.has(key)) {
155
+ throw new Error(`Parameter '${key}' not found`);
156
+ }
157
+ const value = this.entries.get(key);
158
+ const actualType = value instanceof Uint8Array ? 'Uint8Array' : typeof value;
159
+ // Type checking logic
160
+ let expectedType;
161
+ if (value instanceof Uint8Array) {
162
+ expectedType = 'Uint8Array';
163
+ }
164
+ else {
165
+ expectedType = typeof value;
166
+ }
167
+ // Validate the type matches what was requested
168
+ // We can't directly check T at runtime, so we infer from the value type
169
+ const isCorrectType = (typeof value === 'string' && value.constructor === String) ||
170
+ (typeof value === 'number' && value.constructor === Number) ||
171
+ (typeof value === 'bigint' && value.constructor === BigInt) ||
172
+ (typeof value === 'boolean' && value.constructor === Boolean) ||
173
+ (value instanceof Uint8Array);
174
+ if (!isCorrectType) {
175
+ throw new Error(`Parameter '${key}' exists but has unexpected type '${actualType}'`);
176
+ }
177
+ return value;
178
+ }
179
+ toBytes() {
180
+ let params = [];
181
+ for (const [key, value] of this.entries) {
182
+ const nameBytes = StringToUint8Array(key);
183
+ let dataBytes, typeStr;
184
+ if (typeof value === 'string') {
185
+ dataBytes = StringToUint8Array(value);
186
+ typeStr = "str";
187
+ }
188
+ else if (typeof value === 'number' && Number.isInteger(value)) {
189
+ const buffer = new ArrayBuffer(4);
190
+ const view = new DataView(buffer);
191
+ view.setInt32(0, value, true); // little-endian
192
+ dataBytes = new Uint8Array(buffer);
193
+ typeStr = "num";
194
+ }
195
+ else if (typeof value === 'bigint') {
196
+ dataBytes = BigIntToByteArray(value);
197
+ typeStr = "bnum";
198
+ }
199
+ else if (typeof value === 'boolean') {
200
+ dataBytes = new Uint8Array([value ? 1 : 0]);
201
+ typeStr = "bln";
202
+ }
203
+ else if (value instanceof Uint8Array) {
204
+ dataBytes = value;
205
+ typeStr = "byt";
206
+ }
207
+ else {
208
+ throw new Error(`Could not serialize key '${key}' of type '${typeof value}'`);
209
+ }
210
+ const typeBytes = StringToUint8Array(typeStr);
211
+ const paramMemory = TideMemory.CreateFromArray([nameBytes, typeBytes, dataBytes]);
212
+ params.push(paramMemory);
213
+ }
214
+ return TideMemory.CreateFromArray(params);
215
+ }
216
+ }
217
+ class PolicyV1 extends Policy {
218
+ constructor() {
219
+ super(...arguments);
220
+ this.version = PolicyV1.thisVersion;
221
+ }
222
+ static from(data) {
223
+ const dataToVerify = data.GetValue(0);
224
+ const v = StringFromUint8Array(dataToVerify.GetValue(0));
225
+ if (v != PolicyV1.thisVersion) {
226
+ throw Error("Dev error");
227
+ }
228
+ const contractId = StringFromUint8Array(dataToVerify.GetValue(1));
229
+ const modelId = StringFromUint8Array(dataToVerify.GetValue(2));
230
+ const keyId = StringFromUint8Array(dataToVerify.GetValue(3));
231
+ const params = new PolicyParameters(dataToVerify.GetValue(4));
232
+ const p = new PolicyV1({
233
+ version: v,
234
+ contractId,
235
+ modelId,
236
+ keyId,
237
+ approvalType: ApprovalType.EXPLICIT, // didn't exist on v1 so this is default
238
+ executionType: ExecutionType.PUBLIC, // didn't exist on v1 so this is default
239
+ params
240
+ });
241
+ const sigRes = { result: undefined };
242
+ if (data.TryGetValue(1, sigRes)) {
243
+ p.signature = sigRes.result;
244
+ }
245
+ return p;
246
+ }
247
+ toBytes() {
248
+ let d = [
249
+ TideMemory.CreateFromArray([
250
+ StringToUint8Array(PolicyV1.thisVersion),
251
+ StringToUint8Array(this.contractId),
252
+ StringToUint8Array(this.modelId),
253
+ StringToUint8Array(this.keyId),
254
+ this.params.toBytes()
255
+ ])
256
+ ];
257
+ if (this.signature)
258
+ d.push(this.signature);
259
+ return TideMemory.CreateFromArray(d);
260
+ }
261
+ }
262
+ PolicyV1.thisVersion = "1";
263
+ //# sourceMappingURL=Policy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Policy.js","sourceRoot":"","sources":["../../../src/models/Policy.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,48 @@
1
+ import { TideMemory } from "../utils/TideMemory.js";
2
+ import { Policy } from "./Policy.js";
3
+ export default class BaseTideRequest {
4
+ static _name: string;
5
+ static _version: string;
6
+ name: string;
7
+ version: string;
8
+ authFlow: string;
9
+ draft: TideMemory;
10
+ dyanmicData: TideMemory;
11
+ authorization: TideMemory;
12
+ authorizerCert: TideMemory;
13
+ authorizer: TideMemory;
14
+ expiry: number;
15
+ policy: TideMemory;
16
+ constructor(name: string, version: string, authFlow: string, draft: Uint8Array, dyanmicData: Uint8Array);
17
+ id(): string;
18
+ /**
19
+ * This isn't copying. Just created another BaseTideRequest object that allows you to point each individual field to OTHER sections of memory.
20
+ * If you modify an existing 'replicated' field, you'll also modify the other object you originally replicated.
21
+ */
22
+ replicate(): BaseTideRequest;
23
+ setNewDynamicData(d: Uint8Array): this;
24
+ setCustomExpiry(timeFromNowInSeconds: number): this;
25
+ addAuthorizer(authorizer: Uint8Array): void;
26
+ addAuthorizerCertificate(authorizerCertificate: Uint8Array): void;
27
+ addAuthorization(authorization: Uint8Array): this;
28
+ addPolicy(policy: Uint8Array): this;
29
+ hasPolicy(): boolean;
30
+ getRequestInitDetails(): Promise<{
31
+ creationTime: Uint8Array<ArrayBufferLike>;
32
+ expireTime: Uint8Array<ArrayBufferLike>;
33
+ modelId: NodeJS.NonSharedUint8Array;
34
+ draftHash: TideMemory;
35
+ }>;
36
+ addCreationSignature(creationTime: Uint8Array, sig: Uint8Array): this;
37
+ isInitialized(): boolean;
38
+ getUniqueId(): string;
39
+ getInitializedTime(): number;
40
+ getCurrentApprovalCount(): number;
41
+ getPolicy(): Policy;
42
+ removeApproval(approvalVuid: string): boolean;
43
+ encode(): TideMemory;
44
+ static decode<T extends BaseTideRequest>(this: new (name: string, version: string, authFlow: string, draft: Uint8Array, dynamicData: Uint8Array) => T, data: Uint8Array): T;
45
+ private static uint32ToUint8ArrayLE;
46
+ private static uint8ArrayToUint32LE;
47
+ }
48
+ //# sourceMappingURL=TideRequest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TideRequest.d.ts","sourceRoot":"","sources":["../../../src/models/TideRequest.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,MAAM,CAAC,OAAO,OAAO,eAAe;IAChC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC;IAExB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,UAAU,CAAC;IAClB,WAAW,EAAE,UAAU,CAAC;IACxB,aAAa,EAAE,UAAU,CAAC;IAC1B,cAAc,EAAE,UAAU,CAAC;IAC3B,UAAU,EAAE,UAAU,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,UAAU,CAAC;gBAEP,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU;IAkBvG,EAAE;IAIF;;;OAGG;IACH,SAAS;IAUT,iBAAiB,CAAC,CAAC,EAAE,UAAU;IAM/B,eAAe,CAAC,oBAAoB,EAAE,MAAM;IAK5C,aAAa,CAAC,UAAU,EAAE,UAAU;IAKpC,wBAAwB,CAAC,qBAAqB,EAAE,UAAU;IAK1D,gBAAgB,CAAC,aAAa,EAAE,UAAU;IAM1C,SAAS,CAAC,MAAM,EAAE,UAAU;IAM5B,SAAS,IAAI,OAAO;IAId,qBAAqB;;;;;;IAU3B,oBAAoB,CAAC,YAAY,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU;IAW9D,aAAa,IAAI,OAAO;IAUxB,WAAW,IAAI,MAAM;IAMrB,kBAAkB,IAAI,MAAM;IAM5B,uBAAuB,IAAI,MAAM;IAQjC,SAAS,IAAI,MAAM;IAInB,cAAc,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO;IA0C7C,MAAM;IA2BN,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,eAAe,EACnC,IAAI,EAAE,KAAK,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,KAAK,CAAC,EAC5G,IAAI,EAAE,UAAU,GACjB,CAAC;IAyCJ,OAAO,CAAC,MAAM,CAAC,oBAAoB;IAcnC,OAAO,CAAC,MAAM,CAAC,oBAAoB;CAoBtC"}
@@ -0,0 +1,252 @@
1
+ import { Doken } from "../contracts/BaseContract.js";
2
+ import { TideMemory } from "../utils/TideMemory.js";
3
+ import { Policy } from "./Policy.js";
4
+ export default class BaseTideRequest {
5
+ constructor(name, version, authFlow, draft, dyanmicData) {
6
+ this.name = name;
7
+ this.version = version;
8
+ this.authFlow = authFlow;
9
+ this.draft = new TideMemory(draft.length);
10
+ this.draft.set(draft);
11
+ this.dyanmicData = new TideMemory(dyanmicData.length);
12
+ this.dyanmicData.set(dyanmicData);
13
+ this.authorization = new TideMemory();
14
+ this.authorizerCert = new TideMemory();
15
+ ;
16
+ this.authorizer = new TideMemory();
17
+ this.expiry = Math.floor(Date.now() / 1000) + 30; // default is 30s
18
+ this.policy = new TideMemory();
19
+ }
20
+ id() {
21
+ return this.name + ":" + this.version;
22
+ }
23
+ /**
24
+ * This isn't copying. Just created another BaseTideRequest object that allows you to point each individual field to OTHER sections of memory.
25
+ * If you modify an existing 'replicated' field, you'll also modify the other object you originally replicated.
26
+ */
27
+ replicate() {
28
+ const r = new BaseTideRequest(this.name, this.version, this.authFlow, this.draft, this.dyanmicData);
29
+ r.authorization = this.authorization;
30
+ r.authorizerCert = this.authorizerCert;
31
+ r.authorizer = this.authorizer;
32
+ r.expiry = this.expiry;
33
+ r.policy = this.policy;
34
+ return r;
35
+ }
36
+ setNewDynamicData(d) {
37
+ this.dyanmicData = new TideMemory(d.length);
38
+ this.dyanmicData.set(d);
39
+ return this;
40
+ }
41
+ setCustomExpiry(timeFromNowInSeconds) {
42
+ this.expiry = Math.floor(Date.now() / 1000) + timeFromNowInSeconds;
43
+ return this;
44
+ }
45
+ addAuthorizer(authorizer) {
46
+ this.authorizer = new TideMemory(authorizer.length);
47
+ this.authorizer.set(authorizer);
48
+ }
49
+ addAuthorizerCertificate(authorizerCertificate) {
50
+ this.authorizerCert = new TideMemory(authorizerCertificate.length);
51
+ this.authorizerCert.set(authorizerCertificate);
52
+ }
53
+ addAuthorization(authorization) {
54
+ this.authorization = new TideMemory(authorization.length);
55
+ this.authorization.set(authorization);
56
+ return this;
57
+ }
58
+ addPolicy(policy) {
59
+ this.policy = new TideMemory(policy.length);
60
+ this.policy.set(policy);
61
+ return this;
62
+ }
63
+ hasPolicy() {
64
+ return this.policy.length != 0;
65
+ }
66
+ async getRequestInitDetails() {
67
+ const te = new TextEncoder();
68
+ return {
69
+ "creationTime": BaseTideRequest.uint32ToUint8ArrayLE(Math.floor(Date.now() / 1000)), // now
70
+ "expireTime": BaseTideRequest.uint32ToUint8ArrayLE(this.expiry),
71
+ "modelId": te.encode(this.id()),
72
+ "draftHash": new TideMemory(await crypto.subtle.digest("SHA-512", this.draft))
73
+ };
74
+ }
75
+ addCreationSignature(creationTime, sig) {
76
+ this.authorization = TideMemory.CreateFromArray([
77
+ TideMemory.CreateFromArray([
78
+ creationTime,
79
+ sig
80
+ ]),
81
+ new TideMemory() // empty as no approvals have been added yet
82
+ ]);
83
+ return this;
84
+ }
85
+ isInitialized() {
86
+ try {
87
+ // check that creation time and sig fields are present
88
+ if (this.authorization.GetValue(0).GetValue(0).length > 0 && this.authorization.GetValue(0).GetValue(1).length == 64)
89
+ return true;
90
+ else
91
+ return false;
92
+ }
93
+ catch {
94
+ return false;
95
+ }
96
+ }
97
+ getUniqueId() {
98
+ if (!this.isInitialized())
99
+ throw 'Must initialize request to generate unique id';
100
+ const bytes = this.authorization.GetValue(0).GetValue(1);
101
+ return Array.from(bytes).map(b => b.toString(16).padStart(2, '0')).join(''); // hex
102
+ }
103
+ getInitializedTime() {
104
+ if (!this.isInitialized())
105
+ throw 'Must initialize request to get creation time';
106
+ const time_bytes = this.authorization.GetValue(0).GetValue(0);
107
+ return BaseTideRequest.uint8ArrayToUint32LE(time_bytes);
108
+ }
109
+ getCurrentApprovalCount() {
110
+ if (!this.isInitialized())
111
+ throw 'Must initialize request to get approval count';
112
+ let i = 0;
113
+ let res = { result: undefined };
114
+ while (this.authorizer.TryGetValue(i, res)) {
115
+ i++;
116
+ }
117
+ return i;
118
+ }
119
+ getPolicy() {
120
+ return Policy.from(this.policy);
121
+ }
122
+ removeApproval(approvalVuid) {
123
+ // find if there are any dokens with this approvalVuid
124
+ if (!this.isInitialized())
125
+ return false;
126
+ if (this.getCurrentApprovalCount() == 0)
127
+ return false;
128
+ try {
129
+ // find doken and it's index
130
+ let i = 0;
131
+ let res = { result: new TideMemory() };
132
+ let dokenWithVuidFound = {};
133
+ let keepTheseDokensList = [];
134
+ let keepTheseApprovalSigs = [];
135
+ while (this.authorizer.TryGetValue(i, res)) {
136
+ const d = new Doken(res.result);
137
+ if (d.hasVuid(approvalVuid)) {
138
+ dokenWithVuidFound = {
139
+ index: i,
140
+ value: d
141
+ };
142
+ }
143
+ else {
144
+ keepTheseDokensList.push(res.result);
145
+ keepTheseApprovalSigs.push(this.authorization.GetValue(1).GetValue(i));
146
+ }
147
+ i++;
148
+ }
149
+ // reconstruct authorizers and authorizer sigs of request
150
+ if (dokenWithVuidFound) {
151
+ const creationAuth = this.authorization.GetValue(0);
152
+ this.authorization = TideMemory.CreateFromArray([
153
+ creationAuth,
154
+ TideMemory.CreateFromArray(keepTheseApprovalSigs)
155
+ ]);
156
+ this.authorizer = TideMemory.CreateFromArray(keepTheseDokensList);
157
+ return true;
158
+ }
159
+ else
160
+ return false;
161
+ }
162
+ catch (ex) {
163
+ console.error(ex);
164
+ return false;
165
+ }
166
+ }
167
+ encode() {
168
+ if (this.authorizer == null)
169
+ throw Error("Authorizer not added to request");
170
+ if (this.authorizerCert == null)
171
+ throw Error("Authorizer cert not provided");
172
+ if (this.authorization == null)
173
+ throw Error("Authorize this request first with an authorizer");
174
+ const te = new TextEncoder();
175
+ const name_b = te.encode(this.name);
176
+ const version_b = te.encode(this.version);
177
+ const authFlow_b = te.encode(this.authFlow);
178
+ const expiry = BaseTideRequest.uint32ToUint8ArrayLE(this.expiry);
179
+ const req = TideMemory.CreateFromArray([
180
+ name_b,
181
+ version_b,
182
+ expiry,
183
+ this.draft,
184
+ authFlow_b,
185
+ this.dyanmicData,
186
+ this.authorizer,
187
+ this.authorization,
188
+ this.authorizerCert,
189
+ this.policy
190
+ ]);
191
+ return req;
192
+ }
193
+ static decode(data) {
194
+ const d = new TideMemory(data.length);
195
+ d.set(data);
196
+ // Read field 0 (name) - this is part of the TideMemory structure
197
+ const name = new TextDecoder().decode(d.GetValue(0));
198
+ // Read all other fields
199
+ const version = new TextDecoder().decode(d.GetValue(1));
200
+ // Check name and version in static members if set
201
+ if (this._name != undefined && this._version != undefined) {
202
+ if (name != this._name || version != this._version)
203
+ throw Error("Name and Version in decoded data don't match this object's set name and version.");
204
+ }
205
+ const expiry = BaseTideRequest.uint8ArrayToUint32LE(d.GetValue(2));
206
+ const draft = d.GetValue(3);
207
+ const authFlow = new TextDecoder().decode(d.GetValue(4));
208
+ const dynamicData = d.GetValue(5);
209
+ const authorizer = d.GetValue(6);
210
+ const authorization = d.GetValue(7);
211
+ const authorizerCert = d.GetValue(8);
212
+ const policy = d.GetValue(9);
213
+ // Create a new instance using 'this' constructor to support subclasses
214
+ const request = new this(name, version, authFlow, draft, dynamicData);
215
+ // Set the remaining fields
216
+ request.expiry = expiry;
217
+ request.authorizer = authorizer;
218
+ request.authorization = authorization;
219
+ request.authorizerCert = authorizerCert;
220
+ request.policy = policy;
221
+ return request;
222
+ }
223
+ static uint32ToUint8ArrayLE(num) {
224
+ // We want 8 bytes to match .NET Int64 (long) layout: low 32 bits in first 4 bytes, rest zero.
225
+ const arr = new Uint8Array(8);
226
+ // low 32 bits, little-endian
227
+ arr[0] = num & 0xff;
228
+ arr[1] = (num >>> 8) & 0xff;
229
+ arr[2] = (num >>> 16) & 0xff;
230
+ arr[3] = (num >>> 24) & 0xff;
231
+ // arr[4..7] are already 0 from Uint8Array init, matching a .NET long with high 32 bits = 0.
232
+ return arr;
233
+ }
234
+ static uint8ArrayToUint32LE(bytes) {
235
+ if (bytes.length !== 8) {
236
+ throw new Error("Expected 8 bytes for a 64-bit value");
237
+ }
238
+ // Optional safety check: ensure high 32 bits are zero (no real 64-bit longs passed).
239
+ // If you *really* want to enforce the "no longs" assumption, uncomment:
240
+ //
241
+ // if (bytes[4] | bytes[5] | bytes[6] | bytes[7]) {
242
+ // throw new Error("High 32 bits are not zero; expected a 32-bit value stored in 64-bit field.");
243
+ // }
244
+ // Reconstruct from the low 4 bytes (little-endian)
245
+ return (bytes[0] +
246
+ (bytes[1] << 8) +
247
+ (bytes[2] << 16) +
248
+ (bytes[3] * 0x1000000) // avoids sign issues of << 24
249
+ );
250
+ }
251
+ }
252
+ //# sourceMappingURL=TideRequest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TideRequest.js","sourceRoot":"","sources":["../../../src/models/TideRequest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,8BAA8B,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,MAAM,CAAC,OAAO,OAAO,eAAe;IAehC,YAAY,IAAY,EAAE,OAAe,EAAE,QAAgB,EAAE,KAAiB,EAAE,WAAuB;QACnG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;QAExB,IAAI,CAAC,KAAK,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC1C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAEtB,IAAI,CAAC,WAAW,GAAG,IAAI,UAAU,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACtD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAElC,IAAI,CAAC,aAAa,GAAG,IAAI,UAAU,EAAE,CAAC;QACtC,IAAI,CAAC,cAAc,GAAG,IAAI,UAAU,EAAE,CAAC;QAAA,CAAC;QACxC,IAAI,CAAC,UAAU,GAAG,IAAI,UAAU,EAAE,CAAC;QACnC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,iBAAiB;QACnE,IAAI,CAAC,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;IACnC,CAAC;IAED,EAAE;QACE,OAAO,IAAI,CAAC,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC;IAC1C,CAAC;IAED;;;OAGG;IACH,SAAS;QACL,MAAM,CAAC,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QACpG,CAAC,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;QACrC,CAAC,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;QACvC,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QAC/B,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QACvB,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QACvB,OAAO,CAAC,CAAC;IACb,CAAC;IAED,iBAAiB,CAAC,CAAa;QAC3B,IAAI,CAAC,WAAW,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QAC5C,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACxB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,eAAe,CAAC,oBAA4B;QACxC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,oBAAoB,CAAC;QACnE,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,aAAa,CAAC,UAAsB;QAChC,IAAI,CAAC,UAAU,GAAG,IAAI,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QACpD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACpC,CAAC;IAED,wBAAwB,CAAC,qBAAiC;QACtD,IAAI,CAAC,cAAc,GAAG,IAAI,UAAU,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;QACnE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;IACnD,CAAC;IAED,gBAAgB,CAAC,aAAyB;QACtC,IAAI,CAAC,aAAa,GAAG,IAAI,UAAU,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAC1D,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QACtC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,SAAS,CAAC,MAAkB;QACxB,IAAI,CAAC,MAAM,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC5C,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACxB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,SAAS;QACL,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,qBAAqB;QACvB,MAAM,EAAE,GAAG,IAAI,WAAW,EAAE,CAAC;QAC7B,OAAO;YACH,cAAc,EAAE,eAAe,CAAC,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,EAAE,MAAM;YAC3F,YAAY,EAAE,eAAe,CAAC,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC;YAC/D,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YAC/B,WAAW,EAAE,IAAI,UAAU,CAAC,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;SACjF,CAAA;IACL,CAAC;IAED,oBAAoB,CAAC,YAAwB,EAAE,GAAe;QAC1D,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC,eAAe,CAAC;YAC5C,UAAU,CAAC,eAAe,CAAC;gBACvB,YAAY;gBACZ,GAAG;aACN,CAAC;YACF,IAAI,UAAU,EAAE,CAAC,4CAA4C;SAChE,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,aAAa;QACT,IAAI,CAAC;YACD,sDAAsD;YACtD,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE;gBAAE,OAAO,IAAI,CAAC;;gBAC7H,OAAO,KAAK,CAAC;QACtB,CAAC;QAAC,MAAM,CAAC;YACL,OAAO,KAAK,CAAC;QACjB,CAAC;IACL,CAAC;IAED,WAAW;QACP,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YAAE,MAAM,+CAA+C,CAAC;QACjF,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAe,CAAC;QACvE,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM;IACvF,CAAC;IAED,kBAAkB;QACd,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YAAE,MAAM,8CAA8C,CAAC;QAChF,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC9D,OAAO,eAAe,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC;IAC5D,CAAC;IAED,uBAAuB;QACnB,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YAAE,MAAM,+CAA+C,CAAC;QACjF,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,IAAI,GAAG,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;QAChC,OAAO,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;YAAC,CAAC,EAAE,CAAC;QAAC,CAAC;QACpD,OAAO,CAAC,CAAC;IACb,CAAC;IAED,SAAS;QACL,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACpC,CAAC;IAED,cAAc,CAAC,YAAoB;QAC/B,sDAAsD;QACtD,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YAAE,OAAO,KAAK,CAAC;QACxC,IAAI,IAAI,CAAC,uBAAuB,EAAE,IAAI,CAAC;YAAE,OAAO,KAAK,CAAC;QAEtD,IAAI,CAAC;YACD,4BAA4B;YAC5B,IAAI,CAAC,GAAG,CAAC,CAAC;YACV,IAAI,GAAG,GAAG,EAAE,MAAM,EAAE,IAAI,UAAU,EAAE,EAAE,CAAC;YACvC,IAAI,kBAAkB,GAAG,EAAE,CAAC;YAC5B,IAAI,mBAAmB,GAAG,EAAE,CAAC;YAC7B,IAAI,qBAAqB,GAAG,EAAE,CAAC;YAC/B,OAAO,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;gBACzC,MAAM,CAAC,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBAChC,IAAI,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;oBAC1B,kBAAkB,GAAG;wBACjB,KAAK,EAAE,CAAC;wBACR,KAAK,EAAE,CAAC;qBACX,CAAC;gBACN,CAAC;qBAAM,CAAC;oBACJ,mBAAmB,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;oBACrC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC3E,CAAC;gBACD,CAAC,EAAE,CAAC;YACR,CAAC;YAED,yDAAyD;YACzD,IAAI,kBAAkB,EAAE,CAAC;gBACrB,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;gBACpD,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC,eAAe,CAAC;oBAC5C,YAAY;oBACZ,UAAU,CAAC,eAAe,CAAC,qBAAqB,CAAC;iBACpD,CAAC,CAAC;gBACH,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,eAAe,CAAC,mBAAmB,CAAC,CAAC;gBAClE,OAAO,IAAI,CAAC;YAChB,CAAC;;gBAAK,OAAO,KAAK,CAAC;QACvB,CAAC;QAAC,OAAO,EAAE,EAAE,CAAC;YACV,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAClB,OAAO,KAAK,CAAC;QACjB,CAAC;IACL,CAAC;IAED,MAAM;QACF,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI;YAAE,MAAM,KAAK,CAAC,iCAAiC,CAAC,CAAC;QAC5E,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI;YAAE,MAAM,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAC7E,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI;YAAE,MAAM,KAAK,CAAC,iDAAiD,CAAC,CAAC;QAE/F,MAAM,EAAE,GAAG,IAAI,WAAW,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpC,MAAM,SAAS,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC1C,MAAM,UAAU,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC5C,MAAM,MAAM,GAAG,eAAe,CAAC,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAEjE,MAAM,GAAG,GAAG,UAAU,CAAC,eAAe,CAAC;YACnC,MAAM;YACN,SAAS;YACT,MAAM;YACN,IAAI,CAAC,KAAK;YACV,UAAU;YACV,IAAI,CAAC,WAAW;YAChB,IAAI,CAAC,UAAU;YACf,IAAI,CAAC,aAAa;YAClB,IAAI,CAAC,cAAc;YACnB,IAAI,CAAC,MAAM;SACd,CAAC,CAAC;QAEH,OAAO,GAAG,CAAC;IACf,CAAC;IAED,MAAM,CAAC,MAAM,CAET,IAAgB;QAEhB,MAAM,CAAC,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACtC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAEZ,iEAAiE;QACjE,MAAM,IAAI,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QAErD,wBAAwB;QACxB,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QAExD,kDAAkD;QAClD,IAAK,IAAY,CAAC,KAAK,IAAI,SAAS,IAAK,IAAY,CAAC,QAAQ,IAAI,SAAS,EAAE,CAAC;YAC1E,IAAI,IAAI,IAAK,IAAY,CAAC,KAAK,IAAI,OAAO,IAAK,IAAY,CAAC,QAAQ;gBAAE,MAAM,KAAK,CAAC,kFAAkF,CAAC,CAAA;QACzK,CAAC;QAED,MAAM,MAAM,GAAG,eAAe,CAAC,oBAAoB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QAEnE,MAAM,KAAK,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAE5B,MAAM,QAAQ,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QAEzD,MAAM,WAAW,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAElC,MAAM,UAAU,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QACjC,MAAM,aAAa,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QACpC,MAAM,cAAc,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QACrC,MAAM,MAAM,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAE7B,uEAAuE;QACvE,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;QAEtE,2BAA2B;QAC3B,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC;QACxB,OAAO,CAAC,UAAU,GAAG,UAAU,CAAC;QAChC,OAAO,CAAC,aAAa,GAAG,aAAa,CAAC;QACtC,OAAO,CAAC,cAAc,GAAG,cAAc,CAAC;QACxC,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC;QAExB,OAAO,OAAO,CAAC;IACnB,CAAC;IAEO,MAAM,CAAC,oBAAoB,CAAC,GAAW;QAC3C,8FAA8F;QAC9F,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;QAE9B,6BAA6B;QAC7B,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC;QACpB,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC;QAC5B,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;QAC7B,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;QAE7B,4FAA4F;QAC5F,OAAO,GAAG,CAAC;IACf,CAAC;IAEO,MAAM,CAAC,oBAAoB,CAAC,KAAiB;QACjD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;QAC3D,CAAC;QAED,qFAAqF;QACrF,wEAAwE;QACxE,EAAE;QACF,mDAAmD;QACnD,qGAAqG;QACrG,IAAI;QAEJ,mDAAmD;QACnD,OAAO,CACH,KAAK,CAAC,CAAC,CAAC;YACR,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACf,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAChB,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,8BAA8B;SACxD,CAAC;IACN,CAAC;CACJ"}
@@ -0,0 +1,7 @@
1
+ export declare function bytesToBase64(bytes: Uint8Array): string;
2
+ export declare function base64toBytes(base64: string): Uint8Array;
3
+ export declare function StringToUint8Array(string: string): Uint8Array;
4
+ export declare function StringFromUint8Array(bytes: Uint8Array): string;
5
+ export declare function BigIntToByteArray(value: bigint): Uint8Array;
6
+ export declare function BigIntFromByteArray(bytes: Uint8Array): bigint;
7
+ //# sourceMappingURL=Serialization.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Serialization.d.ts","sourceRoot":"","sources":["../../../src/utils/Serialization.ts"],"names":[],"mappings":"AAOA,wBAAgB,aAAa,CAAC,KAAK,EAAE,UAAU,GAAI,MAAM,CAoBxD;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CAkCxD;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAI,UAAU,CAG9D;AACD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,UAAU,GAAI,MAAM,CAG/D;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,CA4B3D;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAS7D"}