Paw 的 DynamicValueInput 类型 JSON 和 Checkbox 的问题

Issues with Paw's DynamicValueInput type JSON and Checkbox

我想为生成 Json Web 令牌的 Paw 创建一个 DynamicValue 插件。完整的来源可以在这里找到:https://github.com/choffmeister/Paw-JsonWebTokenDynamicValue

相关文件:

// JsonWebTokenDynamicValue.js
import jsrsasign from 'jsrsasign';

@registerDynamicValueClass
class JsonWebTokenDynamicValue {
  static identifier = 'de.choffmeister.PawExtensions.JsonWebTokenDynamicValue';
  static title = 'Json Web Token';
  static help = 'https://github.com/choffmeister/Paw-JsonWebTokenDynamicValue';

  static inputs = [
    DynamicValueInput('signatureSecret', 'Secret', 'SecureValue'),
    DynamicValueInput('signatureSecretIsBase64', 'Secret is Base64', 'Checkbox'),
    DynamicValueInput('payload', 'Payload', 'JSON')
  ];

  evaluate() {
    console.log(JSON.stringify(this.payload, null, 2));
    console.log(JSON.stringify(this.signatureSecretIsBase64, null, 2));

    const now = Math.floor((new Date()).getTime() / 1000);

    const header = {
      typ: 'JWT',
      alg: 'HS256'
    };
    const payload = {
      ...this.payload,
      exp: now + (60 * 60 * 24 * 7),
      iat: now
    };

    const secret = this.signatureSecretIsBase64
      ? {b64: jsrsasign.b64utob64(this.signatureSecret)}
      : this.signatureSecret;

    return jsrsasign.jws.JWS.sign(null, header, payload, secret);
  }
}

它在 GUI 中的外观:

我搜索了https://luckymarmot.com/paw/doc/extensions/create-dynamic-value,周围的文档和我在网上能找到的所有插件示例,但我仍然有两个问题无法解决:

  1. 当使用 Checkbox 类型的 DynamicValueInput 时,输入字段不可见(见屏幕截图)。我得到一个值(空字符串),但就是看不到它。如何让复选框出现?
  2. 当使用 JSON 类型的 DynamicValueInput 时,JSON 中使用的动态值(见屏幕截图)没有得到解析,而是我得到了一种描述对象( stringified),这个动态值是什么。记录 this.payload 对象如下所示:

    {
      "foo": "[{\"data\":{\"environmentVariable\":\"2925ABDA-8AAC-440B-B2CA-DA216CD37A09\"},\"identifier\":\"com.luckymarmot.EnvironmentVariableDynamicValue\"}]"
    }
    

    也许值得注意:当使用 KeyValueList 类型的 DynamicInputValue 时,内部动态值会被正确解析。我怎样才能用 JSON 类型实现这个呢?

此问题已在 Paw 2.3.3 and @Thekwasti's extension has actually been published here: https://luckymarmot.com/paw/extensions/JsonWebTokenDynamicValue

中解决