appos 0.2.1 → 0.2.3-0

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 (232) hide show
  1. package/dist/bin/auth-schema-7KeUwlcd.mjs +2 -0
  2. package/dist/bin/concurrently.mjs +2 -0
  3. package/dist/bin/event-v2sCJkNd.mjs +2 -0
  4. package/dist/bin/extract-blob-metadata-TqNd9w-6.mjs +2 -0
  5. package/dist/bin/generate-image-variant-D8H9FxgD.mjs +2 -0
  6. package/dist/bin/generate-preview-5jLZLX6I.mjs +2 -0
  7. package/dist/bin/main.mjs +362 -0
  8. package/dist/bin/purge-attachment-CMlJMNOk.mjs +2 -0
  9. package/dist/bin/purge-audit-logs-hd6q6vnR.mjs +2 -0
  10. package/dist/bin/purge-unattached-blobs-BYv5b9R9.mjs +2 -0
  11. package/dist/bin/track-db-changes-q0Vl7Htm.mjs +2 -0
  12. package/dist/bin/vite.mjs +2 -0
  13. package/dist/bin/vitest.mjs +2 -0
  14. package/dist/bin/workflow-BagSlsMp.mjs +2 -0
  15. package/dist/bin/youch-handler-Jj6i1XIT.mjs +2 -0
  16. package/dist/exports/api/_virtual/rolldown_runtime.mjs +1 -0
  17. package/dist/exports/api/app-context.d.mts +115 -0
  18. package/dist/exports/api/app-context.mjs +1 -0
  19. package/dist/exports/api/auth-schema.d.mts +4248 -0
  20. package/dist/exports/api/auth-schema.mjs +1 -0
  21. package/dist/exports/api/auth.d.mts +398 -0
  22. package/dist/exports/api/auth.mjs +1 -0
  23. package/dist/exports/api/cache.d.mts +44 -0
  24. package/dist/exports/api/cache.mjs +1 -0
  25. package/dist/exports/api/config.d.mts +28 -0
  26. package/dist/exports/api/config.mjs +1 -0
  27. package/dist/exports/api/container.d.mts +210 -0
  28. package/dist/exports/api/container.mjs +1 -0
  29. package/dist/exports/api/database.d.mts +99 -0
  30. package/dist/exports/api/database.mjs +1 -0
  31. package/dist/exports/api/event.d.mts +235 -0
  32. package/dist/exports/api/event.mjs +1 -0
  33. package/dist/exports/api/i18n.d.mts +34 -0
  34. package/dist/exports/api/i18n.mjs +1 -0
  35. package/dist/exports/api/index.d.mts +21 -0
  36. package/dist/exports/api/index.mjs +1 -0
  37. package/dist/exports/api/logger.d.mts +21 -0
  38. package/dist/exports/api/logger.mjs +1 -0
  39. package/dist/exports/api/mailer.d.mts +70 -0
  40. package/dist/exports/api/mailer.mjs +1 -0
  41. package/dist/exports/api/middleware/request-logger.d.mts +24 -0
  42. package/dist/exports/api/middleware.d.mts +39 -0
  43. package/dist/exports/api/middleware.mjs +1 -0
  44. package/dist/exports/api/node_modules/.bun/change-case@5.4.4/node_modules/change-case/dist/index.mjs +1 -0
  45. package/dist/exports/api/openapi.d.mts +271 -0
  46. package/dist/exports/api/openapi.mjs +1 -0
  47. package/dist/exports/api/orm.d.mts +13 -0
  48. package/dist/exports/api/orm.mjs +1 -0
  49. package/dist/exports/api/otel.d.mts +40 -0
  50. package/dist/exports/api/otel.mjs +1 -0
  51. package/dist/exports/api/packages/appos/src/constants.mjs +1 -0
  52. package/dist/exports/api/packages/appos/src/instrumentation.d.mts +7 -0
  53. package/dist/exports/api/packages/appos/src/instrumentation.mjs +1 -0
  54. package/dist/exports/api/packages/appos/src/web/auth.mjs +1 -0
  55. package/dist/exports/api/redis.d.mts +34 -0
  56. package/dist/exports/api/redis.mjs +1 -0
  57. package/dist/exports/api/storage-schema.d.mts +707 -0
  58. package/dist/exports/api/storage-schema.mjs +1 -0
  59. package/dist/exports/api/storage.d.mts +506 -0
  60. package/dist/exports/api/storage.mjs +1 -0
  61. package/dist/exports/api/workflow.d.mts +250 -0
  62. package/dist/exports/api/workflow.mjs +1 -0
  63. package/dist/exports/api/workflows/_virtual/rolldown_runtime.mjs +1 -0
  64. package/dist/exports/api/workflows/auth-schema.mjs +1 -0
  65. package/dist/exports/api/workflows/auth.d.mts +375 -0
  66. package/dist/exports/api/workflows/cache.d.mts +44 -0
  67. package/dist/exports/api/workflows/config.d.mts +18 -0
  68. package/dist/exports/api/workflows/container.d.mts +167 -0
  69. package/dist/exports/api/workflows/database.d.mts +46 -0
  70. package/dist/exports/api/workflows/event.d.mts +68 -0
  71. package/dist/exports/api/workflows/event.mjs +1 -0
  72. package/dist/exports/api/workflows/extract-blob-metadata.mjs +1 -0
  73. package/dist/exports/api/workflows/generate-image-variant.d.mts +63 -0
  74. package/dist/exports/api/workflows/generate-image-variant.mjs +1 -0
  75. package/dist/exports/api/workflows/generate-preview.mjs +1 -0
  76. package/dist/exports/api/workflows/index.d.mts +2 -0
  77. package/dist/exports/api/workflows/index.mjs +1 -0
  78. package/dist/exports/api/workflows/logger.d.mts +21 -0
  79. package/dist/exports/api/workflows/mailer.d.mts +70 -0
  80. package/dist/exports/api/workflows/orm.d.mts +13 -0
  81. package/dist/exports/api/workflows/purge-attachment.mjs +1 -0
  82. package/dist/exports/api/workflows/purge-audit-logs.mjs +1 -0
  83. package/dist/exports/api/workflows/purge-unattached-blobs.mjs +1 -0
  84. package/dist/exports/api/workflows/redis.mjs +1 -0
  85. package/dist/exports/api/workflows/storage-schema.d.mts +699 -0
  86. package/dist/exports/api/workflows/storage.d.mts +396 -0
  87. package/dist/exports/api/workflows/track-db-changes.d.mts +72 -0
  88. package/dist/exports/api/workflows/track-db-changes.mjs +1 -0
  89. package/dist/exports/api/workflows/workflow.d.mts +24 -0
  90. package/dist/exports/api/workflows/workflow.mjs +1 -0
  91. package/dist/exports/cli/_virtual/rolldown_runtime.mjs +1 -0
  92. package/dist/exports/cli/api/auth-schema.mjs +1 -0
  93. package/dist/exports/cli/api/auth.d.mts +375 -0
  94. package/dist/exports/cli/api/cache.d.mts +44 -0
  95. package/dist/exports/cli/api/config.d.mts +18 -0
  96. package/dist/exports/cli/api/container.d.mts +167 -0
  97. package/dist/exports/cli/api/database.d.mts +46 -0
  98. package/dist/exports/cli/api/event.d.mts +68 -0
  99. package/dist/exports/cli/api/event.mjs +1 -0
  100. package/dist/exports/cli/api/logger.d.mts +21 -0
  101. package/dist/exports/cli/api/mailer.d.mts +70 -0
  102. package/dist/exports/cli/api/orm.d.mts +13 -0
  103. package/dist/exports/cli/api/redis.mjs +1 -0
  104. package/dist/exports/cli/api/storage-schema.d.mts +699 -0
  105. package/dist/exports/cli/api/storage.d.mts +396 -0
  106. package/dist/exports/cli/api/workflow.d.mts +2 -0
  107. package/dist/exports/cli/api/workflow.mjs +1 -0
  108. package/dist/exports/cli/api/workflows/extract-blob-metadata.mjs +1 -0
  109. package/dist/exports/cli/api/workflows/generate-image-variant.d.mts +63 -0
  110. package/dist/exports/cli/api/workflows/generate-image-variant.mjs +1 -0
  111. package/dist/exports/cli/api/workflows/generate-preview.mjs +1 -0
  112. package/dist/exports/cli/api/workflows/purge-attachment.mjs +1 -0
  113. package/dist/exports/cli/api/workflows/purge-audit-logs.mjs +1 -0
  114. package/dist/exports/cli/api/workflows/purge-unattached-blobs.mjs +1 -0
  115. package/dist/exports/cli/api/workflows/track-db-changes.mjs +1 -0
  116. package/dist/exports/cli/command.d.mts +54 -0
  117. package/dist/exports/cli/command.mjs +1 -0
  118. package/dist/exports/cli/context.d.mts +170 -0
  119. package/dist/exports/cli/index.d.mts +3 -0
  120. package/dist/exports/cli/index.mjs +1 -0
  121. package/dist/exports/devtools/index.d.ts +3 -0
  122. package/dist/exports/devtools/index.js +1 -0
  123. package/dist/exports/instrumentation.d.mts +1 -0
  124. package/dist/exports/instrumentation.mjs +1 -0
  125. package/dist/exports/tests/_virtual/rolldown_runtime.mjs +1 -0
  126. package/dist/exports/tests/api.d.mts +86 -0
  127. package/dist/exports/tests/api.mjs +1 -0
  128. package/dist/exports/tests/mock.d.mts +1 -0
  129. package/dist/exports/tests/mock.mjs +1 -0
  130. package/dist/exports/tests/node_modules/.bun/change-case@5.4.4/node_modules/change-case/dist/index.mjs +1 -0
  131. package/dist/exports/tests/node_modules/.bun/rate-limit-redis@4.3.1_f1fa5524233c9c60/node_modules/rate-limit-redis/dist/index.mjs +25 -0
  132. package/dist/exports/tests/packages/appos/src/api/app-context.d.mts +115 -0
  133. package/dist/exports/tests/packages/appos/src/api/auth-schema.d.mts +4248 -0
  134. package/dist/exports/tests/packages/appos/src/api/auth-schema.mjs +1 -0
  135. package/dist/exports/tests/packages/appos/src/api/auth.d.mts +398 -0
  136. package/dist/exports/tests/packages/appos/src/api/cache.d.mts +44 -0
  137. package/dist/exports/tests/packages/appos/src/api/config.d.mts +28 -0
  138. package/dist/exports/tests/packages/appos/src/api/container.d.mts +210 -0
  139. package/dist/exports/tests/packages/appos/src/api/database.d.mts +99 -0
  140. package/dist/exports/tests/packages/appos/src/api/database.mjs +1 -0
  141. package/dist/exports/tests/packages/appos/src/api/event.d.mts +235 -0
  142. package/dist/exports/tests/packages/appos/src/api/event.mjs +1 -0
  143. package/dist/exports/tests/packages/appos/src/api/i18n.d.mts +34 -0
  144. package/dist/exports/tests/packages/appos/src/api/index.d.mts +27 -0
  145. package/dist/exports/tests/packages/appos/src/api/logger.d.mts +21 -0
  146. package/dist/exports/tests/packages/appos/src/api/mailer.d.mts +70 -0
  147. package/dist/exports/tests/packages/appos/src/api/middleware/error-handler.mjs +1 -0
  148. package/dist/exports/tests/packages/appos/src/api/middleware/health.mjs +1 -0
  149. package/dist/exports/tests/packages/appos/src/api/middleware/i18n.mjs +1 -0
  150. package/dist/exports/tests/packages/appos/src/api/middleware/request-logger.d.mts +24 -0
  151. package/dist/exports/tests/packages/appos/src/api/middleware/request-logger.mjs +1 -0
  152. package/dist/exports/tests/packages/appos/src/api/middleware/shutdown.mjs +1 -0
  153. package/dist/exports/tests/packages/appos/src/api/middleware/timeout.mjs +1 -0
  154. package/dist/exports/tests/packages/appos/src/api/middleware/youch-handler.mjs +1 -0
  155. package/dist/exports/tests/packages/appos/src/api/middleware.d.mts +39 -0
  156. package/dist/exports/tests/packages/appos/src/api/middleware.mjs +1 -0
  157. package/dist/exports/tests/packages/appos/src/api/openapi.d.mts +271 -0
  158. package/dist/exports/tests/packages/appos/src/api/orm.d.mts +13 -0
  159. package/dist/exports/tests/packages/appos/src/api/otel.d.mts +40 -0
  160. package/dist/exports/tests/packages/appos/src/api/redis.d.mts +34 -0
  161. package/dist/exports/tests/packages/appos/src/api/redis.mjs +1 -0
  162. package/dist/exports/tests/packages/appos/src/api/server.mjs +1 -0
  163. package/dist/exports/tests/packages/appos/src/api/storage-schema.d.mts +707 -0
  164. package/dist/exports/tests/packages/appos/src/api/storage.d.mts +506 -0
  165. package/dist/exports/tests/packages/appos/src/api/workflow.d.mts +250 -0
  166. package/dist/exports/tests/packages/appos/src/api/workflow.mjs +1 -0
  167. package/dist/exports/tests/packages/appos/src/api/workflows/extract-blob-metadata.mjs +1 -0
  168. package/dist/exports/tests/packages/appos/src/api/workflows/generate-image-variant.d.mts +99 -0
  169. package/dist/exports/tests/packages/appos/src/api/workflows/generate-image-variant.mjs +1 -0
  170. package/dist/exports/tests/packages/appos/src/api/workflows/generate-preview.mjs +1 -0
  171. package/dist/exports/tests/packages/appos/src/api/workflows/purge-attachment.mjs +1 -0
  172. package/dist/exports/tests/packages/appos/src/api/workflows/purge-audit-logs.mjs +1 -0
  173. package/dist/exports/tests/packages/appos/src/api/workflows/purge-unattached-blobs.mjs +1 -0
  174. package/dist/exports/tests/packages/appos/src/api/workflows/track-db-changes.mjs +1 -0
  175. package/dist/exports/tests/packages/appos/src/constants.mjs +1 -0
  176. package/dist/exports/tests/packages/appos/src/instrumentation.d.mts +7 -0
  177. package/dist/exports/tests/packages/appos/src/instrumentation.mjs +1 -0
  178. package/dist/exports/tests/react.d.mts +2 -0
  179. package/dist/exports/tests/react.mjs +1 -0
  180. package/dist/exports/tests/setup.d.mts +1 -0
  181. package/dist/exports/tests/setup.mjs +1 -0
  182. package/dist/exports/vendors/date.js +1 -0
  183. package/dist/exports/vendors/toolkit.js +1 -0
  184. package/dist/exports/vendors/zod.d.ts +1 -0
  185. package/dist/exports/vendors/zod.js +1 -0
  186. package/dist/exports/vite/index.d.mts +19 -0
  187. package/dist/exports/vite/index.mjs +1 -0
  188. package/dist/exports/vitest/config.d.mts +1 -0
  189. package/dist/exports/vitest/config.mjs +1 -0
  190. package/dist/exports/vitest/globals.d.mts +1 -0
  191. package/dist/exports/vitest/globals.mjs +1 -0
  192. package/dist/exports/vitest/index.d.mts +1 -0
  193. package/dist/exports/vitest/index.mjs +1 -0
  194. package/dist/exports/web/api/auth.d.ts +125 -0
  195. package/dist/exports/web/api/database.d.ts +4 -0
  196. package/dist/exports/web/api/logger.d.ts +1 -0
  197. package/dist/exports/web/auth.d.ts +2388 -0
  198. package/dist/exports/web/auth.js +1 -0
  199. package/dist/exports/web/i18n.d.ts +42 -0
  200. package/dist/exports/web/i18n.js +1 -0
  201. package/dist/exports/web/index.d.ts +6 -0
  202. package/dist/exports/web/index.js +1 -0
  203. package/package.json +138 -98
  204. package/build/bin/main.mjs +0 -2
  205. package/build/exports/cli/index.d.mts +0 -325
  206. package/build/exports/cli/index.mjs +0 -1
  207. package/build/exports/instrumentation/execAsync-DaIUcs6_.mjs +0 -1
  208. package/build/exports/instrumentation/getMachineId-bsd-bB6ipDhm.mjs +0 -1
  209. package/build/exports/instrumentation/getMachineId-darwin-D1Bx5aCe.mjs +0 -2
  210. package/build/exports/instrumentation/getMachineId-linux-D_R9Tla0.mjs +0 -1
  211. package/build/exports/instrumentation/getMachineId-unsupported-BZKPE_Ev.mjs +0 -1
  212. package/build/exports/instrumentation/getMachineId-win-CmPvIqHL.mjs +0 -1
  213. package/build/exports/instrumentation/instrumentation.d.mts +0 -1
  214. package/build/exports/instrumentation/instrumentation.mjs +0 -80
  215. package/build/exports/server/index.d.mts +0 -327
  216. package/build/exports/server/index.mjs +0 -219
  217. package/build/exports/server/react-gPO8Jsy-.mjs +0 -13
  218. package/build/exports/server/server.node-D_9RYjm9.mjs +0 -210
  219. package/build/exports/store/index.d.mts +0 -58
  220. package/build/exports/store/index.mjs +0 -15
  221. package/build/exports/support/datetime.js +0 -1
  222. package/build/exports/support/utils.js +0 -1
  223. package/build/exports/support/zod.d.ts +0 -2
  224. package/build/exports/support/zod.js +0 -23
  225. package/build/exports/test/dist-DAsoCGWk.mjs +0 -348
  226. package/build/exports/test/index.d.mts +0 -3
  227. package/build/exports/test/index.mjs +0 -1
  228. package/build/exports/test/magic-string.es-BWgiB2kd.mjs +0 -14
  229. package/build/exports/test/setup.d.mts +0 -1
  230. package/build/exports/test/setup.mjs +0 -329
  231. /package/{build/exports/support/datetime.d.ts → dist/exports/vendors/date.d.ts} +0 -0
  232. /package/{build/exports/support/utils.d.ts → dist/exports/vendors/toolkit.d.ts} +0 -0
@@ -1,15 +0,0 @@
1
- import{createRequire as e}from"node:module";import{Buffer as t}from"buffer";var n=Object.create,r=Object.defineProperty,i=Object.getOwnPropertyDescriptor,a=Object.getOwnPropertyNames,o=Object.getPrototypeOf,s=Object.prototype.hasOwnProperty,c=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),l=(e,t,n,o)=>{if(t&&typeof t==`object`||typeof t==`function`)for(var c=a(t),l=0,u=c.length,d;l<u;l++)d=c[l],!s.call(e,d)&&d!==n&&r(e,d,{get:(e=>t[e]).bind(null,d),enumerable:!(o=i(t,d))||o.enumerable});return e},u=(e,t,i)=>(i=e==null?{}:n(o(e)),l(t||!e||!e.__esModule?r(i,`default`,{value:e,enumerable:!0}):i,e)),d=e(import.meta.url);const f=Symbol.for(`drizzle:entityKind`),p=Symbol.for(`drizzle:hasOwnEntityKind`);function m(e,t){if(!e||typeof e!=`object`)return!1;if(e instanceof t)return!0;if(!Object.prototype.hasOwnProperty.call(t,f))throw Error(`Class "${t.name??`<unknown>`}" doesn't look like a Drizzle entity. If this is incorrect and the class is provided by Drizzle, please report this as a bug.`);let n=Object.getPrototypeOf(e).constructor;if(n)for(;n;){if(f in n&&n[f]===t[f])return!0;n=Object.getPrototypeOf(n)}return!1}var h=class{static[f]=`Column`;name;keyAsName;primary;notNull;default;defaultFn;onUpdateFn;hasDefault;isUnique;uniqueName;uniqueType;dataType;columnType;enumValues=void 0;generated=void 0;generatedIdentity=void 0;length;isLengthExact;config;table;onInit(){}constructor(e,t){this.config=t,this.onInit(),this.table=e,this.name=t.name,this.keyAsName=t.keyAsName,this.notNull=t.notNull,this.default=t.default,this.defaultFn=t.defaultFn,this.onUpdateFn=t.onUpdateFn,this.hasDefault=t.hasDefault,this.primary=t.primaryKey,this.isUnique=t.isUnique,this.uniqueName=t.uniqueName,this.uniqueType=t.uniqueType,this.dataType=t.dataType,this.columnType=t.columnType,this.generated=t.generated,this.generatedIdentity=t.generatedIdentity,this.length=t.length,this.isLengthExact=t.isLengthExact}mapFromDriverValue(e){return e}mapToDriverValue(e){return e}shouldDisableInsert(){return this.config.generated!==void 0&&this.config.generated.type!==`byDefault`}};function g(e){return e.table}function _(e){let[t,n]=e.dataType.split(` `);return{type:t,constraint:n}}var v=class{static[f]=`ColumnBuilder`;config;constructor(e,t,n){this.config={name:e,keyAsName:e===``,notNull:!1,default:void 0,hasDefault:!1,primaryKey:!1,isUnique:!1,uniqueName:void 0,uniqueType:void 0,dataType:t,columnType:n,generated:void 0}}$type(){return this}notNull(){return this.config.notNull=!0,this}default(e){return this.config.default=e,this.config.hasDefault=!0,this}$defaultFn(e){return this.config.defaultFn=e,this.config.hasDefault=!0,this}$default=this.$defaultFn;$onUpdateFn(e){return this.config.onUpdateFn=e,this.config.hasDefault=!0,this}$onUpdate=this.$onUpdateFn;primaryKey(){return this.config.primaryKey=!0,this.config.notNull=!0,this}setName(e){this.config.name===``&&(this.config.name=e)}};const y=Symbol.for(`drizzle:Name`);var b=class{static[f]=`PgForeignKeyBuilder`;reference;_onUpdate=`no action`;_onDelete=`no action`;constructor(e,t){this.reference=()=>{let{name:t,columns:n,foreignColumns:r}=e();return{name:t,columns:n,foreignTable:r[0].table,foreignColumns:r}},t&&(this._onUpdate=t.onUpdate,this._onDelete=t.onDelete)}onUpdate(e){return this._onUpdate=e===void 0?`no action`:e,this}onDelete(e){return this._onDelete=e===void 0?`no action`:e,this}build(e){return new x(e,this)}},x=class{constructor(e,t){this.table=e,this.reference=t.reference,this.onUpdate=t._onUpdate,this.onDelete=t._onDelete}static[f]=`PgForeignKey`;reference;onUpdate;onDelete;getName(){let{name:e,columns:t,foreignColumns:n}=this.reference(),r=t.map(e=>e.name),i=n.map(e=>e.name),a=[this.table[y],...r,n[0].table[y],...i];return e??`${a.join(`_`)}_fk`}};function S(e,...t){return e(...t)}function ee(e){return new re(e)}function te(e,t){return`${e[y]}_${t.join(`_`)}_unique`}var ne=class{constructor(e,t){this.name=t,this.columns=e}static[f]=`PgUniqueConstraintBuilder`;columns;nullsNotDistinctConfig=!1;nullsNotDistinct(){return this.nullsNotDistinctConfig=!0,this}build(e){return new ie(e,this.columns,this.nullsNotDistinctConfig,this.name)}},re=class{static[f]=`PgUniqueOnConstraintBuilder`;name;constructor(e){this.name=e}on(...e){return new ne(e,this.name)}},ie=class{constructor(e,t,n,r){this.table=e,this.columns=t,this.name=r??te(this.table,this.columns.map(e=>e.name)),this.nullsNotDistinct=n}static[f]=`PgUniqueConstraint`;columns;name;nullsNotDistinct=!1;getName(){return this.name}};function ae(e,t,n){for(let r=t;r<e.length;r++){let i=e[r];if(i===`\\`){r++;continue}if(i===`"`)return[e.slice(t,r).replace(/\\/g,``),r+1];if(!n&&(i===`,`||i===`}`))return[e.slice(t,r).replace(/\\/g,``),r]}return[e.slice(t).replace(/\\/g,``),e.length]}function oe(e,t=0){let n=[],r=t,i=!1;for(;r<e.length;){let a=e[r];if(a===`,`){(i||r===t)&&n.push(``),i=!0,r++;continue}if(i=!1,a===`\\`){r+=2;continue}if(a===`"`){let[t,i]=ae(e,r+1,!0);n.push(t),r=i;continue}if(a===`}`)return[n,r+1];if(a===`{`){let[t,i]=oe(e,r+1);n.push(t),r=i;continue}let[o,s]=ae(e,r,!1);n.push(o),r=s}return[n,r]}function se(e){let[t]=oe(e,1);return t}function ce(e){return`{${e.map(e=>Array.isArray(e)?ce(e):typeof e==`string`?`"${e.replace(/\\/g,`\\\\`).replace(/"/g,`\\"`)}"`:`${e}`).join(`,`)}}`}var C=class extends v{foreignKeyConfigs=[];static[f]=`PgColumnBuilder`;array(e){return new de(this.config.name,this,e)}references(e,t={}){return this.foreignKeyConfigs.push({ref:e,actions:t}),this}unique(e,t){return this.config.isUnique=!0,this.config.uniqueName=e,this.config.uniqueType=t?.nulls,this}generatedAlwaysAs(e){return this.config.generated={as:e,type:`always`,mode:`stored`},this}buildForeignKeys(e,t){return this.foreignKeyConfigs.map(({ref:n,actions:r})=>S((n,r)=>{let i=new b(()=>{let t=n();return{columns:[e],foreignColumns:[t]}});return r.onUpdate&&i.onUpdate(r.onUpdate),r.onDelete&&i.onDelete(r.onDelete),i.build(t)},n,r))}buildExtraConfigColumn(e){return new le(e,this.config)}},w=class extends h{static[f]=`PgColumn`;table;constructor(e,t){t.uniqueName||=te(e,[t.name]),super(e,t),this.table=e}},le=class extends w{static[f]=`ExtraConfigColumn`;getSQLType(){return this.getSQLType()}indexConfig={order:this.config.order??`asc`,nulls:this.config.nulls??`last`,opClass:this.config.opClass};defaultConfig={order:`asc`,nulls:`last`,opClass:void 0};asc(){return this.indexConfig.order=`asc`,this}desc(){return this.indexConfig.order=`desc`,this}nullsFirst(){return this.indexConfig.nulls=`first`,this}nullsLast(){return this.indexConfig.nulls=`last`,this}op(e){return this.indexConfig.opClass=e,this}},ue=class{static[f]=`IndexedColumn`;constructor(e,t,n,r){this.name=e,this.keyAsName=t,this.type=n,this.indexConfig=r}name;keyAsName;type;indexConfig},de=class extends C{static[f]=`PgArrayBuilder`;constructor(e,t,n){super(e,`array basecolumn`,`PgArray`),this.config.baseBuilder=t,this.config.length=n}build(e){let t=this.config.baseBuilder.build(e);return new fe(e,this.config,t)}},fe=class e extends w{constructor(e,t,n,r){super(e,t),this.baseColumn=n,this.range=r}static[f]=`PgArray`;getSQLType(){return`${this.baseColumn.getSQLType()}[${typeof this.length==`number`?this.length:``}]`}mapFromDriverValue(e){return typeof e==`string`&&(e=se(e)),e.map(e=>this.baseColumn.mapFromDriverValue(e))}mapFromJsonValue(e){typeof e==`string`&&(e=se(e));let t=this.baseColumn;return`mapFromJsonValue`in t?e.map(e=>t.mapFromJsonValue(e)):e.map(e=>t.mapFromDriverValue(e))}mapToDriverValue(t,n=!1){let r=t.map(t=>t===null?null:m(this.baseColumn,e)?this.baseColumn.mapToDriverValue(t,!0):this.baseColumn.mapToDriverValue(t));return n?r:ce(r)}},pe=class extends C{static[f]=`PgEnumObjectColumnBuilder`;constructor(e,t){super(e,`string enum`,`PgEnumObjectColumn`),this.config.enum=t}build(e){return new me(e,this.config)}},me=class extends w{static[f]=`PgEnumObjectColumn`;enum;enumValues=this.config.enum.enumValues;constructor(e,t){super(e,t),this.enum=t.enum}getSQLType(){return this.enum.enumName}};const he=Symbol.for(`drizzle:isPgEnum`);function ge(e){return!!e&&typeof e==`function`&&he in e&&e[he]===!0}var _e=class extends C{static[f]=`PgEnumColumnBuilder`;constructor(e,t){super(e,`string enum`,`PgEnumColumn`),this.config.enum=t}build(e){return new ve(e,this.config)}},ve=class extends w{static[f]=`PgEnumColumn`;enum=this.config.enum;enumValues=this.config.enum.enumValues;constructor(e,t){super(e,t),this.enum=t.enum}getSQLType(){return this.enum.enumName}};function ye(e,t){return Array.isArray(t)?be(e,[...t],void 0):xe(e,t,void 0)}function be(e,t,n){let r=Object.assign(e=>new _e(e??``,r),{enumName:e,enumValues:t,schema:n,[he]:!0});return r}function xe(e,t,n){let r=Object.assign(e=>new pe(e??``,r),{enumName:e,enumValues:Object.values(t),schema:n,[he]:!0});return r}var T=class{static[f]=`Subquery`;constructor(e,t,n,r=!1,i=[]){this._={brand:`Subquery`,sql:e,selectedFields:t,alias:n,isWith:r,usedTables:i}}},Se=class extends T{static[f]=`WithSubquery`};const Ce={startActiveSpan(e,t){return t()}},E=Symbol.for(`drizzle:ViewBaseConfig`),D=Symbol.for(`drizzle:Schema`),O=Symbol.for(`drizzle:Columns`),we=Symbol.for(`drizzle:ExtraConfigColumns`),Te=Symbol.for(`drizzle:OriginalName`),Ee=Symbol.for(`drizzle:BaseName`),k=Symbol.for(`drizzle:IsAlias`),De=Symbol.for(`drizzle:ExtraConfigBuilder`),Oe=Symbol.for(`drizzle:IsDrizzleTable`);var A=class{static[f]=`Table`;static Symbol={Name:y,Schema:D,OriginalName:Te,Columns:O,ExtraConfigColumns:we,BaseName:Ee,IsAlias:k,ExtraConfigBuilder:De};[y];[Te];[D];[O];[we];[Ee];[k]=!1;[Oe]=!0;[De]=void 0;constructor(e,t,n){this[y]=this[Te]=e,this[D]=t,this[Ee]=n}getSQL=void 0};function ke(e){return typeof e==`object`&&!!e&&Oe in e}function j(e){return e[y]}function Ae(e){return`${e[D]??`public`}.${e[y]}`}var je=class{static[f]=`FakePrimitiveParam`};function Me(e){return e!=null&&typeof e.getSQL==`function`}function Ne(e){let t={sql:``,params:[]};for(let n of e)t.sql+=n.sql,t.params.push(...n.params),n.typings?.length&&(t.typings||=[],t.typings.push(...n.typings));return t}var M=class{static[f]=`StringChunk`;value;constructor(e){this.value=Array.isArray(e)?e:[e]}getSQL(){return new N([this])}},N=class e{constructor(e){this.queryChunks=e;for(let t of e)if(m(t,A)){let e=t[A.Symbol.Schema];this.usedTables.push(e===void 0?t[A.Symbol.Name]:e+`.`+t[A.Symbol.Name])}}static[f]=`SQL`;decoder=Le;shouldInlineParams=!1;usedTables=[];append(e){return this.queryChunks.push(...e.queryChunks),this}toQuery(e){return Ce.startActiveSpan(`drizzle.buildSQL`,t=>{let n=this.buildQueryFromSourceParams(this.queryChunks,e);return t?.setAttributes({"drizzle.query.text":n.sql,"drizzle.query.params":JSON.stringify(n.params)}),n})}buildQueryFromSourceParams(t,n){let r=Object.assign({},n,{inlineParams:n.inlineParams||this.shouldInlineParams,paramStartIndex:n.paramStartIndex||{value:0}}),{casing:i,escapeName:a,escapeParam:o,prepareTyping:s,inlineParams:c,paramStartIndex:l}=r;return Ne(t.map(t=>{if(m(t,M))return{sql:t.value.join(``),params:[]};if(m(t,Pe))return{sql:a(t.value),params:[]};if(t===void 0)return{sql:``,params:[]};if(Array.isArray(t)){let e=[new M(`(`)];for(let[n,r]of t.entries())e.push(r),n<t.length-1&&e.push(new M(`, `));return e.push(new M(`)`)),this.buildQueryFromSourceParams(e,r)}if(m(t,e))return this.buildQueryFromSourceParams(t.queryChunks,{...r,inlineParams:c||t.shouldInlineParams});if(m(t,A)){let e=t[A.Symbol.Schema],n=t[A.Symbol.Name];return{sql:e===void 0||t[k]?a(n):a(e)+`.`+a(n),params:[]}}if(m(t,h)){let e=i.getColumnCasing(t);if(n.invokeSource===`indexes`)return{sql:a(e),params:[]};let r=t.table[A.Symbol.Schema];return{sql:t.table[k]||r===void 0?a(t.table[A.Symbol.Name])+`.`+a(e):a(r)+`.`+a(t.table[A.Symbol.Name])+`.`+a(e),params:[]}}if(m(t,L)){let e=t[E].schema,n=t[E].name;return{sql:e===void 0||t[E].isAlias?a(n):a(e)+`.`+a(n),params:[]}}if(m(t,P)){if(m(t.value,I))return{sql:o(l.value++,t),params:[t],typings:[`none`]};let n=t.value===null?null:t.encoder.mapToDriverValue(t.value);if(m(n,e))return this.buildQueryFromSourceParams([n],r);if(c)return{sql:this.mapInlineParam(n,r),params:[]};let i=[`none`];return s&&(i=[s(t.encoder)]),{sql:o(l.value++,n),params:[n],typings:i}}return m(t,I)?{sql:o(l.value++,t),params:[t],typings:[`none`]}:m(t,e.Aliased)&&t.fieldAlias!==void 0?{sql:a(t.fieldAlias),params:[]}:m(t,T)?t._.isWith?{sql:a(t._.alias),params:[]}:this.buildQueryFromSourceParams([new M(`(`),t._.sql,new M(`) `),new Pe(t._.alias)],r):ge(t)?t.schema?{sql:a(t.schema)+`.`+a(t.enumName),params:[]}:{sql:a(t.enumName),params:[]}:Me(t)?t.shouldOmitSQLParens?.()?this.buildQueryFromSourceParams([t.getSQL()],r):this.buildQueryFromSourceParams([new M(`(`),t.getSQL(),new M(`)`)],r):c?{sql:this.mapInlineParam(t,r),params:[]}:{sql:o(l.value++,t),params:[t],typings:[`none`]}}))}mapInlineParam(e,{escapeString:t}){if(e===null)return`null`;if(typeof e==`number`||typeof e==`boolean`)return e.toString();if(typeof e==`string`)return t(e);if(typeof e==`object`){let n=e.toString();return t(n===`[object Object]`?JSON.stringify(e):n)}throw Error(`Unexpected param value: `+e)}getSQL(){return this}as(t){return t===void 0?this:new e.Aliased(this,t)}mapWith(e){return this.decoder=typeof e==`function`?{mapFromDriverValue:e}:e,this}inlineParams(){return this.shouldInlineParams=!0,this}if(e){return e?this:void 0}},Pe=class{constructor(e){this.value=e}static[f]=`Name`;brand;getSQL(){return new N([this])}};function Fe(e){return new Pe(e)}function Ie(e){return typeof e==`object`&&!!e&&`mapToDriverValue`in e&&typeof e.mapToDriverValue==`function`}const Le={mapFromDriverValue:e=>e},Re={mapToDriverValue:e=>e},ze={...Le,...Re};var P=class{constructor(e,t=Re){this.value=e,this.encoder=t}static[f]=`Param`;brand;getSQL(){return new N([this])}};function Be(e,t){return new P(e,t)}function F(e,...t){let n=[];(t.length>0||e.length>0&&e[0]!==``)&&n.push(new M(e[0]));for(let[r,i]of t.entries())n.push(i,new M(e[r+1]));return new N(n)}(e=>{function t(){return new N([])}e.empty=t;function n(e){return new N(e)}e.fromList=n;function r(e){return new N([new M(e)])}e.raw=r;function i(e,t){let n=[];for(let[r,i]of e.entries())r>0&&t!==void 0&&n.push(t),n.push(i);return new N(n)}e.join=i;function a(e){return new Pe(e)}e.identifier=a;function o(e){return new I(e)}e.placeholder=o;function s(e,t){return new P(e,t)}e.param=s})(F||={}),(e=>{class t{constructor(e,t){this.sql=e,this.fieldAlias=t}static[f]=`SQL.Aliased`;isSelectionField=!1;getSQL(){return this.sql}clone(){return new t(this.sql,this.fieldAlias)}}e.Aliased=t})(N||={});var I=class{constructor(e){this.name=e}static[f]=`Placeholder`;getSQL(){return new N([this])}};function Ve(e){return new I(e)}function He(e,t){return e.map(e=>{if(m(e,I)){if(!(e.name in t))throw Error(`No value for placeholder "${e.name}" was provided`);return t[e.name]}if(m(e,P)&&m(e.value,I)){if(!(e.value.name in t))throw Error(`No value for placeholder "${e.value.name}" was provided`);return e.encoder.mapToDriverValue(t[e.value.name])}return e})}const Ue=Symbol.for(`drizzle:IsDrizzleView`);var L=class{static[f]=`View`;[E];[Ue]=!0;get[y](){return this[E].name}get[D](){return this[E].schema}get[k](){return this[E].isAlias}get[Te](){return this[E].originalName}get[O](){return this[E].selectedFields}constructor({name:e,schema:t,selectedFields:n,query:r}){this[E]={name:e,originalName:e,schema:t,selectedFields:n,query:r,isExisting:!r,isAlias:!1}}getSQL(){return new N([this])}};function We(e){return typeof e==`object`&&!!e&&Ue in e}function Ge(e){return e[E].name}h.prototype.getSQL=function(){return new N([this])},A.prototype.getSQL=function(){return new N([this])},T.prototype.getSQL=function(){return new N([this])};var Ke=class{constructor(e){this.table=e}static[f]=`ColumnAliasProxyHandler`;get(e,t){return t===`table`?this.table:e[t]}},qe=class{constructor(e,t){this.alias=e,this.replaceOriginalName=t}static[f]=`TableAliasProxyHandler`;get(e,t){if(t===A.Symbol.IsAlias)return!0;if(t===A.Symbol.Name||this.replaceOriginalName&&t===A.Symbol.OriginalName)return this.alias;if(t===E)return{...e[E],name:this.alias,isAlias:!0};if(t===A.Symbol.Columns){let t=e[A.Symbol.Columns];if(!t)return t;let n={};return Object.keys(t).map(r=>{n[r]=new Proxy(t[r],new Ke(new Proxy(e,this)))}),n}let n=e[t];return m(n,h)?new Proxy(n,new Ke(new Proxy(e,this))):n}},Je=class{constructor(e){this.alias=e}static[f]=`RelationTableAliasProxyHandler`;get(e,t){return t===`sourceTable`?R(e.sourceTable,this.alias):e[t]}};function R(e,t){return new Proxy(e,new qe(t,!1))}function Ye(e,t){return new Proxy(e,new Je(t))}function z(e,t){return new Proxy(e,new Ke(new Proxy(e.table,new qe(t,!1))))}function Xe(e,t){return new N.Aliased(Ze(e.sql,t),e.fieldAlias)}function Ze(e,t){return F.join(e.queryChunks.map(e=>m(e,h)?z(e,t):m(e,N)?Ze(e,t):m(e,N.Aliased)?Xe(e,t):e))}var Qe=class extends Error{static[f]=`DrizzleError`;constructor({message:e,cause:t}){super(e),this.name=`DrizzleError`,this.cause=t}},$e=class e extends Error{constructor(t,n,r){super(`Failed query: ${t}
2
- params: ${n}`),this.query=t,this.params=n,this.cause=r,Error.captureStackTrace(this,e),r&&(this.cause=r)}static[f]=`DrizzleQueryError`},et=class extends Qe{static[f]=`TransactionRollbackError`;constructor(){super({message:`Rollback`})}},tt=class{static[f]=`ConsoleLogWriter`;write(e){console.log(e)}},nt=class{static[f]=`DefaultLogger`;writer;constructor(e){this.writer=e?.writer??new tt}logQuery(e,t){let n=t.map(e=>{try{return JSON.stringify(e)}catch{return String(e)}}),r=n.length?` -- params: [${n.join(`, `)}]`:``;this.writer.write(`Query: ${e}${r}`)}},rt=class{static[f]=`NoopLogger`;logQuery(){}},it=class{static[f]=`QueryPromise`;[Symbol.toStringTag]=`QueryPromise`;catch(e){return this.then(void 0,e)}finally(e){return this.then(t=>(e?.(),t),t=>{throw e?.(),t})}then(e,t){return this.execute().then(e,t)}};function B(e,t){return Ie(t)&&!Me(e)&&!m(e,P)&&!m(e,I)&&!m(e,h)&&!m(e,A)&&!m(e,L)?new P(e,t):e}const V=(e,t)=>F`${e} = ${B(t,e)}`,at=(e,t)=>F`${e} <> ${B(t,e)}`;function H(...e){let t=e.filter(e=>e!==void 0);if(t.length!==0)return t.length===1?new N(t):new N([new M(`(`),F.join(t,new M(` and `)),new M(`)`)])}function ot(...e){let t=e.filter(e=>e!==void 0);if(t.length!==0)return t.length===1?new N(t):new N([new M(`(`),F.join(t,new M(` or `)),new M(`)`)])}function st(e){return F`not ${e}`}const ct=(e,t)=>F`${e} > ${B(t,e)}`,lt=(e,t)=>F`${e} >= ${B(t,e)}`,ut=(e,t)=>F`${e} < ${B(t,e)}`,dt=(e,t)=>F`${e} <= ${B(t,e)}`;function ft(e,t){return Array.isArray(t)?t.length===0?F`false`:F`${e} in ${t.map(t=>B(t,e))}`:F`${e} in ${B(t,e)}`}function pt(e,t){return Array.isArray(t)?t.length===0?F`true`:F`${e} not in ${t.map(t=>B(t,e))}`:F`${e} not in ${B(t,e)}`}function mt(e){return F`${e} is null`}function ht(e){return F`${e} is not null`}function gt(e){return F`exists ${e}`}function _t(e){return F`not exists ${e}`}function vt(e,t,n){return F`${e} between ${B(t,e)} and ${B(n,e)}`}function yt(e,t,n){return F`${e} not between ${B(t,e)} and ${B(n,e)}`}function bt(e,t){return F`${e} like ${t}`}function xt(e,t){return F`${e} not like ${t}`}function St(e,t){return F`${e} ilike ${t}`}function Ct(e,t){return F`${e} not ilike ${t}`}function wt(e,t){if(Array.isArray(t)){if(t.length===0)throw Error(`arrayContains requires at least one value`);return F`${e} @> ${F`${B(t,e)}`}`}return F`${e} @> ${B(t,e)}`}function Tt(e,t){if(Array.isArray(t)){if(t.length===0)throw Error(`arrayContained requires at least one value`);return F`${e} <@ ${F`${B(t,e)}`}`}return F`${e} <@ ${B(t,e)}`}function Et(e,t){if(Array.isArray(t)){if(t.length===0)throw Error(`arrayOverlaps requires at least one value`);return F`${e} && ${F`${B(t,e)}`}`}return F`${e} && ${B(t,e)}`}function Dt(e){return F`${e} asc`}function Ot(e){return F`${e} desc`}function kt(e,t){for(let t of Object.values(e))for(let[e,n]of Object.entries(t.relations))m(n,U)&&(n.sourceTable=t.table,n.fieldName=e);for(let[n,r]of Object.entries(e))for(let[i,a]of Object.entries(r.relations)){if(!m(a,U))continue;let o,{targetTableName:s,alias:c,sourceColumns:l,targetColumns:u,throughTable:d,sourceTable:f,through:p,targetTable:h,where:g,sourceColumnTableNames:_,targetColumnTableNames:v}=a,y=`relations -> ${r.name}: { ${i}: r.${m(a,Mt)?`one`:`many`}.${s}(...) }`;if(i in r.table[O])throw Error(`${y}: relation name collides with column "${i}" of table "${r.name}"`);if(typeof c==`string`&&!c)throw Error(`${y}: "alias" cannot be an empty string - omit it if you don't need it`);if(l?.length===0)throw Error(`${y}: "from" cannot be empty`);if(u?.length===0)throw Error(`${y}: "to" cannot be empty`);if(l&&u){if(l.length!==u.length&&!d)throw Error(`${y}: "from" and "to" fields without "through" must have the same length`);for(let e of _)if(e!==n)throw Error(`${y}: all "from" columns must belong to table "${n}", found column of table "${e}"`);for(let e of v)if(e!==s)throw Error(`${y}: all "to" columns must belong to table "${h}", found column of table "${e}"`);if(p){if(p.source.length!==l.length||p.target.length!==u.length)throw Error(`${y}: ".through(column)" must be used either on all columns in "from" and "to" or not defined on any of them`);for(let e of p.source)if(t[e._.tableName]!==d)throw Error(`${y}: ".through(column)" must be used on the same table by all columns of the relation`);for(let e of p.target)if(t[e._.tableName]!==d)throw Error(`${y}: ".through(column)" must be used on the same table by all columns of the relation`)}continue}if(l||u)throw Error(`${y}: relation must have either both "from" and "to" defined, or none of them`);let b=e[s];if(!b)throw Error(`${y}: not enough data provided to build the relation - "from"/"to" are not defined, and no reverse relations of table "${s}" were found"`);if(c){let e=Object.values(b.relations).filter(e=>m(e,U)&&e.alias===c&&e!==a);if(e.length>1)throw Error(`${y}: not enough data provided to build the relation - "from"/"to" are not defined, and multiple relations with alias "${c}" found in table "${s}": ${e.map(e=>`"${e.fieldName}"`).join(`, `)}`);if(o=e[0],!o)throw Error(`${y}: not enough data provided to build the relation - "from"/"to" are not defined, and there is no reverse relation of table "${s}" with alias "${c}"`)}else{let e=Object.values(b.relations).filter(e=>m(e,U)&&e.targetTable===f&&!e.alias&&e!==a);if(e.length>1)throw Error(`${y}: not enough data provided to build the relation - "from"/"to" are not defined, and multiple relations between "${s}" and "${n}" were found.
3
- Hint: you can specify "alias" on both sides of the relation with the same value`);if(o=e[0],!o)throw Error(`${y}: not enough data provided to build the relation - "from"/"to" are not defined, and no reverse relation of table "${s}" with target table "${n}" was found`)}if(!o.sourceColumns||!o.targetColumns)throw Error(`${y}: not enough data provided to build the relation - "from"/"to" are not defined, and reverse relation "${s}.${o.fieldName}" does not have "from"/"to" defined`);a.sourceColumns=o.targetColumns,a.targetColumns=o.sourceColumns,a.through=o.through?{source:o.through.target,target:o.through.source}:void 0,a.throughTable=o.throughTable,a.isReversed=!g,a.where=g??o.where}return e}function At(e,t){let n={};for(let[r,i]of Object.entries(e))n[r]={table:i,name:r,relations:t[r]??{}};return kt(n,e)}function jt(e,t){let n={};for(let[r,i]of Object.entries(t))!i||!e[r]||(n[r]={table:e[r],name:r,relations:i});return kt(n,e)}var U=class{constructor(e,t){this.targetTableName=t,this.targetTable=e}static[f]=`RelationV2`;fieldName;sourceColumns;targetColumns;alias;where;sourceTable;targetTable;through;throughTable;isReversed;sourceColumnTableNames=[];targetColumnTableNames=[]},Mt=class extends U{static[f]=`OneV2`;relationType=`one`;optional;constructor(e,t,n,r){super(t,n),this.alias=r?.alias,this.where=r?.where,r?.from&&(this.sourceColumns=(Array.isArray(r.from)?r.from:[r.from]).map(t=>(this.throughTable??=t._.through?e[t._.through._.tableName]:void 0,this.sourceColumnTableNames.push(t._.tableName),t._.column))),r?.to&&(this.targetColumns=(Array.isArray(r.to)?r.to:[r.to]).map(t=>(this.throughTable??=t._.through?e[t._.through._.tableName]:void 0,this.targetColumnTableNames.push(t._.tableName),t._.column))),this.throughTable&&(this.through={source:(Array.isArray(r?.from)?r.from:r?.from?[r.from]:[]).map(e=>e._.through),target:(Array.isArray(r?.to)?r.to:r?.to?[r.to]:[]).map(e=>e._.through)}),this.optional=r?.optional??!0}},Nt=class extends U{constructor(e,t,n,r){super(t,n),this.config=r,this.alias=r?.alias,this.where=r?.where,r?.from&&(this.sourceColumns=(Array.isArray(r.from)?r.from:[r.from]).map(t=>(this.throughTable??=t._.through?e[t._.through._.tableName]:void 0,this.sourceColumnTableNames.push(t._.tableName),t._.column))),r?.to&&(this.targetColumns=(Array.isArray(r.to)?r.to:[r.to]).map(t=>(this.throughTable??=t._.through?e[t._.through._.tableName]:void 0,this.targetColumnTableNames.push(t._.tableName),t._.column))),this.throughTable&&(this.through={source:(Array.isArray(r?.from)?r.from:r?.from?[r.from]:[]).map(e=>e._.through),target:(Array.isArray(r?.to)?r.to:r?.to?[r.to]:[]).map(e=>e._.through)})}static[f]=`ManyV2`;relationType=`many`},Pt=class{static[f]=`AggregatedField`;table;onTable(e){return this.table=e,this}},Ft=class extends Pt{static[f]=`AggregatedFieldCount`;query;getSQL(){if(!this.query){if(!this.table)throw Error(`Table must be set before building aggregate field`);this.query=F`select count(*) as ${F.identifier(`r`)} from ${K(this.table)}`.mapWith(Number)}return this.query}};const W={and:H,between:vt,eq:V,exists:gt,gt:ct,gte:lt,ilike:St,inArray:ft,arrayContains:wt,arrayContained:Tt,arrayOverlaps:Et,isNull:mt,isNotNull:ht,like:bt,lt:ut,lte:dt,ne:at,not:st,notBetween:yt,notExists:_t,notLike:xt,notIlike:Ct,notInArray:pt,or:ot,sql:F},It={sql:F,asc:Dt,desc:Ot};function Lt(){return It}function Rt(e,t,n=e=>e,r=!1,i=!1,a){for(let o of t){if(o.selection){let t=`${a?`${a}.`:``}${o.key}`;if(e[o.key]===null)continue;if(r&&(e[o.key]=JSON.parse(e[o.key])),i&&typeof e[o.key]==`string`&&(e[o.key]=JSON.parse(e[o.key])),o.isArray){for(let r of e[o.key])Rt(r,o.selection,n,!1,i,t);continue}Rt(e[o.key],o.selection,n,!1,i,t);continue}let t=o.field,s=n(e[o.key]);if(s===null)continue;let c;c=m(t,h)?t:m(t,N)?t.decoder:m(t,N.Aliased)?t.sql.decoder:t.getSQL().decoder,e[o.key]=`mapFromJsonValue`in c?c.mapFromJsonValue(s):c.mapFromDriverValue(s)}return e}var zt=class{static[f]=`RelationsBuilderTable`;_;constructor(e,t){this._={name:t,table:e}}},Bt=class{static[f]=`RelationsBuilderColumn`;_;constructor(e,t,n){this._={tableName:t,column:e,key:n}}through(e){return new Vt(this._.column,this._.tableName,this._.key,e)}},Vt=class{static[f]=`RelationsBuilderColumn`;_;constructor(e,t,n,r){this._={tableName:t,column:e,through:r,key:n}}},Ht=class{static[f]=`RelationsHelperStatic`;_;constructor(e){this._={tables:e};let t={},n={};for(let[r,i]of Object.entries(e))t[r]=t=>new Mt(e,i,r,t),n[r]=t=>new Nt(e,i,r,t);this.one=t,this.many=n}one;many;aggs={count(){return new Ft}}};function Ut(e){let t=new Ht(e),n=Object.entries(e).reduce((e,[t,n])=>{let r=new zt(n,t),i=Object.entries(n[O]).reduce((e,[n,r])=>(e[n]=new Bt(r,t,n),e),{});return e[t]=Object.assign(r,i),e},{});return Object.assign(t,n)}function Wt(e){return Object.fromEntries(Object.entries(e).filter(([e,t])=>m(t,A)||m(t,L)))}function Gt(e,t){let n=Wt(e);return At(n,t?t(Ut(n)):{})}function Kt(e,t){let n=Wt(e);return jt(n,t?t(Ut(n)):Object.fromEntries(Object.keys(n).map(e=>[e,{}])))}function qt(e,t){let n=e[O][t];return n?m(n,h)?n:m(n,N.Aliased)?F`${e}.${F.identifier(n.fieldAlias)}`:F`${e}.${F.identifier(t)}`:F`${e}.${F.identifier(t)}`}function Jt(e,t){if(typeof t!=`object`||m(t,I))return V(e,t);let n=Object.entries(t);if(!n.length)return;let r=[];for(let[t,i]of n)if(i!==void 0)switch(t){case`NOT`:{let t=Jt(e,i);if(!t)continue;r.push(st(t));continue}case`OR`:if(!i.length)continue;r.push(ot(...i.map(t=>Jt(e,t))));continue;case`AND`:if(!i.length)continue;r.push(H(...i.map(t=>Jt(e,t))));continue;case`isNotNull`:case`isNull`:if(!i)continue;r.push(W[t](e));continue;case`in`:r.push(W.inArray(e,i));continue;case`notIn`:r.push(W.notInArray(e,i));continue;default:r.push(W[t](e,i));continue}if(r.length)return H(...r)}function G(e,t,n={},r={},i,a=0){let o=Object.entries(t);if(!o.length)return;let s=[];for(let[t,c]of o)if(c!==void 0)switch(t){case`RAW`:{let t=typeof c==`function`?c(e,W):c.getSQL();s.push(t);continue}case`OR`:if(!c?.length)continue;s.push(ot(...c.map(t=>G(e,t,n,r,i,a))));continue;case`AND`:if(!c?.length)continue;s.push(H(...c.map(t=>G(e,t,n,r,i,a))));continue;case`NOT`:{if(c===void 0)continue;let t=G(e,c,n,r,i,a);if(!t)continue;s.push(st(t));continue}default:{if(e[O][t]){let n=Jt(qt(e,t),c);n&&s.push(n);continue}let o=n[t];if(!o)throw new Qe({message:`Unknown relational filter field: "${t}"`});let l=R(o.targetTable,`f${a}`),u=o.throughTable?R(o.throughTable,`ft${a}`):void 0,d=r[o.targetTableName],{filter:f,joinCondition:p}=Zt(i,o,e,l,u),m=H(f,typeof c==`boolean`?void 0:G(l,c,d.relations,r,i,a+1)),h=u?F`(select * from ${K(l)} inner join ${K(u)} on ${p}${F` where ${m}`.if(m)} limit 1)`:F`(select * from ${K(l)}${F` where ${m}`.if(m)} limit 1)`;m&&s.push((c?gt:_t)(h))}}return H(...s)}function Yt(e,t){if(typeof t==`function`){let n=t(e,It);return m(n,N)?n:Array.isArray(n)?n.length?F.join(n.map(e=>m(e,N)?e:Dt(e)),F`, `):void 0:m(n,h)?Dt(n):void 0}let n=Object.entries(t).filter(([e,t])=>t);if(n.length)return F.join(n.map(([t,n])=>(n===`asc`?Dt:Ot)(qt(e,t))),F`, `)}function Xt(e,t){let n=[],r=[];for(let[i,a]of Object.entries(t)){if(!a)continue;let t=typeof a==`function`?a(e,{sql:W.sql}):a,o=F`(${t.getSQL()}) as ${F.identifier(i)}`;o.decoder=t.getSQL().decoder,n.push(o),r.push({key:i,field:o})}return{sql:n.length?F.join(n,F`, `):void 0,selection:r}}function Zt(e,t,n,r,i){if(t.through){let a=t.sourceColumns.map((r,a)=>{let o=t.through.source[a];return V(F`${n}.${F.identifier(e.getColumnCasing(r))}`,F`${i}.${F.identifier(m(o._.column,h)?e.getColumnCasing(o._.column):o._.key)}`)}),o=t.targetColumns.map((n,a)=>{let o=t.through.target[a];return V(F`${i}.${F.identifier(m(o._.column,h)?e.getColumnCasing(o._.column):o._.key)}`,F`${r}.${F.identifier(e.getColumnCasing(n))}`)});return{filter:H(t.where?G(t.isReversed?n:r,t.where):void 0,...a),joinCondition:H(...o)}}return{filter:H(...t.sourceColumns.map((i,a)=>{let o=t.targetColumns[a];return V(F`${n}.${F.identifier(e.getColumnCasing(i))}`,F`${r}.${F.identifier(e.getColumnCasing(o))}`)}),t.where?G(t.isReversed?n:r,t.where):void 0)}}function K(e){return F`${e[k]?F`${F`${F.identifier(e[D]??``)}.`.if(e[D])}${F.identifier(e[Te])} as ${e}`:e}`}function Qt(e){return F`count(${e||F.raw(`*`)})`.mapWith(Number)}function $t(e){return F`count(distinct ${e})`.mapWith(Number)}function en(e){return F`avg(${e})`.mapWith(String)}function tn(e){return F`avg(distinct ${e})`.mapWith(String)}function nn(e){return F`sum(${e})`.mapWith(String)}function rn(e){return F`sum(distinct ${e})`.mapWith(String)}function an(e){return F`max(${e})`.mapWith(m(e,h)?e:String)}function on(e){return F`min(${e})`.mapWith(m(e,h)?e:String)}function sn(e){return JSON.stringify(e)}function cn(e,t){return Array.isArray(t)?F`${e} <-> ${sn(t)}`:F`${e} <-> ${t}`}function ln(e,t){return Array.isArray(t)?F`${e} <+> ${sn(t)}`:F`${e} <+> ${t}`}function un(e,t){return Array.isArray(t)?F`${e} <#> ${sn(t)}`:F`${e} <#> ${t}`}function dn(e,t){return Array.isArray(t)?F`${e} <=> ${sn(t)}`:F`${e} <=> ${t}`}function fn(e,t){return Array.isArray(t)?F`${e} <~> ${sn(t)}`:F`${e} <~> ${t}`}function pn(e,t){return Array.isArray(t)?F`${e} <%> ${sn(t)}`:F`${e} <%> ${t}`}function mn(e,t,n){let r={},i=e.reduce((e,{path:i,field:a},o)=>{let s;s=m(a,h)?a:m(a,N)?a.decoder:a.sql.decoder;let c=e;for(let[e,l]of i.entries())if(e<i.length-1)l in c||(c[l]={}),c=c[l];else{let e=t[o],u=c[l]=e===null?null:s.mapFromDriverValue(e);if(n&&m(a,h)&&i.length===2){let e=i[0];e in r?typeof r[e]==`string`&&r[e]!==j(a.table)&&(r[e]=!1):r[e]=u===null?j(a.table):!1}}return e},{});if(n&&Object.keys(r).length>0)for(let[e,t]of Object.entries(r))typeof t==`string`&&!n[t]&&(i[e]=null);return i}function hn(e,t){return Object.entries(e).reduce((e,[n,r])=>{if(typeof n!=`string`)return e;let i=t?[...t,n]:[n];return m(r,h)||m(r,N)||m(r,N.Aliased)?e.push({path:i,field:r}):m(r,A)?e.push(...hn(r[A.Symbol.Columns],i)):e.push(...hn(r,i)),e},[])}function gn(e,t){let n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(let[e,t]of n.entries())if(t!==r[e])return!1;return!0}function _n(e,t){let n=Object.entries(t).filter(([,e])=>e!==void 0).map(([t,n])=>m(n,N)||m(n,h)?[t,n]:[t,new P(n,e[A.Symbol.Columns][t])]);if(n.length===0)throw Error(`No values to set`);return Object.fromEntries(n)}function vn(e,t){for(let n of t)for(let t of Object.getOwnPropertyNames(n.prototype))t!==`constructor`&&Object.defineProperty(e.prototype,t,Object.getOwnPropertyDescriptor(n.prototype,t)||Object.create(null))}function yn(e){return e[A.Symbol.Columns]}function bn(e){return e[E].selectedFields}function xn(e){return m(e,T)?e._.alias:m(e,L)?e[E].name:m(e,N)?void 0:e[A.Symbol.IsAlias]?e[A.Symbol.Name]:e[A.Symbol.BaseName]}function q(e,t){return{name:typeof e==`string`&&e.length>0?e:``,config:typeof e==`object`?e:t}}function Sn(e){if(typeof e!=`object`||!e||e.constructor.name!==`Object`)return!1;if(`logger`in e){let t=typeof e.logger;return!(t!==`boolean`&&(t!==`object`||typeof e.logger.logQuery!=`function`)&&t!==`undefined`)}if(`schema`in e){let t=typeof e.schema;return!(t!==`object`&&t!==`undefined`)}if(`relations`in e){let t=typeof e.relations;return!(t!==`object`&&t!==`undefined`)}if(`casing`in e){let t=typeof e.casing;return!(t!==`string`&&t!==`undefined`)}if(`mode`in e)return!(e.mode!==`default`||e.mode!==`planetscale`||e.mode!==void 0);if(`connection`in e){let t=typeof e.connection;return!(t!==`string`&&t!==`object`&&t!==`undefined`)}if(`client`in e){let t=typeof e.client;return!(t!==`object`&&t!==`function`&&t!==`undefined`)}return Object.keys(e).length===0}const Cn=typeof TextDecoder>`u`?null:new TextDecoder;var wn=class extends C{static[f]=`PgIntColumnBaseBuilder`;generatedAlwaysAsIdentity(e){if(e){let{name:t,...n}=e;this.config.generatedIdentity={type:`always`,sequenceName:t,sequenceOptions:n}}else this.config.generatedIdentity={type:`always`};return this.config.hasDefault=!0,this.config.notNull=!0,this}generatedByDefaultAsIdentity(e){if(e){let{name:t,...n}=e;this.config.generatedIdentity={type:`byDefault`,sequenceName:t,sequenceOptions:n}}else this.config.generatedIdentity={type:`byDefault`};return this.config.hasDefault=!0,this.config.notNull=!0,this}},Tn=class extends wn{static[f]=`PgBigInt53Builder`;constructor(e){super(e,`number int53`,`PgBigInt53`)}build(e){return new En(e,this.config)}},En=class extends w{static[f]=`PgBigInt53`;getSQLType(){return`bigint`}mapFromDriverValue(e){return typeof e==`number`?e:Number(e)}},Dn=class extends wn{static[f]=`PgBigInt64Builder`;constructor(e){super(e,`bigint int64`,`PgBigInt64`)}build(e){return new On(e,this.config)}},On=class extends w{static[f]=`PgBigInt64`;getSQLType(){return`bigint`}mapFromDriverValue(e){return BigInt(e)}};function kn(e,t){let{name:n,config:r}=q(e,t);return r.mode===`number`?new Tn(n):new Dn(n)}var An=class extends C{static[f]=`PgBigSerial53Builder`;constructor(e){super(e,`number int53`,`PgBigSerial53`),this.config.hasDefault=!0,this.config.notNull=!0}build(e){return new jn(e,this.config)}},jn=class extends w{static[f]=`PgBigSerial53`;getSQLType(){return`bigserial`}mapFromDriverValue(e){return typeof e==`number`?e:Number(e)}},Mn=class extends C{static[f]=`PgBigSerial64Builder`;constructor(e){super(e,`bigint int64`,`PgBigSerial64`),this.config.hasDefault=!0}build(e){return new Nn(e,this.config)}},Nn=class extends w{static[f]=`PgBigSerial64`;getSQLType(){return`bigserial`}mapFromDriverValue(e){return BigInt(e)}};function Pn(e,t){let{name:n,config:r}=q(e,t);return r.mode===`number`?new An(n):new Mn(n)}var Fn=class extends C{static[f]=`PgBooleanBuilder`;constructor(e){super(e,`boolean`,`PgBoolean`)}build(e){return new In(e,this.config)}},In=class extends w{static[f]=`PgBoolean`;getSQLType(){return`boolean`}};function Ln(e){return new Fn(e??``)}var Rn=class extends C{static[f]=`PgCharBuilder`;constructor(e,t){super(e,t.enum?.length?`string enum`:`string`,`PgChar`),this.config.length=t.length??1,this.config.setLength=t.length!==void 0,this.config.enumValues=t.enum,this.config.isLengthExact=!0}build(e){return new zn(e,this.config)}},zn=class extends w{static[f]=`PgChar`;enumValues=this.config.enumValues;getSQLType(){return this.config.setLength?`char(${this.length})`:`char`}};function Bn(e,t={}){let{name:n,config:r}=q(e,t);return new Rn(n,r)}var Vn=class extends C{static[f]=`PgCidrBuilder`;constructor(e){super(e,`string cidr`,`PgCidr`)}build(e){return new Hn(e,this.config)}},Hn=class extends w{static[f]=`PgCidr`;getSQLType(){return`cidr`}};function Un(e){return new Vn(e??``)}var Wn=class extends C{static[f]=`PgCustomColumnBuilder`;constructor(e,t,n){super(e,`custom`,`PgCustomColumn`),this.config.fieldConfig=t,this.config.customTypeParams=n}build(e){return new Gn(e,this.config)}},Gn=class extends w{static[f]=`PgCustomColumn`;sqlName;mapTo;mapFrom;mapJson;forJsonSelect;constructor(e,t){super(e,t),this.sqlName=t.customTypeParams.dataType(t.fieldConfig),this.mapTo=t.customTypeParams.toDriver,this.mapFrom=t.customTypeParams.fromDriver,this.mapJson=t.customTypeParams.fromJson,this.forJsonSelect=t.customTypeParams.forJsonSelect}getSQLType(){return this.sqlName}mapFromDriverValue(e){return typeof this.mapFrom==`function`?this.mapFrom(e):e}mapFromJsonValue(e){return typeof this.mapJson==`function`?this.mapJson(e):this.mapFromDriverValue(e)}jsonSelectIdentifier(e,t,n){if(typeof this.forJsonSelect==`function`)return this.forJsonSelect(e,t,n);let r=this.getSQLType().toLowerCase(),i=r.indexOf(`(`);switch(i+1?r.slice(0,i):r){case`bytea`:case`geometry`:case`timestamp`:case`numeric`:case`bigint`:{let r=`[]`.repeat(n??0);return t`${e}::text${t.raw(r).if(n)}`}default:return e}}mapToDriverValue(e){return typeof this.mapTo==`function`?this.mapTo(e):e}};function Kn(e){return(t,n)=>{let{name:r,config:i}=q(t,n);return new Wn(r,i,e)}}var qn=class extends C{static[f]=`PgDateColumnBaseBuilder`;defaultNow(){return this.default(F`now()`)}},Jn=class extends qn{static[f]=`PgDateBuilder`;constructor(e){super(e,`object date`,`PgDate`)}build(e){return new Yn(e,this.config)}},Yn=class extends w{static[f]=`PgDate`;getSQLType(){return`date`}mapFromDriverValue(e){return new Date(e)}mapToDriverValue(e){return e.toISOString()}},Xn=class extends qn{static[f]=`PgDateStringBuilder`;constructor(e){super(e,`string date`,`PgDateString`)}build(e){return new Zn(e,this.config)}},Zn=class extends w{static[f]=`PgDateString`;getSQLType(){return`date`}};function Qn(e,t){let{name:n,config:r}=q(e,t);return r?.mode===`date`?new Jn(n):new Xn(n)}var $n=class extends C{static[f]=`PgDoublePrecisionBuilder`;constructor(e){super(e,`number double`,`PgDoublePrecision`)}build(e){return new er(e,this.config)}},er=class extends w{static[f]=`PgDoublePrecision`;getSQLType(){return`double precision`}mapFromDriverValue(e){return typeof e==`string`?Number.parseFloat(e):e}};function tr(e){return new $n(e??``)}var nr=class extends C{static[f]=`PgInetBuilder`;constructor(e){super(e,`string inet`,`PgInet`)}build(e){return new rr(e,this.config)}},rr=class extends w{static[f]=`PgInet`;getSQLType(){return`inet`}};function ir(e){return new nr(e??``)}var ar=class extends wn{static[f]=`PgIntegerBuilder`;constructor(e){super(e,`number int32`,`PgInteger`)}build(e){return new or(e,this.config)}},or=class extends w{static[f]=`PgInteger`;getSQLType(){return`integer`}mapFromDriverValue(e){return typeof e==`string`?Number.parseInt(e):e}};function sr(e){return new ar(e??``)}var cr=class extends C{static[f]=`PgIntervalBuilder`;constructor(e,t){super(e,`string interval`,`PgInterval`),this.config.intervalConfig=t}build(e){return new lr(e,this.config)}},lr=class extends w{static[f]=`PgInterval`;fields=this.config.intervalConfig.fields;precision=this.config.intervalConfig.precision;getSQLType(){return`interval${this.fields?` ${this.fields}`:``}${this.precision?`(${this.precision})`:``}`}};function ur(e,t={}){let{name:n,config:r}=q(e,t);return new cr(n,r)}var dr=class extends C{static[f]=`PgJsonBuilder`;constructor(e){super(e,`object json`,`PgJson`)}build(e){return new fr(e,this.config)}},fr=class extends w{static[f]=`PgJson`;constructor(e,t){super(e,t)}getSQLType(){return`json`}mapToDriverValue(e){return JSON.stringify(e)}mapFromDriverValue(e){if(typeof e==`string`)try{return JSON.parse(e)}catch{return e}return e}};function pr(e){return new dr(e??``)}var mr=class extends C{static[f]=`PgJsonbBuilder`;constructor(e){super(e,`object json`,`PgJsonb`)}build(e){return new hr(e,this.config)}},hr=class extends w{static[f]=`PgJsonb`;constructor(e,t){super(e,t)}getSQLType(){return`jsonb`}mapToDriverValue(e){return JSON.stringify(e)}mapFromDriverValue(e){if(typeof e==`string`)try{return JSON.parse(e)}catch{return e}return e}};function gr(e){return new mr(e??``)}var _r=class extends C{static[f]=`PgLineBuilder`;constructor(e){super(e,`array line`,`PgLine`)}build(e){return new vr(e,this.config)}},vr=class extends w{static[f]=`PgLine`;getSQLType(){return`line`}mapFromDriverValue(e){let[t,n,r]=e.slice(1,-1).split(`,`);return[Number.parseFloat(t),Number.parseFloat(n),Number.parseFloat(r)]}mapToDriverValue(e){return`{${e[0]},${e[1]},${e[2]}}`}},yr=class extends C{static[f]=`PgLineABCBuilder`;constructor(e){super(e,`object line`,`PgLineABC`)}build(e){return new br(e,this.config)}},br=class extends w{static[f]=`PgLineABC`;getSQLType(){return`line`}mapFromDriverValue(e){let[t,n,r]=e.slice(1,-1).split(`,`);return{a:Number.parseFloat(t),b:Number.parseFloat(n),c:Number.parseFloat(r)}}mapToDriverValue(e){return`{${e.a},${e.b},${e.c}}`}};function xr(e,t){let{name:n,config:r}=q(e,t);return!r?.mode||r.mode===`tuple`?new _r(n):new yr(n)}var Sr=class extends C{static[f]=`PgMacaddrBuilder`;constructor(e){super(e,`string macaddr`,`PgMacaddr`)}build(e){return new Cr(e,this.config)}},Cr=class extends w{static[f]=`PgMacaddr`;getSQLType(){return`macaddr`}};function wr(e){return new Sr(e??``)}var Tr=class extends C{static[f]=`PgMacaddr8Builder`;constructor(e){super(e,`string macaddr8`,`PgMacaddr8`)}build(e){return new Er(e,this.config)}},Er=class extends w{static[f]=`PgMacaddr8`;getSQLType(){return`macaddr8`}};function Dr(e){return new Tr(e??``)}var Or=class extends C{static[f]=`PgNumericBuilder`;constructor(e,t,n){super(e,`string numeric`,`PgNumeric`),this.config.precision=t,this.config.scale=n}build(e){return new kr(e,this.config)}},kr=class extends w{static[f]=`PgNumeric`;precision;scale;constructor(e,t){super(e,t),this.precision=t.precision,this.scale=t.scale}mapFromDriverValue(e){return typeof e==`string`?e:String(e)}getSQLType(){return this.precision!==void 0&&this.scale!==void 0?`numeric(${this.precision}, ${this.scale})`:this.precision===void 0?`numeric`:`numeric(${this.precision})`}},Ar=class extends C{static[f]=`PgNumericNumberBuilder`;constructor(e,t,n){super(e,`number`,`PgNumericNumber`),this.config.precision=t,this.config.scale=n}build(e){return new jr(e,this.config)}},jr=class extends w{static[f]=`PgNumericNumber`;precision;scale;constructor(e,t){super(e,t),this.precision=t.precision,this.scale=t.scale}mapFromDriverValue(e){return typeof e==`number`?e:Number(e)}mapToDriverValue=String;getSQLType(){return this.precision!==void 0&&this.scale!==void 0?`numeric(${this.precision}, ${this.scale})`:this.precision===void 0?`numeric`:`numeric(${this.precision})`}},Mr=class extends C{static[f]=`PgNumericBigIntBuilder`;constructor(e,t,n){super(e,`bigint int64`,`PgNumericBigInt`),this.config.precision=t,this.config.scale=n}build(e){return new Nr(e,this.config)}},Nr=class extends w{static[f]=`PgNumericBigInt`;precision;scale;constructor(e,t){super(e,t),this.precision=t.precision,this.scale=t.scale}mapFromDriverValue=BigInt;mapToDriverValue=String;getSQLType(){return this.precision!==void 0&&this.scale!==void 0?`numeric(${this.precision}, ${this.scale})`:this.precision===void 0?`numeric`:`numeric(${this.precision})`}};function Pr(e,t){let{name:n,config:r}=q(e,t),i=r?.mode;return i===`number`?new Ar(n,r?.precision,r?.scale):i===`bigint`?new Mr(n,r?.precision,r?.scale):new Or(n,r?.precision,r?.scale)}var Fr=class extends C{static[f]=`PgPointTupleBuilder`;constructor(e){super(e,`array point`,`PgPointTuple`)}build(e){return new Ir(e,this.config)}},Ir=class extends w{static[f]=`PgPointTuple`;getSQLType(){return`point`}mapFromDriverValue(e){if(typeof e==`string`){let[t,n]=e.slice(1,-1).split(`,`);return[Number.parseFloat(t),Number.parseFloat(n)]}return[e.x,e.y]}mapToDriverValue(e){return`(${e[0]},${e[1]})`}},Lr=class extends C{static[f]=`PgPointObjectBuilder`;constructor(e){super(e,`object point`,`PgPointObject`)}build(e){return new Rr(e,this.config)}},Rr=class extends w{static[f]=`PgPointObject`;getSQLType(){return`point`}mapFromDriverValue(e){if(typeof e==`string`){let[t,n]=e.slice(1,-1).split(`,`);return{x:Number.parseFloat(t),y:Number.parseFloat(n)}}return e}mapToDriverValue(e){return`(${e.x},${e.y})`}};function zr(e,t){let{name:n,config:r}=q(e,t);return!r?.mode||r.mode===`tuple`?new Fr(n):new Lr(n)}function Br(e){let t=[];for(let n=0;n<e.length;n+=2)t.push(Number.parseInt(e.slice(n,n+2),16));return new Uint8Array(t)}function Vr(e,t){let n=new ArrayBuffer(8),r=new DataView(n);for(let n=0;n<8;n++)r.setUint8(n,e[t+n]);return r.getFloat64(0,!0)}function Hr(e){let t=Br(e),n=0,r=t[n];n+=1;let i=new DataView(t.buffer),a=i.getUint32(n,r===1);if(n+=4,a&536870912&&(i.getUint32(n,r===1),n+=4),(a&65535)==1){let e=Vr(t,n);n+=8;let r=Vr(t,n);return n+=8,[e,r]}throw Error(`Unsupported geometry type`)}var Ur=class extends C{static[f]=`PgGeometryBuilder`;constructor(e){super(e,`array geometry`,`PgGeometry`)}build(e){return new Wr(e,this.config)}},Wr=class extends w{static[f]=`PgGeometry`;getSQLType(){return`geometry(point)`}mapFromDriverValue(e){return typeof e==`string`?Hr(e):e}mapToDriverValue(e){return`point(${e[0]} ${e[1]})`}},Gr=class extends C{static[f]=`PgGeometryObjectBuilder`;constructor(e){super(e,`object geometry`,`PgGeometryObject`)}build(e){return new Kr(e,this.config)}},Kr=class extends w{static[f]=`PgGeometryObject`;getSQLType(){return`geometry(point)`}mapFromDriverValue(e){let t=Hr(e);return{x:t[0],y:t[1]}}mapToDriverValue(e){return`point(${e.x} ${e.y})`}};function qr(e,t){let{name:n,config:r}=q(e,t);return!r?.mode||r.mode===`tuple`?new Ur(n):new Gr(n)}var Jr=class extends C{static[f]=`PgRealBuilder`;constructor(e,t){super(e,`number float`,`PgReal`),this.config.length=t}build(e){return new Yr(e,this.config)}},Yr=class extends w{static[f]=`PgReal`;constructor(e,t){super(e,t)}getSQLType(){return`real`}mapFromDriverValue=e=>typeof e==`string`?Number.parseFloat(e):e};function Xr(e){return new Jr(e??``)}var Zr=class extends C{static[f]=`PgSerialBuilder`;constructor(e){super(e,`number int32`,`PgSerial`),this.config.hasDefault=!0,this.config.notNull=!0}build(e){return new Qr(e,this.config)}},Qr=class extends w{static[f]=`PgSerial`;getSQLType(){return`serial`}};function $r(e){return new Zr(e??``)}var ei=class extends wn{static[f]=`PgSmallIntBuilder`;constructor(e){super(e,`number int16`,`PgSmallInt`)}build(e){return new ti(e,this.config)}},ti=class extends w{static[f]=`PgSmallInt`;getSQLType(){return`smallint`}mapFromDriverValue=e=>typeof e==`string`?Number(e):e};function ni(e){return new ei(e??``)}var ri=class extends C{static[f]=`PgSmallSerialBuilder`;constructor(e){super(e,`number int16`,`PgSmallSerial`),this.config.hasDefault=!0,this.config.notNull=!0}build(e){return new ii(e,this.config)}},ii=class extends w{static[f]=`PgSmallSerial`;getSQLType(){return`smallserial`}};function ai(e){return new ri(e??``)}var oi=class extends C{static[f]=`PgTextBuilder`;constructor(e,t){super(e,t.enum?.length?`string enum`:`string`,`PgText`),this.config.enumValues=t.enum}build(e){return new si(e,this.config,this.config.enumValues)}},si=class extends w{static[f]=`PgText`;enumValues;constructor(e,t,n){super(e,t),this.enumValues=n}getSQLType(){return`text`}};function ci(e,t={}){let{name:n,config:r}=q(e,t);return new oi(n,r)}var li=class extends qn{constructor(e,t,n){super(e,`string time`,`PgTime`),this.withTimezone=t,this.precision=n,this.config.withTimezone=t,this.config.precision=n}static[f]=`PgTimeBuilder`;build(e){return new ui(e,this.config)}},ui=class extends w{static[f]=`PgTime`;withTimezone;precision;constructor(e,t){super(e,t),this.withTimezone=t.withTimezone,this.precision=t.precision}getSQLType(){return`time${this.precision===void 0?``:`(${this.precision})`}${this.withTimezone?` with time zone`:``}`}};function di(e,t={}){let{name:n,config:r}=q(e,t);return new li(n,r.withTimezone??!1,r.precision)}var fi=class extends qn{static[f]=`PgTimestampBuilder`;constructor(e,t,n){super(e,`object date`,`PgTimestamp`),this.config.withTimezone=t,this.config.precision=n}build(e){return new pi(e,this.config)}},pi=class extends w{static[f]=`PgTimestamp`;withTimezone;precision;constructor(e,t){super(e,t),this.withTimezone=t.withTimezone,this.precision=t.precision}getSQLType(){return`timestamp${this.precision===void 0?``:` (${this.precision})`}${this.withTimezone?` with time zone`:``}`}mapFromDriverValue=e=>new Date(this.withTimezone?e:e+`+0000`);mapToDriverValue=e=>e.toISOString()},mi=class extends qn{static[f]=`PgTimestampStringBuilder`;constructor(e,t,n){super(e,`string timestamp`,`PgTimestampString`),this.config.withTimezone=t,this.config.precision=n}build(e){return new hi(e,this.config)}},hi=class extends w{static[f]=`PgTimestampString`;withTimezone;precision;constructor(e,t){super(e,t),this.withTimezone=t.withTimezone,this.precision=t.precision}getSQLType(){return`timestamp${this.precision===void 0?``:`(${this.precision})`}${this.withTimezone?` with time zone`:``}`}};function gi(e,t={}){let{name:n,config:r}=q(e,t);return r?.mode===`string`?new mi(n,r.withTimezone??!1,r.precision):new fi(n,r?.withTimezone??!1,r?.precision)}var _i=class extends C{static[f]=`PgUUIDBuilder`;constructor(e){super(e,`string uuid`,`PgUUID`)}defaultRandom(){return this.default(F`gen_random_uuid()`)}build(e){return new vi(e,this.config)}},vi=class extends w{static[f]=`PgUUID`;getSQLType(){return`uuid`}};function yi(e){return new _i(e??``)}var bi=class extends C{static[f]=`PgVarcharBuilder`;constructor(e,t){super(e,t.enum?.length?`string enum`:`string`,`PgVarchar`),this.config.length=t.length,this.config.enumValues=t.enum}build(e){return new xi(e,this.config)}},xi=class extends w{static[f]=`PgVarchar`;enumValues=this.config.enumValues;getSQLType(){return this.length===void 0?`varchar`:`varchar(${this.length})`}};function Si(e,t={}){let{name:n,config:r}=q(e,t);return new bi(n,r)}var Ci=class extends C{static[f]=`PgBinaryVectorBuilder`;constructor(e,t){super(e,`string binary`,`PgBinaryVector`),this.config.length=t.dimensions,this.config.isLengthExact=!0}build(e){return new wi(e,this.config)}},wi=class extends w{static[f]=`PgBinaryVector`;getSQLType(){return`bit(${this.length})`}};function Ti(e,t){let{name:n,config:r}=q(e,t);return new Ci(n,r)}var Ei=class extends C{static[f]=`PgHalfVectorBuilder`;constructor(e,t){super(e,`array halfvector`,`PgHalfVector`),this.config.length=t.dimensions,this.config.isLengthExact=!0}build(e){return new Di(e,this.config)}},Di=class extends w{static[f]=`PgHalfVector`;getSQLType(){return`halfvec(${this.length})`}mapToDriverValue(e){return JSON.stringify(e)}mapFromDriverValue(e){return e.slice(1,-1).split(`,`).map(e=>Number.parseFloat(e))}};function Oi(e,t){let{name:n,config:r}=q(e,t);return new Ei(n,r)}var ki=class extends C{static[f]=`PgSparseVectorBuilder`;constructor(e,t){super(e,`string sparsevec`,`PgSparseVector`),this.config.dimensions=t.dimensions}build(e){return new Ai(e,this.config)}},Ai=class extends w{static[f]=`PgSparseVector`;dimensions=this.config.dimensions;getSQLType(){return`sparsevec(${this.dimensions})`}};function ji(e,t){let{name:n,config:r}=q(e,t);return new ki(n,r)}var Mi=class extends C{static[f]=`PgVectorBuilder`;constructor(e,t){super(e,`array vector`,`PgVector`),this.config.length=t.dimensions,this.config.isLengthExact=!0}build(e){return new Ni(e,this.config)}},Ni=class extends w{static[f]=`PgVector`;getSQLType(){return`vector(${this.length})`}mapToDriverValue(e){return JSON.stringify(e)}mapFromDriverValue(e){return e.slice(1,-1).split(`,`).map(e=>Number.parseFloat(e))}};function Pi(e,t){let{name:n,config:r}=q(e,t);return new Mi(n,r)}var J=class e{static[f]=`SelectionProxyHandler`;config;constructor(e){this.config={...e}}get(t,n){if(n===`_`)return{...t._,selectedFields:new Proxy(t._.selectedFields,this)};if(n===E)return{...t[E],selectedFields:new Proxy(t[E].selectedFields,this)};if(typeof n==`symbol`)return t[n];let r=(m(t,T)?t._.selectedFields:m(t,L)?t[E].selectedFields:t)[n];if(m(r,N.Aliased)){if(this.config.sqlAliasedBehavior===`sql`&&!r.isSelectionField)return r.sql;let e=r.clone();return e.isSelectionField=!0,e}if(m(r,N)){if(this.config.sqlBehavior===`sql`)return r;throw Error(`You tried to reference "${n}" field from a subquery, which is a raw SQL field, but it doesn't have an alias declared. Please add an alias to the field using ".as('alias')" method.`)}return m(r,h)?this.config.alias?new Proxy(r,new Ke(new Proxy(r.table,new qe(this.config.alias,this.config.replaceOriginalName??!1)))):r:typeof r!=`object`||!r?r:new Proxy(r,new e(this.config))}};function Fi(){return{bigint:kn,bigserial:Pn,boolean:Ln,char:Bn,cidr:Un,customType:Kn,date:Qn,doublePrecision:tr,inet:ir,integer:sr,interval:ur,json:pr,jsonb:gr,line:xr,macaddr:wr,macaddr8:Dr,numeric:Pr,point:zr,geometry:qr,real:Xr,serial:$r,smallint:ni,smallserial:ai,text:ci,time:di,timestamp:gi,uuid:yi,varchar:Si,bit:Ti,halfvec:Oi,sparsevec:ji,vector:Pi}}const Ii=Symbol.for(`drizzle:PgInlineForeignKeys`),Li=Symbol.for(`drizzle:EnableRLS`);var Y=class extends A{static[f]=`PgTable`;static Symbol=Object.assign({},A.Symbol,{InlineForeignKeys:Ii,EnableRLS:Li});[Ii]=[];[Li]=!1;[A.Symbol.ExtraConfigBuilder]=void 0;[A.Symbol.ExtraConfigColumns]={}};function Ri(e,t,n,r,i=e){let a=new Y(e,r,i),o=typeof t==`function`?t(Fi()):t,s=Object.fromEntries(Object.entries(o).map(([e,t])=>{let n=t;n.setName(e);let r=n.build(a);return a[Ii].push(...n.buildForeignKeys(r,a)),[e,r]})),c=Object.fromEntries(Object.entries(o).map(([e,t])=>{let n=t;return n.setName(e),[e,n.buildExtraConfigColumn(a)]})),l=Object.assign(a,s);return l[A.Symbol.Columns]=s,l[A.Symbol.ExtraConfigColumns]=c,n&&(l[Y.Symbol.ExtraConfigBuilder]=n),Object.assign(l,{enableRLS:()=>(l[Y.Symbol.EnableRLS]=!0,l)})}const zi=(e,t,n)=>Ri(e,t,n,void 0);function Bi(e){return(t,n,r)=>Ri(e(t),n,r,void 0,t)}var Vi=class{constructor(e,t){this.unique=e,this.name=t}static[f]=`PgIndexBuilderOn`;on(...e){return new Hi(e.map(e=>{if(m(e,N))return e;e=e;let t=new ue(e.name,!!e.keyAsName,e.columnType,e.indexConfig);return e.indexConfig=JSON.parse(JSON.stringify(e.defaultConfig)),t}),this.unique,!1,this.name)}onOnly(...e){return new Hi(e.map(e=>{if(m(e,N))return e;e=e;let t=new ue(e.name,!!e.keyAsName,e.columnType,e.indexConfig);return e.indexConfig=e.defaultConfig,t}),this.unique,!0,this.name)}using(e,...t){return new Hi(t.map(e=>{if(m(e,N))return e;e=e;let t=new ue(e.name,!!e.keyAsName,e.columnType,e.indexConfig);return e.indexConfig=JSON.parse(JSON.stringify(e.defaultConfig)),t}),this.unique,!0,this.name,e)}},Hi=class{static[f]=`PgIndexBuilder`;config;constructor(e,t,n,r,i=`btree`){this.config={name:r,columns:e,unique:t,only:n,method:i}}concurrently(){return this.config.concurrently=!0,this}with(e){return this.config.with=e,this}where(e){return this.config.where=e,this}build(e){return new Ui(this.config,e)}},Ui=class{static[f]=`PgIndex`;config;constructor(e,t){this.config={...e,table:t}}};function Wi(e){return new Vi(!1,e)}function Gi(e){return new Vi(!0,e)}var Ki=class{constructor(e,t){this.name=e,t&&(this.as=t.as,this.for=t.for,this.to=t.to,this.using=t.using,this.withCheck=t.withCheck)}static[f]=`PgPolicy`;as;for;to;using;withCheck;_linkedTable;link(e){return this._linkedTable=e,this}};function qi(e,t){return new Ki(e,t)}const Ji=Symbol.for(`drizzle:PgViewConfig`);var Yi=class{constructor(e,t,n){this.sourceTable=e,this.referencedTable=t,this.relationName=n,this.referencedTableName=t[A.Symbol.Name]}static[f]=`Relation`;referencedTableName;fieldName},Xi=class e extends Yi{constructor(e,t,n,r){super(e,t,n?.relationName),this.config=n,this.isNullable=r}static[f]=`One`;withFieldName(t){let n=new e(this.sourceTable,this.referencedTable,this.config,this.isNullable);return n.fieldName=t,n}},Zi=class e extends Yi{constructor(e,t,n){super(e,t,n?.relationName),this.config=n}static[f]=`Many`;withFieldName(t){let n=new e(this.sourceTable,this.referencedTable,this.config);return n.fieldName=t,n}};function Qi(){return{and:H,between:vt,eq:V,exists:gt,gt:ct,gte:lt,ilike:St,inArray:ft,isNull:mt,isNotNull:ht,like:bt,lt:ut,lte:dt,ne:at,not:st,notBetween:yt,notExists:_t,notLike:xt,notIlike:Ct,notInArray:pt,or:ot,sql:F}}function $i(){return{sql:F,asc:Dt,desc:Ot}}function ea(e,t,n){if(m(n,Xi)&&n.config)return{fields:n.config.fields,references:n.config.references};let r=t[Ae(n.referencedTable)];if(!r)throw Error(`Table "${n.referencedTable[A.Symbol.Name]}" not found in schema`);let i=e[r];if(!i)throw Error(`Table "${r}" not found in schema`);let a=n.sourceTable,o=t[Ae(a)];if(!o)throw Error(`Table "${a[A.Symbol.Name]}" not found in schema`);let s=[];for(let e of Object.values(i.relations))(n.relationName&&n!==e&&e.relationName===n.relationName||!n.relationName&&e.referencedTable===n.sourceTable)&&s.push(e);if(s.length>1)throw n.relationName?Error(`There are multiple relations with name "${n.relationName}" in table "${r}"`):Error(`There are multiple relations between "${r}" and "${n.sourceTable[A.Symbol.Name]}". Please specify relation name`);if(s[0]&&m(s[0],Xi)&&s[0].config)return{fields:s[0].config.references,references:s[0].config.fields};throw Error(`There is not enough information to infer relation "${o}.${n.fieldName}"`)}function ta(e,t,n,r,i=e=>e){let a={};for(let[o,s]of r.entries())if(s.isJson){let r=t.relations[s.tsKey],c=n[o],l=typeof c==`string`?JSON.parse(c):c;a[s.tsKey]=m(r,Xi)?l&&ta(e,e[s.relationTableTsKey],l,s.selection,i):l.map(t=>ta(e,e[s.relationTableTsKey],t,s.selection,i))}else{let e=i(n[o]),t=s.field,r;r=m(t,h)?t:m(t,N)?t.decoder:t.sql.decoder,a[s.tsKey]=e===null?null:r.mapFromDriverValue(e)}return a}function na(e){return(e.replace(/['\u2019]/g,``).match(/[\da-z]+|[A-Z]+(?![a-z])|[A-Z][\da-z]+/g)??[]).map(e=>e.toLowerCase()).join(`_`)}function ra(e){return(e.replace(/['\u2019]/g,``).match(/[\da-z]+|[A-Z]+(?![a-z])|[A-Z][\da-z]+/g)??[]).reduce((e,t,n)=>e+(n===0?t.toLowerCase():`${t[0].toUpperCase()}${t.slice(1)}`),``)}function ia(e){return e}var aa=class{static[f]=`CasingCache`;cache={};cachedTables={};convert;constructor(e){this.convert=e===`snake_case`?na:e===`camelCase`?ra:ia}getColumnCasing(e){if(!e.keyAsName)return e.name;let t=`${e.table[A.Symbol.Schema]??`public`}.${e.table[A.Symbol.OriginalName]}.${e.name}`;return this.cache[t]||this.cacheTable(e.table),this.cache[t]}cacheTable(e){let t=`${e[A.Symbol.Schema]??`public`}.${e[A.Symbol.OriginalName]}`;if(!this.cachedTables[t]){for(let n of Object.values(e[A.Symbol.Columns])){if(!m(n,h))continue;let e=`${t}.${n.name}`;this.cache[e]=this.convert(n.name)}this.cachedTables[t]=!0}}clearCache(){this.cache={},this.cachedTables={}}},oa=class extends L{static[f]=`PgViewBase`},sa=class{static[f]=`PgDialect`;casing;constructor(e){this.casing=new aa(e?.casing)}async migrate(e,t,n){let r=typeof n==`string`?`__drizzle_migrations`:n.migrationsTable??`__drizzle_migrations`,i=typeof n==`string`?`drizzle`:n.migrationsSchema??`drizzle`,a=F`
4
- CREATE TABLE IF NOT EXISTS ${F.identifier(i)}.${F.identifier(r)} (
5
- id SERIAL PRIMARY KEY,
6
- hash text NOT NULL,
7
- created_at bigint
8
- )
9
- `;await t.execute(F`CREATE SCHEMA IF NOT EXISTS ${F.identifier(i)}`),await t.execute(a);let o=(await t.all(F`select id, hash, created_at from ${F.identifier(i)}.${F.identifier(r)} order by created_at desc limit 1`))[0];await t.transaction(async t=>{for await(let n of e)if(!o||Number(o.created_at)<n.folderMillis){for(let e of n.sql)await t.execute(F.raw(e));await t.execute(F`insert into ${F.identifier(i)}.${F.identifier(r)} ("hash", "created_at") values(${n.hash}, ${n.folderMillis})`)}})}escapeName(e){return`"${e}"`}escapeParam(e){return`$${e+1}`}escapeString(e){return`'${e.replace(/'/g,`''`)}'`}buildWithCTE(e){if(!e?.length)return;let t=[F`with `];for(let[n,r]of e.entries())t.push(F`${F.identifier(r._.alias)} as (${r._.sql})`),n<e.length-1&&t.push(F`, `);return t.push(F` `),F.join(t)}buildDeleteQuery({table:e,where:t,returning:n,withList:r}){let i=this.buildWithCTE(r),a=n?F` returning ${this.buildSelection(n,{isSingleTable:!0})}`:void 0;return F`${i}delete from ${e}${t?F` where ${t}`:void 0}${a}`}buildUpdateSet(e,t){let n=e[A.Symbol.Columns],r=Object.keys(n).filter(e=>t[e]!==void 0||n[e]?.onUpdateFn!==void 0),i=r.length;return F.join(r.flatMap((e,r)=>{let a=n[e],o=t[e]??F.param(a.onUpdateFn(),a),s=F`${F.identifier(this.casing.getColumnCasing(a))} = ${o}`;return r<i-1?[s,F.raw(`, `)]:[s]}))}buildUpdateQuery({table:e,set:t,where:n,returning:r,withList:i,from:a,joins:o}){let s=this.buildWithCTE(i),c=e[Y.Symbol.Name],l=e[Y.Symbol.Schema],u=e[Y.Symbol.OriginalName],d=c===u?void 0:c,f=F`${l?F`${F.identifier(l)}.`:void 0}${F.identifier(u)}${d&&F` ${F.identifier(d)}`}`,p=this.buildUpdateSet(e,t),m=a&&F.join([F.raw(` from `),this.buildFromTable(a)]),h=this.buildJoins(o),g=r?F` returning ${this.buildSelection(r,{isSingleTable:!a})}`:void 0;return F`${s}update ${f} set ${p}${m}${h}${n?F` where ${n}`:void 0}${g}`}buildSelection(e,{isSingleTable:t=!1}={}){let n=e.length,r=e.flatMap(({field:e},r)=>{let i=[];if(m(e,N.Aliased)&&e.isSelectionField)i.push(F.identifier(e.fieldAlias));else if(m(e,N.Aliased)||m(e,N)){let n=m(e,N.Aliased)?e.sql:e;t?i.push(new N(n.queryChunks.map(e=>m(e,w)?F.identifier(this.casing.getColumnCasing(e)):e))):i.push(n),m(e,N.Aliased)&&i.push(F` as ${F.identifier(e.fieldAlias)}`)}else m(e,h)&&(t?i.push(F.identifier(this.casing.getColumnCasing(e))):i.push(e));return r<n-1&&i.push(F`, `),i});return F.join(r)}buildJoins(e){if(!e||e.length===0)return;let t=[];for(let[n,r]of e.entries()){n===0&&t.push(F` `);let i=r.table,a=r.lateral?F` lateral`:void 0,o=r.on?F` on ${r.on}`:void 0;if(m(i,Y)){let e=i[Y.Symbol.Name],n=i[Y.Symbol.Schema],s=i[Y.Symbol.OriginalName],c=e===s?void 0:r.alias;t.push(F`${F.raw(r.joinType)} join${a} ${n?F`${F.identifier(n)}.`:void 0}${F.identifier(s)}${c&&F` ${F.identifier(c)}`}${o}`)}else if(m(i,L)){let e=i[E].name,n=i[E].schema,s=i[E].originalName,c=e===s?void 0:r.alias;t.push(F`${F.raw(r.joinType)} join${a} ${n?F`${F.identifier(n)}.`:void 0}${F.identifier(s)}${c&&F` ${F.identifier(c)}`}${o}`)}else t.push(F`${F.raw(r.joinType)} join${a} ${i}${o}`);n<e.length-1&&t.push(F` `)}return F.join(t)}buildFromTable(e){if(m(e,A)&&e[A.Symbol.IsAlias]){let t=F`${F.identifier(e[A.Symbol.OriginalName])}`;return e[A.Symbol.Schema]&&(t=F`${F.identifier(e[A.Symbol.Schema])}.${t}`),F`${t} ${F.identifier(e[A.Symbol.Name])}`}return e}buildSelectQuery({withList:e,fields:t,fieldsFlat:n,where:r,having:i,table:a,joins:o,orderBy:s,groupBy:c,limit:l,offset:u,lockingClause:d,distinct:f,setOperators:p}){let g=n??hn(t);for(let e of g)if(m(e.field,h)&&j(e.field.table)!==(m(a,T)?a._.alias:m(a,oa)?a[E].name:m(a,N)?void 0:j(a))&&!(e=>o?.some(({alias:t})=>t===(e[A.Symbol.IsAlias]?j(e):e[A.Symbol.BaseName])))(e.field.table)){let t=j(e.field.table);throw Error(`Your "${e.path.join(`->`)}" field references a column "${t}"."${e.field.name}", but the table "${t}" is not part of the query! Did you forget to join it?`)}let _=!o||o.length===0,v=this.buildWithCTE(e),y;f&&(y=f===!0?F` distinct`:F` distinct on (${F.join(f.on,F`, `)})`);let b=this.buildSelection(g,{isSingleTable:_}),x=this.buildFromTable(a),S=this.buildJoins(o),ee=r?F` where ${r}`:void 0,te=i?F` having ${i}`:void 0,ne;s&&s.length>0&&(ne=F` order by ${F.join(s,F`, `)}`);let re;c&&c.length>0&&(re=F` group by ${F.join(c,F`, `)}`);let ie=typeof l==`object`||typeof l==`number`&&l>=0?F` limit ${l}`:void 0,ae=u?F` offset ${u}`:void 0,oe=F.empty();if(d){let e=F` for ${F.raw(d.strength)}`;d.config.of&&e.append(F` of ${F.join(Array.isArray(d.config.of)?d.config.of:[d.config.of],F`, `)}`),d.config.noWait?e.append(F` nowait`):d.config.skipLocked&&e.append(F` skip locked`),oe.append(e)}let se=F`${v}select${y} ${b} from ${x}${S}${ee}${re}${te}${ne}${ie}${ae}${oe}`;return p.length>0?this.buildSetOperations(se,p):se}buildSetOperations(e,t){let[n,...r]=t;if(!n)throw Error(`Cannot pass undefined values to any set operator`);return r.length===0?this.buildSetOperationQuery({leftSelect:e,setOperator:n}):this.buildSetOperations(this.buildSetOperationQuery({leftSelect:e,setOperator:n}),r)}buildSetOperationQuery({leftSelect:e,setOperator:{type:t,isAll:n,rightSelect:r,limit:i,orderBy:a,offset:o}}){let s=F`(${e.getSQL()}) `,c=F`(${r.getSQL()})`,l;if(a&&a.length>0){let e=[];for(let t of a)if(m(t,w))e.push(F.identifier(t.name));else if(m(t,N)){for(let e=0;e<t.queryChunks.length;e++){let n=t.queryChunks[e];m(n,w)&&(t.queryChunks[e]=F.identifier(n.name))}e.push(F`${t}`)}else e.push(F`${t}`);l=F` order by ${F.join(e,F`, `)} `}let u=typeof i==`object`||typeof i==`number`&&i>=0?F` limit ${i}`:void 0,d=F.raw(`${t} ${n?`all `:``}`),f=o?F` offset ${o}`:void 0;return F`${s}${d}${c}${l}${u}${f}`}buildInsertQuery({table:e,values:t,onConflict:n,returning:r,withList:i,select:a,overridingSystemValue_:o}){let s=[],c=e[A.Symbol.Columns],l=Object.entries(c).filter(([e,t])=>!t.shouldDisableInsert()),u=l.map(([,e])=>F.identifier(this.casing.getColumnCasing(e)));if(a){let e=t;m(e,N)?s.push(e):s.push(e.getSQL())}else{let e=t;s.push(F.raw(`values `));for(let[t,n]of e.entries()){let r=[];for(let[e,t]of l){let i=n[e];if(i===void 0||m(i,P)&&i.value===void 0)if(t.defaultFn!==void 0){let e=t.defaultFn(),n=m(e,N)?e:F.param(e,t);r.push(n)}else if(!t.default&&t.onUpdateFn!==void 0){let e=t.onUpdateFn(),n=m(e,N)?e:F.param(e,t);r.push(n)}else r.push(F`default`);else r.push(i)}s.push(r),t<e.length-1&&s.push(F`, `)}}let d=this.buildWithCTE(i),f=F.join(s),p=r?F` returning ${this.buildSelection(r,{isSingleTable:!0})}`:void 0,h=n?F` on conflict ${n}`:void 0;return F`${d}insert into ${e} ${u} ${o===!0?F`overriding system value `:void 0}${f}${h}${p}`}buildRefreshMaterializedViewQuery({view:e,concurrently:t,withNoData:n}){return F`refresh materialized view${t?F` concurrently`:void 0} ${e}${n?F` with no data`:void 0}`}prepareTyping(e){return m(e,hr)||m(e,fr)?`json`:m(e,kr)?`decimal`:m(e,ui)?`time`:m(e,pi)||m(e,hi)?`timestamp`:m(e,Yn)||m(e,Zn)?`date`:m(e,vi)?`uuid`:`none`}sqlToQuery(e,t){return e.toQuery({casing:this.casing,escapeName:this.escapeName,escapeParam:this.escapeParam,escapeString:this.escapeString,prepareTyping:this.prepareTyping,invokeSource:t})}_buildRelationalQuery({fullSchema:e,schema:t,tableNamesMap:n,table:r,tableConfig:i,queryConfig:a,tableAlias:o,nestedQueryRelation:s,joinOn:c}){let l=[],u,d,f=[],p,g=[];if(a===!0)l=Object.entries(i.columns).map(([e,t])=>({dbKey:t.name,tsKey:e,field:z(t,o),relationTableTsKey:void 0,isJson:!1,selection:[]}));else{let r=Object.fromEntries(Object.entries(i.columns).map(([e,t])=>[e,z(t,o)]));if(a.where){let e=typeof a.where==`function`?a.where(r,Qi()):a.where;p=e&&Ze(e,o)}let s=[],c=[];if(a.columns){let e=!1;for(let[t,n]of Object.entries(a.columns))n!==void 0&&t in i.columns&&(!e&&n===!0&&(e=!0),c.push(t));c.length>0&&(c=e?c.filter(e=>a.columns?.[e]===!0):Object.keys(i.columns).filter(e=>!c.includes(e)))}else c=Object.keys(i.columns);for(let e of c){let t=i.columns[e];s.push({tsKey:e,value:t})}let _=[];a.with&&(_=Object.entries(a.with).filter(e=>!!e[1]).map(([e,t])=>({tsKey:e,queryConfig:t,relation:i.relations[e]})));let v;if(a.extras){v=typeof a.extras==`function`?a.extras(r,{sql:F}):a.extras;for(let[e,t]of Object.entries(v))s.push({tsKey:e,value:Xe(t,o)})}for(let{tsKey:e,value:t}of s)l.push({dbKey:m(t,N.Aliased)?t.fieldAlias:i.columns[e].name,tsKey:e,field:m(t,h)?z(t,o):t,relationTableTsKey:void 0,isJson:!1,selection:[]});let y=typeof a.orderBy==`function`?a.orderBy(r,$i()):a.orderBy??[];Array.isArray(y)||(y=[y]),f=y.map(e=>m(e,h)?z(e,o):Ze(e,o)),u=a.limit,d=a.offset;for(let{tsKey:r,queryConfig:i,relation:a}of _){let s=ea(t,n,a),c=n[Ae(a.referencedTable)],u=`${o}_${r}`,d=H(...s.fields.map((e,t)=>V(z(s.references[t],u),z(e,o)))),f=this._buildRelationalQuery({fullSchema:e,schema:t,tableNamesMap:n,table:e[c],tableConfig:t[c],queryConfig:m(a,Xi)?i===!0?{limit:1}:{...i,limit:1}:i,tableAlias:u,joinOn:d,nestedQueryRelation:a}),p=F`${F.identifier(u)}.${F.identifier(`data`)}`.as(r);g.push({on:F`true`,table:new T(f.sql,{},u),alias:u,joinType:`left`,lateral:!0}),l.push({dbKey:r,tsKey:r,field:p,relationTableTsKey:c,isJson:!0,selection:f.selection})}}if(l.length===0)throw new Qe({message:`No fields selected for table "${i.tsName}" ("${o}")`});let _;if(p=H(c,p),s){let e=F`json_build_array(${F.join(l.map(({field:e,tsKey:t,isJson:n})=>n?F`${F.identifier(`${o}_${t}`)}.${F.identifier(`data`)}`:m(e,N.Aliased)?e.sql:e),F`, `)})`;m(s,Zi)&&(e=F`coalesce(json_agg(${e}${f.length>0?F` order by ${F.join(f,F`, `)}`:void 0}), '[]'::json)`);let t=[{dbKey:`data`,tsKey:`data`,field:e.as(`data`),isJson:!0,relationTableTsKey:i.tsName,selection:l}];u!==void 0||d!==void 0||f.length>0?(_=this.buildSelectQuery({table:R(r,o),fields:{},fieldsFlat:[{path:[],field:F.raw(`*`)}],where:p,limit:u,offset:d,orderBy:f,setOperators:[]}),p=void 0,u=void 0,d=void 0,f=[]):_=R(r,o),_=this.buildSelectQuery({table:m(_,Y)?_:new T(_,{},o),fields:{},fieldsFlat:t.map(({field:e})=>({path:[],field:m(e,h)?z(e,o):e})),joins:g,where:p,limit:u,offset:d,orderBy:f,setOperators:[]})}else _=this.buildSelectQuery({table:R(r,o),fields:{},fieldsFlat:l.map(({field:e})=>({path:[],field:m(e,h)?z(e,o):e})),joins:g,where:p,limit:u,offset:d,orderBy:f,setOperators:[]});return{tableTsKey:i.tsName,sql:_,selection:l}}nestedSelectionerror(){throw new Qe({message:`Views with nested selections are not supported by the relational query builder`})}buildRqbColumn(e,t,n){if(m(t,h)){let r=F`${e}.${F.identifier(this.casing.getColumnCasing(t))}`,i=t.columnType,a=t,o=0;for(;m(a,fe);)a=a.baseColumn,i=a.columnType,++o;switch(i){case`PgNumeric`:case`PgNumericNumber`:case`PgNumericBigInt`:case`PgBigInt64`:case`PgBigSerial64`:case`PgTimestampString`:case`PgGeometry`:case`PgGeometryObject`:case`PgBytea`:{let e=`[]`.repeat(o);return F`${r}::text${F.raw(e).if(e)} as ${F.identifier(n)}`}case`PgCustomColumn`:return F`${a.jsonSelectIdentifier(r,F,o>0?o:void 0)} as ${F.identifier(n)}`;default:return F`${r} as ${F.identifier(n)}`}}return F`${e}.${m(t,N.Aliased)?F.identifier(t.fieldAlias):Me(t)?F.identifier(n):this.nestedSelectionerror()} as ${F.identifier(n)}`}unwrapAllColumns=(e,t)=>F.join(Object.entries(e[O]).map(([n,r])=>(t.push({key:n,field:r}),this.buildRqbColumn(e,r,n))),F`, `);buildColumns=(e,t,n)=>n?.columns?(()=>{let r=Object.entries(n.columns),i=e[O],a=[],o;for(let[n,s]of r)if(s!==void 0&&(o||=s,s)){let r=i[n];a.push(this.buildRqbColumn(e,r,n)),t.push({key:n,field:r})}if(o===!1)for(let[r,o]of Object.entries(i))n.columns[r]!==!1&&(a.push(this.buildRqbColumn(e,o,r)),t.push({key:r,field:o}));return a.length?F.join(a,F`, `):void 0})():this.unwrapAllColumns(e,t);buildRelationalQuery({schema:e,table:t,tableConfig:n,queryConfig:r,relationWhere:i,mode:a,errorPath:o,depth:s,throughJoin:c}){let l=[],u=a===`first`,d=r===!0?void 0:r,f=o??``,p=s??0;p||(t=R(t,`d${p}`));let h=u?1:d?.limit,g=d?.offset,_=d?.where&&i?H(G(t,d.where,n.relations,e,this.casing),i):d?.where?G(t,d.where,n.relations,e,this.casing):i,v=d?.orderBy?Yt(t,d.orderBy):void 0,y=this.buildColumns(t,l,d),b=d?.extras?Xt(t,d.extras):void 0;b&&l.push(...b.selection);let x=y?[y]:[],S=d?(()=>{let{with:r}=d;if(!r)return;let i=Object.entries(r).filter(([e,t])=>t);if(i.length)return F.join(i.map(([r,i])=>{let a=n.relations[r],o=m(a,Mt),s=R(a.targetTable,`d${p+1}`),c=a.throughTable?R(a.throughTable,`tr${p}`):void 0,{filter:u,joinCondition:d}=Zt(this.casing,a,t,s,c);x.push(F`${F.identifier(r)}.${F.identifier(`r`)} as ${F.identifier(r)}`);let h=c?F` inner join ${K(c)} on ${d}`:void 0,g=this.buildRelationalQuery({table:s,mode:o?`first`:`many`,schema:e,queryConfig:i,tableConfig:e[a.targetTableName],relationWhere:u,errorPath:`${f.length?`${f}.`:``}${r}`,depth:p+1,throughJoin:h});return l.push({field:s,key:r,selection:g.selection,isArray:!o,isOptional:(a.optional??!1)||i!==!0&&!!i.where}),F`left join lateral(select ${o?F`row_to_json(${F.identifier(`t`)}.*) ${F.identifier(`r`)}`:F`coalesce(json_agg(row_to_json(${F.identifier(`t`)}.*)), '[]') as ${F.identifier(`r`)}`} from (${g.sql}) as ${F.identifier(`t`)}) as ${F.identifier(r)} on true`}),F` `)})():void 0;if(b?.sql&&x.push(b.sql),!x.length)throw new Qe({message:`No fields selected for table "${n.name}"${f?` ("${f}")`:``}`});return{sql:F`select ${F.join(x.filter(e=>e!==void 0),F`, `)} from ${K(t)}${c}${F` ${S}`.if(S)}${F` where ${_}`.if(_)}${F` order by ${v}`.if(v)}${F` limit ${h}`.if(h!==void 0)}${F` offset ${g}`.if(g!==void 0)}`,selection:l}}},ca=class{static[f]=`TypedQueryBuilder`;getSelectedFields(){return this._.selectedFields}},la=class{static[f]=`PgSelectBuilder`;fields;session;dialect;withList=[];distinct;constructor(e){this.fields=e.fields,this.session=e.session,this.dialect=e.dialect,e.withList&&(this.withList=e.withList),this.distinct=e.distinct}authToken;setToken(e){return this.authToken=e,this}from(e){let t=!!this.fields,n=e,r;return r=this.fields?this.fields:m(n,T)?Object.fromEntries(Object.keys(n._.selectedFields).map(e=>[e,n[e]])):m(n,oa)?n[E].selectedFields:m(n,N)?{}:yn(n),new da({table:n,fields:r,isPartialSelect:t,session:this.session,dialect:this.dialect,withList:this.withList,distinct:this.distinct}).setToken(this.authToken)}},ua=class extends ca{static[f]=`PgSelectQueryBuilder`;_;config;joinsNotNullableMap;tableName;isPartialSelect;session;dialect;cacheConfig=void 0;usedTables=new Set;constructor({table:e,fields:t,isPartialSelect:n,session:r,dialect:i,withList:a,distinct:o}){super(),this.config={withList:a,table:e,fields:{...t},distinct:o,setOperators:[]},this.isPartialSelect=n,this.session=r,this.dialect=i,this._={selectedFields:t,config:this.config},this.tableName=xn(e),this.joinsNotNullableMap=typeof this.tableName==`string`?{[this.tableName]:!0}:{};for(let t of Pa(e))this.usedTables.add(t)}getUsedTables(){return[...this.usedTables]}createJoin(e,t){return(n,r)=>{let i=this.tableName,a=xn(n);for(let e of Pa(n))this.usedTables.add(e);if(typeof a==`string`&&this.config.joins?.some(e=>e.alias===a))throw Error(`Alias "${a}" is already used in this query`);if(!this.isPartialSelect&&(Object.keys(this.joinsNotNullableMap).length===1&&typeof i==`string`&&(this.config.fields={[i]:this.config.fields}),typeof a==`string`&&!m(n,N))){let e=m(n,T)?n._.selectedFields:m(n,L)?n[E].selectedFields:n[A.Symbol.Columns];this.config.fields[a]=e}if(typeof r==`function`&&(r=r(new Proxy(this.config.fields,new J({sqlAliasedBehavior:`sql`,sqlBehavior:`sql`})))),this.config.joins||(this.config.joins=[]),this.config.joins.push({on:r,table:n,joinType:e,alias:a,lateral:t}),typeof a==`string`)switch(e){case`left`:this.joinsNotNullableMap[a]=!1;break;case`right`:this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([e])=>[e,!1])),this.joinsNotNullableMap[a]=!0;break;case`cross`:case`inner`:this.joinsNotNullableMap[a]=!0;break;case`full`:this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([e])=>[e,!1])),this.joinsNotNullableMap[a]=!1;break}return this}}leftJoin=this.createJoin(`left`,!1);leftJoinLateral=this.createJoin(`left`,!0);rightJoin=this.createJoin(`right`,!1);innerJoin=this.createJoin(`inner`,!1);innerJoinLateral=this.createJoin(`inner`,!0);fullJoin=this.createJoin(`full`,!1);crossJoin=this.createJoin(`cross`,!1);crossJoinLateral=this.createJoin(`cross`,!0);createSetOperator(e,t){return n=>{let r=typeof n==`function`?n(pa()):n;if(!gn(this.getSelectedFields(),r.getSelectedFields()))throw Error(`Set operator error (union / intersect / except): selected fields are not the same or are in a different order`);return this.config.setOperators.push({type:e,isAll:t,rightSelect:r}),this}}union=this.createSetOperator(`union`,!1);unionAll=this.createSetOperator(`union`,!0);intersect=this.createSetOperator(`intersect`,!1);intersectAll=this.createSetOperator(`intersect`,!0);except=this.createSetOperator(`except`,!1);exceptAll=this.createSetOperator(`except`,!0);addSetOperators(e){return this.config.setOperators.push(...e),this}where(e){return typeof e==`function`&&(e=e(new Proxy(this.config.fields,new J({sqlAliasedBehavior:`sql`,sqlBehavior:`sql`})))),this.config.where=e,this}having(e){return typeof e==`function`&&(e=e(new Proxy(this.config.fields,new J({sqlAliasedBehavior:`sql`,sqlBehavior:`sql`})))),this.config.having=e,this}groupBy(...e){if(typeof e[0]==`function`){let t=e[0](new Proxy(this.config.fields,new J({sqlAliasedBehavior:`alias`,sqlBehavior:`sql`})));this.config.groupBy=Array.isArray(t)?t:[t]}else this.config.groupBy=e;return this}orderBy(...e){if(typeof e[0]==`function`){let t=e[0](new Proxy(this.config.fields,new J({sqlAliasedBehavior:`alias`,sqlBehavior:`sql`}))),n=Array.isArray(t)?t:[t];this.config.setOperators.length>0?this.config.setOperators.at(-1).orderBy=n:this.config.orderBy=n}else{let t=e;this.config.setOperators.length>0?this.config.setOperators.at(-1).orderBy=t:this.config.orderBy=t}return this}limit(e){return this.config.setOperators.length>0?this.config.setOperators.at(-1).limit=e:this.config.limit=e,this}offset(e){return this.config.setOperators.length>0?this.config.setOperators.at(-1).offset=e:this.config.offset=e,this}for(e,t={}){return this.config.lockingClause={strength:e,config:t},this}getSQL(){return this.dialect.buildSelectQuery(this.config)}toSQL(){let{typings:e,...t}=this.dialect.sqlToQuery(this.getSQL());return t}as(e){let t=[];if(t.push(...Pa(this.config.table)),this.config.joins)for(let e of this.config.joins)t.push(...Pa(e.table));return new Proxy(new T(this.getSQL(),this.config.fields,e,!1,[...new Set(t)]),new J({alias:e,sqlAliasedBehavior:`alias`,sqlBehavior:`error`}))}getSelectedFields(){return new Proxy(this.config.fields,new J({alias:this.tableName,sqlAliasedBehavior:`alias`,sqlBehavior:`error`}))}$dynamic(){return this}$withCache(e){return this.cacheConfig=e===void 0?{config:{},enable:!0,autoInvalidate:!0}:e===!1?{enable:!1}:{enable:!0,autoInvalidate:!0,...e},this}},da=class extends ua{static[f]=`PgSelect`;_prepare(e){let{session:t,config:n,dialect:r,joinsNotNullableMap:i,authToken:a,cacheConfig:o,usedTables:s}=this;if(!t)throw Error(`Cannot execute a query on a query builder. Please use a database instance instead.`);let{fields:c}=n;return Ce.startActiveSpan(`drizzle.prepareQuery`,()=>{let n=hn(c),l=t.prepareQuery(r.sqlToQuery(this.getSQL()),n,e,!0,void 0,{type:`select`,tables:[...s]},o);return l.joinsNotNullableMap=i,l.setToken(a)})}prepare(e){return this._prepare(e)}authToken;setToken(e){return this.authToken=e,this}execute=e=>Ce.startActiveSpan(`drizzle.operation`,()=>this._prepare().execute(e,this.authToken))};vn(da,[it]);function fa(e,t){return(n,r,...i)=>{let a=[r,...i].map(n=>({type:e,isAll:t,rightSelect:n}));for(let e of a)if(!gn(n.getSelectedFields(),e.rightSelect.getSelectedFields()))throw Error(`Set operator error (union / intersect / except): selected fields are not the same or are in a different order`);return n.addSetOperators(a)}}const pa=()=>({union:ma,unionAll:ha,intersect:ga,intersectAll:_a,except:va,exceptAll:ya}),ma=fa(`union`,!1),ha=fa(`union`,!0),ga=fa(`intersect`,!1),_a=fa(`intersect`,!0),va=fa(`except`,!1),ya=fa(`except`,!0);var ba=class{static[f]=`PgQueryBuilder`;dialect;dialectConfig;constructor(e){this.dialect=m(e,sa)?e:void 0,this.dialectConfig=m(e,sa)?void 0:e}$with=(e,t)=>{let n=this;return{as:r=>(typeof r==`function`&&(r=r(n)),new Proxy(new Se(r.getSQL(),t??(`getSelectedFields`in r?r.getSelectedFields()??{}:{}),e,!0),new J({alias:e,sqlAliasedBehavior:`alias`,sqlBehavior:`error`})))}};with(...e){let t=this;function n(n){return new la({fields:n??void 0,session:void 0,dialect:t.getDialect(),withList:e})}function r(e){return new la({fields:e??void 0,session:void 0,dialect:t.getDialect(),distinct:!0})}function i(e,n){return new la({fields:n??void 0,session:void 0,dialect:t.getDialect(),distinct:{on:e}})}return{select:n,selectDistinct:r,selectDistinctOn:i}}select(e){return new la({fields:e??void 0,session:void 0,dialect:this.getDialect()})}selectDistinct(e){return new la({fields:e??void 0,session:void 0,dialect:this.getDialect(),distinct:!0})}selectDistinctOn(e,t){return new la({fields:t??void 0,session:void 0,dialect:this.getDialect(),distinct:{on:e}})}getDialect(){return this.dialect||=new sa(this.dialectConfig),this.dialect}},xa=class{constructor(e,t){this.name=e,this.schema=t}static[f]=`PgDefaultViewBuilderCore`;config={};with(e){return this.config.with=e,this}},Sa=class extends xa{static[f]=`PgViewBuilder`;as(e){typeof e==`function`&&(e=e(new ba));let t=new J({alias:this.name,sqlBehavior:`error`,sqlAliasedBehavior:`alias`,replaceOriginalName:!0}),n=new Proxy(e.getSelectedFields(),t);return new Proxy(new Da({pgConfig:this.config,config:{name:this.name,schema:this.schema,selectedFields:n,query:e.getSQL().inlineParams()}}),t)}},Ca=class extends xa{static[f]=`PgManualViewBuilder`;columns;constructor(e,t,n){super(e,n),this.columns=yn(zi(e,t))}existing(){return new Proxy(new Da({pgConfig:void 0,config:{name:this.name,schema:this.schema,selectedFields:this.columns,query:void 0}}),new J({alias:this.name,sqlBehavior:`error`,sqlAliasedBehavior:`alias`,replaceOriginalName:!0}))}as(e){return new Proxy(new Da({pgConfig:this.config,config:{name:this.name,schema:this.schema,selectedFields:this.columns,query:e.inlineParams()}}),new J({alias:this.name,sqlBehavior:`error`,sqlAliasedBehavior:`alias`,replaceOriginalName:!0}))}},wa=class{constructor(e,t){this.name=e,this.schema=t}static[f]=`PgMaterializedViewBuilderCore`;config={};using(e){return this.config.using=e,this}with(e){return this.config.with=e,this}tablespace(e){return this.config.tablespace=e,this}withNoData(){return this.config.withNoData=!0,this}},Ta=class extends wa{static[f]=`PgMaterializedViewBuilder`;as(e){typeof e==`function`&&(e=e(new ba));let t=new J({alias:this.name,sqlBehavior:`error`,sqlAliasedBehavior:`alias`,replaceOriginalName:!0}),n=new Proxy(e.getSelectedFields(),t);return new Proxy(new ka({pgConfig:{with:this.config.with,using:this.config.using,tablespace:this.config.tablespace,withNoData:this.config.withNoData},config:{name:this.name,schema:this.schema,selectedFields:n,query:e.getSQL().inlineParams()}}),t)}},Ea=class extends wa{static[f]=`PgManualMaterializedViewBuilder`;columns;constructor(e,t,n){super(e,n),this.columns=yn(zi(e,t))}existing(){return new Proxy(new ka({pgConfig:{tablespace:this.config.tablespace,using:this.config.using,with:this.config.with,withNoData:this.config.withNoData},config:{name:this.name,schema:this.schema,selectedFields:this.columns,query:void 0}}),new J({alias:this.name,sqlBehavior:`error`,sqlAliasedBehavior:`alias`,replaceOriginalName:!0}))}as(e){return new Proxy(new ka({pgConfig:{tablespace:this.config.tablespace,using:this.config.using,with:this.config.with,withNoData:this.config.withNoData},config:{name:this.name,schema:this.schema,selectedFields:this.columns,query:e.inlineParams()}}),new J({alias:this.name,sqlBehavior:`error`,sqlAliasedBehavior:`alias`,replaceOriginalName:!0}))}},Da=class extends oa{static[f]=`PgView`;[Ji];constructor({pgConfig:e,config:t}){super(t),e&&(this[Ji]={with:e.with})}};const Oa=Symbol.for(`drizzle:PgMaterializedViewConfig`);var ka=class extends oa{static[f]=`PgMaterializedView`;[Oa];constructor({pgConfig:e,config:t}){super(t),this[Oa]={with:e?.with,using:e?.using,tablespace:e?.tablespace,withNoData:e?.withNoData}}};function Aa(e,t,n){return t?new Ca(e,t,n):new Sa(e,n)}function ja(e,t,n){return t?new Ea(e,t,n):new Ta(e,n)}function Ma(e,t){return Aa(e,t,void 0)}function Na(e,t){return ja(e,t,void 0)}function Pa(e){return m(e,Y)?[e[D]?`${e[D]}.${e[A.Symbol.BaseName]}`:e[A.Symbol.BaseName]]:m(e,T)?e._.usedTables??[]:m(e,N)?e.usedTables??[]:[]}Symbol.toStringTag;const Fa=(e,t,n=()=>t[Math.floor(Math.random()*t.length)])=>{let r=(...e)=>n(t).select(...e),i=(...e)=>n(t).selectDistinct(...e),a=(...e)=>n(t).selectDistinctOn(...e),o=(...e)=>n(t).$count(...e),s=(...e)=>n(t).with(...e),c=e=>n(t).$with(e),l=(...t)=>e.update(...t),u=(...t)=>e.insert(...t),d=(...t)=>e.delete(...t),f=(...t)=>e.execute(...t),p=(...t)=>e.transaction(...t),m=(...t)=>e.refreshMaterializedView(...t);return{...e,update:l,insert:u,delete:d,execute:f,transaction:p,refreshMaterializedView:m,$primary:e,select:r,selectDistinct:i,selectDistinctOn:a,$count:o,$with:c,with:s,get _query(){return n(t)._query},get query(){return n(t).query}}};var Ia=class{constructor(e,t){this.name=e,t&&(this.createDb=t.createDb,this.createRole=t.createRole,this.inherit=t.inherit)}static[f]=`PgRole`;_existing;createDb;createRole;inherit;existing(){return this._existing=!0,this}};function La(e,t){return new Ia(e,t)}var Ra=class{constructor(e,t,n){this.seqName=e,this.seqOptions=t,this.schema=n}static[f]=`PgSequence`};function za(e,t){return Ba(e,t,void 0)}function Ba(e,t,n){return new Ra(e,t,n)}var Va=class{constructor(e){this.schemaName=e}static[f]=`PgSchema`;table=(e,t,n)=>Ri(e,t,n,this.schemaName);view=(e,t)=>Aa(e,t,this.schemaName);materializedView=(e,t)=>ja(e,t,this.schemaName);enum(e,t){return Array.isArray(t)?be(e,[...t],this.schemaName):xe(e,t,this.schemaName)}sequence=(e,t)=>Ba(e,t,this.schemaName);getSQL(){return new N([F.identifier(this.schemaName)])}shouldOmitSQLParens(){return!0}};function Ha(e){if(e===`public`)throw Error(`You can't specify 'public' as schema name. Postgres is using public schema by default. If you want to use 'public' schema, just use pgTable() instead of creating a schema`);return new Va(e)}var Ua=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.VerbatimString=void 0,e.VerbatimString=class extends String{format;constructor(e,t){super(t),this.format=e}}})),X=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.MultiErrorReply=e.CommandTimeoutDuringMaintenanceError=e.SocketTimeoutDuringMaintenanceError=e.TimeoutError=e.BlobError=e.SimpleError=e.ErrorReply=e.ReconnectStrategyError=e.RootNodesUnavailableError=e.SocketClosedUnexpectedlyError=e.DisconnectsClientError=e.ClientOfflineError=e.ClientClosedError=e.SocketTimeoutError=e.ConnectionTimeoutError=e.WatchError=e.AbortError=void 0,e.AbortError=class extends Error{constructor(){super(`The command was aborted`)}},e.WatchError=class extends Error{constructor(e=`One (or more) of the watched keys has been changed`){super(e)}},e.ConnectionTimeoutError=class extends Error{constructor(){super(`Connection timeout`)}},e.SocketTimeoutError=class extends Error{constructor(e){super(`Socket timeout timeout. Expecting data, but didn't receive any in ${e}ms.`)}},e.ClientClosedError=class extends Error{constructor(){super(`The client is closed`)}},e.ClientOfflineError=class extends Error{constructor(){super(`The client is offline`)}},e.DisconnectsClientError=class extends Error{constructor(){super(`Disconnects client`)}},e.SocketClosedUnexpectedlyError=class extends Error{constructor(){super(`Socket closed unexpectedly`)}},e.RootNodesUnavailableError=class extends Error{constructor(){super(`All the root nodes are unavailable`)}},e.ReconnectStrategyError=class extends Error{originalError;socketError;constructor(e,t){super(e.message),this.originalError=e,this.socketError=t}};var t=class extends Error{};e.ErrorReply=t,e.SimpleError=class extends t{},e.BlobError=class extends t{};var n=class extends Error{};e.TimeoutError=n,e.SocketTimeoutDuringMaintenanceError=class extends n{constructor(e){super(`Socket timeout during maintenance. Expecting data, but didn't receive any in ${e}ms.`)}},e.CommandTimeoutDuringMaintenanceError=class extends n{constructor(e){super(`Command timeout during maintenance. Waited to write command for more than ${e}ms.`)}},e.MultiErrorReply=class extends t{replies;errorIndexes;constructor(e,t){super(`${t.length} commands failed, see .replies and .errorIndexes for more information`),this.replies=e,this.errorIndexes=t}*errors(){for(let e of this.errorIndexes)yield this.replies[e]}}})),Wa=c((e=>{var t;Object.defineProperty(e,`__esModule`,{value:!0}),e.Decoder=e.PUSH_TYPE_MAPPING=e.RESP_TYPES=void 0;let n=Ua(),r=X();e.RESP_TYPES={NULL:95,BOOLEAN:35,NUMBER:58,BIG_NUMBER:40,DOUBLE:44,SIMPLE_STRING:43,BLOB_STRING:36,VERBATIM_STRING:61,SIMPLE_ERROR:45,BLOB_ERROR:33,ARRAY:42,SET:126,MAP:37,PUSH:62};let i={"\r":13,t:116,"+":43,"-":45,0:48,".":46,i:105,n:110,E:69,e:101};e.PUSH_TYPE_MAPPING={[e.RESP_TYPES.BLOB_STRING]:Buffer};var a=class{onReply;onErrorReply;onPush;getTypeMapping;#e=0;#t;constructor(e){this.onReply=e.onReply,this.onErrorReply=e.onErrorReply,this.onPush=e.onPush,this.getTypeMapping=e.getTypeMapping}reset(){this.#e=0,this.#t=void 0}write(e){if(this.#e>=e.length){this.#e-=e.length;return}if(this.#t&&(this.#t(e)||this.#e>=e.length)){this.#e-=e.length;return}do{let t=e[this.#e];if(++this.#e===e.length){this.#t=this.#n.bind(this,t);break}if(this.#r(t,e))break}while(this.#e<e.length);this.#e-=e.length}#n(e,t){return this.#t=void 0,this.#r(e,t)}#r(t,n){switch(t){case e.RESP_TYPES.NULL:return this.onReply(this.#o()),!1;case e.RESP_TYPES.BOOLEAN:return this.#i(this.onReply,this.#s(n));case e.RESP_TYPES.NUMBER:return this.#i(this.onReply,this.#c(this.getTypeMapping()[e.RESP_TYPES.NUMBER],n));case e.RESP_TYPES.BIG_NUMBER:return this.#i(this.onReply,this.#f(this.getTypeMapping()[e.RESP_TYPES.BIG_NUMBER],n));case e.RESP_TYPES.DOUBLE:return this.#i(this.onReply,this.#g(this.getTypeMapping()[e.RESP_TYPES.DOUBLE],n));case e.RESP_TYPES.SIMPLE_STRING:return this.#i(this.onReply,this.#T(this.getTypeMapping()[e.RESP_TYPES.SIMPLE_STRING],n));case e.RESP_TYPES.BLOB_STRING:return this.#i(this.onReply,this.#D(this.getTypeMapping()[e.RESP_TYPES.BLOB_STRING],n));case e.RESP_TYPES.VERBATIM_STRING:return this.#i(this.onReply,this.#M(this.getTypeMapping()[e.RESP_TYPES.VERBATIM_STRING],n));case e.RESP_TYPES.SIMPLE_ERROR:return this.#i(this.onErrorReply,this.#z(n));case e.RESP_TYPES.BLOB_ERROR:return this.#i(this.onErrorReply,this.#V(n));case e.RESP_TYPES.ARRAY:return this.#i(this.onReply,this.#G(this.getTypeMapping(),n));case e.RESP_TYPES.SET:return this.#i(this.onReply,this.#X(this.getTypeMapping(),n));case e.RESP_TYPES.MAP:return this.#i(this.onReply,this.#te(this.getTypeMapping(),n));case e.RESP_TYPES.PUSH:return this.#i(this.onPush,this.#G(e.PUSH_TYPE_MAPPING,n));default:throw Error(`Unknown RESP type ${t} "${String.fromCharCode(t)}"`)}}#i(e,t){return typeof t==`function`?(this.#t=this.#a.bind(this,e,t),!0):(e(t),!1)}#a(e,t,n){return this.#t=void 0,this.#i(e,t(n))}#o(){return this.#e+=2,null}#s(e){let t=e[this.#e]===i.t;return this.#e+=3,t}#c(e,t){if(e===String)return this.#T(String,t);switch(t[this.#e]){case i[`+`]:return this.#l(!1,t);case i[`-`]:return this.#l(!0,t);default:return this.#u(!1,this.#d.bind(this,0),t)}}#l(e,t){let n=this.#d.bind(this,0);return++this.#e===t.length?this.#u.bind(this,e,n):this.#u(e,n,t)}#u(e,t,n){let r=t(n);return typeof r==`function`?this.#u.bind(this,e,r):e?-r:r}#d(e,t){let n=this.#e;do{let r=t[n];if(r===i[`\r`])return this.#e=n+2,e;e=e*10+r-i[0]}while(++n<t.length);return this.#e=n,this.#d.bind(this,e)}#f(e,t){if(e===String)return this.#T(String,t);switch(t[this.#e]){case i[`+`]:return this.#p(!1,t);case i[`-`]:return this.#p(!0,t);default:return this.#m(!1,this.#h.bind(this,0n),t)}}#p(e,t){let n=this.#h.bind(this,0n);return++this.#e===t.length?this.#m.bind(this,e,n):this.#m(e,n,t)}#m(e,t,n){let r=t(n);return typeof r==`function`?this.#m.bind(this,e,r):e?-r:r}#h(e,t){let n=this.#e;do{let r=t[n];if(r===i[`\r`])return this.#e=n+2,e;e=e*10n+BigInt(r-i[0])}while(++n<t.length);return this.#e=n,this.#h.bind(this,e)}#g(e,t){if(e===String)return this.#T(String,t);switch(t[this.#e]){case i.n:return this.#e+=5,NaN;case i[`+`]:return this.#_(!1,t);case i[`-`]:return this.#_(!0,t);default:return this.#v(!1,0,t)}}#_(e,t){return++this.#e===t.length?this.#v.bind(this,e,0):this.#v(e,0,t)}#v(e,t,n){return n[this.#e]===i.i?(this.#e+=5,e?-1/0:1/0):this.#y(e,t,n)}#y(e,t,n){let r=this.#e;do{let a=n[r];switch(a){case i[`.`]:return this.#e=r+1,this.#e<n.length?this.#x(e,0,t,n):this.#x.bind(this,e,0,t);case i.E:case i.e:this.#e=r+1;let o=e?-t:t;return this.#e<n.length?this.#S(o,n):this.#S.bind(this,o);case i[`\r`]:return this.#e=r+2,e?-t:t;default:t=t*10+a-i[0]}}while(++r<n.length);return this.#e=r,this.#y.bind(this,e,t)}static#b=[.1,.01,.001,1e-4,1e-5,1e-6,1e-7,1e-8,1e-9,1e-10,1e-11,1e-12,1e-13,1e-14,1e-15,1e-16,1e-17];#x(e,n,r,a){let o=this.#e;do{let s=a[o];switch(s){case i.E:case i.e:this.#e=o+1;let t=e?-r:r;return this.#e===a.length?this.#S.bind(this,t):this.#S(t,a);case i[`\r`]:return this.#e=o+2,e?-r:r}n<t.#b.length&&(r+=(s-i[0])*t.#b[n++])}while(++o<a.length);return this.#e=o,this.#x.bind(this,e,n,r)}#S(e,t){switch(t[this.#e]){case i[`+`]:return++this.#e===t.length?this.#C.bind(this,!1,e,0):this.#C(!1,e,0,t);case i[`-`]:return++this.#e===t.length?this.#C.bind(this,!0,e,0):this.#C(!0,e,0,t)}return this.#C(!1,e,0,t)}#C(e,t,n,r){let a=this.#e;do{let o=r[a];if(o===i[`\r`])return this.#e=a+2,t*10**(e?-n:n);n=n*10+o-i[0]}while(++a<r.length);return this.#e=a,this.#C.bind(this,e,t,n)}#w(e,t){for(;e[t]!==i[`\r`];)if(++t===e.length)return this.#e=e.length,-1;return this.#e=t+2,t}#T(e,t){let n=this.#e,r=this.#w(t,n);if(r===-1)return this.#E.bind(this,[t.subarray(n)],e);let i=t.subarray(n,r);return e===Buffer?i:i.toString()}#E(e,t,n){let r=this.#e,i=this.#w(n,r);if(i===-1)return e.push(n.subarray(r)),this.#E.bind(this,e,t);e.push(n.subarray(r,i));let a=Buffer.concat(e);return t===Buffer?a:a.toString()}#D(e,t){if(t[this.#e]===i[`-`])return this.#e+=4,null;let n=this.#d(0,t);return typeof n==`function`?this.#O.bind(this,n,e):this.#e>=t.length?this.#j.bind(this,n,e):this.#j(n,e,t)}#O(e,t,n){let r=e(n);return typeof r==`function`?this.#O.bind(this,r,t):this.#e>=n.length?this.#j.bind(this,r,t):this.#j(r,t,n)}#k(e,t,n,r){let i=this.#e+e;if(i>=r.length){let i=r.subarray(this.#e);return this.#e=r.length,this.#A.bind(this,e-i.length,[i],t,n)}let a=r.subarray(this.#e,i);return this.#e=i+t,n===Buffer?a:a.toString()}#A(e,t,n,r,i){let a=this.#e+e;if(a>=i.length){let a=i.subarray(this.#e);return t.push(a),this.#e=i.length,this.#A.bind(this,e-a.length,t,n,r)}t.push(i.subarray(this.#e,a)),this.#e=a+n;let o=Buffer.concat(t);return r===Buffer?o:o.toString()}#j(e,t,n){return this.#k(e,2,t,n)}#M(e,t){return this.#N(this.#d.bind(this,0),e,t)}#N(e,t,n){let r=e(n);return typeof r==`function`?this.#N.bind(this,r,t):this.#P(r,t,n)}#P(e,t,r){let i=e-4;return t===n.VerbatimString?this.#F(i,r):(this.#e+=4,this.#e>=r.length?this.#j.bind(this,i,t):this.#j(i,t,r))}#F(e,t){let n=this.#k.bind(this,3,1,String);return this.#e>=t.length?this.#I.bind(this,e,n):this.#I(e,n,t)}#I(e,t,n){let r=t(n);return typeof r==`function`?this.#I.bind(this,e,r):this.#L(e,r,n)}#L(e,t,n){return this.#R(t,this.#j.bind(this,e,String),n)}#R(e,t,r){let i=t(r);return typeof i==`function`?this.#R.bind(this,e,i):new n.VerbatimString(e,i)}#z(e){let t=this.#T(String,e);return typeof t==`function`?this.#B.bind(this,t):new r.SimpleError(t)}#B(e,t){let n=e(t);return typeof n==`function`?this.#B.bind(this,n):new r.SimpleError(n)}#V(e){let t=this.#D(String,e);return typeof t==`function`?this.#H.bind(this,t):new r.BlobError(t)}#H(e,t){let n=e(t);return typeof n==`function`?this.#H.bind(this,n):new r.BlobError(n)}#U(e,t){let n=t[this.#e];return++this.#e===t.length?this.#W.bind(this,n,e):this.#W(n,e,t)}#W(t,n,r){switch(t){case e.RESP_TYPES.NULL:return this.#o();case e.RESP_TYPES.BOOLEAN:return this.#s(r);case e.RESP_TYPES.NUMBER:return this.#c(n[e.RESP_TYPES.NUMBER],r);case e.RESP_TYPES.BIG_NUMBER:return this.#f(n[e.RESP_TYPES.BIG_NUMBER],r);case e.RESP_TYPES.DOUBLE:return this.#g(n[e.RESP_TYPES.DOUBLE],r);case e.RESP_TYPES.SIMPLE_STRING:return this.#T(n[e.RESP_TYPES.SIMPLE_STRING],r);case e.RESP_TYPES.BLOB_STRING:return this.#D(n[e.RESP_TYPES.BLOB_STRING],r);case e.RESP_TYPES.VERBATIM_STRING:return this.#M(n[e.RESP_TYPES.VERBATIM_STRING],r);case e.RESP_TYPES.SIMPLE_ERROR:return this.#z(r);case e.RESP_TYPES.BLOB_ERROR:return this.#V(r);case e.RESP_TYPES.ARRAY:return this.#G(n,r);case e.RESP_TYPES.SET:return this.#X(n,r);case e.RESP_TYPES.MAP:return this.#te(n,r);default:throw Error(`Unknown RESP type ${t} "${String.fromCharCode(t)}"`)}}#G(e,t){return t[this.#e]===i[`-`]?(this.#e+=4,null):this.#K(this.#d(0,t),e,t)}#K(e,t,n){return typeof e==`function`?this.#q.bind(this,e,t):this.#J(Array(e),0,t,n)}#q(e,t,n){return this.#K(e(n),t,n)}#J(e,t,n,r){for(let i=t;i<e.length;i++){if(this.#e>=r.length)return this.#J.bind(this,e,i,n);let t=this.#U(n,r);if(typeof t==`function`)return this.#Y.bind(this,e,i,t,n);e[i]=t}return e}#Y(e,t,n,r,i){let a=n(i);return typeof a==`function`?this.#Y.bind(this,e,t,a,r):(e[t++]=a,this.#J(e,t,r,i))}#X(e,t){let n=this.#d(0,t);return typeof n==`function`?this.#Z.bind(this,n,e):this.#Q(n,e,t)}#Z(e,t,n){let r=e(n);return typeof r==`function`?this.#Z.bind(this,r,t):this.#Q(r,t,n)}#Q(t,n,r){return n[e.RESP_TYPES.SET]===Set?this.#$(new Set,t,n,r):this.#J(Array(t),0,n,r)}#$(e,t,n,r){for(;t>0;){if(this.#e>=r.length)return this.#$.bind(this,e,t,n);let i=this.#U(n,r);if(typeof i==`function`)return this.#ee.bind(this,e,t,i,n);e.add(i),--t}return e}#ee(e,t,n,r,i){let a=n(i);return typeof a==`function`?this.#ee.bind(this,e,t,a,r):(e.add(a),this.#$(e,t-1,r,i))}#te(e,t){let n=this.#d(0,t);return typeof n==`function`?this.#ne.bind(this,n,e):this.#re(n,e,t)}#ne(e,t,n){let r=e(n);return typeof r==`function`?this.#ne.bind(this,r,t):this.#re(r,t,n)}#re(t,n,r){switch(n[e.RESP_TYPES.MAP]){case Map:return this.#ie(new Map,t,n,r);case Array:return this.#J(Array(t*2),0,n,r);default:return this.#le(Object.create(null),t,n,r)}}#ie(e,t,n,r){for(;t>0;){if(this.#e>=r.length)return this.#ie.bind(this,e,t,n);let i=this.#ae(n,r);if(typeof i==`function`)return this.#se.bind(this,e,t,i,n);if(this.#e>=r.length)return this.#ce.bind(this,e,t,i,this.#U.bind(this,n),n);let a=this.#U(n,r);if(typeof a==`function`)return this.#ce.bind(this,e,t,i,a,n);e.set(i,a),--t}return e}#ae(e,t){let n=t[this.#e];return++this.#e===t.length?this.#oe.bind(this,n,e):this.#oe(n,e,t)}#oe(t,n,r){switch(t){case e.RESP_TYPES.SIMPLE_STRING:return this.#T(String,r);case e.RESP_TYPES.BLOB_STRING:return this.#D(String,r);default:return this.#W(t,n,r)}}#se(e,t,n,r,i){let a=n(i);if(typeof a==`function`)return this.#se.bind(this,e,t,a,r);if(this.#e>=i.length)return this.#ce.bind(this,e,t,a,this.#U.bind(this,r),r);let o=this.#U(r,i);return typeof o==`function`?this.#ce.bind(this,e,t,a,o,r):(e.set(a,o),this.#ie(e,t-1,r,i))}#ce(e,t,n,r,i,a){let o=r(a);return typeof o==`function`?this.#ce.bind(this,e,t,n,o,i):(e.set(n,o),this.#ie(e,t-1,i,a))}#le(e,t,n,r){for(;t>0;){if(this.#e>=r.length)return this.#le.bind(this,e,t,n);let i=this.#ae(n,r);if(typeof i==`function`)return this.#ue.bind(this,e,t,i,n);if(this.#e>=r.length)return this.#de.bind(this,e,t,i,this.#U.bind(this,n),n);let a=this.#U(n,r);if(typeof a==`function`)return this.#de.bind(this,e,t,i,a,n);e[i]=a,--t}return e}#ue(e,t,n,r,i){let a=n(i);if(typeof a==`function`)return this.#ue.bind(this,e,t,a,r);if(this.#e>=i.length)return this.#de.bind(this,e,t,a,this.#U.bind(this,r),r);let o=this.#U(r,i);return typeof o==`function`?this.#de.bind(this,e,t,a,o,r):(e[a]=o,this.#le(e,t-1,r,i))}#de(e,t,n,r,i,a){let o=r(a);return typeof o==`function`?this.#de.bind(this,e,t,n,o,i):(e[n]=o,this.#le(e,t-1,i,a))}};e.Decoder=a,t=a})),Ga=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.scriptSha1=e.defineScript=void 0;let t=d(`node:crypto`);function n(e){return{...e,SHA1:r(e.SCRIPT)}}e.defineScript=n;function r(e){return(0,t.createHash)(`sha1`).update(e).digest(`hex`)}e.scriptSha1=r})),Ka=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(e,t){e.push(`ACL`,`CAT`),t&&e.push(t)},transformReply:void 0}})),qa=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(e,t){e.push(`ACL`,`DELUSER`),e.pushVariadic(t)},transformReply:void 0}})),Ja=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(e,t,n){e.push(`ACL`,`DRYRUN`,t,...n)},transformReply:void 0}})),Ya=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(e,t){e.push(`ACL`,`GENPASS`),t&&e.push(t.toString())},transformReply:void 0}})),Xa=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(e,t){e.push(`ACL`,`GETUSER`,t)},transformReply:{2:e=>({flags:e[1],passwords:e[3],commands:e[5],keys:e[7],channels:e[9],selectors:e[11]?.map(e=>{let t=e;return{commands:t[1],keys:t[3],channels:t[5]}})}),3:void 0}}})),Za=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(e){e.push(`ACL`,`LIST`)},transformReply:void 0}})),Qa=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(e){e.push(`ACL`,`LOAD`)},transformReply:void 0}})),Z=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.BasicCommandParser=void 0,e.BasicCommandParser=class{#e=[];#t=[];preserve;get redisArgs(){return this.#e}get keys(){return this.#t}get firstKey(){return this.#t[0]}get cacheKey(){let e=Array(this.#e.length*2);for(let t=0;t<this.#e.length;t++)e[t]=this.#e[t].length,e[t+this.#e.length]=this.#e[t];return e.join(`_`)}push(...e){this.#e.push(...e)}pushVariadic(e){if(Array.isArray(e))for(let t of e)this.push(t);else this.push(e)}pushVariadicWithLength(e){Array.isArray(e)?this.#e.push(e.length.toString()):this.#e.push(`1`),this.pushVariadic(e)}pushVariadicNumber(e){if(Array.isArray(e))for(let t of e)this.push(t.toString());else this.push(e.toString())}pushKey(e){this.#t.push(e),this.#e.push(e)}pushKeysLength(e){Array.isArray(e)?this.#e.push(e.length.toString()):this.#e.push(`1`),this.pushKeys(e)}pushKeys(e){Array.isArray(e)?(this.#t.push(...e),this.#e.push(...e)):(this.#t.push(e),this.#e.push(e))}}})),Q=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.transformRedisJsonNullReply=e.transformRedisJsonReply=e.transformRedisJsonArgument=e.transformStreamsMessagesReplyResp3=e.transformStreamsMessagesReplyResp2=e.transformStreamMessagesReply=e.transformStreamMessageNullReply=e.transformStreamMessageReply=e.parseArgs=e.parseZKeysArguments=e.transformRangeReply=e.parseSlotRangesArguments=e.transformFunctionListItemReply=e.RedisFunctionFlags=e.transformCommandReply=e.CommandCategories=e.CommandFlags=e.parseOptionalVariadicArgument=e.pushVariadicArgument=e.pushVariadicNumberArguments=e.pushVariadicArguments=e.pushEvalArguments=e.evalFirstKeyIndex=e.transformPXAT=e.transformEXAT=e.transformSortedSetReply=e.transformTuplesReply=e.createTransformTuplesReplyFunc=e.transformTuplesToMap=e.transformNullableDoubleReply=e.createTransformNullableDoubleReplyResp2Func=e.transformDoubleArrayReply=e.createTransformDoubleReplyResp2Func=e.transformDoubleReply=e.transformStringDoubleArgument=e.transformDoubleArgument=e.transformBooleanArrayReply=e.transformBooleanReply=e.isArrayReply=e.isNullReply=void 0;let t=Z(),n=Wa();function r(e){return e===null}e.isNullReply=r;function i(e){return Array.isArray(e)}e.isArrayReply=i,e.transformBooleanReply={2:e=>e===1,3:void 0},e.transformBooleanArrayReply={2:t=>t.map(e.transformBooleanReply[2]),3:void 0};function a(e){switch(e){case 1/0:return`+inf`;case-1/0:return`-inf`;default:return e.toString()}}e.transformDoubleArgument=a;function o(e){return typeof e==`number`?a(e):e}e.transformStringDoubleArgument=o,e.transformDoubleReply={2:(e,t,r)=>{switch(r?r[n.RESP_TYPES.DOUBLE]:void 0){case String:return e;default:{let t;switch(e.toString()){case`inf`:case`+inf`:t=1/0;case`-inf`:t=-1/0;case`nan`:t=NaN;default:t=Number(e)}return t}}},3:void 0};function s(t,n){return r=>e.transformDoubleReply[2](r,t,n)}e.createTransformDoubleReplyResp2Func=s,e.transformDoubleArrayReply={2:(e,t,n)=>e.map(s(t,n)),3:void 0};function c(t,n){return r=>e.transformNullableDoubleReply[2](r,t,n)}e.createTransformNullableDoubleReplyResp2Func=c,e.transformNullableDoubleReply={2:(t,n,r)=>t===null?null:e.transformDoubleReply[2](t,n,r),3:void 0};function l(e,t){let n=Object.create(null);for(let r=0;r<e.length;r+=2)n[e[r].toString()]=t(e[r+1]);return n}e.transformTuplesToMap=l;function u(e,t){return n=>d(n,e,t)}e.createTransformTuplesReplyFunc=u;function d(e,t,r){let i=r?r[n.RESP_TYPES.MAP]:void 0,a=e;switch(i){case Array:return e;case Map:{let e=new Map;for(let t=0;t<a.length;t+=2)e.set(a[t].toString(),a[t+1]);return e}default:{let e=Object.create(null);for(let t=0;t<a.length;t+=2)e[a[t].toString()]=a[t+1];return e}}}e.transformTuplesReply=d,e.transformSortedSetReply={2:(t,n,r)=>{let i=t,a=[];for(let t=0;t<i.length;t+=2)a.push({value:i[t],score:e.transformDoubleReply[2](i[t+1],n,r)});return a},3:e=>e.map(e=>{let[t,n]=e;return{value:t,score:n}})};function f(e){return(typeof e==`number`?e:Math.floor(e.getTime()/1e3)).toString()}e.transformEXAT=f;function p(e){return(typeof e==`number`?e:e.getTime()).toString()}e.transformPXAT=p;function m(e){return e?.keys?.[0]}e.evalFirstKeyIndex=m;function h(e,t){return t?.keys?e.push(t.keys.length.toString(),...t.keys):e.push(`0`),t?.arguments&&e.push(...t.arguments),e}e.pushEvalArguments=h;function g(e,t){return Array.isArray(t)?e=e.concat(t):e.push(t),e}e.pushVariadicArguments=g;function _(e,t){if(Array.isArray(t))for(let n of t)e.push(n.toString());else e.push(t.toString());return e}e.pushVariadicNumberArguments=_;function v(e,t){return Array.isArray(t)?e.push(t.length.toString(),...t):e.push(`1`,t),e}e.pushVariadicArgument=v;function y(e,t,n){n!==void 0&&(e.push(t),e.pushVariadicWithLength(n))}e.parseOptionalVariadicArgument=y;var b;(function(e){e.WRITE=`write`,e.READONLY=`readonly`,e.DENYOOM=`denyoom`,e.ADMIN=`admin`,e.PUBSUB=`pubsub`,e.NOSCRIPT=`noscript`,e.RANDOM=`random`,e.SORT_FOR_SCRIPT=`sort_for_script`,e.LOADING=`loading`,e.STALE=`stale`,e.SKIP_MONITOR=`skip_monitor`,e.ASKING=`asking`,e.FAST=`fast`,e.MOVABLEKEYS=`movablekeys`})(b||(e.CommandFlags=b={}));var x;(function(e){e.KEYSPACE=`@keyspace`,e.READ=`@read`,e.WRITE=`@write`,e.SET=`@set`,e.SORTEDSET=`@sortedset`,e.LIST=`@list`,e.HASH=`@hash`,e.STRING=`@string`,e.BITMAP=`@bitmap`,e.HYPERLOGLOG=`@hyperloglog`,e.GEO=`@geo`,e.STREAM=`@stream`,e.PUBSUB=`@pubsub`,e.ADMIN=`@admin`,e.FAST=`@fast`,e.SLOW=`@slow`,e.BLOCKING=`@blocking`,e.DANGEROUS=`@dangerous`,e.CONNECTION=`@connection`,e.TRANSACTION=`@transaction`,e.SCRIPTING=`@scripting`})(x||(e.CommandCategories=x={}));function S([e,t,n,r,i,a,o]){return{name:e,arity:t,flags:new Set(n),firstKeyIndex:r,lastKeyIndex:i,step:a,categories:new Set(o)}}e.transformCommandReply=S;var ee;(function(e){e.NO_WRITES=`no-writes`,e.ALLOW_OOM=`allow-oom`,e.ALLOW_STALE=`allow-stale`,e.NO_CLUSTER=`no-cluster`})(ee||(e.RedisFunctionFlags=ee={}));function te(e){return{libraryName:e[1],engine:e[3],functions:e[5].map(e=>({name:e[1],description:e[3],flags:e[5]}))}}e.transformFunctionListItemReply=te;function ne(e,t){e.push(t.start.toString(),t.end.toString())}function re(e,t){if(Array.isArray(t))for(let n of t)ne(e,n);else ne(e,t)}e.parseSlotRangesArguments=re;function ie([e,t]){return{start:e,end:t}}e.transformRangeReply=ie;function ae(e,t){if(Array.isArray(t)){if(e.push(t.length.toString()),t.length)if(se(t))e.pushKeys(t);else{for(let n=0;n<t.length;n++)e.pushKey(t[n].key);e.push(`WEIGHTS`);for(let n=0;n<t.length;n++)e.push(a(t[n].weight))}}else e.push(`1`),oe(t)?e.pushKey(t):(e.pushKey(t.key),e.push(`WEIGHTS`,a(t.weight)))}e.parseZKeysArguments=ae;function oe(e){return typeof e==`string`||e instanceof Buffer}function se(e){return oe(e[0])}function ce(e,...n){let r=new t.BasicCommandParser;e.parseCommand(r,...n);let i=r.redisArgs;return r.preserve&&(i.preserve=r.preserve),i}e.parseArgs=ce;function C(e,t){let[n,r]=t;return{id:n,message:d(r,void 0,e)}}e.transformStreamMessageReply=C;function w(e,t){return r(t)?t:C(e,t)}e.transformStreamMessageNullReply=w;function le(e,t){return e.map(C.bind(void 0,t))}e.transformStreamMessagesReply=le;function ue(e,t,r){if(e===null)return null;switch(r?r[n.RESP_TYPES.MAP]:void 0){default:{let t=[];for(let n=0;n<e.length;n++){let r=e[n];t.push({name:r[0],messages:le(r[1])})}return t}}}e.transformStreamsMessagesReplyResp2=ue;function de(e){if(e===null)return null;if(e instanceof Map){let t=new Map;for(let[n,r]of e){let e=n;t.set(e.toString(),le(r))}return t}else if(e instanceof Array){let t=[];for(let n=0;n<e.length;n+=2){let r=e[n],i=e[n+1];t.push(r),t.push(le(i))}return t}else{let t=Object.create(null);for(let[n,r]of Object.entries(e))t[n]=le(r);return t}}e.transformStreamsMessagesReplyResp3=de;function fe(e){return JSON.stringify(e)}e.transformRedisJsonArgument=fe;function pe(e){return JSON.parse(e.toString())}e.transformRedisJsonReply=pe;function me(e){return r(e)?e:pe(e)}e.transformRedisJsonNullReply=me})),$a=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=Q();e.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(e,t){e.push(`ACL`,`LOG`),t!=null&&e.push(t.toString())},transformReply:{2:(e,n,r)=>e.map(e=>{let i=e;return{count:i[1],reason:i[3],context:i[5],object:i[7],username:i[9],"age-seconds":t.transformDoubleReply[2](i[11],n,r),"client-info":i[13],"entry-id":i[15],"timestamp-created":i[17],"timestamp-last-updated":i[19]}}),3:void 0}}})),eo=c((e=>{var t=e&&e.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e,`__esModule`,{value:!0}),e.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:t($a()).default.IS_READ_ONLY,parseCommand(e){e.push(`ACL`,`LOG`,`RESET`)},transformReply:void 0}})),to=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(e){e.push(`ACL`,`SAVE`)},transformReply:void 0}})),no=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(e,t,n){e.push(`ACL`,`SETUSER`,t),e.pushVariadic(n)},transformReply:void 0}})),ro=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(e){e.push(`ACL`,`USERS`)},transformReply:void 0}})),io=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(e){e.push(`ACL`,`WHOAMI`)},transformReply:void 0}})),ao=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={IS_READ_ONLY:!1,parseCommand(e,t,n){e.push(`APPEND`,t,n)},transformReply:void 0}})),oo=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.ASKING_CMD=void 0,e.ASKING_CMD=`ASKING`,e.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(t){t.push(e.ASKING_CMD)},transformReply:void 0}})),so=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(e,{username:t,password:n}){e.push(`AUTH`),t!==void 0&&e.push(t),e.push(n)},transformReply:void 0}})),co=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(e){e.push(`BGREWRITEAOF`)},transformReply:void 0}})),lo=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(e,t){e.push(`BGSAVE`),t?.SCHEDULE&&e.push(`SCHEDULE`)},transformReply:void 0}})),uo=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={CACHEABLE:!0,IS_READ_ONLY:!0,parseCommand(e,t,n){e.push(`BITCOUNT`),e.pushKey(t),n&&(e.push(n.start.toString()),e.push(n.end.toString()),n.mode&&e.push(n.mode))},transformReply:void 0}})),fo=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={CACHEABLE:!0,IS_READ_ONLY:!0,parseCommand(e,t,n){e.push(`BITFIELD_RO`),e.pushKey(t);for(let t of n)e.push(`GET`),e.push(t.encoding),e.push(t.offset.toString())},transformReply:void 0}})),po=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={IS_READ_ONLY:!1,parseCommand(e,t,n){e.push(`BITFIELD`),e.pushKey(t);for(let t of n)switch(t.operation){case`GET`:e.push(`GET`,t.encoding,t.offset.toString());break;case`SET`:e.push(`SET`,t.encoding,t.offset.toString(),t.value.toString());break;case`INCRBY`:e.push(`INCRBY`,t.encoding,t.offset.toString(),t.increment.toString());break;case`OVERFLOW`:e.push(`OVERFLOW`,t.behavior);break}},transformReply:void 0}})),mo=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={IS_READ_ONLY:!1,parseCommand(e,t,n,r){e.push(`BITOP`,t),e.pushKey(n),e.pushKeys(r)},transformReply:void 0}})),ho=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={CACHEABLE:!0,IS_READ_ONLY:!0,parseCommand(e,t,n,r,i,a){e.push(`BITPOS`),e.pushKey(t),e.push(n.toString()),r!==void 0&&e.push(r.toString()),i!==void 0&&e.push(i.toString()),a&&e.push(a)},transformReply:void 0}})),go=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={IS_READ_ONLY:!1,parseCommand(e,t,n,r,i,a){e.push(`BLMOVE`),e.pushKeys([t,n]),e.push(r,i,a.toString())},transformReply:void 0}})),_o=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.parseLMPopArguments=void 0;function t(e,t,n,r){e.pushKeysLength(t),e.push(n),r?.COUNT!==void 0&&e.push(`COUNT`,r.COUNT.toString())}e.parseLMPopArguments=t,e.default={IS_READ_ONLY:!1,parseCommand(e,...n){e.push(`LMPOP`),t(e,...n)},transformReply:void 0}})),vo=c((e=>{var t=e&&e.__createBinding||(Object.create?(function(e,t,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(t,n);(!i||(`get`in i?!t.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,i)}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]})),n=e&&e.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,`default`,{enumerable:!0,value:t})}):function(e,t){e.default=t}),r=e&&e.__importStar||function(e){if(e&&e.__esModule)return e;var r={};if(e!=null)for(var i in e)i!==`default`&&Object.prototype.hasOwnProperty.call(e,i)&&t(r,e,i);return n(r,e),r};Object.defineProperty(e,`__esModule`,{value:!0});let i=r(_o());e.default={IS_READ_ONLY:!1,parseCommand(e,t,...n){e.push(`BLMPOP`,t.toString()),(0,i.parseLMPopArguments)(e,...n)},transformReply:i.default.transformReply}})),yo=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={IS_READ_ONLY:!0,parseCommand(e,t,n){e.push(`BLPOP`),e.pushKeys(t),e.push(n.toString())},transformReply(e){return e===null?null:{key:e[0],element:e[1]}}}})),bo=c((e=>{var t=e&&e.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e,`__esModule`,{value:!0}),e.default={IS_READ_ONLY:!0,parseCommand(e,t,n){e.push(`BRPOP`),e.pushKeys(t),e.push(n.toString())},transformReply:t(yo()).default.transformReply}})),xo=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={IS_READ_ONLY:!1,parseCommand(e,t,n,r){e.push(`BRPOPLPUSH`),e.pushKeys([t,n]),e.push(r.toString())},transformReply:void 0}})),So=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.parseZMPopArguments=void 0;let t=Q();function n(e,t,n,r){e.pushKeysLength(t),e.push(n),r?.COUNT&&e.push(`COUNT`,r.COUNT.toString())}e.parseZMPopArguments=n,e.default={IS_READ_ONLY:!1,parseCommand(e,t,r,i){e.push(`ZMPOP`),n(e,t,r,i)},transformReply:{2(e,n,r){return e===null?null:{key:e[0],members:e[1].map(e=>{let[i,a]=e;return{value:i,score:t.transformDoubleReply[2](a,n,r)}})}},3(e){return e===null?null:{key:e[0],members:t.transformSortedSetReply[3](e[1])}}}}})),Co=c((e=>{var t=e&&e.__createBinding||(Object.create?(function(e,t,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(t,n);(!i||(`get`in i?!t.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,i)}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]})),n=e&&e.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,`default`,{enumerable:!0,value:t})}):function(e,t){e.default=t}),r=e&&e.__importStar||function(e){if(e&&e.__esModule)return e;var r={};if(e!=null)for(var i in e)i!==`default`&&Object.prototype.hasOwnProperty.call(e,i)&&t(r,e,i);return n(r,e),r};Object.defineProperty(e,`__esModule`,{value:!0});let i=r(So());e.default={IS_READ_ONLY:!1,parseCommand(e,t,...n){e.push(`BZMPOP`,t.toString()),(0,i.parseZMPopArguments)(e,...n)},transformReply:i.default.transformReply}})),wo=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=Q();e.default={IS_READ_ONLY:!1,parseCommand(e,t,n){e.push(`BZPOPMAX`),e.pushKeys(t),e.push(n.toString())},transformReply:{2(e,n,r){return e===null?null:{key:e[0],value:e[1],score:t.transformDoubleReply[2](e[2],n,r)}},3(e){return e===null?null:{key:e[0],value:e[1],score:e[2]}}}}})),To=c((e=>{var t=e&&e.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e,`__esModule`,{value:!0});let n=t(wo());e.default={IS_READ_ONLY:n.default.IS_READ_ONLY,parseCommand(e,t,n){e.push(`BZPOPMIN`),e.pushKeys(t),e.push(n.toString())},transformReply:n.default.transformReply}})),Eo=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(e,t){e.push(`CLIENT`,`CACHING`,t?`YES`:`NO`)},transformReply:void 0}})),Do=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(e){e.push(`CLIENT`,`GETNAME`)},transformReply:void 0}})),Oo=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(e){e.push(`CLIENT`,`GETREDIR`)},transformReply:void 0}})),ko=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(e){e.push(`CLIENT`,`ID`)},transformReply:void 0}})),Ao=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=/([^\s=]+)=([^\s]*)/g;e.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(e){e.push(`CLIENT`,`INFO`)},transformReply(e){let n={};for(let r of e.toString().matchAll(t))n[r[1]]=r[2];let r={id:Number(n.id),addr:n.addr,fd:Number(n.fd),name:n.name,age:Number(n.age),idle:Number(n.idle),flags:n.flags,db:Number(n.db),sub:Number(n.sub),psub:Number(n.psub),multi:Number(n.multi),qbuf:Number(n.qbuf),qbufFree:Number(n[`qbuf-free`]),argvMem:Number(n[`argv-mem`]),obl:Number(n.obl),oll:Number(n.oll),omem:Number(n.omem),totMem:Number(n[`tot-mem`]),events:n.events,cmd:n.cmd,user:n.user,libName:n[`lib-name`],libVer:n[`lib-ver`]};return n.laddr!==void 0&&(r.laddr=n.laddr),n.redir!==void 0&&(r.redir=Number(n.redir)),n.ssub!==void 0&&(r.ssub=Number(n.ssub)),n[`multi-mem`]!==void 0&&(r.multiMem=Number(n[`multi-mem`])),n.resp!==void 0&&(r.resp=Number(n.resp)),r}}})),jo=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.CLIENT_KILL_FILTERS=void 0,e.CLIENT_KILL_FILTERS={ADDRESS:`ADDR`,LOCAL_ADDRESS:`LADDR`,ID:`ID`,TYPE:`TYPE`,USER:`USER`,SKIP_ME:`SKIPME`,MAXAGE:`MAXAGE`},e.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(e,n){if(e.push(`CLIENT`,`KILL`),Array.isArray(n))for(let r of n)t(e,r);else t(e,n)},transformReply:void 0};function t(t,n){if(n===e.CLIENT_KILL_FILTERS.SKIP_ME){t.push(`SKIPME`);return}switch(t.push(n.filter),n.filter){case e.CLIENT_KILL_FILTERS.ADDRESS:t.push(n.address);break;case e.CLIENT_KILL_FILTERS.LOCAL_ADDRESS:t.push(n.localAddress);break;case e.CLIENT_KILL_FILTERS.ID:t.push(typeof n.id==`number`?n.id.toString():n.id);break;case e.CLIENT_KILL_FILTERS.TYPE:t.push(n.type);break;case e.CLIENT_KILL_FILTERS.USER:t.push(n.username);break;case e.CLIENT_KILL_FILTERS.SKIP_ME:t.push(n.skipMe?`yes`:`no`);break;case e.CLIENT_KILL_FILTERS.MAXAGE:t.push(n.maxAge.toString());break}}})),Mo=c((e=>{var t=e&&e.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e,`__esModule`,{value:!0});let n=t(Ao());e.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(e,t){e.push(`CLIENT`,`LIST`),t&&(t.TYPE===void 0?(e.push(`ID`),e.pushVariadic(t.ID)):e.push(`TYPE`,t.TYPE))},transformReply(e){let t=e.toString().split(`
10
- `),r=t.length-1,i=[];for(let e=0;e<r;e++)i.push(n.default.transformReply(t[e]));return i}}})),No=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(e,t){e.push(`CLIENT`,`NO-EVICT`,t?`ON`:`OFF`)},transformReply:void 0}})),Po=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(e,t){e.push(`CLIENT`,`NO-TOUCH`,t?`ON`:`OFF`)},transformReply:void 0}})),Fo=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(e,t,n){e.push(`CLIENT`,`PAUSE`,t.toString()),n&&e.push(n)},transformReply:void 0}})),Io=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(e,t){e.push(`CLIENT`,`SETNAME`,t)},transformReply:void 0}})),Lo=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(e,i,a){if(e.push(`CLIENT`,`TRACKING`,i?`ON`:`OFF`),i){if(a?.REDIRECT&&e.push(`REDIRECT`,a.REDIRECT.toString()),t(a)){if(e.push(`BCAST`),a?.PREFIX)if(Array.isArray(a.PREFIX))for(let t of a.PREFIX)e.push(`PREFIX`,t);else e.push(`PREFIX`,a.PREFIX)}else n(a)?e.push(`OPTIN`):r(a)&&e.push(`OPTOUT`);a?.NOLOOP&&e.push(`NOLOOP`)}},transformReply:void 0};function t(e){return e?.BCAST===!0}function n(e){return e?.OPTIN===!0}function r(e){return e?.OPTOUT===!0}})),Ro=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(e){e.push(`CLIENT`,`TRACKINGINFO`)},transformReply:{2:e=>({flags:e[1],redirect:e[3],prefixes:e[5]}),3:void 0}}})),zo=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(e){e.push(`CLIENT`,`UNPAUSE`)},transformReply:void 0}})),Bo=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(e,t){e.push(`CLUSTER`,`ADDSLOTS`),e.pushVariadicNumber(t)},transformReply:void 0}})),Vo=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=Q();e.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(e,n){e.push(`CLUSTER`,`ADDSLOTSRANGE`),(0,t.parseSlotRangesArguments)(e,n)},transformReply:void 0}})),Ho=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(e){e.push(`CLUSTER`,`BUMPEPOCH`)},transformReply:void 0}})),Uo=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(e,t){e.push(`CLUSTER`,`COUNT-FAILURE-REPORTS`,t)},transformReply:void 0}})),Wo=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(e,t){e.push(`CLUSTER`,`COUNTKEYSINSLOT`,t.toString())},transformReply:void 0}})),Go=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(e,t){e.push(`CLUSTER`,`DELSLOTS`),e.pushVariadicNumber(t)},transformReply:void 0}})),Ko=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=Q();e.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(e,n){e.push(`CLUSTER`,`DELSLOTSRANGE`),(0,t.parseSlotRangesArguments)(e,n)},transformReply:void 0}})),qo=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.FAILOVER_MODES=void 0,e.FAILOVER_MODES={FORCE:`FORCE`,TAKEOVER:`TAKEOVER`},e.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(e,t){e.push(`CLUSTER`,`FAILOVER`),t?.mode&&e.push(t.mode)},transformReply:void 0}})),Jo=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(e){e.push(`CLUSTER`,`FLUSHSLOTS`)},transformReply:void 0}})),Yo=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(e,t){e.push(`CLUSTER`,`FORGET`,t)},transformReply:void 0}})),Xo=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(e,t,n){e.push(`CLUSTER`,`GETKEYSINSLOT`,t.toString(),n.toString())},transformReply:void 0}})),Zo=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(e){e.push(`CLUSTER`,`INFO`)},transformReply:void 0}})),Qo=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(e,t){e.push(`CLUSTER`,`KEYSLOT`,t)},transformReply:void 0}})),$o=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(e){e.push(`CLUSTER`,`LINKS`)},transformReply:{2:e=>e.map(e=>{let t=e;return{direction:t[1],node:t[3],"create-time":t[5],events:t[7],"send-buffer-allocated":t[9],"send-buffer-used":t[11]}}),3:void 0}}})),es=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(e,t,n){e.push(`CLUSTER`,`MEET`,t,n.toString())},transformReply:void 0}})),ts=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(e){e.push(`CLUSTER`,`MYID`)},transformReply:void 0}})),ns=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(e){e.push(`CLUSTER`,`MYSHARDID`)},transformReply:void 0}})),rs=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(e){e.push(`CLUSTER`,`NODES`)},transformReply:void 0}})),is=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(e,t){e.push(`CLUSTER`,`REPLICAS`,t)},transformReply:void 0}})),as=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(e,t){e.push(`CLUSTER`,`REPLICATE`,t)},transformReply:void 0}})),os=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(e,t){e.push(`CLUSTER`,`RESET`),t?.mode&&e.push(t.mode)},transformReply:void 0}})),ss=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(e){e.push(`CLUSTER`,`SAVECONFIG`)},transformReply:void 0}})),cs=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(e,t){e.push(`CLUSTER`,`SET-CONFIG-EPOCH`,t.toString())},transformReply:void 0}})),ls=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.CLUSTER_SLOT_STATES=void 0,e.CLUSTER_SLOT_STATES={IMPORTING:`IMPORTING`,MIGRATING:`MIGRATING`,STABLE:`STABLE`,NODE:`NODE`},e.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(e,t,n,r){e.push(`CLUSTER`,`SETSLOT`,t.toString(),n),r&&e.push(r)},transformReply:void 0}})),us=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(e){e.push(`CLUSTER`,`SLOTS`)},transformReply(e){return e.map(([e,n,r,...i])=>({from:e,to:n,master:t(r),replicas:i.map(t)}))}};function t(e){let[t,n,r]=e;return{host:t,port:n,id:r}}})),ds=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(e){e.push(`COMMAND`,`COUNT`)},transformReply:void 0}})),fs=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(e,t){e.push(`COMMAND`,`GETKEYS`),e.push(...t)},transformReply:void 0}})),ps=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(e,t){e.push(`COMMAND`,`GETKEYSANDFLAGS`),e.push(...t)},transformReply(e){return e.map(e=>{let[t,n]=e;return{key:t,flags:n}})}}})),ms=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=Q();e.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(e,t){e.push(`COMMAND`,`INFO`,...t)},transformReply(e){return e.map(e=>e?(0,t.transformCommandReply)(e):null)}}})),hs=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.COMMAND_LIST_FILTER_BY=void 0,e.COMMAND_LIST_FILTER_BY={MODULE:`MODULE`,ACLCAT:`ACLCAT`,PATTERN:`PATTERN`},e.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(e,t){e.push(`COMMAND`,`LIST`),t?.FILTERBY&&e.push(`FILTERBY`,t.FILTERBY.type,t.FILTERBY.value)},transformReply:void 0}})),gs=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=Q();e.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(e){e.push(`COMMAND`)},transformReply(e){return e.map(t.transformCommandReply)}}})),_s=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=Q();e.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(e,t){e.push(`CONFIG`,`GET`),e.pushVariadic(t)},transformReply:{2:t.transformTuplesReply,3:void 0}}})),vs=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(e){e.push(`CONFIG`,`RESETSTAT`)},transformReply:void 0}})),ys=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(e){e.push(`CONFIG`,`REWRITE`)},transformReply:void 0}})),bs=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(e,...[t,n]){if(e.push(`CONFIG`,`SET`),typeof t==`string`||t instanceof Buffer)e.push(t,n);else for(let[n,r]of Object.entries(t))e.push(n,r)},transformReply:void 0}})),xs=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={IS_READ_ONLY:!1,parseCommand(e,t,n,r){e.push(`COPY`),e.pushKeys([t,n]),r?.DB&&e.push(`DB`,r.DB.toString()),r?.REPLACE&&e.push(`REPLACE`)},transformReply:void 0}})),Ss=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(e){e.push(`DBSIZE`)},transformReply:void 0}})),Cs=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={parseCommand(e,t){e.push(`DECR`),e.pushKey(t)},transformReply:void 0}})),ws=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={parseCommand(e,t,n){e.push(`DECRBY`),e.pushKey(t),e.push(n.toString())},transformReply:void 0}})),Ts=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={IS_READ_ONLY:!1,parseCommand(e,t){e.push(`DEL`),e.pushKeys(t)},transformReply:void 0}})),Es=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={IS_READ_ONLY:!0,parseCommand(e,t){e.push(`DUMP`),e.pushKey(t)},transformReply:void 0}})),Ds=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(e,t){e.push(`ECHO`,t)},transformReply:void 0}})),Os=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.parseEvalArguments=void 0;function t(e,t,n){e.push(t),n?.keys?e.pushKeysLength(n.keys):e.push(`0`),n?.arguments&&e.push(...n.arguments)}e.parseEvalArguments=t,e.default={IS_READ_ONLY:!1,parseCommand(...e){e[0].push(`EVAL`),t(...e)},transformReply:void 0}})),ks=c((e=>{var t=e&&e.__createBinding||(Object.create?(function(e,t,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(t,n);(!i||(`get`in i?!t.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,i)}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]})),n=e&&e.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,`default`,{enumerable:!0,value:t})}):function(e,t){e.default=t}),r=e&&e.__importStar||function(e){if(e&&e.__esModule)return e;var r={};if(e!=null)for(var i in e)i!==`default`&&Object.prototype.hasOwnProperty.call(e,i)&&t(r,e,i);return n(r,e),r};Object.defineProperty(e,`__esModule`,{value:!0});let i=r(Os());e.default={IS_READ_ONLY:!0,parseCommand(...e){e[0].push(`EVAL_RO`),(0,i.parseEvalArguments)(...e)},transformReply:i.default.transformReply}})),As=c((e=>{var t=e&&e.__createBinding||(Object.create?(function(e,t,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(t,n);(!i||(`get`in i?!t.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,i)}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]})),n=e&&e.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,`default`,{enumerable:!0,value:t})}):function(e,t){e.default=t}),r=e&&e.__importStar||function(e){if(e&&e.__esModule)return e;var r={};if(e!=null)for(var i in e)i!==`default`&&Object.prototype.hasOwnProperty.call(e,i)&&t(r,e,i);return n(r,e),r};Object.defineProperty(e,`__esModule`,{value:!0});let i=r(Os());e.default={IS_READ_ONLY:!0,parseCommand(...e){e[0].push(`EVALSHA_RO`),(0,i.parseEvalArguments)(...e)},transformReply:i.default.transformReply}})),js=c((e=>{var t=e&&e.__createBinding||(Object.create?(function(e,t,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(t,n);(!i||(`get`in i?!t.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,i)}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]})),n=e&&e.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,`default`,{enumerable:!0,value:t})}):function(e,t){e.default=t}),r=e&&e.__importStar||function(e){if(e&&e.__esModule)return e;var r={};if(e!=null)for(var i in e)i!==`default`&&Object.prototype.hasOwnProperty.call(e,i)&&t(r,e,i);return n(r,e),r};Object.defineProperty(e,`__esModule`,{value:!0});let i=r(Os());e.default={IS_READ_ONLY:!1,parseCommand(...e){e[0].push(`EVALSHA`),(0,i.parseEvalArguments)(...e)},transformReply:i.default.transformReply}})),Ms=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={IS_READ_ONLY:!1,parseCommand(e,n,r,i){if(e.push(`GEOADD`),e.pushKey(n),i?.condition?e.push(i.condition):i?.NX?e.push(`NX`):i?.XX&&e.push(`XX`),i?.CH&&e.push(`CH`),Array.isArray(r))for(let n of r)t(e,n);else t(e,r)},transformReply:void 0};function t(e,{longitude:t,latitude:n,member:r}){e.push(t.toString(),n.toString(),r)}})),Ns=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={CACHEABLE:!0,IS_READ_ONLY:!0,parseCommand(e,t,n,r,i){e.push(`GEODIST`),e.pushKey(t),e.push(n,r),i&&e.push(i)},transformReply(e){return e===null?null:Number(e)}}})),Ps=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={CACHEABLE:!0,IS_READ_ONLY:!0,parseCommand(e,t,n){e.push(`GEOHASH`),e.pushKey(t),e.pushVariadic(n)},transformReply:void 0}})),Fs=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={CACHEABLE:!0,IS_READ_ONLY:!0,parseCommand(e,t,n){e.push(`GEOPOS`),e.pushKey(t),e.pushVariadic(n)},transformReply(e){return e.map(e=>{let t=e;return t===null?null:{longitude:t[0],latitude:t[1]}})}}})),Is=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.parseGeoSearchOptions=e.parseGeoSearchArguments=void 0;function t(e,t,r,i,a){e.pushKey(t),typeof r==`string`||r instanceof Buffer?e.push(`FROMMEMBER`,r):e.push(`FROMLONLAT`,r.longitude.toString(),r.latitude.toString()),`radius`in i?e.push(`BYRADIUS`,i.radius.toString(),i.unit):e.push(`BYBOX`,i.width.toString(),i.height.toString(),i.unit),n(e,a)}e.parseGeoSearchArguments=t;function n(e,t){t?.SORT&&e.push(t.SORT),t?.COUNT&&(typeof t.COUNT==`number`?e.push(`COUNT`,t.COUNT.toString()):(e.push(`COUNT`,t.COUNT.value.toString()),t.COUNT.ANY&&e.push(`ANY`)))}e.parseGeoSearchOptions=n,e.default={IS_READ_ONLY:!0,parseCommand(e,n,r,i,a){e.push(`GEOSEARCH`),t(e,n,r,i,a)},transformReply:void 0}})),Ls=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.parseGeoRadiusArguments=void 0;let t=Is();function n(e,n,r,i,a,o){e.pushKey(n),e.push(r.longitude.toString(),r.latitude.toString(),i.toString(),a),(0,t.parseGeoSearchOptions)(e,o)}e.parseGeoRadiusArguments=n,e.default={IS_READ_ONLY:!1,parseCommand(...e){return e[0].push(`GEORADIUS`),n(...e)},transformReply:void 0}})),Rs=c((e=>{var t=e&&e.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e,`__esModule`,{value:!0}),e.GEO_REPLY_WITH=void 0;let n=t(Is());e.GEO_REPLY_WITH={DISTANCE:`WITHDIST`,HASH:`WITHHASH`,COORDINATES:`WITHCOORD`},e.default={IS_READ_ONLY:n.default.IS_READ_ONLY,parseCommand(e,t,r,i,a,o){n.default.parseCommand(e,t,r,i,o),e.push(...a),e.preserve=a},transformReply(t,n){let r=new Set(n),i=0,a=r.has(e.GEO_REPLY_WITH.DISTANCE)&&++i,o=r.has(e.GEO_REPLY_WITH.HASH)&&++i,s=r.has(e.GEO_REPLY_WITH.COORDINATES)&&++i;return t.map(e=>{let t=e,n={member:t[0]};if(a&&(n.distance=t[a]),o&&(n.hash=t[o]),s){let[e,r]=t[s];n.coordinates={longitude:e,latitude:r}}return n})}}})),zs=c((e=>{var t=e&&e.__createBinding||(Object.create?(function(e,t,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(t,n);(!i||(`get`in i?!t.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,i)}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]})),n=e&&e.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,`default`,{enumerable:!0,value:t})}):function(e,t){e.default=t}),r=e&&e.__importStar||function(e){if(e&&e.__esModule)return e;var r={};if(e!=null)for(var i in e)i!==`default`&&Object.prototype.hasOwnProperty.call(e,i)&&t(r,e,i);return n(r,e),r},i=e&&e.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e,`__esModule`,{value:!0}),e.parseGeoRadiusWithArguments=void 0;let a=r(Ls()),o=i(Rs());function s(e,t,n,r,i,o,s){(0,a.parseGeoRadiusArguments)(e,t,n,r,i,s),e.pushVariadic(o),e.preserve=o}e.parseGeoRadiusWithArguments=s,e.default={IS_READ_ONLY:a.default.IS_READ_ONLY,parseCommand(e,t,n,r,i,a,o){e.push(`GEORADIUS`),s(e,t,n,r,i,a,o)},transformReply:o.default.transformReply}})),Bs=c((e=>{var t=e&&e.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e,`__esModule`,{value:!0});let n=zs();e.default={CACHEABLE:!0,IS_READ_ONLY:!0,parseCommand(...e){e[0].push(`GEORADIUS_RO`),(0,n.parseGeoRadiusWithArguments)(...e)},transformReply:t(zs()).default.transformReply}})),Vs=c((e=>{var t=e&&e.__createBinding||(Object.create?(function(e,t,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(t,n);(!i||(`get`in i?!t.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,i)}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]})),n=e&&e.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,`default`,{enumerable:!0,value:t})}):function(e,t){e.default=t}),r=e&&e.__importStar||function(e){if(e&&e.__esModule)return e;var r={};if(e!=null)for(var i in e)i!==`default`&&Object.prototype.hasOwnProperty.call(e,i)&&t(r,e,i);return n(r,e),r};Object.defineProperty(e,`__esModule`,{value:!0});let i=r(Ls());e.default={CACHEABLE:!0,IS_READ_ONLY:!0,parseCommand(...e){e[0].push(`GEORADIUS_RO`),(0,i.parseGeoRadiusArguments)(...e)},transformReply:i.default.transformReply}})),Hs=c((e=>{var t=e&&e.__createBinding||(Object.create?(function(e,t,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(t,n);(!i||(`get`in i?!t.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,i)}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]})),n=e&&e.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,`default`,{enumerable:!0,value:t})}):function(e,t){e.default=t}),r=e&&e.__importStar||function(e){if(e&&e.__esModule)return e;var r={};if(e!=null)for(var i in e)i!==`default`&&Object.prototype.hasOwnProperty.call(e,i)&&t(r,e,i);return n(r,e),r};Object.defineProperty(e,`__esModule`,{value:!0});let i=r(Ls());e.default={IS_READ_ONLY:i.default.IS_READ_ONLY,parseCommand(e,t,n,r,a,o,s){e.push(`GEORADIUS`),(0,i.parseGeoRadiusArguments)(e,t,n,r,a,s),s?.STOREDIST?(e.push(`STOREDIST`),e.pushKey(o)):(e.push(`STORE`),e.pushKey(o))},transformReply:void 0}})),Us=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.parseGeoRadiusByMemberArguments=void 0;let t=Is();function n(e,n,r,i,a,o){e.pushKey(n),e.push(r,i.toString(),a),(0,t.parseGeoSearchOptions)(e,o)}e.parseGeoRadiusByMemberArguments=n,e.default={IS_READ_ONLY:!1,parseCommand(e,t,r,i,a,o){e.push(`GEORADIUSBYMEMBER`),n(e,t,r,i,a,o)},transformReply:void 0}})),Ws=c((e=>{var t=e&&e.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e,`__esModule`,{value:!0}),e.parseGeoRadiusByMemberWithArguments=void 0;let n=t(Us()),r=Is(),i=t(Rs());function a(e,t,n,i,a,o,s){e.pushKey(t),e.push(n,i.toString(),a),(0,r.parseGeoSearchOptions)(e,s),e.push(...o),e.preserve=o}e.parseGeoRadiusByMemberWithArguments=a,e.default={IS_READ_ONLY:n.default.IS_READ_ONLY,parseCommand(e,t,n,r,i,o,s){e.push(`GEORADIUSBYMEMBER`),a(e,t,n,r,i,o,s)},transformReply:i.default.transformReply}})),Gs=c((e=>{var t=e&&e.__createBinding||(Object.create?(function(e,t,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(t,n);(!i||(`get`in i?!t.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,i)}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]})),n=e&&e.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,`default`,{enumerable:!0,value:t})}):function(e,t){e.default=t}),r=e&&e.__importStar||function(e){if(e&&e.__esModule)return e;var r={};if(e!=null)for(var i in e)i!==`default`&&Object.prototype.hasOwnProperty.call(e,i)&&t(r,e,i);return n(r,e),r};Object.defineProperty(e,`__esModule`,{value:!0});let i=r(Ws());e.default={CACHEABLE:!0,IS_READ_ONLY:!0,parseCommand(...e){e[0].push(`GEORADIUSBYMEMBER_RO`),(0,i.parseGeoRadiusByMemberWithArguments)(...e)},transformReply:i.default.transformReply}})),Ks=c((e=>{var t=e&&e.__createBinding||(Object.create?(function(e,t,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(t,n);(!i||(`get`in i?!t.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,i)}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]})),n=e&&e.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,`default`,{enumerable:!0,value:t})}):function(e,t){e.default=t}),r=e&&e.__importStar||function(e){if(e&&e.__esModule)return e;var r={};if(e!=null)for(var i in e)i!==`default`&&Object.prototype.hasOwnProperty.call(e,i)&&t(r,e,i);return n(r,e),r};Object.defineProperty(e,`__esModule`,{value:!0});let i=r(Us());e.default={CACHEABLE:!0,IS_READ_ONLY:!0,parseCommand(...e){e[0].push(`GEORADIUSBYMEMBER_RO`),(0,i.parseGeoRadiusByMemberArguments)(...e)},transformReply:i.default.transformReply}})),qs=c((e=>{var t=e&&e.__createBinding||(Object.create?(function(e,t,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(t,n);(!i||(`get`in i?!t.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,i)}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]})),n=e&&e.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,`default`,{enumerable:!0,value:t})}):function(e,t){e.default=t}),r=e&&e.__importStar||function(e){if(e&&e.__esModule)return e;var r={};if(e!=null)for(var i in e)i!==`default`&&Object.prototype.hasOwnProperty.call(e,i)&&t(r,e,i);return n(r,e),r};Object.defineProperty(e,`__esModule`,{value:!0});let i=r(Us());e.default={IS_READ_ONLY:i.default.IS_READ_ONLY,parseCommand(e,t,n,r,a,o,s){e.push(`GEORADIUSBYMEMBER`),(0,i.parseGeoRadiusByMemberArguments)(e,t,n,r,a,s),s?.STOREDIST?(e.push(`STOREDIST`),e.pushKey(o)):(e.push(`STORE`),e.pushKey(o))},transformReply:void 0}})),Js=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=Is();e.default={IS_READ_ONLY:!1,parseCommand(e,n,r,i,a,o){e.push(`GEOSEARCHSTORE`),n!==void 0&&e.pushKey(n),(0,t.parseGeoSearchArguments)(e,r,i,a,o),o?.STOREDIST&&e.push(`STOREDIST`)},transformReply:void 0}})),Ys=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={CACHEABLE:!0,IS_READ_ONLY:!0,parseCommand(e,t){e.push(`GET`),e.pushKey(t)},transformReply:void 0}})),Xs=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={CACHEABLE:!0,IS_READ_ONLY:!0,parseCommand(e,t,n){e.push(`GETBIT`),e.pushKey(t),e.push(n.toString())},transformReply:void 0}})),Zs=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={IS_READ_ONLY:!0,parseCommand(e,t){e.push(`GETDEL`),e.pushKey(t)},transformReply:void 0}})),Qs=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=Q();e.default={IS_READ_ONLY:!0,parseCommand(e,n,r){if(e.push(`GETEX`),e.pushKey(n),`type`in r)switch(r.type){case`EX`:case`PX`:e.push(r.type,r.value.toString());break;case`EXAT`:case`PXAT`:e.push(r.type,(0,t.transformEXAT)(r.value));break;case`PERSIST`:e.push(`PERSIST`);break}else `EX`in r?e.push(`EX`,r.EX.toString()):`PX`in r?e.push(`PX`,r.PX.toString()):`EXAT`in r?e.push(`EXAT`,(0,t.transformEXAT)(r.EXAT)):`PXAT`in r?e.push(`PXAT`,(0,t.transformPXAT)(r.PXAT)):e.push(`PERSIST`)},transformReply:void 0}})),$s=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={CACHEABLE:!0,IS_READ_ONLY:!0,parseCommand(e,t,n,r){e.push(`GETRANGE`),e.pushKey(t),e.push(n.toString(),r.toString())},transformReply:void 0}})),ec=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={IS_READ_ONLY:!0,parseCommand(e,t,n){e.push(`GETSET`),e.pushKey(t),e.push(n)},transformReply:void 0}})),tc=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={CACHEABLE:!0,IS_READ_ONLY:!0,parseCommand(e,t){e.push(`EXISTS`),e.pushKeys(t)},transformReply:void 0}})),nc=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={parseCommand(e,t,n,r){e.push(`EXPIRE`),e.pushKey(t),e.push(n.toString()),r&&e.push(r)},transformReply:void 0}})),rc=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=Q();e.default={parseCommand(e,n,r,i){e.push(`EXPIREAT`),e.pushKey(n),e.push((0,t.transformEXAT)(r)),i&&e.push(i)},transformReply:void 0}})),ic=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={IS_READ_ONLY:!0,parseCommand(e,t){e.push(`EXPIRETIME`),e.pushKey(t)},transformReply:void 0}})),ac=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.REDIS_FLUSH_MODES=void 0,e.REDIS_FLUSH_MODES={ASYNC:`ASYNC`,SYNC:`SYNC`},e.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!1,parseCommand(e,t){e.push(`FLUSHALL`),t&&e.push(t)},transformReply:void 0}})),oc=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!1,parseCommand(e,t){e.push(`FLUSHDB`),t&&e.push(t)},transformReply:void 0}})),sc=c((e=>{var t=e&&e.__createBinding||(Object.create?(function(e,t,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(t,n);(!i||(`get`in i?!t.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,i)}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]})),n=e&&e.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,`default`,{enumerable:!0,value:t})}):function(e,t){e.default=t}),r=e&&e.__importStar||function(e){if(e&&e.__esModule)return e;var r={};if(e!=null)for(var i in e)i!==`default`&&Object.prototype.hasOwnProperty.call(e,i)&&t(r,e,i);return n(r,e),r};Object.defineProperty(e,`__esModule`,{value:!0});let i=r(Os());e.default={IS_READ_ONLY:!1,parseCommand(...e){e[0].push(`FCALL`),(0,i.parseEvalArguments)(...e)},transformReply:i.default.transformReply}})),cc=c((e=>{var t=e&&e.__createBinding||(Object.create?(function(e,t,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(t,n);(!i||(`get`in i?!t.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,i)}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]})),n=e&&e.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,`default`,{enumerable:!0,value:t})}):function(e,t){e.default=t}),r=e&&e.__importStar||function(e){if(e&&e.__esModule)return e;var r={};if(e!=null)for(var i in e)i!==`default`&&Object.prototype.hasOwnProperty.call(e,i)&&t(r,e,i);return n(r,e),r};Object.defineProperty(e,`__esModule`,{value:!0});let i=r(Os());e.default={IS_READ_ONLY:!1,parseCommand(...e){e[0].push(`FCALL_RO`),(0,i.parseEvalArguments)(...e)},transformReply:i.default.transformReply}})),lc=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!1,parseCommand(e,t){e.push(`FUNCTION`,`DELETE`,t)},transformReply:void 0}})),uc=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(e){e.push(`FUNCTION`,`DUMP`)},transformReply:void 0}})),dc=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!1,parseCommand(e,t){e.push(`FUNCTION`,`FLUSH`),t&&e.push(t)},transformReply:void 0}})),fc=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(e){e.push(`FUNCTION`,`KILL`)},transformReply:void 0}})),pc=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!1,parseCommand(e,t){e.push(`FUNCTION`,`LIST`),t?.LIBRARYNAME&&e.push(`LIBRARYNAME`,t.LIBRARYNAME)},transformReply:{2:e=>e.map(e=>{let t=e;return{library_name:t[1],engine:t[3],functions:t[5].map(e=>{let t=e;return{name:t[1],description:t[3],flags:t[5]}})}}),3:void 0}}})),mc=c((e=>{var t=e&&e.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e,`__esModule`,{value:!0});let n=t(pc());e.default={NOT_KEYED_COMMAND:n.default.NOT_KEYED_COMMAND,IS_READ_ONLY:n.default.IS_READ_ONLY,parseCommand(...e){n.default.parseCommand(...e),e[0].push(`WITHCODE`)},transformReply:{2:e=>e.map(e=>{let t=e;return{library_name:t[1],engine:t[3],functions:t[5].map(e=>{let t=e;return{name:t[1],description:t[3],flags:t[5]}}),library_code:t[7]}}),3:void 0}}})),hc=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!1,parseCommand(e,t,n){e.push(`FUNCTION`,`LOAD`),n?.REPLACE&&e.push(`REPLACE`),e.push(t)},transformReply:void 0}})),gc=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!1,parseCommand(e,t,n){e.push(`FUNCTION`,`RESTORE`,t),n?.mode&&e.push(n.mode)},transformReply:void 0}})),_c=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=Q();e.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(e){e.push(`FUNCTION`,`STATS`)},transformReply:{2:e=>({running_script:n(e[1]),engines:r(e[3])}),3:void 0}};function n(e){if((0,t.isNullReply)(e))return null;let n=e;return{name:n[1],command:n[3],duration_ms:n[5]}}function r(e){let t=e,n=Object.create(null);for(let e=0;e<t.length;e++){let r=t[e],i=t[++e];n[r.toString()]={libraries_count:i[1],functions_count:i[3]}}return n}})),vc=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={parseCommand(e,t,n){e.push(`HDEL`),e.pushKey(t),e.pushVariadic(n)},transformReply:void 0}})),yc=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={parseCommand(e,t,n){e.push(`HELLO`),t&&(e.push(t.toString()),n?.AUTH&&e.push(`AUTH`,n.AUTH.username,n.AUTH.password),n?.SETNAME&&e.push(`SETNAME`,n.SETNAME))},transformReply:{2:e=>({server:e[1],version:e[3],proto:e[5],id:e[7],mode:e[9],role:e[11],modules:e[13]}),3:void 0}}})),bc=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={CACHEABLE:!0,IS_READ_ONLY:!0,parseCommand(e,t,n){e.push(`HEXISTS`),e.pushKey(t),e.push(n)},transformReply:void 0}})),xc=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.HASH_EXPIRATION=void 0,e.HASH_EXPIRATION={FIELD_NOT_EXISTS:-2,CONDITION_NOT_MET:0,UPDATED:1,DELETED:2},e.default={parseCommand(e,t,n,r,i){e.push(`HEXPIRE`),e.pushKey(t),e.push(r.toString()),i&&e.push(i),e.push(`FIELDS`),e.pushVariadicWithLength(n)},transformReply:void 0}})),Sc=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=Q();e.default={parseCommand(e,n,r,i,a){e.push(`HEXPIREAT`),e.pushKey(n),e.push((0,t.transformEXAT)(i)),a&&e.push(a),e.push(`FIELDS`),e.pushVariadicWithLength(r)},transformReply:void 0}})),Cc=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.HASH_EXPIRATION_TIME=void 0,e.HASH_EXPIRATION_TIME={FIELD_NOT_EXISTS:-2,NO_EXPIRATION:-1},e.default={IS_READ_ONLY:!0,parseCommand(e,t,n){e.push(`HEXPIRETIME`),e.pushKey(t),e.push(`FIELDS`),e.pushVariadicWithLength(n)},transformReply:void 0}})),wc=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={CACHEABLE:!0,IS_READ_ONLY:!0,parseCommand(e,t,n){e.push(`HGET`),e.pushKey(t),e.push(n)},transformReply:void 0}})),Tc=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=Q();e.default={CACHEABLE:!0,IS_READ_ONLY:!0,parseCommand(e,t){e.push(`HGETALL`),e.pushKey(t)},TRANSFORM_LEGACY_REPLY:!0,transformReply:{2:t.transformTuplesReply,3:void 0}}})),Ec=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={parseCommand(e,t,n){e.push(`HGETDEL`),e.pushKey(t),e.push(`FIELDS`),e.pushVariadicWithLength(n)},transformReply:void 0}})),Dc=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={parseCommand(e,t,n,r){e.push(`HGETEX`),e.pushKey(t),r?.expiration&&(typeof r.expiration==`string`?e.push(r.expiration):r.expiration.type===`PERSIST`?e.push(`PERSIST`):e.push(r.expiration.type,r.expiration.value.toString())),e.push(`FIELDS`),e.pushVariadicWithLength(n)},transformReply:void 0}})),Oc=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={parseCommand(e,t,n,r){e.push(`HINCRBY`),e.pushKey(t),e.push(n,r.toString())},transformReply:void 0}})),kc=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={parseCommand(e,t,n,r){e.push(`HINCRBYFLOAT`),e.pushKey(t),e.push(n,r.toString())},transformReply:void 0}})),Ac=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={CACHEABLE:!0,IS_READ_ONLY:!0,parseCommand(e,t){e.push(`HKEYS`),e.pushKey(t)},transformReply:void 0}})),jc=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={CACHEABLE:!0,IS_READ_ONLY:!0,parseCommand(e,t){e.push(`HLEN`),e.pushKey(t)},transformReply:void 0}})),Mc=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={CACHEABLE:!0,IS_READ_ONLY:!0,parseCommand(e,t,n){e.push(`HMGET`),e.pushKey(t),e.pushVariadic(n)},transformReply:void 0}})),Nc=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={parseCommand(e,t,n){e.push(`HPERSIST`),e.pushKey(t),e.push(`FIELDS`),e.pushVariadicWithLength(n)},transformReply:void 0}})),Pc=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={parseCommand(e,t,n,r,i){e.push(`HPEXPIRE`),e.pushKey(t),e.push(r.toString()),i&&e.push(i),e.push(`FIELDS`),e.pushVariadicWithLength(n)},transformReply:void 0}})),Fc=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=Q();e.default={IS_READ_ONLY:!0,parseCommand(e,n,r,i,a){e.push(`HPEXPIREAT`),e.pushKey(n),e.push((0,t.transformPXAT)(i)),a&&e.push(a),e.push(`FIELDS`),e.pushVariadicWithLength(r)},transformReply:void 0}})),Ic=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={IS_READ_ONLY:!0,parseCommand(e,t,n){e.push(`HPEXPIRETIME`),e.pushKey(t),e.push(`FIELDS`),e.pushVariadicWithLength(n)},transformReply:void 0}})),Lc=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={IS_READ_ONLY:!0,parseCommand(e,t,n){e.push(`HPTTL`),e.pushKey(t),e.push(`FIELDS`),e.pushVariadicWithLength(n)},transformReply:void 0}})),Rc=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={IS_READ_ONLY:!0,parseCommand(e,t,n){e.push(`HRANDFIELD`),e.pushKey(t),e.push(n.toString(),`WITHVALUES`)},transformReply:{2:e=>{let t=[],n=0;for(;n<e.length;)t.push({field:e[n++],value:e[n++]});return t},3:e=>e.map(e=>{let[t,n]=e;return{field:t,value:n}})}}})),zc=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={IS_READ_ONLY:!0,parseCommand(e,t,n){e.push(`HRANDFIELD`),e.pushKey(t),e.push(n.toString())},transformReply:void 0}})),Bc=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={IS_READ_ONLY:!0,parseCommand(e,t){e.push(`HRANDFIELD`),e.pushKey(t)},transformReply:void 0}})),Vc=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.pushScanArguments=e.parseScanArguments=void 0;function t(e,t,n){e.push(t),n?.MATCH&&e.push(`MATCH`,n.MATCH),n?.COUNT&&e.push(`COUNT`,n.COUNT.toString())}e.parseScanArguments=t;function n(e,t,n){return e.push(t.toString()),n?.MATCH&&e.push(`MATCH`,n.MATCH),n?.COUNT&&e.push(`COUNT`,n.COUNT.toString()),e}e.pushScanArguments=n,e.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(e,n,r){e.push(`SCAN`),t(e,n,r),r?.TYPE&&e.push(`TYPE`,r.TYPE)},transformReply([e,t]){return{cursor:e,keys:t}}}})),Hc=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=Vc();e.default={IS_READ_ONLY:!0,parseCommand(e,n,r,i){e.push(`HSCAN`),e.pushKey(n),(0,t.parseScanArguments)(e,r,i)},transformReply([e,t]){let n=[],r=0;for(;r<t.length;)n.push({field:t[r++],value:t[r++]});return{cursor:e,entries:n}}}})),Uc=c((e=>{var t=e&&e.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e,`__esModule`,{value:!0});let n=t(Hc());e.default={IS_READ_ONLY:!0,parseCommand(...e){let t=e[0];n.default.parseCommand(...e),t.push(`NOVALUES`)},transformReply([e,t]){return{cursor:e,fields:t}}}})),Wc=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={parseCommand(e,...[a,o,s]){e.push(`HSET`),e.pushKey(a),typeof o==`string`||typeof o==`number`||o instanceof Buffer?e.push(i(o),i(s)):o instanceof Map?t(e,o):Array.isArray(o)?n(e,o):r(e,o)},transformReply:void 0};function t(e,t){for(let[n,r]of t.entries())e.push(i(n),i(r))}function n(e,t){for(let r of t){if(Array.isArray(r)){n(e,r);continue}e.push(i(r))}}function r(e,t){for(let n of Object.keys(t))e.push(i(n),i(t[n]))}function i(e){return typeof e==`number`?e.toString():e}})),Gc=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=Z();e.default={parseCommand(e,t,i,o){e.push(`HSETEX`),e.pushKey(t),o?.mode&&e.push(o.mode),o?.expiration&&(typeof o.expiration==`string`?e.push(o.expiration):o.expiration.type===`KEEPTTL`?e.push(`KEEPTTL`):e.push(o.expiration.type,o.expiration.value.toString())),e.push(`FIELDS`),i instanceof Map?n(e,i):Array.isArray(i)?r(e,i):a(e,i)},transformReply:void 0};function n(e,t){e.push(t.size.toString());for(let[n,r]of t.entries())e.push(o(n),o(r))}function r(e,n){let r=new t.BasicCommandParser;if(i(r,n),r.redisArgs.length%2!=0)throw Error(`invalid number of arguments, expected key value ....[key value] pairs, got key without value`);e.push((r.redisArgs.length/2).toString()),e.push(...r.redisArgs)}function i(e,t){for(let n of t){if(Array.isArray(n)){i(e,n);continue}e.push(o(n))}}function a(e,t){let n=Object.keys(t).length;if(n==0)throw Error(`object without keys`);e.push(n.toString());for(let n of Object.keys(t))e.push(o(n),o(t[n]))}function o(e){return typeof e==`number`?e.toString():e}})),Kc=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={IS_READ_ONLY:!0,parseCommand(e,t,n,r){e.push(`HSETNX`),e.pushKey(t),e.push(n,r)},transformReply:void 0}})),qc=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={CACHEABLE:!0,IS_READ_ONLY:!0,parseCommand(e,t,n){e.push(`HSTRLEN`),e.pushKey(t),e.push(n)},transformReply:void 0}})),Jc=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={IS_READ_ONLY:!0,parseCommand(e,t,n){e.push(`HTTL`),e.pushKey(t),e.push(`FIELDS`),e.pushVariadicWithLength(n)},transformReply:void 0}})),Yc=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={CACHEABLE:!0,IS_READ_ONLY:!0,parseCommand(e,t){e.push(`HVALS`),e.pushKey(t)},transformReply:void 0}})),Xc=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={parseCommand(e,t){e.push(`INCR`),e.pushKey(t)},transformReply:void 0}})),Zc=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={parseCommand(e,t,n){e.push(`INCRBY`),e.pushKey(t),e.push(n.toString())},transformReply:void 0}})),Qc=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={parseCommand(e,t,n){e.push(`INCRBYFLOAT`),e.pushKey(t),e.push(n.toString())},transformReply:void 0}})),$c=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(e,t){e.push(`INFO`),t&&e.push(t)},transformReply:void 0}})),el=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(e,t){e.push(`KEYS`,t)},transformReply:void 0}})),tl=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(e){e.push(`LASTSAVE`)},transformReply:void 0}})),nl=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(e){e.push(`LATENCY`,`DOCTOR`)},transformReply:void 0}})),rl=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.LATENCY_EVENTS=void 0,e.LATENCY_EVENTS={ACTIVE_DEFRAG_CYCLE:`active-defrag-cycle`,AOF_FSYNC_ALWAYS:`aof-fsync-always`,AOF_STAT:`aof-stat`,AOF_REWRITE_DIFF_WRITE:`aof-rewrite-diff-write`,AOF_RENAME:`aof-rename`,AOF_WRITE:`aof-write`,AOF_WRITE_ACTIVE_CHILD:`aof-write-active-child`,AOF_WRITE_ALONE:`aof-write-alone`,AOF_WRITE_PENDING_FSYNC:`aof-write-pending-fsync`,COMMAND:`command`,EXPIRE_CYCLE:`expire-cycle`,EVICTION_CYCLE:`eviction-cycle`,EVICTION_DEL:`eviction-del`,FAST_COMMAND:`fast-command`,FORK:`fork`,RDB_UNLINK_TEMP_FILE:`rdb-unlink-temp-file`},e.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(e,t){e.push(`LATENCY`,`GRAPH`,t)},transformReply:void 0}})),il=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(e,t){e.push(`LATENCY`,`HISTORY`,t)},transformReply:void 0}})),al=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(e){e.push(`LATENCY`,`LATEST`)},transformReply:void 0}})),ol=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.LATENCY_EVENTS=void 0;let t=rl();Object.defineProperty(e,`LATENCY_EVENTS`,{enumerable:!0,get:function(){return t.LATENCY_EVENTS}}),e.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!1,parseCommand(e,...t){let n=[`LATENCY`,`RESET`];t.length>0&&n.push(...t),e.push(...n)},transformReply:void 0}})),sl=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={IS_READ_ONLY:!0,parseCommand(e,t,n){e.push(`LCS`),e.pushKeys([t,n])},transformReply:void 0}})),cl=c((e=>{var t=e&&e.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e,`__esModule`,{value:!0});let n=t(sl());e.default={IS_READ_ONLY:n.default.IS_READ_ONLY,parseCommand(e,t,r,i){n.default.parseCommand(e,t,r),e.push(`IDX`),i?.MINMATCHLEN&&e.push(`MINMATCHLEN`,i.MINMATCHLEN.toString())},transformReply:{2:e=>({matches:e[1],len:e[3]}),3:void 0}}})),ll=c((e=>{var t=e&&e.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e,`__esModule`,{value:!0});let n=t(cl());e.default={IS_READ_ONLY:n.default.IS_READ_ONLY,parseCommand(...e){let t=e[0];n.default.parseCommand(...e),t.push(`WITHMATCHLEN`)},transformReply:{2:e=>({matches:e[1],len:e[3]}),3:void 0}}})),ul=c((e=>{var t=e&&e.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e,`__esModule`,{value:!0});let n=t(sl());e.default={IS_READ_ONLY:n.default.IS_READ_ONLY,parseCommand(...e){let t=e[0];n.default.parseCommand(...e),t.push(`LEN`)},transformReply:void 0}})),dl=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={CACHEABLE:!0,IS_READ_ONLY:!0,parseCommand(e,t,n){e.push(`LINDEX`),e.pushKey(t),e.push(n.toString())},transformReply:void 0}})),fl=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={IS_READ_ONLY:!0,parseCommand(e,t,n,r,i){e.push(`LINSERT`),e.pushKey(t),e.push(n,r,i)},transformReply:void 0}})),pl=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={CACHEABLE:!0,IS_READ_ONLY:!0,parseCommand(e,t){e.push(`LLEN`),e.pushKey(t)},transformReply:void 0}})),ml=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={IS_READ_ONLY:!1,parseCommand(e,t,n,r,i){e.push(`LMOVE`),e.pushKeys([t,n]),e.push(r,i)},transformReply:void 0}})),hl=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(e,t,...n){e.push(`LOLWUT`),t&&(e.push(`VERSION`,t.toString()),e.pushVariadic(n.map(String)))},transformReply:void 0}})),gl=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={parseCommand(e,t){e.push(`LPOP`),e.pushKey(t)},transformReply:void 0}})),_l=c((e=>{var t=e&&e.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e,`__esModule`,{value:!0});let n=t(gl());e.default={IS_READ_ONLY:!1,parseCommand(e,t,r){n.default.parseCommand(e,t),e.push(r.toString())},transformReply:void 0}})),vl=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={CACHEABLE:!0,IS_READ_ONLY:!0,parseCommand(e,t,n,r){e.push(`LPOS`),e.pushKey(t),e.push(n),r?.RANK!==void 0&&e.push(`RANK`,r.RANK.toString()),r?.MAXLEN!==void 0&&e.push(`MAXLEN`,r.MAXLEN.toString())},transformReply:void 0}})),yl=c((e=>{var t=e&&e.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e,`__esModule`,{value:!0});let n=t(vl());e.default={CACHEABLE:n.default.CACHEABLE,IS_READ_ONLY:n.default.IS_READ_ONLY,parseCommand(e,t,r,i,a){n.default.parseCommand(e,t,r,a),e.push(`COUNT`,i.toString())},transformReply:void 0}})),bl=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={parseCommand(e,t,n){e.push(`LPUSH`),e.pushKey(t),e.pushVariadic(n)},transformReply:void 0}})),xl=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={parseCommand(e,t,n){e.push(`LPUSHX`),e.pushKey(t),e.pushVariadic(n)},transformReply:void 0}})),Sl=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={CACHEABLE:!0,IS_READ_ONLY:!0,parseCommand(e,t,n,r){e.push(`LRANGE`),e.pushKey(t),e.push(n.toString(),r.toString())},transformReply:void 0}})),Cl=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={IS_READ_ONLY:!0,parseCommand(e,t,n,r){e.push(`LREM`),e.pushKey(t),e.push(n.toString()),e.push(r)},transformReply:void 0}})),wl=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={IS_READ_ONLY:!0,parseCommand(e,t,n,r){e.push(`LSET`),e.pushKey(t),e.push(n.toString(),r)},transformReply:void 0}})),Tl=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={parseCommand(e,t,n,r){e.push(`LTRIM`),e.pushKey(t),e.push(n.toString(),r.toString())},transformReply:void 0}})),El=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(e){e.push(`MEMORY`,`DOCTOR`)},transformReply:void 0}})),Dl=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(e){e.push(`MEMORY`,`MALLOC-STATS`)},transformReply:void 0}})),Ol=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!1,parseCommand(e){e.push(`MEMORY`,`PURGE`)},transformReply:void 0}})),kl=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=Q();e.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(e){e.push(`MEMORY`,`STATS`)},transformReply:{2:(e,n,r)=>{let i={},a=0;for(;a<e.length;)switch(e[a].toString()){case`dataset.percentage`:case`peak.percentage`:case`allocator-fragmentation.ratio`:case`allocator-rss.ratio`:case`rss-overhead.ratio`:case`fragmentation`:i[e[a++]]=t.transformDoubleReply[2](e[a++],n,r);break;default:i[e[a++]]=e[a++]}return i},3:void 0}}})),Al=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={IS_READ_ONLY:!0,parseCommand(e,t,n){e.push(`MEMORY`,`USAGE`),e.pushKey(t),n?.SAMPLES&&e.push(`SAMPLES`,n.SAMPLES.toString())},transformReply:void 0}})),jl=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={CACHEABLE:!0,IS_READ_ONLY:!0,parseCommand(e,t){e.push(`MGET`),e.pushKeys(t)},transformReply:void 0}})),Ml=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={IS_READ_ONLY:!1,parseCommand(e,t,n,r,i,a,o){e.push(`MIGRATE`,t,n.toString());let s=Array.isArray(r);s?e.push(``):e.push(r),e.push(i.toString(),a.toString()),o?.COPY&&e.push(`COPY`),o?.REPLACE&&e.push(`REPLACE`),o?.AUTH&&(o.AUTH.username?e.push(`AUTH2`,o.AUTH.username,o.AUTH.password):e.push(`AUTH`,o.AUTH.password)),s&&(e.push(`KEYS`),e.pushVariadic(r))},transformReply:void 0}})),Nl=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(e){e.push(`MODULE`,`LIST`)},transformReply:{2:e=>e.map(e=>{let t=e;return{name:t[1],ver:t[3]}}),3:void 0}}})),Pl=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(e,t,n){e.push(`MODULE`,`LOAD`,t),n&&e.push(...n)},transformReply:void 0}})),Fl=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(e,t){e.push(`MODULE`,`UNLOAD`,t)},transformReply:void 0}})),Il=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={parseCommand(e,t,n){e.push(`MOVE`),e.pushKey(t),e.push(n.toString())},transformReply:void 0}})),Ll=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.parseMSetArguments=void 0;function t(e,t){if(Array.isArray(t)){if(t.length==0)throw Error(`empty toSet Argument`);if(Array.isArray(t[0]))for(let n of t)e.pushKey(n[0]),e.push(n[1]);else{let n=t;for(let t=0;t<n.length;t+=2)e.pushKey(n[t]),e.push(n[t+1])}}else for(let n of Object.entries(t))e.pushKey(n[0]),e.push(n[1])}e.parseMSetArguments=t,e.default={IS_READ_ONLY:!0,parseCommand(e,n){return e.push(`MSET`),t(e,n)},transformReply:void 0}})),Rl=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=Ll();e.default={IS_READ_ONLY:!0,parseCommand(e,n){return e.push(`MSETNX`),(0,t.parseMSetArguments)(e,n)},transformReply:void 0}})),zl=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={IS_READ_ONLY:!0,parseCommand(e,t){e.push(`OBJECT`,`ENCODING`),e.pushKey(t)},transformReply:void 0}})),Bl=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={IS_READ_ONLY:!0,parseCommand(e,t){e.push(`OBJECT`,`FREQ`),e.pushKey(t)},transformReply:void 0}})),Vl=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={IS_READ_ONLY:!0,parseCommand(e,t){e.push(`OBJECT`,`IDLETIME`),e.pushKey(t)},transformReply:void 0}})),Hl=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={IS_READ_ONLY:!0,parseCommand(e,t){e.push(`OBJECT`,`REFCOUNT`),e.pushKey(t)},transformReply:void 0}})),Ul=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={parseCommand(e,t){e.push(`PERSIST`),e.pushKey(t)},transformReply:void 0}})),Wl=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={IS_READ_ONLY:!0,parseCommand(e,t,n,r){e.push(`PEXPIRE`),e.pushKey(t),e.push(n.toString()),r&&e.push(r)},transformReply:void 0}})),Gl=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=Q();e.default={IS_READ_ONLY:!0,parseCommand(e,n,r,i){e.push(`PEXPIREAT`),e.pushKey(n),e.push((0,t.transformPXAT)(r)),i&&e.push(i)},transformReply:void 0}})),Kl=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={IS_READ_ONLY:!0,parseCommand(e,t){e.push(`PEXPIRETIME`),e.pushKey(t)},transformReply:void 0}})),ql=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={IS_READ_ONLY:!0,parseCommand(e,t,n){e.push(`PFADD`),e.pushKey(t),n&&e.pushVariadic(n)},transformReply:void 0}})),Jl=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={IS_READ_ONLY:!0,parseCommand(e,t){e.push(`PFCOUNT`),e.pushKeys(t)},transformReply:void 0}})),Yl=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={parseCommand(e,t,n){e.push(`PFMERGE`),e.pushKey(t),n&&e.pushKeys(n)},transformReply:void 0}})),Xl=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(e,t){e.push(`PING`),t&&e.push(t)},transformReply:void 0}})),Zl=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={parseCommand(e,t,n,r){e.push(`PSETEX`),e.pushKey(t),e.push(n.toString(),r)},transformReply:void 0}})),Ql=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={IS_READ_ONLY:!0,parseCommand(e,t){e.push(`PTTL`),e.pushKey(t)},transformReply:void 0}})),$l=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,IS_FORWARD_COMMAND:!0,parseCommand(e,t,n){e.push(`PUBLISH`,t,n)},transformReply:void 0}})),eu=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(e,t){e.push(`PUBSUB`,`CHANNELS`),t&&e.push(t)},transformReply:void 0}})),tu=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(e){e.push(`PUBSUB`,`NUMPAT`)},transformReply:void 0}})),nu=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(e,t){e.push(`PUBSUB`,`NUMSUB`),t&&e.pushVariadic(t)},transformReply(e){let t=Object.create(null),n=0;for(;n<e.length;)t[e[n++].toString()]=Number(e[n++]);return t}}})),ru=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={IS_READ_ONLY:!0,parseCommand(e,t){e.push(`PUBSUB`,`SHARDNUMSUB`),t&&e.pushVariadic(t)},transformReply(e){let t=Object.create(null);for(let n=0;n<e.length;n+=2)t[e[n].toString()]=e[n+1];return t}}})),iu=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(e,t){e.push(`PUBSUB`,`SHARDCHANNELS`),t&&e.push(t)},transformReply:void 0}})),au=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(e){e.push(`RANDOMKEY`)},transformReply:void 0}})),ou=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(e){e.push(`READONLY`)},transformReply:void 0}})),su=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={IS_READ_ONLY:!0,parseCommand(e,t,n){e.push(`RENAME`),e.pushKeys([t,n])},transformReply:void 0}})),cu=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={IS_READ_ONLY:!0,parseCommand(e,t,n){e.push(`RENAMENX`),e.pushKeys([t,n])},transformReply:void 0}})),lu=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(e,t,n){e.push(`REPLICAOF`,t,n.toString())},transformReply:void 0}})),uu=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(e){e.push(`RESTORE-ASKING`)},transformReply:void 0}})),du=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={IS_READ_ONLY:!1,parseCommand(e,t,n,r,i){e.push(`RESTORE`),e.pushKey(t),e.push(n.toString(),r),i?.REPLACE&&e.push(`REPLACE`),i?.ABSTTL&&e.push(`ABSTTL`),i?.IDLETIME&&e.push(`IDLETIME`,i.IDLETIME.toString()),i?.FREQ&&e.push(`FREQ`,i.FREQ.toString())},transformReply:void 0}})),fu=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(e){e.push(`ROLE`)},transformReply(e){switch(e[0]){case`master`:{let[t,n,r]=e;return{role:t,replicationOffest:n,replicas:r.map(e=>{let[t,n,r]=e;return{host:t,port:Number(n),replicationOffest:Number(r)}})}}case`slave`:{let[t,n,r,i,a]=e;return{role:t,master:{host:n,port:r},state:i,dataReceived:a}}case`sentinel`:{let[t,n]=e;return{role:t,masterNames:n}}}}}})),pu=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={parseCommand(e,t,n){e.push(`RPOP`),e.pushKey(t),e.push(n.toString())},transformReply:void 0}})),mu=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={parseCommand(e,t){e.push(`RPOP`),e.pushKey(t)},transformReply:void 0}})),hu=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={parseCommand(e,t,n){e.push(`RPOPLPUSH`),e.pushKeys([t,n])},transformReply:void 0}})),gu=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={parseCommand(e,t,n){e.push(`RPUSH`),e.pushKey(t),e.pushVariadic(n)},transformReply:void 0}})),_u=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={parseCommand(e,t,n){e.push(`RPUSHX`),e.pushKey(t),e.pushVariadic(n)},transformReply:void 0}})),vu=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={parseCommand(e,t,n){e.push(`SADD`),e.pushKey(t),e.pushVariadic(n)},transformReply:void 0}})),yu=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={CACHEABLE:!0,IS_READ_ONLY:!0,parseCommand(e,t){e.push(`SCARD`),e.pushKey(t)},transformReply:void 0}})),bu=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(e,t){e.push(`SCRIPT`,`DEBUG`,t)},transformReply:void 0}})),xu=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(e,t){e.push(`SCRIPT`,`EXISTS`),e.pushVariadic(t)},transformReply:void 0}})),Su=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(e,t){e.push(`SCRIPT`,`FLUSH`),t&&e.push(t)},transformReply:void 0}})),Cu=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(e){e.push(`SCRIPT`,`KILL`)},transformReply:void 0}})),wu=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(e,t){e.push(`SCRIPT`,`LOAD`,t)},transformReply:void 0}})),Tu=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={CACHEABLE:!0,IS_READ_ONLY:!0,parseCommand(e,t){e.push(`SDIFF`),e.pushKeys(t)},transformReply:void 0}})),Eu=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={parseCommand(e,t,n){e.push(`SDIFFSTORE`),e.pushKey(t),e.pushKeys(n)},transformReply:void 0}})),Du=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={parseCommand(e,t,n,r){e.push(`SET`),e.pushKey(t),e.push(typeof n==`number`?n.toString():n),r?.expiration?typeof r.expiration==`string`?e.push(r.expiration):r.expiration.type===`KEEPTTL`?e.push(`KEEPTTL`):e.push(r.expiration.type,r.expiration.value.toString()):r?.EX===void 0?r?.PX===void 0?r?.EXAT===void 0?r?.PXAT===void 0?r?.KEEPTTL&&e.push(`KEEPTTL`):e.push(`PXAT`,r.PXAT.toString()):e.push(`EXAT`,r.EXAT.toString()):e.push(`PX`,r.PX.toString()):e.push(`EX`,r.EX.toString()),r?.condition?e.push(r.condition):r?.NX?e.push(`NX`):r?.XX&&e.push(`XX`),r?.GET&&e.push(`GET`)},transformReply:void 0}})),Ou=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={IS_READ_ONLY:!1,parseCommand(e,t,n,r){e.push(`SETBIT`),e.pushKey(t),e.push(n.toString(),r.toString())},transformReply:void 0}})),ku=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={parseCommand(e,t,n,r){e.push(`SETEX`),e.pushKey(t),e.push(n.toString(),r)},transformReply:void 0}})),Au=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={parseCommand(e,t,n){e.push(`SETNX`),e.pushKey(t),e.push(n)},transformReply:void 0}})),ju=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={parseCommand(e,t,n,r){e.push(`SETRANGE`),e.pushKey(t),e.push(n.toString(),r)},transformReply:void 0}})),Mu=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={CACHEABLE:!0,IS_READ_ONLY:!0,parseCommand(e,t){e.push(`SINTER`),e.pushKeys(t)},transformReply:void 0}})),Nu=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={IS_READ_ONLY:!0,parseCommand(e,t,n){e.push(`SINTERCARD`),e.pushKeysLength(t),typeof n==`number`?e.push(`LIMIT`,n.toString()):n?.LIMIT!==void 0&&e.push(`LIMIT`,n.LIMIT.toString())},transformReply:void 0}})),Pu=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={IS_READ_ONLY:!1,parseCommand(e,t,n){e.push(`SINTERSTORE`),e.pushKey(t),e.pushKeys(n)},transformReply:void 0}})),Fu=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={CACHEABLE:!0,IS_READ_ONLY:!0,parseCommand(e,t,n){e.push(`SISMEMBER`),e.pushKey(t),e.push(n)},transformReply:void 0}})),Iu=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={CACHEABLE:!0,IS_READ_ONLY:!0,parseCommand(e,t){e.push(`SMEMBERS`),e.pushKey(t)},transformReply:{2:void 0,3:void 0}}})),Lu=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={CACHEABLE:!0,IS_READ_ONLY:!0,parseCommand(e,t,n){e.push(`SMISMEMBER`),e.pushKey(t),e.pushVariadic(n)},transformReply:void 0}})),Ru=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={IS_READ_ONLY:!1,parseCommand(e,t,n,r){e.push(`SMOVE`),e.pushKeys([t,n]),e.push(r)},transformReply:void 0}})),zu=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.parseSortArguments=void 0;function t(e,t,n){if(e.pushKey(t),n?.BY&&e.push(`BY`,n.BY),n?.LIMIT&&e.push(`LIMIT`,n.LIMIT.offset.toString(),n.LIMIT.count.toString()),n?.GET)if(Array.isArray(n.GET))for(let t of n.GET)e.push(`GET`,t);else e.push(`GET`,n.GET);n?.DIRECTION&&e.push(n.DIRECTION),n?.ALPHA&&e.push(`ALPHA`)}e.parseSortArguments=t,e.default={IS_READ_ONLY:!0,parseCommand(e,n,r){e.push(`SORT`),t(e,n,r)},transformReply:void 0}})),Bu=c((e=>{var t=e&&e.__createBinding||(Object.create?(function(e,t,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(t,n);(!i||(`get`in i?!t.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,i)}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]})),n=e&&e.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,`default`,{enumerable:!0,value:t})}):function(e,t){e.default=t}),r=e&&e.__importStar||function(e){if(e&&e.__esModule)return e;var r={};if(e!=null)for(var i in e)i!==`default`&&Object.prototype.hasOwnProperty.call(e,i)&&t(r,e,i);return n(r,e),r};Object.defineProperty(e,`__esModule`,{value:!0});let i=r(zu());e.default={IS_READ_ONLY:!0,parseCommand(...e){e[0].push(`SORT_RO`),(0,i.parseSortArguments)(...e)},transformReply:i.default.transformReply}})),Vu=c((e=>{var t=e&&e.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e,`__esModule`,{value:!0});let n=t(zu());e.default={IS_READ_ONLY:!1,parseCommand(e,t,r,i){n.default.parseCommand(e,t,i),e.push(`STORE`,r)},transformReply:void 0}})),Hu=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={IS_READ_ONLY:!1,parseCommand(e,t,n){e.push(`SPOP`),e.pushKey(t),e.push(n.toString())},transformReply:void 0}})),Uu=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={IS_READ_ONLY:!1,parseCommand(e,t){e.push(`SPOP`),e.pushKey(t)},transformReply:void 0}})),Wu=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={IS_READ_ONLY:!0,parseCommand(e,t,n){e.push(`SPUBLISH`),e.pushKey(t),e.push(n)},transformReply:void 0}})),Gu=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={IS_READ_ONLY:!0,parseCommand(e,t){e.push(`SRANDMEMBER`),e.pushKey(t)},transformReply:void 0}})),Ku=c((e=>{var t=e&&e.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e,`__esModule`,{value:!0});let n=t(Gu());e.default={IS_READ_ONLY:n.default.IS_READ_ONLY,parseCommand(e,t,r){n.default.parseCommand(e,t),e.push(r.toString())},transformReply:void 0}})),qu=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={IS_READ_ONLY:!1,parseCommand(e,t,n){e.push(`SREM`),e.pushKey(t),e.pushVariadic(n)},transformReply:void 0}})),Ju=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=Vc();e.default={IS_READ_ONLY:!0,parseCommand(e,n,r,i){e.push(`SSCAN`),e.pushKey(n),(0,t.parseScanArguments)(e,r,i)},transformReply([e,t]){return{cursor:e,members:t}}}})),Yu=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={CACHEABLE:!0,IS_READ_ONLY:!0,parseCommand(e,t){e.push(`STRLEN`),e.pushKey(t)},transformReply:void 0}})),Xu=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={CACHEABLE:!0,IS_READ_ONLY:!0,parseCommand(e,t){e.push(`SUNION`),e.pushKeys(t)},transformReply:void 0}})),Zu=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={IS_READ_ONLY:!1,parseCommand(e,t,n){e.push(`SUNIONSTORE`),e.pushKey(t),e.pushKeys(n)},transformReply:void 0}})),Qu=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!1,parseCommand(e,t,n){e.push(`SWAPDB`,t.toString(),n.toString())},transformReply:void 0}})),$u=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(e){e.push(`TIME`)},transformReply:void 0}})),ed=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={IS_READ_ONLY:!1,parseCommand(e,t){e.push(`TOUCH`),e.pushKeys(t)},transformReply:void 0}})),td=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={IS_READ_ONLY:!0,parseCommand(e,t){e.push(`TTL`),e.pushKey(t)},transformReply:void 0}})),nd=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={CACHEABLE:!0,IS_READ_ONLY:!0,parseCommand(e,t){e.push(`TYPE`),e.pushKey(t)},transformReply:void 0}})),rd=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={IS_READ_ONLY:!1,parseCommand(e,t){e.push(`UNLINK`),e.pushKeys(t)},transformReply:void 0}})),id=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(e,t,n){e.push(`WAIT`,t.toString(),n.toString())},transformReply:void 0}})),ad=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={IS_READ_ONLY:!1,parseCommand(e,t,n,r){e.push(`XACK`),e.pushKey(t),e.push(n),e.pushVariadic(r)},transformReply:void 0}})),od=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={IS_READ_ONLY:!1,parseCommand(e,t,n,r,i){e.push(`XACKDEL`),e.pushKey(t),e.push(n),i&&e.push(i),e.push(`IDS`),e.pushVariadicWithLength(r)},transformReply:void 0}})),sd=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.parseXAddArguments=void 0;function t(e,t,n,r,i,a){t.push(`XADD`),t.pushKey(n),e&&t.push(e),a?.TRIM&&(a.TRIM.strategy&&t.push(a.TRIM.strategy),a.TRIM.strategyModifier&&t.push(a.TRIM.strategyModifier),t.push(a.TRIM.threshold.toString()),a.TRIM.limit&&t.push(`LIMIT`,a.TRIM.limit.toString()),a.TRIM.policy&&t.push(a.TRIM.policy)),t.push(r);for(let[e,n]of Object.entries(i))t.push(e,n)}e.parseXAddArguments=t,e.default={IS_READ_ONLY:!1,parseCommand(...e){return t(void 0,...e)},transformReply:void 0}})),cd=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=sd();e.default={IS_READ_ONLY:!1,parseCommand(...e){return(0,t.parseXAddArguments)(`NOMKSTREAM`,...e)},transformReply:void 0}})),ld=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=Q();e.default={IS_READ_ONLY:!1,parseCommand(e,t,n,r,i,a,o){e.push(`XAUTOCLAIM`),e.pushKey(t),e.push(n,r,i.toString(),a),o?.COUNT&&e.push(`COUNT`,o.COUNT.toString())},transformReply(e,n,r){return{nextId:e[0],messages:e[1].map(t.transformStreamMessageNullReply.bind(void 0,r)),deletedMessages:e[2]}}}})),ud=c((e=>{var t=e&&e.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e,`__esModule`,{value:!0});let n=t(ld());e.default={IS_READ_ONLY:n.default.IS_READ_ONLY,parseCommand(...e){let t=e[0];n.default.parseCommand(...e),t.push(`JUSTID`)},transformReply(e){return{nextId:e[0],messages:e[1],deletedMessages:e[2]}}}})),dd=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=Q();e.default={IS_READ_ONLY:!1,parseCommand(e,t,n,r,i,a,o){e.push(`XCLAIM`),e.pushKey(t),e.push(n,r,i.toString()),e.pushVariadic(a),o?.IDLE!==void 0&&e.push(`IDLE`,o.IDLE.toString()),o?.TIME!==void 0&&e.push(`TIME`,(o.TIME instanceof Date?o.TIME.getTime():o.TIME).toString()),o?.RETRYCOUNT!==void 0&&e.push(`RETRYCOUNT`,o.RETRYCOUNT.toString()),o?.FORCE&&e.push(`FORCE`),o?.LASTID!==void 0&&e.push(`LASTID`,o.LASTID)},transformReply(e,n,r){return e.map(t.transformStreamMessageNullReply.bind(void 0,r))}}})),fd=c((e=>{var t=e&&e.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e,`__esModule`,{value:!0});let n=t(dd());e.default={IS_READ_ONLY:n.default.IS_READ_ONLY,parseCommand(...e){let t=e[0];n.default.parseCommand(...e),t.push(`JUSTID`)},transformReply:void 0}})),pd=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={IS_READ_ONLY:!1,parseCommand(e,t,n){e.push(`XDEL`),e.pushKey(t),e.pushVariadic(n)},transformReply:void 0}})),md=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={IS_READ_ONLY:!1,parseCommand(e,t,n,r){e.push(`XDELEX`),e.pushKey(t),r&&e.push(r),e.push(`IDS`),e.pushVariadicWithLength(n)},transformReply:void 0}})),hd=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={IS_READ_ONLY:!1,parseCommand(e,t,n,r,i){e.push(`XGROUP`,`CREATE`),e.pushKey(t),e.push(n,r),i?.MKSTREAM&&e.push(`MKSTREAM`),i?.ENTRIESREAD&&e.push(`ENTRIESREAD`,i.ENTRIESREAD.toString())},transformReply:void 0}})),gd=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={IS_READ_ONLY:!1,parseCommand(e,t,n,r){e.push(`XGROUP`,`CREATECONSUMER`),e.pushKey(t),e.push(n,r)},transformReply:void 0}})),_d=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={IS_READ_ONLY:!1,parseCommand(e,t,n,r){e.push(`XGROUP`,`DELCONSUMER`),e.pushKey(t),e.push(n,r)},transformReply:void 0}})),vd=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={IS_READ_ONLY:!1,parseCommand(e,t,n){e.push(`XGROUP`,`DESTROY`),e.pushKey(t),e.push(n)},transformReply:void 0}})),yd=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={IS_READ_ONLY:!1,parseCommand(e,t,n,r,i){e.push(`XGROUP`,`SETID`),e.pushKey(t),e.push(n,r),i?.ENTRIESREAD&&e.push(`ENTRIESREAD`,i.ENTRIESREAD.toString())},transformReply:void 0}})),bd=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={IS_READ_ONLY:!0,parseCommand(e,t,n){e.push(`XINFO`,`CONSUMERS`),e.pushKey(t),e.push(n)},transformReply:{2:e=>e.map(e=>{let t=e;return{name:t[1],pending:t[3],idle:t[5],inactive:t[7]}}),3:void 0}}})),xd=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={IS_READ_ONLY:!0,parseCommand(e,t){e.push(`XINFO`,`GROUPS`),e.pushKey(t)},transformReply:{2:e=>e.map(e=>{let t=e;return{name:t[1],consumers:t[3],pending:t[5],"last-delivered-id":t[7],"entries-read":t[9],lag:t[11]}}),3:void 0}}})),Sd=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=Q();e.default={IS_READ_ONLY:!0,parseCommand(e,t){e.push(`XINFO`,`STREAM`),e.pushKey(t)},transformReply:{2(e){let t={};for(let r=0;r<e.length;r+=2)switch(e[r]){case`first-entry`:case`last-entry`:t[e[r]]=n(e[r+1]);break;default:t[e[r]]=e[r+1];break}return t},3(e){return e instanceof Map?(e.set(`first-entry`,n(e.get(`first-entry`))),e.set(`last-entry`,n(e.get(`last-entry`)))):e instanceof Array?(e[17]=n(e[17]),e[19]=n(e[19])):(e[`first-entry`]=n(e[`first-entry`]),e[`last-entry`]=n(e[`last-entry`])),e}}};function n(e){if((0,t.isNullReply)(e))return e;let[n,r]=e;return{id:n,message:(0,t.transformTuplesReply)(r)}}})),Cd=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={CACHEABLE:!0,IS_READ_ONLY:!0,parseCommand(e,t){e.push(`XLEN`),e.pushKey(t)},transformReply:void 0}})),wd=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={CACHEABLE:!0,IS_READ_ONLY:!0,parseCommand(e,t,n,r,i,a,o){e.push(`XPENDING`),e.pushKey(t),e.push(n),o?.IDLE!==void 0&&e.push(`IDLE`,o.IDLE.toString()),e.push(r,i,a.toString()),o?.consumer&&e.push(o.consumer)},transformReply(e){return e.map(e=>{let t=e;return{id:t[0],consumer:t[1],millisecondsSinceLastDelivery:t[2],deliveriesCounter:t[3]}})}}})),Td=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={CACHEABLE:!0,IS_READ_ONLY:!0,parseCommand(e,t,n){e.push(`XPENDING`),e.pushKey(t),e.push(n)},transformReply(e){let t=e[3];return{pending:e[0],firstId:e[1],lastId:e[2],consumers:t===null?null:t.map(e=>{let[t,n]=e;return{name:t,deliveriesCounter:Number(n)}})}}}})),Ed=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.xRangeArguments=void 0;let t=Q();function n(e,t,n){let r=[e,t];return n?.COUNT&&r.push(`COUNT`,n.COUNT.toString()),r}e.xRangeArguments=n,e.default={CACHEABLE:!0,IS_READ_ONLY:!0,parseCommand(e,t,...r){e.push(`XRANGE`),e.pushKey(t),e.pushVariadic(n(r[0],r[1],r[2]))},transformReply(e,n,r){return e.map(t.transformStreamMessageReply.bind(void 0,r))}}})),Dd=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.pushXReadStreams=void 0;let t=Q();function n(e,t){if(e.push(`STREAMS`),Array.isArray(t)){for(let n=0;n<t.length;n++)e.pushKey(t[n].key);for(let n=0;n<t.length;n++)e.push(t[n].id)}else e.pushKey(t.key),e.push(t.id)}e.pushXReadStreams=n,e.default={IS_READ_ONLY:!0,parseCommand(e,t,r){e.push(`XREAD`),r?.COUNT&&e.push(`COUNT`,r.COUNT.toString()),r?.BLOCK!==void 0&&e.push(`BLOCK`,r.BLOCK.toString()),n(e,t)},transformReply:{2:t.transformStreamsMessagesReplyResp2,3:void 0},unstableResp3:!0}})),Od=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=Dd(),n=Q();e.default={IS_READ_ONLY:!0,parseCommand(e,n,r,i,a){e.push(`XREADGROUP`,`GROUP`,n,r),a?.COUNT!==void 0&&e.push(`COUNT`,a.COUNT.toString()),a?.BLOCK!==void 0&&e.push(`BLOCK`,a.BLOCK.toString()),a?.NOACK&&e.push(`NOACK`),(0,t.pushXReadStreams)(e,i)},transformReply:{2:n.transformStreamsMessagesReplyResp2,3:void 0},unstableResp3:!0}})),kd=c((e=>{var t=e&&e.__createBinding||(Object.create?(function(e,t,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(t,n);(!i||(`get`in i?!t.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,i)}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]})),n=e&&e.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,`default`,{enumerable:!0,value:t})}):function(e,t){e.default=t}),r=e&&e.__importStar||function(e){if(e&&e.__esModule)return e;var r={};if(e!=null)for(var i in e)i!==`default`&&Object.prototype.hasOwnProperty.call(e,i)&&t(r,e,i);return n(r,e),r};Object.defineProperty(e,`__esModule`,{value:!0});let i=r(Ed());e.default={CACHEABLE:i.default.CACHEABLE,IS_READ_ONLY:i.default.IS_READ_ONLY,parseCommand(e,t,...n){e.push(`XREVRANGE`),e.pushKey(t),e.pushVariadic((0,i.xRangeArguments)(n[0],n[1],n[2]))},transformReply:i.default.transformReply}})),Ad=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={IS_READ_ONLY:!1,parseCommand(e,t,n,r){e.push(`XSETID`),e.pushKey(t),e.push(n),r?.ENTRIESADDED&&e.push(`ENTRIESADDED`,r.ENTRIESADDED.toString()),r?.MAXDELETEDID&&e.push(`MAXDELETEDID`,r.MAXDELETEDID)},transformReply:void 0}})),jd=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={IS_READ_ONLY:!1,parseCommand(e,t,n,r,i){e.push(`XTRIM`),e.pushKey(t),e.push(n),i?.strategyModifier&&e.push(i.strategyModifier),e.push(r.toString()),i?.LIMIT&&e.push(`LIMIT`,i.LIMIT.toString()),i?.policy&&e.push(i.policy)},transformReply:void 0}})),Md=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.pushMembers=void 0;let t=Q();e.default={parseCommand(e,t,r,i){e.push(`ZADD`),e.pushKey(t),i?.condition?e.push(i.condition):i?.NX?e.push(`NX`):i?.XX&&e.push(`XX`),i?.comparison?e.push(i.comparison):i?.LT?e.push(`LT`):i?.GT&&e.push(`GT`),i?.CH&&e.push(`CH`),n(e,r)},transformReply:t.transformDoubleReply};function n(e,t){if(Array.isArray(t))for(let n of t)r(e,n);else r(e,t)}e.pushMembers=n;function r(e,n){e.push((0,t.transformDoubleArgument)(n.score),n.value)}})),Nd=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=Md();e.default={parseCommand(e,n,r,i){e.push(`ZADD`),e.pushKey(n),i?.condition&&e.push(i.condition),i?.comparison&&e.push(i.comparison),i?.CH&&e.push(`CH`),e.push(`INCR`),(0,t.pushMembers)(e,r)},transformReply:Q().transformNullableDoubleReply}})),Pd=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={CACHEABLE:!0,IS_READ_ONLY:!0,parseCommand(e,t){e.push(`ZCARD`),e.pushKey(t)},transformReply:void 0}})),Fd=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=Q();e.default={CACHEABLE:!0,IS_READ_ONLY:!0,parseCommand(e,n,r,i){e.push(`ZCOUNT`),e.pushKey(n),e.push((0,t.transformStringDoubleArgument)(r),(0,t.transformStringDoubleArgument)(i))},transformReply:void 0}})),Id=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={IS_READ_ONLY:!0,parseCommand(e,t){e.push(`ZDIFF`),e.pushKeysLength(t)},transformReply:void 0}})),Ld=c((e=>{var t=e&&e.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e,`__esModule`,{value:!0});let n=Q(),r=t(Id());e.default={IS_READ_ONLY:r.default.IS_READ_ONLY,parseCommand(e,t){r.default.parseCommand(e,t),e.push(`WITHSCORES`)},transformReply:n.transformSortedSetReply}})),Rd=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={IS_READ_ONLY:!0,parseCommand(e,t,n){e.push(`ZDIFFSTORE`),e.pushKey(t),e.pushKeysLength(n)},transformReply:void 0}})),zd=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=Q();e.default={parseCommand(e,n,r,i){e.push(`ZINCRBY`),e.pushKey(n),e.push((0,t.transformDoubleArgument)(r),i)},transformReply:t.transformDoubleReply}})),Bd=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.parseZInterArguments=void 0;let t=Q();function n(e,n,r){(0,t.parseZKeysArguments)(e,n),r?.AGGREGATE&&e.push(`AGGREGATE`,r.AGGREGATE)}e.parseZInterArguments=n,e.default={IS_READ_ONLY:!0,parseCommand(e,t,r){e.push(`ZINTER`),n(e,t,r)},transformReply:void 0}})),Vd=c((e=>{var t=e&&e.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e,`__esModule`,{value:!0});let n=Q(),r=t(Bd());e.default={IS_READ_ONLY:r.default.IS_READ_ONLY,parseCommand(...e){r.default.parseCommand(...e),e[0].push(`WITHSCORES`)},transformReply:n.transformSortedSetReply}})),Hd=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={IS_READ_ONLY:!0,parseCommand(e,t,n){e.push(`ZINTERCARD`),e.pushKeysLength(t),typeof n==`number`?e.push(`LIMIT`,n.toString()):n?.LIMIT&&e.push(`LIMIT`,n.LIMIT.toString())},transformReply:void 0}})),Ud=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=Bd();e.default={IS_READ_ONLY:!1,parseCommand(e,n,r,i){e.push(`ZINTERSTORE`),e.pushKey(n),(0,t.parseZInterArguments)(e,r,i)},transformReply:void 0}})),Wd=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={CACHEABLE:!0,IS_READ_ONLY:!0,parseCommand(e,t,n,r){e.push(`ZLEXCOUNT`),e.pushKey(t),e.push(n),e.push(r)},transformReply:void 0}})),Gd=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=Q();e.default={CACHEABLE:!0,IS_READ_ONLY:!0,parseCommand(e,t,n){e.push(`ZMSCORE`),e.pushKey(t),e.pushVariadic(n)},transformReply:{2:(e,n,r)=>e.map((0,t.createTransformNullableDoubleReplyResp2Func)(n,r)),3:void 0}}})),Kd=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={IS_READ_ONLY:!1,parseCommand(e,t,n){e.push(`ZPOPMAX`),e.pushKey(t),e.push(n.toString())},transformReply:Q().transformSortedSetReply}})),qd=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=Q();e.default={IS_READ_ONLY:!1,parseCommand(e,t){e.push(`ZPOPMAX`),e.pushKey(t)},transformReply:{2:(e,n,r)=>e.length===0?null:{value:e[0],score:t.transformDoubleReply[2](e[1],n,r)},3:e=>e.length===0?null:{value:e[0],score:e[1]}}}})),Jd=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={IS_READ_ONLY:!1,parseCommand(e,t,n){e.push(`ZPOPMIN`),e.pushKey(t),e.push(n.toString())},transformReply:Q().transformSortedSetReply}})),Yd=c((e=>{var t=e&&e.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e,`__esModule`,{value:!0}),e.default={IS_READ_ONLY:!1,parseCommand(e,t){e.push(`ZPOPMIN`),e.pushKey(t)},transformReply:t(qd()).default.transformReply}})),Xd=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={IS_READ_ONLY:!0,parseCommand(e,t){e.push(`ZRANDMEMBER`),e.pushKey(t)},transformReply:void 0}})),Zd=c((e=>{var t=e&&e.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e,`__esModule`,{value:!0});let n=t(Xd());e.default={IS_READ_ONLY:n.default.IS_READ_ONLY,parseCommand(e,t,r){n.default.parseCommand(e,t),e.push(r.toString())},transformReply:void 0}})),Qd=c((e=>{var t=e&&e.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e,`__esModule`,{value:!0});let n=Q(),r=t(Zd());e.default={IS_READ_ONLY:r.default.IS_READ_ONLY,parseCommand(e,t,n){r.default.parseCommand(e,t,n),e.push(`WITHSCORES`)},transformReply:n.transformSortedSetReply}})),$d=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.zRangeArgument=void 0;let t=Q();function n(e,n,r){let i=[(0,t.transformStringDoubleArgument)(e),(0,t.transformStringDoubleArgument)(n)];switch(r?.BY){case`SCORE`:i.push(`BYSCORE`);break;case`LEX`:i.push(`BYLEX`);break}return r?.REV&&i.push(`REV`),r?.LIMIT&&i.push(`LIMIT`,r.LIMIT.offset.toString(),r.LIMIT.count.toString()),i}e.zRangeArgument=n,e.default={CACHEABLE:!0,IS_READ_ONLY:!0,parseCommand(e,t,r,i,a){e.push(`ZRANGE`),e.pushKey(t),e.pushVariadic(n(r,i,a))},transformReply:void 0}})),ef=c((e=>{var t=e&&e.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e,`__esModule`,{value:!0});let n=Q(),r=t($d());e.default={CACHEABLE:r.default.CACHEABLE,IS_READ_ONLY:r.default.IS_READ_ONLY,parseCommand(...e){let t=e[0];r.default.parseCommand(...e),t.push(`WITHSCORES`)},transformReply:n.transformSortedSetReply}})),tf=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=Q();e.default={CACHEABLE:!0,IS_READ_ONLY:!0,parseCommand(e,n,r,i,a){e.push(`ZRANGEBYLEX`),e.pushKey(n),e.push((0,t.transformStringDoubleArgument)(r),(0,t.transformStringDoubleArgument)(i)),a?.LIMIT&&e.push(`LIMIT`,a.LIMIT.offset.toString(),a.LIMIT.count.toString())},transformReply:void 0}})),nf=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=Q();e.default={CACHEABLE:!0,IS_READ_ONLY:!0,parseCommand(e,n,r,i,a){e.push(`ZRANGEBYSCORE`),e.pushKey(n),e.push((0,t.transformStringDoubleArgument)(r),(0,t.transformStringDoubleArgument)(i)),a?.LIMIT&&e.push(`LIMIT`,a.LIMIT.offset.toString(),a.LIMIT.count.toString())},transformReply:void 0}})),rf=c((e=>{var t=e&&e.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e,`__esModule`,{value:!0});let n=Q(),r=t(nf());e.default={CACHEABLE:r.default.CACHEABLE,IS_READ_ONLY:r.default.IS_READ_ONLY,parseCommand(...e){let t=e[0];r.default.parseCommand(...e),t.push(`WITHSCORES`)},transformReply:n.transformSortedSetReply}})),af=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=Q();e.default={IS_READ_ONLY:!1,parseCommand(e,n,r,i,a,o){switch(e.push(`ZRANGESTORE`),e.pushKey(n),e.pushKey(r),e.push((0,t.transformStringDoubleArgument)(i),(0,t.transformStringDoubleArgument)(a)),o?.BY){case`SCORE`:e.push(`BYSCORE`);break;case`LEX`:e.push(`BYLEX`);break}o?.REV&&e.push(`REV`),o?.LIMIT&&e.push(`LIMIT`,o.LIMIT.offset.toString(),o.LIMIT.count.toString())},transformReply:void 0}})),of=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=Q();e.default={IS_READ_ONLY:!1,parseCommand(e,n,r,i){e.push(`ZREMRANGEBYSCORE`),e.pushKey(n),e.push((0,t.transformStringDoubleArgument)(r),(0,t.transformStringDoubleArgument)(i))},transformReply:void 0}})),sf=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={CACHEABLE:!0,IS_READ_ONLY:!0,parseCommand(e,t,n){e.push(`ZRANK`),e.pushKey(t),e.push(n)},transformReply:void 0}})),cf=c((e=>{var t=e&&e.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e,`__esModule`,{value:!0});let n=t(sf());e.default={CACHEABLE:n.default.CACHEABLE,IS_READ_ONLY:n.default.IS_READ_ONLY,parseCommand(...e){let t=e[0];n.default.parseCommand(...e),t.push(`WITHSCORE`)},transformReply:{2:e=>e===null?null:{rank:e[0],score:Number(e[1])},3:e=>e===null?null:{rank:e[0],score:e[1]}}}})),lf=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={IS_READ_ONLY:!1,parseCommand(e,t,n){e.push(`ZREM`),e.pushKey(t),e.pushVariadic(n)},transformReply:void 0}})),uf=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=Q();e.default={IS_READ_ONLY:!1,parseCommand(e,n,r,i){e.push(`ZREMRANGEBYLEX`),e.pushKey(n),e.push((0,t.transformStringDoubleArgument)(r),(0,t.transformStringDoubleArgument)(i))},transformReply:void 0}})),df=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={IS_READ_ONLY:!1,parseCommand(e,t,n,r){e.push(`ZREMRANGEBYRANK`),e.pushKey(t),e.push(n.toString(),r.toString())},transformReply:void 0}})),ff=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={CACHEABLE:!0,IS_READ_ONLY:!0,parseCommand(e,t,n){e.push(`ZREVRANK`),e.pushKey(t),e.push(n)},transformReply:void 0}})),pf=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=Vc(),n=Q();e.default={IS_READ_ONLY:!0,parseCommand(e,n,r,i){e.push(`ZSCAN`),e.pushKey(n),(0,t.parseScanArguments)(e,r,i)},transformReply([e,t]){return{cursor:e,members:n.transformSortedSetReply[2](t)}}}})),mf=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={CACHEABLE:!0,IS_READ_ONLY:!0,parseCommand(e,t,n){e.push(`ZSCORE`),e.pushKey(t),e.push(n)},transformReply:Q().transformNullableDoubleReply}})),hf=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=Q();e.default={IS_READ_ONLY:!0,parseCommand(e,n,r){e.push(`ZUNION`),(0,t.parseZKeysArguments)(e,n),r?.AGGREGATE&&e.push(`AGGREGATE`,r.AGGREGATE)},transformReply:void 0}})),gf=c((e=>{var t=e&&e.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e,`__esModule`,{value:!0});let n=Q(),r=t(hf());e.default={IS_READ_ONLY:r.default.IS_READ_ONLY,parseCommand(...e){let t=e[0];r.default.parseCommand(...e),t.push(`WITHSCORES`)},transformReply:n.transformSortedSetReply}})),_f=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=Q();e.default={IS_READ_ONLY:!1,parseCommand(e,n,r,i){e.push(`ZUNIONSTORE`),e.pushKey(n),(0,t.parseZKeysArguments)(e,r),i?.AGGREGATE&&e.push(`AGGREGATE`,i.AGGREGATE)},transformReply:void 0}})),vf=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=Q();e.default={parseCommand(e,n,r,i,a){e.push(`VADD`),e.pushKey(n),a?.REDUCE!==void 0&&e.push(`REDUCE`,a.REDUCE.toString()),e.push(`VALUES`,r.length.toString());for(let n of r)e.push((0,t.transformDoubleArgument)(n));e.push(i),a?.CAS&&e.push(`CAS`),a?.QUANT&&e.push(a.QUANT),a?.EF!==void 0&&e.push(`EF`,a.EF.toString()),a?.SETATTR&&e.push(`SETATTR`,JSON.stringify(a.SETATTR)),a?.M!==void 0&&e.push(`M`,a.M.toString())},transformReply:t.transformBooleanReply}})),yf=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={IS_READ_ONLY:!0,parseCommand(e,t){e.push(`VCARD`),e.pushKey(t)},transformReply:void 0}})),bf=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={IS_READ_ONLY:!0,parseCommand(e,t){e.push(`VDIM`),e.pushKey(t)},transformReply:void 0}})),xf=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={IS_READ_ONLY:!0,parseCommand(e,t,n){e.push(`VEMB`),e.pushKey(t),e.push(n)},transformReply:Q().transformDoubleArrayReply}})),Sf=c((e=>{var t=e&&e.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e,`__esModule`,{value:!0});let n=Q(),r=t(xf());e.default={IS_READ_ONLY:!0,parseCommand(e,t,n){r.default.parseCommand(e,t,n),e.push(`RAW`)},transformReply:{2:e=>({quantization:e[0],raw:e[1],l2Norm:n.transformDoubleReply[2](e[2]),...e[3]!==void 0&&{quantizationRange:n.transformDoubleReply[2](e[3])}}),3:e=>({quantization:e[0],raw:e[1],l2Norm:e[2],quantizationRange:e[3]})}}})),Cf=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={IS_READ_ONLY:!0,parseCommand(e,t,n){e.push(`VGETATTR`),e.pushKey(t),e.push(n)},transformReply:Q().transformRedisJsonNullReply}})),wf=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={IS_READ_ONLY:!0,parseCommand(e,t){e.push(`VINFO`),e.pushKey(t)},transformReply:{2:e=>{let t=Object.create(null);for(let n=0;n<e.length;n+=2)t[e[n].toString()]=e[n+1];return t},3:void 0}}})),Tf=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={IS_READ_ONLY:!0,parseCommand(e,t,n){e.push(`VLINKS`),e.pushKey(t),e.push(n)},transformReply:void 0}})),Ef=c((e=>{var t=e&&e.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e,`__esModule`,{value:!0});let n=Q(),r=t(Tf());function i(e){let t=[];for(let r of e){let e=Object.create(null);for(let t=0;t<r.length;t+=2){let i=r[t],a=n.transformDoubleReply[2](r[t+1]);e[i.toString()]=a}t.push(e)}return t}e.default={IS_READ_ONLY:r.default.IS_READ_ONLY,parseCommand(...e){let t=e[0];r.default.parseCommand(...e),t.push(`WITHSCORES`)},transformReply:{2:i,3:void 0}}})),Df=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={IS_READ_ONLY:!0,parseCommand(e,t,n){e.push(`VRANDMEMBER`),e.pushKey(t),n!==void 0&&e.push(n.toString())},transformReply:void 0}})),Of=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={parseCommand(e,t,n){e.push(`VREM`),e.pushKey(t),e.push(n)},transformReply:Q().transformBooleanReply}})),kf=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={parseCommand(e,t,n,r){e.push(`VSETATTR`),e.pushKey(t),e.push(n),typeof r==`object`&&r?e.push(JSON.stringify(r)):e.push(r)},transformReply:Q().transformBooleanReply}})),Af=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=Q();e.default={IS_READ_ONLY:!0,parseCommand(e,n,r,i){if(e.push(`VSIM`),e.pushKey(n),Array.isArray(r)){e.push(`VALUES`,r.length.toString());for(let n of r)e.push((0,t.transformDoubleArgument)(n))}else e.push(`ELE`,r);i?.COUNT!==void 0&&e.push(`COUNT`,i.COUNT.toString()),i?.EPSILON!==void 0&&e.push(`EPSILON`,i.EPSILON.toString()),i?.EF!==void 0&&e.push(`EF`,i.EF.toString()),i?.FILTER&&e.push(`FILTER`,i.FILTER),i?.[`FILTER-EF`]!==void 0&&e.push(`FILTER-EF`,i[`FILTER-EF`].toString()),i?.TRUTH&&e.push(`TRUTH`),i?.NOTHREAD&&e.push(`NOTHREAD`)},transformReply:void 0}})),jf=c((e=>{var t=e&&e.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e,`__esModule`,{value:!0});let n=Q(),r=t(Af());e.default={IS_READ_ONLY:r.default.IS_READ_ONLY,parseCommand(...e){let t=e[0];r.default.parseCommand(...e),t.push(`WITHSCORES`)},transformReply:{2:e=>{let t=e,r={};for(let e=0;e<t.length;e+=2)r[t[e].toString()]=n.transformDoubleReply[2](t[e+1]);return r},3:void 0}}})),Mf=c((e=>{var t=e&&e.__createBinding||(Object.create?(function(e,t,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(t,n);(!i||(`get`in i?!t.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,i)}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]})),n=e&&e.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,`default`,{enumerable:!0,value:t})}):function(e,t){e.default=t}),r=e&&e.__importStar||function(e){if(e&&e.__esModule)return e;var r={};if(e!=null)for(var i in e)i!==`default`&&Object.prototype.hasOwnProperty.call(e,i)&&t(r,e,i);return n(r,e),r},i=e&&e.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e,`__esModule`,{value:!0}),e.REDIS_FLUSH_MODES=e.COMMAND_LIST_FILTER_BY=e.CLUSTER_SLOT_STATES=e.FAILOVER_MODES=e.CLIENT_KILL_FILTERS=void 0;let a=i(Ka()),o=i(qa()),s=i(Ja()),c=i(Ya()),l=i(Xa()),u=i(Za()),d=i(Qa()),f=i(eo()),p=i($a()),m=i(to()),h=i(no()),g=i(ro()),_=i(io()),v=i(ao()),y=i(oo()),b=i(so()),x=i(co()),S=i(lo()),ee=i(uo()),te=i(fo()),ne=i(po()),re=i(mo()),ie=i(ho()),ae=i(go()),oe=i(vo()),se=i(yo()),ce=i(bo()),C=i(xo()),w=i(Co()),le=i(wo()),ue=i(To()),de=i(Eo()),fe=i(Do()),pe=i(Oo()),me=i(ko()),he=i(Ao()),ge=r(jo());Object.defineProperty(e,`CLIENT_KILL_FILTERS`,{enumerable:!0,get:function(){return ge.CLIENT_KILL_FILTERS}});let _e=i(Mo()),ve=i(No()),ye=i(Po()),be=i(Fo()),xe=i(Io()),T=i(Lo()),Se=i(Ro()),Ce=i(zo()),E=i(Bo()),D=i(Vo()),O=i(Ho()),we=i(Uo()),Te=i(Wo()),Ee=i(Go()),k=i(Ko()),De=r(qo());Object.defineProperty(e,`FAILOVER_MODES`,{enumerable:!0,get:function(){return De.FAILOVER_MODES}});let Oe=i(Jo()),A=i(Yo()),ke=i(Xo()),j=i(Zo()),Ae=i(Qo()),je=i($o()),Me=i(es()),Ne=i(ts()),M=i(ns()),N=i(rs()),Pe=i(is()),Fe=i(as()),Ie=i(os()),Le=i(ss()),Re=i(cs()),ze=r(ls());Object.defineProperty(e,`CLUSTER_SLOT_STATES`,{enumerable:!0,get:function(){return ze.CLUSTER_SLOT_STATES}});let P=i(us()),Be=i(ds()),F=i(fs()),I=i(ps()),Ve=i(ms()),He=r(hs());Object.defineProperty(e,`COMMAND_LIST_FILTER_BY`,{enumerable:!0,get:function(){return He.COMMAND_LIST_FILTER_BY}});let Ue=i(gs()),L=i(_s()),We=i(vs()),Ge=i(ys()),Ke=i(bs()),qe=i(xs()),Je=i(Ss()),R=i(Cs()),Ye=i(ws()),z=i(Ts()),Xe=i(Es()),Ze=i(Ds()),Qe=i(ks()),$e=i(Os()),et=i(As()),tt=i(js()),nt=i(Ms()),rt=i(Ns()),it=i(Ps()),B=i(Fs()),V=i(Bs()),at=i(Vs()),H=i(Hs()),ot=i(zs()),st=i(Ls()),ct=i(Gs()),lt=i(Ks()),ut=i(qs()),dt=i(Ws()),ft=i(Us()),pt=i(Rs()),mt=i(Is()),ht=i(Js()),gt=i(Ys()),_t=i(Xs()),vt=i(Zs()),yt=i(Qs()),bt=i($s()),xt=i(ec()),St=i(tc()),Ct=i(nc()),wt=i(rc()),Tt=i(ic()),Et=r(ac());Object.defineProperty(e,`REDIS_FLUSH_MODES`,{enumerable:!0,get:function(){return Et.REDIS_FLUSH_MODES}});let Dt=i(oc()),Ot=i(sc()),kt=i(cc()),At=i(lc()),jt=i(uc()),U=i(dc()),Mt=i(fc()),Nt=i(mc()),Pt=i(pc()),Ft=i(hc()),W=i(gc()),It=i(_c()),Lt=i(vc()),Rt=i(yc()),zt=i(bc()),Bt=i(xc()),Vt=i(Sc()),Ht=i(Cc()),Ut=i(wc()),Wt=i(Tc()),Gt=i(Ec()),Kt=i(Dc()),qt=i(Oc()),Jt=i(kc()),G=i(Ac()),Yt=i(jc()),Xt=i(Mc()),Zt=i(Nc()),K=i(Pc()),Qt=i(Fc()),$t=i(Ic()),en=i(Lc()),tn=i(Rc()),nn=i(zc()),rn=i(Bc()),an=i(Hc()),on=i(Uc()),sn=i(Wc()),cn=i(Gc()),ln=i(Kc()),un=i(qc()),dn=i(Jc()),fn=i(Yc()),pn=i(Xc()),mn=i(Zc()),hn=i(Qc()),gn=i($c()),_n=i(el()),vn=i(tl()),yn=i(nl()),bn=i(rl()),xn=i(il()),q=i(al()),Sn=i(ol()),Cn=i(ll()),wn=i(cl()),Tn=i(ul()),En=i(sl()),Dn=i(dl()),On=i(fl()),kn=i(pl()),An=i(ml()),jn=i(_o()),Mn=i(hl()),Nn=i(_l()),Pn=i(gl()),Fn=i(yl()),In=i(vl()),Ln=i(bl()),Rn=i(xl()),zn=i(Sl()),Bn=i(Cl()),Vn=i(wl()),Hn=i(Tl()),Un=i(El()),Wn=i(Dl()),Gn=i(Ol()),Kn=i(kl()),qn=i(Al()),Jn=i(jl()),Yn=i(Ml()),Xn=i(Nl()),Zn=i(Pl()),Qn=i(Fl()),$n=i(Il()),er=i(Ll()),tr=i(Rl()),nr=i(zl()),rr=i(Bl()),ir=i(Vl()),ar=i(Hl()),or=i(Ul()),sr=i(Wl()),cr=i(Gl()),lr=i(Kl()),ur=i(ql()),dr=i(Jl()),fr=i(Yl()),pr=i(Xl()),mr=i(Zl()),hr=i(Ql()),gr=i($l()),_r=i(eu()),vr=i(tu()),yr=i(nu()),br=i(ru()),xr=i(iu()),Sr=i(au()),Cr=i(ou()),wr=i(su()),Tr=i(cu()),Er=i(lu()),Dr=i(uu()),Or=i(du()),kr=i(fu()),Ar=i(pu()),jr=i(mu()),Mr=i(hu()),Nr=i(gu()),Pr=i(_u()),Fr=i(vu()),Ir=i(Vc()),Lr=i(yu()),Rr=i(bu()),zr=i(xu()),Br=i(Su()),Vr=i(Cu()),Hr=i(wu()),Ur=i(Tu()),Wr=i(Eu()),Gr=i(Du()),Kr=i(Ou()),qr=i(ku()),Jr=i(Au()),Yr=i(ju()),Xr=i(Mu()),Zr=i(Nu()),Qr=i(Pu()),$r=i(Fu()),ei=i(Iu()),ti=i(Lu()),ni=i(Ru()),ri=i(Bu()),ii=i(Vu()),ai=i(zu()),oi=i(Hu()),si=i(Uu()),ci=i(Wu()),li=i(Ku()),ui=i(Gu()),di=i(qu()),fi=i(Ju()),pi=i(Yu()),mi=i(Xu()),hi=i(Zu()),gi=i(Qu()),_i=i($u()),vi=i(ed()),yi=i(td()),bi=i(nd()),xi=i(rd()),Si=i(id()),Ci=i(ad()),wi=i(od()),Ti=i(cd()),Ei=i(sd()),Di=i(ud()),Oi=i(ld()),ki=i(fd()),Ai=i(dd()),ji=i(pd()),Mi=i(md()),Ni=i(hd()),Pi=i(gd()),J=i(_d()),Fi=i(vd()),Ii=i(yd()),Li=i(bd()),Y=i(xd()),Ri=i(Sd()),zi=i(Cd()),Bi=i(wd()),Vi=i(Td()),Hi=i(Ed()),Ui=i(Dd()),Wi=i(Od()),Gi=i(kd()),Ki=i(Ad()),qi=i(jd()),Ji=i(Nd()),Yi=i(Md()),Xi=i(Pd()),Zi=i(Fd()),Qi=i(Ld()),$i=i(Id()),ea=i(Rd()),ta=i(zd()),na=i(Vd()),ra=i(Bd()),ia=i(Hd()),aa=i(Ud()),oa=i(Wd()),sa=i(So()),ca=i(Gd()),la=i(Kd()),ua=i(qd()),da=i(Jd()),fa=i(Yd()),pa=i(Qd()),ma=i(Zd()),ha=i(Xd()),ga=i(ef()),_a=i($d()),va=i(tf()),ya=i(rf()),ba=i(nf()),xa=i(af()),Sa=i(of()),Ca=i(cf()),wa=i(sf()),Ta=i(lf()),Ea=i(uf()),Da=i(df()),Oa=i(ff()),ka=i(pf()),Aa=i(mf()),ja=i(gf()),Ma=i(hf()),Na=i(_f()),Pa=i(vf()),Fa=i(yf()),Ia=i(bf()),La=i(xf()),Ra=i(Sf()),za=i(Cf()),Ba=i(wf()),Va=i(Tf()),Ha=i(Ef()),Ua=i(Df()),X=i(Of()),Wa=i(kf()),Ga=i(Af()),Z=i(jf());e.default={ACL_CAT:a.default,aclCat:a.default,ACL_DELUSER:o.default,aclDelUser:o.default,ACL_DRYRUN:s.default,aclDryRun:s.default,ACL_GENPASS:c.default,aclGenPass:c.default,ACL_GETUSER:l.default,aclGetUser:l.default,ACL_LIST:u.default,aclList:u.default,ACL_LOAD:d.default,aclLoad:d.default,ACL_LOG_RESET:f.default,aclLogReset:f.default,ACL_LOG:p.default,aclLog:p.default,ACL_SAVE:m.default,aclSave:m.default,ACL_SETUSER:h.default,aclSetUser:h.default,ACL_USERS:g.default,aclUsers:g.default,ACL_WHOAMI:_.default,aclWhoAmI:_.default,APPEND:v.default,append:v.default,ASKING:y.default,asking:y.default,AUTH:b.default,auth:b.default,BGREWRITEAOF:x.default,bgRewriteAof:x.default,BGSAVE:S.default,bgSave:S.default,BITCOUNT:ee.default,bitCount:ee.default,BITFIELD_RO:te.default,bitFieldRo:te.default,BITFIELD:ne.default,bitField:ne.default,BITOP:re.default,bitOp:re.default,BITPOS:ie.default,bitPos:ie.default,BLMOVE:ae.default,blMove:ae.default,BLMPOP:oe.default,blmPop:oe.default,BLPOP:se.default,blPop:se.default,BRPOP:ce.default,brPop:ce.default,BRPOPLPUSH:C.default,brPopLPush:C.default,BZMPOP:w.default,bzmPop:w.default,BZPOPMAX:le.default,bzPopMax:le.default,BZPOPMIN:ue.default,bzPopMin:ue.default,CLIENT_CACHING:de.default,clientCaching:de.default,CLIENT_GETNAME:fe.default,clientGetName:fe.default,CLIENT_GETREDIR:pe.default,clientGetRedir:pe.default,CLIENT_ID:me.default,clientId:me.default,CLIENT_INFO:he.default,clientInfo:he.default,CLIENT_KILL:ge.default,clientKill:ge.default,CLIENT_LIST:_e.default,clientList:_e.default,"CLIENT_NO-EVICT":ve.default,clientNoEvict:ve.default,"CLIENT_NO-TOUCH":ye.default,clientNoTouch:ye.default,CLIENT_PAUSE:be.default,clientPause:be.default,CLIENT_SETNAME:xe.default,clientSetName:xe.default,CLIENT_TRACKING:T.default,clientTracking:T.default,CLIENT_TRACKINGINFO:Se.default,clientTrackingInfo:Se.default,CLIENT_UNPAUSE:Ce.default,clientUnpause:Ce.default,CLUSTER_ADDSLOTS:E.default,clusterAddSlots:E.default,CLUSTER_ADDSLOTSRANGE:D.default,clusterAddSlotsRange:D.default,CLUSTER_BUMPEPOCH:O.default,clusterBumpEpoch:O.default,"CLUSTER_COUNT-FAILURE-REPORTS":we.default,clusterCountFailureReports:we.default,CLUSTER_COUNTKEYSINSLOT:Te.default,clusterCountKeysInSlot:Te.default,CLUSTER_DELSLOTS:Ee.default,clusterDelSlots:Ee.default,CLUSTER_DELSLOTSRANGE:k.default,clusterDelSlotsRange:k.default,CLUSTER_FAILOVER:De.default,clusterFailover:De.default,CLUSTER_FLUSHSLOTS:Oe.default,clusterFlushSlots:Oe.default,CLUSTER_FORGET:A.default,clusterForget:A.default,CLUSTER_GETKEYSINSLOT:ke.default,clusterGetKeysInSlot:ke.default,CLUSTER_INFO:j.default,clusterInfo:j.default,CLUSTER_KEYSLOT:Ae.default,clusterKeySlot:Ae.default,CLUSTER_LINKS:je.default,clusterLinks:je.default,CLUSTER_MEET:Me.default,clusterMeet:Me.default,CLUSTER_MYID:Ne.default,clusterMyId:Ne.default,CLUSTER_MYSHARDID:M.default,clusterMyShardId:M.default,CLUSTER_NODES:N.default,clusterNodes:N.default,CLUSTER_REPLICAS:Pe.default,clusterReplicas:Pe.default,CLUSTER_REPLICATE:Fe.default,clusterReplicate:Fe.default,CLUSTER_RESET:Ie.default,clusterReset:Ie.default,CLUSTER_SAVECONFIG:Le.default,clusterSaveConfig:Le.default,"CLUSTER_SET-CONFIG-EPOCH":Re.default,clusterSetConfigEpoch:Re.default,CLUSTER_SETSLOT:ze.default,clusterSetSlot:ze.default,CLUSTER_SLOTS:P.default,clusterSlots:P.default,COMMAND_COUNT:Be.default,commandCount:Be.default,COMMAND_GETKEYS:F.default,commandGetKeys:F.default,COMMAND_GETKEYSANDFLAGS:I.default,commandGetKeysAndFlags:I.default,COMMAND_INFO:Ve.default,commandInfo:Ve.default,COMMAND_LIST:He.default,commandList:He.default,COMMAND:Ue.default,command:Ue.default,CONFIG_GET:L.default,configGet:L.default,CONFIG_RESETASTAT:We.default,configResetStat:We.default,CONFIG_REWRITE:Ge.default,configRewrite:Ge.default,CONFIG_SET:Ke.default,configSet:Ke.default,COPY:qe.default,copy:qe.default,DBSIZE:Je.default,dbSize:Je.default,DECR:R.default,decr:R.default,DECRBY:Ye.default,decrBy:Ye.default,DEL:z.default,del:z.default,DUMP:Xe.default,dump:Xe.default,ECHO:Ze.default,echo:Ze.default,EVAL_RO:Qe.default,evalRo:Qe.default,EVAL:$e.default,eval:$e.default,EVALSHA_RO:et.default,evalShaRo:et.default,EVALSHA:tt.default,evalSha:tt.default,EXISTS:St.default,exists:St.default,EXPIRE:Ct.default,expire:Ct.default,EXPIREAT:wt.default,expireAt:wt.default,EXPIRETIME:Tt.default,expireTime:Tt.default,FLUSHALL:Et.default,flushAll:Et.default,FLUSHDB:Dt.default,flushDb:Dt.default,FCALL:Ot.default,fCall:Ot.default,FCALL_RO:kt.default,fCallRo:kt.default,FUNCTION_DELETE:At.default,functionDelete:At.default,FUNCTION_DUMP:jt.default,functionDump:jt.default,FUNCTION_FLUSH:U.default,functionFlush:U.default,FUNCTION_KILL:Mt.default,functionKill:Mt.default,FUNCTION_LIST_WITHCODE:Nt.default,functionListWithCode:Nt.default,FUNCTION_LIST:Pt.default,functionList:Pt.default,FUNCTION_LOAD:Ft.default,functionLoad:Ft.default,FUNCTION_RESTORE:W.default,functionRestore:W.default,FUNCTION_STATS:It.default,functionStats:It.default,GEOADD:nt.default,geoAdd:nt.default,GEODIST:rt.default,geoDist:rt.default,GEOHASH:it.default,geoHash:it.default,GEOPOS:B.default,geoPos:B.default,GEORADIUS_RO_WITH:V.default,geoRadiusRoWith:V.default,GEORADIUS_RO:at.default,geoRadiusRo:at.default,GEORADIUS_STORE:H.default,geoRadiusStore:H.default,GEORADIUS_WITH:ot.default,geoRadiusWith:ot.default,GEORADIUS:st.default,geoRadius:st.default,GEORADIUSBYMEMBER_RO_WITH:ct.default,geoRadiusByMemberRoWith:ct.default,GEORADIUSBYMEMBER_RO:lt.default,geoRadiusByMemberRo:lt.default,GEORADIUSBYMEMBER_STORE:ut.default,geoRadiusByMemberStore:ut.default,GEORADIUSBYMEMBER_WITH:dt.default,geoRadiusByMemberWith:dt.default,GEORADIUSBYMEMBER:ft.default,geoRadiusByMember:ft.default,GEOSEARCH_WITH:pt.default,geoSearchWith:pt.default,GEOSEARCH:mt.default,geoSearch:mt.default,GEOSEARCHSTORE:ht.default,geoSearchStore:ht.default,GET:gt.default,get:gt.default,GETBIT:_t.default,getBit:_t.default,GETDEL:vt.default,getDel:vt.default,GETEX:yt.default,getEx:yt.default,GETRANGE:bt.default,getRange:bt.default,GETSET:xt.default,getSet:xt.default,HDEL:Lt.default,hDel:Lt.default,HELLO:Rt.default,hello:Rt.default,HEXISTS:zt.default,hExists:zt.default,HEXPIRE:Bt.default,hExpire:Bt.default,HEXPIREAT:Vt.default,hExpireAt:Vt.default,HEXPIRETIME:Ht.default,hExpireTime:Ht.default,HGET:Ut.default,hGet:Ut.default,HGETALL:Wt.default,hGetAll:Wt.default,HGETDEL:Gt.default,hGetDel:Gt.default,HGETEX:Kt.default,hGetEx:Kt.default,HINCRBY:qt.default,hIncrBy:qt.default,HINCRBYFLOAT:Jt.default,hIncrByFloat:Jt.default,HKEYS:G.default,hKeys:G.default,HLEN:Yt.default,hLen:Yt.default,HMGET:Xt.default,hmGet:Xt.default,HPERSIST:Zt.default,hPersist:Zt.default,HPEXPIRE:K.default,hpExpire:K.default,HPEXPIREAT:Qt.default,hpExpireAt:Qt.default,HPEXPIRETIME:$t.default,hpExpireTime:$t.default,HPTTL:en.default,hpTTL:en.default,HRANDFIELD_COUNT_WITHVALUES:tn.default,hRandFieldCountWithValues:tn.default,HRANDFIELD_COUNT:nn.default,hRandFieldCount:nn.default,HRANDFIELD:rn.default,hRandField:rn.default,HSCAN:an.default,hScan:an.default,HSCAN_NOVALUES:on.default,hScanNoValues:on.default,HSET:sn.default,hSet:sn.default,HSETEX:cn.default,hSetEx:cn.default,HSETNX:ln.default,hSetNX:ln.default,HSTRLEN:un.default,hStrLen:un.default,HTTL:dn.default,hTTL:dn.default,HVALS:fn.default,hVals:fn.default,INCR:pn.default,incr:pn.default,INCRBY:mn.default,incrBy:mn.default,INCRBYFLOAT:hn.default,incrByFloat:hn.default,INFO:gn.default,info:gn.default,KEYS:_n.default,keys:_n.default,LASTSAVE:vn.default,lastSave:vn.default,LATENCY_DOCTOR:yn.default,latencyDoctor:yn.default,LATENCY_GRAPH:bn.default,latencyGraph:bn.default,LATENCY_HISTORY:xn.default,latencyHistory:xn.default,LATENCY_LATEST:q.default,latencyLatest:q.default,LATENCY_RESET:Sn.default,latencyReset:Sn.default,LCS_IDX_WITHMATCHLEN:Cn.default,lcsIdxWithMatchLen:Cn.default,LCS_IDX:wn.default,lcsIdx:wn.default,LCS_LEN:Tn.default,lcsLen:Tn.default,LCS:En.default,lcs:En.default,LINDEX:Dn.default,lIndex:Dn.default,LINSERT:On.default,lInsert:On.default,LLEN:kn.default,lLen:kn.default,LMOVE:An.default,lMove:An.default,LMPOP:jn.default,lmPop:jn.default,LOLWUT:Mn.default,LPOP_COUNT:Nn.default,lPopCount:Nn.default,LPOP:Pn.default,lPop:Pn.default,LPOS_COUNT:Fn.default,lPosCount:Fn.default,LPOS:In.default,lPos:In.default,LPUSH:Ln.default,lPush:Ln.default,LPUSHX:Rn.default,lPushX:Rn.default,LRANGE:zn.default,lRange:zn.default,LREM:Bn.default,lRem:Bn.default,LSET:Vn.default,lSet:Vn.default,LTRIM:Hn.default,lTrim:Hn.default,MEMORY_DOCTOR:Un.default,memoryDoctor:Un.default,"MEMORY_MALLOC-STATS":Wn.default,memoryMallocStats:Wn.default,MEMORY_PURGE:Gn.default,memoryPurge:Gn.default,MEMORY_STATS:Kn.default,memoryStats:Kn.default,MEMORY_USAGE:qn.default,memoryUsage:qn.default,MGET:Jn.default,mGet:Jn.default,MIGRATE:Yn.default,migrate:Yn.default,MODULE_LIST:Xn.default,moduleList:Xn.default,MODULE_LOAD:Zn.default,moduleLoad:Zn.default,MODULE_UNLOAD:Qn.default,moduleUnload:Qn.default,MOVE:$n.default,move:$n.default,MSET:er.default,mSet:er.default,MSETNX:tr.default,mSetNX:tr.default,OBJECT_ENCODING:nr.default,objectEncoding:nr.default,OBJECT_FREQ:rr.default,objectFreq:rr.default,OBJECT_IDLETIME:ir.default,objectIdleTime:ir.default,OBJECT_REFCOUNT:ar.default,objectRefCount:ar.default,PERSIST:or.default,persist:or.default,PEXPIRE:sr.default,pExpire:sr.default,PEXPIREAT:cr.default,pExpireAt:cr.default,PEXPIRETIME:lr.default,pExpireTime:lr.default,PFADD:ur.default,pfAdd:ur.default,PFCOUNT:dr.default,pfCount:dr.default,PFMERGE:fr.default,pfMerge:fr.default,PING:pr.default,ping:pr.default,PSETEX:mr.default,pSetEx:mr.default,PTTL:hr.default,pTTL:hr.default,PUBLISH:gr.default,publish:gr.default,PUBSUB_CHANNELS:_r.default,pubSubChannels:_r.default,PUBSUB_NUMPAT:vr.default,pubSubNumPat:vr.default,PUBSUB_NUMSUB:yr.default,pubSubNumSub:yr.default,PUBSUB_SHARDNUMSUB:br.default,pubSubShardNumSub:br.default,PUBSUB_SHARDCHANNELS:xr.default,pubSubShardChannels:xr.default,RANDOMKEY:Sr.default,randomKey:Sr.default,READONLY:Cr.default,readonly:Cr.default,RENAME:wr.default,rename:wr.default,RENAMENX:Tr.default,renameNX:Tr.default,REPLICAOF:Er.default,replicaOf:Er.default,"RESTORE-ASKING":Dr.default,restoreAsking:Dr.default,RESTORE:Or.default,restore:Or.default,RPOP_COUNT:Ar.default,rPopCount:Ar.default,ROLE:kr.default,role:kr.default,RPOP:jr.default,rPop:jr.default,RPOPLPUSH:Mr.default,rPopLPush:Mr.default,RPUSH:Nr.default,rPush:Nr.default,RPUSHX:Pr.default,rPushX:Pr.default,SADD:Fr.default,sAdd:Fr.default,SCAN:Ir.default,scan:Ir.default,SCARD:Lr.default,sCard:Lr.default,SCRIPT_DEBUG:Rr.default,scriptDebug:Rr.default,SCRIPT_EXISTS:zr.default,scriptExists:zr.default,SCRIPT_FLUSH:Br.default,scriptFlush:Br.default,SCRIPT_KILL:Vr.default,scriptKill:Vr.default,SCRIPT_LOAD:Hr.default,scriptLoad:Hr.default,SDIFF:Ur.default,sDiff:Ur.default,SDIFFSTORE:Wr.default,sDiffStore:Wr.default,SET:Gr.default,set:Gr.default,SETBIT:Kr.default,setBit:Kr.default,SETEX:qr.default,setEx:qr.default,SETNX:Jr.default,setNX:Jr.default,SETRANGE:Yr.default,setRange:Yr.default,SINTER:Xr.default,sInter:Xr.default,SINTERCARD:Zr.default,sInterCard:Zr.default,SINTERSTORE:Qr.default,sInterStore:Qr.default,SISMEMBER:$r.default,sIsMember:$r.default,SMEMBERS:ei.default,sMembers:ei.default,SMISMEMBER:ti.default,smIsMember:ti.default,SMOVE:ni.default,sMove:ni.default,SORT_RO:ri.default,sortRo:ri.default,SORT_STORE:ii.default,sortStore:ii.default,SORT:ai.default,sort:ai.default,SPOP_COUNT:oi.default,sPopCount:oi.default,SPOP:si.default,sPop:si.default,SPUBLISH:ci.default,sPublish:ci.default,SRANDMEMBER_COUNT:li.default,sRandMemberCount:li.default,SRANDMEMBER:ui.default,sRandMember:ui.default,SREM:di.default,sRem:di.default,SSCAN:fi.default,sScan:fi.default,STRLEN:pi.default,strLen:pi.default,SUNION:mi.default,sUnion:mi.default,SUNIONSTORE:hi.default,sUnionStore:hi.default,SWAPDB:gi.default,swapDb:gi.default,TIME:_i.default,time:_i.default,TOUCH:vi.default,touch:vi.default,TTL:yi.default,ttl:yi.default,TYPE:bi.default,type:bi.default,UNLINK:xi.default,unlink:xi.default,WAIT:Si.default,wait:Si.default,XACK:Ci.default,xAck:Ci.default,XACKDEL:wi.default,xAckDel:wi.default,XADD_NOMKSTREAM:Ti.default,xAddNoMkStream:Ti.default,XADD:Ei.default,xAdd:Ei.default,XAUTOCLAIM_JUSTID:Di.default,xAutoClaimJustId:Di.default,XAUTOCLAIM:Oi.default,xAutoClaim:Oi.default,XCLAIM_JUSTID:ki.default,xClaimJustId:ki.default,XCLAIM:Ai.default,xClaim:Ai.default,XDEL:ji.default,xDel:ji.default,XDELEX:Mi.default,xDelEx:Mi.default,XGROUP_CREATE:Ni.default,xGroupCreate:Ni.default,XGROUP_CREATECONSUMER:Pi.default,xGroupCreateConsumer:Pi.default,XGROUP_DELCONSUMER:J.default,xGroupDelConsumer:J.default,XGROUP_DESTROY:Fi.default,xGroupDestroy:Fi.default,XGROUP_SETID:Ii.default,xGroupSetId:Ii.default,XINFO_CONSUMERS:Li.default,xInfoConsumers:Li.default,XINFO_GROUPS:Y.default,xInfoGroups:Y.default,XINFO_STREAM:Ri.default,xInfoStream:Ri.default,XLEN:zi.default,xLen:zi.default,XPENDING_RANGE:Bi.default,xPendingRange:Bi.default,XPENDING:Vi.default,xPending:Vi.default,XRANGE:Hi.default,xRange:Hi.default,XREAD:Ui.default,xRead:Ui.default,XREADGROUP:Wi.default,xReadGroup:Wi.default,XREVRANGE:Gi.default,xRevRange:Gi.default,XSETID:Ki.default,xSetId:Ki.default,XTRIM:qi.default,xTrim:qi.default,ZADD_INCR:Ji.default,zAddIncr:Ji.default,ZADD:Yi.default,zAdd:Yi.default,ZCARD:Xi.default,zCard:Xi.default,ZCOUNT:Zi.default,zCount:Zi.default,ZDIFF_WITHSCORES:Qi.default,zDiffWithScores:Qi.default,ZDIFF:$i.default,zDiff:$i.default,ZDIFFSTORE:ea.default,zDiffStore:ea.default,ZINCRBY:ta.default,zIncrBy:ta.default,ZINTER_WITHSCORES:na.default,zInterWithScores:na.default,ZINTER:ra.default,zInter:ra.default,ZINTERCARD:ia.default,zInterCard:ia.default,ZINTERSTORE:aa.default,zInterStore:aa.default,ZLEXCOUNT:oa.default,zLexCount:oa.default,ZMPOP:sa.default,zmPop:sa.default,ZMSCORE:ca.default,zmScore:ca.default,ZPOPMAX_COUNT:la.default,zPopMaxCount:la.default,ZPOPMAX:ua.default,zPopMax:ua.default,ZPOPMIN_COUNT:da.default,zPopMinCount:da.default,ZPOPMIN:fa.default,zPopMin:fa.default,ZRANDMEMBER_COUNT_WITHSCORES:pa.default,zRandMemberCountWithScores:pa.default,ZRANDMEMBER_COUNT:ma.default,zRandMemberCount:ma.default,ZRANDMEMBER:ha.default,zRandMember:ha.default,ZRANGE_WITHSCORES:ga.default,zRangeWithScores:ga.default,ZRANGE:_a.default,zRange:_a.default,ZRANGEBYLEX:va.default,zRangeByLex:va.default,ZRANGEBYSCORE_WITHSCORES:ya.default,zRangeByScoreWithScores:ya.default,ZRANGEBYSCORE:ba.default,zRangeByScore:ba.default,ZRANGESTORE:xa.default,zRangeStore:xa.default,ZRANK_WITHSCORE:Ca.default,zRankWithScore:Ca.default,ZRANK:wa.default,zRank:wa.default,ZREM:Ta.default,zRem:Ta.default,ZREMRANGEBYLEX:Ea.default,zRemRangeByLex:Ea.default,ZREMRANGEBYRANK:Da.default,zRemRangeByRank:Da.default,ZREMRANGEBYSCORE:Sa.default,zRemRangeByScore:Sa.default,ZREVRANK:Oa.default,zRevRank:Oa.default,ZSCAN:ka.default,zScan:ka.default,ZSCORE:Aa.default,zScore:Aa.default,ZUNION_WITHSCORES:ja.default,zUnionWithScores:ja.default,ZUNION:Ma.default,zUnion:Ma.default,ZUNIONSTORE:Na.default,zUnionStore:Na.default,VADD:Pa.default,vAdd:Pa.default,VCARD:Fa.default,vCard:Fa.default,VDIM:Ia.default,vDim:Ia.default,VEMB:La.default,vEmb:La.default,VEMB_RAW:Ra.default,vEmbRaw:Ra.default,VGETATTR:za.default,vGetAttr:za.default,VINFO:Ba.default,vInfo:Ba.default,VLINKS:Va.default,vLinks:Va.default,VLINKS_WITHSCORES:Ha.default,vLinksWithScores:Ha.default,VRANDMEMBER:Ua.default,vRandMember:Ua.default,VREM:X.default,vRem:X.default,VSETATTR:Wa.default,vSetAttr:Wa.default,VSIM:Ga.default,vSim:Ga.default,VSIM_WITHSCORES:Z.default,vSimWithScores:Z.default}})),Nf=c((e=>{var t=e&&e.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e,`__esModule`,{value:!0}),e.emitDiagnostics=e.dbgMaintenance=e.MAINTENANCE_EVENTS=void 0;let n=d(`net`),r=d(`dns/promises`),i=t(d(`node:assert`)),a=d(`node:timers/promises`),o=t(d(`node:diagnostics_channel`));e.MAINTENANCE_EVENTS={PAUSE_WRITING:`pause-writing`,RESUME_WRITING:`resume-writing`,TIMEOUTS_UPDATE:`timeouts-update`};let s={MOVING:`MOVING`,MIGRATING:`MIGRATING`,MIGRATED:`MIGRATED`,FAILING_OVER:`FAILING_OVER`,FAILED_OVER:`FAILED_OVER`};e.dbgMaintenance=(...e)=>{if(process.env.REDIS_DEBUG_MAINTENANCE)return console.log(`[MNT]`,...e)},e.emitDiagnostics=e=>{process.env.REDIS_EMIT_DIAGNOSTICS&&o.default.channel(`redis.maintenance`).publish(e)},e.default=class{#e;#t;#n=0;#r;static setupDefaultMaintOptions(e){e.maintNotifications===void 0&&(e.maintNotifications=e?.RESP===3?`auto`:`disabled`),e.maintEndpointType===void 0&&(e.maintEndpointType=`auto`),e.maintRelaxedSocketTimeout===void 0&&(e.maintRelaxedSocketTimeout=1e4),e.maintRelaxedCommandTimeout===void 0&&(e.maintRelaxedCommandTimeout=1e4)}static async getHandshakeCommand(t){if(t.maintNotifications===`disabled`)return;let n=t.url?new URL(t.url).hostname:t.socket?.host;if(n)return{cmd:[`CLIENT`,`MAINT_NOTIFICATIONS`,`ON`,`moving-endpoint-type`,await l(t.socket?.tls??!1,n,t)],errorHandler:n=>{if((0,e.dbgMaintenance)(`handshake failed:`,n),t.maintNotifications===`enabled`)throw n}}}constructor(e,t,n){this.#e=e,this.#t=n,this.#r=t,this.#e.addPushHandler(this.#i)}#i=t=>{if((0,e.dbgMaintenance)(`ONPUSH:`,t.map(String)),!Array.isArray(t)||![`MOVING`,`MIGRATING`,`MIGRATED`,`FAILING_OVER`,`FAILED_OVER`].includes(String(t[0])))return!1;let n=String(t[0]);switch((0,e.emitDiagnostics)({type:n,timestamp:Date.now(),data:{push:t.map(String)}}),n){case s.MOVING:{let n=t[2],r=t[3]?String(t[3]):null;return(0,e.dbgMaintenance)(`Received MOVING:`,n,r),this.#a(n,r),!0}case s.MIGRATING:case s.FAILING_OVER:return(0,e.dbgMaintenance)(`Received MIGRATING|FAILING_OVER`),this.#o(),!0;case s.MIGRATED:case s.FAILED_OVER:return(0,e.dbgMaintenance)(`Received MIGRATED|FAILED_OVER`),this.#s(),!0}return!1};#a=async(t,n)=>{this.#o();let r,o;if(n===null){(0,i.default)(this.#t.maintEndpointType===`none`),(0,i.default)(this.#t.socket!==void 0),(0,i.default)(`host`in this.#t.socket),(0,i.default)(typeof this.#t.socket.host==`string`),r=this.#t.socket.host,(0,i.default)(typeof this.#t.socket.port==`number`),o=this.#t.socket.port;let n=t*1e3/2;(0,e.dbgMaintenance)(`Wait for ${n}ms`),await(0,a.setTimeout)(n)}else{let e=n.split(`:`);r=e[0],o=Number(e[1])}(0,e.dbgMaintenance)(`Pausing writing of new commands to old socket`),this.#r._pause(),(0,e.dbgMaintenance)(`Creating new tmp client`);let s=performance.now();if(this.#t.url){let e=new URL(this.#t.url);e.hostname=r,e.port=String(o),this.#t.url=e.toString()}else this.#t.socket={...this.#t.socket,host:r,port:o};let c=this.#r.duplicate();c.on(`error`,t=>{(0,e.dbgMaintenance)(`[ERR]`,t)}),(0,e.dbgMaintenance)(`Tmp client created in ${(performance.now()-s).toFixed(2)}ms`),(0,e.dbgMaintenance)(`Set timeout for tmp client to ${this.#t.maintRelaxedSocketTimeout}`),c._maintenanceUpdate({relaxedCommandTimeout:this.#t.maintRelaxedCommandTimeout,relaxedSocketTimeout:this.#t.maintRelaxedSocketTimeout}),(0,e.dbgMaintenance)(`Connecting tmp client: ${r}:${o}`),s=performance.now(),await c.connect(),(0,e.dbgMaintenance)(`Connected to tmp client in ${(performance.now()-s).toFixed(2)}ms`),(0,e.dbgMaintenance)(`Wait for all in-flight commands to complete`),await this.#e.waitForInflightCommandsToComplete(),(0,e.dbgMaintenance)(`In-flight commands completed`),(0,e.dbgMaintenance)(`Swap client sockets...`);let l=this.#r._ejectSocket(),u=c._ejectSocket();this.#r._insertSocket(u),c._insertSocket(l),c.destroy(),(0,e.dbgMaintenance)(`Swap client sockets done.`),(0,e.dbgMaintenance)(`Resume writing`),this.#r._unpause(),this.#s()};#o=()=>{if(this.#n++,this.#n>1){(0,e.dbgMaintenance)(`Timeout relaxation already done`);return}let t={relaxedCommandTimeout:this.#t.maintRelaxedCommandTimeout,relaxedSocketTimeout:this.#t.maintRelaxedSocketTimeout};this.#r._maintenanceUpdate(t)};#s=()=>{if(this.#n=Math.max(this.#n-1,0),this.#n>0){(0,e.dbgMaintenance)(`Not ready to unrelax timeouts yet`);return}this.#r._maintenanceUpdate({relaxedCommandTimeout:void 0,relaxedSocketTimeout:void 0})}};function c(e){let t=(0,n.isIP)(e);if(t===4){let t=e.split(`.`).map(Number);return t[0]===10||t[0]===172&&t[1]>=16&&t[1]<=31||t[0]===192&&t[1]===168}return t===6?e.startsWith(`fc`)||e.startsWith(`fd`)||e===`::1`||e.startsWith(`fe80`):!1}async function l(t,a,o){if((0,i.default)(o.maintEndpointType!==void 0),o.maintEndpointType!==`auto`)return(0,e.dbgMaintenance)(`Determine endpoint type: ${o.maintEndpointType}`),o.maintEndpointType;let s=c((0,n.isIP)(a)?a:(await(0,r.lookup)(a,{family:0})).address),l;return l=t?s?`internal-fqdn`:`external-fqdn`:s?`internal-ip`:`external-ip`,(0,e.dbgMaintenance)(`Determine endpoint type: ${l}`),l}})),Pf=c((e=>{var t=e&&e.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e,`__esModule`,{value:!0});let n=d(`node:events`),r=t(d(`node:net`)),i=t(d(`node:tls`)),a=X(),o=d(`node:timers/promises`),s=Nf();e.default=class extends n.EventEmitter{#e;#t;#n;#r;#i;#a;#o;#s=!1;get isOpen(){return this.#s}#c=!1;get isReady(){return this.#c}#l=!1;#u=0;get socketEpoch(){return this.#u}constructor(e,t){super(),this.#e=e,this.#t=t?.connectTimeout??5e3,this.#n=this.#d(t),this.#r=this.#f(t),this.#i=t?.socketTimeout}#d(e){let t=e?.reconnectStrategy;return t===!1||typeof t==`number`?()=>t:t?(e,n)=>{try{let r=t(e,n);if(r!==!1&&!(r instanceof Error)&&typeof r!=`number`)throw TypeError(`Reconnect strategy should return \`false | Error | number\`, got ${r} instead`);return r}catch(t){return this.emit(`error`,t),this.defaultReconnectStrategy(e,t)}}:this.defaultReconnectStrategy}#f(e){if(e?.tls===!0){let t={...e,port:e?.port??6379,noDelay:e?.noDelay??!0,keepAlive:e?.keepAlive??!0,keepAliveInitialDelay:e?.keepAliveInitialDelay??5e3,timeout:void 0,onread:void 0,readable:!0,writable:!0};return{create(){return i.default.connect(t)},event:`secureConnect`}}if(e&&`path`in e){let t={...e,timeout:void 0,onread:void 0,readable:!0,writable:!0};return{create(){return r.default.createConnection(t)},event:`connect`}}let t={...e,port:e?.port??6379,noDelay:e?.noDelay??!0,keepAlive:e?.keepAlive??!0,keepAliveInitialDelay:e?.keepAliveInitialDelay??5e3,timeout:void 0,onread:void 0,readable:!0,writable:!0};return{create(){return r.default.createConnection(t)},event:`connect`}}#p(e,t){let n=this.#n(e,t);return n===!1?(this.#s=!1,this.emit(`error`,t),t):n instanceof Error?(this.#s=!1,this.emit(`error`,t),new a.ReconnectStrategyError(n,t)):n}async connect(){if(this.#s)throw Error(`Socket already opened`);return this.#s=!0,this.#m()}async#m(){let e=0;do try{this.#o=await this.#h(),this.emit(`connect`);try{await this.#e()}catch(e){throw this.#o.destroy(),this.#o=void 0,e}this.#c=!0,this.#u++,this.emit(`ready`)}catch(t){let n=this.#p(e++,t);if(typeof n!=`number`)throw n;this.emit(`error`,t),await(0,o.setTimeout)(n),this.emit(`reconnecting`)}while(this.#s&&!this.#c)}setMaintenanceTimeout(e){if((0,s.dbgMaintenance)(`Set socket timeout to ${e}`),this.#a===e){(0,s.dbgMaintenance)(`Socket already set maintenanceCommandTimeout to ${e}, skipping`);return}this.#a=e,e===void 0?this.#o?.setTimeout(this.#i??0):this.#o?.setTimeout(e)}async#h(){let e=this.#r.create(),t;return this.#t!==void 0&&(t=()=>e.destroy(new a.ConnectionTimeoutError),e.once(`timeout`,t),e.setTimeout(this.#t)),this.#l&&e.unref(),await(0,n.once)(e,this.#r.event),t&&e.removeListener(`timeout`,t),this.#i&&(e.once(`timeout`,()=>{let t=this.#a?new a.SocketTimeoutDuringMaintenanceError(this.#a):new a.SocketTimeoutError(this.#i);e.destroy(t)}),e.setTimeout(this.#i)),e.once(`error`,e=>this.#g(e)).once(`close`,t=>{t||!this.#s||this.#o!==e||this.#g(new a.SocketClosedUnexpectedlyError)}).on(`drain`,()=>this.emit(`drain`)).on(`data`,e=>this.emit(`data`,e)),e}#g(e){let t=this.#c;this.#c=!1,this.emit(`error`,e),!(!t||!this.#s||typeof this.#p(0,e)!=`number`)&&(this.emit(`reconnecting`),this.#m().catch(()=>{}))}write(e){if(this.#o){this.#o.cork();for(let t of e){for(let e of t)this.#o.write(e);if(this.#o.writableNeedDrain)break}this.#o.uncork()}}async quit(e){if(!this.#s)throw new a.ClientClosedError;this.#s=!1;let t=await e();return this.destroySocket(),t}close(){if(!this.#s)throw new a.ClientClosedError;this.#s=!1}destroy(){if(!this.#s)throw new a.ClientClosedError;this.#s=!1,this.destroySocket()}destroySocket(){this.#c=!1,this.#o&&=(this.#o.destroy(),void 0),this.emit(`end`)}ref(){this.#l=!1,this.#o?.ref()}unref(){this.#l=!0,this.#o?.unref()}defaultReconnectStrategy(e,t){if(t instanceof a.SocketTimeoutError)return!1;let n=Math.floor(Math.random()*200);return Math.min(2**e*50,2e3)+n}}})),Ff=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.Token=void 0,e.Token=class{value;expiresAtMs;receivedAtMs;constructor(e,t,n){this.value=e,this.expiresAtMs=t,this.receivedAtMs=n}getTtlMs(e){return this.expiresAtMs<e?0:this.expiresAtMs-e}}})),If=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.TokenManager=e.IDPError=void 0;let t=Ff();var n=class extends Error{message;isRetryable;constructor(e,t){super(e),this.message=e,this.isRetryable=t,this.name=`IDPError`}};e.IDPError=n,e.TokenManager=class{identityProvider;config;currentToken=null;refreshTimeout=null;listener=null;retryAttempt=0;constructor(e,t){if(this.identityProvider=e,this.config=t,this.config.expirationRefreshRatio>1)throw Error(`expirationRefreshRatio must be less than or equal to 1`);if(this.config.expirationRefreshRatio<0)throw Error(`expirationRefreshRatio must be greater or equal to 0`)}start(e,t=0){return this.listener&&this.stop(),this.listener=e,this.retryAttempt=0,this.scheduleNextRefresh(t),{dispose:()=>this.stop()}}calculateRetryDelay(){if(!this.config.retry)return 0;let{initialDelayMs:e,maxDelayMs:t,backoffMultiplier:n,jitterPercentage:r}=this.config.retry,i=e*n**(this.retryAttempt-1);if(i=Math.min(i,t),r){let e=i*(r/100),t=Math.random()*e-e/2;i+=t}return Math.max(0,Math.floor(i))}shouldRetry(e){if(!this.config.retry)return!1;let{maxAttempts:t,isRetryable:n}=this.config.retry;return this.retryAttempt>=t?!1:n?n(e,this.retryAttempt):!1}isRunning(){return this.listener!==null}async refresh(){if(!this.listener)throw Error(`TokenManager is not running, but refresh was called`);try{await this.identityProvider.requestToken().then(this.handleNewToken),this.retryAttempt=0}catch(e){if(this.shouldRetry(e)){this.retryAttempt++;let t=this.calculateRetryDelay();this.notifyError(`Token refresh failed (attempt ${this.retryAttempt}), retrying in ${t}ms: ${e}`,!0),this.scheduleNextRefresh(t)}else this.notifyError(e,!1),this.stop()}}handleNewToken=async({token:e,ttlMs:t})=>{if(!this.listener)throw Error(`TokenManager is not running, but a new token was received`);let n=this.wrapAndSetCurrentToken(e,t);this.listener.onNext(n),this.scheduleNextRefresh(this.calculateRefreshTime(n))};wrapAndSetCurrentToken(e,n){let r=Date.now(),i=new t.Token(e,r+n,r);return this.currentToken=i,i}scheduleNextRefresh(e){this.refreshTimeout&&=(clearTimeout(this.refreshTimeout),null),e===0?this.refresh():this.refreshTimeout=setTimeout(()=>this.refresh(),e)}calculateRefreshTime(e,t=Date.now()){let n=e.getTtlMs(t);return Math.floor(n*this.config.expirationRefreshRatio)}stop(){this.refreshTimeout&&=(clearTimeout(this.refreshTimeout),null),this.listener=null,this.currentToken=null,this.retryAttempt=0}getCurrentToken(){return this.currentToken}notifyError(e,t){let r=e instanceof Error?e.message:String(e);if(!this.listener)throw Error(`TokenManager is not running but received an error: ${r}`);this.listener.onError(new n(r,t))}}})),Lf=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.UnableToObtainNewCredentialsError=e.CredentialsError=void 0,e.CredentialsError=class extends Error{constructor(e){super(`Re-authentication with latest credentials failed: ${e}`),this.name=`CredentialsError`}},e.UnableToObtainNewCredentialsError=class extends Error{constructor(e){super(`Unable to obtain new credentials : ${e}`),this.name=`UnableToObtainNewCredentialsError`}}})),Rf=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.Token=e.CredentialsError=e.UnableToObtainNewCredentialsError=e.IDPError=e.TokenManager=void 0;var t=If();Object.defineProperty(e,`TokenManager`,{enumerable:!0,get:function(){return t.TokenManager}}),Object.defineProperty(e,`IDPError`,{enumerable:!0,get:function(){return t.IDPError}});var n=Lf();Object.defineProperty(e,`UnableToObtainNewCredentialsError`,{enumerable:!0,get:function(){return n.UnableToObtainNewCredentialsError}}),Object.defineProperty(e,`CredentialsError`,{enumerable:!0,get:function(){return n.CredentialsError}});var r=Ff();Object.defineProperty(e,`Token`,{enumerable:!0,get:function(){return r.Token}})})),zf=c((e=>{var t=e&&e.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e,`__esModule`,{value:!0}),e.EmptyAwareSinglyLinkedList=e.SinglyLinkedList=e.DoublyLinkedList=void 0;let n=t(d(`events`));e.DoublyLinkedList=class{#e=0;get length(){return this.#e}#t;get head(){return this.#t}#n;get tail(){return this.#n}push(e){return++this.#e,this.#n===void 0?this.#t=this.#n={previous:this.#t,next:void 0,value:e}:this.#n=this.#n.next={previous:this.#n,next:void 0,value:e}}unshift(e){return++this.#e,this.#t===void 0?this.#t=this.#n={previous:void 0,next:void 0,value:e}:this.#t=this.#t.previous={previous:void 0,next:this.#t,value:e}}add(e,t=!1){return t?this.unshift(e):this.push(e)}shift(){if(this.#t===void 0)return;--this.#e;let e=this.#t;return e.next?(e.next.previous=void 0,this.#t=e.next,e.next=void 0):this.#t=this.#n=void 0,e.value}remove(e){this.#e!==0&&(--this.#e,this.#n===e&&(this.#n=e.previous),this.#t===e?this.#t=e.next:(e.previous&&(e.previous.next=e.next),e.next&&(e.next.previous=e.previous)),e.previous=void 0,e.next=void 0)}reset(){this.#e=0,this.#t=this.#n=void 0}*[Symbol.iterator](){let e=this.#t;for(;e!==void 0;)yield e.value,e=e.next}*nodes(){let e=this.#t;for(;e;){let t=e.next;yield e,e=t}}};var r=class{#e=0;get length(){return this.#e}#t;get head(){return this.#t}#n;get tail(){return this.#n}push(e){++this.#e;let t={value:e,next:void 0,removed:!1};return this.#t===void 0?this.#t=this.#n=t:this.#n.next=this.#n=t}remove(e,t){if(e.removed)throw Error(`node already removed`);--this.#e,this.#t===e?this.#n===e?this.#t=this.#n=void 0:this.#t=e.next:this.#n===e?(this.#n=t,t.next=void 0):t.next=e.next,e.removed=!0}shift(){if(this.#t===void 0)return;let e=this.#t;return--this.#e===0?this.#t=this.#n=void 0:this.#t=e.next,e.removed=!0,e.value}reset(){this.#e=0,this.#t=this.#n=void 0}*[Symbol.iterator](){let e=this.#t;for(;e!==void 0;)yield e.value,e=e.next}};e.SinglyLinkedList=r,e.EmptyAwareSinglyLinkedList=class extends r{events=new n.default;reset(){let e=this.length;super.reset(),e!==this.length&&this.length===0&&this.events.emit(`empty`)}shift(){let e=this.length,t=super.shift();return e!==this.length&&this.length===0&&this.events.emit(`empty`),t}remove(e,t){let n=this.length;super.remove(e,t),n!==this.length&&this.length===0&&this.events.emit(`empty`)}}})),Bf=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0});function t(e){let t=[],n=`*`+e.length+`\r
11
- `;for(let r=0;r<e.length;r++){let i=e[r];if(typeof i==`string`)n+=`$`+Buffer.byteLength(i)+`\r
12
- `+i+`\r
13
- `;else if(i instanceof Buffer)t.push(n+`$`+i.length.toString()+`\r
14
- `,i),n=`\r
15
- `;else throw TypeError(`"arguments[${r}]" must be of type "string | Buffer", got ${typeof i} instead.`)}return t.push(n),t}e.default=t})),Vf=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.PubSub=e.PUBSUB_TYPE=void 0,e.PUBSUB_TYPE={CHANNELS:`CHANNELS`,PATTERNS:`PATTERNS`,SHARDED:`SHARDED`};let t={[e.PUBSUB_TYPE.CHANNELS]:{subscribe:Buffer.from(`subscribe`),unsubscribe:Buffer.from(`unsubscribe`),message:Buffer.from(`message`)},[e.PUBSUB_TYPE.PATTERNS]:{subscribe:Buffer.from(`psubscribe`),unsubscribe:Buffer.from(`punsubscribe`),message:Buffer.from(`pmessage`)},[e.PUBSUB_TYPE.SHARDED]:{subscribe:Buffer.from(`ssubscribe`),unsubscribe:Buffer.from(`sunsubscribe`),message:Buffer.from(`smessage`)}};e.PubSub=class n{static isStatusReply(n){return t[e.PUBSUB_TYPE.CHANNELS].subscribe.equals(n[0])||t[e.PUBSUB_TYPE.CHANNELS].unsubscribe.equals(n[0])||t[e.PUBSUB_TYPE.PATTERNS].subscribe.equals(n[0])||t[e.PUBSUB_TYPE.PATTERNS].unsubscribe.equals(n[0])||t[e.PUBSUB_TYPE.SHARDED].subscribe.equals(n[0])}static isShardedUnsubscribe(n){return t[e.PUBSUB_TYPE.SHARDED].unsubscribe.equals(n[0])}static#e(e){return Array.isArray(e)?e:[e]}static#t(e,t){return t?e.buffers:e.strings}#n=0;#r=!1;get isActive(){return this.#r}listeners={[e.PUBSUB_TYPE.CHANNELS]:new Map,[e.PUBSUB_TYPE.PATTERNS]:new Map,[e.PUBSUB_TYPE.SHARDED]:new Map};subscribe(e,r,i,a){let o=[t[e].subscribe],s=n.#e(r);for(let t of s){let n=this.listeners[e].get(t);(!n||n.unsubscribing)&&o.push(t)}if(o.length===1){for(let t of s)n.#t(this.listeners[e].get(t),a).add(i);return}return this.#r=!0,this.#n++,{args:o,channelsCounter:o.length-1,resolve:()=>{this.#n--;for(let t of s){let r=this.listeners[e].get(t);r||(r={unsubscribing:!1,buffers:new Set,strings:new Set},this.listeners[e].set(t,r)),n.#t(r,a).add(i)}},reject:()=>{this.#n--,this.#o()}}}extendChannelListeners(e,n,r){if(this.#i(e,n,r))return this.#r=!0,this.#n++,{args:[t[e].subscribe,n],channelsCounter:1,resolve:()=>this.#n--,reject:()=>{this.#n--,this.#o()}}}#i(e,t,n){let r=this.listeners[e].get(t);if(!r)return this.listeners[e].set(t,n),!0;for(let e of n.buffers)r.buffers.add(e);for(let e of n.strings)r.strings.add(e);return!1}extendTypeListeners(e,n){let r=[t[e].subscribe];for(let[t,i]of n)this.#i(e,t,i)&&r.push(t);if(r.length!==1)return this.#r=!0,this.#n++,{args:r,channelsCounter:r.length-1,resolve:()=>this.#n--,reject:()=>{this.#n--,this.#o()}}}unsubscribe(e,r,i,a){let o=this.listeners[e];if(!r)return this.#a([t[e].unsubscribe],NaN,()=>o.clear());let s=n.#e(r);if(!i)return this.#a([t[e].unsubscribe,...s],s.length,()=>{for(let e of s)o.delete(e)});let c=[t[e].unsubscribe];for(let e of s){let t=o.get(e);if(t){let e,n;if(a?(e=t.buffers,n=t.strings):(e=t.strings,n=t.buffers),(e.has(i)?e.size-1:e.size)!==0||n.size!==0)continue;t.unsubscribing=!0}c.push(e)}if(c.length===1){for(let e of s)n.#t(o.get(e),a).delete(i);return}return this.#a(c,c.length-1,()=>{for(let e of s){let t=o.get(e);t&&((a?t.buffers:t.strings).delete(i),t.buffers.size===0&&t.strings.size===0&&o.delete(e))}})}#a(e,t,n){return{args:e,channelsCounter:t,resolve:()=>{n(),this.#o()},reject:void 0}}#o(){this.#r=this.listeners[e.PUBSUB_TYPE.CHANNELS].size!==0||this.listeners[e.PUBSUB_TYPE.PATTERNS].size!==0||this.listeners[e.PUBSUB_TYPE.SHARDED].size!==0||this.#n!==0}reset(){this.#r=!1,this.#n=0}resubscribe(){let t=[];for(let[n,r]of Object.entries(this.listeners))r.size&&(this.#r=!0,n===e.PUBSUB_TYPE.SHARDED?this.#c(t,r):this.#s(t,n,r));return t}#s(e,n,r){this.#n++;let i=()=>this.#n--;e.push({args:[t[n].subscribe,...r.keys()],channelsCounter:r.size,resolve:i,reject:i})}#c(n,r){let i=()=>this.#n--;for(let a of r.keys())this.#n++,n.push({args:[t[e.PUBSUB_TYPE.SHARDED].subscribe,a],channelsCounter:1,resolve:i,reject:i})}handleMessageReply(n){return t[e.PUBSUB_TYPE.CHANNELS].message.equals(n[0])?(this.#l(e.PUBSUB_TYPE.CHANNELS,n[2],n[1]),!0):t[e.PUBSUB_TYPE.PATTERNS].message.equals(n[0])?(this.#l(e.PUBSUB_TYPE.PATTERNS,n[3],n[2],n[1]),!0):t[e.PUBSUB_TYPE.SHARDED].message.equals(n[0])?(this.#l(e.PUBSUB_TYPE.SHARDED,n[2],n[1]),!0):!1}removeShardedListeners(t){let n=this.listeners[e.PUBSUB_TYPE.SHARDED].get(t);return this.listeners[e.PUBSUB_TYPE.SHARDED].delete(t),this.#o(),n}removeAllListeners(){let t={[e.PUBSUB_TYPE.CHANNELS]:this.listeners[e.PUBSUB_TYPE.CHANNELS],[e.PUBSUB_TYPE.PATTERNS]:this.listeners[e.PUBSUB_TYPE.PATTERNS],[e.PUBSUB_TYPE.SHARDED]:this.listeners[e.PUBSUB_TYPE.SHARDED]};return this.#o(),this.listeners[e.PUBSUB_TYPE.CHANNELS]=new Map,this.listeners[e.PUBSUB_TYPE.PATTERNS]=new Map,this.listeners[e.PUBSUB_TYPE.SHARDED]=new Map,t}#l(e,t,n,r){let i=(r??n).toString(),a=this.listeners[e].get(i);if(!a)return;for(let e of a.buffers)e(t,n);if(!a.strings.size)return;let o=r?n.toString():i,s=o===`__redis__:invalidate`?t===null?null:t.map(e=>e.toString()):t.toString();for(let e of a.strings)e(s,o)}}})),Hf=c((e=>{var t=e&&e.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e,`__esModule`,{value:!0});let n=zf(),r=t(Bf()),i=Wa(),a=Vf(),o=X(),s=Nf(),c=Buffer.from(`pong`),l=Buffer.from(`RESET`),u={...i.PUSH_TYPE_MAPPING,[i.RESP_TYPES.SIMPLE_STRING]:Buffer};e.default=class e{#e;#t;#n=new n.DoublyLinkedList;#r=new n.EmptyAwareSinglyLinkedList;#i;#a;decoder;#o=new a.PubSub;#s=[this.#d.bind(this)];#c;setMaintenanceCommandTimeout(t){if(this.#c===t){(0,s.dbgMaintenance)(`Queue already set maintenanceCommandTimeout to ${t}, skipping`);return}if((0,s.dbgMaintenance)(`Setting maintenance command timeout to ${t}`),this.#c=t,this.#c===void 0){(0,s.dbgMaintenance)(`Queue will keep maintenanceCommandTimeout for exisitng commands, just to be on the safe side. New commands will receive normal timeouts`);return}let n=0,r=this.#n.length;for(let t of this.#n.nodes()){let r=t.value;e.#b(r),n++;let i=this.#c,a=AbortSignal.timeout(i);r.timeout={signal:a,listener:()=>{this.#n.remove(t),r.reject(new o.CommandTimeoutDuringMaintenanceError(i))},originalTimeout:r.timeout?.originalTimeout},a.addEventListener(`abort`,r.timeout.listener,{once:!0})}(0,s.dbgMaintenance)(`Total of ${n} of ${r} timeouts reset to ${t}`)}get isPubSubActive(){return this.#o.isActive}constructor(e,t,n){this.#e=e,this.#t=t,this.#i=n,this.decoder=this.#p()}#l(e){this.#r.shift().resolve(e)}#u(e){this.#r.shift().reject(e)}#d(e){if(this.#o.handleMessageReply(e))return!0;let t=a.PubSub.isShardedUnsubscribe(e);if(t&&!this.#r.length){let t=e[1].toString();return this.#i(t,this.#o.removeShardedListeners(t)),!0}else if(t||a.PubSub.isStatusReply(e)){let t=this.#r.head.value;return(Number.isNaN(t.channelsCounter)&&e[2]===0||--t.channelsCounter===0)&&this.#r.shift().resolve(),!0}return!1}#f(){return this.#r.head.value.typeMapping??{}}#p(){return new i.Decoder({onReply:e=>this.#l(e),onErrorReply:e=>this.#u(e),onPush:e=>{for(let t of this.#s)if(t(e))return},getTypeMapping:()=>this.#f()})}addPushHandler(e){this.#s.push(e)}async waitForInflightCommandsToComplete(){if(this.#r.length!==0)return new Promise(e=>{this.#r.events.on(`empty`,e)})}addCommand(e,t){return this.#t&&this.#n.length+this.#r.length>=this.#t?Promise.reject(Error(`The queue is full`)):t?.abortSignal?.aborted?Promise.reject(new o.AbortError):new Promise((n,r)=>{let i,a={args:e,chainId:t?.chainId,abort:void 0,timeout:void 0,resolve:n,reject:r,channelsCounter:void 0,typeMapping:t?.typeMapping},s=this.#c??t?.timeout,c=this.#c!==void 0;if(s){let e=AbortSignal.timeout(s);a.timeout={signal:e,listener:()=>{this.#n.remove(i),a.reject(c?new o.CommandTimeoutDuringMaintenanceError(s):new o.TimeoutError)},originalTimeout:t?.timeout},e.addEventListener(`abort`,a.timeout.listener,{once:!0})}let l=t?.abortSignal;l&&(a.abort={signal:l,listener:()=>{this.#n.remove(i),a.reject(new o.AbortError)}},l.addEventListener(`abort`,a.abort.listener,{once:!0})),i=this.#n.add(a,t?.asap)})}#m(e,t=!1,n){return new Promise((r,a)=>{this.#n.add({args:e.args,chainId:n,abort:void 0,timeout:void 0,resolve(){e.resolve(),r()},reject(t){e.reject?.(),a(t)},channelsCounter:e.channelsCounter,typeMapping:i.PUSH_TYPE_MAPPING},t)})}#h(){this.#e===2&&(this.decoder.onReply=(e=>{if(Array.isArray(e)){if(this.#d(e))return;if(c.equals(e[0])){let{resolve:t,typeMapping:n}=this.#r.shift(),r=e[1].length===0?e[0]:e[1];t(n?.[i.RESP_TYPES.SIMPLE_STRING]===Buffer?r:r.toString());return}}return this.#l(e)}),this.decoder.getTypeMapping=()=>u)}subscribe(e,t,n,r){let i=this.#o.subscribe(e,t,n,r);if(i)return this.#h(),this.#m(i)}#g(){this.decoder.onReply=(e=>this.#l(e)),this.decoder.getTypeMapping=()=>this.#f()}unsubscribe(e,t,n,r){let i=this.#o.unsubscribe(e,t,n,r);if(i){if(i&&this.#e===2){let{resolve:e}=i;i.resolve=()=>{this.#o.isActive||this.#g(),e()}}return this.#m(i)}}removeAllPubSubListeners(){return this.#o.removeAllListeners()}resubscribe(e){let t=this.#o.resubscribe();if(t.length)return this.#h(),Promise.all(t.map(t=>this.#m(t,!0,e)))}extendPubSubChannelListeners(e,t,n){let r=this.#o.extendChannelListeners(e,t,n);if(r)return this.#h(),this.#m(r)}extendPubSubListeners(e,t){let n=this.#o.extendTypeListeners(e,t);if(n)return this.#h(),this.#m(n)}getPubSubListeners(e){return this.#o.listeners[e]}monitor(e,t){return new Promise((n,r)=>{let i=t?.typeMapping??{};this.#n.add({args:[`MONITOR`],chainId:t?.chainId,abort:void 0,timeout:void 0,resolve:()=>{this.#_?this.#_=e:this.decoder.onReply=e,this.decoder.getTypeMapping=()=>i,n()},reject:r,channelsCounter:void 0,typeMapping:i},t?.asap)})}resetDecoder(){this.#g(),this.decoder.reset()}#_;async reset(e,t){return new Promise((n,r)=>{this.#_=this.decoder.onReply,this.decoder.onReply=(e=>{if(typeof e==`string`&&e===`RESET`||e instanceof Buffer&&l.equals(e)){this.#g(),this.#_=void 0,this.#o.reset(),this.#r.shift().resolve(e);return}this.#_(e)}),this.#n.push({args:[`RESET`],chainId:e,abort:void 0,timeout:void 0,resolve:n,reject:r,channelsCounter:void 0,typeMapping:t})})}isWaitingToWrite(){return this.#n.length>0}*commandsToWrite(){let t=this.#n.shift();for(;t;){let n;try{n=(0,r.default)(t.args)}catch(e){t.reject(e),t=this.#n.shift();continue}t.args=void 0,t.abort&&=(e.#y(t),void 0),t.timeout&&=(e.#b(t),void 0),this.#a=t.chainId,t.chainId=void 0,this.#r.push(t),yield n,t=this.#n.shift()}}#v(e){for(let t of this.#r)t.reject(e);this.#r.reset()}static#y(e){e.abort.signal.removeEventListener(`abort`,e.abort.listener)}static#b(e){e.timeout?.signal.removeEventListener(`abort`,e.timeout.listener)}static#x(t,n){t.abort&&e.#y(t),t.timeout&&e.#b(t),t.reject(n)}flushWaitingForReply(t){if(this.resetDecoder(),this.#o.reset(),this.#v(t),this.#a){for(;this.#n.head?.value.chainId===this.#a;)e.#x(this.#n.shift(),t);this.#a=void 0}}flushAll(t){this.resetDecoder(),this.#o.reset(),this.#v(t);for(let n of this.#n)e.#x(n,t);this.#n.reset()}isEmpty(){return this.#n.length===0&&this.#r.length===0}}})),$=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.scriptArgumentsPrefix=e.functionArgumentsPrefix=e.getTransformReply=e.attachConfig=void 0;function t(){throw Error(`Some RESP3 results for Redis Query Engine responses may change. Refer to the readme for guidance`)}function n({BaseClass:e,commands:n,createCommand:i,createModuleCommand:a,createFunctionCommand:o,createScriptCommand:s,config:c}){let l=c?.RESP??2,u=class extends e{};for(let[e,r]of Object.entries(n))c?.RESP==3&&r.unstableResp3&&!c.unstableResp3?u.prototype[e]=t:u.prototype[e]=i(r,l);if(c?.modules)for(let[e,n]of Object.entries(c.modules)){let i=Object.create(null);for(let[e,r]of Object.entries(n))c.RESP==3&&r.unstableResp3&&!c.unstableResp3?i[e]=t:i[e]=a(r,l);r(u.prototype,e,i)}if(c?.functions)for(let[e,t]of Object.entries(c.functions)){let n=Object.create(null);for(let[e,r]of Object.entries(t))n[e]=o(e,r,l);r(u.prototype,e,n)}if(c?.scripts)for(let[e,t]of Object.entries(c.scripts))u.prototype[e]=s(t,l);return u}e.attachConfig=n;function r(e,t,n){Object.defineProperty(e,t,{get(){let e=Object.create(n);return e._self=this,Object.defineProperty(this,t,{value:e}),e}})}function i(e,t){switch(typeof e.transformReply){case`function`:return e.transformReply;case`object`:return e.transformReply[t]}}e.getTransformReply=i;function a(e,t){let n=[t.IS_READ_ONLY?`FCALL_RO`:`FCALL`,e];return t.NUMBER_OF_KEYS!==void 0&&n.push(t.NUMBER_OF_KEYS.toString()),n}e.functionArgumentsPrefix=a;function o(e){let t=[e.IS_READ_ONLY?`EVALSHA_RO`:`EVALSHA`,e.SHA1];return e.NUMBER_OF_KEYS!==void 0&&t.push(e.NUMBER_OF_KEYS.toString()),t}e.scriptArgumentsPrefix=o})),Uf=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=X();e.default=class{typeMapping;constructor(e){this.typeMapping=e}queue=[];scriptsInUse=new Set;addCommand(e,t){this.queue.push({args:e,transformReply:t})}addScript(e,t,n){let r=[];r.preserve=t.preserve,this.scriptsInUse.has(e.SHA1)?r.push(`EVALSHA`,e.SHA1):(this.scriptsInUse.add(e.SHA1),r.push(`EVAL`,e.SCRIPT)),e.NUMBER_OF_KEYS!==void 0&&r.push(e.NUMBER_OF_KEYS.toString()),r.push(...t),this.addCommand(r,n)}transformReplies(e){let n=[],r=e.map((e,r)=>{if(e instanceof t.ErrorReply)return n.push(r),e;let{transformReply:i,args:a}=this.queue[r];return i?i(e,a.preserve,this.typeMapping):e});if(n.length)throw new t.MultiErrorReply(r,n);return r}}})),Wf=c((e=>{var t=e&&e.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e,`__esModule`,{value:!0});let n=t(Mf()),r=t(Uf()),i=$(),a=Z();e.default=class e{static#e(e,t){let n=(0,i.getTransformReply)(e,t);return function(...t){let r=new a.BasicCommandParser;e.parseCommand(r,...t);let i=r.redisArgs;return i.preserve=r.preserve,this.addCommand(i,n)}}static#t(e,t){let n=(0,i.getTransformReply)(e,t);return function(...t){let r=new a.BasicCommandParser;e.parseCommand(r,...t);let i=r.redisArgs;return i.preserve=r.preserve,this._self.addCommand(i,n)}}static#n(e,t,n){let r=(0,i.functionArgumentsPrefix)(e,t),o=(0,i.getTransformReply)(t,n);return function(...e){let n=new a.BasicCommandParser;n.push(...r),t.parseCommand(n,...e);let i=n.redisArgs;return i.preserve=n.preserve,this._self.addCommand(i,o)}}static#r(e,t){let n=(0,i.getTransformReply)(e,t);return function(...t){let r=new a.BasicCommandParser;e.parseCommand(r,...t);let i=r.redisArgs;return i.preserve=r.preserve,this.#c(e,i,n)}}static extend(t){return(0,i.attachConfig)({BaseClass:e,commands:n.default,createCommand:e.#e,createModuleCommand:e.#t,createFunctionCommand:e.#n,createScriptCommand:e.#r,config:t})}#i;#a;#o;#s;constructor(e,t,n){this.#i=new r.default(n),this.#a=e,this.#o=t}SELECT(e,t){return this.#s=e,this.#i.addCommand([`SELECT`,e.toString()],t),this}select=this.SELECT;addCommand(e,t){return this.#i.addCommand(e,t),this}#c(e,t,n){return this.#i.addScript(e,t,n),this}async exec(e=!1){return e?this.execAsPipeline():this.#i.transformReplies(await this.#a(this.#i.queue,this.#s))}EXEC=this.exec;execTyped(e=!1){return this.exec(e)}async execAsPipeline(){return this.#i.queue.length===0?[]:this.#i.transformReplies(await this.#o(this.#i.queue,this.#s))}execAsPipelineTyped(){return this.execAsPipeline()}}})),Gf=c((e=>{var t=e&&e.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e,`__esModule`,{value:!0}),e.RedisLegacyClient=void 0;let n=$(),r=t(Mf()),i=t(Uf());var a=class e{static#e(t,n){let r;return typeof n[n.length-1]==`function`&&(r=n.pop()),e.pushArguments(t,n),r}static pushArguments(t,n){for(let r=0;r<n.length;++r){let i=n[r];Array.isArray(i)?e.pushArguments(t,i):t.push(typeof i==`number`||i instanceof Date?i.toString():i)}}static getTransformReply(e,t){return e.TRANSFORM_LEGACY_REPLY?(0,n.getTransformReply)(e,t):void 0}static#t(t,n,r){let i=e.getTransformReply(n,r);return function(...n){let r=[t],a=e.#e(r,n),o=this.#n.sendCommand(r);if(!a){o.catch(e=>this.#n.emit(`error`,e));return}o.then(e=>a(null,i?i(e):e)).catch(e=>a(e))}}#n;#r;constructor(t){this.#n=t;let n=t.options?.RESP??2;for(let[t,i]of Object.entries(r.default))this[t]=e.#t(t,i,n);this.#r=o.factory(n)}sendCommand(...t){let n=[],r=e.#e(n,t),i=this.#n.sendCommand(n);if(!r){i.catch(e=>this.#n.emit(`error`,e));return}i.then(e=>r(null,e)).catch(e=>r(e))}multi(){return this.#r(this.#n)}};e.RedisLegacyClient=a;var o=class e{static#e(e,t,n){let r=a.getTransformReply(t,n);return function(...t){let n=[e];return a.pushArguments(n,t),this.#t.addCommand(n,r),this}}static factory(t){let n=class extends e{};for(let[i,a]of Object.entries(r.default))n.prototype[i]=e.#e(i,a,t);return e=>new n(e)}#t=new i.default;#n;constructor(e){this.#n=e}sendCommand(...e){let t=[];return a.pushArguments(t,e),this.#t.addCommand(t),this}exec(e){let t=this.#n._executeMulti(this.#t.queue);if(!e){t.catch(e=>this.#n.emit(`error`,e));return}t.then(t=>e(null,this.#t.transformReplies(t))).catch(t=>e?.(t))}}})),Kf=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.PooledNoRedirectClientSideCache=e.BasicPooledClientSideCache=e.PooledClientSideCacheProvider=e.BasicClientSideCache=e.ClientSideCacheProvider=e.CacheStats=void 0;let t=d(`stream`);var n=class e{hitCount;missCount;loadSuccessCount;loadFailureCount;totalLoadTime;evictionCount;constructor(e,t,n,r,i,a){if(this.hitCount=e,this.missCount=t,this.loadSuccessCount=n,this.loadFailureCount=r,this.totalLoadTime=i,this.evictionCount=a,e<0||t<0||n<0||r<0||i<0||a<0)throw Error(`All statistics values must be non-negative`)}static of(t=0,n=0,r=0,i=0,a=0,o=0){return new e(t,n,r,i,a,o)}static empty(){return e.EMPTY_STATS}static EMPTY_STATS=new e(0,0,0,0,0,0);requestCount(){return this.hitCount+this.missCount}hitRate(){let e=this.requestCount();return e===0?1:this.hitCount/e}missRate(){let e=this.requestCount();return e===0?0:this.missCount/e}loadCount(){return this.loadSuccessCount+this.loadFailureCount}loadFailureRate(){let e=this.loadCount();return e===0?0:this.loadFailureCount/e}averageLoadPenalty(){let e=this.loadCount();return e===0?0:this.totalLoadTime/e}minus(t){return e.of(Math.max(0,this.hitCount-t.hitCount),Math.max(0,this.missCount-t.missCount),Math.max(0,this.loadSuccessCount-t.loadSuccessCount),Math.max(0,this.loadFailureCount-t.loadFailureCount),Math.max(0,this.totalLoadTime-t.totalLoadTime),Math.max(0,this.evictionCount-t.evictionCount))}plus(t){return e.of(this.hitCount+t.hitCount,this.missCount+t.missCount,this.loadSuccessCount+t.loadSuccessCount,this.loadFailureCount+t.loadFailureCount,this.totalLoadTime+t.totalLoadTime,this.evictionCount+t.evictionCount)}};e.CacheStats=n;var r=class e{static INSTANCE=new e;constructor(){}recordHits(e){}recordMisses(e){}recordLoadSuccess(e){}recordLoadFailure(e){}recordEvictions(e){}snapshot(){return n.empty()}};function i(){return r.INSTANCE}var a=class e{#e=0;#t=0;#n=0;#r=0;#i=0;#a=0;recordHits(e){this.#e+=e}recordMisses(e){this.#t+=e}recordLoadSuccess(e){this.#n++,this.#i+=e}recordLoadFailure(e){this.#r++,this.#i+=e}recordEvictions(e){this.#a+=e}snapshot(){return n.of(this.#e,this.#t,this.#n,this.#r,this.#i,this.#a)}static create(){return new e}};function o(e){let t=Array(e.length*2);for(let n=0;n<e.length;n++)t[n]=e[n].length,t[n+e.length]=e[n];return t.join(`_`)}var s=class{#e=!1;#t;constructor(e){e==0?this.#t=0:this.#t=Date.now()+e}invalidate(){this.#e=!0}validate(){return!this.#e&&(this.#t==0||Date.now()<this.#t)}},c=class extends s{#e;get value(){return this.#e}constructor(e,t){super(e),this.#e=t}},l=class extends s{#e;get promise(){return this.#e}constructor(e,t){super(e),this.#e=t}},u=class extends t.EventEmitter{};e.ClientSideCacheProvider=u;var f=class extends u{#e;#t;ttl;maxEntries;lru;#n;recordEvictions(e){this.#n.recordEvictions(e)}recordHits(e){this.#n.recordHits(e)}recordMisses(e){this.#n.recordMisses(e)}constructor(e){super(),this.#e=new Map,this.#t=new Map,this.ttl=e?.ttl??0,this.maxEntries=e?.maxEntries??0,this.lru=e?.evictPolicy!==`FIFO`,this.#n=e?.recordStats===!1?i():a.create()}async handleCache(e,t,n,r,i){let a,s=o(t.redisArgs),u=this.get(s);if(u){if(u instanceof c)return this.#n.recordHits(1),structuredClone(u.value);if(u instanceof l)this.#n.recordMisses(1),a=await u.promise;else throw Error(`unknown cache entry type`)}else{this.#n.recordMisses(1);let r=performance.now(),i=n();u=this.createPromiseEntry(e,i),this.set(s,u,t.keys);try{a=await i;let e=performance.now()-r;this.#n.recordLoadSuccess(e)}catch(e){let t=performance.now()-r;throw this.#n.recordLoadFailure(t),u.validate()&&this.delete(s),e}}let d;return d=r?r(a,t.preserve,i):a,u.validate()&&(u=this.createValueEntry(e,d),this.set(s,u,t.keys),this.emit(`cached-key`,s)),structuredClone(d)}trackingOn(){return[`CLIENT`,`TRACKING`,`ON`]}invalidate(e){if(e===null){this.clear(!1),this.emit(`invalidate`,e);return}let t=this.#t.get(e.toString());if(t){for(let e of t){let t=this.#e.get(e);t&&t.invalidate(),this.#e.delete(e)}this.#t.delete(e.toString())}this.emit(`invalidate`,e)}clear(e=!0){let t=this.#e.size;this.#e.clear(),this.#t.clear(),e?this.#n instanceof r||(this.#n=a.create()):t>0&&this.#n.recordEvictions(t)}get(e){let t=this.#e.get(e);if(t&&!t.validate()){this.delete(e),this.#n.recordEvictions(1),this.emit(`cache-evict`,e);return}return t!==void 0&&this.lru&&(this.#e.delete(e),this.#e.set(e,t)),t}delete(e){let t=this.#e.get(e);t&&(t.invalidate(),this.#e.delete(e))}has(e){return this.#e.has(e)}set(e,t,n){let r=this.#e.size,i=this.#e.get(e);i&&(r--,i.invalidate()),this.maxEntries>0&&r>=this.maxEntries&&(this.deleteOldest(),this.#n.recordEvictions(1)),this.#e.set(e,t);for(let t of n)this.#t.has(t.toString())||this.#t.set(t.toString(),new Set),this.#t.get(t.toString()).add(e)}size(){return this.#e.size}createValueEntry(e,t){return new c(this.ttl,t)}createPromiseEntry(e,t){return new l(this.ttl,t)}stats(){return this.#n.snapshot()}onError(){this.clear()}onClose(){this.clear()}deleteOldest(){let e=this.#e[Symbol.iterator]().next();if(!e.done){let t=e.value[0],n=this.#e.get(t);n&&n.invalidate(),this.#e.delete(t)}}entryEntries(){return this.#e.entries()}keySetEntries(){return this.#t.entries()}};e.BasicClientSideCache=f;var p=class extends f{#e=!1;disable(){this.#e=!0}enable(){this.#e=!1}get(e){if(!this.#e)return super.get(e)}has(e){return this.#e?!1:super.has(e)}onPoolClose(){this.clear()}};e.PooledClientSideCacheProvider=p;var m=class extends p{onError(){this.clear(!1)}onClose(){this.clear(!1)}};e.BasicPooledClientSideCache=m;var h=class extends c{#e;constructor(e,t,n){super(e,n),this.#e=t}validate(){let e=super.validate();return this.#e&&(e=e&&this.#e.client.isReady&&this.#e.client.socketEpoch==this.#e.epoch),e}},g=class extends l{#e;constructor(e,t,n){super(e,n),this.#e=t}validate(){return super.validate()&&this.#e.client.isReady&&this.#e.client.socketEpoch==this.#e.epoch}};e.PooledNoRedirectClientSideCache=class extends m{createValueEntry(e,t){let n={epoch:e.socketEpoch,client:e};return new h(this.ttl,n,t)}createPromiseEntry(e,t){let n={epoch:e.socketEpoch,client:e};return new g(this.ttl,n,t)}onError(){}onClose(){}}})),qf=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default=class{#e;#t;get(e){return JSON.stringify(e,t())===this.#t?this.#e:void 0}set(e,n){this.#e=n,this.#t=JSON.stringify(e,t())}};function t(){let e=new WeakSet;return function(t,n){return n&&typeof n==`object`?e.has(n)?`circular`:(e.add(n),n):n}}})),Jf=c((e=>{var t=e&&e.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e,`__esModule`,{value:!0}),e.RedisClientPool=void 0;let n=t(Mf()),r=t(Xf()),i=d(`node:events`),a=zf(),o=X(),s=$(),c=t(Wf()),l=Kf(),u=Z(),f=t(qf());e.RedisClientPool=class e extends i.EventEmitter{static#e(e,t){let n=(0,s.getTransformReply)(e,t);return async function(...t){let r=new u.BasicCommandParser;return e.parseCommand(r,...t),this.execute(t=>t._executeCommand(e,r,this._commandOptions,n))}}static#t(e,t){let n=(0,s.getTransformReply)(e,t);return async function(...t){let r=new u.BasicCommandParser;return e.parseCommand(r,...t),this._self.execute(t=>t._executeCommand(e,r,this._self._commandOptions,n))}}static#n(e,t,n){let r=(0,s.functionArgumentsPrefix)(e,t),i=(0,s.getTransformReply)(t,n);return async function(...e){let n=new u.BasicCommandParser;return n.push(...r),t.parseCommand(n,...e),this._self.execute(e=>e._executeCommand(t,n,this._self._commandOptions,i))}}static#r(e,t){let n=(0,s.scriptArgumentsPrefix)(e),r=(0,s.getTransformReply)(e,t);return async function(...t){let i=new u.BasicCommandParser;return i.pushVariadic(n),e.parseCommand(i,...t),this.execute(t=>t._executeScript(e,i,this._commandOptions,r))}}static#i=new f.default;static create(t,r){let i=e.#i.get(t);return i||(i=(0,s.attachConfig)({BaseClass:e,commands:n.default,createCommand:e.#e,createModuleCommand:e.#t,createFunctionCommand:e.#n,createScriptCommand:e.#r,config:t}),i.prototype.Multi=c.default.extend(t),e.#i.set(t,i)),Object.create(new i(t,r))}static#a={minimum:1,maximum:100,acquireTimeout:3e3,cleanupDelay:3e3};#o;#s;#c=new a.SinglyLinkedList;get idleClients(){return this._self.#c.length}#l=new a.DoublyLinkedList;get clientsInUse(){return this._self.#l.length}get totalClients(){return this._self.#c.length+this._self.#l.length}#u=new a.SinglyLinkedList;get tasksQueueLength(){return this._self.#u.length}#d=!1;get isOpen(){return this._self.#d}#f=!1;get isClosing(){return this._self.#f}#p;get clientSideCache(){return this._self.#p}constructor(t,n){if(super(),this.#s={...e.#a,...n},n?.clientSideCache)if(t===void 0&&(t={}),n.clientSideCache instanceof l.PooledClientSideCacheProvider)this.#p=t.clientSideCache=n.clientSideCache;else{let e=n.clientSideCache;this.#p=t.clientSideCache=new l.BasicPooledClientSideCache(e)}this.#o=r.default.factory(t).bind(void 0,t)}_self=this;_commandOptions;withCommandOptions(e){let t=Object.create(this._self);return t._commandOptions=e,t}#m(e,t){let n=Object.create(this._self);return n._commandOptions=Object.create(this._commandOptions??null),n._commandOptions[e]=t,n}withTypeMapping(e){return this._self.#m(`typeMapping`,e)}withAbortSignal(e){return this._self.#m(`abortSignal`,e)}asap(){return this._self.#m(`asap`,!0)}async connect(){if(this._self.#d)return;this._self.#d=!0;let e=[];for(;e.length<this._self.#s.minimum;)e.push(this._self.#h());try{await Promise.all(e)}catch(e){throw this.destroy(),e}return this}async#h(){let e=this._self.#l.push(this._self.#o().on(`error`,e=>this.emit(`error`,e)));try{await e.value.connect()}catch(t){throw this._self.#l.remove(e),t}this._self.#_(e)}execute(e){return new Promise((t,n)=>{let r=this._self.#c.shift(),{tail:i}=this._self.#u;if(!r){let r;this._self.#s.acquireTimeout>0&&(r=setTimeout(()=>{this._self.#u.remove(a,i),n(new o.TimeoutError(`Timeout waiting for a client`))},this._self.#s.acquireTimeout));let a=this._self.#u.push({timeout:r,resolve:t,reject:n,fn:e});this.totalClients<this._self.#s.maximum&&this._self.#h();return}let a=this._self.#l.push(r);this._self.#g(a,t,n,e)})}#g(e,t,n,r){let i=r(e.value);i instanceof Promise?i.then(t,n).finally(()=>this.#_(e)):(t(i),this.#_(e))}#_(e){let t=this.#u.shift();if(t){clearTimeout(t.timeout),this.#g(e,t.resolve,t.reject,t.fn);return}this.#l.remove(e),this.#c.push(e.value),this.#v()}cleanupTimeout;#v(){this.totalClients<=this.#s.minimum||(clearTimeout(this.cleanupTimeout),this.cleanupTimeout=setTimeout(()=>this.#y(),this.#s.cleanupDelay))}#y(){let e=Math.min(this.#c.length,this.totalClients-this.#s.minimum);for(let t=0;t<e;t++)this.#c.shift().destroy()}sendCommand(e,t){return this.execute(n=>n.sendCommand(e,t))}MULTI(){return new this.Multi((e,t)=>this.execute(n=>n._executeMulti(e,t)),e=>this.execute(t=>t._executePipeline(e)),this._commandOptions?.typeMapping)}multi=this.MULTI;async close(){if(!this._self.#f&&this._self.#d){this._self.#f=!0;try{let e=[];for(let t of this._self.#c)e.push(t.close());for(let t of this._self.#l)e.push(t.close());await Promise.all(e),this.#p?.onPoolClose(),this._self.#c.reset(),this._self.#l.reset()}catch{}finally{this._self.#f=!1}}}destroy(){for(let e of this._self.#c)e.destroy();this._self.#c.reset();for(let e of this._self.#l)e.destroy();this._self.#p?.onPoolClose(),this._self.#l.reset(),this._self.#d=!1}}})),Yf=c(((e,t)=>{t.exports={name:`@redis/client`,version:`5.9.0-beta.3`,license:`MIT`,main:`./dist/index.js`,types:`./dist/index.d.ts`,files:[`dist/`,`!dist/tsconfig.tsbuildinfo`],scripts:{test:`nyc -r text-summary -r lcov mocha -r tsx './lib/**/*.spec.ts'`,release:`release-it`},dependencies:{"cluster-key-slot":`1.1.2`},devDependencies:{"@redis/test-utils":`*`,"@types/sinon":`^17.0.3`,sinon:`^17.0.1`},engines:{node:`>= 18`},repository:{type:`git`,url:`git://github.com/redis/node-redis.git`},bugs:{url:`https://github.com/redis/node-redis/issues`},homepage:`https://github.com/redis/node-redis/tree/master/packages/client`,keywords:[`redis`]}})),Xf=c((e=>{var t=e&&e.__importDefault||function(e){return e&&e.__esModule?e:{default:e}},n;Object.defineProperty(e,`__esModule`,{value:!0});let r=t(Mf()),i=t(Pf()),a=Rf(),o=t(Hf()),s=d(`node:events`),c=$(),l=X(),u=d(`node:url`),f=Vf(),p=t(Wf()),m=t(yc()),h=Gf(),g=Jf(),_=Q(),v=Kf(),y=Z(),b=t(qf()),x=Yf(),S=t(Nf());var ee=class extends s.EventEmitter{static#e(e,t){let n=(0,c.getTransformReply)(e,t);return async function(...t){let r=new y.BasicCommandParser;return e.parseCommand(r,...t),this._self._executeCommand(e,r,this._commandOptions,n)}}static#t(e,t){let n=(0,c.getTransformReply)(e,t);return async function(...t){let r=new y.BasicCommandParser;return e.parseCommand(r,...t),this._self._executeCommand(e,r,this._self._commandOptions,n)}}static#n(e,t,n){let r=(0,c.functionArgumentsPrefix)(e,t),i=(0,c.getTransformReply)(t,n);return async function(...e){let n=new y.BasicCommandParser;return n.push(...r),t.parseCommand(n,...e),this._self._executeCommand(t,n,this._self._commandOptions,i)}}static#r(e,t){let n=(0,c.scriptArgumentsPrefix)(e),r=(0,c.getTransformReply)(e,t);return async function(...t){let i=new y.BasicCommandParser;return i.push(...n),e.parseCommand(i,...t),this._executeScript(e,i,this._commandOptions,r)}}static#i=new b.default;static factory(e){let t=n.#i.get(e);return t||(t=(0,c.attachConfig)({BaseClass:n,commands:r.default,createCommand:n.#e,createModuleCommand:n.#t,createFunctionCommand:n.#n,createScriptCommand:n.#r,config:e}),t.prototype.Multi=p.default.extend(e),n.#i.set(e,t)),e=>Object.create(new t(e))}static create(e){return n.factory(e)(e)}static parseOptions(e){if(e?.url){let t=n.parseURL(e.url);if(e.socket){if(e.socket.tls!==void 0&&e.socket.tls!==t.socket.tls)throw TypeError(`tls socket option is set to ${e.socket.tls} which is mismatch with protocol or the URL ${e.url} passed`);t.socket=Object.assign(e.socket,t.socket)}Object.assign(e,t)}return e}static parseURL(e){let{hostname:t,port:n,protocol:r,username:i,password:a,pathname:o}=new u.URL(e),s={socket:{host:t,tls:!1}};if(r!==`redis:`&&r!==`rediss:`)throw TypeError(`Invalid protocol`);if(s.socket.tls=r===`rediss:`,n&&(s.socket.port=Number(n)),i&&(s.username=decodeURIComponent(i)),a&&(s.password=decodeURIComponent(a)),(i||a)&&(s.credentialsProvider={type:`async-credentials-provider`,credentials:async()=>({username:i?decodeURIComponent(i):void 0,password:a?decodeURIComponent(a):void 0})}),o.length>1){let e=Number(o.substring(1));if(isNaN(e))throw TypeError(`Invalid pathname`);s.database=e}return s}#a;#o;#s;#c=0;#l;_self=this;_commandOptions;#u;#d;#f;#p=null;#m=!1;get clientSideCache(){return this._self.#f}get options(){return this._self.#a}get isOpen(){return this._self.#o.isOpen}get isReady(){return this._self.#o.isReady}get isPubSubActive(){return this._self.#s.isPubSubActive}get socketEpoch(){return this._self.#o.socketEpoch}get isWatching(){return this._self.#d!==void 0}get isDirtyWatch(){return this._self.#u!==void 0}setDirtyWatch(e){this._self.#u=e}constructor(e){if(super(),this.#h(e),this.#a=this.#g(e),this.#s=this.#_(),this.#o=this.#S(),this.#a.maintNotifications!==`disabled`&&new S.default(this.#s,this,this.#a),this.#a.clientSideCache){if(this.#a.clientSideCache instanceof v.ClientSideCacheProvider)this.#f=this.#a.clientSideCache;else{let e=this.#a.clientSideCache;this.#f=new v.BasicClientSideCache(e)}this.#s.addPushHandler(e=>{if(e[0].toString()!==`invalidate`)return!1;if(e[1]!==null)for(let t of e[1])this.#f?.invalidate(t);else this.#f?.invalidate(null);return!0})}else e?.emitInvalidate&&this.#s.addPushHandler(e=>{if(e[0].toString()!==`invalidate`)return!1;if(e[1]!==null)for(let t of e[1])this.emit(`invalidate`,t);else this.emit(`invalidate`,null);return!0})}#h(e){if(e?.clientSideCache&&e?.RESP!==3)throw Error(`Client Side Caching is only supported with RESP3`);if(e?.emitInvalidate&&e?.RESP!==3)throw Error(`emitInvalidate is only supported with RESP3`);if(e?.clientSideCache&&e?.emitInvalidate)throw Error(`emitInvalidate is not supported (or necessary) when clientSideCache is enabled`);if(e?.maintNotifications&&e?.maintNotifications!==`disabled`&&e?.RESP!==3)throw Error(`Graceful Maintenance is only supported with RESP3`)}#g(e={}){if(!e.credentialsProvider&&(e.username||e.password)&&(e.credentialsProvider={type:`async-credentials-provider`,credentials:async()=>({username:e.username,password:e.password})}),e.database&&(this._self.#c=e.database),e.commandOptions&&(this._commandOptions=e.commandOptions),e.maintNotifications!==`disabled`&&S.default.setupDefaultMaintOptions(e),e.url){let t=n.parseOptions(e);return t?.database&&(this._self.#c=t.database),t}return e}#_(){return new o.default(this.#a.RESP??2,this.#a.commandsQueueMaxLength,(e,t)=>this.emit(`sharded-channel-moved`,e,t))}reAuthenticate=async e=>{this.isPubSubActive&&!this.#a.RESP||await this.sendCommand((0,_.parseArgs)(r.default.AUTH,{username:e.username,password:e.password??``}))};#v(e){return e.subscribe({onNext:t=>{this.reAuthenticate(t).catch(t=>{let n=t instanceof Error?t.message:String(t);e.onReAuthenticationError(new a.CredentialsError(n))})},onError:t=>{let n=`Error from streaming credentials provider: ${t.message}`;e.onReAuthenticationError(new a.UnableToObtainNewCredentialsError(n))}})}async#y(e,t){let n=[],r=await this.#b();t&&r.reverse();for(let{cmd:i,errorHandler:a}of r)n.push(this.#s.addCommand(i,{chainId:e,asap:t}).catch(a));return n}async#b(){let e=[],t=this.#a.credentialsProvider;if(this.#a.RESP){let n={};if(t&&t.type===`async-credentials-provider`){let e=await t.credentials();e.password&&(n.AUTH={username:e.username??`default`,password:e.password})}if(t&&t.type===`streaming-credentials-provider`){let[e,r]=await this.#v(t);this.#p=r,e.password&&(n.AUTH={username:e.username??`default`,password:e.password})}this.#a.name&&(n.SETNAME=this.#a.name),e.push({cmd:(0,_.parseArgs)(m.default,this.#a.RESP,n)})}else{if(t&&t.type===`async-credentials-provider`){let n=await t.credentials();(n.username||n.password)&&e.push({cmd:(0,_.parseArgs)(r.default.AUTH,{username:n.username,password:n.password??``})})}if(t&&t.type===`streaming-credentials-provider`){let[n,i]=await this.#v(t);this.#p=i,(n.username||n.password)&&e.push({cmd:(0,_.parseArgs)(r.default.AUTH,{username:n.username,password:n.password??``})})}this.#a.name&&e.push({cmd:(0,_.parseArgs)(r.default.CLIENT_SETNAME,this.#a.name)})}this.#c!==0&&e.push({cmd:[`SELECT`,this.#c.toString()]}),this.#a.readonly&&e.push({cmd:(0,_.parseArgs)(r.default.READONLY)}),this.#a.disableClientInfo||(e.push({cmd:[`CLIENT`,`SETINFO`,`LIB-VER`,x.version],errorHandler:()=>{}}),e.push({cmd:[`CLIENT`,`SETINFO`,`LIB-NAME`,this.#a.clientInfoTag?`node-redis(${this.#a.clientInfoTag})`:`node-redis`],errorHandler:()=>{}})),this.#f&&e.push({cmd:this.#f.trackingOn()}),this.#a?.emitInvalidate&&e.push({cmd:[`CLIENT`,`TRACKING`,`ON`]});let n=await S.default.getHandshakeCommand(this.#a);return n&&e.push(n),e}#x(e){e.on(`data`,e=>{try{this.#s.decoder.write(e)}catch(e){this.#s.resetDecoder(),this.emit(`error`,e)}}).on(`error`,e=>{this.emit(`error`,e),this.#f?.onError(),this.#o.isOpen&&!this.#a.disableOfflineQueue?this.#s.flushWaitingForReply(e):this.#s.flushAll(e)}).on(`connect`,()=>this.emit(`connect`)).on(`ready`,()=>{this.emit(`ready`),this.#w(),this.#k()}).on(`reconnecting`,()=>this.emit(`reconnecting`)).on(`drain`,()=>this.#k()).on(`end`,()=>this.emit(`end`))}#S(){let e=new i.default(async()=>{let e=[],t=Symbol(`Socket Initiator`),n=this.#s.resubscribe(t);if(n?.catch(e=>{e.message&&e.message.startsWith(`MOVED`)&&this.emit(`__MOVED`,this._self.#s.removeAllPubSubListeners())}),n&&e.push(n),this.#l&&e.push(this.#s.monitor(this.#l,{typeMapping:this._commandOptions?.typeMapping,chainId:t,asap:!0})),e.push(...await this.#y(t,!0)),e.length)return this.#E(),Promise.all(e)},this.#a.socket);return this.#x(e),e}#C;#w(){!this.#a.pingInterval||!this.#o.isReady||(clearTimeout(this.#C),this.#C=setTimeout(()=>{this.#o.isReady&&this.sendCommand([`PING`]).then(e=>this.emit(`ping-interval`,e)).catch(e=>this.emit(`error`,e)).finally(()=>this.#w())},this.#a.pingInterval))}withCommandOptions(e){let t=Object.create(this._self);return t._commandOptions=e,t}_commandOptionsProxy(e,t){let n=Object.create(this._self);return n._commandOptions=Object.create(this._commandOptions??null),n._commandOptions[e]=t,n}withTypeMapping(e){return this._commandOptionsProxy(`typeMapping`,e)}withAbortSignal(e){return this._commandOptionsProxy(`abortSignal`,e)}asap(){return this._commandOptionsProxy(`asap`,!0)}legacy(){return new h.RedisLegacyClient(this)}createPool(e){return g.RedisClientPool.create(this._self.#a,e)}duplicate(e){return new(Object.getPrototypeOf(this)).constructor({...this._self.#a,commandOptions:this._commandOptions,...e})}async connect(){return await this._self.#o.connect(),this}_ejectSocket(){let e=this._self.#o;return this._self.#o=null,e.removeAllListeners(),e}_insertSocket(e){this._self.#o&&this._self._ejectSocket().destroy(),this._self.#o=e,this._self.#x(this._self.#o)}_maintenanceUpdate(e){this._self.#o.setMaintenanceTimeout(e.relaxedSocketTimeout),this._self.#s.setMaintenanceCommandTimeout(e.relaxedCommandTimeout)}_pause(){this._self.#m=!0}_unpause(){this._self.#m=!1,this._self.#k()}async _executeCommand(e,t,n,r){let i=this._self.#f,a=this._self.#a.commandOptions===n,o=()=>this.sendCommand(t.redisArgs,n);if(i&&e.CACHEABLE&&a)return await i.handleCache(this._self,t,o,r,n?.typeMapping);{let e=await o();return r?r(e,t.preserve,n?.typeMapping):e}}async _executeScript(e,t,n,r){let i=t.redisArgs,a;try{a=await this.sendCommand(i,n)}catch(t){if(!t?.message?.startsWith?.(`NOSCRIPT`))throw t;i[0]=`EVAL`,i[1]=e.SCRIPT,a=await this.sendCommand(i,n)}return r?r(a,t.preserve,n?.typeMapping):a}sendCommand(e,t){if(this._self.#o.isOpen){if(!this._self.#o.isReady&&this._self.#a.disableOfflineQueue)return Promise.reject(new l.ClientOfflineError)}else return Promise.reject(new l.ClientClosedError);let n={...this._self._commandOptions,...t},r=this._self.#s.addCommand(e,n);return this._self.#O(),r}async SELECT(e){await this.sendCommand([`SELECT`,e.toString()]),this._self.#c=e}select=this.SELECT;#T(e){return e===void 0?Promise.resolve():(this.#O(),e)}SUBSCRIBE(e,t,n){return this._self.#T(this._self.#s.subscribe(f.PUBSUB_TYPE.CHANNELS,e,t,n))}subscribe=this.SUBSCRIBE;UNSUBSCRIBE(e,t,n){return this._self.#T(this._self.#s.unsubscribe(f.PUBSUB_TYPE.CHANNELS,e,t,n))}unsubscribe=this.UNSUBSCRIBE;PSUBSCRIBE(e,t,n){return this._self.#T(this._self.#s.subscribe(f.PUBSUB_TYPE.PATTERNS,e,t,n))}pSubscribe=this.PSUBSCRIBE;PUNSUBSCRIBE(e,t,n){return this._self.#T(this._self.#s.unsubscribe(f.PUBSUB_TYPE.PATTERNS,e,t,n))}pUnsubscribe=this.PUNSUBSCRIBE;SSUBSCRIBE(e,t,n){return this._self.#T(this._self.#s.subscribe(f.PUBSUB_TYPE.SHARDED,e,t,n))}sSubscribe=this.SSUBSCRIBE;SUNSUBSCRIBE(e,t,n){return this._self.#T(this._self.#s.unsubscribe(f.PUBSUB_TYPE.SHARDED,e,t,n))}sUnsubscribe=this.SUNSUBSCRIBE;async WATCH(e){let t=await this._self.sendCommand((0,_.pushVariadicArguments)([`WATCH`],e));return this._self.#d??=this._self.socketEpoch,t}watch=this.WATCH;async UNWATCH(){let e=await this._self.sendCommand([`UNWATCH`]);return this._self.#d=void 0,e}unwatch=this.UNWATCH;getPubSubListeners(e){return this._self.#s.getPubSubListeners(e)}extendPubSubChannelListeners(e,t,n){return this._self.#T(this._self.#s.extendPubSubChannelListeners(e,t,n))}extendPubSubListeners(e,t){return this._self.#T(this._self.#s.extendPubSubListeners(e,t))}#E(){this.#m||this.#o.write(this.#s.commandsToWrite())}#D;#O(){!this.#o.isReady||this.#D||(this.#D=setImmediate(()=>{this.#E(),this.#D=void 0}))}#k(){this.#s.isWaitingToWrite()&&this.#O()}async _executePipeline(e,t){if(!this._self.#o.isOpen)return Promise.reject(new l.ClientClosedError);let n=Symbol(`Pipeline Chain`),r=Promise.all(e.map(({args:e})=>this._self.#s.addCommand(e,{chainId:n,typeMapping:this._commandOptions?.typeMapping})));this._self.#O();let i=await r;return t!==void 0&&(this._self.#c=t),i}async _executeMulti(e,t){let n=this._self.#u;this._self.#u=void 0;let r=this._self.#d;if(this._self.#d=void 0,!this._self.#o.isOpen)throw new l.ClientClosedError;if(n)throw new l.WatchError(n);if(r&&r!==this._self.socketEpoch)throw new l.WatchError(`Client reconnected after WATCH`);let i=this._commandOptions?.typeMapping,a=Symbol(`MULTI Chain`),o=[this._self.#s.addCommand([`MULTI`],{chainId:a})];for(let{args:t}of e)o.push(this._self.#s.addCommand(t,{chainId:a,typeMapping:i}));o.push(this._self.#s.addCommand([`EXEC`],{chainId:a})),this._self.#O();let s=await Promise.all(o),c=s[s.length-1];if(c===null)throw new l.WatchError;return t!==void 0&&(this._self.#c=t),c}MULTI(){return new this.Multi(this._executeMulti.bind(this),this._executePipeline.bind(this),this._commandOptions?.typeMapping)}multi=this.MULTI;async*scanIterator(e){let t=e?.cursor??`0`;do{let n=await this.scan(t,e);t=n.cursor,yield n.keys}while(t!==`0`)}async*hScanIterator(e,t){let n=t?.cursor??`0`;do{let r=await this.hScan(e,n,t);n=r.cursor,yield r.entries}while(n!==`0`)}async*hScanValuesIterator(e,t){let n=t?.cursor??`0`;do{let r=await this.hScanNoValues(e,n,t);n=r.cursor,yield r.fields}while(n!==`0`)}async*hScanNoValuesIterator(e,t){let n=t?.cursor??`0`;do{let r=await this.hScanNoValues(e,n,t);n=r.cursor,yield r.fields}while(n!==`0`)}async*sScanIterator(e,t){let n=t?.cursor??`0`;do{let r=await this.sScan(e,n,t);n=r.cursor,yield r.members}while(n!==`0`)}async*zScanIterator(e,t){let n=t?.cursor??`0`;do{let r=await this.zScan(e,n,t);n=r.cursor,yield r.members}while(n!==`0`)}async MONITOR(e){let t=this._self.#s.monitor(e,{typeMapping:this._commandOptions?.typeMapping});this._self.#O(),await t,this._self.#l=e}monitor=this.MONITOR;async reset(){let e=Symbol(`Reset Chain`),t=[this._self.#s.reset(e)],n=this._self.#a?.database??0;this._self.#p?.dispose(),this._self.#p=null,t.push(...await this._self.#y(e,!1)),this._self.#O(),await Promise.all(t),this._self.#c=n,this._self.#l=void 0,this._self.#u=void 0,this._self.#d=void 0}resetIfDirty(){let e=!1;if(this._self.#c!==(this._self.#a?.database??0)&&(console.warn(`Returning a client with a different selected DB`),e=!0),this._self.#l&&(console.warn(`Returning a client with active MONITOR`),e=!0),this._self.#s.isPubSubActive&&(console.warn(`Returning a client with active PubSub`),e=!0),(this._self.#u||this._self.#d)&&(console.warn(`Returning a client with active WATCH`),e=!0),e)return this.reset()}QUIT(){return this._self.#p?.dispose(),this._self.#p=null,this._self.#o.quit(async()=>{clearTimeout(this._self.#C);let e=this._self.#s.addCommand([`QUIT`]);return this._self.#O(),e})}quit=this.QUIT;disconnect(){return Promise.resolve(this.destroy())}close(){return new Promise(e=>{if(clearTimeout(this._self.#C),this._self.#o.close(),this._self.#f?.onClose(),this._self.#s.isEmpty())return this._self.#o.destroySocket(),e();let t=()=>{this._self.#s.isEmpty()&&(this._self.#o.off(`data`,t),this._self.#o.destroySocket(),e())};this._self.#o.on(`data`,t),this._self.#p?.dispose(),this._self.#p=null})}destroy(){clearTimeout(this._self.#C),this._self.#s.flushAll(new l.DisconnectsClientError),this._self.#o.destroy(),this._self.#f?.onClose(),this._self.#p?.dispose(),this._self.#p=null}ref(){this._self.#o.ref()}unref(){this._self.#o.unref()}};n=ee,e.default=ee})),Zf=c(((e,t)=>{var n=[0,4129,8258,12387,16516,20645,24774,28903,33032,37161,41290,45419,49548,53677,57806,61935,4657,528,12915,8786,21173,17044,29431,25302,37689,33560,45947,41818,54205,50076,62463,58334,9314,13379,1056,5121,25830,29895,17572,21637,42346,46411,34088,38153,58862,62927,50604,54669,13907,9842,5649,1584,30423,26358,22165,18100,46939,42874,38681,34616,63455,59390,55197,51132,18628,22757,26758,30887,2112,6241,10242,14371,51660,55789,59790,63919,35144,39273,43274,47403,23285,19156,31415,27286,6769,2640,14899,10770,56317,52188,64447,60318,39801,35672,47931,43802,27814,31879,19684,23749,11298,15363,3168,7233,60846,64911,52716,56781,44330,48395,36200,40265,32407,28342,24277,20212,15891,11826,7761,3696,65439,61374,57309,53244,48923,44858,40793,36728,37256,33193,45514,41451,53516,49453,61774,57711,4224,161,12482,8419,20484,16421,28742,24679,33721,37784,41979,46042,49981,54044,58239,62302,689,4752,8947,13010,16949,21012,25207,29270,46570,42443,38312,34185,62830,58703,54572,50445,13538,9411,5280,1153,29798,25671,21540,17413,42971,47098,34713,38840,59231,63358,50973,55100,9939,14066,1681,5808,26199,30326,17941,22068,55628,51565,63758,59695,39368,35305,47498,43435,22596,18533,30726,26663,6336,2273,14466,10403,52093,56156,60223,64286,35833,39896,43963,48026,19061,23124,27191,31254,2801,6864,10931,14994,64814,60687,56684,52557,48554,44427,40424,36297,31782,27655,23652,19525,15522,11395,7392,3265,61215,65342,53085,57212,44955,49082,36825,40952,28183,32310,20053,24180,11923,16050,3793,7920],r=function(e){for(var t,n=0,r=0,i=[],a=e.length;n<a;n++)t=e.charCodeAt(n),t<128?i[r++]=t:t<2048?(i[r++]=t>>6|192,i[r++]=t&63|128):(t&64512)==55296&&n+1<e.length&&(e.charCodeAt(n+1)&64512)==56320?(t=65536+((t&1023)<<10)+(e.charCodeAt(++n)&1023),i[r++]=t>>18|240,i[r++]=t>>12&63|128,i[r++]=t>>6&63|128,i[r++]=t&63|128):(i[r++]=t>>12|224,i[r++]=t>>6&63|128,i[r++]=t&63|128);return i},i=t.exports=function(e){for(var t,i=0,a=-1,o=0,s=0,c=typeof e==`string`?r(e):e,l=c.length;i<l;){if(t=c[i++],a===-1)t===123&&(a=i);else if(t!==125)s=n[(t^s>>8)&255]^s<<8;else if(i-1!==a)return s&16383;o=n[(t^o>>8)&255]^o<<8}return o&16383};t.exports.generateMulti=function(e){for(var t=1,n=e.length,r=i(e[0]);t<n;)if(i(e[t++])!==r)return-1;return r}})),Qf=c((e=>{var t=e&&e.__importDefault||function(e){return e&&e.__esModule?e:{default:e}},n;Object.defineProperty(e,`__esModule`,{value:!0});let r=X(),i=t(Xf()),a=Vf(),o=t(Zf()),s=Kf();var c=class{static#e=16384;#t;#n;#r;slots=Array(n.#e);masters=[];replicas=[];nodeByAddress=new Map;pubSubNode;clientSideCache;#i=!1;get isOpen(){return this.#i}#a(e){if(e?.clientSideCache&&e?.RESP!==3)throw Error(`Client Side Caching is only supported with RESP3`)}constructor(e,t){this.#a(e),this.#t=e,e?.clientSideCache&&(e.clientSideCache instanceof s.PooledClientSideCacheProvider?this.clientSideCache=e.clientSideCache:this.clientSideCache=new s.BasicPooledClientSideCache(e.clientSideCache)),this.#n=i.default.factory(this.#t),this.#r=t}async connect(){if(this.#i)throw Error(`Cluster already open`);this.#i=!0;try{await this.#o(),this.#r(`connect`)}catch(e){throw this.#i=!1,e}}async#o(){let e=Math.floor(Math.random()*this.#t.rootNodes.length);for(let t=e;t<this.#t.rootNodes.length;t++){if(!this.#i)throw Error(`Cluster closed`);if(await this.#c(this.#t.rootNodes[t]))return}for(let t=0;t<e;t++){if(!this.#i)throw Error(`Cluster closed`);if(await this.#c(this.#t.rootNodes[t]))return}throw new r.RootNodesUnavailableError}#s(){this.slots=Array(n.#e),this.masters=[],this.replicas=[],this._randomNodeIterator=void 0}async#c(e){this.clientSideCache?.clear(),this.clientSideCache?.disable();try{let t=new Set,n=[],r=this.#t.minimizeConnections!==!0,i=await this.#l(e);this.#s();for(let{from:e,to:a,master:o,replicas:s}of i){let i={master:this.#f(o,!1,r,t,n)};this.#t.useReplicas&&(i.replicas=s.map(e=>this.#f(e,!0,r,t,n)));for(let t=e;t<=a;t++)this.slots[t]=i}if(this.pubSubNode&&!t.has(this.pubSubNode.address)){let e=this.pubSubNode.client.getPubSubListeners(a.PUBSUB_TYPE.CHANNELS),t=this.pubSubNode.client.getPubSubListeners(a.PUBSUB_TYPE.PATTERNS);this.pubSubNode.client.destroy(),(e.size||t.size)&&n.push(this.#x({[a.PUBSUB_TYPE.CHANNELS]:e,[a.PUBSUB_TYPE.PATTERNS]:t}))}for(let[e,n]of this.nodeByAddress.entries()){if(t.has(e))continue;n.client&&n.client.destroy();let{pubSub:r}=n;r&&r.client.destroy(),this.nodeByAddress.delete(e)}return await Promise.all(n),this.clientSideCache?.enable(),!0}catch(e){return this.#r(`error`,e),!1}}async#l(e){let t=this.#d(e);t.socket??={},t.socket.reconnectStrategy=!1,t.RESP=this.#t.RESP,t.commandOptions=void 0;let n=await this.#n(t).on(`error`,e=>this.#r(`error`,e)).connect();try{return await n.clusterSlots()}finally{n.destroy()}}#u(e){switch(typeof this.#t.nodeAddressMap){case`object`:return this.#t.nodeAddressMap[e];case`function`:return this.#t.nodeAddressMap(e)}}#d(e){if(!this.#t.defaults)return e;let t;return t=this.#t.defaults.socket?{...this.#t.defaults.socket,...e?.socket}:e?.socket,{...this.#t.defaults,...e,socket:t}}#f(e,t,n,r,i){let a=`${e.host}:${e.port}`,o=this.nodeByAddress.get(a);return o||(o={...e,address:a,readonly:t,client:void 0,connectPromise:void 0},n&&i.push(this.#m(o)),this.nodeByAddress.set(a,o)),r.has(a)||(r.add(a),(t?this.replicas:this.masters).push(o)),o}#p(e,t=e.readonly){let n=this.#u(e.address)??{host:e.host,port:e.port},r=Object.freeze({host:n.host,port:n.port}),i=this.#r,a=this.#n(this.#d({clientSideCache:this.clientSideCache,RESP:this.#t.RESP,socket:n,readonly:t})).on(`error`,e=>i(`node-error`,e,r)).on(`reconnecting`,()=>i(`node-reconnecting`,r)).once(`ready`,()=>i(`node-ready`,r)).once(`connect`,()=>i(`node-connect`,r)).once(`end`,()=>i(`node-disconnect`,r)).on(`__MOVED`,async e=>{await this.rediscover(a),this.#r(`__resubscribeAllPubSubListeners`,e)});return a}#m(e,t){return e.connectPromise=(e.client=this.#p(e,t)).connect().finally(()=>e.connectPromise=void 0)}nodeClient(e){return e.connectPromise??e.client??this.#m(e)}#h;async rediscover(e){return this.#h??=this.#g(e).finally(()=>{this.#h=void 0}),this.#h}async#g(e){if(!await this.#c(e.options))return this.#o()}quit(){return this.#v(e=>e.quit())}disconnect(){return this.#v(e=>e.disconnect())}close(){return this.#v(e=>e.close())}destroy(){this.#i=!1;for(let e of this.#_())e.destroy();this.pubSubNode&&=(this.pubSubNode.client.destroy(),void 0),this.#s(),this.nodeByAddress.clear(),this.#r(`disconnect`)}*#_(){for(let e of this.masters)e.client&&(yield e.client),e.pubSub&&(yield e.pubSub.client);for(let e of this.replicas)e.client&&(yield e.client)}async#v(e){this.#i=!1;let t=[];for(let n of this.#_())t.push(e(n));this.pubSubNode&&=(t.push(e(this.pubSubNode.client)),void 0),this.#s(),this.nodeByAddress.clear(),await Promise.allSettled(t),this.#r(`disconnect`)}getClient(e,t){if(!e)return this.nodeClient(this.getRandomNode());let n=(0,o.default)(e);return t?this.nodeClient(this.getSlotRandomNode(n)):this.nodeClient(this.slots[n].master)}*#y(){if(this.masters.length+this.replicas.length===0)return;let e=Math.floor(Math.random()*(this.masters.length+this.replicas.length));if(e<this.masters.length){do yield this.masters[e];while(++e<this.masters.length);for(let e of this.replicas)yield e}else{e-=this.masters.length;do yield this.replicas[e];while(++e<this.replicas.length)}for(;;){for(let e of this.masters)yield e;for(let e of this.replicas)yield e}}_randomNodeIterator;getRandomNode(){return this._randomNodeIterator??=this.#y(),this._randomNodeIterator.next().value}*#b(e){let t=Math.floor(Math.random()*(1+e.replicas.length));if(t<e.replicas.length)do yield e.replicas[t];while(++t<e.replicas.length);for(;;){yield e.master;for(let t of e.replicas)yield t}}getSlotRandomNode(e){let t=this.slots[e];return t.replicas?.length?(t.nodesIterator??=this.#b(t),t.nodesIterator.next().value):t.master}getMasterByAddress(e){let t=this.nodeByAddress.get(e);if(t)return this.nodeClient(t)}getPubSubClient(){return this.pubSubNode?this.pubSubNode.connectPromise??this.pubSubNode.client:this.#x()}async#x(e){let t=Math.floor(Math.random()*(this.masters.length+this.replicas.length)),n=t<this.masters.length?this.masters[t]:this.replicas[t-this.masters.length],r=this.#p(n,!1);return this.pubSubNode={address:n.address,client:r,connectPromise:r.connect().then(async t=>(e&&await Promise.all([t.extendPubSubListeners(a.PUBSUB_TYPE.CHANNELS,e[a.PUBSUB_TYPE.CHANNELS]),t.extendPubSubListeners(a.PUBSUB_TYPE.PATTERNS,e[a.PUBSUB_TYPE.PATTERNS])]),this.pubSubNode.connectPromise=void 0,t)).catch(e=>{throw this.pubSubNode=void 0,e})},this.pubSubNode.connectPromise}async executeUnsubscribeCommand(e){let t=await this.getPubSubClient();await e(t),t.isPubSubActive||(t.destroy(),this.pubSubNode=void 0)}getShardedPubSubClient(e){let{master:t}=this.slots[(0,o.default)(e)];return t.pubSub?t.pubSub.connectPromise??t.pubSub.client:this.#S(t)}async#S(e){let t=this.#p(e,!1).on(`server-sunsubscribe`,async(e,n)=>{try{await this.rediscover(t),await(await this.getShardedPubSubClient(e)).extendPubSubChannelListeners(a.PUBSUB_TYPE.SHARDED,e,n)}catch(t){this.#r(`sharded-shannel-moved-error`,t,e,n)}});return e.pubSub={client:t,connectPromise:t.connect().then(t=>(e.pubSub.connectPromise=void 0,t)).catch(t=>{throw e.pubSub=void 0,t})},e.pubSub.connectPromise}async executeShardedUnsubscribeCommand(e,t){let{master:n}=this.slots[(0,o.default)(e)];if(!n.pubSub)return;let r=n.pubSub.connectPromise?await n.pubSub.connectPromise:n.pubSub.client;await t(r),r.isPubSubActive||(r.destroy(),n.pubSub=void 0)}};n=c,e.default=c})),$f=c((e=>{var t=e&&e.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e,`__esModule`,{value:!0});let n=t(Mf()),r=t(Uf()),i=$(),a=Z();e.default=class e{static#e(e,t){let n=(0,i.getTransformReply)(e,t);return function(...t){let r=new a.BasicCommandParser;e.parseCommand(r,...t);let i=r.redisArgs;i.preserve=r.preserve;let o=r.firstKey;return this.addCommand(o,e.IS_READ_ONLY,i,n)}}static#t(e,t){let n=(0,i.getTransformReply)(e,t);return function(...t){let r=new a.BasicCommandParser;e.parseCommand(r,...t);let i=r.redisArgs;i.preserve=r.preserve;let o=r.firstKey;return this._self.addCommand(o,e.IS_READ_ONLY,i,n)}}static#n(e,t,n){let r=(0,i.functionArgumentsPrefix)(e,t),o=(0,i.getTransformReply)(t,n);return function(...e){let n=new a.BasicCommandParser;n.push(...r),t.parseCommand(n,...e);let i=n.redisArgs;i.preserve=n.preserve;let s=n.firstKey;return this._self.addCommand(s,t.IS_READ_ONLY,i,o)}}static#r(e,t){let n=(0,i.getTransformReply)(e,t);return function(...t){let r=new a.BasicCommandParser;e.parseCommand(r,...t);let i=r.redisArgs;i.preserve=r.preserve;let o=r.firstKey;return this.#u(o,e.IS_READ_ONLY,e,i,n)}}static extend(t){return(0,i.attachConfig)({BaseClass:e,commands:n.default,createCommand:e.#e,createModuleCommand:e.#t,createFunctionCommand:e.#n,createScriptCommand:e.#r,config:t})}#i;#a;#o;#s;#c=!0;constructor(e,t,n,i){this.#i=new r.default(i),this.#a=e,this.#o=t,this.#s=n}#l(e,t){this.#s??=e,this.#c&&=t}addCommand(e,t,n,r){return this.#l(e,t),this.#i.addCommand(n,r),this}#u(e,t,n,r,i){return this.#l(e,t),this.#i.addScript(n,r,i),this}async exec(e=!1){return e?this.execAsPipeline():this.#i.transformReplies(await this.#a(this.#s,this.#c,this.#i.queue))}EXEC=this.exec;execTyped(e=!1){return this.exec(e)}async execAsPipeline(){return this.#i.queue.length===0?[]:this.#i.transformReplies(await this.#o(this.#s,this.#c,this.#i.queue))}execAsPipelineTyped(){return this.execAsPipeline()}}})),ep=c((e=>{var t=e&&e.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e,`__esModule`,{value:!0});let n=t(Mf()),r=d(`node:events`),i=$(),a=t(Qf()),o=t($f()),s=X(),c=Z(),l=oo(),u=t(qf());e.default=class e extends r.EventEmitter{static#e(e,t){let n=(0,i.getTransformReply)(e,t);return async function(...t){let r=new c.BasicCommandParser;return e.parseCommand(r,...t),this._self._execute(r.firstKey,e.IS_READ_ONLY,this._commandOptions,(t,i)=>t._executeCommand(e,r,i,n))}}static#t(e,t){let n=(0,i.getTransformReply)(e,t);return async function(...t){let r=new c.BasicCommandParser;return e.parseCommand(r,...t),this._self._execute(r.firstKey,e.IS_READ_ONLY,this._self._commandOptions,(t,i)=>t._executeCommand(e,r,i,n))}}static#n(e,t,n){let r=(0,i.functionArgumentsPrefix)(e,t),a=(0,i.getTransformReply)(t,n);return async function(...e){let n=new c.BasicCommandParser;return n.push(...r),t.parseCommand(n,...e),this._self._execute(n.firstKey,t.IS_READ_ONLY,this._self._commandOptions,(e,r)=>e._executeCommand(t,n,r,a))}}static#r(e,t){let n=(0,i.scriptArgumentsPrefix)(e),r=(0,i.getTransformReply)(e,t);return async function(...t){let i=new c.BasicCommandParser;return i.push(...n),e.parseCommand(i,...t),this._self._execute(i.firstKey,e.IS_READ_ONLY,this._commandOptions,(t,n)=>t._executeScript(e,i,n,r))}}static#i=new u.default;static factory(t){let r=e.#i.get(t);return r||(r=(0,i.attachConfig)({BaseClass:e,commands:n.default,createCommand:e.#e,createModuleCommand:e.#t,createFunctionCommand:e.#n,createScriptCommand:e.#r,config:t}),r.prototype.Multi=o.default.extend(t),e.#i.set(t,r)),e=>Object.create(new r(e))}static create(t){return e.factory(t)(t)}_options;_slots;_self=this;_commandOptions;get slots(){return this._self._slots.slots}get clientSideCache(){return this._self._slots.clientSideCache}get masters(){return this._self._slots.masters}get replicas(){return this._self._slots.replicas}get nodeByAddress(){return this._self._slots.nodeByAddress}get pubSubNode(){return this._self._slots.pubSubNode}get isOpen(){return this._self._slots.isOpen}constructor(e){super(),this._options=e,this._slots=new a.default(e,this.emit.bind(this)),this.on(`__resubscribeAllPubSubListeners`,this.resubscribeAllPubSubListeners.bind(this)),e?.commandOptions&&(this._commandOptions=e.commandOptions)}duplicate(e){return new(Object.getPrototypeOf(this)).constructor({...this._self._options,commandOptions:this._commandOptions,...e})}async connect(){return await this._self._slots.connect(),this}withCommandOptions(e){let t=Object.create(this);return t._commandOptions=e,t}_commandOptionsProxy(e,t){let n=Object.create(this);return n._commandOptions=Object.create(this._commandOptions??null),n._commandOptions[e]=t,n}withTypeMapping(e){return this._commandOptionsProxy(`typeMapping`,e)}_handleAsk(e){return async(t,n)=>{let r=Symbol(`asking chain`),i=n?{...n}:{};return i.chainId=r,(await Promise.all([t.sendCommand([l.ASKING_CMD],{chainId:r}),e(t,i)]))[1]}}async _execute(e,t,n,r){let i=this._options.maxCommandRedirections??16,a=await this._slots.getClient(e,t),o=0,s=r;for(;;)try{return await s(a,n)}catch(n){if(s=r,++o>i||!(n instanceof Error))throw n;if(n.message.startsWith(`ASK`)){let e=n.message.substring(n.message.lastIndexOf(` `)+1),t=await this._slots.getMasterByAddress(e);if(t||=(await this._slots.rediscover(a),await this._slots.getMasterByAddress(e)),!t)throw Error(`Cannot find node ${e}`);a=t,s=this._handleAsk(r);continue}if(n.message.startsWith(`MOVED`)){await this._slots.rediscover(a),a=await this._slots.getClient(e,t);continue}throw n}}async sendCommand(e,t,n,r){let i={...this._self._commandOptions,...r};return this._self._execute(e,t,i,(e,t)=>e.sendCommand(n,t))}MULTI(e){return new this.Multi(async(e,t,n)=>(await this._self._slots.getClient(e,t))._executeMulti(n),async(e,t,n)=>(await this._self._slots.getClient(e,t))._executePipeline(n),e,this._commandOptions?.typeMapping)}multi=this.MULTI;async SUBSCRIBE(e,t,n){return(await this._self._slots.getPubSubClient()).SUBSCRIBE(e,t,n)}subscribe=this.SUBSCRIBE;async UNSUBSCRIBE(e,t,n){return this._self._slots.executeUnsubscribeCommand(r=>r.UNSUBSCRIBE(e,t,n))}unsubscribe=this.UNSUBSCRIBE;async PSUBSCRIBE(e,t,n){return(await this._self._slots.getPubSubClient()).PSUBSCRIBE(e,t,n)}pSubscribe=this.PSUBSCRIBE;async PUNSUBSCRIBE(e,t,n){return this._self._slots.executeUnsubscribeCommand(r=>r.PUNSUBSCRIBE(e,t,n))}pUnsubscribe=this.PUNSUBSCRIBE;async SSUBSCRIBE(e,t,n){let r=this._self._options.maxCommandRedirections??16,i=Array.isArray(e)?e[0]:e,a=await this._self._slots.getShardedPubSubClient(i);for(let o=0;;o++)try{return await a.SSUBSCRIBE(e,t,n)}catch(e){if(++o>r||!(e instanceof s.ErrorReply))throw e;if(e.message.startsWith(`MOVED`)){await this._self._slots.rediscover(a),a=await this._self._slots.getShardedPubSubClient(i);continue}throw e}}sSubscribe=this.SSUBSCRIBE;SUNSUBSCRIBE(e,t,n){return this._self._slots.executeShardedUnsubscribeCommand(Array.isArray(e)?e[0]:e,r=>r.SUNSUBSCRIBE(e,t,n))}resubscribeAllPubSubListeners(e){for(let[t,n]of e.CHANNELS)n.buffers.forEach(e=>{this.subscribe(t,e,!0)}),n.strings.forEach(e=>{this.subscribe(t,e)});for(let[t,n]of e.PATTERNS)n.buffers.forEach(e=>{this.pSubscribe(t,e,!0)}),n.strings.forEach(e=>{this.pSubscribe(t,e)});for(let[t,n]of e.SHARDED)n.buffers.forEach(e=>{this.sSubscribe(t,e,!0)}),n.strings.forEach(e=>{this.sSubscribe(t,e)})}sUnsubscribe=this.SUNSUBSCRIBE;quit(){return this._self._slots.quit()}disconnect(){return this._self._slots.disconnect()}close(){return this._self._slots.clientSideCache?.onPoolClose(),this._self._slots.close()}destroy(){return this._self._slots.clientSideCache?.onPoolClose(),this._self._slots.destroy()}nodeClient(e){return this._self._slots.nodeClient(e)}getRandomNode(){return this._self._slots.getRandomNode()}getSlotRandomNode(e){return this._self._slots.getSlotRandomNode(e)}getMasters(){return this.masters}getSlotMaster(e){return this.slots[e].master}}})),tp=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.createScriptCommand=e.createModuleCommand=e.createFunctionCommand=e.createCommand=e.clientSocketToNode=e.createNodeList=e.parseNode=void 0;let t=Z(),n=$();function r(e){if(!(e.flags.includes(`s_down`)||e.flags.includes(`disconnected`)||e.flags.includes(`failover_in_progress`)))return{host:e.ip,port:Number(e.port)}}e.parseNode=r;function i(e){var t=[];for(let n of e){let e=r(n);e!==void 0&&t.push(e)}return t}e.createNodeList=i;function a(e){let t=e;return{host:t.host,port:t.port}}e.clientSocketToNode=a;function o(e,r){let i=(0,n.getTransformReply)(e,r);return async function(...n){let r=new t.BasicCommandParser;return e.parseCommand(r,...n),this._self._execute(e.IS_READ_ONLY,t=>t._executeCommand(e,r,this.commandOptions,i))}}e.createCommand=o;function s(e,r,i){let a=(0,n.functionArgumentsPrefix)(e,r),o=(0,n.getTransformReply)(r,i);return async function(...e){let n=new t.BasicCommandParser;return n.push(...a),r.parseCommand(n,...e),this._self._execute(r.IS_READ_ONLY,e=>e._executeCommand(r,n,this._self.commandOptions,o))}}e.createFunctionCommand=s;function c(e,r){let i=(0,n.getTransformReply)(e,r);return async function(...n){let r=new t.BasicCommandParser;return e.parseCommand(r,...n),this._self._execute(e.IS_READ_ONLY,t=>t._executeCommand(e,r,this._self.commandOptions,i))}}e.createModuleCommand=c;function l(e,r){let i=(0,n.scriptArgumentsPrefix)(e),a=(0,n.getTransformReply)(e,r);return async function(...n){let r=new t.BasicCommandParser;return r.push(...i),e.parseCommand(r,...n),this._self._execute(e.IS_READ_ONLY,t=>t._executeScript(e,r,this.commandOptions,a))}}e.createScriptCommand=l})),np=c((e=>{var t=e&&e.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e,`__esModule`,{value:!0});let n=t(Mf()),r=t(Uf()),i=$(),a=Z();e.default=class e{static _createCommand(e,t){let n=(0,i.getTransformReply)(e,t);return function(...t){let r=new a.BasicCommandParser;e.parseCommand(r,...t);let i=r.redisArgs;return i.preserve=r.preserve,this.addCommand(e.IS_READ_ONLY,i,n)}}static _createModuleCommand(e,t){let n=(0,i.getTransformReply)(e,t);return function(...t){let r=new a.BasicCommandParser;e.parseCommand(r,...t);let i=r.redisArgs;return i.preserve=r.preserve,this._self.addCommand(e.IS_READ_ONLY,i,n)}}static _createFunctionCommand(e,t,n){let r=(0,i.functionArgumentsPrefix)(e,t),o=(0,i.getTransformReply)(t,n);return function(...e){let n=new a.BasicCommandParser;n.push(...r),t.parseCommand(n,...e);let i=n.redisArgs;return i.preserve=n.preserve,this._self.addCommand(t.IS_READ_ONLY,i,o)}}static _createScriptCommand(e,t){let n=(0,i.getTransformReply)(e,t);return function(...t){let r=new a.BasicCommandParser;e.parseCommand(r,...t);let i=r.redisArgs;return i.preserve=r.preserve,this.#i(e.IS_READ_ONLY,e,i,n)}}static extend(t){return(0,i.attachConfig)({BaseClass:e,commands:n.default,createCommand:e._createCommand,createModuleCommand:e._createModuleCommand,createFunctionCommand:e._createFunctionCommand,createScriptCommand:e._createScriptCommand,config:t})}#e=new r.default;#t;#n=!0;constructor(e,t){this.#e=new r.default(t),this.#t=e}#r(e){this.#n&&=e}addCommand(e,t,n){return this.#r(e),this.#e.addCommand(t,n),this}#i(e,t,n,r){return this.#r(e),this.#e.addScript(t,n,r),this}async exec(e=!1){return e?this.execAsPipeline():this.#e.transformReplies(await this.#t._executeMulti(this.#n,this.#e.queue))}EXEC=this.exec;execTyped(e=!1){return this.exec(e)}async execAsPipeline(){return this.#e.queue.length===0?[]:this.#e.transformReplies(await this.#t._executePipeline(this.#n,this.#e.queue))}execAsPipelineTyped(){return this.execAsPipeline()}}})),rp=c((e=>{var t=e&&e.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e,`__esModule`,{value:!0}),e.PubSubProxy=void 0;let n=t(d(`node:events`)),r=Vf(),i=t(Xf());e.PubSubProxy=class extends n.default{#e;#t;#n;#r;#i;constructor(e,t){super(),this.#e=e,this.#t=t}#a(){if(this.#n===void 0)throw Error(`pubSubProxy: didn't define node to do pubsub against`);return new i.default({...this.#e,socket:{...this.#e.socket,host:this.#n.host,port:this.#n.port}})}async#o(e=!1){let t=this.#a().on(`error`,this.#t),n=t.connect().then(async t=>this.#r?.client!==t||(e&&this.#i&&await Promise.all([t.extendPubSubListeners(r.PUBSUB_TYPE.CHANNELS,this.#i[r.PUBSUB_TYPE.CHANNELS]),t.extendPubSubListeners(r.PUBSUB_TYPE.PATTERNS,this.#i[r.PUBSUB_TYPE.PATTERNS])]),this.#r.client!==t)?(t.destroy(),this.#r?.connectPromise):(this.#r.connectPromise=void 0,t)).catch(e=>{throw this.#r=void 0,e});return this.#r={client:t,connectPromise:n},n}#s(){return this.#r?this.#r.connectPromise??this.#r.client:this.#o()}async changeNode(e){this.#n=e,this.#r&&(this.#r.connectPromise===void 0&&(this.#i={[r.PUBSUB_TYPE.CHANNELS]:this.#r.client.getPubSubListeners(r.PUBSUB_TYPE.CHANNELS),[r.PUBSUB_TYPE.PATTERNS]:this.#r.client.getPubSubListeners(r.PUBSUB_TYPE.PATTERNS)},this.#r.client.destroy()),await this.#o(!0))}#c(e){let t=this.#s();return t instanceof i.default?e(t):t.then(t=>{if(t!==void 0)return e(t)}).catch(e=>{throw this.#r?.client.isPubSubActive&&(this.#r.client.destroy(),this.#r=void 0),e})}subscribe(e,t,n){return this.#c(r=>r.SUBSCRIBE(e,t,n))}#l(e){return this.#c(async t=>{let n=await e(t);return t.isPubSubActive||(t.destroy(),this.#r=void 0),n})}async unsubscribe(e,t,n){return this.#l(r=>r.UNSUBSCRIBE(e,t,n))}async pSubscribe(e,t,n){return this.#c(r=>r.PSUBSCRIBE(e,t,n))}async pUnsubscribe(e,t,n){return this.#l(r=>r.PUNSUBSCRIBE(e,t,n))}destroy(){this.#i=void 0,this.#r!==void 0&&(this.#r.connectPromise||this.#r.client.destroy(),this.#r=void 0)}}})),ip=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=Q();e.default={parseCommand(e,t){e.push(`SENTINEL`,`MASTER`,t)},transformReply:{2:t.transformTuplesReply,3:void 0}}})),ap=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={parseCommand(e,t,n,r,i){e.push(`SENTINEL`,`MONITOR`,t,n,r,i)},transformReply:void 0}})),op=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=Q();e.default={parseCommand(e,t){e.push(`SENTINEL`,`REPLICAS`,t)},transformReply:{2:(e,n,r)=>e.reduce((e,n)=>(e.push((0,t.transformTuplesReply)(n,void 0,r)),e),[]),3:void 0}}})),sp=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=Q();e.default={parseCommand(e,t){e.push(`SENTINEL`,`SENTINELS`,t)},transformReply:{2:(e,n,r)=>e.reduce((e,n)=>(e.push((0,t.transformTuplesReply)(n,void 0,r)),e),[]),3:void 0}}})),cp=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.default={parseCommand(e,t,n){e.push(`SENTINEL`,`SET`,t);for(let t of n)e.push(t.option,t.value)},transformReply:void 0}})),lp=c((e=>{var t=e&&e.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e,`__esModule`,{value:!0});let n=t(ip()),r=t(ap()),i=t(op()),a=t(sp()),o=t(cp());e.default={SENTINEL_SENTINELS:a.default,sentinelSentinels:a.default,SENTINEL_MASTER:n.default,sentinelMaster:n.default,SENTINEL_REPLICAS:i.default,sentinelReplicas:i.default,SENTINEL_MONITOR:r.default,sentinelMonitor:r.default,SENTINEL_SET:o.default,sentinelSet:o.default}})),up=c((e=>{var t=e&&e.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e,`__esModule`,{value:!0}),e.default={sentinel:t(lp()).default}})),dp=c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.WaitQueue=void 0;let t=zf();e.WaitQueue=class{#e=new t.SinglyLinkedList;#t=new t.SinglyLinkedList;push(e){let t=this.#t.shift();if(t!==void 0){t(e);return}this.#e.push(e)}shift(){return this.#e.shift()}wait(){return new Promise(e=>this.#t.push(e))}}})),fp=c((e=>{var t=e&&e.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e,`__esModule`,{value:!0}),e.RedisSentinelFactory=e.RedisSentinelClient=void 0;let n=d(`node:events`),r=t(Xf()),i=$(),a=t(Mf()),o=tp(),s=t(np()),c=rp(),l=d(`node:timers/promises`),u=t(up()),f=dp(),p=Kf();var m=class e{#e;#t;_self;get isOpen(){return this._self.#t.isOpen}get isReady(){return this._self.#t.isReady}get commandOptions(){return this._self.#n}#n;constructor(e,t,n){this._self=this,this.#t=e,this.#e=t,this.#n=n}static factory(t){let n=(0,i.attachConfig)({BaseClass:e,commands:a.default,createCommand:o.createCommand,createModuleCommand:o.createModuleCommand,createFunctionCommand:o.createFunctionCommand,createScriptCommand:o.createScriptCommand,config:t});return n.prototype.Multi=s.default.extend(t),(e,t,r)=>Object.create(new n(e,t,r))}static create(t,n,r,i){return e.factory(t)(n,r,i)}withCommandOptions(e){let t=Object.create(this);return t._commandOptions=e,t}_commandOptionsProxy(e,t){let n=Object.create(this);return n._commandOptions=Object.create(this._self.#n??null),n._commandOptions[e]=t,n}withTypeMapping(e){return this._commandOptionsProxy(`typeMapping`,e)}async _execute(e,t){if(this._self.#e===void 0)throw Error(`Attempted execution on released RedisSentinelClient lease`);return await this._self.#t.execute(t,this._self.#e)}async sendCommand(e,t,n){return this._execute(e,e=>e.sendCommand(t,n))}async _executePipeline(e,t){return this._execute(e,e=>e._executePipeline(t))}async _executeMulti(e,t){return this._execute(e,e=>e._executeMulti(t))}MULTI(){return new this.Multi(this)}multi=this.MULTI;WATCH(e){if(this._self.#e===void 0)throw Error(`Attempted execution on released RedisSentinelClient lease`);return this._execute(!1,t=>t.watch(e))}watch=this.WATCH;UNWATCH(){if(this._self.#e===void 0)throw Error(`Attempted execution on released RedisSentinelClient lease`);return this._execute(!1,e=>e.unwatch())}unwatch=this.UNWATCH;release(){if(this._self.#e===void 0)throw Error(`RedisSentinelClient lease already released`);let e=this._self.#t.releaseClientLease(this._self.#e);return this._self.#e=void 0,e}};e.RedisSentinelClient=m,e.default=class e extends n.EventEmitter{_self;#e;#t;get isOpen(){return this._self.#e.isOpen}get isReady(){return this._self.#e.isReady}get commandOptions(){return this._self.#n}#n;#r=()=>{};#i;#a=0;#o;get clientSideCache(){return this._self.#e.clientSideCache}constructor(e){super(),this._self=this,this.#t=e,e.commandOptions&&(this.#n=e.commandOptions),this.#e=new h(e),this.#e.on(`error`,e=>this.emit(`error`,e)),this.#e.on(`topology-change`,e=>{this.emit(`topology-change`,e)||this._self.#r(`RedisSentinel: re-emit for topology-change for ${e.type} event returned false`)})}static factory(t){let n=(0,i.attachConfig)({BaseClass:e,commands:a.default,createCommand:o.createCommand,createModuleCommand:o.createModuleCommand,createFunctionCommand:o.createFunctionCommand,createScriptCommand:o.createScriptCommand,config:t});return n.prototype.Multi=s.default.extend(t),e=>Object.create(new n(e))}static create(t){return e.factory(t)(t)}withCommandOptions(e){let t=Object.create(this);return t._commandOptions=e,t}_commandOptionsProxy(e,t){let n=Object.create(this);return n._self.#n={...this._self.#n||{},[e]:t},n}withTypeMapping(e){return this._commandOptionsProxy(`typeMapping`,e)}async connect(){return await this._self.#e.connect(),this._self.#t.reserveClient&&(this._self.#i=await this._self.#e.getClientLease()),this}async _execute(e,t){let n;(!e||!this._self.#e.useReplicas)&&(this._self.#i?n=this._self.#i:(this._self.#o??=await this._self.#e.getClientLease(),n=this._self.#o,this._self.#a++));try{return await this._self.#e.execute(t,n)}finally{if(n!==void 0&&n===this._self.#o&&--this._self.#a===0){let e=this._self.#e.releaseClientLease(n);this._self.#o=void 0,e&&await e}}}async use(e){let t=await this._self.#e.getClientLease();try{return await e(m.create(this._self.#t,this._self.#e,t,this._self.#n))}finally{let e=this._self.#e.releaseClientLease(t);e&&await e}}async sendCommand(e,t,n){return this._execute(e,e=>e.sendCommand(t,n))}async _executePipeline(e,t){return this._execute(e,e=>e._executePipeline(t))}async _executeMulti(e,t){return this._execute(e,e=>e._executeMulti(t))}MULTI(){return new this.Multi(this)}multi=this.MULTI;async close(){return this._self.#e.close()}destroy(){return this._self.#e.destroy()}async SUBSCRIBE(e,t,n){return this._self.#e.subscribe(e,t,n)}subscribe=this.SUBSCRIBE;async UNSUBSCRIBE(e,t,n){return this._self.#e.unsubscribe(e,t,n)}unsubscribe=this.UNSUBSCRIBE;async PSUBSCRIBE(e,t,n){return this._self.#e.pSubscribe(e,t,n)}pSubscribe=this.PSUBSCRIBE;async PUNSUBSCRIBE(e,t,n){return this._self.#e.pUnsubscribe(e,t,n)}pUnsubscribe=this.PUNSUBSCRIBE;async acquire(){let e=await this._self.#e.getClientLease();return m.create(this._self.#t,this._self.#e,e,this._self.#n)}getSentinelNode(){return this._self.#e.getSentinelNode()}getMasterNode(){return this._self.#e.getMasterNode()}getReplicaNodes(){return this._self.#e.getReplicaNodes()}setTracer(e){e?this._self.#r=t=>{e.push(t)}:this._self.#r=()=>{},this._self.#e.setTracer(e)}};var h=class extends n.EventEmitter{#e=!1;get isOpen(){return this.#e}#t=!1;get isReady(){return this.#t}#n;#r;#i;#a;#o;#s;#c=!1;#l=0;#u;#d;#f=[];#p;#m;#h=[];#g=0;#_;get useReplicas(){return this.#_>0}#v;#y;#b;#x;#S=!1;#C=()=>{};#w;get clientSideCache(){return this.#w}#T(e){if(e?.clientSideCache&&e?.RESP!==3)throw Error(`Client Side Caching is only supported with RESP3`)}constructor(e){if(super(),this.#T(e),this.#n=e.name,this.#s=e.RESP,this.#u=Array.from(e.sentinelRootNodes),this.#y=e.maxCommandRediscovers??16,this.#m=e.masterPoolSize??1,this.#_=e.replicaPoolSize??0,this.#a=e.scanInterval??0,this.#o=e.passthroughClientErrorEvents??!1,this.#r=e.nodeClientOptions?{...e.nodeClientOptions}:{},this.#r.url!==void 0)throw Error(`invalid nodeClientOptions for Sentinel`);if(e.clientSideCache)if(e.clientSideCache instanceof p.PooledClientSideCacheProvider)this.#w=this.#r.clientSideCache=e.clientSideCache;else{let t=e.clientSideCache;this.#w=this.#r.clientSideCache=new p.BasicPooledClientSideCache(t)}if(this.#i=e.sentinelClientOptions?Object.assign({},e.sentinelClientOptions):{},this.#i.modules=u.default,this.#i.url!==void 0)throw Error(`invalid sentinelClientOptions for Sentinel`);this.#p=new f.WaitQueue;for(let e=0;e<this.#m;e++)this.#p.push(e);this.#b=new c.PubSubProxy(this.#r,e=>this.emit(`error`,e))}#E(e,t,n){return r.default.create({RESP:this.#s,...t,socket:{...t.socket,host:e.host,port:e.port,...n!==void 0&&{reconnectStrategy:n}}})}getClientLease(){let e=this.#p.shift();return e===void 0?this.#p.wait().then(e=>({id:e})):{id:e}}releaseClientLease(e){let t=this.#f[e.id];if(t!==void 0){let n=t.resetIfDirty();if(n)return n.then(()=>this.#p.push(e.id))}this.#p.push(e.id)}async connect(){if(this.#e)throw Error(`already attempting to open`);try{this.#e=!0,this.#v=this.#D(),await this.#v,this.#t=!0}finally{this.#v=void 0,this.#a>0&&(this.#x=setInterval(this.#j.bind(this),this.#a))}}async#D(){let e=0;for(;;){if(this.#C(`starting connect loop`),e+=1,this.#S){this.#C(`in #connect and want to destroy`);return}try{if(this.#c=!1,await this.transform(this.analyze(await this.observe())),this.#c){this.#C(`#connect: anotherReset is true, so continuing`);continue}this.#C(`#connect: returning`);return}catch(t){if(this.#C(`#connect: exception ${t.message}`),!this.#t&&e>this.#y)throw t;t.message!==`no valid master node`&&console.log(t),await(0,l.setTimeout)(1e3)}finally{this.#C(`finished connect`)}}}async execute(e,t){let n=0;for(;;){this.#v!==void 0&&await this.#v;let r=this.#A(t);if(!r.isReady){await this.#j();continue}let i=r.options?.socket;this.#C(`attemping to send command to `+i?.host+`:`+i?.port);try{return await e(r)}catch(e){if(++n>this.#y||!(e instanceof Error))throw e;if(t!==void 0&&(e.message.startsWith(`READONLY`)||!r.isReady)){await this.#j();continue}throw e}}}async#O(e){return await e.pSubscribe([`switch-master`,`[-+]sdown`,`+slave`,`+sentinel`,`[-+]odown`,`+slave-reconf-done`],(e,t)=>{this.#k(t,e)},!0),e}async#k(e,t){this.#C(`pubsub control channel message on `+e),this.#j()}#A(e){if(e!==void 0)return this.#f[e.id];if(this.#g>=this.#h.length&&(this.#g=0),this.#h.length==0)throw Error(`no replicas available for read`);return this.#h[this.#g++]}async#j(){if(!(this.#t==0||this.#S==1)){if(this.#v!==void 0)return this.#c=!0,await this.#v;try{return this.#v=this.#D(),await this.#v}finally{this.#C(`finished reconfgure`),this.#v=void 0}}}#M(e){let t=this.#u.findIndex(t=>t.host===e.host&&t.port===e.port);t!==-1&&this.#u.splice(t,1),this.#j()}async close(){this.#S=!0,this.#v!=null&&await this.#v,this.#t=!1,this.#w?.onPoolClose(),this.#x&&=(clearInterval(this.#x),void 0);let e=[];this.#d!==void 0&&(this.#d.isOpen&&e.push(this.#d.close()),this.#d=void 0);for(let t of this.#f)t.isOpen&&e.push(t.close());this.#f=[];for(let t of this.#h)t.isOpen&&e.push(t.close());this.#h=[],await Promise.all(e),this.#b.destroy(),this.#e=!1}async destroy(){this.#S=!0,this.#v!=null&&await this.#v,this.#t=!1,this.#w?.onPoolClose(),this.#x&&=(clearInterval(this.#x),void 0),this.#d!==void 0&&(this.#d.isOpen&&this.#d.destroy(),this.#d=void 0);for(let e of this.#f)e.isOpen&&e.destroy();this.#f=[];for(let e of this.#h)e.isOpen&&e.destroy();this.#h=[],this.#b.destroy(),this.#e=!1,this.#S=!1}async subscribe(e,t,n){return this.#b.subscribe(e,t,n)}async unsubscribe(e,t,n){return this.#b.unsubscribe(e,t,n)}async pSubscribe(e,t,n){return this.#b.pSubscribe(e,t,n)}async pUnsubscribe(e,t,n){return this.#b.pUnsubscribe(e,t,n)}async observe(){for(let e of this.#u){let t;try{this.#C(`observe: trying to connect to sentinel: ${e.host}:${e.port}`),t=this.#E(e,this.#i,!1),t.on(`error`,e=>this.emit(`error`,`obseve client error: ${e}`)),await t.connect(),this.#C(`observe: connected to sentinel`);let[n,r,i]=await Promise.all([t.sentinel.sentinelSentinels(this.#n),t.sentinel.sentinelMaster(this.#n),t.sentinel.sentinelReplicas(this.#n)]);return this.#C(`observe: got all sentinel data`),{sentinelConnected:e,sentinelData:n,masterData:r,replicaData:i,currentMaster:this.getMasterNode(),currentReplicas:this.getReplicaNodes(),currentSentinel:this.getSentinelNode(),replicaPoolSize:this.#_,useReplicas:this.useReplicas}}catch(e){this.#C(`observe: error ${e}`),this.emit(`error`,e)}finally{t!==void 0&&t.isOpen&&(this.#C(`observe: destroying sentinel client`),t.destroy())}}throw this.#C(`observe: none of the sentinels are available`),Error(`None of the sentinels are available`)}analyze(e){let t=(0,o.parseNode)(e.masterData);if(t===void 0)throw this.#C(`analyze: no valid master node because ${e.masterData.flags}`),Error(`no valid master node`);t.host===e.currentMaster?.host&&t.port===e.currentMaster?.port?(this.#C(`analyze: master node hasn't changed from ${e.currentMaster?.host}:${e.currentMaster?.port}`),t=void 0):this.#C(`analyze: master node has changed to ${t.host}:${t.port} from ${e.currentMaster?.host}:${e.currentMaster?.port}`);let n=e.sentinelConnected;n.host===e.currentSentinel?.host&&n.port===e.currentSentinel.port?(this.#C(`analyze: sentinel node hasn't changed`),n=void 0):this.#C(`analyze: sentinel node has changed to ${n.host}:${n.port}`);let r=[],i=new Map,a=new Set,s=new Set;if(e.useReplicas){let t=(0,o.createNodeList)(e.replicaData);for(let e of t)a.add(JSON.stringify(e));for(let[t,n]of e.currentReplicas)a.has(JSON.stringify(t))?(s.add(JSON.stringify(t)),n!=e.replicaPoolSize&&(i.set(t,e.replicaPoolSize-n),this.#C(`analyze: adding ${t.host}:${t.port} to replicsToOpen`))):(r.push(t),this.#C(`analyze: adding ${t.host}:${t.port} to replicsToClose`));for(let n of t)s.has(JSON.stringify(n))||(i.set(n,e.replicaPoolSize),this.#C(`analyze: adding ${n.host}:${n.port} to replicsToOpen`))}return{sentinelList:[e.sentinelConnected].concat((0,o.createNodeList)(e.sentinelData)),epoch:Number(e.masterData[`config-epoch`]),sentinelToOpen:n,masterToOpen:t,replicasToClose:r,replicasToOpen:i}}async transform(e){this.#C(`transform: enter`);let t=[];if(e.sentinelToOpen){this.#C(`transform: opening a new sentinel`),this.#d!==void 0&&this.#d.isOpen?(this.#C(`transform: destroying old sentinel as open`),this.#d.destroy(),this.#d=void 0):this.#C(`transform: not destroying old sentinel as not open`),this.#C(`transform: creating new sentinel to ${e.sentinelToOpen.host}:${e.sentinelToOpen.port}`);let n=e.sentinelToOpen,r=this.#E(e.sentinelToOpen,this.#i,!1);r.on(`error`,e=>{this.#o&&this.emit(`error`,Error(`Sentinel Client (${n.host}:${n.port}): ${e.message}`,{cause:e}));let t={type:`SENTINEL`,node:(0,o.clientSocketToNode)(r.options.socket),error:e};this.emit(`client-error`,t),this.#M(n)}).on(`end`,()=>this.#M(n)),this.#d=r,this.#C(`transform: adding sentinel client connect() to promise list`);let i=this.#d.connect().then(e=>this.#O(e));t.push(i),this.#C(`created sentinel client to ${e.sentinelToOpen.host}:${e.sentinelToOpen.port}`);let a={type:`SENTINEL_CHANGE`,node:e.sentinelToOpen};this.#C(`transform: emiting topology-change event for sentinel_change`),this.emit(`topology-change`,a)||this.#C(`transform: emit for topology-change for sentinel_change returned false`)}if(e.masterToOpen){this.#C(`transform: opening a new master`);let n=[],r=[];this.#C(`transform: destroying old masters if open`);for(let e of this.#f)r.push(e.isWatching||e.isDirtyWatch),e.isOpen&&e.destroy();this.#f=[],this.#C(`transform: creating all master clients and adding connect promises`);for(let t=0;t<this.#m;t++){let i=e.masterToOpen,a=this.#E(e.masterToOpen,this.#r);a.on(`error`,e=>{this.#o&&this.emit(`error`,Error(`Master Client (${i.host}:${i.port}): ${e.message}`,{cause:e}));let t={type:`MASTER`,node:(0,o.clientSocketToNode)(a.options.socket),error:e};this.emit(`client-error`,t)}),r[t]&&a.setDirtyWatch(`sentinel config changed in middle of a WATCH Transaction`),this.#f.push(a),n.push(a.connect()),this.#C(`created master client to ${e.masterToOpen.host}:${e.masterToOpen.port}`)}this.#C(`transform: adding promise to change #pubSubProxy node`),n.push(this.#b.changeNode(e.masterToOpen)),t.push(...n);let i={type:`MASTER_CHANGE`,node:e.masterToOpen};this.#C(`transform: emiting topology-change event for master_change`),this.emit(`topology-change`,i)||this.#C(`transform: emit for topology-change for master_change returned false`),this.#l++}let n=new Set;for(let t of e.replicasToClose){let e=JSON.stringify(t);n.add(e)}let r=[],i=new Set;for(let e of this.#h){let t=(0,o.clientSocketToNode)(e.options.socket),a=JSON.stringify(t);if(n.has(a)||!e.isOpen){if(e.isOpen){let t=e.options?.socket;this.#C(`destroying replica client to ${t?.host}:${t?.port}`),e.destroy()}if(!i.has(a)){let e={type:`REPLICA_REMOVE`,node:t};this.emit(`topology-change`,e),i.add(a)}}else r.push(e)}if(this.#h=r,e.replicasToOpen.size!=0)for(let[n,r]of e.replicasToOpen){for(let e=0;e<r;e++){let e=this.#E(n,this.#r);e.on(`error`,t=>{this.#o&&this.emit(`error`,Error(`Replica Client (${n.host}:${n.port}): ${t.message}`,{cause:t}));let r={type:`REPLICA`,node:(0,o.clientSocketToNode)(e.options.socket),error:t};this.emit(`client-error`,r)}),this.#h.push(e),t.push(e.connect()),this.#C(`created replica client to ${n.host}:${n.port}`)}let e={type:`REPLICA_ADD`,node:n};this.emit(`topology-change`,e)}if(e.sentinelList.length!=this.#u.length){this.#u=e.sentinelList;let t={type:`SENTINE_LIST_CHANGE`,size:e.sentinelList.length};this.emit(`topology-change`,t)}await Promise.all(t),this.#C(`transform: exit`)}getMasterNode(){if(this.#f.length!=0){for(let e of this.#f)if(e.isReady)return(0,o.clientSocketToNode)(e.options.socket)}}getSentinelNode(){if(this.#d!==void 0)return(0,o.clientSocketToNode)(this.#d.options.socket)}getReplicaNodes(){let e=new Map,t=new Map;for(let e of this.#h){let n=(0,o.clientSocketToNode)(e.options.socket),r=JSON.stringify(n);e.isReady?t.set(r,(t.get(r)??0)+1):t.has(r)||t.set(r,0)}for(let[n,r]of t)e.set(JSON.parse(n),r);return e}setTracer(e){e?this.#C=t=>{e.push(t)}:this.#C=()=>{}}};e.RedisSentinelFactory=class extends n.EventEmitter{options;#e;#t=-1;constructor(e){super(),this.options=e,this.#e=e.sentinelRootNodes}async updateSentinelRootNodes(){for(let e of this.#e){let t=r.default.create({...this.options.sentinelClientOptions,socket:{...this.options.sentinelClientOptions?.socket,host:e.host,port:e.port,reconnectStrategy:!1},modules:u.default}).on(`error`,e=>this.emit(`updateSentinelRootNodes: ${e}`));try{await t.connect()}catch{t.isOpen&&t.destroy();continue}try{let n=await t.sentinel.sentinelSentinels(this.options.name);this.#e=[e].concat((0,o.createNodeList)(n));return}finally{t.destroy()}}throw Error(`Couldn't connect to any sentinel node`)}async getMasterNode(){let e=!1;for(let t of this.#e){let n=r.default.create({...this.options.sentinelClientOptions,socket:{...this.options.sentinelClientOptions?.socket,host:t.host,port:t.port,reconnectStrategy:!1},modules:u.default}).on(`error`,e=>this.emit(`getMasterNode: ${e}`));try{await n.connect()}catch{n.isOpen&&n.destroy();continue}e=!0;try{let e=await n.sentinel.sentinelMaster(this.options.name),t=(0,o.parseNode)(e);if(t===void 0)continue;return t}finally{n.destroy()}}throw e?Error(`Master Node Not Enumerated`):Error(`couldn't connect to any sentinels`)}async getMasterClient(){let e=await this.getMasterNode();return r.default.create({...this.options.nodeClientOptions,socket:{...this.options.nodeClientOptions?.socket,host:e.host,port:e.port}})}async getReplicaNodes(){let e=!1;for(let t of this.#e){let n=r.default.create({...this.options.sentinelClientOptions,socket:{...this.options.sentinelClientOptions?.socket,host:t.host,port:t.port,reconnectStrategy:!1},modules:u.default}).on(`error`,e=>this.emit(`getReplicaNodes: ${e}`));try{await n.connect()}catch{n.isOpen&&n.destroy();continue}e=!0;try{let e=await n.sentinel.sentinelReplicas(this.options.name),t=(0,o.createNodeList)(e);if(t.length==0)continue;return t}finally{n.destroy()}}throw e?Error(`No Replicas Nodes Enumerated`):Error(`couldn't connect to any sentinels`)}async getReplicaClient(){let e=await this.getReplicaNodes();if(e.length==0)throw Error(`no available replicas`);return this.#t++,this.#t>=e.length&&(this.#t=0),r.default.create({...this.options.nodeClientOptions,socket:{...this.options.nodeClientOptions?.socket,host:e[this.#t].host,port:e[this.#t].port}})}}})),pp=c((e=>{var t=e&&e.__createBinding||(Object.create?(function(e,t,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(t,n);(!i||(`get`in i?!t.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,i)}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]})),n=e&&e.__exportStar||function(e,n){for(var r in e)r!==`default`&&!Object.prototype.hasOwnProperty.call(n,r)&&t(n,e,r)},r=e&&e.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e,`__esModule`,{value:!0}),e.BasicPooledClientSideCache=e.BasicClientSideCache=e.REDIS_FLUSH_MODES=e.COMMAND_LIST_FILTER_BY=e.CLUSTER_SLOT_STATES=e.FAILOVER_MODES=e.CLIENT_KILL_FILTERS=e.GEO_REPLY_WITH=e.createSentinel=e.createCluster=e.createClientPool=e.createClient=e.defineScript=e.VerbatimString=e.RESP_TYPES=void 0;var i=Wa();Object.defineProperty(e,`RESP_TYPES`,{enumerable:!0,get:function(){return i.RESP_TYPES}});var a=Ua();Object.defineProperty(e,`VerbatimString`,{enumerable:!0,get:function(){return a.VerbatimString}});var o=Ga();Object.defineProperty(e,`defineScript`,{enumerable:!0,get:function(){return o.defineScript}}),n(X(),e),e.createClient=r(Xf()).default.create,e.createClientPool=Jf().RedisClientPool.create,e.createCluster=r(ep()).default.create,e.createSentinel=r(fp()).default.create;var s=Rs();Object.defineProperty(e,`GEO_REPLY_WITH`,{enumerable:!0,get:function(){return s.GEO_REPLY_WITH}});var c=Mf();Object.defineProperty(e,`CLIENT_KILL_FILTERS`,{enumerable:!0,get:function(){return c.CLIENT_KILL_FILTERS}}),Object.defineProperty(e,`FAILOVER_MODES`,{enumerable:!0,get:function(){return c.FAILOVER_MODES}}),Object.defineProperty(e,`CLUSTER_SLOT_STATES`,{enumerable:!0,get:function(){return c.CLUSTER_SLOT_STATES}}),Object.defineProperty(e,`COMMAND_LIST_FILTER_BY`,{enumerable:!0,get:function(){return c.COMMAND_LIST_FILTER_BY}}),Object.defineProperty(e,`REDIS_FLUSH_MODES`,{enumerable:!0,get:function(){return c.REDIS_FLUSH_MODES}});var l=Kf();Object.defineProperty(e,`BasicClientSideCache`,{enumerable:!0,get:function(){return l.BasicClientSideCache}}),Object.defineProperty(e,`BasicPooledClientSideCache`,{enumerable:!0,get:function(){return l.BasicPooledClientSideCache}})})),mp=pp(),hp=u(Zf(),1),gp=class{_eventListeners;_maxListeners;_logger;_throwOnEmitError=!1;_throwOnEmptyListeners=!1;_errorEvent=`error`;constructor(e){this._eventListeners=new Map,this._maxListeners=100,this._logger=e?.logger,e?.throwOnEmitError!==void 0&&(this._throwOnEmitError=e.throwOnEmitError),e?.throwOnEmptyListeners!==void 0&&(this._throwOnEmptyListeners=e.throwOnEmptyListeners)}get logger(){return this._logger}set logger(e){this._logger=e}get throwOnEmitError(){return this._throwOnEmitError}set throwOnEmitError(e){this._throwOnEmitError=e}get throwOnEmptyListeners(){return this._throwOnEmptyListeners}set throwOnEmptyListeners(e){this._throwOnEmptyListeners=e}once(e,t){let n=(...r)=>{this.off(e,n),t(...r)};return this.on(e,n),this}listenerCount(e){if(e===void 0)return this.getAllListeners().length;let t=this._eventListeners.get(e);return t?t.length:0}eventNames(){return[...this._eventListeners.keys()]}rawListeners(e){return e===void 0?this.getAllListeners():this._eventListeners.get(e)??[]}prependListener(e,t){let n=this._eventListeners.get(e)??[];return n.unshift(t),this._eventListeners.set(e,n),this}prependOnceListener(e,t){let n=(...r)=>{this.off(e,n),t(...r)};return this.prependListener(e,n),this}maxListeners(){return this._maxListeners}addListener(e,t){return this.on(e,t),this}on(e,t){this._eventListeners.has(e)||this._eventListeners.set(e,[]);let n=this._eventListeners.get(e);return n&&(n.length>=this._maxListeners&&console.warn(`MaxListenersExceededWarning: Possible event memory leak detected. ${n.length+1} ${e} listeners added. Use setMaxListeners() to increase limit.`),n.push(t)),this}removeListener(e,t){return this.off(e,t),this}off(e,t){let n=this._eventListeners.get(e)??[],r=n.indexOf(t);return r!==-1&&n.splice(r,1),n.length===0&&this._eventListeners.delete(e),this}emit(e,...t){let n=!1,r=this._eventListeners.get(e);if(r&&r.length>0)for(let e of r)e(...t),n=!0;if(e===this._errorEvent){let e=t[0]instanceof Error?t[0]:Error(`${t[0]}`);if(this._throwOnEmitError&&!n||this.listeners(this._errorEvent).length===0&&this._throwOnEmptyListeners===!0)throw e}return n}listeners(e){return this._eventListeners.get(e)??[]}removeAllListeners(e){return e===void 0?this._eventListeners.clear():this._eventListeners.delete(e),this}setMaxListeners(e){this._maxListeners=e;for(let t of this._eventListeners.values())t.length>e&&t.splice(e)}getAllListeners(){let e=[];for(let t of this._eventListeners.values())e=[...e,...t];return e}},_p=class extends gp{_hooks;_throwOnHookError=!1;_enforceBeforeAfter=!1;_deprecatedHooks;_allowDeprecated=!0;constructor(e){super({logger:e?.logger,throwOnEmitError:e?.throwOnEmitError,throwOnEmptyListeners:e?.throwOnEmptyListeners}),this._hooks=new Map,this._deprecatedHooks=e?.deprecatedHooks?new Map(e.deprecatedHooks):new Map,e?.throwOnHookError===void 0?e?.throwHookErrors!==void 0&&(this._throwOnHookError=e.throwHookErrors):this._throwOnHookError=e.throwOnHookError,e?.enforceBeforeAfter!==void 0&&(this._enforceBeforeAfter=e.enforceBeforeAfter),e?.allowDeprecated!==void 0&&(this._allowDeprecated=e.allowDeprecated)}get hooks(){return this._hooks}get throwHookErrors(){return this._throwOnHookError}set throwHookErrors(e){this._throwOnHookError=e}get throwOnHookError(){return this._throwOnHookError}set throwOnHookError(e){this._throwOnHookError=e}get enforceBeforeAfter(){return this._enforceBeforeAfter}set enforceBeforeAfter(e){this._enforceBeforeAfter=e}get deprecatedHooks(){return this._deprecatedHooks}set deprecatedHooks(e){this._deprecatedHooks=e}get allowDeprecated(){return this._allowDeprecated}set allowDeprecated(e){this._allowDeprecated=e}validateHookName(e){if(this._enforceBeforeAfter){let t=e.trim().toLocaleLowerCase();if(!t.startsWith(`before`)&&!t.startsWith(`after`))throw Error(`Hook event "${e}" must start with "before" or "after" when enforceBeforeAfter is enabled`)}}checkDeprecatedHook(e){if(this._deprecatedHooks.has(e)){let t=this._deprecatedHooks.get(e),n=`Hook "${e}" is deprecated${t?`: ${t}`:``}`;return this.emit(`warn`,{hook:e,message:n}),this.logger?.warn&&this.logger.warn(n),this._allowDeprecated}return!0}onHook(e,t){if(this.validateHookName(e),!this.checkDeprecatedHook(e))return;let n=this._hooks.get(e);n?n.push(t):this._hooks.set(e,[t])}onHookEntry(e){this.onHook(e.event,e.handler)}addHook(e,t){this.onHook(e,t)}onHooks(e){for(let t of e)this.onHook(t.event,t.handler)}prependHook(e,t){if(this.validateHookName(e),!this.checkDeprecatedHook(e))return;let n=this._hooks.get(e);n?n.unshift(t):this._hooks.set(e,[t])}prependOnceHook(e,t){if(this.validateHookName(e),!this.checkDeprecatedHook(e))return;let n=async(...r)=>(this.removeHook(e,n),t(...r));this.prependHook(e,n)}onceHook(e,t){if(this.validateHookName(e),!this.checkDeprecatedHook(e))return;let n=async(...r)=>(this.removeHook(e,n),t(...r));this.onHook(e,n)}removeHook(e,t){if(this.validateHookName(e),!this.checkDeprecatedHook(e))return;let n=this._hooks.get(e);if(n){let e=n.indexOf(t);e!==-1&&n.splice(e,1)}}removeHooks(e){for(let t of e)this.removeHook(t.event,t.handler)}async hook(e,...t){if(this.validateHookName(e),!this.checkDeprecatedHook(e))return;let n=this._hooks.get(e);if(n)for(let r of n)try{await r(...t)}catch(t){let n=`${e}: ${t.message}`;if(this.emit(`error`,Error(n)),this.logger&&this.logger.error(n),this._throwOnHookError)throw Error(n)}}async beforeHook(e,...t){await this.hook(`before:${e}`,...t)}async afterHook(e,...t){await this.hook(`after:${e}`,...t)}async callHook(e,...t){await this.hook(e,...t)}getHooks(e){if(this.validateHookName(e),this.checkDeprecatedHook(e))return this._hooks.get(e)}clearHooks(){this._hooks.clear()}},vp=(e,n=!0)=>{if(e==null)return`null`;if(typeof e==`string`)return JSON.stringify(n&&e.startsWith(`:`)?`:${e}`:e);if(t.isBuffer(e))return JSON.stringify(`:base64:${e.toString(`base64`)}`);if(e?.toJSON&&(e=e.toJSON()),typeof e==`object`){let t=``,r=Array.isArray(e);t=r?`[`:`{`;let i=!0;for(let a in e){let o=typeof e[a]==`function`||!r&&e[a]===void 0;!Object.hasOwn(e,a)||o||(i||(t+=`,`),i=!1,r?t+=vp(e[a],n):e[a]!==void 0&&(t+=`${vp(a,!1)}:${vp(e[a],n)}`))}return t+=r?`]`:`}`,t}return JSON.stringify(e)},yp=e=>vp(e,!0),bp=e=>JSON.parse(e,(e,n)=>typeof n==`string`?n.startsWith(`:base64:`)?t.from(n.slice(8),`base64`):n.startsWith(`:`)?n.slice(1):n:n),xp=class{_eventListeners;_maxListeners;constructor(){this._eventListeners=new Map,this._maxListeners=100}maxListeners(){return this._maxListeners}addListener(e,t){this.on(e,t)}on(e,t){this._eventListeners.has(e)||this._eventListeners.set(e,[]);let n=this._eventListeners.get(e);return n&&(n.length>=this._maxListeners&&console.warn(`MaxListenersExceededWarning: Possible event memory leak detected. ${n.length+1} ${e} listeners added. Use setMaxListeners() to increase limit.`),n.push(t)),this}removeListener(e,t){this.off(e,t)}off(e,t){let n=this._eventListeners.get(e)??[],r=n.indexOf(t);r!==-1&&n.splice(r,1),n.length===0&&this._eventListeners.delete(e)}once(e,t){let n=(...r)=>{t(...r),this.off(e,n)};this.on(e,n)}emit(e,...t){let n=this._eventListeners.get(e);if(n&&n.length>0)for(let e of n)e(...t)}listeners(e){return this._eventListeners.get(e)??[]}removeAllListeners(e){e?this._eventListeners.delete(e):this._eventListeners.clear()}setMaxListeners(e){this._maxListeners=e}},Sp=class extends xp{_hookHandlers;constructor(){super(),this._hookHandlers=new Map}addHandler(e,t){let n=this._hookHandlers.get(e);n?n.push(t):this._hookHandlers.set(e,[t])}removeHandler(e,t){let n=this._hookHandlers.get(e);if(n){let e=n.indexOf(t);e!==-1&&n.splice(e,1)}}trigger(e,t){let n=this._hookHandlers.get(e);if(n)for(let r of n)try{r(t)}catch(t){this.emit(`error`,Error(`Error in hook handler for event "${e}": ${t.message}`))}}get handlers(){return new Map(this._hookHandlers)}},Cp=class extends xp{enabled=!0;hits=0;misses=0;sets=0;deletes=0;errors=0;constructor(e){super(),e!==void 0&&(this.enabled=e),this.reset()}hit(){this.enabled&&this.hits++}miss(){this.enabled&&this.misses++}set(){this.enabled&&this.sets++}delete(){this.enabled&&this.deletes++}hitsOrMisses(e){for(let t of e)t===void 0?this.miss():this.hit()}reset(){this.hits=0,this.misses=0,this.sets=0,this.deletes=0,this.errors=0}},wp=[`sqlite`,`postgres`,`mysql`,`mongo`,`redis`,`valkey`,`etcd`],Tp=class extends xp{opts;iterator;hooks=new Sp;stats=new Cp(!1);_ttl;_namespace;_store=new Map;_serialize=yp;_deserialize=bp;_compression;_useKeyPrefix=!0;_throwOnErrors=!1;constructor(e,t){if(super(),t??={},e??={},this.opts={namespace:`keyv`,serialize:yp,deserialize:bp,emitErrors:!0,store:new Map,...t},e&&e.get?this.opts.store=e:this.opts={...this.opts,...e},this._store=this.opts.store??new Map,this._compression=this.opts.compression,this._serialize=this.opts.serialize,this._deserialize=this.opts.deserialize,this.opts.namespace&&(this._namespace=this.opts.namespace),this._store){if(!this._isValidStorageAdapter(this._store))throw Error(`Invalid storage adapter`);typeof this._store.on==`function`&&this._store.on(`error`,e=>this.emit(`error`,e)),this._store.namespace=this._namespace,typeof this._store[Symbol.iterator]==`function`&&this._store instanceof Map?this.iterator=this.generateIterator(this._store):`iterator`in this._store&&this._store.opts&&this._checkIterableAdapter()&&(this.iterator=this.generateIterator(this._store.iterator.bind(this._store)))}this.opts.stats&&(this.stats.enabled=this.opts.stats),this.opts.ttl&&(this._ttl=this.opts.ttl),this.opts.useKeyPrefix!==void 0&&(this._useKeyPrefix=this.opts.useKeyPrefix),this.opts.throwOnErrors!==void 0&&(this._throwOnErrors=this.opts.throwOnErrors)}get store(){return this._store}set store(e){if(this._isValidStorageAdapter(e))this._store=e,this.opts.store=e,typeof e.on==`function`&&e.on(`error`,e=>this.emit(`error`,e)),this._namespace&&(this._store.namespace=this._namespace),typeof e[Symbol.iterator]==`function`&&e instanceof Map?this.iterator=this.generateIterator(e):`iterator`in e&&e.opts&&this._checkIterableAdapter()&&(this.iterator=this.generateIterator(e.iterator?.bind(e)));else throw Error(`Invalid storage adapter`)}get compression(){return this._compression}set compression(e){this._compression=e}get namespace(){return this._namespace}set namespace(e){this._namespace=e,this.opts.namespace=e,this._store.namespace=e,this.opts.store&&(this.opts.store.namespace=e)}get ttl(){return this._ttl}set ttl(e){this.opts.ttl=e,this._ttl=e}get serialize(){return this._serialize}set serialize(e){this.opts.serialize=e,this._serialize=e}get deserialize(){return this._deserialize}set deserialize(e){this.opts.deserialize=e,this._deserialize=e}get useKeyPrefix(){return this._useKeyPrefix}set useKeyPrefix(e){this._useKeyPrefix=e,this.opts.useKeyPrefix=e}get throwOnErrors(){return this._throwOnErrors}set throwOnErrors(e){this._throwOnErrors=e,this.opts.throwOnErrors=e}generateIterator(e){return async function*(){for await(let[t,n]of typeof e==`function`?e(this._store.namespace):e){let e=await this.deserializeData(n);if(!(this._useKeyPrefix&&this._store.namespace&&!t.includes(this._store.namespace))){if(typeof e.expires==`number`&&Date.now()>e.expires){this.delete(t);continue}yield[this._getKeyUnprefix(t),e.value]}}}.bind(this)}_checkIterableAdapter(){return wp.includes(this._store.opts.dialect)||wp.some(e=>this._store.opts.url.includes(e))}_getKeyPrefix(e){return!this._useKeyPrefix||!this._namespace?e:`${this._namespace}:${e}`}_getKeyPrefixArray(e){return!this._useKeyPrefix||!this._namespace?e:e.map(e=>`${this._namespace}:${e}`)}_getKeyUnprefix(e){return this._useKeyPrefix?e.split(`:`).splice(1).join(`:`):e}_isValidStorageAdapter(e){return e instanceof Map||typeof e.get==`function`&&typeof e.set==`function`&&typeof e.delete==`function`&&typeof e.clear==`function`}async get(e,t){let{store:n}=this.opts,r=Array.isArray(e),i=r?this._getKeyPrefixArray(e):this._getKeyPrefix(e),a=e=>typeof e.expires==`number`&&Date.now()>e.expires;if(r)return t?.raw===!0?this.getMany(e,{raw:!0}):this.getMany(e,{raw:!1});this.hooks.trigger(`preGet`,{key:i});let o;try{o=await n.get(i)}catch(e){if(this.throwOnErrors)throw e}let s=typeof o==`string`||this.opts.compression?await this.deserializeData(o):o;if(s==null){this.hooks.trigger(`postGet`,{key:i,value:void 0}),this.stats.miss();return}if(a(s)){await this.delete(e),this.hooks.trigger(`postGet`,{key:i,value:void 0}),this.stats.miss();return}return this.hooks.trigger(`postGet`,{key:i,value:s}),this.stats.hit(),t?.raw?s:s.value}async getMany(e,t){let{store:n}=this.opts,r=this._getKeyPrefixArray(e),i=e=>typeof e.expires==`number`&&Date.now()>e.expires;if(this.hooks.trigger(`preGetMany`,{keys:r}),n.getMany===void 0){let e=r.map(async e=>{let r=await n.get(e),a=typeof r==`string`||this.opts.compression?await this.deserializeData(r):r;if(a!=null){if(i(a)){await this.delete(e);return}return t?.raw?a:a.value}}),a=(await Promise.allSettled(e)).map(e=>e.value);return this.hooks.trigger(`postGetMany`,a),a.length>0&&this.stats.hit(),a}let a=await n.getMany(r),o=[],s=[];for(let n in a){let r=a[n];if(typeof r==`string`&&(r=await this.deserializeData(r)),r==null){o.push(void 0);continue}if(i(r)){s.push(e[n]),o.push(void 0);continue}let c=t?.raw?r:r.value;o.push(c)}return s.length>0&&await this.deleteMany(s),this.hooks.trigger(`postGetMany`,o),o.length>0&&this.stats.hit(),o}async getRaw(e){let{store:t}=this.opts,n=this._getKeyPrefix(e);this.hooks.trigger(`preGetRaw`,{key:n});let r=await t.get(n);if(r==null){this.hooks.trigger(`postGetRaw`,{key:n,value:void 0}),this.stats.miss();return}let i=typeof r==`string`||this.opts.compression?await this.deserializeData(r):r;if(i!==void 0&&i.expires!==void 0&&i.expires!==null&&i.expires<Date.now()){this.hooks.trigger(`postGetRaw`,{key:n,value:void 0}),this.stats.miss(),await this.delete(e);return}return this.stats.hit(),this.hooks.trigger(`postGetRaw`,{key:n,value:i}),i}async getManyRaw(e){let{store:t}=this.opts,n=this._getKeyPrefixArray(e);if(e.length===0){let t=Array.from({length:e.length}).fill(void 0);return this.stats.misses+=e.length,this.hooks.trigger(`postGetManyRaw`,{keys:n,values:t}),t}let r=[];if(t.getMany===void 0){let e=n.map(async e=>{let n=await t.get(e);if(n!=null)return this.deserializeData(n)});r=(await Promise.allSettled(e)).map(e=>e.value)}else{let e=await t.getMany(n);for(let t of e)t==null?r.push(void 0):r.push(await this.deserializeData(t))}let i=[],a=e=>typeof e.expires==`number`&&Date.now()>e.expires;for(let[e,t]of r.entries())t!==void 0&&a(t)&&(i.push(n[e]),r[e]=void 0);return i.length>0&&await this.deleteMany(i),this.stats.hitsOrMisses(r),this.hooks.trigger(`postGetManyRaw`,{keys:n,values:r}),r}async set(e,t,n){let r={key:e,value:t,ttl:n};this.hooks.trigger(`preSet`,r);let i=this._getKeyPrefix(r.key);r.ttl??=this._ttl,r.ttl===0&&(r.ttl=void 0);let{store:a}=this.opts,o=typeof r.ttl==`number`?Date.now()+r.ttl:void 0;if(typeof r.value==`symbol`)throw this.emit(`error`,`symbol cannot be serialized`),Error(`symbol cannot be serialized`);let s={value:r.value,expires:o},c=await this.serializeData(s),l=!0;try{let e=await a.set(i,c,r.ttl);typeof e==`boolean`&&(l=e)}catch(e){if(l=!1,this.emit(`error`,e),this._throwOnErrors)throw e}return this.hooks.trigger(`postSet`,{key:i,value:c,ttl:n}),this.stats.set(),l}async setMany(e){let t=[];try{if(this._store.setMany===void 0){let n=[];for(let t of e)n.push(this.set(t.key,t.value,t.ttl));t=await Promise.all(n)}else{let n=await Promise.all(e.map(async({key:e,value:t,ttl:n})=>{n??=this._ttl,n===0&&(n=void 0);let r=typeof n==`number`?Date.now()+n:void 0;if(typeof t==`symbol`)throw this.emit(`error`,`symbol cannot be serialized`),Error(`symbol cannot be serialized`);let i={value:t,expires:r},a=await this.serializeData(i);return{key:this._getKeyPrefix(e),value:a,ttl:n}}));t=await this._store.setMany(n)}}catch(n){if(this.emit(`error`,n),this._throwOnErrors)throw n;t=e.map(()=>!1)}return t}async delete(e){let{store:t}=this.opts;if(Array.isArray(e))return this.deleteMany(e);let n=this._getKeyPrefix(e);this.hooks.trigger(`preDelete`,{key:n});let r=!0;try{let e=await t.delete(n);typeof e==`boolean`&&(r=e)}catch(e){if(r=!1,this.emit(`error`,e),this._throwOnErrors)throw e}return this.hooks.trigger(`postDelete`,{key:n,value:r}),this.stats.delete(),r}async deleteMany(e){try{let{store:t}=this.opts,n=this._getKeyPrefixArray(e);if(this.hooks.trigger(`preDelete`,{key:n}),t.deleteMany!==void 0)return await t.deleteMany(n);let r=n.map(async e=>t.delete(e)),i=(await Promise.all(r)).every(Boolean);return this.hooks.trigger(`postDelete`,{key:n,value:i}),i}catch(e){if(this.emit(`error`,e),this._throwOnErrors)throw e;return!1}}async clear(){this.emit(`clear`);let{store:e}=this.opts;try{await e.clear()}catch(e){if(this.emit(`error`,e),this._throwOnErrors)throw e}}async has(e){if(Array.isArray(e))return this.hasMany(e);let t=this._getKeyPrefix(e),{store:n}=this.opts;if(n.has!==void 0&&!(n instanceof Map))return n.has(t);let r;try{r=await n.get(t)}catch(e){if(this.emit(`error`,e),this._throwOnErrors)throw e;return!1}if(r){let e=await this.deserializeData(r);if(e)return e.expires===void 0||e.expires===null?!0:e.expires>Date.now()}return!1}async hasMany(e){let t=this._getKeyPrefixArray(e),{store:n}=this.opts;if(n.hasMany!==void 0)return n.hasMany(t);let r=[];for(let t of e)r.push(await this.has(t));return r}async disconnect(){let{store:e}=this.opts;if(this.emit(`disconnect`),typeof e.disconnect==`function`)return e.disconnect()}emit(e,...t){e===`error`&&!this.opts.emitErrors||super.emit(e,...t)}async serializeData(e){return this._serialize?this._compression?.compress?this._serialize({value:await this._compression.compress(e.value),expires:e.expires}):this._serialize(e):e}async deserializeData(e){if(!this._deserialize)return e;if(this._compression?.decompress&&typeof e==`string`){let t=await this._deserialize(e);return{value:await this._compression.decompress(t?.value),expires:t?.expires}}if(typeof e==`string`)return this._deserialize(e)}};pp();var Ep=e=>Math.min(2**e*100,2e3)+(Math.random()-.5)*100;function Dp(e,t){e??=`redis://localhost:6379`;let n=new Op(e,t);if(t?.namespace){n.namespace=t.namespace;let e=new Tp(n,{namespace:t?.namespace,useKeyPrefix:!1});return t?.throwOnConnectError&&(e.throwOnErrors=!0),t?.throwOnErrors&&(e.throwOnErrors=!0),e}let r=new Tp(n,{useKeyPrefix:!1});return t?.throwOnConnectError&&(r.throwOnErrors=!0),t?.throwOnErrors&&(r.throwOnErrors=!0),r.namespace=void 0,r}var Op=class extends _p{_client=(0,mp.createClient)();_namespace;_keyPrefixSeparator=`::`;_clearBatchSize=1e3;_useUnlink=!0;_noNamespaceAffectsAll=!1;_throwOnConnectError=!0;_throwOnErrors=!1;_connectionTimeout;constructor(e,t){super();let n={reconnectStrategy:Ep};e&&(typeof e==`string`?this._client=(0,mp.createClient)({url:e,socket:n}):e.connect===void 0?e instanceof Object&&(e.sentinelRootNodes===void 0?e.rootNodes===void 0?this._client=(0,mp.createClient)(e):this._client=(0,mp.createCluster)(e):this._client=(0,mp.createSentinel)(e)):(this.isClientSentinel(e)||this.isClientCluster(e),this._client=e)),this.setOptions(t),this.initClient()}get client(){return this._client}set client(e){this._client=e,this.initClient()}get opts(){let e=`redis://localhost:6379`;if(this._client.options){let t=this._client.options?.url;t&&(e=t)}return{namespace:this._namespace,keyPrefixSeparator:this._keyPrefixSeparator,clearBatchSize:this._clearBatchSize,noNamespaceAffectsAll:this._noNamespaceAffectsAll,useUnlink:this._useUnlink,throwOnConnectError:this._throwOnConnectError,throwOnErrors:this._throwOnErrors,connectionTimeout:this._connectionTimeout,dialect:`redis`,url:e}}set opts(e){this.setOptions(e)}get namespace(){return this._namespace}set namespace(e){this._namespace=e}get keyPrefixSeparator(){return this._keyPrefixSeparator}set keyPrefixSeparator(e){this._keyPrefixSeparator=e}get clearBatchSize(){return this._clearBatchSize}set clearBatchSize(e){e>0?this._clearBatchSize=e:this.emit(`error`,`clearBatchSize must be greater than 0`)}get useUnlink(){return this._useUnlink}set useUnlink(e){this._useUnlink=e}get noNamespaceAffectsAll(){return this._noNamespaceAffectsAll}set noNamespaceAffectsAll(e){this._noNamespaceAffectsAll=e}get throwOnConnectError(){return this._throwOnConnectError}set throwOnConnectError(e){this._throwOnConnectError=e}get throwOnErrors(){return this._throwOnErrors}set throwOnErrors(e){this._throwOnErrors=e}get connectionTimeout(){return this._connectionTimeout}set connectionTimeout(e){this._connectionTimeout=e}async getClient(){if(this._client.isOpen)return this._client;try{this._connectionTimeout===void 0?await this._client.connect():await Promise.race([this._client.connect(),this.createTimeoutPromise(this._connectionTimeout)])}catch(e){if(this.emit(`error`,e),await this.disconnect(!0),this._throwOnConnectError)throw Error(`Redis client is not connected or has failed to connect. This is thrown because throwOnConnectError is set to true.`)}return this.initClient(),this._client}async set(e,t,n){let r=await this.getClient();try{e=this.createKeyPrefix(e,this._namespace),n?await r.set(e,t,{PX:n}):await r.set(e,t)}catch(e){if(this.emit(`error`,e),this._throwOnErrors)throw e}}async setMany(e){try{if(this.isCluster()){await this.getClient();let t=new Map;for(let n of e){let e=(0,hp.default)(this.createKeyPrefix(n.key,this._namespace)),r=t.get(e)??[];r.push(n),t.set(e,r)}await Promise.all(Array.from(t.entries(),async([e,t])=>{let n=(await this.getSlotMaster(e)).multi();for(let{key:e,value:r,ttl:i}of t){let t=this.createKeyPrefix(e,this._namespace);i?n.set(t,r,{PX:i}):n.set(t,r)}await n.exec()}))}else{let t=(await this.getClient()).multi();for(let{key:n,value:r,ttl:i}of e){let e=this.createKeyPrefix(n,this._namespace);i?t.set(e,r,{PX:i}):t.set(e,r)}await t.exec()}}catch(e){if(this.emit(`error`,e),this._throwOnConnectError&&e.message===`Redis client is not connected or has failed to connect. This is thrown because throwOnConnectError is set to true.`||this._throwOnErrors)throw e}}async has(e){let t=await this.getClient();try{return e=this.createKeyPrefix(e,this._namespace),await t.exists(e)===1}catch(e){if(this.emit(`error`,e),this._throwOnErrors)throw e;return!1}}async hasMany(e){try{let t=e.map(e=>this.createKeyPrefix(e,this._namespace));if(this.isCluster()){let e=this.getSlotMap(t),n=new Map;return await Promise.all(Array.from(e.entries(),async([e,t])=>{let r=(await this.getSlotMaster(e)).multi();for(let e of t)r.exists(e);let i=await r.exec();for(let[e,r]of i.entries())n.set(t[e],typeof r==`number`&&r===1)})),t.map(e=>n.get(e)??!1)}else{let e=(await this.getClient()).multi();for(let n of t)e.exists(n);return(await e.exec()).map(e=>typeof e==`number`&&e===1)}}catch(t){if(this.emit(`error`,t),this._throwOnConnectError&&t.message===`Redis client is not connected or has failed to connect. This is thrown because throwOnConnectError is set to true.`||this._throwOnErrors)throw t;return Array.from({length:e.length}).fill(!1)}}async get(e){let t=await this.getClient();try{e=this.createKeyPrefix(e,this._namespace);let n=await t.get(e);return n===null?void 0:n}catch(e){if(this.emit(`error`,e),this._throwOnErrors)throw e;return}}async getMany(e){if(e.length===0)return[];e=e.map(e=>this.createKeyPrefix(e,this._namespace));try{return await this.mget(e)}catch(t){if(this.emit(`error`,t),this._throwOnErrors)throw t;return Array.from({length:e.length}).fill(void 0)}}async delete(e){let t=await this.getClient();try{e=this.createKeyPrefix(e,this._namespace);let n=0;return n=await(this._useUnlink?t.unlink(e):t.del(e)),n>0}catch(e){if(this.emit(`error`,e),this._throwOnErrors)throw e;return!1}}async deleteMany(e){let t=!1;try{let n=e.map(e=>this.createKeyPrefix(e,this._namespace));if(this.isCluster()){let e=this.getSlotMap(n);await Promise.all(Array.from(e.entries(),async([e,n])=>{let r=(await this.getSlotMaster(e)).multi();for(let e of n)this._useUnlink?r.unlink(e):r.del(e);let i=await r.exec();for(let e of i)typeof e==`number`&&e>0&&(t=!0)}))}else{let e=(await this.getClient()).multi();for(let t of n)this._useUnlink?e.unlink(t):e.del(t);let r=await e.exec();for(let e of r)typeof e==`number`&&e>0&&(t=!0)}}catch(e){if(this.emit(`error`,e),this._throwOnConnectError&&e.message===`Redis client is not connected or has failed to connect. This is thrown because throwOnConnectError is set to true.`||this._throwOnErrors)throw e}return t}async disconnect(e){this._client.isOpen&&await(e?this._client.destroy():this._client.close())}createKeyPrefix(e,t){return t?`${t}${this._keyPrefixSeparator}${e}`:e}getKeyWithoutPrefix(e,t){return t?e.replace(`${t}${this._keyPrefixSeparator}`,``):e}isCluster(){return this.isClientCluster(this._client)}isSentinel(){return this.isClientSentinel(this._client)}async getMasterNodes(){if(this.isCluster()){let e=await this.getClient(),t=e.masters.map(async t=>e.nodeClient(t));return Promise.all(t)}return[await this.getClient()]}async*iterator(e){let t=await this.getMasterNodes();for(let n of t){let t=e?`${e}${this._keyPrefixSeparator}*`:`*`,r=`0`;do{let i=await n.scan(r,{MATCH:t,TYPE:`string`});r=i.cursor.toString();let{keys:a}=i;if(!e&&!this._noNamespaceAffectsAll&&(a=a.filter(e=>!e.includes(this._keyPrefixSeparator))),a.length>0){let t=await this.mget(a);for(let n of a.keys())yield[this.getKeyWithoutPrefix(a[n],e),t[n]]}}while(r!==`0`)}}async clear(){try{let e=await this.getMasterNodes();await Promise.all(e.map(async e=>{if(!this._namespace&&this._noNamespaceAffectsAll){await e.flushDb();return}let t=`0`,n=this._clearBatchSize,r=this._namespace?`${this._namespace}${this._keyPrefixSeparator}*`:`*`,i=[];do{let a=await e.scan(t,{MATCH:r,COUNT:n,TYPE:`string`});t=a.cursor.toString();let{keys:o}=a;if(o.length===0)continue;this._namespace||(o=o.filter(e=>!e.includes(this._keyPrefixSeparator))),i.push(this.clearWithClusterSupport(o))}while(t!==`0`);await Promise.all(i)}))}catch(e){this.emit(`error`,e)}}async mget(e){let t=new Map;if(this.isCluster()){let n=this.getSlotMap(e);await Promise.all(Array.from(n.entries(),async([e,n])=>{let r=await(await this.getSlotMaster(e)).mGet(n);for(let[e,i]of r.entries())t.set(n[e],i??void 0)}))}else{let n=await(await this.getClient()).mGet(e);for(let[r,i]of n.entries())t.set(e[r],i??void 0)}return e.map(e=>t.get(e))}async clearWithClusterSupport(e){if(e.length>0){let t=this.getSlotMap(e);await Promise.all(Array.from(t.entries(),async([e,t])=>{let n=await this.getSlotMaster(e);return this._useUnlink?n.unlink(t):n.del(t)}))}}async getSlotMaster(e){let t=await this.getClient();if(this.isCluster()){let n=t,r=n.slots[e].master;return n.nodeClient(r)}return t}getSlotMap(e){let t=new Map;if(this.isCluster())for(let n of e){let e=(0,hp.default)(n),r=t.get(e)??[];r.push(n),t.set(e,r)}else t.set(0,e);return t}isClientCluster(e){return e.slots!==void 0}isClientSentinel(e){return e.getSentinelNode!==void 0}setOptions(e){e&&(e.namespace&&(this._namespace=e.namespace),e.keyPrefixSeparator!==void 0&&(this._keyPrefixSeparator=e.keyPrefixSeparator),e.clearBatchSize!==void 0&&e.clearBatchSize>0&&(this._clearBatchSize=e.clearBatchSize),e.useUnlink!==void 0&&(this._useUnlink=e.useUnlink),e.noNamespaceAffectsAll!==void 0&&(this._noNamespaceAffectsAll=e.noNamespaceAffectsAll),e.throwOnConnectError!==void 0&&(this._throwOnConnectError=e.throwOnConnectError),e.throwOnErrors!==void 0&&(this._throwOnErrors=e.throwOnErrors),e.connectionTimeout!==void 0&&(this._connectionTimeout=e.connectionTimeout))}initClient(){this._client.on(`connect`,()=>{this.emit(`connect`,this._client)}),this._client.on(`disconnect`,()=>{this.emit(`disconnect`,this._client)}),this._client.on(`reconnecting`,e=>{this.emit(`reconnecting`,e)})}async createTimeoutPromise(e){return new Promise((t,n)=>setTimeout(()=>{n(Error(`Redis timed out after ${e}ms`))},e))}};async function kp({connect:e,logger:t,options:n}){let r=Dp(e,n);return r.on(`error`,e=>{t.error({err:e},`Cache error`)}),r}export{Pt as AggregatedField,Ee as BaseName,h as Column,Ke as ColumnAliasProxyHandler,v as ColumnBuilder,tt as ConsoleLogWriter,Ft as Count,nt as DefaultLogger,Qe as DrizzleError,$e as DrizzleQueryError,De as ExtraConfigBuilder,we as ExtraConfigColumns,je as FakePrimitiveParam,k as IsAlias,Nt as Many,Pe as Name,rt as NoopLogger,Mt as One,Te as OriginalName,P as Param,I as Placeholder,it as QueryPromise,U as Relation,Je as RelationTableAliasProxyHandler,Bt as RelationsBuilderColumn,Vt as RelationsBuilderJunctionColumn,zt as RelationsBuilderTable,Ht as RelationsHelperStatic,N as SQL,M as StringChunk,T as Subquery,A as Table,qe as TableAliasProxyHandler,O as TableColumns,D as TableSchema,et as TransactionRollbackError,L as View,E as ViewBaseConfig,Se as WithSubquery,Ye as aliasedRelation,R as aliasedTable,z as aliasedTableColumn,H as and,vn as applyMixins,Tt as arrayContained,wt as arrayContains,Et as arrayOverlaps,Dt as asc,en as avg,tn as avgDistinct,vt as between,B as bindIfParam,At as buildRelations,jt as buildRelationsParts,dn as cosineDistance,Qt as count,$t as countDistinct,Ut as createRelationsHelper,kp as defineCache,Gt as defineRelations,Kt as defineRelationsPart,Ot as desc,f as entityKind,V as eq,gt as exists,_ as extractExtendedColumnType,Wt as extractTablesFromSchema,qt as fieldSelectionToSQL,He as fillPlaceholders,q as getColumnNameAndConfig,g as getColumnTable,Lt as getOrderByOperators,K as getTableAsAliasSQL,yn as getTableColumns,xn as getTableLikeName,j as getTableName,Ae as getTableUniqueName,Ge as getViewName,bn as getViewSelectedFields,ct as gt,lt as gte,fn as hammingDistance,p as hasOwnEntityKind,gn as haveSameKeys,St as ilike,ft as inArray,Wi as index,un as innerProduct,m as is,Sn as isConfig,Ie as isDriverValueEncoder,ht as isNotNull,mt as isNull,Me as isSQLWrapper,ke as isTable,We as isView,pn as jaccardDistance,ln as l1Distance,cn as l2Distance,bt as like,ut as lt,dt as lte,Xe as mapColumnsInAliasedSQLToAlias,Ze as mapColumnsInSQLToAlias,Rt as mapRelationalRow,mn as mapResultRow,_n as mapUpdateSet,an as max,on as min,Fe as name,at as ne,Le as noopDecoder,Re as noopEncoder,ze as noopMapper,st as not,yt as notBetween,_t as notExists,Ct as notIlike,pt as notInArray,xt as notLike,W as operators,ot as or,It as orderByOperators,hn as orderSelectedFields,Be as param,se as parsePgArray,oe as parsePgNestedArray,ye as pgEnum,Na as pgMaterializedView,qi as pgPolicy,La as pgRole,Ha as pgSchema,za as pgSequence,zi as pgTable,Bi as pgTableCreator,Ma as pgView,Ve as placeholder,kt as processRelations,Xt as relationExtrasToSQL,Zt as relationToSQL,G as relationsFilterToSQL,Yt as relationsOrderToSQL,F as sql,nn as sum,rn as sumDistinct,Cn as textDecoder,ee as unique,Gi as uniqueIndex,te as uniqueKeyName,Fa as withReplicas};