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.
Files changed (59) hide show
  1. package/dist/cjs/enclaves/RequestEnclave.d.ts +18 -9
  2. package/dist/cjs/enclaves/RequestEnclave.js +2 -20
  3. package/dist/cjs/enclaves/RequestEnclave.js.map +1 -1
  4. package/dist/cjs/heimdall.d.ts +0 -13
  5. package/dist/cjs/heimdall.js +1 -4
  6. package/dist/cjs/heimdall.js.map +1 -1
  7. package/dist/cjs/index.d.ts +0 -6
  8. package/dist/cjs/index.js +1 -13
  9. package/dist/cjs/index.js.map +1 -1
  10. package/dist/cjs/wrapper.d.ts +6 -1
  11. package/dist/cjs/wrapper.js +97 -4
  12. package/dist/cjs/wrapper.js.map +1 -1
  13. package/dist/esm/enclaves/RequestEnclave.d.ts +18 -9
  14. package/dist/esm/enclaves/RequestEnclave.js +2 -20
  15. package/dist/esm/enclaves/RequestEnclave.js.map +1 -1
  16. package/dist/esm/heimdall.d.ts +0 -13
  17. package/dist/esm/heimdall.js +1 -4
  18. package/dist/esm/heimdall.js.map +1 -1
  19. package/dist/esm/index.d.ts +0 -6
  20. package/dist/esm/index.js +0 -6
  21. package/dist/esm/index.js.map +1 -1
  22. package/dist/esm/wrapper.d.ts +6 -1
  23. package/dist/esm/wrapper.js +93 -1
  24. package/dist/esm/wrapper.js.map +1 -1
  25. package/heimdall-tide-0.13.1.tgz +0 -0
  26. package/package.json +1 -4
  27. package/package.json.bak +1 -4
  28. package/src/enclaves/RequestEnclave.ts +20 -34
  29. package/src/heimdall.ts +0 -17
  30. package/src/index.ts +1 -8
  31. package/src/wrapper.ts +118 -2
  32. package/tsconfig.cjs.json +0 -1
  33. package/tsconfig.esm.json +1 -1
  34. package/tsconfig.json +2 -4
  35. package/.github/PULL_REQUEST_TEMPLATE/release.md +0 -34
  36. package/.github/workflows/enforce_release.yml +0 -87
  37. package/dist/cjs/enclaves/ApprovalEnclaveNEW.d.ts +0 -23
  38. package/dist/cjs/enclaves/ApprovalEnclaveNEW.js +0 -52
  39. package/dist/cjs/enclaves/ApprovalEnclaveNEW.js.map +0 -1
  40. package/dist/cjs/models/PolicySignRequest.d.ts +0 -7
  41. package/dist/cjs/models/PolicySignRequest.js +0 -18
  42. package/dist/cjs/models/PolicySignRequest.js.map +0 -1
  43. package/dist/cjs/utils.d.ts +0 -5
  44. package/dist/cjs/utils.js +0 -75
  45. package/dist/cjs/utils.js.map +0 -1
  46. package/dist/esm/enclaves/ApprovalEnclaveNEW.d.ts +0 -23
  47. package/dist/esm/enclaves/ApprovalEnclaveNEW.js +0 -48
  48. package/dist/esm/enclaves/ApprovalEnclaveNEW.js.map +0 -1
  49. package/dist/esm/models/PolicySignRequest.d.ts +0 -7
  50. package/dist/esm/models/PolicySignRequest.js +0 -15
  51. package/dist/esm/models/PolicySignRequest.js.map +0 -1
  52. package/dist/esm/utils.d.ts +0 -5
  53. package/dist/esm/utils.js +0 -68
  54. package/dist/esm/utils.js.map +0 -1
  55. package/heimdall-tide-0.1.0.tgz +0 -0
  56. package/heimdall-tide-0.12.47.tgz +0 -0
  57. package/src/enclaves/ApprovalEnclaveNEW.ts +0 -51
  58. package/src/models/PolicySignRequest.ts +0 -22
  59. 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"}
@@ -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
@@ -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"}
@@ -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
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"}
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
- }