heimdall-tide 0.12.47 → 0.13.1
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/cjs/enclaves/RequestEnclave.d.ts +18 -9
- package/dist/cjs/enclaves/RequestEnclave.js +2 -20
- package/dist/cjs/enclaves/RequestEnclave.js.map +1 -1
- package/dist/cjs/heimdall.d.ts +0 -13
- package/dist/cjs/heimdall.js +1 -4
- package/dist/cjs/heimdall.js.map +1 -1
- package/dist/cjs/index.d.ts +0 -6
- package/dist/cjs/index.js +1 -13
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/wrapper.d.ts +6 -1
- package/dist/cjs/wrapper.js +97 -4
- package/dist/cjs/wrapper.js.map +1 -1
- package/dist/esm/enclaves/RequestEnclave.d.ts +18 -9
- package/dist/esm/enclaves/RequestEnclave.js +2 -20
- package/dist/esm/enclaves/RequestEnclave.js.map +1 -1
- package/dist/esm/heimdall.d.ts +0 -13
- package/dist/esm/heimdall.js +1 -4
- package/dist/esm/heimdall.js.map +1 -1
- package/dist/esm/index.d.ts +0 -6
- package/dist/esm/index.js +0 -6
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/wrapper.d.ts +6 -1
- package/dist/esm/wrapper.js +93 -1
- package/dist/esm/wrapper.js.map +1 -1
- package/heimdall-tide-0.13.1.tgz +0 -0
- package/package.json +1 -4
- package/package.json.bak +1 -4
- package/src/enclaves/RequestEnclave.ts +20 -34
- package/src/heimdall.ts +0 -17
- package/src/index.ts +1 -8
- package/src/wrapper.ts +118 -2
- package/tsconfig.cjs.json +0 -1
- package/tsconfig.esm.json +1 -1
- package/tsconfig.json +2 -4
- package/.github/PULL_REQUEST_TEMPLATE/release.md +0 -34
- package/.github/workflows/enforce_release.yml +0 -87
- package/dist/cjs/enclaves/ApprovalEnclaveNEW.d.ts +0 -23
- package/dist/cjs/enclaves/ApprovalEnclaveNEW.js +0 -52
- package/dist/cjs/enclaves/ApprovalEnclaveNEW.js.map +0 -1
- package/dist/cjs/models/PolicySignRequest.d.ts +0 -7
- package/dist/cjs/models/PolicySignRequest.js +0 -18
- package/dist/cjs/models/PolicySignRequest.js.map +0 -1
- package/dist/cjs/utils.d.ts +0 -5
- package/dist/cjs/utils.js +0 -75
- package/dist/cjs/utils.js.map +0 -1
- package/dist/esm/enclaves/ApprovalEnclaveNEW.d.ts +0 -23
- package/dist/esm/enclaves/ApprovalEnclaveNEW.js +0 -48
- package/dist/esm/enclaves/ApprovalEnclaveNEW.js.map +0 -1
- package/dist/esm/models/PolicySignRequest.d.ts +0 -7
- package/dist/esm/models/PolicySignRequest.js +0 -15
- package/dist/esm/models/PolicySignRequest.js.map +0 -1
- package/dist/esm/utils.d.ts +0 -5
- package/dist/esm/utils.js +0 -68
- package/dist/esm/utils.js.map +0 -1
- package/heimdall-tide-0.1.0.tgz +0 -0
- package/heimdall-tide-0.12.47.tgz +0 -0
- package/src/enclaves/ApprovalEnclaveNEW.ts +0 -51
- package/src/models/PolicySignRequest.ts +0 -22
- package/src/utils.ts +0 -78
package/dist/esm/heimdall.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"heimdall.js","sourceRoot":"","sources":["../../src/heimdall.ts"],"names":[],"mappings":"AAAA,GAAG;AACH,gEAAgE;AAChE,yCAAyC;AACzC,GAAG;AACH,gEAAgE;AAChE,4DAA4D;AAC5D,+DAA+D;AAC/D,kEAAkE;AAClE,6DAA6D;AAC7D,gEAAgE;AAChE,oCAAoC;AACpC,6DAA6D;AAC7D,8DAA8D;AAC9D,wCAAwC;AACxC,qDAAqD;
|
|
1
|
+
{"version":3,"file":"heimdall.js","sourceRoot":"","sources":["../../src/heimdall.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/index.d.ts
CHANGED
|
@@ -1,10 +1,4 @@
|
|
|
1
1
|
import { ApprovalEnclave } from "./enclaves/ApprovalEnclave";
|
|
2
2
|
import { RequestEnclave } from "./enclaves/RequestEnclave";
|
|
3
|
-
import { ApprovalEnclaveNew } from "./enclaves/ApprovalEnclaveNEW";
|
|
4
|
-
import PolicySignRequest from "./models/PolicySignRequest";
|
|
5
|
-
import { TideMemory, Policy, BaseTideRequest, PolicyParameters } from "asgard-tide";
|
|
6
3
|
export { ApprovalEnclave };
|
|
7
4
|
export { RequestEnclave };
|
|
8
|
-
export { ApprovalEnclaveNew };
|
|
9
|
-
export { PolicySignRequest };
|
|
10
|
-
export { TideMemory, Policy, BaseTideRequest, PolicyParameters };
|
package/dist/esm/index.js
CHANGED
|
@@ -1,11 +1,5 @@
|
|
|
1
1
|
import { ApprovalEnclave } from "./enclaves/ApprovalEnclave";
|
|
2
2
|
import { RequestEnclave } from "./enclaves/RequestEnclave";
|
|
3
|
-
import { ApprovalEnclaveNew } from "./enclaves/ApprovalEnclaveNEW";
|
|
4
|
-
import PolicySignRequest from "./models/PolicySignRequest";
|
|
5
|
-
import { TideMemory, Policy, BaseTideRequest, PolicyParameters } from "asgard-tide";
|
|
6
3
|
export { ApprovalEnclave };
|
|
7
4
|
export { RequestEnclave };
|
|
8
|
-
export { ApprovalEnclaveNew };
|
|
9
|
-
export { PolicySignRequest };
|
|
10
|
-
export { TideMemory, Policy, BaseTideRequest, PolicyParameters };
|
|
11
5
|
//# sourceMappingURL=index.js.map
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAC1D,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAC1D,OAAO,EAAE,eAAe,EAAE,CAAA;AAC1B,OAAO,EAAE,cAAc,EAAE,CAAA"}
|
package/dist/esm/wrapper.d.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { TideMemory } from "asgard-tide";
|
|
2
1
|
export declare const version = "1";
|
|
3
2
|
export declare function wrapper(arr: NestedEntry): TideMemory;
|
|
4
3
|
export declare function encodeStr(str: string, enc: string): Uint8Array;
|
|
@@ -8,4 +7,10 @@ interface entry {
|
|
|
8
7
|
encoding?: string;
|
|
9
8
|
}
|
|
10
9
|
type NestedEntry = (entry | Uint8Array | NestedEntry)[];
|
|
10
|
+
export declare class TideMemory extends Uint8Array {
|
|
11
|
+
static CreateFromArray(datas: Uint8Array[]): TideMemory;
|
|
12
|
+
static Create(initialValue: Uint8Array, totalLength: number, version?: number): TideMemory;
|
|
13
|
+
WriteValue(index: number, value: Uint8Array): void;
|
|
14
|
+
GetValue<T extends Uint8Array>(index: number): T;
|
|
15
|
+
}
|
|
11
16
|
export {};
|
package/dist/esm/wrapper.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { TideMemory } from "asgard-tide";
|
|
2
1
|
export const version = "1";
|
|
3
2
|
export function wrapper(arr) {
|
|
4
3
|
// If array is only Uint8Arrays - create a TideMemory out of it
|
|
@@ -130,4 +129,97 @@ export function encode(data) {
|
|
|
130
129
|
return undefined;
|
|
131
130
|
}
|
|
132
131
|
}
|
|
132
|
+
// Tide Memory Object helper functions from tide-js
|
|
133
|
+
export class TideMemory extends Uint8Array {
|
|
134
|
+
static CreateFromArray(datas) {
|
|
135
|
+
const length = datas.reduce((sum, next) => sum + next.length, 0);
|
|
136
|
+
const mem = this.Create(datas[0], length);
|
|
137
|
+
for (let i = 1; i < datas.length; i++) {
|
|
138
|
+
mem.WriteValue(i, datas[i]);
|
|
139
|
+
}
|
|
140
|
+
return mem;
|
|
141
|
+
}
|
|
142
|
+
static Create(initialValue, totalLength, version = 1) {
|
|
143
|
+
if (totalLength < initialValue.length + 4) {
|
|
144
|
+
throw new Error("Not enough space to allocate requested data. Make sure to request more space in totalLength than length of InitialValue plus 4 bytes for length.");
|
|
145
|
+
}
|
|
146
|
+
// Total buffer length is 4 (version) + totalLength
|
|
147
|
+
const bufferLength = 4 + totalLength;
|
|
148
|
+
const buffer = new TideMemory(bufferLength);
|
|
149
|
+
const dataView = new DataView(buffer.buffer);
|
|
150
|
+
// Write version at position 0 (4 bytes)
|
|
151
|
+
dataView.setInt32(0, version, true); // true for little-endian
|
|
152
|
+
let dataLocationIndex = 4;
|
|
153
|
+
// Write data length of initialValue at position 4 (4 bytes)
|
|
154
|
+
dataView.setInt32(dataLocationIndex, initialValue.length, true);
|
|
155
|
+
dataLocationIndex += 4;
|
|
156
|
+
// Write initialValue starting from position 8
|
|
157
|
+
buffer.set(initialValue, dataLocationIndex);
|
|
158
|
+
return buffer;
|
|
159
|
+
}
|
|
160
|
+
WriteValue(index, value) {
|
|
161
|
+
if (index < 0)
|
|
162
|
+
throw new Error("Index cannot be less than 0");
|
|
163
|
+
if (index === 0)
|
|
164
|
+
throw new Error("Use CreateTideMemory to set value at index 0");
|
|
165
|
+
if (this.length < 4 + value.length)
|
|
166
|
+
throw new Error("Could not write to memory. Memory too small for this value");
|
|
167
|
+
const dataView = new DataView(this.buffer);
|
|
168
|
+
let dataLocationIndex = 4; // Start after the version number
|
|
169
|
+
// Navigate through existing data segments
|
|
170
|
+
for (let i = 0; i < index; i++) {
|
|
171
|
+
if (dataLocationIndex + 4 > this.length) {
|
|
172
|
+
throw new RangeError("Index out of range.");
|
|
173
|
+
}
|
|
174
|
+
// Read data length at current position
|
|
175
|
+
const nextDataLength = dataView.getInt32(dataLocationIndex, true);
|
|
176
|
+
dataLocationIndex += 4;
|
|
177
|
+
dataLocationIndex += nextDataLength;
|
|
178
|
+
}
|
|
179
|
+
// Check if there's enough space to write the value
|
|
180
|
+
if (dataLocationIndex + 4 + value.length > this.length) {
|
|
181
|
+
throw new RangeError("Not enough space to write value");
|
|
182
|
+
}
|
|
183
|
+
// Check if data has already been written to this index
|
|
184
|
+
const existingLength = dataView.getInt32(dataLocationIndex, true);
|
|
185
|
+
if (existingLength !== 0) {
|
|
186
|
+
throw new Error("Data has already been written to this index");
|
|
187
|
+
}
|
|
188
|
+
// Write data length of value at current position
|
|
189
|
+
dataView.setInt32(dataLocationIndex, value.length, true);
|
|
190
|
+
dataLocationIndex += 4;
|
|
191
|
+
// Write value starting from current position
|
|
192
|
+
this.set(value, dataLocationIndex);
|
|
193
|
+
}
|
|
194
|
+
GetValue(index) {
|
|
195
|
+
// 'a' should be an ArrayBuffer or Uint8Array
|
|
196
|
+
if (this.length < 4) {
|
|
197
|
+
throw new Error("Insufficient data to read.");
|
|
198
|
+
}
|
|
199
|
+
// Create a DataView for reading integers in little-endian format
|
|
200
|
+
const dataView = new DataView(this.buffer, this.byteOffset, this.byteLength);
|
|
201
|
+
// Optional: Read the version if needed
|
|
202
|
+
// const version = dataView.getInt32(0, true);
|
|
203
|
+
let dataLocationIndex = 4;
|
|
204
|
+
for (let i = 0; i < index; i++) {
|
|
205
|
+
// Check if there's enough data to read the length of the next segment
|
|
206
|
+
if (dataLocationIndex + 4 > this.length) {
|
|
207
|
+
throw new RangeError("Index out of range.");
|
|
208
|
+
}
|
|
209
|
+
const nextDataLength = dataView.getInt32(dataLocationIndex, true);
|
|
210
|
+
dataLocationIndex += 4 + nextDataLength;
|
|
211
|
+
}
|
|
212
|
+
// Check if there's enough data to read the length of the final segment
|
|
213
|
+
if (dataLocationIndex + 4 > this.length) {
|
|
214
|
+
throw new RangeError("Index out of range.");
|
|
215
|
+
}
|
|
216
|
+
const finalDataLength = dataView.getInt32(dataLocationIndex, true);
|
|
217
|
+
dataLocationIndex += 4;
|
|
218
|
+
// Check if the final data segment is within bounds
|
|
219
|
+
if (dataLocationIndex + finalDataLength > this.length) {
|
|
220
|
+
throw new RangeError("Index out of range.");
|
|
221
|
+
}
|
|
222
|
+
return this.subarray(dataLocationIndex, dataLocationIndex + finalDataLength);
|
|
223
|
+
}
|
|
224
|
+
}
|
|
133
225
|
//# sourceMappingURL=wrapper.js.map
|
package/dist/esm/wrapper.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wrapper.js","sourceRoot":"","sources":["../../src/wrapper.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"wrapper.js","sourceRoot":"","sources":["../../src/wrapper.ts"],"names":[],"mappings":"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"}
|
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "heimdall-tide",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.13.1",
|
|
4
4
|
"description": "SDK for communicating with a Tide Enclave",
|
|
5
5
|
"main": "dist/cjs/index.js",
|
|
6
6
|
"module": "dist/esm/index.js",
|
|
@@ -38,9 +38,6 @@
|
|
|
38
38
|
"url": "https://github.com/tide-foundation/heimdall/issues"
|
|
39
39
|
},
|
|
40
40
|
"homepage": "https://github.com/tide-foundation/heimdall#readme",
|
|
41
|
-
"dependencies": {
|
|
42
|
-
"asgard-tide": "^0.12.47"
|
|
43
|
-
},
|
|
44
41
|
"devDependencies": {
|
|
45
42
|
"typescript": "^5.8.3"
|
|
46
43
|
}
|
package/package.json.bak
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "heimdall-tide",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.1.0",
|
|
4
4
|
"description": "SDK for communicating with a Tide Enclave",
|
|
5
5
|
"main": "dist/cjs/index.js",
|
|
6
6
|
"module": "dist/esm/index.js",
|
|
@@ -38,9 +38,6 @@
|
|
|
38
38
|
"url": "https://github.com/tide-foundation/heimdall/issues"
|
|
39
39
|
},
|
|
40
40
|
"homepage": "https://github.com/tide-foundation/heimdall#readme",
|
|
41
|
-
"dependencies": {
|
|
42
|
-
"asgard-tide": "file:~/asgard"
|
|
43
|
-
},
|
|
44
41
|
"devDependencies": {
|
|
45
42
|
"typescript": "^5.8.3"
|
|
46
43
|
}
|
|
@@ -1,16 +1,26 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
|
|
1
|
+
import { Heimdall, windowType } from "../heimdall";
|
|
2
|
+
import { TideMemory } from "../wrapper";
|
|
3
|
+
|
|
4
|
+
interface HiddenInit{
|
|
5
|
+
doken: string;
|
|
6
|
+
/**
|
|
7
|
+
* @returns A refresh doken for Heimdall
|
|
8
|
+
*/
|
|
9
|
+
dokenRefreshCallback: () => Promise<string> | undefined;
|
|
10
|
+
/**
|
|
11
|
+
* @returns A function that re authenticates the current user from the client. (Used to update their session key on Identity System). Returns a new doken too.
|
|
12
|
+
*/
|
|
13
|
+
requireReloginCallback: () => Promise<string>;
|
|
14
|
+
}
|
|
4
15
|
|
|
5
16
|
export class RequestEnclave extends Heimdall<RequestEnclave>{
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
protected requireReloginCallback: () => Promise<string>;
|
|
17
|
+
private doken: string;
|
|
18
|
+
private dokenRefreshCallback: () => Promise<string> | undefined;
|
|
19
|
+
private requireReloginCallback: () => Promise<string>;
|
|
10
20
|
|
|
11
21
|
_windowType: windowType = windowType.Hidden;
|
|
12
22
|
|
|
13
|
-
|
|
23
|
+
private initDone: Promise<any> = this.recieve("init done");
|
|
14
24
|
|
|
15
25
|
init(data: HiddenInit): RequestEnclave {
|
|
16
26
|
if(!data.doken) throw 'Doken not provided';
|
|
@@ -146,7 +156,7 @@ export class RequestEnclave extends Heimdall<RequestEnclave>{
|
|
|
146
156
|
url.searchParams.set("voucherURL", encodeURIComponent(this.voucherURL));
|
|
147
157
|
|
|
148
158
|
// Set requestsed enclave
|
|
149
|
-
url.searchParams.set("type",
|
|
159
|
+
url.searchParams.set("type", "request");
|
|
150
160
|
|
|
151
161
|
return url;
|
|
152
162
|
}
|
|
@@ -168,30 +178,7 @@ export class RequestEnclave extends Heimdall<RequestEnclave>{
|
|
|
168
178
|
}
|
|
169
179
|
}
|
|
170
180
|
|
|
171
|
-
async
|
|
172
|
-
// construct request to sign this request's creation
|
|
173
|
-
const requestToInitialize = BaseTideRequest.decode(request);
|
|
174
|
-
const requestToInitializeDetails = await requestToInitialize.getRequestInitDetails();
|
|
175
|
-
const initRequest = new BaseTideRequest(
|
|
176
|
-
"TideRequestInitialization",
|
|
177
|
-
"1",
|
|
178
|
-
"Doken:1",
|
|
179
|
-
TideMemory.CreateFromArray([
|
|
180
|
-
requestToInitializeDetails.creationTime,
|
|
181
|
-
requestToInitializeDetails.expireTime,
|
|
182
|
-
requestToInitializeDetails.modelId,
|
|
183
|
-
requestToInitializeDetails.draftHash
|
|
184
|
-
]),
|
|
185
|
-
new TideMemory()
|
|
186
|
-
);
|
|
187
|
-
|
|
188
|
-
const creationSig = (await this.execute(initRequest.encode()))[0];
|
|
189
|
-
|
|
190
|
-
// returns the same request provided except with the policy authorized creation datas included
|
|
191
|
-
return requestToInitialize.addCreationSignature(requestToInitializeDetails.creationTime, creationSig).encode();
|
|
192
|
-
}
|
|
193
|
-
|
|
194
|
-
async execute(data: TideMemory, waitForAll: boolean = false): Promise<Uint8Array[]>{
|
|
181
|
+
async execute(data: TideMemory): Promise<Uint8Array[]>{
|
|
195
182
|
this.checkEnclaveOpen();
|
|
196
183
|
await this.initDone;
|
|
197
184
|
const pre_resp = this.recieve("sign request completed");
|
|
@@ -200,7 +187,6 @@ export class RequestEnclave extends Heimdall<RequestEnclave>{
|
|
|
200
187
|
message:{
|
|
201
188
|
flow: "sign",
|
|
202
189
|
request: data,
|
|
203
|
-
waitForAll,
|
|
204
190
|
}
|
|
205
191
|
})
|
|
206
192
|
const resp = await pre_resp;
|
package/src/heimdall.ts
CHANGED
|
@@ -21,7 +21,6 @@ export interface HeimdallConstructor{
|
|
|
21
21
|
homeOrkOrigin: string,
|
|
22
22
|
voucherURL: string,
|
|
23
23
|
signed_client_origin: string;
|
|
24
|
-
isRunningLocal?: boolean
|
|
25
24
|
}
|
|
26
25
|
export abstract class Heimdall<T> implements EnclaveFlow<T> {
|
|
27
26
|
name: string;
|
|
@@ -30,7 +29,6 @@ export abstract class Heimdall<T> implements EnclaveFlow<T> {
|
|
|
30
29
|
voucherURL: string;
|
|
31
30
|
signed_client_origin: string;
|
|
32
31
|
vendorId: string;
|
|
33
|
-
isRunningLocal: boolean;
|
|
34
32
|
|
|
35
33
|
private enclaveWindow: WindowProxy;
|
|
36
34
|
|
|
@@ -39,8 +37,6 @@ export abstract class Heimdall<T> implements EnclaveFlow<T> {
|
|
|
39
37
|
this.voucherURL = init.voucherURL;
|
|
40
38
|
this.signed_client_origin = init.signed_client_origin;
|
|
41
39
|
this.vendorId = init.vendorId;
|
|
42
|
-
|
|
43
|
-
this.isRunningLocal = init.isRunningLocal != null ? init.isRunningLocal : false;
|
|
44
40
|
}
|
|
45
41
|
|
|
46
42
|
enclaveClosed(){
|
|
@@ -138,8 +134,6 @@ export abstract class Heimdall<T> implements EnclaveFlow<T> {
|
|
|
138
134
|
iframe.id = "heimdall"; // in case multiple frames get popped up - we only want one
|
|
139
135
|
iframe.setAttribute('aria-hidden', 'true'); // accessibility hint
|
|
140
136
|
|
|
141
|
-
if(this.isRunningLocal) iframe.allow = "local-network-access";
|
|
142
|
-
|
|
143
137
|
// 2. Add it to the document
|
|
144
138
|
document.body.appendChild(iframe);
|
|
145
139
|
|
|
@@ -217,17 +211,6 @@ export enum windowType{
|
|
|
217
211
|
Redirect,
|
|
218
212
|
Hidden
|
|
219
213
|
};
|
|
220
|
-
export interface HiddenInit{
|
|
221
|
-
doken: string;
|
|
222
|
-
/**
|
|
223
|
-
* @returns A refresh doken for Heimdall
|
|
224
|
-
*/
|
|
225
|
-
dokenRefreshCallback: () => Promise<string> | undefined;
|
|
226
|
-
/**
|
|
227
|
-
* @returns A function that re authenticates the current user from the client. (Used to update their session key on Identity System). Returns a new doken too.
|
|
228
|
-
*/
|
|
229
|
-
requireReloginCallback: () => Promise<string>;
|
|
230
|
-
}
|
|
231
214
|
interface EnclaveFlow<T>{
|
|
232
215
|
name: string;
|
|
233
216
|
_windowType: windowType;
|
package/src/index.ts
CHANGED
|
@@ -1,11 +1,4 @@
|
|
|
1
1
|
import { ApprovalEnclave } from "./enclaves/ApprovalEnclave"
|
|
2
2
|
import { RequestEnclave } from "./enclaves/RequestEnclave"
|
|
3
|
-
import { ApprovalEnclaveNew } from "./enclaves/ApprovalEnclaveNEW"
|
|
4
|
-
import PolicySignRequest from "./models/PolicySignRequest"
|
|
5
|
-
import { TideMemory, Policy, BaseTideRequest, PolicyParameters } from "asgard-tide"
|
|
6
|
-
|
|
7
3
|
export { ApprovalEnclave }
|
|
8
|
-
export { RequestEnclave }
|
|
9
|
-
export { ApprovalEnclaveNew }
|
|
10
|
-
export { PolicySignRequest }
|
|
11
|
-
export { TideMemory, Policy, BaseTideRequest, PolicyParameters }
|
|
4
|
+
export { RequestEnclave }
|
package/src/wrapper.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { TideMemory } from "asgard-tide";
|
|
2
1
|
export const version = "1";
|
|
3
2
|
|
|
4
3
|
export function wrapper(arr: NestedEntry): TideMemory {
|
|
@@ -139,4 +138,121 @@ interface entry{
|
|
|
139
138
|
value: any;
|
|
140
139
|
encoding?: string;
|
|
141
140
|
}
|
|
142
|
-
type NestedEntry = (entry | Uint8Array | NestedEntry)[]; // added Uint8Array as an optional type so we can serialize it without deep copy
|
|
141
|
+
type NestedEntry = (entry | Uint8Array | NestedEntry)[]; // added Uint8Array as an optional type so we can serialize it without deep copy
|
|
142
|
+
|
|
143
|
+
|
|
144
|
+
// Tide Memory Object helper functions from tide-js
|
|
145
|
+
export class TideMemory extends Uint8Array{
|
|
146
|
+
static CreateFromArray(datas: Uint8Array[]): TideMemory {
|
|
147
|
+
const length = datas.reduce((sum, next) => sum + next.length, 0);
|
|
148
|
+
const mem = this.Create(datas[0], length);
|
|
149
|
+
for(let i = 1; i < datas.length; i++){
|
|
150
|
+
mem.WriteValue(i, datas[i]);
|
|
151
|
+
}
|
|
152
|
+
return mem;
|
|
153
|
+
}
|
|
154
|
+
static Create(initialValue: Uint8Array, totalLength: number, version: number = 1): TideMemory {
|
|
155
|
+
if (totalLength < initialValue.length + 4) {
|
|
156
|
+
throw new Error("Not enough space to allocate requested data. Make sure to request more space in totalLength than length of InitialValue plus 4 bytes for length.");
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
// Total buffer length is 4 (version) + totalLength
|
|
160
|
+
const bufferLength = 4 + totalLength;
|
|
161
|
+
const buffer = new TideMemory(bufferLength);
|
|
162
|
+
const dataView = new DataView(buffer.buffer);
|
|
163
|
+
|
|
164
|
+
// Write version at position 0 (4 bytes)
|
|
165
|
+
dataView.setInt32(0, version, true); // true for little-endian
|
|
166
|
+
|
|
167
|
+
let dataLocationIndex = 4;
|
|
168
|
+
|
|
169
|
+
// Write data length of initialValue at position 4 (4 bytes)
|
|
170
|
+
dataView.setInt32(dataLocationIndex, initialValue.length, true);
|
|
171
|
+
dataLocationIndex += 4;
|
|
172
|
+
|
|
173
|
+
// Write initialValue starting from position 8
|
|
174
|
+
buffer.set(initialValue, dataLocationIndex);
|
|
175
|
+
|
|
176
|
+
return buffer;
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
WriteValue(index: number, value: Uint8Array): void {
|
|
180
|
+
if (index < 0) throw new Error("Index cannot be less than 0");
|
|
181
|
+
if (index === 0) throw new Error("Use CreateTideMemory to set value at index 0");
|
|
182
|
+
if (this.length < 4 + value.length) throw new Error("Could not write to memory. Memory too small for this value");
|
|
183
|
+
|
|
184
|
+
const dataView = new DataView(this.buffer);
|
|
185
|
+
let dataLocationIndex = 4; // Start after the version number
|
|
186
|
+
|
|
187
|
+
// Navigate through existing data segments
|
|
188
|
+
for (let i = 0; i < index; i++) {
|
|
189
|
+
if (dataLocationIndex + 4 > this.length) {
|
|
190
|
+
throw new RangeError("Index out of range.");
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
// Read data length at current position
|
|
194
|
+
const nextDataLength = dataView.getInt32(dataLocationIndex, true);
|
|
195
|
+
dataLocationIndex += 4;
|
|
196
|
+
|
|
197
|
+
dataLocationIndex += nextDataLength;
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
// Check if there's enough space to write the value
|
|
201
|
+
if (dataLocationIndex + 4 + value.length > this.length) {
|
|
202
|
+
throw new RangeError("Not enough space to write value");
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
// Check if data has already been written to this index
|
|
206
|
+
const existingLength = dataView.getInt32(dataLocationIndex, true);
|
|
207
|
+
if (existingLength !== 0) {
|
|
208
|
+
throw new Error("Data has already been written to this index");
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
// Write data length of value at current position
|
|
212
|
+
dataView.setInt32(dataLocationIndex, value.length, true);
|
|
213
|
+
dataLocationIndex += 4;
|
|
214
|
+
|
|
215
|
+
// Write value starting from current position
|
|
216
|
+
this.set(value, dataLocationIndex);
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
GetValue<T extends Uint8Array>(index: number): T{
|
|
220
|
+
// 'a' should be an ArrayBuffer or Uint8Array
|
|
221
|
+
if (this.length < 4) {
|
|
222
|
+
throw new Error("Insufficient data to read.");
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
// Create a DataView for reading integers in little-endian format
|
|
226
|
+
const dataView = new DataView(this.buffer, this.byteOffset, this.byteLength);
|
|
227
|
+
|
|
228
|
+
// Optional: Read the version if needed
|
|
229
|
+
// const version = dataView.getInt32(0, true);
|
|
230
|
+
|
|
231
|
+
let dataLocationIndex = 4;
|
|
232
|
+
|
|
233
|
+
for (let i = 0; i < index; i++) {
|
|
234
|
+
// Check if there's enough data to read the length of the next segment
|
|
235
|
+
if (dataLocationIndex + 4 > this.length) {
|
|
236
|
+
throw new RangeError("Index out of range.");
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
const nextDataLength = dataView.getInt32(dataLocationIndex, true);
|
|
240
|
+
dataLocationIndex += 4 + nextDataLength;
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
// Check if there's enough data to read the length of the final segment
|
|
244
|
+
if (dataLocationIndex + 4 > this.length) {
|
|
245
|
+
throw new RangeError("Index out of range.");
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
const finalDataLength = dataView.getInt32(dataLocationIndex, true);
|
|
249
|
+
dataLocationIndex += 4;
|
|
250
|
+
|
|
251
|
+
// Check if the final data segment is within bounds
|
|
252
|
+
if (dataLocationIndex + finalDataLength > this.length) {
|
|
253
|
+
throw new RangeError("Index out of range.");
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
return this.subarray(dataLocationIndex, dataLocationIndex + finalDataLength) as T;
|
|
257
|
+
}
|
|
258
|
+
}
|
package/tsconfig.cjs.json
CHANGED
package/tsconfig.esm.json
CHANGED
package/tsconfig.json
CHANGED
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
# Summary
|
|
2
|
-
|
|
3
|
-
<!--
|
|
4
|
-
High-level overview of what is included in this release.
|
|
5
|
-
Mention major features, fixes, and any notable changes.
|
|
6
|
-
-->
|
|
7
|
-
|
|
8
|
-
### Features:
|
|
9
|
-
-
|
|
10
|
-
|
|
11
|
-
### Bug fixes:
|
|
12
|
-
-
|
|
13
|
-
|
|
14
|
-
---
|
|
15
|
-
|
|
16
|
-
# Release Notes
|
|
17
|
-
-
|
|
18
|
-
---
|
|
19
|
-
|
|
20
|
-
# Testing
|
|
21
|
-
|
|
22
|
-
<!--
|
|
23
|
-
Explain what has been tested and how.
|
|
24
|
-
Link to test runs, screenshots, or logs where relevant.
|
|
25
|
-
-->
|
|
26
|
-
|
|
27
|
-
### Test Types
|
|
28
|
-
|
|
29
|
-
- [ ] Unit tests
|
|
30
|
-
- [ ] Integration tests
|
|
31
|
-
- [ ] End-to-end / UI tests
|
|
32
|
-
- [ ] Manual QA
|
|
33
|
-
- [ ] Performance / load tests
|
|
34
|
-
- [ ] Other (describe):
|