@wix/cli 1.1.107 → 1.1.109

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 (126) hide show
  1. package/build/{DevCommand-T54H7TLB.js → DevCommand-HQ2SMGKH.js} +8 -8
  2. package/build/{DevCommand-SMNR7QZ6.js → DevCommand-IBHYQ2YN.js} +11 -11
  3. package/build/{DevCommand-26H5VAVG.js → DevCommand-YNAG2LIC.js} +50 -7
  4. package/build/{DevCommand-26H5VAVG.js.map → DevCommand-YNAG2LIC.js.map} +1 -1
  5. package/build/{EnvPullCommand-I5LSCTE4.js → EnvPullCommand-GNRHVQ7K.js} +6 -6
  6. package/build/{EnvRemoveCommand-K2WXVU5F.js → EnvRemoveCommand-X6W76IFY.js} +5 -5
  7. package/build/{EnvSetCommand-R6D5TTJJ.js → EnvSetCommand-GDPBPXZH.js} +5 -5
  8. package/build/{GenerateCommand-MG6ZV6K7.js → GenerateCommand-BOOFHRCA.js} +83 -5
  9. package/build/GenerateCommand-BOOFHRCA.js.map +1 -0
  10. package/build/{InstallCommand-TXJVZXZ5.js → InstallCommand-H33LFYJ5.js} +7 -7
  11. package/build/{LoginCommand-EIKBXEMP.js → LoginCommand-2CVB7IKJ.js} +3 -3
  12. package/build/{LogoutCommand-7T3FO7GC.js → LogoutCommand-XAMBBO7F.js} +2 -2
  13. package/build/{PreviewCommand-OBSAPY2R.js → PreviewCommand-F7VW65C5.js} +12 -12
  14. package/build/{PreviewCommand-RRZ7PLRP.js → PreviewCommand-HV7MP3OF.js} +7 -7
  15. package/build/{PreviewCommand-H57HGTJJ.js → PreviewCommand-OZBXL6VQ.js} +10 -10
  16. package/build/{PublishCommand-NBJNZN56.js → PublishCommand-LJCY5TGE.js} +10 -10
  17. package/build/{ReleaseCommand-G3POH5AX.js → ReleaseCommand-UGO7PYHX.js} +7 -7
  18. package/build/{UninstallCommand-FQSDL4WX.js → UninstallCommand-EETYGQWM.js} +7 -7
  19. package/build/{chunk-UD4TT5P6.js → chunk-34VZ3IS4.js} +10 -4
  20. package/build/{chunk-UD4TT5P6.js.map → chunk-34VZ3IS4.js.map} +1 -1
  21. package/build/{chunk-VZ3HPX2T.js → chunk-5N7G7EWX.js} +2 -2
  22. package/build/{chunk-LTISPWJK.js → chunk-6AS3O4CN.js} +4 -4
  23. package/build/{chunk-AFIBPOWH.js → chunk-6VG5KVI2.js} +4 -4
  24. package/build/{chunk-UQHYW22G.js → chunk-7VDLDR6B.js} +3 -3
  25. package/build/{chunk-SOPXNQUQ.js → chunk-D5FWWXSB.js} +3 -3
  26. package/build/{chunk-57QEM3HY.js → chunk-DPQGNXXY.js} +75 -1
  27. package/build/chunk-DPQGNXXY.js.map +1 -0
  28. package/build/{chunk-6KPCMGPS.js → chunk-GO3Y2JIB.js} +4 -4
  29. package/build/{chunk-62GPUU47.js → chunk-HBEXY335.js} +4 -4
  30. package/build/{chunk-QNAWCLCI.js → chunk-HSNMJM34.js} +3 -3
  31. package/build/{chunk-TFQPVHS3.js → chunk-IHKLPO62.js} +2 -2
  32. package/build/{chunk-4UEXPXLR.js → chunk-IIVBVVJJ.js} +4 -4
  33. package/build/chunk-IIVBVVJJ.js.map +1 -0
  34. package/build/{chunk-U7SIOVJU.js → chunk-K2DCXEUQ.js} +6 -6
  35. package/build/{chunk-H2GPNHOX.js → chunk-LN2N6YT4.js} +2 -2
  36. package/build/{chunk-WYBBTSF7.js → chunk-LXJP7HQM.js} +2 -2
  37. package/build/{chunk-ANNEXGZX.js → chunk-MNLVW3X4.js} +2 -2
  38. package/build/{chunk-3ENPRBBM.js → chunk-OJUGEKQN.js} +2 -2
  39. package/build/{chunk-M5I6NS4U.js → chunk-OPY72S64.js} +37 -1
  40. package/build/{chunk-M5I6NS4U.js.map → chunk-OPY72S64.js.map} +1 -1
  41. package/build/{chunk-C4UY7EFY.js → chunk-QH3DJKO6.js} +6 -6
  42. package/build/{chunk-4MJQUHSX.js → chunk-U4M6AJBC.js} +4 -4
  43. package/build/{chunk-TJ3BVSW5.js → chunk-UFWSBOGR.js} +2 -2
  44. package/build/{chunk-BDHG2DK4.js → chunk-VW5GJXBJ.js} +2 -2
  45. package/build/{chunk-BDHG2DK4.js.map → chunk-VW5GJXBJ.js.map} +1 -1
  46. package/build/{chunk-TBUXHEUI.js → chunk-WNYVDRIP.js} +2 -2
  47. package/build/{chunk-TLAK5ODO.js → chunk-YFLJHEC7.js} +1 -1
  48. package/build/chunk-YFLJHEC7.js.map +1 -0
  49. package/build/{chunk-3CL3TKYO.js → chunk-YV6N7DVD.js} +2 -2
  50. package/build/{chunk-QVMWE2T6.js → chunk-Z26U7S2V.js} +5 -5
  51. package/build/{chunk-PSGIHLQD.js → chunk-ZOG2W2I7.js} +3 -3
  52. package/build/{dev-VSWVXWGO.js → dev-THKM2HQR.js} +13 -13
  53. package/build/{env-pull-MKYI3I42.js → env-pull-K2LDQD4D.js} +7 -7
  54. package/build/index.js +14 -14
  55. package/build/{install-DQEMAERG.js → install-R7IEMP5O.js} +6 -6
  56. package/build/{preview-GRYWXEQS.js → preview-FIGWF3CF.js} +8 -8
  57. package/build/{publish-LFXYIC4E.js → publish-AZJGKHSQ.js} +8 -8
  58. package/build/{render-command-2RFHYZQB.js → render-command-24O2UGEC.js} +2 -2
  59. package/build/{render-command-E5GHKBA5.js → render-command-C2E2FG3R.js} +2 -2
  60. package/build/{render-command-RZPMKENU.js → render-command-MPMSPMAT.js} +2 -2
  61. package/build/{render-command-VSHM5WVF.js → render-command-ROHMFHE4.js} +4 -4
  62. package/build/{render-command-L7WVCNUK.js → render-command-WH5OTHLJ.js} +2 -2
  63. package/build/{src-F27KXHVX.js → src-26BJAXA4.js} +8 -8
  64. package/build/{src-X2OIUXOI.js → src-IN7OKH4J.js} +3 -3
  65. package/build/{src-PB3HSJVS.js → src-RGDCWLP3.js} +2 -2
  66. package/build/{src-F5SENQKA.js → src-W4RDA4GW.js} +11 -11
  67. package/build/{src-EOMJC4GJ.js → src-Y6P56FXV.js} +18 -18
  68. package/build/{sync-types-MVHFRWXZ.js → sync-types-JVKXLK2Y.js} +5 -5
  69. package/build/{uninstall-E2OSGHU5.js → uninstall-WXRYEH2F.js} +6 -6
  70. package/package.json +2 -2
  71. package/build/GenerateCommand-MG6ZV6K7.js.map +0 -1
  72. package/build/chunk-4UEXPXLR.js.map +0 -1
  73. package/build/chunk-57QEM3HY.js.map +0 -1
  74. package/build/chunk-TLAK5ODO.js.map +0 -1
  75. /package/build/{DevCommand-T54H7TLB.js.map → DevCommand-HQ2SMGKH.js.map} +0 -0
  76. /package/build/{DevCommand-SMNR7QZ6.js.map → DevCommand-IBHYQ2YN.js.map} +0 -0
  77. /package/build/{EnvPullCommand-I5LSCTE4.js.map → EnvPullCommand-GNRHVQ7K.js.map} +0 -0
  78. /package/build/{EnvRemoveCommand-K2WXVU5F.js.map → EnvRemoveCommand-X6W76IFY.js.map} +0 -0
  79. /package/build/{EnvSetCommand-R6D5TTJJ.js.map → EnvSetCommand-GDPBPXZH.js.map} +0 -0
  80. /package/build/{InstallCommand-TXJVZXZ5.js.map → InstallCommand-H33LFYJ5.js.map} +0 -0
  81. /package/build/{LoginCommand-EIKBXEMP.js.map → LoginCommand-2CVB7IKJ.js.map} +0 -0
  82. /package/build/{LogoutCommand-7T3FO7GC.js.map → LogoutCommand-XAMBBO7F.js.map} +0 -0
  83. /package/build/{PreviewCommand-OBSAPY2R.js.map → PreviewCommand-F7VW65C5.js.map} +0 -0
  84. /package/build/{PreviewCommand-RRZ7PLRP.js.map → PreviewCommand-HV7MP3OF.js.map} +0 -0
  85. /package/build/{PreviewCommand-H57HGTJJ.js.map → PreviewCommand-OZBXL6VQ.js.map} +0 -0
  86. /package/build/{PublishCommand-NBJNZN56.js.map → PublishCommand-LJCY5TGE.js.map} +0 -0
  87. /package/build/{ReleaseCommand-G3POH5AX.js.map → ReleaseCommand-UGO7PYHX.js.map} +0 -0
  88. /package/build/{UninstallCommand-FQSDL4WX.js.map → UninstallCommand-EETYGQWM.js.map} +0 -0
  89. /package/build/{chunk-VZ3HPX2T.js.map → chunk-5N7G7EWX.js.map} +0 -0
  90. /package/build/{chunk-LTISPWJK.js.map → chunk-6AS3O4CN.js.map} +0 -0
  91. /package/build/{chunk-AFIBPOWH.js.map → chunk-6VG5KVI2.js.map} +0 -0
  92. /package/build/{chunk-UQHYW22G.js.map → chunk-7VDLDR6B.js.map} +0 -0
  93. /package/build/{chunk-SOPXNQUQ.js.map → chunk-D5FWWXSB.js.map} +0 -0
  94. /package/build/{chunk-6KPCMGPS.js.map → chunk-GO3Y2JIB.js.map} +0 -0
  95. /package/build/{chunk-62GPUU47.js.map → chunk-HBEXY335.js.map} +0 -0
  96. /package/build/{chunk-QNAWCLCI.js.map → chunk-HSNMJM34.js.map} +0 -0
  97. /package/build/{chunk-TFQPVHS3.js.map → chunk-IHKLPO62.js.map} +0 -0
  98. /package/build/{chunk-U7SIOVJU.js.map → chunk-K2DCXEUQ.js.map} +0 -0
  99. /package/build/{chunk-H2GPNHOX.js.map → chunk-LN2N6YT4.js.map} +0 -0
  100. /package/build/{chunk-WYBBTSF7.js.map → chunk-LXJP7HQM.js.map} +0 -0
  101. /package/build/{chunk-ANNEXGZX.js.map → chunk-MNLVW3X4.js.map} +0 -0
  102. /package/build/{chunk-3ENPRBBM.js.map → chunk-OJUGEKQN.js.map} +0 -0
  103. /package/build/{chunk-C4UY7EFY.js.map → chunk-QH3DJKO6.js.map} +0 -0
  104. /package/build/{chunk-4MJQUHSX.js.map → chunk-U4M6AJBC.js.map} +0 -0
  105. /package/build/{chunk-TJ3BVSW5.js.map → chunk-UFWSBOGR.js.map} +0 -0
  106. /package/build/{chunk-TBUXHEUI.js.map → chunk-WNYVDRIP.js.map} +0 -0
  107. /package/build/{chunk-3CL3TKYO.js.map → chunk-YV6N7DVD.js.map} +0 -0
  108. /package/build/{chunk-QVMWE2T6.js.map → chunk-Z26U7S2V.js.map} +0 -0
  109. /package/build/{chunk-PSGIHLQD.js.map → chunk-ZOG2W2I7.js.map} +0 -0
  110. /package/build/{dev-VSWVXWGO.js.map → dev-THKM2HQR.js.map} +0 -0
  111. /package/build/{env-pull-MKYI3I42.js.map → env-pull-K2LDQD4D.js.map} +0 -0
  112. /package/build/{install-DQEMAERG.js.map → install-R7IEMP5O.js.map} +0 -0
  113. /package/build/{preview-GRYWXEQS.js.map → preview-FIGWF3CF.js.map} +0 -0
  114. /package/build/{publish-LFXYIC4E.js.map → publish-AZJGKHSQ.js.map} +0 -0
  115. /package/build/{render-command-2RFHYZQB.js.map → render-command-24O2UGEC.js.map} +0 -0
  116. /package/build/{render-command-E5GHKBA5.js.map → render-command-C2E2FG3R.js.map} +0 -0
  117. /package/build/{render-command-RZPMKENU.js.map → render-command-MPMSPMAT.js.map} +0 -0
  118. /package/build/{render-command-VSHM5WVF.js.map → render-command-ROHMFHE4.js.map} +0 -0
  119. /package/build/{render-command-L7WVCNUK.js.map → render-command-WH5OTHLJ.js.map} +0 -0
  120. /package/build/{src-F27KXHVX.js.map → src-26BJAXA4.js.map} +0 -0
  121. /package/build/{src-X2OIUXOI.js.map → src-IN7OKH4J.js.map} +0 -0
  122. /package/build/{src-PB3HSJVS.js.map → src-RGDCWLP3.js.map} +0 -0
  123. /package/build/{src-F5SENQKA.js.map → src-W4RDA4GW.js.map} +0 -0
  124. /package/build/{src-EOMJC4GJ.js.map → src-Y6P56FXV.js.map} +0 -0
  125. /package/build/{sync-types-MVHFRWXZ.js.map → sync-types-JVKXLK2Y.js.map} +0 -0
  126. /package/build/{uninstall-E2OSGHU5.js.map → uninstall-WXRYEH2F.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../node_modules/p-retry/node_modules/retry/lib/retry_operation.js","../../../node_modules/p-retry/node_modules/retry/lib/retry.js","../../../node_modules/p-retry/node_modules/retry/index.js","../../cli-auth/src/index.ts","../../cli-auth/src/auth-strategies/index.ts","../../cli-auth/src/auth-strategies/api-key-auth-strategy.ts","../../cli-auth/src/client.ts","../../../node_modules/p-retry/index.js","../../../node_modules/is-network-error/index.js","../../../node_modules/@wix/ambassador-identity-account-v2-account/http.impl.ts","../../../node_modules/@wix/metro-runtime/src/index.ts","../../../node_modules/@wix/metro-runtime/src/serialization/index.ts","../../../node_modules/@wix/metro-runtime/src/serialization/utils.ts","../../../node_modules/@wix/metro-runtime/src/url-resolver.ts","../../../node_modules/@wix/metro-runtime/src/utils.ts","../../../node_modules/@wix/metro-runtime/src/flatten-params.ts","../../../node_modules/js-base64/base64.mjs","../../../node_modules/@wix/metro-runtime/src/ambassador-index.ts","../../../node_modules/@wix/metro-runtime/src/serializer/domain.ts","../../../node_modules/@wix/metro-runtime/src/serializer/serializer.ts","../../../node_modules/@wix/metro-runtime/src/serializer/protobuf-converters/converters.ts","../../../node_modules/@wix/metro-runtime/src/serializer/protobuf-converters/timestamp.ts","../../../node_modules/@wix/metro-runtime/src/serializer/protobuf-converters/field-mask.ts","../../../node_modules/@wix/metro-runtime/src/serializer/protobuf-converters/bytes.ts","../../../node_modules/@wix/metro-runtime/src/serializer/protobuf-converters/duration.ts","../../../node_modules/@wix/metro-runtime/src/serializer/protobuf-converters/float.ts","../../../node_modules/@wix/metro-runtime/src/serializer/utils.ts","../../../node_modules/@wix/ambassador-identity-oauth-v1-refresh-token/http.impl.ts","../../cli-http-client/src/create-http-client.ts","../../cli-http-client/src/is-http-error.ts","../../cli-auth/src/schemas.ts","../../cli-auth/src/auth-data.ts","../../cli-auth/src/auth-strategies/account-auth-strategy.ts","../../../node_modules/p-limit/index.js","../../../node_modules/p-limit/node_modules/yocto-queue/index.js","../../../node_modules/p-wait-for/index.js","../../../node_modules/p-timeout/index.js","../../cli-auth/src/auth-strategies/site-auth-strategy.ts","../../cli-auth/src/logout.ts","../../cli-auth/src/useAuth.ts","../../cli-auth/src/context.ts","../../cli-auth/src/components/ApiKeyLogin.tsx","../../cli-auth/src/components/Login.tsx","../../cli-auth/src/messages.json","../../cli-auth/src/components/LoginInstructions.tsx","../../user-browser/src/index.ts","../../../node_modules/open/index.js","../../../node_modules/is-wsl/index.js","../../../node_modules/is-inside-container/index.js","../../../node_modules/is-docker/index.js","../../../node_modules/define-lazy-prop/index.js","../../../node_modules/default-browser/index.js","../../../node_modules/default-browser-id/index.js","../../../node_modules/bundle-name/index.js","../../../node_modules/run-applescript/index.js","../../../node_modules/default-browser/windows.js","../../user-browser/src/open-testkit.ts","../../cli-auth/src/useColoredVerificationUri.ts","../../cli-auth/src/providers/AccountAuthProvider.tsx","../../cli-auth/src/components/EnsureLoggedIn.tsx","../../cli-auth/src/components/WarnLegacyAuthData.tsx","../../cli-auth/src/providers/SiteAuthProvider.tsx","../../cli-auth/src/authenticate.tsx"],"sourcesContent":["function RetryOperation(timeouts, options) {\n // Compatibility for the old (timeouts, retryForever) signature\n if (typeof options === 'boolean') {\n options = { forever: options };\n }\n\n this._originalTimeouts = JSON.parse(JSON.stringify(timeouts));\n this._timeouts = timeouts;\n this._options = options || {};\n this._maxRetryTime = options && options.maxRetryTime || Infinity;\n this._fn = null;\n this._errors = [];\n this._attempts = 1;\n this._operationTimeout = null;\n this._operationTimeoutCb = null;\n this._timeout = null;\n this._operationStart = null;\n this._timer = null;\n\n if (this._options.forever) {\n this._cachedTimeouts = this._timeouts.slice(0);\n }\n}\nmodule.exports = RetryOperation;\n\nRetryOperation.prototype.reset = function() {\n this._attempts = 1;\n this._timeouts = this._originalTimeouts.slice(0);\n}\n\nRetryOperation.prototype.stop = function() {\n if (this._timeout) {\n clearTimeout(this._timeout);\n }\n if (this._timer) {\n clearTimeout(this._timer);\n }\n\n this._timeouts = [];\n this._cachedTimeouts = null;\n};\n\nRetryOperation.prototype.retry = function(err) {\n if (this._timeout) {\n clearTimeout(this._timeout);\n }\n\n if (!err) {\n return false;\n }\n var currentTime = new Date().getTime();\n if (err && currentTime - this._operationStart >= this._maxRetryTime) {\n this._errors.push(err);\n this._errors.unshift(new Error('RetryOperation timeout occurred'));\n return false;\n }\n\n this._errors.push(err);\n\n var timeout = this._timeouts.shift();\n if (timeout === undefined) {\n if (this._cachedTimeouts) {\n // retry forever, only keep last error\n this._errors.splice(0, this._errors.length - 1);\n timeout = this._cachedTimeouts.slice(-1);\n } else {\n return false;\n }\n }\n\n var self = this;\n this._timer = setTimeout(function() {\n self._attempts++;\n\n if (self._operationTimeoutCb) {\n self._timeout = setTimeout(function() {\n self._operationTimeoutCb(self._attempts);\n }, self._operationTimeout);\n\n if (self._options.unref) {\n self._timeout.unref();\n }\n }\n\n self._fn(self._attempts);\n }, timeout);\n\n if (this._options.unref) {\n this._timer.unref();\n }\n\n return true;\n};\n\nRetryOperation.prototype.attempt = function(fn, timeoutOps) {\n this._fn = fn;\n\n if (timeoutOps) {\n if (timeoutOps.timeout) {\n this._operationTimeout = timeoutOps.timeout;\n }\n if (timeoutOps.cb) {\n this._operationTimeoutCb = timeoutOps.cb;\n }\n }\n\n var self = this;\n if (this._operationTimeoutCb) {\n this._timeout = setTimeout(function() {\n self._operationTimeoutCb();\n }, self._operationTimeout);\n }\n\n this._operationStart = new Date().getTime();\n\n this._fn(this._attempts);\n};\n\nRetryOperation.prototype.try = function(fn) {\n console.log('Using RetryOperation.try() is deprecated');\n this.attempt(fn);\n};\n\nRetryOperation.prototype.start = function(fn) {\n console.log('Using RetryOperation.start() is deprecated');\n this.attempt(fn);\n};\n\nRetryOperation.prototype.start = RetryOperation.prototype.try;\n\nRetryOperation.prototype.errors = function() {\n return this._errors;\n};\n\nRetryOperation.prototype.attempts = function() {\n return this._attempts;\n};\n\nRetryOperation.prototype.mainError = function() {\n if (this._errors.length === 0) {\n return null;\n }\n\n var counts = {};\n var mainError = null;\n var mainErrorCount = 0;\n\n for (var i = 0; i < this._errors.length; i++) {\n var error = this._errors[i];\n var message = error.message;\n var count = (counts[message] || 0) + 1;\n\n counts[message] = count;\n\n if (count >= mainErrorCount) {\n mainError = error;\n mainErrorCount = count;\n }\n }\n\n return mainError;\n};\n","var RetryOperation = require('./retry_operation');\n\nexports.operation = function(options) {\n var timeouts = exports.timeouts(options);\n return new RetryOperation(timeouts, {\n forever: options && (options.forever || options.retries === Infinity),\n unref: options && options.unref,\n maxRetryTime: options && options.maxRetryTime\n });\n};\n\nexports.timeouts = function(options) {\n if (options instanceof Array) {\n return [].concat(options);\n }\n\n var opts = {\n retries: 10,\n factor: 2,\n minTimeout: 1 * 1000,\n maxTimeout: Infinity,\n randomize: false\n };\n for (var key in options) {\n opts[key] = options[key];\n }\n\n if (opts.minTimeout > opts.maxTimeout) {\n throw new Error('minTimeout is greater than maxTimeout');\n }\n\n var timeouts = [];\n for (var i = 0; i < opts.retries; i++) {\n timeouts.push(this.createTimeout(i, opts));\n }\n\n if (options && options.forever && !timeouts.length) {\n timeouts.push(this.createTimeout(i, opts));\n }\n\n // sort the array numerically ascending\n timeouts.sort(function(a,b) {\n return a - b;\n });\n\n return timeouts;\n};\n\nexports.createTimeout = function(attempt, opts) {\n var random = (opts.randomize)\n ? (Math.random() + 1)\n : 1;\n\n var timeout = Math.round(random * Math.max(opts.minTimeout, 1) * Math.pow(opts.factor, attempt));\n timeout = Math.min(timeout, opts.maxTimeout);\n\n return timeout;\n};\n\nexports.wrap = function(obj, options, methods) {\n if (options instanceof Array) {\n methods = options;\n options = null;\n }\n\n if (!methods) {\n methods = [];\n for (var key in obj) {\n if (typeof obj[key] === 'function') {\n methods.push(key);\n }\n }\n }\n\n for (var i = 0; i < methods.length; i++) {\n var method = methods[i];\n var original = obj[method];\n\n obj[method] = function retryWrapper(original) {\n var op = exports.operation(options);\n var args = Array.prototype.slice.call(arguments, 1);\n var callback = args.pop();\n\n args.push(function(err) {\n if (op.retry(err)) {\n return;\n }\n if (err) {\n arguments[0] = op.mainError();\n }\n callback.apply(this, arguments);\n });\n\n op.attempt(function() {\n original.apply(obj, args);\n });\n }.bind(obj, original);\n obj[method].options = options;\n }\n};\n","module.exports = require('./lib/retry');","import { accountAuthStrategy } from './auth-strategies/index.js';\n\nexport const { isLoggedIn: isLoggedInToAccount } = accountAuthStrategy;\n\nexport { logout } from './logout.js';\nexport { getUserInfo } from './auth-data.js';\nexport type { UserInfo } from './schemas.js';\nexport { useAuth } from './useAuth.js';\nexport { ApiKeyLogin } from './components/ApiKeyLogin.js';\nexport { LoginWithI18n as Login } from './components/Login.js';\nexport { AccountAuthProvider } from './providers/AccountAuthProvider.js';\nexport { SiteAuthProvider } from './providers/SiteAuthProvider.js';\nexport { authenticateWithSiteId } from './authenticate.js';\nexport type { AuthState } from './context.js';\n","export type { AuthStrategyState, AuthStrategy } from './auth-strategy-types.js';\nexport { apiKeyAuthStrategy } from './api-key-auth-strategy.js';\nexport { accountAuthStrategy } from './account-auth-strategy.js';\nexport { createSiteAuthStrategy } from './site-auth-strategy.js';\n","import { match } from 'variant';\nimport type { Headers } from '@wix/cli-http-client';\nimport { client } from '../client.js';\nimport type { ApiKeyAuth } from '../schemas.js';\nimport {\n readApiKeyAuthData,\n saveApiKeyAuthData,\n deleteAuthData,\n} from '../auth-data.js';\nimport type {\n ApiKeyAuthStrategy,\n AuthStrategyState,\n} from './auth-strategy-types.js';\n\nfunction createApiKeyAuthState({\n authData: { token, accountId, userInfo },\n siteId,\n}: {\n authData: ApiKeyAuth;\n siteId?: string;\n}): AuthStrategyState {\n return {\n getAccessToken: async () => token,\n getRefreshToken: () => {\n throw new Error('API key auth does not support refresh tokens');\n },\n getRequestHeaders: (): Headers => {\n if (siteId) {\n return { 'wix-site-id': siteId };\n }\n\n return { 'wix-account-id': accountId };\n },\n userInfo,\n };\n}\n\nexport const apiKeyAuthStrategy: ApiKeyAuthStrategy = {\n async isLoggedIn({ siteId }: { siteId?: string } = {}) {\n const apiKeyAuth = await readApiKeyAuthData();\n\n return match(apiKeyAuth, {\n Authenticated: ({ payload }) => {\n return createApiKeyAuthState({ authData: payload, siteId });\n },\n Unauthenticated: () => null,\n });\n },\n async login({ token }) {\n const { accountId, accountOwner, slug } = await client.getMyAccount({\n token,\n });\n\n const authData: ApiKeyAuth = {\n token,\n accountId,\n userInfo: {\n userId: accountOwner,\n // TODO: this should be the email of the account owner, not the slug\n // https://jira.wixpress.com/browse/FEDINF-12201\n email: slug,\n },\n };\n\n await deleteAuthData();\n await saveApiKeyAuthData(authData);\n\n return createApiKeyAuthState({ authData });\n },\n};\n","import pRetry from 'p-retry';\nimport type { Options } from 'p-retry';\nimport type {\n DeviceCodeRequest,\n RevokeRefreshTokenRequest,\n} from '@wix/ambassador-identity-oauth-v1-refresh-token/types';\nimport { getMyAccount } from '@wix/ambassador-identity-account-v2-account/http';\nimport {\n deviceCode as deviceCodeRequest,\n token as tokenRequest,\n revokeRefreshToken,\n} from '@wix/ambassador-identity-oauth-v1-refresh-token/http';\nimport type { HttpClient, HttpError } from '@wix/cli-http-client';\nimport {\n isHttpError,\n isHttpApplicationError,\n createHttpClient,\n} from '@wix/cli-http-client';\nimport { CliError, CliErrorCode } from '@wix/cli-error';\nimport { fields, payload, variant } from 'variant';\nimport { getTestOverrides } from '@wix/cli-test-overrides';\nimport type { SiteAuth, UserInfo } from './schemas.js';\nimport {\n deviceCodeSchema,\n tokenSchema,\n userInfoSchema,\n getMyAccountSchema,\n} from './schemas.js';\n\nconst {\n InvalidResponseData,\n FailedToGetAuthToken,\n FailedToGetDeviceCode,\n FailedToRenewAuthToken,\n FailedToRenewAuthTokenSiteNotFound,\n FailedToRevokeRefreshToken,\n} = CliErrorCode;\n\nconst clientId = '6f95cec8-3e98-48b9-b4e5-1fb92fcd9973';\n\nconst getCurrentTimestamp = () => Math.floor(Date.now() / 1000);\n\ninterface TokenRequest {\n clientId: string;\n grantType: string;\n scope?: string;\n deviceCode?: string;\n refreshToken?: string;\n siteId?: string;\n}\n\ninterface TokenResponse {\n access_token: string;\n refresh_token: string;\n expires_in: number;\n}\n\nexport class DeviceCodeNotYetVerifiedError extends Error {}\n\nexport const RenewTokenData = variant({\n TokenRenewed: payload<SiteAuth>(),\n RefreshTokenRevoked: fields<{ cause: HttpError }>(),\n});\n\nclass AuthClient {\n private readonly retryOptions: Options;\n constructor(private readonly httpClient: HttpClient) {\n const { minRetryTimeout } = getTestOverrides();\n\n this.retryOptions = {\n retries: 3,\n minTimeout: minRetryTimeout,\n maxTimeout: 3 * 1000,\n };\n }\n\n async requestDeviceCode(req: DeviceCodeRequest = {}) {\n try {\n const { data } = await pRetry(\n () => this.httpClient.request(deviceCodeRequest({ ...req, clientId })),\n this.retryOptions\n );\n\n return deviceCodeSchema.parse(data);\n } catch (error) {\n throw new CliError({\n code: FailedToGetDeviceCode(),\n cause: error,\n });\n }\n }\n\n async createToken(req: { deviceCode: string }) {\n try {\n const payload: TokenRequest = {\n clientId,\n grantType: 'urn:ietf:params:oauth:grant-type:device_code',\n scope: 'offline_access',\n ...req,\n };\n\n const tokenData = await pRetry(async () => {\n // any is needed because `tokenRequest` uses `RawHttpRequest` and `RawHttpResponse` which are not typed correctly\n const { data, requestId } =\n await this.httpClient.request<TokenResponse>(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n tokenRequest(payload as any) as any\n );\n\n const result = tokenSchema.safeParse(data);\n\n if (result.success) {\n return result.data;\n }\n\n throw new CliError({\n code: InvalidResponseData(),\n cause: result.error,\n info: { requestId, data },\n });\n }, this.retryOptions);\n\n return {\n ...tokenData,\n issuedAt: getCurrentTimestamp(),\n };\n } catch (error) {\n if (\n isHttpError(error) &&\n (error.response?.data?.message === 'Device code is not yet verified' ||\n // https://github.com/wix-private/wix-cli/pull/655#discussion_r1145992702\n error.response?.data?.error === 'authorization_pending')\n ) {\n throw new DeviceCodeNotYetVerifiedError(\n 'Device code is not yet verified.'\n );\n }\n\n throw new CliError({\n code: FailedToGetAuthToken(),\n cause: error,\n });\n }\n }\n\n async renewToken(req: { refreshToken: string; siteId?: string }) {\n try {\n const payload: TokenRequest = {\n clientId,\n grantType: 'refresh_token',\n ...req,\n };\n\n // any is needed because `tokenRequest` uses `RawHttpRequest` and `RawHttpResponse` which are not typed correctly\n const { data } = await pRetry(\n () =>\n this.httpClient.request<TokenResponse>(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n tokenRequest(payload as any) as any\n ),\n this.retryOptions\n );\n\n const tokenData = tokenSchema.parse(data);\n\n return RenewTokenData.TokenRenewed({\n ...tokenData,\n issuedAt: getCurrentTimestamp(),\n });\n } catch (error) {\n if (isHttpError(error)) {\n if (\n error.response?.status === 400 &&\n error.response.data?.error === 'invalid_grant'\n ) {\n return RenewTokenData.RefreshTokenRevoked({ cause: error });\n }\n if (\n req.siteId &&\n error.response?.status === 404 &&\n isHttpApplicationError(error) &&\n error.response.data.details.applicationError.code === 'SITE_NOT_FOUND'\n ) {\n throw new CliError({\n code: FailedToRenewAuthTokenSiteNotFound({ siteId: req.siteId }),\n cause: error,\n });\n }\n }\n\n throw new CliError({\n code: FailedToRenewAuthToken(),\n cause: error,\n });\n }\n }\n\n async revokeRefreshToken(\n req: RevokeRefreshTokenRequest,\n { email }: UserInfo\n ) {\n try {\n const { data } = await this.httpClient.request(revokeRefreshToken(req));\n\n return data;\n } catch (error) {\n throw new CliError({\n code: FailedToRevokeRefreshToken({\n email,\n }),\n info: {\n email,\n },\n cause: error,\n });\n }\n }\n\n async userInfo({ accessToken }: { accessToken: string }) {\n try {\n const httpClient = createHttpClient({\n type: 'backoffice',\n getAppToken: async () => accessToken,\n });\n const { data: userInfoData } = await httpClient.get(\n '/_serverless/wix-cli-userinfo/userinfo'\n );\n\n return userInfoSchema.parse(userInfoData);\n } catch (error) {\n throw new CliError({\n code: CliErrorCode.FailedToGetUserInfo(),\n cause: error,\n });\n }\n }\n\n async getMyAccount({ token }: { token: string }) {\n try {\n const httpClient = createHttpClient({\n type: 'backoffice',\n getAppToken: async () => token,\n });\n const { data } = await httpClient.request(getMyAccount({}));\n\n return getMyAccountSchema.parse(data).account;\n } catch (error) {\n // 48876 is code for `TargetAccountIsMissingErrorCode`,\n // which in this case means that user tried to log in with invalid API key.\n if (\n isHttpError(error) &&\n error.response?.status === 428 &&\n isHttpApplicationError(error) &&\n error.response.data.details.applicationError.code === '48876'\n ) {\n throw new CliError({\n code: CliErrorCode.InvalidApiKey(),\n cause: error,\n });\n }\n throw new CliError({\n code: CliErrorCode.FailedToGetMyAccount(),\n cause: error,\n });\n }\n }\n}\n\nexport const client = new AuthClient(createHttpClient({ type: 'backoffice' }));\n","import retry from 'retry';\nimport isNetworkError from 'is-network-error';\n\nexport class AbortError extends Error {\n\tconstructor(message) {\n\t\tsuper();\n\n\t\tif (message instanceof Error) {\n\t\t\tthis.originalError = message;\n\t\t\t({message} = message);\n\t\t} else {\n\t\t\tthis.originalError = new Error(message);\n\t\t\tthis.originalError.stack = this.stack;\n\t\t}\n\n\t\tthis.name = 'AbortError';\n\t\tthis.message = message;\n\t}\n}\n\nconst decorateErrorWithCounts = (error, attemptNumber, options) => {\n\t// Minus 1 from attemptNumber because the first attempt does not count as a retry\n\tconst retriesLeft = options.retries - (attemptNumber - 1);\n\n\terror.attemptNumber = attemptNumber;\n\terror.retriesLeft = retriesLeft;\n\treturn error;\n};\n\nexport default async function pRetry(input, options) {\n\treturn new Promise((resolve, reject) => {\n\t\toptions = {...options};\n\t\toptions.onFailedAttempt ??= () => {};\n\t\toptions.shouldRetry ??= () => true;\n\t\toptions.retries ??= 10;\n\n\t\tconst operation = retry.operation(options);\n\n\t\tconst abortHandler = () => {\n\t\t\toperation.stop();\n\t\t\treject(options.signal?.reason);\n\t\t};\n\n\t\tif (options.signal && !options.signal.aborted) {\n\t\t\toptions.signal.addEventListener('abort', abortHandler, {once: true});\n\t\t}\n\n\t\tconst cleanUp = () => {\n\t\t\toptions.signal?.removeEventListener('abort', abortHandler);\n\t\t\toperation.stop();\n\t\t};\n\n\t\toperation.attempt(async attemptNumber => {\n\t\t\ttry {\n\t\t\t\tconst result = await input(attemptNumber);\n\t\t\t\tcleanUp();\n\t\t\t\tresolve(result);\n\t\t\t} catch (error) {\n\t\t\t\ttry {\n\t\t\t\t\tif (!(error instanceof Error)) {\n\t\t\t\t\t\tthrow new TypeError(`Non-error was thrown: \"${error}\". You should only throw errors.`);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (error instanceof AbortError) {\n\t\t\t\t\t\tthrow error.originalError;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (error instanceof TypeError && !isNetworkError(error)) {\n\t\t\t\t\t\tthrow error;\n\t\t\t\t\t}\n\n\t\t\t\t\tdecorateErrorWithCounts(error, attemptNumber, options);\n\n\t\t\t\t\tif (!(await options.shouldRetry(error))) {\n\t\t\t\t\t\toperation.stop();\n\t\t\t\t\t\treject(error);\n\t\t\t\t\t}\n\n\t\t\t\t\tawait options.onFailedAttempt(error);\n\n\t\t\t\t\tif (!operation.retry(error)) {\n\t\t\t\t\t\tthrow operation.mainError();\n\t\t\t\t\t}\n\t\t\t\t} catch (finalError) {\n\t\t\t\t\tdecorateErrorWithCounts(finalError, attemptNumber, options);\n\t\t\t\t\tcleanUp();\n\t\t\t\t\treject(finalError);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t});\n}\n","const objectToString = Object.prototype.toString;\n\nconst isError = value => objectToString.call(value) === '[object Error]';\n\nconst errorMessages = new Set([\n\t'network error', // Chrome\n\t'Failed to fetch', // Chrome\n\t'NetworkError when attempting to fetch resource.', // Firefox\n\t'The Internet connection appears to be offline.', // Safari 16\n\t'Load failed', // Safari 17+\n\t'Network request failed', // `cross-fetch`\n\t'fetch failed', // Undici (Node.js)\n\t'terminated', // Undici (Node.js)\n]);\n\nexport default function isNetworkError(error) {\n\tconst isValid = error\n\t\t&& isError(error)\n\t\t&& error.name === 'TypeError'\n\t\t&& typeof error.message === 'string';\n\n\tif (!isValid) {\n\t\treturn false;\n\t}\n\n\t// We do an extra check for Safari 17+ as it has a very generic error message.\n\t// Network errors in Safari have no stack.\n\tif (error.message === 'Load failed') {\n\t\treturn error.stack === undefined;\n\t}\n\n\treturn errorMessages.has(error.message);\n}\n",null,"export * from './serialization';\nexport * from './url-resolver';\nexport * from './flatten-params';\n","export * from './utils';\n","type SchemaType = 'Array' | 'Map';\n\nexport function parseLeanSchemaRef(renderedSchemaName: string = ''): {\n schemaName: string;\n schemaType?: SchemaType;\n} {\n const [typeOrName, schemaName] = getSchemaNameAndType(renderedSchemaName);\n\n if (schemaName) {\n return {\n schemaName,\n schemaType: typeOrName as SchemaType,\n };\n }\n\n return {\n schemaName: typeOrName,\n };\n}\n\n// if there is no type, returns only the name\nconst getSchemaNameAndType = (leanSchema: string): string[] =>\n leanSchema.split('#');\n","import { findByPath } from './utils';\n\nconst USER_DOMAIN = '_';\n\nconst DOMAINS = ['wix.com', 'editorx.com'];\n\nconst WIX_API_DOMAINS = ['42.wixprod.net', 'uw2-edt-1.wixprod.net'];\n\nconst DEV_WIX_CODE_DOMAIN = 'dev.wix-code.com';\n\nconst REGEX_CAPTURE_PROTO_FIELD = /{(.*)}/;\n\nconst REGEX_CAPTURE_DOMAINS = new RegExp(`\\\\.(${DOMAINS.join('|')})$`);\n\nconst REGEX_CAPTURE_API_DOMAINS = new RegExp(\n `\\\\.(${WIX_API_DOMAINS.join('|')})$`,\n);\n\nconst REGEX_CAPTURE_DEV_WIX_CODE_DOMAIN = new RegExp(\n `.*\\\\.${DEV_WIX_CODE_DOMAIN}$`,\n);\n\nexport type ResolveUrlOpts = {\n // resource path as defined in proto file, including all wildcards & co.\n protoPath: string;\n\n // domain as defined on FP to its mappings (might be more than one)\n // www._base_domain_ => [{ srcPath: '/_api/foo', destPath: '/api' }]\n domainToMappings: DomainToMappings;\n\n // actual payload attached to request, needed in order to rersolve path,\n // in case it contains some dynamic parameters\n data?: object;\n\n // request's host\n host: string;\n};\n\nexport function resolveUrl(opts: ResolveUrlOpts) {\n const domain = resolveDomain(opts.host);\n const mappings = resolveMappingsByDomain(domain, opts.domainToMappings);\n const path = injectDataIntoProtoPath(opts.protoPath, opts.data || {});\n\n return resolvePath(path, mappings);\n}\n\nfunction injectDataIntoProtoPath(protoPath: string, data: object) {\n return protoPath\n .split('/')\n .map((path) => maybeProtoPathToData(path, data))\n .join('/');\n}\n\nfunction maybeProtoPathToData(protoPath: string, data: object) {\n const protoRegExpMatch = protoPath.match(REGEX_CAPTURE_PROTO_FIELD) || [];\n\n const field = protoRegExpMatch[1];\n\n if (field) {\n const suffix = protoPath.replace(protoRegExpMatch[0]!, '');\n return findByPath(data, field, protoPath, suffix);\n }\n\n return protoPath;\n}\n\nfunction resolveDomain(host: string) {\n const resolvedHost = fixHostExceptions(host);\n\n return resolvedHost\n .replace(REGEX_CAPTURE_DOMAINS, '._base_domain_')\n .replace(REGEX_CAPTURE_API_DOMAINS, '._api_base_domain_')\n .replace(REGEX_CAPTURE_DEV_WIX_CODE_DOMAIN, '*.dev.wix-code.com');\n}\n\n// hosts which standard string replacing doesn't apply to them, will be fixed here.\nfunction fixHostExceptions(host: string) {\n // https://system-kb.wixanswers.com/kb/en/article/editorx-domains-matching-to-wixcom\n return host.replace('create.editorx.com', 'editor.editorx.com');\n}\n\nfunction resolveMappingsByDomain(\n domain: string,\n domainToMappings: DomainToMappings,\n) {\n const mappings = domainToMappings[domain] || domainToMappings[USER_DOMAIN];\n\n if (!mappings) {\n if (isBaseDomain(domain)) {\n // fallback <lang>.wix.com sub domains to www.wix.com\n // since all of the languages subdomain are not mapped automatically in FP and we want to support those kind of calls\n // for example: fr.wix.com\n return domainToMappings[wwwBaseDomain];\n }\n }\n\n return mappings;\n}\n\nfunction resolvePath(protoPath: string, mappings: Mapping[]) {\n const mapping = mappings?.find((m) => protoPath.startsWith(m.destPath));\n\n if (!mapping) {\n // todo: should we return the path? if no - what should we do in case of testings?\n return protoPath;\n }\n\n return mapping.srcPath + protoPath.slice(mapping.destPath.length);\n}\n\ntype Mapping = {\n srcPath: string;\n destPath: string;\n};\n\ntype DomainToMappings = Record<string, Mapping[]>;\n\nfunction isBaseDomain(domain: string) {\n return !!domain.match(/\\._base_domain_$/);\n}\n\nconst wwwBaseDomain = 'www._base_domain_';\n","export function findByPath(\n obj: object,\n path: string,\n defaultValue: string,\n suffix: string,\n) {\n let result: any = obj;\n for (const field of path.split('.')) {\n if (!result) {\n return defaultValue;\n }\n result = result[field];\n }\n\n return `${result}${suffix}`;\n}\n","import { encode } from 'js-base64';\n\n// Flatten a nested object to params object { field: { text: 'foo' } } => { field.text ='foo' }\nfunction flattenParams(data: object, path = ''): object {\n const params: any = {};\n\n Object.entries(data).forEach(([key, value]) => {\n const isObject =\n value !== null && typeof value === 'object' && !Array.isArray(value);\n const fieldPath = resolvePath(path, key);\n\n if (isObject) {\n const serializedObject = flattenParams(value, fieldPath);\n Object.assign(params, serializedObject);\n } else {\n params[fieldPath] = value;\n }\n });\n\n return params;\n}\n\nfunction resolvePath(path: string, key: string) {\n return `${path}${path ? '.' : ''}${key}`;\n}\n\n/**\n * serializes the params object to URLSearchParams,\n * if isComplexRequest is true and the payload is not serializable as regular URLSearchParams (because of nested fields),\n * it will serialize the payload into the .r query param exclusively\n * @param params\n * @param isComplexRequest\n * @returns\n */\nexport function toURLSearchParams(params: object, isComplexRequest?: boolean) {\n const flatten = flattenParams(params);\n\n // payloads with deep arrays or complex arrays are not serializable as URLSearchParams\n const isPayloadNonSerializableAsUrlSearchParams = Object.entries(\n flatten,\n ).some(\n ([key, value]) =>\n key.includes('.') ||\n (Array.isArray(value) && value.some((v) => typeof v === 'object')),\n );\n const shouldSerializeToRParam =\n isComplexRequest && isPayloadNonSerializableAsUrlSearchParams;\n\n if (shouldSerializeToRParam) {\n return new URLSearchParams({ '.r': encode(JSON.stringify(params), true) });\n } else {\n return Object.entries(flatten).reduce((urlSearchParams, [key, value]) => {\n // inorder to make `foo: [1,2]` turn into `foo=1&foo=2` and not `foo[]=1&foo[]=2`\n const keyParams = Array.isArray(value) ? value : [value];\n\n keyParams.forEach((param: any) => {\n if (\n param === undefined ||\n param === null ||\n (Array.isArray(value) && typeof param === 'object')\n ) {\n return;\n }\n\n urlSearchParams.append(key, param);\n });\n\n return urlSearchParams;\n }, new URLSearchParams());\n }\n}\n","/**\n * base64.ts\n *\n * Licensed under the BSD 3-Clause License.\n * http://opensource.org/licenses/BSD-3-Clause\n *\n * References:\n * http://en.wikipedia.org/wiki/Base64\n *\n * @author Dan Kogai (https://github.com/dankogai)\n */\nconst version = '3.7.7';\n/**\n * @deprecated use lowercase `version`.\n */\nconst VERSION = version;\nconst _hasBuffer = typeof Buffer === 'function';\nconst _TD = typeof TextDecoder === 'function' ? new TextDecoder() : undefined;\nconst _TE = typeof TextEncoder === 'function' ? new TextEncoder() : undefined;\nconst b64ch = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\nconst b64chs = Array.prototype.slice.call(b64ch);\nconst b64tab = ((a) => {\n let tab = {};\n a.forEach((c, i) => tab[c] = i);\n return tab;\n})(b64chs);\nconst b64re = /^(?:[A-Za-z\\d+\\/]{4})*?(?:[A-Za-z\\d+\\/]{2}(?:==)?|[A-Za-z\\d+\\/]{3}=?)?$/;\nconst _fromCC = String.fromCharCode.bind(String);\nconst _U8Afrom = typeof Uint8Array.from === 'function'\n ? Uint8Array.from.bind(Uint8Array)\n : (it) => new Uint8Array(Array.prototype.slice.call(it, 0));\nconst _mkUriSafe = (src) => src\n .replace(/=/g, '').replace(/[+\\/]/g, (m0) => m0 == '+' ? '-' : '_');\nconst _tidyB64 = (s) => s.replace(/[^A-Za-z0-9\\+\\/]/g, '');\n/**\n * polyfill version of `btoa`\n */\nconst btoaPolyfill = (bin) => {\n // console.log('polyfilled');\n let u32, c0, c1, c2, asc = '';\n const pad = bin.length % 3;\n for (let i = 0; i < bin.length;) {\n if ((c0 = bin.charCodeAt(i++)) > 255 ||\n (c1 = bin.charCodeAt(i++)) > 255 ||\n (c2 = bin.charCodeAt(i++)) > 255)\n throw new TypeError('invalid character found');\n u32 = (c0 << 16) | (c1 << 8) | c2;\n asc += b64chs[u32 >> 18 & 63]\n + b64chs[u32 >> 12 & 63]\n + b64chs[u32 >> 6 & 63]\n + b64chs[u32 & 63];\n }\n return pad ? asc.slice(0, pad - 3) + \"===\".substring(pad) : asc;\n};\n/**\n * does what `window.btoa` of web browsers do.\n * @param {String} bin binary string\n * @returns {string} Base64-encoded string\n */\nconst _btoa = typeof btoa === 'function' ? (bin) => btoa(bin)\n : _hasBuffer ? (bin) => Buffer.from(bin, 'binary').toString('base64')\n : btoaPolyfill;\nconst _fromUint8Array = _hasBuffer\n ? (u8a) => Buffer.from(u8a).toString('base64')\n : (u8a) => {\n // cf. https://stackoverflow.com/questions/12710001/how-to-convert-uint8-array-to-base64-encoded-string/12713326#12713326\n const maxargs = 0x1000;\n let strs = [];\n for (let i = 0, l = u8a.length; i < l; i += maxargs) {\n strs.push(_fromCC.apply(null, u8a.subarray(i, i + maxargs)));\n }\n return _btoa(strs.join(''));\n };\n/**\n * converts a Uint8Array to a Base64 string.\n * @param {boolean} [urlsafe] URL-and-filename-safe a la RFC4648 §5\n * @returns {string} Base64 string\n */\nconst fromUint8Array = (u8a, urlsafe = false) => urlsafe ? _mkUriSafe(_fromUint8Array(u8a)) : _fromUint8Array(u8a);\n// This trick is found broken https://github.com/dankogai/js-base64/issues/130\n// const utob = (src: string) => unescape(encodeURIComponent(src));\n// reverting good old fationed regexp\nconst cb_utob = (c) => {\n if (c.length < 2) {\n var cc = c.charCodeAt(0);\n return cc < 0x80 ? c\n : cc < 0x800 ? (_fromCC(0xc0 | (cc >>> 6))\n + _fromCC(0x80 | (cc & 0x3f)))\n : (_fromCC(0xe0 | ((cc >>> 12) & 0x0f))\n + _fromCC(0x80 | ((cc >>> 6) & 0x3f))\n + _fromCC(0x80 | (cc & 0x3f)));\n }\n else {\n var cc = 0x10000\n + (c.charCodeAt(0) - 0xD800) * 0x400\n + (c.charCodeAt(1) - 0xDC00);\n return (_fromCC(0xf0 | ((cc >>> 18) & 0x07))\n + _fromCC(0x80 | ((cc >>> 12) & 0x3f))\n + _fromCC(0x80 | ((cc >>> 6) & 0x3f))\n + _fromCC(0x80 | (cc & 0x3f)));\n }\n};\nconst re_utob = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFFF]|[^\\x00-\\x7F]/g;\n/**\n * @deprecated should have been internal use only.\n * @param {string} src UTF-8 string\n * @returns {string} UTF-16 string\n */\nconst utob = (u) => u.replace(re_utob, cb_utob);\n//\nconst _encode = _hasBuffer\n ? (s) => Buffer.from(s, 'utf8').toString('base64')\n : _TE\n ? (s) => _fromUint8Array(_TE.encode(s))\n : (s) => _btoa(utob(s));\n/**\n * converts a UTF-8-encoded string to a Base64 string.\n * @param {boolean} [urlsafe] if `true` make the result URL-safe\n * @returns {string} Base64 string\n */\nconst encode = (src, urlsafe = false) => urlsafe\n ? _mkUriSafe(_encode(src))\n : _encode(src);\n/**\n * converts a UTF-8-encoded string to URL-safe Base64 RFC4648 §5.\n * @returns {string} Base64 string\n */\nconst encodeURI = (src) => encode(src, true);\n// This trick is found broken https://github.com/dankogai/js-base64/issues/130\n// const btou = (src: string) => decodeURIComponent(escape(src));\n// reverting good old fationed regexp\nconst re_btou = /[\\xC0-\\xDF][\\x80-\\xBF]|[\\xE0-\\xEF][\\x80-\\xBF]{2}|[\\xF0-\\xF7][\\x80-\\xBF]{3}/g;\nconst cb_btou = (cccc) => {\n switch (cccc.length) {\n case 4:\n var cp = ((0x07 & cccc.charCodeAt(0)) << 18)\n | ((0x3f & cccc.charCodeAt(1)) << 12)\n | ((0x3f & cccc.charCodeAt(2)) << 6)\n | (0x3f & cccc.charCodeAt(3)), offset = cp - 0x10000;\n return (_fromCC((offset >>> 10) + 0xD800)\n + _fromCC((offset & 0x3FF) + 0xDC00));\n case 3:\n return _fromCC(((0x0f & cccc.charCodeAt(0)) << 12)\n | ((0x3f & cccc.charCodeAt(1)) << 6)\n | (0x3f & cccc.charCodeAt(2)));\n default:\n return _fromCC(((0x1f & cccc.charCodeAt(0)) << 6)\n | (0x3f & cccc.charCodeAt(1)));\n }\n};\n/**\n * @deprecated should have been internal use only.\n * @param {string} src UTF-16 string\n * @returns {string} UTF-8 string\n */\nconst btou = (b) => b.replace(re_btou, cb_btou);\n/**\n * polyfill version of `atob`\n */\nconst atobPolyfill = (asc) => {\n // console.log('polyfilled');\n asc = asc.replace(/\\s+/g, '');\n if (!b64re.test(asc))\n throw new TypeError('malformed base64.');\n asc += '=='.slice(2 - (asc.length & 3));\n let u24, bin = '', r1, r2;\n for (let i = 0; i < asc.length;) {\n u24 = b64tab[asc.charAt(i++)] << 18\n | b64tab[asc.charAt(i++)] << 12\n | (r1 = b64tab[asc.charAt(i++)]) << 6\n | (r2 = b64tab[asc.charAt(i++)]);\n bin += r1 === 64 ? _fromCC(u24 >> 16 & 255)\n : r2 === 64 ? _fromCC(u24 >> 16 & 255, u24 >> 8 & 255)\n : _fromCC(u24 >> 16 & 255, u24 >> 8 & 255, u24 & 255);\n }\n return bin;\n};\n/**\n * does what `window.atob` of web browsers do.\n * @param {String} asc Base64-encoded string\n * @returns {string} binary string\n */\nconst _atob = typeof atob === 'function' ? (asc) => atob(_tidyB64(asc))\n : _hasBuffer ? (asc) => Buffer.from(asc, 'base64').toString('binary')\n : atobPolyfill;\n//\nconst _toUint8Array = _hasBuffer\n ? (a) => _U8Afrom(Buffer.from(a, 'base64'))\n : (a) => _U8Afrom(_atob(a).split('').map(c => c.charCodeAt(0)));\n/**\n * converts a Base64 string to a Uint8Array.\n */\nconst toUint8Array = (a) => _toUint8Array(_unURI(a));\n//\nconst _decode = _hasBuffer\n ? (a) => Buffer.from(a, 'base64').toString('utf8')\n : _TD\n ? (a) => _TD.decode(_toUint8Array(a))\n : (a) => btou(_atob(a));\nconst _unURI = (a) => _tidyB64(a.replace(/[-_]/g, (m0) => m0 == '-' ? '+' : '/'));\n/**\n * converts a Base64 string to a UTF-8 string.\n * @param {String} src Base64 string. Both normal and URL-safe are supported\n * @returns {string} UTF-8 string\n */\nconst decode = (src) => _decode(_unURI(src));\n/**\n * check if a value is a valid Base64 string\n * @param {String} src a value to check\n */\nconst isValid = (src) => {\n if (typeof src !== 'string')\n return false;\n const s = src.replace(/\\s+/g, '').replace(/={0,2}$/, '');\n return !/[^\\s0-9a-zA-Z\\+/]/.test(s) || !/[^\\s0-9a-zA-Z\\-_]/.test(s);\n};\n//\nconst _noEnum = (v) => {\n return {\n value: v, enumerable: false, writable: true, configurable: true\n };\n};\n/**\n * extend String.prototype with relevant methods\n */\nconst extendString = function () {\n const _add = (name, body) => Object.defineProperty(String.prototype, name, _noEnum(body));\n _add('fromBase64', function () { return decode(this); });\n _add('toBase64', function (urlsafe) { return encode(this, urlsafe); });\n _add('toBase64URI', function () { return encode(this, true); });\n _add('toBase64URL', function () { return encode(this, true); });\n _add('toUint8Array', function () { return toUint8Array(this); });\n};\n/**\n * extend Uint8Array.prototype with relevant methods\n */\nconst extendUint8Array = function () {\n const _add = (name, body) => Object.defineProperty(Uint8Array.prototype, name, _noEnum(body));\n _add('toBase64', function (urlsafe) { return fromUint8Array(this, urlsafe); });\n _add('toBase64URI', function () { return fromUint8Array(this, true); });\n _add('toBase64URL', function () { return fromUint8Array(this, true); });\n};\n/**\n * extend Builtin prototypes with relevant methods\n */\nconst extendBuiltins = () => {\n extendString();\n extendUint8Array();\n};\nconst gBase64 = {\n version: version,\n VERSION: VERSION,\n atob: _atob,\n atobPolyfill: atobPolyfill,\n btoa: _btoa,\n btoaPolyfill: btoaPolyfill,\n fromBase64: decode,\n toBase64: encode,\n encode: encode,\n encodeURI: encodeURI,\n encodeURL: encodeURI,\n utob: utob,\n btou: btou,\n decode: decode,\n isValid: isValid,\n fromUint8Array: fromUint8Array,\n toUint8Array: toUint8Array,\n extendString: extendString,\n extendUint8Array: extendUint8Array,\n extendBuiltins: extendBuiltins\n};\n// makecjs:CUT //\nexport { version };\nexport { VERSION };\nexport { _atob as atob };\nexport { atobPolyfill };\nexport { _btoa as btoa };\nexport { btoaPolyfill };\nexport { decode as fromBase64 };\nexport { encode as toBase64 };\nexport { utob };\nexport { encode };\nexport { encodeURI };\nexport { encodeURI as encodeURL };\nexport { btou };\nexport { decode };\nexport { isValid };\nexport { fromUint8Array };\nexport { toUint8Array };\nexport { extendString };\nexport { extendUint8Array };\nexport { extendBuiltins };\n// and finally,\nexport { gBase64 as Base64 };\n","import type {\n RenderedLeanSchema,\n RenderedLeanSchemaFields,\n} from '@wix/metro-public-utils';\nimport { ConverterType, Payload } from './serializer/domain';\nimport { schemaSerializer } from './serializer/serializer';\nimport { protobufConverters } from './serializer/protobuf-converters/converters';\nimport { typeToConverterSet } from './serializer/utils';\n\nconst ambassadorConverters = typeToConverterSet([...protobufConverters]);\n\nexport type { GoogleProtoDuration } from './serializer/protobuf-converters/types';\n\nexport function serializer<T>(\n rootSchema: RenderedLeanSchemaFields,\n depSchemas: RenderedLeanSchema = {},\n) {\n const transform = schemaSerializer(\n rootSchema,\n depSchemas,\n ambassadorConverters,\n );\n\n return {\n fromJSON(jsonOrString: Payload | string): T {\n const jsonOrText = safeJsonParse(jsonOrString) || jsonOrString;\n return transform(jsonOrText, ConverterType.FROM_JSON) as T;\n },\n\n toJSON(json: T) {\n return transform(json, ConverterType.TO_JSON) as Payload;\n },\n };\n}\n\nfunction safeJsonParse(someString: string): any {\n try {\n return JSON.parse(someString);\n } catch (error) {}\n}\n","export enum ConverterType {\n TO_JSON,\n FROM_JSON,\n}\n\nexport type Payload = any;\n\nexport type Converter = {\n transform: (val: any) => any;\n checkRepetable?: (val: any) => boolean;\n};\n\nexport type ConverterSet = {\n types: string[];\n [ConverterType.FROM_JSON]: Converter;\n [ConverterType.TO_JSON]: Converter;\n};\n\nexport type TypeToConverterSet = Record<string, ConverterSet>;\n","import type {\n RenderedLeanSchemaFields,\n RenderedLeanSchema,\n} from '@wix/metro-public-utils';\nimport { parseLeanSchemaRef } from '..';\nimport { ConverterType, Payload, TypeToConverterSet } from './domain';\n\nexport function schemaSerializer(\n rootSchema: RenderedLeanSchemaFields,\n depSchemas: RenderedLeanSchema = {},\n converterSets: TypeToConverterSet,\n) {\n return function serialize(\n json: Payload = {},\n converterType: ConverterType,\n ): Payload {\n return typeof json === 'string' ? json : transformSchema(rootSchema, json);\n\n function transformSchema(\n schema: RenderedLeanSchemaFields,\n payload: any,\n ): Payload {\n const result = {} as Payload;\n if ([null, undefined].includes(payload)) {\n return payload;\n }\n\n Object.entries(payload).forEach(([key, val]) => {\n const renderedSchemaName = schema[key];\n const { schemaName, schemaType } =\n parseLeanSchemaRef(renderedSchemaName);\n\n const isMap = schemaType === 'Map';\n const isRepeatable =\n getConverter(schemaName)?.checkRepetable?.(val) ?? Array.isArray(val);\n\n let parsedValue;\n\n if (isRepeatable) {\n parsedValue = (val as any[]).map((v) => applyField(v, schemaName));\n } else if (isMap) {\n parsedValue = applyFieldOnMap(val, schemaName);\n } else {\n parsedValue = applyField(val, schemaName);\n }\n\n result[key] = parsedValue;\n });\n\n return result;\n }\n\n function applyField(val: unknown, schemaOrSerializer?: string) {\n if (!schemaOrSerializer) {\n return val;\n }\n\n const maybeSchema = depSchemas[schemaOrSerializer];\n const maybeConverter = getConverter(schemaOrSerializer);\n\n if (maybeConverter) {\n return getConverter(schemaOrSerializer).transform(val);\n } else if (maybeSchema) {\n return transformSchema(maybeSchema, val);\n }\n\n throw new Error(\n `${schemaOrSerializer} is neither schema nor serializable type`,\n );\n }\n\n function getConverter(name: string) {\n return converterSets[name]?.[converterType];\n }\n\n function applyFieldOnMap(val: any, sanitizedSchemaOrSerializer: string) {\n return Object.entries(val).reduce<Record<string, any>>(\n (acc, [propertyName, value]) => {\n acc[propertyName] = applyField(value, sanitizedSchemaOrSerializer);\n return acc;\n },\n {},\n );\n }\n };\n}\n","import { ConverterSet } from '../domain';\nimport { timestamp } from './timestamp';\nimport { fieldMask } from './field-mask';\nimport { bytes } from './bytes';\nimport { duration } from './duration';\nimport { float } from './float';\n\nexport const protobufConverters: ConverterSet[] = [\n timestamp,\n fieldMask,\n bytes,\n duration,\n float,\n];\n","import { ConverterSet, ConverterType } from '../domain';\n\nexport const timestamp: ConverterSet = {\n types: ['google.protobuf.Timestamp'],\n\n [ConverterType.TO_JSON]: {\n transform: (val: Date | string) => {\n if (typeof val === 'string' || !val) {\n return val;\n }\n return val.toISOString();\n },\n },\n\n [ConverterType.FROM_JSON]: {\n transform: (val: string) => (val ? new Date(val) : val),\n },\n};\n","import { ConverterSet, ConverterType } from '../domain';\n\nexport const fieldMask: ConverterSet = {\n types: ['google.protobuf.FieldMask'],\n\n [ConverterType.TO_JSON]: {\n transform: (val: string[]) => val.join(','),\n\n /**\n * This one handles cases where we have a repeated google.protobuf.FieldMask type,\n * so it will look like: [['foo', 'bar'], ['qux']].\n *\n * The problem is that the serializer detects it as an array with actual fields (strings),\n * while in practice it is an array of multiple google.protobuf.FieldMask.\n *\n * We should determine if the items are actual fields (so each item is a string),\n * or arrays of google.protobuf.FieldMask (so each item is array that has items with fields).\n *\n * Another approach could be marking on the schama itseld each field if it's a repeatable or not,\n * it's not a good appraoch, but as long as google.protobuf.FieldMask is our only issue, it's\n * not _that_ bad solution.\n */\n checkRepetable: (val: string[] | string[][]) => {\n return val.some((v: string | string[]) => Array.isArray(v));\n },\n },\n\n [ConverterType.FROM_JSON]: {\n transform: (val: string | { paths: string[] }) => {\n /**\n * Support Scala FW JSON mapping bug, for more details see:\n *\n * https://github.com/wix-private/server-infra/issues/17953\n */\n if (typeof val === 'object') {\n return val.paths;\n }\n\n return val.split(',');\n },\n },\n};\n","import { ConverterSet, ConverterType } from '../domain';\n\nexport const bytes: ConverterSet = {\n types: ['google.protobuf.BytesValue', 'BYTES'],\n\n [ConverterType.TO_JSON]: {\n transform: (val: number[]) => {\n const chars = val.reduce((res, c) => res + String.fromCharCode(c), '');\n\n return btoa(chars);\n },\n },\n\n [ConverterType.FROM_JSON]: {\n transform: (val: string) => {\n return Uint8Array.from(atob(val), (c) => c.charCodeAt(0));\n },\n },\n};\n","import { ConverterSet, ConverterType } from '../domain';\nimport { GoogleProtoDuration } from './types';\n\nexport const duration: ConverterSet = {\n types: ['google.protobuf.Duration'],\n\n [ConverterType.TO_JSON]: {\n transform: ({ seconds = '0', nanos = 0 }: GoogleProtoDuration) => {\n let nanosPortion = '';\n\n if (nanos !== 0) {\n nanosPortion = `.${nanos.toString().padStart(9, '0')}`;\n }\n\n return `${seconds}${nanosPortion}s`;\n },\n },\n\n [ConverterType.FROM_JSON]: {\n transform: (val: string): GoogleProtoDuration => {\n const [seconds, nanos] = val.substring(0, val.length - 1).split('.');\n\n return {\n seconds,\n nanos: nanosForString(nanos),\n };\n },\n },\n};\n\nfunction nanosForString(nanos: string) {\n let res = 0;\n\n if (nanos !== undefined) {\n const precision = 3 - nanos.length / 3;\n res = parseInt(nanos, 10) * Math.pow(1000, precision);\n }\n\n return res;\n}\n","import { ConverterSet, ConverterType } from '../domain';\n\nexport const float: ConverterSet = {\n types: [\n 'FLOAT',\n 'DOUBLE',\n 'google.protobuf.FloatValue',\n 'google.protobuf.DoubleValue',\n ],\n\n [ConverterType.TO_JSON]: {\n transform: (val: number) => {\n return isFinite(val) ? val : val.toString();\n },\n },\n\n [ConverterType.FROM_JSON]: {\n transform: (val: string | number) => {\n if (val === 'NaN') {\n return NaN;\n }\n\n if (val === 'Infinity') {\n return Infinity;\n }\n\n if (val === '-Infinity') {\n return -Infinity;\n }\n\n return val;\n },\n },\n};\n","import { TypeToConverterSet, ConverterSet } from './domain';\n\nexport function typeToConverterSet(\n converterSets: ConverterSet[],\n): TypeToConverterSet {\n return converterSets.reduce((result, converterSet) => {\n const types = converterSet.types.reduce((typeResult, type) => {\n return {\n ...typeResult,\n [type]: converterSet,\n };\n }, {} as TypeToConverterSet);\n\n return {\n ...result,\n ...types,\n };\n }, {} as TypeToConverterSet);\n}\n",null,"import { CliError, CliErrorCode } from '@wix/cli-error';\nimport type { IHttpClient, Headers } from '@wix/http-client';\nimport { createHttpClient as createHttpClientOriginal } from '@wix/http-client';\nimport { isHttpError } from './is-http-error.js';\n\nexport interface CreateHttpClientOptions {\n getAppToken?: () => Promise<string>;\n createHeaders?: () => Headers;\n\n type: keyof typeof baseUrls;\n}\n\nconst baseUrls = {\n backoffice: 'https://manage.wix.com',\n editor: 'https://editor.wix.com',\n code: 'https://code.wix.com',\n general: 'https://www.wix.com',\n api: 'https://www.wixapis.com',\n standalone: undefined,\n};\n\nfunction interceptRequest<P extends unknown[], R>(\n client: IHttpClient,\n fn: (...args: P) => Promise<R>\n) {\n return (...args: P) =>\n fn.apply(client, args).catch((error: unknown) => {\n if (isHttpError(error) && !client.isCancel(error) && !error.response) {\n // Network error\n throw new CliError({\n code: CliErrorCode.NetworkError(),\n cause: error,\n info: { code: error.code },\n });\n }\n\n throw error;\n });\n}\n\nexport function createHttpClient({\n getAppToken,\n createHeaders,\n type,\n}: CreateHttpClientOptions): IHttpClient {\n const client = createHttpClientOriginal({\n baseURL: baseUrls[type],\n ...(type !== 'standalone'\n ? {\n getAppToken,\n }\n : {}),\n createHeaders: () => ({\n ...createHeaders?.(),\n // See https://wix.slack.com/archives/C0JLGMT28/p1667219337530909\n 'X-XSRF-TOKEN': 'nocheck',\n Cookie: 'XSRF-TOKEN=nocheck',\n 'User-Agent': 'wix-cli',\n }),\n });\n\n return {\n ...client,\n request: interceptRequest(client, client.request),\n get: interceptRequest(client, client.get),\n delete: interceptRequest(client, client.delete),\n head: interceptRequest(client, client.head),\n options: interceptRequest(client, client.options),\n post: interceptRequest(client, client.post),\n put: interceptRequest(client, client.put),\n patch: interceptRequest(client, client.patch),\n };\n}\n","import { z } from 'zod';\nimport type { IHttpError } from '@wix/http-client';\nimport { HttpClient } from '@wix/http-client';\nimport { CliError, CliErrorCode } from '@wix/cli-error';\n\ntype HttpErrorResponse =\n | {\n message?: string;\n error?: string;\n details?: {\n applicationError?: object;\n validationError?: object;\n };\n }\n | undefined;\n\nexport function isHttpError(\n error: unknown\n): error is IHttpError<HttpErrorResponse> {\n return HttpClient.isHttpError(error);\n}\n\nconst validationErrorSchema = z.object({\n details: z.object({\n validationError: z.object({\n fieldViolations: z\n .array(\n z.object({\n description: z.string(),\n field: z.string(),\n })\n )\n .nonempty(),\n }),\n }),\n});\n\ntype HttpValidationErrorResponse = z.infer<typeof validationErrorSchema>;\n\nexport function isHttpValidationError(\n error: IHttpError<HttpErrorResponse>\n): error is IHttpError<HttpValidationErrorResponse> {\n if (error.response?.data?.details?.validationError) {\n const result = validationErrorSchema.safeParse(error.response.data);\n\n if (result.success) {\n return true;\n }\n\n throw new CliError({\n cause: error,\n code: CliErrorCode.FailedToParseHttpErrorResponse(),\n info: {\n zodError: result.error,\n },\n });\n }\n\n return false;\n}\n\nconst applicationErrorSchema = z.object({\n details: z.object({\n applicationError: z.object({\n code: z.string(),\n }),\n }),\n});\n\ntype HttpApplicationErrorResponse = z.infer<typeof applicationErrorSchema>;\n\nexport function isHttpApplicationError(\n error: IHttpError<HttpErrorResponse>\n): error is IHttpError<HttpApplicationErrorResponse> {\n if (error.response?.data?.details?.applicationError) {\n const result = applicationErrorSchema.safeParse(error.response.data);\n\n if (result.success) {\n return true;\n }\n\n throw new CliError({\n cause: error,\n code: CliErrorCode.FailedToParseHttpErrorResponse(),\n info: {\n zodError: result.error,\n },\n });\n }\n\n return false;\n}\n","import { z } from 'zod';\n\nexport const deviceCodeSchema = z.object({\n deviceCode: z.string(),\n verificationUri: z.string().url(),\n userCode: z.string(),\n expiresIn: z.number(),\n});\n\nexport type DeviceCodeResponse = z.TypeOf<typeof deviceCodeSchema>;\n\nexport const tokenSchema = z\n .object({\n access_token: z.string(),\n refresh_token: z.string(),\n expires_in: z.number(),\n })\n .transform((token) => ({\n accessToken: token.access_token,\n refreshToken: token.refresh_token,\n expiresIn: token.expires_in,\n }));\n\nexport const userInfoSchema = z.object({\n userId: z.string().uuid(),\n email: z.string().email(),\n});\n\nexport type UserInfo = z.TypeOf<typeof userInfoSchema>;\n\nexport const getMyAccountSchema = z.object({\n account: z.object({\n slug: z.string(),\n accountId: z.string().uuid(),\n accountOwner: z.string().uuid(),\n }),\n});\n\nexport const siteAuthSchema = z.object({\n accessToken: z.string(),\n refreshToken: z.string(),\n expiresIn: z.number(),\n issuedAt: z.number(),\n});\n\nexport type SiteAuth = z.TypeOf<typeof siteAuthSchema>;\n\nexport const accountAuthSchema = siteAuthSchema.extend({\n userInfo: userInfoSchema,\n});\n\nexport type AccountAuth = z.TypeOf<typeof accountAuthSchema>;\n\nexport const apiKeyAuthSchema = z.object({\n token: z.string(),\n accountId: z.string().uuid(),\n userInfo: z.object({\n userId: z.string().uuid(),\n email: z.string(),\n }),\n});\n\nexport type ApiKeyAuth = z.TypeOf<typeof apiKeyAuthSchema>;\n","import { unlink, rm } from 'node:fs/promises';\nimport { resolve } from 'node:path';\nimport { getDataDirPath } from '@wix/cli-data-dir';\nimport type { VariantOf } from 'variant';\nimport { match, fields, variant, payload, isType } from 'variant';\nimport { pathExists, readJson, writeJson } from '@wix/cli-fs';\nimport { CliError, CliErrorCode } from '@wix/cli-error';\nimport type { ApiKeyAuth, AccountAuth, SiteAuth, UserInfo } from './schemas.js';\nimport {\n apiKeyAuthSchema,\n accountAuthSchema,\n siteAuthSchema,\n} from './schemas.js';\n\nfunction getLegacyAuthDataFilePath() {\n return resolve(getDataDirPath(), 'auth.json');\n}\n\nfunction getAuthDataFolder() {\n return resolve(getDataDirPath(), 'auth');\n}\n\nfunction getApiKeyAuthDataFilePath() {\n return resolve(getAuthDataFolder(), 'api-key.json');\n}\n\nfunction getAccountAuthDataFilePath() {\n return resolve(getAuthDataFolder(), 'account.json');\n}\n\nfunction getSiteAuthDataFilePath(siteId: string) {\n return resolve(getAuthDataFolder(), `${siteId}.json`);\n}\n\nconst ApiKeyAuthData = variant({\n Authenticated: payload<ApiKeyAuth>(),\n Unauthenticated: {},\n});\n\ntype ApiKeyAuthData = VariantOf<typeof ApiKeyAuthData>;\n\nexport async function readApiKeyAuthData(): Promise<ApiKeyAuthData> {\n const apiKeyAuthDataFilePath = getApiKeyAuthDataFilePath();\n\n if (!(await pathExists(apiKeyAuthDataFilePath))) {\n return ApiKeyAuthData.Unauthenticated();\n }\n\n const apiKeyFileContents = await readJson(apiKeyAuthDataFilePath);\n const savedApiKeyAuthData = apiKeyAuthSchema.parse(apiKeyFileContents);\n\n return ApiKeyAuthData.Authenticated(savedApiKeyAuthData);\n}\n\nexport async function saveApiKeyAuthData(authData: ApiKeyAuth) {\n try {\n const targetFilePath = getApiKeyAuthDataFilePath();\n\n await writeJson(targetFilePath, authData);\n } catch (error) {\n throw new CliError({\n code: CliErrorCode.FailedToSaveApiKeyAuthData(),\n cause: error,\n });\n }\n}\n\nexport const AccountAuthData = variant({\n Authenticated: fields<AccountAuth>(),\n Unauthenticated: {},\n Expired: fields<AccountAuth>(),\n});\nexport type AccountAuthData = VariantOf<typeof AccountAuthData>;\n\nexport async function readAccountAuthData(): Promise<AccountAuthData> {\n const accountAuthDataFilePath = getAccountAuthDataFilePath();\n\n if (!(await pathExists(accountAuthDataFilePath))) {\n return AccountAuthData.Unauthenticated();\n }\n\n const authFileContents = await readJson(accountAuthDataFilePath);\n const savedAccountAuthData = accountAuthSchema.parse(authFileContents);\n\n if (!isValidToken(savedAccountAuthData)) {\n return AccountAuthData.Expired(savedAccountAuthData);\n }\n\n return AccountAuthData.Authenticated(savedAccountAuthData);\n}\n\nconst SiteAuthData = variant({\n Authenticated: fields<SiteAuth>(),\n Unauthenticated: {},\n Expired: fields<SiteAuth>(),\n});\n\ntype SiteAuthData = VariantOf<typeof SiteAuthData>;\n\nexport async function readSiteAuthData(siteId: string): Promise<SiteAuthData> {\n const siteAuthDataFilePath = getSiteAuthDataFilePath(siteId);\n\n if (!(await pathExists(siteAuthDataFilePath))) {\n return SiteAuthData.Unauthenticated();\n }\n\n const authFileContents = await readJson(siteAuthDataFilePath);\n const savedSiteAuthData = siteAuthSchema.parse(authFileContents);\n\n if (!isValidToken(savedSiteAuthData)) {\n return SiteAuthData.Expired(savedSiteAuthData);\n }\n\n return SiteAuthData.Authenticated(savedSiteAuthData);\n}\n\nexport async function saveAuthData(\n authData: AccountAuth | SiteAuth,\n siteId?: string\n) {\n try {\n const targetFilePath = siteId\n ? getSiteAuthDataFilePath(siteId)\n : getAccountAuthDataFilePath();\n\n await writeJson(targetFilePath, authData);\n } catch (error) {\n throw new CliError({\n code: CliErrorCode.FailedToSaveAuthData(),\n cause: error,\n });\n }\n}\n\nexport async function deleteAuthData() {\n try {\n await rm(getAuthDataFolder(), { recursive: true, force: true });\n } catch (error) {\n throw new CliError({\n code: CliErrorCode.FailedToDeleteAuthData(),\n cause: error,\n });\n }\n\n if (await hasLegacyAuthData()) {\n await deleteLegacyAuthData();\n }\n}\n\nasync function deleteLegacyAuthData() {\n try {\n await unlink(getLegacyAuthDataFilePath());\n } catch (error) {\n throw new CliError({\n code: CliErrorCode.FailedToDeleteLegacyAuthData(),\n cause: error,\n });\n }\n}\n\nexport async function hasLegacyAuthData() {\n return pathExists(getLegacyAuthDataFilePath());\n}\n\nexport function isValidToken(authData: {\n expiresIn: number;\n issuedAt: number;\n}): boolean {\n const currentTimestamp = Math.floor(Date.now() / 1000);\n const tokenOffset = 10 * 60; // 10 minutes\n const tokenLifetime = authData.expiresIn - tokenOffset;\n const tokenGenerationTimestamp = authData.issuedAt;\n\n return tokenGenerationTimestamp + tokenLifetime > currentTimestamp;\n}\n\nexport async function getUserInfo(): Promise<UserInfo | null> {\n const apiKeyAuthData = await readApiKeyAuthData();\n\n if (isType(apiKeyAuthData, ApiKeyAuthData.Authenticated)) {\n return apiKeyAuthData.payload.userInfo;\n }\n\n const accountAuthData = await readAccountAuthData();\n return match(accountAuthData, {\n Authenticated: ({ userInfo }) => userInfo,\n Expired: ({ userInfo }) => userInfo,\n Unauthenticated: () => null,\n });\n}\n","import pLimit from 'p-limit';\nimport { match, constant, isType } from 'variant';\nimport pWaitFor, { TimeoutError } from 'p-wait-for';\nimport { CliError, CliErrorCode } from '@wix/cli-error';\nimport { getTestOverrides } from '@wix/cli-test-overrides';\nimport type { AccountAuth, DeviceCodeResponse } from '../schemas.js';\nimport {\n client,\n RenewTokenData,\n DeviceCodeNotYetVerifiedError,\n} from '../client.js';\nimport {\n isValidToken,\n deleteAuthData,\n readAccountAuthData,\n saveAuthData,\n} from '../auth-data.js';\nimport type { AuthStrategyState, AuthStrategy } from './auth-strategy-types.js';\nimport { apiKeyAuthStrategy } from './api-key-auth-strategy.js';\n\nconst seconds = (n: number) => 1000 * n;\n\nasync function waitForLogin(\n { deviceCode, expiresIn }: DeviceCodeResponse,\n { signal }: { signal: AbortSignal }\n) {\n try {\n const authData = await pWaitFor(\n async () => {\n try {\n const tokenData = await client.createToken({\n deviceCode,\n });\n\n return pWaitFor.resolveWith(tokenData);\n } catch (error) {\n if (error instanceof DeviceCodeNotYetVerifiedError) {\n // continue polling\n return false;\n }\n\n throw error;\n }\n },\n {\n interval: getTestOverrides().waitForLoginInterval ?? seconds(3),\n timeout: { milliseconds: seconds(expiresIn), signal },\n }\n );\n\n const userInfo = await client.userInfo({\n accessToken: authData.accessToken,\n });\n\n const result = { ...authData, userInfo };\n\n await deleteAuthData();\n await saveAuthData(result);\n\n return result;\n } catch (error) {\n if (error instanceof TimeoutError) {\n throw new CliError({\n code: CliErrorCode.DeviceCodeTimedOut(),\n cause: error,\n });\n }\n\n throw error;\n }\n}\n\nasync function renewAccountAuth({ refreshToken, userInfo }: AccountAuth) {\n const renewTokenResult = await client.renewToken({ refreshToken });\n\n if (isType(renewTokenResult, RenewTokenData.TokenRenewed)) {\n await saveAuthData({ ...renewTokenResult.payload, userInfo });\n }\n\n return renewTokenResult;\n}\n\nasync function getNonExpiredAccountAuth(): Promise<AccountAuth | null> {\n const accountAuthStatus = await readAccountAuthData();\n\n return match(accountAuthStatus, {\n Authenticated: (accountAuth) => accountAuth,\n Unauthenticated: () => null,\n Expired: async (accountAuth) => {\n const renewTokenResult = await renewAccountAuth(accountAuth);\n\n return match(renewTokenResult, {\n TokenRenewed: ({ payload: newTokenData }) => ({\n ...newTokenData,\n userInfo: accountAuth.userInfo,\n }),\n RefreshTokenRevoked: constant(null),\n });\n },\n });\n}\n\nfunction createAccountAuthState({\n userInfo,\n ...initialTokenData\n}: AccountAuth): AuthStrategyState {\n const limiter = pLimit(1);\n let tokenData = { ...initialTokenData };\n\n return {\n getAccessToken: () => {\n return limiter(async () => {\n if (isValidToken(tokenData)) {\n return tokenData.accessToken;\n }\n\n const renewTokenResult = await renewAccountAuth({\n ...tokenData,\n userInfo,\n });\n\n return match(renewTokenResult, {\n TokenRenewed: ({ payload: newTokenData }) => {\n tokenData = newTokenData;\n return tokenData.accessToken;\n },\n RefreshTokenRevoked: ({ cause }) => {\n throw new CliError({\n code: CliErrorCode.FailedToRenewAuthTokenRefreshTokenRevoked(),\n cause,\n });\n },\n });\n });\n },\n getRefreshToken: () => tokenData.refreshToken,\n userInfo,\n };\n}\n\nexport const accountAuthStrategy: AuthStrategy = {\n async isLoggedIn() {\n const apiKeyAuth = await apiKeyAuthStrategy.isLoggedIn();\n\n if (apiKeyAuth) {\n return apiKeyAuth;\n }\n\n const accountAuth = await getNonExpiredAccountAuth();\n\n if (accountAuth) {\n return createAccountAuthState(accountAuth);\n }\n\n return null;\n },\n async login({ deviceCode, signal }) {\n const accountAuth = await waitForLogin(deviceCode, { signal });\n\n return createAccountAuthState(accountAuth);\n },\n};\n","import Queue from 'yocto-queue';\n\nexport default function pLimit(concurrency) {\n\tvalidateConcurrency(concurrency);\n\n\tconst queue = new Queue();\n\tlet activeCount = 0;\n\n\tconst resumeNext = () => {\n\t\tif (activeCount < concurrency && queue.size > 0) {\n\t\t\tqueue.dequeue()();\n\t\t\t// Since `pendingCount` has been decreased by one, increase `activeCount` by one.\n\t\t\tactiveCount++;\n\t\t}\n\t};\n\n\tconst next = () => {\n\t\tactiveCount--;\n\n\t\tresumeNext();\n\t};\n\n\tconst run = async (function_, resolve, arguments_) => {\n\t\tconst result = (async () => function_(...arguments_))();\n\n\t\tresolve(result);\n\n\t\ttry {\n\t\t\tawait result;\n\t\t} catch {}\n\n\t\tnext();\n\t};\n\n\tconst enqueue = (function_, resolve, arguments_) => {\n\t\t// Queue `internalResolve` instead of the `run` function\n\t\t// to preserve asynchronous context.\n\t\tnew Promise(internalResolve => {\n\t\t\tqueue.enqueue(internalResolve);\n\t\t}).then(\n\t\t\trun.bind(undefined, function_, resolve, arguments_),\n\t\t);\n\n\t\t(async () => {\n\t\t\t// This function needs to wait until the next microtask before comparing\n\t\t\t// `activeCount` to `concurrency`, because `activeCount` is updated asynchronously\n\t\t\t// after the `internalResolve` function is dequeued and called. The comparison in the if-statement\n\t\t\t// needs to happen asynchronously as well to get an up-to-date value for `activeCount`.\n\t\t\tawait Promise.resolve();\n\n\t\t\tif (activeCount < concurrency) {\n\t\t\t\tresumeNext();\n\t\t\t}\n\t\t})();\n\t};\n\n\tconst generator = (function_, ...arguments_) => new Promise(resolve => {\n\t\tenqueue(function_, resolve, arguments_);\n\t});\n\n\tObject.defineProperties(generator, {\n\t\tactiveCount: {\n\t\t\tget: () => activeCount,\n\t\t},\n\t\tpendingCount: {\n\t\t\tget: () => queue.size,\n\t\t},\n\t\tclearQueue: {\n\t\t\tvalue() {\n\t\t\t\tqueue.clear();\n\t\t\t},\n\t\t},\n\t\tconcurrency: {\n\t\t\tget: () => concurrency,\n\n\t\t\tset(newConcurrency) {\n\t\t\t\tvalidateConcurrency(newConcurrency);\n\t\t\t\tconcurrency = newConcurrency;\n\n\t\t\t\tqueueMicrotask(() => {\n\t\t\t\t\t// eslint-disable-next-line no-unmodified-loop-condition\n\t\t\t\t\twhile (activeCount < concurrency && queue.size > 0) {\n\t\t\t\t\t\tresumeNext();\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t},\n\t\t},\n\t});\n\n\treturn generator;\n}\n\nexport function limitFunction(function_, option) {\n\tconst {concurrency} = option;\n\tconst limit = pLimit(concurrency);\n\n\treturn (...arguments_) => limit(() => function_(...arguments_));\n}\n\nfunction validateConcurrency(concurrency) {\n\tif (!((Number.isInteger(concurrency) || concurrency === Number.POSITIVE_INFINITY) && concurrency > 0)) {\n\t\tthrow new TypeError('Expected `concurrency` to be a number from 1 and up');\n\t}\n}\n","/*\nHow it works:\n`this.#head` is an instance of `Node` which keeps track of its current value and nests another instance of `Node` that keeps the value that comes after it. When a value is provided to `.enqueue()`, the code needs to iterate through `this.#head`, going deeper and deeper to find the last value. However, iterating through every single item is slow. This problem is solved by saving a reference to the last value as `this.#tail` so that it can reference it to add a new value.\n*/\n\nclass Node {\n\tvalue;\n\tnext;\n\n\tconstructor(value) {\n\t\tthis.value = value;\n\t}\n}\n\nexport default class Queue {\n\t#head;\n\t#tail;\n\t#size;\n\n\tconstructor() {\n\t\tthis.clear();\n\t}\n\n\tenqueue(value) {\n\t\tconst node = new Node(value);\n\n\t\tif (this.#head) {\n\t\t\tthis.#tail.next = node;\n\t\t\tthis.#tail = node;\n\t\t} else {\n\t\t\tthis.#head = node;\n\t\t\tthis.#tail = node;\n\t\t}\n\n\t\tthis.#size++;\n\t}\n\n\tdequeue() {\n\t\tconst current = this.#head;\n\t\tif (!current) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.#head = this.#head.next;\n\t\tthis.#size--;\n\t\treturn current.value;\n\t}\n\n\tpeek() {\n\t\tif (!this.#head) {\n\t\t\treturn;\n\t\t}\n\n\t\treturn this.#head.value;\n\n\t\t// TODO: Node.js 18.\n\t\t// return this.#head?.value;\n\t}\n\n\tclear() {\n\t\tthis.#head = undefined;\n\t\tthis.#tail = undefined;\n\t\tthis.#size = 0;\n\t}\n\n\tget size() {\n\t\treturn this.#size;\n\t}\n\n\t* [Symbol.iterator]() {\n\t\tlet current = this.#head;\n\n\t\twhile (current) {\n\t\t\tyield current.value;\n\t\t\tcurrent = current.next;\n\t\t}\n\t}\n}\n","import pTimeout from 'p-timeout';\n\nconst resolveValue = Symbol('resolveValue');\n\nexport default async function pWaitFor(condition, options = {}) {\n\tconst {\n\t\tinterval = 20,\n\t\ttimeout = Number.POSITIVE_INFINITY,\n\t\tbefore = true,\n\t} = options;\n\n\tlet retryTimeout;\n\tlet abort = false;\n\n\tconst promise = new Promise((resolve, reject) => {\n\t\tconst check = async () => {\n\t\t\ttry {\n\t\t\t\tconst value = await condition();\n\n\t\t\t\tif (typeof value === 'object' && value[resolveValue]) {\n\t\t\t\t\tresolve(value[resolveValue]);\n\t\t\t\t} else if (typeof value !== 'boolean') {\n\t\t\t\t\tthrow new TypeError('Expected condition to return a boolean');\n\t\t\t\t} else if (value === true) {\n\t\t\t\t\tresolve();\n\t\t\t\t} else if (!abort) {\n\t\t\t\t\tretryTimeout = setTimeout(check, interval);\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\treject(error);\n\t\t\t}\n\t\t};\n\n\t\tif (before) {\n\t\t\tcheck();\n\t\t} else {\n\t\t\tretryTimeout = setTimeout(check, interval);\n\t\t}\n\t});\n\n\tif (timeout === Number.POSITIVE_INFINITY) {\n\t\treturn promise;\n\t}\n\n\ttry {\n\t\treturn await pTimeout(promise, typeof timeout === 'number' ? {milliseconds: timeout} : timeout);\n\t} finally {\n\t\tabort = true;\n\t\tclearTimeout(retryTimeout);\n\t}\n}\n\npWaitFor.resolveWith = value => ({[resolveValue]: value});\n\nexport {TimeoutError} from 'p-timeout';\n","export class TimeoutError extends Error {\n\tconstructor(message) {\n\t\tsuper(message);\n\t\tthis.name = 'TimeoutError';\n\t}\n}\n\n/**\nAn error to be thrown when the request is aborted by AbortController.\nDOMException is thrown instead of this Error when DOMException is available.\n*/\nexport class AbortError extends Error {\n\tconstructor(message) {\n\t\tsuper();\n\t\tthis.name = 'AbortError';\n\t\tthis.message = message;\n\t}\n}\n\n/**\nTODO: Remove AbortError and just throw DOMException when targeting Node 18.\n*/\nconst getDOMException = errorMessage => globalThis.DOMException === undefined\n\t? new AbortError(errorMessage)\n\t: new DOMException(errorMessage);\n\n/**\nTODO: Remove below function and just 'reject(signal.reason)' when targeting Node 18.\n*/\nconst getAbortedReason = signal => {\n\tconst reason = signal.reason === undefined\n\t\t? getDOMException('This operation was aborted.')\n\t\t: signal.reason;\n\n\treturn reason instanceof Error ? reason : getDOMException(reason);\n};\n\nexport default function pTimeout(promise, options) {\n\tconst {\n\t\tmilliseconds,\n\t\tfallback,\n\t\tmessage,\n\t\tcustomTimers = {setTimeout, clearTimeout},\n\t} = options;\n\n\tlet timer;\n\tlet abortHandler;\n\n\tconst wrappedPromise = new Promise((resolve, reject) => {\n\t\tif (typeof milliseconds !== 'number' || Math.sign(milliseconds) !== 1) {\n\t\t\tthrow new TypeError(`Expected \\`milliseconds\\` to be a positive number, got \\`${milliseconds}\\``);\n\t\t}\n\n\t\tif (options.signal) {\n\t\t\tconst {signal} = options;\n\t\t\tif (signal.aborted) {\n\t\t\t\treject(getAbortedReason(signal));\n\t\t\t}\n\n\t\t\tabortHandler = () => {\n\t\t\t\treject(getAbortedReason(signal));\n\t\t\t};\n\n\t\t\tsignal.addEventListener('abort', abortHandler, {once: true});\n\t\t}\n\n\t\tif (milliseconds === Number.POSITIVE_INFINITY) {\n\t\t\tpromise.then(resolve, reject);\n\t\t\treturn;\n\t\t}\n\n\t\t// We create the error outside of `setTimeout` to preserve the stack trace.\n\t\tconst timeoutError = new TimeoutError();\n\n\t\ttimer = customTimers.setTimeout.call(undefined, () => {\n\t\t\tif (fallback) {\n\t\t\t\ttry {\n\t\t\t\t\tresolve(fallback());\n\t\t\t\t} catch (error) {\n\t\t\t\t\treject(error);\n\t\t\t\t}\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (typeof promise.cancel === 'function') {\n\t\t\t\tpromise.cancel();\n\t\t\t}\n\n\t\t\tif (message === false) {\n\t\t\t\tresolve();\n\t\t\t} else if (message instanceof Error) {\n\t\t\t\treject(message);\n\t\t\t} else {\n\t\t\t\ttimeoutError.message = message ?? `Promise timed out after ${milliseconds} milliseconds`;\n\t\t\t\treject(timeoutError);\n\t\t\t}\n\t\t}, milliseconds);\n\n\t\t(async () => {\n\t\t\ttry {\n\t\t\t\tresolve(await promise);\n\t\t\t} catch (error) {\n\t\t\t\treject(error);\n\t\t\t}\n\t\t})();\n\t});\n\n\tconst cancelablePromise = wrappedPromise.finally(() => {\n\t\tcancelablePromise.clear();\n\t\tif (abortHandler && options.signal) {\n\t\t\toptions.signal.removeEventListener('abort', abortHandler);\n\t\t}\n\t});\n\n\tcancelablePromise.clear = () => {\n\t\tcustomTimers.clearTimeout.call(undefined, timer);\n\t\ttimer = undefined;\n\t};\n\n\treturn cancelablePromise;\n}\n","import pLimit from 'p-limit';\nimport { match, matcher, variant, payload, fields, isType } from 'variant';\nimport { CliError, CliErrorCode } from '@wix/cli-error';\nimport type { HttpError } from '@wix/cli-http-client';\nimport type { SiteAuth, UserInfo } from '../schemas.js';\nimport { client, RenewTokenData } from '../client.js';\nimport { isValidToken, readSiteAuthData, saveAuthData } from '../auth-data.js';\nimport type { AuthStrategyState, AuthStrategy } from './auth-strategy-types.js';\nimport { apiKeyAuthStrategy } from './api-key-auth-strategy.js';\nimport { accountAuthStrategy } from './account-auth-strategy.js';\n\nasync function renewSiteAuth({\n accountRefreshToken,\n siteId,\n}: {\n accountRefreshToken: string;\n siteId: string;\n}) {\n const renewTokenResult = await client.renewToken({\n refreshToken: accountRefreshToken,\n siteId,\n });\n\n if (isType(renewTokenResult, RenewTokenData.TokenRenewed)) {\n await saveAuthData(renewTokenResult.payload, siteId);\n }\n\n return renewTokenResult;\n}\n\nconst AuthenticationResult = variant({\n Ok: payload<SiteAuth>(),\n RefreshTokenRevoked: fields<{ cause: HttpError }>(),\n});\nasync function ensureAuthenticatedToSite({\n siteId,\n accountRefreshToken,\n}: {\n siteId: string;\n accountRefreshToken: string;\n}) {\n const siteAuthStatus = await readSiteAuthData(siteId);\n\n return matcher(siteAuthStatus)\n .with({ Authenticated: (data) => AuthenticationResult.Ok(data) })\n .when(['Unauthenticated', 'Expired'], async () => {\n const renewTokenResult = await renewSiteAuth({\n accountRefreshToken,\n siteId,\n });\n\n return match(renewTokenResult, {\n TokenRenewed: ({ payload }) => AuthenticationResult.Ok(payload),\n RefreshTokenRevoked: ({ cause }) => {\n return AuthenticationResult.RefreshTokenRevoked({ cause });\n },\n });\n })\n .complete();\n}\n\nfunction createSiteAuthState({\n siteAuth: initialTokenData,\n accountRefreshToken,\n siteId,\n userInfo,\n}: {\n siteId: string;\n accountRefreshToken: string;\n userInfo: UserInfo;\n siteAuth: SiteAuth;\n}): AuthStrategyState {\n const limiter = pLimit(1);\n let tokenData = { ...initialTokenData };\n\n return {\n getAccessToken: () => {\n return limiter(async () => {\n if (isValidToken(tokenData)) {\n return tokenData.accessToken;\n }\n\n const renewTokenResult = await renewSiteAuth({\n accountRefreshToken,\n siteId,\n });\n\n return match(renewTokenResult, {\n TokenRenewed: ({ payload: newTokenData }) => {\n tokenData = newTokenData;\n return tokenData.accessToken;\n },\n RefreshTokenRevoked: ({ cause }) => {\n throw new CliError({\n code: CliErrorCode.FailedToRenewAuthTokenRefreshTokenRevoked(),\n cause,\n });\n },\n });\n });\n },\n getRefreshToken: () => tokenData.refreshToken,\n userInfo,\n };\n}\n\nexport const createSiteAuthStrategy = (siteId: string): AuthStrategy => ({\n async isLoggedIn() {\n const apiKeyAuth = await apiKeyAuthStrategy.isLoggedIn({ siteId });\n\n if (apiKeyAuth) {\n return apiKeyAuth;\n }\n\n const accountAuth = await accountAuthStrategy.isLoggedIn();\n\n if (accountAuth) {\n const accountRefreshToken = accountAuth.getRefreshToken();\n const siteAuthResult = await ensureAuthenticatedToSite({\n siteId,\n accountRefreshToken,\n });\n\n if (isType(siteAuthResult, AuthenticationResult.Ok)) {\n return createSiteAuthState({\n siteId,\n siteAuth: siteAuthResult.payload,\n accountRefreshToken,\n userInfo: accountAuth.userInfo,\n });\n }\n }\n\n return null;\n },\n async login({ deviceCode, signal }) {\n const accountAuth = await accountAuthStrategy.login({ deviceCode, signal });\n const accountRefreshToken = accountAuth.getRefreshToken();\n const siteAuthResult = await ensureAuthenticatedToSite({\n siteId,\n accountRefreshToken,\n });\n\n return match(siteAuthResult, {\n Ok: ({ payload: siteAuth }) => {\n return createSiteAuthState({\n siteId,\n siteAuth,\n accountRefreshToken,\n userInfo: accountAuth.userInfo,\n });\n },\n RefreshTokenRevoked: ({ cause }) => {\n throw new CliError({\n code: CliErrorCode.FailedToRenewAuthTokenRefreshTokenRevoked(),\n cause,\n });\n },\n });\n },\n});\n","import { isType } from 'variant';\nimport {\n deleteAuthData,\n readAccountAuthData,\n AccountAuthData,\n} from './auth-data.js';\nimport { client } from './client.js';\n\nexport async function logout() {\n const authData = await readAccountAuthData();\n if (!isType(authData, AccountAuthData.Unauthenticated)) {\n await client.revokeRefreshToken(\n { token: authData.refreshToken },\n authData.userInfo\n );\n }\n\n await deleteAuthData();\n\n return null;\n}\n","import { useContext } from 'react';\nimport { AuthContext } from './context.js';\nimport type { AuthState } from './context.js';\n\nexport function useAuth(): AuthState {\n const context = useContext(AuthContext);\n\n if (!context) {\n throw new Error('useAuth() cannot be used without an <AuthProvider>');\n }\n\n return context;\n}\n","import { createContext } from 'react';\nimport type { AuthStrategyState } from './auth-strategies/index.js';\n\nexport type AuthState = Pick<\n AuthStrategyState,\n 'getAccessToken' | 'getRequestHeaders' | 'userInfo'\n>;\n\nexport const AuthContext = createContext<AuthState | null>(null);\n","import React from 'react';\nimport type { FC } from 'react';\nimport { Spinner, useAsync } from '@wix/cli-ui-kit';\nimport { useBiLogger } from '@wix/cli-telemetry-react';\nimport { wixCliLoginStart, wixCliLoginEnd } from '@wix/bi-logger-wix-cli/v2';\nimport { match } from 'variant';\nimport { apiKeyAuthStrategy } from '../auth-strategies/index.js';\nimport type { AuthStrategyState } from '../auth-strategies/index.js';\n\ninterface Props {\n token: string;\n onLogin: (data: AuthStrategyState) => void;\n onError: (error: unknown) => void;\n}\n\nexport const ApiKeyLogin: FC<Props> = ({ token, onLogin, onError }) => {\n const biLogger = useBiLogger();\n\n const { status } = useAsync(\n async () => {\n void biLogger.report(wixCliLoginStart({}));\n\n return apiKeyAuthStrategy.login({ token });\n },\n [],\n {\n onSuccess: (authData) => {\n void biLogger.report(\n wixCliLoginEnd({\n isSuccess: true,\n })\n );\n onLogin(authData);\n },\n onError: (error) => {\n void biLogger.report(\n wixCliLoginEnd({\n isSuccess: false,\n ...(error instanceof Error\n ? {\n errorType: error.name,\n }\n : {\n errorType: 'unknown',\n errorMessage: JSON.stringify(error),\n }),\n })\n );\n\n onError(error);\n },\n }\n );\n\n return match(status, {\n Error: () => null,\n Loading: () => <Spinner />,\n Success: () => null,\n });\n};\n","import React from 'react';\nimport type { FC } from 'react';\nimport { Spinner, useAsync, useAsyncCallback } from '@wix/cli-ui-kit';\nimport { I18nProvider } from '@wix/cli-i18n';\nimport { useBiLogger } from '@wix/cli-telemetry-react';\nimport { wixCliLoginStart, wixCliLoginEnd } from '@wix/bi-logger-wix-cli/v2';\nimport { match } from 'variant';\nimport type { DeviceCodeResponse } from '../schemas.js';\nimport messages from '../messages.json' with { type: 'json' };\nimport { accountAuthStrategy } from '../auth-strategies/index.js';\nimport type {\n AuthStrategy,\n AuthStrategyState,\n} from '../auth-strategies/index.js';\nimport { LoginInstructions } from './LoginInstructions.js';\nimport { client } from '../client.js';\n\ninterface Props {\n loginFn: AuthStrategy['login'];\n onLogin: (data: AuthStrategyState) => void;\n onError: (error: unknown) => void;\n}\n\nexport const Login: FC<Props> = ({ loginFn, onLogin, onError }) => {\n const biLogger = useBiLogger();\n\n function handleError(error: unknown) {\n void biLogger.report(\n wixCliLoginEnd({\n isSuccess: false,\n ...(error instanceof Error\n ? {\n errorType: error.name,\n }\n : {\n errorType: 'unknown',\n errorMessage: JSON.stringify(error),\n }),\n })\n );\n\n onError(error);\n }\n\n const loginAction = useAsyncCallback(\n async ({ signal }, deviceCodeResponse: DeviceCodeResponse) => {\n try {\n const authData = await loginFn({\n deviceCode: deviceCodeResponse,\n signal,\n });\n void biLogger.report(\n wixCliLoginEnd({\n isSuccess: true,\n })\n );\n onLogin(authData);\n } catch (error) {\n handleError(error);\n }\n }\n );\n\n const { status } = useAsync(\n async () => {\n void biLogger.report(wixCliLoginStart({}));\n\n return client.requestDeviceCode();\n },\n [],\n {\n onSuccess: (deviceCodeResponse) => {\n void loginAction.execute(deviceCodeResponse);\n },\n onError: handleError,\n }\n );\n\n return match(status, {\n Error: () => null,\n Loading: () => <Spinner />,\n Success: ({ result: { userCode, verificationUri } }) => (\n <LoginInstructions\n userCode={userCode}\n verificationUri={verificationUri}\n />\n ),\n });\n};\n\nexport function LoginWithI18n(props: Omit<Props, 'loginFn'>) {\n return (\n <I18nProvider messages={messages}>\n <Login loginFn={accountAuthStrategy.login} {...props} />\n </I18nProvider>\n );\n}\n","{\n \"login.instructions_title\": \"Authorize the CLI to access your Wix account:\",\n \"login.instructions_details\": \"1. Copy this code to the clipboard: <0>{code}</0>\\n2. Choose an option:\",\n \"login.have_wix_account\": \"Already have an account? Press <0/> to <1>log in</1> and then paste the code\",\n \"login.new_to_wix\": \"New to Wix? Press <0/> to <1>sign up</1> and then paste the code\",\n \"login.legacy_auth_notice\": \"We implemented a new and more secure login method. You'll need to re-login to continue using the CLI.\",\n \"login.error_opening_browser\": \"Failed to open browser, please try opening <0/> manually.\"\n}\n","import React, { useState } from 'react';\nimport type { FC } from 'react';\nimport { Box, Text, Link, useInput, Key } from '@wix/cli-ui-kit';\nimport { Trans } from '@wix/cli-i18n';\nimport { openBrowser } from '@wix/user-browser';\nimport { ErrorViewer, useErrorReporter } from '@wix/cli-error-reporting';\nimport { useColoredVerificationUri } from '../useColoredVerificationUri.js';\n\ninterface Props {\n userCode: string;\n verificationUri: string;\n}\n\nexport const LoginInstructions: FC<Props> = ({ userCode, verificationUri }) => {\n const { coloredVerificationUri, signupUri } =\n useColoredVerificationUri(verificationUri);\n const { reportError } = useErrorReporter();\n const [openBrowserError, setOpenBrowserError] = useState<unknown>(null);\n\n useInput((input, key) => {\n if (key.return) {\n openBrowser(coloredVerificationUri).catch((error: unknown) => {\n reportError(error);\n setOpenBrowserError(error);\n });\n }\n if (input === ' ') {\n openBrowser(signupUri).catch((error: unknown) => {\n reportError(error);\n setOpenBrowserError(error);\n });\n }\n });\n\n return (\n <>\n <Trans i18nKey=\"login.instructions_title\" />\n <Box flexDirection=\"column\" marginTop={1} marginBottom={1} marginLeft={2}>\n <Box marginBottom={1}>\n <Trans\n i18nKey=\"login.instructions_details\"\n components={[<Text skin=\"info\" />]}\n values={{ code: userCode }}\n />\n </Box>\n <Box marginBottom={1}>\n <Trans\n i18nKey=\"login.have_wix_account\"\n components={[\n <Key value=\"enter\" />,\n <Link url={coloredVerificationUri} />,\n ]}\n />\n </Box>\n <Trans\n i18nKey=\"login.new_to_wix\"\n components={[<Key value=\"space\" />, <Link url={signupUri} />]}\n />\n </Box>\n\n {openBrowserError != null && (\n <>\n <Box flexDirection=\"column\" marginBottom={1}>\n <ErrorViewer error={openBrowserError} />\n </Box>\n\n <Trans\n i18nKey=\"login.error_opening_browser\"\n components={[<Link url={coloredVerificationUri} />]}\n />\n </>\n )}\n </>\n );\n};\n","import open from 'open';\nimport { CliError, CliErrorCode } from '@wix/cli-error';\nimport { getTestOverrides } from '@wix/cli-test-overrides';\nimport { open as openTestkit } from './open-testkit.js';\n\nexport async function openBrowser(url: string) {\n const { userBrowserTestEndpoint: testEndpoint } = getTestOverrides();\n\n try {\n if (testEndpoint) {\n await openTestkit(testEndpoint, url);\n } else {\n await open(url, {\n background: true,\n });\n }\n } catch (error) {\n throw new CliError({\n code: CliErrorCode.FailedToOpenBrowser(),\n info: { url },\n cause: error,\n });\n }\n}\n","import process from 'node:process';\nimport {Buffer} from 'node:buffer';\nimport path from 'node:path';\nimport {fileURLToPath} from 'node:url';\nimport childProcess from 'node:child_process';\nimport fs, {constants as fsConstants} from 'node:fs/promises';\nimport isWsl from 'is-wsl';\nimport defineLazyProperty from 'define-lazy-prop';\nimport defaultBrowser from 'default-browser';\nimport isInsideContainer from 'is-inside-container';\n\n// Path to included `xdg-open`.\nconst __dirname = path.dirname(fileURLToPath(import.meta.url));\nconst localXdgOpenPath = path.join(__dirname, 'xdg-open');\n\nconst {platform, arch} = process;\n\n/**\nGet the mount point for fixed drives in WSL.\n\n@inner\n@returns {string} The mount point.\n*/\nconst getWslDrivesMountPoint = (() => {\n\t// Default value for \"root\" param\n\t// according to https://docs.microsoft.com/en-us/windows/wsl/wsl-config\n\tconst defaultMountPoint = '/mnt/';\n\n\tlet mountPoint;\n\n\treturn async function () {\n\t\tif (mountPoint) {\n\t\t\t// Return memoized mount point value\n\t\t\treturn mountPoint;\n\t\t}\n\n\t\tconst configFilePath = '/etc/wsl.conf';\n\n\t\tlet isConfigFileExists = false;\n\t\ttry {\n\t\t\tawait fs.access(configFilePath, fsConstants.F_OK);\n\t\t\tisConfigFileExists = true;\n\t\t} catch {}\n\n\t\tif (!isConfigFileExists) {\n\t\t\treturn defaultMountPoint;\n\t\t}\n\n\t\tconst configContent = await fs.readFile(configFilePath, {encoding: 'utf8'});\n\t\tconst configMountPoint = /(?<!#.*)root\\s*=\\s*(?<mountPoint>.*)/g.exec(configContent);\n\n\t\tif (!configMountPoint) {\n\t\t\treturn defaultMountPoint;\n\t\t}\n\n\t\tmountPoint = configMountPoint.groups.mountPoint.trim();\n\t\tmountPoint = mountPoint.endsWith('/') ? mountPoint : `${mountPoint}/`;\n\n\t\treturn mountPoint;\n\t};\n})();\n\nconst pTryEach = async (array, mapper) => {\n\tlet latestError;\n\n\tfor (const item of array) {\n\t\ttry {\n\t\t\treturn await mapper(item); // eslint-disable-line no-await-in-loop\n\t\t} catch (error) {\n\t\t\tlatestError = error;\n\t\t}\n\t}\n\n\tthrow latestError;\n};\n\nconst baseOpen = async options => {\n\toptions = {\n\t\twait: false,\n\t\tbackground: false,\n\t\tnewInstance: false,\n\t\tallowNonzeroExitCode: false,\n\t\t...options,\n\t};\n\n\tif (Array.isArray(options.app)) {\n\t\treturn pTryEach(options.app, singleApp => baseOpen({\n\t\t\t...options,\n\t\t\tapp: singleApp,\n\t\t}));\n\t}\n\n\tlet {name: app, arguments: appArguments = []} = options.app ?? {};\n\tappArguments = [...appArguments];\n\n\tif (Array.isArray(app)) {\n\t\treturn pTryEach(app, appName => baseOpen({\n\t\t\t...options,\n\t\t\tapp: {\n\t\t\t\tname: appName,\n\t\t\t\targuments: appArguments,\n\t\t\t},\n\t\t}));\n\t}\n\n\tif (app === 'browser' || app === 'browserPrivate') {\n\t\t// IDs from default-browser for macOS and windows are the same\n\t\tconst ids = {\n\t\t\t'com.google.chrome': 'chrome',\n\t\t\t'google-chrome.desktop': 'chrome',\n\t\t\t'org.mozilla.firefox': 'firefox',\n\t\t\t'firefox.desktop': 'firefox',\n\t\t\t'com.microsoft.msedge': 'edge',\n\t\t\t'com.microsoft.edge': 'edge',\n\t\t\t'microsoft-edge.desktop': 'edge',\n\t\t};\n\n\t\t// Incognito flags for each browser in `apps`.\n\t\tconst flags = {\n\t\t\tchrome: '--incognito',\n\t\t\tfirefox: '--private-window',\n\t\t\tedge: '--inPrivate',\n\t\t};\n\n\t\tconst browser = await defaultBrowser();\n\t\tif (browser.id in ids) {\n\t\t\tconst browserName = ids[browser.id];\n\n\t\t\tif (app === 'browserPrivate') {\n\t\t\t\tappArguments.push(flags[browserName]);\n\t\t\t}\n\n\t\t\treturn baseOpen({\n\t\t\t\t...options,\n\t\t\t\tapp: {\n\t\t\t\t\tname: apps[browserName],\n\t\t\t\t\targuments: appArguments,\n\t\t\t\t},\n\t\t\t});\n\t\t}\n\n\t\tthrow new Error(`${browser.name} is not supported as a default browser`);\n\t}\n\n\tlet command;\n\tconst cliArguments = [];\n\tconst childProcessOptions = {};\n\n\tif (platform === 'darwin') {\n\t\tcommand = 'open';\n\n\t\tif (options.wait) {\n\t\t\tcliArguments.push('--wait-apps');\n\t\t}\n\n\t\tif (options.background) {\n\t\t\tcliArguments.push('--background');\n\t\t}\n\n\t\tif (options.newInstance) {\n\t\t\tcliArguments.push('--new');\n\t\t}\n\n\t\tif (app) {\n\t\t\tcliArguments.push('-a', app);\n\t\t}\n\t} else if (platform === 'win32' || (isWsl && !isInsideContainer() && !app)) {\n\t\tconst mountPoint = await getWslDrivesMountPoint();\n\n\t\tcommand = isWsl\n\t\t\t? `${mountPoint}c/Windows/System32/WindowsPowerShell/v1.0/powershell.exe`\n\t\t\t: `${process.env.SYSTEMROOT || process.env.windir || 'C:\\\\Windows'}\\\\System32\\\\WindowsPowerShell\\\\v1.0\\\\powershell`;\n\n\t\tcliArguments.push(\n\t\t\t'-NoProfile',\n\t\t\t'-NonInteractive',\n\t\t\t'-ExecutionPolicy',\n\t\t\t'Bypass',\n\t\t\t'-EncodedCommand',\n\t\t);\n\n\t\tif (!isWsl) {\n\t\t\tchildProcessOptions.windowsVerbatimArguments = true;\n\t\t}\n\n\t\tconst encodedArguments = ['Start'];\n\n\t\tif (options.wait) {\n\t\t\tencodedArguments.push('-Wait');\n\t\t}\n\n\t\tif (app) {\n\t\t\t// Double quote with double quotes to ensure the inner quotes are passed through.\n\t\t\t// Inner quotes are delimited for PowerShell interpretation with backticks.\n\t\t\tencodedArguments.push(`\"\\`\"${app}\\`\"\"`);\n\t\t\tif (options.target) {\n\t\t\t\tappArguments.push(options.target);\n\t\t\t}\n\t\t} else if (options.target) {\n\t\t\tencodedArguments.push(`\"${options.target}\"`);\n\t\t}\n\n\t\tif (appArguments.length > 0) {\n\t\t\tappArguments = appArguments.map(argument => `\"\\`\"${argument}\\`\"\"`);\n\t\t\tencodedArguments.push('-ArgumentList', appArguments.join(','));\n\t\t}\n\n\t\t// Using Base64-encoded command, accepted by PowerShell, to allow special characters.\n\t\toptions.target = Buffer.from(encodedArguments.join(' '), 'utf16le').toString('base64');\n\t} else {\n\t\tif (app) {\n\t\t\tcommand = app;\n\t\t} else {\n\t\t\t// When bundled by Webpack, there's no actual package file path and no local `xdg-open`.\n\t\t\tconst isBundled = !__dirname || __dirname === '/';\n\n\t\t\t// Check if local `xdg-open` exists and is executable.\n\t\t\tlet exeLocalXdgOpen = false;\n\t\t\ttry {\n\t\t\t\tawait fs.access(localXdgOpenPath, fsConstants.X_OK);\n\t\t\t\texeLocalXdgOpen = true;\n\t\t\t} catch {}\n\n\t\t\tconst useSystemXdgOpen = process.versions.electron\n\t\t\t\t?? (platform === 'android' || isBundled || !exeLocalXdgOpen);\n\t\t\tcommand = useSystemXdgOpen ? 'xdg-open' : localXdgOpenPath;\n\t\t}\n\n\t\tif (appArguments.length > 0) {\n\t\t\tcliArguments.push(...appArguments);\n\t\t}\n\n\t\tif (!options.wait) {\n\t\t\t// `xdg-open` will block the process unless stdio is ignored\n\t\t\t// and it's detached from the parent even if it's unref'd.\n\t\t\tchildProcessOptions.stdio = 'ignore';\n\t\t\tchildProcessOptions.detached = true;\n\t\t}\n\t}\n\n\tif (platform === 'darwin' && appArguments.length > 0) {\n\t\tcliArguments.push('--args', ...appArguments);\n\t}\n\n\t// This has to come after `--args`.\n\tif (options.target) {\n\t\tcliArguments.push(options.target);\n\t}\n\n\tconst subprocess = childProcess.spawn(command, cliArguments, childProcessOptions);\n\n\tif (options.wait) {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tsubprocess.once('error', reject);\n\n\t\t\tsubprocess.once('close', exitCode => {\n\t\t\t\tif (!options.allowNonzeroExitCode && exitCode > 0) {\n\t\t\t\t\treject(new Error(`Exited with code ${exitCode}`));\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolve(subprocess);\n\t\t\t});\n\t\t});\n\t}\n\n\tsubprocess.unref();\n\n\treturn subprocess;\n};\n\nconst open = (target, options) => {\n\tif (typeof target !== 'string') {\n\t\tthrow new TypeError('Expected a `target`');\n\t}\n\n\treturn baseOpen({\n\t\t...options,\n\t\ttarget,\n\t});\n};\n\nexport const openApp = (name, options) => {\n\tif (typeof name !== 'string' && !Array.isArray(name)) {\n\t\tthrow new TypeError('Expected a valid `name`');\n\t}\n\n\tconst {arguments: appArguments = []} = options ?? {};\n\tif (appArguments !== undefined && appArguments !== null && !Array.isArray(appArguments)) {\n\t\tthrow new TypeError('Expected `appArguments` as Array type');\n\t}\n\n\treturn baseOpen({\n\t\t...options,\n\t\tapp: {\n\t\t\tname,\n\t\t\targuments: appArguments,\n\t\t},\n\t});\n};\n\nfunction detectArchBinary(binary) {\n\tif (typeof binary === 'string' || Array.isArray(binary)) {\n\t\treturn binary;\n\t}\n\n\tconst {[arch]: archBinary} = binary;\n\n\tif (!archBinary) {\n\t\tthrow new Error(`${arch} is not supported`);\n\t}\n\n\treturn archBinary;\n}\n\nfunction detectPlatformBinary({[platform]: platformBinary}, {wsl}) {\n\tif (wsl && isWsl) {\n\t\treturn detectArchBinary(wsl);\n\t}\n\n\tif (!platformBinary) {\n\t\tthrow new Error(`${platform} is not supported`);\n\t}\n\n\treturn detectArchBinary(platformBinary);\n}\n\nexport const apps = {};\n\ndefineLazyProperty(apps, 'chrome', () => detectPlatformBinary({\n\tdarwin: 'google chrome',\n\twin32: 'chrome',\n\tlinux: ['google-chrome', 'google-chrome-stable', 'chromium'],\n}, {\n\twsl: {\n\t\tia32: '/mnt/c/Program Files (x86)/Google/Chrome/Application/chrome.exe',\n\t\tx64: ['/mnt/c/Program Files/Google/Chrome/Application/chrome.exe', '/mnt/c/Program Files (x86)/Google/Chrome/Application/chrome.exe'],\n\t},\n}));\n\ndefineLazyProperty(apps, 'firefox', () => detectPlatformBinary({\n\tdarwin: 'firefox',\n\twin32: 'C:\\\\Program Files\\\\Mozilla Firefox\\\\firefox.exe',\n\tlinux: 'firefox',\n}, {\n\twsl: '/mnt/c/Program Files/Mozilla Firefox/firefox.exe',\n}));\n\ndefineLazyProperty(apps, 'edge', () => detectPlatformBinary({\n\tdarwin: 'microsoft edge',\n\twin32: 'msedge',\n\tlinux: ['microsoft-edge', 'microsoft-edge-dev'],\n}, {\n\twsl: '/mnt/c/Program Files (x86)/Microsoft/Edge/Application/msedge.exe',\n}));\n\ndefineLazyProperty(apps, 'browser', () => 'browser');\n\ndefineLazyProperty(apps, 'browserPrivate', () => 'browserPrivate');\n\nexport default open;\n","import process from 'node:process';\nimport os from 'node:os';\nimport fs from 'node:fs';\nimport isInsideContainer from 'is-inside-container';\n\nconst isWsl = () => {\n\tif (process.platform !== 'linux') {\n\t\treturn false;\n\t}\n\n\tif (os.release().toLowerCase().includes('microsoft')) {\n\t\tif (isInsideContainer()) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t}\n\n\ttry {\n\t\treturn fs.readFileSync('/proc/version', 'utf8').toLowerCase().includes('microsoft')\n\t\t\t? !isInsideContainer() : false;\n\t} catch {\n\t\treturn false;\n\t}\n};\n\nexport default process.env.__IS_WSL_TEST__ ? isWsl : isWsl();\n","import fs from 'node:fs';\nimport isDocker from 'is-docker';\n\nlet cachedResult;\n\n// Podman detection\nconst hasContainerEnv = () => {\n\ttry {\n\t\tfs.statSync('/run/.containerenv');\n\t\treturn true;\n\t} catch {\n\t\treturn false;\n\t}\n};\n\nexport default function isInsideContainer() {\n\t// TODO: Use `??=` when targeting Node.js 16.\n\tif (cachedResult === undefined) {\n\t\tcachedResult = hasContainerEnv() || isDocker();\n\t}\n\n\treturn cachedResult;\n}\n","import fs from 'node:fs';\n\nlet isDockerCached;\n\nfunction hasDockerEnv() {\n\ttry {\n\t\tfs.statSync('/.dockerenv');\n\t\treturn true;\n\t} catch {\n\t\treturn false;\n\t}\n}\n\nfunction hasDockerCGroup() {\n\ttry {\n\t\treturn fs.readFileSync('/proc/self/cgroup', 'utf8').includes('docker');\n\t} catch {\n\t\treturn false;\n\t}\n}\n\nexport default function isDocker() {\n\t// TODO: Use `??=` when targeting Node.js 16.\n\tif (isDockerCached === undefined) {\n\t\tisDockerCached = hasDockerEnv() || hasDockerCGroup();\n\t}\n\n\treturn isDockerCached;\n}\n","export default function defineLazyProperty(object, propertyName, valueGetter) {\n\tconst define = value => Object.defineProperty(object, propertyName, {value, enumerable: true, writable: true});\n\n\tObject.defineProperty(object, propertyName, {\n\t\tconfigurable: true,\n\t\tenumerable: true,\n\t\tget() {\n\t\t\tconst result = valueGetter();\n\t\t\tdefine(result);\n\t\t\treturn result;\n\t\t},\n\t\tset(value) {\n\t\t\tdefine(value);\n\t\t}\n\t});\n\n\treturn object;\n}\n","import {promisify} from 'node:util';\nimport process from 'node:process';\nimport {execFile} from 'node:child_process';\nimport defaultBrowserId from 'default-browser-id';\nimport bundleName from 'bundle-name';\nimport windows from './windows.js';\n\nconst execFileAsync = promisify(execFile);\n\n// Inlined: https://github.com/sindresorhus/titleize/blob/main/index.js\nconst titleize = string => string.toLowerCase().replaceAll(/(?:^|\\s|-)\\S/g, x => x.toUpperCase());\n\nexport default async function defaultBrowser() {\n\tif (process.platform === 'darwin') {\n\t\tconst id = await defaultBrowserId();\n\t\tconst name = await bundleName(id);\n\t\treturn {name, id};\n\t}\n\n\tif (process.platform === 'linux') {\n\t\tconst {stdout} = await execFileAsync('xdg-mime', ['query', 'default', 'x-scheme-handler/http']);\n\t\tconst id = stdout.trim();\n\t\tconst name = titleize(id.replace(/.desktop$/, '').replace('-', ' '));\n\t\treturn {name, id};\n\t}\n\n\tif (process.platform === 'win32') {\n\t\treturn windows();\n\t}\n\n\tthrow new Error('Only macOS, Linux, and Windows are supported');\n}\n","import {promisify} from 'node:util';\nimport process from 'node:process';\nimport {execFile} from 'node:child_process';\n\nconst execFileAsync = promisify(execFile);\n\nexport default async function defaultBrowserId() {\n\tif (process.platform !== 'darwin') {\n\t\tthrow new Error('macOS only');\n\t}\n\n\tconst {stdout} = await execFileAsync('defaults', ['read', 'com.apple.LaunchServices/com.apple.launchservices.secure', 'LSHandlers']);\n\n\t// `(?!-)` is to prevent matching `LSHandlerRoleAll = \"-\";`.\n\tconst match = /LSHandlerRoleAll = \"(?!-)(?<id>[^\"]+?)\";\\s+?LSHandlerURLScheme = (?:http|https);/.exec(stdout);\n\n\treturn match?.groups.id ?? 'com.apple.Safari';\n}\n","import {runAppleScript} from 'run-applescript';\n\nexport default async function bundleName(bundleId) {\n\treturn runAppleScript(`tell application \"Finder\" to set app_path to application file id \"${bundleId}\" as string\\ntell application \"System Events\" to get value of property list item \"CFBundleName\" of property list file (app_path & \":Contents:Info.plist\")`);\n}\n","import process from 'node:process';\nimport {promisify} from 'node:util';\nimport {execFile, execFileSync} from 'node:child_process';\n\nconst execFileAsync = promisify(execFile);\n\nexport async function runAppleScript(script, {humanReadableOutput = true} = {}) {\n\tif (process.platform !== 'darwin') {\n\t\tthrow new Error('macOS only');\n\t}\n\n\tconst outputArguments = humanReadableOutput ? [] : ['-ss'];\n\n\tconst {stdout} = await execFileAsync('osascript', ['-e', script, outputArguments]);\n\treturn stdout.trim();\n}\n\nexport function runAppleScriptSync(script, {humanReadableOutput = true} = {}) {\n\tif (process.platform !== 'darwin') {\n\t\tthrow new Error('macOS only');\n\t}\n\n\tconst outputArguments = humanReadableOutput ? [] : ['-ss'];\n\n\tconst stdout = execFileSync('osascript', ['-e', script, ...outputArguments], {\n\t\tencoding: 'utf8',\n\t\tstdio: ['ignore', 'pipe', 'ignore'],\n\t\ttimeout: 500,\n\t});\n\n\treturn stdout.trim();\n}\n","import {promisify} from 'node:util';\nimport {execFile} from 'node:child_process';\n\nconst execFileAsync = promisify(execFile);\n\n// Windows doesn't have browser IDs in the same way macOS/Linux does so we give fake\n// ones that look real and match the macOS/Linux versions for cross-platform apps.\nconst windowsBrowserProgIds = {\n\tAppXq0fevzme2pys62n3e0fbqa7peapykr8v: {name: 'Edge', id: 'com.microsoft.edge.old'},\n\tMSEdgeDHTML: {name: 'Edge', id: 'com.microsoft.edge'}, // On macOS, it's \"com.microsoft.edgemac\"\n\tMSEdgeHTM: {name: 'Edge', id: 'com.microsoft.edge'}, // Newer Edge/Win10 releases\n\t'IE.HTTP': {name: 'Internet Explorer', id: 'com.microsoft.ie'},\n\tFirefoxURL: {name: 'Firefox', id: 'org.mozilla.firefox'},\n\tChromeHTML: {name: 'Chrome', id: 'com.google.chrome'},\n\tBraveHTML: {name: 'Brave', id: 'com.brave.Browser'},\n\tBraveBHTML: {name: 'Brave Beta', id: 'com.brave.Browser.beta'},\n\tBraveSSHTM: {name: 'Brave Nightly', id: 'com.brave.Browser.nightly'},\n};\n\nexport class UnknownBrowserError extends Error {}\n\nexport default async function defaultBrowser(_execFileAsync = execFileAsync) {\n\tconst {stdout} = await _execFileAsync('reg', [\n\t\t'QUERY',\n\t\t' HKEY_CURRENT_USER\\\\Software\\\\Microsoft\\\\Windows\\\\Shell\\\\Associations\\\\UrlAssociations\\\\http\\\\UserChoice',\n\t\t'/v',\n\t\t'ProgId',\n\t]);\n\n\tconst match = /ProgId\\s*REG_SZ\\s*(?<id>\\S+)/.exec(stdout);\n\tif (!match) {\n\t\tthrow new UnknownBrowserError(`Cannot find Windows browser in stdout: ${JSON.stringify(stdout)}`);\n\t}\n\n\tconst {id} = match.groups;\n\n\tconst browser = windowsBrowserProgIds[id];\n\tif (!browser) {\n\t\tthrow new UnknownBrowserError(`Unknown browser ID: ${id}`);\n\t}\n\n\treturn browser;\n}\n","import { createHttpClient, HttpClient } from '@wix/http-client';\n\nexport async function open(testEndpoint: string, url: string) {\n await createHttpClient()\n .post(testEndpoint, undefined, {\n params: {\n url,\n },\n })\n .catch((error: unknown) => {\n if (HttpClient.isHttpError(error) && error.response?.data?.message) {\n throw new Error(error.response.data.message);\n }\n\n throw error;\n });\n}\n","import { useMemo } from 'react';\n\nexport function useColoredVerificationUri(verificationUri: string) {\n return useMemo(() => {\n const coloredUri = new URL(verificationUri);\n coloredUri.searchParams.set('color', 'developer');\n coloredUri.searchParams.set('studio', 'true');\n const signupUri = new URL('https://users.wix.com/login/signup/password');\n signupUri.searchParams.set('redirectTo', coloredUri.href);\n return {\n coloredVerificationUri: coloredUri.toString(),\n signupUri: signupUri.toString(),\n };\n }, [verificationUri]);\n}\n","import React from 'react';\nimport type { FC, ReactNode } from 'react';\nimport { useExit } from '@wix/cli-ui-kit';\nimport { AuthContext } from '../context.js';\nimport type { UserInfo } from '../schemas.js';\nimport { accountAuthStrategy } from '../auth-strategies/index.js';\nimport { EnsureLoggedIn } from '../components/EnsureLoggedIn.js';\n\ninterface Props {\n children: ReactNode;\n onError?: (error: unknown) => void;\n onLogin?: (userInfo: UserInfo) => void;\n}\n\nexport const AccountAuthProvider: FC<Props> = ({\n children,\n onError,\n onLogin,\n}) => {\n const exit = useExit();\n\n return (\n <EnsureLoggedIn\n authStrategy={accountAuthStrategy}\n onLogin={({ userInfo }) => onLogin?.(userInfo)}\n onError={onError ?? exit}\n >\n {({ getAccessToken, getRequestHeaders, userInfo }) => (\n <AuthContext.Provider\n value={{ getAccessToken, getRequestHeaders, userInfo }}\n >\n {children}\n </AuthContext.Provider>\n )}\n </EnsureLoggedIn>\n );\n};\n","import React from 'react';\nimport type { ReactNode, FC } from 'react';\nimport { match } from 'variant';\nimport { useAsync, Spinner } from '@wix/cli-ui-kit';\nimport { I18nProvider } from '@wix/cli-i18n';\nimport type {\n AuthStrategy,\n AuthStrategyState,\n} from '../auth-strategies/index.js';\nimport { Login } from './Login.js';\nimport { WarnLegacyAuthData } from './WarnLegacyAuthData.js';\nimport messages from '../messages.json' with { type: 'json' };\n\ninterface Props {\n authStrategy: AuthStrategy;\n onLogin: (data: AuthStrategyState) => void;\n onError: (error: unknown) => void;\n children: (data: AuthStrategyState) => ReactNode;\n}\n\nexport const EnsureLoggedIn: FC<Props> = ({\n authStrategy: { login, isLoggedIn },\n onLogin,\n onError,\n children,\n}) => {\n const { status, merge: updateAccountAuth } = useAsync(isLoggedIn, [], {\n onSuccess: (result) => {\n if (result) {\n onLogin(result);\n }\n },\n onError,\n });\n\n return match(status, {\n Loading: () => <Spinner />,\n Error: () => null,\n Success: ({ result: accountAuth }) => {\n if (accountAuth == null) {\n return (\n <I18nProvider messages={messages}>\n <WarnLegacyAuthData>\n <Login\n loginFn={login}\n onLogin={(data) => {\n updateAccountAuth({ result: data });\n onLogin(data);\n }}\n onError={onError}\n />\n </WarnLegacyAuthData>\n </I18nProvider>\n );\n }\n\n return children(accountAuth);\n },\n });\n};\n","import React from 'react';\nimport type { FC, ReactNode } from 'react';\nimport { match } from 'variant';\nimport { Box, useAsync } from '@wix/cli-ui-kit';\nimport { Trans } from '@wix/cli-i18n';\nimport { hasLegacyAuthData } from '../auth-data.js';\n\ninterface Props {\n children: ReactNode;\n}\n\nexport const WarnLegacyAuthData: FC<Props> = ({ children }) => {\n const { status } = useAsync(hasLegacyAuthData, [], { onError: () => {} });\n\n return match(status, {\n Error: () => null,\n Loading: () => null,\n Success: ({ result }) => (\n <>\n {result && (\n <Box marginBottom={1}>\n <Trans i18nKey=\"login.legacy_auth_notice\" />\n </Box>\n )}\n {children}\n </>\n ),\n });\n};\n","import React, { useMemo } from 'react';\nimport type { FC, ReactNode } from 'react';\nimport { useExit } from '@wix/cli-ui-kit';\nimport type { UserInfo } from '../schemas.js';\nimport { AuthContext } from '../context.js';\nimport { EnsureLoggedIn } from '../components/EnsureLoggedIn.js';\nimport { createSiteAuthStrategy } from '../auth-strategies/index.js';\n\ninterface Props {\n siteId: string;\n onError?: (error: unknown) => void;\n onLogin?: (userInfo: UserInfo) => void;\n children: ReactNode;\n}\n\nexport const SiteAuthProvider: FC<Props> = ({\n children,\n siteId,\n onError,\n onLogin,\n}) => {\n const exit = useExit();\n const authStrategy = useMemo(() => createSiteAuthStrategy(siteId), [siteId]);\n\n return (\n <EnsureLoggedIn\n authStrategy={authStrategy}\n onLogin={({ userInfo }) => onLogin?.(userInfo)}\n onError={onError ?? exit}\n >\n {({ getAccessToken, getRequestHeaders, userInfo }) => (\n <AuthContext.Provider\n value={{ getAccessToken, getRequestHeaders, userInfo }}\n >\n {children}\n </AuthContext.Provider>\n )}\n </EnsureLoggedIn>\n );\n};\n","import React, { useEffect } from 'react';\nimport type { FC } from 'react';\nimport { render, useExit } from '@wix/cli-ui-kit';\nimport { BiProvider } from '@wix/cli-telemetry-react';\nimport type { BiLogger } from '@wix/cli-telemetry';\nimport { ErrorReporterProvider } from '@wix/cli-error-reporting';\nimport type { ErrorReporter } from '@wix/cli-error-reporting';\nimport type { AuthState } from './context.js';\nimport { SiteAuthProvider } from './providers/SiteAuthProvider.js';\nimport { useAuth } from './useAuth.js';\n\nconst Wrapper: FC<{ onReady: (data: AuthState) => void }> = ({ onReady }) => {\n const exit = useExit();\n const auth = useAuth();\n\n useEffect(() => {\n onReady(auth);\n exit();\n }, [exit, auth, onReady]);\n\n return null;\n};\n\n/**\n * @deprecated migrate to ink & use `SiteAuthProvider` directly\n */\nexport function authenticateWithSiteId(\n siteId: string,\n biLogger: BiLogger,\n errorReporter: ErrorReporter\n): Promise<AuthState> {\n return new Promise<AuthState>((resolve, reject) => {\n render(\n <ErrorReporterProvider value={errorReporter}>\n <BiProvider value={biLogger}>\n <SiteAuthProvider siteId={siteId}>\n <Wrapper onReady={resolve} />\n </SiteAuthProvider>\n </BiProvider>\n </ErrorReporterProvider>\n ).catch((error: unknown) => reject(error));\n });\n}\n"],"mappings":"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","names":["original","require_retry","import_variant","resolve","retry","path","path","path","resolvePath","ConverterType","payload","seconds","payload","_a","payload","_a","payload","_a","import_http_client","client","createHttpClientOriginal","token","payload","token","import_variant","token","payload","resolve","import_variant","AbortError","resolve","resolve","deviceCode","import_variant","payload","deviceCode","import_variant","import_react","import_react","import_variant","token","React","import_react","import_variant","import_react","process","Buffer","fs","fs","fs","fs","fs","promisify","process","execFile","process","match","process","promisify","execFile","execFileAsync","promisify","execFile","execFileAsync","match","execFileAsync","promisify","execFile","defaultBrowser","process","process","fs","defaultBrowser","Buffer","resolve","import_http_client","open","open","import_react","React","React","import_react","import_react","import_variant","import_react","import_variant","React","React","React","import_react","React","import_react","resolve","React"]}
1
+ {"version":3,"sources":["../../../node_modules/p-retry/node_modules/retry/lib/retry_operation.js","../../../node_modules/p-retry/node_modules/retry/lib/retry.js","../../../node_modules/p-retry/node_modules/retry/index.js","../../cli-auth/src/index.ts","../../cli-auth/src/auth-strategies/index.ts","../../cli-auth/src/auth-strategies/api-key-auth-strategy.ts","../../cli-auth/src/client.ts","../../../node_modules/p-retry/index.js","../../../node_modules/is-network-error/index.js","../../../node_modules/@wix/ambassador-identity-account-v2-account/http.impl.ts","../../../node_modules/@wix/metro-runtime/src/index.ts","../../../node_modules/@wix/metro-runtime/src/serialization/index.ts","../../../node_modules/@wix/metro-runtime/src/serialization/utils.ts","../../../node_modules/@wix/metro-runtime/src/url-resolver.ts","../../../node_modules/@wix/metro-runtime/src/utils.ts","../../../node_modules/@wix/metro-runtime/src/flatten-params.ts","../../../node_modules/js-base64/base64.mjs","../../../node_modules/@wix/metro-runtime/src/ambassador-index.ts","../../../node_modules/@wix/metro-runtime/src/serializer/domain.ts","../../../node_modules/@wix/metro-runtime/src/serializer/serializer.ts","../../../node_modules/@wix/metro-runtime/src/serializer/protobuf-converters/converters.ts","../../../node_modules/@wix/metro-runtime/src/serializer/protobuf-converters/timestamp.ts","../../../node_modules/@wix/metro-runtime/src/serializer/protobuf-converters/field-mask.ts","../../../node_modules/@wix/metro-runtime/src/serializer/protobuf-converters/bytes.ts","../../../node_modules/@wix/metro-runtime/src/serializer/protobuf-converters/duration.ts","../../../node_modules/@wix/metro-runtime/src/serializer/protobuf-converters/float.ts","../../../node_modules/@wix/metro-runtime/src/serializer/utils.ts","../../../node_modules/@wix/ambassador-identity-oauth-v1-refresh-token/http.impl.ts","../../cli-http-client/src/create-http-client.ts","../../cli-http-client/src/is-http-error.ts","../../cli-auth/src/schemas.ts","../../cli-auth/src/auth-data.ts","../../cli-auth/src/auth-strategies/account-auth-strategy.ts","../../../node_modules/p-limit/index.js","../../../node_modules/p-limit/node_modules/yocto-queue/index.js","../../../node_modules/p-wait-for/index.js","../../../node_modules/p-timeout/index.js","../../cli-auth/src/auth-strategies/site-auth-strategy.ts","../../cli-auth/src/logout.ts","../../cli-auth/src/useAuth.ts","../../cli-auth/src/context.ts","../../cli-auth/src/components/ApiKeyLogin.tsx","../../cli-auth/src/components/Login.tsx","../../cli-auth/src/messages.json","../../cli-auth/src/components/LoginInstructions.tsx","../../user-browser/src/index.ts","../../../node_modules/open/index.js","../../../node_modules/is-wsl/index.js","../../../node_modules/is-inside-container/index.js","../../../node_modules/is-docker/index.js","../../../node_modules/define-lazy-prop/index.js","../../../node_modules/default-browser/index.js","../../../node_modules/default-browser-id/index.js","../../../node_modules/bundle-name/index.js","../../../node_modules/run-applescript/index.js","../../../node_modules/default-browser/windows.js","../../user-browser/src/open-testkit.ts","../../cli-auth/src/useColoredVerificationUri.ts","../../cli-auth/src/providers/AccountAuthProvider.tsx","../../cli-auth/src/components/EnsureLoggedIn.tsx","../../cli-auth/src/components/WarnLegacyAuthData.tsx","../../cli-auth/src/providers/SiteAuthProvider.tsx","../../cli-auth/src/authenticate.tsx"],"sourcesContent":["function RetryOperation(timeouts, options) {\n // Compatibility for the old (timeouts, retryForever) signature\n if (typeof options === 'boolean') {\n options = { forever: options };\n }\n\n this._originalTimeouts = JSON.parse(JSON.stringify(timeouts));\n this._timeouts = timeouts;\n this._options = options || {};\n this._maxRetryTime = options && options.maxRetryTime || Infinity;\n this._fn = null;\n this._errors = [];\n this._attempts = 1;\n this._operationTimeout = null;\n this._operationTimeoutCb = null;\n this._timeout = null;\n this._operationStart = null;\n this._timer = null;\n\n if (this._options.forever) {\n this._cachedTimeouts = this._timeouts.slice(0);\n }\n}\nmodule.exports = RetryOperation;\n\nRetryOperation.prototype.reset = function() {\n this._attempts = 1;\n this._timeouts = this._originalTimeouts.slice(0);\n}\n\nRetryOperation.prototype.stop = function() {\n if (this._timeout) {\n clearTimeout(this._timeout);\n }\n if (this._timer) {\n clearTimeout(this._timer);\n }\n\n this._timeouts = [];\n this._cachedTimeouts = null;\n};\n\nRetryOperation.prototype.retry = function(err) {\n if (this._timeout) {\n clearTimeout(this._timeout);\n }\n\n if (!err) {\n return false;\n }\n var currentTime = new Date().getTime();\n if (err && currentTime - this._operationStart >= this._maxRetryTime) {\n this._errors.push(err);\n this._errors.unshift(new Error('RetryOperation timeout occurred'));\n return false;\n }\n\n this._errors.push(err);\n\n var timeout = this._timeouts.shift();\n if (timeout === undefined) {\n if (this._cachedTimeouts) {\n // retry forever, only keep last error\n this._errors.splice(0, this._errors.length - 1);\n timeout = this._cachedTimeouts.slice(-1);\n } else {\n return false;\n }\n }\n\n var self = this;\n this._timer = setTimeout(function() {\n self._attempts++;\n\n if (self._operationTimeoutCb) {\n self._timeout = setTimeout(function() {\n self._operationTimeoutCb(self._attempts);\n }, self._operationTimeout);\n\n if (self._options.unref) {\n self._timeout.unref();\n }\n }\n\n self._fn(self._attempts);\n }, timeout);\n\n if (this._options.unref) {\n this._timer.unref();\n }\n\n return true;\n};\n\nRetryOperation.prototype.attempt = function(fn, timeoutOps) {\n this._fn = fn;\n\n if (timeoutOps) {\n if (timeoutOps.timeout) {\n this._operationTimeout = timeoutOps.timeout;\n }\n if (timeoutOps.cb) {\n this._operationTimeoutCb = timeoutOps.cb;\n }\n }\n\n var self = this;\n if (this._operationTimeoutCb) {\n this._timeout = setTimeout(function() {\n self._operationTimeoutCb();\n }, self._operationTimeout);\n }\n\n this._operationStart = new Date().getTime();\n\n this._fn(this._attempts);\n};\n\nRetryOperation.prototype.try = function(fn) {\n console.log('Using RetryOperation.try() is deprecated');\n this.attempt(fn);\n};\n\nRetryOperation.prototype.start = function(fn) {\n console.log('Using RetryOperation.start() is deprecated');\n this.attempt(fn);\n};\n\nRetryOperation.prototype.start = RetryOperation.prototype.try;\n\nRetryOperation.prototype.errors = function() {\n return this._errors;\n};\n\nRetryOperation.prototype.attempts = function() {\n return this._attempts;\n};\n\nRetryOperation.prototype.mainError = function() {\n if (this._errors.length === 0) {\n return null;\n }\n\n var counts = {};\n var mainError = null;\n var mainErrorCount = 0;\n\n for (var i = 0; i < this._errors.length; i++) {\n var error = this._errors[i];\n var message = error.message;\n var count = (counts[message] || 0) + 1;\n\n counts[message] = count;\n\n if (count >= mainErrorCount) {\n mainError = error;\n mainErrorCount = count;\n }\n }\n\n return mainError;\n};\n","var RetryOperation = require('./retry_operation');\n\nexports.operation = function(options) {\n var timeouts = exports.timeouts(options);\n return new RetryOperation(timeouts, {\n forever: options && (options.forever || options.retries === Infinity),\n unref: options && options.unref,\n maxRetryTime: options && options.maxRetryTime\n });\n};\n\nexports.timeouts = function(options) {\n if (options instanceof Array) {\n return [].concat(options);\n }\n\n var opts = {\n retries: 10,\n factor: 2,\n minTimeout: 1 * 1000,\n maxTimeout: Infinity,\n randomize: false\n };\n for (var key in options) {\n opts[key] = options[key];\n }\n\n if (opts.minTimeout > opts.maxTimeout) {\n throw new Error('minTimeout is greater than maxTimeout');\n }\n\n var timeouts = [];\n for (var i = 0; i < opts.retries; i++) {\n timeouts.push(this.createTimeout(i, opts));\n }\n\n if (options && options.forever && !timeouts.length) {\n timeouts.push(this.createTimeout(i, opts));\n }\n\n // sort the array numerically ascending\n timeouts.sort(function(a,b) {\n return a - b;\n });\n\n return timeouts;\n};\n\nexports.createTimeout = function(attempt, opts) {\n var random = (opts.randomize)\n ? (Math.random() + 1)\n : 1;\n\n var timeout = Math.round(random * Math.max(opts.minTimeout, 1) * Math.pow(opts.factor, attempt));\n timeout = Math.min(timeout, opts.maxTimeout);\n\n return timeout;\n};\n\nexports.wrap = function(obj, options, methods) {\n if (options instanceof Array) {\n methods = options;\n options = null;\n }\n\n if (!methods) {\n methods = [];\n for (var key in obj) {\n if (typeof obj[key] === 'function') {\n methods.push(key);\n }\n }\n }\n\n for (var i = 0; i < methods.length; i++) {\n var method = methods[i];\n var original = obj[method];\n\n obj[method] = function retryWrapper(original) {\n var op = exports.operation(options);\n var args = Array.prototype.slice.call(arguments, 1);\n var callback = args.pop();\n\n args.push(function(err) {\n if (op.retry(err)) {\n return;\n }\n if (err) {\n arguments[0] = op.mainError();\n }\n callback.apply(this, arguments);\n });\n\n op.attempt(function() {\n original.apply(obj, args);\n });\n }.bind(obj, original);\n obj[method].options = options;\n }\n};\n","module.exports = require('./lib/retry');","import { accountAuthStrategy } from './auth-strategies/index.js';\n\nexport const { isLoggedIn: isLoggedInToAccount } = accountAuthStrategy;\n\nexport { logout } from './logout.js';\nexport { getUserInfo } from './auth-data.js';\nexport type { UserInfo } from './schemas.js';\nexport { useAuth } from './useAuth.js';\nexport { ApiKeyLogin } from './components/ApiKeyLogin.js';\nexport { LoginWithI18n as Login } from './components/Login.js';\nexport { AccountAuthProvider } from './providers/AccountAuthProvider.js';\nexport { SiteAuthProvider } from './providers/SiteAuthProvider.js';\nexport { authenticateWithSiteId } from './authenticate.js';\nexport type { AuthState } from './context.js';\n","export type { AuthStrategyState, AuthStrategy } from './auth-strategy-types.js';\nexport { apiKeyAuthStrategy } from './api-key-auth-strategy.js';\nexport { accountAuthStrategy } from './account-auth-strategy.js';\nexport { createSiteAuthStrategy } from './site-auth-strategy.js';\n","import { match } from 'variant';\nimport type { Headers } from '@wix/cli-http-client';\nimport { client } from '../client.js';\nimport type { ApiKeyAuth } from '../schemas.js';\nimport {\n readApiKeyAuthData,\n saveApiKeyAuthData,\n deleteAuthData,\n} from '../auth-data.js';\nimport type {\n ApiKeyAuthStrategy,\n AuthStrategyState,\n} from './auth-strategy-types.js';\n\nfunction createApiKeyAuthState({\n authData: { token, accountId, userInfo },\n siteId,\n}: {\n authData: ApiKeyAuth;\n siteId?: string;\n}): AuthStrategyState {\n return {\n getAccessToken: async () => token,\n getRefreshToken: () => {\n throw new Error('API key auth does not support refresh tokens');\n },\n getRequestHeaders: (): Headers => {\n if (siteId) {\n return { 'wix-site-id': siteId };\n }\n\n return { 'wix-account-id': accountId };\n },\n userInfo,\n };\n}\n\nexport const apiKeyAuthStrategy: ApiKeyAuthStrategy = {\n async isLoggedIn({ siteId }: { siteId?: string } = {}) {\n const apiKeyAuth = await readApiKeyAuthData();\n\n return match(apiKeyAuth, {\n Authenticated: ({ payload }) => {\n return createApiKeyAuthState({ authData: payload, siteId });\n },\n Unauthenticated: () => null,\n });\n },\n async login({ token }) {\n const { accountId, accountOwner, slug } = await client.getMyAccount({\n token,\n });\n\n const authData: ApiKeyAuth = {\n token,\n accountId,\n userInfo: {\n userId: accountOwner,\n // TODO: this should be the email of the account owner, not the slug\n // https://jira.wixpress.com/browse/FEDINF-12201\n email: slug,\n },\n };\n\n await deleteAuthData();\n await saveApiKeyAuthData(authData);\n\n return createApiKeyAuthState({ authData });\n },\n};\n","import pRetry from 'p-retry';\nimport type { Options } from 'p-retry';\nimport type {\n DeviceCodeRequest,\n RevokeRefreshTokenRequest,\n} from '@wix/ambassador-identity-oauth-v1-refresh-token/types';\nimport { getMyAccount } from '@wix/ambassador-identity-account-v2-account/http';\nimport {\n deviceCode as deviceCodeRequest,\n token as tokenRequest,\n revokeRefreshToken,\n} from '@wix/ambassador-identity-oauth-v1-refresh-token/http';\nimport type { HttpClient, HttpError } from '@wix/cli-http-client';\nimport {\n isHttpError,\n isHttpApplicationError,\n createHttpClient,\n} from '@wix/cli-http-client';\nimport { CliError, CliErrorCode } from '@wix/cli-error';\nimport { fields, payload, variant } from 'variant';\nimport { getTestOverrides } from '@wix/cli-test-overrides';\nimport type { SiteAuth, UserInfo } from './schemas.js';\nimport {\n deviceCodeSchema,\n tokenSchema,\n userInfoSchema,\n getMyAccountSchema,\n} from './schemas.js';\n\nconst {\n InvalidResponseData,\n FailedToGetAuthToken,\n FailedToGetDeviceCode,\n FailedToRenewAuthToken,\n FailedToRenewAuthTokenSiteNotFound,\n FailedToRevokeRefreshToken,\n} = CliErrorCode;\n\nconst clientId = '6f95cec8-3e98-48b9-b4e5-1fb92fcd9973';\n\nconst getCurrentTimestamp = () => Math.floor(Date.now() / 1000);\n\ninterface TokenRequest {\n clientId: string;\n grantType: string;\n scope?: string;\n deviceCode?: string;\n refreshToken?: string;\n siteId?: string;\n}\n\ninterface TokenResponse {\n access_token: string;\n refresh_token: string;\n expires_in: number;\n}\n\nexport class DeviceCodeNotYetVerifiedError extends Error {}\n\nexport const RenewTokenData = variant({\n TokenRenewed: payload<SiteAuth>(),\n RefreshTokenRevoked: fields<{ cause: HttpError }>(),\n});\n\nclass AuthClient {\n private readonly retryOptions: Options;\n constructor(private readonly httpClient: HttpClient) {\n const { minRetryTimeout } = getTestOverrides();\n\n this.retryOptions = {\n retries: 3,\n minTimeout: minRetryTimeout,\n maxTimeout: 3 * 1000,\n };\n }\n\n async requestDeviceCode(req: DeviceCodeRequest = {}) {\n try {\n const { data } = await pRetry(\n () => this.httpClient.request(deviceCodeRequest({ ...req, clientId })),\n this.retryOptions\n );\n\n return deviceCodeSchema.parse(data);\n } catch (error) {\n throw new CliError({\n code: FailedToGetDeviceCode(),\n cause: error,\n });\n }\n }\n\n async createToken(req: { deviceCode: string }) {\n try {\n const payload: TokenRequest = {\n clientId,\n grantType: 'urn:ietf:params:oauth:grant-type:device_code',\n scope: 'offline_access',\n ...req,\n };\n\n const tokenData = await pRetry(async () => {\n // any is needed because `tokenRequest` uses `RawHttpRequest` and `RawHttpResponse` which are not typed correctly\n const { data, requestId } =\n await this.httpClient.request<TokenResponse>(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n tokenRequest(payload as any) as any\n );\n\n const result = tokenSchema.safeParse(data);\n\n if (result.success) {\n return result.data;\n }\n\n throw new CliError({\n code: InvalidResponseData(),\n cause: result.error,\n info: { requestId, data },\n });\n }, this.retryOptions);\n\n return {\n ...tokenData,\n issuedAt: getCurrentTimestamp(),\n };\n } catch (error) {\n if (\n isHttpError(error) &&\n (error.response?.data?.message === 'Device code is not yet verified' ||\n // https://github.com/wix-private/wix-cli/pull/655#discussion_r1145992702\n error.response?.data?.error === 'authorization_pending')\n ) {\n throw new DeviceCodeNotYetVerifiedError(\n 'Device code is not yet verified.'\n );\n }\n\n throw new CliError({\n code: FailedToGetAuthToken(),\n cause: error,\n });\n }\n }\n\n async renewToken(req: { refreshToken: string; siteId?: string }) {\n try {\n const payload: TokenRequest = {\n clientId,\n grantType: 'refresh_token',\n ...req,\n };\n\n // any is needed because `tokenRequest` uses `RawHttpRequest` and `RawHttpResponse` which are not typed correctly\n const { data } = await pRetry(\n () =>\n this.httpClient.request<TokenResponse>(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n tokenRequest(payload as any) as any\n ),\n this.retryOptions\n );\n\n const tokenData = tokenSchema.parse(data);\n\n return RenewTokenData.TokenRenewed({\n ...tokenData,\n issuedAt: getCurrentTimestamp(),\n });\n } catch (error) {\n if (isHttpError(error)) {\n if (\n error.response?.status === 400 &&\n error.response.data?.error === 'invalid_grant'\n ) {\n return RenewTokenData.RefreshTokenRevoked({ cause: error });\n }\n if (\n req.siteId &&\n error.response?.status === 404 &&\n isHttpApplicationError(error) &&\n error.response.data.details.applicationError.code === 'SITE_NOT_FOUND'\n ) {\n throw new CliError({\n code: FailedToRenewAuthTokenSiteNotFound({ siteId: req.siteId }),\n cause: error,\n });\n }\n }\n\n throw new CliError({\n code: FailedToRenewAuthToken(),\n cause: error,\n });\n }\n }\n\n async revokeRefreshToken(\n req: RevokeRefreshTokenRequest,\n { email }: UserInfo\n ) {\n try {\n const { data } = await this.httpClient.request(revokeRefreshToken(req));\n\n return data;\n } catch (error) {\n throw new CliError({\n code: FailedToRevokeRefreshToken({\n email,\n }),\n info: {\n email,\n },\n cause: error,\n });\n }\n }\n\n async userInfo({ accessToken }: { accessToken: string }) {\n try {\n const httpClient = createHttpClient({\n type: 'backoffice',\n getAppToken: async () => accessToken,\n });\n const { data: userInfoData } = await httpClient.get(\n '/_serverless/wix-cli-userinfo/userinfo'\n );\n\n return userInfoSchema.parse(userInfoData);\n } catch (error) {\n throw new CliError({\n code: CliErrorCode.FailedToGetUserInfo(),\n cause: error,\n });\n }\n }\n\n async getMyAccount({ token }: { token: string }) {\n try {\n const httpClient = createHttpClient({\n type: 'backoffice',\n getAppToken: async () => token,\n });\n const { data } = await httpClient.request(getMyAccount({}));\n\n return getMyAccountSchema.parse(data).account;\n } catch (error) {\n // 48876 is code for `TargetAccountIsMissingErrorCode`,\n // which in this case means that user tried to log in with invalid API key.\n if (\n isHttpError(error) &&\n error.response?.status === 428 &&\n isHttpApplicationError(error) &&\n error.response.data.details.applicationError.code === '48876'\n ) {\n throw new CliError({\n code: CliErrorCode.InvalidApiKey(),\n cause: error,\n });\n }\n throw new CliError({\n code: CliErrorCode.FailedToGetMyAccount(),\n cause: error,\n });\n }\n }\n}\n\nexport const client = new AuthClient(createHttpClient({ type: 'backoffice' }));\n","import retry from 'retry';\nimport isNetworkError from 'is-network-error';\n\nexport class AbortError extends Error {\n\tconstructor(message) {\n\t\tsuper();\n\n\t\tif (message instanceof Error) {\n\t\t\tthis.originalError = message;\n\t\t\t({message} = message);\n\t\t} else {\n\t\t\tthis.originalError = new Error(message);\n\t\t\tthis.originalError.stack = this.stack;\n\t\t}\n\n\t\tthis.name = 'AbortError';\n\t\tthis.message = message;\n\t}\n}\n\nconst decorateErrorWithCounts = (error, attemptNumber, options) => {\n\t// Minus 1 from attemptNumber because the first attempt does not count as a retry\n\tconst retriesLeft = options.retries - (attemptNumber - 1);\n\n\terror.attemptNumber = attemptNumber;\n\terror.retriesLeft = retriesLeft;\n\treturn error;\n};\n\nexport default async function pRetry(input, options) {\n\treturn new Promise((resolve, reject) => {\n\t\toptions = {...options};\n\t\toptions.onFailedAttempt ??= () => {};\n\t\toptions.shouldRetry ??= () => true;\n\t\toptions.retries ??= 10;\n\n\t\tconst operation = retry.operation(options);\n\n\t\tconst abortHandler = () => {\n\t\t\toperation.stop();\n\t\t\treject(options.signal?.reason);\n\t\t};\n\n\t\tif (options.signal && !options.signal.aborted) {\n\t\t\toptions.signal.addEventListener('abort', abortHandler, {once: true});\n\t\t}\n\n\t\tconst cleanUp = () => {\n\t\t\toptions.signal?.removeEventListener('abort', abortHandler);\n\t\t\toperation.stop();\n\t\t};\n\n\t\toperation.attempt(async attemptNumber => {\n\t\t\ttry {\n\t\t\t\tconst result = await input(attemptNumber);\n\t\t\t\tcleanUp();\n\t\t\t\tresolve(result);\n\t\t\t} catch (error) {\n\t\t\t\ttry {\n\t\t\t\t\tif (!(error instanceof Error)) {\n\t\t\t\t\t\tthrow new TypeError(`Non-error was thrown: \"${error}\". You should only throw errors.`);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (error instanceof AbortError) {\n\t\t\t\t\t\tthrow error.originalError;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (error instanceof TypeError && !isNetworkError(error)) {\n\t\t\t\t\t\tthrow error;\n\t\t\t\t\t}\n\n\t\t\t\t\tdecorateErrorWithCounts(error, attemptNumber, options);\n\n\t\t\t\t\tif (!(await options.shouldRetry(error))) {\n\t\t\t\t\t\toperation.stop();\n\t\t\t\t\t\treject(error);\n\t\t\t\t\t}\n\n\t\t\t\t\tawait options.onFailedAttempt(error);\n\n\t\t\t\t\tif (!operation.retry(error)) {\n\t\t\t\t\t\tthrow operation.mainError();\n\t\t\t\t\t}\n\t\t\t\t} catch (finalError) {\n\t\t\t\t\tdecorateErrorWithCounts(finalError, attemptNumber, options);\n\t\t\t\t\tcleanUp();\n\t\t\t\t\treject(finalError);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t});\n}\n","const objectToString = Object.prototype.toString;\n\nconst isError = value => objectToString.call(value) === '[object Error]';\n\nconst errorMessages = new Set([\n\t'network error', // Chrome\n\t'Failed to fetch', // Chrome\n\t'NetworkError when attempting to fetch resource.', // Firefox\n\t'The Internet connection appears to be offline.', // Safari 16\n\t'Load failed', // Safari 17+\n\t'Network request failed', // `cross-fetch`\n\t'fetch failed', // Undici (Node.js)\n\t'terminated', // Undici (Node.js)\n]);\n\nexport default function isNetworkError(error) {\n\tconst isValid = error\n\t\t&& isError(error)\n\t\t&& error.name === 'TypeError'\n\t\t&& typeof error.message === 'string';\n\n\tif (!isValid) {\n\t\treturn false;\n\t}\n\n\t// We do an extra check for Safari 17+ as it has a very generic error message.\n\t// Network errors in Safari have no stack.\n\tif (error.message === 'Load failed') {\n\t\treturn error.stack === undefined;\n\t}\n\n\treturn errorMessages.has(error.message);\n}\n",null,"export * from './serialization';\nexport * from './url-resolver';\nexport * from './flatten-params';\n","export * from './utils';\n","type SchemaType = 'Array' | 'Map';\n\nexport function parseLeanSchemaRef(renderedSchemaName: string = ''): {\n schemaName: string;\n schemaType?: SchemaType;\n} {\n const [typeOrName, schemaName] = getSchemaNameAndType(renderedSchemaName);\n\n if (schemaName) {\n return {\n schemaName,\n schemaType: typeOrName as SchemaType,\n };\n }\n\n return {\n schemaName: typeOrName,\n };\n}\n\n// if there is no type, returns only the name\nconst getSchemaNameAndType = (leanSchema: string): string[] =>\n leanSchema.split('#');\n","import { findByPath } from './utils';\n\nconst USER_DOMAIN = '_';\n\nconst DOMAINS = ['wix.com', 'editorx.com'];\n\nconst WIX_API_DOMAINS = ['42.wixprod.net', 'uw2-edt-1.wixprod.net'];\n\nconst DEV_WIX_CODE_DOMAIN = 'dev.wix-code.com';\n\nconst REGEX_CAPTURE_PROTO_FIELD = /{(.*)}/;\n\nconst REGEX_CAPTURE_DOMAINS = new RegExp(`\\\\.(${DOMAINS.join('|')})$`);\n\nconst REGEX_CAPTURE_API_DOMAINS = new RegExp(\n `\\\\.(${WIX_API_DOMAINS.join('|')})$`,\n);\n\nconst REGEX_CAPTURE_DEV_WIX_CODE_DOMAIN = new RegExp(\n `.*\\\\.${DEV_WIX_CODE_DOMAIN}$`,\n);\n\nexport type ResolveUrlOpts = {\n // resource path as defined in proto file, including all wildcards & co.\n protoPath: string;\n\n // domain as defined on FP to its mappings (might be more than one)\n // www._base_domain_ => [{ srcPath: '/_api/foo', destPath: '/api' }]\n domainToMappings: DomainToMappings;\n\n // actual payload attached to request, needed in order to rersolve path,\n // in case it contains some dynamic parameters\n data?: object;\n\n // request's host\n host: string;\n};\n\nexport function resolveUrl(opts: ResolveUrlOpts) {\n const domain = resolveDomain(opts.host);\n const mappings = resolveMappingsByDomain(domain, opts.domainToMappings);\n const path = injectDataIntoProtoPath(opts.protoPath, opts.data || {});\n\n return resolvePath(path, mappings);\n}\n\nfunction injectDataIntoProtoPath(protoPath: string, data: object) {\n return protoPath\n .split('/')\n .map((path) => maybeProtoPathToData(path, data))\n .join('/');\n}\n\nfunction maybeProtoPathToData(protoPath: string, data: object) {\n const protoRegExpMatch = protoPath.match(REGEX_CAPTURE_PROTO_FIELD) || [];\n\n const field = protoRegExpMatch[1];\n\n if (field) {\n const suffix = protoPath.replace(protoRegExpMatch[0]!, '');\n return findByPath(data, field, protoPath, suffix);\n }\n\n return protoPath;\n}\n\nfunction resolveDomain(host: string) {\n const resolvedHost = fixHostExceptions(host);\n\n return resolvedHost\n .replace(REGEX_CAPTURE_DOMAINS, '._base_domain_')\n .replace(REGEX_CAPTURE_API_DOMAINS, '._api_base_domain_')\n .replace(REGEX_CAPTURE_DEV_WIX_CODE_DOMAIN, '*.dev.wix-code.com');\n}\n\n// hosts which standard string replacing doesn't apply to them, will be fixed here.\nfunction fixHostExceptions(host: string) {\n // https://system-kb.wixanswers.com/kb/en/article/editorx-domains-matching-to-wixcom\n return host.replace('create.editorx.com', 'editor.editorx.com');\n}\n\nfunction resolveMappingsByDomain(\n domain: string,\n domainToMappings: DomainToMappings,\n) {\n const mappings = domainToMappings[domain] || domainToMappings[USER_DOMAIN];\n\n if (!mappings) {\n if (isBaseDomain(domain)) {\n // fallback <lang>.wix.com sub domains to www.wix.com\n // since all of the languages subdomain are not mapped automatically in FP and we want to support those kind of calls\n // for example: fr.wix.com\n return domainToMappings[wwwBaseDomain];\n }\n }\n\n return mappings;\n}\n\nfunction resolvePath(protoPath: string, mappings: Mapping[]) {\n const mapping = mappings?.find((m) => protoPath.startsWith(m.destPath));\n\n if (!mapping) {\n // todo: should we return the path? if no - what should we do in case of testings?\n return protoPath;\n }\n\n return mapping.srcPath + protoPath.slice(mapping.destPath.length);\n}\n\ntype Mapping = {\n srcPath: string;\n destPath: string;\n};\n\ntype DomainToMappings = Record<string, Mapping[]>;\n\nfunction isBaseDomain(domain: string) {\n return !!domain.match(/\\._base_domain_$/);\n}\n\nconst wwwBaseDomain = 'www._base_domain_';\n","export function findByPath(\n obj: object,\n path: string,\n defaultValue: string,\n suffix: string,\n) {\n let result: any = obj;\n for (const field of path.split('.')) {\n if (!result) {\n return defaultValue;\n }\n result = result[field];\n }\n\n return `${result}${suffix}`;\n}\n","import { encode } from 'js-base64';\n\n// Flatten a nested object to params object { field: { text: 'foo' } } => { field.text ='foo' }\nfunction flattenParams(data: object, path = ''): object {\n const params: any = {};\n\n Object.entries(data).forEach(([key, value]) => {\n const isObject =\n value !== null && typeof value === 'object' && !Array.isArray(value);\n const fieldPath = resolvePath(path, key);\n\n if (isObject) {\n const serializedObject = flattenParams(value, fieldPath);\n Object.assign(params, serializedObject);\n } else {\n params[fieldPath] = value;\n }\n });\n\n return params;\n}\n\nfunction resolvePath(path: string, key: string) {\n return `${path}${path ? '.' : ''}${key}`;\n}\n\n/**\n * serializes the params object to URLSearchParams,\n * if isComplexRequest is true and the payload is not serializable as regular URLSearchParams (because of nested fields),\n * it will serialize the payload into the .r query param exclusively\n * @param params\n * @param isComplexRequest\n * @returns\n */\nexport function toURLSearchParams(params: object, isComplexRequest?: boolean) {\n const flatten = flattenParams(params);\n\n // payloads with deep arrays or complex arrays are not serializable as URLSearchParams\n const isPayloadNonSerializableAsUrlSearchParams = Object.entries(\n flatten,\n ).some(\n ([key, value]) =>\n key.includes('.') ||\n (Array.isArray(value) && value.some((v) => typeof v === 'object')),\n );\n const shouldSerializeToRParam =\n isComplexRequest && isPayloadNonSerializableAsUrlSearchParams;\n\n if (shouldSerializeToRParam) {\n return new URLSearchParams({ '.r': encode(JSON.stringify(params), true) });\n } else {\n return Object.entries(flatten).reduce((urlSearchParams, [key, value]) => {\n // inorder to make `foo: [1,2]` turn into `foo=1&foo=2` and not `foo[]=1&foo[]=2`\n const keyParams = Array.isArray(value) ? value : [value];\n\n keyParams.forEach((param: any) => {\n if (\n param === undefined ||\n param === null ||\n (Array.isArray(value) && typeof param === 'object')\n ) {\n return;\n }\n\n urlSearchParams.append(key, param);\n });\n\n return urlSearchParams;\n }, new URLSearchParams());\n }\n}\n","/**\n * base64.ts\n *\n * Licensed under the BSD 3-Clause License.\n * http://opensource.org/licenses/BSD-3-Clause\n *\n * References:\n * http://en.wikipedia.org/wiki/Base64\n *\n * @author Dan Kogai (https://github.com/dankogai)\n */\nconst version = '3.7.7';\n/**\n * @deprecated use lowercase `version`.\n */\nconst VERSION = version;\nconst _hasBuffer = typeof Buffer === 'function';\nconst _TD = typeof TextDecoder === 'function' ? new TextDecoder() : undefined;\nconst _TE = typeof TextEncoder === 'function' ? new TextEncoder() : undefined;\nconst b64ch = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\nconst b64chs = Array.prototype.slice.call(b64ch);\nconst b64tab = ((a) => {\n let tab = {};\n a.forEach((c, i) => tab[c] = i);\n return tab;\n})(b64chs);\nconst b64re = /^(?:[A-Za-z\\d+\\/]{4})*?(?:[A-Za-z\\d+\\/]{2}(?:==)?|[A-Za-z\\d+\\/]{3}=?)?$/;\nconst _fromCC = String.fromCharCode.bind(String);\nconst _U8Afrom = typeof Uint8Array.from === 'function'\n ? Uint8Array.from.bind(Uint8Array)\n : (it) => new Uint8Array(Array.prototype.slice.call(it, 0));\nconst _mkUriSafe = (src) => src\n .replace(/=/g, '').replace(/[+\\/]/g, (m0) => m0 == '+' ? '-' : '_');\nconst _tidyB64 = (s) => s.replace(/[^A-Za-z0-9\\+\\/]/g, '');\n/**\n * polyfill version of `btoa`\n */\nconst btoaPolyfill = (bin) => {\n // console.log('polyfilled');\n let u32, c0, c1, c2, asc = '';\n const pad = bin.length % 3;\n for (let i = 0; i < bin.length;) {\n if ((c0 = bin.charCodeAt(i++)) > 255 ||\n (c1 = bin.charCodeAt(i++)) > 255 ||\n (c2 = bin.charCodeAt(i++)) > 255)\n throw new TypeError('invalid character found');\n u32 = (c0 << 16) | (c1 << 8) | c2;\n asc += b64chs[u32 >> 18 & 63]\n + b64chs[u32 >> 12 & 63]\n + b64chs[u32 >> 6 & 63]\n + b64chs[u32 & 63];\n }\n return pad ? asc.slice(0, pad - 3) + \"===\".substring(pad) : asc;\n};\n/**\n * does what `window.btoa` of web browsers do.\n * @param {String} bin binary string\n * @returns {string} Base64-encoded string\n */\nconst _btoa = typeof btoa === 'function' ? (bin) => btoa(bin)\n : _hasBuffer ? (bin) => Buffer.from(bin, 'binary').toString('base64')\n : btoaPolyfill;\nconst _fromUint8Array = _hasBuffer\n ? (u8a) => Buffer.from(u8a).toString('base64')\n : (u8a) => {\n // cf. https://stackoverflow.com/questions/12710001/how-to-convert-uint8-array-to-base64-encoded-string/12713326#12713326\n const maxargs = 0x1000;\n let strs = [];\n for (let i = 0, l = u8a.length; i < l; i += maxargs) {\n strs.push(_fromCC.apply(null, u8a.subarray(i, i + maxargs)));\n }\n return _btoa(strs.join(''));\n };\n/**\n * converts a Uint8Array to a Base64 string.\n * @param {boolean} [urlsafe] URL-and-filename-safe a la RFC4648 §5\n * @returns {string} Base64 string\n */\nconst fromUint8Array = (u8a, urlsafe = false) => urlsafe ? _mkUriSafe(_fromUint8Array(u8a)) : _fromUint8Array(u8a);\n// This trick is found broken https://github.com/dankogai/js-base64/issues/130\n// const utob = (src: string) => unescape(encodeURIComponent(src));\n// reverting good old fationed regexp\nconst cb_utob = (c) => {\n if (c.length < 2) {\n var cc = c.charCodeAt(0);\n return cc < 0x80 ? c\n : cc < 0x800 ? (_fromCC(0xc0 | (cc >>> 6))\n + _fromCC(0x80 | (cc & 0x3f)))\n : (_fromCC(0xe0 | ((cc >>> 12) & 0x0f))\n + _fromCC(0x80 | ((cc >>> 6) & 0x3f))\n + _fromCC(0x80 | (cc & 0x3f)));\n }\n else {\n var cc = 0x10000\n + (c.charCodeAt(0) - 0xD800) * 0x400\n + (c.charCodeAt(1) - 0xDC00);\n return (_fromCC(0xf0 | ((cc >>> 18) & 0x07))\n + _fromCC(0x80 | ((cc >>> 12) & 0x3f))\n + _fromCC(0x80 | ((cc >>> 6) & 0x3f))\n + _fromCC(0x80 | (cc & 0x3f)));\n }\n};\nconst re_utob = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFFF]|[^\\x00-\\x7F]/g;\n/**\n * @deprecated should have been internal use only.\n * @param {string} src UTF-8 string\n * @returns {string} UTF-16 string\n */\nconst utob = (u) => u.replace(re_utob, cb_utob);\n//\nconst _encode = _hasBuffer\n ? (s) => Buffer.from(s, 'utf8').toString('base64')\n : _TE\n ? (s) => _fromUint8Array(_TE.encode(s))\n : (s) => _btoa(utob(s));\n/**\n * converts a UTF-8-encoded string to a Base64 string.\n * @param {boolean} [urlsafe] if `true` make the result URL-safe\n * @returns {string} Base64 string\n */\nconst encode = (src, urlsafe = false) => urlsafe\n ? _mkUriSafe(_encode(src))\n : _encode(src);\n/**\n * converts a UTF-8-encoded string to URL-safe Base64 RFC4648 §5.\n * @returns {string} Base64 string\n */\nconst encodeURI = (src) => encode(src, true);\n// This trick is found broken https://github.com/dankogai/js-base64/issues/130\n// const btou = (src: string) => decodeURIComponent(escape(src));\n// reverting good old fationed regexp\nconst re_btou = /[\\xC0-\\xDF][\\x80-\\xBF]|[\\xE0-\\xEF][\\x80-\\xBF]{2}|[\\xF0-\\xF7][\\x80-\\xBF]{3}/g;\nconst cb_btou = (cccc) => {\n switch (cccc.length) {\n case 4:\n var cp = ((0x07 & cccc.charCodeAt(0)) << 18)\n | ((0x3f & cccc.charCodeAt(1)) << 12)\n | ((0x3f & cccc.charCodeAt(2)) << 6)\n | (0x3f & cccc.charCodeAt(3)), offset = cp - 0x10000;\n return (_fromCC((offset >>> 10) + 0xD800)\n + _fromCC((offset & 0x3FF) + 0xDC00));\n case 3:\n return _fromCC(((0x0f & cccc.charCodeAt(0)) << 12)\n | ((0x3f & cccc.charCodeAt(1)) << 6)\n | (0x3f & cccc.charCodeAt(2)));\n default:\n return _fromCC(((0x1f & cccc.charCodeAt(0)) << 6)\n | (0x3f & cccc.charCodeAt(1)));\n }\n};\n/**\n * @deprecated should have been internal use only.\n * @param {string} src UTF-16 string\n * @returns {string} UTF-8 string\n */\nconst btou = (b) => b.replace(re_btou, cb_btou);\n/**\n * polyfill version of `atob`\n */\nconst atobPolyfill = (asc) => {\n // console.log('polyfilled');\n asc = asc.replace(/\\s+/g, '');\n if (!b64re.test(asc))\n throw new TypeError('malformed base64.');\n asc += '=='.slice(2 - (asc.length & 3));\n let u24, bin = '', r1, r2;\n for (let i = 0; i < asc.length;) {\n u24 = b64tab[asc.charAt(i++)] << 18\n | b64tab[asc.charAt(i++)] << 12\n | (r1 = b64tab[asc.charAt(i++)]) << 6\n | (r2 = b64tab[asc.charAt(i++)]);\n bin += r1 === 64 ? _fromCC(u24 >> 16 & 255)\n : r2 === 64 ? _fromCC(u24 >> 16 & 255, u24 >> 8 & 255)\n : _fromCC(u24 >> 16 & 255, u24 >> 8 & 255, u24 & 255);\n }\n return bin;\n};\n/**\n * does what `window.atob` of web browsers do.\n * @param {String} asc Base64-encoded string\n * @returns {string} binary string\n */\nconst _atob = typeof atob === 'function' ? (asc) => atob(_tidyB64(asc))\n : _hasBuffer ? (asc) => Buffer.from(asc, 'base64').toString('binary')\n : atobPolyfill;\n//\nconst _toUint8Array = _hasBuffer\n ? (a) => _U8Afrom(Buffer.from(a, 'base64'))\n : (a) => _U8Afrom(_atob(a).split('').map(c => c.charCodeAt(0)));\n/**\n * converts a Base64 string to a Uint8Array.\n */\nconst toUint8Array = (a) => _toUint8Array(_unURI(a));\n//\nconst _decode = _hasBuffer\n ? (a) => Buffer.from(a, 'base64').toString('utf8')\n : _TD\n ? (a) => _TD.decode(_toUint8Array(a))\n : (a) => btou(_atob(a));\nconst _unURI = (a) => _tidyB64(a.replace(/[-_]/g, (m0) => m0 == '-' ? '+' : '/'));\n/**\n * converts a Base64 string to a UTF-8 string.\n * @param {String} src Base64 string. Both normal and URL-safe are supported\n * @returns {string} UTF-8 string\n */\nconst decode = (src) => _decode(_unURI(src));\n/**\n * check if a value is a valid Base64 string\n * @param {String} src a value to check\n */\nconst isValid = (src) => {\n if (typeof src !== 'string')\n return false;\n const s = src.replace(/\\s+/g, '').replace(/={0,2}$/, '');\n return !/[^\\s0-9a-zA-Z\\+/]/.test(s) || !/[^\\s0-9a-zA-Z\\-_]/.test(s);\n};\n//\nconst _noEnum = (v) => {\n return {\n value: v, enumerable: false, writable: true, configurable: true\n };\n};\n/**\n * extend String.prototype with relevant methods\n */\nconst extendString = function () {\n const _add = (name, body) => Object.defineProperty(String.prototype, name, _noEnum(body));\n _add('fromBase64', function () { return decode(this); });\n _add('toBase64', function (urlsafe) { return encode(this, urlsafe); });\n _add('toBase64URI', function () { return encode(this, true); });\n _add('toBase64URL', function () { return encode(this, true); });\n _add('toUint8Array', function () { return toUint8Array(this); });\n};\n/**\n * extend Uint8Array.prototype with relevant methods\n */\nconst extendUint8Array = function () {\n const _add = (name, body) => Object.defineProperty(Uint8Array.prototype, name, _noEnum(body));\n _add('toBase64', function (urlsafe) { return fromUint8Array(this, urlsafe); });\n _add('toBase64URI', function () { return fromUint8Array(this, true); });\n _add('toBase64URL', function () { return fromUint8Array(this, true); });\n};\n/**\n * extend Builtin prototypes with relevant methods\n */\nconst extendBuiltins = () => {\n extendString();\n extendUint8Array();\n};\nconst gBase64 = {\n version: version,\n VERSION: VERSION,\n atob: _atob,\n atobPolyfill: atobPolyfill,\n btoa: _btoa,\n btoaPolyfill: btoaPolyfill,\n fromBase64: decode,\n toBase64: encode,\n encode: encode,\n encodeURI: encodeURI,\n encodeURL: encodeURI,\n utob: utob,\n btou: btou,\n decode: decode,\n isValid: isValid,\n fromUint8Array: fromUint8Array,\n toUint8Array: toUint8Array,\n extendString: extendString,\n extendUint8Array: extendUint8Array,\n extendBuiltins: extendBuiltins\n};\n// makecjs:CUT //\nexport { version };\nexport { VERSION };\nexport { _atob as atob };\nexport { atobPolyfill };\nexport { _btoa as btoa };\nexport { btoaPolyfill };\nexport { decode as fromBase64 };\nexport { encode as toBase64 };\nexport { utob };\nexport { encode };\nexport { encodeURI };\nexport { encodeURI as encodeURL };\nexport { btou };\nexport { decode };\nexport { isValid };\nexport { fromUint8Array };\nexport { toUint8Array };\nexport { extendString };\nexport { extendUint8Array };\nexport { extendBuiltins };\n// and finally,\nexport { gBase64 as Base64 };\n","import type {\n RenderedLeanSchema,\n RenderedLeanSchemaFields,\n} from '@wix/metro-public-utils';\nimport { ConverterType, Payload } from './serializer/domain';\nimport { schemaSerializer } from './serializer/serializer';\nimport { protobufConverters } from './serializer/protobuf-converters/converters';\nimport { typeToConverterSet } from './serializer/utils';\n\nconst ambassadorConverters = typeToConverterSet([...protobufConverters]);\n\nexport type { GoogleProtoDuration } from './serializer/protobuf-converters/types';\n\nexport function serializer<T>(\n rootSchema: RenderedLeanSchemaFields,\n depSchemas: RenderedLeanSchema = {},\n) {\n const transform = schemaSerializer(\n rootSchema,\n depSchemas,\n ambassadorConverters,\n );\n\n return {\n fromJSON(jsonOrString: Payload | string): T {\n const jsonOrText = safeJsonParse(jsonOrString) || jsonOrString;\n return transform(jsonOrText, ConverterType.FROM_JSON) as T;\n },\n\n toJSON(json: T) {\n return transform(json, ConverterType.TO_JSON) as Payload;\n },\n };\n}\n\nfunction safeJsonParse(someString: string): any {\n try {\n return JSON.parse(someString);\n } catch (error) {}\n}\n","export enum ConverterType {\n TO_JSON,\n FROM_JSON,\n}\n\nexport type Payload = any;\n\nexport type Converter = {\n transform: (val: any) => any;\n checkRepetable?: (val: any) => boolean;\n};\n\nexport type ConverterSet = {\n types: string[];\n [ConverterType.FROM_JSON]: Converter;\n [ConverterType.TO_JSON]: Converter;\n};\n\nexport type TypeToConverterSet = Record<string, ConverterSet>;\n","import type {\n RenderedLeanSchemaFields,\n RenderedLeanSchema,\n} from '@wix/metro-public-utils';\nimport { parseLeanSchemaRef } from '..';\nimport { ConverterType, Payload, TypeToConverterSet } from './domain';\n\nexport function schemaSerializer(\n rootSchema: RenderedLeanSchemaFields,\n depSchemas: RenderedLeanSchema = {},\n converterSets: TypeToConverterSet,\n) {\n return function serialize(\n json: Payload = {},\n converterType: ConverterType,\n ): Payload {\n return typeof json === 'string' ? json : transformSchema(rootSchema, json);\n\n function transformSchema(\n schema: RenderedLeanSchemaFields,\n payload: any,\n ): Payload {\n const result = {} as Payload;\n if ([null, undefined].includes(payload)) {\n return payload;\n }\n\n Object.entries(payload).forEach(([key, val]) => {\n const renderedSchemaName = schema[key];\n const { schemaName, schemaType } =\n parseLeanSchemaRef(renderedSchemaName);\n\n const isMap = schemaType === 'Map';\n const isRepeatable =\n getConverter(schemaName)?.checkRepetable?.(val) ?? Array.isArray(val);\n\n let parsedValue;\n\n if (isRepeatable) {\n parsedValue = (val as any[]).map((v) => applyField(v, schemaName));\n } else if (isMap) {\n parsedValue = applyFieldOnMap(val, schemaName);\n } else {\n parsedValue = applyField(val, schemaName);\n }\n\n result[key] = parsedValue;\n });\n\n return result;\n }\n\n function applyField(val: unknown, schemaOrSerializer?: string) {\n if (!schemaOrSerializer) {\n return val;\n }\n\n const maybeSchema = depSchemas[schemaOrSerializer];\n const maybeConverter = getConverter(schemaOrSerializer);\n\n if (maybeConverter) {\n return getConverter(schemaOrSerializer).transform(val);\n } else if (maybeSchema) {\n return transformSchema(maybeSchema, val);\n }\n\n throw new Error(\n `${schemaOrSerializer} is neither schema nor serializable type`,\n );\n }\n\n function getConverter(name: string) {\n return converterSets[name]?.[converterType];\n }\n\n function applyFieldOnMap(val: any, sanitizedSchemaOrSerializer: string) {\n return Object.entries(val).reduce<Record<string, any>>(\n (acc, [propertyName, value]) => {\n acc[propertyName] = applyField(value, sanitizedSchemaOrSerializer);\n return acc;\n },\n {},\n );\n }\n };\n}\n","import { ConverterSet } from '../domain';\nimport { timestamp } from './timestamp';\nimport { fieldMask } from './field-mask';\nimport { bytes } from './bytes';\nimport { duration } from './duration';\nimport { float } from './float';\n\nexport const protobufConverters: ConverterSet[] = [\n timestamp,\n fieldMask,\n bytes,\n duration,\n float,\n];\n","import { ConverterSet, ConverterType } from '../domain';\n\nexport const timestamp: ConverterSet = {\n types: ['google.protobuf.Timestamp'],\n\n [ConverterType.TO_JSON]: {\n transform: (val: Date | string) => {\n if (typeof val === 'string' || !val) {\n return val;\n }\n return val.toISOString();\n },\n },\n\n [ConverterType.FROM_JSON]: {\n transform: (val: string) => (val ? new Date(val) : val),\n },\n};\n","import { ConverterSet, ConverterType } from '../domain';\n\nexport const fieldMask: ConverterSet = {\n types: ['google.protobuf.FieldMask'],\n\n [ConverterType.TO_JSON]: {\n transform: (val: string[]) => val.join(','),\n\n /**\n * This one handles cases where we have a repeated google.protobuf.FieldMask type,\n * so it will look like: [['foo', 'bar'], ['qux']].\n *\n * The problem is that the serializer detects it as an array with actual fields (strings),\n * while in practice it is an array of multiple google.protobuf.FieldMask.\n *\n * We should determine if the items are actual fields (so each item is a string),\n * or arrays of google.protobuf.FieldMask (so each item is array that has items with fields).\n *\n * Another approach could be marking on the schama itseld each field if it's a repeatable or not,\n * it's not a good appraoch, but as long as google.protobuf.FieldMask is our only issue, it's\n * not _that_ bad solution.\n */\n checkRepetable: (val: string[] | string[][]) => {\n return val.some((v: string | string[]) => Array.isArray(v));\n },\n },\n\n [ConverterType.FROM_JSON]: {\n transform: (val: string | { paths: string[] }) => {\n /**\n * Support Scala FW JSON mapping bug, for more details see:\n *\n * https://github.com/wix-private/server-infra/issues/17953\n */\n if (typeof val === 'object') {\n return val.paths;\n }\n\n return val.split(',');\n },\n },\n};\n","import { ConverterSet, ConverterType } from '../domain';\n\nexport const bytes: ConverterSet = {\n types: ['google.protobuf.BytesValue', 'BYTES'],\n\n [ConverterType.TO_JSON]: {\n transform: (val: number[]) => {\n const chars = val.reduce((res, c) => res + String.fromCharCode(c), '');\n\n return btoa(chars);\n },\n },\n\n [ConverterType.FROM_JSON]: {\n transform: (val: string) => {\n return Uint8Array.from(atob(val), (c) => c.charCodeAt(0));\n },\n },\n};\n","import { ConverterSet, ConverterType } from '../domain';\nimport { GoogleProtoDuration } from './types';\n\nexport const duration: ConverterSet = {\n types: ['google.protobuf.Duration'],\n\n [ConverterType.TO_JSON]: {\n transform: ({ seconds = '0', nanos = 0 }: GoogleProtoDuration) => {\n let nanosPortion = '';\n\n if (nanos !== 0) {\n nanosPortion = `.${nanos.toString().padStart(9, '0')}`;\n }\n\n return `${seconds}${nanosPortion}s`;\n },\n },\n\n [ConverterType.FROM_JSON]: {\n transform: (val: string): GoogleProtoDuration => {\n const [seconds, nanos] = val.substring(0, val.length - 1).split('.');\n\n return {\n seconds,\n nanos: nanosForString(nanos),\n };\n },\n },\n};\n\nfunction nanosForString(nanos: string) {\n let res = 0;\n\n if (nanos !== undefined) {\n const precision = 3 - nanos.length / 3;\n res = parseInt(nanos, 10) * Math.pow(1000, precision);\n }\n\n return res;\n}\n","import { ConverterSet, ConverterType } from '../domain';\n\nexport const float: ConverterSet = {\n types: [\n 'FLOAT',\n 'DOUBLE',\n 'google.protobuf.FloatValue',\n 'google.protobuf.DoubleValue',\n ],\n\n [ConverterType.TO_JSON]: {\n transform: (val: number) => {\n return isFinite(val) ? val : val.toString();\n },\n },\n\n [ConverterType.FROM_JSON]: {\n transform: (val: string | number) => {\n if (val === 'NaN') {\n return NaN;\n }\n\n if (val === 'Infinity') {\n return Infinity;\n }\n\n if (val === '-Infinity') {\n return -Infinity;\n }\n\n return val;\n },\n },\n};\n","import { TypeToConverterSet, ConverterSet } from './domain';\n\nexport function typeToConverterSet(\n converterSets: ConverterSet[],\n): TypeToConverterSet {\n return converterSets.reduce((result, converterSet) => {\n const types = converterSet.types.reduce((typeResult, type) => {\n return {\n ...typeResult,\n [type]: converterSet,\n };\n }, {} as TypeToConverterSet);\n\n return {\n ...result,\n ...types,\n };\n }, {} as TypeToConverterSet);\n}\n",null,"import { CliError, CliErrorCode } from '@wix/cli-error';\nimport type { IHttpClient, Headers } from '@wix/http-client';\nimport { createHttpClient as createHttpClientOriginal } from '@wix/http-client';\nimport { isHttpError } from './is-http-error.js';\n\nexport interface CreateHttpClientOptions {\n getAppToken?: () => Promise<string>;\n createHeaders?: () => Headers;\n\n type: keyof typeof baseUrls;\n}\n\nconst baseUrls = {\n backoffice: 'https://manage.wix.com',\n editor: 'https://editor.wix.com',\n code: 'https://code.wix.com',\n general: 'https://www.wix.com',\n api: 'https://www.wixapis.com',\n standalone: undefined,\n};\n\nfunction interceptRequest<P extends unknown[], R>(\n client: IHttpClient,\n fn: (...args: P) => Promise<R>\n) {\n return (...args: P) =>\n fn.apply(client, args).catch((error: unknown) => {\n if (isHttpError(error) && !client.isCancel(error) && !error.response) {\n // Network error\n throw new CliError({\n code: CliErrorCode.NetworkError(),\n cause: error,\n info: { code: error.code },\n });\n }\n\n throw error;\n });\n}\n\nexport function createHttpClient({\n getAppToken,\n createHeaders,\n type,\n}: CreateHttpClientOptions): IHttpClient {\n const client = createHttpClientOriginal({\n baseURL: baseUrls[type],\n ...(type !== 'standalone'\n ? {\n getAppToken,\n }\n : {}),\n createHeaders: () => ({\n ...createHeaders?.(),\n // See https://wix.slack.com/archives/C0JLGMT28/p1667219337530909\n 'X-XSRF-TOKEN': 'nocheck',\n Cookie: 'XSRF-TOKEN=nocheck',\n 'User-Agent': 'wix-cli',\n }),\n });\n\n return {\n ...client,\n request: interceptRequest(client, client.request),\n get: interceptRequest(client, client.get),\n delete: interceptRequest(client, client.delete),\n head: interceptRequest(client, client.head),\n options: interceptRequest(client, client.options),\n post: interceptRequest(client, client.post),\n put: interceptRequest(client, client.put),\n patch: interceptRequest(client, client.patch),\n };\n}\n","import { z } from 'zod';\nimport type { IHttpError } from '@wix/http-client';\nimport { HttpClient } from '@wix/http-client';\nimport { CliError, CliErrorCode } from '@wix/cli-error';\n\ntype HttpErrorResponse =\n | {\n message?: string;\n error?: string;\n details?: {\n applicationError?: object;\n validationError?: object;\n };\n }\n | undefined;\n\nexport function isHttpError(\n error: unknown\n): error is IHttpError<HttpErrorResponse> {\n return HttpClient.isHttpError(error);\n}\n\nconst validationErrorSchema = z.object({\n details: z.object({\n validationError: z.object({\n fieldViolations: z\n .array(\n z.object({\n description: z.string(),\n field: z.string(),\n })\n )\n .nonempty(),\n }),\n }),\n});\n\ntype HttpValidationErrorResponse = z.infer<typeof validationErrorSchema>;\n\nexport function isHttpValidationError(\n error: IHttpError<HttpErrorResponse>\n): error is IHttpError<HttpValidationErrorResponse> {\n if (error.response?.data?.details?.validationError) {\n const result = validationErrorSchema.safeParse(error.response.data);\n\n if (result.success) {\n return true;\n }\n\n throw new CliError({\n cause: error,\n code: CliErrorCode.FailedToParseHttpErrorResponse(),\n info: {\n zodError: result.error,\n },\n });\n }\n\n return false;\n}\n\nconst applicationErrorSchema = z.object({\n details: z.object({\n applicationError: z.object({\n code: z.string(),\n }),\n }),\n});\n\ntype HttpApplicationErrorResponse = z.infer<typeof applicationErrorSchema>;\n\nexport function isHttpApplicationError(\n error: IHttpError<HttpErrorResponse>\n): error is IHttpError<HttpApplicationErrorResponse> {\n if (error.response?.data?.details?.applicationError) {\n const result = applicationErrorSchema.safeParse(error.response.data);\n\n if (result.success) {\n return true;\n }\n\n throw new CliError({\n cause: error,\n code: CliErrorCode.FailedToParseHttpErrorResponse(),\n info: {\n zodError: result.error,\n },\n });\n }\n\n return false;\n}\n","import { z } from 'zod';\n\nexport const deviceCodeSchema = z.object({\n deviceCode: z.string(),\n verificationUri: z.string().url(),\n userCode: z.string(),\n expiresIn: z.number(),\n});\n\nexport type DeviceCodeResponse = z.TypeOf<typeof deviceCodeSchema>;\n\nexport const tokenSchema = z\n .object({\n access_token: z.string(),\n refresh_token: z.string(),\n expires_in: z.number(),\n })\n .transform((token) => ({\n accessToken: token.access_token,\n refreshToken: token.refresh_token,\n expiresIn: token.expires_in,\n }));\n\nexport const userInfoSchema = z.object({\n userId: z.string().uuid(),\n email: z.string().email(),\n});\n\nexport type UserInfo = z.TypeOf<typeof userInfoSchema>;\n\nexport const getMyAccountSchema = z.object({\n account: z.object({\n slug: z.string(),\n accountId: z.string().uuid(),\n accountOwner: z.string().uuid(),\n }),\n});\n\nexport const siteAuthSchema = z.object({\n accessToken: z.string(),\n refreshToken: z.string(),\n expiresIn: z.number(),\n issuedAt: z.number(),\n});\n\nexport type SiteAuth = z.TypeOf<typeof siteAuthSchema>;\n\nexport const accountAuthSchema = siteAuthSchema.extend({\n userInfo: userInfoSchema,\n});\n\nexport type AccountAuth = z.TypeOf<typeof accountAuthSchema>;\n\nexport const apiKeyAuthSchema = z.object({\n token: z.string(),\n accountId: z.string().uuid(),\n userInfo: z.object({\n userId: z.string().uuid(),\n email: z.string(),\n }),\n});\n\nexport type ApiKeyAuth = z.TypeOf<typeof apiKeyAuthSchema>;\n","import { unlink, rm } from 'node:fs/promises';\nimport { resolve } from 'node:path';\nimport { getDataDirPath } from '@wix/cli-data-dir';\nimport type { VariantOf } from 'variant';\nimport { match, fields, variant, payload, isType } from 'variant';\nimport { pathExists, readJson, writeJson } from '@wix/cli-fs';\nimport { CliError, CliErrorCode } from '@wix/cli-error';\nimport type { ApiKeyAuth, AccountAuth, SiteAuth, UserInfo } from './schemas.js';\nimport {\n apiKeyAuthSchema,\n accountAuthSchema,\n siteAuthSchema,\n} from './schemas.js';\n\nfunction getLegacyAuthDataFilePath() {\n return resolve(getDataDirPath(), 'auth.json');\n}\n\nfunction getAuthDataFolder() {\n return resolve(getDataDirPath(), 'auth');\n}\n\nfunction getApiKeyAuthDataFilePath() {\n return resolve(getAuthDataFolder(), 'api-key.json');\n}\n\nfunction getAccountAuthDataFilePath() {\n return resolve(getAuthDataFolder(), 'account.json');\n}\n\nfunction getSiteAuthDataFilePath(siteId: string) {\n return resolve(getAuthDataFolder(), `${siteId}.json`);\n}\n\nconst ApiKeyAuthData = variant({\n Authenticated: payload<ApiKeyAuth>(),\n Unauthenticated: {},\n});\n\ntype ApiKeyAuthData = VariantOf<typeof ApiKeyAuthData>;\n\nexport async function readApiKeyAuthData(): Promise<ApiKeyAuthData> {\n const apiKeyAuthDataFilePath = getApiKeyAuthDataFilePath();\n\n if (!(await pathExists(apiKeyAuthDataFilePath))) {\n return ApiKeyAuthData.Unauthenticated();\n }\n\n const apiKeyFileContents = await readJson(apiKeyAuthDataFilePath);\n const savedApiKeyAuthData = apiKeyAuthSchema.parse(apiKeyFileContents);\n\n return ApiKeyAuthData.Authenticated(savedApiKeyAuthData);\n}\n\nexport async function saveApiKeyAuthData(authData: ApiKeyAuth) {\n try {\n const targetFilePath = getApiKeyAuthDataFilePath();\n\n await writeJson(targetFilePath, authData);\n } catch (error) {\n throw new CliError({\n code: CliErrorCode.FailedToSaveApiKeyAuthData(),\n cause: error,\n });\n }\n}\n\nexport const AccountAuthData = variant({\n Authenticated: fields<AccountAuth>(),\n Unauthenticated: {},\n Expired: fields<AccountAuth>(),\n});\nexport type AccountAuthData = VariantOf<typeof AccountAuthData>;\n\nexport async function readAccountAuthData(): Promise<AccountAuthData> {\n const accountAuthDataFilePath = getAccountAuthDataFilePath();\n\n if (!(await pathExists(accountAuthDataFilePath))) {\n return AccountAuthData.Unauthenticated();\n }\n\n const authFileContents = await readJson(accountAuthDataFilePath);\n const savedAccountAuthData = accountAuthSchema.parse(authFileContents);\n\n if (!isValidToken(savedAccountAuthData)) {\n return AccountAuthData.Expired(savedAccountAuthData);\n }\n\n return AccountAuthData.Authenticated(savedAccountAuthData);\n}\n\nconst SiteAuthData = variant({\n Authenticated: fields<SiteAuth>(),\n Unauthenticated: {},\n Expired: fields<SiteAuth>(),\n});\n\ntype SiteAuthData = VariantOf<typeof SiteAuthData>;\n\nexport async function readSiteAuthData(siteId: string): Promise<SiteAuthData> {\n const siteAuthDataFilePath = getSiteAuthDataFilePath(siteId);\n\n if (!(await pathExists(siteAuthDataFilePath))) {\n return SiteAuthData.Unauthenticated();\n }\n\n const authFileContents = await readJson(siteAuthDataFilePath);\n const savedSiteAuthData = siteAuthSchema.parse(authFileContents);\n\n if (!isValidToken(savedSiteAuthData)) {\n return SiteAuthData.Expired(savedSiteAuthData);\n }\n\n return SiteAuthData.Authenticated(savedSiteAuthData);\n}\n\nexport async function saveAuthData(\n authData: AccountAuth | SiteAuth,\n siteId?: string\n) {\n try {\n const targetFilePath = siteId\n ? getSiteAuthDataFilePath(siteId)\n : getAccountAuthDataFilePath();\n\n await writeJson(targetFilePath, authData);\n } catch (error) {\n throw new CliError({\n code: CliErrorCode.FailedToSaveAuthData(),\n cause: error,\n });\n }\n}\n\nexport async function deleteAuthData() {\n try {\n await rm(getAuthDataFolder(), { recursive: true, force: true });\n } catch (error) {\n throw new CliError({\n code: CliErrorCode.FailedToDeleteAuthData(),\n cause: error,\n });\n }\n\n if (await hasLegacyAuthData()) {\n await deleteLegacyAuthData();\n }\n}\n\nasync function deleteLegacyAuthData() {\n try {\n await unlink(getLegacyAuthDataFilePath());\n } catch (error) {\n throw new CliError({\n code: CliErrorCode.FailedToDeleteLegacyAuthData(),\n cause: error,\n });\n }\n}\n\nexport async function hasLegacyAuthData() {\n return pathExists(getLegacyAuthDataFilePath());\n}\n\nexport function isValidToken(authData: {\n expiresIn: number;\n issuedAt: number;\n}): boolean {\n const currentTimestamp = Math.floor(Date.now() / 1000);\n const tokenOffset = 10 * 60; // 10 minutes\n const tokenLifetime = authData.expiresIn - tokenOffset;\n const tokenGenerationTimestamp = authData.issuedAt;\n\n return tokenGenerationTimestamp + tokenLifetime > currentTimestamp;\n}\n\nexport async function getUserInfo(): Promise<UserInfo | null> {\n const apiKeyAuthData = await readApiKeyAuthData();\n\n if (isType(apiKeyAuthData, ApiKeyAuthData.Authenticated)) {\n return apiKeyAuthData.payload.userInfo;\n }\n\n const accountAuthData = await readAccountAuthData();\n return match(accountAuthData, {\n Authenticated: ({ userInfo }) => userInfo,\n Expired: ({ userInfo }) => userInfo,\n Unauthenticated: () => null,\n });\n}\n","import pLimit from 'p-limit';\nimport { match, constant, isType } from 'variant';\nimport pWaitFor, { TimeoutError } from 'p-wait-for';\nimport { CliError, CliErrorCode } from '@wix/cli-error';\nimport { getTestOverrides } from '@wix/cli-test-overrides';\nimport type { AccountAuth, DeviceCodeResponse } from '../schemas.js';\nimport {\n client,\n RenewTokenData,\n DeviceCodeNotYetVerifiedError,\n} from '../client.js';\nimport {\n isValidToken,\n deleteAuthData,\n readAccountAuthData,\n saveAuthData,\n} from '../auth-data.js';\nimport type { AuthStrategyState, AuthStrategy } from './auth-strategy-types.js';\nimport { apiKeyAuthStrategy } from './api-key-auth-strategy.js';\n\nconst seconds = (n: number) => 1000 * n;\n\nasync function waitForLogin(\n { deviceCode, expiresIn }: DeviceCodeResponse,\n { signal }: { signal: AbortSignal }\n) {\n try {\n const authData = await pWaitFor(\n async () => {\n try {\n const tokenData = await client.createToken({\n deviceCode,\n });\n\n return pWaitFor.resolveWith(tokenData);\n } catch (error) {\n if (error instanceof DeviceCodeNotYetVerifiedError) {\n // continue polling\n return false;\n }\n\n throw error;\n }\n },\n {\n interval: getTestOverrides().waitForLoginInterval ?? seconds(3),\n timeout: { milliseconds: seconds(expiresIn), signal },\n }\n );\n\n const userInfo = await client.userInfo({\n accessToken: authData.accessToken,\n });\n\n const result = { ...authData, userInfo };\n\n await deleteAuthData();\n await saveAuthData(result);\n\n return result;\n } catch (error) {\n if (error instanceof TimeoutError) {\n throw new CliError({\n code: CliErrorCode.DeviceCodeTimedOut(),\n cause: error,\n });\n }\n\n throw error;\n }\n}\n\nasync function renewAccountAuth({ refreshToken, userInfo }: AccountAuth) {\n const renewTokenResult = await client.renewToken({ refreshToken });\n\n if (isType(renewTokenResult, RenewTokenData.TokenRenewed)) {\n await saveAuthData({ ...renewTokenResult.payload, userInfo });\n }\n\n return renewTokenResult;\n}\n\nasync function getNonExpiredAccountAuth(): Promise<AccountAuth | null> {\n const accountAuthStatus = await readAccountAuthData();\n\n return match(accountAuthStatus, {\n Authenticated: (accountAuth) => accountAuth,\n Unauthenticated: () => null,\n Expired: async (accountAuth) => {\n const renewTokenResult = await renewAccountAuth(accountAuth);\n\n return match(renewTokenResult, {\n TokenRenewed: ({ payload: newTokenData }) => ({\n ...newTokenData,\n userInfo: accountAuth.userInfo,\n }),\n RefreshTokenRevoked: constant(null),\n });\n },\n });\n}\n\nfunction createAccountAuthState({\n userInfo,\n ...initialTokenData\n}: AccountAuth): AuthStrategyState {\n const limiter = pLimit(1);\n let tokenData = { ...initialTokenData };\n\n return {\n getAccessToken: () => {\n return limiter(async () => {\n if (isValidToken(tokenData)) {\n return tokenData.accessToken;\n }\n\n const renewTokenResult = await renewAccountAuth({\n ...tokenData,\n userInfo,\n });\n\n return match(renewTokenResult, {\n TokenRenewed: ({ payload: newTokenData }) => {\n tokenData = newTokenData;\n return tokenData.accessToken;\n },\n RefreshTokenRevoked: ({ cause }) => {\n throw new CliError({\n code: CliErrorCode.FailedToRenewAuthTokenRefreshTokenRevoked(),\n cause,\n });\n },\n });\n });\n },\n getRefreshToken: () => tokenData.refreshToken,\n userInfo,\n };\n}\n\nexport const accountAuthStrategy: AuthStrategy = {\n async isLoggedIn() {\n const apiKeyAuth = await apiKeyAuthStrategy.isLoggedIn();\n\n if (apiKeyAuth) {\n return apiKeyAuth;\n }\n\n const accountAuth = await getNonExpiredAccountAuth();\n\n if (accountAuth) {\n return createAccountAuthState(accountAuth);\n }\n\n return null;\n },\n async login({ deviceCode, signal }) {\n const accountAuth = await waitForLogin(deviceCode, { signal });\n\n return createAccountAuthState(accountAuth);\n },\n};\n","import Queue from 'yocto-queue';\n\nexport default function pLimit(concurrency) {\n\tvalidateConcurrency(concurrency);\n\n\tconst queue = new Queue();\n\tlet activeCount = 0;\n\n\tconst resumeNext = () => {\n\t\tif (activeCount < concurrency && queue.size > 0) {\n\t\t\tqueue.dequeue()();\n\t\t\t// Since `pendingCount` has been decreased by one, increase `activeCount` by one.\n\t\t\tactiveCount++;\n\t\t}\n\t};\n\n\tconst next = () => {\n\t\tactiveCount--;\n\n\t\tresumeNext();\n\t};\n\n\tconst run = async (function_, resolve, arguments_) => {\n\t\tconst result = (async () => function_(...arguments_))();\n\n\t\tresolve(result);\n\n\t\ttry {\n\t\t\tawait result;\n\t\t} catch {}\n\n\t\tnext();\n\t};\n\n\tconst enqueue = (function_, resolve, arguments_) => {\n\t\t// Queue `internalResolve` instead of the `run` function\n\t\t// to preserve asynchronous context.\n\t\tnew Promise(internalResolve => {\n\t\t\tqueue.enqueue(internalResolve);\n\t\t}).then(\n\t\t\trun.bind(undefined, function_, resolve, arguments_),\n\t\t);\n\n\t\t(async () => {\n\t\t\t// This function needs to wait until the next microtask before comparing\n\t\t\t// `activeCount` to `concurrency`, because `activeCount` is updated asynchronously\n\t\t\t// after the `internalResolve` function is dequeued and called. The comparison in the if-statement\n\t\t\t// needs to happen asynchronously as well to get an up-to-date value for `activeCount`.\n\t\t\tawait Promise.resolve();\n\n\t\t\tif (activeCount < concurrency) {\n\t\t\t\tresumeNext();\n\t\t\t}\n\t\t})();\n\t};\n\n\tconst generator = (function_, ...arguments_) => new Promise(resolve => {\n\t\tenqueue(function_, resolve, arguments_);\n\t});\n\n\tObject.defineProperties(generator, {\n\t\tactiveCount: {\n\t\t\tget: () => activeCount,\n\t\t},\n\t\tpendingCount: {\n\t\t\tget: () => queue.size,\n\t\t},\n\t\tclearQueue: {\n\t\t\tvalue() {\n\t\t\t\tqueue.clear();\n\t\t\t},\n\t\t},\n\t\tconcurrency: {\n\t\t\tget: () => concurrency,\n\n\t\t\tset(newConcurrency) {\n\t\t\t\tvalidateConcurrency(newConcurrency);\n\t\t\t\tconcurrency = newConcurrency;\n\n\t\t\t\tqueueMicrotask(() => {\n\t\t\t\t\t// eslint-disable-next-line no-unmodified-loop-condition\n\t\t\t\t\twhile (activeCount < concurrency && queue.size > 0) {\n\t\t\t\t\t\tresumeNext();\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t},\n\t\t},\n\t});\n\n\treturn generator;\n}\n\nexport function limitFunction(function_, option) {\n\tconst {concurrency} = option;\n\tconst limit = pLimit(concurrency);\n\n\treturn (...arguments_) => limit(() => function_(...arguments_));\n}\n\nfunction validateConcurrency(concurrency) {\n\tif (!((Number.isInteger(concurrency) || concurrency === Number.POSITIVE_INFINITY) && concurrency > 0)) {\n\t\tthrow new TypeError('Expected `concurrency` to be a number from 1 and up');\n\t}\n}\n","/*\nHow it works:\n`this.#head` is an instance of `Node` which keeps track of its current value and nests another instance of `Node` that keeps the value that comes after it. When a value is provided to `.enqueue()`, the code needs to iterate through `this.#head`, going deeper and deeper to find the last value. However, iterating through every single item is slow. This problem is solved by saving a reference to the last value as `this.#tail` so that it can reference it to add a new value.\n*/\n\nclass Node {\n\tvalue;\n\tnext;\n\n\tconstructor(value) {\n\t\tthis.value = value;\n\t}\n}\n\nexport default class Queue {\n\t#head;\n\t#tail;\n\t#size;\n\n\tconstructor() {\n\t\tthis.clear();\n\t}\n\n\tenqueue(value) {\n\t\tconst node = new Node(value);\n\n\t\tif (this.#head) {\n\t\t\tthis.#tail.next = node;\n\t\t\tthis.#tail = node;\n\t\t} else {\n\t\t\tthis.#head = node;\n\t\t\tthis.#tail = node;\n\t\t}\n\n\t\tthis.#size++;\n\t}\n\n\tdequeue() {\n\t\tconst current = this.#head;\n\t\tif (!current) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.#head = this.#head.next;\n\t\tthis.#size--;\n\t\treturn current.value;\n\t}\n\n\tpeek() {\n\t\tif (!this.#head) {\n\t\t\treturn;\n\t\t}\n\n\t\treturn this.#head.value;\n\n\t\t// TODO: Node.js 18.\n\t\t// return this.#head?.value;\n\t}\n\n\tclear() {\n\t\tthis.#head = undefined;\n\t\tthis.#tail = undefined;\n\t\tthis.#size = 0;\n\t}\n\n\tget size() {\n\t\treturn this.#size;\n\t}\n\n\t* [Symbol.iterator]() {\n\t\tlet current = this.#head;\n\n\t\twhile (current) {\n\t\t\tyield current.value;\n\t\t\tcurrent = current.next;\n\t\t}\n\t}\n}\n","import pTimeout from 'p-timeout';\n\nconst resolveValue = Symbol('resolveValue');\n\nexport default async function pWaitFor(condition, options = {}) {\n\tconst {\n\t\tinterval = 20,\n\t\ttimeout = Number.POSITIVE_INFINITY,\n\t\tbefore = true,\n\t} = options;\n\n\tlet retryTimeout;\n\tlet abort = false;\n\n\tconst promise = new Promise((resolve, reject) => {\n\t\tconst check = async () => {\n\t\t\ttry {\n\t\t\t\tconst value = await condition();\n\n\t\t\t\tif (typeof value === 'object' && value[resolveValue]) {\n\t\t\t\t\tresolve(value[resolveValue]);\n\t\t\t\t} else if (typeof value !== 'boolean') {\n\t\t\t\t\tthrow new TypeError('Expected condition to return a boolean');\n\t\t\t\t} else if (value === true) {\n\t\t\t\t\tresolve();\n\t\t\t\t} else if (!abort) {\n\t\t\t\t\tretryTimeout = setTimeout(check, interval);\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\treject(error);\n\t\t\t}\n\t\t};\n\n\t\tif (before) {\n\t\t\tcheck();\n\t\t} else {\n\t\t\tretryTimeout = setTimeout(check, interval);\n\t\t}\n\t});\n\n\tif (timeout === Number.POSITIVE_INFINITY) {\n\t\treturn promise;\n\t}\n\n\ttry {\n\t\treturn await pTimeout(promise, typeof timeout === 'number' ? {milliseconds: timeout} : timeout);\n\t} finally {\n\t\tabort = true;\n\t\tclearTimeout(retryTimeout);\n\t}\n}\n\npWaitFor.resolveWith = value => ({[resolveValue]: value});\n\nexport {TimeoutError} from 'p-timeout';\n","export class TimeoutError extends Error {\n\tconstructor(message) {\n\t\tsuper(message);\n\t\tthis.name = 'TimeoutError';\n\t}\n}\n\n/**\nAn error to be thrown when the request is aborted by AbortController.\nDOMException is thrown instead of this Error when DOMException is available.\n*/\nexport class AbortError extends Error {\n\tconstructor(message) {\n\t\tsuper();\n\t\tthis.name = 'AbortError';\n\t\tthis.message = message;\n\t}\n}\n\n/**\nTODO: Remove AbortError and just throw DOMException when targeting Node 18.\n*/\nconst getDOMException = errorMessage => globalThis.DOMException === undefined\n\t? new AbortError(errorMessage)\n\t: new DOMException(errorMessage);\n\n/**\nTODO: Remove below function and just 'reject(signal.reason)' when targeting Node 18.\n*/\nconst getAbortedReason = signal => {\n\tconst reason = signal.reason === undefined\n\t\t? getDOMException('This operation was aborted.')\n\t\t: signal.reason;\n\n\treturn reason instanceof Error ? reason : getDOMException(reason);\n};\n\nexport default function pTimeout(promise, options) {\n\tconst {\n\t\tmilliseconds,\n\t\tfallback,\n\t\tmessage,\n\t\tcustomTimers = {setTimeout, clearTimeout},\n\t} = options;\n\n\tlet timer;\n\tlet abortHandler;\n\n\tconst wrappedPromise = new Promise((resolve, reject) => {\n\t\tif (typeof milliseconds !== 'number' || Math.sign(milliseconds) !== 1) {\n\t\t\tthrow new TypeError(`Expected \\`milliseconds\\` to be a positive number, got \\`${milliseconds}\\``);\n\t\t}\n\n\t\tif (options.signal) {\n\t\t\tconst {signal} = options;\n\t\t\tif (signal.aborted) {\n\t\t\t\treject(getAbortedReason(signal));\n\t\t\t}\n\n\t\t\tabortHandler = () => {\n\t\t\t\treject(getAbortedReason(signal));\n\t\t\t};\n\n\t\t\tsignal.addEventListener('abort', abortHandler, {once: true});\n\t\t}\n\n\t\tif (milliseconds === Number.POSITIVE_INFINITY) {\n\t\t\tpromise.then(resolve, reject);\n\t\t\treturn;\n\t\t}\n\n\t\t// We create the error outside of `setTimeout` to preserve the stack trace.\n\t\tconst timeoutError = new TimeoutError();\n\n\t\ttimer = customTimers.setTimeout.call(undefined, () => {\n\t\t\tif (fallback) {\n\t\t\t\ttry {\n\t\t\t\t\tresolve(fallback());\n\t\t\t\t} catch (error) {\n\t\t\t\t\treject(error);\n\t\t\t\t}\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (typeof promise.cancel === 'function') {\n\t\t\t\tpromise.cancel();\n\t\t\t}\n\n\t\t\tif (message === false) {\n\t\t\t\tresolve();\n\t\t\t} else if (message instanceof Error) {\n\t\t\t\treject(message);\n\t\t\t} else {\n\t\t\t\ttimeoutError.message = message ?? `Promise timed out after ${milliseconds} milliseconds`;\n\t\t\t\treject(timeoutError);\n\t\t\t}\n\t\t}, milliseconds);\n\n\t\t(async () => {\n\t\t\ttry {\n\t\t\t\tresolve(await promise);\n\t\t\t} catch (error) {\n\t\t\t\treject(error);\n\t\t\t}\n\t\t})();\n\t});\n\n\tconst cancelablePromise = wrappedPromise.finally(() => {\n\t\tcancelablePromise.clear();\n\t\tif (abortHandler && options.signal) {\n\t\t\toptions.signal.removeEventListener('abort', abortHandler);\n\t\t}\n\t});\n\n\tcancelablePromise.clear = () => {\n\t\tcustomTimers.clearTimeout.call(undefined, timer);\n\t\ttimer = undefined;\n\t};\n\n\treturn cancelablePromise;\n}\n","import pLimit from 'p-limit';\nimport { match, matcher, variant, payload, fields, isType } from 'variant';\nimport { CliError, CliErrorCode } from '@wix/cli-error';\nimport type { HttpError } from '@wix/cli-http-client';\nimport type { SiteAuth, UserInfo } from '../schemas.js';\nimport { client, RenewTokenData } from '../client.js';\nimport { isValidToken, readSiteAuthData, saveAuthData } from '../auth-data.js';\nimport type { AuthStrategyState, AuthStrategy } from './auth-strategy-types.js';\nimport { apiKeyAuthStrategy } from './api-key-auth-strategy.js';\nimport { accountAuthStrategy } from './account-auth-strategy.js';\n\nasync function renewSiteAuth({\n accountRefreshToken,\n siteId,\n}: {\n accountRefreshToken: string;\n siteId: string;\n}) {\n const renewTokenResult = await client.renewToken({\n refreshToken: accountRefreshToken,\n siteId,\n });\n\n if (isType(renewTokenResult, RenewTokenData.TokenRenewed)) {\n await saveAuthData(renewTokenResult.payload, siteId);\n }\n\n return renewTokenResult;\n}\n\nconst AuthenticationResult = variant({\n Ok: payload<SiteAuth>(),\n RefreshTokenRevoked: fields<{ cause: HttpError }>(),\n});\nasync function ensureAuthenticatedToSite({\n siteId,\n accountRefreshToken,\n}: {\n siteId: string;\n accountRefreshToken: string;\n}) {\n const siteAuthStatus = await readSiteAuthData(siteId);\n\n return matcher(siteAuthStatus)\n .with({ Authenticated: (data) => AuthenticationResult.Ok(data) })\n .when(['Unauthenticated', 'Expired'], async () => {\n const renewTokenResult = await renewSiteAuth({\n accountRefreshToken,\n siteId,\n });\n\n return match(renewTokenResult, {\n TokenRenewed: ({ payload }) => AuthenticationResult.Ok(payload),\n RefreshTokenRevoked: ({ cause }) => {\n return AuthenticationResult.RefreshTokenRevoked({ cause });\n },\n });\n })\n .complete();\n}\n\nfunction createSiteAuthState({\n siteAuth: initialTokenData,\n accountRefreshToken,\n siteId,\n userInfo,\n}: {\n siteId: string;\n accountRefreshToken: string;\n userInfo: UserInfo;\n siteAuth: SiteAuth;\n}): AuthStrategyState {\n const limiter = pLimit(1);\n let tokenData = { ...initialTokenData };\n\n return {\n getAccessToken: () => {\n return limiter(async () => {\n if (isValidToken(tokenData)) {\n return tokenData.accessToken;\n }\n\n const renewTokenResult = await renewSiteAuth({\n accountRefreshToken,\n siteId,\n });\n\n return match(renewTokenResult, {\n TokenRenewed: ({ payload: newTokenData }) => {\n tokenData = newTokenData;\n return tokenData.accessToken;\n },\n RefreshTokenRevoked: ({ cause }) => {\n throw new CliError({\n code: CliErrorCode.FailedToRenewAuthTokenRefreshTokenRevoked(),\n cause,\n });\n },\n });\n });\n },\n getRefreshToken: () => tokenData.refreshToken,\n userInfo,\n };\n}\n\nexport const createSiteAuthStrategy = (siteId: string): AuthStrategy => ({\n async isLoggedIn() {\n const apiKeyAuth = await apiKeyAuthStrategy.isLoggedIn({ siteId });\n\n if (apiKeyAuth) {\n return apiKeyAuth;\n }\n\n const accountAuth = await accountAuthStrategy.isLoggedIn();\n\n if (accountAuth) {\n const accountRefreshToken = accountAuth.getRefreshToken();\n const siteAuthResult = await ensureAuthenticatedToSite({\n siteId,\n accountRefreshToken,\n });\n\n if (isType(siteAuthResult, AuthenticationResult.Ok)) {\n return createSiteAuthState({\n siteId,\n siteAuth: siteAuthResult.payload,\n accountRefreshToken,\n userInfo: accountAuth.userInfo,\n });\n }\n }\n\n return null;\n },\n async login({ deviceCode, signal }) {\n const accountAuth = await accountAuthStrategy.login({ deviceCode, signal });\n const accountRefreshToken = accountAuth.getRefreshToken();\n const siteAuthResult = await ensureAuthenticatedToSite({\n siteId,\n accountRefreshToken,\n });\n\n return match(siteAuthResult, {\n Ok: ({ payload: siteAuth }) => {\n return createSiteAuthState({\n siteId,\n siteAuth,\n accountRefreshToken,\n userInfo: accountAuth.userInfo,\n });\n },\n RefreshTokenRevoked: ({ cause }) => {\n throw new CliError({\n code: CliErrorCode.FailedToRenewAuthTokenRefreshTokenRevoked(),\n cause,\n });\n },\n });\n },\n});\n","import { isType } from 'variant';\nimport {\n deleteAuthData,\n readAccountAuthData,\n AccountAuthData,\n} from './auth-data.js';\nimport { client } from './client.js';\n\nexport async function logout() {\n const authData = await readAccountAuthData();\n if (!isType(authData, AccountAuthData.Unauthenticated)) {\n await client.revokeRefreshToken(\n { token: authData.refreshToken },\n authData.userInfo\n );\n }\n\n await deleteAuthData();\n\n return null;\n}\n","import { useContext } from 'react';\nimport { AuthContext } from './context.js';\nimport type { AuthState } from './context.js';\n\nexport function useAuth(): AuthState {\n const context = useContext(AuthContext);\n\n if (!context) {\n throw new Error('useAuth() cannot be used without an <AuthProvider>');\n }\n\n return context;\n}\n","import { createContext } from 'react';\nimport type { AuthStrategyState } from './auth-strategies/index.js';\n\nexport type AuthState = Pick<\n AuthStrategyState,\n 'getAccessToken' | 'getRequestHeaders' | 'userInfo'\n>;\n\nexport const AuthContext = createContext<AuthState | null>(null);\n","import React from 'react';\nimport type { FC } from 'react';\nimport { Spinner, useAsync } from '@wix/cli-ui-kit';\nimport { useBiLogger } from '@wix/cli-telemetry-react';\nimport { wixCliLoginStart, wixCliLoginEnd } from '@wix/bi-logger-wix-cli/v2';\nimport { match } from 'variant';\nimport { apiKeyAuthStrategy } from '../auth-strategies/index.js';\nimport type { AuthStrategyState } from '../auth-strategies/index.js';\n\ninterface Props {\n token: string;\n onLogin: (data: AuthStrategyState) => void;\n onError: (error: unknown) => void;\n}\n\nexport const ApiKeyLogin: FC<Props> = ({ token, onLogin, onError }) => {\n const biLogger = useBiLogger();\n\n const { status } = useAsync(\n async () => {\n void biLogger.report(wixCliLoginStart({}));\n\n return apiKeyAuthStrategy.login({ token });\n },\n [],\n {\n onSuccess: (authData) => {\n void biLogger.report(\n wixCliLoginEnd({\n isSuccess: true,\n })\n );\n onLogin(authData);\n },\n onError: (error) => {\n void biLogger.report(\n wixCliLoginEnd({\n isSuccess: false,\n ...(error instanceof Error\n ? {\n errorType: error.name,\n }\n : {\n errorType: 'unknown',\n errorMessage: JSON.stringify(error),\n }),\n })\n );\n\n onError(error);\n },\n }\n );\n\n return match(status, {\n Error: () => null,\n Loading: () => <Spinner />,\n Success: () => null,\n });\n};\n","import React from 'react';\nimport type { FC } from 'react';\nimport { Spinner, useAsync, useAsyncCallback } from '@wix/cli-ui-kit';\nimport { I18nProvider } from '@wix/cli-i18n';\nimport { useBiLogger } from '@wix/cli-telemetry-react';\nimport { wixCliLoginStart, wixCliLoginEnd } from '@wix/bi-logger-wix-cli/v2';\nimport { match } from 'variant';\nimport type { DeviceCodeResponse } from '../schemas.js';\nimport messages from '../messages.json' with { type: 'json' };\nimport { accountAuthStrategy } from '../auth-strategies/index.js';\nimport type {\n AuthStrategy,\n AuthStrategyState,\n} from '../auth-strategies/index.js';\nimport { LoginInstructions } from './LoginInstructions.js';\nimport { client } from '../client.js';\n\ninterface Props {\n loginFn: AuthStrategy['login'];\n onLogin: (data: AuthStrategyState) => void;\n onError: (error: unknown) => void;\n}\n\nexport const Login: FC<Props> = ({ loginFn, onLogin, onError }) => {\n const biLogger = useBiLogger();\n\n function handleError(error: unknown) {\n void biLogger.report(\n wixCliLoginEnd({\n isSuccess: false,\n ...(error instanceof Error\n ? {\n errorType: error.name,\n }\n : {\n errorType: 'unknown',\n errorMessage: JSON.stringify(error),\n }),\n })\n );\n\n onError(error);\n }\n\n const loginAction = useAsyncCallback(\n async ({ signal }, deviceCodeResponse: DeviceCodeResponse) => {\n try {\n const authData = await loginFn({\n deviceCode: deviceCodeResponse,\n signal,\n });\n void biLogger.report(\n wixCliLoginEnd({\n isSuccess: true,\n })\n );\n onLogin(authData);\n } catch (error) {\n handleError(error);\n }\n }\n );\n\n const { status } = useAsync(\n async () => {\n void biLogger.report(wixCliLoginStart({}));\n\n return client.requestDeviceCode();\n },\n [],\n {\n onSuccess: (deviceCodeResponse) => {\n void loginAction.execute(deviceCodeResponse);\n },\n onError: handleError,\n }\n );\n\n return match(status, {\n Error: () => null,\n Loading: () => <Spinner />,\n Success: ({ result: { userCode, verificationUri } }) => (\n <LoginInstructions\n userCode={userCode}\n verificationUri={verificationUri}\n />\n ),\n });\n};\n\nexport function LoginWithI18n(props: Omit<Props, 'loginFn'>) {\n return (\n <I18nProvider messages={messages}>\n <Login loginFn={accountAuthStrategy.login} {...props} />\n </I18nProvider>\n );\n}\n","{\n \"login.instructions_title\": \"Authorize the CLI to access your Wix account:\",\n \"login.instructions_details\": \"1. Copy this code to the clipboard: <0>{code}</0>\\n2. Choose an option:\",\n \"login.have_wix_account\": \"Already have an account? Press <0/> to <1>log in</1> and then paste the code\",\n \"login.new_to_wix\": \"New to Wix? Press <0/> to <1>sign up</1> and then paste the code\",\n \"login.legacy_auth_notice\": \"We implemented a new and more secure login method. You'll need to re-login to continue using the CLI.\",\n \"login.error_opening_browser\": \"Failed to open browser, please try opening <0/> manually.\"\n}\n","import React, { useState } from 'react';\nimport type { FC } from 'react';\nimport { Box, Text, Link, useInput, Key } from '@wix/cli-ui-kit';\nimport { Trans } from '@wix/cli-i18n';\nimport { openBrowser } from '@wix/user-browser';\nimport { ErrorViewer, useErrorReporter } from '@wix/cli-error-reporting';\nimport { useColoredVerificationUri } from '../useColoredVerificationUri.js';\n\ninterface Props {\n userCode: string;\n verificationUri: string;\n}\n\nexport const LoginInstructions: FC<Props> = ({ userCode, verificationUri }) => {\n const { coloredVerificationUri, signupUri } =\n useColoredVerificationUri(verificationUri);\n const { reportError } = useErrorReporter();\n const [openBrowserError, setOpenBrowserError] = useState<unknown>(null);\n\n useInput((input, key) => {\n if (key.return) {\n openBrowser(coloredVerificationUri).catch((error: unknown) => {\n reportError(error);\n setOpenBrowserError(error);\n });\n }\n if (input === ' ') {\n openBrowser(signupUri).catch((error: unknown) => {\n reportError(error);\n setOpenBrowserError(error);\n });\n }\n });\n\n return (\n <>\n <Trans i18nKey=\"login.instructions_title\" />\n <Box flexDirection=\"column\" marginTop={1} marginBottom={1} marginLeft={2}>\n <Box marginBottom={1}>\n <Trans\n i18nKey=\"login.instructions_details\"\n components={[<Text skin=\"info\" />]}\n values={{ code: userCode }}\n />\n </Box>\n <Box marginBottom={1}>\n <Trans\n i18nKey=\"login.have_wix_account\"\n components={[\n <Key value=\"enter\" />,\n <Link url={coloredVerificationUri} />,\n ]}\n />\n </Box>\n <Trans\n i18nKey=\"login.new_to_wix\"\n components={[<Key value=\"space\" />, <Link url={signupUri} />]}\n />\n </Box>\n\n {openBrowserError != null && (\n <>\n <Box flexDirection=\"column\" marginBottom={1}>\n <ErrorViewer error={openBrowserError} />\n </Box>\n\n <Trans\n i18nKey=\"login.error_opening_browser\"\n components={[<Link url={coloredVerificationUri} />]}\n />\n </>\n )}\n </>\n );\n};\n","import open from 'open';\nimport { CliError, CliErrorCode } from '@wix/cli-error';\nimport { getTestOverrides } from '@wix/cli-test-overrides';\nimport { open as openTestkit } from './open-testkit.js';\n\nexport async function openBrowser(url: string) {\n const { userBrowserTestEndpoint: testEndpoint } = getTestOverrides();\n\n try {\n if (testEndpoint) {\n await openTestkit(testEndpoint, url);\n } else {\n await open(url, {\n background: true,\n });\n }\n } catch (error) {\n throw new CliError({\n code: CliErrorCode.FailedToOpenBrowser(),\n info: { url },\n cause: error,\n });\n }\n}\n","import process from 'node:process';\nimport {Buffer} from 'node:buffer';\nimport path from 'node:path';\nimport {fileURLToPath} from 'node:url';\nimport childProcess from 'node:child_process';\nimport fs, {constants as fsConstants} from 'node:fs/promises';\nimport isWsl from 'is-wsl';\nimport defineLazyProperty from 'define-lazy-prop';\nimport defaultBrowser from 'default-browser';\nimport isInsideContainer from 'is-inside-container';\n\n// Path to included `xdg-open`.\nconst __dirname = path.dirname(fileURLToPath(import.meta.url));\nconst localXdgOpenPath = path.join(__dirname, 'xdg-open');\n\nconst {platform, arch} = process;\n\n/**\nGet the mount point for fixed drives in WSL.\n\n@inner\n@returns {string} The mount point.\n*/\nconst getWslDrivesMountPoint = (() => {\n\t// Default value for \"root\" param\n\t// according to https://docs.microsoft.com/en-us/windows/wsl/wsl-config\n\tconst defaultMountPoint = '/mnt/';\n\n\tlet mountPoint;\n\n\treturn async function () {\n\t\tif (mountPoint) {\n\t\t\t// Return memoized mount point value\n\t\t\treturn mountPoint;\n\t\t}\n\n\t\tconst configFilePath = '/etc/wsl.conf';\n\n\t\tlet isConfigFileExists = false;\n\t\ttry {\n\t\t\tawait fs.access(configFilePath, fsConstants.F_OK);\n\t\t\tisConfigFileExists = true;\n\t\t} catch {}\n\n\t\tif (!isConfigFileExists) {\n\t\t\treturn defaultMountPoint;\n\t\t}\n\n\t\tconst configContent = await fs.readFile(configFilePath, {encoding: 'utf8'});\n\t\tconst configMountPoint = /(?<!#.*)root\\s*=\\s*(?<mountPoint>.*)/g.exec(configContent);\n\n\t\tif (!configMountPoint) {\n\t\t\treturn defaultMountPoint;\n\t\t}\n\n\t\tmountPoint = configMountPoint.groups.mountPoint.trim();\n\t\tmountPoint = mountPoint.endsWith('/') ? mountPoint : `${mountPoint}/`;\n\n\t\treturn mountPoint;\n\t};\n})();\n\nconst pTryEach = async (array, mapper) => {\n\tlet latestError;\n\n\tfor (const item of array) {\n\t\ttry {\n\t\t\treturn await mapper(item); // eslint-disable-line no-await-in-loop\n\t\t} catch (error) {\n\t\t\tlatestError = error;\n\t\t}\n\t}\n\n\tthrow latestError;\n};\n\nconst baseOpen = async options => {\n\toptions = {\n\t\twait: false,\n\t\tbackground: false,\n\t\tnewInstance: false,\n\t\tallowNonzeroExitCode: false,\n\t\t...options,\n\t};\n\n\tif (Array.isArray(options.app)) {\n\t\treturn pTryEach(options.app, singleApp => baseOpen({\n\t\t\t...options,\n\t\t\tapp: singleApp,\n\t\t}));\n\t}\n\n\tlet {name: app, arguments: appArguments = []} = options.app ?? {};\n\tappArguments = [...appArguments];\n\n\tif (Array.isArray(app)) {\n\t\treturn pTryEach(app, appName => baseOpen({\n\t\t\t...options,\n\t\t\tapp: {\n\t\t\t\tname: appName,\n\t\t\t\targuments: appArguments,\n\t\t\t},\n\t\t}));\n\t}\n\n\tif (app === 'browser' || app === 'browserPrivate') {\n\t\t// IDs from default-browser for macOS and windows are the same\n\t\tconst ids = {\n\t\t\t'com.google.chrome': 'chrome',\n\t\t\t'google-chrome.desktop': 'chrome',\n\t\t\t'org.mozilla.firefox': 'firefox',\n\t\t\t'firefox.desktop': 'firefox',\n\t\t\t'com.microsoft.msedge': 'edge',\n\t\t\t'com.microsoft.edge': 'edge',\n\t\t\t'microsoft-edge.desktop': 'edge',\n\t\t};\n\n\t\t// Incognito flags for each browser in `apps`.\n\t\tconst flags = {\n\t\t\tchrome: '--incognito',\n\t\t\tfirefox: '--private-window',\n\t\t\tedge: '--inPrivate',\n\t\t};\n\n\t\tconst browser = await defaultBrowser();\n\t\tif (browser.id in ids) {\n\t\t\tconst browserName = ids[browser.id];\n\n\t\t\tif (app === 'browserPrivate') {\n\t\t\t\tappArguments.push(flags[browserName]);\n\t\t\t}\n\n\t\t\treturn baseOpen({\n\t\t\t\t...options,\n\t\t\t\tapp: {\n\t\t\t\t\tname: apps[browserName],\n\t\t\t\t\targuments: appArguments,\n\t\t\t\t},\n\t\t\t});\n\t\t}\n\n\t\tthrow new Error(`${browser.name} is not supported as a default browser`);\n\t}\n\n\tlet command;\n\tconst cliArguments = [];\n\tconst childProcessOptions = {};\n\n\tif (platform === 'darwin') {\n\t\tcommand = 'open';\n\n\t\tif (options.wait) {\n\t\t\tcliArguments.push('--wait-apps');\n\t\t}\n\n\t\tif (options.background) {\n\t\t\tcliArguments.push('--background');\n\t\t}\n\n\t\tif (options.newInstance) {\n\t\t\tcliArguments.push('--new');\n\t\t}\n\n\t\tif (app) {\n\t\t\tcliArguments.push('-a', app);\n\t\t}\n\t} else if (platform === 'win32' || (isWsl && !isInsideContainer() && !app)) {\n\t\tconst mountPoint = await getWslDrivesMountPoint();\n\n\t\tcommand = isWsl\n\t\t\t? `${mountPoint}c/Windows/System32/WindowsPowerShell/v1.0/powershell.exe`\n\t\t\t: `${process.env.SYSTEMROOT || process.env.windir || 'C:\\\\Windows'}\\\\System32\\\\WindowsPowerShell\\\\v1.0\\\\powershell`;\n\n\t\tcliArguments.push(\n\t\t\t'-NoProfile',\n\t\t\t'-NonInteractive',\n\t\t\t'-ExecutionPolicy',\n\t\t\t'Bypass',\n\t\t\t'-EncodedCommand',\n\t\t);\n\n\t\tif (!isWsl) {\n\t\t\tchildProcessOptions.windowsVerbatimArguments = true;\n\t\t}\n\n\t\tconst encodedArguments = ['Start'];\n\n\t\tif (options.wait) {\n\t\t\tencodedArguments.push('-Wait');\n\t\t}\n\n\t\tif (app) {\n\t\t\t// Double quote with double quotes to ensure the inner quotes are passed through.\n\t\t\t// Inner quotes are delimited for PowerShell interpretation with backticks.\n\t\t\tencodedArguments.push(`\"\\`\"${app}\\`\"\"`);\n\t\t\tif (options.target) {\n\t\t\t\tappArguments.push(options.target);\n\t\t\t}\n\t\t} else if (options.target) {\n\t\t\tencodedArguments.push(`\"${options.target}\"`);\n\t\t}\n\n\t\tif (appArguments.length > 0) {\n\t\t\tappArguments = appArguments.map(argument => `\"\\`\"${argument}\\`\"\"`);\n\t\t\tencodedArguments.push('-ArgumentList', appArguments.join(','));\n\t\t}\n\n\t\t// Using Base64-encoded command, accepted by PowerShell, to allow special characters.\n\t\toptions.target = Buffer.from(encodedArguments.join(' '), 'utf16le').toString('base64');\n\t} else {\n\t\tif (app) {\n\t\t\tcommand = app;\n\t\t} else {\n\t\t\t// When bundled by Webpack, there's no actual package file path and no local `xdg-open`.\n\t\t\tconst isBundled = !__dirname || __dirname === '/';\n\n\t\t\t// Check if local `xdg-open` exists and is executable.\n\t\t\tlet exeLocalXdgOpen = false;\n\t\t\ttry {\n\t\t\t\tawait fs.access(localXdgOpenPath, fsConstants.X_OK);\n\t\t\t\texeLocalXdgOpen = true;\n\t\t\t} catch {}\n\n\t\t\tconst useSystemXdgOpen = process.versions.electron\n\t\t\t\t?? (platform === 'android' || isBundled || !exeLocalXdgOpen);\n\t\t\tcommand = useSystemXdgOpen ? 'xdg-open' : localXdgOpenPath;\n\t\t}\n\n\t\tif (appArguments.length > 0) {\n\t\t\tcliArguments.push(...appArguments);\n\t\t}\n\n\t\tif (!options.wait) {\n\t\t\t// `xdg-open` will block the process unless stdio is ignored\n\t\t\t// and it's detached from the parent even if it's unref'd.\n\t\t\tchildProcessOptions.stdio = 'ignore';\n\t\t\tchildProcessOptions.detached = true;\n\t\t}\n\t}\n\n\tif (platform === 'darwin' && appArguments.length > 0) {\n\t\tcliArguments.push('--args', ...appArguments);\n\t}\n\n\t// This has to come after `--args`.\n\tif (options.target) {\n\t\tcliArguments.push(options.target);\n\t}\n\n\tconst subprocess = childProcess.spawn(command, cliArguments, childProcessOptions);\n\n\tif (options.wait) {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tsubprocess.once('error', reject);\n\n\t\t\tsubprocess.once('close', exitCode => {\n\t\t\t\tif (!options.allowNonzeroExitCode && exitCode > 0) {\n\t\t\t\t\treject(new Error(`Exited with code ${exitCode}`));\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolve(subprocess);\n\t\t\t});\n\t\t});\n\t}\n\n\tsubprocess.unref();\n\n\treturn subprocess;\n};\n\nconst open = (target, options) => {\n\tif (typeof target !== 'string') {\n\t\tthrow new TypeError('Expected a `target`');\n\t}\n\n\treturn baseOpen({\n\t\t...options,\n\t\ttarget,\n\t});\n};\n\nexport const openApp = (name, options) => {\n\tif (typeof name !== 'string' && !Array.isArray(name)) {\n\t\tthrow new TypeError('Expected a valid `name`');\n\t}\n\n\tconst {arguments: appArguments = []} = options ?? {};\n\tif (appArguments !== undefined && appArguments !== null && !Array.isArray(appArguments)) {\n\t\tthrow new TypeError('Expected `appArguments` as Array type');\n\t}\n\n\treturn baseOpen({\n\t\t...options,\n\t\tapp: {\n\t\t\tname,\n\t\t\targuments: appArguments,\n\t\t},\n\t});\n};\n\nfunction detectArchBinary(binary) {\n\tif (typeof binary === 'string' || Array.isArray(binary)) {\n\t\treturn binary;\n\t}\n\n\tconst {[arch]: archBinary} = binary;\n\n\tif (!archBinary) {\n\t\tthrow new Error(`${arch} is not supported`);\n\t}\n\n\treturn archBinary;\n}\n\nfunction detectPlatformBinary({[platform]: platformBinary}, {wsl}) {\n\tif (wsl && isWsl) {\n\t\treturn detectArchBinary(wsl);\n\t}\n\n\tif (!platformBinary) {\n\t\tthrow new Error(`${platform} is not supported`);\n\t}\n\n\treturn detectArchBinary(platformBinary);\n}\n\nexport const apps = {};\n\ndefineLazyProperty(apps, 'chrome', () => detectPlatformBinary({\n\tdarwin: 'google chrome',\n\twin32: 'chrome',\n\tlinux: ['google-chrome', 'google-chrome-stable', 'chromium'],\n}, {\n\twsl: {\n\t\tia32: '/mnt/c/Program Files (x86)/Google/Chrome/Application/chrome.exe',\n\t\tx64: ['/mnt/c/Program Files/Google/Chrome/Application/chrome.exe', '/mnt/c/Program Files (x86)/Google/Chrome/Application/chrome.exe'],\n\t},\n}));\n\ndefineLazyProperty(apps, 'firefox', () => detectPlatformBinary({\n\tdarwin: 'firefox',\n\twin32: 'C:\\\\Program Files\\\\Mozilla Firefox\\\\firefox.exe',\n\tlinux: 'firefox',\n}, {\n\twsl: '/mnt/c/Program Files/Mozilla Firefox/firefox.exe',\n}));\n\ndefineLazyProperty(apps, 'edge', () => detectPlatformBinary({\n\tdarwin: 'microsoft edge',\n\twin32: 'msedge',\n\tlinux: ['microsoft-edge', 'microsoft-edge-dev'],\n}, {\n\twsl: '/mnt/c/Program Files (x86)/Microsoft/Edge/Application/msedge.exe',\n}));\n\ndefineLazyProperty(apps, 'browser', () => 'browser');\n\ndefineLazyProperty(apps, 'browserPrivate', () => 'browserPrivate');\n\nexport default open;\n","import process from 'node:process';\nimport os from 'node:os';\nimport fs from 'node:fs';\nimport isInsideContainer from 'is-inside-container';\n\nconst isWsl = () => {\n\tif (process.platform !== 'linux') {\n\t\treturn false;\n\t}\n\n\tif (os.release().toLowerCase().includes('microsoft')) {\n\t\tif (isInsideContainer()) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t}\n\n\ttry {\n\t\treturn fs.readFileSync('/proc/version', 'utf8').toLowerCase().includes('microsoft')\n\t\t\t? !isInsideContainer() : false;\n\t} catch {\n\t\treturn false;\n\t}\n};\n\nexport default process.env.__IS_WSL_TEST__ ? isWsl : isWsl();\n","import fs from 'node:fs';\nimport isDocker from 'is-docker';\n\nlet cachedResult;\n\n// Podman detection\nconst hasContainerEnv = () => {\n\ttry {\n\t\tfs.statSync('/run/.containerenv');\n\t\treturn true;\n\t} catch {\n\t\treturn false;\n\t}\n};\n\nexport default function isInsideContainer() {\n\t// TODO: Use `??=` when targeting Node.js 16.\n\tif (cachedResult === undefined) {\n\t\tcachedResult = hasContainerEnv() || isDocker();\n\t}\n\n\treturn cachedResult;\n}\n","import fs from 'node:fs';\n\nlet isDockerCached;\n\nfunction hasDockerEnv() {\n\ttry {\n\t\tfs.statSync('/.dockerenv');\n\t\treturn true;\n\t} catch {\n\t\treturn false;\n\t}\n}\n\nfunction hasDockerCGroup() {\n\ttry {\n\t\treturn fs.readFileSync('/proc/self/cgroup', 'utf8').includes('docker');\n\t} catch {\n\t\treturn false;\n\t}\n}\n\nexport default function isDocker() {\n\t// TODO: Use `??=` when targeting Node.js 16.\n\tif (isDockerCached === undefined) {\n\t\tisDockerCached = hasDockerEnv() || hasDockerCGroup();\n\t}\n\n\treturn isDockerCached;\n}\n","export default function defineLazyProperty(object, propertyName, valueGetter) {\n\tconst define = value => Object.defineProperty(object, propertyName, {value, enumerable: true, writable: true});\n\n\tObject.defineProperty(object, propertyName, {\n\t\tconfigurable: true,\n\t\tenumerable: true,\n\t\tget() {\n\t\t\tconst result = valueGetter();\n\t\t\tdefine(result);\n\t\t\treturn result;\n\t\t},\n\t\tset(value) {\n\t\t\tdefine(value);\n\t\t}\n\t});\n\n\treturn object;\n}\n","import {promisify} from 'node:util';\nimport process from 'node:process';\nimport {execFile} from 'node:child_process';\nimport defaultBrowserId from 'default-browser-id';\nimport bundleName from 'bundle-name';\nimport windows from './windows.js';\n\nconst execFileAsync = promisify(execFile);\n\n// Inlined: https://github.com/sindresorhus/titleize/blob/main/index.js\nconst titleize = string => string.toLowerCase().replaceAll(/(?:^|\\s|-)\\S/g, x => x.toUpperCase());\n\nexport default async function defaultBrowser() {\n\tif (process.platform === 'darwin') {\n\t\tconst id = await defaultBrowserId();\n\t\tconst name = await bundleName(id);\n\t\treturn {name, id};\n\t}\n\n\tif (process.platform === 'linux') {\n\t\tconst {stdout} = await execFileAsync('xdg-mime', ['query', 'default', 'x-scheme-handler/http']);\n\t\tconst id = stdout.trim();\n\t\tconst name = titleize(id.replace(/.desktop$/, '').replace('-', ' '));\n\t\treturn {name, id};\n\t}\n\n\tif (process.platform === 'win32') {\n\t\treturn windows();\n\t}\n\n\tthrow new Error('Only macOS, Linux, and Windows are supported');\n}\n","import {promisify} from 'node:util';\nimport process from 'node:process';\nimport {execFile} from 'node:child_process';\n\nconst execFileAsync = promisify(execFile);\n\nexport default async function defaultBrowserId() {\n\tif (process.platform !== 'darwin') {\n\t\tthrow new Error('macOS only');\n\t}\n\n\tconst {stdout} = await execFileAsync('defaults', ['read', 'com.apple.LaunchServices/com.apple.launchservices.secure', 'LSHandlers']);\n\n\t// `(?!-)` is to prevent matching `LSHandlerRoleAll = \"-\";`.\n\tconst match = /LSHandlerRoleAll = \"(?!-)(?<id>[^\"]+?)\";\\s+?LSHandlerURLScheme = (?:http|https);/.exec(stdout);\n\n\treturn match?.groups.id ?? 'com.apple.Safari';\n}\n","import {runAppleScript} from 'run-applescript';\n\nexport default async function bundleName(bundleId) {\n\treturn runAppleScript(`tell application \"Finder\" to set app_path to application file id \"${bundleId}\" as string\\ntell application \"System Events\" to get value of property list item \"CFBundleName\" of property list file (app_path & \":Contents:Info.plist\")`);\n}\n","import process from 'node:process';\nimport {promisify} from 'node:util';\nimport {execFile, execFileSync} from 'node:child_process';\n\nconst execFileAsync = promisify(execFile);\n\nexport async function runAppleScript(script, {humanReadableOutput = true} = {}) {\n\tif (process.platform !== 'darwin') {\n\t\tthrow new Error('macOS only');\n\t}\n\n\tconst outputArguments = humanReadableOutput ? [] : ['-ss'];\n\n\tconst {stdout} = await execFileAsync('osascript', ['-e', script, outputArguments]);\n\treturn stdout.trim();\n}\n\nexport function runAppleScriptSync(script, {humanReadableOutput = true} = {}) {\n\tif (process.platform !== 'darwin') {\n\t\tthrow new Error('macOS only');\n\t}\n\n\tconst outputArguments = humanReadableOutput ? [] : ['-ss'];\n\n\tconst stdout = execFileSync('osascript', ['-e', script, ...outputArguments], {\n\t\tencoding: 'utf8',\n\t\tstdio: ['ignore', 'pipe', 'ignore'],\n\t\ttimeout: 500,\n\t});\n\n\treturn stdout.trim();\n}\n","import {promisify} from 'node:util';\nimport {execFile} from 'node:child_process';\n\nconst execFileAsync = promisify(execFile);\n\n// Windows doesn't have browser IDs in the same way macOS/Linux does so we give fake\n// ones that look real and match the macOS/Linux versions for cross-platform apps.\nconst windowsBrowserProgIds = {\n\tAppXq0fevzme2pys62n3e0fbqa7peapykr8v: {name: 'Edge', id: 'com.microsoft.edge.old'},\n\tMSEdgeDHTML: {name: 'Edge', id: 'com.microsoft.edge'}, // On macOS, it's \"com.microsoft.edgemac\"\n\tMSEdgeHTM: {name: 'Edge', id: 'com.microsoft.edge'}, // Newer Edge/Win10 releases\n\t'IE.HTTP': {name: 'Internet Explorer', id: 'com.microsoft.ie'},\n\tFirefoxURL: {name: 'Firefox', id: 'org.mozilla.firefox'},\n\tChromeHTML: {name: 'Chrome', id: 'com.google.chrome'},\n\tBraveHTML: {name: 'Brave', id: 'com.brave.Browser'},\n\tBraveBHTML: {name: 'Brave Beta', id: 'com.brave.Browser.beta'},\n\tBraveSSHTM: {name: 'Brave Nightly', id: 'com.brave.Browser.nightly'},\n};\n\nexport class UnknownBrowserError extends Error {}\n\nexport default async function defaultBrowser(_execFileAsync = execFileAsync) {\n\tconst {stdout} = await _execFileAsync('reg', [\n\t\t'QUERY',\n\t\t' HKEY_CURRENT_USER\\\\Software\\\\Microsoft\\\\Windows\\\\Shell\\\\Associations\\\\UrlAssociations\\\\http\\\\UserChoice',\n\t\t'/v',\n\t\t'ProgId',\n\t]);\n\n\tconst match = /ProgId\\s*REG_SZ\\s*(?<id>\\S+)/.exec(stdout);\n\tif (!match) {\n\t\tthrow new UnknownBrowserError(`Cannot find Windows browser in stdout: ${JSON.stringify(stdout)}`);\n\t}\n\n\tconst {id} = match.groups;\n\n\tconst browser = windowsBrowserProgIds[id];\n\tif (!browser) {\n\t\tthrow new UnknownBrowserError(`Unknown browser ID: ${id}`);\n\t}\n\n\treturn browser;\n}\n","import { createHttpClient, HttpClient } from '@wix/http-client';\n\nexport async function open(testEndpoint: string, url: string) {\n await createHttpClient()\n .post(testEndpoint, undefined, {\n params: {\n url,\n },\n })\n .catch((error: unknown) => {\n if (HttpClient.isHttpError(error) && error.response?.data?.message) {\n throw new Error(error.response.data.message);\n }\n\n throw error;\n });\n}\n","import { useMemo } from 'react';\n\nexport function useColoredVerificationUri(verificationUri: string) {\n return useMemo(() => {\n const coloredUri = new URL(verificationUri);\n coloredUri.searchParams.set('color', 'developer');\n coloredUri.searchParams.set('studio', 'true');\n const signupUri = new URL('https://users.wix.com/login/signup/password');\n signupUri.searchParams.set('redirectTo', coloredUri.href);\n return {\n coloredVerificationUri: coloredUri.toString(),\n signupUri: signupUri.toString(),\n };\n }, [verificationUri]);\n}\n","import React from 'react';\nimport type { FC, ReactNode } from 'react';\nimport { useExit } from '@wix/cli-ui-kit';\nimport { AuthContext } from '../context.js';\nimport type { UserInfo } from '../schemas.js';\nimport { accountAuthStrategy } from '../auth-strategies/index.js';\nimport { EnsureLoggedIn } from '../components/EnsureLoggedIn.js';\n\ninterface Props {\n children: ReactNode;\n onError?: (error: unknown) => void;\n onLogin?: (userInfo: UserInfo) => void;\n}\n\nexport const AccountAuthProvider: FC<Props> = ({\n children,\n onError,\n onLogin,\n}) => {\n const exit = useExit();\n\n return (\n <EnsureLoggedIn\n authStrategy={accountAuthStrategy}\n onLogin={({ userInfo }) => onLogin?.(userInfo)}\n onError={onError ?? exit}\n >\n {({ getAccessToken, getRequestHeaders, userInfo }) => (\n <AuthContext.Provider\n value={{ getAccessToken, getRequestHeaders, userInfo }}\n >\n {children}\n </AuthContext.Provider>\n )}\n </EnsureLoggedIn>\n );\n};\n","import React from 'react';\nimport type { ReactNode, FC } from 'react';\nimport { match } from 'variant';\nimport { useAsync, Spinner } from '@wix/cli-ui-kit';\nimport { I18nProvider } from '@wix/cli-i18n';\nimport type {\n AuthStrategy,\n AuthStrategyState,\n} from '../auth-strategies/index.js';\nimport { Login } from './Login.js';\nimport { WarnLegacyAuthData } from './WarnLegacyAuthData.js';\nimport messages from '../messages.json' with { type: 'json' };\n\ninterface Props {\n authStrategy: AuthStrategy;\n onLogin: (data: AuthStrategyState) => void;\n onError: (error: unknown) => void;\n children: (data: AuthStrategyState) => ReactNode;\n}\n\nexport const EnsureLoggedIn: FC<Props> = ({\n authStrategy: { login, isLoggedIn },\n onLogin,\n onError,\n children,\n}) => {\n const { status, merge: updateAccountAuth } = useAsync(isLoggedIn, [], {\n onSuccess: (result) => {\n if (result) {\n onLogin(result);\n }\n },\n onError,\n });\n\n return match(status, {\n Loading: () => <Spinner />,\n Error: () => null,\n Success: ({ result: accountAuth }) => {\n if (accountAuth == null) {\n return (\n <I18nProvider messages={messages}>\n <WarnLegacyAuthData>\n <Login\n loginFn={login}\n onLogin={(data) => {\n updateAccountAuth({ result: data });\n onLogin(data);\n }}\n onError={onError}\n />\n </WarnLegacyAuthData>\n </I18nProvider>\n );\n }\n\n return children(accountAuth);\n },\n });\n};\n","import React from 'react';\nimport type { FC, ReactNode } from 'react';\nimport { match } from 'variant';\nimport { Box, useAsync } from '@wix/cli-ui-kit';\nimport { Trans } from '@wix/cli-i18n';\nimport { hasLegacyAuthData } from '../auth-data.js';\n\ninterface Props {\n children: ReactNode;\n}\n\nexport const WarnLegacyAuthData: FC<Props> = ({ children }) => {\n const { status } = useAsync(hasLegacyAuthData, [], { onError: () => {} });\n\n return match(status, {\n Error: () => null,\n Loading: () => null,\n Success: ({ result }) => (\n <>\n {result && (\n <Box marginBottom={1}>\n <Trans i18nKey=\"login.legacy_auth_notice\" />\n </Box>\n )}\n {children}\n </>\n ),\n });\n};\n","import React, { useMemo } from 'react';\nimport type { FC, ReactNode } from 'react';\nimport { useExit } from '@wix/cli-ui-kit';\nimport type { UserInfo } from '../schemas.js';\nimport { AuthContext } from '../context.js';\nimport { EnsureLoggedIn } from '../components/EnsureLoggedIn.js';\nimport { createSiteAuthStrategy } from '../auth-strategies/index.js';\n\ninterface Props {\n siteId: string;\n onError?: (error: unknown) => void;\n onLogin?: (userInfo: UserInfo) => void;\n children: ReactNode;\n}\n\nexport const SiteAuthProvider: FC<Props> = ({\n children,\n siteId,\n onError,\n onLogin,\n}) => {\n const exit = useExit();\n const authStrategy = useMemo(() => createSiteAuthStrategy(siteId), [siteId]);\n\n return (\n <EnsureLoggedIn\n authStrategy={authStrategy}\n onLogin={({ userInfo }) => onLogin?.(userInfo)}\n onError={onError ?? exit}\n >\n {({ getAccessToken, getRequestHeaders, userInfo }) => (\n <AuthContext.Provider\n value={{ getAccessToken, getRequestHeaders, userInfo }}\n >\n {children}\n </AuthContext.Provider>\n )}\n </EnsureLoggedIn>\n );\n};\n","import React, { useEffect } from 'react';\nimport type { FC } from 'react';\nimport { render, useExit } from '@wix/cli-ui-kit';\nimport { BiProvider } from '@wix/cli-telemetry-react';\nimport type { BiLogger } from '@wix/cli-telemetry';\nimport { ErrorReporterProvider } from '@wix/cli-error-reporting';\nimport type { ErrorReporter } from '@wix/cli-error-reporting';\nimport type { AuthState } from './context.js';\nimport { SiteAuthProvider } from './providers/SiteAuthProvider.js';\nimport { useAuth } from './useAuth.js';\n\nconst Wrapper: FC<{ onReady: (data: AuthState) => void }> = ({ onReady }) => {\n const exit = useExit();\n const auth = useAuth();\n\n useEffect(() => {\n onReady(auth);\n exit();\n }, [exit, auth, onReady]);\n\n return null;\n};\n\n/**\n * @deprecated migrate to ink & use `SiteAuthProvider` directly\n */\nexport function authenticateWithSiteId(\n siteId: string,\n biLogger: BiLogger,\n errorReporter: ErrorReporter\n): Promise<AuthState> {\n return new Promise<AuthState>((resolve, reject) => {\n render(\n <ErrorReporterProvider value={errorReporter}>\n <BiProvider value={biLogger}>\n <SiteAuthProvider siteId={siteId}>\n <Wrapper onReady={resolve} />\n </SiteAuthProvider>\n </BiProvider>\n </ErrorReporterProvider>\n ).catch((error: unknown) => reject(error));\n });\n}\n"],"mappings":"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","names":["original","require_retry","import_variant","resolve","retry","path","path","path","resolvePath","ConverterType","payload","seconds","payload","_a","payload","_a","payload","_a","import_http_client","client","createHttpClientOriginal","token","payload","token","import_variant","token","payload","resolve","import_variant","AbortError","resolve","resolve","deviceCode","import_variant","payload","deviceCode","import_variant","import_react","import_react","import_variant","token","React","import_react","import_variant","import_react","process","Buffer","fs","fs","fs","fs","fs","promisify","process","execFile","process","match","process","promisify","execFile","execFileAsync","promisify","execFile","execFileAsync","match","execFileAsync","promisify","execFile","defaultBrowser","process","process","fs","defaultBrowser","Buffer","resolve","import_http_client","open","open","import_react","React","React","import_react","import_react","import_variant","import_react","import_variant","React","React","React","import_react","React","import_react","resolve","React"]}