Add JSON Mock API Response to Video Components

Summary
Copy + Paste the following JSON snippets into variables that are accessible to the new video components: <Videos />, <VideoSeries />, <Video />. These snippets of JSON will serve as mock API responses to be used throughout this feature. It's probably best to add these snippets as separate files inside the repo, and then import them into each video component.
configuration.json
{
  "response": {
    "buildtime": "2018-04-06T15:28:09.294346+00:00",
    "code": 200,
    "data": {
      "available_language_tags": [
        "af",
        "be",
        "bg",
        "ca",
        "cs",
        "cy",
        "da",
        "de",
        "el",
        "en",
        "es",
        "es_ES",
        "fa",
        "fi",
        "fr",
        "hi",
        "hr",
        "hu",
        "id",
        "is",
        "it",
        "ja",
        "kh",
        "ko",
        "mk",
        "ml",
        "mn",
        "ms",
        "my",
        "nl",
        "no",
        "pl",
        "pt",
        "pt_PT",
        "ro",
        "sk",
        "sq",
        "sv",
        "sw",
        "ta",
        "th",
        "tl",
        "tr",
        "uk",
        "vi",
        "zh_CN",
        "zh_TW",
        "en_GB"
      ]
    }
  }
}

title-videos-page-1.json
{
  "response": {
    "buildtime": "2018-04-06T16:21:29.770895+00:00",
    "code": 200,
    "data": {
      "next_page": 2,
      "total": 14,
      "videos": [
        {
          "publisher": {
            "id": 5
          },
          "description": "",
          "title": "Easter",
          "short_url": "yvstaging.com/v/4I",
          "language_tag": "en",
          "credits": "LightWorkers, Jesus Film, and Lumo",
          "created_dt": "2018-03-16",
          "published_dt": "2018-03-16",
          "id": 266,
          "thumbnails": [
            {
              "url": "//d33q4ye4b26s92.cloudfront.net/videos/thumbnails/266/360x240.jpg",
              "width": 360,
              "height": 240
            },
            {
              "url": "//d33q4ye4b26s92.cloudfront.net/videos/thumbnails/266/720x480.jpg",
              "width": 720,
              "height": 480
            },
            {
              "url": "//d33q4ye4b26s92.cloudfront.net/videos/thumbnails/266/780x520.jpg",
              "width": 780,
              "height": 520
            },
            {
              "url": "//d33q4ye4b26s92.cloudfront.net/videos/thumbnails/266/2000x1125.jpg",
              "width": 2000,
              "height": 1125
            },
            {
              "url": "//d33q4ye4b26s92.cloudfront.net/videos/thumbnails/266/910x350.jpg",
              "width": 910,
              "height": 350
            }
          ]
        },
        {
          "publisher": {
            "id": 7
          },
          "description": "This seven-part animated series explores the literary design and message of the first five books of the Old Testament, known in Jewish tradition as \u201cthe Torah.\"",
          "title": "Torah Series",
          "short_url": "yvstaging.com/v/Hm",
          "language_tag": "en",
          "credits": "The Bible Project",
          "created_dt": "2016-01-29",
          "published_dt": "2016-01-29",
          "id": 1102,
          "thumbnails": [
            {
              "url": "//d33q4ye4b26s92.cloudfront.net/videos/thumbnails/1102/360x240.jpg",
              "width": 360,
              "height": 240
            },
            {
              "url": "//d33q4ye4b26s92.cloudfront.net/videos/thumbnails/1102/720x480.jpg",
              "width": 720,
              "height": 480
            },
            {
              "url": "//d33q4ye4b26s92.cloudfront.net/videos/thumbnails/1102/780x520.jpg",
              "width": 780,
              "height": 520
            },
            {
              "url": "//d33q4ye4b26s92.cloudfront.net/videos/thumbnails/1102/2000x1125.jpg",
              "width": 2000,
              "height": 1125
            },
            {
              "url": "//d33q4ye4b26s92.cloudfront.net/videos/thumbnails/1102/910x350.jpg",
              "width": 910,
              "height": 350
            }
          ]
        },
        {
          "publisher": {
            "id": 1
          },
          "description": "A docudrama on the life of Jesus Christ, the \u201cJESUS\u201d film has been translated into more than 1,400 languages since its 1979 release. It remains the most translated and viewed film in history. Pastor Rick Warren, author of \u201cThe Purpose Driven Life,\u201d says \u201cThe \u2018JESUS\u2019 film is the most effective evangelistic tool ever invented.\u201d\n\nMore than 450 religious leaders and scholars evaluated the script to ensure historical and biblical accuracy. The script is closely based on Luke's Gospel, so almost every word Jesus speaks is from the Bible. Rigorous efforts to portray the Jewish and Roman culture of nearly 2,000 years ago include: hand-woven clothing in only the 35 colors used then, pottery made with first-century methods, and removal of modern telephone poles and power lines from the landscape.\n\nJESUS was filmed entirely at 202 locations in Israel in 1979, with a cast numbering more than 5,000 Israelis and Arabs. Whenever possible, scenes were filmed on the sites where they took place 2,000 years ago.",
          "title": "Jesus",
          "short_url": "yvstaging.com/v/1",
          "language_tag": "en",
          "credits": "From Jesus Film Project",
          "created_dt": "2013-01-16",
          "published_dt": "1979-10-19",
          "id": 1,
          "thumbnails": [
            {
              "url": "//d33q4ye4b26s92.cloudfront.net/videos/thumbnails/1/360x240.jpg",
              "width": 360,
              "height": 240
            },
            {
              "url": "//d33q4ye4b26s92.cloudfront.net/videos/thumbnails/1/720x480.jpg",
              "width": 720,
              "height": 480
            },
            {
              "url": "//d33q4ye4b26s92.cloudfront.net/videos/thumbnails/1/780x520.jpg",
              "width": 780,
              "height": 520
            },
            {
              "url": "//d33q4ye4b26s92.cloudfront.net/videos/thumbnails/1/2000x1125.jpg",
              "width": 2000,
              "height": 1125
            },
            {
              "url": "//d33q4ye4b26s92.cloudfront.net/videos/thumbnails/1/910x350.jpg",
              "width": 910,
              "height": 350
            }
          ]
        },
        {
          "publisher": {
            "id": 7
          },
          "description": "What does it mean to live well in God's good world? Proverbs, Ecclesiastes and Job comprise the Bible's wisdom literature, and they join together to answer that question from three very distinct points of view.",
          "title": "Wisdom Series",
          "short_url": "yvstaging.com/v/7c",
          "language_tag": "en",
          "credits": "The Bible Project",
          "created_dt": "2016-10-20",
          "published_dt": "2016-10-20",
          "id": 472,
          "thumbnails": [
            {
              "url": "//d33q4ye4b26s92.cloudfront.net/videos/thumbnails/472/360x240.jpg",
              "width": 360,
              "height": 240
            },
            {
              "url": "//d33q4ye4b26s92.cloudfront.net/videos/thumbnails/472/720x480.jpg",
              "width": 720,
              "height": 480
            },
            {
              "url": "//d33q4ye4b26s92.cloudfront.net/videos/thumbnails/472/780x520.jpg",
              "width": 780,
              "height": 520
            },
            {
              "url": "//d33q4ye4b26s92.cloudfront.net/videos/thumbnails/472/2000x1125.jpg",
              "width": 2000,
              "height": 1125
            },
            {
              "url": "//d33q4ye4b26s92.cloudfront.net/videos/thumbnails/472/910x350.jpg",
              "width": 910,
              "height": 350
            }
          ]
        },
        {
          "publisher": {
            "id": 2
          },
          "description": "",
          "title": "The Gospel of Matthew",
          "short_url": "yvstaging.com/v/WL",
          "language_tag": "en",
          "credits": "From LumoProject.com",
          "created_dt": "2017-05-12",
          "published_dt": "2017-05-12",
          "id": 2005,
          "thumbnails": [
            {
              "url": "//d33q4ye4b26s92.cloudfront.net/videos/thumbnails/2005/360x240.jpg",
              "width": 360,
              "height": 240
            },
            {
              "url": "//d33q4ye4b26s92.cloudfront.net/videos/thumbnails/2005/720x480.jpg",
              "width": 720,
              "height": 480
            },
            {
              "url": "//d33q4ye4b26s92.cloudfront.net/videos/thumbnails/2005/780x520.jpg",
              "width": 780,
              "height": 520
            },
            {
              "url": "//d33q4ye4b26s92.cloudfront.net/videos/thumbnails/2005/2000x1125.jpg",
              "width": 2000,
              "height": 1125
            },
            {
              "url": "//d33q4ye4b26s92.cloudfront.net/videos/thumbnails/2005/910x350.jpg",
              "width": 910,
              "height": 350
            }
          ]
        },
        {
          "publisher": {
            "id": 4
          },
          "description": "Now, the larger-than-life story of The New Testament gets a larger-than life treatment in the stand-alone feature SON OF GOD. Told with the scope and scale of an action epic, the film features powerful performances, exotic locales, dazzling visual effects and a rich orchestral score from Oscar\u00ae-winner Hans Zimmer. Portuguese actor Diogo Morgado portrays Jesus as the film spans from his humble birth through his teachings, crucifixion and ultimate resurrection. It marks the first motion picture about Jesus\u2019 life since Passion of the Christ, released ten years ago.\\n\\nProducers:\\nMark Burnett\\nRoma Downey\\n\\nDirector:\\nChristopher Spencer\\n\\nWritten By:\\nRichard Bedser\\nChristopher Spencer\\nColin Swash\\nNic Young",
          "title": "Son of God",
          "short_url": "yvstaging.com/v/30",
          "language_tag": "en",
          "credits": "From LightWorkers Media",
          "created_dt": "2014-02-01",
          "published_dt": "2014-02-01",
          "id": 186,
          "thumbnails": [
            {
              "url": "//d33q4ye4b26s92.cloudfront.net/videos/thumbnails/186/360x240.jpg",
              "width": 360,
              "height": 240
            },
            {
              "url": "//d33q4ye4b26s92.cloudfront.net/videos/thumbnails/186/720x480.jpg",
              "width": 720,
              "height": 480
            },
            {
              "url": "//d33q4ye4b26s92.cloudfront.net/videos/thumbnails/186/780x520.jpg",
              "width": 780,
              "height": 520
            },
            {
              "url": "//d33q4ye4b26s92.cloudfront.net/videos/thumbnails/186/2000x1125.jpg",
              "width": 2000,
              "height": 1125
            },
            {
              "url": "//d33q4ye4b26s92.cloudfront.net/videos/thumbnails/186/910x350.jpg",
              "width": 910,
              "height": 350
            }
          ]
        },
        {
          "publisher": {
            "id": 7
          },
          "description": "A short, fully animated overview of Mark's Gospel. Was Jesus really the Messiah that they had been looking for?",
          "title": "The Gospel of Mark",
          "short_url": "yvstaging.com/v/7b",
          "language_tag": "en",
          "credits": "The Bible Project",
          "created_dt": "2016-10-20",
          "published_dt": "2016-10-20",
          "id": 471,
          "thumbnails": [
            {
              "url": "//d33q4ye4b26s92.cloudfront.net/videos/thumbnails/471/360x240.jpg",
              "width": 360,
              "height": 240
            },
            {
              "url": "//d33q4ye4b26s92.cloudfront.net/videos/thumbnails/471/720x480.jpg",
              "width": 720,
              "height": 480
            },
            {
              "url": "//d33q4ye4b26s92.cloudfront.net/videos/thumbnails/471/780x520.jpg",
              "width": 780,
              "height": 520
            },
            {
              "url": "//d33q4ye4b26s92.cloudfront.net/videos/thumbnails/471/2000x1125.jpg",
              "width": 2000,
              "height": 1125
            },
            {
              "url": "//d33q4ye4b26s92.cloudfront.net/videos/thumbnails/471/910x350.jpg",
              "width": 910,
              "height": 350
            }
          ]
        },
        {
          "publisher": {
            "id": 1
          },
          "description": "Full length feature film (produced in 2003) portraying the life of Jesus Christ as written by His disciple John. \"And this is eternal life, that they may know You, the only true God, and Jesus Christ whom You have sent.\" - John 17:3 NKJV \" I have come that they may have life, and that they may have it more abundantly.\" - John 10:10 NKJV \"And truly Jesus did many other signs in the presence of His disciples, which are not written in this book; but these are written that you may believe that Jesus is the Christ, the Son of God, and that believing you may have life in His name. -John 20:30-31 NKJV",
          "title": "Life of Jesus (Gospel of John)",
          "short_url": "yvstaging.com/v/WG",
          "language_tag": "en",
          "credits": "From Jesus Film Project",
          "created_dt": "2017-03-06",
          "published_dt": "2017-03-06",
          "id": 2000,
          "thumbnails": [
            {
              "url": "//d33q4ye4b26s92.cloudfront.net/videos/thumbnails/2000/360x240.jpg",
              "width": 360,
              "height": 240
            },
            {
              "url": "//d33q4ye4b26s92.cloudfront.net/videos/thumbnails/2000/720x480.jpg",
              "width": 720,
              "height": 480
            },
            {
              "url": "//d33q4ye4b26s92.cloudfront.net/videos/thumbnails/2000/780x520.jpg",
              "width": 780,
              "height": 520
            },
            {
              "url": "//d33q4ye4b26s92.cloudfront.net/videos/thumbnails/2000/2000x1125.jpg",
              "width": 2000,
              "height": 1125
            },
            {
              "url": "//d33q4ye4b26s92.cloudfront.net/videos/thumbnails/2000/910x350.jpg",
              "width": 910,
              "height": 350
            }
          ]
        },
        {
          "publisher": {
            "id": 7
          },
          "description": "We want to help you to read through the Bible without getting lost or giving up. This series has a video for every Old Testament book of the Bible that outlines its literary design and main ideas, showing you how it fits into the entire biblical story.",
          "title": "Read Scripture: Old Testament",
          "short_url": "yvstaging.com/v/WI",
          "language_tag": "en",
          "credits": "The Bible Project",
          "created_dt": "2017-03-06",
          "published_dt": "2017-03-06",
          "id": 2002,
          "thumbnails": [
            {
              "url": "//d33q4ye4b26s92.cloudfront.net/videos/thumbnails/2002/360x240.jpg",
              "width": 360,
              "height": 240
            },
            {
              "url": "//d33q4ye4b26s92.cloudfront.net/videos/thumbnails/2002/720x480.jpg",
              "width": 720,
              "height": 480
            },
            {
              "url": "//d33q4ye4b26s92.cloudfront.net/videos/thumbnails/2002/780x520.jpg",
              "width": 780,
              "height": 520
            },
            {
              "url": "//d33q4ye4b26s92.cloudfront.net/videos/thumbnails/2002/2000x1125.jpg",
              "width": 2000,
              "height": 1125
            },
            {
              "url": "//d33q4ye4b26s92.cloudfront.net/videos/thumbnails/2002/910x350.jpg",
              "width": 910,
              "height": 350
            }
          ]
        },
        {
          "publisher": {
            "id": 7
          },
          "description": "The Bible is a very long book that tells a story with complex layers of plots and subplots, and it\u2019s written in a variety of ancient literary styles. All of these factors make the Bible a formidable and often frustrating book for modern readers, including religious readers. And yet, the Bible still has a magnetic draw in our culture which motivates people to overcome these hurdles and attempt to understand what the Bible is all about.  This series will explore the origins, content, and purpose of the Bible, and it will introduce people to some of the basic skills necessary for reading the Bible effectively. The first few videos will provide an overview of where the Bible came from and what its storyline is all about. After this introduction, the rest of the series will explore all the various kinds of ancient literature found in the Bible and will offer practical skills for reading them with greater understanding. The How to Read the Bible series assumes no previous knowledge about the Bible, and is an ideal way to introduce people to the Bible for the first time. It\u2019s also aimed at people who are familiar with the Bible but haven\u2019t yet learned how it communicates as a piece of literature.",
          "title": "How To Read The Bible",
          "short_url": "yvstaging.com/v/WH",
          "language_tag": "en",
          "credits": "The Bible Project",
          "created_dt": "2017-03-06",
          "published_dt": "2017-03-06",
          "id": 2001,
          "thumbnails": [
            {
              "url": "//d33q4ye4b26s92.cloudfront.net/videos/thumbnails/2001/360x240.jpg",
              "width": 360,
              "height": 240
            },
            {
              "url": "//d33q4ye4b26s92.cloudfront.net/videos/thumbnails/2001/720x480.jpg",
              "width": 720,
              "height": 480
            },
            {
              "url": "//d33q4ye4b26s92.cloudfront.net/videos/thumbnails/2001/780x520.jpg",
              "width": 780,
              "height": 520
            },
            {
              "url": "//d33q4ye4b26s92.cloudfront.net/videos/thumbnails/2001/2000x1125.jpg",
              "width": 2000,
              "height": 1125
            },
            {
              "url": "//d33q4ye4b26s92.cloudfront.net/videos/thumbnails/2001/910x350.jpg",
              "width": 910,
              "height": 350
            }
          ]
        }
      ]
    }
  }
}

title-videos-page-2.json
{
  "response": {
    "buildtime": "2018-04-06T16:24:37.780792+00:00",
    "code": 200,
    "data": {
      "next_page": null,
      "total": 14,
      "videos": [
        {
          "publisher": {
            "id": 7
          },
          "description": "We want to help you to read through the Bible without getting lost or giving up. This series has a video for every New Testament book of the Bible that outlines its literary design and main ideas, showing you how it fits into the entire biblical story.",
          "title": "Read Scripture: New Testament",
          "short_url": "yvstaging.com/v/WJ",
          "language_tag": "en",
          "credits": "The Bible Project",
          "created_dt": "2017-03-06",
          "published_dt": "2017-03-06",
          "id": 2003,
          "thumbnails": [
            {
              "url": "//d33q4ye4b26s92.cloudfront.net/videos/thumbnails/2003/360x240.jpg",
              "width": 360,
              "height": 240
            },
            {
              "url": "//d33q4ye4b26s92.cloudfront.net/videos/thumbnails/2003/720x480.jpg",
              "width": 720,
              "height": 480
            },
            {
              "url": "//d33q4ye4b26s92.cloudfront.net/videos/thumbnails/2003/780x520.jpg",
              "width": 780,
              "height": 520
            },
            {
              "url": "//d33q4ye4b26s92.cloudfront.net/videos/thumbnails/2003/2000x1125.jpg",
              "width": 2000,
              "height": 1125
            },
            {
              "url": "//d33q4ye4b26s92.cloudfront.net/videos/thumbnails/2003/910x350.jpg",
              "width": 910,
              "height": 350
            }
          ]
        },
        {
          "publisher": {
            "id": 2
          },
          "description": "The Lumo Project is the chronologic filming of Matthew, Mark, Luke and John.  The films are produced by Big Book Media and in partnership with Toy Gun Films.",
          "title": "Lumo Project",
          "short_url": "yvstaging.com/v/2",
          "language_tag": "en",
          "credits": "From LumoProject.com",
          "created_dt": "2013-02-20",
          "published_dt": "2013-02-20",
          "id": 2,
          "thumbnails": [
            {
              "url": "//d33q4ye4b26s92.cloudfront.net/videos/thumbnails/2/360x240.jpg",
              "width": 360,
              "height": 240
            },
            {
              "url": "//d33q4ye4b26s92.cloudfront.net/videos/thumbnails/2/720x480.jpg",
              "width": 720,
              "height": 480
            },
            {
              "url": "//d33q4ye4b26s92.cloudfront.net/videos/thumbnails/2/780x520.jpg",
              "width": 780,
              "height": 520
            },
            {
              "url": "//d33q4ye4b26s92.cloudfront.net/videos/thumbnails/2/2000x1125.jpg",
              "width": 2000,
              "height": 1125
            },
            {
              "url": "//d33q4ye4b26s92.cloudfront.net/videos/thumbnails/2/910x350.jpg",
              "width": 910,
              "height": 350
            }
          ]
        },
        {
          "publisher": {
            "id": 2
          },
          "description": "",
          "title": "The Gospel of Mark",
          "short_url": "yvstaging.com/v/WM",
          "language_tag": "en",
          "credits": "From LumoProject.com",
          "created_dt": "2017-08-07",
          "published_dt": "2017-08-07",
          "id": 2006,
          "thumbnails": [
            {
              "url": "//d33q4ye4b26s92.cloudfront.net/videos/thumbnails/2006/360x240.jpg",
              "width": 360,
              "height": 240
            },
            {
              "url": "//d33q4ye4b26s92.cloudfront.net/videos/thumbnails/2006/720x480.jpg",
              "width": 720,
              "height": 480
            },
            {
              "url": "//d33q4ye4b26s92.cloudfront.net/videos/thumbnails/2006/780x520.jpg",
              "width": 780,
              "height": 520
            },
            {
              "url": "//d33q4ye4b26s92.cloudfront.net/videos/thumbnails/2006/2000x1125.jpg",
              "width": 2000,
              "height": 1125
            },
            {
              "url": "//d33q4ye4b26s92.cloudfront.net/videos/thumbnails/2006/910x350.jpg",
              "width": 910,
              "height": 350
            }
          ]
        },
        {
          "publisher": {
            "id": 3
          },
          "description": "From Executive Producers Roma Downey and Mark Burnett comes <i>The Bible</i> \u2014 the Emmy nominated, epic 10-part TV miniseries retelling stories from the Scriptures for a whole new generation. Breathtaking in scope and scale, <i>The Bible was viewed by over 100 million</i> and features powerful performances, exotic locales and dazzling visual effects that breathe spectacular life into the dramatic tales of faith and courage from Genesis through Revelation. This historic television event entertained and inspired the whole family. Now, the greatest scenes from The Bible Series are available in the Bible App. <i>The Bible</i> series was produced for HISTORY by LightWorkers Media. Executive Producers are Emmy Award-winning Mark Burnett, (The Voice, Survivor, The Apprentice, Shark Tank) and Roma Downey (Touched By An Angel, It\u2019s a Miracle, Monday After the Miracle). To find out more about <i>The Bible</i> series check out www.bibleseries.tv/subscribe",
          "title": "<i>The Bible</i> Series",
          "short_url": "yvstaging.com/v/3",
          "language_tag": "en",
          "credits": "From BibleSeries.tv",
          "created_dt": "2013-02-14",
          "published_dt": "2013-03-03",
          "id": 3,
          "thumbnails": [
            {
              "url": "//d33q4ye4b26s92.cloudfront.net/videos/thumbnails/3/360x240.jpg",
              "width": 360,
              "height": 240
            },
            {
              "url": "//d33q4ye4b26s92.cloudfront.net/videos/thumbnails/3/720x480.jpg",
              "width": 720,
              "height": 480
            },
            {
              "url": "//d33q4ye4b26s92.cloudfront.net/videos/thumbnails/3/780x520.jpg",
              "width": 780,
              "height": 520
            },
            {
              "url": "//d33q4ye4b26s92.cloudfront.net/videos/thumbnails/3/2000x1125.jpg",
              "width": 2000,
              "height": 1125
            },
            {
              "url": "//d33q4ye4b26s92.cloudfront.net/videos/thumbnails/3/910x350.jpg",
              "width": 910,
              "height": 350
            }
          ]
        }
      ]
    }
  }
}

video-collection.json
{
  "response": {
    "buildtime": "2018-04-06T16:46:17.861403+00:00",
    "code": 200,
    "data": {
      "publisher": {
        "description": "Videos in the Bible App bring a whole new way to experience Scripture. In this very special Easter video collection, you will experience the powerful story of Christ\u2019s sacrifice and resurrection by watching features from LightWorkers Media (A.D., Son of God), Jesus Film Media (The JESUS Film Project\u00ae) and The Lumo Project.",
        "links": [
          {
            "url": "http://blog.youversion.com/easter-videos/",
            "title": "Various Partners"
          }
        ],
        "description_msgid": null,
        "video_id": null,
        "images": [
          {
            "url": "//d33q4ye4b26s92.cloudfront.net/videos/publishers/5/en/75x75.png",
            "width": 75,
            "type": "logo",
            "height": 75
          },
          {
            "url": "//d33q4ye4b26s92.cloudfront.net/videos/publishers/5/en/150x150.png",
            "width": 150,
            "type": "logo",
            "height": 150
          },
          {
            "url": "//d33q4ye4b26s92.cloudfront.net/videos/publishers/5/en/360x120.jpg",
            "width": 360,
            "type": "banner",
            "height": 120
          },
          {
            "url": "//d33q4ye4b26s92.cloudfront.net/videos/publishers/5/en/720x240.jpg",
            "width": 720,
            "type": "banner",
            "height": 240
          },
          {
            "url": "//d33q4ye4b26s92.cloudfront.net/videos/publishers/5/en/915x305.jpg",
            "width": 915,
            "type": "banner",
            "height": 305
          }
        ],
        "id": 5,
        "ga_tracking_id": null,
        "name": "Various Partners"
      },
      "sub_videos": [
        {
          "thumbnails": [
            {
              "url": "//d33q4ye4b26s92.cloudfront.net/videos/thumbnails/269/480x270.jpg",
              "width": 480,
              "height": 270
            },
            {
              "url": "//d33q4ye4b26s92.cloudfront.net/videos/thumbnails/269/640x360.jpg",
              "width": 640,
              "height": 360
            },
            {
              "url": "//d33q4ye4b26s92.cloudfront.net/videos/thumbnails/269/320x180.jpg",
              "width": 320,
              "height": 180
            }
          ],
          "title": "\u201cWhy Have You Forsaken Me?\u201d",
          "short_url": "http://yvstaging.com/v/4L",
          "license_required": false,
          "credits": "From LightWorkers Media",
          "references": [
            {
              "human": "Matthew 27:46",
              "version_id": null,
              "usfm": "MAT.27.46"
            }
          ],
          "created_dt": "2015-03-16",
          "published_dt": "2015-03-16",
          "runtime": "0:00:32",
          "type": "preview",
          "id": 269
        },
        {
          "thumbnails": [
            {
              "url": "//d33q4ye4b26s92.cloudfront.net/videos/thumbnails/267/480x270.jpg",
              "width": 480,
              "height": 270
            },
            {
              "url": "//d33q4ye4b26s92.cloudfront.net/videos/thumbnails/267/640x360.jpg",
              "width": 640,
              "height": 360
            },
            {
              "url": "//d33q4ye4b26s92.cloudfront.net/videos/thumbnails/267/320x180.jpg",
              "width": 320,
              "height": 180
            }
          ],
          "title": "Caiaphas Questions Jesus",
          "short_url": "http://yvstaging.com/v/4J",
          "license_required": false,
          "credits": "From LightWorkers Media",
          "references": [
            {
              "human": "Mark 14:53-65",
              "version_id": null,
              "usfm": "MRK.14.53+MRK.14.54+MRK.14.55+MRK.14.56+MRK.14.57+MRK.14.58+MRK.14.59+MRK.14.60+MRK.14.61+MRK.14.62+MRK.14.63+MRK.14.64+MRK.14.65"
            }
          ],
          "created_dt": "2015-03-16",
          "published_dt": "2015-03-16",
          "runtime": "0:01:04",
          "type": "preview",
          "id": 267
        },
        {
          "thumbnails": [
            {
              "url": "//d33q4ye4b26s92.cloudfront.net/videos/thumbnails/268/480x270.jpg",
              "width": 480,
              "height": 270
            },
            {
              "url": "//d33q4ye4b26s92.cloudfront.net/videos/thumbnails/268/640x360.jpg",
              "width": 640,
              "height": 360
            },
            {
              "url": "//d33q4ye4b26s92.cloudfront.net/videos/thumbnails/268/320x180.jpg",
              "width": 320,
              "height": 180
            }
          ],
          "title": "Preparation of Jesus\u2019 Body",
          "short_url": "http://yvstaging.com/v/4K",
          "license_required": false,
          "credits": "From LightWorkers Media",
          "references": [
            {
              "human": "John 19:38-42",
              "version_id": null,
              "usfm": "JHN.19.38+JHN.19.39+JHN.19.40+JHN.19.41+JHN.19.42"
            }
          ],
          "created_dt": "2015-03-16",
          "published_dt": "2015-03-16",
          "runtime": "0:00:37",
          "type": "preview",
          "id": 268
        },
        {
          "thumbnails": [
            {
              "url": "//d33q4ye4b26s92.cloudfront.net/videos/thumbnails/253/480x270.jpg",
              "width": 480,
              "height": 270
            },
            {
              "url": "//d33q4ye4b26s92.cloudfront.net/videos/thumbnails/253/640x360.jpg",
              "width": 640,
              "height": 360
            },
            {
              "url": "//d33q4ye4b26s92.cloudfront.net/videos/thumbnails/253/320x180.jpg",
              "width": 320,
              "height": 180
            }
          ],
          "title": "Jesus appears to His disciples",
          "short_url": "http://yvstaging.com/v/45",
          "license_required": false,
          "credits": "From LumoProject.com",
          "references": [
            {
              "human": "John 20:19-29",
              "version_id": null,
              "usfm": "JHN.20.19+JHN.20.20+JHN.20.21+JHN.20.22+JHN.20.23+JHN.20.24+JHN.20.25+JHN.20.26+JHN.20.27+JHN.20.28+JHN.20.29"
            }
          ],
          "created_dt": "2014-12-09",
          "published_dt": "2014-12-09",
          "runtime": "0:02:43",
          "type": "episode",
          "id": 253
        },
        {
          "thumbnails": [
            {
              "url": "//d33q4ye4b26s92.cloudfront.net/videos/thumbnails/189/480x270.jpg",
              "width": 480,
              "height": 270
            },
            {
              "url": "//d33q4ye4b26s92.cloudfront.net/videos/thumbnails/189/640x360.jpg",
              "width": 640,
              "height": 360
            },
            {
              "url": "//d33q4ye4b26s92.cloudfront.net/videos/thumbnails/189/320x180.jpg",
              "width": 320,
              "height": 180
            }
          ],
          "title": "The Last Supper",
          "short_url": "http://yvstaging.com/v/33",
          "license_required": false,
          "credits": "From LightWorkers Media",
          "references": [
            {
              "human": "Matthew 26:17-30",
              "version_id": null,
              "usfm": "MAT.26.17+MAT.26.18+MAT.26.19+MAT.26.20+MAT.26.21+MAT.26.22+MAT.26.23+MAT.26.24+MAT.26.25+MAT.26.26+MAT.26.27+MAT.26.28+MAT.26.29+MAT.26.30"
            },
            {
              "human": "Mark 14:12-26",
              "version_id": null,
              "usfm": "MRK.14.12+MRK.14.13+MRK.14.14+MRK.14.15+MRK.14.16+MRK.14.17+MRK.14.18+MRK.14.19+MRK.14.20+MRK.14.21+MRK.14.22+MRK.14.23+MRK.14.24+MRK.14.25+MRK.14.26"
            },
            {
              "human": "Luke 22:7-39",
              "version_id": null,
              "usfm": "LUK.22.7+LUK.22.8+LUK.22.9+LUK.22.10+LUK.22.11+LUK.22.12+LUK.22.13+LUK.22.14+LUK.22.15+LUK.22.16+LUK.22.17+LUK.22.18+LUK.22.19+LUK.22.20+LUK.22.21+LUK.22.22+LUK.22.23+LUK.22.24+LUK.22.25+LUK.22.26+LUK.22.27+LUK.22.28+LUK.22.29+LUK.22.30+LUK.22.31+LUK.22.32+LUK.22.33+LUK.22.34+LUK.22.35+LUK.22.36+LUK.22.37+LUK.22.38+LUK.22.39"
            },
            {
              "human": "John 13:1-38",
              "version_id": null,
              "usfm": "JHN.13.1+JHN.13.2+JHN.13.3+JHN.13.4+JHN.13.5+JHN.13.6+JHN.13.7+JHN.13.8+JHN.13.9+JHN.13.10+JHN.13.11+JHN.13.12+JHN.13.13+JHN.13.14+JHN.13.15+JHN.13.16+JHN.13.17+JHN.13.18+JHN.13.19+JHN.13.20+JHN.13.21+JHN.13.22+JHN.13.23+JHN.13.24+JHN.13.25+JHN.13.26+JHN.13.27+JHN.13.28+JHN.13.29+JHN.13.30+JHN.13.31+JHN.13.32+JHN.13.33+JHN.13.34+JHN.13.35+JHN.13.36+JHN.13.37+JHN.13.38"
            },
            {
              "human": "John 14:1-31",
              "version_id": null,
              "usfm": "JHN.14.1+JHN.14.2+JHN.14.3+JHN.14.4+JHN.14.5+JHN.14.6+JHN.14.7+JHN.14.8+JHN.14.9+JHN.14.10+JHN.14.11+JHN.14.12+JHN.14.13+JHN.14.14+JHN.14.15+JHN.14.16+JHN.14.17+JHN.14.18+JHN.14.19+JHN.14.20+JHN.14.21+JHN.14.22+JHN.14.23+JHN.14.24+JHN.14.25+JHN.14.26+JHN.14.27+JHN.14.28+JHN.14.29+JHN.14.30+JHN.14.31"
            },
            {
              "human": "John 15:1-27",
              "version_id": null,
              "usfm": "JHN.15.1+JHN.15.2+JHN.15.3+JHN.15.4+JHN.15.5+JHN.15.6+JHN.15.7+JHN.15.8+JHN.15.9+JHN.15.10+JHN.15.11+JHN.15.12+JHN.15.13+JHN.15.14+JHN.15.15+JHN.15.16+JHN.15.17+JHN.15.18+JHN.15.19+JHN.15.20+JHN.15.21+JHN.15.22+JHN.15.23+JHN.15.24+JHN.15.25+JHN.15.26+JHN.15.27"
            },
            {
              "human": "John 16:1-33",
              "version_id": null,
              "usfm": "JHN.16.1+JHN.16.2+JHN.16.3+JHN.16.4+JHN.16.5+JHN.16.6+JHN.16.7+JHN.16.8+JHN.16.9+JHN.16.10+JHN.16.11+JHN.16.12+JHN.16.13+JHN.16.14+JHN.16.15+JHN.16.16+JHN.16.17+JHN.16.18+JHN.16.19+JHN.16.20+JHN.16.21+JHN.16.22+JHN.16.23+JHN.16.24+JHN.16.25+JHN.16.26+JHN.16.27+JHN.16.28+JHN.16.29+JHN.16.30+JHN.16.31+JHN.16.32+JHN.16.33"
            },
            {
              "human": "John 17:1-26",
              "version_id": null,
              "usfm": "JHN.17.1+JHN.17.2+JHN.17.3+JHN.17.4+JHN.17.5+JHN.17.6+JHN.17.7+JHN.17.8+JHN.17.9+JHN.17.10+JHN.17.11+JHN.17.12+JHN.17.13+JHN.17.14+JHN.17.15+JHN.17.16+JHN.17.17+JHN.17.18+JHN.17.19+JHN.17.20+JHN.17.21+JHN.17.22+JHN.17.23+JHN.17.24+JHN.17.25+JHN.17.26"
            }
          ],
          "created_dt": "2014-02-24",
          "published_dt": "2014-02-28",
          "runtime": "0:07:30",
          "type": "preview",
          "id": 189
        },
        {
          "thumbnails": [
            {
              "url": "//d33q4ye4b26s92.cloudfront.net/videos/thumbnails/39/480x270.jpg",
              "width": 480,
              "height": 270
            },
            {
              "url": "//d33q4ye4b26s92.cloudfront.net/videos/thumbnails/39/640x360.jpg",
              "width": 640,
              "height": 360
            },
            {
              "url": "//d33q4ye4b26s92.cloudfront.net/videos/thumbnails/39/320x180.jpg",
              "width": 320,
              "height": 180
            }
          ],
          "title": "Jesus' Triumphal Entry - Palm Sunday",
          "short_url": "http://yvstaging.com/v/d",
          "license_required": false,
          "credits": "From Jesus Film Project",
          "references": [
            {
              "human": "Matthew 21:9",
              "version_id": null,
              "usfm": "MAT.21.9"
            },
            {
              "human": " Mark 11:9",
              "version_id": null,
              "usfm": "MRK.11.9"
            },
            {
              "human": " Luke 19:28, 35-41",
              "version_id": null,
              "usfm": "LUK.19.28+LUK.19.35+LUK.19.36+LUK.19.37+LUK.19.38+LUK.19.39+LUK.19.40+LUK.19.41"
            },
            {
              "human": " John 12:13",
              "version_id": null,
              "usfm": "JHN.12.13"
            }
          ],
          "created_dt": "2013-02-19",
          "published_dt": "1979-10-19",
          "runtime": "0:01:10",
          "type": "episode",
          "id": 39
        },
        {
          "thumbnails": [
            {
              "url": "//d33q4ye4b26s92.cloudfront.net/videos/thumbnails/46/480x270.jpg",
              "width": 480,
              "height": 270
            },
            {
              "url": "//d33q4ye4b26s92.cloudfront.net/videos/thumbnails/46/640x360.jpg",
              "width": 640,
              "height": 360
            },
            {
              "url": "//d33q4ye4b26s92.cloudfront.net/videos/thumbnails/46/320x180.jpg",
              "width": 320,
              "height": 180
            }
          ],
          "title": "The Last Supper",
          "short_url": "http://yvstaging.com/v/k",
          "license_required": false,
          "credits": "From Jesus Film Project",
          "references": [
            {
              "human": "Luke 22:7-8, 15-23",
              "version_id": null,
              "usfm": "LUK.22.7+LUK.22.8+LUK.22.15+LUK.22.16+LUK.22.17+LUK.22.18+LUK.22.19+LUK.22.20+LUK.22.21+LUK.22.22+LUK.22.23"
            },
            {
              "human": " Matthew 26:22-23",
              "version_id": null,
              "usfm": "MAT.26.22+MAT.26.23"
            },
            {
              "human": " Mark 14:19, 29",
              "version_id": null,
              "usfm": "MRK.14.19+MRK.14.29"
            },
            {
              "human": " John 13:24-25",
              "version_id": null,
              "usfm": "JHN.13.24+JHN.13.25"
            }
          ],
          "created_dt": "2013-02-19",
          "published_dt": "1979-10-19",
          "runtime": "0:02:55",
          "type": "episode",
          "id": 46
        },
        {
          "thumbnails": [
            {
              "url": "//d33q4ye4b26s92.cloudfront.net/videos/thumbnails/55/480x270.jpg",
              "width": 480,
              "height": 270
            },
            {
              "url": "//d33q4ye4b26s92.cloudfront.net/videos/thumbnails/55/640x360.jpg",
              "width": 640,
              "height": 360
            },
            {
              "url": "//d33q4ye4b26s92.cloudfront.net/videos/thumbnails/55/320x180.jpg",
              "width": 320,
              "height": 180
            }
          ],
          "title": "Jesus is Crucified",
          "short_url": "http://yvstaging.com/v/t",
          "license_required": false,
          "credits": "From Jesus Film Project",
          "references": [
            {
              "human": "Luke 23:33-39",
              "version_id": null,
              "usfm": "LUK.23.33+LUK.23.34+LUK.23.35+LUK.23.36+LUK.23.37+LUK.23.38+LUK.23.39"
            },
            {
              "human": " Matthew 27:41-42",
              "version_id": null,
              "usfm": "MAT.27.41+MAT.27.42"
            },
            {
              "human": " Isaiah 53:12",
              "version_id": null,
              "usfm": "ISA.53.12"
            }
          ],
          "created_dt": "2013-02-19",
          "published_dt": "1979-10-19",
          "runtime": "0:02:49",
          "type": "episode",
          "id": 55
        },
        {
          "thumbnails": [
            {
              "url": "//d33q4ye4b26s92.cloudfront.net/videos/thumbnails/59/480x270.jpg",
              "width": 480,
              "height": 270
            },
            {
              "url": "//d33q4ye4b26s92.cloudfront.net/videos/thumbnails/59/640x360.jpg",
              "width": 640,
              "height": 360
            },
            {
              "url": "//d33q4ye4b26s92.cloudfront.net/videos/thumbnails/59/320x180.jpg",
              "width": 320,
              "height": 180
            }
          ],
          "title": "Death of Jesus",
          "short_url": "http://yvstaging.com/v/x",
          "license_required": false,
          "credits": "From Jesus Film Project",
          "references": [
            {
              "human": "Luke 23:44-47",
              "version_id": null,
              "usfm": "LUK.23.44+LUK.23.45+LUK.23.46+LUK.23.47"
            },
            {
              "human": " Matthew 27:54",
              "version_id": null,
              "usfm": "MAT.27.54"
            }
          ],
          "created_dt": "2013-02-19",
          "published_dt": "1979-10-19",
          "runtime": "0:01:45",
          "type": "episode",
          "id": 59
        },
        {
          "thumbnails": [
            {
              "url": "//d33q4ye4b26s92.cloudfront.net/videos/thumbnails/61/480x270.jpg",
              "width": 480,
              "height": 270
            },
            {
              "url": "//d33q4ye4b26s92.cloudfront.net/videos/thumbnails/61/640x360.jpg",
              "width": 640,
              "height": 360
            },
            {
              "url": "//d33q4ye4b26s92.cloudfront.net/videos/thumbnails/61/320x180.jpg",
              "width": 320,
              "height": 180
            }
          ],
          "title": "Angels at the Tomb",
          "short_url": "http://yvstaging.com/v/z",
          "license_required": false,
          "credits": "From Jesus Film Project",
          "references": [
            {
              "human": "Luke 24:1-7",
              "version_id": null,
              "usfm": "LUK.24.1+LUK.24.2+LUK.24.3+LUK.24.4+LUK.24.5+LUK.24.6+LUK.24.7"
            }
          ],
          "created_dt": "2013-02-19",
          "published_dt": "1979-10-19",
          "runtime": "0:01:28",
          "type": "episode",
          "id": 61
        },
        {
          "thumbnails": [
            {
              "url": "//d33q4ye4b26s92.cloudfront.net/videos/thumbnails/62/480x270.jpg",
              "width": 480,
              "height": 270
            },
            {
              "url": "//d33q4ye4b26s92.cloudfront.net/videos/thumbnails/62/640x360.jpg",
              "width": 640,
              "height": 360
            },
            {
              "url": "//d33q4ye4b26s92.cloudfront.net/videos/thumbnails/62/320x180.jpg",
              "width": 320,
              "height": 180
            }
          ],
          "title": "Tomb of Jesus is Empty",
          "short_url": "http://yvstaging.com/v/10",
          "license_required": false,
          "credits": "From Jesus Film Project",
          "references": [
            {
              "human": "Luke 24:8-11",
              "version_id": null,
              "usfm": "LUK.24.8+LUK.24.9+LUK.24.10+LUK.24.11"
            },
            {
              "human": " Mark 16:8, 10-11",
              "version_id": null,
              "usfm": "MRK.16.8+MRK.16.10+MRK.16.11"
            }
          ],
          "created_dt": "2013-02-19",
          "published_dt": "1979-10-19",
          "runtime": "0:01:22",
          "type": "episode",
          "id": 62
        },
        {
          "thumbnails": [
            {
              "url": "//d33q4ye4b26s92.cloudfront.net/videos/thumbnails/63/480x270.jpg",
              "width": 480,
              "height": 270
            },
            {
              "url": "//d33q4ye4b26s92.cloudfront.net/videos/thumbnails/63/640x360.jpg",
              "width": 640,
              "height": 360
            },
            {
              "url": "//d33q4ye4b26s92.cloudfront.net/videos/thumbnails/63/320x180.jpg",
              "width": 320,
              "height": 180
            }
          ],
          "title": "Resurrected Jesus Appears to His Disciples",
          "short_url": "http://yvstaging.com/v/11",
          "license_required": false,
          "credits": "From Jesus Film Project",
          "references": [
            {
              "human": "Luke 24:13-16, 30-31, 33-35",
              "version_id": null,
              "usfm": "LUK.24.13+LUK.24.14+LUK.24.15+LUK.24.16+LUK.24.30+LUK.24.31+LUK.24.33+LUK.24.34+LUK.24.35"
            }
          ],
          "created_dt": "2013-02-19",
          "published_dt": "1979-10-19",
          "runtime": "0:01:55",
          "type": "episode",
          "id": 63
        },
        {
          "thumbnails": [
            {
              "url": "//d33q4ye4b26s92.cloudfront.net/videos/thumbnails/64/480x270.jpg",
              "width": 480,
              "height": 270
            },
            {
              "url": "//d33q4ye4b26s92.cloudfront.net/videos/thumbnails/64/640x360.jpg",
              "width": 640,
              "height": 360
            },
            {
              "url": "//d33q4ye4b26s92.cloudfront.net/videos/thumbnails/64/320x180.jpg",
              "width": 320,
              "height": 180
            }
          ],
          "title": "Jesus Gives Great Commission and Ascends to Heaven",
          "short_url": "http://yvstaging.com/v/12",
          "license_required": false,
          "credits": "From Jesus Film Project",
          "references": [
            {
              "human": "Matthew 28:18-20",
              "version_id": null,
              "usfm": "MAT.28.18+MAT.28.19+MAT.28.20"
            },
            {
              "human": " Luke 24:50-52",
              "version_id": null,
              "usfm": "LUK.24.50+LUK.24.51+LUK.24.52"
            }
          ],
          "created_dt": "2013-02-19",
          "published_dt": "1979-10-19",
          "runtime": "0:01:15",
          "type": "episode",
          "id": 64
        },
        {
          "thumbnails": [
            {
              "url": "//d33q4ye4b26s92.cloudfront.net/videos/thumbnails/68/480x270.jpg",
              "width": 480,
              "height": 270
            },
            {
              "url": "//d33q4ye4b26s92.cloudfront.net/videos/thumbnails/68/640x360.jpg",
              "width": 640,
              "height": 360
            },
            {
              "url": "//d33q4ye4b26s92.cloudfront.net/videos/thumbnails/68/320x180.jpg",
              "width": 320,
              "height": 180
            }
          ],
          "title": "Jesus On The Cross",
          "short_url": "http://yvstaging.com/v/16",
          "license_required": false,
          "credits": "From LumoProject.com",
          "references": [
            {
              "human": "Luke 23:36-49",
              "version_id": null,
              "usfm": "LUK.23.36+LUK.23.37+LUK.23.38+LUK.23.39+LUK.23.40+LUK.23.41+LUK.23.42+LUK.23.43+LUK.23.44+LUK.23.45+LUK.23.46+LUK.23.47+LUK.23.48+LUK.23.49"
            }
          ],
          "created_dt": "2013-02-20",
          "published_dt": "2013-02-20",
          "runtime": "0:06:46",
          "type": "episode",
          "id": 68
        },
        {
          "thumbnails": [
            {
              "url": "//d33q4ye4b26s92.cloudfront.net/videos/thumbnails/83/480x270.jpg",
              "width": 480,
              "height": 270
            },
            {
              "url": "//d33q4ye4b26s92.cloudfront.net/videos/thumbnails/83/640x360.jpg",
              "width": 640,
              "height": 360
            },
            {
              "url": "//d33q4ye4b26s92.cloudfront.net/videos/thumbnails/83/320x180.jpg",
              "width": 320,
              "height": 180
            }
          ],
          "title": "The Ascension",
          "short_url": "http://yvstaging.com/v/1L",
          "license_required": false,
          "credits": "From LumoProject.com",
          "references": [
            {
              "human": "Luke 24:44-53",
              "version_id": null,
              "usfm": "LUK.24.44+LUK.24.45+LUK.24.46+LUK.24.47+LUK.24.48+LUK.24.49+LUK.24.50+LUK.24.51+LUK.24.52+LUK.24.53"
            }
          ],
          "created_dt": "2013-02-20",
          "published_dt": "2013-02-20",
          "runtime": "0:02:00",
          "type": "episode",
          "id": 83
        }
      ],
      "description": "",
      "title": "Easter",
      "renditions": null,
      "language_tag": "en",
      "license_required": false,
      "credits": "LightWorkers, Jesus Film, and Lumo",
      "references": null,
      "created_dt": "2018-03-16",
      "short_url": "http://yvstaging.com/v/4I",
      "published_dt": "2018-03-16",
      "runtime": "0:00:00",
      "type": "series",
      "id": 266,
      "thumbnails": [
        {
          "url": "//d33q4ye4b26s92.cloudfront.net/videos/thumbnails/266/360x240.jpg",
          "width": 360,
          "height": 240
        },
        {
          "url": "//d33q4ye4b26s92.cloudfront.net/videos/thumbnails/266/720x480.jpg",
          "width": 720,
          "height": 480
        },
        {
          "url": "//d33q4ye4b26s92.cloudfront.net/videos/thumbnails/266/780x520.jpg",
          "width": 780,
          "height": 520
        },
        {
          "url": "//d33q4ye4b26s92.cloudfront.net/videos/thumbnails/266/2000x1125.jpg",
          "width": 2000,
          "height": 1125
        },
        {
          "url": "//d33q4ye4b26s92.cloudfront.net/videos/thumbnails/266/910x350.jpg",
          "width": 910,
          "height": 350
        }
      ]
    }
  }
}

video-detail.json
{
  "response": {
    "buildtime": "2018-04-06T17:15:05.440993+00:00",
    "code": 200,
    "data": {
      "publisher": {
        "description": "A.D. THE BIBLE CONTINUES\nFrom executive producers Roma Downey and Mark Burnett (The Bible) comes the uplifting spiritual journey of the earliest days of the church. A.D. The Bible Continues begins where epic miniseries The Bible left off, following up the greatest story ever told with an extraordinary telling of the inspiring events that followed the Crucifixion of Christ. Richard Bedser serves as executive producer alongside Downey and Burnett. \"A.D. The Bible Continues\" is a production of LightWorkers Media.\n\nJoin us for <i>A.D. The Bible Continues</i>, coming to NBC on Easter Sunday, 2015.",
        "links": [
          {
            "url": "http://www.nbc.com/ad-the-bible-continues",
            "title": "A.D. The Bible Continues"
          }
        ],
        "description_msgid": null,
        "video_id": null,
        "images": [
          {
            "url": "//d33q4ye4b26s92.cloudfront.net/videos/publishers/6/en/75x75.png",
            "width": 75,
            "type": "logo",
            "height": 75
          },
          {
            "url": "//d33q4ye4b26s92.cloudfront.net/videos/publishers/6/en/150x150.png",
            "width": 150,
            "type": "logo",
            "height": 150
          },
          {
            "url": "//d33q4ye4b26s92.cloudfront.net/videos/publishers/6/en/360x120.jpg",
            "width": 360,
            "type": "banner",
            "height": 120
          },
          {
            "url": "//d33q4ye4b26s92.cloudfront.net/videos/publishers/6/en/720x240.jpg",
            "width": 720,
            "type": "banner",
            "height": 240
          },
          {
            "url": "//d33q4ye4b26s92.cloudfront.net/videos/publishers/6/en/915x305.jpg",
            "width": 915,
            "type": "banner",
            "height": 305
          }
        ],
        "id": 6,
        "ga_tracking_id": null,
        "name": "LightWorkers Media"
      },
      "sub_videos": null,
      "description": "Jesus cries out to God from the cross, \u201cMy God, my God, why have you forsaken me?\u201d LightWorkers Media, from Matt. 27:45\u201356. Experience the rest of this story in <i>A.D.: The Bible Continues</i>, premiering Easter Sunday on NBC. Twitter: #ADTheSeries",
      "title": "\u201cWhy Have You Forsaken Me?\u201d",
      "renditions": [
        {
          "url": "https://cdn-youversionapi.global.ssl.fastly.net/videos-youversionapi/west/269/playlist.m3u8",
          "multi_bitrate": true,
          "variants": [
            {
              "kbit_rate": 2199,
              "audio": {
                "kbit_rate": 192,
                "channels": 2,
                "codec": "aac",
                "audio_sample_rate": 44100
              },
              "video": {
                "kbit_rate": 2007,
                "h264_level": 3.1,
                "frame_width": 1280,
                "frame_height": 720,
                "frame_rate": 23.98,
                "h264_profile": "main",
                "codec": "h264"
              }
            },
            {
              "kbit_rate": 732,
              "audio": {
                "kbit_rate": 127,
                "channels": 2,
                "codec": "aac",
                "audio_sample_rate": 44100
              },
              "video": {
                "kbit_rate": 605,
                "h264_level": 3.0,
                "frame_width": 640,
                "frame_height": 360,
                "frame_rate": 23.98,
                "h264_profile": "baseline",
                "codec": "h264"
              }
            },
            {
              "kbit_rate": 501,
              "audio": {
                "kbit_rate": 96,
                "channels": 2,
                "codec": "aac",
                "audio_sample_rate": 44100
              },
              "video": {
                "kbit_rate": 405,
                "h264_level": 3.0,
                "frame_width": 480,
                "frame_height": 270,
                "frame_rate": 23.98,
                "h264_profile": "baseline",
                "codec": "h264"
              }
            }
          ],
          "protocol": "hls",
          "format": "mpeg4"
        },
        {
          "kbit_rate": 2199,
          "multi_bitrate": false,
          "format": "mpeg4",
          "url": "https://cdn-youversionapi.global.ssl.fastly.net/videos-youversionapi/west/269/high-ts/high.m3u8",
          "video": {
            "kbit_rate": 2007,
            "h264_level": 3.1,
            "frame_width": 1280,
            "frame_height": 720,
            "frame_rate": 23.98,
            "h264_profile": "main",
            "codec": "h264"
          },
          "protocol": "hls",
          "audio": {
            "kbit_rate": 192,
            "channels": 2,
            "codec": "aac",
            "audio_sample_rate": 44100
          }
        },
        {
          "kbit_rate": 2086,
          "multi_bitrate": false,
          "format": "webm",
          "url": "https://cdn-youversionapi.global.ssl.fastly.net/videos-youversionapi/west/269/high.webm",
          "video": {
            "kbit_rate": 1894,
            "frame_height": 720,
            "codec": "vp8",
            "frame_rate": 23.98,
            "frame_width": 1280
          },
          "protocol": "http",
          "audio": {
            "kbit_rate": 192,
            "channels": 2,
            "codec": "vorbis",
            "audio_sample_rate": 44100
          }
        }
      ],
      "language_tag": "en",
      "license_required": false,
      "credits": "From LightWorkers Media",
      "references": [
        {
          "human": "Matthew 27:46",
          "version_id": null,
          "usfm": "MAT.27.46"
        }
      ],
      "created_dt": "2015-03-16",
      "short_url": "http://yvstaging.com/v/4L",
      "published_dt": "2015-03-16",
      "runtime": "0:00:32",
      "type": "preview",
      "id": 269,
      "thumbnails": [
        {
          "url": "//d33q4ye4b26s92.cloudfront.net/videos/thumbnails/269/480x270.jpg",
          "width": 480,
          "height": 270
        },
        {
          "url": "//d33q4ye4b26s92.cloudfront.net/videos/thumbnails/269/640x360.jpg",
          "width": 640,
          "height": 360
        },
        {
          "url": "//d33q4ye4b26s92.cloudfront.net/videos/thumbnails/269/320x180.jpg",
          "width": 320,
          "height": 180
        }
      ]
    }
  }
}

Hey, I'd like to be assigned this issue.

@rnice01 it's all yours. But, Github is giving me pain about assigning it to someone.

@michael-martin-al
Hey, just to clarify this issue, these responses will just be imported in as raw JSON and not wrapped in a mock AJAX request the returns a promise or something like that right?

That's correct @rnice01 . Keeping it real simple to start with.


Fix path to version.py in setup.py

Got an error
      with open('sdk/python/feast/version.py') as fp:
  FileNotFoundError: [Errno 2] No such file or directory: 'sdk/python/feast/version.py'

when trying to run pip install -e "sdk/python[ci]" from the root. This fixed things, and should also fix running setup.py from any directory.

LGTM


Add option to not process debug info

For use with Breakpad I need an option to not process the debug information into separate (.dbg) files. Should probably be a new CMake flag that skips the calls to the debug info processing tool.

https://github.com/GameFoundry/bsf/pull/375


Not following symlinks in File.exists? and File.chmod

File.exists? and File.chmod are two methods that always dereference symlinks; when File.readlink was implemented on Windows, those two methods call Crystal::System::File.realpath internally to match the default behavior of the equivalent POSIX implementations. They should support the follow_symlinks parameter, which requires additional work for Unix-like systems:

I believe File.exists? requires using lstat instead of access
For File.chmod, fchmodat(AT_FDCWD, path, mode, AT_SYMLINK_NOFOLLOW) ignores symlinks

Same goes for .readable?, .writable?, and .executable? actually, which are all currently variants of .exists? (i.e. following symlinks on POSIX and not following on Windows)


[ESM] Convert the gulpfile to use standard modules

This is a necessary intermediate step to allow converting files in the external/builder/ folder.

/botio-linux preview

/botio test

It's weird that only the Linux-bot fails completely, with messages such as below.
My only guess is that it might be related to the gulp-cli package, since that's not automatically installed; maybe the Linux-bot uses an outdated version?
@calixteman Can you please run npm install -g gulp-cli on the Linux-bot, to see if that fixes things?
>> Making web site
[14:03:58] No gulpfile found

>> Running tests
[14:11:41] No gulpfile found
!botio_message:+ **Font tests:** FAILED
!botio_message:+ **Unit tests:** FAILED
!botio_message:+ **Integration Tests:** FAILED
!botio_message:+ **Regression tests:** FAILED

/botio-linux test

/botio-linux test

That seems to have worked, thank you @calixteman


Retain metadata encoded in FastQ filenames

Is your feature request related to a problem? Please describe
Before we used samplesheet.csv, we retained the FastQ filenames in the downstream pipeline. This allows me to put metadata, such as Mouse-ID or gender, and have this in all subsequent steps. This helps me when troubleshooting in MultiQC or in some downstream custom analysis where I encounter problems where I need to go back to the original metadata.
With the samplesheet.csv solution, this information gets lost, as the samples are renamed based on group and replicate-number.
Describe the solution you'd like
I would like to have the option to retain the original FastQ filenames of the samples to include metadata encoded there.
Describe alternatives you've considered
Maybe adding a "metadata" section in the samplesheet.csv could be an option, but I don't like this, because it requires copy- and pasting this information again, making it more prone to errors. On the other hand, we already have to copy- and paste the FastQ file paths to samplesheet.csv anyway, so maybe this is not a big deal.
Thanks for all the great work with this pipeline!

Hi @paulklemm ! Apologies for the late response.
From what I understand based on your comments this will be resolved in the next release. See https://github.com/nf-core/rnaseq/pull/551. But if you want to use the latest release you could just give the group column the same name as your FastQ files as an alternative solution? You will have the _R* suffixes appended to the sample names but hopefully that is more bearable?

Sounds good. I will close this issue.

Thank you!

Thanks for all the hard work on this pipeline, it really works great for me! :)

You are very welcome 🙂


Multisig frontend

In order to interact with the multi-signature wallet in a user friendly manner a user interface should be created.

Closing in favor of https://github.com/FuelLabs/sway-applications/issues/592


toPlainMessage doesn't work with RSC and messages that contain binary data (Uint8Array)

I tried to utilize toPlainMessage to pass the server<>client boundary in a Next.js application (with React Server Components, RSC).
I ran into an obscure error there which appears to be caused by my messages containing WASM code (binary as Uint8Array).
I confirmed that "rehydrating" the same message (once via binary, once via plain message) doesn't yield the same result:
// server.ts:
function MyServerComponent() {
  return <MyComponent plain={toPlainMessage(message)} binary={message.toBinary()} />
}

// client.ts
function MyClientComponent({ plain, binary }: { plain: PlainMessage, binary: any }) {
  const rehydratedBinary = MyMessageType.fromBinary(Uint8Array.from(binary));
  const rehydratedPlain = new MyMessageType(plain);

  console.log(rehydratedBinary.equals(rehydratedPlain)); // false

  return null;
}

However, it works fine for me if I use .toBinary() on the server and then "rehydrated" on the client using serde utils like this (using base64 to optimize for wire size):
import { Message, MessageType, protoBase64 } from "@bufbuild/protobuf";

export type SerializedMessage<TMessage extends Message<TMessage>> = string & { __type: TMessage };

export function serializeMesage<TMessage extends Message<TMessage>>(message: TMessage) {
  return protoBase64.enc(message.toBinary()) as SerializedMessage<TMessage>;
}

export function deserializeMessage<TMessage extends Message<TMessage>>(
  type: MessageType<TMessage>,
  value: SerializedMessage<TMessage>,
) {
  return type.fromBinary(protoBase64.dec(value));
}

React Server Components require that all props are serializable to JSON. Your solution of passing the base64 encoded binary is valid, but you could probably simplify the process by just passing down the MyMessageType.toJson() in the props and then use MyMessageType.fromJson() inside the component. The toJson method already handles converting bytes (binary) message fields into their base64 encoded representation to make it serializable to JSON.

Yeah. I've used .toJson() before. I only added this as an optimization because my messages are insanely large (several megabytes). Using base64 actually saves me a couple hundred kilobytes here.

@srikrsna-buf, this should be resolved by https://github.com/bufbuild/protobuf-es/pull/533, right?

Yes it can be closed

v1.3.1 has just been released with the fix.


feat: add husky (#29)

closes (#29)

I'm not sure if our lint-command does what he is intended to do:

After  doing the commit my Source-Control-Tab looks like this.
I think thats because of the --fix-Flag in the lint script.
Is this the intended behaviour?

The tests fail because, it wants to install version 0.0.1 as I bumped it 0.0.2. So 0.0.1 isnt available anymore. Tbh I wasnt aware of this problem..
Shall I adjust this here as well (like in #88) or what shall I do?

Hmm, that suggests that the pre-commit hook isn't behaving properly.
Additionally, the lint script using the --fix flag effectively makes it useless in CI, as the Action will "fix" the files but they won't be committed.
My recommendation is to use a separate script for --fix and remove it from the lint that the CI uses.

merged #93 👍

merged #93 👍

Thx!

This PR is ready for review I think

After running the script I get following console:

Is this a problem, or is it fine for us, that we shouldnt open issues regarding this?

Should be fine, I think - we could potentially look at rolling TS back to 4.1.5 if issues arise.

Should be fine, I think - we could potentially look at rolling TS back to 4.1.5 if issues arise.

Okay, than I think the PR is reviewable 😄


The initially generated token in store UI does not contain the scopes with Internal roles

Description:
When the keys are generated from the store UI, the token does not contain the scopes which have been defined with internal role mappings. But this works fine when the token has been regenerated.

Fixed with https://github.com/wso2/carbon-apimgt/pull/6218


Sending props from navigator route makes the navigator.navigate disappear . Can not jump from one screen to another.

`// my router
export const NewsFetch = StackNavigator({
Brief              :     { screen   : props =>  <NewsColumnFixed  head="bangladesh"/> },
Detail             :     { screen   : props => <NewsDetails head="bangladesh" /> },
});
// It's like sending a props takes away the power to navigate
// Inside NewsColumnFixed
<Button
onPress={ () => this.props.navigation.navigate('Detail')}
//works no more
title="Go to Details page"
/>
// when I changed my router as below
export const NewsFetch = StackNavigator({
Brief              :     { screen   : NewsColumnFixed  }, // It works
Detail             :     { screen   : props => <NewsDetails head="bangladesh" /> },
});
//Now I can not send props to  NewsColumnFixed
`

You need to pass on props when using the function. A working version of your first code would be:
export const NewsFetch = StackNavigator({
  Brief : { screen : props =><NewsColumnFixedhead="bangladesh" {...props} /> },
  Detail : { screen : props => <NewsDetails head="bangladesh" {...props} /> },
});

Passing the props is not a problem here.
I can pass props and receive on the the other end.
But when I pass props the screen loses the default props from the parent navigator and so it can not navigate from one screen to another screen . That is the main point of this issue.
Though I worked the problem around and screenprops served my need well but the question remains "Why sending props like above overrides the default props sent by the parent navigator".

Right, that's where the {...props} comes in. When we simply pass the component the stack navigator will go ahead and render the component and pass it the default props but since you're rendering the component you need to pass the default props, which is what {...props does.
screenProps is certainly an option but you've then got to access navigation at this.props.screenProps.navigation rather than this.props.navigation. With the method I suggest you can access it normally.
Here's a working demo

Now I get it.
Thanks man for explaining it to me.

I implemented it the way you did @spencercarli
  Settings: {
      screen: ({
        props,
        navigation,
      }: {
        props: NavigationScreenProp<{}>,
        navigation: NavigationScreenProp<{}>,
      }) => (
        <Example
          screenProps={{ rootNavigation: navigation }}
          {...props}
        />
      ),
    },

this.props.navigation.dispatch(NavigationActions.navigate({
                  routeName: BASE_ROUTE,
                  action: NavigationActions.navigate({
                    routeName: SUB_ROUTE,
                  }),
                }))

It only navigate to the base route and not the subroute


Fix to Rotate CA e2e test

Proposed Changes

Fixes several issues around the new E2E Rotate CA test.
Adds test to nightly runs

Types of Changes
Test fix

Verification
go test -v -timeout=15m ./rotateca/rotateca_test.go
Test passes now

Testing

Linked Issues
N/A testing fix

Merging; an unrelated error is causing drone failure


Ensure node restart does not fail due to ignition

If the first reboot of a machine running ock is not graceful, ignition will run on the subsequent boot. Ignition is only meant to run on the firstboot of the machine and thus causes the node to fail during the second restart. The node is not able to start kubernetes. This issue can be observed on all providers.
This issue is most likely caused by the failure to remove the "ignition.firstboot=1" kernel argument from the grub config. A possible solution is to create a dracut module that removes this entry on startup.

See https://github.com/oracle-cne/ock/issues/10 in the ock repository


docs(api): new_modules.rst revsions for Flex

Overview
Suggested text and code example revisions to the Modules API docs (new_modules.rst file) to include Flex code and code examples.
Test Plan

Checked links and cross-references to make sure they work.
Code changes are minor. For example, adding new code samples to show labware in a Flex deck slot is just a change from 1 (OT-2) to D1 (Flex).
Some anchors and other links depend on changes pending in PR 13096.

Changelog

Adds Flex and OT-2 code samples to the docs.
Some new subsections.

Review requests
Check for proper Python usage and writing/style.
Risk assessment
Low, documentation changes and code samples only.

Closing in favor of #13183 🚚


Subdomain support for ngrok

Hi @cytopia, I would like to request subdomain support for the ngrok container. I believe this could be implemented by making a few small edits to the docker-entrypoint.sh file, under the HTTP TUNNELS section. The third example under this link shows how the subdomain is added to the config.

I have been working on the entrypoint and made some edits that have the subdomain option working. The only problem I see right now is that the user is required to add a fourth parameter value of "auto" even if they don't want to use the subdomain. The tunnel attribute with my solution adds on an additional parameter at the end so the value follows this layout ":<backend_addr>:<backend_port>:<ngrok_subdomain>" See below.
`echo "tunnels:" >> "${CONFIG_FILE}"
for tunnel in ${HTTP_TUNNELS}; do
i=$((i+1))
# Ensure each tunnel line has the correct format: ::
if [ "$( echo "${tunnel}" | sed 's/:/:\n/g' | grep -c ':' )" -ne "3" ]; then
>&2 echo "[ERROR] Wrong format in tunnel line: '${tunnel}'"
>&2 echo "[ERROR] Should be: :<backend_addr>:<backend_port>:<ngrok_subdomain>"
exit 1
fi
domain_name="$(  echo "${tunnel}" | awk -F':' '{print $1}' )"
backend_addr="$( echo "${tunnel}" | awk -F':' '{print $2}' )"
backend_port="$( echo "${tunnel}" | awk -F':' '{print $3}' )"
ngrok_subdomain="$( echo "${tunnel}" | awk -F':' '{print $4}' )"
# Append to ngrok config
{
	echo "  tunnel_${i}:"
	echo "    addr: ${backend_addr}:${backend_port}"
	echo "    host_header: \"${domain_name}\""
	echo "    proto: http"
	if [ $ngrok_subdomain != "auto" ]; then
	echo "    subdomain: ${ngrok_subdomain}"
	fi

} >> "${CONFIG_FILE}"

done`

Hey @ryandroid226, I coincidentally began looking at how to extend the devilbox/docker-ngrok container to support subdomains earlier this week. Your solution has allowed me to keep moving forward with my current project but I'd also like something more durable. Thanks for your insight.
For what it's worth, an initial approach I had taken was to add my subdomain-ed tunnels directly to the ngrok.yml file rather than patching docker-entrypoint.sh. The docker-compose.override.yml-ngrok includes a default tunnel anyway with httpd:httpd:80 so you avoid triggering the sanity check if you don't include HTTP_TUNNELS in your .env file. Unfortunately, my bash-scripting-foo isn't quite up to the challenge of coming up with a complete solution just yet, but I've gotten started by forking this repo and pushing it to my own DockerHub account until I can hopefully find the time to submit back my first ever open-source pull request at some point over the upcoming long weekend.
I'll also add, I've been examining the code/issues on wernight/docker-ngrok as a point of reference on how we might address this here.

Hey @miquelbrazil, I'm glad to see someone else has interest in subdomain support for this ngrok container!
I've thought of two ways to make this work a little better but my bash-scripting-foo is pretty weak as well. The first way would involve adding a check earlier on in the script that would allow 3 OR 4 parameters so that the parameter is simply optional. However, I don't think the subdomain really belongs where I placed it. I think it would be better suited as an additional parameter in the .env file with some type of indicator as to which tunnel the subdomain belongs to since there is the option to handle multiple tunnels. Maybe this is as simple as adding a subdomain variable to the .env file and just passing an empty string if no subdomain is needed. For example, if you have HTTP_TUNNELS=project1.loc:localhost:8080,project2.loc:apache:80 as your HTTP_TUNNELS variable but only wanted a subdomain for project2.loc then we could have HTTP_SUBDOMAINS=,project2.ngrok.io.
I'm probably going to try a few things within the next couple of days to see if I can come up with something a little more elegant but I'm also interested to see what you come up with so I'll keep a look out for that pull request.

I actually think including the subdomain in the tunnel string is a good approach. This allows the subdomain to remain matched to the project and not present when it isn't necessary for that tunnel. Including the subdomain as a separate .env parameter feels like it would get tricky pretty quickly when you now have to match it to a domain supplied in another variable.
An obvious format would be to include the subdomain as part of the virtual host domain (i.e. subdomain.project1.loc:localhost:8080). The problem is Devilbox would currently parse that as a full domain and expect the project directory to be subdomain.project1 (this closed issue on the Devilbox repo shows how that would interfere with the default strategy for using wildcards for a subdomain a user would want for vhost pattern matching).
Extending your initial approach a bit, let's assume for a moment subdomains for tunneling can only be one level deep (i.e. subdomain not subdomain1.subdomain2). The subdomain parameter could be moved to the beginning of the tunnel string (i.e. subdomain:project1.loc:localhost:8080) The bash script could then pattern match for the presence of a . in the first string segment (before the first : delimiter). If it contains a . we can assume it's a domain for the virtual host, if not, we can assume it's a subdomain for the ngrok tunnel.
Taking this a step further, if we wanted to support multi-level subdomains (I never actually checked if it's even possible to register multi-level subdomains in the ngrok admin panel) then we might consider adding a new delimiter (possibly the % sign). In this format we would have tunnels formatted as subdomain%project1.loc:localhost:8080 or subdomain1.subdomain2%project1.loc:localhost:8080.
TBH, I sort of like this second implementation better because it means the parsing for the standard format can remain untouched. All we would need to add is a function before it that detects the presence of the % delimiter and then strips it from the tunnel and parses it separately, leaving the remainder of the tunnel string to be parsed by the rest of the bash script.


Beta11 release version doesnot compiles.

when tried to compile the beta11 release version however beta10 does compile successfully.
/data/azure-sdk-for-cpp-azure-storage-files-datalake_12.0.0-beta.11/sdk/keyvault/azure-security-keyvault-common/src/sha.cpp: In constructor ‘{anonymous}::SHAWithOpenSSL::SHAWithOpenSSL({anonymous}::SHASize)’:
/data/azure-sdk-for-cpp-azure-storage-files-datalake_12.0.0-beta.11/sdk/keyvault/azure-security-keyvault-common/src/sha.cpp:62:22: error: ‘EVP_MD_CTX_new’ was not declared in this scope; did you mean ‘EVP_MD_CTX_init’?
62 |     if ((m_context = EVP_MD_CTX_new()) == NULL)
|                      ^~~~~~~~~~~~~~
|                      EVP_MD_CTX_init
/data/azure-sdk-for-cpp-azure-storage-files-datalake_12.0.0-beta.11/sdk/keyvault/azure-security-keyvault-common/src/sha.cpp: In destructor ‘virtual {anonymous}::SHAWithOpenSSL::~SHAWithOpenSSL()’:
/data/azure-sdk-for-cpp-azure-storage-files-datalake_12.0.0-beta.11/sdk/keyvault/azure-security-keyvault-common/src/sha.cpp:95:23: error: ‘EVP_MD_CTX_free’ was not declared in this scope; did you mean ‘EVP_MD_CTX_create’?
95 |   ~SHAWithOpenSSL() { EVP_MD_CTX_free(m_context); }
|                       ^~~~~~~~~~~~~~~
do we need to add any extra compile options to make it compile
following are the compile options used
cmake -DCURL_LIBRARY=/CURLPATH/curl/lib/x86/Linux/libcurl.so  -DCURL_INCLUDE_DIR=/CURLPATH/curl/include -DBUILD_SHARED_LIBS=true  -DCMAKE_BUILD_TYPE=Release -DWARNINGS_AS_ERRORS=OFF ..
however DWARNINGS_AS_ERRORS should be set to off by default if we have warnings present in code , this warning is also occuring in Beta10 version.
In file included from /data/azure-sdk-for-cpp-azure-storage-files-datalake_12.0.0-beta.11/sdk/core/azure-core/src/base64.cpp:10:
/data/azure-sdk-for-cpp-azure-storage-files-datalake_12.0.0-beta.11/sdk/core/azure-core/src/base64.cpp: In static member function ‘static std::string Azure::Core::Convert::Base64Encode(const std::vector&)’:
/data/azure-sdk-for-cpp-azure-storage-files-datalake_12.0.0-beta.11/sdk/core/azure-core/src/base64.cpp:69:27: warning: use of old-style cast to ‘char*’ [-Wold-style-cast]
69 |     BIO_get_mem_ptr(bio, &bufferPtr);

OS: Oracle Enterprise Linux 7.6
Version : azure-sdk-for-cpp-azure-storage-files-datalake_12.0.0-beta.11
Compiler : g++ version 9.3.1 20200408
C++ Version : 17

Looks like it's caused by not including <openssl/evp.h>

BTW I found some issues when I was looking through the impl of SHAWithOpenSSL.
For any classes that allocate resources in the constructor and deallocate resource in the destructor, we should properly define copy functions.
In the case of SHAWithOpenSSL, we should mark copy constructor and copy assignment operator as deleted.

thanks Jinming-Hu
yeah works now by including _OPENSSL_openssl_PREFIX , would be nice to have a find package for such dependencies.
is there any doc present for all dependencies ?
yeah agree with your other comment , i saw the code, need to handle copy constructor , assignment here

bringing the dev-dependencies manually to CMake is less commonly expected than using VCPKG. VCPKG takes care of bringing openSSL for libcurl.

That's true on Windows, but not true on Linux. People tend to use built-in package manager, like apt-get on Ubuntu/debian and yum on RedHat.
Anyway, if customers choose to use their own package manager, it's their responsibility to take care of dependencies.

@vhvb1989 If you look at the source code of bio.h of openssl, https://docs.huihoo.com/doxygen/openssl/1.0.1c/include_2openssl_2bio_8h_source.html, the warning should be caused by a C-style cast of the macro
#define BIO_get_mem_ptr(b,pp)   BIO_ctrl(b,BIO_C_GET_BUF_MEM_PTR,0,(char *)pp)

I think we should suppress this warning in our code.

If you look at the source code of bio.h of openssl,

Hoping we can drop support on openssl 1.0.x as it is not maintained any longer...


[BEAM-1636] UnboundedDataset action() does not materialize RDD

Be sure to do all of the following to help us incorporate your contribution
quickly and easily:

[x] Make sure the PR title is formatted like:
[BEAM-<Jira issue #>] Description of pull request
[x] Make sure tests pass via mvn clean verify. (Even better, enable
Travis-CI on your fork and ensure the whole test matrix passes).
[x] Replace <Jira issue #> in the title with the actual Jira issue
number, if there is one.
[ ] If this contribution is large, please file an Apache
Individual Contributor License Agreement.

R: @amitsela
CC: @jbonofre

Run Spark RunnableOnService.

Run Spark RunnableOnService

LGTM, merging on green lights.

Coverage decreased (-0.01%) to 70.044% when pulling a889597e748eb752141af8dc568c56449c4eba5c on aviemzur:unbounded-dataset-materialize-fix into 1fd52f53c92ece265ed41bd7f2a06b0cdf6f8afd on apache:master.


Translate Key in python (Jupyter notebook)

currently in the example u use  a developerKey to call the translate API but this is (i assume) not possible anymore.
service = build('translate', 'v2', developerKey='AIzaSyDRRpR3GS1F1_jKNNM9HCNd2wJQyPG3oN0')

is there any other way to call the json file that the api generaters?

Hi @baxtery I suspect you may want to be using https://googlecloudplatform.github.io/google-cloud-python/latest/translate/usage.html instead of the google-api-python-client service to do translation; it's the more recent iteration of translation service provided by Google.  I'll close this issue as a result, but if you feel that you must use this API via the google-api-python-client, let me know, and I'll try to figure out how to answer this question.


pluto_grid in customerScrollview

I hope pluto_grid can be expanded in sutomerScrollview without scrolling, However, pluto_grid will be scroll bars by default, Is there any good suggestion to achieve this style?

@bosskmk


window height fixed to 50px in latest versions?

Used poltergeist (with capybara) in previous projects, now I can't get a usable window height (with 1.9.0).
Capybara::Poltergeist::Driver.new(app, window_size: [1920, 1080], ...
sets only the width, page.driver.resize_window(1920, 1080) sets only the width, the height is always 50px - the width can be changed. If I do not specify any size I get 1024 x 50 Pixels.
Please, I love poltergeist, don't want to use other drivers for my tests... :)

This is something specifically tested for in the specs - https://github.com/teampoltergeist/poltergeist/blob/master/spec/integration/driver_spec.rb#L77 - so it's unlikely to be a bug in poltergeist.  Have you changed anything else recently?
Secondly -  poltergeist does now support the capybara window api (other than maximize) so to write your tests in a more driver agnostic manner you should be able to do
page.current_window.resize_to(1920,1080)

@twalpole - Thank you for your fast answer.
New project, used poltergeist with the same code in the config for ages (and many projects). Now installed it, copied the config and I can set the width as usual, but not the heigt :D
Inspected the page.driver.browser config, the window-size from the configuration is set (both width and height), but when I produce a screenshot (capybara-screenshot 1.0.3) I get this 50 pixel height part of the screen (with no scrollbar, which IS funny). If I change it to selenium, everything is fine - but about 100 times slower ;)
Because of the missing scrollbar I tried something. I just replaced the whole page with a dummy with some h1 (empty header) and than poltergeist is able to set the window height up to 1354 pixels (maximum, depending on the content length of the page - can be shorter but not longer). Again no scrollbar if the page is longer.
I can add some empty space at the end of the bootstrap stuff so I can see my screenshots during testing, but I am willing to try find out what is going wrong. Any idea why (apart from some bootstrap problems) the height is always dynamic (up to the maximum)? Can I do something to help?

Do you have anything accessing window.outerWidth or outerHeight ??  Those don't work in phantomjs so I guess that could cause issues.  Since it's dynamic, I'm guessing it has to be some JS in your project that is adjusting things, do you happen to be using the boostrap 4 alpha??  There could be bugs in that.  Other than that, If you updated your phantomjs version recently maybe there's a bug in the new release, I haven't come across any window size issues with phantomjs 2.1.1 though

No, only using outerWidth on a datetime picker on another page and the simple test was basically
TEST
(multiple times). Config is:
Capybara.register_driver :poltergeist do |app|
  Capybara::Poltergeist::Driver.new(
    app,
    # change when 2.0.1 is available with the file upload bugfix
    # phantomjs: "#{Rails.root}/bin/phantomjs_2_0_0_with_file_upload_bugfix",
    debug: false,
    window_size: [1920, 1200],
    timeout: 10,
    js_errors: true,
    # phantomjs_options: '--ignore-ssl-errors=yes',
    phantomjs_logger: Logger.new("#{Rails.root}/tmp/capybara/console_log.txt")
  )
end

I wrote a one-liner that extends the page in test environment, enough for me. Maybe we should close this bug and if other users stumble over the same topic in the next months reopen it and I could try to help reproducing it?

ok -- will do.   FYI  phantomjs_logger is passed to phantomjs and is needs to be an IO (or IO dervied) object, which Logger is not - so I'm surprised you haven't had issues with that - also in poltergeist 1.9.0 should work with 2.0.0, 2.0.1, and 2.1.1 so you should be able to update to a newer version of phantomjs


join to organization

I want to fix bugs, UI , accessibility and more on the site.
PRs:
https://github.com/volcano-sh/website/pull/134
https://github.com/volcano-sh/website/pull/128
https://github.com/volcano-sh/website/pull/130
https://github.com/volcano-sh/website/pull/132
cc @Thor-wl

Already sent the invitation :)

Thanks for your contribution! Welcome to Volcano Community!
/lgmt


Help with a fresh unmanaged namespace .🍉

We've launched a new emoji namespace on BNS-V2 named xn--ji8h, set as unmanaged and frozen with a 0 BASE price, unchangeable. After successfully completing namespace-preorder, reveal, and launch, it's active on bnsv2.com. However, name registration options (fast or two-step) are disabled despite names appearing available. How can we start claiming names in xn--ji8h?
namespace-launch transaction: https://explorer.hiro.so/txid/0x51de15f9bdd0dda1f7361cba58f30e468824f49505b67ef32c505a939d3e71f3?chain=mainnet
Screenshots:

for .🍉 it doesn't show buttons:

for other namespaces, works as exected

Thanks 🍉

Hey @qjouda thanks for opening the issue, I'll look into it and get back to you latest tomorrow

Hey @Patotking12  I'm providing more details after some research. I tried to use bns-v2-sdk and stacks/connect npm libraries and call the name-claim-fast from my local, rather than depending on bnsv2.com UI.
I was successful claiming a name on different namespaces other than 🍉. When I try the following:

name-claim-fast is failing with (err u3) (response uint)
name-preorder is failing with (err u108) (response uint)

This is only happening when trying to register something.🍉
When I called namespace-reveal, I input Zero for BASE, COEFF, and others: here is the tx-link for it: https://explorer.hiro.so/txid/0xd11a44186758d359086199558cfc4e4deb01e8f92bee3cb4c9ab7ecc1fbdc0e0?chain=mainnet
I hope we are able to use 🍉 and not lose it for ever
thank you for your help

so sad

thank you for following up

Of course! If you need help with anything else or setting up a new namespace let me know


Possible to Drag Clone?

Hi,
nice work. Is there an easy way to drag clone?
Like here http://jsfiddle.net/DP4UR/6/
And/or call a method like resetPosition() to pickup the element at current to Mouse/Touch position?
All the best.

@iqmeta
Thanks! Please try v1.3.1, by using [position], (movingOffset) and (endOffset), I think we can implement drag clone.


Update to node20

Description:
Node 16 has reached end of life on September 11, 2023.
https://github.com/actions/runner now supports node 20 as of v2.308.0 and we encourage teams to update their actions to run on node 20 runtime by default.
Changelog here

Hi, @benwells 👋 Thanks for the notification!

+1 for this issue.
Here's an example of workflow using<EMAIL_ADDRESS>that shows the corresponding deprecation notice: Kotools Types Integration #370.


sst start: Return console.log content to Lambda and print them out to CloudWatch

Use case: CloudWatch subscriptions

Request:

Matt https://serverless-stack.slack.com/archives/C01HQQVC8TH/p1647823771830139?thread_ts=1647816315.477409

We are transition this repo to https://github.com/sst/v2 and are closing this issue for now. If it is still relevant please reopen it there - sorry for the trouble


notification missing icon setter

notification  missing icon setter

Included in version 2.0.10
You can use this in the builder: .withIcon(VaadinIcons.INFO)
NotificationBuilder.get(notiCenter)
	.withCaption("Test")
	.withDescription("description")
	.withPriority(ENotificationPriority.HIGH)
	.withIcon(VaadinIcons.INFO)
	.withCloseButton()
	.build();


docs(secret-management): remove duplicate info, update note, and update link

Pull Request Template
What are you trying to address
While reviewing the document I noticed there was a duplicate bullet point in one of the sections.
Also, while reading the Secret Store CSI Driver (SSCSID) section, specifically around needing to use a service principal/managed identity to access Key Vault, I was (wrongfully) lead to believe External Secret Operator (ESO) did not have the same requirement. I've updated ESO's section, noting you do indeed need to use a sp/mi to access kv.
The link to ESO's Azure Key Vault provider was out-of-date. I've updated the link to a more recent update.

Thank you for the contribution


[WIP] NAnt

This patch adds NAnt, a builder for dotnet projects.
There is two-step building process:

build NAnt with make (nant-bootstrapped)
build NAnt with NAnt

While the first step is ok, the second one throws errors.
One of the problem, gmcs not found, can be fixed by symlinking mcs. There is another way (e.g. see library Hyena), but this will require to patch every project which uses gmcs.
Another one is where I stumped. NAnt failed with message:
[resgen] Cannot open assembly '/nix/store/...-mono-<IP_ADDRESS>/lib/mono/2.0/resgen.exe': No such file or directory.
As far as I understand it can be fixed by providing MONO_GAC_PREFIX. But, indeed, there is no such file.
I compiled NAnt in a clean debian with no problem. There is mono-complete package that provides this executable image. Could it be a missing file in nix's mono package?
Seeking for advice, as I' not familiar with dotnet things.

Have you tried compiling it with mono = mono-complete? I think this is just mono with additional stuff added.

The problem is that mono-complete is a debian package :smile:

Second guess: you specify mono-2.0 as nant target in buildPhase. Why not mono-4.5?

It can be built against mono-2.0, mono-3.5 and mono-4.0, but each of them throws the same error. The other framework's versions do not supported.
I would sed all the files to substitute for example 4.0 to 4.5, but it looks like some binary files are also specify their supported versions.
And of course I already tried a "dirty" solution with symlinking mono/*/resgen.exe to 4.5/resgen.exe. That didn't succeed too.

It turned out that the latest version supports mono-4.5. Moreover, this version of nant also can be built against mono-2.0 without problems.

Another round of nitpicks! Sorry for not going through all the package more closely first time.

Done, fixed everything according to your comments.

Thanks! This doesn't feel like a mass rebuild to me -- let's merge this to master.


refactor: store initial assets in class variable

this PR creates a new mutable class member _initial_assets: list which will be filled with a list of assets after the first instance creation of the AssetSelect. This member will be checked before running the ee.data.listassets call to earthengine, if the member has already data, the elements will use their data instead.
I also moved the decorator as I proposed in https://github.com/openforis/sepal_ui/issues/931

:warning: Please install the  to ensure uploads and comments are reliably processed by Codecov.
Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 96.77%. Comparing base (776f019) to head (5fcd958).
Report is 2 commits behind head on main.

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@           Coverage Diff           @@
##             main     #932   +/-   ##
=======================================
  Coverage   96.76%   96.77%
=======================================
  Files          39       39
  Lines        3960     3964    +4
=======================================
+ Hits         3832     3836    +4
  Misses        128      128

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.