diff --git a/package.json b/package.json deleted file mode 100644 index c116cae..0000000 --- a/package.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "private": true, - "scripts": { - "clean": "rimraf output && rimraf .pulp-cache", - "build": "eslint src && pulp build -- --censor-lib --strict", - "test": "pulp test && npm run test:run:without_codePointAt", - "test:run:without_codePointAt": "node -e \"delete String.prototype.codePointAt; require('./output/Test.Main/index.js').main();\"", - "bench:build": "purs compile 'bench/**/*.purs' 'src/**/*.purs' 'bower_components/*/src/**/*.purs'", - "bench:run": "node --expose-gc -e 'require(\"./output/Bench.Main/index.js\").main()'", - "bench": "npm run bench:build && npm run bench:run" - }, - "devDependencies": { - "eslint": "^7.15.0", - "pulp": "^15.0.0", - "purescript-psa": "^0.8.0", - "rimraf": "^3.0.2" - } -} diff --git a/shell.nix b/shell.nix new file mode 100644 index 0000000..8702b13 --- /dev/null +++ b/shell.nix @@ -0,0 +1,46 @@ +let + purescript-overlay = + builtins.fetchGit { + name = "purescript-overlay"; + url = "https://github.com/thomashoneyman/purescript-overlay.git"; + rev = "526c92c34a1a0213dc5c4761756375e13d85f8d4"; + }; + purerlReleases = + builtins.fetchGit { + url = "https://github.com/purerl/nixpkgs-purerl.git"; + ref = "master"; + rev = "69ea3146f3c4f715c5dbc6e0f8ba7d0ee57bb3bd"; + }; + erlangReleases = + builtins.fetchGit { + name = "nixpkgs-nixerl"; + url = "https://github.com/id3as/nixpkgs-nixerl.git"; + rev = "2822128d0fe5c8aac42f0b80045e80e6ac22bfcc"; + }; + + pkgs = import { + overlays = [ + (import purescript-overlay).overlays.default + (import purerlReleases) + (import erlangReleases) + + ]; + }; + erlang = pkgs.nixerl.erlang-26-1; + +in + +pkgs.mkShell { + # nativeBuildInputs is usually what you want -- tools you need to run + nativeBuildInputs = with pkgs.buildPackages; + [ + nodejs + spago-unstable + purs-bin.purs-0_15_14 + purs-tidy + purerl.purerl-0-0-22 + erlang.erlang + ]; + +} + diff --git a/spago.dhall b/spago.dhall deleted file mode 100644 index 3eec113..0000000 --- a/spago.dhall +++ /dev/null @@ -1,26 +0,0 @@ -{- -Welcome to a Spago project! -You can edit this file as you like. --} -{ name = "strings" -, dependencies = [ "arrays" - , "control" - , "either" - , "enums" - , "foldable-traversable" - , "gen" - , "integers" - , "maybe" - , "newtype" - , "nonempty" - , "partial" - , "prelude" - , "tailrec" - , "tuples" - , "unfoldable" - , "unsafe-coerce" - ] -, packages = ./packages.dhall -, sources = [ "src/**/*.purs" ] -, backend = "purerl" -} diff --git a/spago.lock b/spago.lock new file mode 100644 index 0000000..1531722 --- /dev/null +++ b/spago.lock @@ -0,0 +1,1560 @@ +workspace: + packages: + strings: + path: ./ + dependencies: + - arrays + - control + - either + - enums + - foldable-traversable + - gen + - integers + - maybe + - newtype + - nonempty + - partial + - prelude + - tailrec + - tuples + - unfoldable + - unsafe-coerce + test_dependencies: + - assert + - debug + build_plan: + - arrays + - assert + - bifunctors + - console + - const + - contravariant + - control + - debug + - distributive + - effect + - either + - enums + - exists + - foldable-traversable + - functions + - functors + - gen + - identity + - integers + - invariant + - math + - maybe + - newtype + - nonempty + - numbers + - orders + - partial + - prelude + - profunctor + - refs + - safe-coerce + - tailrec + - tuples + - type-equality + - unfoldable + - unsafe-coerce + package_set: + address: + hash: sha256-kLmZv2u5dWVUUaQEwK0b3T1Ghce5a/hG0zlizaYfcXs= + url: https://raw.githubusercontent.com/purerl/package-sets/erl-0.15.3-20220629/packages.json + compiler: ">=0.15.0 <0.16.0" + content: + arrays: + repo: https://github.com/purerl/purescript-arrays.git + version: v6.0.0-erl1 + dependencies: + - bifunctors + - control + - foldable-traversable + - maybe + - nonempty + - partial + - prelude + - tailrec + - tuples + - unfoldable + - unsafe-coerce + assert: + repo: https://github.com/purerl/purescript-assert.git + version: v5.0.0-erl1 + dependencies: + - console + - effect + - prelude + bifunctors: + repo: https://github.com/purescript/purescript-bifunctors.git + version: v5.0.0 + dependencies: + - const + - either + - newtype + - prelude + - tuples + catenable-lists: + repo: https://github.com/purescript/purescript-catenable-lists.git + version: v6.0.1 + dependencies: + - control + - foldable-traversable + - lists + - maybe + - prelude + - tuples + - unfoldable + console: + repo: https://github.com/purerl/purescript-console.git + version: v5.0.0-erl1 + dependencies: + - effect + - prelude + const: + repo: https://github.com/purescript/purescript-const.git + version: v5.0.0 + dependencies: + - invariant + - newtype + - prelude + contravariant: + repo: https://github.com/purescript/purescript-contravariant.git + version: v5.0.0 + dependencies: + - const + - either + - newtype + - prelude + - tuples + control: + repo: https://github.com/purerl/purescript-control.git + version: v5.0.0-erl1 + dependencies: + - newtype + - prelude + convertable-options: + repo: https://github.com/natefaubion/purescript-convertable-options + version: v1.0.0 + dependencies: + - effect + - maybe + - record + datetime: + repo: https://github.com/purerl/purescript-datetime.git + version: v5.0.2-erl1 + dependencies: + - bifunctors + - control + - either + - enums + - foldable-traversable + - functions + - gen + - integers + - lists + - math + - maybe + - newtype + - ordered-collections + - partial + - prelude + - tuples + datetime-parsing: + repo: https://github.com/flounders/purescript-datetime-parsing + version: 10c0a9aecc60a2a5e8cff35bebe45be4dacaa7f8 + dependencies: + - arrays + - datetime + - either + - enums + - foldable-traversable + - integers + - lists + - maybe + - numbers + - parsing + - prelude + - psci-support + - strings + debug: + repo: https://github.com/purerl/purescript-debug.git + version: v5.0.0-erl1 + dependencies: + - prelude + distributive: + repo: https://github.com/purescript/purescript-distributive.git + version: v5.0.0 + dependencies: + - identity + - newtype + - prelude + - tuples + - type-equality + effect: + repo: https://github.com/purerl/purescript-effect.git + version: v3.0.0-erl1 + dependencies: + - prelude + either: + repo: https://github.com/purescript/purescript-either.git + version: v5.0.0 + dependencies: + - control + - invariant + - maybe + - prelude + enums: + repo: https://github.com/purerl/purescript-enums.git + version: v5.0.0-erl1 + dependencies: + - control + - either + - gen + - maybe + - newtype + - nonempty + - partial + - prelude + - tuples + - unfoldable + erl-atom: + repo: https://github.com/purerl/purescript-erl-atom.git + version: v1.2.0 + dependencies: + - prelude + - unsafe-coerce + erl-binary: + repo: https://github.com/purerl/purescript-erl-binary.git + version: v0.6.0 + dependencies: + - prelude + - maybe + - erl-lists + erl-cowboy: + repo: https://github.com/purerl/purescript-erl-cowboy + version: v0.11.0 + dependencies: + - effect + - either + - erl-atom + - erl-binary + - erl-kernel + - erl-lists + - erl-maps + - erl-modules + - erl-ranch + - erl-ssl + - erl-tuples + - foreign + - functions + - maybe + - prelude + - record + - transformers + - tuples + - unsafe-coerce + erl-file: + repo: https://github.com/purerl/purescript-erl-file.git + version: v0.0.3 + dependencies: + - erl-atom + - erl-binary + - prelude + erl-gun: + repo: https://github.com/id3as/purescript-erl-gun.git + version: v0.0.2 + dependencies: + - convertable-options + - datetime + - effect + - either + - erl-atom + - erl-binary + - erl-kernel + - erl-lists + - erl-maps + - erl-process + - erl-ssl + - erl-tuples + - erl-untagged-union + - foreign + - functions + - maybe + - prelude + - record + - simple-json + - typelevel-prelude + erl-jsone: + repo: https://github.com/purerl/purescript-erl-jsone + version: v0.4.0 + dependencies: + - arrays + - integers + - assert + - either + - erl-lists + - erl-tuples + erl-kernel: + repo: https://github.com/id3as/purescript-erl-kernel.git + version: v0.0.3 + dependencies: + - convertable-options + - datetime + - effect + - either + - erl-atom + - erl-binary + - erl-lists + - erl-maps + - erl-process + - erl-tuples + - erl-untagged-union + - foldable-traversable + - foreign + - functions + - integers + - maybe + - newtype + - partial + - prelude + - record + - typelevel-prelude + - unsafe-coerce + erl-lager: + repo: https://github.com/purerl/purescript-erl-lager.git + version: v0.0.1 + dependencies: + - erl-lists + erl-lists: + repo: https://github.com/purerl/purescript-erl-lists.git + version: v4.0.1 + dependencies: + - prelude + - foldable-traversable + - unfoldable + - filterable + - tuples + erl-logger: + repo: https://github.com/id3as/purescript-erl-logger.git + version: v0.0.3 + dependencies: + - prelude + - erl-atom + - erl-lists + - record + erl-maps: + repo: https://github.com/purerl/purescript-erl-maps.git + version: v0.5.0 + dependencies: + - erl-lists + - functions + - prelude + - tuples + - unfoldable + erl-modules: + repo: https://github.com/purerl/purescript-erl-modules.git + version: v0.1.6 + dependencies: + - erl-atom + - prelude + - strings + erl-nativerefs: + repo: https://github.com/id3as/purescript-erl-nativerefs.git + version: v0.1.0 + dependencies: + - prelude + - effect + - erl-tuples + erl-opentelemetry: + repo: https://github.com/id3as/purescript-erl-opentelemetry.git + version: v0.0.1 + dependencies: + - effect + - erl-atom + - erl-lists + - erl-maps + - erl-tuples + - erl-untagged-union + - maybe + - prelude + - tuples + - unsafe-reference + erl-otp-types: + repo: https://github.com/id3as/purescript-erl-otp-types.git + version: v0.0.2 + dependencies: + - erl-atom + - erl-binary + - erl-kernel + - foreign + - prelude + - unsafe-reference + erl-pinto: + repo: https://github.com/id3as/purescript-erl-pinto.git + version: v0.2.0 + dependencies: + - erl-process + - erl-lists + - erl-atom + - erl-kernel + - datetime + - erl-tuples + - erl-modules + - foreign + erl-process: + repo: https://github.com/purerl/purescript-erl-process.git + version: v3.3.0 + dependencies: + - datetime + - effect + - either + - foreign + - integers + - prelude + erl-queue: + repo: https://github.com/id3as/purescript-erl-queue.git + version: v0.0.2 + dependencies: + - control + - either + - erl-lists + - filterable + - foldable-traversable + - lists + - maybe + - newtype + - nonempty + - prelude + - tuples + - unfoldable + erl-ranch: + repo: https://github.com/id3as/purescript-erl-ranch.git + version: v0.0.2 + dependencies: + - convertable-options + - effect + - either + - erl-atom + - erl-kernel + - erl-lists + - erl-maps + - erl-otp-types + - erl-process + - erl-ssl + - erl-tuples + - exceptions + - foreign + - maybe + - prelude + - record + - typelevel-prelude + - unsafe-coerce + erl-simplebus: + repo: https://github.com/id3as/purescript-erl-simplebus.git + version: v0.0.3 + dependencies: + - effect + - erl-process + - maybe + - newtype + - prelude + erl-ssl: + repo: https://github.com/id3as/purescript-erl-ssl.git + version: v0.0.2 + dependencies: + - convertable-options + - datetime + - effect + - either + - maybe + - erl-atom + - erl-binary + - erl-lists + - erl-kernel + - erl-tuples + - erl-logger + - erl-otp-types + - foreign + - maybe + - partial + - prelude + - record + - unsafe-reference + erl-stetson: + repo: https://github.com/id3as/purescript-erl-stetson.git + version: v0.13.0 + dependencies: + - erl-atom + - erl-binary + - erl-lists + - erl-maps + - erl-tuples + - erl-modules + - erl-cowboy + - foreign + - maybe + - prelude + - transformers + - routing-duplex + erl-test-eunit: + repo: https://github.com/id3as/purescript-erl-test-eunit.git + version: v0.0.4 + dependencies: + - assert + - console + - debug + - erl-lists + - erl-tuples + - erl-atom + - foreign + - free + - prelude + - psci-support + erl-test-eunit-discovery: + repo: https://github.com/id3as/purescript-erl-test-eunit-discovery.git + version: d0b6d9f5bcab13f79c3941c64e52ee86f7cd4e2b + dependencies: + - effect + - erl-lists + - erl-modules + - erl-test-eunit + - filterable + - foldable-traversable + - maybe + - free + - prelude + erl-tuples: + repo: https://github.com/purerl/purescript-erl-tuples.git + version: v3.3.1 + dependencies: + - unfoldable + - tuples + erl-untagged-union: + repo: https://github.com/id3as/purescript-erl-untagged-union.git + version: v0.0.2 + dependencies: + - erl-atom + - erl-binary + - erl-lists + - erl-tuples + - foreign + - typelevel-prelude + - maybe + - partial + - prelude + - unsafe-coerce + - erl-process + exceptions: + repo: https://github.com/purerl/purescript-exceptions.git + version: v5.0.0-erl1 + dependencies: + - maybe + - either + - effect + exists: + repo: https://github.com/purescript/purescript-exists.git + version: v5.1.0 + dependencies: + - unsafe-coerce + expect-inferred: + repo: https://github.com/justinwoo/purescript-expect-inferred + version: v2.0.0 + dependencies: + - prelude + - typelevel-prelude + filterable: + repo: https://github.com/purescript/purescript-filterable.git + version: v3.0.1 + dependencies: + - arrays + - either + - foldable-traversable + - identity + - lists + - ordered-collections + foldable-traversable: + repo: https://github.com/purerl/purescript-foldable-traversable.git + version: v5.0.1-erl1 + dependencies: + - bifunctors + - const + - control + - either + - functors + - identity + - maybe + - newtype + - orders + - prelude + - tuples + foreign: + repo: https://github.com/purerl/purescript-foreign.git + version: v6.0.1-erl1 + dependencies: + - either + - functions + - identity + - integers + - lists + - maybe + - prelude + - strings + - transformers + formatters: + repo: https://github.com/id3as/purescript-formatters + version: v5.0.1-erl1 + dependencies: + - arrays + - bifunctors + - control + - datetime + - either + - enums + - foldable-traversable + - integers + - lists + - math + - maybe + - newtype + - numbers + - ordered-collections + - parsing + - partial + - prelude + - psci-support + - strings + - transformers + - tuples + free: + repo: https://github.com/purescript/purescript-free.git + version: v6.0.1 + dependencies: + - catenable-lists + - control + - distributive + - either + - exists + - foldable-traversable + - invariant + - lazy + - maybe + - prelude + - tailrec + - transformers + - tuples + - unsafe-coerce + functions: + repo: https://github.com/purerl/purescript-functions.git + version: v5.0.0-erl1 + dependencies: + - prelude + functors: + repo: https://github.com/purescript/purescript-functors.git + version: v4.1.1 + dependencies: + - bifunctors + - const + - contravariant + - control + - distributive + - either + - invariant + - maybe + - newtype + - prelude + - profunctor + - tuples + - unsafe-coerce + gen: + repo: https://github.com/purescript/purescript-gen.git + version: v3.0.0 + dependencies: + - either + - foldable-traversable + - identity + - maybe + - newtype + - nonempty + - prelude + - tailrec + - tuples + - unfoldable + graphs: + repo: https://github.com/purescript/purescript-graphs.git + version: v5.0.0 + dependencies: + - catenable-lists + - ordered-collections + heterogeneous: + repo: https://github.com/natefaubion/purescript-heterogeneous.git + version: v0.5.1 + dependencies: + - prelude + - record + - tuples + - functors + - variant + - either + identity: + repo: https://github.com/purescript/purescript-identity.git + version: v5.0.0 + dependencies: + - control + - invariant + - newtype + - prelude + integers: + repo: https://github.com/purerl/purescript-integers.git + version: v5.0.0-erl1 + dependencies: + - math + - maybe + - numbers + - prelude + invariant: + repo: https://github.com/purescript/purescript-invariant.git + version: v5.0.0 + dependencies: + - control + - prelude + js-uri: + repo: https://github.com/purerl/purescript-js-uri.git + version: v2.0.0-erl1 + dependencies: + - functions + - maybe + lazy: + repo: https://github.com/purerl/purescript-lazy.git + version: v5.0.0-erl1 + dependencies: + - control + - foldable-traversable + - invariant + - prelude + lcg: + repo: https://github.com/purescript/purescript-lcg.git + version: v3.0.0 + dependencies: + - effect + - integers + - math + - maybe + - partial + - prelude + - random + lists: + repo: https://github.com/purescript/purescript-lists.git + version: v6.0.1 + dependencies: + - bifunctors + - control + - foldable-traversable + - lazy + - maybe + - newtype + - nonempty + - partial + - prelude + - tailrec + - tuples + - unfoldable + math: + repo: https://github.com/purerl/purescript-math.git + version: v3.0.0-erl1 + dependencies: [] + maybe: + repo: https://github.com/purescript/purescript-maybe.git + version: v5.0.0 + dependencies: + - control + - invariant + - newtype + - prelude + media-types: + repo: https://github.com/purescript-contrib/purescript-media-types.git + version: v5.0.0 + dependencies: + - prelude + - newtype + metadata: + repo: https://github.com/spacchetti/purescript-metadata.git + version: v0.15.0 + dependencies: [] + newtype: + repo: https://github.com/purescript/purescript-newtype.git + version: v4.0.0 + dependencies: + - prelude + - safe-coerce + nonempty: + repo: https://github.com/purescript/purescript-nonempty.git + version: v6.0.0 + dependencies: + - control + - foldable-traversable + - maybe + - prelude + - tuples + - unfoldable + nullable: + repo: https://github.com/purerl/purescript-nullable.git + version: v5.0.0-erl1 + dependencies: + - maybe + - functions + numbers: + repo: https://github.com/purerl/purescript-numbers.git + version: v8.0.0-erl1 + dependencies: + - functions + - math + - maybe + ordered-collections: + repo: https://github.com/purerl/purescript-ordered-collections.git + version: v2.0.2-erl1 + dependencies: + - arrays + - foldable-traversable + - gen + - lists + - maybe + - partial + - prelude + - tailrec + - tuples + - unfoldable + - unsafe-coerce + orders: + repo: https://github.com/purescript/purescript-orders.git + version: v5.0.0 + dependencies: + - newtype + - prelude + parallel: + repo: https://github.com/purescript/purescript-parallel.git + version: v5.0.0 + dependencies: + - control + - effect + - either + - foldable-traversable + - functors + - maybe + - newtype + - prelude + - profunctor + - refs + - transformers + parsing: + repo: https://github.com/id3as/purescript-parsing + version: v6.0.2-erl1 + dependencies: + - arrays + - assert + - console + - control + - effect + - either + - foldable-traversable + - identity + - integers + - lists + - math + - maybe + - newtype + - prelude + - psci-support + - strings + - tailrec + - transformers + - tuples + - unicode + partial: + repo: https://github.com/purerl/purescript-partial.git + version: v3.0.0-erl2 + dependencies: [] + pathy: + repo: https://github.com/id3as/purescript-pathy + version: v8.1.0-erl1 + dependencies: + - arrays + - either + - exceptions + - foldable-traversable + - gen + - identity + - lists + - maybe + - newtype + - nonempty + - partial + - prelude + - psci-support + - strings + - tailrec + - tuples + - typelevel-prelude + - unsafe-coerce + prelude: + repo: https://github.com/purerl/purescript-prelude.git + version: v5.0.1-erl1 + dependencies: [] + profunctor: + repo: https://github.com/purescript/purescript-profunctor.git + version: v5.0.0 + dependencies: + - control + - distributive + - either + - exists + - invariant + - newtype + - prelude + - tuples + profunctor-lenses: + repo: https://github.com/purerl/purescript-profunctor-lenses.git + version: v8.0.0-erl1 + dependencies: + - arrays + - bifunctors + - const + - control + - distributive + - either + - foldable-traversable + - functors + - identity + - lists + - maybe + - newtype + - ordered-collections + - partial + - prelude + - profunctor + - record + - transformers + - tuples + - erl-maps + psci-support: + repo: https://github.com/purescript/purescript-psci-support.git + version: v5.0.0 + dependencies: + - console + - effect + - prelude + quickcheck: + repo: https://github.com/purerl/purescript-quickcheck.git + version: v7.1.0-erl1 + dependencies: + - arrays + - console + - control + - effect + - either + - enums + - exceptions + - foldable-traversable + - gen + - identity + - integers + - lazy + - lcg + - lists + - math + - maybe + - newtype + - nonempty + - partial + - prelude + - record + - strings + - tailrec + - transformers + - tuples + - unfoldable + quickcheck-laws: + repo: https://github.com/purescript-contrib/purescript-quickcheck-laws + version: v6.0.1 + dependencies: + - arrays + - console + - control + - effect + - either + - enums + - foldable-traversable + - identity + - lists + - maybe + - newtype + - prelude + - quickcheck + - tuples + random: + repo: https://github.com/purerl/purescript-random.git + version: v5.0.0-erl1 + dependencies: + - effect + - integers + - math + rationals: + repo: https://github.com/anttih/purescript-rationals.git + version: c883c972513380ae161d816ed42108acfe8cc8f6 + dependencies: + - prelude + - integers + record: + repo: https://github.com/purerl/purescript-record.git + version: v3.0.0-erl1 + dependencies: + - functions + - typelevel-prelude + - unsafe-coerce + record-prefix: + repo: https://github.com/dariooddenino/purescript-record-prefix.git + version: v1.0.0 + dependencies: + - prelude + - heterogeneous + - console + - typelevel-prelude + refs: + repo: https://github.com/purerl/purescript-refs.git + version: v5.0.0-erl2 + dependencies: + - effect + - prelude + routing-duplex: + repo: https://github.com/natefaubion/purescript-routing-duplex.git + version: v0.5.0 + dependencies: + - arrays + - control + - either + - js-uri + - lazy + - numbers + - prelude + - profunctor + - record + - strings + - typelevel-prelude + safe-coerce: + repo: https://github.com/purescript/purescript-safe-coerce.git + version: v1.0.0 + dependencies: + - unsafe-coerce + semirings: + repo: https://github.com/purescript/purescript-semirings.git + version: v6.0.0 + dependencies: + - foldable-traversable + - lists + - newtype + - prelude + sequences: + repo: https://github.com/hdgarrood/purescript-sequences.git + version: v3.0.2 + dependencies: + - prelude + - unsafe-coerce + - partial + - unfoldable + - lazy + - arrays + - profunctor + - maybe + - tuples + - newtype + simple-json: + repo: https://github.com/purerl/purescript-simple-json.git + version: baad5dd0d613df6fb2f054fd241d46e11a92e181 + dependencies: + - exceptions + - foreign + - nullable + - prelude + - record + - typelevel-prelude + - variant + - erl-lists + - erl-maps + - erl-kernel + simple-json-generics: + repo: https://github.com/justinwoo/purescript-simple-json-generics + version: v0.1.0 + dependencies: + - prelude + - simple-json + strings: + repo: https://github.com/purerl/purescript-strings.git + version: v5.0.0-erl2 + dependencies: + - arrays + - control + - either + - enums + - foldable-traversable + - gen + - integers + - maybe + - newtype + - nonempty + - partial + - prelude + - tailrec + - tuples + - unfoldable + - unsafe-coerce + tailrec: + repo: https://github.com/purerl/purescript-tailrec.git + version: v5.0.1-erl1 + dependencies: + - bifunctors + - effect + - either + - identity + - maybe + - partial + - prelude + - refs + these: + repo: https://github.com/purescript-contrib/purescript-these.git + version: v5.0.0 + dependencies: + - arrays + - gen + - lists + - quickcheck + - quickcheck-laws + - tuples + transformers: + repo: https://github.com/purescript/purescript-transformers.git + version: v5.2.0 + dependencies: + - control + - distributive + - effect + - either + - exceptions + - foldable-traversable + - identity + - lazy + - maybe + - newtype + - prelude + - tailrec + - tuples + - unfoldable + tuples: + repo: https://github.com/purescript/purescript-tuples.git + version: v6.0.1 + dependencies: + - control + - invariant + - prelude + type-equality: + repo: https://github.com/purescript/purescript-type-equality.git + version: v4.0.0 + dependencies: [] + typelevel-prelude: + repo: https://github.com/purescript/purescript-typelevel-prelude.git + version: v6.0.0 + dependencies: + - prelude + - type-equality + undefinable: + repo: https://github.com/purerl/purescript-undefinable.git + version: v4.0.0-erl1 + dependencies: + - maybe + - functions + unfoldable: + repo: https://github.com/purerl/purescript-unfoldable.git + version: v5.0.0-erl1 + dependencies: + - foldable-traversable + - maybe + - partial + - prelude + - tuples + unicode: + repo: https://github.com/id3as/purescript-unicode + version: v5.0.0-erl1 + dependencies: + - foldable-traversable + - maybe + - psci-support + - strings + unsafe-coerce: + repo: https://github.com/purerl/purescript-unsafe-coerce.git + version: v5.0.0-erl1 + dependencies: [] + unsafe-reference: + repo: https://github.com/purerl/purescript-unsafe-reference.git + version: v4.0.0-erl1 + dependencies: + - prelude + uri: + repo: https://github.com/purescript-contrib/purescript-uri + version: v8.0.1 + dependencies: + - arrays + - integers + - js-uri + - numbers + - parsing + - prelude + - profunctor-lenses + - these + - transformers + - unfoldable + validation: + repo: https://github.com/purescript/purescript-validation.git + version: v5.0.0 + dependencies: + - bifunctors + - control + - either + - foldable-traversable + - newtype + - prelude + variant: + repo: https://github.com/natefaubion/purescript-variant.git + version: v7.0.3 + dependencies: + - enums + - lists + - maybe + - partial + - prelude + - record + - tuples + - unsafe-coerce + extra_packages: {} +packages: + arrays: + type: git + url: https://github.com/purerl/purescript-arrays.git + rev: 24ac35d3598af6bfb5e479d313f9493ab4d62984 + dependencies: + - bifunctors + - control + - foldable-traversable + - maybe + - nonempty + - partial + - prelude + - tailrec + - tuples + - unfoldable + - unsafe-coerce + assert: + type: git + url: https://github.com/purerl/purescript-assert.git + rev: b3f25ea1b27e64881c99032a5ec8d461b4491e25 + dependencies: + - console + - effect + - prelude + bifunctors: + type: git + url: https://github.com/purescript/purescript-bifunctors.git + rev: a31d0fc4bbebf19d5e9b21b65493c28b8d3fba62 + dependencies: + - const + - either + - newtype + - prelude + - tuples + console: + type: git + url: https://github.com/purerl/purescript-console.git + rev: 56cfd5294acb79758cf30b357751f624650f18e3 + dependencies: + - effect + - prelude + const: + type: git + url: https://github.com/purescript/purescript-const.git + rev: 3a3a4bdc44f71311cf27de9bd22039b110277540 + dependencies: + - invariant + - newtype + - prelude + contravariant: + type: git + url: https://github.com/purescript/purescript-contravariant.git + rev: ae1a765f7ddbfd96ae1f12e399e46d554d8e3b38 + dependencies: + - const + - either + - newtype + - prelude + - tuples + control: + type: git + url: https://github.com/purerl/purescript-control.git + rev: e3add624f8dacb4d6bec6d9ed682df692e197b5b + dependencies: + - newtype + - prelude + debug: + type: git + url: https://github.com/purerl/purescript-debug.git + rev: 3f6d18679e224249685bc690dfd5f0884a580374 + dependencies: + - prelude + distributive: + type: git + url: https://github.com/purescript/purescript-distributive.git + rev: 11f3f87ca5720899e1739cedb58dd6227cae6ad5 + dependencies: + - identity + - newtype + - prelude + - tuples + - type-equality + effect: + type: git + url: https://github.com/purerl/purescript-effect.git + rev: 69ba78cd96a27a0af6a723d255dc05a32c6eaa43 + dependencies: + - prelude + either: + type: git + url: https://github.com/purescript/purescript-either.git + rev: c1a1af35684f10eecaf6ac7d38dbf6bd48af2ced + dependencies: + - control + - invariant + - maybe + - prelude + enums: + type: git + url: https://github.com/purerl/purescript-enums.git + rev: 9c3ec61d03c04642af91e2ac72500cdd6009bd98 + dependencies: + - control + - either + - gen + - maybe + - newtype + - nonempty + - partial + - prelude + - tuples + - unfoldable + exists: + type: git + url: https://github.com/purescript/purescript-exists.git + rev: c34820f8b2d15be29abdd5097c3d636f5df8f28c + dependencies: + - unsafe-coerce + foldable-traversable: + type: git + url: https://github.com/purerl/purescript-foldable-traversable.git + rev: 444a611d64800a82259b9c22999330b6a7b48a3d + dependencies: + - bifunctors + - const + - control + - either + - functors + - identity + - maybe + - newtype + - orders + - prelude + - tuples + functions: + type: git + url: https://github.com/purerl/purescript-functions.git + rev: 6f0854f056b5295835db2cc3d06bf8763c181536 + dependencies: + - prelude + functors: + type: git + url: https://github.com/purescript/purescript-functors.git + rev: e936f7a8d2ec53a344c478ccada5add93273848c + dependencies: + - bifunctors + - const + - contravariant + - control + - distributive + - either + - invariant + - maybe + - newtype + - prelude + - profunctor + - tuples + - unsafe-coerce + gen: + type: git + url: https://github.com/purescript/purescript-gen.git + rev: 85c369f56545a3de834b7e7475a56bc9193bb4b4 + dependencies: + - either + - foldable-traversable + - identity + - maybe + - newtype + - nonempty + - prelude + - tailrec + - tuples + - unfoldable + identity: + type: git + url: https://github.com/purescript/purescript-identity.git + rev: 5c150ac5ee4fa6f145932f6322a1020463dae8e9 + dependencies: + - control + - invariant + - newtype + - prelude + integers: + type: git + url: https://github.com/purerl/purescript-integers.git + rev: 5549373344321575727cc1b3526ee946cff77a43 + dependencies: + - math + - maybe + - numbers + - prelude + invariant: + type: git + url: https://github.com/purescript/purescript-invariant.git + rev: c421b49dec7a1511073bb408a08bdd8c9d17d7b1 + dependencies: + - control + - prelude + math: + type: git + url: https://github.com/purerl/purescript-math.git + rev: c4760c2620980dbd7168b17ed21dfab12b8c5b39 + dependencies: [] + maybe: + type: git + url: https://github.com/purescript/purescript-maybe.git + rev: 8e96ca0187208e78e8df6a464c281850e5c9400c + dependencies: + - control + - invariant + - newtype + - prelude + newtype: + type: git + url: https://github.com/purescript/purescript-newtype.git + rev: 7b292fcd2ac7c4a25d7a7a8d3387d0ee7de89b13 + dependencies: + - prelude + - safe-coerce + nonempty: + type: git + url: https://github.com/purescript/purescript-nonempty.git + rev: d3e91e3d6e06e5bdcc5b2c21c8e5d0f9b946bb9e + dependencies: + - control + - foldable-traversable + - maybe + - prelude + - tuples + - unfoldable + numbers: + type: git + url: https://github.com/purerl/purescript-numbers.git + rev: 5446bc018f2970d91a8573c3424bba0b59305a21 + dependencies: + - functions + - math + - maybe + orders: + type: git + url: https://github.com/purescript/purescript-orders.git + rev: c25b7075426cf82bcb960495f28d2541c9a75510 + dependencies: + - newtype + - prelude + partial: + type: git + url: https://github.com/purerl/purescript-partial.git + rev: 6fe347eb3a36c70cacd4aeb581b5748a9d5035aa + dependencies: [] + prelude: + type: git + url: https://github.com/purerl/purescript-prelude.git + rev: 75a86f361270985ae983b59d4a69c0513b7f1cb1 + dependencies: [] + profunctor: + type: git + url: https://github.com/purescript/purescript-profunctor.git + rev: 4551b8e437a00268cc9b687cbe691d75e812e82b + dependencies: + - control + - distributive + - either + - exists + - invariant + - newtype + - prelude + - tuples + refs: + type: git + url: https://github.com/purerl/purescript-refs.git + rev: 1a921991d2c0900c4582d69586bfbd5ce3d53952 + dependencies: + - effect + - prelude + safe-coerce: + type: git + url: https://github.com/purescript/purescript-safe-coerce.git + rev: e719defd227d932da067a1f0d62a60b3d3ff3637 + dependencies: + - unsafe-coerce + tailrec: + type: git + url: https://github.com/purerl/purescript-tailrec.git + rev: a865d0787fef54e7350d8c1e8d2e9ed94fae47b7 + dependencies: + - bifunctors + - effect + - either + - identity + - maybe + - partial + - prelude + - refs + tuples: + type: git + url: https://github.com/purescript/purescript-tuples.git + rev: d4fe8ffe9e8c512111ee0bc18a6ba0fd056a6773 + dependencies: + - control + - invariant + - prelude + type-equality: + type: git + url: https://github.com/purescript/purescript-type-equality.git + rev: f7644468f22ed267a15d398173d234fa6f45e2e0 + dependencies: [] + unfoldable: + type: git + url: https://github.com/purerl/purescript-unfoldable.git + rev: 5d3b6ac48757c9aa93f6410f86266034fd510599 + dependencies: + - foldable-traversable + - maybe + - partial + - prelude + - tuples + unsafe-coerce: + type: git + url: https://github.com/purerl/purescript-unsafe-coerce.git + rev: 7150d261d40cd92112e8c2064124c5682627f137 + dependencies: [] diff --git a/spago.yaml b/spago.yaml new file mode 100644 index 0000000..c3f411c --- /dev/null +++ b/spago.yaml @@ -0,0 +1,32 @@ + +package: + name: strings + dependencies: + - arrays + - control + - either + - enums + - foldable-traversable + - gen + - integers + - maybe + - newtype + - nonempty + - partial + - prelude + - tailrec + - tuples + - unfoldable + - unsafe-coerce + test: + main: Test.Main + dependencies: + - assert + - debug +workspace: + package_set: + url: https://raw.githubusercontent.com/purerl/package-sets/erl-0.15.3-20220629/packages.json + hash: sha256-kLmZv2u5dWVUUaQEwK0b3T1Ghce5a/hG0zlizaYfcXs= + extra_packages: {} + backend: + cmd: purerl diff --git a/src/Data/String/Regex.erl b/src/Data/String/Regex.erl index d03ac6f..3bda113 100644 --- a/src/Data/String/Regex.erl +++ b/src/Data/String/Regex.erl @@ -7,7 +7,8 @@ flags_to_options([], Acc) -> {opts, Acc}; flags_to_options([$g|Flags], Acc) -> flags_to_options(Flags, Acc); flags_to_options([$i|Flags], Acc) -> flags_to_options(Flags, [caseless|Acc]); flags_to_options([$m|Flags], Acc) -> flags_to_options(Flags, [multiline|Acc]); -flags_to_options([$y|Flags], Acc) -> flags_to_options(Flags, Acc); +flags_to_options([$s|Flags], Acc) -> flags_to_options(Flags, [dotall|Acc]); +flags_to_options([$y|Flags], Acc) -> flags_to_options(Flags, [anchored|Acc]); %% this is basically sticky given there is no way to advance the index flags_to_options([$u|Flags], Acc) -> flags_to_options(Flags, [ucp|[unicode|Acc]]); flags_to_options(_,_) -> err. diff --git a/test/Test/Data/String.purs b/test/Test/Data/String.purs index 4f69455..ae9344d 100644 --- a/test/Test/Data/String.purs +++ b/test/Test/Data/String.purs @@ -118,6 +118,12 @@ testString = do , expected: "abc" } + log "trim multiline" + assertEqual + { actual: S.trim " abc\n def \n" + , expected: "abc\n def" + } + log "joinWith" assertEqual { actual: S.joinWith "" []