diff --git a/CHANGELOG.md b/CHANGELOG.md index 50261d3..1858931 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,17 +5,21 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). -## [Unreleased] +## v8.4.0 -@srghma Use `spec-node` in tests +## Added + +- Use `spec-node` in tests by @srghma +- New trivial entrypoint function `discoverAndRunSpecs` for ergonomics by @fsoikin ## v8.0.1 -- @CarstenKoenig Fix discovery on Windows by prepending `file://` +## Changed + +- Fix discovery on Windows by prepending `file://` by @CarstenKoenig ## v8.0.0 -Features: -- Update to v0.15.0 and support es modules -Breaking changes: -- `discover` now needs `MonadAff` constraint instead of `MonadEffect` due to dynamic imports returning promises +## Changed +- Update to v0.15.0 and support es modules +- **breaking** `discover` now needs `MonadAff` constraint instead of `MonadEffect` due to dynamic imports returning promises diff --git a/README.md b/README.md index 1b22c8b..fe91b07 100644 --- a/README.md +++ b/README.md @@ -4,14 +4,35 @@ purescript-spec-discovery is an extension to [purescript-spec](https://github.com/purescript-spec/purescript-spec) that finds specs automatically, given a regular expression pattern. -It only works for NodeJS environments, currently. +It only works for NodeJS environments, currently, since it's using NodeJS +facilities to list and load modules. ## Usage +Install via Spago: + ```bash spago install spec-discovery ``` +Use as main entry point: + +```purescript +module Test.Main where + +import Prelude +import Effect (Effect) +import Test.Spec.Discovery (discoverAndRunSpec) +import Test.Spec.Reporter.Console (consoleReporter) + +main :: Effect Unit +main = discoverAndRunSpecs [consoleReporter] """My\.Package\..*Spec""" +``` + +Or, if you need more sophistication, like an alternative config or whatnot, use +the `discover` function to just return a list of specs and then run them in +whatever way you need: + ```purescript module Test.Main where @@ -20,21 +41,23 @@ import Effect (Effect) import Effect.Aff (launchAff_) import Test.Spec.Discovery (discover) import Test.Spec.Reporter.Console (consoleReporter) -import Test.Spec.Runner (runSpec) +import Test.Spec.Runner.Node (runSpecAndExitProcess) +import Test.Spec.Runner.Node.Config (defaultConfig) main :: Effect Unit main = launchAff_ do specs <- discover """My\.Package\..*Spec""" - runSpec [consoleReporter] specs + liftEffect $ runSpecAndExitProcess' + { defaultConfig: defaultConfig { timeout = Nothing } + , parseCLIOptions: true + } + [consoleReporter] + specs ``` All modules that match the regular expression, **and have a definition `spec :: Spec Unit`**, will be included and run. -## Documentation - -Documentation is publised on [Pursuit](https://pursuit.purescript.org/packages/purescript-spec-discovery). - ## Contribute If you have any issues or possible improvements please file them as diff --git a/spago.lock b/spago.lock index a5ba9ff..3df3f2e 100644 --- a/spago.lock +++ b/spago.lock @@ -1,1510 +1,1614 @@ -workspace: - packages: - spec-discovery: - path: ./ - core: - dependencies: - - aff: ">=7.1.0 <8.0.0" - - aff-promise: ">=4.0.0 <5.0.0" - - effect: ">=4.0.0 <5.0.0" - - foldable-traversable: ">=6.0.0 <7.0.0" - - prelude: ">=6.0.1 <7.0.0" - - spec: ">=7.6.0 <8.0.0" - build_plan: - - aff - - aff-promise - - ansi - - arrays - - avar - - bifunctors - - catenable-lists - - const - - contravariant - - control - - datetime - - distributive - - effect - - either - - enums - - exceptions - - exists - - foldable-traversable - - foreign - - fork - - free - - functions - - functors - - gen - - identity - - integers - - invariant - - lazy - - lists - - maybe - - mmorph - - newtype - - nonempty - - now - - numbers - - ordered-collections - - orders - - parallel - - partial - - pipes - - prelude - - profunctor - - refs - - safe-coerce - - spec - - st - - strings - - tailrec - - transformers - - tuples - - type-equality - - unfoldable - - unsafe-coerce - test: - dependencies: - - spec-node - build_plan: - - aff - - ansi - - argonaut-codecs - - argonaut-core - - arraybuffer-types - - arrays - - avar - - bifunctors - - catenable-lists - - console - - const - - contravariant - - control - - datetime - - distributive - - effect - - either - - enums - - exceptions - - exists - - exitcodes - - foldable-traversable - - foreign - - foreign-object - - fork - - free - - functions - - functors - - gen - - identity - - integers - - invariant - - js-date - - lazy - - lists - - maybe - - mmorph - - newtype - - node-buffer - - node-event-emitter - - node-fs - - node-path - - node-process - - node-streams - - nonempty - - now - - nullable - - numbers - - open-memoize - - optparse - - ordered-collections - - orders - - parallel - - partial - - pipes - - posix-types - - prelude - - profunctor - - record - - refs - - safe-coerce - - spec - - spec-node - - st - - strings - - tailrec - - transformers - - tuples - - type-equality - - typelevel-prelude - - unfoldable - - unsafe-coerce - package_set: - address: - registry: 60.2.1 - compiler: ">=0.15.15 <0.16.0" - content: - abc-parser: 2.0.1 - ace: 9.1.0 - address-rfc2821: 0.1.1 - aff: 8.0.0 - aff-bus: 6.0.0 - aff-coroutines: 9.0.0 - aff-promise: 4.0.0 - aff-retry: 2.0.0 - affjax: 13.0.0 - affjax-node: 1.0.0 - affjax-web: 1.0.0 - ansi: 7.0.0 - apexcharts: 0.5.0 - applicative-phases: 1.0.0 - argonaut: 9.0.0 - argonaut-aeson-generic: 0.4.1 - argonaut-codecs: 9.1.0 - argonaut-core: 7.0.0 - argonaut-generic: 8.0.0 - argonaut-traversals: 10.0.0 - argparse-basic: 2.0.0 - array-builder: 0.1.2 - array-search: 0.6.0 - arraybuffer: 13.2.0 - arraybuffer-builder: 3.1.0 - arraybuffer-types: 3.0.2 - arrays: 7.3.0 - arrays-extra: 0.6.1 - arrays-zipper: 2.0.1 - ask: 1.0.0 - assert: 6.0.0 - assert-multiple: 0.4.0 - avar: 5.0.0 - b64: 0.0.8 - barbies: 1.0.1 - barlow-lens: 0.9.0 - bifunctors: 6.0.0 - bigints: 7.0.1 - bolson: 0.3.9 - bookhound: 0.1.7 - bower-json: 3.0.0 - call-by-name: 4.0.1 - canvas: 6.0.0 - canvas-action: 9.0.0 - cartesian: 1.0.6 - catenable-lists: 7.0.0 - cbor-stream: 1.3.0 - chameleon: 1.0.0 - chameleon-halogen: 1.0.3 - chameleon-react-basic: 1.1.0 - chameleon-styled: 2.5.0 - chameleon-transformers: 1.0.0 - channel: 1.0.0 - checked-exceptions: 3.1.1 - choku: 1.0.1 - classless: 0.1.1 - classless-arbitrary: 0.1.1 - classless-decode-json: 0.1.1 - classless-encode-json: 0.1.3 - classnames: 2.0.0 - codec: 6.1.0 - codec-argonaut: 10.0.0 - codec-json: 2.0.0 - colors: 7.0.1 - concur-core: 0.5.0 - concur-react: 0.5.0 - concurrent-queues: 3.0.0 - console: 6.1.0 - const: 6.0.0 - contravariant: 6.0.0 - control: 6.0.0 - convertable-options: 1.0.0 - coroutines: 7.0.0 - css: 6.0.0 - css-frameworks: 1.0.1 - csv-stream: 2.3.0 - data-mvc: 0.0.2 - datetime: 6.1.0 - datetime-parsing: 0.2.0 - debounce: 0.1.0 - debug: 6.0.2 - decimals: 7.1.0 - default-values: 1.0.1 - deku: 0.9.23 - deno: 0.0.5 - dissect: 1.0.0 - distributive: 6.0.0 - dom-filereader: 7.0.0 - dom-indexed: 12.0.0 - dom-simple: 0.4.0 - dotenv: 4.0.3 - droplet: 0.6.0 - dts: 1.0.0 - dual-numbers: 1.0.3 - dynamic-buffer: 3.0.1 - echarts-simple: 0.0.1 - effect: 4.0.0 - either: 6.1.0 - elmish: 0.13.0 - elmish-enzyme: 0.1.1 - elmish-hooks: 0.10.3 - elmish-html: 0.9.0 - elmish-testing-library: 0.3.2 - email-validate: 7.0.0 - encoding: 0.0.9 - enums: 6.0.1 - env-names: 0.4.0 - error: 2.0.0 - eta-conversion: 0.3.2 - exceptions: 6.1.0 - exists: 6.0.0 - exitcodes: 4.0.0 - expect-inferred: 3.0.0 - ezfetch: 1.0.0 - fahrtwind: 2.0.0 - fallback: 0.1.0 - fast-vect: 1.2.0 - fetch: 4.1.0 - fetch-argonaut: 1.0.1 - fetch-core: 5.1.0 - fetch-yoga-json: 1.1.0 - ffi-simple: 0.5.1 - fft-js: 0.1.0 - filterable: 5.0.0 - fix-functor: 0.1.0 - fixed-points: 7.0.0 - fixed-precision: 5.0.0 - flame: 1.3.0 - float32: 2.0.0 - fmt: 0.2.1 - foldable-traversable: 6.0.0 - foldable-traversable-extra: 0.0.6 - foreign: 7.0.0 - foreign-object: 4.1.0 - foreign-readwrite: 3.4.0 - forgetmenot: 0.1.0 - fork: 6.0.0 - form-urlencoded: 7.0.0 - formatters: 7.0.0 - framer-motion: 1.0.1 - free: 7.1.0 - freeap: 7.0.0 - freer-free: 0.0.1 - freet: 7.0.0 - functions: 6.0.0 - functor1: 3.0.0 - functors: 5.0.0 - fuzzy: 0.4.0 - gen: 4.0.0 - generate-values: 1.0.1 - generic-router: 0.0.1 - geojson: 0.0.5 - geometria: 2.2.0 - gojs: 0.1.1 - grain: 3.0.0 - grain-router: 3.0.0 - grain-virtualized: 3.0.0 - graphs: 8.1.0 - group: 4.1.1 - halogen: 7.0.0 - halogen-bootstrap5: 5.3.2 - halogen-canvas: 1.0.0 - halogen-css: 10.0.0 - halogen-echarts-simple: 0.0.4 - halogen-formless: 4.0.3 - halogen-helix: 1.0.1 - halogen-hooks: 0.6.3 - halogen-hooks-extra: 0.9.0 - halogen-infinite-scroll: 1.1.0 - halogen-store: 0.5.4 - halogen-storybook: 2.0.0 - halogen-subscriptions: 2.0.0 - halogen-svg-elems: 8.0.0 - halogen-typewriter: 1.0.4 - halogen-vdom: 8.0.0 - halogen-vdom-string-renderer: 0.5.0 - halogen-xterm: 2.0.0 - heckin: 2.0.1 - heterogeneous: 0.6.0 - homogeneous: 0.4.0 - http-methods: 6.0.0 - httpurple: 4.0.0 - huffman: 0.4.0 - humdrum: 0.0.1 - hyrule: 2.3.8 - identity: 6.0.0 - identy: 4.0.1 - indexed-db: 1.0.0 - indexed-monad: 3.0.0 - int64: 3.0.0 - integers: 6.0.0 - interpolate: 5.0.2 - intersection-observer: 1.0.1 - invariant: 6.0.0 - jarilo: 1.0.1 - jelly: 0.10.0 - jelly-router: 0.3.0 - jelly-signal: 0.4.0 - jest: 1.0.0 - js-abort-controller: 1.0.0 - js-bigints: 2.2.1 - js-date: 8.0.0 - js-fetch: 0.2.1 - js-fileio: 3.0.0 - js-intl: 1.0.4 - js-iterators: 0.1.1 - js-maps: 0.1.2 - js-promise: 1.0.0 - js-promise-aff: 1.0.0 - js-timers: 6.1.0 - js-uri: 3.1.0 - json: 1.1.0 - json-codecs: 5.0.0 - justifill: 0.5.0 - jwt: 0.0.9 - labeled-data: 0.2.0 - language-cst-parser: 0.14.0 - lazy: 6.0.0 - lazy-joe: 1.0.0 - lcg: 4.0.0 - leibniz: 5.0.0 - leveldb: 1.0.1 - liminal: 1.0.1 - linalg: 6.0.0 - lists: 7.0.0 - literals: 1.0.2 - logging: 3.0.0 - logging-journald: 0.4.0 - lumi-components: 18.0.0 - machines: 7.0.0 - maps-eager: 0.5.0 - marionette: 1.0.0 - marionette-react-basic-hooks: 0.1.1 - marked: 0.1.0 - matrices: 5.0.1 - matryoshka: 1.0.0 - maybe: 6.0.0 - media-types: 6.0.0 - meowclient: 1.0.0 - midi: 4.0.0 - milkis: 9.0.0 - minibench: 4.0.1 - mmorph: 7.0.0 - monad-control: 5.0.0 - monad-logger: 1.3.1 - monad-loops: 0.5.0 - monad-unlift: 1.0.1 - monoid-extras: 0.0.1 - monoidal: 0.16.0 - morello: 0.4.0 - mote: 3.0.0 - motsunabe: 2.0.0 - mvc: 0.0.1 - mysql: 6.0.1 - n3: 0.1.0 - nano-id: 1.1.0 - nanoid: 0.1.0 - naturals: 3.0.0 - nested-functor: 0.2.1 - newtype: 5.0.0 - nextjs: 0.1.1 - nextui: 0.2.0 - node-buffer: 9.0.0 - node-child-process: 11.1.0 - node-event-emitter: 3.0.0 - node-execa: 5.0.0 - node-fs: 9.2.0 - node-glob-basic: 1.3.0 - node-http: 9.1.0 - node-http2: 1.1.1 - node-human-signals: 1.0.0 - node-net: 5.1.0 - node-os: 5.1.0 - node-path: 5.0.0 - node-process: 11.2.0 - node-readline: 8.1.1 - node-sqlite3: 8.0.0 - node-stream-pipes: 2.1.6 - node-streams: 9.0.0 - node-tls: 0.3.1 - node-url: 7.0.1 - node-zlib: 0.4.0 - nonempty: 7.0.0 - now: 6.0.0 - npm-package-json: 2.0.0 - nullable: 6.0.0 - numberfield: 0.2.2 - numbers: 9.0.1 - oak: 3.1.1 - oak-debug: 1.2.2 - object-maps: 0.3.0 - ocarina: 1.5.4 - oooooooooorrrrrrrmm-lib: 0.0.1 - open-folds: 6.4.0 - open-foreign-generic: 11.0.3 - open-memoize: 6.2.0 - open-mkdirp-aff: 1.2.0 - open-pairing: 6.2.0 - open-smolder: 12.0.2 - options: 7.0.0 - optparse: 5.0.1 - ordered-collections: 3.2.0 - ordered-set: 0.4.0 - orders: 6.0.0 - owoify: 1.2.0 - pairs: 9.0.1 - parallel: 7.0.0 - parsing: 10.2.0 - parsing-dataview: 3.2.4 - partial: 4.0.0 - pathy: 9.0.0 - pha: 0.13.0 - phaser: 0.7.0 - phylio: 1.1.2 - pipes: 8.0.0 - pirates-charm: 0.0.1 - pmock: 0.9.0 - point-free: 1.0.0 - pointed-list: 0.5.1 - polymorphic-vectors: 4.0.0 - posix-types: 6.0.0 - postgresql: 2.0.19 - precise: 6.0.0 - precise-datetime: 7.0.0 - prelude: 6.0.1 - prettier-printer: 3.0.0 - priority-queue: 0.1.2 - profunctor: 6.0.1 - profunctor-lenses: 8.0.0 - protobuf: 4.3.0 - psa-utils: 8.0.0 - psci-support: 6.0.0 - punycode: 1.0.0 - qualified-do: 2.2.0 - quantities: 12.2.0 - quickcheck: 8.0.1 - quickcheck-combinators: 0.1.3 - quickcheck-laws: 7.0.0 - quickcheck-utf8: 0.0.0 - random: 6.0.0 - rationals: 6.0.0 - rdf: 0.1.0 - react: 11.0.0 - react-aria: 0.2.0 - react-basic: 17.0.0 - react-basic-classic: 3.0.0 - react-basic-dnd: 10.1.0 - react-basic-dom: 6.1.0 - react-basic-emotion: 7.1.0 - react-basic-hooks: 8.2.0 - react-basic-storybook: 2.0.0 - react-dom: 8.0.0 - react-halo: 3.0.0 - react-icons: 1.1.5 - react-markdown: 0.1.0 - react-testing-library: 4.0.1 - react-virtuoso: 1.0.0 - reactix: 0.6.1 - read: 1.0.1 - recharts: 1.1.0 - record: 4.0.0 - record-extra: 5.0.1 - record-ptional-fields: 0.1.2 - record-studio: 1.0.4 - refs: 6.0.0 - remotedata: 5.0.1 - repr: 0.5.0 - resize-observer: 1.0.0 - resource: 2.0.1 - resourcet: 1.0.0 - result: 1.0.3 - return: 0.2.0 - ring-modules: 5.0.1 - rito: 0.3.4 - roman: 0.4.0 - rough-notation: 1.0.2 - routing: 11.0.0 - routing-duplex: 0.7.0 - run: 5.0.0 - safe-coerce: 2.0.0 - safely: 4.0.1 - school-of-music: 1.3.0 - selection-foldable: 0.2.0 - selective-functors: 1.0.1 - semirings: 7.0.0 - signal: 13.0.0 - simple-emitter: 3.0.1 - simple-i18n: 2.0.1 - simple-json: 9.0.0 - simple-json-generics: 0.2.1 - simple-ulid: 3.0.0 - sized-matrices: 1.0.0 - sized-vectors: 5.0.2 - slug: 3.1.0 - small-ffi: 4.0.1 - soundfonts: 4.1.0 - sparse-matrices: 2.0.1 - sparse-polynomials: 3.0.1 - spec: 8.0.0 - spec-discovery: 8.3.0 - spec-mocha: 5.1.1 - spec-node: 0.0.2 - spec-quickcheck: 5.0.2 - spec-reporter-xunit: 0.7.1 - splitmix: 2.1.0 - ssrs: 1.0.0 - st: 6.2.0 - statistics: 0.3.2 - strictlypositiveint: 1.0.1 - string-parsers: 8.0.0 - strings: 6.0.1 - strings-extra: 4.0.0 - stringutils: 0.0.12 - substitute: 0.2.3 - supply: 0.2.0 - svg-parser: 3.0.0 - systemd-journald: 0.3.0 - tagged: 4.0.2 - tailrec: 6.1.0 - tecton: 0.2.1 - tecton-halogen: 0.2.0 - test-unit: 17.0.0 - thermite: 6.3.1 - thermite-dom: 0.3.1 - these: 6.0.0 - threading: 0.0.3 - tldr: 0.0.0 - toestand: 0.9.0 - transformation-matrix: 1.0.1 - transformers: 6.1.0 - tree-rose: 4.0.2 - ts-bridge: 4.0.0 - tuples: 7.0.0 - two-or-more: 1.0.0 - type-equality: 4.0.1 - typedenv: 2.0.1 - typelevel: 6.0.0 - typelevel-lists: 2.1.0 - typelevel-peano: 1.0.1 - typelevel-prelude: 7.0.0 - typelevel-regex: 0.0.3 - typelevel-rows: 0.1.0 - typisch: 0.4.0 - uint: 7.0.0 - ulid: 3.0.1 - uncurried-transformers: 1.1.0 - undefined: 2.0.0 - undefined-is-not-a-problem: 1.1.0 - unfoldable: 6.0.0 - unicode: 6.0.0 - unique: 0.6.1 - unlift: 1.0.1 - unordered-collections: 3.1.0 - unsafe-coerce: 6.0.0 - unsafe-reference: 5.0.0 - untagged-to-tagged: 0.1.4 - untagged-union: 1.0.0 - uri: 9.0.0 - url-immutable: 1.0.0 - uuid: 9.0.0 - uuidv4: 1.0.0 - validation: 6.0.0 - variant: 8.0.0 - variant-encodings: 2.0.0 - vectorfield: 1.0.1 - vectors: 2.1.0 - versions: 7.0.0 - visx: 0.0.2 - web-clipboard: 6.0.0 - web-cssom: 2.0.0 - web-cssom-view: 0.1.0 - web-dom: 6.0.0 - web-dom-parser: 8.0.0 - web-dom-xpath: 3.0.0 - web-encoding: 3.0.0 - web-events: 4.0.0 - web-fetch: 4.0.1 - web-file: 4.0.0 - web-geometry: 0.1.0 - web-html: 4.1.0 - web-pointerevents: 2.0.0 - web-proletarian: 1.0.0 - web-promise: 3.2.0 - web-resize-observer: 2.1.0 - web-router: 1.0.0 - web-socket: 4.0.0 - web-storage: 5.0.0 - web-streams: 4.0.0 - web-touchevents: 4.0.0 - web-uievents: 5.0.0 - web-url: 2.0.0 - web-workers: 1.1.0 - web-xhr: 5.0.1 - webextension-polyfill: 0.1.0 - webgpu: 0.0.1 - which: 2.0.0 - xterm: 1.0.0 - yoga-fetch: 1.0.1 - yoga-json: 5.1.0 - yoga-om: 0.1.0 - yoga-postgres: 6.0.0 - yoga-tree: 1.0.0 - z3: 0.0.2 - zipperarray: 2.0.0 - extra_packages: {} -packages: - aff: - type: registry - version: 8.0.0 - integrity: sha256-5MmdI4+0RHBtSBy+YlU3/Cq4R5W2ih3OaRedJIrVHdk= - dependencies: - - bifunctors - - control - - datetime - - effect - - either - - exceptions - - foldable-traversable - - functions - - maybe - - newtype - - parallel - - prelude - - refs - - tailrec - - transformers - - unsafe-coerce - aff-promise: - type: registry - version: 4.0.0 - integrity: sha256-Kq5EupbUpXeUXx4JqGQE7/RTTz/H6idzWhsocwlEFhM= - dependencies: - - aff - - foreign - ansi: - type: registry - version: 7.0.0 - integrity: sha256-ZMB6HD+q9CXvn9fRCmJ8dvuDrOVHcjombL3oNOerVnE= - dependencies: - - foldable-traversable - - lists - - strings - argonaut-codecs: - type: registry - version: 9.1.0 - integrity: sha256-N6efXByUeg848ompEqJfVvZuZPfdRYDGlTDFn0G0Oh8= - dependencies: - - argonaut-core - - arrays - - effect - - foreign-object - - identity - - integers - - maybe - - nonempty - - ordered-collections - - prelude - - record - argonaut-core: - type: registry - version: 7.0.0 - integrity: sha256-RC82GfAjItydxrO24cdX373KHVZiLqybu19b5X8u7B4= - dependencies: - - arrays - - control - - either - - foreign-object - - functions - - gen - - maybe - - nonempty - - prelude - - strings - - tailrec - arraybuffer-types: - type: registry - version: 3.0.2 - integrity: sha256-mQKokysYVkooS4uXbO+yovmV/s8b138Ws3zQvOwIHRA= - dependencies: [] - arrays: - type: registry - version: 7.3.0 - integrity: sha256-tmcklBlc/muUtUfr9RapdCPwnlQeB3aSrC4dK85gQlc= - dependencies: - - bifunctors - - control - - foldable-traversable - - functions - - maybe - - nonempty - - partial - - prelude - - safe-coerce - - st - - tailrec - - tuples - - unfoldable - - unsafe-coerce - avar: - type: registry - version: 5.0.0 - integrity: sha256-e7hf0x4hEpcygXP0LtvfvAQ49Bbj2aWtZT3gqM///0A= - dependencies: - - aff - - effect - - either - - exceptions - - functions - - maybe - bifunctors: - type: registry - version: 6.0.0 - integrity: sha256-/gZwC9YhNxZNQpnHa5BIYerCGM2jeX9ukZiEvYxm5Nw= - dependencies: - - const - - either - - newtype - - prelude - - tuples - catenable-lists: - type: registry - version: 7.0.0 - integrity: sha256-76vYENhwF4BWTBsjeLuErCH2jqVT4M3R1HX+4RwSftA= - dependencies: - - control - - foldable-traversable - - lists - - maybe - - prelude - - tuples - - unfoldable - console: - type: registry - version: 6.1.0 - integrity: sha256-CxmAzjgyuGDmt9FZW51VhV6rBPwR6o0YeKUzA9rSzcM= - dependencies: - - effect - - prelude - const: - type: registry - version: 6.0.0 - integrity: sha256-tNrxDW8D8H4jdHE2HiPzpLy08zkzJMmGHdRqt5BQuTc= - dependencies: - - invariant - - newtype - - prelude - contravariant: - type: registry - version: 6.0.0 - integrity: sha256-TP+ooAp3vvmdjfQsQJSichF5B4BPDHp3wAJoWchip6c= - dependencies: - - const - - either - - newtype - - prelude - - tuples - control: - type: registry - version: 6.0.0 - integrity: sha256-sH7Pg9E96JCPF9PIA6oQ8+BjTyO/BH1ZuE/bOcyj4Jk= - dependencies: - - newtype - - prelude - datetime: - type: registry - version: 6.1.0 - integrity: sha256-g/5X5BBegQWLpI9IWD+sY6mcaYpzzlW5lz5NBzaMtyI= - dependencies: - - bifunctors - - control - - either - - enums - - foldable-traversable - - functions - - gen - - integers - - lists - - maybe - - newtype - - numbers - - ordered-collections - - partial - - prelude - - tuples - distributive: - type: registry - version: 6.0.0 - integrity: sha256-HTDdmEnzigMl+02SJB88j+gAXDx9VKsbvR4MJGDPbOQ= - dependencies: - - identity - - newtype - - prelude - - tuples - - type-equality - effect: - type: registry - version: 4.0.0 - integrity: sha256-eBtZu+HZcMa5HilvI6kaDyVX3ji8p0W9MGKy2K4T6+M= - dependencies: - - prelude - either: - type: registry - version: 6.1.0 - integrity: sha256-6hgTPisnMWVwQivOu2PKYcH8uqjEOOqDyaDQVUchTpY= - dependencies: - - control - - invariant - - maybe - - prelude - enums: - type: registry - version: 6.0.1 - integrity: sha256-HWaD73JFLorc4A6trKIRUeDMdzE+GpkJaEOM1nTNkC8= - dependencies: - - control - - either - - gen - - maybe - - newtype - - nonempty - - partial - - prelude - - tuples - - unfoldable - exceptions: - type: registry - version: 6.1.0 - integrity: sha256-K0T89IHtF3vBY7eSAO7eDOqSb2J9kZGAcDN5+IKsF8E= - dependencies: - - effect - - either - - maybe - - prelude - exists: - type: registry - version: 6.0.0 - integrity: sha256-A0JQHpTfo1dNOj9U5/Fd3xndlRSE0g2IQWOGor2yXn8= - dependencies: - - unsafe-coerce - exitcodes: - type: registry - version: 4.0.0 - integrity: sha256-4wxViTbyOoyKJ/WaRGI6+hZmgMKI5Miv16lSwefiLSM= - dependencies: - - enums - foldable-traversable: - type: registry - version: 6.0.0 - integrity: sha256-fLeqRYM4jUrZD5H4WqcwUgzU7XfYkzO4zhgtNc3jcWM= - dependencies: - - bifunctors - - const - - control - - either - - functors - - identity - - maybe - - newtype - - orders - - prelude - - tuples - foreign: - type: registry - version: 7.0.0 - integrity: sha256-1ORiqoS3HW+qfwSZAppHPWy4/6AQysxZ2t29jcdUMNA= - dependencies: - - either - - functions - - identity - - integers - - lists - - maybe - - prelude - - strings - - transformers - foreign-object: - type: registry - version: 4.1.0 - integrity: sha256-q24okj6mT+yGHYQ+ei/pYPj5ih6sTbu7eDv/WU56JVo= - dependencies: - - arrays - - foldable-traversable - - functions - - gen - - lists - - maybe - - prelude - - st - - tailrec - - tuples - - typelevel-prelude - - unfoldable - fork: - type: registry - version: 6.0.0 - integrity: sha256-X7u0SuCvFbLbzuNEKLBNuWjmcroqMqit4xEzpQwAP7E= - dependencies: - - aff - free: - type: registry - version: 7.1.0 - integrity: sha256-JAumgEsGSzJCNLD8AaFvuX7CpqS5yruCngi6yI7+V5k= - dependencies: - - catenable-lists - - control - - distributive - - either - - exists - - foldable-traversable - - invariant - - lazy - - maybe - - prelude - - tailrec - - transformers - - tuples - - unsafe-coerce - functions: - type: registry - version: 6.0.0 - integrity: sha256-adMyJNEnhGde2unHHAP79gPtlNjNqzgLB8arEOn9hLI= - dependencies: - - prelude - functors: - type: registry - version: 5.0.0 - integrity: sha256-zfPWWYisbD84MqwpJSZFlvM6v86McM68ob8p9s27ywU= - dependencies: - - bifunctors - - const - - contravariant - - control - - distributive - - either - - invariant - - maybe - - newtype - - prelude - - profunctor - - tuples - - unsafe-coerce - gen: - type: registry - version: 4.0.0 - integrity: sha256-f7yzAXWwr+xnaqEOcvyO3ezKdoes8+WXWdXIHDBCAPI= - dependencies: - - either - - foldable-traversable - - identity - - maybe - - newtype - - nonempty - - prelude - - tailrec - - tuples - - unfoldable - identity: - type: registry - version: 6.0.0 - integrity: sha256-4wY0XZbAksjY6UAg99WkuKyJlQlWAfTi2ssadH0wVMY= - dependencies: - - control - - invariant - - newtype - - prelude - integers: - type: registry - version: 6.0.0 - integrity: sha256-sf+sK26R1hzwl3NhXR7WAu9zCDjQnfoXwcyGoseX158= - dependencies: - - maybe - - numbers - - prelude - invariant: - type: registry - version: 6.0.0 - integrity: sha256-RGWWyYrz0Hs1KjPDA+87Kia67ZFBhfJ5lMGOMCEFoLo= - dependencies: - - control - - prelude - js-date: - type: registry - version: 8.0.0 - integrity: sha256-6TVF4DWg5JL+jRAsoMssYw8rgOVALMUHT1CuNZt8NRo= - dependencies: - - datetime - - effect - - exceptions - - foreign - - integers - - now - lazy: - type: registry - version: 6.0.0 - integrity: sha256-lMsfFOnlqfe4KzRRiW8ot5ge6HtcU3Eyh2XkXcP5IgU= - dependencies: - - control - - foldable-traversable - - invariant - - prelude - lists: - type: registry - version: 7.0.0 - integrity: sha256-EKF15qYqucuXP2lT/xPxhqy58f0FFT6KHdIB/yBOayI= - dependencies: - - bifunctors - - control - - foldable-traversable - - lazy - - maybe - - newtype - - nonempty - - partial - - prelude - - tailrec - - tuples - - unfoldable - maybe: - type: registry - version: 6.0.0 - integrity: sha256-5cCIb0wPwbat2PRkQhUeZO0jcAmf8jCt2qE0wbC3v2Q= - dependencies: - - control - - invariant - - newtype - - prelude - mmorph: - type: registry - version: 7.0.0 - integrity: sha256-urZlZNNqGeQFe5D/ClHlR8QgGBNHTMFPtJ5S5IpflTQ= - dependencies: - - free - - functors - - transformers - newtype: - type: registry - version: 5.0.0 - integrity: sha256-gdrQu8oGe9eZE6L3wOI8ql/igOg+zEGB5ITh2g+uttw= - dependencies: - - prelude - - safe-coerce - node-buffer: - type: registry - version: 9.0.0 - integrity: sha256-PWE2DJ5ruBLCmeA/fUiuySEFmUJ/VuRfyrnCuVZBlu4= - dependencies: - - arraybuffer-types - - effect - - maybe - - nullable - - st - - unsafe-coerce - node-event-emitter: - type: registry - version: 3.0.0 - integrity: sha256-Qw0MjsT4xRH2j2i4K8JmRjcMKnH5z1Cw39t00q4LE4w= - dependencies: - - effect - - either - - functions - - maybe - - nullable - - prelude - - unsafe-coerce - node-fs: - type: registry - version: 9.2.0 - integrity: sha256-Sg0vkXycEzkEerX6hLccz21Ygd9w1+QSk1thotRZPGI= - dependencies: - - datetime - - effect - - either - - enums - - exceptions - - functions - - integers - - js-date - - maybe - - node-buffer - - node-path - - node-streams - - nullable - - partial - - prelude - - strings - - unsafe-coerce - node-path: - type: registry - version: 5.0.0 - integrity: sha256-pd82nQ+2l5UThzaxPdKttgDt7xlsgIDLpPG0yxDEdyE= - dependencies: - - effect - node-process: - type: registry - version: 11.2.0 - integrity: sha256-+2MQDYChjGbVbapCyJtuWYwD41jk+BntF/kcOTKBMVs= - dependencies: - - effect - - foreign - - foreign-object - - maybe - - node-event-emitter - - node-streams - - posix-types - - prelude - - unsafe-coerce - node-streams: - type: registry - version: 9.0.0 - integrity: sha256-2n6dq7YWleTDmD1Kur/ul7Cn08IvWrScgPf+0PgX2TQ= - dependencies: - - aff - - effect - - either - - exceptions - - node-buffer - - node-event-emitter - - nullable - - prelude - nonempty: - type: registry - version: 7.0.0 - integrity: sha256-54ablJZUHGvvlTJzi3oXyPCuvY6zsrWJuH/dMJ/MFLs= - dependencies: - - control - - foldable-traversable - - maybe - - prelude - - tuples - - unfoldable - now: - type: registry - version: 6.0.0 - integrity: sha256-xZ7x37ZMREfs6GCDw/h+FaKHV/3sPWmtqBZRGTxybQY= - dependencies: - - datetime - - effect - nullable: - type: registry - version: 6.0.0 - integrity: sha256-yiGBVl3AD+Guy4kNWWeN+zl1gCiJK+oeIFtZtPCw4+o= - dependencies: - - effect - - functions - - maybe - numbers: - type: registry - version: 9.0.1 - integrity: sha256-/9M6aeMDBdB4cwYDeJvLFprAHZ49EbtKQLIJsneXLIk= - dependencies: - - functions - - maybe - open-memoize: - type: registry - version: 6.2.0 - integrity: sha256-p1m7wF3aHQ80yUvqMs20OTMl496WS6YpKlmI2Nkg9j0= - dependencies: - - either - - integers - - lazy - - lists - - maybe - - partial - - prelude - - strings - - tuples - optparse: - type: registry - version: 5.0.1 - integrity: sha256-cEzEkNW4q0gZlXl4z0zn+H2vs6l2UAp7NPHCsois73k= - dependencies: - - aff - - arrays - - bifunctors - - console - - control - - effect - - either - - enums - - exists - - exitcodes - - foldable-traversable - - free - - gen - - integers - - lazy - - lists - - maybe - - newtype - - node-buffer - - node-process - - node-streams - - nonempty - - numbers - - open-memoize - - partial - - prelude - - strings - - tailrec - - transformers - - tuples - ordered-collections: - type: registry - version: 3.2.0 - integrity: sha256-o9jqsj5rpJmMdoe/zyufWHFjYYFTTsJpgcuCnqCO6PM= - dependencies: - - arrays - - foldable-traversable - - gen - - lists - - maybe - - partial - - prelude - - st - - tailrec - - tuples - - unfoldable - orders: - type: registry - version: 6.0.0 - integrity: sha256-nBA0g3/ai0euH8q9pSbGqk53W2q6agm/dECZTHcoink= - dependencies: - - newtype - - prelude - parallel: - type: registry - version: 7.0.0 - integrity: sha256-gUC9i4Txnx9K9RcMLsjujbwZz6BB1bnE2MLvw4GIw5o= - dependencies: - - control - - effect - - either - - foldable-traversable - - functors - - maybe - - newtype - - prelude - - profunctor - - refs - - transformers - partial: - type: registry - version: 4.0.0 - integrity: sha256-fwXerld6Xw1VkReh8yeQsdtLVrjfGiVuC5bA1Wyo/J4= - dependencies: [] - pipes: - type: registry - version: 8.0.0 - integrity: sha256-kvfqGM4cPA/wCcBHbp5psouFw5dZGvku2462x7ZBwSY= - dependencies: - - aff - - lists - - mmorph - - prelude - - tailrec - - transformers - - tuples - posix-types: - type: registry - version: 6.0.0 - integrity: sha256-ZfFz8RR1lee/o/Prccyeut3Q+9tYd08mlR72sIh6GzA= - dependencies: - - maybe - - prelude - prelude: - type: registry - version: 6.0.1 - integrity: sha256-o8p6SLYmVPqzXZhQFd2hGAWEwBoXl1swxLG/scpJ0V0= - dependencies: [] - profunctor: - type: registry - version: 6.0.1 - integrity: sha256-E58hSYdJvF2Qjf9dnWLPlJKh2Z2fLfFLkQoYi16vsFk= - dependencies: - - control - - distributive - - either - - exists - - invariant - - newtype - - prelude - - tuples - record: - type: registry - version: 4.0.0 - integrity: sha256-Za5U85bTRJEfGK5Sk4hM41oXy84YQI0I8TL3WUn1Qzg= - dependencies: - - functions - - prelude - - unsafe-coerce - refs: - type: registry - version: 6.0.0 - integrity: sha256-Vgwne7jIbD3ZMoLNNETLT8Litw6lIYo3MfYNdtYWj9s= - dependencies: - - effect - - prelude - safe-coerce: - type: registry - version: 2.0.0 - integrity: sha256-a1ibQkiUcbODbLE/WAq7Ttbbh9ex+x33VCQ7GngKudU= - dependencies: - - unsafe-coerce - spec: - type: registry - version: 8.0.0 - integrity: sha256-Yn7MhDai1YULlQF45+9FTOTf2rcjoda1Jf2IrEFCoeg= - dependencies: - - aff - - ansi - - arrays - - avar - - bifunctors - - control - - datetime - - effect - - either - - exceptions - - foldable-traversable - - fork - - identity - - integers - - lists - - maybe - - newtype - - now - - ordered-collections - - parallel - - pipes - - prelude - - refs - - strings - - tailrec - - transformers - - tuples - spec-node: - type: registry - version: 0.0.2 - integrity: sha256-2SZRy6QjokHms6+d150pShlbnOg+9XWYkrUUdX/QDjc= - dependencies: - - aff - - argonaut-codecs - - argonaut-core - - arrays - - control - - datetime - - effect - - either - - foldable-traversable - - identity - - integers - - maybe - - newtype - - node-buffer - - node-fs - - node-process - - now - - numbers - - optparse - - ordered-collections - - partial - - prelude - - spec - - strings - - tuples - st: - type: registry - version: 6.2.0 - integrity: sha256-z9X0WsOUlPwNx9GlCC+YccCyz8MejC8Wb0C4+9fiBRY= - dependencies: - - partial - - prelude - - tailrec - - unsafe-coerce - strings: - type: registry - version: 6.0.1 - integrity: sha256-WssD3DbX4OPzxSdjvRMX0yvc9+pS7n5gyPv5I2Trb7k= - dependencies: - - arrays - - control - - either - - enums - - foldable-traversable - - gen - - integers - - maybe - - newtype - - nonempty - - partial - - prelude - - tailrec - - tuples - - unfoldable - - unsafe-coerce - tailrec: - type: registry - version: 6.1.0 - integrity: sha256-Xx19ECVDRrDWpz9D2GxQHHV89vd61dnXxQm0IcYQHGk= - dependencies: - - bifunctors - - effect - - either - - identity - - maybe - - partial - - prelude - - refs - transformers: - type: registry - version: 6.1.0 - integrity: sha256-3Bm+Z6tsC/paG888XkywDngJ2JMos+JfOhRlkVfb7gI= - dependencies: - - control - - distributive - - effect - - either - - exceptions - - foldable-traversable - - identity - - lazy - - maybe - - newtype - - prelude - - st - - tailrec - - tuples - - unfoldable - tuples: - type: registry - version: 7.0.0 - integrity: sha256-1rXgTomes9105BjgXqIw0FL6Fz1lqqUTLWOumhWec1M= - dependencies: - - control - - invariant - - prelude - type-equality: - type: registry - version: 4.0.1 - integrity: sha256-Hs9D6Y71zFi/b+qu5NSbuadUQXe5iv5iWx0226vOHUw= - dependencies: [] - typelevel-prelude: - type: registry - version: 7.0.0 - integrity: sha256-uFF2ph+vHcQpfPuPf2a3ukJDFmLhApmkpTMviHIWgJM= - dependencies: - - prelude - - type-equality - unfoldable: - type: registry - version: 6.0.0 - integrity: sha256-JtikvJdktRap7vr/K4ITlxUX1QexpnqBq0G/InLr6eg= - dependencies: - - foldable-traversable - - maybe - - partial - - prelude - - tuples - unsafe-coerce: - type: registry - version: 6.0.0 - integrity: sha256-IqIYW4Vkevn8sI+6aUwRGvd87tVL36BBeOr0cGAE7t0= - dependencies: [] +{ + "workspace": { + "packages": { + "spec-discovery": { + "path": "./", + "core": { + "dependencies": [ + "aff", + "aff-promise", + "effect", + "foldable-traversable", + "prelude", + "spec", + { + "spec-node": ">=0.0.2 <0.0.3" + } + ], + "build_plan": [ + "aff", + "aff-promise", + "ansi", + "argonaut-codecs", + "argonaut-core", + "arraybuffer-types", + "arrays", + "avar", + "bifunctors", + "catenable-lists", + "console", + "const", + "contravariant", + "control", + "datetime", + "distributive", + "effect", + "either", + "enums", + "exceptions", + "exists", + "exitcodes", + "foldable-traversable", + "foreign", + "foreign-object", + "fork", + "free", + "functions", + "functors", + "gen", + "identity", + "integers", + "invariant", + "js-date", + "lazy", + "lists", + "maybe", + "mmorph", + "newtype", + "node-buffer", + "node-event-emitter", + "node-fs", + "node-path", + "node-process", + "node-streams", + "nonempty", + "now", + "nullable", + "numbers", + "open-memoize", + "optparse", + "ordered-collections", + "orders", + "parallel", + "partial", + "pipes", + "posix-types", + "prelude", + "profunctor", + "record", + "refs", + "safe-coerce", + "spec", + "spec-node", + "st", + "strings", + "tailrec", + "transformers", + "tuples", + "type-equality", + "typelevel-prelude", + "unfoldable", + "unsafe-coerce" + ] + }, + "test": { + "dependencies": [], + "build_plan": [] + } + } + }, + "package_set": { + "address": { + "registry": "60.2.1" + }, + "compiler": ">=0.15.15 <0.16.0", + "content": { + "abc-parser": "2.0.1", + "ace": "9.1.0", + "address-rfc2821": "0.1.1", + "aff": "8.0.0", + "aff-bus": "6.0.0", + "aff-coroutines": "9.0.0", + "aff-promise": "4.0.0", + "aff-retry": "2.0.0", + "affjax": "13.0.0", + "affjax-node": "1.0.0", + "affjax-web": "1.0.0", + "ansi": "7.0.0", + "apexcharts": "0.5.0", + "applicative-phases": "1.0.0", + "argonaut": "9.0.0", + "argonaut-aeson-generic": "0.4.1", + "argonaut-codecs": "9.1.0", + "argonaut-core": "7.0.0", + "argonaut-generic": "8.0.0", + "argonaut-traversals": "10.0.0", + "argparse-basic": "2.0.0", + "array-builder": "0.1.2", + "array-search": "0.6.0", + "arraybuffer": "13.2.0", + "arraybuffer-builder": "3.1.0", + "arraybuffer-types": "3.0.2", + "arrays": "7.3.0", + "arrays-extra": "0.6.1", + "arrays-zipper": "2.0.1", + "ask": "1.0.0", + "assert": "6.0.0", + "assert-multiple": "0.4.0", + "avar": "5.0.0", + "b64": "0.0.8", + "barbies": "1.0.1", + "barlow-lens": "0.9.0", + "bifunctors": "6.0.0", + "bigints": "7.0.1", + "bolson": "0.3.9", + "bookhound": "0.1.7", + "bower-json": "3.0.0", + "call-by-name": "4.0.1", + "canvas": "6.0.0", + "canvas-action": "9.0.0", + "cartesian": "1.0.6", + "catenable-lists": "7.0.0", + "cbor-stream": "1.3.0", + "chameleon": "1.0.0", + "chameleon-halogen": "1.0.3", + "chameleon-react-basic": "1.1.0", + "chameleon-styled": "2.5.0", + "chameleon-transformers": "1.0.0", + "channel": "1.0.0", + "checked-exceptions": "3.1.1", + "choku": "1.0.1", + "classless": "0.1.1", + "classless-arbitrary": "0.1.1", + "classless-decode-json": "0.1.1", + "classless-encode-json": "0.1.3", + "classnames": "2.0.0", + "codec": "6.1.0", + "codec-argonaut": "10.0.0", + "codec-json": "2.0.0", + "colors": "7.0.1", + "concur-core": "0.5.0", + "concur-react": "0.5.0", + "concurrent-queues": "3.0.0", + "console": "6.1.0", + "const": "6.0.0", + "contravariant": "6.0.0", + "control": "6.0.0", + "convertable-options": "1.0.0", + "coroutines": "7.0.0", + "css": "6.0.0", + "css-frameworks": "1.0.1", + "csv-stream": "2.3.0", + "data-mvc": "0.0.2", + "datetime": "6.1.0", + "datetime-parsing": "0.2.0", + "debounce": "0.1.0", + "debug": "6.0.2", + "decimals": "7.1.0", + "default-values": "1.0.1", + "deku": "0.9.23", + "deno": "0.0.5", + "dissect": "1.0.0", + "distributive": "6.0.0", + "dom-filereader": "7.0.0", + "dom-indexed": "12.0.0", + "dom-simple": "0.4.0", + "dotenv": "4.0.3", + "droplet": "0.6.0", + "dts": "1.0.0", + "dual-numbers": "1.0.3", + "dynamic-buffer": "3.0.1", + "echarts-simple": "0.0.1", + "effect": "4.0.0", + "either": "6.1.0", + "elmish": "0.13.0", + "elmish-enzyme": "0.1.1", + "elmish-hooks": "0.10.3", + "elmish-html": "0.9.0", + "elmish-testing-library": "0.3.2", + "email-validate": "7.0.0", + "encoding": "0.0.9", + "enums": "6.0.1", + "env-names": "0.4.0", + "error": "2.0.0", + "eta-conversion": "0.3.2", + "exceptions": "6.1.0", + "exists": "6.0.0", + "exitcodes": "4.0.0", + "expect-inferred": "3.0.0", + "ezfetch": "1.0.0", + "fahrtwind": "2.0.0", + "fallback": "0.1.0", + "fast-vect": "1.2.0", + "fetch": "4.1.0", + "fetch-argonaut": "1.0.1", + "fetch-core": "5.1.0", + "fetch-yoga-json": "1.1.0", + "ffi-simple": "0.5.1", + "fft-js": "0.1.0", + "filterable": "5.0.0", + "fix-functor": "0.1.0", + "fixed-points": "7.0.0", + "fixed-precision": "5.0.0", + "flame": "1.3.0", + "float32": "2.0.0", + "fmt": "0.2.1", + "foldable-traversable": "6.0.0", + "foldable-traversable-extra": "0.0.6", + "foreign": "7.0.0", + "foreign-object": "4.1.0", + "foreign-readwrite": "3.4.0", + "forgetmenot": "0.1.0", + "fork": "6.0.0", + "form-urlencoded": "7.0.0", + "formatters": "7.0.0", + "framer-motion": "1.0.1", + "free": "7.1.0", + "freeap": "7.0.0", + "freer-free": "0.0.1", + "freet": "7.0.0", + "functions": "6.0.0", + "functor1": "3.0.0", + "functors": "5.0.0", + "fuzzy": "0.4.0", + "gen": "4.0.0", + "generate-values": "1.0.1", + "generic-router": "0.0.1", + "geojson": "0.0.5", + "geometria": "2.2.0", + "gojs": "0.1.1", + "grain": "3.0.0", + "grain-router": "3.0.0", + "grain-virtualized": "3.0.0", + "graphs": "8.1.0", + "group": "4.1.1", + "halogen": "7.0.0", + "halogen-bootstrap5": "5.3.2", + "halogen-canvas": "1.0.0", + "halogen-css": "10.0.0", + "halogen-echarts-simple": "0.0.4", + "halogen-formless": "4.0.3", + "halogen-helix": "1.0.1", + "halogen-hooks": "0.6.3", + "halogen-hooks-extra": "0.9.0", + "halogen-infinite-scroll": "1.1.0", + "halogen-store": "0.5.4", + "halogen-storybook": "2.0.0", + "halogen-subscriptions": "2.0.0", + "halogen-svg-elems": "8.0.0", + "halogen-typewriter": "1.0.4", + "halogen-vdom": "8.0.0", + "halogen-vdom-string-renderer": "0.5.0", + "halogen-xterm": "2.0.0", + "heckin": "2.0.1", + "heterogeneous": "0.6.0", + "homogeneous": "0.4.0", + "http-methods": "6.0.0", + "httpurple": "4.0.0", + "huffman": "0.4.0", + "humdrum": "0.0.1", + "hyrule": "2.3.8", + "identity": "6.0.0", + "identy": "4.0.1", + "indexed-db": "1.0.0", + "indexed-monad": "3.0.0", + "int64": "3.0.0", + "integers": "6.0.0", + "interpolate": "5.0.2", + "intersection-observer": "1.0.1", + "invariant": "6.0.0", + "jarilo": "1.0.1", + "jelly": "0.10.0", + "jelly-router": "0.3.0", + "jelly-signal": "0.4.0", + "jest": "1.0.0", + "js-abort-controller": "1.0.0", + "js-bigints": "2.2.1", + "js-date": "8.0.0", + "js-fetch": "0.2.1", + "js-fileio": "3.0.0", + "js-intl": "1.0.4", + "js-iterators": "0.1.1", + "js-maps": "0.1.2", + "js-promise": "1.0.0", + "js-promise-aff": "1.0.0", + "js-timers": "6.1.0", + "js-uri": "3.1.0", + "json": "1.1.0", + "json-codecs": "5.0.0", + "justifill": "0.5.0", + "jwt": "0.0.9", + "labeled-data": "0.2.0", + "language-cst-parser": "0.14.0", + "lazy": "6.0.0", + "lazy-joe": "1.0.0", + "lcg": "4.0.0", + "leibniz": "5.0.0", + "leveldb": "1.0.1", + "liminal": "1.0.1", + "linalg": "6.0.0", + "lists": "7.0.0", + "literals": "1.0.2", + "logging": "3.0.0", + "logging-journald": "0.4.0", + "lumi-components": "18.0.0", + "machines": "7.0.0", + "maps-eager": "0.5.0", + "marionette": "1.0.0", + "marionette-react-basic-hooks": "0.1.1", + "marked": "0.1.0", + "matrices": "5.0.1", + "matryoshka": "1.0.0", + "maybe": "6.0.0", + "media-types": "6.0.0", + "meowclient": "1.0.0", + "midi": "4.0.0", + "milkis": "9.0.0", + "minibench": "4.0.1", + "mmorph": "7.0.0", + "monad-control": "5.0.0", + "monad-logger": "1.3.1", + "monad-loops": "0.5.0", + "monad-unlift": "1.0.1", + "monoid-extras": "0.0.1", + "monoidal": "0.16.0", + "morello": "0.4.0", + "mote": "3.0.0", + "motsunabe": "2.0.0", + "mvc": "0.0.1", + "mysql": "6.0.1", + "n3": "0.1.0", + "nano-id": "1.1.0", + "nanoid": "0.1.0", + "naturals": "3.0.0", + "nested-functor": "0.2.1", + "newtype": "5.0.0", + "nextjs": "0.1.1", + "nextui": "0.2.0", + "node-buffer": "9.0.0", + "node-child-process": "11.1.0", + "node-event-emitter": "3.0.0", + "node-execa": "5.0.0", + "node-fs": "9.2.0", + "node-glob-basic": "1.3.0", + "node-http": "9.1.0", + "node-http2": "1.1.1", + "node-human-signals": "1.0.0", + "node-net": "5.1.0", + "node-os": "5.1.0", + "node-path": "5.0.0", + "node-process": "11.2.0", + "node-readline": "8.1.1", + "node-sqlite3": "8.0.0", + "node-stream-pipes": "2.1.6", + "node-streams": "9.0.0", + "node-tls": "0.3.1", + "node-url": "7.0.1", + "node-zlib": "0.4.0", + "nonempty": "7.0.0", + "now": "6.0.0", + "npm-package-json": "2.0.0", + "nullable": "6.0.0", + "numberfield": "0.2.2", + "numbers": "9.0.1", + "oak": "3.1.1", + "oak-debug": "1.2.2", + "object-maps": "0.3.0", + "ocarina": "1.5.4", + "oooooooooorrrrrrrmm-lib": "0.0.1", + "open-folds": "6.4.0", + "open-foreign-generic": "11.0.3", + "open-memoize": "6.2.0", + "open-mkdirp-aff": "1.2.0", + "open-pairing": "6.2.0", + "open-smolder": "12.0.2", + "options": "7.0.0", + "optparse": "5.0.1", + "ordered-collections": "3.2.0", + "ordered-set": "0.4.0", + "orders": "6.0.0", + "owoify": "1.2.0", + "pairs": "9.0.1", + "parallel": "7.0.0", + "parsing": "10.2.0", + "parsing-dataview": "3.2.4", + "partial": "4.0.0", + "pathy": "9.0.0", + "pha": "0.13.0", + "phaser": "0.7.0", + "phylio": "1.1.2", + "pipes": "8.0.0", + "pirates-charm": "0.0.1", + "pmock": "0.9.0", + "point-free": "1.0.0", + "pointed-list": "0.5.1", + "polymorphic-vectors": "4.0.0", + "posix-types": "6.0.0", + "postgresql": "2.0.19", + "precise": "6.0.0", + "precise-datetime": "7.0.0", + "prelude": "6.0.1", + "prettier-printer": "3.0.0", + "priority-queue": "0.1.2", + "profunctor": "6.0.1", + "profunctor-lenses": "8.0.0", + "protobuf": "4.3.0", + "psa-utils": "8.0.0", + "psci-support": "6.0.0", + "punycode": "1.0.0", + "qualified-do": "2.2.0", + "quantities": "12.2.0", + "quickcheck": "8.0.1", + "quickcheck-combinators": "0.1.3", + "quickcheck-laws": "7.0.0", + "quickcheck-utf8": "0.0.0", + "random": "6.0.0", + "rationals": "6.0.0", + "rdf": "0.1.0", + "react": "11.0.0", + "react-aria": "0.2.0", + "react-basic": "17.0.0", + "react-basic-classic": "3.0.0", + "react-basic-dnd": "10.1.0", + "react-basic-dom": "6.1.0", + "react-basic-emotion": "7.1.0", + "react-basic-hooks": "8.2.0", + "react-basic-storybook": "2.0.0", + "react-dom": "8.0.0", + "react-halo": "3.0.0", + "react-icons": "1.1.5", + "react-markdown": "0.1.0", + "react-testing-library": "4.0.1", + "react-virtuoso": "1.0.0", + "reactix": "0.6.1", + "read": "1.0.1", + "recharts": "1.1.0", + "record": "4.0.0", + "record-extra": "5.0.1", + "record-ptional-fields": "0.1.2", + "record-studio": "1.0.4", + "refs": "6.0.0", + "remotedata": "5.0.1", + "repr": "0.5.0", + "resize-observer": "1.0.0", + "resource": "2.0.1", + "resourcet": "1.0.0", + "result": "1.0.3", + "return": "0.2.0", + "ring-modules": "5.0.1", + "rito": "0.3.4", + "roman": "0.4.0", + "rough-notation": "1.0.2", + "routing": "11.0.0", + "routing-duplex": "0.7.0", + "run": "5.0.0", + "safe-coerce": "2.0.0", + "safely": "4.0.1", + "school-of-music": "1.3.0", + "selection-foldable": "0.2.0", + "selective-functors": "1.0.1", + "semirings": "7.0.0", + "signal": "13.0.0", + "simple-emitter": "3.0.1", + "simple-i18n": "2.0.1", + "simple-json": "9.0.0", + "simple-json-generics": "0.2.1", + "simple-ulid": "3.0.0", + "sized-matrices": "1.0.0", + "sized-vectors": "5.0.2", + "slug": "3.1.0", + "small-ffi": "4.0.1", + "soundfonts": "4.1.0", + "sparse-matrices": "2.0.1", + "sparse-polynomials": "3.0.1", + "spec": "8.0.0", + "spec-discovery": "8.3.0", + "spec-mocha": "5.1.1", + "spec-node": "0.0.2", + "spec-quickcheck": "5.0.2", + "spec-reporter-xunit": "0.7.1", + "splitmix": "2.1.0", + "ssrs": "1.0.0", + "st": "6.2.0", + "statistics": "0.3.2", + "strictlypositiveint": "1.0.1", + "string-parsers": "8.0.0", + "strings": "6.0.1", + "strings-extra": "4.0.0", + "stringutils": "0.0.12", + "substitute": "0.2.3", + "supply": "0.2.0", + "svg-parser": "3.0.0", + "systemd-journald": "0.3.0", + "tagged": "4.0.2", + "tailrec": "6.1.0", + "tecton": "0.2.1", + "tecton-halogen": "0.2.0", + "test-unit": "17.0.0", + "thermite": "6.3.1", + "thermite-dom": "0.3.1", + "these": "6.0.0", + "threading": "0.0.3", + "tldr": "0.0.0", + "toestand": "0.9.0", + "transformation-matrix": "1.0.1", + "transformers": "6.1.0", + "tree-rose": "4.0.2", + "ts-bridge": "4.0.0", + "tuples": "7.0.0", + "two-or-more": "1.0.0", + "type-equality": "4.0.1", + "typedenv": "2.0.1", + "typelevel": "6.0.0", + "typelevel-lists": "2.1.0", + "typelevel-peano": "1.0.1", + "typelevel-prelude": "7.0.0", + "typelevel-regex": "0.0.3", + "typelevel-rows": "0.1.0", + "typisch": "0.4.0", + "uint": "7.0.0", + "ulid": "3.0.1", + "uncurried-transformers": "1.1.0", + "undefined": "2.0.0", + "undefined-is-not-a-problem": "1.1.0", + "unfoldable": "6.0.0", + "unicode": "6.0.0", + "unique": "0.6.1", + "unlift": "1.0.1", + "unordered-collections": "3.1.0", + "unsafe-coerce": "6.0.0", + "unsafe-reference": "5.0.0", + "untagged-to-tagged": "0.1.4", + "untagged-union": "1.0.0", + "uri": "9.0.0", + "url-immutable": "1.0.0", + "uuid": "9.0.0", + "uuidv4": "1.0.0", + "validation": "6.0.0", + "variant": "8.0.0", + "variant-encodings": "2.0.0", + "vectorfield": "1.0.1", + "vectors": "2.1.0", + "versions": "7.0.0", + "visx": "0.0.2", + "web-clipboard": "6.0.0", + "web-cssom": "2.0.0", + "web-cssom-view": "0.1.0", + "web-dom": "6.0.0", + "web-dom-parser": "8.0.0", + "web-dom-xpath": "3.0.0", + "web-encoding": "3.0.0", + "web-events": "4.0.0", + "web-fetch": "4.0.1", + "web-file": "4.0.0", + "web-geometry": "0.1.0", + "web-html": "4.1.0", + "web-pointerevents": "2.0.0", + "web-proletarian": "1.0.0", + "web-promise": "3.2.0", + "web-resize-observer": "2.1.0", + "web-router": "1.0.0", + "web-socket": "4.0.0", + "web-storage": "5.0.0", + "web-streams": "4.0.0", + "web-touchevents": "4.0.0", + "web-uievents": "5.0.0", + "web-url": "2.0.0", + "web-workers": "1.1.0", + "web-xhr": "5.0.1", + "webextension-polyfill": "0.1.0", + "webgpu": "0.0.1", + "which": "2.0.0", + "xterm": "1.0.0", + "yoga-fetch": "1.0.1", + "yoga-json": "5.1.0", + "yoga-om": "0.1.0", + "yoga-postgres": "6.0.0", + "yoga-tree": "1.0.0", + "z3": "0.0.2", + "zipperarray": "2.0.0" + } + }, + "extra_packages": {} + }, + "packages": { + "aff": { + "type": "registry", + "version": "8.0.0", + "integrity": "sha256-5MmdI4+0RHBtSBy+YlU3/Cq4R5W2ih3OaRedJIrVHdk=", + "dependencies": [ + "bifunctors", + "control", + "datetime", + "effect", + "either", + "exceptions", + "foldable-traversable", + "functions", + "maybe", + "newtype", + "parallel", + "prelude", + "refs", + "tailrec", + "transformers", + "unsafe-coerce" + ] + }, + "aff-promise": { + "type": "registry", + "version": "4.0.0", + "integrity": "sha256-Kq5EupbUpXeUXx4JqGQE7/RTTz/H6idzWhsocwlEFhM=", + "dependencies": [ + "aff", + "foreign" + ] + }, + "ansi": { + "type": "registry", + "version": "7.0.0", + "integrity": "sha256-ZMB6HD+q9CXvn9fRCmJ8dvuDrOVHcjombL3oNOerVnE=", + "dependencies": [ + "foldable-traversable", + "lists", + "strings" + ] + }, + "argonaut-codecs": { + "type": "registry", + "version": "9.1.0", + "integrity": "sha256-N6efXByUeg848ompEqJfVvZuZPfdRYDGlTDFn0G0Oh8=", + "dependencies": [ + "argonaut-core", + "arrays", + "effect", + "foreign-object", + "identity", + "integers", + "maybe", + "nonempty", + "ordered-collections", + "prelude", + "record" + ] + }, + "argonaut-core": { + "type": "registry", + "version": "7.0.0", + "integrity": "sha256-RC82GfAjItydxrO24cdX373KHVZiLqybu19b5X8u7B4=", + "dependencies": [ + "arrays", + "control", + "either", + "foreign-object", + "functions", + "gen", + "maybe", + "nonempty", + "prelude", + "strings", + "tailrec" + ] + }, + "arraybuffer-types": { + "type": "registry", + "version": "3.0.2", + "integrity": "sha256-mQKokysYVkooS4uXbO+yovmV/s8b138Ws3zQvOwIHRA=", + "dependencies": [] + }, + "arrays": { + "type": "registry", + "version": "7.3.0", + "integrity": "sha256-tmcklBlc/muUtUfr9RapdCPwnlQeB3aSrC4dK85gQlc=", + "dependencies": [ + "bifunctors", + "control", + "foldable-traversable", + "functions", + "maybe", + "nonempty", + "partial", + "prelude", + "safe-coerce", + "st", + "tailrec", + "tuples", + "unfoldable", + "unsafe-coerce" + ] + }, + "avar": { + "type": "registry", + "version": "5.0.0", + "integrity": "sha256-e7hf0x4hEpcygXP0LtvfvAQ49Bbj2aWtZT3gqM///0A=", + "dependencies": [ + "aff", + "effect", + "either", + "exceptions", + "functions", + "maybe" + ] + }, + "bifunctors": { + "type": "registry", + "version": "6.0.0", + "integrity": "sha256-/gZwC9YhNxZNQpnHa5BIYerCGM2jeX9ukZiEvYxm5Nw=", + "dependencies": [ + "const", + "either", + "newtype", + "prelude", + "tuples" + ] + }, + "catenable-lists": { + "type": "registry", + "version": "7.0.0", + "integrity": "sha256-76vYENhwF4BWTBsjeLuErCH2jqVT4M3R1HX+4RwSftA=", + "dependencies": [ + "control", + "foldable-traversable", + "lists", + "maybe", + "prelude", + "tuples", + "unfoldable" + ] + }, + "console": { + "type": "registry", + "version": "6.1.0", + "integrity": "sha256-CxmAzjgyuGDmt9FZW51VhV6rBPwR6o0YeKUzA9rSzcM=", + "dependencies": [ + "effect", + "prelude" + ] + }, + "const": { + "type": "registry", + "version": "6.0.0", + "integrity": "sha256-tNrxDW8D8H4jdHE2HiPzpLy08zkzJMmGHdRqt5BQuTc=", + "dependencies": [ + "invariant", + "newtype", + "prelude" + ] + }, + "contravariant": { + "type": "registry", + "version": "6.0.0", + "integrity": "sha256-TP+ooAp3vvmdjfQsQJSichF5B4BPDHp3wAJoWchip6c=", + "dependencies": [ + "const", + "either", + "newtype", + "prelude", + "tuples" + ] + }, + "control": { + "type": "registry", + "version": "6.0.0", + "integrity": "sha256-sH7Pg9E96JCPF9PIA6oQ8+BjTyO/BH1ZuE/bOcyj4Jk=", + "dependencies": [ + "newtype", + "prelude" + ] + }, + "datetime": { + "type": "registry", + "version": "6.1.0", + "integrity": "sha256-g/5X5BBegQWLpI9IWD+sY6mcaYpzzlW5lz5NBzaMtyI=", + "dependencies": [ + "bifunctors", + "control", + "either", + "enums", + "foldable-traversable", + "functions", + "gen", + "integers", + "lists", + "maybe", + "newtype", + "numbers", + "ordered-collections", + "partial", + "prelude", + "tuples" + ] + }, + "distributive": { + "type": "registry", + "version": "6.0.0", + "integrity": "sha256-HTDdmEnzigMl+02SJB88j+gAXDx9VKsbvR4MJGDPbOQ=", + "dependencies": [ + "identity", + "newtype", + "prelude", + "tuples", + "type-equality" + ] + }, + "effect": { + "type": "registry", + "version": "4.0.0", + "integrity": "sha256-eBtZu+HZcMa5HilvI6kaDyVX3ji8p0W9MGKy2K4T6+M=", + "dependencies": [ + "prelude" + ] + }, + "either": { + "type": "registry", + "version": "6.1.0", + "integrity": "sha256-6hgTPisnMWVwQivOu2PKYcH8uqjEOOqDyaDQVUchTpY=", + "dependencies": [ + "control", + "invariant", + "maybe", + "prelude" + ] + }, + "enums": { + "type": "registry", + "version": "6.0.1", + "integrity": "sha256-HWaD73JFLorc4A6trKIRUeDMdzE+GpkJaEOM1nTNkC8=", + "dependencies": [ + "control", + "either", + "gen", + "maybe", + "newtype", + "nonempty", + "partial", + "prelude", + "tuples", + "unfoldable" + ] + }, + "exceptions": { + "type": "registry", + "version": "6.1.0", + "integrity": "sha256-K0T89IHtF3vBY7eSAO7eDOqSb2J9kZGAcDN5+IKsF8E=", + "dependencies": [ + "effect", + "either", + "maybe", + "prelude" + ] + }, + "exists": { + "type": "registry", + "version": "6.0.0", + "integrity": "sha256-A0JQHpTfo1dNOj9U5/Fd3xndlRSE0g2IQWOGor2yXn8=", + "dependencies": [ + "unsafe-coerce" + ] + }, + "exitcodes": { + "type": "registry", + "version": "4.0.0", + "integrity": "sha256-4wxViTbyOoyKJ/WaRGI6+hZmgMKI5Miv16lSwefiLSM=", + "dependencies": [ + "enums" + ] + }, + "foldable-traversable": { + "type": "registry", + "version": "6.0.0", + "integrity": "sha256-fLeqRYM4jUrZD5H4WqcwUgzU7XfYkzO4zhgtNc3jcWM=", + "dependencies": [ + "bifunctors", + "const", + "control", + "either", + "functors", + "identity", + "maybe", + "newtype", + "orders", + "prelude", + "tuples" + ] + }, + "foreign": { + "type": "registry", + "version": "7.0.0", + "integrity": "sha256-1ORiqoS3HW+qfwSZAppHPWy4/6AQysxZ2t29jcdUMNA=", + "dependencies": [ + "either", + "functions", + "identity", + "integers", + "lists", + "maybe", + "prelude", + "strings", + "transformers" + ] + }, + "foreign-object": { + "type": "registry", + "version": "4.1.0", + "integrity": "sha256-q24okj6mT+yGHYQ+ei/pYPj5ih6sTbu7eDv/WU56JVo=", + "dependencies": [ + "arrays", + "foldable-traversable", + "functions", + "gen", + "lists", + "maybe", + "prelude", + "st", + "tailrec", + "tuples", + "typelevel-prelude", + "unfoldable" + ] + }, + "fork": { + "type": "registry", + "version": "6.0.0", + "integrity": "sha256-X7u0SuCvFbLbzuNEKLBNuWjmcroqMqit4xEzpQwAP7E=", + "dependencies": [ + "aff" + ] + }, + "free": { + "type": "registry", + "version": "7.1.0", + "integrity": "sha256-JAumgEsGSzJCNLD8AaFvuX7CpqS5yruCngi6yI7+V5k=", + "dependencies": [ + "catenable-lists", + "control", + "distributive", + "either", + "exists", + "foldable-traversable", + "invariant", + "lazy", + "maybe", + "prelude", + "tailrec", + "transformers", + "tuples", + "unsafe-coerce" + ] + }, + "functions": { + "type": "registry", + "version": "6.0.0", + "integrity": "sha256-adMyJNEnhGde2unHHAP79gPtlNjNqzgLB8arEOn9hLI=", + "dependencies": [ + "prelude" + ] + }, + "functors": { + "type": "registry", + "version": "5.0.0", + "integrity": "sha256-zfPWWYisbD84MqwpJSZFlvM6v86McM68ob8p9s27ywU=", + "dependencies": [ + "bifunctors", + "const", + "contravariant", + "control", + "distributive", + "either", + "invariant", + "maybe", + "newtype", + "prelude", + "profunctor", + "tuples", + "unsafe-coerce" + ] + }, + "gen": { + "type": "registry", + "version": "4.0.0", + "integrity": "sha256-f7yzAXWwr+xnaqEOcvyO3ezKdoes8+WXWdXIHDBCAPI=", + "dependencies": [ + "either", + "foldable-traversable", + "identity", + "maybe", + "newtype", + "nonempty", + "prelude", + "tailrec", + "tuples", + "unfoldable" + ] + }, + "identity": { + "type": "registry", + "version": "6.0.0", + "integrity": "sha256-4wY0XZbAksjY6UAg99WkuKyJlQlWAfTi2ssadH0wVMY=", + "dependencies": [ + "control", + "invariant", + "newtype", + "prelude" + ] + }, + "integers": { + "type": "registry", + "version": "6.0.0", + "integrity": "sha256-sf+sK26R1hzwl3NhXR7WAu9zCDjQnfoXwcyGoseX158=", + "dependencies": [ + "maybe", + "numbers", + "prelude" + ] + }, + "invariant": { + "type": "registry", + "version": "6.0.0", + "integrity": "sha256-RGWWyYrz0Hs1KjPDA+87Kia67ZFBhfJ5lMGOMCEFoLo=", + "dependencies": [ + "control", + "prelude" + ] + }, + "js-date": { + "type": "registry", + "version": "8.0.0", + "integrity": "sha256-6TVF4DWg5JL+jRAsoMssYw8rgOVALMUHT1CuNZt8NRo=", + "dependencies": [ + "datetime", + "effect", + "exceptions", + "foreign", + "integers", + "now" + ] + }, + "lazy": { + "type": "registry", + "version": "6.0.0", + "integrity": "sha256-lMsfFOnlqfe4KzRRiW8ot5ge6HtcU3Eyh2XkXcP5IgU=", + "dependencies": [ + "control", + "foldable-traversable", + "invariant", + "prelude" + ] + }, + "lists": { + "type": "registry", + "version": "7.0.0", + "integrity": "sha256-EKF15qYqucuXP2lT/xPxhqy58f0FFT6KHdIB/yBOayI=", + "dependencies": [ + "bifunctors", + "control", + "foldable-traversable", + "lazy", + "maybe", + "newtype", + "nonempty", + "partial", + "prelude", + "tailrec", + "tuples", + "unfoldable" + ] + }, + "maybe": { + "type": "registry", + "version": "6.0.0", + "integrity": "sha256-5cCIb0wPwbat2PRkQhUeZO0jcAmf8jCt2qE0wbC3v2Q=", + "dependencies": [ + "control", + "invariant", + "newtype", + "prelude" + ] + }, + "mmorph": { + "type": "registry", + "version": "7.0.0", + "integrity": "sha256-urZlZNNqGeQFe5D/ClHlR8QgGBNHTMFPtJ5S5IpflTQ=", + "dependencies": [ + "free", + "functors", + "transformers" + ] + }, + "newtype": { + "type": "registry", + "version": "5.0.0", + "integrity": "sha256-gdrQu8oGe9eZE6L3wOI8ql/igOg+zEGB5ITh2g+uttw=", + "dependencies": [ + "prelude", + "safe-coerce" + ] + }, + "node-buffer": { + "type": "registry", + "version": "9.0.0", + "integrity": "sha256-PWE2DJ5ruBLCmeA/fUiuySEFmUJ/VuRfyrnCuVZBlu4=", + "dependencies": [ + "arraybuffer-types", + "effect", + "maybe", + "nullable", + "st", + "unsafe-coerce" + ] + }, + "node-event-emitter": { + "type": "registry", + "version": "3.0.0", + "integrity": "sha256-Qw0MjsT4xRH2j2i4K8JmRjcMKnH5z1Cw39t00q4LE4w=", + "dependencies": [ + "effect", + "either", + "functions", + "maybe", + "nullable", + "prelude", + "unsafe-coerce" + ] + }, + "node-fs": { + "type": "registry", + "version": "9.2.0", + "integrity": "sha256-Sg0vkXycEzkEerX6hLccz21Ygd9w1+QSk1thotRZPGI=", + "dependencies": [ + "datetime", + "effect", + "either", + "enums", + "exceptions", + "functions", + "integers", + "js-date", + "maybe", + "node-buffer", + "node-path", + "node-streams", + "nullable", + "partial", + "prelude", + "strings", + "unsafe-coerce" + ] + }, + "node-path": { + "type": "registry", + "version": "5.0.0", + "integrity": "sha256-pd82nQ+2l5UThzaxPdKttgDt7xlsgIDLpPG0yxDEdyE=", + "dependencies": [ + "effect" + ] + }, + "node-process": { + "type": "registry", + "version": "11.2.0", + "integrity": "sha256-+2MQDYChjGbVbapCyJtuWYwD41jk+BntF/kcOTKBMVs=", + "dependencies": [ + "effect", + "foreign", + "foreign-object", + "maybe", + "node-event-emitter", + "node-streams", + "posix-types", + "prelude", + "unsafe-coerce" + ] + }, + "node-streams": { + "type": "registry", + "version": "9.0.0", + "integrity": "sha256-2n6dq7YWleTDmD1Kur/ul7Cn08IvWrScgPf+0PgX2TQ=", + "dependencies": [ + "aff", + "effect", + "either", + "exceptions", + "node-buffer", + "node-event-emitter", + "nullable", + "prelude" + ] + }, + "nonempty": { + "type": "registry", + "version": "7.0.0", + "integrity": "sha256-54ablJZUHGvvlTJzi3oXyPCuvY6zsrWJuH/dMJ/MFLs=", + "dependencies": [ + "control", + "foldable-traversable", + "maybe", + "prelude", + "tuples", + "unfoldable" + ] + }, + "now": { + "type": "registry", + "version": "6.0.0", + "integrity": "sha256-xZ7x37ZMREfs6GCDw/h+FaKHV/3sPWmtqBZRGTxybQY=", + "dependencies": [ + "datetime", + "effect" + ] + }, + "nullable": { + "type": "registry", + "version": "6.0.0", + "integrity": "sha256-yiGBVl3AD+Guy4kNWWeN+zl1gCiJK+oeIFtZtPCw4+o=", + "dependencies": [ + "effect", + "functions", + "maybe" + ] + }, + "numbers": { + "type": "registry", + "version": "9.0.1", + "integrity": "sha256-/9M6aeMDBdB4cwYDeJvLFprAHZ49EbtKQLIJsneXLIk=", + "dependencies": [ + "functions", + "maybe" + ] + }, + "open-memoize": { + "type": "registry", + "version": "6.2.0", + "integrity": "sha256-p1m7wF3aHQ80yUvqMs20OTMl496WS6YpKlmI2Nkg9j0=", + "dependencies": [ + "either", + "integers", + "lazy", + "lists", + "maybe", + "partial", + "prelude", + "strings", + "tuples" + ] + }, + "optparse": { + "type": "registry", + "version": "5.0.1", + "integrity": "sha256-cEzEkNW4q0gZlXl4z0zn+H2vs6l2UAp7NPHCsois73k=", + "dependencies": [ + "aff", + "arrays", + "bifunctors", + "console", + "control", + "effect", + "either", + "enums", + "exists", + "exitcodes", + "foldable-traversable", + "free", + "gen", + "integers", + "lazy", + "lists", + "maybe", + "newtype", + "node-buffer", + "node-process", + "node-streams", + "nonempty", + "numbers", + "open-memoize", + "partial", + "prelude", + "strings", + "tailrec", + "transformers", + "tuples" + ] + }, + "ordered-collections": { + "type": "registry", + "version": "3.2.0", + "integrity": "sha256-o9jqsj5rpJmMdoe/zyufWHFjYYFTTsJpgcuCnqCO6PM=", + "dependencies": [ + "arrays", + "foldable-traversable", + "gen", + "lists", + "maybe", + "partial", + "prelude", + "st", + "tailrec", + "tuples", + "unfoldable" + ] + }, + "orders": { + "type": "registry", + "version": "6.0.0", + "integrity": "sha256-nBA0g3/ai0euH8q9pSbGqk53W2q6agm/dECZTHcoink=", + "dependencies": [ + "newtype", + "prelude" + ] + }, + "parallel": { + "type": "registry", + "version": "7.0.0", + "integrity": "sha256-gUC9i4Txnx9K9RcMLsjujbwZz6BB1bnE2MLvw4GIw5o=", + "dependencies": [ + "control", + "effect", + "either", + "foldable-traversable", + "functors", + "maybe", + "newtype", + "prelude", + "profunctor", + "refs", + "transformers" + ] + }, + "partial": { + "type": "registry", + "version": "4.0.0", + "integrity": "sha256-fwXerld6Xw1VkReh8yeQsdtLVrjfGiVuC5bA1Wyo/J4=", + "dependencies": [] + }, + "pipes": { + "type": "registry", + "version": "8.0.0", + "integrity": "sha256-kvfqGM4cPA/wCcBHbp5psouFw5dZGvku2462x7ZBwSY=", + "dependencies": [ + "aff", + "lists", + "mmorph", + "prelude", + "tailrec", + "transformers", + "tuples" + ] + }, + "posix-types": { + "type": "registry", + "version": "6.0.0", + "integrity": "sha256-ZfFz8RR1lee/o/Prccyeut3Q+9tYd08mlR72sIh6GzA=", + "dependencies": [ + "maybe", + "prelude" + ] + }, + "prelude": { + "type": "registry", + "version": "6.0.1", + "integrity": "sha256-o8p6SLYmVPqzXZhQFd2hGAWEwBoXl1swxLG/scpJ0V0=", + "dependencies": [] + }, + "profunctor": { + "type": "registry", + "version": "6.0.1", + "integrity": "sha256-E58hSYdJvF2Qjf9dnWLPlJKh2Z2fLfFLkQoYi16vsFk=", + "dependencies": [ + "control", + "distributive", + "either", + "exists", + "invariant", + "newtype", + "prelude", + "tuples" + ] + }, + "record": { + "type": "registry", + "version": "4.0.0", + "integrity": "sha256-Za5U85bTRJEfGK5Sk4hM41oXy84YQI0I8TL3WUn1Qzg=", + "dependencies": [ + "functions", + "prelude", + "unsafe-coerce" + ] + }, + "refs": { + "type": "registry", + "version": "6.0.0", + "integrity": "sha256-Vgwne7jIbD3ZMoLNNETLT8Litw6lIYo3MfYNdtYWj9s=", + "dependencies": [ + "effect", + "prelude" + ] + }, + "safe-coerce": { + "type": "registry", + "version": "2.0.0", + "integrity": "sha256-a1ibQkiUcbODbLE/WAq7Ttbbh9ex+x33VCQ7GngKudU=", + "dependencies": [ + "unsafe-coerce" + ] + }, + "spec": { + "type": "registry", + "version": "8.0.0", + "integrity": "sha256-Yn7MhDai1YULlQF45+9FTOTf2rcjoda1Jf2IrEFCoeg=", + "dependencies": [ + "aff", + "ansi", + "arrays", + "avar", + "bifunctors", + "control", + "datetime", + "effect", + "either", + "exceptions", + "foldable-traversable", + "fork", + "identity", + "integers", + "lists", + "maybe", + "newtype", + "now", + "ordered-collections", + "parallel", + "pipes", + "prelude", + "refs", + "strings", + "tailrec", + "transformers", + "tuples" + ] + }, + "spec-node": { + "type": "registry", + "version": "0.0.2", + "integrity": "sha256-2SZRy6QjokHms6+d150pShlbnOg+9XWYkrUUdX/QDjc=", + "dependencies": [ + "aff", + "argonaut-codecs", + "argonaut-core", + "arrays", + "control", + "datetime", + "effect", + "either", + "foldable-traversable", + "identity", + "integers", + "maybe", + "newtype", + "node-buffer", + "node-fs", + "node-process", + "now", + "numbers", + "optparse", + "ordered-collections", + "partial", + "prelude", + "spec", + "strings", + "tuples" + ] + }, + "st": { + "type": "registry", + "version": "6.2.0", + "integrity": "sha256-z9X0WsOUlPwNx9GlCC+YccCyz8MejC8Wb0C4+9fiBRY=", + "dependencies": [ + "partial", + "prelude", + "tailrec", + "unsafe-coerce" + ] + }, + "strings": { + "type": "registry", + "version": "6.0.1", + "integrity": "sha256-WssD3DbX4OPzxSdjvRMX0yvc9+pS7n5gyPv5I2Trb7k=", + "dependencies": [ + "arrays", + "control", + "either", + "enums", + "foldable-traversable", + "gen", + "integers", + "maybe", + "newtype", + "nonempty", + "partial", + "prelude", + "tailrec", + "tuples", + "unfoldable", + "unsafe-coerce" + ] + }, + "tailrec": { + "type": "registry", + "version": "6.1.0", + "integrity": "sha256-Xx19ECVDRrDWpz9D2GxQHHV89vd61dnXxQm0IcYQHGk=", + "dependencies": [ + "bifunctors", + "effect", + "either", + "identity", + "maybe", + "partial", + "prelude", + "refs" + ] + }, + "transformers": { + "type": "registry", + "version": "6.1.0", + "integrity": "sha256-3Bm+Z6tsC/paG888XkywDngJ2JMos+JfOhRlkVfb7gI=", + "dependencies": [ + "control", + "distributive", + "effect", + "either", + "exceptions", + "foldable-traversable", + "identity", + "lazy", + "maybe", + "newtype", + "prelude", + "st", + "tailrec", + "tuples", + "unfoldable" + ] + }, + "tuples": { + "type": "registry", + "version": "7.0.0", + "integrity": "sha256-1rXgTomes9105BjgXqIw0FL6Fz1lqqUTLWOumhWec1M=", + "dependencies": [ + "control", + "invariant", + "prelude" + ] + }, + "type-equality": { + "type": "registry", + "version": "4.0.1", + "integrity": "sha256-Hs9D6Y71zFi/b+qu5NSbuadUQXe5iv5iWx0226vOHUw=", + "dependencies": [] + }, + "typelevel-prelude": { + "type": "registry", + "version": "7.0.0", + "integrity": "sha256-uFF2ph+vHcQpfPuPf2a3ukJDFmLhApmkpTMviHIWgJM=", + "dependencies": [ + "prelude", + "type-equality" + ] + }, + "unfoldable": { + "type": "registry", + "version": "6.0.0", + "integrity": "sha256-JtikvJdktRap7vr/K4ITlxUX1QexpnqBq0G/InLr6eg=", + "dependencies": [ + "foldable-traversable", + "maybe", + "partial", + "prelude", + "tuples" + ] + }, + "unsafe-coerce": { + "type": "registry", + "version": "6.0.0", + "integrity": "sha256-IqIYW4Vkevn8sI+6aUwRGvd87tVL36BBeOr0cGAE7t0=", + "dependencies": [] + } + } +} diff --git a/spago.yaml b/spago.yaml index 8cdb2c2..f71d71f 100644 --- a/spago.yaml +++ b/spago.yaml @@ -6,18 +6,18 @@ package: name: spec-discovery publish: license: MPL-2.0 - version: 8.3.0 + version: 8.4.0 location: githubOwner: purescript-spec githubRepo: purescript-spec-discovery dependencies: - - aff: ">=7.1.0 <8.0.0" + - aff: ">=8.0.0 <9.0.0" - aff-promise: ">=4.0.0 <5.0.0" - effect: ">=4.0.0 <5.0.0" - foldable-traversable: ">=6.0.0 <7.0.0" - prelude: ">=6.0.1 <7.0.0" - - spec: ">=7.6.0 <8.0.0" + - spec: ">=8.0.0 <9.0.0" + - spec-node: ">=0.0.2 <0.0.3" test: main: Test.Main - dependencies: - - spec-node + dependencies: [] diff --git a/src/Test/Spec/Discovery.purs b/src/Test/Spec/Discovery.purs index 75ffba2..256428a 100644 --- a/src/Test/Spec/Discovery.purs +++ b/src/Test/Spec/Discovery.purs @@ -1,4 +1,8 @@ -module Test.Spec.Discovery (discover) where +module Test.Spec.Discovery + ( discover + , discoverAndRunSpecs + ) + where import Prelude @@ -6,16 +10,19 @@ import Control.Promise (Promise) import Control.Promise as Promise import Data.Traversable (sequence_) import Effect (Effect) +import Effect.Aff (launchAff_) import Effect.Aff.Class (class MonadAff, liftAff) +import Effect.Class (liftEffect) import Test.Spec (Spec) +import Test.Spec.Runner (Reporter) +import Test.Spec.Runner.Node (runSpecAndExitProcess) -foreign import getSpecs - :: String - -> Effect (Promise (Array (Spec Unit))) +foreign import getSpecs :: String -> Effect (Promise (Array (Spec Unit))) -discover - :: forall m - . MonadAff m - => String - -> m (Spec Unit) +discover :: ∀ m. MonadAff m => String -> m (Spec Unit) discover pattern = getSpecs pattern # Promise.toAffE >>= (pure <<< sequence_) # liftAff + +discoverAndRunSpecs :: Array Reporter -> String -> Effect Unit +discoverAndRunSpecs reporters pattern = launchAff_ do + specs <- discover pattern + liftEffect $ runSpecAndExitProcess reporters specs diff --git a/test/Main.purs b/test/Main.purs index 6e772c3..6c0d368 100644 --- a/test/Main.purs +++ b/test/Main.purs @@ -3,11 +3,8 @@ module Test.Main where import Prelude import Effect (Effect) -import Effect.Aff (launchAff_) -import Effect.Class (liftEffect) -import Test.Spec.Discovery (discover) +import Test.Spec.Discovery (discoverAndRunSpecs) import Test.Spec.Reporter.Console (consoleReporter) -import Test.Spec.Runner.Node (runSpecAndExitProcess) main :: Effect Unit -main = launchAff_ $ discover "Test\\.Spec\\.Discovery.*Spec" >>= (liftEffect <<< runSpecAndExitProcess [consoleReporter]) +main = discoverAndRunSpecs [consoleReporter] "Test\\.Spec\\.Discovery.*Spec"