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
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
name: Enforce release label and template on release branches
|
|
2
|
-
|
|
3
|
-
on:
|
|
4
|
-
pull_request:
|
|
5
|
-
types: [opened, edited, synchronize, reopened, labeled, unlabeled]
|
|
6
|
-
|
|
7
|
-
jobs:
|
|
8
|
-
enforce-label-and-template:
|
|
9
|
-
runs-on: ubuntu-latest
|
|
10
|
-
steps:
|
|
11
|
-
- name: Require "release" label and release template for release/* base
|
|
12
|
-
uses: actions/github-script@v7
|
|
13
|
-
with:
|
|
14
|
-
script: |
|
|
15
|
-
const pr = context.payload.pull_request;
|
|
16
|
-
const base = pr.base.ref; // target branch, e.g. "release/1.2.3"
|
|
17
|
-
const labels = pr.labels.map(l => l.name);
|
|
18
|
-
const body = (pr.body || "").trim();
|
|
19
|
-
|
|
20
|
-
// Only enforce on release branches
|
|
21
|
-
if (!base.startsWith("release/")) {
|
|
22
|
-
core.info(`Base branch "${base}" is not release/*, skipping checks.`);
|
|
23
|
-
return;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
const errors = [];
|
|
27
|
-
|
|
28
|
-
// 1) Enforce "release" label
|
|
29
|
-
const hasReleaseLabel = labels.includes("release");
|
|
30
|
-
if (!hasReleaseLabel) {
|
|
31
|
-
errors.push('PRs into release/* must have the "release" label before they can be merged.');
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
// 2) Enforce that the PR used the release template (checks for "# Release Notes")
|
|
35
|
-
const releaseNotesHeader = "# Release Notes";
|
|
36
|
-
const hasReleaseNotesSection = body.includes(releaseNotesHeader);
|
|
37
|
-
if (!hasReleaseNotesSection) {
|
|
38
|
-
errors.push(
|
|
39
|
-
'PRs into release/* must use the release PR template and include a "# Release Notes" section.'
|
|
40
|
-
);
|
|
41
|
-
} else {
|
|
42
|
-
// 3) Enforce that the Release Notes section has some real content
|
|
43
|
-
const startIndex = body.indexOf(releaseNotesHeader);
|
|
44
|
-
let afterHeader = body.slice(startIndex + releaseNotesHeader.length);
|
|
45
|
-
|
|
46
|
-
// Split into lines after the header
|
|
47
|
-
const lines = afterHeader.split(/\r?\n/);
|
|
48
|
-
|
|
49
|
-
const releaseNotesLines = [];
|
|
50
|
-
let started = false;
|
|
51
|
-
|
|
52
|
-
for (const line of lines) {
|
|
53
|
-
const trimmed = line.trim();
|
|
54
|
-
|
|
55
|
-
// Skip the first blank line(s) right after the heading
|
|
56
|
-
if (!started && trimmed === "") {
|
|
57
|
-
continue;
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
started = true;
|
|
61
|
-
|
|
62
|
-
// Stop when we hit a new Markdown heading or a horizontal rule (---)
|
|
63
|
-
if (/^#{1,6}\s+/.test(trimmed)) {
|
|
64
|
-
break;
|
|
65
|
-
}
|
|
66
|
-
if (/^---\s*$/.test(trimmed)) {
|
|
67
|
-
break;
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
releaseNotesLines.push(trimmed);
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
// Filter out placeholder-only lines (empty or just "-")
|
|
74
|
-
const meaningfulLines = releaseNotesLines.filter(l => l !== "" && l !== "-");
|
|
75
|
-
|
|
76
|
-
if (meaningfulLines.length === 0) {
|
|
77
|
-
errors.push(
|
|
78
|
-
'The "# Release Notes" section appears empty. Please replace the placeholder "-" with actual release notes.'
|
|
79
|
-
);
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
if (errors.length > 0) {
|
|
84
|
-
core.setFailed(errors.join("\n"));
|
|
85
|
-
} else {
|
|
86
|
-
core.info("Release label and template checks passed.");
|
|
87
|
-
}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { HiddenInit, windowType } from "../heimdall";
|
|
2
|
-
import { TideMemory } from "asgard-tide";
|
|
3
|
-
import { RequestEnclave } from "./RequestEnclave";
|
|
4
|
-
export declare class ApprovalEnclaveNew extends RequestEnclave {
|
|
5
|
-
name: string;
|
|
6
|
-
_windowType: windowType;
|
|
7
|
-
init(data: HiddenInit): ApprovalEnclaveNew;
|
|
8
|
-
approve(requestsToApprove: RequestToApprove[]): Promise<OperatorApprovalResponse[]>;
|
|
9
|
-
}
|
|
10
|
-
declare class RequestToApprove {
|
|
11
|
-
id: string;
|
|
12
|
-
request: TideMemory;
|
|
13
|
-
}
|
|
14
|
-
declare class OperatorApprovalResponse extends RequestToApprove {
|
|
15
|
-
status: Status;
|
|
16
|
-
static isOperatorApprovalResponse(object: any): object is OperatorApprovalResponse;
|
|
17
|
-
}
|
|
18
|
-
declare enum Status {
|
|
19
|
-
Approved = "approved",
|
|
20
|
-
Denied = "denied",
|
|
21
|
-
Pending = "pending"
|
|
22
|
-
}
|
|
23
|
-
export {};
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ApprovalEnclaveNew = void 0;
|
|
4
|
-
const heimdall_1 = require("../heimdall");
|
|
5
|
-
const RequestEnclave_1 = require("./RequestEnclave");
|
|
6
|
-
class ApprovalEnclaveNew extends RequestEnclave_1.RequestEnclave {
|
|
7
|
-
constructor() {
|
|
8
|
-
super(...arguments);
|
|
9
|
-
this.name = "approvalNew";
|
|
10
|
-
this._windowType = heimdall_1.windowType.Popup;
|
|
11
|
-
}
|
|
12
|
-
init(data) {
|
|
13
|
-
return super.init(data);
|
|
14
|
-
}
|
|
15
|
-
async approve(requestsToApprove) {
|
|
16
|
-
// return fully serialized approved requests
|
|
17
|
-
this.checkEnclaveOpen();
|
|
18
|
-
await this.initDone;
|
|
19
|
-
const pre_resp = this.recieve("approvals");
|
|
20
|
-
this.send({
|
|
21
|
-
type: "approvalRequests",
|
|
22
|
-
message: {
|
|
23
|
-
requests: requestsToApprove,
|
|
24
|
-
}
|
|
25
|
-
});
|
|
26
|
-
const resp = await pre_resp;
|
|
27
|
-
if (!Array.isArray(resp))
|
|
28
|
-
throw 'Expecting request completed data to be an array, not' + resp;
|
|
29
|
-
if (!resp.every((d) => OperatorApprovalResponse.isOperatorApprovalResponse(d)))
|
|
30
|
-
throw 'Expecting all entries in response to be OperatorApprovalResponse';
|
|
31
|
-
this.close();
|
|
32
|
-
return resp;
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
exports.ApprovalEnclaveNew = ApprovalEnclaveNew;
|
|
36
|
-
class RequestToApprove {
|
|
37
|
-
}
|
|
38
|
-
class OperatorApprovalResponse extends RequestToApprove {
|
|
39
|
-
static isOperatorApprovalResponse(object) {
|
|
40
|
-
return (object != null &&
|
|
41
|
-
typeof object.id === 'string' &&
|
|
42
|
-
(object.request instanceof Uint8Array || object.request == null) &&
|
|
43
|
-
Object.values(Status).includes(object.status));
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
var Status;
|
|
47
|
-
(function (Status) {
|
|
48
|
-
Status["Approved"] = "approved";
|
|
49
|
-
Status["Denied"] = "denied";
|
|
50
|
-
Status["Pending"] = "pending";
|
|
51
|
-
})(Status || (Status = {}));
|
|
52
|
-
//# sourceMappingURL=ApprovalEnclaveNEW.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ApprovalEnclaveNEW.js","sourceRoot":"","sources":["../../../src/enclaves/ApprovalEnclaveNEW.ts"],"names":[],"mappings":";;;AAAA,0CAA6D;AAE7D,qDAAkD;AAElD,MAAa,kBAAmB,SAAQ,+BAAc;IAAtD;;QACI,SAAI,GAAW,aAAa,CAAC;QAC7B,gBAAW,GAAe,qBAAU,CAAC,KAAK,CAAC;IAwB/C,CAAC;IAtBG,IAAI,CAAC,IAAgB;QACjB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAuB,CAAC;IAClD,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,iBAAqC;QAC/C,4CAA4C;QAC5C,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,MAAM,IAAI,CAAC,QAAQ,CAAC;QACpB,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAC3C,IAAI,CAAC,IAAI,CAAC;YACN,IAAI,EAAE,kBAAkB;YACxB,OAAO,EAAC;gBACJ,QAAQ,EAAE,iBAAiB;aAC9B;SACJ,CAAC,CAAA;QACF,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC;QAC5B,IAAG,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;YAAE,MAAM,sDAAsD,GAAG,IAAI,CAAC;QAC7F,IAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,wBAAwB,CAAC,0BAA0B,CAAC,CAAC,CAAC,CAAC;YAAE,MAAM,kEAAkE,CAAC;QAC7J,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,OAAO,IAAI,CAAC;IAChB,CAAC;CAEJ;AA1BD,gDA0BC;AACD,MAAM,gBAAgB;CAGrB;AACD,MAAM,wBAAyB,SAAQ,gBAAgB;IAEnD,MAAM,CAAC,0BAA0B,CAAC,MAAW;QACzC,OAAO,CACH,MAAM,IAAI,IAAI;YACd,OAAO,MAAM,CAAC,EAAE,KAAK,QAAQ;YAC7B,CAAC,MAAM,CAAC,OAAO,YAAY,UAAU,IAAI,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC;YAChE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAChD,CAAC;IACN,CAAC;CACJ;AACD,IAAK,MAIJ;AAJD,WAAK,MAAM;IACP,+BAAqB,CAAA;IACrB,2BAAiB,CAAA;IACjB,6BAAmB,CAAA;AACvB,CAAC,EAJI,MAAM,KAAN,MAAM,QAIV"}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { BaseTideRequest } from "asgard-tide";
|
|
2
|
-
import { Policy } from "asgard-tide";
|
|
3
|
-
export default class PolicySignRequest extends BaseTideRequest {
|
|
4
|
-
constructor(name: string, version: string, authFlow: string, draft: Uint8Array, dyanmicData: Uint8Array);
|
|
5
|
-
static New(policy: Policy): PolicySignRequest;
|
|
6
|
-
getRequestedPolicy(): Policy;
|
|
7
|
-
}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const asgard_tide_1 = require("asgard-tide");
|
|
4
|
-
const asgard_tide_2 = require("asgard-tide");
|
|
5
|
-
const asgard_tide_3 = require("asgard-tide");
|
|
6
|
-
class PolicySignRequest extends asgard_tide_2.BaseTideRequest {
|
|
7
|
-
constructor(name, version, authFlow, draft, dyanmicData) {
|
|
8
|
-
super(name, version, authFlow, draft, dyanmicData);
|
|
9
|
-
}
|
|
10
|
-
static New(policy) {
|
|
11
|
-
return new PolicySignRequest("Policy", "1", "Policy:1", asgard_tide_1.TideMemory.CreateFromArray([policy.toBytes()]), new asgard_tide_1.TideMemory());
|
|
12
|
-
}
|
|
13
|
-
getRequestedPolicy() {
|
|
14
|
-
return asgard_tide_3.Policy.from(this.draft.GetValue(0));
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
exports.default = PolicySignRequest;
|
|
18
|
-
//# sourceMappingURL=PolicySignRequest.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"PolicySignRequest.js","sourceRoot":"","sources":["../../../src/models/PolicySignRequest.ts"],"names":[],"mappings":";;AAAA,6CAAyC;AACzC,6CAA8C;AAC9C,6CAAqC;AAErC,MAAqB,iBAAkB,SAAQ,6BAAe;IAC1D,YAAY,IAAY,EAAE,OAAe,EAAE,QAAgB,EAAE,KAAiB,EAAE,WAAuB;QACnG,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;IACvD,CAAC;IACD,MAAM,CAAC,GAAG,CAAC,MAAc;QACrB,OAAO,IAAI,iBAAiB,CACxB,QAAQ,EACR,GAAG,EACH,UAAU,EACV,wBAAU,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,EAC9C,IAAI,wBAAU,EAAE,CACnB,CAAC;IACN,CAAC;IAED,kBAAkB;QACd,OAAO,oBAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/C,CAAC;CACJ;AAjBD,oCAiBC"}
|
package/dist/cjs/utils.d.ts
DELETED
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
export declare function bytesToBase64(bytes: Uint8Array): string;
|
|
2
|
-
export declare function StringToUint8Array(string: string): Uint8Array;
|
|
3
|
-
export declare function StringFromUint8Array(bytes: Uint8Array): string;
|
|
4
|
-
export declare function BigIntToByteArray(value: bigint): Uint8Array;
|
|
5
|
-
export declare function BigIntFromByteArray(bytes: Uint8Array): bigint;
|
package/dist/cjs/utils.js
DELETED
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.bytesToBase64 = bytesToBase64;
|
|
4
|
-
exports.StringToUint8Array = StringToUint8Array;
|
|
5
|
-
exports.StringFromUint8Array = StringFromUint8Array;
|
|
6
|
-
exports.BigIntToByteArray = BigIntToByteArray;
|
|
7
|
-
exports.BigIntFromByteArray = BigIntFromByteArray;
|
|
8
|
-
const base64abc = [
|
|
9
|
-
"A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M",
|
|
10
|
-
"N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z",
|
|
11
|
-
"a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m",
|
|
12
|
-
"n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z",
|
|
13
|
-
"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "+", "/"
|
|
14
|
-
];
|
|
15
|
-
function bytesToBase64(bytes) {
|
|
16
|
-
let result = '', i, l = bytes.length;
|
|
17
|
-
for (i = 2; i < l; i += 3) {
|
|
18
|
-
result += base64abc[bytes[i - 2] >> 2];
|
|
19
|
-
result += base64abc[((bytes[i - 2] & 0x03) << 4) | (bytes[i - 1] >> 4)];
|
|
20
|
-
result += base64abc[((bytes[i - 1] & 0x0F) << 2) | (bytes[i] >> 6)];
|
|
21
|
-
result += base64abc[bytes[i] & 0x3F];
|
|
22
|
-
}
|
|
23
|
-
if (i === l + 1) { // 1 octet yet to write
|
|
24
|
-
result += base64abc[bytes[i - 2] >> 2];
|
|
25
|
-
result += base64abc[(bytes[i - 2] & 0x03) << 4];
|
|
26
|
-
result += "==";
|
|
27
|
-
}
|
|
28
|
-
if (i === l) { // 2 octets yet to write
|
|
29
|
-
result += base64abc[bytes[i - 2] >> 2];
|
|
30
|
-
result += base64abc[((bytes[i - 2] & 0x03) << 4) | (bytes[i - 1] >> 4)];
|
|
31
|
-
result += base64abc[(bytes[i - 1] & 0x0F) << 2];
|
|
32
|
-
result += "=";
|
|
33
|
-
}
|
|
34
|
-
return result;
|
|
35
|
-
}
|
|
36
|
-
function StringToUint8Array(string) {
|
|
37
|
-
const enc = new TextEncoder();
|
|
38
|
-
return enc.encode(string);
|
|
39
|
-
}
|
|
40
|
-
function StringFromUint8Array(bytes) {
|
|
41
|
-
const enc = new TextDecoder();
|
|
42
|
-
return enc.decode(bytes);
|
|
43
|
-
}
|
|
44
|
-
function BigIntToByteArray(value) {
|
|
45
|
-
if (value < 0n) {
|
|
46
|
-
throw new Error("Negative BigInt values are not supported");
|
|
47
|
-
}
|
|
48
|
-
const bytes = [];
|
|
49
|
-
let temp = value;
|
|
50
|
-
// Extract bytes in little-endian order
|
|
51
|
-
while (temp > 0n) {
|
|
52
|
-
bytes.push(Number(temp & 0xffn));
|
|
53
|
-
temp = temp >> 8n;
|
|
54
|
-
}
|
|
55
|
-
// Handle zero case
|
|
56
|
-
if (bytes.length === 0) {
|
|
57
|
-
bytes.push(0);
|
|
58
|
-
}
|
|
59
|
-
// Pad or trim to specified length
|
|
60
|
-
const targetLength = bytes.length;
|
|
61
|
-
const result = new Uint8Array(targetLength);
|
|
62
|
-
for (let i = 0; i < Math.min(bytes.length, targetLength); i++) {
|
|
63
|
-
result[i] = bytes[i];
|
|
64
|
-
}
|
|
65
|
-
return result;
|
|
66
|
-
}
|
|
67
|
-
function BigIntFromByteArray(bytes) {
|
|
68
|
-
let result = 0n;
|
|
69
|
-
// Read bytes in little-endian order
|
|
70
|
-
for (let i = bytes.length - 1; i >= 0; i--) {
|
|
71
|
-
result = (result << 8n) | BigInt(bytes[i]);
|
|
72
|
-
}
|
|
73
|
-
return result;
|
|
74
|
-
}
|
|
75
|
-
//# sourceMappingURL=utils.js.map
|
package/dist/cjs/utils.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { HiddenInit, windowType } from "../heimdall";
|
|
2
|
-
import { TideMemory } from "asgard-tide";
|
|
3
|
-
import { RequestEnclave } from "./RequestEnclave";
|
|
4
|
-
export declare class ApprovalEnclaveNew extends RequestEnclave {
|
|
5
|
-
name: string;
|
|
6
|
-
_windowType: windowType;
|
|
7
|
-
init(data: HiddenInit): ApprovalEnclaveNew;
|
|
8
|
-
approve(requestsToApprove: RequestToApprove[]): Promise<OperatorApprovalResponse[]>;
|
|
9
|
-
}
|
|
10
|
-
declare class RequestToApprove {
|
|
11
|
-
id: string;
|
|
12
|
-
request: TideMemory;
|
|
13
|
-
}
|
|
14
|
-
declare class OperatorApprovalResponse extends RequestToApprove {
|
|
15
|
-
status: Status;
|
|
16
|
-
static isOperatorApprovalResponse(object: any): object is OperatorApprovalResponse;
|
|
17
|
-
}
|
|
18
|
-
declare enum Status {
|
|
19
|
-
Approved = "approved",
|
|
20
|
-
Denied = "denied",
|
|
21
|
-
Pending = "pending"
|
|
22
|
-
}
|
|
23
|
-
export {};
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
import { windowType } from "../heimdall";
|
|
2
|
-
import { RequestEnclave } from "./RequestEnclave";
|
|
3
|
-
export class ApprovalEnclaveNew extends RequestEnclave {
|
|
4
|
-
constructor() {
|
|
5
|
-
super(...arguments);
|
|
6
|
-
this.name = "approvalNew";
|
|
7
|
-
this._windowType = windowType.Popup;
|
|
8
|
-
}
|
|
9
|
-
init(data) {
|
|
10
|
-
return super.init(data);
|
|
11
|
-
}
|
|
12
|
-
async approve(requestsToApprove) {
|
|
13
|
-
// return fully serialized approved requests
|
|
14
|
-
this.checkEnclaveOpen();
|
|
15
|
-
await this.initDone;
|
|
16
|
-
const pre_resp = this.recieve("approvals");
|
|
17
|
-
this.send({
|
|
18
|
-
type: "approvalRequests",
|
|
19
|
-
message: {
|
|
20
|
-
requests: requestsToApprove,
|
|
21
|
-
}
|
|
22
|
-
});
|
|
23
|
-
const resp = await pre_resp;
|
|
24
|
-
if (!Array.isArray(resp))
|
|
25
|
-
throw 'Expecting request completed data to be an array, not' + resp;
|
|
26
|
-
if (!resp.every((d) => OperatorApprovalResponse.isOperatorApprovalResponse(d)))
|
|
27
|
-
throw 'Expecting all entries in response to be OperatorApprovalResponse';
|
|
28
|
-
this.close();
|
|
29
|
-
return resp;
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
class RequestToApprove {
|
|
33
|
-
}
|
|
34
|
-
class OperatorApprovalResponse extends RequestToApprove {
|
|
35
|
-
static isOperatorApprovalResponse(object) {
|
|
36
|
-
return (object != null &&
|
|
37
|
-
typeof object.id === 'string' &&
|
|
38
|
-
(object.request instanceof Uint8Array || object.request == null) &&
|
|
39
|
-
Object.values(Status).includes(object.status));
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
var Status;
|
|
43
|
-
(function (Status) {
|
|
44
|
-
Status["Approved"] = "approved";
|
|
45
|
-
Status["Denied"] = "denied";
|
|
46
|
-
Status["Pending"] = "pending";
|
|
47
|
-
})(Status || (Status = {}));
|
|
48
|
-
//# sourceMappingURL=ApprovalEnclaveNEW.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ApprovalEnclaveNEW.js","sourceRoot":"","sources":["../../../src/enclaves/ApprovalEnclaveNEW.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,UAAU,EAAC,MAAM,aAAa,CAAC;AAE7D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,MAAM,OAAO,kBAAmB,SAAQ,cAAc;IAAtD;;QACI,SAAI,GAAW,aAAa,CAAC;QAC7B,gBAAW,GAAe,UAAU,CAAC,KAAK,CAAC;IAwB/C,CAAC;IAtBG,IAAI,CAAC,IAAgB;QACjB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAuB,CAAC;IAClD,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,iBAAqC;QAC/C,4CAA4C;QAC5C,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,MAAM,IAAI,CAAC,QAAQ,CAAC;QACpB,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAC3C,IAAI,CAAC,IAAI,CAAC;YACN,IAAI,EAAE,kBAAkB;YACxB,OAAO,EAAC;gBACJ,QAAQ,EAAE,iBAAiB;aAC9B;SACJ,CAAC,CAAA;QACF,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC;QAC5B,IAAG,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;YAAE,MAAM,sDAAsD,GAAG,IAAI,CAAC;QAC7F,IAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,wBAAwB,CAAC,0BAA0B,CAAC,CAAC,CAAC,CAAC;YAAE,MAAM,kEAAkE,CAAC;QAC7J,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,OAAO,IAAI,CAAC;IAChB,CAAC;CAEJ;AACD,MAAM,gBAAgB;CAGrB;AACD,MAAM,wBAAyB,SAAQ,gBAAgB;IAEnD,MAAM,CAAC,0BAA0B,CAAC,MAAW;QACzC,OAAO,CACH,MAAM,IAAI,IAAI;YACd,OAAO,MAAM,CAAC,EAAE,KAAK,QAAQ;YAC7B,CAAC,MAAM,CAAC,OAAO,YAAY,UAAU,IAAI,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC;YAChE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAChD,CAAC;IACN,CAAC;CACJ;AACD,IAAK,MAIJ;AAJD,WAAK,MAAM;IACP,+BAAqB,CAAA;IACrB,2BAAiB,CAAA;IACjB,6BAAmB,CAAA;AACvB,CAAC,EAJI,MAAM,KAAN,MAAM,QAIV"}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { BaseTideRequest } from "asgard-tide";
|
|
2
|
-
import { Policy } from "asgard-tide";
|
|
3
|
-
export default class PolicySignRequest extends BaseTideRequest {
|
|
4
|
-
constructor(name: string, version: string, authFlow: string, draft: Uint8Array, dyanmicData: Uint8Array);
|
|
5
|
-
static New(policy: Policy): PolicySignRequest;
|
|
6
|
-
getRequestedPolicy(): Policy;
|
|
7
|
-
}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { TideMemory } from "asgard-tide";
|
|
2
|
-
import { BaseTideRequest } from "asgard-tide";
|
|
3
|
-
import { Policy } from "asgard-tide";
|
|
4
|
-
export default class PolicySignRequest extends BaseTideRequest {
|
|
5
|
-
constructor(name, version, authFlow, draft, dyanmicData) {
|
|
6
|
-
super(name, version, authFlow, draft, dyanmicData);
|
|
7
|
-
}
|
|
8
|
-
static New(policy) {
|
|
9
|
-
return new PolicySignRequest("Policy", "1", "Policy:1", TideMemory.CreateFromArray([policy.toBytes()]), new TideMemory());
|
|
10
|
-
}
|
|
11
|
-
getRequestedPolicy() {
|
|
12
|
-
return Policy.from(this.draft.GetValue(0));
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
//# sourceMappingURL=PolicySignRequest.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"PolicySignRequest.js","sourceRoot":"","sources":["../../../src/models/PolicySignRequest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,MAAM,CAAC,OAAO,OAAO,iBAAkB,SAAQ,eAAe;IAC1D,YAAY,IAAY,EAAE,OAAe,EAAE,QAAgB,EAAE,KAAiB,EAAE,WAAuB;QACnG,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;IACvD,CAAC;IACD,MAAM,CAAC,GAAG,CAAC,MAAc;QACrB,OAAO,IAAI,iBAAiB,CACxB,QAAQ,EACR,GAAG,EACH,UAAU,EACV,UAAU,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,EAC9C,IAAI,UAAU,EAAE,CACnB,CAAC;IACN,CAAC;IAED,kBAAkB;QACd,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/C,CAAC;CACJ"}
|
package/dist/esm/utils.d.ts
DELETED
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
export declare function bytesToBase64(bytes: Uint8Array): string;
|
|
2
|
-
export declare function StringToUint8Array(string: string): Uint8Array;
|
|
3
|
-
export declare function StringFromUint8Array(bytes: Uint8Array): string;
|
|
4
|
-
export declare function BigIntToByteArray(value: bigint): Uint8Array;
|
|
5
|
-
export declare function BigIntFromByteArray(bytes: Uint8Array): bigint;
|
package/dist/esm/utils.js
DELETED
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
const base64abc = [
|
|
2
|
-
"A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M",
|
|
3
|
-
"N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z",
|
|
4
|
-
"a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m",
|
|
5
|
-
"n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z",
|
|
6
|
-
"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "+", "/"
|
|
7
|
-
];
|
|
8
|
-
export function bytesToBase64(bytes) {
|
|
9
|
-
let result = '', i, l = bytes.length;
|
|
10
|
-
for (i = 2; i < l; i += 3) {
|
|
11
|
-
result += base64abc[bytes[i - 2] >> 2];
|
|
12
|
-
result += base64abc[((bytes[i - 2] & 0x03) << 4) | (bytes[i - 1] >> 4)];
|
|
13
|
-
result += base64abc[((bytes[i - 1] & 0x0F) << 2) | (bytes[i] >> 6)];
|
|
14
|
-
result += base64abc[bytes[i] & 0x3F];
|
|
15
|
-
}
|
|
16
|
-
if (i === l + 1) { // 1 octet yet to write
|
|
17
|
-
result += base64abc[bytes[i - 2] >> 2];
|
|
18
|
-
result += base64abc[(bytes[i - 2] & 0x03) << 4];
|
|
19
|
-
result += "==";
|
|
20
|
-
}
|
|
21
|
-
if (i === l) { // 2 octets yet to write
|
|
22
|
-
result += base64abc[bytes[i - 2] >> 2];
|
|
23
|
-
result += base64abc[((bytes[i - 2] & 0x03) << 4) | (bytes[i - 1] >> 4)];
|
|
24
|
-
result += base64abc[(bytes[i - 1] & 0x0F) << 2];
|
|
25
|
-
result += "=";
|
|
26
|
-
}
|
|
27
|
-
return result;
|
|
28
|
-
}
|
|
29
|
-
export function StringToUint8Array(string) {
|
|
30
|
-
const enc = new TextEncoder();
|
|
31
|
-
return enc.encode(string);
|
|
32
|
-
}
|
|
33
|
-
export function StringFromUint8Array(bytes) {
|
|
34
|
-
const enc = new TextDecoder();
|
|
35
|
-
return enc.decode(bytes);
|
|
36
|
-
}
|
|
37
|
-
export function BigIntToByteArray(value) {
|
|
38
|
-
if (value < 0n) {
|
|
39
|
-
throw new Error("Negative BigInt values are not supported");
|
|
40
|
-
}
|
|
41
|
-
const bytes = [];
|
|
42
|
-
let temp = value;
|
|
43
|
-
// Extract bytes in little-endian order
|
|
44
|
-
while (temp > 0n) {
|
|
45
|
-
bytes.push(Number(temp & 0xffn));
|
|
46
|
-
temp = temp >> 8n;
|
|
47
|
-
}
|
|
48
|
-
// Handle zero case
|
|
49
|
-
if (bytes.length === 0) {
|
|
50
|
-
bytes.push(0);
|
|
51
|
-
}
|
|
52
|
-
// Pad or trim to specified length
|
|
53
|
-
const targetLength = bytes.length;
|
|
54
|
-
const result = new Uint8Array(targetLength);
|
|
55
|
-
for (let i = 0; i < Math.min(bytes.length, targetLength); i++) {
|
|
56
|
-
result[i] = bytes[i];
|
|
57
|
-
}
|
|
58
|
-
return result;
|
|
59
|
-
}
|
|
60
|
-
export function BigIntFromByteArray(bytes) {
|
|
61
|
-
let result = 0n;
|
|
62
|
-
// Read bytes in little-endian order
|
|
63
|
-
for (let i = bytes.length - 1; i >= 0; i--) {
|
|
64
|
-
result = (result << 8n) | BigInt(bytes[i]);
|
|
65
|
-
}
|
|
66
|
-
return result;
|
|
67
|
-
}
|
|
68
|
-
//# sourceMappingURL=utils.js.map
|
package/dist/esm/utils.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA,MAAM,SAAS,GAAG;IACjB,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IAC/D,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IAC/D,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IAC/D,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IAC/D,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;CAC1D,CAAC;AACF,MAAM,UAAU,aAAa,CAAC,KAAiB;IAC9C,IAAI,MAAM,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC;IACrC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QACvC,MAAM,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACxE,MAAM,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpE,MAAM,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IACtC,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,uBAAuB;QACzC,MAAM,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QACvC,MAAM,IAAI,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAChD,MAAM,IAAI,IAAI,CAAC;IAChB,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,wBAAwB;QACtC,MAAM,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QACvC,MAAM,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACxE,MAAM,IAAI,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAChD,MAAM,IAAI,GAAG,CAAC;IACf,CAAC;IACD,OAAO,MAAM,CAAC;AACf,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,MAAc;IAChD,MAAM,GAAG,GAAG,IAAI,WAAW,EAAE,CAAC;IAC9B,OAAO,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAC3B,CAAC;AACD,MAAM,UAAU,oBAAoB,CAAC,KAAiB;IACrD,MAAM,GAAG,GAAG,IAAI,WAAW,EAAE,CAAC;IAC9B,OAAO,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,KAAa;IAC7C,IAAI,KAAK,GAAG,EAAE,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;IAC9D,CAAC;IAED,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,IAAI,GAAG,KAAK,CAAC;IAEjB,uCAAuC;IACvC,OAAO,IAAI,GAAG,EAAE,EAAE,CAAC;QACjB,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC;QACjC,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;IACpB,CAAC;IAED,mBAAmB;IACnB,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAChB,CAAC;IAED,kCAAkC;IAClC,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC;IAClC,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,YAAY,CAAC,CAAC;IAE5C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,YAAY,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC9D,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACvB,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,KAAiB;IACnD,IAAI,MAAM,GAAG,EAAE,CAAC;IAEhB,oCAAoC;IACpC,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3C,MAAM,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7C,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
package/heimdall-tide-0.1.0.tgz
DELETED
|
Binary file
|
|
Binary file
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
import {Heimdall, HiddenInit, windowType} from "../heimdall";
|
|
2
|
-
import { TideMemory } from "asgard-tide";
|
|
3
|
-
import { RequestEnclave } from "./RequestEnclave";
|
|
4
|
-
|
|
5
|
-
export class ApprovalEnclaveNew extends RequestEnclave{
|
|
6
|
-
name: string = "approvalNew";
|
|
7
|
-
_windowType: windowType = windowType.Popup;
|
|
8
|
-
|
|
9
|
-
init(data: HiddenInit): ApprovalEnclaveNew {
|
|
10
|
-
return super.init(data) as ApprovalEnclaveNew;
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
async approve(requestsToApprove: RequestToApprove[]) : Promise<OperatorApprovalResponse[]>{
|
|
14
|
-
// return fully serialized approved requests
|
|
15
|
-
this.checkEnclaveOpen();
|
|
16
|
-
await this.initDone;
|
|
17
|
-
const pre_resp = this.recieve("approvals");
|
|
18
|
-
this.send({
|
|
19
|
-
type: "approvalRequests",
|
|
20
|
-
message:{
|
|
21
|
-
requests: requestsToApprove,
|
|
22
|
-
}
|
|
23
|
-
})
|
|
24
|
-
const resp = await pre_resp;
|
|
25
|
-
if(!Array.isArray(resp)) throw 'Expecting request completed data to be an array, not' + resp;
|
|
26
|
-
if(!resp.every((d: any) => OperatorApprovalResponse.isOperatorApprovalResponse(d))) throw 'Expecting all entries in response to be OperatorApprovalResponse';
|
|
27
|
-
this.close();
|
|
28
|
-
return resp;
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
}
|
|
32
|
-
class RequestToApprove{
|
|
33
|
-
id: string;
|
|
34
|
-
request: TideMemory;
|
|
35
|
-
}
|
|
36
|
-
class OperatorApprovalResponse extends RequestToApprove{
|
|
37
|
-
status: Status;
|
|
38
|
-
static isOperatorApprovalResponse(object: any): object is OperatorApprovalResponse {
|
|
39
|
-
return (
|
|
40
|
-
object != null &&
|
|
41
|
-
typeof object.id === 'string' &&
|
|
42
|
-
(object.request instanceof Uint8Array || object.request == null) &&
|
|
43
|
-
Object.values(Status).includes(object.status)
|
|
44
|
-
);
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
enum Status{
|
|
48
|
-
Approved = "approved",
|
|
49
|
-
Denied = "denied",
|
|
50
|
-
Pending = "pending"
|
|
51
|
-
}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { TideMemory } from "asgard-tide";
|
|
2
|
-
import { BaseTideRequest } from "asgard-tide";
|
|
3
|
-
import { Policy } from "asgard-tide";
|
|
4
|
-
|
|
5
|
-
export default class PolicySignRequest extends BaseTideRequest {
|
|
6
|
-
constructor(name: string, version: string, authFlow: string, draft: Uint8Array, dyanmicData: Uint8Array) {
|
|
7
|
-
super(name, version, authFlow, draft, dyanmicData);
|
|
8
|
-
}
|
|
9
|
-
static New(policy: Policy) : PolicySignRequest{
|
|
10
|
-
return new PolicySignRequest(
|
|
11
|
-
"Policy",
|
|
12
|
-
"1",
|
|
13
|
-
"Policy:1",
|
|
14
|
-
TideMemory.CreateFromArray([policy.toBytes()]),
|
|
15
|
-
new TideMemory()
|
|
16
|
-
);
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
getRequestedPolicy(){
|
|
20
|
-
return Policy.from(this.draft.GetValue(0));
|
|
21
|
-
}
|
|
22
|
-
}
|
package/src/utils.ts
DELETED
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
const base64abc = [
|
|
2
|
-
"A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M",
|
|
3
|
-
"N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z",
|
|
4
|
-
"a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m",
|
|
5
|
-
"n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z",
|
|
6
|
-
"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "+", "/"
|
|
7
|
-
];
|
|
8
|
-
export function bytesToBase64(bytes: Uint8Array) : string {
|
|
9
|
-
let result = '', i, l = bytes.length;
|
|
10
|
-
for (i = 2; i < l; i += 3) {
|
|
11
|
-
result += base64abc[bytes[i - 2] >> 2];
|
|
12
|
-
result += base64abc[((bytes[i - 2] & 0x03) << 4) | (bytes[i - 1] >> 4)];
|
|
13
|
-
result += base64abc[((bytes[i - 1] & 0x0F) << 2) | (bytes[i] >> 6)];
|
|
14
|
-
result += base64abc[bytes[i] & 0x3F];
|
|
15
|
-
}
|
|
16
|
-
if (i === l + 1) { // 1 octet yet to write
|
|
17
|
-
result += base64abc[bytes[i - 2] >> 2];
|
|
18
|
-
result += base64abc[(bytes[i - 2] & 0x03) << 4];
|
|
19
|
-
result += "==";
|
|
20
|
-
}
|
|
21
|
-
if (i === l) { // 2 octets yet to write
|
|
22
|
-
result += base64abc[bytes[i - 2] >> 2];
|
|
23
|
-
result += base64abc[((bytes[i - 2] & 0x03) << 4) | (bytes[i - 1] >> 4)];
|
|
24
|
-
result += base64abc[(bytes[i - 1] & 0x0F) << 2];
|
|
25
|
-
result += "=";
|
|
26
|
-
}
|
|
27
|
-
return result;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
export function StringToUint8Array(string: string) : Uint8Array {
|
|
31
|
-
const enc = new TextEncoder();
|
|
32
|
-
return enc.encode(string);
|
|
33
|
-
}
|
|
34
|
-
export function StringFromUint8Array(bytes: Uint8Array) : string {
|
|
35
|
-
const enc = new TextDecoder();
|
|
36
|
-
return enc.decode(bytes);
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
export function BigIntToByteArray(value: bigint): Uint8Array {
|
|
40
|
-
if (value < 0n) {
|
|
41
|
-
throw new Error("Negative BigInt values are not supported");
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
const bytes: number[] = [];
|
|
45
|
-
let temp = value;
|
|
46
|
-
|
|
47
|
-
// Extract bytes in little-endian order
|
|
48
|
-
while (temp > 0n) {
|
|
49
|
-
bytes.push(Number(temp & 0xFFn));
|
|
50
|
-
temp = temp >> 8n;
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
// Handle zero case
|
|
54
|
-
if (bytes.length === 0) {
|
|
55
|
-
bytes.push(0);
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
// Pad or trim to specified length
|
|
59
|
-
const targetLength = bytes.length;
|
|
60
|
-
const result = new Uint8Array(targetLength);
|
|
61
|
-
|
|
62
|
-
for (let i = 0; i < Math.min(bytes.length, targetLength); i++) {
|
|
63
|
-
result[i] = bytes[i];
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
return result;
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
export function BigIntFromByteArray(bytes: Uint8Array): bigint {
|
|
70
|
-
let result = 0n;
|
|
71
|
-
|
|
72
|
-
// Read bytes in little-endian order
|
|
73
|
-
for (let i = bytes.length - 1; i >= 0; i--) {
|
|
74
|
-
result = (result << 8n) | BigInt(bytes[i]);
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
return result;
|
|
78
|
-
}
|