<?xml version="1.0"?>
<puzzles xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.0pdd.com/puzzles.xsd" date="2022-12-27T07:42:49+00:00" version="BUILD">
  <puzzle alive="false">
    <issue href="https://github.com/artipie/npm-adapter/issues/36" closed="2021-02-19T09:06:39+00:00">36</issue>
    <ticket>27</ticket>
    <estimate>30</estimate>
    <role>DEV</role>
    <id>27-b5f30c4d</id>
    <lines>119-124</lines>
    <body>Implement metadata update by using tgz package file. In addition to interacting with the NPM client, the artifactory repo also support upload NPM .tgz file manually by upload request. It mean that all the information we can give you is the .tgz filestream. If you Unzip the .tgz file&#xFF0C; you could get the project package.json. Then, you could get the metadata information from the package.json</body>
    <file>src/main/java/com/artipie/npm/Npm.java</file>
    <author>paulodamaso</author>
    <email>pauloeduardolobo@gmail.com</email>
    <time>2020-03-17T02:07:07Z</time>
    <children/>
  </puzzle>
  <puzzle alive="false">
    <issue href="https://github.com/artipie/npm-adapter/issues/54" closed="2020-06-03T07:17:51+00:00">54</issue>
    <ticket>53</ticket>
    <estimate>45</estimate>
    <role>DEV</role>
    <id>53-d5b414c9</id>
    <lines>63-63</lines>
    <body>Rewrite test method to be able to enabled</body>
    <file>src/test/java/com/artipie/npm/http/UploadSliceTest.java</file>
    <author>brastak</author>
    <email>brastak@gmail.com</email>
    <time>2020-05-08T15:47:30Z</time>
    <children/>
  </puzzle>
  <puzzle alive="false">
    <issue href="https://github.com/artipie/npm-adapter/issues/63" closed="2021-02-01T08:15:18+00:00">63</issue>
    <ticket>49</ticket>
    <estimate>90</estimate>
    <role>DEV</role>
    <id>49-ba9c0273</id>
    <lines>50-50</lines>
    <body>handle https schema in the &lt;code&gt;response&lt;/code&gt; method</body>
    <file>src/main/java/com/artipie/npm/http/DownloadPackageSlice.java</file>
    <author>brastak</author>
    <email>brastak@gmail.com</email>
    <time>2020-05-14T15:54:19Z</time>
    <children/>
  </puzzle>
  <puzzle alive="false">
    <issue href="https://github.com/artipie/npm-adapter/issues/67" closed="2020-10-12T14:27:21+00:00">67</issue>
    <ticket>64</ticket>
    <estimate>60</estimate>
    <role>DEV</role>
    <id>64-0c89f1b5</id>
    <lines>82-84</lines>
    <body>remove the loop with Thread.sleep call: either find the other way to do this or move it to Test NPM Client (see the related task for npmExecute method)</body>
    <file>src/test/java/com/artipie/npm/NpmCommandsTest.java</file>
    <author>brastak</author>
    <email>brastak@gmail.com</email>
    <time>2020-05-21T13:28:48Z</time>
    <children/>
  </puzzle>
  <puzzle alive="false">
    <issue href="https://github.com/artipie/npm-adapter/issues/68" closed="2020-10-12T11:22:20+00:00">68</issue>
    <ticket>64</ticket>
    <estimate>90</estimate>
    <role>DEV</role>
    <id>64-5e3ded21</id>
    <lines>178-181</lines>
    <body>transform method into NpmClient class - takes the registry address in the constructor - exposes one method to publish a Path - exposes one method to install a package (denoted by a String) to a Path</body>
    <file>src/test/java/com/artipie/npm/NpmCommandsTest.java</file>
    <author>brastak</author>
    <email>brastak@gmail.com</email>
    <time>2020-05-21T11:15:19Z</time>
    <children/>
  </puzzle>
  <puzzle alive="true">
    <issue href="https://github.com/artipie/npm-adapter/issues/85">85</issue>
    <ticket>16</ticket>
    <estimate>30</estimate>
    <role>DEV</role>
    <id>16-ac6a0eac</id>
    <lines>36-40</lines>
    <body>Wrap new instances of HttpNpmRemote with this class in NpmProxy. But first ensure that HttpNpmRemote throws an exception in case the request fails (it should still return Maybe for 404 though). Also see https://vertx.io/docs/vertx-circuit-breaker/java/ for configuring the CircuitBreaker.</body>
    <file>npm-proxy-adapter/src/main/java/com/artipie/npm/proxy/CircuitBreakerNpmRemote.java</file>
    <author>@g4s8</author>
    <email>g4s8.public@gmail.com</email>
    <time>2020-07-15T14:21:59Z</time>
    <children/>
  </puzzle>
  <puzzle alive="true">
    <issue href="https://github.com/artipie/npm-adapter/issues/86">86</issue>
    <ticket>16</ticket>
    <estimate>30</estimate>
    <role>DEV</role>
    <id>16-6161ad7f</id>
    <lines>41-46</lines>
    <body>Add a test to ensure it works as expected. The most simple is to provide a Fake version of NpmRemote that can be setup to either fail or work as expected by the contract of NpmRemote. Be careful about the fact that the expected behaviour is beasically: empty if the asset/package is not present and an exception if there is an error. See also the todo above or HttpNpmRemote if it had been solved already.</body>
    <file>npm-proxy-adapter/src/main/java/com/artipie/npm/proxy/CircuitBreakerNpmRemote.java</file>
    <author>@g4s8</author>
    <email>g4s8.public@gmail.com</email>
    <time>2020-07-15T14:21:59Z</time>
    <children/>
  </puzzle>
  <puzzle alive="false">
    <issue href="https://github.com/artipie/npm-adapter/issues/129" closed="2020-10-12T14:27:25+00:00">129</issue>
    <ticket>123</ticket>
    <estimate>60</estimate>
    <role>DEV</role>
    <id>123-9c583b0d</id>
    <lines>114-118</lines>
    <body>Fix and enable npmPublishWorks test `npmPublishWorks` often fails with the following error in line 128: `NpmCommandsTest.npmPublishWorks:128 &#xBB; Decode Failed to decode:Illegal character`. It seems that meta JSON is saved with corruption or there is some concurrency issue in this code</body>
    <file>src/test/java/com/artipie/npm/NpmCommandsTest.java</file>
    <author>@olegmoz</author>
    <email>oleg.mozzhechkov@gmail.com</email>
    <time>2020-09-28T15:19:57Z</time>
    <children/>
  </puzzle>
  <puzzle alive="false">
    <issue href="https://github.com/artipie/npm-adapter/issues/144" closed="2020-10-23T12:35:12+00:00">144</issue>
    <ticket>141</ticket>
    <estimate>30</estimate>
    <role>DEV</role>
    <id>141-ed29e327</id>
    <lines>58-62</lines>
    <body>Fix NPM proxy integration tests. NPM proxy tests became broken by release on newer client ver 0.7.3 It seems that container used in tests needs to be updated or replaced with other image with NPM client. The tests need to be fixed an re-enabled.</body>
    <file>src/test/java/com/artipie/npm/proxy/NpmProxyITCase.java</file>
    <author>Oleg Mozzhechkov</author>
    <email>oleg.mozzhechkov@gmail.com</email>
    <time>2020-10-23T12:05:52Z</time>
    <children/>
  </puzzle>
  <puzzle alive="false">
    <issue href="https://github.com/artipie/npm-adapter/issues/168" closed="2021-02-11T09:10:58+00:00">168</issue>
    <ticket>164</ticket>
    <estimate>30</estimate>
    <role>DEV</role>
    <id>164-52856a91</id>
    <lines>29-32</lines>
    <body>Improve code coverage by writing unit-tests: each coverage counter (check jacoco plugin in pom.xml) should not be less than 75. Write unit-tests to achieve such coverage. After each iteration do not forget to correct coverage minimums and this todo to continue work.</body>
    <file>src/main/java/com/artipie/npm/package-info.java</file>
    <author>@olenagerasimova</author>
    <email>olena.gerasimova@gmail.com</email>
    <time>2021-01-25T06:40:04Z</time>
    <children>
      <puzzle alive="false">
        <issue href="https://github.com/artipie/npm-adapter/issues/190" closed="2021-03-12T13:30:05+00:00">190</issue>
        <ticket>168</ticket>
        <estimate>30</estimate>
        <role>DEV</role>
        <id>168-faf64628</id>
        <lines>29-32</lines>
        <body>Improve code coverage for missed instructions ratio. Currently, it is at 70. We need to raise it to 75. Write unit-tests to achieve such coverage. After each iteration do not forget to correct INSTRUCTION counter in jacoco settings in pom.xml.</body>
        <file>src/main/java/com/artipie/npm/package-info.java</file>
        <author>@baudoliver7</author>
        <email>baudolivier.oura@gmail.com</email>
        <time>2021-02-08T05:59:37Z</time>
        <children/>
      </puzzle>
    </children>
  </puzzle>
  <puzzle alive="true">
    <issue href="https://github.com/artipie/npm-adapter/issues/326">326</issue>
    <ticket>239</ticket>
    <estimate>30</estimate>
    <role>DEV</role>
    <id>239-1cddf630</id>
    <lines>36-39</lines>
    <body>Fix download meta for empty prefix. Test for downloading meta hangs for some reason when empty prefix is passed. It is necessary to find out why it happens and add empty prefix to params of method DownloadPackageSliceTest#downloadMetaWorks.</body>
    <file>src/test/java/com/artipie/npm/proxy/http/DownloadPackageSliceTest.java</file>
    <author>Aleksei Borodin</author>
    <email>45274464+Swizbiz@users.noreply.github.com</email>
    <time>2022-06-08T09:27:17Z</time>
    <children/>
  </puzzle>
  <puzzle alive="true">
    <issue href="https://github.com/artipie/npm-adapter/issues/343">343</issue>
    <ticket>340</ticket>
    <estimate>30</estimate>
    <role>DEV</role>
    <id>340-99949b75</id>
    <lines>34-39</lines>
    <body>Implement `/npm` endpoint properly: for now `/npm` simply returns 200 OK status without any body. We need to figure out what information can (or should) be returned by registry on this request and add it. Here are several links that might be useful https://github.com/npm/cli https://github.com/npm/registry https://docs.npmjs.com/cli/v8</body>
    <file>src/main/java/com/artipie/npm/http/NpmSlice.java</file>
    <author>@olenagerasimova</author>
    <email>olena.gerasimova@gmail.com</email>
    <time>2022-09-16T09:34:04Z</time>
    <children/>
  </puzzle>
  <puzzle alive="false">
    <issue href="https://github.com/artipie/npm-adapter/issues/344" closed="2022-12-27T07:42:49+00:00">344</issue>
    <ticket>339</ticket>
    <estimate>30</estimate>
    <role>DEV</role>
    <id>339-ed8772b7</id>
    <lines>42-47</lines>
    <body>Implement token auth for npm client. Npm client since version 7 does not work anonymously, to publish any package you need to add user and get auth token. We need to support `npm login`, `npm adduser`, `npm logout` command and work with bearer auth token instead of basic auth. Related links: https://docs.npmjs.com/cli/v8/commands/npm-adduser https://docs.npmjs.com/cli/v8/commands/npm-logout https://docs.npmjs.com/cli/v8/using-npm/config#_auth</body>
    <file>src/test/java/com/artipie/npm/Npm8IT.java</file>
    <author>@olenagerasimova</author>
    <email>olena.gerasimova@gmail.com</email>
    <time>2022-09-16T09:34:04Z</time>
    <children/>
  </puzzle>
</puzzles>
