豫言源码浏览器 / Source Browser

浏览项目文件与源码

yuyan · 478 行 · 25693 字节 · UTF-8
§
寻观「标准库」之书。
寻观「标准库」之「数据结构」之「字节串」之书。
寻观「癸象工具」之「总集」之书。
寻观「云工宿主」之「核心」之书。

「:文言:本适配惟以云工既有之流柄合成事件流,宿主之码无所增。汉语:用 TransformStream 的可读端作 Response 正文,可写端的写器承背压;客户端断开由请求的 AbortSignal(须开启 enable_request_signal)与流错误共同判定;不新增任何宿主原语。:」

「:文言:登记簿每项:柄、写器号、状态引用、请求信号号、断开候承诺号、我方控制器号;状态零开、一客断、二已终、三客断而后终。汉语:登记簿中每项是(流柄,写器句柄号,状态引用,请求 AbortSignal 句柄号,断开等待承诺句柄号,我方 AbortController 句柄号);状态 0 开放、1 客户端已断开、2 已由应用结束或中止、3 客户端断开后又由应用结束或中止。:」
「流内记录」即
  「字符串」
  合「字符串」
  合(「引用类」于「整数」)
  合「字符串」
  合「字符串」
  合「字符串」
也。

「流内登记簿」乃(「引用类」于(「列」于「流内记录」))也。
「流内登记簿」者「新引用」授以(「列」于「流内记录」)
于(「罄」授以「流内记录」)
也。

「流内实例标记」乃(「引用类」于「字符串」)也。
「流内实例标记」者「新引用」授以「字符串」于『』也。

「流内取实例标记」乃化「有」而「字符串」也。
「流内取实例标记」者会「无」而
  虑「旧」者「读引用」授以「字符串」于「流内实例标记」而
  若「串相等」于「旧」于『』则(
    虑「新」者
      「获取子字符串」于「零」于「一三」于(「云工密码随机识别」于「元」)而
      虑「无」者「写引用」授以「字符串」于「流内实例标记」于「新」而
      「新」
  )
  否则
    「旧」
也。

「流内区间」乃化「整数」而化「整数」而化「整数」而「爻」也。
「流内区间」者会「码」而会「低」而会「高」而
  若「小于」于「码」于「低」则
    「阴」
  否则
    「非」于(「大于」于「码」于「高」)
也。

「:文言:RFC 9110 之令牌字,仅此数类。汉语:标头名只允许 RFC 9110 token 字符:字母、数字与 !#$%&'*+-.^_`|~。:」
「流内令牌字节」乃化「整数」而「爻」也。
「流内令牌字节」者会「码」而
  若「流内区间」于「码」于「四八」于「五七」则
    「阳」
  否则
    若「流内区间」于「码」于「六五」于「九零」则「阳」否则
      若「流内区间」于「码」于「九四」于「一二二」则
        「阳」
      否则
        若「或者」
          于(「等于」于「码」于「一二四」)
          于(「等于」于「码」于「一二六」)则「阳」
        否则
          若「流内区间」于「码」于「三三」于「四六」则
            「是子字符串吗」于(「字节转字符串」于「码」)于『!#$%&'*+-.』
          否则
            「阴」
也。

「流内令牌合法」乃化「字符串」而「爻」也。
「流内令牌合法」者会「名」而
  虑「长」者「字节长度」于「名」而
  若「或者」于(「等于」于「长」于「零」)于(「大于」于「长」于「六四」)则
    「阴」
  否则
    递归虑「查」其化「整数」而「爻」者会「位」而
      若「等于」于「位」于「长」则
        「阳」
      否则
        若「流内令牌字节」于(「字符转整数」于「名」于「位」)则「查」
          于(「加」于「位」于「一」)
        否则
          「阴」
    而
    「查」于「零」
也。

「:文言:标头值惟可见 ASCII、空格与制表,无控制字与高位字节。汉语:标头值只允许 0x09 与 0x20 至 0x7E,长度不超过 8192 字节,因而不含 CR、LF、NUL。:」
「流内标头值合法」乃化「字符串」而「爻」也。
「流内标头值合法」者会「值」而
  虑「长」者「字节长度」于「值」而
  若「大于」于「长」于「八一九二」则
    「阴」
  否则
    递归虑「查」其化「整数」而「爻」者会「位」而
      若「等于」于「位」于「长」则
        「阳」
      否则
        虑「码」者「字符转整数」于「值」于「位」
        而
        若「或者」于(「等于」于「码」于「九」)于(「流内区间」于「码」于「三二」于「一二六」)则
          「查」于(「加」于「位」于「一」)
        否则
          「阴」
    而
    「查」于「零」
也。

「流内小写字节」乃化「整数」而「整数」也。
「流内小写字节」者会「码」而
  若「流内区间」于「码」于「六五」于「九零」则
    「加」于「码」于「三二」
  否则
    「码」
也。

「流内名转小写」乃化「字符串」而「字符串」也。
「流内名转小写」者会「名」而
  虑「长」者「字节长度」于「名」而
  递归虑「拼」其化「整数」而化「字符串」而「字符串」者会「位」而
  会「积」而
  若「等于」于「位」于「长」则
    「积」
  否则
    「拼」
      于(「加」于「位」于「一」)
      于(「积」附(「字节转字符串」于(「流内小写字节」于(「字符转整数」于「名」于「位」))))
  而
  「拼」于「零」于『』
也。

「:文言:帧界、长度、传输、连接、升级、内容种类、编码、凭据皆不由应用附加。汉语:这些标头名(小写)不得由应用附加:它们决定报文成帧、连接语义、内容类型或凭据,事件流回应不允许应用改写。:」
「流内禁用头名」乃化「字符串」而「爻」也。
「流内禁用头名」者会「小名」而
  若「串相等」于「小名」于『content-length』则
    「阳」
  否则
    若「串相等」于「小名」于『transfer-encoding』则「阳」否则
      若「串相等」于「小名」于『connection』则「阳」否则
        若「串相等」于「小名」于『keep-alive』则「阳」否则
          若「串相等」于「小名」于『upgrade』则「阳」否则
            若「串相等」于「小名」于『te』则「阳」否则
              若「串相等」于「小名」于『trailer』则「阳」否则
                若「串相等」于「小名」于『content-type』则「阳」否则
                  若「串相等」于「小名」于『content-encoding』则「阳」否则
                    若「串相等」于「小名」于『set-cookie』则
                      「阳」
                    否则
                      「串相等」于「小名」于『set-cookie2』
也。

「流内已用头」乃化「字符串」而化(「列」于「字符串」)而「爻」也。
「流内已用头」者会「名」而会「诸名」而
  鉴「诸名」而
    有「罄」则「阴」
    或有(「缀」于「首」于「余」)则(
      若「串相等」于「名」于「首」则「阳」否则「流内已用头」于「名」于「余」)
也。

「:文言:逐项验之,返已用小写名之列;有违即抛事故。汉语:校验附加标头并返回已使用的小写名称列表;名称非 token、值含非法字节、名称被禁用或重复,均抛出豫言异常。:」
「流内校验标头列」乃
  化(「列」于(「字符串」合「字符串」))而
  化(「列」于「字符串」)而
  (「列」于「字符串」)
也。
「流内校验标头列」者会「诸头」而会「已用」而
  鉴「诸头」而
    有「罄」则「已用」
    或有(「缀」于「首」于「余」)则(
      虑「名」者「首」中「零」而
      虑「值」者「首」中「一」而
      若「非」于(「流内令牌合法」于「名」)则
        「发生事故」授以(「列」于「字符串」)
        于『事件流标头名无效:须为 1 至 64 字节的 RFC 9110 token』
      否则
        若「非」于(「流内标头值合法」于「值」)则
          「发生事故」授以(「列」于「字符串」)
          于『事件流标头值无效:只允许可见 ASCII、空格与制表,不超过 8192 字节』
        否则
          虑「小名」者「流内名转小写」于「名」
          而
          若「流内禁用头名」于「小名」则
            「发生事故」授以(「列」于「字符串」)
            于(『事件流标头不允许应用附加:』附「小名」)
          否则
            若「流内已用头」于「小名」于「已用」则
              「发生事故」授以(「列」于「字符串」)
              于(『事件流标头重复:』附「小名」)
            否则
              「流内校验标头列」
                于「余」
                于(「缀」授以「字符串」于「小名」于「已用」)
    )
也。

「流内标头对象项」乃
  化(「列」于(「字符串」合「字符串」))而
  (「列」于(「字符串」合「癸象」))
也。
「流内标头对象项」者会「诸头」而
  鉴「诸头」而
    有「罄」则「罄」授以(「字符串」合「癸象」)
    或有(「缀」于「首」于「余」)则(「缀」授以(「字符串」合「癸象」)
    于((「首」中「零」)与(「癸象字符串」于(「首」中「一」)))
    于(「流内标头对象项」于「余」))
也。

「流内查流」乃化「字符串」而「流内记录」也。
「流内查流」者会「柄」而
  递归虑「找」其化(「列」于「流内记录」)而「流内记录」者会「表」而
    鉴「表」而
      有「罄」则「发生事故」授以「流内记录」
      于『事件流柄无效:不是本次事件创建的事件流』
      或有(「缀」于「项」于「余」)则(
        若「串相等」于(「项」中「零」)于「柄」则「项」否则「找」于「余」)
  而
  「找」于(「读引用」授以(「列」于「流内记录」)于「流内登记簿」)
也。

「流内号引用文」乃化「字符串」而「字符串」也。
「流内号引用文」者会「号」而
  『{"$句柄":"』附「号」附『"}』
也。

「:文言:断开候承诺者,请求信号与我方控制器所合之信号所设计时之承诺,其兑现即客断或流终;计时二十四时,终时必撤。汉语:创建“断开等待”承诺:等价于 scheduler.wait(24 小时, {signal: AbortSignal.any([请求信号, 我方信号])}) 再经 Promise.allSettled 包装,因此在客户端断开(请求信号中止)或我方撤销时兑现,且从不拒绝。:」
「流内造断开候」乃化「字符串」而(「字符串」合「字符串」)也。
「流内造断开候」者会「请求信号」而
  虑「我方」者
    「取云工句柄」于(「云工构造对象」于『AbortController』于『[]』)而
    虑「我方信号」者
      「取云工句柄」于(「云工读取属性」于「我方」于『signal』)而
      虑「合信号」者
        「取云工句柄」于(「云工调用方法」
          于(「云工全局句柄」于『AbortSignal』)
          于『any』
          于(『[[』附(「流内号引用文」于「请求信号」)附『,』附(「流内号引用文」于「我方信号」)附『]]』))而
          虑「计时」者
            「取云工句柄」于(「云工调用方法原始」
              于(「云工全局句柄」于『scheduler』)
              于『wait』
              于(『[86400000,{"signal":』附(「流内号引用文」于「合信号」)附『}]』))而
              虑「候」者
                「取云工句柄」于(「云工调用方法原始」
                  于(「云工全局句柄」于『Promise』)
                  于『allSettled』
                  于(『[[』附(「流内号引用文」于「计时」)附『]]』))而
                  虑「无」者「云工释放句柄」于「计时」而
                  虑「无」者「云工释放句柄」于「合信号」而
                  虑「无」者「云工释放句柄」于「我方信号」而
                  「候」与「我方」
也。

「:文言:写与闭之承诺与断开候相竞,断开候居前,故已断则不论写之成否皆归一;写败亦为断。汉语:让一个写入或关闭操作的承诺与“断开等待”竞速,断开等待排在前面:已经断开时无论写入本身能否完成都返回 1;断开前操作先完成返回 0;操作被拒绝也返回 1。操作句柄在竞速后释放。:」
「流内竞断开」乃化「流内记录」而化「字符串」而「整数」也。
「流内竞断开」者会「记」而会「操作」而
  虑「竞」者
    「云工调用方法安全」
      于(「云工全局句柄」于『Promise』)
      于『race』
      于(『[[』附(「流内号引用文」于(「记」中「四」))附『,』附(「流内号引用文」于「操作」)附『]]』)而
      虑「无」者「云工释放句柄」于「操作」而
      若「非」于(「竞」中「零」)则「一」否则
        若「串开头是它吗」于『[』于(「竞」中「一」)则「一」否则「零」
也。

「:文言:既终则撤断开候、释写器;状态不复更。汉语:把流标记为终态并清理:撤销断开等待的计时器并释放句柄;已是终态时不做任何事。:」
「流内清理」乃化「流内记录」而「有」也。
「流内清理」者会「记」而
  虑「无」者「云工调度中断」于(「记」中「五」)而
  虑「无」者「云工释放句柄」于(「记」中「五」)而
  虑「无」者「云工释放句柄」于(「记」中「四」)而
  「云工释放句柄」于(「记」中「三」)
也。

「流内刷新断开」乃化「流内记录」而「整数」也。
「流内刷新断开」者会「记」而
  虑「态」者「读引用」授以「整数」于(「记」中「二」)而
  若「不等于」于「态」于「零」则
    「态」
  否则
    若「串相等」于(「云工读取属性」于(「记」中「三」)于『aborted』)于『true』则
      (虑「无」者「写引用」授以「整数」于(「记」中「二」)于「一」而「一」)
    否则
      若「串相等」于(「云工写器容量文」于(「记」中「一」))于『null』则
        (虑「无」者「写引用」授以「整数」于(「记」中「二」)于「一」而「一」)
      否则
        「零」
也。

「流内造响应」乃
  化「整数」而
  化(「列」于(「字符串」合「字符串」))而
  (「字符串」合「字符串」)
也。
「流内造响应」者会「状态」而会「诸头」而
  虑「已用」者「流内校验标头列」于「诸头」于(「罄」授以「字符串」)而
  虑「默认缓存」者
    (「缀」授以(「字符串」合「字符串」)
    于(『Cache-Control』与『no-store』)
    于(「罄」授以(「字符串」合「字符串」)))而
    虑「缓存头」者
      若「流内已用头」于『cache-control』于「已用」则(「罄」授以(「字符串」合「字符串」))否则「默认缓存」
    而
    虑「首头」者
      (『Content-Type』与(「癸象字符串」于『text/event-stream; charset=utf-8』))
    而
    虑「诸项」者
      「缀」授以(「字符串」合「癸象」)
      于「首头」
      于(「附加」授以(「字符串」合「癸象」)于(「流内标头对象项」于「缓存头」)于(「流内标头对象项」于「诸头」))
    而
    虑「头对象」者「癸象对象」于「诸项」而
    虑「初始化」者
      「癸象表示」于(「癸象对象」于(「列」【『status』与(「癸象整数」于「状态」),『headers』与「头对象」】))
    而
    虑「转换」者
      「取云工句柄」于(「云工构造对象」于『TransformStream』于『[]』)
    而
    虑「读端」者
      「取云工句柄」于(「云工读取属性」于「转换」于『readable』)
    而
    虑「写端」者
      「取云工句柄」于(「云工读取属性」于「转换」于『writable』)
    而
    虑「写器」者「云工打开可写流」于「写端」而
    虑「响应」者
      「取云工句柄」于(「云工构造对象」
        于『Response』
        于(『[』附(「云工句柄引用文」于「读端」)附『,』附「初始化」附『]』))
    而
    虑「无」者「云工释放句柄」于「写端」而
    虑「无」者「云工释放句柄」于「读端」而
    虑「无」者「云工释放句柄」于「转换」而
    「写器」与「响应」
也。

「:文言:先验状态、标头与事种;合流与断开候;提头既行,末登记。汉语:先校验状态、标头和事件种类,再创建流与“断开等待”,把 Response 设为本次事件的响应(响应头立即提交),最后登记流柄。:」
「开始入站事件流回应」乃
  化「整数」而
  化(「列」于(「字符串」合「字符串」))而
  「字符串」
也。
「开始入站事件流回应」者会「状态」而会「诸头」而
  若「或者」于(「小于」于「状态」于「二零零」)于(「大于」于「状态」于「二九九」)则
    「发生事故」授以「字符串」于『事件流响应状态不在 200 至 299』
  否则
    若「或者」于(「等于」于「状态」于「二零四」)于(「等于」于「状态」于「二零五」)则
      「发生事故」授以「字符串」
      于『事件流响应状态不得为 204 或 205,二者不能带正文』
    否则
      若「大于」
        于(「长度」授以(「字符串」合「字符串」)于「诸头」)于「三二」则
          「发生事故」授以「字符串」于『事件流附加标头超过 32 项』
      否则
        若「非」于(「或者」
          于(「串相等」于(「云工事件种类」于「元」)于『fetch』)
          于(「或者」
            于(「串相等」于(「云工事件种类」于「元」)于『durable-fetch』)
            于(「串相等」于(「云工事件种类」于「元」)于『service-fetch』)))则
              「发生事故」授以「字符串」
              于『事件流只能回应 HTTP 事件(fetch、durable-fetch、service-fetch)』
        否则
          若「大于」
            于(「长度」授以「流内记录」于(「读引用」授以(「列」于「流内记录」)于「流内登记簿」))
            于「零」则
            「发生事故」授以「字符串」
            于『本次事件已经开始过事件流回应』
          否则
            虑「响应对」者
              「流内造响应」于「状态」于「诸头」
            而
            虑「写器」者「响应对」中「零」
            而
            虑「响应」者「响应对」中「一」
            而
            虑「请求信号」者
              「取云工句柄」于(「云工读取属性」于(「云工请求句柄」于「元」)于『signal』)
            而
            虑「候对」者「流内造断开候」于「请求信号」
            而
            虑「无」者「云工设置响应句柄」于「响应」
            而
            虑「无」者「云工释放句柄」于「响应」
            而
            虑「柄」者(「流内取实例标记」于「元」)附『:』附「写器」
            而
            虑「无」者
              「写引用」授以(「列」于「流内记录」)
              于「流内登记簿」
              于(「缀」授以「流内记录」
                于(「柄」与「写器」与(「新引用」授以「整数」于「零」)与「请求信号」与(「候对」中「零」)
                  与(「候对」中「一」))
                  于(「读引用」授以(「列」于「流内记录」)于「流内登记簿」))
            而
            「柄」
也。

「入站事件流已断开」乃化「字符串」而「爻」也。
「入站事件流已断开」者会「柄」而
  虑「记」者「流内查流」于「柄」而
  虑「态」者「流内刷新断开」于「记」而
  「或者」于(「等于」于「态」于「一」)于(「等于」于「态」于「三」)
也。

「流内写出」乃化「流内记录」而化「字符串」而「整数」也。
「流内写出」者会「记」而会「文字」而
  虑「操作」者
    「云工写器发字节」于(「记」中「一」)于(「字符串转字节串」于「文字」)而
    虑「果」者「流内竞断开」于「记」于「操作」而
    若「等于」于「果」于「零」则「零」否则(虑「无」者「写引用」授以「整数」于(「记」中「二」)于「一」而「一」)
也。

「:文言:零字节不书,惟察其断否;余者书之,与断开候相竞。汉语:先验大小,再按状态分派:已断开返回 1,已结束返回 2;空文字不写入,只刷新断开状态。:」
「写入入站事件流文字」乃化「字符串」而化「字符串」而「整数」也。
「写入入站事件流文字」者会「柄」而会「文字」而
  虑「记」者「流内查流」于「柄」而
  若「大于」于(「字节长度」于「文字」)于「六五五三六」则
    「发生事故」授以「整数」于『事件流单次写入超过 64 KiB』
  否则
    虑「态」者「读引用」授以「整数」于(「记」中「二」)
    而
    若「等于」于「态」于「零」则
      (若「等于」于(「字节长度」于「文字」)于「零」则「流内刷新断开」于「记」否则「流内写出」于「记」于「文字」)
    否则
      若「等于」于「态」于「一」则「一」否则「二」
也。

「结束入站事件流」乃化「字符串」而「有」也。
「结束入站事件流」者会「柄」而
  虑「记」者「流内查流」于「柄」而
  虑「态」者「读引用」授以「整数」于(「记」中「二」)而
  若「等于」于「态」于「零」则(
    虑「操作」者「云工写器发关闭」于(「记」中「一」)而
    虑「果」者「流内竞断开」于「记」于「操作」而
    虑「无」者
      「写引用」授以「整数」
      于(「记」中「二」)
      于(若「等于」于「果」于「零」则「二」否则「三」)
    而
    虑「无」者「云工释放句柄」于(「记」中「一」)而
    「流内清理」于「记」
  )否则
    若「等于」于「态」于「一」则(
      虑「无」者「写引用」授以「整数」于(「记」中「二」)于「三」
      而
      虑「无」者「云工释放句柄」于(「记」中「一」)而
      「流内清理」于「记」
    )否则
      「元」
也。

「中止入站事件流」乃化「字符串」而化「字符串」而「有」也。
「中止入站事件流」者会「柄」而会「原因」而
  虑「记」者「流内查流」于「柄」而
  若「大于」于(「字节长度」于「原因」)于「一零二四」则
    「发生事故」授以「有」于『事件流中止原因超过 1024 字节』
  否则
    虑「态」者「读引用」授以「整数」于(「记」中「二」)
    而
    若「等于」于「态」于「零」则(
      虑「错误」者
        「取云工句柄」于(「云工构造对象」于『Error』于(『[』附(「癸象表示」于(「癸象字符串」于「原因」))附『]』))
      而
      虑「无」者
        「云工调用方法安全」于(「记」中「一」)于『abort』于(『[』附(「流内号引用文」于「错误」)附『]』)
      而
      虑「无」者「云工释放句柄」于「错误」
      而
      虑「无」者「写引用」授以「整数」于(「记」中「二」)于「二」
      而
      虑「无」者「云工释放句柄」于(「记」中「一」)而
      「流内清理」于「记」
    )否则
      若「等于」于「态」于「一」则(
        虑「无」者「写引用」授以「整数」于(「记」中「二」)于「三」
        而
        虑「无」者「云工释放句柄」于(「记」中「一」)而
        「流内清理」于「记」
      )否则
        「元」
也。