@tidecloak/js
Version:
TideCloak client side JS SDK
81 lines • 3.03 kB
JavaScript
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const Serialization_js_1 = require("../../Cryptide/Serialization.js");
const Serialization_js_2 = require("../../Cryptide/Serialization.js");
const BaseTideRequest_js_1 = __importDefault(require("../BaseTideRequest.js"));
class RuleSettingSignRequest extends BaseTideRequest_js_1.default {
/**
* @param {string} authFlow
*/
constructor(authFlow) {
super("Rules", "1", authFlow, new Uint8Array());
this.ruleSettings = null;
this.previousRuleSetting = null;
this.previousRuleSettingCert = null;
}
/**
* @param {Uint8Array} ruleSettings
*/
setNewRuleSetting(ruleSettings) {
this.ruleSettings = ruleSettings;
}
/**
* @param {Uint8Array} previousRuleSetting
*/
setPreviousRuleSetting(previousRuleSetting) {
this.previousRuleSetting = previousRuleSetting;
}
/**
* @param {Uint8Array} previousRuleSettingCert
*/
setPreviousRuleSettingCert(previousRuleSettingCert) {
this.previousRuleSettingCert = previousRuleSettingCert;
}
/**
* Serializes the data into a draft format
*/
serializeDraft() {
if (this.draft.length === 0) {
if (this.previousRuleSetting !== null) {
const markPreviousRulePresent = new Uint8Array([1]);
const draft = (0, Serialization_js_2.CreateTideMemory)(markPreviousRulePresent, 4 + markPreviousRulePresent.length + 4 + this.previousRuleSetting.length + 4 + this.previousRuleSettingCert.length + 4 + this.ruleSettings.length);
(0, Serialization_js_1.WriteValue)(draft, 1, this.previousRuleSetting);
(0, Serialization_js_1.WriteValue)(draft, 2, this.previousRuleSettingCert);
(0, Serialization_js_1.WriteValue)(draft, 3, this.ruleSettings);
this.draft = draft;
}
else {
const markPreviousNotRulePresent = new Uint8Array([0]);
const draft = (0, Serialization_js_2.CreateTideMemory)(markPreviousNotRulePresent, 4 + markPreviousNotRulePresent.length + 4 + this.ruleSettings.length);
(0, Serialization_js_1.WriteValue)(draft, 1, this.ruleSettings);
this.draft = draft;
}
}
}
/**
* Generates data to authorize
* @returns {Promise<Uint8Array>}
*/
async getDataToAuthorize() {
this.serializeDraft();
return super.dataToAuthorize();
}
/**
* @returns {Uint8Array} Draft copy
*/
getDraft() {
this.serializeDraft();
return this.draft.slice();
}
/**
* @param {Uint8Array} draft
*/
setDraft(draft) {
this.draft = draft;
}
}
exports.default = RuleSettingSignRequest;
//# sourceMappingURL=RuleSettingSignRequest.js.map