diff --git a/packages/music-library/.eslintrc.json b/packages/music-library/.eslintrc.json new file mode 100644 index 0000000..5313267 --- /dev/null +++ b/packages/music-library/.eslintrc.json @@ -0,0 +1,33 @@ +{ + "extends": [ + "../../.eslintrc.json" + ], + "ignorePatterns": [ + "!**/*" + ], + "overrides": [ + { + "files": [ + "*.ts", + "*.tsx", + "*.js", + "*.jsx" + ], + "rules": {} + }, + { + "files": [ + "*.ts", + "*.tsx" + ], + "rules": {} + }, + { + "files": [ + "*.js", + "*.jsx" + ], + "rules": {} + } + ] +} diff --git a/packages/music-library/README.md b/packages/music-library/README.md new file mode 100644 index 0000000..d7d050e --- /dev/null +++ b/packages/music-library/README.md @@ -0,0 +1,13 @@ +# music-library + +This library was generated with [Nx](https://nx.dev). + + + +## Building + +Run `nx build music-library` to build the library. + + + + diff --git a/packages/music-library/package.json b/packages/music-library/package.json new file mode 100644 index 0000000..f9f526e --- /dev/null +++ b/packages/music-library/package.json @@ -0,0 +1,5 @@ +{ + "name": "@euterpe-js/music-library", + "version": "0.0.1", + "type": "commonjs" +} diff --git a/packages/music-library/project.json b/packages/music-library/project.json new file mode 100644 index 0000000..e6fb892 --- /dev/null +++ b/packages/music-library/project.json @@ -0,0 +1,40 @@ +{ + "name": "music-library", + "$schema": "../../node_modules/nx/schemas/project-schema.json", + "sourceRoot": "packages/music-library/src", + "projectType": "library", + "targets": { + "build": { + "executor": "@nx/js:tsc", + "outputs": [ + "{options.outputPath}" + ], + "options": { + "outputPath": "dist/packages/music-library", + "main": "packages/music-library/src/index.ts", + "tsConfig": "packages/music-library/tsconfig.lib.json", + "assets": [ + "packages/music-library/*.md" + ] + } + }, + "publish": { + "command": "node tools/scripts/publish.mjs music-library {args.ver} {args.tag}", + "dependsOn": [ + "build" + ] + }, + "lint": { + "executor": "@nx/linter:eslint", + "outputs": [ + "{options.outputFile}" + ], + "options": { + "lintFilePatterns": [ + "packages/music-library/**/*.ts" + ] + } + } + }, + "tags": [] +} diff --git a/packages/music-library/src/index.ts b/packages/music-library/src/index.ts new file mode 100644 index 0000000..14969ee --- /dev/null +++ b/packages/music-library/src/index.ts @@ -0,0 +1,65 @@ +import { writeFile, readFile } from "node:fs" +type ID = number +type URL = string +enum RefTo { + Artists, + Songs, + Collections +} +enum Platforms { + Youtube, + Linktree, + Bandcamp, + Spotify, + Portfolio, + BeatPort, + SoundCloud, +} +type Ref = [T, ID] + +type Song = { + id: ID, + name: string, + artists: Ref[], + url: URL, + publish_date?: Date, + remix_artists?: Ref[], + in_collection?: Ref, + cover?: URL, + duration: number, + bpm?: number, + key?: string, + fft_data?: number[] +} +type Artist = { + id: ID, + name: string, + pfp?: URL, + songs?: Ref[], + collections?: Ref[], + links: [Platforms, URL][], +} +type Collection = { + id: ID, + publish_date?: Date, + artists: Ref[], + songs: Ref[], + cover: URL, + duration: number, +} +type DB = { + artists?: Artist[], + songs?: Song[], + Collections?: Collection[], +} +const db: DB = {} +db.songs?.push( + { + id: 0, + artists: [RefTo.Artists, 0] as Ref, + duration: 13, + songs: [RefTo.Songs, 0] as Ref, + name: "Just the two of us", + url: "Huehue" as URL, + + } as Song) \ No newline at end of file diff --git a/packages/music-library/src/lib/music-library.ts b/packages/music-library/src/lib/music-library.ts new file mode 100644 index 0000000..eaeeb36 --- /dev/null +++ b/packages/music-library/src/lib/music-library.ts @@ -0,0 +1,3 @@ +export function musicLibrary(): string { + return "music-library" +} diff --git a/packages/music-library/src/refrence db.json b/packages/music-library/src/refrence db.json new file mode 100644 index 0000000..9bd839b --- /dev/null +++ b/packages/music-library/src/refrence db.json @@ -0,0 +1,53 @@ +{ + "artist": { + "id": 0, + "name": "", + "pfp?": "url('')", + "songs?": [ + "ref(songs,0)", + "ref(songs,2)" + ], + "collections?": [ + "ref(collections,0)" + ], + "links?": [ + "(youtube, url(''))", + "(key, url(''))" + ] + }, + "song": { + "id": 0, + "publish-date?": "00-00-0000", + "name": "", + "artists": [ + "ref(artists, 0)", + "ref(artists, 1)" + ], + "remix_artists": [ + "ref(artists,3)" + ], + "in_collection?": "ref(collections,0)", + "url": "url('')", + "cover?": "either url or use collections cover", + "duration": 123, + "bpm?": 120, + "key": "A Minor", + "fft_data?": [ + 0, + 1 + ] + }, + "collection": { + "id": 0, + "publish-date?": "00-00-0000", + "artists": [ + "ref(artists, 0)" + ], + "songs": [ + "ref(songs, 1)", + "ref(songs, 2)" + ], + "cover": "url('')", + "duration": 123 + } +} \ No newline at end of file diff --git a/packages/music-library/tsconfig.json b/packages/music-library/tsconfig.json new file mode 100644 index 0000000..db7b566 --- /dev/null +++ b/packages/music-library/tsconfig.json @@ -0,0 +1,19 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "module": "commonjs", + "forceConsistentCasingInFileNames": true, + "strict": true, + "noImplicitOverride": true, + "noPropertyAccessFromIndexSignature": true, + "noImplicitReturns": true, + "noFallthroughCasesInSwitch": true + }, + "files": [], + "include": [], + "references": [ + { + "path": "./tsconfig.lib.json" + } + ] +} diff --git a/packages/music-library/tsconfig.lib.json b/packages/music-library/tsconfig.lib.json new file mode 100644 index 0000000..33eca2c --- /dev/null +++ b/packages/music-library/tsconfig.lib.json @@ -0,0 +1,10 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "../../dist/out-tsc", + "declaration": true, + "types": ["node"] + }, + "include": ["src/**/*.ts"], + "exclude": ["jest.config.ts", "src/**/*.spec.ts", "src/**/*.test.ts"] +} diff --git a/packages/player/package.json b/packages/player/package.json index 1fa6a67..6cb0026 100644 --- a/packages/player/package.json +++ b/packages/player/package.json @@ -1,25 +1,32 @@ { - "name": "@euterpe.js/player", - "version": "1.0.21", - "type": "commonjs", - "description": "A simple, safe AudioContext web music player", - "main": "index.ts", - "author": { - "name": "Djkáťo", - "email": "djkatovfx@gmail.com" - }, - "license": "MIT", - "repository": { - "type": "git", - "url": "git+https://github.com/euterpe-js/euterpe-source.git" - }, - "homepage": "https://github.com/euterpe-js/euterpe-source/tree/master/packages/player#readme", - "keywords": [ - "audio", - "player", - "music-player", - "audio-visualizer", - "webaudio", - "vizualizer" - ] + "name": "@euterpe.js/player", + "version": "1.0.22", + "type": "module", + "description": "A simple, safe AudioContext web music player", + "main": "./src/index.js", + "author": { + "name": "Djkáťo", + "email": "djkatovfx@gmail.com" + }, + "license": "MIT", + "repository": { + "type": "git", + "url": "git+https://github.com/euterpe-js/euterpe-source.git" + }, + "homepage": "https://github.com/euterpe-js/euterpe-source/tree/master/packages/player#readme", + "keywords": [ + "audio", + "player", + "music-player", + "audio-visualizer", + "webaudio", + "vizualizer" + ], + "exports": { + ".": { + "types": "./src/index.d.ts", + "import": "./src/index.js", + "require": "./src/lib/player.js" + } + } } \ No newline at end of file diff --git a/packages/visualizer/package.json b/packages/visualizer/package.json index 01aa699..350d0b4 100644 --- a/packages/visualizer/package.json +++ b/packages/visualizer/package.json @@ -1,23 +1,30 @@ { - "name": "@euterpe.js/visualizer", - "version": "1.0.0", - "type": "commonjs", - "description": "Music visualizer based on SVG and AudioContext", - "main": "index.ts", - "author": { - "name": "Djkáťo", - "email": "djkatovfx@gmail.com" - }, - "license": "MIT", - "repository": { - "type": "git", - "url": "git+https://github.com/euterpe-js/euterpe-source.git" - }, - "homepage": "https://github.com/euterpe-js/euterpe-source/tree/master/packages/visualizer#readme", - "keywords": [ - "audio", - "audio-visualizer", - "webaudio", - "vizualizer" - ] + "name": "@euterpe.js/visualizer", + "version": "1.0.1", + "type": "module", + "description": "Music visualizer based on SVG and AudioContext", + "main": "./src/index.js", + "author": { + "name": "Djkáťo", + "email": "djkatovfx@gmail.com" + }, + "license": "MIT", + "repository": { + "type": "git", + "url": "git+https://github.com/euterpe-js/euterpe-source.git" + }, + "homepage": "https://github.com/euterpe-js/euterpe-source/tree/master/packages/visualizer#readme", + "keywords": [ + "audio", + "audio-visualizer", + "webaudio", + "vizualizer" + ], + "exports": { + ".": { + "types": "./src/index.d.ts", + "import": "./src/index.js", + "require": "./src/lib/visualizer.js" + } + } } \ No newline at end of file diff --git a/packages/visualizer/tsconfig.json b/packages/visualizer/tsconfig.json index b91a60c..f411f85 100644 --- a/packages/visualizer/tsconfig.json +++ b/packages/visualizer/tsconfig.json @@ -1,7 +1,7 @@ { "extends": "../../tsconfig.base.json", "compilerOptions": { - "module": "commonjs", + "module": "ESNext", "forceConsistentCasingInFileNames": true, "strict": true, "noImplicitOverride": true, diff --git a/tsconfig.base.json b/tsconfig.base.json index b47a2d1..b147ad4 100644 --- a/tsconfig.base.json +++ b/tsconfig.base.json @@ -18,6 +18,9 @@ "skipDefaultLibCheck": true, "baseUrl": ".", "paths": { + "@euterpe-js/music-library": [ + "packages/music-library/src/index.ts" + ], "@euterpe/player": [ "packages/player/src/index.ts" ],