Update theme license logic (#2541)

Sergii Onufriienko created

Use new theme file structure
```
themes/
  [theme_name]
    [theme_name]-common.ts
    [theme_name]-light.ts
    [theme_name]-dark.ts
    LICENSE
```

Release Notes: 
- N/A

Change summary

styles/src/buildLicenses.ts                            | 78 ++-------
styles/src/buildThemes.ts                              |  2 
styles/src/colorSchemes.ts                             | 99 +++++++----
styles/src/themes/andromeda/LICENSE                    | 21 ++
styles/src/themes/andromeda/andromeda.ts               | 10 
styles/src/themes/atelier/LICENSE                      | 21 ++
styles/src/themes/atelier/atelier-cave-dark.ts         |  6 
styles/src/themes/atelier/atelier-cave-light.ts        |  6 
styles/src/themes/atelier/atelier-dune-dark.ts         |  6 
styles/src/themes/atelier/atelier-dune-light.ts        |  6 
styles/src/themes/atelier/atelier-estuary-dark.ts      |  6 
styles/src/themes/atelier/atelier-estuary-light.ts     |  6 
styles/src/themes/atelier/atelier-forest-dark.ts       |  6 
styles/src/themes/atelier/atelier-forest-light.ts      |  6 
styles/src/themes/atelier/atelier-heath-dark.ts        |  6 
styles/src/themes/atelier/atelier-heath-light.ts       |  6 
styles/src/themes/atelier/atelier-lakeside-dark.ts     |  6 
styles/src/themes/atelier/atelier-lakeside-light.ts    |  6 
styles/src/themes/atelier/atelier-plateau-dark.ts      |  6 
styles/src/themes/atelier/atelier-plateau-light.ts     |  6 
styles/src/themes/atelier/atelier-savanna-dark.ts      |  6 
styles/src/themes/atelier/atelier-savanna-light.ts     |  6 
styles/src/themes/atelier/atelier-seaside-dark.ts      |  6 
styles/src/themes/atelier/atelier-seaside-light.ts     |  6 
styles/src/themes/atelier/atelier-sulphurpool-dark.ts  |  6 
styles/src/themes/atelier/atelier-sulphurpool-light.ts |  6 
styles/src/themes/atelier/common.ts                    |  7 
styles/src/themes/ayu/LICENSE                          | 21 ++
styles/src/themes/ayu/ayu-dark.ts                      |  4 
styles/src/themes/ayu/ayu-light.ts                     |  4 
styles/src/themes/ayu/ayu-mirage.ts                    |  4 
styles/src/themes/ayu/common.ts                        | 12 -
styles/src/themes/common/colorScheme.ts                | 12 
styles/src/themes/gruvbox/LICENSE                      | 21 ++
styles/src/themes/gruvbox/gruvbox-common.ts            |  5 
styles/src/themes/gruvbox/gruvbox-dark-hard.ts         |  0 
styles/src/themes/gruvbox/gruvbox-dark-soft.ts         |  0 
styles/src/themes/gruvbox/gruvbox-dark.ts              |  0 
styles/src/themes/gruvbox/gruvbox-light-hard.ts        |  0 
styles/src/themes/gruvbox/gruvbox-light-soft.ts        |  0 
styles/src/themes/gruvbox/gruvbox-light.ts             |  0 
styles/src/themes/one/LICENSE                          | 21 ++
styles/src/themes/one/one-dark.ts                      | 12 -
styles/src/themes/one/one-light.ts                     | 12 -
styles/src/themes/rose-pine/LICENSE                    | 21 ++
styles/src/themes/rose-pine/rose-pine-dawn.ts          | 10 
styles/src/themes/rose-pine/rose-pine-moon.ts          | 10 
styles/src/themes/rose-pine/rose-pine.ts               | 10 
styles/src/themes/sandcastle/LICENSE                   | 21 ++
styles/src/themes/sandcastle/sandcastle.ts             | 10 
styles/src/themes/solarized/LICENSE                    | 21 ++
styles/src/themes/solarized/solarized.ts               | 10 
styles/src/themes/summercamp/LICENSE                   | 21 ++
styles/src/themes/summercamp/summercamp.ts             | 10 
54 files changed, 369 insertions(+), 261 deletions(-)

Detailed changes

styles/src/buildLicenses.ts πŸ”—

@@ -1,11 +1,9 @@
 import * as fs from "fs"
 import toml from "toml"
 import { schemeMeta } from "./colorSchemes"
-import { Meta, Verification } from "./themes/common/colorScheme"
-import https from "https"
-import crypto from "crypto"
+import { MetaAndLicense } from "./themes/common/colorScheme"
 
-const accepted_licenses_file = `${__dirname}/../../script/licenses/zed-licenses.toml`
+const ACCEPTED_LICENSES_FILE = `${__dirname}/../../script/licenses/zed-licenses.toml`
 
 // Use the cargo-about configuration file as the source of truth for supported licenses.
 function parseAcceptedToml(file: string): string[] {
@@ -20,8 +18,11 @@ function parseAcceptedToml(file: string): string[] {
     return obj.accepted
 }
 
-function checkLicenses(schemeMeta: Meta[], licenses: string[]) {
-    for (let meta of schemeMeta) {
+function checkLicenses(
+    schemeMetaWithLicense: MetaAndLicense[],
+    licenses: string[]
+) {
+    for (const { meta } of schemeMetaWithLicense) {
         // FIXME: Add support for conjuctions and conditions
         if (licenses.indexOf(meta.license.SPDX) < 0) {
             throw Error(
@@ -31,62 +32,23 @@ function checkLicenses(schemeMeta: Meta[], licenses: string[]) {
     }
 }
 
-function getLicenseText(
-    schemeMeta: Meta[],
-    callback: (meta: Meta, license_text: string) => void
-) {
-    for (let meta of schemeMeta) {
-        if (typeof meta.license.license_text == "string") {
-            callback(meta, meta.license.license_text)
-        } else {
-            let license_text_obj: Verification = meta.license.license_text
-            // The following copied from the example code on nodejs.org:
-            // https://nodejs.org/api/http.html#httpgetoptions-callback
-            https
-                .get(license_text_obj.https_url, (res) => {
-                    const { statusCode } = res
-
-                    if (statusCode < 200 || statusCode >= 300) {
-                        throw new Error(
-                            `Failed to fetch license for: ${meta.name}, Status Code: ${statusCode}`
-                        )
-                    }
-
-                    res.setEncoding("utf8")
-                    let rawData = ""
-                    res.on("data", (chunk) => {
-                        rawData += chunk
-                    })
-                    res.on("end", () => {
-                        const hash = crypto
-                            .createHash("sha256")
-                            .update(rawData)
-                            .digest("hex")
-                        if (license_text_obj.license_checksum == hash) {
-                            callback(meta, rawData)
-                        } else {
-                            throw Error(
-                                `Checksum for ${meta.name} did not match file downloaded from ${license_text_obj.https_url}`
-                            )
-                        }
-                    })
-                })
-                .on("error", (e) => {
-                    throw e
-                })
-        }
+function generateLicenseFile(schemeMetaWithLicense: MetaAndLicense[]) {
+    for (const { meta, licenseFile } of schemeMetaWithLicense) {
+        const licenseText = fs.readFileSync(licenseFile).toString()
+        writeLicense(meta.name, meta.url, licenseText)
     }
 }
 
-function writeLicense(schemeMeta: Meta, text: String) {
+function writeLicense(
+    themeName: string,
+    themeUrl: string,
+    licenseText: String
+) {
     process.stdout.write(
-        `## [${schemeMeta.name}](${schemeMeta.url})\n\n${text}\n********************************************************************************\n\n`
+        `## [${themeName}](${themeUrl})\n\n${licenseText}\n********************************************************************************\n\n`
     )
 }
 
-const accepted_licenses = parseAcceptedToml(accepted_licenses_file)
-checkLicenses(schemeMeta, accepted_licenses)
-
-getLicenseText(schemeMeta, (meta, text) => {
-    writeLicense(meta, text)
-})
+const acceptedLicenses = parseAcceptedToml(ACCEPTED_LICENSES_FILE)
+checkLicenses(schemeMeta, acceptedLicenses)
+generateLicenseFile(schemeMeta)

styles/src/buildThemes.ts πŸ”—

@@ -1,7 +1,7 @@
 import * as fs from "fs"
 import { tmpdir } from "os"
 import * as path from "path"
-import colorSchemes, { staffColorSchemes } from "./colorSchemes"
+import { colorSchemes, staffColorSchemes } from "./colorSchemes"
 import app from "./styleTree/app"
 import { ColorScheme } from "./themes/common/colorScheme"
 import snakeCase from "./utils/snakeCase"

styles/src/colorSchemes.ts πŸ”—

@@ -1,54 +1,79 @@
 import fs from "fs"
 import path from "path"
-import { ColorScheme, Meta } from "./themes/common/colorScheme"
+import { ColorScheme, MetaAndLicense } from "./themes/common/colorScheme"
 
-const colorSchemes: ColorScheme[] = []
-export default colorSchemes
+const THEMES_DIRECTORY = path.resolve(`${__dirname}/themes`)
+const STAFF_DIRECTORY = path.resolve(`${__dirname}/themes/staff`)
+const IGNORE_ITEMS = ["staff", "common", "common.ts"]
+const ACCEPT_EXTENSION = ".ts"
+const LICENSE_FILE_NAME = "LICENSE"
 
-const schemeMeta: Meta[] = []
-export { schemeMeta }
+function getAllTsFiles(directoryPath: string) {
+    const files = fs.readdirSync(directoryPath)
+    const fileList: string[] = []
 
-const staffColorSchemes: ColorScheme[] = []
-export { staffColorSchemes }
+    for (const file of files) {
+        if (!IGNORE_ITEMS.includes(file)) {
+            const filePath = path.join(directoryPath, file)
 
-const experimentalColorSchemes: ColorScheme[] = []
-export { experimentalColorSchemes }
-
-const themes_directory = path.resolve(`${__dirname}/themes`)
-
-function for_all_color_schemes_in(
-    themesPath: string,
-    callback: (module: any, path: string) => void
-) {
-    for (const fileName of fs.readdirSync(themesPath)) {
-        if (fileName == "template.ts") continue
-        const filePath = path.join(themesPath, fileName)
-
-        if (fs.statSync(filePath).isFile()) {
-            const colorScheme = require(filePath)
-            callback(colorScheme, path.basename(filePath))
+            if (fs.statSync(filePath).isDirectory()) {
+                fileList.push(...getAllTsFiles(filePath))
+            } else if (path.extname(file) === ACCEPT_EXTENSION) {
+                fileList.push(filePath)
+            }
         }
     }
+
+    return fileList
 }
 
-function fillColorSchemes(themesPath: string, colorSchemes: ColorScheme[]) {
-    for_all_color_schemes_in(themesPath, (colorScheme, _path) => {
+function getAllColorSchemes(directoryPath: string) {
+    const files = getAllTsFiles(directoryPath)
+    return files.map((filePath) => ({
+        colorScheme: require(filePath),
+        filePath,
+        fileName: path.basename(filePath),
+        licenseFile: `${path.dirname(filePath)}/${LICENSE_FILE_NAME}`,
+    }))
+}
+
+function getColorSchemes(directoryPath: string) {
+    const colorSchemes: ColorScheme[] = []
+
+    for (const { colorScheme } of getAllColorSchemes(directoryPath)) {
         if (colorScheme.dark) colorSchemes.push(colorScheme.dark)
-        if (colorScheme.light) colorSchemes.push(colorScheme.light)
-    })
+        else if (colorScheme.light) colorSchemes.push(colorScheme.light)
+    }
+
+    return colorSchemes
 }
 
-fillColorSchemes(themes_directory, colorSchemes)
-fillColorSchemes(path.resolve(`${themes_directory}/staff`), staffColorSchemes)
+function getMetaAndLicense(directoryPath: string) {
+    const meta: MetaAndLicense[] = []
+
+    for (const { colorScheme, filePath, licenseFile } of getAllColorSchemes(
+        directoryPath
+    )) {
+        const licenseExists = fs.existsSync(licenseFile)
+        if (!licenseExists) {
+            throw Error(
+                `Public theme should have a LICENSE file ${licenseFile}`
+            )
+        }
 
-function fillMeta(themesPath: string, meta: Meta[]) {
-    for_all_color_schemes_in(themesPath, (colorScheme, path) => {
-        if (colorScheme.meta) {
-            meta.push(colorScheme.meta)
-        } else {
-            throw Error(`Public theme ${path} must have a meta field`)
+        if (!colorScheme.meta) {
+            throw Error(`Public theme ${filePath} must have a meta field`)
         }
-    })
+
+        meta.push({
+            meta: colorScheme.meta,
+            licenseFile,
+        })
+    }
+
+    return meta
 }
 
-fillMeta(themes_directory, schemeMeta)
+export const colorSchemes = getColorSchemes(THEMES_DIRECTORY)
+export const staffColorSchemes = getColorSchemes(STAFF_DIRECTORY)
+export const schemeMeta = getMetaAndLicense(THEMES_DIRECTORY)

styles/src/themes/andromeda/LICENSE πŸ”—

@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) 2017 <eliverlara@gmail.com>
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.

styles/src/themes/andromeda.ts β†’ styles/src/themes/andromeda/andromeda.ts πŸ”—

@@ -1,6 +1,6 @@
 import chroma from "chroma-js"
-import { Meta } from "./common/colorScheme"
-import { colorRamp, createColorScheme } from "./common/ramps"
+import { Meta } from "../common/colorScheme"
+import { colorRamp, createColorScheme } from "../common/ramps"
 
 const name = "Andromeda"
 
@@ -34,12 +34,6 @@ export const meta: Meta = {
     author: "EliverLara",
     license: {
         SPDX: "MIT",
-        license_text: {
-            https_url:
-                "https://raw.githubusercontent.com/EliverLara/Andromeda/master/LICENSE.md",
-            license_checksum:
-                "2f7886f1a05cefc2c26f5e49de1a39fa4466413c1ccb06fc80960e73f5ed4b89",
-        },
     },
     url: "https://github.com/EliverLara/Andromeda",
 }

styles/src/themes/atelier/LICENSE πŸ”—

@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) 2023 Bram de Haan, http://atelierbramdehaan.nl
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.

styles/src/themes/atelier-cave-dark.ts β†’ styles/src/themes/atelier/atelier-cave-dark.ts πŸ”—

@@ -1,7 +1,7 @@
 import chroma from "chroma-js"
-import { Meta } from "./common/colorScheme"
-import { colorRamp, createColorScheme } from "./common/ramps"
-import { metaCommon, name, buildSyntax, Variant } from "./common/atelier-common"
+import { Meta } from "../common/colorScheme"
+import { colorRamp, createColorScheme } from "../common/ramps"
+import { metaCommon, name, buildSyntax, Variant } from "./common"
 
 const variant: Variant = {
     meta: {

styles/src/themes/atelier-cave-light.ts β†’ styles/src/themes/atelier/atelier-cave-light.ts πŸ”—

@@ -1,7 +1,7 @@
 import chroma from "chroma-js"
-import { Meta } from "./common/colorScheme"
-import { colorRamp, createColorScheme } from "./common/ramps"
-import { metaCommon, name, buildSyntax, Variant } from "./common/atelier-common"
+import { Meta } from "../common/colorScheme"
+import { colorRamp, createColorScheme } from "../common/ramps"
+import { metaCommon, name, buildSyntax, Variant } from "./common"
 
 const variant: Variant = {
     meta: {

styles/src/themes/atelier-dune-dark.ts β†’ styles/src/themes/atelier/atelier-dune-dark.ts πŸ”—

@@ -1,7 +1,7 @@
 import chroma from "chroma-js"
-import { Meta } from "./common/colorScheme"
-import { colorRamp, createColorScheme } from "./common/ramps"
-import { metaCommon, name, buildSyntax, Variant } from "./common/atelier-common"
+import { Meta } from "../common/colorScheme"
+import { colorRamp, createColorScheme } from "../common/ramps"
+import { metaCommon, name, buildSyntax, Variant } from "./common"
 
 const variant: Variant = {
     meta: {

styles/src/themes/atelier-dune-light.ts β†’ styles/src/themes/atelier/atelier-dune-light.ts πŸ”—

@@ -1,7 +1,7 @@
 import chroma from "chroma-js"
-import { Meta } from "./common/colorScheme"
-import { colorRamp, createColorScheme } from "./common/ramps"
-import { metaCommon, name, buildSyntax, Variant } from "./common/atelier-common"
+import { Meta } from "../common/colorScheme"
+import { colorRamp, createColorScheme } from "../common/ramps"
+import { metaCommon, name, buildSyntax, Variant } from "./common"
 
 const variant: Variant = {
     meta: {

styles/src/themes/atelier-estuary-dark.ts β†’ styles/src/themes/atelier/atelier-estuary-dark.ts πŸ”—

@@ -1,7 +1,7 @@
 import chroma from "chroma-js"
-import { Meta } from "./common/colorScheme"
-import { colorRamp, createColorScheme } from "./common/ramps"
-import { metaCommon, name, buildSyntax, Variant } from "./common/atelier-common"
+import { Meta } from "../common/colorScheme"
+import { colorRamp, createColorScheme } from "../common/ramps"
+import { metaCommon, name, buildSyntax, Variant } from "./common"
 
 const variant: Variant = {
     meta: {

styles/src/themes/atelier-estuary-light.ts β†’ styles/src/themes/atelier/atelier-estuary-light.ts πŸ”—

@@ -1,7 +1,7 @@
 import chroma from "chroma-js"
-import { Meta } from "./common/colorScheme"
-import { colorRamp, createColorScheme } from "./common/ramps"
-import { metaCommon, name, buildSyntax, Variant } from "./common/atelier-common"
+import { Meta } from "../common/colorScheme"
+import { colorRamp, createColorScheme } from "../common/ramps"
+import { metaCommon, name, buildSyntax, Variant } from "./common"
 
 const variant: Variant = {
     meta: {

styles/src/themes/atelier-forest-dark.ts β†’ styles/src/themes/atelier/atelier-forest-dark.ts πŸ”—

@@ -1,7 +1,7 @@
 import chroma from "chroma-js"
-import { Meta } from "./common/colorScheme"
-import { colorRamp, createColorScheme } from "./common/ramps"
-import { metaCommon, name, buildSyntax, Variant } from "./common/atelier-common"
+import { Meta } from "../common/colorScheme"
+import { colorRamp, createColorScheme } from "../common/ramps"
+import { metaCommon, name, buildSyntax, Variant } from "./common"
 
 const variant: Variant = {
     meta: {

styles/src/themes/atelier-forest-light.ts β†’ styles/src/themes/atelier/atelier-forest-light.ts πŸ”—

@@ -1,7 +1,7 @@
 import chroma from "chroma-js"
-import { Meta } from "./common/colorScheme"
-import { colorRamp, createColorScheme } from "./common/ramps"
-import { metaCommon, name, buildSyntax, Variant } from "./common/atelier-common"
+import { Meta } from "../common/colorScheme"
+import { colorRamp, createColorScheme } from "../common/ramps"
+import { metaCommon, name, buildSyntax, Variant } from "./common"
 
 const variant: Variant = {
     meta: {

styles/src/themes/atelier-heath-dark.ts β†’ styles/src/themes/atelier/atelier-heath-dark.ts πŸ”—

@@ -1,7 +1,7 @@
 import chroma from "chroma-js"
-import { Meta } from "./common/colorScheme"
-import { colorRamp, createColorScheme } from "./common/ramps"
-import { metaCommon, name, buildSyntax, Variant } from "./common/atelier-common"
+import { Meta } from "../common/colorScheme"
+import { colorRamp, createColorScheme } from "../common/ramps"
+import { metaCommon, name, buildSyntax, Variant } from "./common"
 
 const variant: Variant = {
     meta: {

styles/src/themes/atelier-heath-light.ts β†’ styles/src/themes/atelier/atelier-heath-light.ts πŸ”—

@@ -1,7 +1,7 @@
 import chroma from "chroma-js"
-import { Meta } from "./common/colorScheme"
-import { colorRamp, createColorScheme } from "./common/ramps"
-import { metaCommon, name, buildSyntax, Variant } from "./common/atelier-common"
+import { Meta } from "../common/colorScheme"
+import { colorRamp, createColorScheme } from "../common/ramps"
+import { metaCommon, name, buildSyntax, Variant } from "./common"
 
 const variant: Variant = {
     meta: {

styles/src/themes/atelier-lakeside-dark.ts β†’ styles/src/themes/atelier/atelier-lakeside-dark.ts πŸ”—

@@ -1,7 +1,7 @@
 import chroma from "chroma-js"
-import { Meta } from "./common/colorScheme"
-import { colorRamp, createColorScheme } from "./common/ramps"
-import { metaCommon, name, buildSyntax, Variant } from "./common/atelier-common"
+import { Meta } from "../common/colorScheme"
+import { colorRamp, createColorScheme } from "../common/ramps"
+import { metaCommon, name, buildSyntax, Variant } from "./common"
 
 const variant: Variant = {
     meta: {

styles/src/themes/atelier-lakeside-light.ts β†’ styles/src/themes/atelier/atelier-lakeside-light.ts πŸ”—

@@ -1,7 +1,7 @@
 import chroma from "chroma-js"
-import { Meta } from "./common/colorScheme"
-import { colorRamp, createColorScheme } from "./common/ramps"
-import { metaCommon, name, buildSyntax, Variant } from "./common/atelier-common"
+import { Meta } from "../common/colorScheme"
+import { colorRamp, createColorScheme } from "../common/ramps"
+import { metaCommon, name, buildSyntax, Variant } from "./common"
 
 const variant: Variant = {
     meta: {

styles/src/themes/atelier-plateau-dark.ts β†’ styles/src/themes/atelier/atelier-plateau-dark.ts πŸ”—

@@ -1,7 +1,7 @@
 import chroma from "chroma-js"
-import { Meta } from "./common/colorScheme"
-import { colorRamp, createColorScheme } from "./common/ramps"
-import { metaCommon, name, buildSyntax, Variant } from "./common/atelier-common"
+import { Meta } from "../common/colorScheme"
+import { colorRamp, createColorScheme } from "../common/ramps"
+import { metaCommon, name, buildSyntax, Variant } from "./common"
 
 const variant: Variant = {
     meta: {

styles/src/themes/atelier-plateau-light.ts β†’ styles/src/themes/atelier/atelier-plateau-light.ts πŸ”—

@@ -1,7 +1,7 @@
 import chroma from "chroma-js"
-import { Meta } from "./common/colorScheme"
-import { colorRamp, createColorScheme } from "./common/ramps"
-import { metaCommon, name, buildSyntax, Variant } from "./common/atelier-common"
+import { Meta } from "../common/colorScheme"
+import { colorRamp, createColorScheme } from "../common/ramps"
+import { metaCommon, name, buildSyntax, Variant } from "./common"
 
 const variant: Variant = {
     meta: {

styles/src/themes/atelier-savanna-dark.ts β†’ styles/src/themes/atelier/atelier-savanna-dark.ts πŸ”—

@@ -1,7 +1,7 @@
 import chroma from "chroma-js"
-import { Meta } from "./common/colorScheme"
-import { colorRamp, createColorScheme } from "./common/ramps"
-import { metaCommon, name, buildSyntax, Variant } from "./common/atelier-common"
+import { Meta } from "../common/colorScheme"
+import { colorRamp, createColorScheme } from "../common/ramps"
+import { metaCommon, name, buildSyntax, Variant } from "./common"
 
 const variant: Variant = {
     meta: {

styles/src/themes/atelier-savanna-light.ts β†’ styles/src/themes/atelier/atelier-savanna-light.ts πŸ”—

@@ -1,7 +1,7 @@
 import chroma from "chroma-js"
-import { Meta } from "./common/colorScheme"
-import { colorRamp, createColorScheme } from "./common/ramps"
-import { metaCommon, name, buildSyntax, Variant } from "./common/atelier-common"
+import { Meta } from "../common/colorScheme"
+import { colorRamp, createColorScheme } from "../common/ramps"
+import { metaCommon, name, buildSyntax, Variant } from "./common"
 
 const variant: Variant = {
     meta: {

styles/src/themes/atelier-seaside-dark.ts β†’ styles/src/themes/atelier/atelier-seaside-dark.ts πŸ”—

@@ -1,7 +1,7 @@
 import chroma from "chroma-js"
-import { Meta } from "./common/colorScheme"
-import { colorRamp, createColorScheme } from "./common/ramps"
-import { metaCommon, name, buildSyntax, Variant } from "./common/atelier-common"
+import { Meta } from "../common/colorScheme"
+import { colorRamp, createColorScheme } from "../common/ramps"
+import { metaCommon, name, buildSyntax, Variant } from "./common"
 
 const variant: Variant = {
     meta: {

styles/src/themes/atelier-seaside-light.ts β†’ styles/src/themes/atelier/atelier-seaside-light.ts πŸ”—

@@ -1,7 +1,7 @@
 import chroma from "chroma-js"
-import { Meta } from "./common/colorScheme"
-import { colorRamp, createColorScheme } from "./common/ramps"
-import { metaCommon, name, buildSyntax, Variant } from "./common/atelier-common"
+import { Meta } from "../common/colorScheme"
+import { colorRamp, createColorScheme } from "../common/ramps"
+import { metaCommon, name, buildSyntax, Variant } from "./common"
 
 const variant: Variant = {
     meta: {

styles/src/themes/atelier-sulphurpool-dark.ts β†’ styles/src/themes/atelier/atelier-sulphurpool-dark.ts πŸ”—

@@ -1,7 +1,7 @@
 import chroma from "chroma-js"
-import { Meta } from "./common/colorScheme"
-import { colorRamp, createColorScheme } from "./common/ramps"
-import { metaCommon, name, buildSyntax, Variant } from "./common/atelier-common"
+import { Meta } from "../common/colorScheme"
+import { colorRamp, createColorScheme } from "../common/ramps"
+import { metaCommon, name, buildSyntax, Variant } from "./common"
 
 const variant: Variant = {
     meta: {

styles/src/themes/atelier-sulphurpool-light.ts β†’ styles/src/themes/atelier/atelier-sulphurpool-light.ts πŸ”—

@@ -1,7 +1,7 @@
 import chroma from "chroma-js"
-import { Meta } from "./common/colorScheme"
-import { colorRamp, createColorScheme } from "./common/ramps"
-import { metaCommon, name, buildSyntax, Variant } from "./common/atelier-common"
+import { Meta } from "../common/colorScheme"
+import { colorRamp, createColorScheme } from "../common/ramps"
+import { metaCommon, name, buildSyntax, Variant } from "./common"
 
 const variant: Variant = {
     meta: {

styles/src/themes/common/atelier-common.ts β†’ styles/src/themes/atelier/common.ts πŸ”—

@@ -1,4 +1,4 @@
-import { License, Meta, ThemeSyntax } from "./colorScheme"
+import { License, Meta, ThemeSyntax } from "../common/colorScheme"
 
 export interface Variant {
     meta: Meta
@@ -29,11 +29,6 @@ export const metaCommon: {
     author: "Bram de Haan (http://atelierbramdehaan.nl)",
     license: {
         SPDX: "MIT",
-        license_text: {
-            https_url: "https://atelierbram.mit-license.org/license.txt",
-            license_checksum:
-                "f95ce526ef4e7eecf7a832bba0e3451cc1000f9ce63eb01ed6f64f8109f5d0a5",
-        },
     },
 }
 

styles/src/themes/ayu/LICENSE πŸ”—

@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) 2016 Ike Ku
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.

styles/src/themes/ayu-dark.ts β†’ styles/src/themes/ayu/ayu-dark.ts πŸ”—

@@ -1,5 +1,5 @@
-import { createColorScheme } from "./common/ramps"
-import { ayu, meta as themeMeta, buildTheme } from "./common/ayu-common"
+import { createColorScheme } from "../common/ramps"
+import { ayu, meta as themeMeta, buildTheme } from "./common"
 
 export const meta = {
     ...themeMeta,

styles/src/themes/ayu-light.ts β†’ styles/src/themes/ayu/ayu-light.ts πŸ”—

@@ -1,5 +1,5 @@
-import { createColorScheme } from "./common/ramps"
-import { ayu, meta as themeMeta, buildTheme } from "./common/ayu-common"
+import { createColorScheme } from "../common/ramps"
+import { ayu, meta as themeMeta, buildTheme } from "./common"
 
 export const meta = {
     ...themeMeta,

styles/src/themes/ayu-mirage.ts β†’ styles/src/themes/ayu/ayu-mirage.ts πŸ”—

@@ -1,5 +1,5 @@
-import { createColorScheme } from "./common/ramps"
-import { ayu, meta as themeMeta, buildTheme } from "./common/ayu-common"
+import { createColorScheme } from "../common/ramps"
+import { ayu, meta as themeMeta, buildTheme } from "./common"
 
 export const meta = {
     ...themeMeta,

styles/src/themes/common/ayu-common.ts β†’ styles/src/themes/ayu/common.ts πŸ”—

@@ -1,8 +1,8 @@
 import { dark, light, mirage } from "ayu"
-import { ThemeSyntax } from "./syntax"
+import { ThemeSyntax } from "../common/syntax"
 import chroma from "chroma-js"
-import { colorRamp } from "./ramps"
-import { Meta } from "./colorScheme"
+import { colorRamp } from "../common/ramps"
+import { Meta } from "../common/colorScheme"
 
 export const ayu = {
     dark,
@@ -79,12 +79,6 @@ export const meta: Meta = {
     author: "dempfi",
     license: {
         SPDX: "MIT",
-        license_text: {
-            https_url:
-                "https://raw.githubusercontent.com/dempfi/ayu/master/LICENSE",
-            license_checksum:
-                "e0af0e0d1754c18ca075649d42f5c6d9a60f8bdc03c20dfd97105f2253a94173",
-        },
     },
     url: "https://github.com/dempfi/ayu",
 }

styles/src/themes/common/colorScheme.ts πŸ”—

@@ -19,6 +19,11 @@ export interface ColorScheme {
     syntax?: Partial<ThemeSyntax>
 }
 
+export interface MetaAndLicense {
+    meta: Meta
+    licenseFile: string
+}
+
 export interface Meta {
     name: string
     author: string
@@ -28,13 +33,6 @@ export interface Meta {
 
 export interface License {
     SPDX: SPDXExpression
-    /// A url where we can download the license's text
-    license_text: Verification | string
-}
-
-export interface Verification {
-    https_url: string
-    license_checksum: string
 }
 
 // License name -> License text

styles/src/themes/gruvbox/LICENSE πŸ”—

@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) <YEAR> <COPYRIGHT HOLDER>
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.

styles/src/themes/gruvbox-common.ts β†’ styles/src/themes/gruvbox/gruvbox-common.ts πŸ”—

@@ -1,6 +1,6 @@
 import chroma from "chroma-js"
-import { Meta, ThemeSyntax } from "./common/colorScheme"
-import { colorRamp, createColorScheme } from "./common/ramps"
+import { Meta, ThemeSyntax } from "../common/colorScheme"
+import { colorRamp, createColorScheme } from "../common/ramps"
 
 const name = "Gruvbox"
 
@@ -248,8 +248,6 @@ export const meta: Meta = {
     name,
     license: {
         SPDX: "MIT", // "MIT/X11"
-        license_text:

styles/src/themes/one/LICENSE πŸ”—

@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) 2014 GitHub Inc.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.

styles/src/themes/one-dark.ts β†’ styles/src/themes/one/one-dark.ts πŸ”—

@@ -1,7 +1,7 @@
 import chroma from "chroma-js"
-import { fontWeights } from "../common"
-import { Meta, ThemeSyntax } from "./common/colorScheme"
-import { colorRamp, createColorScheme } from "./common/ramps"
+import { fontWeights } from "../../common"
+import { Meta, ThemeSyntax } from "../common/colorScheme"
+import { colorRamp, createColorScheme } from "../common/ramps"
 
 const name = "One Dark"
 
@@ -74,12 +74,6 @@ export const meta: Meta = {
     author: "simurai",
     license: {
         SPDX: "MIT",
-        license_text: {
-            https_url:
-                "https://raw.githubusercontent.com/atom/atom/master/packages/one-light-ui/LICENSE.md",
-            license_checksum:
-                "d5af8fc171f6f600c0ab4e7597dca398dda80dbe6821ce01cef78e859e7a00f8",
-        },
     },
     url: "https://github.com/atom/atom/tree/master/packages/one-dark-ui",
 }

styles/src/themes/one-light.ts β†’ styles/src/themes/one/one-light.ts πŸ”—

@@ -1,7 +1,7 @@
 import chroma from "chroma-js"
-import { fontWeights } from "../common"
-import { Meta, ThemeSyntax } from "./common/colorScheme"
-import { colorRamp, createColorScheme } from "./common/ramps"
+import { fontWeights } from "../../common"
+import { Meta, ThemeSyntax } from "../common/colorScheme"
+import { colorRamp, createColorScheme } from "../common/ramps"
 
 const name = "One Light"
 
@@ -73,12 +73,6 @@ export const meta: Meta = {
     author: "simurai",
     license: {
         SPDX: "MIT",
-        license_text: {
-            https_url:
-                "https://raw.githubusercontent.com/atom/atom/master/packages/one-light-ui/LICENSE.md",
-            license_checksum:
-                "d5af8fc171f6f600c0ab4e7597dca398dda80dbe6821ce01cef78e859e7a00f8",
-        },
     },
     url: "https://github.com/atom/atom/tree/master/packages/one-light-ui",
 }

styles/src/themes/rose-pine/LICENSE πŸ”—

@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) 2021 Emilia Dunfelt
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.

styles/src/themes/rose-pine-dawn.ts β†’ styles/src/themes/rose-pine/rose-pine-dawn.ts πŸ”—

@@ -1,6 +1,6 @@
 import chroma from "chroma-js"
-import { Meta } from "./common/colorScheme"
-import { colorRamp, createColorScheme } from "./common/ramps"
+import { Meta } from "../common/colorScheme"
+import { colorRamp, createColorScheme } from "../common/ramps"
 
 const name = "RosΓ© Pine Dawn"
 
@@ -34,12 +34,6 @@ export const meta: Meta = {
     author: "edunfelt",
     license: {
         SPDX: "MIT",
-        license_text: {
-            https_url:
-                "https://raw.githubusercontent.com/edunfelt/base16-rose-pine-scheme/main/LICENSE",
-            license_checksum:
-                "6ca1b9da8c78c8441c5aa43d024a4e4a7bf59d1ecca1480196e94fda0f91ee4a",
-        },
     },
     url: "https://github.com/edunfelt/base16-rose-pine-scheme",
 }

styles/src/themes/rose-pine-moon.ts β†’ styles/src/themes/rose-pine/rose-pine-moon.ts πŸ”—

@@ -1,6 +1,6 @@
 import chroma from "chroma-js"
-import { Meta } from "./common/colorScheme"
-import { colorRamp, createColorScheme } from "./common/ramps"
+import { Meta } from "../common/colorScheme"
+import { colorRamp, createColorScheme } from "../common/ramps"
 
 const name = "RosΓ© Pine Moon"
 
@@ -34,12 +34,6 @@ export const meta: Meta = {
     author: "edunfelt",
     license: {
         SPDX: "MIT",
-        license_text: {
-            https_url:
-                "https://raw.githubusercontent.com/edunfelt/base16-rose-pine-scheme/main/LICENSE",
-            license_checksum:
-                "6ca1b9da8c78c8441c5aa43d024a4e4a7bf59d1ecca1480196e94fda0f91ee4a",
-        },
     },
     url: "https://github.com/edunfelt/base16-rose-pine-scheme",
 }

styles/src/themes/rose-pine.ts β†’ styles/src/themes/rose-pine/rose-pine.ts πŸ”—

@@ -1,6 +1,6 @@
 import chroma from "chroma-js"
-import { Meta } from "./common/colorScheme"
-import { colorRamp, createColorScheme } from "./common/ramps"
+import { Meta } from "../common/colorScheme"
+import { colorRamp, createColorScheme } from "../common/ramps"
 
 const name = "RosΓ© Pine"
 
@@ -32,12 +32,6 @@ export const meta: Meta = {
     author: "edunfelt",
     license: {
         SPDX: "MIT",
-        license_text: {
-            https_url:
-                "https://raw.githubusercontent.com/edunfelt/base16-rose-pine-scheme/main/LICENSE",
-            license_checksum:
-                "6ca1b9da8c78c8441c5aa43d024a4e4a7bf59d1ecca1480196e94fda0f91ee4a",
-        },
     },
     url: "https://github.com/edunfelt/base16-rose-pine-scheme",
 }

styles/src/themes/sandcastle/LICENSE πŸ”—

@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) 2019 George Essig
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.

styles/src/themes/sandcastle.ts β†’ styles/src/themes/sandcastle/sandcastle.ts πŸ”—

@@ -1,6 +1,6 @@
 import chroma from "chroma-js"
-import { Meta } from "./common/colorScheme"
-import { colorRamp, createColorScheme } from "./common/ramps"
+import { Meta } from "../common/colorScheme"
+import { colorRamp, createColorScheme } from "../common/ramps"
 
 const name = "Sandcastle"
 
@@ -32,12 +32,6 @@ export const meta: Meta = {
     author: "gessig",
     license: {
         SPDX: "MIT",
-        license_text: {
-            https_url:
-                "https://raw.githubusercontent.com/gessig/base16-sandcastle-scheme/master/LICENSE",
-            license_checksum:
-                "8399d44b4d935b60be9fee0a76d7cc9a817b4f3f11574c9d6d1e8fd57e72ffdc",
-        },
     },
     url: "https://github.com/gessig/base16-sandcastle-scheme",
 }

styles/src/themes/solarized/LICENSE πŸ”—

@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) 2011 Ethan Schoonover
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.

styles/src/themes/solarized.ts β†’ styles/src/themes/solarized/solarized.ts πŸ”—

@@ -1,6 +1,6 @@
 import chroma from "chroma-js"
-import { Meta as Metadata } from "./common/colorScheme"
-import { colorRamp, createColorScheme } from "./common/ramps"
+import { Meta as Metadata } from "../common/colorScheme"
+import { colorRamp, createColorScheme } from "../common/ramps"
 
 const name = "Solarized"
 
@@ -35,12 +35,6 @@ export const meta: Metadata = {
     author: "Ethan Schoonover",
     license: {
         SPDX: "MIT",
-        license_text: {
-            https_url:
-                "https://raw.githubusercontent.com/altercation/solarized/master/LICENSE",
-            license_checksum:
-                "494aefdabf86acce06bd63001ad8aedad4ee38da23509d3f917d95aa3368b9a6",
-        },
     },
     url: "https://github.com/altercation/solarized",
 }

styles/src/themes/summercamp/LICENSE πŸ”—

@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) 2019 Zoe FiriH
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.

styles/src/themes/summercamp.ts β†’ styles/src/themes/summercamp/summercamp.ts πŸ”—

@@ -1,6 +1,6 @@
 import chroma from "chroma-js"
-import { Meta } from "./common/colorScheme"
-import { colorRamp, createColorScheme } from "./common/ramps"
+import { Meta } from "../common/colorScheme"
+import { colorRamp, createColorScheme } from "../common/ramps"
 
 const name = "Summercamp"
 
@@ -34,11 +34,5 @@ export const meta: Meta = {
     url: "https://github.com/zoefiri/base16-sc",
     license: {
         SPDX: "MIT",
-        license_text: {
-            https_url:
-                "https://raw.githubusercontent.com/zoefiri/base16-sc/master/LICENSE",
-            license_checksum:
-                "fadcc834b7eaf2943800956600e8aeea4b495ecf6490f4c4b6c91556a90accaf",
-        },
     },
 }