Refactored config crate + moving crates to lib/rust directory. (#3155)

This commit is contained in:
Adam Obuchowicz 2021-11-12 13:56:23 +01:00 committed by GitHub
parent 942464cbaf
commit 753f787a6f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
426 changed files with 1356 additions and 910 deletions

183
Cargo.lock generated
View File

@ -282,6 +282,14 @@ dependencies = [
"serde",
]
[[package]]
name = "build-scripts"
version = "0.1.0"
dependencies = [
"glob",
"toml",
]
[[package]]
name = "bumpalo"
version = "3.8.0"
@ -448,6 +456,15 @@ dependencies = [
"memchr",
]
[[package]]
name = "config-reader"
version = "0.1.0"
dependencies = [
"Inflector",
"serde",
"serde_yaml",
]
[[package]]
name = "console_error_panic_hook"
version = "0.1.7"
@ -752,12 +769,12 @@ version = "0.1.0"
dependencies = [
"bytes 0.5.6",
"chrono",
"enso-build-utilities",
"enso-data",
"enso-logger",
"enso-prelude",
"enso-shapely",
"ensogl-build-utilities",
"ensogl-system-web",
"enso-web",
"failure",
"flatbuffers",
"flatc-rust",
@ -776,16 +793,6 @@ dependencies = [
"zip-extensions",
]
[[package]]
name = "enso-args"
version = "0.1.0"
dependencies = [
"enso-config",
"enso-logger",
"enso-prelude",
"ensogl",
]
[[package]]
name = "enso-automata"
version = "0.2.0"
@ -793,6 +800,14 @@ dependencies = [
"enso-prelude",
]
[[package]]
name = "enso-build-utilities"
version = "0.1.0"
dependencies = [
"path-clean",
"reqwest",
]
[[package]]
name = "enso-callback"
version = "0.1.0"
@ -804,9 +819,10 @@ dependencies = [
name = "enso-config"
version = "0.1.0"
dependencies = [
"Inflector",
"serde",
"serde_yaml",
"config-reader",
"enso-logger",
"enso-prelude",
"ensogl",
]
[[package]]
@ -849,7 +865,7 @@ dependencies = [
"enso-generics",
"enso-logger",
"enso-prelude",
"ensogl-system-web",
"enso-web",
"keyboard-types",
"nalgebra 0.26.2",
"percent-encoding 2.1.0",
@ -970,7 +986,7 @@ dependencies = [
"enso-frp",
"enso-logger",
"enso-prelude",
"ensogl-system-web",
"enso-web",
"js-sys",
"nalgebra 0.26.2",
"serde",
@ -988,7 +1004,7 @@ dependencies = [
"enso-logger",
"enso-prelude",
"enso-shortcuts",
"ensogl-system-web",
"enso-web",
"js-sys",
"nalgebra 0.26.2",
"serde",
@ -1004,7 +1020,7 @@ dependencies = [
"ast",
"enso-logger",
"enso-prelude",
"ensogl-system-web",
"enso-web",
"span-tree",
"uuid",
"wasm-bindgen",
@ -1020,6 +1036,24 @@ dependencies = [
"num-traits",
]
[[package]]
name = "enso-web"
version = "0.1.0"
dependencies = [
"async-std",
"console_error_panic_hook",
"enso-data",
"enso-logger",
"enso-prelude",
"failure",
"gloo-timers",
"js-sys",
"nalgebra 0.26.2",
"wasm-bindgen",
"wasm-bindgen-test 0.3.8",
"web-sys",
]
[[package]]
name = "ensogl"
version = "0.1.0"
@ -1029,12 +1063,8 @@ dependencies = [
]
[[package]]
name = "ensogl-build-utilities"
name = "ensogl-component"
version = "0.1.0"
dependencies = [
"path-clean",
"reqwest",
]
[[package]]
name = "ensogl-core"
@ -1055,11 +1085,10 @@ dependencies = [
"enso-shapely",
"enso-shortcuts",
"enso-types",
"ensogl-system-web",
"enso-web",
"ensogl-text-embedded-fonts",
"ensogl-text-msdf-sys",
"enum_dispatch",
"eval-tt",
"failure",
"itertools 0.10.1",
"js-sys",
@ -1074,7 +1103,20 @@ dependencies = [
"wasm-bindgen",
"wasm-bindgen-test 0.3.8",
"web-sys",
"web-test",
]
[[package]]
name = "ensogl-drop-manager"
version = "0.1.0"
dependencies = [
"enso-frp",
"enso-logger",
"enso-prelude",
"enso-web",
"js-sys",
"wasm-bindgen",
"wasm-bindgen-futures 0.4.8",
"web-sys",
]
[[package]]
@ -1086,11 +1128,11 @@ dependencies = [
"enso-prelude",
"enso-shapely",
"ensogl-core",
"ensogl-gui-components",
"ensogl-drop-manager",
"ensogl-gui-component",
"ensogl-hardcoded-theme",
"ensogl-text",
"ensogl-text-msdf-sys",
"ensogl-theme",
"ensogl-web",
"js-sys",
"nalgebra 0.26.2",
"serde",
@ -1101,7 +1143,7 @@ dependencies = [
]
[[package]]
name = "ensogl-gui-components"
name = "ensogl-gui-component"
version = "0.1.0"
dependencies = [
"enso-frp",
@ -1110,28 +1152,17 @@ dependencies = [
"enso-shapely",
"enso-types",
"ensogl-core",
"ensogl-hardcoded-theme",
"ensogl-text",
"ensogl-theme",
"float_eq",
"wasm-bindgen-test 0.3.8",
]
[[package]]
name = "ensogl-system-web"
name = "ensogl-hardcoded-theme"
version = "0.1.0"
dependencies = [
"async-std",
"console_error_panic_hook",
"enso-data",
"enso-logger",
"enso-prelude",
"failure",
"gloo-timers",
"js-sys",
"nalgebra 0.26.2",
"wasm-bindgen",
"wasm-bindgen-test 0.3.8",
"web-sys",
"ensogl-core",
]
[[package]]
@ -1143,9 +1174,9 @@ dependencies = [
"enso-shapely",
"enso-types",
"ensogl-core",
"ensogl-hardcoded-theme",
"ensogl-text-embedded-fonts",
"ensogl-text-msdf-sys",
"ensogl-theme",
"wasm-bindgen-test 0.3.8",
"xi-rope",
]
@ -1154,8 +1185,8 @@ dependencies = [
name = "ensogl-text-embedded-fonts"
version = "0.1.0"
dependencies = [
"enso-build-utilities",
"enso-prelude",
"ensogl-build-utilities",
"zip",
]
@ -1163,8 +1194,8 @@ dependencies = [
name = "ensogl-text-msdf-sys"
version = "0.1.0"
dependencies = [
"enso-build-utilities",
"enso-prelude",
"ensogl-build-utilities",
"ensogl-text-embedded-fonts",
"futures 0.3.17",
"js-sys",
@ -1173,27 +1204,6 @@ dependencies = [
"wasm-bindgen-test 0.3.8",
]
[[package]]
name = "ensogl-theme"
version = "0.1.0"
dependencies = [
"ensogl-core",
]
[[package]]
name = "ensogl-web"
version = "0.1.0"
dependencies = [
"enso-frp",
"enso-logger",
"enso-prelude",
"ensogl-system-web",
"js-sys",
"wasm-bindgen",
"wasm-bindgen-futures 0.4.8",
"web-sys",
]
[[package]]
name = "enum_dispatch"
version = "0.3.7"
@ -1525,6 +1535,12 @@ version = "0.26.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "78cc372d058dcf6d5ecd98510e7fbc9e5aec4d21de70f65fea8fecebcd881bd4"
[[package]]
name = "glob"
version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574"
[[package]]
name = "gloo-timers"
version = "0.2.1"
@ -1693,21 +1709,21 @@ dependencies = [
"console_error_panic_hook",
"double-representation",
"engine-protocol",
"enso-args",
"enso-callback",
"enso-config",
"enso-data",
"enso-frp",
"enso-logger",
"enso-prelude",
"enso-shapely",
"enso-web",
"ensogl",
"ensogl-drop-manager",
"ensogl-examples",
"ensogl-gui-components",
"ensogl-system-web",
"ensogl-gui-component",
"ensogl-hardcoded-theme",
"ensogl-text",
"ensogl-text-msdf-sys",
"ensogl-theme",
"ensogl-web",
"failure",
"flo_stream",
"futures 0.3.17",
@ -1738,17 +1754,16 @@ version = "0.1.0"
dependencies = [
"ast",
"engine-protocol",
"enso-args",
"enso-config",
"enso-frp",
"enso-logger",
"enso-prelude",
"enso-shapely",
"ensogl",
"ensogl-gui-components",
"ensogl-gui-component",
"ensogl-hardcoded-theme",
"ensogl-text",
"ensogl-text-msdf-sys",
"ensogl-theme",
"ide-view-graph-editor",
"js-sys",
"nalgebra 0.26.2",
@ -1770,17 +1785,17 @@ dependencies = [
"ast",
"bimap",
"engine-protocol",
"enso-args",
"enso-config",
"enso-frp",
"enso-logger",
"enso-prelude",
"enso-shapely",
"ensogl",
"ensogl-gui-components",
"ensogl-drop-manager",
"ensogl-gui-component",
"ensogl-hardcoded-theme",
"ensogl-text",
"ensogl-text-msdf-sys",
"ensogl-theme",
"ensogl-web",
"failure",
"js-sys",
"nalgebra 0.26.2",
@ -1932,7 +1947,7 @@ version = "0.1.0"
dependencies = [
"enso-prelude",
"enso-shapely",
"ensogl-system-web",
"enso-web",
"failure",
"futures 0.3.17",
"serde",
@ -2574,9 +2589,9 @@ dependencies = [
"ast",
"bytes 0.5.6",
"console_error_panic_hook",
"enso-build-utilities",
"enso-data",
"enso-prelude",
"ensogl-build-utilities",
"failure",
"futures 0.3.17",
"js-sys",
@ -4125,8 +4140,8 @@ name = "web-test"
version = "0.1.0"
dependencies = [
"enso-prelude",
"enso-web",
"ensogl",
"ensogl-system-web",
"js-sys",
"shrinkwraprs 0.3.0",
"wasm-bindgen",

View File

@ -1,59 +1,63 @@
[workspace]
members = [
"gui/src/rust/build",
"gui/src/rust/ensogl",
"gui/src/rust/ensogl/example",
"gui/src/rust/ensogl/lib/core",
"gui/src/rust/ensogl/lib/components",
"gui/src/rust/ensogl/lib/theme",
"gui/src/rust/ensogl/lib/text/embedded-fonts",
"gui/src/rust/ensogl/lib/text/msdf-sys",
"gui/src/rust/ensogl/lib/text",
"gui/src/rust/ensogl/lib/web",
"gui/src/rust/ide",
"gui/src/rust/ide/controller",
"gui/src/rust/ide/controller/double-representation",
"gui/src/rust/ide/controller/engine-model",
"gui/src/rust/ide/controller/engine-protocol",
"gui/src/rust/ide/lib/args",
"gui/src/rust/ide/lib/config",
"gui/src/rust/ide/lib/ast/impl",
"gui/src/rust/ide/lib/ast/macros",
"gui/src/rust/ide/lib/json-rpc",
"gui/src/rust/ide/lib/parser",
"gui/src/rust/ide/lib/span-tree",
"gui/src/rust/ide/lib/span-tree/example",
"gui/src/rust/ide/view",
"gui/src/rust/ide/view/graph-editor",
"gui/src/rust/lib/callback",
"gui/src/rust/lib/code-builder",
"gui/src/rust/lib/config",
"gui/src/rust/lib/eval-tt",
"gui/src/rust/lib/frp",
"gui/src/rust/lib/fuzzly",
"gui/src/rust/lib/shortcuts",
"gui/src/rust/lib/shortcuts/example",
"gui/src/rust/lib/system/web",
"gui/src/rust/lib/types",
"lib/rust/ast",
"lib/rust/launcher-shims",
"lib/rust/lexer/definition",
"lib/rust/lexer/generation",
"lib/rust/parser",
"lib/rust/parser-jni",
"gui/src/rust/test",
"lib/rust/automata",
"lib/rust/build-utils",
"lib/rust/callback",
"lib/rust/code-builder",
"lib/rust/config-reader",
"lib/rust/data",
"lib/rust/flexer",
"lib/rust/flexer-testing/definition",
"lib/rust/flexer-testing/generation",
"lib/rust/ensogl",
"lib/rust/ensogl/app/theme/hardcoded",
"lib/rust/ensogl/core",
"lib/rust/ensogl/component",
"lib/rust/ensogl/component/drop-manager",
"lib/rust/ensogl/component/gui",
"lib/rust/ensogl/component/text",
"lib/rust/ensogl/component/text/embedded-fonts",
"lib/rust/ensogl/component/text/msdf-sys",
"lib/rust/ensogl/example",
"lib/rust/frp",
"lib/rust/fuzzly",
"lib/rust/generics",
"lib/rust/lazy-reader",
"lib/rust/json-rpc",
"lib/rust/launcher-shims",
"lib/rust/logger",
"lib/rust/macro-utils",
"lib/rust/optics",
"lib/rust/parser",
"lib/rust/parser/ast",
"lib/rust/parser/flexer",
"lib/rust/prelude",
"lib/rust/parser/flexer-testing/definition",
"lib/rust/parser/flexer-testing/generation",
"lib/rust/parser/lexer/definition",
"lib/rust/parser/lexer/generation",
"lib/rust/parser/parser-jni",
"lib/rust/parser/lazy-reader",
"lib/rust/shapely/impl",
"lib/rust/shapely/macros",
"lib/rust/shortcuts",
"lib/rust/shortcuts/example",
"lib/rust/types",
"lib/rust/web",
"lib/rust/not-used/eval-tt",
"lib/rust/not-used/web-test",
"lib/rust/not-used/web-test-proc-macro",
]
[profile.dev]

View File

@ -1,8 +1,712 @@
{
"name": "build-script",
"version": "1.0.0",
"lockfileVersion": 1,
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "build-script",
"version": "1.0.0",
"license": "MIT",
"dependencies": {
"fs-extra": "^10.0.0",
"glob": "^7.1.6",
"js-yaml": "4.0.0",
"ncp": "^2.0.0",
"semver": "7.3.4",
"unzipper": "^0.10.11",
"yargs": "^15.3.0"
},
"devDependencies": {
"prettier": "2.2.0",
"prettier-plugin-toml": "0.3.1"
}
},
"node_modules/@toml-tools/lexer": {
"version": "0.3.1",
"resolved": "https://registry.npmjs.org/@toml-tools/lexer/-/lexer-0.3.1.tgz",
"integrity": "sha512-CCKHQb5OWpgFu47MQ2rcql4AnE9GaehNk/c1oJOyOBovED6XmdzQPXsvPSu+NJ9lToqJNoX+nLXQsB8WyQGdzQ==",
"dev": true,
"dependencies": {
"chevrotain": "4.1.1"
}
},
"node_modules/@toml-tools/parser": {
"version": "0.3.1",
"resolved": "https://registry.npmjs.org/@toml-tools/parser/-/parser-0.3.1.tgz",
"integrity": "sha512-vadwVx5TkgByt19dbp/rfIUKPkDdn5werANYvziiGK9wHlqPA0BWnvOloQw/dPDxF31+Ag0+zarXJpPDdRsPPg==",
"dev": true,
"dependencies": {
"@toml-tools/lexer": "^0.3.1",
"chevrotain": "4.1.1"
}
},
"node_modules/@types/color-name": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz",
"integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ=="
},
"node_modules/ansi-regex": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
"integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
"engines": {
"node": ">=8"
}
},
"node_modules/ansi-styles": {
"version": "4.2.1",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
"integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
"dependencies": {
"@types/color-name": "^1.1.1",
"color-convert": "^2.0.1"
},
"engines": {
"node": ">=8"
},
"funding": {
"url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
"node_modules/argparse": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
"integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
},
"node_modules/balanced-match": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
"integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c="
},
"node_modules/big-integer": {
"version": "1.6.48",
"resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.48.tgz",
"integrity": "sha512-j51egjPa7/i+RdiRuJbPdJ2FIUYYPhvYLjzoYbcMMm62ooO6F94fETG4MTs46zPAF9Brs04OajboA/qTGuz78w==",
"engines": {
"node": ">=0.6"
}
},
"node_modules/binary": {
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/binary/-/binary-0.3.0.tgz",
"integrity": "sha1-n2BVO8XOjDOG87VTz/R0Yq3sqnk=",
"dependencies": {
"buffers": "~0.1.1",
"chainsaw": "~0.1.0"
},
"engines": {
"node": "*"
}
},
"node_modules/bluebird": {
"version": "3.4.7",
"resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.4.7.tgz",
"integrity": "sha1-9y12C+Cbf3bQjtj66Ysomo0F+rM="
},
"node_modules/brace-expansion": {
"version": "1.1.11",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
"dependencies": {
"balanced-match": "^1.0.0",
"concat-map": "0.0.1"
}
},
"node_modules/buffer-indexof-polyfill": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/buffer-indexof-polyfill/-/buffer-indexof-polyfill-1.0.2.tgz",
"integrity": "sha512-I7wzHwA3t1/lwXQh+A5PbNvJxgfo5r3xulgpYDB5zckTu/Z9oUK9biouBKQUjEqzaz3HnAT6TYoovmE+GqSf7A==",
"engines": {
"node": ">=0.10"
}
},
"node_modules/buffers": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/buffers/-/buffers-0.1.1.tgz",
"integrity": "sha1-skV5w77U1tOWru5tmorn9Ugqt7s=",
"engines": {
"node": ">=0.2.0"
}
},
"node_modules/camelcase": {
"version": "5.3.1",
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
"integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
"engines": {
"node": ">=6"
}
},
"node_modules/chainsaw": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/chainsaw/-/chainsaw-0.1.0.tgz",
"integrity": "sha1-XqtQsor+WAdNDVgpE4iCi15fvJg=",
"dependencies": {
"traverse": ">=0.3.0 <0.4"
},
"engines": {
"node": "*"
}
},
"node_modules/chevrotain": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/chevrotain/-/chevrotain-4.1.1.tgz",
"integrity": "sha512-NQky1HQyiAzxsxpq4Ppt47SYO2U3JLtmfs85QPf3kYSzGBjjp5AA8kqjH8hCjGFRpaQ781QOk1ragQIOkBgUTA==",
"dev": true,
"dependencies": {
"regexp-to-ast": "0.3.5"
}
},
"node_modules/cliui": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz",
"integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==",
"dependencies": {
"string-width": "^4.2.0",
"strip-ansi": "^6.0.0",
"wrap-ansi": "^6.2.0"
}
},
"node_modules/color-convert": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
"dependencies": {
"color-name": "~1.1.4"
},
"engines": {
"node": ">=7.0.0"
}
},
"node_modules/color-name": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
},
"node_modules/concat-map": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
"integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
},
"node_modules/core-util-is": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
"integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
},
"node_modules/decamelize": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
"integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/duplexer2": {
"version": "0.1.4",
"resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz",
"integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=",
"dependencies": {
"readable-stream": "^2.0.2"
}
},
"node_modules/emoji-regex": {
"version": "8.0.0",
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
"integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
},
"node_modules/find-up": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
"integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
"dependencies": {
"locate-path": "^5.0.0",
"path-exists": "^4.0.0"
},
"engines": {
"node": ">=8"
}
},
"node_modules/fs-extra": {
"version": "10.0.0",
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz",
"integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==",
"dependencies": {
"graceful-fs": "^4.2.0",
"jsonfile": "^6.0.1",
"universalify": "^2.0.0"
},
"engines": {
"node": ">=12"
}
},
"node_modules/fs.realpath": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
"integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
},
"node_modules/fstream": {
"version": "1.0.12",
"resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz",
"integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==",
"dependencies": {
"graceful-fs": "^4.1.2",
"inherits": "~2.0.0",
"mkdirp": ">=0.5 0",
"rimraf": "2"
},
"engines": {
"node": ">=0.6"
}
},
"node_modules/get-caller-file": {
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
"integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
"engines": {
"node": "6.* || 8.* || >= 10.*"
}
},
"node_modules/glob": {
"version": "7.1.6",
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
"integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
"dependencies": {
"fs.realpath": "^1.0.0",
"inflight": "^1.0.4",
"inherits": "2",
"minimatch": "^3.0.4",
"once": "^1.3.0",
"path-is-absolute": "^1.0.0"
},
"engines": {
"node": "*"
},
"funding": {
"url": "https://github.com/sponsors/isaacs"
}
},
"node_modules/graceful-fs": {
"version": "4.2.8",
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz",
"integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg=="
},
"node_modules/inflight": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
"integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
"dependencies": {
"once": "^1.3.0",
"wrappy": "1"
}
},
"node_modules/inherits": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
},
"node_modules/is-fullwidth-code-point": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
"integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
"engines": {
"node": ">=8"
}
},
"node_modules/isarray": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
"integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
},
"node_modules/js-yaml": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.0.0.tgz",
"integrity": "sha512-pqon0s+4ScYUvX30wxQi3PogGFAlUyH0awepWvwkj4jD4v+ova3RiYw8bmA6x2rDrEaj8i/oWKoRxpVNW+Re8Q==",
"dependencies": {
"argparse": "^2.0.1"
},
"bin": {
"js-yaml": "bin/js-yaml.js"
}
},
"node_modules/jsonfile": {
"version": "6.1.0",
"resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
"integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
"dependencies": {
"universalify": "^2.0.0"
},
"optionalDependencies": {
"graceful-fs": "^4.1.6"
}
},
"node_modules/listenercount": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/listenercount/-/listenercount-1.0.1.tgz",
"integrity": "sha1-hMinKrWcRyUyFIDJdeZQg0LnCTc="
},
"node_modules/locate-path": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
"integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
"dependencies": {
"p-locate": "^4.1.0"
},
"engines": {
"node": ">=8"
}
},
"node_modules/lru-cache": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
"integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
"dependencies": {
"yallist": "^4.0.0"
},
"engines": {
"node": ">=10"
}
},
"node_modules/minimatch": {
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
"integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
"dependencies": {
"brace-expansion": "^1.1.7"
},
"engines": {
"node": "*"
}
},
"node_modules/minimist": {
"version": "1.2.5",
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
"integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw=="
},
"node_modules/mkdirp": {
"version": "0.5.5",
"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz",
"integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==",
"dependencies": {
"minimist": "^1.2.5"
},
"bin": {
"mkdirp": "bin/cmd.js"
}
},
"node_modules/ncp": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ncp/-/ncp-2.0.0.tgz",
"integrity": "sha1-GVoh1sRuNh0vsSgbo4uR6d9727M=",
"bin": {
"ncp": "bin/ncp"
}
},
"node_modules/once": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
"integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
"dependencies": {
"wrappy": "1"
}
},
"node_modules/p-limit": {
"version": "2.2.2",
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz",
"integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==",
"dependencies": {
"p-try": "^2.0.0"
},
"engines": {
"node": ">=6"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/p-locate": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
"integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
"dependencies": {
"p-limit": "^2.2.0"
},
"engines": {
"node": ">=8"
}
},
"node_modules/p-try": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
"integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
"engines": {
"node": ">=6"
}
},
"node_modules/path-exists": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
"integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
"engines": {
"node": ">=8"
}
},
"node_modules/path-is-absolute": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
"integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/prettier": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/prettier/-/prettier-2.2.0.tgz",
"integrity": "sha512-yYerpkvseM4iKD/BXLYUkQV5aKt4tQPqaGW6EsZjzyu0r7sVZZNPJW4Y8MyKmicp6t42XUPcBVA+H6sB3gqndw==",
"dev": true,
"bin": {
"prettier": "bin-prettier.js"
},
"engines": {
"node": ">=10.13.0"
}
},
"node_modules/prettier-plugin-toml": {
"version": "0.3.1",
"resolved": "https://registry.npmjs.org/prettier-plugin-toml/-/prettier-plugin-toml-0.3.1.tgz",
"integrity": "sha512-j47DEO/dN/acU1nSL/B7q4A4Z2SYJhpWPCLPkcmfAXIQC6A5GD6Ao/bi9HRHZ8ueIDOauqjuAQbnvRxLXMjazA==",
"dev": true,
"dependencies": {
"@toml-tools/parser": "^0.3.1",
"prettier": "^1.16.0"
}
},
"node_modules/prettier-plugin-toml/node_modules/prettier": {
"version": "1.19.1",
"resolved": "https://registry.npmjs.org/prettier/-/prettier-1.19.1.tgz",
"integrity": "sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==",
"dev": true,
"bin": {
"prettier": "bin-prettier.js"
},
"engines": {
"node": ">=4"
}
},
"node_modules/process-nextick-args": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
"integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="
},
"node_modules/readable-stream": {
"version": "2.3.7",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
"integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
"dependencies": {
"core-util-is": "~1.0.0",
"inherits": "~2.0.3",
"isarray": "~1.0.0",
"process-nextick-args": "~2.0.0",
"safe-buffer": "~5.1.1",
"string_decoder": "~1.1.1",
"util-deprecate": "~1.0.1"
}
},
"node_modules/regexp-to-ast": {
"version": "0.3.5",
"resolved": "https://registry.npmjs.org/regexp-to-ast/-/regexp-to-ast-0.3.5.tgz",
"integrity": "sha512-1CJygtdvsfNFwiyjaMLBWtg2tfEqx/jSZ8S6TV+GlNL8kiH8rb4cm5Pb7A/C2BpyM/fA8ZJEudlCwi/jvAY+Ow==",
"dev": true
},
"node_modules/require-directory": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
"integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/require-main-filename": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz",
"integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg=="
},
"node_modules/rimraf": {
"version": "2.7.1",
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
"integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
"dependencies": {
"glob": "^7.1.3"
},
"bin": {
"rimraf": "bin.js"
}
},
"node_modules/safe-buffer": {
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
"integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
},
"node_modules/semver": {
"version": "7.3.4",
"resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz",
"integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==",
"dependencies": {
"lru-cache": "^6.0.0"
},
"bin": {
"semver": "bin/semver.js"
},
"engines": {
"node": ">=10"
}
},
"node_modules/set-blocking": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
"integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc="
},
"node_modules/setimmediate": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz",
"integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU="
},
"node_modules/string_decoder": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
"integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
"dependencies": {
"safe-buffer": "~5.1.0"
}
},
"node_modules/string-width": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz",
"integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==",
"dependencies": {
"emoji-regex": "^8.0.0",
"is-fullwidth-code-point": "^3.0.0",
"strip-ansi": "^6.0.0"
},
"engines": {
"node": ">=8"
}
},
"node_modules/strip-ansi": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
"integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
"dependencies": {
"ansi-regex": "^5.0.0"
},
"engines": {
"node": ">=8"
}
},
"node_modules/traverse": {
"version": "0.3.9",
"resolved": "https://registry.npmjs.org/traverse/-/traverse-0.3.9.tgz",
"integrity": "sha1-cXuPIgzAu3tE5AUUwisui7xw2Lk=",
"engines": {
"node": "*"
}
},
"node_modules/universalify": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz",
"integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==",
"engines": {
"node": ">= 10.0.0"
}
},
"node_modules/unzipper": {
"version": "0.10.11",
"resolved": "https://registry.npmjs.org/unzipper/-/unzipper-0.10.11.tgz",
"integrity": "sha512-+BrAq2oFqWod5IESRjL3S8baohbevGcVA+teAIOYWM3pDVdseogqbzhhvvmiyQrUNKFUnDMtELW3X8ykbyDCJw==",
"dependencies": {
"big-integer": "^1.6.17",
"binary": "~0.3.0",
"bluebird": "~3.4.1",
"buffer-indexof-polyfill": "~1.0.0",
"duplexer2": "~0.1.4",
"fstream": "^1.0.12",
"graceful-fs": "^4.2.2",
"listenercount": "~1.0.1",
"readable-stream": "~2.3.6",
"setimmediate": "~1.0.4"
}
},
"node_modules/util-deprecate": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
"integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
},
"node_modules/which-module": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
"integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho="
},
"node_modules/wrap-ansi": {
"version": "6.2.0",
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
"integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==",
"dependencies": {
"ansi-styles": "^4.0.0",
"string-width": "^4.1.0",
"strip-ansi": "^6.0.0"
},
"engines": {
"node": ">=8"
}
},
"node_modules/wrappy": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
"integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
},
"node_modules/y18n": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz",
"integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w=="
},
"node_modules/yallist": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
"integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
},
"node_modules/yargs": {
"version": "15.3.0",
"resolved": "https://registry.npmjs.org/yargs/-/yargs-15.3.0.tgz",
"integrity": "sha512-g/QCnmjgOl1YJjGsnUg2SatC7NUYEiLXJqxNOQU9qSpjzGtGXda9b+OKccr1kLTy8BN9yqEyqfq5lxlwdc13TA==",
"dependencies": {
"cliui": "^6.0.0",
"decamelize": "^1.2.0",
"find-up": "^4.1.0",
"get-caller-file": "^2.0.1",
"require-directory": "^2.1.1",
"require-main-filename": "^2.0.0",
"set-blocking": "^2.0.0",
"string-width": "^4.2.0",
"which-module": "^2.0.0",
"y18n": "^4.0.0",
"yargs-parser": "^18.1.0"
},
"engines": {
"node": ">=8"
}
},
"node_modules/yargs-parser": {
"version": "18.1.3",
"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz",
"integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==",
"dependencies": {
"camelcase": "^5.0.0",
"decamelize": "^1.2.0"
},
"engines": {
"node": ">=6"
}
}
},
"dependencies": {
"@toml-tools/lexer": {
"version": "0.3.1",
@ -438,6 +1142,14 @@
"resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz",
"integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU="
},
"string_decoder": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
"integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
"requires": {
"safe-buffer": "~5.1.0"
}
},
"string-width": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz",
@ -448,14 +1160,6 @@
"strip-ansi": "^6.0.0"
}
},
"string_decoder": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
"integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
"requires": {
"safe-buffer": "~5.1.0"
}
},
"strip-ansi": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",

View File

@ -1,3 +0,0 @@
{
"lockfileVersion": 1
}

View File

@ -1,22 +0,0 @@
[package]
name = "ensogl-gui-components"
version = "0.1.0"
authors = ["Enso Team <contact@enso.org>"]
edition = "2018"
[lib]
crate-type = ["rlib", "cdylib"]
[dependencies]
enso-frp = { path = "../../../lib/frp" }
enso-logger = { path = "../../../../../../lib/rust/logger"}
enso-prelude = { path = "../../../../../../lib/rust/prelude"}
enso-shapely = { path = "../../../../../../lib/rust/shapely/impl"}
enso-types = { path = "../../../lib/types" }
ensogl-core = { path = "../core" }
ensogl-text = { path = "../text" }
ensogl-theme = { path = "../theme" }
[dev-dependencies]
wasm-bindgen-test = { version = "0.3.8" }
float_eq = "0.5"

View File

@ -1,23 +0,0 @@
//! This crate is a part of the EnsoGL library, containing the web-based functionalities.
#![deny(unconditional_recursion)]
#![warn(missing_copy_implementations)]
#![warn(missing_debug_implementations)]
#![warn(missing_docs)]
#![warn(trivial_casts)]
#![warn(trivial_numeric_casts)]
#![warn(unsafe_code)]
#![warn(unused_import_braces)]
#![warn(unused_qualifications)]
pub mod drop;
/// Commonly used utilities.
pub mod prelude {
pub use enso_logger::DefaultWarningLogger as Logger;
pub use enso_logger::*;
pub use enso_prelude::*;
}
pub use ensogl_system_web::*;

View File

@ -10,26 +10,26 @@ crate-type = ["cdylib", "rlib"]
[dependencies]
analytics = { version = "0.1.0", path = "lib/analytics" }
double-representation = { version = "0.1.0", path = "controller/double-representation" }
enso-args = { path = "lib/args" }
enso-callback = { path = "../lib/callback" }
enso-config = { path = "lib/config" }
enso-callback = { path = "../../../../lib/rust/callback" }
enso-data = { path = "../../../../lib/rust/data"}
enso-frp = { path = "../lib/frp" }
enso-frp = { path = "../../../../lib/rust/frp" }
enso-logger = { path = "../../../../lib/rust/logger"}
enso-prelude = { path = "../../../../lib/rust/prelude"}
enso-shapely = { path = "../../../../lib/rust/shapely/impl"}
ensogl = { path = "../ensogl" }
ensogl-examples = { path = "../ensogl/example" }
ensogl-gui-components = { path = "../ensogl/lib/components" }
ensogl-system-web = { path = "../lib/system/web" }
ensogl-text = { path = "../ensogl/lib/text" }
ensogl-text-msdf-sys = { path = "../ensogl/lib/text/msdf-sys" }
ensogl-theme = { path = "../ensogl/lib/theme" }
ensogl-web = { path = "../ensogl/lib/web" }
fuzzly = { path = "../lib/fuzzly" }
enso-web = { path = "../../../../lib/rust/web" }
ensogl = { path = "../../../../lib/rust/ensogl" }
ensogl-examples = { path = "../../../../lib/rust/ensogl/example" }
ensogl-gui-component = { path = "../../../../lib/rust/ensogl/component/gui" }
ensogl-text = { path = "../../../../lib/rust/ensogl/component/text" }
ensogl-text-msdf-sys = { path = "../../../../lib/rust/ensogl/component/text/msdf-sys" }
ensogl-hardcoded-theme = { path = "../../../../lib/rust/ensogl/app/theme/hardcoded" }
ensogl-drop-manager = { path = "../../../../lib/rust/ensogl/component/drop-manager" }
fuzzly = { path = "../../../../lib/rust/fuzzly" }
ast = { path = "lib/ast/impl" }
ide-view = { path = "view" }
engine-protocol = { path = "controller/engine-protocol" }
json-rpc = { path = "lib/json-rpc" }
json-rpc = { path = "../../../../lib/rust/json-rpc" }
parser = { path = "lib/parser" }
span-tree = { path = "lib/span-tree" }
bimap = { version = "0.4.0" }

View File

@ -12,7 +12,7 @@ enso-data = { path = "../../../../../../lib/rust/data"}
enso-logger = { path = "../../../../../../lib/rust/logger"}
enso-prelude = { path = "../../../../../../lib/rust/prelude"}
enso-shapely = { path = "../../../../../../lib/rust/shapely/impl"}
json-rpc = { path = "../../lib/json-rpc" }
json-rpc = { path = "../../../../../../lib/rust/json-rpc" }
chrono = { version = "0.4", features = ["serde"] }
failure = { version = "0.1.8" }
flatbuffers = { version = "0.5" }
@ -26,10 +26,10 @@ uuid = { version = "0.8", features = ["serde", "v4", "wasm-bindgen"] }
[dev-dependencies]
wasm-bindgen-test = { version = "0.3.8" }
ensogl-system-web = { path = "../../../lib/system/web" }
enso-web = { path = "../../../../../../lib/rust/web" }
[build-dependencies]
ensogl-build-utilities = { path = "../../../build" }
enso-build-utilities = { path = "../../../../../../lib/rust/build-utils" }
bytes = { version = "0.5.4" }
flatc-rust = { version = "0.1.2" }
futures = { version = "0.3.1" }

View File

@ -1,11 +1,13 @@
[package]
name = "enso-args"
name = "enso-config"
version = "0.1.0"
authors = ["Enso Team <contact@enso.org>"]
edition = "2018"
[dependencies]
ensogl = { path = "../../../ensogl" }
enso-config = { path = "../../../lib/config" }
ensogl = { path = "../../../../../../lib/rust/ensogl" }
enso-prelude = { path = "../../../../../../lib/rust/prelude"}
enso-logger = { path = "../../../../../../lib/rust/logger" }
[build-dependencies]
config-reader = { version = "0.1.0", path = "../../../../../../lib/rust/config-reader" }

View File

@ -0,0 +1,8 @@
const CONFIG_PATH: &str = "../../../../config.yaml";
fn main() {
println!("cargo:rerun-if-changed={}", CONFIG_PATH);
println!("cargo:rerun-if-changed=build.rs");
config_reader::generate_config_module_from_yaml(CONFIG_PATH);
}

View File

@ -1,6 +1,5 @@
//! Startup arguments definition.
#![warn(missing_docs)]
#![warn(trivial_casts)]
#![warn(trivial_numeric_casts)]
#![warn(unused_import_braces)]
@ -16,12 +15,22 @@ use ensogl::system::web;
// ==============
// === Config ===
// ==============
include!(concat!(env!("OUT_DIR"), "/config.rs"));
pub use generated::*;
// ============
// === Args ===
// ============
ensogl::read_args! {
[enso_config::window_app_scope_name,enso_config::window_app_scope_config_name] {
[window_app_scope_name, window_app_scope_config_name] {
entry : String,
project : String,
project_manager : String,

View File

@ -26,7 +26,7 @@ wasm-bindgen = { version = "=0.2.58" }
wasm-bindgen-test = { version = "0.3.8" }
[build-dependencies]
ensogl-build-utilities = { path = "../../../build" }
enso-build-utilities = { path = "../../../../../../lib/rust/build-utils" }
bytes = { version = "0.5.4" }
futures = { version = "0.3.1" }
reqwest = { version = "0.10.1" }

View File

@ -4,9 +4,9 @@
#![feature(option_result_contains)]
use ensogl_build_utilities::absolute_path;
use ensogl_build_utilities::targeting_wasm;
use ensogl_build_utilities::PathRef;
use enso_build_utilities::absolute_path;
use enso_build_utilities::targeting_wasm;
use enso_build_utilities::PathRef;
use std::fs;
use std::fs::create_dir_all;

View File

@ -10,7 +10,7 @@ crate-type = ["cdylib", "rlib"]
[dependencies]
ast = { path = "../../ast/impl" }
span-tree = { path = "../../span-tree" }
ensogl-system-web = { path = "../../../../lib/system/web" }
enso-web = { path = "../../../../../../../lib/rust/web" }
enso-prelude = { path = "../../../../../../../lib/rust/prelude"}
enso-logger = { path = "../../../../../../../lib/rust/logger"}
wasm-bindgen = { version = "=0.2.58", features = [

View File

@ -1,7 +1,7 @@
use enso_prelude::*;
use wasm_bindgen::prelude::*;
use ensogl_system_web as web;
use enso_web as web;
use ast::crumbs::PatternMatchCrumb::*;
use ast::crumbs::*;

View File

@ -4,8 +4,8 @@ use crate::prelude::*;
use crate::constants;
use engine_protocol::project_manager::ProjectName;
use enso_args::Args;
use enso_args::ARGS;
use enso_config::Args;
use enso_config::ARGS;

View File

@ -9,10 +9,10 @@ use engine_protocol::language_server;
use engine_protocol::language_server::ContentRoot;
use engine_protocol::language_server::FileSystemObject;
use enso_frp as frp;
use ensogl_gui_components::file_browser::model::Entry;
use ensogl_gui_components::file_browser::model::EntryType;
use ensogl_gui_components::file_browser::model::FolderContent;
use ensogl_gui_components::file_browser::model::FolderType;
use ensogl_gui_component::file_browser::model::Entry;
use ensogl_gui_component::file_browser::model::EntryType;
use ensogl_gui_component::file_browser::model::FolderContent;
use ensogl_gui_component::file_browser::model::FolderType;
use json_rpc::error::RpcError;
use std::iter::once;

View File

@ -34,9 +34,8 @@ use engine_protocol::language_server::ExpressionUpdatePayload;
use enso_data::text::TextChange;
use enso_frp as frp;
use ensogl::display::traits::*;
use ensogl_gui_components::file_browser::model::AnyFolderContent;
use ensogl_gui_components::list_view;
use ensogl_web::drop;
use ensogl_gui_component::file_browser::model::AnyFolderContent;
use ensogl_gui_component::list_view;
use futures::future::LocalBoxFuture;
use ide_view::graph_editor;
use ide_view::graph_editor::component::node;
@ -2051,7 +2050,7 @@ impl ide_view::searcher::DocumentationProvider for SuggestionsProviderForView {
}
}
impl upload::DataProvider for drop::File {
impl upload::DataProvider for ensogl_drop_manager::File {
fn next_chunk(&mut self) -> LocalBoxFuture<FallibleResult<Option<Vec<u8>>>> {
self.read_chunk().map(|f| f.map_err(|e| e.into())).boxed_local()
}

View File

@ -2,8 +2,8 @@
use crate::prelude::*;
use ensogl_system_web::event::listener::Slot;
use ensogl_system_web::js_to_string;
use enso_web::event::listener::Slot;
use enso_web::js_to_string;
use failure::Error;
use futures::channel::mpsc;
use json_rpc::Transport;
@ -108,7 +108,7 @@ impl State {
/// Description of events that can be emitted by JS WebSocket.
pub mod event {
use super::*;
use ensogl_system_web::event::Type;
use enso_web::event::Type;
/// Represents WebSocket.open event.
#[derive(Clone, Copy, Debug)]

View File

@ -9,18 +9,17 @@ crate-type = ["cdylib", "rlib"]
[dependencies]
ast = { path = "../lib/ast/impl" }
enso-args = { path = "../lib/args" }
enso-frp = { path = "../../lib/frp" }
enso-config = { path = "../lib/config" }
enso-frp = { path = "../../../../../lib/rust/frp" }
enso-logger = { path = "../../../../../lib/rust/logger"}
enso-prelude = { path = "../../../../../lib/rust/prelude"}
enso-shapely = { path = "../../../../../lib/rust/shapely/impl"}
engine-protocol = { path = "../controller/engine-protocol" }
ensogl = { path = "../../ensogl" }
enso-config = { path = "../../lib/config" }
ensogl-gui-components = { path = "../../ensogl/lib/components" }
ensogl-text = { path = "../../ensogl/lib/text" }
ensogl-text-msdf-sys = { path = "../../ensogl/lib/text/msdf-sys" }
ensogl-theme = { path = "../../ensogl/lib/theme" }
ensogl = { path = "../../../../../lib/rust/ensogl" }
ensogl-gui-component = { path = "../../../../../lib/rust/ensogl/component/gui" }
ensogl-text = { path = "../../../../../lib/rust/ensogl/component/text" }
ensogl-text-msdf-sys = { path = "../../../../../lib/rust/ensogl/component/text/msdf-sys" }
ensogl-hardcoded-theme = { path = "../../../../../lib/rust/ensogl/app/theme/hardcoded" }
ide-view-graph-editor = { path = "graph-editor" }
parser = { path = "../lib/parser" }
span-tree = { path = "../lib/span-tree" }

View File

@ -11,18 +11,18 @@ crate-type = ["cdylib", "rlib"]
analytics = { version = "0.1.0", path = "../../lib/analytics" }
ast = { version = "0.1.0", path = "../../lib/ast/impl" }
bimap = { version = "0.4.0" }
enso-args = { version = "0.1.0", path = "../../lib/args" }
enso-frp = { version = "0.1.0", path = "../../../lib/frp" }
enso-config = { version = "0.1.0", path = "../../lib/config" }
enso-frp = { version = "0.1.0", path = "../../../../../../lib/rust/frp" }
enso-logger = { path = "../../../../../../lib/rust/logger"}
enso-prelude = { path = "../../../../../../lib/rust/prelude"}
engine-protocol = { version = "0.1.0", path = "../../controller/engine-protocol" }
enso-shapely = { path = "../../../../../../lib/rust/shapely/impl"}
ensogl = { version = "0.1.0", path = "../../../ensogl" }
ensogl-gui-components = { version = "0.1.0", path = "../../../ensogl/lib/components" }
ensogl-text = { version = "0.1.0", path = "../../../ensogl/lib/text" }
ensogl-text-msdf-sys = { version = "0.1.0", path = "../../../ensogl/lib/text/msdf-sys" }
ensogl-theme = { version = "0.1.0", path = "../../../ensogl/lib/theme" }
ensogl-web = { version = "0.1.0", path = "../../../ensogl/lib/web" }
ensogl = { version = "0.1.0", path = "../../../../../../lib/rust/ensogl" }
ensogl-gui-component = { version = "0.1.0", path = "../../../../../../lib/rust/ensogl/component/gui" }
ensogl-text = { version = "0.1.0", path = "../../../../../../lib/rust/ensogl/component/text" }
ensogl-text-msdf-sys = { version = "0.1.0", path = "../../../../../../lib/rust/ensogl/component/text/msdf-sys" }
ensogl-hardcoded-theme = { version = "0.1.0", path = "../../../../../../lib/rust/ensogl/app/theme/hardcoded" }
ensogl-drop-manager = { version = "0.1.0", path = "../../../../../../lib/rust/ensogl/component/drop-manager" }
failure = { version = "0.1.8" }
ordered-float = {version = "1.0"}
span-tree = { version = "0.1.0", path = "../../lib/span-tree" }

View File

@ -16,7 +16,7 @@ use ensogl::display::DomSymbol;
use ensogl::system::web;
use ensogl::system::web::AttributeSetter;
use ensogl::system::web::StyleSetter;
use ensogl_theme;
use ensogl_hardcoded_theme;
use serde::Deserialize;
use serde::Serialize;
@ -224,8 +224,9 @@ impl Model {
fn display_kind(&self, new: Kind) {
let color_style = match new {
Kind::Panic => ensogl_theme::graph_editor::visualization::error::panic::text,
Kind::Dataflow => ensogl_theme::graph_editor::visualization::error::dataflow::text,
Kind::Panic => ensogl_hardcoded_theme::graph_editor::visualization::error::panic::text,
Kind::Dataflow =>
ensogl_hardcoded_theme::graph_editor::visualization::error::dataflow::text,
};
let default = "";
let opt_message = self.messages.get_cloned_ref(&new);

View File

@ -13,7 +13,7 @@ use ensogl::display::DomSymbol;
use ensogl::system::web;
use ensogl::system::web::AttributeSetter;
use ensogl::system::web::StyleSetter;
use ensogl_theme;
use ensogl_hardcoded_theme;
@ -92,7 +92,8 @@ impl RawTextModel {
// FIXME : StyleWatch is unsuitable here, as it was designed as an internal tool for shape
// system (#795)
let styles = StyleWatch::new(&scene.style_sheet);
let text_color = styles.get_color(ensogl_theme::graph_editor::visualization::text);
let text_color =
styles.get_color(ensogl_hardcoded_theme::graph_editor::visualization::text);
let _red = text_color.red * 255.0;
let _green = text_color.green * 255.0;
let _blue = text_color.blue * 255.0;

View File

@ -71,7 +71,7 @@ mod background {
ensogl::define_shape_system! {
(style:Style) {
let theme = ensogl_theme::graph_editor::breadcrumbs::background;
let theme = ensogl_hardcoded_theme::graph_editor::breadcrumbs::background;
let theme = style::Path::from(&theme);
let width = Var::<Pixels>::from("input_size.x");
let height = Var::<Pixels>::from("input_size.y");

View File

@ -17,8 +17,8 @@ use ensogl::display;
use ensogl::display::object::ObjectOps;
use ensogl::display::shape::*;
use ensogl::DEPRECATED_Animation;
use ensogl_hardcoded_theme as theme;
use ensogl_text as text;
use ensogl_theme as theme;
use nalgebra::Vector2;
use std::f32::consts::PI;

View File

@ -17,9 +17,9 @@ use ensogl::display::object::ObjectOps;
use ensogl::display::shape::*;
use ensogl::gui::cursor;
use ensogl::DEPRECATED_Animation;
use ensogl_hardcoded_theme as theme;
use ensogl_text as text;
use ensogl_text::style::Size as TextSize;
use ensogl_theme as theme;
use logger::DefaultWarningLogger as Logger;

View File

@ -13,7 +13,7 @@ use ensogl::display::scene::Scene;
use ensogl::display::shape::*;
use ensogl::display::traits::*;
use ensogl::gui::component::ShapeViewEvents;
use ensogl_theme as theme;
use ensogl_hardcoded_theme as theme;
use nalgebra::Rotation2;

View File

@ -35,10 +35,10 @@ use ensogl::display;
use ensogl::display::shape::*;
use ensogl::display::traits::*;
use ensogl::Animation;
use ensogl_gui_components::shadow;
use ensogl_gui_component::shadow;
use ensogl_hardcoded_theme as theme;
use ensogl_hardcoded_theme;
use ensogl_text::Text;
use ensogl_theme as theme;
use ensogl_theme;
use std::f32::EPSILON;
use super::edge;
@ -130,9 +130,9 @@ pub mod backdrop {
// === Selection ===
let sel_color = style.get_color(ensogl_theme::graph_editor::node::selection);
let sel_size = style.get_number(ensogl_theme::graph_editor::node::selection::size);
let sel_offset = style.get_number(ensogl_theme::graph_editor::node::selection::offset);
let sel_color = style.get_color(ensogl_hardcoded_theme::graph_editor::node::selection);
let sel_size = style.get_number(ensogl_hardcoded_theme::graph_editor::node::selection::size);
let sel_offset = style.get_number(ensogl_hardcoded_theme::graph_editor::node::selection::offset);
let sel_width = &width - 2.px() + &sel_offset.px() * 2.0 * &selection;
let sel_height = &height - 2.px() + &sel_offset.px() * 2.0 * &selection;
@ -198,7 +198,7 @@ pub mod error_shape {
ensogl::define_shape_system! {
(style:Style,color_rgba:Vector4<f32>) {
use ensogl_theme::graph_editor::node as node_theme;
use ensogl_hardcoded_theme::graph_editor::node as node_theme;
let width = Var::<Pixels>::from("input_size.x");
let height = Var::<Pixels>::from("input_size.y");
@ -818,7 +818,7 @@ impl Node {
// === Color Handling ===
let bgg = style_frp.get_color(ensogl_theme::graph_editor::node::background);
let bgg = style_frp.get_color(ensogl_hardcoded_theme::graph_editor::node::background);
let profiling_theme = profiling::Theme::from_styles(style_frp,network);
profiling_color <- all_with5
@ -843,7 +843,7 @@ impl Node {
// FIXME [WD]: Uncomment when implementing disabled icon.
// bg_color <- frp.set_disabled.map(f!([model,style](disabled) {
// model.input.frp.set_disabled(*disabled);
// let bg_color_path = ensogl_theme::graph_editor::node::background;
// let bg_color_path = ensogl_hardcoded_theme::graph_editor::node::background;
// if *disabled { style.get_color_dim(bg_color_path) }
// else { style.get_color(bg_color_path) }
// }));
@ -887,7 +887,7 @@ impl Node {
}
fn error_color(error: &Option<Error>, style: &StyleWatch) -> color::Lcha {
use ensogl_theme::graph_editor::node::error as error_theme;
use ensogl_hardcoded_theme::graph_editor::node::error as error_theme;
if let Some(error) = error {
let path = match *error.kind {

View File

@ -8,10 +8,10 @@ use enso_frp as frp;
use ensogl::application::Application;
use ensogl::display;
use ensogl::display::shape::*;
use ensogl_gui_components::toggle_button;
use ensogl_gui_components::toggle_button::ColorableShape;
use ensogl_gui_components::toggle_button::ToggleButton;
use ensogl_theme as theme;
use ensogl_gui_component::toggle_button;
use ensogl_gui_component::toggle_button::ColorableShape;
use ensogl_gui_component::toggle_button::ToggleButton;
use ensogl_hardcoded_theme as theme;

View File

@ -3,7 +3,7 @@ use crate::prelude::*;
use ensogl::data::color;
use ensogl::display::shape::*;
use ensogl_gui_components::toggle_button::ColorableShape;
use ensogl_gui_component::toggle_button::ColorableShape;
/// Icon for the visibility button. Looks like an open eye.

View File

@ -10,7 +10,7 @@ use ensogl::display::DomSymbol;
use ensogl::display::Scene;
use ensogl::system::web;
use ensogl::system::web::StyleSetter;
use ensogl_gui_components::shadow;
use ensogl_gui_component::shadow;
use serde::Deserialize;
use serde::Serialize;
@ -106,7 +106,8 @@ impl Container {
// FIXME : StyleWatch is unsuitable here, as it was designed as an internal tool for shape
// system (#795)
let styles = StyleWatch::new(&scene.style_sheet);
let bg_color = styles.get_color(ensogl_theme::graph_editor::visualization::background);
let bg_color =
styles.get_color(ensogl_hardcoded_theme::graph_editor::visualization::background);
let bg_red = bg_color.red * 255.0;
let bg_green = bg_color.green * 255.0;
let bg_blue = bg_color.blue * 255.0;

View File

@ -13,9 +13,9 @@ use ensogl::display::shape::*;
use ensogl::display::traits::*;
use ensogl::gui::cursor;
use ensogl::Animation;
use ensogl_hardcoded_theme as theme;
use ensogl_text as text;
use ensogl_text::buffer::data::unit::traits::*;
use ensogl_theme as theme;
use text::Text;
use crate::component::type_coloring;

View File

@ -11,8 +11,8 @@ use ensogl::data::color;
use ensogl::display;
use ensogl::display::shape::StyleWatch;
use ensogl::display::shape::StyleWatchFrp;
use ensogl_hardcoded_theme as theme;
use ensogl_text as text;
use ensogl_theme as theme;
use span_tree;
use crate::component::node;
@ -21,7 +21,7 @@ use crate::component::node::output::port;
use crate::tooltip;
use crate::view;
use crate::Type;
use enso_args::ARGS;
use enso_config::ARGS;

View File

@ -478,7 +478,8 @@ impl Model {
self.shape = Some(shape.clone());
let type_label = app.new_view::<text::Area>();
let offset_y = styles.get_number(ensogl_theme::graph_editor::node::type_label::offset_y);
let offset_y =
styles.get_number(ensogl_hardcoded_theme::graph_editor::node::type_label::offset_y);
type_label.set_position_y(offset_y);
self.type_label = Some(type_label.clone());
@ -556,7 +557,7 @@ impl Model {
normal_color <- frp.tp.map(f!([styles](t)
type_coloring::compute_for_selection(t.as_ref(),&styles)));
init_color <- source::<()>();
let profiling_color = styles_frp.get_color(ensogl_theme::code::types::any::selection);
let profiling_color = styles_frp.get_color(ensogl_hardcoded_theme::code::types::any::selection);
profiling_color <- all_with(&profiling_color,&init_color,|c,_|color::Lcha::from(c));
in_profiling_mode <- frp.set_view_mode.map(|mode| mode.is_profiling());
color_tgt <- in_profiling_mode.switch(&normal_color,&profiling_color);

View File

@ -99,9 +99,10 @@ pub struct Theme {
impl Theme {
/// Returns a new `Sampler` exposing the profiling theme, as it is defined in `styles` at path
/// `ensogl_theme::graph_editor::node::profiling`. The sampler is registered under `network`.
/// `ensogl_hardcoded_theme::graph_editor::node::profiling`. The sampler is registered under
/// `network`.
pub fn from_styles(styles: &StyleWatchFrp, network: &frp::Network) -> frp::Sampler<Theme> {
use ensogl_theme::graph_editor::node::profiling as theme_path;
use ensogl_hardcoded_theme::graph_editor::node::profiling as theme_path;
let lightness = styles.get_number_or(theme_path::lightness, 0.5);
let chroma = styles.get_number_or(theme_path::chroma, 1.0);
let min_time_hue = styles.get_number_or(theme_path::min_time_hue, 0.4);

View File

@ -28,9 +28,11 @@ impl Status {
fn get_highlight_color_from_style(self, style: &StyleWatch) -> color::Lcha {
match self {
Status::Unchanged =>
style.get_color(ensogl_theme::graph_editor::node::vcs::unchanged).into(),
Status::Added => style.get_color(ensogl_theme::graph_editor::node::vcs::added).into(),
Status::Edited => style.get_color(ensogl_theme::graph_editor::node::vcs::edited).into(),
style.get_color(ensogl_hardcoded_theme::graph_editor::node::vcs::unchanged).into(),
Status::Added =>
style.get_color(ensogl_hardcoded_theme::graph_editor::node::vcs::added).into(),
Status::Edited =>
style.get_color(ensogl_hardcoded_theme::graph_editor::node::vcs::edited).into(),
}
}
}

View File

@ -9,8 +9,8 @@ use ensogl::application::Application;
use ensogl::data::color;
use ensogl::display;
use ensogl::display::shape::*;
use ensogl_gui_components::toggle_button;
use ensogl_gui_components::toggle_button::ToggleButton;
use ensogl_gui_component::toggle_button;
use ensogl_gui_component::toggle_button::ToggleButton;
@ -26,7 +26,7 @@ use ensogl_gui_components::toggle_button::ToggleButton;
/// pointing to the lower right.
mod icon {
use super::*;
use ensogl_gui_components::toggle_button::ColorableShape;
use ensogl_gui_component::toggle_button::ColorableShape;
ensogl::define_shape_system! {
(color_rgba:Vector4<f32>) {
@ -174,7 +174,7 @@ impl Button {
// === Color ===
use ensogl_theme::graph_editor::profiling_button as button_theme;
use ensogl_hardcoded_theme::graph_editor::profiling_button as button_theme;
let non_toggled_color = styles.get_color(button_theme::non_toggled);
let toggled_color = styles.get_color(button_theme::toggled);
let hovered_color = styles.get_color(button_theme::hovered);

View File

@ -10,7 +10,7 @@ use ensogl::prelude::*;
use ensogl::animation::hysteretic::HystereticAnimation;
use ensogl::display::shape::StyleWatch;
use ensogl_gui_components::label::Label;
use ensogl_gui_component::label::Label;
@ -189,10 +189,14 @@ impl Tooltip {
// FIXME : StyleWatch is unsuitable here, as it was designed as an internal tool for shape
// system (#795)
let styles = StyleWatch::new(&app.display.scene().style_sheet);
let hide_delay_duration_ms =
styles.get_number_or(ensogl_theme::application::tooltip::hide_delay_duration_ms, 0.0);
let show_delay_duration_ms =
styles.get_number_or(ensogl_theme::application::tooltip::show_delay_duration_ms, 0.0);
let hide_delay_duration_ms = styles.get_number_or(
ensogl_hardcoded_theme::application::tooltip::hide_delay_duration_ms,
0.0,
);
let show_delay_duration_ms = styles.get_number_or(
ensogl_hardcoded_theme::application::tooltip::show_delay_duration_ms,
0.0,
);
let hysteretic_transition =
HystereticAnimation::new(network, hide_delay_duration_ms, show_delay_duration_ms);

View File

@ -8,7 +8,7 @@ use crate::Type;
use ensogl::data::color;
use ensogl::display::shape::StyleWatch;
use ensogl::display::style::data::DataMatch;
use ensogl_theme as theme;
use ensogl_hardcoded_theme as theme;
use std::collections::hash_map::DefaultHasher;
use std::hash::Hasher;

View File

@ -32,7 +32,7 @@ use ensogl::Animation;
use ensogl::system::web;
use ensogl::system::web::StyleSetter;
use ensogl_gui_components::shadow;
use ensogl_gui_component::shadow;
@ -77,7 +77,7 @@ pub mod overlay {
// This should be fixed in https://github.com/enso-org/ide/issues/526
pub mod background {
use super::*;
use ensogl_theme::graph_editor::visualization as theme;
use ensogl_hardcoded_theme::graph_editor::visualization as theme;
ensogl::define_shape_system! {
(style:Style, radius:f32, roundness:f32, selection:f32) {
@ -182,7 +182,8 @@ impl View {
// FIXME : StyleWatch is unsuitable here, as it was designed as an internal tool for shape
// system (#795)
let styles = StyleWatch::new(&scene.style_sheet);
let bg_color = styles.get_color(ensogl_theme::graph_editor::visualization::background);
let bg_color =
styles.get_color(ensogl_hardcoded_theme::graph_editor::visualization::background);
let bg_hex = format!(
"rgba({},{},{},{})",
bg_color.red * 255.0,

View File

@ -15,8 +15,8 @@ use ensogl::display::shape::system::DynamicShape;
use ensogl::display::shape::*;
use ensogl::display::traits::*;
use ensogl::gui::component::ShapeView;
use ensogl_gui_components::drop_down_menu;
use ensogl_theme as theme;
use ensogl_gui_component::drop_down_menu;
use ensogl_hardcoded_theme as theme;

View File

@ -9,7 +9,7 @@ use ensogl::display::traits::*;
use ensogl::display::DomSymbol;
use ensogl::system::web;
use ensogl::system::web::StyleSetter;
use ensogl_theme as theme;
use ensogl_hardcoded_theme as theme;
@ -67,7 +67,8 @@ impl Panel {
// FIXME : StyleWatch is unsuitable here, as it was designed as an internal tool for shape
// system (#795)
let styles = StyleWatch::new(&scene.style_sheet);
let bg_color = styles.get_color(ensogl_theme::graph_editor::visualization::background);
let bg_color =
styles.get_color(ensogl_hardcoded_theme::graph_editor::visualization::background);
let red = bg_color.red * 255.0;
let green = bg_color.green * 255.0;
let blue = bg_color.blue * 255.0;

View File

@ -15,8 +15,8 @@ use enso_frp as frp;
use enso_frp;
use ensogl::application::Application;
use ensogl::display;
use ensogl_gui_components::drop_down_menu;
use ensogl_gui_components::list_view;
use ensogl_gui_component::drop_down_menu;
use ensogl_gui_component::list_view;

View File

@ -11,7 +11,7 @@ use ensogl::data::color;
use ensogl::display::shape::StyleWatch;
use ensogl::display::style::data::DataMatch;
use ensogl::display::DomSymbol;
use ensogl_theme;
use ensogl_hardcoded_theme;
use fmt::Formatter;
use wasm_bindgen::prelude::*;
use web_sys::HtmlDivElement;
@ -105,7 +105,7 @@ impl JsTheme {
/// Takes a qualified type name and returns the color that should be used for foreground
/// (e.g. text) that is shown on top of the background color returned by getColorForType.
pub fn getForegroundColorForType(&self, _tp_name: &str) -> JsColor {
self.styles.get_color(ensogl_theme::code::types::selected).into()
self.styles.get_color(ensogl_hardcoded_theme::code::types::selected).into()
}
/// Queries style sheet value for a value.

View File

@ -101,7 +101,7 @@ pub struct InstanceModel {
impl InstanceModel {
fn get_background_color(scene: &Scene) -> color::Rgba {
let styles = StyleWatch::new(&scene.style_sheet);
styles.get_color(ensogl_theme::graph_editor::visualization::background)
styles.get_color(ensogl_hardcoded_theme::graph_editor::visualization::background)
}
fn create_root(scene: &Scene, logger: &Logger) -> result::Result<DomSymbol, Error> {

View File

@ -46,7 +46,7 @@ use crate::component::visualization::MockDataGenerator3D;
use crate::data::enso;
pub use crate::node::profiling::Status as NodeProfilingStatus;
use enso_args::ARGS;
use enso_config::ARGS;
use enso_frp as frp;
use ensogl::application;
use ensogl::application::shortcut;
@ -64,8 +64,7 @@ use ensogl::system::web;
use ensogl::Animation;
use ensogl::DEPRECATED_Animation;
use ensogl::DEPRECATED_Tween;
use ensogl_theme as theme;
use ensogl_web::drop;
use ensogl_hardcoded_theme as theme;
use ordered_float::OrderedFloat;
@ -611,7 +610,7 @@ ensogl::define_endpoints! {
view_mode (view::Mode),
navigator_active (bool),
file_dropped (drop::File,Vector2<f32>),
file_dropped (ensogl_drop_manager::File,Vector2<f32>),
default_x_gap_between_nodes (f32),
default_y_gap_between_nodes (f32),
@ -1436,7 +1435,7 @@ pub struct GraphEditorModel {
pub nodes: Nodes,
pub edges: Edges,
pub vis_registry: visualization::Registry,
pub drop_manager: drop::Manager,
pub drop_manager: ensogl_drop_manager::Manager,
// FIXME[MM]: The tooltip should live next to the cursor in `Application`. This does not
// currently work, however, because the `Application` lives in enso-core, and the tooltip
// requires enso-text, which in turn depends on enso-core, creating a cyclic dependency.
@ -1472,7 +1471,7 @@ impl GraphEditorModel {
let tooltip = Tooltip::new(&app);
let profiling_statuses = profiling::Statuses::new();
let profiling_button = component::profiling::Button::new(&app);
let drop_manager = drop::Manager::new(&scene.dom.root);
let drop_manager = ensogl_drop_manager::Manager::new(&scene.dom.root);
let styles_frp = StyleWatchFrp::new(&scene.style_sheet);
let selection_controller =
selection::Controller::new(&frp, &app.cursor, &scene.mouse.frp, &touch_state, &nodes);
@ -3331,9 +3330,9 @@ fn new_graph_editor(app: &Application) -> GraphEditor {
let style_sheet = &scene.style_sheet;
let styles = StyleWatchFrp::new(style_sheet);
let default_x_gap_path = ensogl_theme::graph_editor::default_x_gap_between_nodes;
let default_y_gap_path = ensogl_theme::graph_editor::default_y_gap_between_nodes;
let min_x_spacing_path = ensogl_theme::graph_editor::minimal_x_spacing_for_new_nodes;
let default_x_gap_path = ensogl_hardcoded_theme::graph_editor::default_x_gap_between_nodes;
let default_y_gap_path = ensogl_hardcoded_theme::graph_editor::default_y_gap_between_nodes;
let min_x_spacing_path = ensogl_hardcoded_theme::graph_editor::minimal_x_spacing_for_new_nodes;
let default_x_gap = styles.get_number_or(default_x_gap_path, 0.0);
let default_y_gap = styles.get_number_or(default_y_gap_path, 0.0);
let min_x_spacing = styles.get_number_or(min_x_spacing_path, 0.0);

View File

@ -109,7 +109,7 @@ impl View {
});
eval position ((pos) model.set_position_xy(*pos));
let color = styles.get_color(ensogl_theme::code::syntax::base);
let color = styles.get_color(ensogl_hardcoded_theme::code::syntax::base);
eval color ((color) model.set_default_color(color));
}
model.set_default_color(color.value());

View File

@ -19,8 +19,8 @@ use ensogl::display::navigation::navigator::Navigator;
use ensogl::display::object::ObjectOps;
use ensogl::display::shape::StyleWatch;
use ensogl::system::web;
use ensogl_hardcoded_theme as theme;
use ensogl_text as text;
use ensogl_theme as theme;
use parser::Parser;
use wasm_bindgen::prelude::*;
@ -242,7 +242,7 @@ fn init(app: &Application) {
if to_theme_switch == 0 {
// println!("THEME SWITCH !!!");
// scene.style_sheet.set("application.background",color::Rgba(0.0,0.0,0.0,1.0));
// ensogl_theme::builtin::dark::enable(&app);
// ensogl_hardcoded_theme::builtin::dark::enable(&app);
//
// println!(">>> {:?}", "lcha(1,0,0,1)".parse::<color::Lcha>());
}

View File

@ -17,7 +17,7 @@ use ensogl::system::web;
use ensogl::system::web::clipboard;
use ensogl::system::web::AttributeSetter;
use ensogl::system::web::StyleSetter;
use ensogl_gui_components::shadow;
use ensogl_gui_component::shadow;
use wasm_bindgen::closure::Closure;
use wasm_bindgen::JsCast;
use web_sys::HtmlElement;
@ -81,7 +81,7 @@ impl Model {
// FIXME : StyleWatch is unsuitable here, as it was designed as an internal tool for shape
// system (#795)
let styles = StyleWatch::new(&scene.style_sheet);
let style_path = ensogl_theme::application::documentation::background;
let style_path = ensogl_hardcoded_theme::application::documentation::background;
let bg_color = styles.get_color(style_path);
let bg_color = bg_color.to_javascript_string();

View File

@ -7,8 +7,8 @@ use enso_frp as frp;
use ensogl::application::Application;
use ensogl::display;
use ensogl::display::shape::StyleWatchFrp;
use ensogl_gui_components::file_browser::FileBrowser;
use ensogl_theme as theme;
use ensogl_gui_component::file_browser::FileBrowser;
use ensogl_hardcoded_theme as theme;

View File

@ -6,10 +6,10 @@ use enso_frp as frp;
use ensogl::application::Application;
use ensogl::display;
use ensogl::display::shape::*;
use ensogl_gui_components::list_view;
use ensogl_gui_components::shadow;
use ensogl_gui_component::list_view;
use ensogl_gui_component::shadow;
use ensogl_hardcoded_theme::application::project_list as theme;
use ensogl_text as text;
use ensogl_theme::application::project_list as theme;

View File

@ -12,7 +12,7 @@ use crate::open_dialog::OpenDialog;
use crate::searcher;
use crate::status_bar;
use enso_args::ARGS;
use enso_config::ARGS;
use enso_frp as frp;
use ensogl::application;
use ensogl::application::shortcut;
@ -23,7 +23,7 @@ use ensogl::system::web;
use ensogl::system::web::dom;
use ensogl::Animation;
use ensogl::DEPRECATED_Animation;
use ensogl_theme::Theme;
use ensogl_hardcoded_theme::Theme;
@ -85,7 +85,7 @@ mod prompt_background {
let width = Var::<Pixels>::from("input_size.x");
let height = Var::<Pixels>::from("input_size.y");
let corner_radius = style.get_number(ensogl_theme::graph_editor::prompt::background::corner_radius);
let corner_radius = style.get_number(ensogl_hardcoded_theme::graph_editor::prompt::background::corner_radius);
let shape = Rect((&width,&height));
let shape = shape.corners_radius(corner_radius.px());
let bg = shape.fill(color_rgba);
@ -178,12 +178,12 @@ impl Model {
}
fn set_light_style(&self) {
ensogl_theme::builtin::light::enable(&self.app);
ensogl_hardcoded_theme::builtin::light::enable(&self.app);
self.set_html_style("light-theme");
}
fn set_dark_style(&self) {
ensogl_theme::builtin::dark::enable(&self.app);
ensogl_hardcoded_theme::builtin::dark::enable(&self.app);
self.set_html_style("dark-theme");
}
@ -266,7 +266,7 @@ impl Model {
}
fn on_close_clicked(&self) {
js::close(enso_config::CONFIG.window_app_scope_name);
js::close(enso_config::window_app_scope_name);
}
fn on_fullscreen_clicked(&self) {
@ -343,15 +343,15 @@ impl Deref for View {
impl View {
/// Constructor.
pub fn new(app: &Application) -> Self {
ensogl_theme::builtin::dark::register(app);
ensogl_theme::builtin::light::register(app);
ensogl_hardcoded_theme::builtin::dark::register(app);
ensogl_hardcoded_theme::builtin::light::register(app);
let theme = match ARGS.theme.as_deref() {
Some("dark") => {
ensogl_theme::builtin::dark::enable(app);
ensogl_hardcoded_theme::builtin::dark::enable(app);
Theme::Dark
}
_ => {
ensogl_theme::builtin::light::enable(app);
ensogl_hardcoded_theme::builtin::light::enable(app);
Theme::Light
}
};
@ -523,10 +523,10 @@ impl View {
// === Prompt ===
init <- source::<()>();
let prompt_bg_color_path = ensogl_theme::graph_editor::prompt::background;
let prompt_bg_padding_path = ensogl_theme::graph_editor::prompt::background::padding;
let prompt_color_path = ensogl_theme::graph_editor::prompt::text;
let prompt_size_path = ensogl_theme::graph_editor::prompt::text::size;
let prompt_bg_color_path = ensogl_hardcoded_theme::graph_editor::prompt::background;
let prompt_bg_padding_path = ensogl_hardcoded_theme::graph_editor::prompt::background::padding;
let prompt_color_path = ensogl_hardcoded_theme::graph_editor::prompt::text;
let prompt_size_path = ensogl_hardcoded_theme::graph_editor::prompt::text::size;
let prompt_bg_color = styles.get_color(prompt_bg_color_path);
prompt_bg_color <- all(&prompt_bg_color,&init)._0();
let prompt_bg_padding = styles.get_number(prompt_bg_padding_path);

View File

@ -16,10 +16,10 @@ use ensogl::application::Application;
use ensogl::display;
use ensogl::display::shape::*;
use ensogl::DEPRECATED_Animation;
use ensogl_gui_components::list_view;
use ensogl_gui_components::list_view::ListView;
use ensogl_gui_component::list_view;
use ensogl_gui_component::list_view::ListView;
pub use ensogl_gui_components::list_view::entry;
pub use ensogl_gui_component::list_view::entry;
@ -130,7 +130,7 @@ impl Model {
// FIXME: StyleWatch is unsuitable here, as it was designed as an internal tool for shape
// system (#795)
let style = StyleWatch::new(&app.display.scene().style_sheet);
let action_list_gap_path = ensogl_theme::application::searcher::action_list_gap;
let action_list_gap_path = ensogl_hardcoded_theme::application::searcher::action_list_gap;
let action_list_gap = style.get_number_or(action_list_gap_path, 0.0);
list.set_label_layer(scene.layers.above_nodes_text.id());
list.set_position_y(-action_list_gap);

View File

@ -11,7 +11,7 @@ use ensogl::display::shape::*;
use ensogl::display::DomSymbol;
use ensogl::system::web;
use ensogl::system::web::StyleSetter;
use ensogl_theme::application::searcher::icons as theme;
use ensogl_hardcoded_theme::application::searcher::icons as theme;
use std::f32::consts::PI;
use wasm_bindgen::prelude::*;
@ -1003,9 +1003,9 @@ pub fn entry_point_searcher_icons() {
let logger = Logger::new("Icons example");
let app = Application::new(&web::get_html_element_by_id("root").unwrap());
ensogl_theme::builtin::dark::register(&app);
ensogl_theme::builtin::light::register(&app);
ensogl_theme::builtin::light::enable(&app);
ensogl_hardcoded_theme::builtin::dark::register(&app);
ensogl_hardcoded_theme::builtin::light::register(&app);
ensogl_hardcoded_theme::builtin::light::enable(&app);
let world = app.display.clone();
mem::forget(app);
let scene = world.scene();

View File

@ -15,9 +15,9 @@ use ensogl::display::camera::Camera2d;
use ensogl::display::shape::*;
use ensogl::display::style;
use ensogl::display::Scene;
use ensogl_gui_components::shadow;
use ensogl_gui_component::shadow;
use ensogl_hardcoded_theme as theme;
use ensogl_text as text;
use ensogl_theme as theme;
use std::future::Future;
@ -93,7 +93,7 @@ mod background {
ensogl::define_shape_system! {
(style:Style) {
let theme = ensogl_theme::application::status_bar::background;
let theme = ensogl_hardcoded_theme::application::status_bar::background;
let theme = style::Path::from(theme);
let width = Var::<Pixels>::from("input_size.x");
let height = Var::<Pixels>::from("input_size.y");

View File

@ -80,7 +80,7 @@ impl<T> LayoutParams<T> {
impl LayoutParams<frp::Sampler<f32>> {
/// Get layout from theme. Each layout parameter will be an frp sampler.
pub fn from_theme(style: &StyleWatchFrp) -> Self {
use ensogl_theme::application::window_control_buttons as theme;
use ensogl_hardcoded_theme::application::window_control_buttons as theme;
let default = LayoutParams::default();
let spacing = style.get_number_or(theme::spacing, default.spacing);
let padding_left = style.get_number_or(theme::padding::left, default.padding_left);

View File

@ -2,7 +2,7 @@
use crate::window_control_buttons::common::prelude::*;
pub use ensogl_theme::application::window_control_buttons::close as theme;
pub use ensogl_hardcoded_theme::application::window_control_buttons::close as theme;
/// The view component with the close button.
pub type View = common::View<shape::DynamicShape>;

View File

@ -240,7 +240,8 @@ impl<Shape: ButtonShape> View<Shape> {
model.set_icon_color(default_background_color);
// Radius initialization
let radius_frp = style.get(ensogl_theme::application::window_control_buttons::radius);
let radius_frp =
style.get(ensogl_hardcoded_theme::application::window_control_buttons::radius);
// Style's relevant color FRP endpoints.
let background_unconcerned_color =

View File

@ -2,7 +2,7 @@
use crate::window_control_buttons::common::prelude::*;
pub use ensogl_theme::application::window_control_buttons::fullscreen as theme;
pub use ensogl_hardcoded_theme::application::window_control_buttons::fullscreen as theme;
/// The view component with the fullscreen button.
pub type View = common::View<shape::DynamicShape>;

View File

@ -1 +0,0 @@
src/autogenerated.rs

View File

@ -1,61 +0,0 @@
use inflector::*;
use serde_yaml::Value;
use std::fs;
const CONFIG_PATH: &str = "../../../config.yaml";
fn main() {
println!("cargo:rerun-if-changed={}", CONFIG_PATH);
println!("cargo:rerun-if-changed=build.rs");
let f = std::fs::File::open(CONFIG_PATH).unwrap();
let value: Value = serde_yaml::from_reader(f).unwrap();
let manifest_dir = std::env::var("CARGO_MANIFEST_DIR")
.expect("missing environment variable CARGO_MANIFEST_DIR:");
let indent = " ".repeat(4);
let mut def = "".to_string();
let mut inst = "".to_string();
let mut vars = "".to_string();
match value {
Value::Mapping(mapping) =>
for (key, value) in mapping {
let key = key.as_str().unwrap().to_snake_case();
let value = value.as_str().unwrap();
def.push_str(&format!("{}pub {}: &'static str,\n", indent, key));
inst.push_str(&format!("{}{}: \"{}\",\n", indent, key, value));
vars.push_str(&format!(
"#[allow(non_upper_case_globals)]\npub const {}: &str = \"{}\";\n",
key, value
));
},
_ => panic!("Unexpected config format."),
}
def = def.trim_end().to_string();
inst = inst.trim_end().to_string();
let file = format!(
r#"// THIS IS AN AUTOGENERATED FILE BASED ON THE '{config_path}' CONFIG FILE. DO NOT MODIFY IT.
// Generated by the build script in {my_path}.
mod autogenerated {{
pub struct Config {{
{def}
}}
pub const CONFIG: Config = Config {{
{inst}
}};
}}
{vars}"#,
my_path = manifest_dir,
config_path = CONFIG_PATH,
def = def,
inst = inst,
vars = vars
);
let out_dir = std::env::var("OUT_DIR").expect("missing environment variable OUT_DIR:");
fs::write(out_dir + "/config.rs", file).ok();
}

View File

@ -1,4 +0,0 @@
// Defines module `autogenerated`.
include!(concat!(env!("OUT_DIR"), "/config.rs"));
pub use autogenerated::*;

View File

@ -1,360 +0,0 @@
//! This module re-exports a lot of useful stuff. It is not meant to be used
//! by libraries, but it is definitely usefull for bigger projects. It also
//! defines several aliases and utils which may find their place in new
//! libraries in the future.
#![warn(unsafe_code)]
#![warn(missing_copy_implementations)]
#![warn(missing_debug_implementations)]
#![feature(specialization)]
#![feature(trait_alias)]
mod clone;
mod collections;
mod data;
mod macros;
mod option;
mod phantom;
mod rc;
mod reference;
mod result;
mod std_reexports;
mod string;
mod tp;
mod vec;
mod wrapper;
pub use clone::*;
pub use collections::*;
pub use data::*;
pub use macros::*;
pub use option::*;
pub use phantom::*;
pub use rc::*;
pub use reference::*;
pub use result::*;
pub use std_reexports::*;
pub use string::*;
pub use tp::*;
pub use vec::*;
pub use wrapper::*;
pub use boolinator::Boolinator;
pub use derivative::Derivative;
pub use derive_more::*;
pub use enclose::enclose;
pub use failure::Fail;
pub use ifmt::*;
pub use itertools::Itertools;
pub use lazy_static::lazy_static;
pub use num::Num;
pub use paste;
pub use shrinkwraprs::Shrinkwrap;
pub use weak_table::traits::WeakElement;
pub use weak_table::traits::WeakKey;
pub use weak_table::WeakKeyHashMap;
pub use weak_table::WeakValueHashMap;
pub use weak_table;
pub use std::collections::hash_map::DefaultHasher;
pub use std::hash::Hash;
pub use std::hash::Hasher;
use std::cell::UnsafeCell;
// =================
// === Immutable ===
// =================
/// A zero-overhead newtype which provides immutable access to its content. Of course this does not
/// apply to internal mutability of the wrapped data. A good use case of this structure is when you
/// want to pass an ownership to a structure, allow access all its public fields, but do not allow
/// their modification.
#[derive(Clone,Copy,Default)]
pub struct Immutable<T> {
data : T
}
/// Constructor of the `Immutable` struct.
#[allow(non_snake_case)]
pub fn Immutable<T>(data:T) -> Immutable<T> {
Immutable {data}
}
impl<T:Debug> Debug for Immutable<T> {
fn fmt(&self, f:&mut std::fmt::Formatter<'_>) -> std::fmt::Result {
self.data.fmt(f)
}
}
impl<T:Display> Display for Immutable<T> {
fn fmt(&self, f:&mut std::fmt::Formatter<'_>) -> std::fmt::Result {
self.data.fmt(f)
}
}
impl<T:Clone> CloneRef for Immutable<T> {
fn clone_ref(&self) -> Self {
Self {data:self.data.clone()}
}
}
impl<T> AsRef<T> for Immutable<T> {
fn as_ref(&self) -> &T {
&self.data
}
}
impl<T> std::borrow::Borrow<T> for Immutable<T> {
fn borrow(&self) -> &T {
&self.data
}
}
impl<T> Deref for Immutable<T> {
type Target = T;
fn deref(&self) -> &Self::Target {
&self.data
}
}
// ==============
// === ToImpl ===
// ==============
/// Provides method `to`, which is just like `into` but allows fo superfish syntax.
pub trait ToImpl: Sized {
fn to<P>(self) -> P where Self:Into<P> {
self.into()
}
}
impl<T> ToImpl for T {}
// TODO
// This impl should be hidden behind a flag. Not everybody using prelude want to import nalgebra.
impl <T,R,C,S> TypeDisplay for nalgebra::Matrix<T,R,C,S>
where T:nalgebra::Scalar, R:nalgebra::DimName, C:nalgebra::DimName {
fn type_display() -> String {
let cols = <C as nalgebra::DimName>::dim();
let rows = <R as nalgebra::DimName>::dim();
let item = type_name::<T>();
match cols {
1 => format!("Vector{}<{}>" , rows, item),
_ => format!("Matrix{}x{}<{}>" , rows, cols, item)
}
}
}
#[macro_export]
macro_rules! clone_boxed {
( $name:ident ) => { paste::item! {
#[allow(missing_docs)]
pub trait [<CloneBoxedFor $name>] {
fn clone_boxed(&self) -> Box<dyn $name>;
}
impl<T:Clone+$name+'static> [<CloneBoxedFor $name>] for T {
fn clone_boxed(&self) -> Box<dyn $name> {
Box::new(self.clone())
}
}
impl Clone for Box<dyn $name> {
fn clone(&self) -> Self {
self.clone_boxed()
}
}
}}
}
/// Alias for `for<'t> &'t Self : Into<T>`.
pub trait RefInto<T> = where for<'t> &'t Self : Into<T>;
// =================
// === CloneCell ===
// =================
#[derive(Debug)]
pub struct CloneCell<T> {
data : UnsafeCell<T>
}
impl<T> CloneCell<T> {
pub fn new(elem:T) -> CloneCell<T> {
CloneCell { data:UnsafeCell::new(elem) }
}
#[allow(unsafe_code)]
pub fn get(&self) -> T where T:Clone {
unsafe {(*self.data.get()).clone()}
}
#[allow(unsafe_code)]
pub fn set(&self, elem:T) {
unsafe { *self.data.get() = elem; }
}
#[allow(unsafe_code)]
pub fn take(&self) -> T where T:Default {
let ptr:&mut T = unsafe { &mut *self.data.get() };
std::mem::take(ptr)
}
}
impl<T:Clone> Clone for CloneCell<T> {
fn clone(&self) -> Self {
Self::new(self.get())
}
}
impl<T:Default> Default for CloneCell<T> {
fn default() -> Self {
Self::new(default())
}
}
// =================
// === CloneCell ===
// =================
#[derive(Debug)]
pub struct CloneRefCell<T:?Sized> {
data : UnsafeCell<T>
}
impl<T> CloneRefCell<T> {
pub fn new(elem:T) -> CloneRefCell<T> {
CloneRefCell { data:UnsafeCell::new(elem) }
}
#[allow(unsafe_code)]
pub fn get(&self) -> T where T:CloneRef {
unsafe {(*self.data.get()).clone_ref()}
}
#[allow(unsafe_code)]
pub fn set(&self, elem:T) {
unsafe { *self.data.get() = elem; }
}
#[allow(unsafe_code)]
pub fn take(&self) -> T where T:Default {
let ptr:&mut T = unsafe { &mut *self.data.get() };
std::mem::take(ptr)
}
}
impl<T:CloneRef> Clone for CloneRefCell<T> {
fn clone(&self) -> Self {
Self::new(self.get())
}
}
impl<T:CloneRef> CloneRef for CloneRefCell<T> {
fn clone_ref(&self) -> Self {
Self::new(self.get())
}
}
impl<T:Default> Default for CloneRefCell<T> {
fn default() -> Self {
Self::new(default())
}
}
// ================================
// === RefCell<Option<T>> Utils ===
// ================================
pub trait RefcellOptionOps<T> {
fn clear(&self);
fn set(&self, val:T);
fn set_if_none(&self, val:T);
}
impl<T> RefcellOptionOps<T> for RefCell<Option<T>> {
fn clear(&self) {
*self.borrow_mut() = None;
}
fn set(&self, val:T) {
*self.borrow_mut() = Some(val);
}
fn set_if_none(&self, val:T) {
let mut ptr = self.borrow_mut();
if ptr.is_some() { panic!("The value was already set.") }
*ptr = Some(val)
}
}
// ================================
// === Strong / Weak References ===
// ================================
/// Abstraction for a strong reference like `Rc` or newtypes over it.
pub trait StrongRef : CloneRef {
/// Downgraded reference type.
type WeakRef : WeakRef<StrongRef=Self>;
/// Creates a new weak reference of this allocation.
fn downgrade(&self) -> Self::WeakRef;
}
/// Abstraction for a weak reference like `Weak` or newtypes over it.
pub trait WeakRef : CloneRef {
/// Upgraded reference type.
type StrongRef : StrongRef<WeakRef=Self>;
/// Attempts to upgrade the weak referenc to a strong one, delaying dropping of the inner value
/// if successful.
fn upgrade(&self) -> Option<Self::StrongRef>;
}
impl<T:?Sized> StrongRef for Rc<T> {
type WeakRef = Weak<T>;
fn downgrade(&self) -> Self::WeakRef {
Rc::downgrade(&self)
}
}
impl<T:?Sized> WeakRef for Weak<T> {
type StrongRef = Rc<T>;
fn upgrade(&self) -> Option<Self::StrongRef> {
Weak::upgrade(self)
}
}
// ==================
// === Result Ops ===
// ==================
/// Allows extracting the element from `Result<T,T>` for any `T`.
#[allow(missing_docs)]
pub trait ResultGet {
type Item;
/// Allows extracting the element from `Result<T,T>` for any `T`.
fn unwrap_both(self) -> Self::Item;
}
impl<T> ResultGet for Result<T,T> {
type Item = T;
fn unwrap_both(self) -> T {
match self {
Ok (t) => t,
Err (t) => t,
}
}
}

View File

@ -1,15 +0,0 @@
//! This module defines utilities for working with the `Vec` type.
/// Adds mapping methods to the `Vec` type.
pub trait VecOps {
type Item;
fn extended<I:IntoIterator<Item=Self::Item>>(self, iter:I) -> Self;
}
impl<T> VecOps for Vec<T> {
type Item = T;
fn extended<I:IntoIterator<Item=Self::Item>>(mut self, iter:I) -> Self {
self.extend(iter);
self
}
}

View File

@ -4,8 +4,6 @@ version = "0.1.0"
authors = ["Enso Team <contact@enso.org>"]
edition = "2018"
[workspace]
[dependencies]
glob = "0.3.0"
toml = "0.5.5"

View File

@ -5,8 +5,8 @@ use std::path::PathBuf;
/// List of workspace members that should not be tested by wasm-pack test.
/// (e.g. because they do not target wasm at all)
const PACKAGE_BLACKLIST: [&str; 2] =
["gui/src/rust/test/build", "gui/src/rust/ide/file-manager/mock-server"];
const PACKAGE_BLACKLIST: [&str; 3] =
["gui/src/rust/test", "gui/src/rust/ide/file-manager/mock-server", "lib/rust/build-utils"];
/// Attributes that denote WASM tests.
const WASM_TEST_ATTRIBUTES: [&str; 2] = ["#[wasm_bindgen_test]", "#[wasm_bindgen_test(async)]"];
@ -87,7 +87,7 @@ fn main() {
let wasm_pack_args = std::env::args().skip(1).collect::<Vec<_>>();
let cargo_toml_root = parse_toml("Cargo.toml");
let all_members = get_workspace_members(cargo_toml_root);
let tested_members = all_members.iter().filter(|p| to_be_tested(&p));
let tested_members = all_members.iter().filter(|p| to_be_tested(p));
for member in tested_members {
println!("Running tests for {}", member);

View File

@ -1,5 +1,5 @@
[package]
name = "ensogl-build-utilities"
name = "enso-build-utilities"
version = "0.1.0"
authors = ["Enso Team <contact@enso.org>"]
edition = "2018"

View File

@ -1,3 +1,6 @@
//! A crate with many utilities for build scripts, for example downloading packages form GitHub or
//! easier management of env vars and paths.
#![feature(trait_alias)]
use std::fmt::Display;

View File

@ -7,4 +7,4 @@ edition = "2018"
[lib]
[dependencies]
enso-prelude = { path = "../../../../../lib/rust/prelude" }
enso-prelude = { path = "../prelude" }

View File

@ -9,4 +9,4 @@ edition = "2018"
[features]
[dependencies]
enso-prelude = { path = "../../../../../lib/rust/prelude" }
enso-prelude = { path = "../prelude" }

View File

@ -1,12 +1,13 @@
[package]
name = "enso-config"
name = "config-reader"
version = "0.1.0"
authors = ["Enso Team <contact@enso.org>"]
edition = "2018"
[dependencies]
[lib]
crate-type = ["rlib", "cdylib"]
[build-dependencies]
[dependencies]
serde = { version = "1.0" }
serde_yaml = { version = "=0.8.14" }
Inflector = { version = "0.11.4" }

View File

@ -0,0 +1,127 @@
//! Build Configuration Reader
//!
//! This crate contains an utility for build.rs scripts: the [`generate_config_module_from_yaml`]
//! function, which creates a rust module in OUT_DIR with a set of constants based on given
//! configuration file in YAML format.
//!
//! Keeping configuration in yaml can be useful when the project consists of many parts in different
//! languages.
//!
//! # Example
//!
//! Let assume there is a `config.yaml` file in the parent directory of some crate:
//!
//! ```yaml
//! foo: "bar"
//! bar: "buz"
//! ```
//!
//! To generate a module with configuration, the build script should look as follows:
//! ```no_run
//! use config_reader::generate_config_module_from_yaml;
//!
//! const CONFIG_PATH: &str = "../config.yaml";
//!
//! fn main() {
//! println!("cargo:rerun-if-changed={}", CONFIG_PATH);
//! println!("cargo:rerun-if-changed=build.rs");
//! generate_config_module_from_yaml(CONFIG_PATH);
//! }
//! ```
//!
//! This will generate the following config.rs in the `OUT_DIR`:
//! ```no_run
//! // THIS IS AN AUTOGENERATED FILE BASED ON THE '../config.yaml' CONFIG FILE. DO NOT MODIFY IT.
//! // Generated by the build script in <path-to-crate>
//! pub mod generated {
//! #[derive(Copy, Clone, Debug)]
//! pub struct Config {
//! pub foo: &'static str,
//! pub bar: &'static str,
//! }
//!
//! pub const CONFIG: Config = Config { foo: "bar", bar: "buz" };
//!
//! #[allow(non_upper_case_globals)]
//! pub const foo: &str = "bar";
//! #[allow(non_upper_case_globals)]
//! pub const bar: &str = "buz";
//! }
//! ```
//!
//! which can be then included in your crate:
//! ```ignore
//! include!(concat!(env!("OUT_DIR"), "/config.rs"));
//!
//! fn main() {
//! println!("Foo parameter: {}", generated::CONFIG.foo);
//! }
use inflector::*;
use serde_yaml::Value;
use std::fs;
/// Generate module with constants read from given configuration file in YAML format.
///
/// For examples, see the [`crate`] documentation.
///
/// # Panics
///
/// The function may panic when:
/// - `CARGO_MANIFEST_DIR` or `OUT_DIR` env variable is missing.
/// - The provided config file is not in the YAML format.
pub fn generate_config_module_from_yaml(config_path: impl AsRef<std::path::Path>) {
let f = std::fs::File::open(config_path.as_ref()).unwrap();
let value: Value = serde_yaml::from_reader(f).unwrap();
let manifest_dir = std::env::var("CARGO_MANIFEST_DIR")
.expect("missing environment variable CARGO_MANIFEST_DIR:");
let indent = " ".repeat(4);
let mut def = "".to_string();
let mut inst = "".to_string();
let mut vars = "".to_string();
match value {
Value::Mapping(mapping) =>
for (key, value) in mapping {
let key = key.as_str().unwrap().to_snake_case();
let value = value.as_str().unwrap();
def.push_str(&format!("{}pub {}: &'static str,\n", indent, key));
inst.push_str(&format!("{}{}: \"{}\",\n", indent, key, value));
vars.push_str(&format!(
"#[allow(non_upper_case_globals)]\npub const {}: &str = \"{}\";\n",
key, value
));
},
_ => panic!("Unexpected config format."),
}
def = def.trim_end().to_string();
inst = inst.trim_end().to_string();
let file = format!(
r#"// THIS IS AN AUTOGENERATED FILE BASED ON THE '{config_path}' CONFIG FILE. DO NOT MODIFY IT.
// Generated by the build script in {my_path}.
pub mod generated {{
#[derive(Copy, Clone, Debug)]
pub struct Config {{
{def}
}}
pub const CONFIG: Config = Config {{
{inst}
}};
{vars}
}}"#,
my_path = manifest_dir,
config_path = config_path.as_ref().display(),
def = def,
inst = inst,
vars = vars
);
let out_dir = std::env::var("OUT_DIR").expect("Missing environment variable OUT_DIR.");
fs::write(out_dir + "/config.rs", file).ok();
}

View File

@ -10,5 +10,5 @@ crate-type = ["rlib", "cdylib"]
[features]
[dependencies]
ensogl-core = { path = "lib/core" }
ensogl-text = { path = "lib/text" }
ensogl-core = { path = "core" }
ensogl-text = { path = "component/text" }

View File

@ -1,5 +1,5 @@
[package]
name = "ensogl-theme"
name = "ensogl-hardcoded-theme"
version = "0.1.0"
authors = ["Enso Team <contact@enso.org>"]
edition = "2018"
@ -8,4 +8,4 @@ edition = "2018"
crate-type = ["rlib", "cdylib"]
[dependencies]
ensogl-core = { version = "0.1.0", path = "../core" }
ensogl-core = { version = "0.1.0", path = "../../../core" }

View File

@ -0,0 +1,9 @@
[package]
name = "ensogl-component"
version = "0.1.0"
authors = ["Enso Team <contact@enso.org>"]
edition = "2018"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]

View File

@ -1,14 +1,14 @@
[package]
name = "ensogl-web"
name = "ensogl-drop-manager"
version = "0.1.0"
authors = ["Enso Team <contact@enso.org>"]
edition = "2018"
[dependencies]
ensogl-system-web = { path = "../../../lib/system/web" }
enso-frp = { path = "../../../lib/frp" }
enso-logger = { path = "../../../../../../lib/rust/logger"}
enso-prelude = { path = "../../../../../../lib/rust/prelude"}
enso-web = { path = "../../../web" }
enso-frp = { path = "../../../frp" }
enso-logger = { path = "../../../logger"}
enso-prelude = { path = "../../../prelude"}
js-sys = { version = "0.3.28" }
wasm-bindgen = { version = "=0.2.58", features = ["nightly"] }
wasm-bindgen-futures = { version = "0.4.8" }

View File

@ -0,0 +1 @@

View File

@ -1,13 +1,29 @@
//! The handlers for the files dropped on the web scene. The main object is [`Manager`]:
//! it notifies about new files, and their metadata and with methods for reading them.
#![deny(unconditional_recursion)]
#![warn(missing_copy_implementations)]
#![warn(missing_debug_implementations)]
#![warn(missing_docs)]
#![warn(trivial_casts)]
#![warn(trivial_numeric_casts)]
#![warn(unsafe_code)]
#![warn(unused_import_braces)]
#![warn(unused_qualifications)]
/// Commonly used utilities.
pub mod prelude {
pub use enso_logger::DefaultWarningLogger as Logger;
pub use enso_logger::*;
pub use enso_prelude::*;
}
use crate::prelude::*;
use crate::stream::BlobExt;
use crate::stream::ReadableStreamDefaultReader;
use crate::Error;
use enso_frp as frp;
use enso_web::stream::BlobExt;
use enso_web::stream::ReadableStreamDefaultReader;
use enso_web::Error;
use js_sys::Uint8Array;
use wasm_bindgen::prelude::*;
use wasm_bindgen::JsCast;

View File

@ -0,0 +1,22 @@
[package]
name = "ensogl-gui-component"
version = "0.1.0"
authors = ["Enso Team <contact@enso.org>"]
edition = "2018"
[lib]
crate-type = ["rlib", "cdylib"]
[dependencies]
enso-frp = { path = "../../../frp" }
enso-logger = { path = "../../../logger"}
enso-prelude = { path = "../../../prelude"}
enso-shapely = { path = "../../../shapely/impl"}
enso-types = { path = "../../../types" }
ensogl-core = { path = "../../core" }
ensogl-text = { path = "../text" }
ensogl-hardcoded-theme = { path = "../../app/theme/hardcoded" }
[dev-dependencies]
wasm-bindgen-test = { version = "0.3.8" }
float_eq = "0.5"

View File

@ -12,8 +12,8 @@ use ensogl_core::display;
use ensogl_core::display::shape::primitive::StyleWatch;
use ensogl_core::display::shape::*;
use ensogl_core::DEPRECATED_Animation;
use ensogl_hardcoded_theme as theme;
use ensogl_text as text;
use ensogl_theme as theme;
// =================
@ -42,7 +42,7 @@ pub mod arrow {
let height = Var::<Pixels>::from("input_size.y");
let triangle = Triangle(width,height);
let triangle_down = triangle.rotate(Var::<f32>::from(std::f32::consts::PI));
let color_path = ensogl_theme::graph_editor::visualization::action_bar::icon;
let color_path = ensogl_hardcoded_theme::graph_editor::visualization::action_bar::icon;
let icon_color = style.get_color(color_path);
let triangle_colored = triangle_down.fill(icon_color);

View File

@ -12,7 +12,7 @@ use ensogl_core::display::shape::*;
use ensogl_core::display::traits::*;
use ensogl_text as text;
use ensogl_theme::component::label as theme;
use ensogl_hardcoded_theme::component::label as theme;

View File

@ -16,7 +16,7 @@ use ensogl_core::display;
use ensogl_core::display::scene::layer::LayerId;
use ensogl_core::display::shape::*;
use ensogl_core::DEPRECATED_Animation;
use ensogl_theme as theme;
use ensogl_hardcoded_theme as theme;
pub use entry::Entry;
@ -46,11 +46,11 @@ pub mod selection {
(style:Style) {
let sprite_width : Var<Pixels> = "input_size.x".into();
let sprite_height : Var<Pixels> = "input_size.y".into();
let padding_inner_x = style.get_number(ensogl_theme::application::searcher::selection::padding::horizontal);
let padding_inner_y = style.get_number(ensogl_theme::application::searcher::selection::padding::vertical);
let padding_inner_x = style.get_number(ensogl_hardcoded_theme::application::searcher::selection::padding::horizontal);
let padding_inner_y = style.get_number(ensogl_hardcoded_theme::application::searcher::selection::padding::vertical);
let width = sprite_width - 2.0.px() * SHAPE_PADDING + 2.0.px() * padding_inner_x;
let height = sprite_height - 2.0.px() * SHAPE_PADDING + 2.0.px() * padding_inner_y;
let color = style.get_color(ensogl_theme::widget::list_view::highlight);
let color = style.get_color(ensogl_hardcoded_theme::widget::list_view::highlight);
let rect = Rect((&width,&height)).corners_radius(CORNER_RADIUS_PX.px());
let shape = rect.fill(color);
shape.into()
@ -130,7 +130,7 @@ impl<E: Entry> Model<E> {
// FIXME : StyleWatch is unsuitable here, as it was designed as an internal tool for shape
// system (#795)
let styles = StyleWatch::new(&self.app.display.scene().style_sheet);
styles.get_number(ensogl_theme::application::searcher::padding)
styles.get_number(ensogl_hardcoded_theme::application::searcher::padding)
}
/// Update the displayed entries list when _view_ has changed - the list was scrolled or

View File

@ -7,8 +7,8 @@ use enso_frp as frp;
use ensogl_core::application::Application;
use ensogl_core::display;
use ensogl_core::display::shape::StyleWatchFrp;
use ensogl_hardcoded_theme as theme;
use ensogl_text as text;
use ensogl_theme as theme;

View File

@ -9,7 +9,7 @@ use ensogl_core::data::color;
use ensogl_core::display::shape::StyleWatchFrp;
use ensogl_core::display::shape::*;
use ensogl_core::Animation;
use ensogl_theme as theme;
use ensogl_hardcoded_theme as theme;
use crate::component;
use crate::selector;

View File

@ -7,7 +7,7 @@ use enso_frp::io::Mouse;
use enso_frp::Network;
use ensogl_core::display::object::ObjectOps;
use ensogl_core::display::shape::StyleWatchFrp;
use ensogl_theme as theme;
use ensogl_hardcoded_theme as theme;
use crate::shadow;

Some files were not shown because too many files have changed in this diff Show More