log core version + add warning to isPattern

This commit is contained in:
Felix Roos 2022-06-27 22:40:50 +02:00
parent e29eaf3785
commit 196d9db3fa
3 changed files with 122 additions and 47 deletions

152
package-lock.json generated
View File

@ -8504,6 +8504,31 @@
"node": ">=8" "node": ">=8"
} }
}, },
"node_modules/peggy": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/peggy/-/peggy-2.0.1.tgz",
"integrity": "sha512-mBqfmdUAOVn7RILpXTbcRBhLfTR4Go0SresSnivGDdRylBOyVFJncFiVyCNNpPWq8HmgeRleXHs/Go4o8kQVXA==",
"dev": true,
"dependencies": {
"commander": "^9.3.0",
"source-map-generator": "0.8.0"
},
"bin": {
"peggy": "bin/peggy.js"
},
"engines": {
"node": ">=10"
}
},
"node_modules/peggy/node_modules/commander": {
"version": "9.3.0",
"resolved": "https://registry.npmjs.org/commander/-/commander-9.3.0.tgz",
"integrity": "sha512-hv95iU5uXPbK83mjrJKuZyFM/LBAoCV/XhVGkS5Je6tl7sxr6A0ITMw5WoRV46/UaJ46Nllm3Xt7IaJhXTIkzw==",
"dev": true,
"engines": {
"node": "^12.20.0 || >=14"
}
},
"node_modules/performance-now": { "node_modules/performance-now": {
"version": "2.1.0", "version": "2.1.0",
"resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
@ -9901,6 +9926,15 @@
"url": "https://github.com/sponsors/sindresorhus" "url": "https://github.com/sponsors/sindresorhus"
} }
}, },
"node_modules/source-map-generator": {
"version": "0.8.0",
"resolved": "https://registry.npmjs.org/source-map-generator/-/source-map-generator-0.8.0.tgz",
"integrity": "sha512-psgxdGMwl5MZM9S3FWee4EgsEaIjahYV5AzGnwUvPhWeITz/j6rKpysQHlQ4USdxvINlb8lKfWGIXwfkrgtqkA==",
"dev": true,
"engines": {
"node": ">= 10"
}
},
"node_modules/source-map-js": { "node_modules/source-map-js": {
"version": "1.0.2", "version": "1.0.2",
"resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz",
@ -11339,7 +11373,7 @@
}, },
"packages/core": { "packages/core": {
"name": "@strudel.cycles/core", "name": "@strudel.cycles/core",
"version": "0.1.0", "version": "0.1.2",
"license": "AGPL-3.0-or-later", "license": "AGPL-3.0-or-later",
"dependencies": { "dependencies": {
"bjork": "^0.0.1", "bjork": "^0.0.1",
@ -11351,15 +11385,15 @@
}, },
"packages/embed": { "packages/embed": {
"name": "@strudel.cycles/embed", "name": "@strudel.cycles/embed",
"version": "0.1.0", "version": "0.1.1",
"license": "AGPL-3.0-or-later" "license": "AGPL-3.0-or-later"
}, },
"packages/eval": { "packages/eval": {
"name": "@strudel.cycles/eval", "name": "@strudel.cycles/eval",
"version": "0.1.1", "version": "0.1.3",
"license": "AGPL-3.0-or-later", "license": "AGPL-3.0-or-later",
"dependencies": { "dependencies": {
"@strudel.cycles/core": "^0.1.0", "@strudel.cycles/core": "^0.1.2",
"estraverse": "^5.3.0", "estraverse": "^5.3.0",
"shift-ast": "^6.1.0", "shift-ast": "^6.1.0",
"shift-codegen": "^7.0.3", "shift-codegen": "^7.0.3",
@ -11383,27 +11417,30 @@
}, },
"packages/midi": { "packages/midi": {
"name": "@strudel.cycles/midi", "name": "@strudel.cycles/midi",
"version": "0.1.1", "version": "0.1.3",
"license": "AGPL-3.0-or-later", "license": "AGPL-3.0-or-later",
"dependencies": { "dependencies": {
"@strudel.cycles/tone": "^0.1.1", "@strudel.cycles/tone": "^0.1.3",
"tone": "^14.7.77", "tone": "^14.7.77",
"webmidi": "^2.5.2" "webmidi": "^2.5.2"
} }
}, },
"packages/mini": { "packages/mini": {
"name": "@strudel.cycles/mini", "name": "@strudel.cycles/mini",
"version": "0.1.1", "version": "0.1.3",
"license": "AGPL-3.0-or-later", "license": "AGPL-3.0-or-later",
"dependencies": { "dependencies": {
"@strudel.cycles/core": "^0.1.0", "@strudel.cycles/core": "^0.1.2",
"@strudel.cycles/eval": "^0.1.1", "@strudel.cycles/eval": "^0.1.3",
"@strudel.cycles/tone": "^0.1.1" "@strudel.cycles/tone": "^0.1.3"
},
"devDependencies": {
"peggy": "^2.0.1"
} }
}, },
"packages/osc": { "packages/osc": {
"name": "@strudel.cycles/osc", "name": "@strudel.cycles/osc",
"version": "0.1.0", "version": "0.1.1",
"license": "AGPL-3.0-or-later", "license": "AGPL-3.0-or-later",
"dependencies": { "dependencies": {
"osc-js": "^2.3.2" "osc-js": "^2.3.2"
@ -11411,14 +11448,14 @@
}, },
"packages/react": { "packages/react": {
"name": "@strudel.cycles/react", "name": "@strudel.cycles/react",
"version": "0.1.2", "version": "0.1.4",
"license": "AGPL-3.0-or-later", "license": "AGPL-3.0-or-later",
"peer": true, "peer": true,
"dependencies": { "dependencies": {
"@codemirror/lang-javascript": "^0.19.0", "@codemirror/lang-javascript": "^0.19.0",
"@strudel.cycles/core": "*", "@strudel.cycles/core": "^0.1.2",
"@strudel.cycles/eval": "^0.1.1", "@strudel.cycles/eval": "^0.1.3",
"@strudel.cycles/tone": "^0.1.1", "@strudel.cycles/tone": "^0.1.3",
"react-codemirror6": "^1.1.0", "react-codemirror6": "^1.1.0",
"react-hook-inview": "^4.5.0" "react-hook-inview": "^4.5.0"
}, },
@ -11487,16 +11524,16 @@
}, },
"packages/serial": { "packages/serial": {
"name": "@strudel.cycles/serial", "name": "@strudel.cycles/serial",
"version": "0.1.0", "version": "0.1.3",
"license": "AGPL-3.0-or-later" "license": "AGPL-3.0-or-later"
}, },
"packages/soundfonts": { "packages/soundfonts": {
"name": "@strudel.cycles/soundfonts", "name": "@strudel.cycles/soundfonts",
"version": "0.1.0", "version": "0.1.1",
"license": "AGPL-3.0-or-later", "license": "AGPL-3.0-or-later",
"dependencies": { "dependencies": {
"@strudel.cycles/core": "*", "@strudel.cycles/core": "*",
"@strudel.cycles/webaudio": "*" "@strudel.cycles/webaudio": "^0.1.4"
}, },
"devDependencies": { "devDependencies": {
"node-fetch": "^3.2.6" "node-fetch": "^3.2.6"
@ -11522,10 +11559,10 @@
}, },
"packages/tonal": { "packages/tonal": {
"name": "@strudel.cycles/tonal", "name": "@strudel.cycles/tonal",
"version": "0.1.1", "version": "0.1.3",
"license": "AGPL-3.0-or-later", "license": "AGPL-3.0-or-later",
"dependencies": { "dependencies": {
"@strudel.cycles/core": "^0.1.0", "@strudel.cycles/core": "^0.1.2",
"@tonaljs/tonal": "^4.6.5", "@tonaljs/tonal": "^4.6.5",
"webmidi": "^3.0.15" "webmidi": "^3.0.15"
} }
@ -11547,10 +11584,10 @@
}, },
"packages/tone": { "packages/tone": {
"name": "@strudel.cycles/tone", "name": "@strudel.cycles/tone",
"version": "0.1.1", "version": "0.1.3",
"license": "AGPL-3.0-or-later", "license": "AGPL-3.0-or-later",
"dependencies": { "dependencies": {
"@strudel.cycles/core": "^0.1.0", "@strudel.cycles/core": "^0.1.2",
"@tonejs/piano": "^0.2.1", "@tonejs/piano": "^0.2.1",
"chord-voicings": "^0.0.1", "chord-voicings": "^0.0.1",
"tone": "^14.7.77" "tone": "^14.7.77"
@ -11558,27 +11595,27 @@
}, },
"packages/webaudio": { "packages/webaudio": {
"name": "@strudel.cycles/webaudio", "name": "@strudel.cycles/webaudio",
"version": "0.1.1", "version": "0.1.4",
"license": "AGPL-3.0-or-later", "license": "AGPL-3.0-or-later",
"dependencies": { "dependencies": {
"@strudel.cycles/core": "^0.1.0" "@strudel.cycles/core": "^0.1.2"
} }
}, },
"packages/webdirt": { "packages/webdirt": {
"name": "@strudel.cycles/webdirt", "name": "@strudel.cycles/webdirt",
"version": "0.1.0", "version": "0.1.2",
"license": "AGPL-3.0-or-later", "license": "AGPL-3.0-or-later",
"dependencies": { "dependencies": {
"@strudel.cycles/core": "^0.1.0", "@strudel.cycles/core": "^0.1.2",
"WebDirt": "github:dktr0/WebDirt" "WebDirt": "github:dktr0/WebDirt"
} }
}, },
"packages/xen": { "packages/xen": {
"name": "@strudel.cycles/xen", "name": "@strudel.cycles/xen",
"version": "0.1.1", "version": "0.1.3",
"license": "AGPL-3.0-or-later", "license": "AGPL-3.0-or-later",
"dependencies": { "dependencies": {
"@strudel.cycles/core": "^0.1.0" "@strudel.cycles/core": "^0.1.2"
} }
} }
}, },
@ -13393,7 +13430,7 @@
"@strudel.cycles/eval": { "@strudel.cycles/eval": {
"version": "file:packages/eval", "version": "file:packages/eval",
"requires": { "requires": {
"@strudel.cycles/core": "^0.1.0", "@strudel.cycles/core": "^0.1.2",
"estraverse": "^5.3.0", "estraverse": "^5.3.0",
"shift-ast": "^6.1.0", "shift-ast": "^6.1.0",
"shift-codegen": "^7.0.3", "shift-codegen": "^7.0.3",
@ -13405,7 +13442,7 @@
"@strudel.cycles/midi": { "@strudel.cycles/midi": {
"version": "file:packages/midi", "version": "file:packages/midi",
"requires": { "requires": {
"@strudel.cycles/tone": "^0.1.1", "@strudel.cycles/tone": "^0.1.3",
"tone": "^14.7.77", "tone": "^14.7.77",
"webmidi": "^2.5.2" "webmidi": "^2.5.2"
} }
@ -13413,9 +13450,10 @@
"@strudel.cycles/mini": { "@strudel.cycles/mini": {
"version": "file:packages/mini", "version": "file:packages/mini",
"requires": { "requires": {
"@strudel.cycles/core": "^0.1.0", "@strudel.cycles/core": "^0.1.2",
"@strudel.cycles/eval": "^0.1.1", "@strudel.cycles/eval": "^0.1.3",
"@strudel.cycles/tone": "^0.1.1" "@strudel.cycles/tone": "^0.1.3",
"peggy": "^2.0.1"
} }
}, },
"@strudel.cycles/osc": { "@strudel.cycles/osc": {
@ -13428,9 +13466,9 @@
"version": "file:packages/react", "version": "file:packages/react",
"requires": { "requires": {
"@codemirror/lang-javascript": "^0.19.0", "@codemirror/lang-javascript": "^0.19.0",
"@strudel.cycles/core": "*", "@strudel.cycles/core": "^0.1.2",
"@strudel.cycles/eval": "^0.1.1", "@strudel.cycles/eval": "^0.1.3",
"@strudel.cycles/tone": "^0.1.1", "@strudel.cycles/tone": "^0.1.3",
"@types/react": "^17.0.2", "@types/react": "^17.0.2",
"@types/react-dom": "^17.0.2", "@types/react-dom": "^17.0.2",
"@vitejs/plugin-react": "^1.3.0", "@vitejs/plugin-react": "^1.3.0",
@ -13494,7 +13532,7 @@
"version": "file:packages/soundfonts", "version": "file:packages/soundfonts",
"requires": { "requires": {
"@strudel.cycles/core": "*", "@strudel.cycles/core": "*",
"@strudel.cycles/webaudio": "*", "@strudel.cycles/webaudio": "^0.1.4",
"node-fetch": "^3.2.6" "node-fetch": "^3.2.6"
}, },
"dependencies": { "dependencies": {
@ -13514,7 +13552,7 @@
"@strudel.cycles/tonal": { "@strudel.cycles/tonal": {
"version": "file:packages/tonal", "version": "file:packages/tonal",
"requires": { "requires": {
"@strudel.cycles/core": "^0.1.0", "@strudel.cycles/core": "^0.1.2",
"@tonaljs/tonal": "^4.6.5", "@tonaljs/tonal": "^4.6.5",
"webmidi": "^3.0.15" "webmidi": "^3.0.15"
}, },
@ -13534,7 +13572,7 @@
"@strudel.cycles/tone": { "@strudel.cycles/tone": {
"version": "file:packages/tone", "version": "file:packages/tone",
"requires": { "requires": {
"@strudel.cycles/core": "^0.1.0", "@strudel.cycles/core": "^0.1.2",
"@tonejs/piano": "^0.2.1", "@tonejs/piano": "^0.2.1",
"chord-voicings": "^0.0.1", "chord-voicings": "^0.0.1",
"tone": "^14.7.77" "tone": "^14.7.77"
@ -13543,20 +13581,20 @@
"@strudel.cycles/webaudio": { "@strudel.cycles/webaudio": {
"version": "file:packages/webaudio", "version": "file:packages/webaudio",
"requires": { "requires": {
"@strudel.cycles/core": "^0.1.0" "@strudel.cycles/core": "^0.1.2"
} }
}, },
"@strudel.cycles/webdirt": { "@strudel.cycles/webdirt": {
"version": "file:packages/webdirt", "version": "file:packages/webdirt",
"requires": { "requires": {
"@strudel.cycles/core": "^0.1.0", "@strudel.cycles/core": "^0.1.2",
"WebDirt": "github:dktr0/WebDirt" "WebDirt": "github:dktr0/WebDirt"
} }
}, },
"@strudel.cycles/xen": { "@strudel.cycles/xen": {
"version": "file:packages/xen", "version": "file:packages/xen",
"requires": { "requires": {
"@strudel.cycles/core": "^0.1.0" "@strudel.cycles/core": "^0.1.2"
} }
}, },
"@tonaljs/abc-notation": { "@tonaljs/abc-notation": {
@ -18292,6 +18330,24 @@
"integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
"dev": true "dev": true
}, },
"peggy": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/peggy/-/peggy-2.0.1.tgz",
"integrity": "sha512-mBqfmdUAOVn7RILpXTbcRBhLfTR4Go0SresSnivGDdRylBOyVFJncFiVyCNNpPWq8HmgeRleXHs/Go4o8kQVXA==",
"dev": true,
"requires": {
"commander": "^9.3.0",
"source-map-generator": "0.8.0"
},
"dependencies": {
"commander": {
"version": "9.3.0",
"resolved": "https://registry.npmjs.org/commander/-/commander-9.3.0.tgz",
"integrity": "sha512-hv95iU5uXPbK83mjrJKuZyFM/LBAoCV/XhVGkS5Je6tl7sxr6A0ITMw5WoRV46/UaJ46Nllm3Xt7IaJhXTIkzw==",
"dev": true
}
}
},
"performance-now": { "performance-now": {
"version": "2.1.0", "version": "2.1.0",
"resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
@ -18544,9 +18600,9 @@
"version": "file:packages/react", "version": "file:packages/react",
"requires": { "requires": {
"@codemirror/lang-javascript": "^0.19.0", "@codemirror/lang-javascript": "^0.19.0",
"@strudel.cycles/core": "*", "@strudel.cycles/core": "^0.1.2",
"@strudel.cycles/eval": "^0.1.1", "@strudel.cycles/eval": "^0.1.3",
"@strudel.cycles/tone": "^0.1.1", "@strudel.cycles/tone": "^0.1.3",
"@types/react": "^17.0.2", "@types/react": "^17.0.2",
"@types/react-dom": "^17.0.2", "@types/react-dom": "^17.0.2",
"@vitejs/plugin-react": "^1.3.0", "@vitejs/plugin-react": "^1.3.0",
@ -19410,6 +19466,12 @@
"is-plain-obj": "^2.0.0" "is-plain-obj": "^2.0.0"
} }
}, },
"source-map-generator": {
"version": "0.8.0",
"resolved": "https://registry.npmjs.org/source-map-generator/-/source-map-generator-0.8.0.tgz",
"integrity": "sha512-psgxdGMwl5MZM9S3FWee4EgsEaIjahYV5AzGnwUvPhWeITz/j6rKpysQHlQ4USdxvINlb8lKfWGIXwfkrgtqkA==",
"dev": true
},
"source-map-js": { "source-map-js": {
"version": "1.0.2", "version": "1.0.2",
"resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz",

View File

@ -16,4 +16,8 @@ export * from './timespan.mjs';
export * from './util.mjs'; export * from './util.mjs';
export * from './speak.mjs'; export * from './speak.mjs';
export { default as gist } from './gist.js'; export { default as gist } from './gist.js';
import * as p from './package.json';
export const version = p.version;
console.log('🌀🌀🌀 @strudel.cycles/core@' + version);
// export * from './value.mjs'; // export * from './value.mjs';

View File

@ -15,6 +15,7 @@ import drawLine from './drawLine.mjs';
/** @class Class representing a pattern. */ /** @class Class representing a pattern. */
export class Pattern { export class Pattern {
_Pattern = true; // this property is used to detect if a pattern that fails instanceof Pattern is an instance of another Pattern
/** /**
* Create a pattern. As an end user, you will most likely not create a Pattern directly. * Create a pattern. As an end user, you will most likely not create a Pattern directly.
* *
@ -1212,7 +1213,15 @@ export function pure(value) {
export function isPattern(thing) { export function isPattern(thing) {
// thing?.constructor?.name !== 'Pattern' // <- this will fail when code is mangled // thing?.constructor?.name !== 'Pattern' // <- this will fail when code is mangled
return thing instanceof Pattern; const is = thing instanceof Pattern || thing._Pattern;
if (!thing instanceof Pattern) {
console.warn(
`Found Pattern that fails "instanceof Pattern" check.
This may happen if you are using multiple versions of @strudel.cycles/core.
Please check by running "npm ls @strudel.cycles/core".`,
);
}
return is;
} }
export function reify(thing) { export function reify(thing) {
@ -1389,7 +1398,7 @@ export function pr(args) {
} }
export const add = curry((a, pat) => pat.add(a)); export const add = curry((a, pat) => pat.add(a));
export const chop = curry((a, pat) => pat.chop(a)) export const chop = curry((a, pat) => pat.chop(a));
export const chunk = curry((a, pat) => pat.chunk(a)); export const chunk = curry((a, pat) => pat.chunk(a));
export const chunkBack = curry((a, pat) => pat.chunkBack(a)); export const chunkBack = curry((a, pat) => pat.chunkBack(a));
export const div = curry((a, pat) => pat.div(a)); export const div = curry((a, pat) => pat.div(a));