@wener/utils 1.1.25 → 1.1.27

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 (170) hide show
  1. package/README.md +4 -0
  2. package/dist/cjs/createFetchWith-qhRObsE4.js +2 -0
  3. package/dist/cjs/createFetchWith-qhRObsE4.js.map +1 -0
  4. package/dist/cjs/{getGlobalThis-304f74e0.js → getGlobalThis-GhffAgiG.js} +1 -1
  5. package/dist/cjs/{getGlobalThis-304f74e0.js.map → getGlobalThis-GhffAgiG.js.map} +1 -1
  6. package/dist/cjs/index.cjs +12 -12
  7. package/dist/cjs/index.cjs.map +1 -1
  8. package/dist/cjs/schema/typebox/gen/index.cjs +118 -0
  9. package/dist/cjs/schema/typebox/gen/index.cjs.map +1 -0
  10. package/dist/cjs/schema/typebox/index.cjs +2 -0
  11. package/dist/cjs/schema/typebox/index.cjs.map +1 -0
  12. package/dist/cjs/server.cjs +1 -1
  13. package/dist/cjs/server.cjs.map +1 -1
  14. package/dist/cjs/servers/jsdom.cjs +1 -1
  15. package/dist/cjs/servers/jsdom.cjs.map +1 -1
  16. package/dist/cjs/servers/node-fetch.cjs +1 -1
  17. package/dist/cjs/servers/ws.cjs +1 -1
  18. package/dist/esm/createFetchWith-1q1S-Xro.js +2 -0
  19. package/dist/esm/createFetchWith-1q1S-Xro.js.map +1 -0
  20. package/dist/esm/{getGlobalThis-b7ad0cf9.js → getGlobalThis-A8F-nU7J.js} +1 -1
  21. package/dist/esm/{getGlobalThis-b7ad0cf9.js.map → getGlobalThis-A8F-nU7J.js.map} +1 -1
  22. package/dist/esm/index.js +9 -9
  23. package/dist/esm/index.js.map +1 -1
  24. package/dist/esm/schema/typebox/gen.js +118 -0
  25. package/dist/esm/schema/typebox/gen.js.map +1 -0
  26. package/dist/esm/schema/typebox.js +2 -0
  27. package/dist/esm/schema/typebox.js.map +1 -0
  28. package/dist/esm/server.js +1 -1
  29. package/dist/esm/server.js.map +1 -1
  30. package/dist/esm/servers/jsdom.js +1 -1
  31. package/dist/esm/servers/jsdom.js.map +1 -1
  32. package/dist/esm/servers/node-fetch.js +1 -1
  33. package/dist/esm/servers/ws.js +1 -1
  34. package/dist/system/createFetchWith-TjUle-dI.js +2 -0
  35. package/dist/system/createFetchWith-TjUle-dI.js.map +1 -0
  36. package/dist/system/{getGlobalThis-8951eb0e.js → getGlobalThis-X5ifUXDI.js} +1 -1
  37. package/dist/system/{getGlobalThis-8951eb0e.js.map → getGlobalThis-X5ifUXDI.js.map} +1 -1
  38. package/dist/system/index.js +12 -12
  39. package/dist/system/index.js.map +1 -1
  40. package/dist/system/schema/typebox/gen.js +118 -0
  41. package/dist/system/schema/typebox/gen.js.map +1 -0
  42. package/dist/system/schema/typebox.js +2 -0
  43. package/dist/system/schema/typebox.js.map +1 -0
  44. package/dist/system/server.js +1 -1
  45. package/dist/system/server.js.map +1 -1
  46. package/dist/system/servers/jsdom.js +1 -1
  47. package/dist/system/servers/jsdom.js.map +1 -1
  48. package/dist/system/servers/node-fetch.js +1 -1
  49. package/dist/system/servers/ws.js +1 -1
  50. package/lib/crypto/hashing.js +1 -1
  51. package/lib/crypto/hashing.js.map +1 -1
  52. package/lib/fetch/createFetchWith.js.map +1 -1
  53. package/lib/{servers/fetch → fetch}/createFetchWithRetry.js +1 -1
  54. package/lib/fetch/createFetchWithRetry.js.map +1 -0
  55. package/lib/index.js +3 -0
  56. package/lib/index.js.map +1 -1
  57. package/lib/langs/deepFreeze.js +16 -0
  58. package/lib/langs/deepFreeze.js.map +1 -0
  59. package/lib/maths/clamp.js +21 -0
  60. package/lib/maths/clamp.js.map +1 -0
  61. package/lib/objects/get.js.map +1 -1
  62. package/lib/objects/set.js.map +1 -1
  63. package/lib/schema/typebox/gen/codegen/common/encoder.js +74 -0
  64. package/lib/schema/typebox/gen/codegen/common/encoder.js.map +1 -0
  65. package/lib/schema/typebox/gen/codegen/common/formatter.js +10 -0
  66. package/lib/schema/typebox/gen/codegen/common/formatter.js.map +1 -0
  67. package/lib/schema/typebox/gen/codegen/common/jsdoc.js +68 -0
  68. package/lib/schema/typebox/gen/codegen/common/jsdoc.js.map +1 -0
  69. package/lib/schema/typebox/gen/codegen/expression/compiler.js +325 -0
  70. package/lib/schema/typebox/gen/codegen/expression/compiler.js.map +1 -0
  71. package/lib/schema/typebox/gen/codegen/expression/errors.js +237 -0
  72. package/lib/schema/typebox/gen/codegen/expression/errors.js.map +1 -0
  73. package/lib/schema/typebox/gen/codegen/expression/evaluator.js +241 -0
  74. package/lib/schema/typebox/gen/codegen/expression/evaluator.js.map +1 -0
  75. package/lib/schema/typebox/gen/codegen/expression/expression.js +200 -0
  76. package/lib/schema/typebox/gen/codegen/expression/expression.js.map +1 -0
  77. package/lib/schema/typebox/gen/codegen/index.js +19 -0
  78. package/lib/schema/typebox/gen/codegen/index.js.map +1 -0
  79. package/lib/schema/typebox/gen/codegen/model/model-to-arktype.js +263 -0
  80. package/lib/schema/typebox/gen/codegen/model/model-to-arktype.js.map +1 -0
  81. package/lib/schema/typebox/gen/codegen/model/model-to-expression.js +363 -0
  82. package/lib/schema/typebox/gen/codegen/model/model-to-expression.js.map +1 -0
  83. package/lib/schema/typebox/gen/codegen/model/model-to-grpc.js +245 -0
  84. package/lib/schema/typebox/gen/codegen/model/model-to-grpc.js.map +1 -0
  85. package/lib/schema/typebox/gen/codegen/model/model-to-io-ts.js +316 -0
  86. package/lib/schema/typebox/gen/codegen/model/model-to-io-ts.js.map +1 -0
  87. package/lib/schema/typebox/gen/codegen/model/model-to-javascript.js +20 -0
  88. package/lib/schema/typebox/gen/codegen/model/model-to-javascript.js.map +1 -0
  89. package/lib/schema/typebox/gen/codegen/model/model-to-json-schema.js +171 -0
  90. package/lib/schema/typebox/gen/codegen/model/model-to-json-schema.js.map +1 -0
  91. package/lib/schema/typebox/gen/codegen/model/model-to-typebox.js +10 -0
  92. package/lib/schema/typebox/gen/codegen/model/model-to-typebox.js.map +1 -0
  93. package/lib/schema/typebox/gen/codegen/model/model-to-typescript.js +198 -0
  94. package/lib/schema/typebox/gen/codegen/model/model-to-typescript.js.map +1 -0
  95. package/lib/schema/typebox/gen/codegen/model/model-to-valibot.js +252 -0
  96. package/lib/schema/typebox/gen/codegen/model/model-to-valibot.js.map +1 -0
  97. package/lib/schema/typebox/gen/codegen/model/model-to-value.js +19 -0
  98. package/lib/schema/typebox/gen/codegen/model/model-to-value.js.map +1 -0
  99. package/lib/schema/typebox/gen/codegen/model/model-to-yrel.js +247 -0
  100. package/lib/schema/typebox/gen/codegen/model/model-to-yrel.js.map +1 -0
  101. package/lib/schema/typebox/gen/codegen/model/model-to-yup.js +249 -0
  102. package/lib/schema/typebox/gen/codegen/model/model-to-yup.js.map +1 -0
  103. package/lib/schema/typebox/gen/codegen/model/model-to-zod.js +272 -0
  104. package/lib/schema/typebox/gen/codegen/model/model-to-zod.js.map +1 -0
  105. package/lib/schema/typebox/gen/codegen/typescript/typescript-to-model.js +45 -0
  106. package/lib/schema/typebox/gen/codegen/typescript/typescript-to-model.js.map +1 -0
  107. package/lib/schema/typebox/gen/codegen/typescript/typescript-to-typebox.js +620 -0
  108. package/lib/schema/typebox/gen/codegen/typescript/typescript-to-typebox.js.map +1 -0
  109. package/lib/schema/typebox/gen/index.js +3 -0
  110. package/lib/schema/typebox/gen/index.js.map +1 -0
  111. package/lib/schema/typebox/index.js +3 -0
  112. package/lib/schema/typebox/index.js.map +1 -0
  113. package/lib/schema/typebox/typebox.js +34 -0
  114. package/lib/schema/typebox/typebox.js.map +1 -0
  115. package/lib/server.js +0 -1
  116. package/lib/server.js.map +1 -1
  117. package/lib/servers/fetch/createFetchWithProxyByUndici.js +15 -0
  118. package/lib/servers/fetch/createFetchWithProxyByUndici.js.map +1 -1
  119. package/package.json +21 -6
  120. package/src/crypto/hashing.ts +1 -1
  121. package/src/fetch/createFetchWith.ts +1 -1
  122. package/src/{servers/fetch → fetch}/createFetchWithRetry.ts +3 -3
  123. package/src/fetch/index.ts +1 -0
  124. package/src/index.ts +12 -4
  125. package/src/langs/deepFreeze.ts +19 -0
  126. package/src/langs/hashCode.ignored.ts +125 -0
  127. package/src/libs/README.md +2 -0
  128. package/src/logging/slog.ts +121 -0
  129. package/src/maths/clamp.test.ts +19 -0
  130. package/src/maths/clamp.ts +23 -1
  131. package/src/objects/get.ts +14 -14
  132. package/src/objects/set.ts +5 -5
  133. package/src/schema/typebox/gen/codegen/common/encoder.ts +99 -0
  134. package/src/schema/typebox/gen/codegen/common/formatter.ts +31 -0
  135. package/src/schema/typebox/gen/codegen/common/index.ts +29 -0
  136. package/src/schema/typebox/gen/codegen/common/jsdoc.ts +93 -0
  137. package/src/schema/typebox/gen/codegen/expression/compiler.ts +377 -0
  138. package/src/schema/typebox/gen/codegen/expression/errors.ts +302 -0
  139. package/src/schema/typebox/gen/codegen/expression/evaluator.ts +268 -0
  140. package/src/schema/typebox/gen/codegen/expression/expression.ts +538 -0
  141. package/src/schema/typebox/gen/codegen/expression/index.ts +32 -0
  142. package/src/schema/typebox/gen/codegen/index.ts +29 -0
  143. package/src/schema/typebox/gen/codegen/model/index.ts +40 -0
  144. package/src/schema/typebox/gen/codegen/model/model-to-arktype.ts +266 -0
  145. package/src/schema/typebox/gen/codegen/model/model-to-expression.ts +378 -0
  146. package/src/schema/typebox/gen/codegen/model/model-to-grpc.ts +244 -0
  147. package/src/schema/typebox/gen/codegen/model/model-to-io-ts.ts +294 -0
  148. package/src/schema/typebox/gen/codegen/model/model-to-javascript.ts +42 -0
  149. package/src/schema/typebox/gen/codegen/model/model-to-json-schema.ts +166 -0
  150. package/src/schema/typebox/gen/codegen/model/model-to-typebox.ts +32 -0
  151. package/src/schema/typebox/gen/codegen/model/model-to-typescript.ts +189 -0
  152. package/src/schema/typebox/gen/codegen/model/model-to-valibot.ts +236 -0
  153. package/src/schema/typebox/gen/codegen/model/model-to-value.ts +42 -0
  154. package/src/schema/typebox/gen/codegen/model/model-to-yrel.ts +232 -0
  155. package/src/schema/typebox/gen/codegen/model/model-to-yup.ts +226 -0
  156. package/src/schema/typebox/gen/codegen/model/model-to-zod.ts +251 -0
  157. package/src/schema/typebox/gen/codegen/model/model.ts +33 -0
  158. package/src/schema/typebox/gen/codegen/typescript/index.ts +28 -0
  159. package/src/schema/typebox/gen/codegen/typescript/typescript-to-model.ts +61 -0
  160. package/src/schema/typebox/gen/codegen/typescript/typescript-to-typebox.ts +647 -0
  161. package/src/schema/typebox/gen/gen.test.ts +12 -0
  162. package/src/schema/typebox/gen/index.ts +1 -0
  163. package/src/schema/typebox/index.ts +1 -0
  164. package/src/schema/typebox/typebox.ts +34 -0
  165. package/src/server.ts +0 -1
  166. package/src/servers/fetch/createFetchWithProxyByUndici.ts +16 -1
  167. package/src/typedoc.ts +2 -1
  168. package/src/types/index.d.ts +1 -0
  169. package/lib/servers/fetch/createFetchWithRetry.js.map +0 -1
  170. package/src/langs/hashCode.ts +0 -37
@@ -0,0 +1,2 @@
1
+ System.register(["@sinclair/typebox/value"],function(c){"use strict";var e;return{setters:[function(a){e=a.Value}],execute:function(){var n=Object.freeze({__proto__:null,Parse:(r,t)=>e.Decode(r,e.Clean(r,e.Default(r,e.Convert(r,t)))),SafeParse:(r,t)=>{let s=e.Clean(r,e.Default(r,e.Convert(r,t)));return e.Check(r,s)?{data:e.Decode(r,s),success:!0}:{errors:Array.from(e.Errors(r,[],t)),success:!1}}});c("TypeBox",n)}}});
2
+ //# sourceMappingURL=typebox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typebox.js","sources":["../../../src/schema/typebox/typebox.ts"],"sourcesContent":["import { TSchema } from '@sinclair/typebox';\nimport { Value } from '@sinclair/typebox/value';\n\n// works like zod parse\nexport const Parse = <T extends TSchema>(T: T, value: unknown) =>\n // run transform, get T\n Value.Decode(\n T,\n // remove additional\n Value.Clean(\n T,\n // add missing\n Value.Default(\n T,\n // '1' -> 1\n Value.Convert(T, value),\n ),\n ),\n );\n\nexport const SafeParse = <T extends TSchema>(T: T, value: unknown) => {\n let out = Value.Clean(T, Value.Default(T, Value.Convert(T, value)));\n if (Value.Check(T, out)) {\n // decode 也会 check\n return {\n data: Value.Decode(T, out),\n success: true,\n };\n }\n return {\n errors: Array.from(Value.Errors(T, [], value)),\n success: false,\n };\n};\n"],"names":["T","value","Value","out"],"mappings":"2KAIqB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoBA,EAAMC,CAE7CC,CAAAA,CAAAA,CAAAA,CAAAA,CAAM,CACJF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAEAE,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACJF,EAEAE,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACJF,CAEAE,CAAAA,CAAAA,CAAM,CAAQF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAGC,CAAK,CACxB,CACF,CACF,YAEuB,CAAoBD,CAAAA,CAAMC,IAAmB,CACpE,CAAA,CAAA,CAAA,CAAIE,CAAMD,CAAAA,CAAAA,CAAM,CAAMF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAGE,EAAM,CAAQF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAGE,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQF,CAAGC,CAAAA,CAAK,CAAC,CAAC,CAAA,CAClE,CAAIC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAM,CAAMF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAGG,CAAG,CAAA,CAEb,CACL,CAAA,CAAA,CAAA,CAAA,CAAMD,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOF,CAAGG,CAAAA,CAAG,EACzB,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACX,CAEK,CAAA,CACL,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAKD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAM,CAAOF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAG,CAAA,CAAA,CAAIC,CAAK,CAAC,EAC7C,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACX,CACF;"}
@@ -1,2 +1,2 @@
1
- System.register(["./getGlobalThis-8951eb0e.js","node:crypto","node:fs","node:path","node:url"],function(P,m){"use strict";var g,w,x,h,b;return{setters:[function(o){g=o.g},function(o){w=o.createHash},function(o){x=o.default},function(o){h=o.default},function(o){b=o.fileURLToPath}],execute:function(){P({createFetchWithProxyByUndici:R,createFetchWithRetry:v,getPackageDir:k,md5:F,polyfillCrypto:o});async function o(){const t=g();return"crypto"in t?!1:(t.crypto=(await m.import("node:crypto")).webcrypto,!0)}function R({proxy:t,token:p,fetch:u,undici:a}={}){if(!t)return u||globalThis.fetch;let f;return async(...d)=>{const s=d[1]||={};{const n=s.body;typeof n=="object"&&n&&(n instanceof ReadableStream||Symbol.asyncIterator in n)&&(s.duplex||="half")}if(!f){let n=t,y=p;{let c;try{c=new URL(t)}catch{}!y&&c&&(c.username||c.password)&&(y=`Basic ${btoa(`${c.username||""}:${c.password}`)}`,c.username="",c.password="",n=c.toString())}a||=m.import("undici");const l=await a,r=l.ProxyAgent;u||=l.fetch,f=new r({uri:n,token:y})}return s.dispatcher=f,await u(...d)}}const S=P("createFetchWithProxy",R);function v({fetch:t=g().fetch,retries:p=3,retryDelay:u=1e3,retryOn:a=[]}={}){return function(f,d){return new Promise(function(s,n){var y=function(r){var c=typeof Request<"u"&&f instanceof Request?f.clone():f;t(c,d).then(function(e){if(Array.isArray(a)&&a.indexOf(e.status)===-1)s(e);else if(typeof a=="function")try{return Promise.resolve(a(r,null,e)).then(function(i){i?l(r,null,e):s(e)}).catch(n)}catch(i){n(i)}else r<p?l(r,null,e):s(e)}).catch(function(e){if(typeof a=="function")try{Promise.resolve(a(r,e,null)).then(function(i){i?l(r,e,null):n(e)}).catch(function(i){n(i)})}catch(i){n(i)}else r<p?l(r,e,null):n(e)})};function l(r,c,e){let i=typeof u=="function"?u(r,c,e):u;setTimeout(function(){y(++r)},i)}y(0)})}}function F(t){return w("md5").update(t).digest("hex")}const T=b(m.meta.url),W=h.dirname(T);function k(t=W){for(;!x.existsSync(h.join(t,"package.json"));)if(t=h.resolve(t,".."),t==="/")return;return t}}}});
1
+ System.register(["./getGlobalThis-X5ifUXDI.js","./createFetchWith-TjUle-dI.js","node:crypto","node:fs","node:path","node:url"],function(y,s){"use strict";var u,l,d,p,o,g;return{setters:[function(e){u=e.g},function(e){l=e.c},function(e){d=e.createHash},function(e){p=e.default},function(e){o=e.default},function(e){g=e.fileURLToPath}],execute:function(){y({createFetchWithProxyByUndici:m,getPackageDir:W,md5:w,polyfillCrypto:e});async function e(){const t=u();return"crypto"in t?!1:(t.crypto=(await s.import("node:crypto")).webcrypto,!0)}function m({proxy:t,token:j,fetch:i,undici:x}={}){if(!t)return i||globalThis.fetch;if(u().Bun)return l({fetch:i,onRequest:({url:a,req:c,next:n})=>n(a,{...c,proxy:t})});let f;return async(...a)=>{const c=a[1]||={};{const n=c.body;typeof n=="object"&&n&&(n instanceof ReadableStream||Symbol.asyncIterator in n)&&(c.duplex||="half")}if(!f){let n=t,h=j;{let r;try{r=new URL(t)}catch{}!h&&r&&(r.username||r.password)&&(h=`Basic ${btoa(`${r.username||""}:${r.password}`)}`,r.username="",r.password="",n=r.toString())}x||=s.import("undici");const b=await x,k=b.ProxyAgent;i||=b.fetch,f=new k({uri:n,token:h})}return c.dispatcher=f,await i(...a)}}const R=y("createFetchWithProxy",m);function w(t){return d("md5").update(t).digest("hex")}const P=g(s.meta.url),F=o.dirname(P);function W(t=F){for(;!p.existsSync(o.join(t,"package.json"));)if(t=o.resolve(t,".."),t==="/")return;return t}}}});
2
2
  //# sourceMappingURL=server.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sources":["../../src/servers/polyfill/polyfillCrypto.ts","../../src/servers/fetch/createFetchWithProxyByUndici.ts","../../src/servers/fetch/createFetchWithProxy.ts","../../src/servers/fetch/createFetchWithRetry.ts","../../src/servers/crypto/md5.ts","../../src/servers/getPackageDir.ts"],"sourcesContent":["import { getGlobalThis } from '../../isomorphics/getGlobalThis';\n\nexport async function polyfillCrypto() {\n const globalThis = getGlobalThis();\n if ('crypto' in globalThis) {\n return false;\n }\n (globalThis as any).crypto = (await import('node:crypto')).webcrypto as Crypto;\n return true;\n}\n","import { MaybePromise } from '../../asyncs/MaybePromise';\nimport { FetchLike } from '../../fetch';\n\nexport function createFetchWithProxyByUndici({\n proxy,\n token: _token,\n fetch,\n undici,\n}: {\n proxy?: string;\n token?: string;\n fetch?: FetchLike;\n undici?: MaybePromise<{ fetch: any; ProxyAgent: any }>;\n} = {}): FetchLike {\n if (!proxy) {\n return fetch || globalThis.fetch;\n }\n let agent: any;\n // https://github.com/nodejs/undici/blob/main/docs/best-practices/proxy.md\n return async (...args) => {\n const init = (args[1] ||= {}) as RequestInit & {\n duplex?: string;\n dispatcher?: any;\n };\n {\n const body = init.body;\n if (typeof body === 'object' && body && (body instanceof ReadableStream || Symbol.asyncIterator in body)) {\n // request.duplex must be set if request.body is ReadableStream or Async Iterables\n init.duplex ||= 'half';\n }\n }\n if (!agent) {\n let uri = proxy;\n let token = _token;\n {\n let u: URL | undefined;\n try {\n u = new URL(proxy);\n } catch (e) {}\n if (!token && u && (u.username || u.password)) {\n token = `Basic ${btoa(`${u.username || ''}:${u.password}`)}`;\n u.username = '';\n u.password = '';\n uri = u.toString();\n }\n }\n // if in next use 'next/dist/compiled/undici'\n undici ||= import('undici');\n const mod = await undici;\n const ProxyAgent = mod.ProxyAgent as new (_: any) => any;\n fetch ||= mod.fetch as FetchLike;\n // https://github.com/nodejs/undici/blob/main/docs/api/ProxyAgent.md\n agent = new ProxyAgent({\n uri,\n token,\n });\n // https://github.com/nodejs/node/issues/43187#issuecomment-1134634174\n // (global as any)[Symbol.for('undici.globalDispatcher.1')] = agent;\n // fixme should unwrap error https://github.com/nodejs/undici/issues/1248\n }\n init.dispatcher = agent;\n return await fetch!(...args);\n };\n}\n","import { createFetchWithProxyByUndici } from './createFetchWithProxyByUndici';\n\nexport const createFetchWithProxy = createFetchWithProxyByUndici;\n","import { FetchLike } from '../../fetch';\nimport { getGlobalThis } from '../../isomorphics/getGlobalThis';\n\ntype RequestDelayFunction = (attempt: number, error: Error | null, response: Response | null) => number;\ntype RequestRetryOnFunction = (\n attempt: number,\n error: Error | null,\n response: Response | null,\n) => boolean | Promise<boolean>;\n\nexport interface FetchWithRetryOptions {\n fetch?: FetchLike;\n retries?: number;\n retryDelay?: number | RequestDelayFunction;\n retryOn?: number[] | RequestRetryOnFunction;\n}\n\nexport function createFetchWithRetry({\n fetch = getGlobalThis().fetch,\n retries = 3,\n retryDelay = 1000,\n retryOn = [],\n}: FetchWithRetryOptions = {}): FetchLike {\n // https://github.com/jonbern/fetch-retry/blob/master/index.js\n\n return function fetchRetry(input: string | Request, init?: RequestInit) {\n return new Promise(function (resolve, reject) {\n var wrappedFetch = function (attempt: number) {\n // As of node 18, this is no longer needed since node comes with native support for fetch:\n /* istanbul ignore next */\n var _input = typeof Request !== 'undefined' && input instanceof Request ? input.clone() : input;\n fetch(_input, init)\n .then(function (response) {\n if (Array.isArray(retryOn) && retryOn.indexOf(response.status) === -1) {\n resolve(response);\n } else if (typeof retryOn === 'function') {\n try {\n return Promise.resolve(retryOn(attempt, null, response))\n .then(function (retryOnResponse) {\n if (retryOnResponse) {\n retry(attempt, null, response);\n } else {\n resolve(response);\n }\n })\n .catch(reject);\n } catch (error) {\n reject(error);\n }\n } else {\n if (attempt < retries) {\n retry(attempt, null, response);\n } else {\n resolve(response);\n }\n }\n return;\n })\n .catch(function (error) {\n if (typeof retryOn === 'function') {\n try {\n // eslint-disable-next-line no-undef\n Promise.resolve(retryOn(attempt, error, null))\n .then(function (retryOnResponse) {\n if (retryOnResponse) {\n retry(attempt, error, null);\n } else {\n reject(error);\n }\n })\n .catch(function (error) {\n reject(error);\n });\n } catch (error) {\n reject(error);\n }\n } else if (attempt < retries) {\n retry(attempt, error, null);\n } else {\n reject(error);\n }\n });\n };\n\n function retry(attempt: number, error: any, response: Response | null) {\n let delay = typeof retryDelay === 'function' ? retryDelay(attempt, error, response) : retryDelay;\n setTimeout(function () {\n wrappedFetch(++attempt);\n }, delay);\n }\n\n wrappedFetch(0);\n });\n };\n}\n","import { createHash } from 'node:crypto';\n\nexport function md5(input: Buffer | string) {\n return createHash('md5').update(input).digest('hex') as string;\n}\n","import fs from 'node:fs';\nimport path from 'node:path';\nimport { fileURLToPath } from 'node:url';\n\nconst __filename = fileURLToPath(import.meta.url);\nconst __dirname = path.dirname(__filename);\n\nexport function getPackageDir(currentDir: string = __dirname) {\n while (!fs.existsSync(path.join(currentDir, 'package.json'))) {\n currentDir = path.resolve(currentDir, '..');\n if (currentDir === '/') {\n return undefined;\n }\n }\n return currentDir;\n}\n"],"names":["polyfillCrypto","globalThis","getGlobalThis","module","createFetchWithProxyByUndici","proxy","_token","fetch","undici","agent","args","init","body","uri","token","u","mod","ProxyAgent","createFetchWithProxy","createFetchWithRetry","retries","retryDelay","retryOn","input","resolve","reject","wrappedFetch","attempt","_input","response","retryOnResponse","retry","error","delay","md5","createHash","__filename","fileURLToPath","__dirname","path","getPackageDir","currentDir","fs"],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sources":["../../src/servers/polyfill/polyfillCrypto.ts","../../src/servers/fetch/createFetchWithProxyByUndici.ts","../../src/servers/fetch/createFetchWithProxy.ts","../../src/servers/crypto/md5.ts","../../src/servers/getPackageDir.ts"],"sourcesContent":["import { getGlobalThis } from '../../isomorphics/getGlobalThis';\n\nexport async function polyfillCrypto() {\n const globalThis = getGlobalThis();\n if ('crypto' in globalThis) {\n return false;\n }\n (globalThis as any).crypto = (await import('node:crypto')).webcrypto as Crypto;\n return true;\n}\n","import { MaybePromise } from '../../asyncs/MaybePromise';\nimport { createFetchWith, FetchLike } from '../../fetch';\nimport { getGlobalThis } from '../../isomorphics/getGlobalThis';\n\nexport function createFetchWithProxyByUndici({\n proxy,\n token: _token,\n fetch,\n undici,\n}: {\n proxy?: string;\n token?: string;\n fetch?: FetchLike;\n undici?: MaybePromise<{ fetch: any; ProxyAgent: any }>;\n} = {}): FetchLike {\n if (!proxy) {\n return fetch || globalThis.fetch;\n }\n\n if ((getGlobalThis() as any).Bun) {\n return createFetchWith({\n fetch,\n onRequest: ({ url, req, next }) => {\n return next(url, {\n ...req,\n // https://github.com/oven-sh/bun/issues/1829\n proxy,\n } as RequestInit);\n },\n });\n }\n\n let agent: any;\n // https://github.com/nodejs/undici/blob/main/docs/best-practices/proxy.md\n return async (...args) => {\n const init = (args[1] ||= {}) as RequestInit & {\n duplex?: string;\n dispatcher?: any;\n };\n {\n const body = init.body;\n if (typeof body === 'object' && body && (body instanceof ReadableStream || Symbol.asyncIterator in body)) {\n // request.duplex must be set if request.body is ReadableStream or Async Iterables\n init.duplex ||= 'half';\n }\n }\n if (!agent) {\n let uri = proxy;\n let token = _token;\n {\n let u: URL | undefined;\n try {\n u = new URL(proxy);\n } catch (e) {}\n if (!token && u && (u.username || u.password)) {\n token = `Basic ${btoa(`${u.username || ''}:${u.password}`)}`;\n u.username = '';\n u.password = '';\n uri = u.toString();\n }\n }\n // if in next use 'next/dist/compiled/undici'\n undici ||= import('undici');\n const mod = await undici;\n const ProxyAgent = mod.ProxyAgent as new (_: any) => any;\n fetch ||= mod.fetch as FetchLike;\n // https://github.com/nodejs/undici/blob/main/docs/api/ProxyAgent.md\n agent = new ProxyAgent({\n uri,\n token,\n });\n // https://github.com/nodejs/node/issues/43187#issuecomment-1134634174\n // (global as any)[Symbol.for('undici.globalDispatcher.1')] = agent;\n // fixme should unwrap error https://github.com/nodejs/undici/issues/1248\n }\n init.dispatcher = agent;\n return await fetch!(...args);\n };\n}\n","import { createFetchWithProxyByUndici } from './createFetchWithProxyByUndici';\n\nexport const createFetchWithProxy = createFetchWithProxyByUndici;\n","import { createHash } from 'node:crypto';\n\nexport function md5(input: Buffer | string) {\n return createHash('md5').update(input).digest('hex') as string;\n}\n","import fs from 'node:fs';\nimport path from 'node:path';\nimport { fileURLToPath } from 'node:url';\n\nconst __filename = fileURLToPath(import.meta.url);\nconst __dirname = path.dirname(__filename);\n\nexport function getPackageDir(currentDir: string = __dirname) {\n while (!fs.existsSync(path.join(currentDir, 'package.json'))) {\n currentDir = path.resolve(currentDir, '..');\n if (currentDir === '/') {\n return undefined;\n }\n }\n return currentDir;\n}\n"],"names":["polyfillCrypto","globalThis","getGlobalThis","module","createFetchWithProxyByUndici","proxy","_token","fetch","undici","createFetchWith","url","req","next","agent","args","init","body","uri","token","u","mod","ProxyAgent","createFetchWithProxy","md5","input","createHash","__filename","fileURLToPath","__dirname","path","getPackageDir","currentDir","fs"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- System.register(["../getGlobalThis-8951eb0e.js"],function(f,a){"use strict";var i;return{setters:[function(s){i=s.g}],execute:function(){f("polyfillJsDom",s);async function s(){if(typeof window<"u")return!1;const c=i(),{ResourceLoader:y,JSDOM:g}=await a.import("jsdom");class u{constructor(n={}){const{proxy:o,strictSSL:r,userAgent:e,...d}=n,O=new y({proxy:o,strictSSL:r,userAgent:e});return new g("",Object.assign(d,{resources:O})).window}}const l={},p=(()=>Object.getOwnPropertyNames(new u(l)).filter(t=>typeof c[t]<"u"))();function w(...t){const n=t.filter(e=>Array.isArray(e))[0],o=t.filter(e=>!Array.isArray(e))[0],r=new u(Object.assign({},o,l));return Object.getOwnPropertyNames(r).filter(e=>!p.includes(e)).filter(e=>!(n&&n.indexOf(e)===-1)).filter(e=>{switch(e){case"undefined":return!1}return!0}).forEach(e=>{Object.defineProperty(c,e,{configurable:!0,get:()=>r[e]})}),r}return w({url:"http://localhost"}),!0}}}});
1
+ System.register(["../getGlobalThis-X5ifUXDI.js"],function(f,a){"use strict";var i;return{setters:[function(s){i=s.g}],execute:function(){f("polyfillJsDom",s);async function s(){if(typeof window<"u")return!1;const c=i(),{ResourceLoader:y,JSDOM:g}=await a.import("jsdom");class u{constructor(n={}){const{proxy:o,strictSSL:r,userAgent:e,...d}=n,O=new y({proxy:o,strictSSL:r,userAgent:e});return new g("",Object.assign(d,{resources:O})).window}}const l={},p=Object.getOwnPropertyNames(new u(l)).filter(t=>typeof c[t]<"u");function w(...t){const n=t.filter(e=>Array.isArray(e))[0],o=t.filter(e=>!Array.isArray(e))[0],r=new u(Object.assign({},o,l));return Object.getOwnPropertyNames(r).filter(e=>!p.includes(e)).filter(e=>!(n&&n.indexOf(e)===-1)).filter(e=>{switch(e){case"undefined":return!1}return!0}).forEach(e=>{Object.defineProperty(c,e,{configurable:!0,get:()=>r[e]})}),r}return w({url:"http://localhost"}),!0}}}});
2
2
  //# sourceMappingURL=jsdom.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"jsdom.js","sources":["../../../src/servers/polyfill/polyfillJsDom.ts"],"sourcesContent":["import type { ConstructorOptions, ResourceLoaderConstructorOptions } from 'jsdom';\nimport { getGlobalThis } from '../../isomorphics/getGlobalThis';\n\nexport async function polyfillJsDom() {\n if (typeof window !== 'undefined') {\n return false;\n }\n\n const globalThis = getGlobalThis();\n\n const { ResourceLoader, JSDOM } = await import('jsdom');\n\n // https://github.com/lukechilds/window/blob/master/src/index.js\n // eslint-disable-next-line @typescript-eslint/no-extraneous-class\n class Window {\n constructor(opts: ResourceLoaderConstructorOptions & ConstructorOptions = {}) {\n const { proxy, strictSSL, userAgent, ...jsdomOpts } = opts;\n const resources = new ResourceLoader({\n proxy,\n strictSSL,\n userAgent,\n });\n return new JSDOM(\n '',\n Object.assign(jsdomOpts, {\n resources,\n }),\n ).window;\n }\n }\n\n // https://github.com/lukechilds/browser-env/blob/master/src/index.js\n // Default jsdom config.\n // These settings must override any custom settings to make sure we can iterate\n // over the window object.\n const defaultJsdomConfig = {\n // features: {\n // FetchExternalResources: false,\n // ProcessExternalResources: false,\n // },\n };\n // IIFE executed on import to return an array of global Node.js properties that\n // conflict with global browser properties.\n const protectedProperties = (() =>\n Object.getOwnPropertyNames(new Window(defaultJsdomConfig)).filter(\n (prop) => typeof globalThis[prop as keyof typeof globalThis] !== 'undefined',\n ))();\n\n function installEnv(...args: any[]) {\n // Sets up global browser environment\n // Extract options from args\n const properties = args.filter((arg: any) => Array.isArray(arg))[0];\n const userJsdomConfig = args.filter((arg: any) => !Array.isArray(arg))[0];\n\n // Create window object\n const window = new Window(Object.assign({}, userJsdomConfig, defaultJsdomConfig));\n\n // Get all global browser properties\n Object.getOwnPropertyNames(window)\n\n // Remove protected properties\n .filter((prop) => !protectedProperties.includes(prop))\n\n // If we're only applying specific required properties remove everything else\n .filter((prop) => !(properties && properties.indexOf(prop) === -1))\n .filter((prop) => {\n switch (prop) {\n case 'undefined':\n return false;\n }\n return true;\n })\n\n // Copy what's left to the Node.js global scope\n .forEach((prop) => {\n // console.debug(`define globalThis.${prop}`);\n Object.defineProperty(globalThis, prop, {\n configurable: true,\n get: () => window[prop as keyof Window] as any,\n });\n });\n\n return window;\n }\n\n installEnv({ url: 'http://localhost' });\n return true;\n}\n"],"names":["polyfillJsDom","globalThis","getGlobalThis","ResourceLoader","JSDOM","Window","opts","proxy","strictSSL","userAgent","jsdomOpts","resources","defaultJsdomConfig","protectedProperties","prop","installEnv","args","properties","arg","userJsdomConfig","window"],"mappings":"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"}
1
+ {"version":3,"file":"jsdom.js","sources":["../../../src/servers/polyfill/polyfillJsDom.ts"],"sourcesContent":["import type { ConstructorOptions, ResourceLoaderConstructorOptions } from 'jsdom';\nimport { getGlobalThis } from '../../isomorphics/getGlobalThis';\n\nexport async function polyfillJsDom() {\n if (typeof window !== 'undefined') {\n return false;\n }\n\n const globalThis = getGlobalThis();\n\n const { ResourceLoader, JSDOM } = await import('jsdom');\n\n // https://github.com/lukechilds/window/blob/master/src/index.js\n // eslint-disable-next-line @typescript-eslint/no-extraneous-class\n class Window {\n constructor(opts: ResourceLoaderConstructorOptions & ConstructorOptions = {}) {\n const { proxy, strictSSL, userAgent, ...jsdomOpts } = opts;\n const resources = new ResourceLoader({\n proxy,\n strictSSL,\n userAgent,\n });\n return new JSDOM(\n '',\n Object.assign(jsdomOpts, {\n resources,\n }),\n ).window;\n }\n }\n\n // https://github.com/lukechilds/browser-env/blob/master/src/index.js\n // Default jsdom config.\n // These settings must override any custom settings to make sure we can iterate\n // over the window object.\n const defaultJsdomConfig = {\n // features: {\n // FetchExternalResources: false,\n // ProcessExternalResources: false,\n // },\n };\n // IIFE executed on import to return an array of global Node.js properties that\n // conflict with global browser properties.\n const protectedProperties = (() =>\n Object.getOwnPropertyNames(new Window(defaultJsdomConfig)).filter(\n (prop) => typeof globalThis[prop as keyof typeof globalThis] !== 'undefined',\n ))();\n\n function installEnv(...args: any[]) {\n // Sets up global browser environment\n // Extract options from args\n const properties = args.filter((arg: any) => Array.isArray(arg))[0];\n const userJsdomConfig = args.filter((arg: any) => !Array.isArray(arg))[0];\n\n // Create window object\n const window = new Window(Object.assign({}, userJsdomConfig, defaultJsdomConfig));\n\n // Get all global browser properties\n Object.getOwnPropertyNames(window)\n\n // Remove protected properties\n .filter((prop) => !protectedProperties.includes(prop))\n\n // If we're only applying specific required properties remove everything else\n .filter((prop) => !(properties && properties.indexOf(prop) === -1))\n .filter((prop) => {\n switch (prop) {\n case 'undefined':\n return false;\n }\n return true;\n })\n\n // Copy what's left to the Node.js global scope\n .forEach((prop) => {\n // console.debug(`define globalThis.${prop}`);\n Object.defineProperty(globalThis, prop, {\n configurable: true,\n get: () => window[prop as keyof Window] as any,\n });\n });\n\n return window;\n }\n\n installEnv({ url: 'http://localhost' });\n return true;\n}\n"],"names":["polyfillJsDom","globalThis","getGlobalThis","ResourceLoader","JSDOM","Window","opts","proxy","strictSSL","userAgent","jsdomOpts","resources","defaultJsdomConfig","protectedProperties","prop","installEnv","args","properties","arg","userJsdomConfig","window"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- System.register(["../getGlobalThis-8951eb0e.js"],function(F,f){"use strict";var u;return{setters:[function(c){u=c.g}],execute:function(){F({createFetchWithProxyByNodeFetch:g,polyfillFetch:c});function c(o){if("fetch"in globalThis)return!1;if(o){const{default:t,Response:i,Headers:e,Request:s,AbortError:n,FetchError:a,FormData:r,Blob:h,File:l}=o;return Object.assign(globalThis,{fetch:t,Response:i,Headers:e,Request:s,AbortError:n,FetchError:a,FormData:r,Blob:h,File:l}),!0}return f.import("node-fetch").then(t=>c(t))}function g({proxy:o,fetch:t}={}){const i=u();if(!o)return t||i.fetch;let e;const s=i.Request;let n,a;return async(r,h)=>{if(!e){const{default:l}=await f.import("https-proxy-agent");e=l(o)}return n||({Request:n,default:a}=await f.import("node-fetch")),t||=a,r instanceof s?t(new s(r,{agent:e})):r instanceof n?t(new n(r,{agent:e})):t(r,{...h,agent:e})}}}}});
1
+ System.register(["../getGlobalThis-X5ifUXDI.js"],function(F,f){"use strict";var u;return{setters:[function(c){u=c.g}],execute:function(){F({createFetchWithProxyByNodeFetch:g,polyfillFetch:c});function c(o){if("fetch"in globalThis)return!1;if(o){const{default:t,Response:i,Headers:e,Request:s,AbortError:n,FetchError:a,FormData:r,Blob:h,File:l}=o;return Object.assign(globalThis,{fetch:t,Response:i,Headers:e,Request:s,AbortError:n,FetchError:a,FormData:r,Blob:h,File:l}),!0}return f.import("node-fetch").then(t=>c(t))}function g({proxy:o,fetch:t}={}){const i=u();if(!o)return t||i.fetch;let e;const s=i.Request;let n,a;return async(r,h)=>{if(!e){const{default:l}=await f.import("https-proxy-agent");e=l(o)}return n||({Request:n,default:a}=await f.import("node-fetch")),t||=a,r instanceof s?t(new s(r,{agent:e})):r instanceof n?t(new n(r,{agent:e})):t(r,{...h,agent:e})}}}}});
2
2
  //# sourceMappingURL=node-fetch.js.map
@@ -1,2 +1,2 @@
1
- System.register(["../getGlobalThis-8951eb0e.js"],function(c,s){"use strict";var o;return{setters:[function(t){o=t.g}],execute:function(){c("polyfillWebSocket",t);function t(n){const i=o();if("WebSocket"in i)return!1;if(n){const{WebSocket:e}=n;Object.assign(i,{WebSocket:e})}return s.import("ws").then(e=>t(e))}}}});
1
+ System.register(["../getGlobalThis-X5ifUXDI.js"],function(c,s){"use strict";var o;return{setters:[function(t){o=t.g}],execute:function(){c("polyfillWebSocket",t);function t(n){const i=o();if("WebSocket"in i)return!1;if(n){const{WebSocket:e}=n;Object.assign(i,{WebSocket:e})}return s.import("ws").then(e=>t(e))}}}});
2
2
  //# sourceMappingURL=ws.js.map
@@ -14,7 +14,7 @@ function sha512(s, o) {
14
14
  }
15
15
  function digestOf(a, s, o) {
16
16
  let buffer = crypto.subtle.digest(a, binaryOf(s));
17
- return o ? buffer.then((v) => encode(v, o)) : o;
17
+ return o ? buffer.then((v) => encode(v, o)) : buffer;
18
18
  }
19
19
  function binaryOf(s) {
20
20
  if (typeof s === "string") {
@@ -1 +1 @@
1
- {"version":3,"file":"hashing.js","sources":["../../src/crypto/hashing.ts"],"sourcesContent":["import { ArrayBuffers } from '../io/ArrayBuffers';\n\nexport function sha1(s: BinaryLike, o?: undefined): Promise<Buffer>;\nexport function sha1(s: BinaryLike, o: 'hex' | 'base64'): Promise<string>;\n\nexport function sha1(s: BinaryLike, o?: DigestOptions) {\n return digestOf('SHA-1', s, o);\n}\n\nexport function sha256(s: BinaryLike, o?: undefined): Promise<Buffer>;\nexport function sha256(s: BinaryLike, o: 'hex' | 'base64'): Promise<string>;\n\nexport function sha256(s: BinaryLike, o?: DigestOptions) {\n return digestOf('SHA-256', s, o);\n}\n\nexport function sha384(s: BinaryLike, o?: undefined): Promise<Buffer>;\nexport function sha384(s: BinaryLike, o: 'hex' | 'base64'): Promise<string>;\n\nexport function sha384(s: BinaryLike, o?: DigestOptions) {\n return digestOf('SHA-384', s, o);\n}\n\nexport function sha512(s: BinaryLike, o?: undefined): Promise<Buffer>;\nexport function sha512(s: BinaryLike, o: 'hex' | 'base64'): Promise<string>;\n\nexport function sha512(s: BinaryLike, o?: DigestOptions) {\n return digestOf('SHA-512', s, o);\n}\n\nfunction digestOf(a: string, s: BinaryLike, o?: DigestOptions) {\n let buffer = crypto.subtle.digest(a, binaryOf(s));\n return o ? buffer.then((v) => encode(v, o)) : o;\n}\n\nexport type DigestOptions =\n | 'hex'\n | 'base64'\n | {\n encoding: 'hex' | 'base64';\n };\n\ntype BinaryLike = string | BufferSource;\n\nfunction binaryOf(s: BinaryLike) {\n // ArrayBuffer, TypedArray, DataView\n if (typeof s === 'string') {\n return new TextEncoder().encode(s);\n }\n // ArrayBuffer, Buffer, TypedArray, DataView\n return s;\n}\n\nfunction encode(buf: BufferSource, o?: DigestOptions) {\n if (o) {\n switch (o) {\n case 'hex':\n case 'base64':\n return ArrayBuffers.toString(buf, o);\n }\n }\n return buf;\n}\n\ntype StringEncoding = 'hex' | 'base64';\ntype IsStringCoding<T> = T extends StringEncoding ? true : T extends { encoding: StringEncoding } ? true : false;\n\nexport function hmac<O extends DigestOptions>(\n hash: 'SHA-1' | 'SHA-256' | 'SHA-384' | 'SHA-512' | 'sha1' | 'sha256' | 'sha384' | 'sha512',\n key: BinaryLike | CryptoKey,\n data: BinaryLike,\n o?: O,\n): Promise<IsStringCoding<O> extends true ? string : Buffer>;\n\nexport async function hmac(\n hash: 'SHA-1' | 'SHA-256' | 'SHA-384' | 'SHA-512' | 'sha1' | 'sha256' | 'sha384' | 'sha512',\n key: BinaryLike | CryptoKey,\n data: BinaryLike,\n o?: DigestOptions,\n) {\n let ck =\n key instanceof CryptoKey\n ? key\n : await crypto.subtle.importKey(\n 'raw',\n binaryOf(key),\n {\n name: 'HMAC',\n hash: {\n name: normalizeHash(hash),\n },\n },\n false,\n ['sign'],\n );\n let buffer = await crypto.subtle.sign(\n {\n name: 'HMAC',\n hash: {\n name: hash,\n },\n },\n ck,\n binaryOf(data),\n );\n\n return encode(buffer, o);\n}\n\nfunction normalizeHash(hash: string) {\n return hash.replace(/^sha/i, 'SHA-');\n}\n"],"names":[],"mappings":";;AAKgB,SAAA,IAAA,CAAK,GAAe,CAAmB,EAAA;AACrD,EAAO,OAAA,QAAA,CAAS,OAAS,EAAA,CAAA,EAAG,CAAC,CAAA,CAAA;AAC/B,CAAA;AAKgB,SAAA,MAAA,CAAO,GAAe,CAAmB,EAAA;AACvD,EAAO,OAAA,QAAA,CAAS,SAAW,EAAA,CAAA,EAAG,CAAC,CAAA,CAAA;AACjC,CAAA;AAKgB,SAAA,MAAA,CAAO,GAAe,CAAmB,EAAA;AACvD,EAAO,OAAA,QAAA,CAAS,SAAW,EAAA,CAAA,EAAG,CAAC,CAAA,CAAA;AACjC,CAAA;AAKgB,SAAA,MAAA,CAAO,GAAe,CAAmB,EAAA;AACvD,EAAO,OAAA,QAAA,CAAS,SAAW,EAAA,CAAA,EAAG,CAAC,CAAA,CAAA;AACjC,CAAA;AAEA,SAAS,QAAA,CAAS,CAAW,EAAA,CAAA,EAAe,CAAmB,EAAA;AAC7D,EAAA,IAAI,SAAS,MAAO,CAAA,MAAA,CAAO,OAAO,CAAG,EAAA,QAAA,CAAS,CAAC,CAAC,CAAA,CAAA;AAChD,EAAO,OAAA,CAAA,GAAI,OAAO,IAAK,CAAA,CAAC,MAAM,MAAO,CAAA,CAAA,EAAG,CAAC,CAAC,CAAI,GAAA,CAAA,CAAA;AAChD,CAAA;AAWA,SAAS,SAAS,CAAe,EAAA;AAE/B,EAAI,IAAA,OAAO,MAAM,QAAU,EAAA;AACzB,IAAA,OAAO,IAAI,WAAA,EAAc,CAAA,MAAA,CAAO,CAAC,CAAA,CAAA;AAAA,GACnC;AAEA,EAAO,OAAA,CAAA,CAAA;AACT,CAAA;AAEA,SAAS,MAAA,CAAO,KAAmB,CAAmB,EAAA;AACpD,EAAA,IAAI,CAAG,EAAA;AACL,IAAA,QAAQ,CAAG;AAAA,MACT,KAAK,KAAA,CAAA;AAAA,MACL,KAAK,QAAA;AACH,QAAO,OAAA,YAAA,CAAa,QAAS,CAAA,GAAA,EAAK,CAAC,CAAA,CAAA;AAAA,KACvC;AAAA,GACF;AACA,EAAO,OAAA,GAAA,CAAA;AACT,CAAA;AAYA,eAAsB,IACpB,CAAA,IAAA,EACA,GACA,EAAA,IAAA,EACA,CACA,EAAA;AACA,EAAA,IAAI,KACF,GAAe,YAAA,SAAA,GACX,GACA,GAAA,MAAM,OAAO,MAAO,CAAA,SAAA;AAAA,IAClB,KAAA;AAAA,IACA,SAAS,GAAG,CAAA;AAAA,IACZ;AAAA,MACE,IAAM,EAAA,MAAA;AAAA,MACN,IAAM,EAAA;AAAA,QACJ,IAAA,EAAM,cAAc,IAAI,CAAA;AAAA,OAC1B;AAAA,KACF;AAAA,IACA,KAAA;AAAA,IACA,CAAC,MAAM,CAAA;AAAA,GACT,CAAA;AACN,EAAI,IAAA,MAAA,GAAS,MAAM,MAAA,CAAO,MAAO,CAAA,IAAA;AAAA,IAC/B;AAAA,MACE,IAAM,EAAA,MAAA;AAAA,MACN,IAAM,EAAA;AAAA,QACJ,IAAM,EAAA,IAAA;AAAA,OACR;AAAA,KACF;AAAA,IACA,EAAA;AAAA,IACA,SAAS,IAAI,CAAA;AAAA,GACf,CAAA;AAEA,EAAO,OAAA,MAAA,CAAO,QAAQ,CAAC,CAAA,CAAA;AACzB,CAAA;AAEA,SAAS,cAAc,IAAc,EAAA;AACnC,EAAO,OAAA,IAAA,CAAK,OAAQ,CAAA,OAAA,EAAS,MAAM,CAAA,CAAA;AACrC;;;;"}
1
+ {"version":3,"file":"hashing.js","sources":["../../src/crypto/hashing.ts"],"sourcesContent":["import { ArrayBuffers } from '../io/ArrayBuffers';\n\nexport function sha1(s: BinaryLike, o?: undefined): Promise<Buffer>;\nexport function sha1(s: BinaryLike, o: 'hex' | 'base64'): Promise<string>;\n\nexport function sha1(s: BinaryLike, o?: DigestOptions) {\n return digestOf('SHA-1', s, o);\n}\n\nexport function sha256(s: BinaryLike, o?: undefined): Promise<Buffer>;\nexport function sha256(s: BinaryLike, o: 'hex' | 'base64'): Promise<string>;\n\nexport function sha256(s: BinaryLike, o?: DigestOptions) {\n return digestOf('SHA-256', s, o);\n}\n\nexport function sha384(s: BinaryLike, o?: undefined): Promise<Buffer>;\nexport function sha384(s: BinaryLike, o: 'hex' | 'base64'): Promise<string>;\n\nexport function sha384(s: BinaryLike, o?: DigestOptions) {\n return digestOf('SHA-384', s, o);\n}\n\nexport function sha512(s: BinaryLike, o?: undefined): Promise<Buffer>;\nexport function sha512(s: BinaryLike, o: 'hex' | 'base64'): Promise<string>;\n\nexport function sha512(s: BinaryLike, o?: DigestOptions) {\n return digestOf('SHA-512', s, o);\n}\n\nfunction digestOf(a: string, s: BinaryLike, o?: DigestOptions) {\n let buffer = crypto.subtle.digest(a, binaryOf(s));\n return o ? buffer.then((v) => encode(v, o)) : buffer;\n}\n\nexport type DigestOptions =\n | 'hex'\n | 'base64'\n | {\n encoding: 'hex' | 'base64';\n };\n\ntype BinaryLike = string | BufferSource;\n\nfunction binaryOf(s: BinaryLike) {\n // ArrayBuffer, TypedArray, DataView\n if (typeof s === 'string') {\n return new TextEncoder().encode(s);\n }\n // ArrayBuffer, Buffer, TypedArray, DataView\n return s;\n}\n\nfunction encode(buf: BufferSource, o?: DigestOptions) {\n if (o) {\n switch (o) {\n case 'hex':\n case 'base64':\n return ArrayBuffers.toString(buf, o);\n }\n }\n return buf;\n}\n\ntype StringEncoding = 'hex' | 'base64';\ntype IsStringCoding<T> = T extends StringEncoding ? true : T extends { encoding: StringEncoding } ? true : false;\n\nexport function hmac<O extends DigestOptions>(\n hash: 'SHA-1' | 'SHA-256' | 'SHA-384' | 'SHA-512' | 'sha1' | 'sha256' | 'sha384' | 'sha512',\n key: BinaryLike | CryptoKey,\n data: BinaryLike,\n o?: O,\n): Promise<IsStringCoding<O> extends true ? string : Buffer>;\n\nexport async function hmac(\n hash: 'SHA-1' | 'SHA-256' | 'SHA-384' | 'SHA-512' | 'sha1' | 'sha256' | 'sha384' | 'sha512',\n key: BinaryLike | CryptoKey,\n data: BinaryLike,\n o?: DigestOptions,\n) {\n let ck =\n key instanceof CryptoKey\n ? key\n : await crypto.subtle.importKey(\n 'raw',\n binaryOf(key),\n {\n name: 'HMAC',\n hash: {\n name: normalizeHash(hash),\n },\n },\n false,\n ['sign'],\n );\n let buffer = await crypto.subtle.sign(\n {\n name: 'HMAC',\n hash: {\n name: hash,\n },\n },\n ck,\n binaryOf(data),\n );\n\n return encode(buffer, o);\n}\n\nfunction normalizeHash(hash: string) {\n return hash.replace(/^sha/i, 'SHA-');\n}\n"],"names":[],"mappings":";;AAKgB,SAAA,IAAA,CAAK,GAAe,CAAmB,EAAA;AACrD,EAAO,OAAA,QAAA,CAAS,OAAS,EAAA,CAAA,EAAG,CAAC,CAAA,CAAA;AAC/B,CAAA;AAKgB,SAAA,MAAA,CAAO,GAAe,CAAmB,EAAA;AACvD,EAAO,OAAA,QAAA,CAAS,SAAW,EAAA,CAAA,EAAG,CAAC,CAAA,CAAA;AACjC,CAAA;AAKgB,SAAA,MAAA,CAAO,GAAe,CAAmB,EAAA;AACvD,EAAO,OAAA,QAAA,CAAS,SAAW,EAAA,CAAA,EAAG,CAAC,CAAA,CAAA;AACjC,CAAA;AAKgB,SAAA,MAAA,CAAO,GAAe,CAAmB,EAAA;AACvD,EAAO,OAAA,QAAA,CAAS,SAAW,EAAA,CAAA,EAAG,CAAC,CAAA,CAAA;AACjC,CAAA;AAEA,SAAS,QAAA,CAAS,CAAW,EAAA,CAAA,EAAe,CAAmB,EAAA;AAC7D,EAAA,IAAI,SAAS,MAAO,CAAA,MAAA,CAAO,OAAO,CAAG,EAAA,QAAA,CAAS,CAAC,CAAC,CAAA,CAAA;AAChD,EAAO,OAAA,CAAA,GAAI,OAAO,IAAK,CAAA,CAAC,MAAM,MAAO,CAAA,CAAA,EAAG,CAAC,CAAC,CAAI,GAAA,MAAA,CAAA;AAChD,CAAA;AAWA,SAAS,SAAS,CAAe,EAAA;AAE/B,EAAI,IAAA,OAAO,MAAM,QAAU,EAAA;AACzB,IAAA,OAAO,IAAI,WAAA,EAAc,CAAA,MAAA,CAAO,CAAC,CAAA,CAAA;AAAA,GACnC;AAEA,EAAO,OAAA,CAAA,CAAA;AACT,CAAA;AAEA,SAAS,MAAA,CAAO,KAAmB,CAAmB,EAAA;AACpD,EAAA,IAAI,CAAG,EAAA;AACL,IAAA,QAAQ,CAAG;AAAA,MACT,KAAK,KAAA,CAAA;AAAA,MACL,KAAK,QAAA;AACH,QAAO,OAAA,YAAA,CAAa,QAAS,CAAA,GAAA,EAAK,CAAC,CAAA,CAAA;AAAA,KACvC;AAAA,GACF;AACA,EAAO,OAAA,GAAA,CAAA;AACT,CAAA;AAYA,eAAsB,IACpB,CAAA,IAAA,EACA,GACA,EAAA,IAAA,EACA,CACA,EAAA;AACA,EAAA,IAAI,KACF,GAAe,YAAA,SAAA,GACX,GACA,GAAA,MAAM,OAAO,MAAO,CAAA,SAAA;AAAA,IAClB,KAAA;AAAA,IACA,SAAS,GAAG,CAAA;AAAA,IACZ;AAAA,MACE,IAAM,EAAA,MAAA;AAAA,MACN,IAAM,EAAA;AAAA,QACJ,IAAA,EAAM,cAAc,IAAI,CAAA;AAAA,OAC1B;AAAA,KACF;AAAA,IACA,KAAA;AAAA,IACA,CAAC,MAAM,CAAA;AAAA,GACT,CAAA;AACN,EAAI,IAAA,MAAA,GAAS,MAAM,MAAA,CAAO,MAAO,CAAA,IAAA;AAAA,IAC/B;AAAA,MACE,IAAM,EAAA,MAAA;AAAA,MACN,IAAM,EAAA;AAAA,QACJ,IAAM,EAAA,IAAA;AAAA,OACR;AAAA,KACF;AAAA,IACA,EAAA;AAAA,IACA,SAAS,IAAI,CAAA;AAAA,GACf,CAAA;AAEA,EAAO,OAAA,MAAA,CAAO,QAAQ,CAAC,CAAA,CAAA;AACzB,CAAA;AAEA,SAAS,cAAc,IAAc,EAAA;AACnC,EAAO,OAAA,IAAA,CAAK,OAAQ,CAAA,OAAA,EAAS,MAAM,CAAA,CAAA;AACrC;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"createFetchWith.js","sources":["../../src/fetch/createFetchWith.ts"],"sourcesContent":["import { MaybePromise } from '../asyncs/MaybePromise';\nimport { getGlobalThis } from '../isomorphics/getGlobalThis';\nimport { type FetchLike } from './types';\n\nexport function createFetchWith({\n fetch = getGlobalThis().fetch,\n onRequest = (ctx) => ctx.next(ctx.url, ctx.req),\n onResponse = (ctx) => ctx.res,\n}: {\n fetch?: FetchLike;\n onRequest?: (ctx: {\n url: string;\n req: RequestInit;\n next: (url: string, req: RequestInit) => Promise<Response>;\n }) => MaybePromise<Response | void>;\n onResponse?: (ctx: { url: string; req: RequestInit; res: Response }) => MaybePromise<Response>;\n}) {\n return async (urlOrRequest: string | Request, init?: RequestInit & { fetch?: FetchLike }) => {\n const url = String(urlOrRequest);\n let req = init || {};\n const nextFetch = req.fetch || fetch;\n const res =\n (await onRequest({\n url,\n req,\n next: (url, init) => {\n req = init;\n return nextFetch(url, init);\n },\n })) ?? (await nextFetch(url, init));\n return onResponse({ url, req, res });\n };\n}\n"],"names":["url","init"],"mappings":";;AAIO,SAAS,eAAgB,CAAA;AAAA,EAC9B,KAAA,GAAQ,eAAgB,CAAA,KAAA;AAAA,EACxB,SAAA,GAAY,CAAC,GAAQ,KAAA,GAAA,CAAI,KAAK,GAAI,CAAA,GAAA,EAAK,IAAI,GAAG,CAAA;AAAA,EAC9C,UAAA,GAAa,CAAC,GAAA,KAAQ,GAAI,CAAA,GAAA;AAC5B,CAQG,EAAA;AACD,EAAO,OAAA,OAAO,cAAgC,IAA+C,KAAA;AAjB/F,IAAA,IAAA,EAAA,CAAA;AAkBI,IAAM,MAAA,GAAA,GAAM,OAAO,YAAY,CAAA,CAAA;AAC/B,IAAI,IAAA,GAAA,GAAM,QAAQ,EAAC,CAAA;AACnB,IAAM,MAAA,SAAA,GAAY,IAAI,KAAS,IAAA,KAAA,CAAA;AAC/B,IAAM,MAAA,GAAA,GAAA,CACH,WAAM,SAAU,CAAA;AAAA,MACf,GAAA;AAAA,MACA,GAAA;AAAA,MACA,IAAA,EAAM,CAACA,IAAAA,EAAKC,KAAS,KAAA;AACnB,QAAMA,GAAAA,GAAAA,KAAAA,CAAAA;AACN,QAAO,OAAA,SAAA,CAAUD,MAAKC,KAAI,CAAA,CAAA;AAAA,OAC5B;AAAA,KACD,CAPA,KAAA,IAAA,GAAA,EAAA,GAOO,MAAM,SAAA,CAAU,KAAK,IAAI,CAAA,CAAA;AACnC,IAAA,OAAO,UAAW,CAAA,EAAE,GAAK,EAAA,GAAA,EAAK,KAAK,CAAA,CAAA;AAAA,GACrC,CAAA;AACF;;;;"}
1
+ {"version":3,"file":"createFetchWith.js","sources":["../../src/fetch/createFetchWith.ts"],"sourcesContent":["import { MaybePromise } from '../asyncs/MaybePromise';\nimport { getGlobalThis } from '../isomorphics/getGlobalThis';\nimport { type FetchLike } from './types';\n\nexport function createFetchWith({\n fetch = getGlobalThis().fetch,\n onRequest = (ctx) => ctx.next(ctx.url, ctx.req),\n onResponse = (ctx) => ctx.res,\n}: {\n fetch?: FetchLike;\n onRequest?: (ctx: {\n url: string;\n req: RequestInit;\n next: (url: string, req: RequestInit) => Promise<Response>;\n }) => MaybePromise<Response | void>;\n onResponse?: (ctx: { url: string; req: RequestInit; res: Response }) => MaybePromise<Response>;\n}) {\n return async (urlOrRequest: string | URL | Request, init?: RequestInit & { fetch?: FetchLike }) => {\n const url = String(urlOrRequest);\n let req = init || {};\n const nextFetch = req.fetch || fetch;\n const res =\n (await onRequest({\n url,\n req,\n next: (url, init) => {\n req = init;\n return nextFetch(url, init);\n },\n })) ?? (await nextFetch(url, init));\n return onResponse({ url, req, res });\n };\n}\n"],"names":["url","init"],"mappings":";;AAIO,SAAS,eAAgB,CAAA;AAAA,EAC9B,KAAA,GAAQ,eAAgB,CAAA,KAAA;AAAA,EACxB,SAAA,GAAY,CAAC,GAAQ,KAAA,GAAA,CAAI,KAAK,GAAI,CAAA,GAAA,EAAK,IAAI,GAAG,CAAA;AAAA,EAC9C,UAAA,GAAa,CAAC,GAAA,KAAQ,GAAI,CAAA,GAAA;AAC5B,CAQG,EAAA;AACD,EAAO,OAAA,OAAO,cAAsC,IAA+C,KAAA;AAjBrG,IAAA,IAAA,EAAA,CAAA;AAkBI,IAAM,MAAA,GAAA,GAAM,OAAO,YAAY,CAAA,CAAA;AAC/B,IAAI,IAAA,GAAA,GAAM,QAAQ,EAAC,CAAA;AACnB,IAAM,MAAA,SAAA,GAAY,IAAI,KAAS,IAAA,KAAA,CAAA;AAC/B,IAAM,MAAA,GAAA,GAAA,CACH,WAAM,SAAU,CAAA;AAAA,MACf,GAAA;AAAA,MACA,GAAA;AAAA,MACA,IAAA,EAAM,CAACA,IAAAA,EAAKC,KAAS,KAAA;AACnB,QAAMA,GAAAA,GAAAA,KAAAA,CAAAA;AACN,QAAO,OAAA,SAAA,CAAUD,MAAKC,KAAI,CAAA,CAAA;AAAA,OAC5B;AAAA,KACD,CAPA,KAAA,IAAA,GAAA,EAAA,GAOO,MAAM,SAAA,CAAU,KAAK,IAAI,CAAA,CAAA;AACnC,IAAA,OAAO,UAAW,CAAA,EAAE,GAAK,EAAA,GAAA,EAAK,KAAK,CAAA,CAAA;AAAA,GACrC,CAAA;AACF;;;;"}
@@ -1,4 +1,4 @@
1
- import { getGlobalThis } from '../../isomorphics/getGlobalThis.js';
1
+ import { getGlobalThis } from '../isomorphics/getGlobalThis.js';
2
2
 
3
3
  function createFetchWithRetry({
4
4
  fetch = getGlobalThis().fetch,
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createFetchWithRetry.js","sources":["../../src/fetch/createFetchWithRetry.ts"],"sourcesContent":["import { getGlobalThis } from '../isomorphics/getGlobalThis';\nimport { FetchLike } from './types';\n\ntype RequestDelayFunction = (attempt: number, error: Error | null, response: Response | null) => number;\ntype RequestRetryOnFunction = (\n attempt: number,\n error: Error | null,\n response: Response | null,\n) => boolean | Promise<boolean>;\n\nexport interface FetchWithRetryOptions {\n fetch?: FetchLike;\n retries?: number;\n retryDelay?: number | RequestDelayFunction;\n retryOn?: number[] | RequestRetryOnFunction;\n}\n\nexport function createFetchWithRetry({\n fetch = getGlobalThis().fetch,\n retries = 3,\n retryDelay = 1000,\n retryOn = [],\n}: FetchWithRetryOptions = {}): FetchLike {\n // https://github.com/jonbern/fetch-retry/blob/master/index.js\n\n return function fetchRetry(input: string | URL | Request, init?: RequestInit) {\n return new Promise(function (resolve, reject) {\n var wrappedFetch = function (attempt: number) {\n // As of node 18, this is no longer needed since node comes with native support for fetch:\n /* istanbul ignore next */\n var _input = typeof Request !== 'undefined' && input instanceof Request ? input.clone() : input;\n fetch(_input, init)\n .then(function (response) {\n if (Array.isArray(retryOn) && retryOn.indexOf(response.status) === -1) {\n resolve(response);\n } else if (typeof retryOn === 'function') {\n try {\n return Promise.resolve(retryOn(attempt, null, response))\n .then(function (retryOnResponse) {\n if (retryOnResponse) {\n retry(attempt, null, response);\n } else {\n resolve(response);\n }\n })\n .catch(reject);\n } catch (error) {\n reject(error);\n }\n } else {\n if (attempt < retries) {\n retry(attempt, null, response);\n } else {\n resolve(response);\n }\n }\n return;\n })\n .catch(function (error) {\n if (typeof retryOn === 'function') {\n try {\n // eslint-disable-next-line no-undef\n Promise.resolve(retryOn(attempt, error, null))\n .then(function (retryOnResponse) {\n if (retryOnResponse) {\n retry(attempt, error, null);\n } else {\n reject(error);\n }\n })\n .catch(function (error) {\n reject(error);\n });\n } catch (error) {\n reject(error);\n }\n } else if (attempt < retries) {\n retry(attempt, error, null);\n } else {\n reject(error);\n }\n });\n };\n\n function retry(attempt: number, error: any, response: Response | null) {\n let delay = typeof retryDelay === 'function' ? retryDelay(attempt, error, response) : retryDelay;\n setTimeout(function () {\n wrappedFetch(++attempt);\n }, delay);\n }\n\n wrappedFetch(0);\n });\n };\n}\n"],"names":["error"],"mappings":"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"}
package/lib/index.js CHANGED
@@ -15,6 +15,7 @@ export { TimeoutError, timeout } from './asyncs/timeout.js';
15
15
  export { isPromise } from './asyncs/isPromise.js';
16
16
  export { shallowEqual } from './langs/shallowEqual.js';
17
17
  export { deepEqual } from './langs/deepEqual.js';
18
+ export { deepFreeze } from './langs/deepFreeze.js';
18
19
  export { classOf } from './langs/classOf.js';
19
20
  export { shallowClone } from './langs/shallowClone.js';
20
21
  export { isClass } from './langs/isClass.js';
@@ -53,10 +54,12 @@ export { hex } from './crypto/base.js';
53
54
  export { createULID, isULID, parseULID, ulid } from './crypto/ulid.js';
54
55
  export { PEM } from './crypto/pem/pem.js';
55
56
  export { createRandom } from './maths/random.js';
57
+ export { clamp } from './maths/clamp.js';
56
58
  export { createFetchWith } from './fetch/createFetchWith.js';
57
59
  export { createFetchWithLogging } from './fetch/createFetchWithLogging.js';
58
60
  export { dumpRequest } from './fetch/dumpRequest.js';
59
61
  export { dumpResponse } from './fetch/dumpResponse.js';
62
+ export { createFetchWithRetry } from './fetch/createFetchWithRetry.js';
60
63
  export { default as ms } from './libs/ms.js';
61
64
  export { DetailError, Errors } from './errors/Errors.js';
62
65
  export { getHttpStatusText, isRetryableHttpStatus } from './http/HttpStatus.js';
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,16 @@
1
+ function deepFreeze(obj) {
2
+ if (obj === null || typeof obj !== "object") {
3
+ return obj;
4
+ }
5
+ const props = Object.getOwnPropertyNames(obj);
6
+ for (const prop of props) {
7
+ const value = obj[prop];
8
+ if (value && typeof value === "object") {
9
+ deepFreeze(value);
10
+ }
11
+ }
12
+ return Object.freeze(obj);
13
+ }
14
+
15
+ export { deepFreeze };
16
+ //# sourceMappingURL=deepFreeze.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deepFreeze.js","sources":["../../src/langs/deepFreeze.ts"],"sourcesContent":["/**\n * Freezes the given object and all its nested objects recursively.\n *\n * @param {T} obj - The object to freeze.\n * @returns {T} - The frozen object.\n */\nexport function deepFreeze<T>(obj: T): T {\n if (obj === null || typeof obj !== 'object') {\n return obj;\n }\n const props = Object.getOwnPropertyNames(obj);\n for (const prop of props) {\n const value = (obj as any)[prop];\n if (value && typeof value === 'object') {\n deepFreeze(value);\n }\n }\n return Object.freeze(obj);\n}\n"],"names":[],"mappings":"AAMO,SAAS,WAAc,GAAW,EAAA;AACvC,EAAA,IAAI,GAAQ,KAAA,IAAA,IAAQ,OAAO,GAAA,KAAQ,QAAU,EAAA;AAC3C,IAAO,OAAA,GAAA,CAAA;AAAA,GACT;AACA,EAAM,MAAA,KAAA,GAAQ,MAAO,CAAA,mBAAA,CAAoB,GAAG,CAAA,CAAA;AAC5C,EAAA,KAAA,MAAW,QAAQ,KAAO,EAAA;AACxB,IAAM,MAAA,KAAA,GAAS,IAAY,IAAI,CAAA,CAAA;AAC/B,IAAI,IAAA,KAAA,IAAS,OAAO,KAAA,KAAU,QAAU,EAAA;AACtC,MAAA,UAAA,CAAW,KAAK,CAAA,CAAA;AAAA,KAClB;AAAA,GACF;AACA,EAAO,OAAA,MAAA,CAAO,OAAO,GAAG,CAAA,CAAA;AAC1B;;;;"}
@@ -0,0 +1,21 @@
1
+ function clamp(value, ...o) {
2
+ let min, max, def;
3
+ if (o.length === 1) {
4
+ ({ min, max, default: def = min } = o[0]);
5
+ } else {
6
+ [min, max, def = min] = o;
7
+ }
8
+ if (value === null || value === void 0) {
9
+ return def;
10
+ }
11
+ if (value < min) {
12
+ return min;
13
+ }
14
+ if (value > max) {
15
+ return max;
16
+ }
17
+ return value;
18
+ }
19
+
20
+ export { clamp };
21
+ //# sourceMappingURL=clamp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clamp.js","sources":["../../src/maths/clamp.ts"],"sourcesContent":["// export function clamp<T>(value: T | null | undefined, o: { min: T; max: T; default?: T }): T;\n\nexport function clamp<T>(value: T | null | undefined, min: T, max: T, def?: T): T;\nexport function clamp<T>(value: T | null | undefined, ...o: any[]): T {\n let min: T, max: T, def: T;\n if (o.length === 1) {\n ({ min, max, default: def = min! } = o[0]);\n } else {\n [min, max, def = min!] = o;\n }\n if (value === null || value === undefined) {\n return def;\n }\n if (value < min) {\n return min;\n }\n if (value > max) {\n return max;\n }\n return value;\n}\n\n// type Comparable = number | string | Date | BigInt;\n"],"names":[],"mappings":"AAGgB,SAAA,KAAA,CAAS,UAAgC,CAAa,EAAA;AACpE,EAAA,IAAI,KAAQ,GAAQ,EAAA,GAAA,CAAA;AACpB,EAAI,IAAA,CAAA,CAAE,WAAW,CAAG,EAAA;AAClB,IAAC,CAAA,EAAE,KAAK,GAAK,EAAA,OAAA,EAAS,MAAM,GAAK,EAAA,GAAI,EAAE,CAAC,CAAA,EAAA;AAAA,GACnC,MAAA;AACL,IAAA,CAAC,GAAK,EAAA,GAAA,EAAK,GAAM,GAAA,GAAI,CAAI,GAAA,CAAA,CAAA;AAAA,GAC3B;AACA,EAAI,IAAA,KAAA,KAAU,IAAQ,IAAA,KAAA,KAAU,KAAW,CAAA,EAAA;AACzC,IAAO,OAAA,GAAA,CAAA;AAAA,GACT;AACA,EAAA,IAAI,QAAQ,GAAK,EAAA;AACf,IAAO,OAAA,GAAA,CAAA;AAAA,GACT;AACA,EAAA,IAAI,QAAQ,GAAK,EAAA;AACf,IAAO,OAAA,GAAA,CAAA;AAAA,GACT;AACA,EAAO,OAAA,KAAA,CAAA;AACT;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"get.js","sources":["../../src/objects/get.ts"],"sourcesContent":["import type { ObjectKey } from './parseObjectPath';\nimport { parseObjectPath } from './parseObjectPath';\n\n/**\n * get by path\n *\n * {@link https://github.com/developit/dlv dlv}\n */\nexport function get<O extends object, P extends ObjectKey, OrElse extends unknown>(\n obj: O,\n key: P | P[],\n def?: OrElse,\n): ResolveObjectPathType<O, P, OrElse> {\n const undef = undefined;\n const path = parseObjectPath(key);\n let out: any = obj;\n for (const i of path) {\n out = out ? out[i] : undef;\n }\n return out === undef ? def : out;\n}\n\n/**\n * It tries to resolve the path of the given object, otherwise it will return OrElse\n *\n * {@link https://github.com/Pouja/typescript-deep-path-safe typescript-deep-path-safe}\n */\nexport type ResolveObjectPathType<\n ObjectType,\n Path extends string | symbol | number,\n OrElse,\n> = Path extends keyof ObjectType\n ? ObjectType[Path]\n : Path extends `${infer LeftSide}.${infer RightSide}`\n ? LeftSide extends keyof ObjectType\n ? ResolveObjectPathType<ObjectType[LeftSide], RightSide, OrElse>\n : Path extends `${infer LeftSide}[${number}].${infer RightSide}`\n ? LeftSide extends keyof ObjectType\n ? ObjectType[LeftSide] extends Array<infer U>\n ? ResolveObjectPathType<U, RightSide, OrElse>\n : OrElse\n : OrElse\n : OrElse\n : Path extends `${infer LeftSide}[${number}]`\n ? LeftSide extends keyof ObjectType\n ? ObjectType[LeftSide] extends Array<infer U>\n ? U\n : OrElse\n : OrElse\n : OrElse;\n"],"names":[],"mappings":";;AAQgB,SAAA,GAAA,CACd,GACA,EAAA,GAAA,EACA,GACqC,EAAA;AACrC,EAAA,MAAM,KAAQ,GAAA,KAAA,CAAA,CAAA;AACd,EAAM,MAAA,IAAA,GAAO,gBAAgB,GAAG,CAAA,CAAA;AAChC,EAAA,IAAI,GAAW,GAAA,GAAA,CAAA;AACf,EAAA,KAAA,MAAW,KAAK,IAAM,EAAA;AACpB,IAAM,GAAA,GAAA,GAAA,GAAM,GAAI,CAAA,CAAC,CAAI,GAAA,KAAA,CAAA;AAAA,GACvB;AACA,EAAO,OAAA,GAAA,KAAQ,QAAQ,GAAM,GAAA,GAAA,CAAA;AAC/B;;;;"}
1
+ {"version":3,"file":"get.js","sources":["../../src/objects/get.ts"],"sourcesContent":["import type { ObjectKey } from './parseObjectPath';\nimport { parseObjectPath } from './parseObjectPath';\n\n/**\n * get by path\n *\n * {@link https://github.com/developit/dlv dlv}\n */\nexport function get<O extends object, P extends ObjectKey, OrElse extends unknown>(\n obj: O,\n key: P | P[],\n def?: OrElse,\n): ResolveObjectPathType<O, P, OrElse> {\n const undef = undefined;\n const path = parseObjectPath(key);\n let out: any = obj;\n for (const i of path) {\n out = out ? out[i] : undef;\n }\n return out === undef ? def : out;\n}\n\n/**\n * It tries to resolve the path of the given object, otherwise it will return OrElse\n *\n * {@link https://github.com/Pouja/typescript-deep-path-safe typescript-deep-path-safe}\n */\nexport type ResolveObjectPathType<\n ObjectType,\n Path extends string | symbol | number,\n OrElse,\n> = Path extends keyof ObjectType\n ? ObjectType[Path]\n : Path extends `${infer LeftSide}.${infer RightSide}`\n ? LeftSide extends keyof ObjectType\n ? ResolveObjectPathType<ObjectType[LeftSide], RightSide, OrElse>\n : Path extends `${infer LeftSide}[${number}].${infer RightSide}`\n ? LeftSide extends keyof ObjectType\n ? ObjectType[LeftSide] extends Array<infer U>\n ? ResolveObjectPathType<U, RightSide, OrElse>\n : OrElse\n : OrElse\n : OrElse\n : Path extends `${infer LeftSide}[${number}]`\n ? LeftSide extends keyof ObjectType\n ? ObjectType[LeftSide] extends Array<infer U>\n ? U\n : OrElse\n : OrElse\n : OrElse;\n"],"names":[],"mappings":";;AAQgB,SAAA,GAAA,CACd,GACA,EAAA,GAAA,EACA,GACqC,EAAA;AACrC,EAAA,MAAM,KAAQ,GAAA,KAAA,CAAA,CAAA;AACd,EAAM,MAAA,IAAA,GAAO,gBAAgB,GAAG,CAAA,CAAA;AAChC,EAAA,IAAI,GAAW,GAAA,GAAA,CAAA;AACf,EAAA,KAAA,MAAW,KAAK,IAAM,EAAA;AACpB,IAAM,GAAA,GAAA,GAAA,GAAM,GAAI,CAAA,CAAC,CAAI,GAAA,KAAA,CAAA;AAAA,GACvB;AACA,EAAO,OAAA,GAAA,KAAQ,QAAQ,GAAM,GAAA,GAAA,CAAA;AAC/B;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"set.js","sources":["../../src/objects/set.ts"],"sourcesContent":["import type { ObjectKey, ObjectPath } from './parseObjectPath';\nimport { parseObjectPath } from './parseObjectPath';\n\n/**\n * Deep set\n *\n * {@link https://github.com/lukeed/dset dset}\n */\nexport function set<T extends object, V>(obj: T, key: ObjectKey | ObjectPath, val: V, merging = true) {\n const path = parseObjectPath(key);\n let i = 0;\n const len = path.length;\n let current: any = obj;\n let x, k;\n while (i < len) {\n k = path[i++];\n if (k === '__proto__' || k === 'constructor' || k === 'prototype') break;\n // noinspection PointlessArithmeticExpressionJS\n current = current[k] =\n i === len\n ? merging\n ? merge(current[k], val)\n : val\n : typeof (x = current[k]) === typeof path\n ? x\n : // @ts-expect-error hacky type check\n path[i] * 0 !== 0 || !!~('' + path[i]).indexOf('.') // eslint-disable-line\n ? {}\n : [];\n }\n}\n\nexport function merge(a: any, b: any) {\n let k;\n if (typeof a === 'object' && typeof b === 'object') {\n if (Array.isArray(a) && Array.isArray(b)) {\n for (k = 0; k < b.length; k++) {\n a[k] = merge(a[k], b[k]);\n }\n } else {\n for (k in b) {\n if (k === '__proto__' || k === 'constructor' || k === 'prototype') break;\n a[k] = merge(a[k], b[k]);\n }\n }\n return a;\n }\n return b;\n}\n"],"names":[],"mappings":";;AAQO,SAAS,GAAyB,CAAA,GAAA,EAAQ,GAA6B,EAAA,GAAA,EAAQ,UAAU,IAAM,EAAA;AACpG,EAAM,MAAA,IAAA,GAAO,gBAAgB,GAAG,CAAA,CAAA;AAChC,EAAA,IAAI,CAAI,GAAA,CAAA,CAAA;AACR,EAAA,MAAM,MAAM,IAAK,CAAA,MAAA,CAAA;AACjB,EAAA,IAAI,OAAe,GAAA,GAAA,CAAA;AACnB,EAAA,IAAI,CAAG,EAAA,CAAA,CAAA;AACP,EAAA,OAAO,IAAI,GAAK,EAAA;AACd,IAAA,CAAA,GAAI,KAAK,CAAG,EAAA,CAAA,CAAA;AACZ,IAAA,IAAI,CAAM,KAAA,WAAA,IAAe,CAAM,KAAA,aAAA,IAAiB,CAAM,KAAA,WAAA;AAAa,MAAA,MAAA;AAEnE,IAAA,OAAA,GAAU,QAAQ,CAAC,CAAA,GACjB,MAAM,GACF,GAAA,OAAA,GACE,MAAM,OAAQ,CAAA,CAAC,GAAG,GAAG,CAAA,GACrB,MACF,QAAQ,CAAA,GAAI,QAAQ,CAAC,CAAA,CAAA,KAAO,OAAO,IACnC,GAAA,CAAA;AAAA;AAAA,MAEF,KAAK,CAAC,CAAA,GAAI,CAAM,KAAA,CAAA,IAAK,CAAC,CAAC,CAAA,CAAE,EAAK,GAAA,IAAA,CAAK,CAAC,CAAG,EAAA,OAAA,CAAQ,GAAG,CAChD,GAAA,KACA,EAAC;AAAA,KAAA,CAAA;AAAA,GACT;AACF,CAAA;AAEgB,SAAA,KAAA,CAAM,GAAQ,CAAQ,EAAA;AACpC,EAAI,IAAA,CAAA,CAAA;AACJ,EAAA,IAAI,OAAO,CAAA,KAAM,QAAY,IAAA,OAAO,MAAM,QAAU,EAAA;AAClD,IAAA,IAAI,MAAM,OAAQ,CAAA,CAAC,KAAK,KAAM,CAAA,OAAA,CAAQ,CAAC,CAAG,EAAA;AACxC,MAAA,KAAK,CAAI,GAAA,CAAA,EAAG,CAAI,GAAA,CAAA,CAAE,QAAQ,CAAK,EAAA,EAAA;AAC7B,QAAE,CAAA,CAAA,CAAC,IAAI,KAAM,CAAA,CAAA,CAAE,CAAC,CAAG,EAAA,CAAA,CAAE,CAAC,CAAC,CAAA,CAAA;AAAA,OACzB;AAAA,KACK,MAAA;AACL,MAAA,KAAK,KAAK,CAAG,EAAA;AACX,QAAA,IAAI,CAAM,KAAA,WAAA,IAAe,CAAM,KAAA,aAAA,IAAiB,CAAM,KAAA,WAAA;AAAa,UAAA,MAAA;AACnE,QAAE,CAAA,CAAA,CAAC,IAAI,KAAM,CAAA,CAAA,CAAE,CAAC,CAAG,EAAA,CAAA,CAAE,CAAC,CAAC,CAAA,CAAA;AAAA,OACzB;AAAA,KACF;AACA,IAAO,OAAA,CAAA,CAAA;AAAA,GACT;AACA,EAAO,OAAA,CAAA,CAAA;AACT;;;;"}
1
+ {"version":3,"file":"set.js","sources":["../../src/objects/set.ts"],"sourcesContent":["import type { ObjectKey, ObjectPath } from './parseObjectPath';\nimport { parseObjectPath } from './parseObjectPath';\n\n/**\n * Deep set\n *\n * {@link https://github.com/lukeed/dset dset}\n */\nexport function set<T extends object, V>(obj: T, key: ObjectKey | ObjectPath, val: V, merging = true) {\n const path = parseObjectPath(key);\n let i = 0;\n const len = path.length;\n let current: any = obj;\n let x, k;\n while (i < len) {\n k = path[i++];\n if (k === '__proto__' || k === 'constructor' || k === 'prototype') break;\n // noinspection PointlessArithmeticExpressionJS\n current = current[k] =\n i === len\n ? merging\n ? merge(current[k], val)\n : val\n : typeof (x = current[k]) === typeof path\n ? x\n : // @ts-expect-error hacky type check\n path[i] * 0 !== 0 || !!~('' + path[i]).indexOf('.') // eslint-disable-line\n ? {}\n : [];\n }\n}\n\nexport function merge(a: any, b: any) {\n let k;\n if (typeof a === 'object' && typeof b === 'object') {\n if (Array.isArray(a) && Array.isArray(b)) {\n for (k = 0; k < b.length; k++) {\n a[k] = merge(a[k], b[k]);\n }\n } else {\n for (k in b) {\n if (k === '__proto__' || k === 'constructor' || k === 'prototype') break;\n a[k] = merge(a[k], b[k]);\n }\n }\n return a;\n }\n return b;\n}\n"],"names":[],"mappings":";;AAQO,SAAS,GAAyB,CAAA,GAAA,EAAQ,GAA6B,EAAA,GAAA,EAAQ,UAAU,IAAM,EAAA;AACpG,EAAM,MAAA,IAAA,GAAO,gBAAgB,GAAG,CAAA,CAAA;AAChC,EAAA,IAAI,CAAI,GAAA,CAAA,CAAA;AACR,EAAA,MAAM,MAAM,IAAK,CAAA,MAAA,CAAA;AACjB,EAAA,IAAI,OAAe,GAAA,GAAA,CAAA;AACnB,EAAA,IAAI,CAAG,EAAA,CAAA,CAAA;AACP,EAAA,OAAO,IAAI,GAAK,EAAA;AACd,IAAA,CAAA,GAAI,KAAK,CAAG,EAAA,CAAA,CAAA;AACZ,IAAA,IAAI,CAAM,KAAA,WAAA,IAAe,CAAM,KAAA,aAAA,IAAiB,CAAM,KAAA,WAAA;AAAa,MAAA,MAAA;AAEnE,IAAA,OAAA,GAAU,QAAQ,CAAC,CAAA,GACjB,MAAM,GACF,GAAA,OAAA,GACE,MAAM,OAAQ,CAAA,CAAC,GAAG,GAAG,CAAA,GACrB,MACF,QAAQ,CAAA,GAAI,QAAQ,CAAC,CAAA,CAAA,KAAO,OAAO,IACjC,GAAA,CAAA;AAAA;AAAA,MAEA,KAAK,CAAC,CAAA,GAAI,CAAM,KAAA,CAAA,IAAK,CAAC,CAAC,CAAA,CAAE,EAAK,GAAA,IAAA,CAAK,CAAC,CAAG,EAAA,OAAA,CAAQ,GAAG,CAChD,GAAA,KACA,EAAC;AAAA,KAAA,CAAA;AAAA,GACb;AACF,CAAA;AAEgB,SAAA,KAAA,CAAM,GAAQ,CAAQ,EAAA;AACpC,EAAI,IAAA,CAAA,CAAA;AACJ,EAAA,IAAI,OAAO,CAAA,KAAM,QAAY,IAAA,OAAO,MAAM,QAAU,EAAA;AAClD,IAAA,IAAI,MAAM,OAAQ,CAAA,CAAC,KAAK,KAAM,CAAA,OAAA,CAAQ,CAAC,CAAG,EAAA;AACxC,MAAA,KAAK,CAAI,GAAA,CAAA,EAAG,CAAI,GAAA,CAAA,CAAE,QAAQ,CAAK,EAAA,EAAA;AAC7B,QAAE,CAAA,CAAA,CAAC,IAAI,KAAM,CAAA,CAAA,CAAE,CAAC,CAAG,EAAA,CAAA,CAAE,CAAC,CAAC,CAAA,CAAA;AAAA,OACzB;AAAA,KACK,MAAA;AACL,MAAA,KAAK,KAAK,CAAG,EAAA;AACX,QAAA,IAAI,CAAM,KAAA,WAAA,IAAe,CAAM,KAAA,aAAA,IAAiB,CAAM,KAAA,WAAA;AAAa,UAAA,MAAA;AACnE,QAAE,CAAA,CAAA,CAAC,IAAI,KAAM,CAAA,CAAA,CAAE,CAAC,CAAG,EAAA,CAAA,CAAE,CAAC,CAAC,CAAA,CAAA;AAAA,OACzB;AAAA,KACF;AACA,IAAO,OAAA,CAAA,CAAA;AAAA,GACT;AACA,EAAO,OAAA,CAAA,CAAA;AACT;;;;"}
@@ -0,0 +1,74 @@
1
+ var Character;
2
+ ((Character2) => {
3
+ function DollarSign(code) {
4
+ return code === 36;
5
+ }
6
+ Character2.DollarSign = DollarSign;
7
+ function IsUnderscore(code) {
8
+ return code === 95;
9
+ }
10
+ Character2.IsUnderscore = IsUnderscore;
11
+ function IsAlpha(code) {
12
+ return code >= 64 && code <= 90 || code >= 97 && code <= 122;
13
+ }
14
+ Character2.IsAlpha = IsAlpha;
15
+ function IsNumeric(code) {
16
+ return code >= 48 && code <= 57;
17
+ }
18
+ Character2.IsNumeric = IsNumeric;
19
+ })(Character || (Character = {}));
20
+ var MemberExpressionEncoder;
21
+ ((MemberExpressionEncoder2) => {
22
+ function IsFirstCharacterNumeric(value) {
23
+ if (value.length === 0)
24
+ return false;
25
+ return Character.IsNumeric(value.charCodeAt(0));
26
+ }
27
+ function IsAccessor(value) {
28
+ if (IsFirstCharacterNumeric(value))
29
+ return false;
30
+ for (let i = 0; i < value.length; i++) {
31
+ const code = value.charCodeAt(i);
32
+ const check = Character.IsAlpha(code) || Character.IsNumeric(code) || Character.DollarSign(code) || Character.IsUnderscore(code);
33
+ if (!check)
34
+ return false;
35
+ }
36
+ return true;
37
+ }
38
+ function EscapeHyphen(key) {
39
+ return key.replace(/'/g, "\\'");
40
+ }
41
+ function Encode(object, key) {
42
+ return IsAccessor(key) ? `${object}.${key}` : `${object}['${EscapeHyphen(key)}']`;
43
+ }
44
+ MemberExpressionEncoder2.Encode = Encode;
45
+ })(MemberExpressionEncoder || (MemberExpressionEncoder = {}));
46
+ var PropertyEncoder;
47
+ ((PropertyEncoder2) => {
48
+ function IsFirstCharacterNumeric(value) {
49
+ if (value.length === 0)
50
+ return false;
51
+ return Character.IsNumeric(value.charCodeAt(0));
52
+ }
53
+ function IsSafeProperty(value) {
54
+ if (IsFirstCharacterNumeric(value))
55
+ return false;
56
+ for (let i = 0; i < value.length; i++) {
57
+ const code = value.charCodeAt(i);
58
+ const check = Character.IsAlpha(code) || Character.IsNumeric(code) || Character.DollarSign(code) || Character.IsUnderscore(code);
59
+ if (!check)
60
+ return false;
61
+ }
62
+ return true;
63
+ }
64
+ function Quoted(value) {
65
+ return `'${value}'`;
66
+ }
67
+ function Encode(value) {
68
+ return IsSafeProperty(value) ? value : Quoted(value);
69
+ }
70
+ PropertyEncoder2.Encode = Encode;
71
+ })(PropertyEncoder || (PropertyEncoder = {}));
72
+
73
+ export { MemberExpressionEncoder, PropertyEncoder };
74
+ //# sourceMappingURL=encoder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encoder.js","sources":["../../../../../../src/schema/typebox/gen/codegen/common/encoder.ts"],"sourcesContent":["/*--------------------------------------------------------------------------\n\n@sinclair/typebox-codegen\n\nThe MIT License (MIT)\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n\n---------------------------------------------------------------------------*/\n\n// --------------------------------------------------------------------------\n// Character\n// --------------------------------------------------------------------------\nnamespace Character {\n export function DollarSign(code: number) {\n return code === 36;\n }\n export function IsUnderscore(code: number) {\n return code === 95;\n }\n export function IsAlpha(code: number) {\n return (code >= 64 && code <= 90) || (code >= 97 && code <= 122);\n }\n export function IsNumeric(code: number) {\n return code >= 48 && code <= 57;\n }\n}\n// --------------------------------------------------------------------------\n// MemberExpressionEncoder\n// --------------------------------------------------------------------------\nexport namespace MemberExpressionEncoder {\n function IsFirstCharacterNumeric(value: string) {\n if (value.length === 0) return false;\n return Character.IsNumeric(value.charCodeAt(0));\n }\n function IsAccessor(value: string) {\n if (IsFirstCharacterNumeric(value)) return false;\n for (let i = 0; i < value.length; i++) {\n const code = value.charCodeAt(i);\n const check =\n Character.IsAlpha(code) ||\n Character.IsNumeric(code) ||\n Character.DollarSign(code) ||\n Character.IsUnderscore(code);\n if (!check) return false;\n }\n return true;\n }\n function EscapeHyphen(key: string) {\n return key.replace(/'/g, \"\\\\'\");\n }\n export function Encode(object: string, key: string) {\n return IsAccessor(key) ? `${object}.${key}` : `${object}['${EscapeHyphen(key)}']`;\n }\n}\n// --------------------------------------------------------------------------\n// PropertyEncoder\n// --------------------------------------------------------------------------\nexport namespace PropertyEncoder {\n function IsFirstCharacterNumeric(value: string) {\n if (value.length === 0) return false;\n return Character.IsNumeric(value.charCodeAt(0));\n }\n function IsSafeProperty(value: string) {\n if (IsFirstCharacterNumeric(value)) return false;\n for (let i = 0; i < value.length; i++) {\n const code = value.charCodeAt(i);\n const check =\n Character.IsAlpha(code) ||\n Character.IsNumeric(code) ||\n Character.DollarSign(code) ||\n Character.IsUnderscore(code);\n if (!check) return false;\n }\n return true;\n }\n function Quoted(value: string) {\n return `'${value}'`;\n }\n export function Encode(value: string) {\n return IsSafeProperty(value) ? value : Quoted(value);\n }\n}\n"],"names":["Character","MemberExpressionEncoder","PropertyEncoder"],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ var Formatter;
2
+ ((Formatter2) => {
3
+ function Format(code) {
4
+ return code;
5
+ }
6
+ Formatter2.Format = Format;
7
+ })(Formatter || (Formatter = {}));
8
+
9
+ export { Formatter };
10
+ //# sourceMappingURL=formatter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formatter.js","sources":["../../../../../../src/schema/typebox/gen/codegen/common/formatter.ts"],"sourcesContent":["/*--------------------------------------------------------------------------\n\n@sinclair/typebox-codegen\n\nThe MIT License (MIT)\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n\n---------------------------------------------------------------------------*/\n\nexport namespace Formatter {\n export function Format(code: string): string {\n return code;\n }\n}\n"],"names":["Formatter"],"mappings":"AA0BiB,IAAA,UAAA;AAAA,CAAV,CAAUA,UAAV,KAAA;AACE,EAAA,SAAS,OAAO,IAAsB,EAAA;AAC3C,IAAO,OAAA,IAAA,CAAA;AAAA,GACT;AAFO,EAAAA,UAAS,CAAA,MAAA,GAAA,MAAA,CAAA;AAAA,CADD,EAAA,SAAA,KAAA,SAAA,GAAA,EAAA,CAAA,CAAA;;;;"}
@@ -0,0 +1,68 @@
1
+ var JsDoc;
2
+ ((JsDoc2) => {
3
+ function ConsumeQuote(content) {
4
+ if (!IsQuote(content))
5
+ return ["", content];
6
+ const quote = content[0];
7
+ for (let i = 1; i < content.length; i++) {
8
+ if (content[i] === quote)
9
+ return [content.slice(1, i), content.slice(i)];
10
+ if (content[i] === "\n")
11
+ return [content.slice(1, i), content.slice(i)];
12
+ }
13
+ return [content.slice(1), ""];
14
+ }
15
+ function IsQuote(content) {
16
+ return content[0] === '"' || content[0] === "'";
17
+ }
18
+ function DecodeWithNonQuotedProperties(content) {
19
+ const parseFunction = new Function(`return (${content});`);
20
+ return parseFunction();
21
+ }
22
+ function Decode(content) {
23
+ try {
24
+ return DecodeWithNonQuotedProperties(content);
25
+ } catch {
26
+ return content;
27
+ }
28
+ }
29
+ function* ParseValue(key, content) {
30
+ if (IsQuote(content)) {
31
+ const [consumed, rest] = ConsumeQuote(content);
32
+ yield [key, Decode(consumed)];
33
+ return yield* ParseContent(rest);
34
+ }
35
+ for (let i = 0; i < content.length; i++) {
36
+ if (content[i] === "\n" || content[i] === "-") {
37
+ const value = content.slice(0, i).trim();
38
+ const rest = content.slice(i);
39
+ yield [key, Decode(value)];
40
+ return yield* ParseContent(rest);
41
+ }
42
+ }
43
+ }
44
+ function* ParseKey(content) {
45
+ for (let i = 1; i < content.length; i++) {
46
+ if (content[i] === " ") {
47
+ const key = content.slice(1, i);
48
+ const rest = content.slice(i).trimStart();
49
+ return yield* ParseValue(key, rest);
50
+ }
51
+ }
52
+ }
53
+ function* ParseContent(content) {
54
+ for (let i = 0; i < content.length; i++) {
55
+ if (content[i] === "@") {
56
+ return yield* ParseKey(content.slice(i));
57
+ }
58
+ }
59
+ }
60
+ function Parse(content) {
61
+ const properties = [...ParseContent(content)];
62
+ return properties.reduce((acc, [key, value]) => ({ ...acc, [key]: value }), {});
63
+ }
64
+ JsDoc2.Parse = Parse;
65
+ })(JsDoc || (JsDoc = {}));
66
+
67
+ export { JsDoc };
68
+ //# sourceMappingURL=jsdoc.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jsdoc.js","sources":["../../../../../../src/schema/typebox/gen/codegen/common/jsdoc.ts"],"sourcesContent":["/*--------------------------------------------------------------------------\n\n@sinclair/typebox-codegen\n\nThe MIT License (MIT)\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n\n---------------------------------------------------------------------------*/\n\n/** JSDoc Property Parser */\nexport namespace JsDoc {\n // ----------------------------------------------------------------\n // Quotes\n // ----------------------------------------------------------------\n function ConsumeQuote(content: string): [consumed: string, rest: string] {\n if (!IsQuote(content)) return ['', content];\n const quote = content[0];\n for (let i = 1; i < content.length; i++) {\n if (content[i] === quote) return [content.slice(1, i), content.slice(i)];\n if (content[i] === '\\n') return [content.slice(1, i), content.slice(i)];\n }\n return [content.slice(1), ''];\n }\n function IsQuote(content: string) {\n return content[0] === '\"' || content[0] === \"'\";\n }\n // ----------------------------------------------------------------\n // Decode\n // ----------------------------------------------------------------\n function DecodeWithNonQuotedProperties(content: string): any {\n const parseFunction = new Function(`return (${content});`);\n return parseFunction();\n }\n function Decode(content: string) {\n try {\n return DecodeWithNonQuotedProperties(content);\n } catch {\n return content;\n }\n }\n function* ParseValue(key: string, content: string): IterableIterator<[string, any]> {\n if (IsQuote(content)) {\n const [consumed, rest] = ConsumeQuote(content);\n yield [key, Decode(consumed)];\n return yield* ParseContent(rest);\n }\n for (let i = 0; i < content.length; i++) {\n if (content[i] === '\\n' || content[i] === '-') {\n const value = content.slice(0, i).trim();\n const rest = content.slice(i);\n yield [key, Decode(value)];\n return yield* ParseContent(rest);\n }\n }\n }\n function* ParseKey(content: string): IterableIterator<[string, any]> {\n for (let i = 1; i < content.length; i++) {\n if (content[i] === ' ') {\n const key = content.slice(1, i);\n const rest = content.slice(i).trimStart();\n return yield* ParseValue(key, rest);\n }\n }\n }\n function* ParseContent(content: string): IterableIterator<[string, any]> {\n for (let i = 0; i < content.length; i++) {\n if (content[i] === '@') {\n return yield* ParseKey(content.slice(i));\n }\n }\n }\n export function Parse(content: string): Record<string, any> {\n const properties = [...ParseContent(content)];\n return properties.reduce((acc, [key, value]) => ({ ...acc, [key]: value }), {});\n }\n}\n"],"names":["JsDoc"],"mappings":"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"}