zeed 0.24.21 → 0.24.22

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 (182) hide show
  1. package/dist/browser/index.cjs +3 -3
  2. package/dist/browser/index.js +2 -2
  3. package/dist/browser/localstorage.spec.cjs +18 -18
  4. package/dist/browser/localstorage.spec.js +18 -18
  5. package/dist/browser/log/index.cjs +3 -3
  6. package/dist/browser/log/index.js +2 -2
  7. package/dist/browser/log/log-browser.cjs +3 -3
  8. package/dist/browser/log/log-browser.js +2 -2
  9. package/dist/browser/log/log-context-browser.cjs +4 -4
  10. package/dist/browser/log/log-context-browser.js +3 -3
  11. package/dist/{chunk-54BCGEKW.js → chunk-2KMVAIXW.js} +2 -2
  12. package/dist/{chunk-SX5YQHZO.cjs → chunk-33B2TEAZ.cjs} +44 -2
  13. package/dist/chunk-33B2TEAZ.cjs.map +1 -0
  14. package/dist/{chunk-6O4C75LB.cjs → chunk-34N227RG.cjs} +3 -3
  15. package/dist/{chunk-6O4C75LB.cjs.map → chunk-34N227RG.cjs.map} +1 -1
  16. package/dist/{chunk-M36JIJIN.cjs → chunk-4I63E7RR.cjs} +4 -4
  17. package/dist/{chunk-M36JIJIN.cjs.map → chunk-4I63E7RR.cjs.map} +1 -1
  18. package/dist/{chunk-NFGPFSPO.cjs → chunk-5RMO25EO.cjs} +3 -3
  19. package/dist/{chunk-NFGPFSPO.cjs.map → chunk-5RMO25EO.cjs.map} +1 -1
  20. package/dist/{chunk-HNN5IHXG.js → chunk-6EAE53I3.js} +3 -3
  21. package/dist/{chunk-QH47PAYE.cjs → chunk-77IPGSEK.cjs} +3 -3
  22. package/dist/{chunk-QH47PAYE.cjs.map → chunk-77IPGSEK.cjs.map} +1 -1
  23. package/dist/{chunk-IGBQSN6M.js → chunk-7IG6OMGK.js} +2 -2
  24. package/dist/{chunk-WVAFGHBS.cjs → chunk-ANH22HI4.cjs} +3 -3
  25. package/dist/{chunk-WVAFGHBS.cjs.map → chunk-ANH22HI4.cjs.map} +1 -1
  26. package/dist/{chunk-SCQIUUXO.js → chunk-ARGGC4S7.js} +2 -2
  27. package/dist/{chunk-SIJXIZ4J.cjs → chunk-AW6BPYNX.cjs} +7 -7
  28. package/dist/{chunk-SIJXIZ4J.cjs.map → chunk-AW6BPYNX.cjs.map} +1 -1
  29. package/dist/{chunk-FLUN46S4.cjs → chunk-BCX254SL.cjs} +3 -3
  30. package/dist/{chunk-FLUN46S4.cjs.map → chunk-BCX254SL.cjs.map} +1 -1
  31. package/dist/{chunk-VMVGGE32.cjs → chunk-CRG6JERG.cjs} +3 -3
  32. package/dist/{chunk-VMVGGE32.cjs.map → chunk-CRG6JERG.cjs.map} +1 -1
  33. package/dist/{chunk-DHBQHOGQ.js → chunk-CYQGBI3Z.js} +2 -2
  34. package/dist/{chunk-HW2ATP66.js → chunk-F6BC7VBR.js} +2 -2
  35. package/dist/{chunk-WZB5LGZ4.cjs → chunk-HL7W3IJL.cjs} +3 -3
  36. package/dist/{chunk-WZB5LGZ4.cjs.map → chunk-HL7W3IJL.cjs.map} +1 -1
  37. package/dist/{chunk-QP3M4SXG.cjs → chunk-HWQNPGWU.cjs} +3 -3
  38. package/dist/{chunk-QP3M4SXG.cjs.map → chunk-HWQNPGWU.cjs.map} +1 -1
  39. package/dist/{chunk-DO72DWOL.js → chunk-IDWIANZR.js} +2 -2
  40. package/dist/{chunk-FJRY5GL6.cjs → chunk-IQ37FMAX.cjs} +5 -5
  41. package/dist/{chunk-FJRY5GL6.cjs.map → chunk-IQ37FMAX.cjs.map} +1 -1
  42. package/dist/{chunk-JLSAW4YK.js → chunk-IUSTZZ2Z.js} +2 -2
  43. package/dist/{chunk-D7LG5W7J.js → chunk-IX5ITV72.js} +2 -2
  44. package/dist/{chunk-QJVZDNUH.cjs → chunk-K3AEUCMR.cjs} +4 -4
  45. package/dist/{chunk-QJVZDNUH.cjs.map → chunk-K3AEUCMR.cjs.map} +1 -1
  46. package/dist/{chunk-D4QZEGYG.js → chunk-M742MR6R.js} +2 -2
  47. package/dist/{chunk-CG4A32PZ.js → chunk-MAZZNLXR.js} +2 -2
  48. package/dist/{chunk-QV2QPYMW.js → chunk-NNCJ3QL5.js} +44 -2
  49. package/dist/{chunk-QV2QPYMW.js.map → chunk-NNCJ3QL5.js.map} +1 -1
  50. package/dist/{chunk-IWJ5F3JF.js → chunk-NOJUZASU.js} +2 -2
  51. package/dist/{chunk-CSYN5J44.js → chunk-NRYO7FMY.js} +3 -3
  52. package/dist/{chunk-57AYOGMA.js → chunk-OD5GCLP6.js} +2 -2
  53. package/dist/{chunk-C57J5C7S.js → chunk-OYZDZI6A.js} +2 -2
  54. package/dist/{chunk-QRZCRLS4.cjs → chunk-VXJUCLJU.cjs} +5 -5
  55. package/dist/{chunk-QRZCRLS4.cjs.map → chunk-VXJUCLJU.cjs.map} +1 -1
  56. package/dist/{chunk-JDRJMOB6.cjs → chunk-WE7QYNN3.cjs} +3 -3
  57. package/dist/{chunk-JDRJMOB6.cjs.map → chunk-WE7QYNN3.cjs.map} +1 -1
  58. package/dist/{chunk-N764ZFOI.cjs → chunk-WJXIPQLF.cjs} +4 -4
  59. package/dist/{chunk-N764ZFOI.cjs.map → chunk-WJXIPQLF.cjs.map} +1 -1
  60. package/dist/common/bin/index.spec.cjs +23 -23
  61. package/dist/common/bin/index.spec.cjs.map +1 -1
  62. package/dist/common/bin/index.spec.js +23 -23
  63. package/dist/common/crypto.spec.cjs +18 -18
  64. package/dist/common/crypto.spec.js +18 -18
  65. package/dist/common/data/deep.spec.cjs +2 -2
  66. package/dist/common/data/deep.spec.js +2 -2
  67. package/dist/common/data/sorted.spec.cjs +18 -18
  68. package/dist/common/data/sorted.spec.cjs.map +1 -1
  69. package/dist/common/data/sorted.spec.js +18 -18
  70. package/dist/common/data/utils.spec.cjs +5 -5
  71. package/dist/common/data/utils.spec.js +5 -5
  72. package/dist/common/dispose-defer.spec.cjs +6 -6
  73. package/dist/common/dispose-defer.spec.js +6 -6
  74. package/dist/common/exec/index.cjs +6 -6
  75. package/dist/common/exec/index.js +5 -5
  76. package/dist/common/exec/pool.cjs +5 -5
  77. package/dist/common/exec/pool.js +4 -4
  78. package/dist/common/exec/pool.spec.cjs +6 -6
  79. package/dist/common/exec/pool.spec.js +4 -4
  80. package/dist/common/exec/progress.cjs +4 -4
  81. package/dist/common/exec/progress.js +3 -3
  82. package/dist/common/exec/progress.spec.cjs +6 -6
  83. package/dist/common/exec/progress.spec.js +3 -3
  84. package/dist/common/exec/queue.cjs +4 -4
  85. package/dist/common/exec/queue.js +3 -3
  86. package/dist/common/exec/queue.spec.cjs +7 -7
  87. package/dist/common/exec/queue.spec.js +3 -3
  88. package/dist/common/index.cjs +56 -28
  89. package/dist/common/index.cjs.map +1 -1
  90. package/dist/common/index.d.cts +1 -1
  91. package/dist/common/index.d.ts +1 -1
  92. package/dist/common/index.js +56 -28
  93. package/dist/common/log/index.cjs +3 -3
  94. package/dist/common/log/index.js +2 -2
  95. package/dist/common/log/log-memory.cjs +3 -3
  96. package/dist/common/log/log-memory.js +2 -2
  97. package/dist/common/log/log-memory.spec.cjs +3 -3
  98. package/dist/common/log/log-memory.spec.js +2 -2
  99. package/dist/common/msg/channel-debug.cjs +5 -5
  100. package/dist/common/msg/channel-debug.js +4 -4
  101. package/dist/common/msg/channel-local.cjs +5 -5
  102. package/dist/common/msg/channel-local.js +4 -4
  103. package/dist/common/msg/channel-resilient.cjs +5 -5
  104. package/dist/common/msg/channel-resilient.js +4 -4
  105. package/dist/common/msg/channel-resilient.spec.cjs +8 -8
  106. package/dist/common/msg/channel-resilient.spec.js +5 -5
  107. package/dist/common/msg/channel.cjs +4 -4
  108. package/dist/common/msg/channel.js +3 -3
  109. package/dist/common/msg/channel.spec.cjs +6 -6
  110. package/dist/common/msg/channel.spec.js +5 -5
  111. package/dist/common/msg/encoder.spec.cjs +18 -18
  112. package/dist/common/msg/encoder.spec.js +18 -18
  113. package/dist/common/msg/index.cjs +9 -9
  114. package/dist/common/msg/index.js +8 -8
  115. package/dist/common/msg/messages.cjs +4 -4
  116. package/dist/common/msg/messages.js +3 -3
  117. package/dist/common/msg/messages.spec.cjs +8 -8
  118. package/dist/common/msg/messages.spec.js +5 -5
  119. package/dist/common/msg/pubsub.cjs +4 -4
  120. package/dist/common/msg/pubsub.js +3 -3
  121. package/dist/common/msg/pubsub.spec.cjs +11 -11
  122. package/dist/common/msg/pubsub.spec.js +5 -5
  123. package/dist/common/msg/rpc.spec.cjs +11 -11
  124. package/dist/common/msg/rpc.spec.cjs.map +1 -1
  125. package/dist/common/msg/rpc.spec.js +8 -8
  126. package/dist/common/time.cjs +30 -2
  127. package/dist/common/time.cjs.map +1 -1
  128. package/dist/common/time.d.cts +17 -1
  129. package/dist/common/time.d.ts +17 -1
  130. package/dist/common/time.js +31 -3
  131. package/dist/common/time.spec.cjs +40 -18
  132. package/dist/common/time.spec.cjs.map +1 -1
  133. package/dist/common/time.spec.js +28 -6
  134. package/dist/common/time.spec.js.map +1 -1
  135. package/dist/common/uuid.cjs +3 -3
  136. package/dist/common/uuid.js +2 -2
  137. package/dist/common/uuid.spec.cjs +50 -50
  138. package/dist/common/uuid.spec.js +2 -2
  139. package/dist/index.all.cjs +59 -31
  140. package/dist/index.all.cjs.map +1 -1
  141. package/dist/index.all.d.cts +1 -1
  142. package/dist/index.all.d.ts +1 -1
  143. package/dist/index.all.js +59 -31
  144. package/dist/index.browser.cjs +58 -30
  145. package/dist/index.browser.cjs.map +1 -1
  146. package/dist/index.browser.d.cts +1 -1
  147. package/dist/index.browser.d.ts +1 -1
  148. package/dist/index.browser.js +58 -30
  149. package/dist/index.node.cjs +58 -30
  150. package/dist/index.node.cjs.map +1 -1
  151. package/dist/index.node.d.cts +1 -1
  152. package/dist/index.node.d.ts +1 -1
  153. package/dist/index.node.js +58 -30
  154. package/dist/node/index.cjs +3 -3
  155. package/dist/node/index.js +2 -2
  156. package/dist/node/log/index.cjs +3 -3
  157. package/dist/node/log/index.js +2 -2
  158. package/dist/node/log/log-context-node.cjs +4 -4
  159. package/dist/node/log/log-context-node.js +3 -3
  160. package/dist/node/log/log-file.spec.cjs +2 -2
  161. package/dist/node/log/log-file.spec.js +2 -2
  162. package/dist/node/log/log-node.cjs +3 -3
  163. package/dist/node/log/log-node.js +2 -2
  164. package/dist/node/log/log-node.spec.cjs +7 -7
  165. package/dist/node/log/log-node.spec.js +3 -3
  166. package/package.json +8 -8
  167. package/dist/chunk-SX5YQHZO.cjs.map +0 -1
  168. /package/dist/{chunk-54BCGEKW.js.map → chunk-2KMVAIXW.js.map} +0 -0
  169. /package/dist/{chunk-HNN5IHXG.js.map → chunk-6EAE53I3.js.map} +0 -0
  170. /package/dist/{chunk-IGBQSN6M.js.map → chunk-7IG6OMGK.js.map} +0 -0
  171. /package/dist/{chunk-SCQIUUXO.js.map → chunk-ARGGC4S7.js.map} +0 -0
  172. /package/dist/{chunk-DHBQHOGQ.js.map → chunk-CYQGBI3Z.js.map} +0 -0
  173. /package/dist/{chunk-HW2ATP66.js.map → chunk-F6BC7VBR.js.map} +0 -0
  174. /package/dist/{chunk-DO72DWOL.js.map → chunk-IDWIANZR.js.map} +0 -0
  175. /package/dist/{chunk-JLSAW4YK.js.map → chunk-IUSTZZ2Z.js.map} +0 -0
  176. /package/dist/{chunk-D7LG5W7J.js.map → chunk-IX5ITV72.js.map} +0 -0
  177. /package/dist/{chunk-D4QZEGYG.js.map → chunk-M742MR6R.js.map} +0 -0
  178. /package/dist/{chunk-CG4A32PZ.js.map → chunk-MAZZNLXR.js.map} +0 -0
  179. /package/dist/{chunk-IWJ5F3JF.js.map → chunk-NOJUZASU.js.map} +0 -0
  180. /package/dist/{chunk-CSYN5J44.js.map → chunk-NRYO7FMY.js.map} +0 -0
  181. /package/dist/{chunk-57AYOGMA.js.map → chunk-OD5GCLP6.js.map} +0 -0
  182. /package/dist/{chunk-C57J5C7S.js.map → chunk-OYZDZI6A.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/zeed/zeed/dist/chunk-WVAFGHBS.cjs","../src/common/msg/pubsub.ts"],"names":[],"mappings":"AAAA;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACA;ACEO,IAAM,OAAA,EAAN,MAAA,QAAuE,0BAAW;AAAA,EAWvF,WAAA,CAAY,GAAA,EAAmB;AAC7B,IAAA,KAAA,CAAM,CAAA;AA6DR,IAAA,IAAA,CAAA,QAAA,EAAU,IAAA,CAAK,IAAA,CAAK,IAAA,CAAK,IAAI,CAAA;AAC7B,IAAA,IAAA,CAAA,UAAA,EAAY,IAAA,CAAK,EAAA,CAAG,IAAA,CAAK,IAAI,CAAA;AA5D3B,IAAA,MAAM,EAAE,IAAA,EAAM,QAAA,EAAU,IAAI,kCAAA,CAAY,CAAA,EAAG,OAAA,EAAS,MAAA,EAAQ,MAAM,EAAA,EAAI,GAAA;AAEtE,IAAA,IAAA,CAAK,QAAA,EAAU,OAAA;AACf,IAAA,IAAA,CAAK,QAAA,EAAU,OAAA;AACf,IAAA,IAAA,CAAK,MAAA,EAAQ,KAAA;AAEb,IAAA,IAAA,CAAK,KAAA,oCAAO,IAAA,UAAQ,IAAA,CAAK,OAAA,CAAQ,IAAA,UAAM,qCAAA,QAAc,GAAA;AACrD,IAAA,IAAA,CAAK,IAAA,EAAM,6CAAA,CAAc,EAAA;AAET,IAAA;AACE,MAAA;AACL,QAAA;AACV,MAAA;AACe,MAAA;AACL,QAAA;AACV,MAAA;AACH,IAAA;AAEgB,IAAA;AACU,MAAA;AACf,MAAA;AACE,QAAA;AACG,MAAA;AACJ,MAAA;AACY,QAAA;AACC,QAAA;AACvB,MAAA;AACD,IAAA;AACH,EAAA;AAnCc,EAAA;AACY,IAAA;AAC1B,EAAA;AAqCK,EAAA;AAEqB,IAAA;AAC1B,EAAA;AAKoB,EAAA;AACd,IAAA;AACO,MAAA;AACU,QAAA;AACG,MAAA;AACJ,MAAA;AACF,QAAA;AACP,QAAA;AACT,MAAA;AACwB,MAAA;AACX,MAAA;AACN,MAAA;AAEG,IAAA;AACY,MAAA;AACxB,IAAA;AACO,IAAA;AACT,EAAA;AAIF;AAIE;AACwB,EAAA;AAC1B;ADzB8B;AACA;AACA;AACA;AACA","file":"/home/runner/work/zeed/zeed/dist/chunk-WVAFGHBS.cjs","sourcesContent":[null,"import type { Channel } from './channel'\nimport type { DefaultListener, ListenerSignature } from './emitter'\nimport type { Encoder } from './encoder'\nimport { DefaultLogger } from '../log/log'\nimport { uname } from '../uuid'\nimport { Emitter } from './emitter'\nimport { JsonEncoder } from './encoder'\n\ninterface PubSubConfig {\n channel: Channel\n encoder?: Encoder\n name?: string\n debug?: boolean\n}\n\nexport class PubSub<L extends ListenerSignature<L> = DefaultListener> extends Emitter<L> {\n name: string\n channel: Channel\n encoder: Encoder\n log: any\n debug: boolean\n\n get shortId() {\n return this.name.substr(0, 6)\n }\n\n constructor(opt: PubSubConfig) {\n super()\n\n const { name, encoder = new JsonEncoder(), channel, debug = false } = opt\n\n this.channel = channel\n this.encoder = encoder\n this.debug = debug\n\n this.name = name ?? this.channel.id ?? uname('pubsub')\n this.log = DefaultLogger(`${this.shortId}`)\n\n if (this.debug) {\n this.channel.on('connect', () => {\n this.log('channel connected')\n })\n this.channel.on('disconnect', () => {\n this.log('channel disconnected')\n })\n }\n\n this.channel.on('message', async ({ data }) => {\n const info = await this.encoder.decode(data)\n if (this.debug)\n this.log(`channel message, event=${info?.event}, info=`, info)\n else this.log(`channel message, event=${info?.event}`)\n if (info) {\n const { event, args } = info\n await this.emitSuper(event, ...args)\n }\n })\n }\n\n private async emitSuper<U extends keyof L>(\n event: U,\n ...args: Parameters<L[U]>\n ): Promise<boolean> {\n return await super.emit(event, ...args)\n }\n\n async emit<U extends keyof L>(\n event: U,\n ...args: Parameters<L[U]>\n ): Promise<boolean> {\n try {\n if (this.debug)\n this.log(`emit(${String(event)})`, event)\n else this.log(`emit(${String(event)})`, args.length)\n if (!this.channel.isConnected) {\n this.log.warn('channel not connected')\n return false\n }\n const data = await this.encoder.encode({ event, args })\n this.channel.postMessage(data)\n return true\n }\n catch (err) {\n this.log.warn(`emit(${String(event)})`, err)\n }\n return false\n }\n\n publish = this.emit.bind(this)\n subscribe = this.on.bind(this)\n}\n\nexport function usePubSub<L extends ListenerSignature<L> = DefaultListener>(\n opt: PubSubConfig,\n) {\n return new PubSub<L>(opt)\n}\n"]}
1
+ {"version":3,"sources":["/home/runner/work/zeed/zeed/dist/chunk-ANH22HI4.cjs","../src/common/msg/pubsub.ts"],"names":[],"mappings":"AAAA;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACA;ACEO,IAAM,OAAA,EAAN,MAAA,QAAuE,0BAAW;AAAA,EAWvF,WAAA,CAAY,GAAA,EAAmB;AAC7B,IAAA,KAAA,CAAM,CAAA;AA6DR,IAAA,IAAA,CAAA,QAAA,EAAU,IAAA,CAAK,IAAA,CAAK,IAAA,CAAK,IAAI,CAAA;AAC7B,IAAA,IAAA,CAAA,UAAA,EAAY,IAAA,CAAK,EAAA,CAAG,IAAA,CAAK,IAAI,CAAA;AA5D3B,IAAA,MAAM,EAAE,IAAA,EAAM,QAAA,EAAU,IAAI,kCAAA,CAAY,CAAA,EAAG,OAAA,EAAS,MAAA,EAAQ,MAAM,EAAA,EAAI,GAAA;AAEtE,IAAA,IAAA,CAAK,QAAA,EAAU,OAAA;AACf,IAAA,IAAA,CAAK,QAAA,EAAU,OAAA;AACf,IAAA,IAAA,CAAK,MAAA,EAAQ,KAAA;AAEb,IAAA,IAAA,CAAK,KAAA,oCAAO,IAAA,UAAQ,IAAA,CAAK,OAAA,CAAQ,IAAA,UAAM,qCAAA,QAAc,GAAA;AACrD,IAAA,IAAA,CAAK,IAAA,EAAM,6CAAA,CAAc,EAAA;AAET,IAAA;AACE,MAAA;AACL,QAAA;AACV,MAAA;AACe,MAAA;AACL,QAAA;AACV,MAAA;AACH,IAAA;AAEgB,IAAA;AACU,MAAA;AACf,MAAA;AACE,QAAA;AACG,MAAA;AACJ,MAAA;AACY,QAAA;AACC,QAAA;AACvB,MAAA;AACD,IAAA;AACH,EAAA;AAnCc,EAAA;AACY,IAAA;AAC1B,EAAA;AAqCK,EAAA;AAEqB,IAAA;AAC1B,EAAA;AAKoB,EAAA;AACd,IAAA;AACO,MAAA;AACU,QAAA;AACG,MAAA;AACJ,MAAA;AACF,QAAA;AACP,QAAA;AACT,MAAA;AACwB,MAAA;AACX,MAAA;AACN,MAAA;AAEG,IAAA;AACY,MAAA;AACxB,IAAA;AACO,IAAA;AACT,EAAA;AAIF;AAIE;AACwB,EAAA;AAC1B;ADzB8B;AACA;AACA;AACA;AACA","file":"/home/runner/work/zeed/zeed/dist/chunk-ANH22HI4.cjs","sourcesContent":[null,"import type { Channel } from './channel'\nimport type { DefaultListener, ListenerSignature } from './emitter'\nimport type { Encoder } from './encoder'\nimport { DefaultLogger } from '../log/log'\nimport { uname } from '../uuid'\nimport { Emitter } from './emitter'\nimport { JsonEncoder } from './encoder'\n\ninterface PubSubConfig {\n channel: Channel\n encoder?: Encoder\n name?: string\n debug?: boolean\n}\n\nexport class PubSub<L extends ListenerSignature<L> = DefaultListener> extends Emitter<L> {\n name: string\n channel: Channel\n encoder: Encoder\n log: any\n debug: boolean\n\n get shortId() {\n return this.name.substr(0, 6)\n }\n\n constructor(opt: PubSubConfig) {\n super()\n\n const { name, encoder = new JsonEncoder(), channel, debug = false } = opt\n\n this.channel = channel\n this.encoder = encoder\n this.debug = debug\n\n this.name = name ?? this.channel.id ?? uname('pubsub')\n this.log = DefaultLogger(`${this.shortId}`)\n\n if (this.debug) {\n this.channel.on('connect', () => {\n this.log('channel connected')\n })\n this.channel.on('disconnect', () => {\n this.log('channel disconnected')\n })\n }\n\n this.channel.on('message', async ({ data }) => {\n const info = await this.encoder.decode(data)\n if (this.debug)\n this.log(`channel message, event=${info?.event}, info=`, info)\n else this.log(`channel message, event=${info?.event}`)\n if (info) {\n const { event, args } = info\n await this.emitSuper(event, ...args)\n }\n })\n }\n\n private async emitSuper<U extends keyof L>(\n event: U,\n ...args: Parameters<L[U]>\n ): Promise<boolean> {\n return await super.emit(event, ...args)\n }\n\n async emit<U extends keyof L>(\n event: U,\n ...args: Parameters<L[U]>\n ): Promise<boolean> {\n try {\n if (this.debug)\n this.log(`emit(${String(event)})`, event)\n else this.log(`emit(${String(event)})`, args.length)\n if (!this.channel.isConnected) {\n this.log.warn('channel not connected')\n return false\n }\n const data = await this.encoder.encode({ event, args })\n this.channel.postMessage(data)\n return true\n }\n catch (err) {\n this.log.warn(`emit(${String(event)})`, err)\n }\n return false\n }\n\n publish = this.emit.bind(this)\n subscribe = this.on.bind(this)\n}\n\nexport function usePubSub<L extends ListenerSignature<L> = DefaultListener>(\n opt: PubSubConfig,\n) {\n return new PubSub<L>(opt)\n}\n"]}
@@ -7,7 +7,7 @@ import {
7
7
  import {
8
8
  formatMilliseconds,
9
9
  getTimestamp
10
- } from "./chunk-QV2QPYMW.js";
10
+ } from "./chunk-NNCJ3QL5.js";
11
11
  import {
12
12
  getGlobalConsole
13
13
  } from "./chunk-MIZOLME5.js";
@@ -102,4 +102,4 @@ function LoggerBrowserHandler(opt = {}) {
102
102
  export {
103
103
  LoggerBrowserHandler
104
104
  };
105
- //# sourceMappingURL=chunk-SCQIUUXO.js.map
105
+ //# sourceMappingURL=chunk-ARGGC4S7.js.map
@@ -1,13 +1,13 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
2
2
 
3
- var _chunkQP3M4SXGcjs = require('./chunk-QP3M4SXG.cjs');
3
+ var _chunkHWQNPGWUcjs = require('./chunk-HWQNPGWU.cjs');
4
4
 
5
5
 
6
6
  var _chunk34HB56WEcjs = require('./chunk-34HB56WE.cjs');
7
7
 
8
8
 
9
9
 
10
- var _chunkFLUN46S4cjs = require('./chunk-FLUN46S4.cjs');
10
+ var _chunkBCX254SLcjs = require('./chunk-BCX254SL.cjs');
11
11
 
12
12
 
13
13
  var _chunk64ZMDALJcjs = require('./chunk-64ZMDALJ.cjs');
@@ -19,13 +19,13 @@ var _chunkN5KTMDVOcjs = require('./chunk-N5KTMDVO.cjs');
19
19
  function usePool(config = {}) {
20
20
  const {
21
21
  maxParallel = 3,
22
- name = _chunkFLUN46S4cjs.uname.call(void 0, "pool"),
22
+ name = _chunkBCX254SLcjs.uname.call(void 0, "pool"),
23
23
  idConflictResolution = "memoize"
24
24
  } = config;
25
25
  const events = new (0, _chunk34HB56WEcjs.Emitter)();
26
26
  const dispose = _chunk64ZMDALJcjs.useDispose.call(void 0, );
27
27
  dispose.add(cancelAll);
28
- const progress = new (0, _chunkQP3M4SXGcjs.Progress)({ name });
28
+ const progress = new (0, _chunkHWQNPGWUcjs.Progress)({ name });
29
29
  progress.on("progressCancelled", cancelAll);
30
30
  let countMax = 0;
31
31
  let countResolved = 0;
@@ -138,7 +138,7 @@ function usePool(config = {}) {
138
138
  function enqueue(task, config2 = {}) {
139
139
  let done;
140
140
  const promise = new Promise((resolve) => done = resolve);
141
- const id = _nullishCoalesce(config2.id, () => ( _chunkFLUN46S4cjs.uuid.call(void 0, )));
141
+ const id = _nullishCoalesce(config2.id, () => ( _chunkBCX254SLcjs.uuid.call(void 0, )));
142
142
  if (tasks[id] != null) {
143
143
  const resolution = _nullishCoalesce(config2.idConflictResolution, () => ( idConflictResolution));
144
144
  if (resolution === "replace") {
@@ -160,7 +160,7 @@ function usePool(config = {}) {
160
160
  throw new Error(`Pool task with id=${id} already exists!`);
161
161
  }
162
162
  }
163
- const taskProgress = new (0, _chunkQP3M4SXGcjs.Progress)({
163
+ const taskProgress = new (0, _chunkHWQNPGWUcjs.Progress)({
164
164
  name: id,
165
165
  totalUnits: _nullishCoalesce(config2.max, () => ( 1)),
166
166
  completeUnits: _nullishCoalesce(config2.resolved, () => ( 0))
@@ -220,4 +220,4 @@ function usePool(config = {}) {
220
220
 
221
221
 
222
222
  exports.usePool = usePool;
223
- //# sourceMappingURL=chunk-SIJXIZ4J.cjs.map
223
+ //# sourceMappingURL=chunk-AW6BPYNX.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/zeed/zeed/dist/chunk-SIJXIZ4J.cjs","../src/common/exec/pool.ts"],"names":["config"],"mappings":"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","file":"/home/runner/work/zeed/zeed/dist/chunk-SIJXIZ4J.cjs","sourcesContent":[null,"import { useDispose } from '../dispose-defer'\nimport { Emitter } from '../msg/emitter'\nimport { uname, uuid } from '../uuid'\nimport { Progress } from './progress'\nimport { createPromise } from './promise'\n\nexport type PoolTaskIdConflictResolution = 'replace' | 'memoize' | 'prioritize' | 'error'\n\n// export enum PoolTaskIdConflictResolution {\n// /**\n// * Tasks with same `id` are replaced. Newest wins.\n// */\n// replace = 0,\n\n// /**\n// * Task with same `id` will continue to run. Reference is returned with option to cancel.\n// * Named \"memoize\" because the result of the task should always be the same for the same `id`,\n// * like e.g. a download.\n// */\n// memoize = 1,\n\n// /** Like memoize, but try to put on top of the list */\n// prioritize = 2,\n\n// /**\n// * Tasks with same `id` throw error\n// */\n// error = 3,\n\n// }\n\nexport interface PoolConfig {\n name?: string\n maxParallel?: number\n idConflictResolution?: PoolTaskIdConflictResolution\n}\n\nexport type PoolTaskFn<T = any> = (taskInfo: PoolTask<T>) => Promise<T>\n\nexport type PoolTaskState = 'waiting' | 'running' | 'finished'\n\n/** Task */\nexport interface PoolTask<T> {\n readonly id: string\n readonly task: PoolTaskFn<T>\n readonly done: (result?: any) => void\n readonly setMax: (max: number) => void\n readonly setResolved: (resolved: number) => void\n readonly incResolved: (inc?: number) => void\n state: PoolTaskState\n priority: number\n /** Same groups are executed only one at a time */\n group?: string\n\n progress: Progress\n max: number\n resolved: number\n\n result?: T\n payload?: unknown\n}\n\nexport interface PoolTaskEvents {\n didUpdate: (\n max: number,\n resolved: number,\n presentMax: number,\n presentResolved: number\n ) => void\n didStart: (id: string) => void\n didCancel: (id: string) => void\n didFinish: () => void\n didResolve: (id: string, value: any) => void\n didReject: (id: string, error: any) => void\n}\n\n// todo: barrier\n// todo: dependents\n\nexport function usePool<T = any>(config: PoolConfig = {}) {\n const {\n maxParallel = 3,\n name = uname('pool'),\n idConflictResolution = 'memoize',\n } = config\n\n const events = new Emitter<PoolTaskEvents>()\n\n const dispose = useDispose()\n dispose.add(cancelAll)\n\n const progress = new Progress({ name })\n\n progress.on('progressCancelled', cancelAll)\n\n let countMax = 0\n let countResolved = 0\n let currentParallel = 0\n let priority = 0\n const tasks: Record<string, PoolTask<T>> = {}\n\n // const [allFinishedPromise, allFinishedResolve] = createPromise()\n\n async function waitFinishAll() {\n if (countMax > 0) {\n const [promise, resolve] = createPromise()\n events.once('didFinish', resolve)\n return promise\n }\n }\n\n async function cleanupFinished() {\n for (const id of Object.keys(tasks)) {\n const task = tasks[id]\n if (task.state === 'finished') {\n await tasks[id].progress.dispose()\n delete tasks[id]\n }\n }\n }\n\n function didFinish() {\n void events.emit('didFinish')\n // allFinishedResolve(countMax)\n countMax = 0\n countResolved = 0\n void cleanupFinished()\n progress.reset()\n }\n\n function didUpdate() {\n let presentMax = 0\n let presentResolved = 0\n for (const { max, resolved, state } of Object.values(tasks)) {\n presentMax += max\n presentResolved += state === 'finished' ? max : Math.min(max, resolved)\n }\n void events.emit(\n 'didUpdate',\n countMax,\n countResolved,\n presentMax,\n presentResolved,\n )\n }\n\n function performNext() {\n didUpdate()\n if (countMax > 0 && countMax === countResolved)\n didFinish()\n if (currentParallel >= maxParallel)\n return\n const waitingTasks = Object.values(tasks).filter(\n t => t.state === 'waiting',\n )\n if (waitingTasks.length > 0) {\n let taskInfo: PoolTask<T> | undefined\n for (const t of waitingTasks) {\n // Skip task if one of same group is running.\n // Forces serialized execution for subgroup of tasks.\n if (\n t.group != null\n && Object.values(tasks).some(\n tt =>\n tt.state === 'running'\n && tt.id !== t.id\n && tt.group === t.group,\n )\n ) {\n continue\n }\n\n // fifo\n if (taskInfo == null || t.priority < taskInfo.priority)\n taskInfo = t\n }\n if (taskInfo != null) {\n const id = taskInfo.id\n const done = taskInfo.done\n taskInfo.state = 'running'\n ++currentParallel\n void events.emit('didStart', id)\n\n const taskFinished = (result?: T) => {\n if (taskInfo) {\n taskInfo.result = result\n taskInfo.state = 'finished'\n taskInfo.resolved = taskInfo.max\n taskInfo.progress?.setCompleted()\n // void taskInfo.progress.dispose()\n }\n --currentParallel\n ++countResolved\n performNext()\n }\n\n taskInfo\n .task(taskInfo)\n .then((r) => {\n done(r)\n void events.emit('didResolve', id, r)\n taskFinished(r)\n })\n .catch((err) => {\n done()\n void events.emit('didReject', id, err)\n taskFinished()\n })\n }\n }\n }\n\n function cancel(id: string) {\n const taskInfo = tasks[id]\n if (taskInfo && taskInfo.state === 'waiting') {\n tasks[id].state = 'finished'\n ++countResolved\n void events.emit('didCancel', id)\n void tasks[id].progress.dispose()\n didUpdate()\n }\n }\n\n function cancelAll() {\n Object.keys(tasks).forEach(cancel)\n // progress.dispose()\n }\n\n function hasById(id: string) {\n return tasks[id] != null\n }\n\n function enqueue<P>(\n task: PoolTaskFn<T>,\n config: {\n id?: string\n max?: number\n resolved?: number\n group?: string\n idConflictResolution?: PoolTaskIdConflictResolution\n payload?: P\n } = {},\n ) {\n let done: any\n const promise: Promise<any> = new Promise(resolve => (done = resolve))\n const id = config.id ?? uuid()\n\n if (tasks[id] != null) {\n const resolution = config.idConflictResolution ?? idConflictResolution\n\n if (resolution === 'replace') {\n cancel(id)\n }\n else if (resolution === 'memoize' || resolution === 'prioritize') {\n const runningTask = tasks[id]\n\n if (resolution === 'prioritize')\n runningTask.priority = ++priority\n\n return {\n id,\n promise: (async () => {\n if (runningTask.state === 'finished')\n return tasks[id].result\n\n // todo: wait for task to finish\n })(),\n dispose: () => cancel(id),\n cancel: () => cancel(id),\n }\n }\n else {\n throw new Error(`Pool task with id=${id} already exists!`)\n }\n }\n\n const taskProgress = new Progress({\n name: id,\n totalUnits: config.max ?? 1,\n completeUnits: config.resolved ?? 0,\n })\n\n progress.addChild(taskProgress)\n\n tasks[id] = {\n id,\n task,\n priority: ++priority,\n group: config.group,\n state: 'waiting',\n max: config.max ?? 1,\n resolved: config.resolved ?? 0,\n done,\n payload: config.payload,\n progress: taskProgress,\n\n /** @deprecated should use `.progress` */\n setMax(units) {\n taskProgress.setTotalUnits(units)\n tasks[id].max = units\n didUpdate()\n },\n\n /** @deprecated should use `.progress` */\n setResolved(units) {\n taskProgress.setCompletetedUnits(units)\n tasks[id].resolved = units\n didUpdate()\n },\n\n /** @deprecated should use `.progress` */\n incResolved(inc = 1) {\n taskProgress.incCompletedUnits(inc)\n tasks[id].resolved += inc\n didUpdate()\n },\n }\n ++countMax\n performNext()\n\n return {\n id,\n promise,\n dispose: () => cancel(id),\n cancel: () => cancel(id),\n }\n }\n\n return {\n events,\n cancel,\n cancelAll,\n hasById,\n progress,\n enqueue,\n dispose,\n waitFinishAll,\n }\n}\n"]}
1
+ {"version":3,"sources":["/home/runner/work/zeed/zeed/dist/chunk-AW6BPYNX.cjs","../src/common/exec/pool.ts"],"names":["config"],"mappings":"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","file":"/home/runner/work/zeed/zeed/dist/chunk-AW6BPYNX.cjs","sourcesContent":[null,"import { useDispose } from '../dispose-defer'\nimport { Emitter } from '../msg/emitter'\nimport { uname, uuid } from '../uuid'\nimport { Progress } from './progress'\nimport { createPromise } from './promise'\n\nexport type PoolTaskIdConflictResolution = 'replace' | 'memoize' | 'prioritize' | 'error'\n\n// export enum PoolTaskIdConflictResolution {\n// /**\n// * Tasks with same `id` are replaced. Newest wins.\n// */\n// replace = 0,\n\n// /**\n// * Task with same `id` will continue to run. Reference is returned with option to cancel.\n// * Named \"memoize\" because the result of the task should always be the same for the same `id`,\n// * like e.g. a download.\n// */\n// memoize = 1,\n\n// /** Like memoize, but try to put on top of the list */\n// prioritize = 2,\n\n// /**\n// * Tasks with same `id` throw error\n// */\n// error = 3,\n\n// }\n\nexport interface PoolConfig {\n name?: string\n maxParallel?: number\n idConflictResolution?: PoolTaskIdConflictResolution\n}\n\nexport type PoolTaskFn<T = any> = (taskInfo: PoolTask<T>) => Promise<T>\n\nexport type PoolTaskState = 'waiting' | 'running' | 'finished'\n\n/** Task */\nexport interface PoolTask<T> {\n readonly id: string\n readonly task: PoolTaskFn<T>\n readonly done: (result?: any) => void\n readonly setMax: (max: number) => void\n readonly setResolved: (resolved: number) => void\n readonly incResolved: (inc?: number) => void\n state: PoolTaskState\n priority: number\n /** Same groups are executed only one at a time */\n group?: string\n\n progress: Progress\n max: number\n resolved: number\n\n result?: T\n payload?: unknown\n}\n\nexport interface PoolTaskEvents {\n didUpdate: (\n max: number,\n resolved: number,\n presentMax: number,\n presentResolved: number\n ) => void\n didStart: (id: string) => void\n didCancel: (id: string) => void\n didFinish: () => void\n didResolve: (id: string, value: any) => void\n didReject: (id: string, error: any) => void\n}\n\n// todo: barrier\n// todo: dependents\n\nexport function usePool<T = any>(config: PoolConfig = {}) {\n const {\n maxParallel = 3,\n name = uname('pool'),\n idConflictResolution = 'memoize',\n } = config\n\n const events = new Emitter<PoolTaskEvents>()\n\n const dispose = useDispose()\n dispose.add(cancelAll)\n\n const progress = new Progress({ name })\n\n progress.on('progressCancelled', cancelAll)\n\n let countMax = 0\n let countResolved = 0\n let currentParallel = 0\n let priority = 0\n const tasks: Record<string, PoolTask<T>> = {}\n\n // const [allFinishedPromise, allFinishedResolve] = createPromise()\n\n async function waitFinishAll() {\n if (countMax > 0) {\n const [promise, resolve] = createPromise()\n events.once('didFinish', resolve)\n return promise\n }\n }\n\n async function cleanupFinished() {\n for (const id of Object.keys(tasks)) {\n const task = tasks[id]\n if (task.state === 'finished') {\n await tasks[id].progress.dispose()\n delete tasks[id]\n }\n }\n }\n\n function didFinish() {\n void events.emit('didFinish')\n // allFinishedResolve(countMax)\n countMax = 0\n countResolved = 0\n void cleanupFinished()\n progress.reset()\n }\n\n function didUpdate() {\n let presentMax = 0\n let presentResolved = 0\n for (const { max, resolved, state } of Object.values(tasks)) {\n presentMax += max\n presentResolved += state === 'finished' ? max : Math.min(max, resolved)\n }\n void events.emit(\n 'didUpdate',\n countMax,\n countResolved,\n presentMax,\n presentResolved,\n )\n }\n\n function performNext() {\n didUpdate()\n if (countMax > 0 && countMax === countResolved)\n didFinish()\n if (currentParallel >= maxParallel)\n return\n const waitingTasks = Object.values(tasks).filter(\n t => t.state === 'waiting',\n )\n if (waitingTasks.length > 0) {\n let taskInfo: PoolTask<T> | undefined\n for (const t of waitingTasks) {\n // Skip task if one of same group is running.\n // Forces serialized execution for subgroup of tasks.\n if (\n t.group != null\n && Object.values(tasks).some(\n tt =>\n tt.state === 'running'\n && tt.id !== t.id\n && tt.group === t.group,\n )\n ) {\n continue\n }\n\n // fifo\n if (taskInfo == null || t.priority < taskInfo.priority)\n taskInfo = t\n }\n if (taskInfo != null) {\n const id = taskInfo.id\n const done = taskInfo.done\n taskInfo.state = 'running'\n ++currentParallel\n void events.emit('didStart', id)\n\n const taskFinished = (result?: T) => {\n if (taskInfo) {\n taskInfo.result = result\n taskInfo.state = 'finished'\n taskInfo.resolved = taskInfo.max\n taskInfo.progress?.setCompleted()\n // void taskInfo.progress.dispose()\n }\n --currentParallel\n ++countResolved\n performNext()\n }\n\n taskInfo\n .task(taskInfo)\n .then((r) => {\n done(r)\n void events.emit('didResolve', id, r)\n taskFinished(r)\n })\n .catch((err) => {\n done()\n void events.emit('didReject', id, err)\n taskFinished()\n })\n }\n }\n }\n\n function cancel(id: string) {\n const taskInfo = tasks[id]\n if (taskInfo && taskInfo.state === 'waiting') {\n tasks[id].state = 'finished'\n ++countResolved\n void events.emit('didCancel', id)\n void tasks[id].progress.dispose()\n didUpdate()\n }\n }\n\n function cancelAll() {\n Object.keys(tasks).forEach(cancel)\n // progress.dispose()\n }\n\n function hasById(id: string) {\n return tasks[id] != null\n }\n\n function enqueue<P>(\n task: PoolTaskFn<T>,\n config: {\n id?: string\n max?: number\n resolved?: number\n group?: string\n idConflictResolution?: PoolTaskIdConflictResolution\n payload?: P\n } = {},\n ) {\n let done: any\n const promise: Promise<any> = new Promise(resolve => (done = resolve))\n const id = config.id ?? uuid()\n\n if (tasks[id] != null) {\n const resolution = config.idConflictResolution ?? idConflictResolution\n\n if (resolution === 'replace') {\n cancel(id)\n }\n else if (resolution === 'memoize' || resolution === 'prioritize') {\n const runningTask = tasks[id]\n\n if (resolution === 'prioritize')\n runningTask.priority = ++priority\n\n return {\n id,\n promise: (async () => {\n if (runningTask.state === 'finished')\n return tasks[id].result\n\n // todo: wait for task to finish\n })(),\n dispose: () => cancel(id),\n cancel: () => cancel(id),\n }\n }\n else {\n throw new Error(`Pool task with id=${id} already exists!`)\n }\n }\n\n const taskProgress = new Progress({\n name: id,\n totalUnits: config.max ?? 1,\n completeUnits: config.resolved ?? 0,\n })\n\n progress.addChild(taskProgress)\n\n tasks[id] = {\n id,\n task,\n priority: ++priority,\n group: config.group,\n state: 'waiting',\n max: config.max ?? 1,\n resolved: config.resolved ?? 0,\n done,\n payload: config.payload,\n progress: taskProgress,\n\n /** @deprecated should use `.progress` */\n setMax(units) {\n taskProgress.setTotalUnits(units)\n tasks[id].max = units\n didUpdate()\n },\n\n /** @deprecated should use `.progress` */\n setResolved(units) {\n taskProgress.setCompletetedUnits(units)\n tasks[id].resolved = units\n didUpdate()\n },\n\n /** @deprecated should use `.progress` */\n incResolved(inc = 1) {\n taskProgress.incCompletedUnits(inc)\n tasks[id].resolved += inc\n didUpdate()\n },\n }\n ++countMax\n performNext()\n\n return {\n id,\n promise,\n dispose: () => cancel(id),\n cancel: () => cancel(id),\n }\n }\n\n return {\n events,\n cancel,\n cancelAll,\n hasById,\n progress,\n enqueue,\n dispose,\n waitFinishAll,\n }\n}\n"]}
@@ -15,7 +15,7 @@ var _chunkS4V3EGNScjs = require('./chunk-S4V3EGNS.cjs');
15
15
  var _chunkHHZVPIBDcjs = require('./chunk-HHZVPIBD.cjs');
16
16
 
17
17
 
18
- var _chunkSX5YQHZOcjs = require('./chunk-SX5YQHZO.cjs');
18
+ var _chunk33B2TEAZcjs = require('./chunk-33B2TEAZ.cjs');
19
19
 
20
20
  // src/common/uuid.ts
21
21
  var uuidBytesLength = 16;
@@ -63,7 +63,7 @@ function longToByteArray(long) {
63
63
  return byteArray;
64
64
  }
65
65
  function suidBytes() {
66
- const ms = _chunkSX5YQHZOcjs.getTimestamp.call(void 0, ) - ReferenceDateInMS;
66
+ const ms = _chunk33B2TEAZcjs.getTimestamp.call(void 0, ) - ReferenceDateInMS;
67
67
  return new Uint8Array([...longToByteArray(ms), ..._chunkS4V3EGNScjs.randomUint8Array.call(void 0, 10)]);
68
68
  }
69
69
  function suid() {
@@ -166,4 +166,4 @@ function qid() {
166
166
 
167
167
 
168
168
  exports.uuidBytes = uuidBytes; exports.uuidB62 = uuidB62; exports.uuidEncodeB62 = uuidEncodeB62; exports.uuidDecodeB62 = uuidDecodeB62; exports.uuidB32 = uuidB32; exports.uuidEncodeB32 = uuidEncodeB32; exports.uuidDecodeB32 = uuidDecodeB32; exports.uuidv4 = uuidv4; exports.uuidEncodeV4 = uuidEncodeV4; exports.uuidDecodeV4 = uuidDecodeV4; exports.suidBytes = suidBytes; exports.suid = suid; exports.suidDate = suidDate; exports.suidBytesDate = suidBytesDate; exports.uuid32bit = uuid32bit; exports.setUuidDefaultEncoding = setUuidDefaultEncoding; exports.uuid = uuid; exports.uuidDecode = uuidDecode; exports.uuidEncode = uuidEncode; exports.uuidIsValid = uuidIsValid; exports.uname = uname; exports.unameReset = unameReset; exports.qid = qid;
169
- //# sourceMappingURL=chunk-FLUN46S4.cjs.map
169
+ //# sourceMappingURL=chunk-BCX254SL.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/zeed/zeed/dist/chunk-FLUN46S4.cjs","../src/common/uuid.ts"],"names":["uuid"],"mappings":"AAAA;AACE;AACA;AACA;AACA;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACA;AACA;AACA;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACA;ACZA,IAAM,gBAAA,EAAkB,EAAA;AAEjB,SAAS,SAAA,CAAA,EAAwB;AACtC,EAAA,OAAO,gDAAA,eAAgC,CAAA;AACzC;AAIO,SAAS,OAAA,CAAQ,MAAA,EAAQ,SAAA,CAAU,CAAA,EAAW;AACnD,EAAA,OAAO,4CAAA,KAAa,EAAO,EAAE,CAAA;AAC/B;AAEO,SAAS,aAAA,CAAc,KAAA,EAA2B;AACvD,EAAA,OAAO,4CAAA,KAAa,EAAO,EAAE,CAAA;AAC/B;AAEO,SAAS,aAAA,CAAcA,KAAAA,EAA0B;AACtD,EAAA,OAAO,4CAAA,KAAaA,EAAM,eAAe,CAAA;AAC3C;AAIO,SAAS,OAAA,CAAQ,MAAA,EAAQ,SAAA,CAAU,CAAA,EAAW;AACnD,EAAA,OAAO,4CAAA,KAAa,EAAO,EAAE,CAAA;AAC/B;AAEO,SAAS,aAAA,CAAc,KAAA,EAA2B;AACvD,EAAA,OAAO,4CAAA,KAAa,EAAO,EAAE,CAAA;AAC/B;AAEO,SAAS,aAAA,CAAcA,KAAAA,EAA0B;AACtD,EAAA,OAAO,4CAAA,KAAaA,EAAM,eAAe,CAAA;AAC3C;AAKA,IAAM,QAAA,EAAU,sCAAA;AAET,IAAM,OAAA,EAAS,QAAA,CAAA,EAAY;AAChC,EAAA,OAAQ,OAAO,OAAA,IAAW,YAAA,GAAe,MAAA,CAAO,WAAA,GAAc,KAAA,EAC1D,MAAA,CAAO,UAAA,CAAW,EAAA,EAClB,OAAA,CAAQ,OAAA,CAAQ,QAAA,EAAU,CAAC,CAAA,EAAA,GAAA,CAAY,EAAA,EAAK,gDAAA,CAAkB,CAAA,CAAE,CAAC,EAAA,EAAK,GAAA,GAAO,EAAA,EAAI,CAAA,CAAA,CAAM,QAAA,CAAS,EAAE,CAAC,CAAA;AACzG,CAAA;AAEO,SAAS,YAAA,CAAa,KAAA,EAA2B;AACtD,EAAA,MAAM,GAAA,EAAK,qCAAA,KAAW,CAAA;AACtB,EAAA,OAAO,CAAA,EAAA;AACT;AAEgB;AACP,EAAA;AACT;AAgBM;AAIG;AACD,EAAA;AACA,EAAA;AACN,EAAA;AACQ,IAAA;AACN,IAAA;AACA,IAAA;AACF,EAAA;AACO,EAAA;AACT;AAUgB;AACR,EAAA;AACC,EAAA;AACT;AAEgB;AACP,EAAA;AACT;AAEgB;AACP,EAAA;AACT;AAEgB;AACP,EAAA;AACL,IAAA;AACF,EAAA;AACF;AAIgB;AACP,EAAA;AACT;AAIM;AACI,EAAA;AACA,IAAA;AACN,IAAA;AACA,IAAA;AACF,EAAA;AACQ,EAAA;AACA,IAAA;AACN,IAAA;AACA,IAAA;AACF,EAAA;AACQ,EAAA;AACA,IAAA;AACN,IAAA;AACA,IAAA;AACF,EAAA;AACM,EAAA;AACE,IAAA;AACN,IAAA;AACA,IAAA;AACF,EAAA;AACF;AAEI;AACA;AAEY;AACV,EAAA;AACF,IAAA;AAEM,EAAA;AACR,EAAA;AACF;AAEgB;AACP,EAAA;AACT;AAEgB;AACP,EAAA;AACT;AAEgB;AACP,EAAA;AACT;AAEgB;AACV,EAAA;AACI,IAAA;AACN,IAAA;AACF,EAAA;AAGA,EAAA;AACO,EAAA;AACT;AAIM;AAEU;AACV,EAAA;AACF,IAAA;AAEK,EAAA;AACT;AAEgB;AACd,EAAA;AACF;AAEI;AAEY;AACP,EAAA;AACT;AD3DU;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"/home/runner/work/zeed/zeed/dist/chunk-FLUN46S4.cjs","sourcesContent":[null,"import { randomUint8Array } from './crypto'\nimport { decodeBase32, decodeBase62, encodeBase32, encodeBase62 } from './data/basex'\nimport { fromHex, toHex, toUint8Array, Uint8ArrayToString } from './data/bin'\nimport { getTimestamp } from './time'\n\n// 128 bit UUID\n\nconst uuidBytesLength = 16\n\nexport function uuidBytes(): Uint8Array {\n return randomUint8Array(uuidBytesLength)\n}\n\n// Base62\n\nexport function uuidB62(bytes = uuidBytes()): string {\n return encodeBase62(bytes, 22)\n}\n\nexport function uuidEncodeB62(bytes: Uint8Array): string {\n return encodeBase62(bytes, 22)\n}\n\nexport function uuidDecodeB62(uuid: string): Uint8Array {\n return decodeBase62(uuid, uuidBytesLength)\n}\n\n// Base32\n\nexport function uuidB32(bytes = uuidBytes()): string {\n return encodeBase32(bytes, 26)\n}\n\nexport function uuidEncodeB32(bytes: Uint8Array): string {\n return encodeBase32(bytes, 26)\n}\n\nexport function uuidDecodeB32(uuid: string): Uint8Array {\n return decodeBase32(uuid, uuidBytesLength)\n}\n\n// UUIDv4\n\n// https://stackoverflow.com/a/2117523/140927\nconst pattern = '10000000-1000-4000-8000-100000000000' // String([1e7] + -1e3 + -4e3 + -8e3 + -1e11)\n\nexport const uuidv4 = function () {\n return (typeof crypto !== 'undefined' && crypto.randomUUID != null)\n ? crypto.randomUUID() // native!\n : pattern.replace(/[018]/g, (c: any) => (c ^ (randomUint8Array(1)[0] & (15 >> (c / 4)))).toString(16))\n}\n\nexport function uuidEncodeV4(bytes: Uint8Array): string {\n const id = toHex(bytes)\n return `${id.slice(0, 8)}-${id.slice(8, 12)}-${id.slice(12, 16)}-${id.slice(16, 20)}-${id.slice(20)}` // 10000000 - 1000 - 4000 - 8000 - 100000000000\n}\n\nexport function uuidDecodeV4(uuid: string): Uint8Array {\n return fromHex(uuid.replaceAll('-', ''))\n}\n\n// Sortable UID\n\n// https://github.com/segmentio/ksuid\n// https://pkg.go.dev/github.com/rsms/go-uuid\n\n/**\n * Sortable unique ID\n * Inspired by https://github.com/rsms/go-uuid\n *\n * Bytes 0-5: Current time in miliseconds from 2021-06-01T00:00:00Z\n * Bytes 6-15: Random\n */\n\n// 1622505600000 // new Date('2021-06-01T00:00:00Z').getTime()\nconst ReferenceDateInMS = 1600000000000\n\n// 6 bytes will stay valid until end of time: new Date(1622505600000 + 0xffffffffffff) === Date Sun Jan 01 10941 06:31:50 GMT+0100 (Central European Standard Time)\n\nfunction longToByteArray(long: number) {\n const byteArray = new Uint8Array([0, 0, 0, 0, 0, 0])\n const bytes = byteArray.length - 1\n for (let index = 0; index < byteArray.length; index++) {\n const byte = long & 0xFF\n byteArray[bytes - index] = byte\n long = (long - byte) / 256\n }\n return byteArray\n}\n\n// function byteArrayToLong(byteArray: number[]): number {\n// var value = 0\n// for (var i = byteArray.length - 1; i >= 0; i--) {\n// value = value * 256 + byteArray[i]\n// }\n// return value\n// }\n\nexport function suidBytes(): Uint8Array {\n const ms = getTimestamp() - ReferenceDateInMS\n return new Uint8Array([...longToByteArray(ms), ...randomUint8Array(10)])\n}\n\nexport function suid(): string {\n return uuidEncode(suidBytes())\n}\n\nexport function suidDate(id: string): Date {\n return suidBytesDate(uuidDecode(id))\n}\n\nexport function suidBytesDate(id: Uint8Array): Date {\n return new Date(\n ReferenceDateInMS + id.slice(0, 6).reduce((acc, byte) => acc * 256 + byte, 0),\n )\n}\n\n// 32 bit UUID\n\nexport function uuid32bit(): number {\n return new Uint32Array(randomUint8Array(4))[0]\n}\n\n// Global Settings\n\nconst mapModes = {\n base62: {\n uuid: uuidB62,\n uuidDecode: uuidDecodeB62,\n uuidEncode: uuidEncodeB62,\n },\n base32: {\n uuid: uuidB32,\n uuidDecode: uuidDecodeB32,\n uuidEncode: uuidEncodeB32,\n },\n uuidv4: {\n uuid: uuidv4,\n uuidDecode: uuidDecodeV4,\n uuidEncode: uuidEncodeV4,\n },\n test: {\n uuid: () => uname('test'),\n uuidDecode: (id: string) => toUint8Array(id),\n uuidEncode: (bin: Uint8Array) => Uint8ArrayToString(bin),\n },\n}\n\nlet _mode: keyof typeof mapModes = 'base62'\nlet _sorted = false\n\nexport function setUuidDefaultEncoding(mode?: keyof typeof mapModes, sorted = false) {\n if (mode === 'test')\n unameReset('test')\n\n _mode = mode ?? 'base62'\n _sorted = sorted\n}\n\nexport function uuid(): string {\n return mapModes[_mode].uuid(_sorted ? suidBytes() : uuidBytes())\n}\n\nexport function uuidDecode(uuid: string): Uint8Array {\n return mapModes[_mode].uuidDecode(uuid)\n}\n\nexport function uuidEncode(bytes: Uint8Array): string {\n return mapModes[_mode].uuidEncode(bytes)\n}\n\nexport function uuidIsValid(uuid: string): boolean {\n try {\n const bin = uuidDecode(uuid)\n return bin.length === uuidBytesLength\n }\n catch (err) {\n // log.warn('Invalid ID:', uuid)\n }\n return false\n}\n\n// Simple Counters\n\nconst _unameCounters: Record<string, number> = {}\n\nexport function uname(name = 'id'): string {\n if (_unameCounters[name] == null)\n _unameCounters[name] = 0\n\n return `${name}-${_unameCounters[name]++}`\n}\n\nexport function unameReset(name = 'id') {\n _unameCounters[name] = 0\n}\n\nlet _qid = 0\n\nexport function qid(): string {\n return `id-${_qid++}`\n}\n"]}
1
+ {"version":3,"sources":["/home/runner/work/zeed/zeed/dist/chunk-BCX254SL.cjs","../src/common/uuid.ts"],"names":["uuid"],"mappings":"AAAA;AACE;AACA;AACA;AACA;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACA;AACA;AACA;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACA;ACZA,IAAM,gBAAA,EAAkB,EAAA;AAEjB,SAAS,SAAA,CAAA,EAAwB;AACtC,EAAA,OAAO,gDAAA,eAAgC,CAAA;AACzC;AAIO,SAAS,OAAA,CAAQ,MAAA,EAAQ,SAAA,CAAU,CAAA,EAAW;AACnD,EAAA,OAAO,4CAAA,KAAa,EAAO,EAAE,CAAA;AAC/B;AAEO,SAAS,aAAA,CAAc,KAAA,EAA2B;AACvD,EAAA,OAAO,4CAAA,KAAa,EAAO,EAAE,CAAA;AAC/B;AAEO,SAAS,aAAA,CAAcA,KAAAA,EAA0B;AACtD,EAAA,OAAO,4CAAA,KAAaA,EAAM,eAAe,CAAA;AAC3C;AAIO,SAAS,OAAA,CAAQ,MAAA,EAAQ,SAAA,CAAU,CAAA,EAAW;AACnD,EAAA,OAAO,4CAAA,KAAa,EAAO,EAAE,CAAA;AAC/B;AAEO,SAAS,aAAA,CAAc,KAAA,EAA2B;AACvD,EAAA,OAAO,4CAAA,KAAa,EAAO,EAAE,CAAA;AAC/B;AAEO,SAAS,aAAA,CAAcA,KAAAA,EAA0B;AACtD,EAAA,OAAO,4CAAA,KAAaA,EAAM,eAAe,CAAA;AAC3C;AAKA,IAAM,QAAA,EAAU,sCAAA;AAET,IAAM,OAAA,EAAS,QAAA,CAAA,EAAY;AAChC,EAAA,OAAQ,OAAO,OAAA,IAAW,YAAA,GAAe,MAAA,CAAO,WAAA,GAAc,KAAA,EAC1D,MAAA,CAAO,UAAA,CAAW,EAAA,EAClB,OAAA,CAAQ,OAAA,CAAQ,QAAA,EAAU,CAAC,CAAA,EAAA,GAAA,CAAY,EAAA,EAAK,gDAAA,CAAkB,CAAA,CAAE,CAAC,EAAA,EAAK,GAAA,GAAO,EAAA,EAAI,CAAA,CAAA,CAAM,QAAA,CAAS,EAAE,CAAC,CAAA;AACzG,CAAA;AAEO,SAAS,YAAA,CAAa,KAAA,EAA2B;AACtD,EAAA,MAAM,GAAA,EAAK,qCAAA,KAAW,CAAA;AACtB,EAAA,OAAO,CAAA,EAAA;AACT;AAEgB;AACP,EAAA;AACT;AAgBM;AAIG;AACD,EAAA;AACA,EAAA;AACN,EAAA;AACQ,IAAA;AACN,IAAA;AACA,IAAA;AACF,EAAA;AACO,EAAA;AACT;AAUgB;AACR,EAAA;AACC,EAAA;AACT;AAEgB;AACP,EAAA;AACT;AAEgB;AACP,EAAA;AACT;AAEgB;AACP,EAAA;AACL,IAAA;AACF,EAAA;AACF;AAIgB;AACP,EAAA;AACT;AAIM;AACI,EAAA;AACA,IAAA;AACN,IAAA;AACA,IAAA;AACF,EAAA;AACQ,EAAA;AACA,IAAA;AACN,IAAA;AACA,IAAA;AACF,EAAA;AACQ,EAAA;AACA,IAAA;AACN,IAAA;AACA,IAAA;AACF,EAAA;AACM,EAAA;AACE,IAAA;AACN,IAAA;AACA,IAAA;AACF,EAAA;AACF;AAEI;AACA;AAEY;AACV,EAAA;AACF,IAAA;AAEM,EAAA;AACR,EAAA;AACF;AAEgB;AACP,EAAA;AACT;AAEgB;AACP,EAAA;AACT;AAEgB;AACP,EAAA;AACT;AAEgB;AACV,EAAA;AACI,IAAA;AACN,IAAA;AACF,EAAA;AAGA,EAAA;AACO,EAAA;AACT;AAIM;AAEU;AACV,EAAA;AACF,IAAA;AAEK,EAAA;AACT;AAEgB;AACd,EAAA;AACF;AAEI;AAEY;AACP,EAAA;AACT;AD3DU;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"/home/runner/work/zeed/zeed/dist/chunk-BCX254SL.cjs","sourcesContent":[null,"import { randomUint8Array } from './crypto'\nimport { decodeBase32, decodeBase62, encodeBase32, encodeBase62 } from './data/basex'\nimport { fromHex, toHex, toUint8Array, Uint8ArrayToString } from './data/bin'\nimport { getTimestamp } from './time'\n\n// 128 bit UUID\n\nconst uuidBytesLength = 16\n\nexport function uuidBytes(): Uint8Array {\n return randomUint8Array(uuidBytesLength)\n}\n\n// Base62\n\nexport function uuidB62(bytes = uuidBytes()): string {\n return encodeBase62(bytes, 22)\n}\n\nexport function uuidEncodeB62(bytes: Uint8Array): string {\n return encodeBase62(bytes, 22)\n}\n\nexport function uuidDecodeB62(uuid: string): Uint8Array {\n return decodeBase62(uuid, uuidBytesLength)\n}\n\n// Base32\n\nexport function uuidB32(bytes = uuidBytes()): string {\n return encodeBase32(bytes, 26)\n}\n\nexport function uuidEncodeB32(bytes: Uint8Array): string {\n return encodeBase32(bytes, 26)\n}\n\nexport function uuidDecodeB32(uuid: string): Uint8Array {\n return decodeBase32(uuid, uuidBytesLength)\n}\n\n// UUIDv4\n\n// https://stackoverflow.com/a/2117523/140927\nconst pattern = '10000000-1000-4000-8000-100000000000' // String([1e7] + -1e3 + -4e3 + -8e3 + -1e11)\n\nexport const uuidv4 = function () {\n return (typeof crypto !== 'undefined' && crypto.randomUUID != null)\n ? crypto.randomUUID() // native!\n : pattern.replace(/[018]/g, (c: any) => (c ^ (randomUint8Array(1)[0] & (15 >> (c / 4)))).toString(16))\n}\n\nexport function uuidEncodeV4(bytes: Uint8Array): string {\n const id = toHex(bytes)\n return `${id.slice(0, 8)}-${id.slice(8, 12)}-${id.slice(12, 16)}-${id.slice(16, 20)}-${id.slice(20)}` // 10000000 - 1000 - 4000 - 8000 - 100000000000\n}\n\nexport function uuidDecodeV4(uuid: string): Uint8Array {\n return fromHex(uuid.replaceAll('-', ''))\n}\n\n// Sortable UID\n\n// https://github.com/segmentio/ksuid\n// https://pkg.go.dev/github.com/rsms/go-uuid\n\n/**\n * Sortable unique ID\n * Inspired by https://github.com/rsms/go-uuid\n *\n * Bytes 0-5: Current time in miliseconds from 2021-06-01T00:00:00Z\n * Bytes 6-15: Random\n */\n\n// 1622505600000 // new Date('2021-06-01T00:00:00Z').getTime()\nconst ReferenceDateInMS = 1600000000000\n\n// 6 bytes will stay valid until end of time: new Date(1622505600000 + 0xffffffffffff) === Date Sun Jan 01 10941 06:31:50 GMT+0100 (Central European Standard Time)\n\nfunction longToByteArray(long: number) {\n const byteArray = new Uint8Array([0, 0, 0, 0, 0, 0])\n const bytes = byteArray.length - 1\n for (let index = 0; index < byteArray.length; index++) {\n const byte = long & 0xFF\n byteArray[bytes - index] = byte\n long = (long - byte) / 256\n }\n return byteArray\n}\n\n// function byteArrayToLong(byteArray: number[]): number {\n// var value = 0\n// for (var i = byteArray.length - 1; i >= 0; i--) {\n// value = value * 256 + byteArray[i]\n// }\n// return value\n// }\n\nexport function suidBytes(): Uint8Array {\n const ms = getTimestamp() - ReferenceDateInMS\n return new Uint8Array([...longToByteArray(ms), ...randomUint8Array(10)])\n}\n\nexport function suid(): string {\n return uuidEncode(suidBytes())\n}\n\nexport function suidDate(id: string): Date {\n return suidBytesDate(uuidDecode(id))\n}\n\nexport function suidBytesDate(id: Uint8Array): Date {\n return new Date(\n ReferenceDateInMS + id.slice(0, 6).reduce((acc, byte) => acc * 256 + byte, 0),\n )\n}\n\n// 32 bit UUID\n\nexport function uuid32bit(): number {\n return new Uint32Array(randomUint8Array(4))[0]\n}\n\n// Global Settings\n\nconst mapModes = {\n base62: {\n uuid: uuidB62,\n uuidDecode: uuidDecodeB62,\n uuidEncode: uuidEncodeB62,\n },\n base32: {\n uuid: uuidB32,\n uuidDecode: uuidDecodeB32,\n uuidEncode: uuidEncodeB32,\n },\n uuidv4: {\n uuid: uuidv4,\n uuidDecode: uuidDecodeV4,\n uuidEncode: uuidEncodeV4,\n },\n test: {\n uuid: () => uname('test'),\n uuidDecode: (id: string) => toUint8Array(id),\n uuidEncode: (bin: Uint8Array) => Uint8ArrayToString(bin),\n },\n}\n\nlet _mode: keyof typeof mapModes = 'base62'\nlet _sorted = false\n\nexport function setUuidDefaultEncoding(mode?: keyof typeof mapModes, sorted = false) {\n if (mode === 'test')\n unameReset('test')\n\n _mode = mode ?? 'base62'\n _sorted = sorted\n}\n\nexport function uuid(): string {\n return mapModes[_mode].uuid(_sorted ? suidBytes() : uuidBytes())\n}\n\nexport function uuidDecode(uuid: string): Uint8Array {\n return mapModes[_mode].uuidDecode(uuid)\n}\n\nexport function uuidEncode(bytes: Uint8Array): string {\n return mapModes[_mode].uuidEncode(bytes)\n}\n\nexport function uuidIsValid(uuid: string): boolean {\n try {\n const bin = uuidDecode(uuid)\n return bin.length === uuidBytesLength\n }\n catch (err) {\n // log.warn('Invalid ID:', uuid)\n }\n return false\n}\n\n// Simple Counters\n\nconst _unameCounters: Record<string, number> = {}\n\nexport function uname(name = 'id'): string {\n if (_unameCounters[name] == null)\n _unameCounters[name] = 0\n\n return `${name}-${_unameCounters[name]++}`\n}\n\nexport function unameReset(name = 'id') {\n _unameCounters[name] = 0\n}\n\nlet _qid = 0\n\nexport function qid(): string {\n return `id-${_qid++}`\n}\n"]}
@@ -3,7 +3,7 @@
3
3
  var _chunkIEKOSBQFcjs = require('./chunk-IEKOSBQF.cjs');
4
4
 
5
5
 
6
- var _chunkFJRY5GL6cjs = require('./chunk-FJRY5GL6.cjs');
6
+ var _chunkIQ37FMAXcjs = require('./chunk-IQ37FMAX.cjs');
7
7
 
8
8
 
9
9
  var _chunkKM2MJVXIcjs = require('./chunk-KM2MJVXI.cjs');
@@ -22,7 +22,7 @@ var _process = require('process'); var _process2 = _interopRequireDefault(_proce
22
22
  function Logger(name, level) {
23
23
  return _chunk2AGPRCO5cjs.getGlobalLogger.call(void 0, (context) => {
24
24
  const handlers = [
25
- _chunkFJRY5GL6cjs.LoggerNodeHandler.call(void 0, {
25
+ _chunkIQ37FMAXcjs.LoggerNodeHandler.call(void 0, {
26
26
  padding: 32,
27
27
  nameBrackets: false
28
28
  // levelHelper: false,
@@ -44,4 +44,4 @@ function LoggerFromConfig(config, name, level) {
44
44
 
45
45
 
46
46
  exports.Logger = Logger; exports.LoggerFromConfig = LoggerFromConfig;
47
- //# sourceMappingURL=chunk-VMVGGE32.cjs.map
47
+ //# sourceMappingURL=chunk-CRG6JERG.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/zeed/zeed/dist/chunk-VMVGGE32.cjs","../src/node/log/log-context-node.ts"],"names":[],"mappings":"AAAA;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACA;ACjBA,oFAAoB;AAQb,SAAS,MAAA,CAAO,IAAA,EAAe,KAAA,EAA4C;AAChF,EAAA,OAAO,+CAAA,CAAiB,OAAA,EAAA,GAAY;AAClC,IAAA,MAAM,SAAA,EAAW;AAAA,MACf,iDAAA;AAAkB,QAChB,OAAA,EAAS,EAAA;AAAA,QACT,YAAA,EAAc;AAAA;AAAA,MAEhB,CAAC;AAAA,IACH,CAAA;AAEA,IAAA,MAAM,YAAA,mBAAc,iBAAA,CAAQ,GAAA,CAAI,QAAA,UAAY,iBAAA,CAAQ,GAAA,CAAI,KAAA;AACxD,IAAA,MAAM,KAAA,EAAO,8CAAA,iBAAe,CAAQ,GAAA,CAAI,SAAA,EAAW,IAAI,CAAA;AACvD,IAAA,MAAM,OAAA,EAAS,8CAAA,iBAAe,CAAQ,GAAA,CAAI,WAAA,EAAa,KAAK,CAAA;AAC5D,IAAA,GAAA,CAAI,WAAA;AACF,MAAA,QAAA,CAAS,OAAA,CAAQ,iDAAA,sCAAkB,WAAkB,CAAA,EAAG,EAAE,IAAA,EAAM,OAAO,CAAC,CAAC,CAAA;AAE3E,IAAA,OAAA,CAAQ,WAAA,CAAY,QAAQ,CAAA;AAAA,EAC9B,CAAC,CAAA,CAAE,IAAA,EAAM,KAAK,CAAA;AAChB;AAGO,SAAS,gBAAA,CAAiB,MAAA,EAAmB,IAAA,EAAc,KAAA,EAA4C;AAC5G,EAAA,OAAO,iDAAA,MAAkB,EAAQ,MAAA,EAAQ,IAAA,EAAM,KAAK,CAAA;AACtD;ADQA;AACA;AACE;AACA;AACF,qEAAC","file":"/home/runner/work/zeed/zeed/dist/chunk-VMVGGE32.cjs","sourcesContent":[null,"import type { LoggerInterface, LogLevelAliasType } from '../../common/log/log-base'\nimport type { LogConfig } from '../../common/log/log-config'\nimport process from 'node:process'\nimport { valueToBoolean } from '../../common/data/convert'\nimport { getGlobalLogger } from '../../common/log/log'\nimport { _LoggerFromConfig } from '../../common/log/log-config'\nimport { toPath } from '../env'\nimport { LoggerFileHandler } from './log-file'\nimport { LoggerNodeHandler } from './log-node'\n\nexport function Logger(name?: string, level?: LogLevelAliasType): LoggerInterface {\n return getGlobalLogger((context) => {\n const handlers = [\n LoggerNodeHandler({\n padding: 32,\n nameBrackets: false,\n // levelHelper: false,\n }),\n ]\n\n const logFilePath = process.env.ZEED_LOG ?? process.env.LOG\n const time = valueToBoolean(process.env.ZEED_TIME, true)\n const pretty = valueToBoolean(process.env.ZEED_PRETTY, false)\n if (logFilePath)\n handlers.unshift(LoggerFileHandler(toPath(logFilePath), { time, pretty }))\n\n context.setHandlers(handlers)\n })(name, level)\n}\n\n/** See LogConfig */\nexport function LoggerFromConfig(config: LogConfig, name: string, level?: LogLevelAliasType): LoggerInterface {\n return _LoggerFromConfig(Logger, config, name, level)\n}\n"]}
1
+ {"version":3,"sources":["/home/runner/work/zeed/zeed/dist/chunk-CRG6JERG.cjs","../src/node/log/log-context-node.ts"],"names":[],"mappings":"AAAA;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACA;ACjBA,oFAAoB;AAQb,SAAS,MAAA,CAAO,IAAA,EAAe,KAAA,EAA4C;AAChF,EAAA,OAAO,+CAAA,CAAiB,OAAA,EAAA,GAAY;AAClC,IAAA,MAAM,SAAA,EAAW;AAAA,MACf,iDAAA;AAAkB,QAChB,OAAA,EAAS,EAAA;AAAA,QACT,YAAA,EAAc;AAAA;AAAA,MAEhB,CAAC;AAAA,IACH,CAAA;AAEA,IAAA,MAAM,YAAA,mBAAc,iBAAA,CAAQ,GAAA,CAAI,QAAA,UAAY,iBAAA,CAAQ,GAAA,CAAI,KAAA;AACxD,IAAA,MAAM,KAAA,EAAO,8CAAA,iBAAe,CAAQ,GAAA,CAAI,SAAA,EAAW,IAAI,CAAA;AACvD,IAAA,MAAM,OAAA,EAAS,8CAAA,iBAAe,CAAQ,GAAA,CAAI,WAAA,EAAa,KAAK,CAAA;AAC5D,IAAA,GAAA,CAAI,WAAA;AACF,MAAA,QAAA,CAAS,OAAA,CAAQ,iDAAA,sCAAkB,WAAkB,CAAA,EAAG,EAAE,IAAA,EAAM,OAAO,CAAC,CAAC,CAAA;AAE3E,IAAA,OAAA,CAAQ,WAAA,CAAY,QAAQ,CAAA;AAAA,EAC9B,CAAC,CAAA,CAAE,IAAA,EAAM,KAAK,CAAA;AAChB;AAGO,SAAS,gBAAA,CAAiB,MAAA,EAAmB,IAAA,EAAc,KAAA,EAA4C;AAC5G,EAAA,OAAO,iDAAA,MAAkB,EAAQ,MAAA,EAAQ,IAAA,EAAM,KAAK,CAAA;AACtD;ADQA;AACA;AACE;AACA;AACF,qEAAC","file":"/home/runner/work/zeed/zeed/dist/chunk-CRG6JERG.cjs","sourcesContent":[null,"import type { LoggerInterface, LogLevelAliasType } from '../../common/log/log-base'\nimport type { LogConfig } from '../../common/log/log-config'\nimport process from 'node:process'\nimport { valueToBoolean } from '../../common/data/convert'\nimport { getGlobalLogger } from '../../common/log/log'\nimport { _LoggerFromConfig } from '../../common/log/log-config'\nimport { toPath } from '../env'\nimport { LoggerFileHandler } from './log-file'\nimport { LoggerNodeHandler } from './log-node'\n\nexport function Logger(name?: string, level?: LogLevelAliasType): LoggerInterface {\n return getGlobalLogger((context) => {\n const handlers = [\n LoggerNodeHandler({\n padding: 32,\n nameBrackets: false,\n // levelHelper: false,\n }),\n ]\n\n const logFilePath = process.env.ZEED_LOG ?? process.env.LOG\n const time = valueToBoolean(process.env.ZEED_TIME, true)\n const pretty = valueToBoolean(process.env.ZEED_PRETTY, false)\n if (logFilePath)\n handlers.unshift(LoggerFileHandler(toPath(logFilePath), { time, pretty }))\n\n context.setHandlers(handlers)\n })(name, level)\n}\n\n/** See LogConfig */\nexport function LoggerFromConfig(config: LogConfig, name: string, level?: LogLevelAliasType): LoggerInterface {\n return _LoggerFromConfig(Logger, config, name, level)\n}\n"]}
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  Channel
3
- } from "./chunk-DO72DWOL.js";
3
+ } from "./chunk-IDWIANZR.js";
4
4
 
5
5
  // src/common/msg/channel-debug.ts
6
6
  var DebugChannel = class extends Channel {
@@ -23,4 +23,4 @@ var DebugChannel = class extends Channel {
23
23
  export {
24
24
  DebugChannel
25
25
  };
26
- //# sourceMappingURL=chunk-DHBQHOGQ.js.map
26
+ //# sourceMappingURL=chunk-CYQGBI3Z.js.map
@@ -12,7 +12,7 @@ import {
12
12
  } from "./chunk-5CSLXI5R.js";
13
13
  import {
14
14
  LoggerBrowserHandler
15
- } from "./chunk-SCQIUUXO.js";
15
+ } from "./chunk-ARGGC4S7.js";
16
16
  import {
17
17
  isEmpty
18
18
  } from "./chunk-V5ZQ2SFQ.js";
@@ -34,4 +34,4 @@ export {
34
34
  Logger,
35
35
  LoggerFromConfig
36
36
  };
37
- //# sourceMappingURL=chunk-HW2ATP66.js.map
37
+ //# sourceMappingURL=chunk-F6BC7VBR.js.map
@@ -12,7 +12,7 @@ var _chunk2AGPRCO5cjs = require('./chunk-2AGPRCO5.cjs');
12
12
  var _chunk7N7EXUAOcjs = require('./chunk-7N7EXUAO.cjs');
13
13
 
14
14
 
15
- var _chunkM36JIJINcjs = require('./chunk-M36JIJIN.cjs');
15
+ var _chunk4I63E7RRcjs = require('./chunk-4I63E7RR.cjs');
16
16
 
17
17
 
18
18
  var _chunkVAG3XY63cjs = require('./chunk-VAG3XY63.cjs');
@@ -21,7 +21,7 @@ var _chunkVAG3XY63cjs = require('./chunk-VAG3XY63.cjs');
21
21
  function Logger(name, level) {
22
22
  return _chunk2AGPRCO5cjs.getGlobalLogger.call(void 0, (context) => {
23
23
  if (_chunkFLTWM56Vcjs.isBrowser.call(void 0, ) && !_chunkVAG3XY63cjs.isEmpty.call(void 0, localStorage.getItem("zeed"))) {
24
- context.setHandlers([_chunkM36JIJINcjs.LoggerBrowserHandler.call(void 0, )]);
24
+ context.setHandlers([_chunk4I63E7RRcjs.LoggerBrowserHandler.call(void 0, )]);
25
25
  context.setFactory(_chunk7N7EXUAOcjs.LoggerBrowserSetupDebugFactory.call(void 0, {}));
26
26
  }
27
27
  })(name, level);
@@ -34,4 +34,4 @@ function LoggerFromConfig(config, name, level) {
34
34
 
35
35
 
36
36
  exports.Logger = Logger; exports.LoggerFromConfig = LoggerFromConfig;
37
- //# sourceMappingURL=chunk-WZB5LGZ4.cjs.map
37
+ //# sourceMappingURL=chunk-HL7W3IJL.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/zeed/zeed/dist/chunk-WZB5LGZ4.cjs","../src/browser/log/log-context-browser.ts"],"names":[],"mappings":"AAAA;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACA;ACVO,SAAS,MAAA,CAAO,IAAA,EAAe,KAAA,EAA4C;AAChF,EAAA,OAAO,+CAAA,CAAiB,OAAA,EAAA,GAAY;AAClC,IAAA,GAAA,CAAI,yCAAA,EAAU,GAAK,CAAC,uCAAA,YAAQ,CAAa,OAAA,CAAQ,MAAM,CAAC,CAAA,EAAG;AACzD,MAAA,OAAA,CAAQ,WAAA,CAAY,CAAC,oDAAA,CAAsB,CAAC,CAAA;AAC5C,MAAA,OAAA,CAAQ,UAAA,CAAW,8DAAA,CAAgC,CAAC,CAAC,CAAA;AAAA,IACvD;AAAA,EACF,CAAC,CAAA,CAAE,IAAA,EAAM,KAAK,CAAA;AAChB;AAGO,SAAS,gBAAA,CAAiB,MAAA,EAAmB,IAAA,EAAc,KAAA,EAA4C;AAC5G,EAAA,OAAO,iDAAA,MAAkB,EAAQ,MAAA,EAAQ,IAAA,EAAM,KAAK,CAAA;AACtD;ADUA;AACA;AACE;AACA;AACF,qEAAC","file":"/home/runner/work/zeed/zeed/dist/chunk-WZB5LGZ4.cjs","sourcesContent":[null,"import type { LoggerInterface, LogLevelAliasType } from '../../common/log/log-base'\nimport type { LogConfig } from '../../common/log/log-config'\nimport { isEmpty } from '../../common/data/is'\nimport { getGlobalLogger } from '../../common/log/log'\nimport { _LoggerFromConfig } from '../../common/log/log-config'\nimport { isBrowser } from '../../common/platform'\nimport { LoggerBrowserHandler } from './log-browser'\nimport { LoggerBrowserSetupDebugFactory } from './log-browser-factory'\n\nexport function Logger(name?: string, level?: LogLevelAliasType): LoggerInterface {\n return getGlobalLogger((context) => {\n if (isBrowser() && !isEmpty(localStorage.getItem('zeed'))) {\n context.setHandlers([LoggerBrowserHandler()]) // Fallback for previously registered Loggers\n context.setFactory(LoggerBrowserSetupDebugFactory({}))\n }\n })(name, level)\n}\n\n/** See LogConfig */\nexport function LoggerFromConfig(config: LogConfig, name: string, level?: LogLevelAliasType): LoggerInterface {\n return _LoggerFromConfig(Logger, config, name, level)\n}\n"]}
1
+ {"version":3,"sources":["/home/runner/work/zeed/zeed/dist/chunk-HL7W3IJL.cjs","../src/browser/log/log-context-browser.ts"],"names":[],"mappings":"AAAA;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACA;ACVO,SAAS,MAAA,CAAO,IAAA,EAAe,KAAA,EAA4C;AAChF,EAAA,OAAO,+CAAA,CAAiB,OAAA,EAAA,GAAY;AAClC,IAAA,GAAA,CAAI,yCAAA,EAAU,GAAK,CAAC,uCAAA,YAAQ,CAAa,OAAA,CAAQ,MAAM,CAAC,CAAA,EAAG;AACzD,MAAA,OAAA,CAAQ,WAAA,CAAY,CAAC,oDAAA,CAAsB,CAAC,CAAA;AAC5C,MAAA,OAAA,CAAQ,UAAA,CAAW,8DAAA,CAAgC,CAAC,CAAC,CAAA;AAAA,IACvD;AAAA,EACF,CAAC,CAAA,CAAE,IAAA,EAAM,KAAK,CAAA;AAChB;AAGO,SAAS,gBAAA,CAAiB,MAAA,EAAmB,IAAA,EAAc,KAAA,EAA4C;AAC5G,EAAA,OAAO,iDAAA,MAAkB,EAAQ,MAAA,EAAQ,IAAA,EAAM,KAAK,CAAA;AACtD;ADUA;AACA;AACE;AACA;AACF,qEAAC","file":"/home/runner/work/zeed/zeed/dist/chunk-HL7W3IJL.cjs","sourcesContent":[null,"import type { LoggerInterface, LogLevelAliasType } from '../../common/log/log-base'\nimport type { LogConfig } from '../../common/log/log-config'\nimport { isEmpty } from '../../common/data/is'\nimport { getGlobalLogger } from '../../common/log/log'\nimport { _LoggerFromConfig } from '../../common/log/log-config'\nimport { isBrowser } from '../../common/platform'\nimport { LoggerBrowserHandler } from './log-browser'\nimport { LoggerBrowserSetupDebugFactory } from './log-browser-factory'\n\nexport function Logger(name?: string, level?: LogLevelAliasType): LoggerInterface {\n return getGlobalLogger((context) => {\n if (isBrowser() && !isEmpty(localStorage.getItem('zeed'))) {\n context.setHandlers([LoggerBrowserHandler()]) // Fallback for previously registered Loggers\n context.setFactory(LoggerBrowserSetupDebugFactory({}))\n }\n })(name, level)\n}\n\n/** See LogConfig */\nexport function LoggerFromConfig(config: LogConfig, name: string, level?: LogLevelAliasType): LoggerInterface {\n return _LoggerFromConfig(Logger, config, name, level)\n}\n"]}
@@ -3,7 +3,7 @@
3
3
  var _chunk34HB56WEcjs = require('./chunk-34HB56WE.cjs');
4
4
 
5
5
 
6
- var _chunkFLUN46S4cjs = require('./chunk-FLUN46S4.cjs');
6
+ var _chunkBCX254SLcjs = require('./chunk-BCX254SL.cjs');
7
7
 
8
8
 
9
9
  var _chunk64ZMDALJcjs = require('./chunk-64ZMDALJ.cjs');
@@ -22,7 +22,7 @@ var Progress = class _Progress extends _chunk34HB56WEcjs.Emitter {
22
22
  this._totalUnits = _nullishCoalesce(opt.totalUnits, () => ( 0));
23
23
  this._completedUnits = _nullishCoalesce(opt.completeUnits, () => ( 0));
24
24
  this._resetWhenFinished = _nullishCoalesce(opt.resetWhenFinished, () => ( true));
25
- this.name = _nullishCoalesce(opt.name, () => ( _chunkFLUN46S4cjs.uname.call(void 0, "progress")));
25
+ this.name = _nullishCoalesce(opt.name, () => ( _chunkBCX254SLcjs.uname.call(void 0, "progress")));
26
26
  this.dispose.add(async () => {
27
27
  for (const child of this._children)
28
28
  await child.dispose();
@@ -157,4 +157,4 @@ var Progress = class _Progress extends _chunk34HB56WEcjs.Emitter {
157
157
 
158
158
 
159
159
  exports.Progress = Progress;
160
- //# sourceMappingURL=chunk-QP3M4SXG.cjs.map
160
+ //# sourceMappingURL=chunk-HWQNPGWU.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/zeed/zeed/dist/chunk-QP3M4SXG.cjs","../src/common/exec/progress.ts"],"names":[],"mappings":"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","file":"/home/runner/work/zeed/zeed/dist/chunk-QP3M4SXG.cjs","sourcesContent":[null,"// Inspired by https://developer.apple.com/documentation/foundation/progress\n\nimport { arrayRemoveElement } from '../data/array'\nimport { useDispose } from '../dispose-defer'\nimport { Emitter } from '../msg/emitter'\nimport { uname } from '../uuid'\n\ninterface ProgressOptions {\n totalUnits?: number\n completeUnits?: number\n resetWhenFinished?: boolean\n name?: string\n}\n\n/**\n * Progress helper with these properties:\n *\n * - `totalUnits` and `completedUnits` for progress\n * - Can be cancelled\n * - Sends events on cancel, changed and dispose\n * - Supports children and propagates values.\n * Total progress is sum of all units in the tree.\n * - On `dispose` child removes itself from parent.\n */\nexport class Progress extends Emitter<{\n progressCancelled: (progress: Progress) => void\n progressChanged: (progress: Progress) => void\n progressDispose: (progress: Progress) => void\n}> {\n private _totalUnits: number\n private _completedUnits: number\n private _isCancelled = false\n private _resetWhenFinished = true\n private _children: Progress[] = []\n\n dispose = useDispose()\n name: string\n\n constructor(opt: ProgressOptions = {}) {\n super()\n\n this._totalUnits = opt.totalUnits ?? 0\n this._completedUnits = opt.completeUnits ?? 0\n this._resetWhenFinished = opt.resetWhenFinished ?? true\n this.name = opt.name ?? uname('progress')\n\n // Make sure to cleanup also children\n this.dispose.add(async () => {\n for (const child of this._children)\n await child.dispose()\n await this.emit('progressDispose', this)\n })\n }\n\n /** Notify others about changes and reset on completion, if flag is set. */\n private update() {\n void this.emit('progressChanged', this)\n\n if (this._isCancelled && this._resetWhenFinished) {\n if (this.getTotalUnits() <= this.getCompletedUnits())\n this.reset()\n }\n }\n\n /** Fresh start */\n reset() {\n if (this._isCancelled) {\n this._isCancelled = false\n for (const child of this._children)\n child.reset()\n this.update()\n }\n }\n\n /** Notify and mark as cancelled. May take some time before having an effect. */\n async cancel() {\n if (!this._isCancelled) {\n this._isCancelled = true\n await this.emit('progressCancelled', this)\n for (const child of this._children)\n await child.cancel()\n this.update()\n }\n }\n\n /** Add child progress, which count into its parents units. On `dispose` it will auto remove itself from parent. */\n addChild(child: Progress) {\n child.on('progressDispose', () => this.removeChild(child))\n child.on('progressChanged', () => this.update())\n if (!this._children.includes(child))\n this._children.push(child)\n this.update()\n }\n\n /** Create child progress. */\n createChildProgress(opt?: ProgressOptions) {\n const progress = new Progress(opt)\n this.addChild(progress)\n return progress\n }\n\n removeChild(child: Progress) {\n arrayRemoveElement(this._children, child)\n this.update()\n }\n\n /** Total units including children */\n getTotalUnits(): number {\n if (this.isIndeterminate())\n return 0\n let units = this._totalUnits\n for (const child of this._children)\n units += child.getTotalUnits()\n return units\n }\n\n /** Completed units including children */\n getCompletedUnits(): number {\n if (this.isIndeterminate())\n return 0\n let units = this._completedUnits\n for (const child of this._children)\n units += child.getCompletedUnits()\n return units\n // return Math.min(this.getTotalUnits(), units)\n }\n\n /** Cannot calculate progress, because totalUnits are missing. Special representation in UI. */\n isIndeterminate(): boolean {\n return this._totalUnits <= 0 && this._children.length <= 0\n }\n\n isCancelled() {\n return this._isCancelled\n }\n\n /** Either disposed or all units completed. */\n isFinished() {\n return this.dispose.isDisposed() || (!this.isIndeterminate() && (this.getTotalUnits() <= this.getCompletedUnits()))\n }\n\n /** Value from 0 to 1, where 1 is 100% completeness. */\n getFraction() {\n if (this.isIndeterminate())\n return 0\n let value = this.getCompletedUnits() / this.getTotalUnits()\n if (Number.isNaN(value))\n value = 0\n return Math.min(1, Math.max(0, value))\n }\n\n getChildrenCount() {\n return this._children.length\n }\n\n /** Change total units. */\n setTotalUnits(units: number, completedUnits?: number) {\n this._totalUnits = units\n if (completedUnits != null)\n this._completedUnits = completedUnits\n this.update()\n }\n\n /** Relatively change total units. */\n incTotalUnits(step = 1) {\n this._totalUnits += step\n this.update()\n }\n\n /** Set fixed number of completed units. */\n setCompletetedUnits(units: number) {\n this._completedUnits = units\n this.update()\n }\n\n /** Set to 100% without disposing. */\n setCompleted() {\n this._completedUnits = this._totalUnits\n this.update()\n }\n\n /** Dynamically change completed units. */\n incCompletedUnits(step = 1) {\n this._completedUnits += step\n this.update()\n }\n\n /** Progress tree to string for debuggin purposes. Consider using `name` attribute of Progress. */\n toString(indent = 0) {\n let s = `${' '.repeat(indent)}${this.name}: ${this._completedUnits} of ${this._totalUnits} units, ${Math.floor(this.getFraction() * 100)} %, cancel=${this._isCancelled}\\n`\n for (const child of this._children)\n s += child.toString(indent + 1)\n if (indent === 0)\n return s.trim()\n return s\n }\n}\n"]}
1
+ {"version":3,"sources":["/home/runner/work/zeed/zeed/dist/chunk-HWQNPGWU.cjs","../src/common/exec/progress.ts"],"names":[],"mappings":"AAAA;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACA;ACWO,IAAM,SAAA,EAAN,MAAM,UAAA,QAAiB,0BAI3B;AAAA,EAUD,WAAA,CAAY,IAAA,EAAuB,CAAC,CAAA,EAAG;AACrC,IAAA,KAAA,CAAM,CAAA;AARR,IAAA,IAAA,CAAQ,aAAA,EAAe,KAAA;AACvB,IAAA,IAAA,CAAQ,mBAAA,EAAqB,IAAA;AAC7B,IAAA,IAAA,CAAQ,UAAA,EAAwB,CAAC,CAAA;AAEjC,IAAA,IAAA,CAAA,QAAA,EAAU,0CAAA,CAAW;AAMnB,IAAA,IAAA,CAAK,YAAA,mBAAc,GAAA,CAAI,UAAA,UAAc,GAAA;AACrC,IAAA,IAAA,CAAK,gBAAA,mBAAkB,GAAA,CAAI,aAAA,UAAiB,GAAA;AAC5C,IAAA,IAAA,CAAK,mBAAA,mBAAqB,GAAA,CAAI,iBAAA,UAAqB,MAAA;AACnD,IAAA,IAAA,CAAK,KAAA,mBAAO,GAAA,CAAI,IAAA,UAAQ,qCAAA,UAAgB,GAAA;AAGxC,IAAA,IAAA,CAAK,OAAA,CAAQ,GAAA,CAAI,MAAA,CAAA,EAAA,GAAY;AAC3B,MAAA,IAAA,CAAA,MAAW,MAAA,GAAS,IAAA,CAAK,SAAA;AACvB,QAAA,MAAM,KAAA,CAAM,OAAA,CAAQ,CAAA;AACtB,MAAA,MAAM,IAAA,CAAK,IAAA,CAAK,iBAAA,EAAmB,IAAI,CAAA;AAAA,IACzC,CAAC,CAAA;AAAA,EACH;AAAA;AAAA,EAGQ,MAAA,CAAA,EAAS;AACf,IAAA,KAAK,IAAA,CAAK,IAAA,CAAK,iBAAA,EAAmB,IAAI,CAAA;AAEtC,IAAA,GAAA,CAAI,IAAA,CAAK,aAAA,GAAgB,IAAA,CAAK,kBAAA,EAAoB;AAChD,MAAA,GAAA,CAAI,IAAA,CAAK,aAAA,CAAc,EAAA,GAAK,IAAA,CAAK,iBAAA,CAAkB,CAAA;AACjD,QAAA,IAAA,CAAK,KAAA,CAAM,CAAA;AAAA,IACf;AAAA,EACF;AAAA;AAAA,EAGA,KAAA,CAAA,EAAQ;AACN,IAAA,GAAA,CAAI,IAAA,CAAK,YAAA,EAAc;AACrB,MAAA,IAAA,CAAK,aAAA,EAAe,KAAA;AACpB,MAAA,IAAA,CAAA,MAAW,MAAA,GAAS,IAAA,CAAK,SAAA;AACvB,QAAA,KAAA,CAAM,KAAA,CAAM,CAAA;AACd,MAAA,IAAA,CAAK,MAAA,CAAO,CAAA;AAAA,IACd;AAAA,EACF;AAAA;AAAA,EAGA,MAAM,MAAA,CAAA,EAAS;AACb,IAAA,GAAA,CAAI,CAAC,IAAA,CAAK,YAAA,EAAc;AACtB,MAAA,IAAA,CAAK,aAAA,EAAe,IAAA;AACpB,MAAA,MAAM,IAAA,CAAK,IAAA,CAAK,mBAAA,EAAqB,IAAI,CAAA;AACzC,MAAA,IAAA,CAAA,MAAW,MAAA,GAAS,IAAA,CAAK,SAAA;AACvB,QAAA,MAAM,KAAA,CAAM,MAAA,CAAO,CAAA;AACrB,MAAA,IAAA,CAAK,MAAA,CAAO,CAAA;AAAA,IACd;AAAA,EACF;AAAA;AAAA,EAGA,QAAA,CAAS,KAAA,EAAiB;AACxB,IAAA,KAAA,CAAM,EAAA,CAAG,iBAAA,EAAmB,CAAA,EAAA,GAAM,IAAA,CAAK,WAAA,CAAY,KAAK,CAAC,CAAA;AACzD,IAAA,KAAA,CAAM,EAAA,CAAG,iBAAA,EAAmB,CAAA,EAAA,GAAM,IAAA,CAAK,MAAA,CAAO,CAAC,CAAA;AAC/C,IAAA,GAAA,CAAI,CAAC,IAAA,CAAK,SAAA,CAAU,QAAA,CAAS,KAAK,CAAA;AAChC,MAAA,IAAA,CAAK,SAAA,CAAU,IAAA,CAAK,KAAK,CAAA;AAC3B,IAAA,IAAA,CAAK,MAAA,CAAO,CAAA;AAAA,EACd;AAAA;AAAA,EAGA,mBAAA,CAAoB,GAAA,EAAuB;AACzC,IAAA,MAAM,SAAA,EAAW,IAAI,SAAA,CAAS,GAAG,CAAA;AACjC,IAAA,IAAA,CAAK,QAAA,CAAS,QAAQ,CAAA;AACtB,IAAA,OAAO,QAAA;AAAA,EACT;AAAA,EAEA,WAAA,CAAY,KAAA,EAAiB;AAC3B,IAAA,kDAAA,IAAmB,CAAK,SAAA,EAAW,KAAK,CAAA;AACxC,IAAA,IAAA,CAAK,MAAA,CAAO,CAAA;AAAA,EACd;AAAA;AAAA,EAGA,aAAA,CAAA,EAAwB;AACtB,IAAA,GAAA,CAAI,IAAA,CAAK,eAAA,CAAgB,CAAA;AACvB,MAAA,OAAO,CAAA;AACT,IAAA,IAAI,MAAA,EAAQ,IAAA,CAAK,WAAA;AACjB,IAAA,IAAA,CAAA,MAAW,MAAA,GAAS,IAAA,CAAK,SAAA;AACvB,MAAA,MAAA,GAAS,KAAA,CAAM,aAAA,CAAc,CAAA;AAC/B,IAAA,OAAO,KAAA;AAAA,EACT;AAAA;AAAA,EAGA,iBAAA,CAAA,EAA4B;AAC1B,IAAA,GAAA,CAAI,IAAA,CAAK,eAAA,CAAgB,CAAA;AACvB,MAAA,OAAO,CAAA;AACT,IAAA,IAAI,MAAA,EAAQ,IAAA,CAAK,eAAA;AACjB,IAAA,IAAA,CAAA,MAAW,MAAA,GAAS,IAAA,CAAK,SAAA;AACvB,MAAA,MAAA,GAAS,KAAA,CAAM,iBAAA,CAAkB,CAAA;AACnC,IAAA,OAAO,KAAA;AAAA,EAET;AAAA;AAAA,EAGA,eAAA,CAAA,EAA2B;AACzB,IAAA,OAAO,IAAA,CAAK,YAAA,GAAe,EAAA,GAAK,IAAA,CAAK,SAAA,CAAU,OAAA,GAAU,CAAA;AAAA,EAC3D;AAAA,EAEA,WAAA,CAAA,EAAc;AACZ,IAAA,OAAO,IAAA,CAAK,YAAA;AAAA,EACd;AAAA;AAAA,EAGA,UAAA,CAAA,EAAa;AACX,IAAA,OAAO,IAAA,CAAK,OAAA,CAAQ,UAAA,CAAW,EAAA,GAAM,CAAC,IAAA,CAAK,eAAA,CAAgB,EAAA,GAAM,IAAA,CAAK,aAAA,CAAc,EAAA,GAAK,IAAA,CAAK,iBAAA,CAAkB,CAAA;AAAA,EAClH;AAAA;AAAA,EAGA,WAAA,CAAA,EAAc;AACZ,IAAA,GAAA,CAAI,IAAA,CAAK,eAAA,CAAgB,CAAA;AACvB,MAAA,OAAO,CAAA;AACT,IAAA,IAAI,MAAA,EAAQ,IAAA,CAAK,iBAAA,CAAkB,EAAA,EAAI,IAAA,CAAK,aAAA,CAAc,CAAA;AAC1D,IAAA,GAAA,CAAI,MAAA,CAAO,KAAA,CAAM,KAAK,CAAA;AACpB,MAAA,MAAA,EAAQ,CAAA;AACV,IAAA,OAAO,IAAA,CAAK,GAAA,CAAI,CAAA,EAAG,IAAA,CAAK,GAAA,CAAI,CAAA,EAAG,KAAK,CAAC,CAAA;AAAA,EACvC;AAAA,EAEA,gBAAA,CAAA,EAAmB;AACjB,IAAA,OAAO,IAAA,CAAK,SAAA,CAAU,MAAA;AAAA,EACxB;AAAA;AAAA,EAGA,aAAA,CAAc,KAAA,EAAe,cAAA,EAAyB;AACpD,IAAA,IAAA,CAAK,YAAA,EAAc,KAAA;AACnB,IAAA,GAAA,CAAI,eAAA,GAAkB,IAAA;AACpB,MAAA,IAAA,CAAK,gBAAA,EAAkB,cAAA;AACzB,IAAA,IAAA,CAAK,MAAA,CAAO,CAAA;AAAA,EACd;AAAA;AAAA,EAGA,aAAA,CAAc,KAAA,EAAO,CAAA,EAAG;AACtB,IAAA,IAAA,CAAK,YAAA,GAAe,IAAA;AACpB,IAAA,IAAA,CAAK,MAAA,CAAO,CAAA;AAAA,EACd;AAAA;AAAA,EAGA,mBAAA,CAAoB,KAAA,EAAe;AACjC,IAAA,IAAA,CAAK,gBAAA,EAAkB,KAAA;AACvB,IAAA,IAAA,CAAK,MAAA,CAAO,CAAA;AAAA,EACd;AAAA;AAAA,EAGA,YAAA,CAAA,EAAe;AACb,IAAA,IAAA,CAAK,gBAAA,EAAkB,IAAA,CAAK,WAAA;AAC5B,IAAA,IAAA,CAAK,MAAA,CAAO,CAAA;AAAA,EACd;AAAA;AAAA,EAGA,iBAAA,CAAkB,KAAA,EAAO,CAAA,EAAG;AAC1B,IAAA,IAAA,CAAK,gBAAA,GAAmB,IAAA;AACxB,IAAA,IAAA,CAAK,MAAA,CAAO,CAAA;AAAA,EACd;AAAA;AAAA,EAGA,QAAA,CAAS,OAAA,EAAS,CAAA,EAAG;AACnB,IAAA,IAAI,EAAA,EAAI,CAAA,EAAA;AAAgK;AACxK,IAAA;AACO,MAAA;AACH,IAAA;AACK,MAAA;AACF,IAAA;AACT,EAAA;AACF;ADzCa;AACA;AACA;AACA","file":"/home/runner/work/zeed/zeed/dist/chunk-HWQNPGWU.cjs","sourcesContent":[null,"// Inspired by https://developer.apple.com/documentation/foundation/progress\n\nimport { arrayRemoveElement } from '../data/array'\nimport { useDispose } from '../dispose-defer'\nimport { Emitter } from '../msg/emitter'\nimport { uname } from '../uuid'\n\ninterface ProgressOptions {\n totalUnits?: number\n completeUnits?: number\n resetWhenFinished?: boolean\n name?: string\n}\n\n/**\n * Progress helper with these properties:\n *\n * - `totalUnits` and `completedUnits` for progress\n * - Can be cancelled\n * - Sends events on cancel, changed and dispose\n * - Supports children and propagates values.\n * Total progress is sum of all units in the tree.\n * - On `dispose` child removes itself from parent.\n */\nexport class Progress extends Emitter<{\n progressCancelled: (progress: Progress) => void\n progressChanged: (progress: Progress) => void\n progressDispose: (progress: Progress) => void\n}> {\n private _totalUnits: number\n private _completedUnits: number\n private _isCancelled = false\n private _resetWhenFinished = true\n private _children: Progress[] = []\n\n dispose = useDispose()\n name: string\n\n constructor(opt: ProgressOptions = {}) {\n super()\n\n this._totalUnits = opt.totalUnits ?? 0\n this._completedUnits = opt.completeUnits ?? 0\n this._resetWhenFinished = opt.resetWhenFinished ?? true\n this.name = opt.name ?? uname('progress')\n\n // Make sure to cleanup also children\n this.dispose.add(async () => {\n for (const child of this._children)\n await child.dispose()\n await this.emit('progressDispose', this)\n })\n }\n\n /** Notify others about changes and reset on completion, if flag is set. */\n private update() {\n void this.emit('progressChanged', this)\n\n if (this._isCancelled && this._resetWhenFinished) {\n if (this.getTotalUnits() <= this.getCompletedUnits())\n this.reset()\n }\n }\n\n /** Fresh start */\n reset() {\n if (this._isCancelled) {\n this._isCancelled = false\n for (const child of this._children)\n child.reset()\n this.update()\n }\n }\n\n /** Notify and mark as cancelled. May take some time before having an effect. */\n async cancel() {\n if (!this._isCancelled) {\n this._isCancelled = true\n await this.emit('progressCancelled', this)\n for (const child of this._children)\n await child.cancel()\n this.update()\n }\n }\n\n /** Add child progress, which count into its parents units. On `dispose` it will auto remove itself from parent. */\n addChild(child: Progress) {\n child.on('progressDispose', () => this.removeChild(child))\n child.on('progressChanged', () => this.update())\n if (!this._children.includes(child))\n this._children.push(child)\n this.update()\n }\n\n /** Create child progress. */\n createChildProgress(opt?: ProgressOptions) {\n const progress = new Progress(opt)\n this.addChild(progress)\n return progress\n }\n\n removeChild(child: Progress) {\n arrayRemoveElement(this._children, child)\n this.update()\n }\n\n /** Total units including children */\n getTotalUnits(): number {\n if (this.isIndeterminate())\n return 0\n let units = this._totalUnits\n for (const child of this._children)\n units += child.getTotalUnits()\n return units\n }\n\n /** Completed units including children */\n getCompletedUnits(): number {\n if (this.isIndeterminate())\n return 0\n let units = this._completedUnits\n for (const child of this._children)\n units += child.getCompletedUnits()\n return units\n // return Math.min(this.getTotalUnits(), units)\n }\n\n /** Cannot calculate progress, because totalUnits are missing. Special representation in UI. */\n isIndeterminate(): boolean {\n return this._totalUnits <= 0 && this._children.length <= 0\n }\n\n isCancelled() {\n return this._isCancelled\n }\n\n /** Either disposed or all units completed. */\n isFinished() {\n return this.dispose.isDisposed() || (!this.isIndeterminate() && (this.getTotalUnits() <= this.getCompletedUnits()))\n }\n\n /** Value from 0 to 1, where 1 is 100% completeness. */\n getFraction() {\n if (this.isIndeterminate())\n return 0\n let value = this.getCompletedUnits() / this.getTotalUnits()\n if (Number.isNaN(value))\n value = 0\n return Math.min(1, Math.max(0, value))\n }\n\n getChildrenCount() {\n return this._children.length\n }\n\n /** Change total units. */\n setTotalUnits(units: number, completedUnits?: number) {\n this._totalUnits = units\n if (completedUnits != null)\n this._completedUnits = completedUnits\n this.update()\n }\n\n /** Relatively change total units. */\n incTotalUnits(step = 1) {\n this._totalUnits += step\n this.update()\n }\n\n /** Set fixed number of completed units. */\n setCompletetedUnits(units: number) {\n this._completedUnits = units\n this.update()\n }\n\n /** Set to 100% without disposing. */\n setCompleted() {\n this._completedUnits = this._totalUnits\n this.update()\n }\n\n /** Dynamically change completed units. */\n incCompletedUnits(step = 1) {\n this._completedUnits += step\n this.update()\n }\n\n /** Progress tree to string for debuggin purposes. Consider using `name` attribute of Progress. */\n toString(indent = 0) {\n let s = `${' '.repeat(indent)}${this.name}: ${this._completedUnits} of ${this._totalUnits} units, ${Math.floor(this.getFraction() * 100)} %, cancel=${this._isCancelled}\\n`\n for (const child of this._children)\n s += child.toString(indent + 1)\n if (indent === 0)\n return s.trim()\n return s\n }\n}\n"]}
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-OSX4VQOR.js";
4
4
  import {
5
5
  uuid
6
- } from "./chunk-54BCGEKW.js";
6
+ } from "./chunk-2KMVAIXW.js";
7
7
  import {
8
8
  useDispose
9
9
  } from "./chunk-TRCJY7KG.js";
@@ -24,4 +24,4 @@ var Channel = class extends Emitter {
24
24
  export {
25
25
  Channel
26
26
  };
27
- //# sourceMappingURL=chunk-DO72DWOL.js.map
27
+ //# sourceMappingURL=chunk-IDWIANZR.js.map
@@ -10,7 +10,7 @@ var _chunkDRU33ZUGcjs = require('./chunk-DRU33ZUG.cjs');
10
10
 
11
11
 
12
12
 
13
- var _chunkSX5YQHZOcjs = require('./chunk-SX5YQHZO.cjs');
13
+ var _chunk33B2TEAZcjs = require('./chunk-33B2TEAZ.cjs');
14
14
 
15
15
 
16
16
 
@@ -91,7 +91,7 @@ function LoggerNodeHandler(opt = {}) {
91
91
  if (defaultUseStack == null)
92
92
  defaultUseStack = shouldUseStack();
93
93
  if (startTime == null)
94
- startTime = _chunkSX5YQHZOcjs.getTimestamp.call(void 0, );
94
+ startTime = _chunk33B2TEAZcjs.getTimestamp.call(void 0, );
95
95
  const {
96
96
  level = void 0,
97
97
  filter = void 0,
@@ -110,7 +110,7 @@ function LoggerNodeHandler(opt = {}) {
110
110
  return;
111
111
  if (!matchesNamespace(msg.name))
112
112
  return;
113
- const timeNow = _chunkSX5YQHZOcjs.getTimestamp.call(void 0, );
113
+ const timeNow = _chunk33B2TEAZcjs.getTimestamp.call(void 0, );
114
114
  const name = msg.name || "";
115
115
  let ninfo = namespaces[name || ""];
116
116
  if (ninfo == null) {
@@ -120,7 +120,7 @@ function LoggerNodeHandler(opt = {}) {
120
120
  };
121
121
  namespaces[name] = ninfo;
122
122
  }
123
- const timeDiffString = _chunkSX5YQHZOcjs.formatMilliseconds.call(void 0, timeNow - startTime);
123
+ const timeDiffString = _chunk33B2TEAZcjs.formatMilliseconds.call(void 0, timeNow - startTime);
124
124
  let args;
125
125
  let displayName = nameBrackets ? `[${name}]` : name;
126
126
  if (padding > 0)
@@ -200,4 +200,4 @@ function LoggerNodeHandler(opt = {}) {
200
200
 
201
201
 
202
202
  exports.colorString = colorString; exports.colorStringList = colorStringList; exports.loggerStackTraceDebug = loggerStackTraceDebug; exports.LoggerNodeHandler = LoggerNodeHandler;
203
- //# sourceMappingURL=chunk-FJRY5GL6.cjs.map
203
+ //# sourceMappingURL=chunk-IQ37FMAX.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/zeed/zeed/dist/chunk-FJRY5GL6.cjs","../src/node/log/log-node.ts"],"names":["colors"],"mappings":"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","file":"/home/runner/work/zeed/zeed/dist/chunk-FJRY5GL6.cjs","sourcesContent":[null,"import type { LogHandler, LogHandlerOptions, LogMessage } from '../../common/log/log-base'\nimport process from 'node:process'\nimport tty from 'node:tty'\nimport { renderMessages, valueToBoolean } from '../../common/data/convert'\nimport { LogLevelError, LogLevelInfo, LogLevelWarn } from '../../common/log/log-base'\nimport { useLevelFilter, useNamespaceFilter } from '../../common/log/log-filter'\nimport { formatMilliseconds, getTimestamp } from '../../common/time'\nimport { getSourceLocation, getSourceLocationByPrecedingPattern, getStack } from './log-util'\n\nfunction shouldUseColor(): boolean {\n try {\n return valueToBoolean(process.env.ZEED_COLOR, tty.isatty(process.stdout.fd))\n }\n catch (err) {}\n return false\n}\n\nlet defaultUseColor: boolean | undefined\n\nconst colors = [6, 2, 3, 4, 5, 1]\n\nfunction nodeSelectColorByName(namespace: string) {\n let hash = 0\n for (let i = 0; i < namespace.length; i++) {\n hash = (hash << 5) - hash + namespace.charCodeAt(i)\n hash |= 0 // Convert to 32bit integer\n }\n return colors[Math.abs(hash) % colors.length]\n}\n\nconst namespaces: Record<string, any> = {}\n\nlet startTime: number | undefined\n\nfunction log(...args: any[]) {\n process.stdout.write(`${renderMessages(args)}\\n`)\n}\n\n// const _browserStyleMap = {\n// [BOLD]: { \"font-weight\": \"bold\" },\n// [UNBOLD]: { \"font-weight\": \"normal\" },\n// [BLUE]: { color: \"blue\" },\n// [GREEN]: { color: \"green\" },\n// [GREY]: { color: \"grey\" },\n// [RED]: { color: \"red\" },\n// [PURPLE]: { color: \"purple\" },\n// [ORANGE]: { color: \"orange\" },\n// [UNCOLOR]: { color: \"black\" },\n// }\n\nconst TTY_STYLE = {\n BOLD: '\\u001B[1m',\n UNBOLD: '\\u001B[2m',\n RED: '\\u001B[31m',\n GREEN: '\\u001B[32m',\n BLUE: '\\u001B[34m',\n PURPLE: '\\u001B[35m',\n GRAY: '\\u001B[37m',\n ORANGE: '\\u001B[38;5;208m',\n UNCOLOR: '\\u001B[0m',\n}\n\nenum COLOR {\n RED = 1,\n GREEN = 2,\n BLUE = 4,\n PURPLE = 5,\n GRAY = 7,\n ORANGE = 8,\n}\n\nconst colorEnd = '\\u001B[0m'\n\nexport function colorString(text: string, colorCode: number) {\n const colorStart = colorCode === COLOR.ORANGE\n ? TTY_STYLE.ORANGE\n : `\\u001B[3${colorCode < 8 ? colorCode : `8;5;${colorCode}`}m`\n return `${colorStart}${text}${colorEnd}`\n}\n\nexport function colorStringList(\n list: Array<any>,\n style: string,\n bold = true,\n) {\n return list.map((value) => {\n if (typeof value !== 'string')\n return value\n let start = style\n let end = colorEnd\n if (bold) {\n start = `${TTY_STYLE.BOLD}${start}`\n end = `${end}${TTY_STYLE.BOLD}`\n }\n return `${start}${value}${end}`\n })\n}\n\nfunction shouldUseStack(): boolean {\n try {\n return valueToBoolean(process.env.ZEED_STACK, false)\n }\n catch (err) {}\n return false\n}\n\nlet defaultUseStack: boolean | undefined\n\nexport const loggerStackTraceDebug = 'loggerStackTraceDebug-7d38e5a9214b58d29734374cdb9521fd964d7485'\n\nexport function LoggerNodeHandler(opt: LogHandlerOptions = {}): LogHandler {\n if (defaultUseColor == null)\n defaultUseColor = shouldUseColor()\n\n if (defaultUseStack == null)\n defaultUseStack = shouldUseStack()\n\n if (startTime == null)\n startTime = getTimestamp()\n\n const {\n level = undefined,\n filter = undefined,\n colors = defaultUseColor,\n levelHelper = true,\n nameBrackets = true,\n padding = 0,\n fill = 0,\n stack = defaultUseStack,\n time = true,\n } = opt\n const matchesNamespace = useNamespaceFilter(filter)\n const matchesLevel = useLevelFilter(level)\n return (msg: LogMessage) => {\n if (!matchesLevel(msg.level))\n return\n if (!matchesNamespace(msg.name))\n return\n const timeNow = getTimestamp()\n const name = msg.name || ''\n let ninfo = namespaces[name || '']\n if (ninfo == null) {\n ninfo = {\n color: nodeSelectColorByName(name),\n // time: timeNow\n }\n namespaces[name] = ninfo\n }\n const timeDiffString = formatMilliseconds(timeNow - startTime!)\n\n let args: string[]\n\n let displayName = nameBrackets ? `[${name}]` : name\n\n if (padding > 0)\n displayName = displayName.padStart(padding, ' ')\n\n if (fill > 0)\n displayName = displayName.padEnd(fill, ' ')\n\n if (colors) {\n const c = ninfo.color\n args = [`${colorString(displayName, c)} | `] // nameBrackets ? [`%c[${name}]`] : [`%c${name}`]\n if (msg.level === LogLevelWarn)\n args.push(...colorStringList(msg.messages, TTY_STYLE.ORANGE))\n else if (msg.level === LogLevelError)\n args.push(...colorStringList(msg.messages, TTY_STYLE.RED))\n else\n args.push(...msg.messages)\n if (time)\n args.push(colorString(`+${timeDiffString}`, c))\n }\n else {\n args = [displayName, ...msg.messages]\n if (time)\n args.push(`+${timeDiffString}`)\n }\n\n if (msg.messages?.[0] === loggerStackTraceDebug) {\n try {\n // eslint-disable-next-line no-console\n console.log(getStack())\n }\n catch (err) { }\n }\n\n // Probably time consuming\n if (stack) {\n let line = ''\n if (typeof stack === 'boolean') {\n line = getSourceLocationByPrecedingPattern(\n ['at Function.', 'at null.log (', 'at log ('],\n true,\n )\n if (!line)\n line = getSourceLocation(0, true)\n }\n else {\n const depth = typeof stack === 'number' ? stack : 3\n line = getSourceLocation(depth, true)\n }\n if (line)\n args.push(colorString(`(${line})`, COLOR.GRAY))\n }\n\n const sep = '|'\n const charLevel = '.'\n\n switch (msg.level) {\n case LogLevelInfo:\n if (levelHelper)\n args[0] = `I${sep}${charLevel} ${args[0]}`\n log(...args)\n break\n case LogLevelWarn:\n if (levelHelper) {\n args[0] = (colors\n ? colorString(`W${sep}${charLevel}${charLevel} `, COLOR.ORANGE)\n : `W${sep}${charLevel}${charLevel} `) + args[0]\n }\n log(...args)\n break\n case LogLevelError:\n if (levelHelper) {\n args[0] = (colors\n ? colorString(`E${sep}${charLevel}${charLevel}${charLevel} `, COLOR.RED)\n : `E${sep}${charLevel}${charLevel}${charLevel} `) + args[0]\n }\n log(...args)\n break\n default:\n if (levelHelper)\n args[0] = `D${sep} ${args[0]}`\n log(...args)\n break\n }\n }\n}\n"]}
1
+ {"version":3,"sources":["/home/runner/work/zeed/zeed/dist/chunk-IQ37FMAX.cjs","../src/node/log/log-node.ts"],"names":["colors"],"mappings":"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","file":"/home/runner/work/zeed/zeed/dist/chunk-IQ37FMAX.cjs","sourcesContent":[null,"import type { LogHandler, LogHandlerOptions, LogMessage } from '../../common/log/log-base'\nimport process from 'node:process'\nimport tty from 'node:tty'\nimport { renderMessages, valueToBoolean } from '../../common/data/convert'\nimport { LogLevelError, LogLevelInfo, LogLevelWarn } from '../../common/log/log-base'\nimport { useLevelFilter, useNamespaceFilter } from '../../common/log/log-filter'\nimport { formatMilliseconds, getTimestamp } from '../../common/time'\nimport { getSourceLocation, getSourceLocationByPrecedingPattern, getStack } from './log-util'\n\nfunction shouldUseColor(): boolean {\n try {\n return valueToBoolean(process.env.ZEED_COLOR, tty.isatty(process.stdout.fd))\n }\n catch (err) {}\n return false\n}\n\nlet defaultUseColor: boolean | undefined\n\nconst colors = [6, 2, 3, 4, 5, 1]\n\nfunction nodeSelectColorByName(namespace: string) {\n let hash = 0\n for (let i = 0; i < namespace.length; i++) {\n hash = (hash << 5) - hash + namespace.charCodeAt(i)\n hash |= 0 // Convert to 32bit integer\n }\n return colors[Math.abs(hash) % colors.length]\n}\n\nconst namespaces: Record<string, any> = {}\n\nlet startTime: number | undefined\n\nfunction log(...args: any[]) {\n process.stdout.write(`${renderMessages(args)}\\n`)\n}\n\n// const _browserStyleMap = {\n// [BOLD]: { \"font-weight\": \"bold\" },\n// [UNBOLD]: { \"font-weight\": \"normal\" },\n// [BLUE]: { color: \"blue\" },\n// [GREEN]: { color: \"green\" },\n// [GREY]: { color: \"grey\" },\n// [RED]: { color: \"red\" },\n// [PURPLE]: { color: \"purple\" },\n// [ORANGE]: { color: \"orange\" },\n// [UNCOLOR]: { color: \"black\" },\n// }\n\nconst TTY_STYLE = {\n BOLD: '\\u001B[1m',\n UNBOLD: '\\u001B[2m',\n RED: '\\u001B[31m',\n GREEN: '\\u001B[32m',\n BLUE: '\\u001B[34m',\n PURPLE: '\\u001B[35m',\n GRAY: '\\u001B[37m',\n ORANGE: '\\u001B[38;5;208m',\n UNCOLOR: '\\u001B[0m',\n}\n\nenum COLOR {\n RED = 1,\n GREEN = 2,\n BLUE = 4,\n PURPLE = 5,\n GRAY = 7,\n ORANGE = 8,\n}\n\nconst colorEnd = '\\u001B[0m'\n\nexport function colorString(text: string, colorCode: number) {\n const colorStart = colorCode === COLOR.ORANGE\n ? TTY_STYLE.ORANGE\n : `\\u001B[3${colorCode < 8 ? colorCode : `8;5;${colorCode}`}m`\n return `${colorStart}${text}${colorEnd}`\n}\n\nexport function colorStringList(\n list: Array<any>,\n style: string,\n bold = true,\n) {\n return list.map((value) => {\n if (typeof value !== 'string')\n return value\n let start = style\n let end = colorEnd\n if (bold) {\n start = `${TTY_STYLE.BOLD}${start}`\n end = `${end}${TTY_STYLE.BOLD}`\n }\n return `${start}${value}${end}`\n })\n}\n\nfunction shouldUseStack(): boolean {\n try {\n return valueToBoolean(process.env.ZEED_STACK, false)\n }\n catch (err) {}\n return false\n}\n\nlet defaultUseStack: boolean | undefined\n\nexport const loggerStackTraceDebug = 'loggerStackTraceDebug-7d38e5a9214b58d29734374cdb9521fd964d7485'\n\nexport function LoggerNodeHandler(opt: LogHandlerOptions = {}): LogHandler {\n if (defaultUseColor == null)\n defaultUseColor = shouldUseColor()\n\n if (defaultUseStack == null)\n defaultUseStack = shouldUseStack()\n\n if (startTime == null)\n startTime = getTimestamp()\n\n const {\n level = undefined,\n filter = undefined,\n colors = defaultUseColor,\n levelHelper = true,\n nameBrackets = true,\n padding = 0,\n fill = 0,\n stack = defaultUseStack,\n time = true,\n } = opt\n const matchesNamespace = useNamespaceFilter(filter)\n const matchesLevel = useLevelFilter(level)\n return (msg: LogMessage) => {\n if (!matchesLevel(msg.level))\n return\n if (!matchesNamespace(msg.name))\n return\n const timeNow = getTimestamp()\n const name = msg.name || ''\n let ninfo = namespaces[name || '']\n if (ninfo == null) {\n ninfo = {\n color: nodeSelectColorByName(name),\n // time: timeNow\n }\n namespaces[name] = ninfo\n }\n const timeDiffString = formatMilliseconds(timeNow - startTime!)\n\n let args: string[]\n\n let displayName = nameBrackets ? `[${name}]` : name\n\n if (padding > 0)\n displayName = displayName.padStart(padding, ' ')\n\n if (fill > 0)\n displayName = displayName.padEnd(fill, ' ')\n\n if (colors) {\n const c = ninfo.color\n args = [`${colorString(displayName, c)} | `] // nameBrackets ? [`%c[${name}]`] : [`%c${name}`]\n if (msg.level === LogLevelWarn)\n args.push(...colorStringList(msg.messages, TTY_STYLE.ORANGE))\n else if (msg.level === LogLevelError)\n args.push(...colorStringList(msg.messages, TTY_STYLE.RED))\n else\n args.push(...msg.messages)\n if (time)\n args.push(colorString(`+${timeDiffString}`, c))\n }\n else {\n args = [displayName, ...msg.messages]\n if (time)\n args.push(`+${timeDiffString}`)\n }\n\n if (msg.messages?.[0] === loggerStackTraceDebug) {\n try {\n // eslint-disable-next-line no-console\n console.log(getStack())\n }\n catch (err) { }\n }\n\n // Probably time consuming\n if (stack) {\n let line = ''\n if (typeof stack === 'boolean') {\n line = getSourceLocationByPrecedingPattern(\n ['at Function.', 'at null.log (', 'at log ('],\n true,\n )\n if (!line)\n line = getSourceLocation(0, true)\n }\n else {\n const depth = typeof stack === 'number' ? stack : 3\n line = getSourceLocation(depth, true)\n }\n if (line)\n args.push(colorString(`(${line})`, COLOR.GRAY))\n }\n\n const sep = '|'\n const charLevel = '.'\n\n switch (msg.level) {\n case LogLevelInfo:\n if (levelHelper)\n args[0] = `I${sep}${charLevel} ${args[0]}`\n log(...args)\n break\n case LogLevelWarn:\n if (levelHelper) {\n args[0] = (colors\n ? colorString(`W${sep}${charLevel}${charLevel} `, COLOR.ORANGE)\n : `W${sep}${charLevel}${charLevel} `) + args[0]\n }\n log(...args)\n break\n case LogLevelError:\n if (levelHelper) {\n args[0] = (colors\n ? colorString(`E${sep}${charLevel}${charLevel}${charLevel} `, COLOR.RED)\n : `E${sep}${charLevel}${charLevel}${charLevel} `) + args[0]\n }\n log(...args)\n break\n default:\n if (levelHelper)\n args[0] = `D${sep} ${args[0]}`\n log(...args)\n break\n }\n }\n}\n"]}
@@ -10,7 +10,7 @@ import {
10
10
  import {
11
11
  formatMilliseconds,
12
12
  getTimestamp
13
- } from "./chunk-QV2QPYMW.js";
13
+ } from "./chunk-NNCJ3QL5.js";
14
14
  import {
15
15
  useLevelFilter,
16
16
  useNamespaceFilter
@@ -200,4 +200,4 @@ export {
200
200
  loggerStackTraceDebug,
201
201
  LoggerNodeHandler
202
202
  };
203
- //# sourceMappingURL=chunk-JLSAW4YK.js.map
203
+ //# sourceMappingURL=chunk-IUSTZZ2Z.js.map
@@ -7,7 +7,7 @@ import {
7
7
  import {
8
8
  uname,
9
9
  uuid
10
- } from "./chunk-54BCGEKW.js";
10
+ } from "./chunk-2KMVAIXW.js";
11
11
  import {
12
12
  isPromise,
13
13
  tryTimeout
@@ -162,4 +162,4 @@ export {
162
162
  createPromiseProxy,
163
163
  useMessageHub
164
164
  };
165
- //# sourceMappingURL=chunk-D7LG5W7J.js.map
165
+ //# sourceMappingURL=chunk-IX5ITV72.js.map
@@ -7,7 +7,7 @@ var _chunkDRU33ZUGcjs = require('./chunk-DRU33ZUG.cjs');
7
7
 
8
8
 
9
9
 
10
- var _chunkFLUN46S4cjs = require('./chunk-FLUN46S4.cjs');
10
+ var _chunkBCX254SLcjs = require('./chunk-BCX254SL.cjs');
11
11
 
12
12
 
13
13
 
@@ -28,7 +28,7 @@ function createPromiseProxy(fn, opt, predefinedMethods = {}) {
28
28
  }
29
29
  function useMessageHub(opt = {}) {
30
30
  const {
31
- name = _chunkFLUN46S4cjs.uname.call(void 0, "hub"),
31
+ name = _chunkBCX254SLcjs.uname.call(void 0, "hub"),
32
32
  encoder = new (0, _chunkX5MWXWOAcjs.JsonEncoder)(),
33
33
  retryAfter = 1e3,
34
34
  ignoreUnhandled = true,
@@ -127,7 +127,7 @@ function useMessageHub(opt = {}) {
127
127
  };
128
128
  const fetchMessage = async (name2, args, opt2 = {}) => {
129
129
  const { timeout = 5e3 } = opt2;
130
- const id = _chunkFLUN46S4cjs.uuid.call(void 0, );
130
+ const id = _chunkBCX254SLcjs.uuid.call(void 0, );
131
131
  await postMessage({
132
132
  name: name2,
133
133
  args,
@@ -162,4 +162,4 @@ function useMessageHub(opt = {}) {
162
162
 
163
163
 
164
164
  exports.createPromiseProxy = createPromiseProxy; exports.useMessageHub = useMessageHub;
165
- //# sourceMappingURL=chunk-QJVZDNUH.cjs.map
165
+ //# sourceMappingURL=chunk-K3AEUCMR.cjs.map