Compare commits

...

10 commits

Author SHA1 Message Date
Anupam Jain
40163d65d9 Get compiling again
1. Move to spago.yaml
2. Vendor Row.Class module, which was a part of purescript-row-extra
package, which seems to have disappeared.
3. Convert commonjs to esmodule
2024-11-27 18:24:13 +05:30
Athan Clark
63a9ce8e03 updated tuples 2019-09-06 08:19:21 -07:00
Athan Clark
d48f80bfd1 updated dep, removed useless test 2019-08-29 15:08:39 -07:00
Athan Clark
52b94d89f0 upgrade to v0.12 2018-10-24 18:56:29 -06:00
Athan Clark
19a8737eac dun goofed 2018-09-02 13:24:13 -06:00
Athan Clark
dc2b908841 fixed dep 2018-09-02 12:59:25 -06:00
Athan Clark
7524ee130c fixed dep 2018-09-02 12:51:09 -06:00
Athan Clark
8951dd8ffc fixing dep 2018-09-02 12:49:45 -06:00
Athan Clark
9bbe24e51b more complete bindings 2018-09-01 09:46:32 -06:00
Athan Clark
aa6ec371fb more bindings, gonna expose native controls 2018-08-31 21:19:32 -06:00
11 changed files with 1086 additions and 86 deletions

1
.gitignore vendored
View file

@ -7,3 +7,4 @@
/.psc*
/.purs*
/.psa*
.spago

3
README.md Normal file
View file

@ -0,0 +1,3 @@
# purescript-bignumber
Bindings to [bignumber.js](https://github.com/MikeMcl/bignumber.js/).

View file

@ -1,24 +0,0 @@
{
"name": "purescript-bignumber",
"ignore": [
"**/.*",
"node_modules",
"bower_components",
"output"
],
"license": "BSD-3-Clause",
"dependencies": {
"purescript-prelude": "^3.1.1",
"purescript-either": "^3.2.0",
"purescript-exceptions": "^3.0.0",
"purescript-tuples-native": "^0.1.0",
"purescript-record": "git@github.com:athanclark/purescript-record.git#850360dbfa1bf765a19b3ec207a706622fa47ac7"
},
"repository": {
"type": "git",
"url": "git://github.com/athanclark/purescript-bignumber.git"
},
"devDependencies": {
"purescript-psci-support": "^3.0.0"
}
}

13
package-lock.json generated Normal file
View file

@ -0,0 +1,13 @@
{
"name": "purescript-bignumber",
"version": "1.0.0",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
"bignumber.js": {
"version": "7.2.1",
"resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-7.2.1.tgz",
"integrity": "sha512-S4XzBk5sMB+Rcb/LNcpzXr57VRTxgAvaAEDAl1AwRx27j00hT84O6OkteE7u8UB3NuaaygCRrEpqox4uDOrbdQ=="
}
}
}

View file

@ -1,7 +1,6 @@
{
"name": "purescript-bignumber",
"version": "1.0.0",
"description": "",
"main": "index.js",
"directories": {
"test": "test"
@ -10,5 +9,17 @@
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC"
"license": "ISC",
"repository": {
"type": "git",
"url": "git+https://github.com/athanclark/purescript-bignumber.git"
},
"bugs": {
"url": "https://github.com/athanclark/purescript-bignumber/issues"
},
"homepage": "https://github.com/athanclark/purescript-bignumber#readme",
"description": "",
"dependencies": {
"bignumber.js": "^7.2.1"
}
}

768
spago.lock Normal file
View file

@ -0,0 +1,768 @@
{
"workspace": {
"packages": {
"bignumber": {
"path": "./",
"core": {
"dependencies": [
"console",
"effect",
"either",
"exceptions",
"functions",
"integers",
"partial",
"prelude",
"psci-support",
"tuples",
"tuples-native",
"typelevel"
],
"build_plan": [
"console",
"control",
"effect",
"either",
"exceptions",
"functions",
"integers",
"invariant",
"maybe",
"newtype",
"numbers",
"partial",
"prelude",
"psci-support",
"safe-coerce",
"tuples",
"tuples-native",
"type-equality",
"typelevel",
"typelevel-prelude",
"unsafe-coerce"
]
},
"test": {
"dependencies": [],
"build_plan": []
}
}
},
"package_set": {
"address": {
"registry": "61.2.0"
},
"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.2",
"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.1.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.1.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",
"jsdom": "1.0.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-colors-scales-and-schemes": "1.0.0",
"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.20",
"precise": "6.0.0",
"precise-datetime": "7.0.0",
"prelude": "6.0.1",
"prettier-printer": "3.0.0",
"printf": "0.1.0",
"priority-queue": "0.1.2",
"profunctor": "6.0.1",
"profunctor-lenses": "8.0.0",
"protobuf": "4.4.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": "7.0.0",
"react-basic-dom-beta": "0.1.1",
"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.1.1",
"spec-discovery": "8.4.0",
"spec-mocha": "5.1.1",
"spec-node": "0.0.3",
"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-subtlecrypto": "0.1.0",
"yoga-tree": "1.0.0",
"z3": "0.0.2",
"zipperarray": "2.0.0"
}
},
"extra_packages": {
"tuples-native": {
"git": "https://forge.id1.in/aj/purescript-tuples-native.git",
"ref": "main"
}
}
},
"packages": {
"console": {
"type": "registry",
"version": "6.1.0",
"integrity": "sha256-CxmAzjgyuGDmt9FZW51VhV6rBPwR6o0YeKUzA9rSzcM=",
"dependencies": [
"effect",
"prelude"
]
},
"control": {
"type": "registry",
"version": "6.0.0",
"integrity": "sha256-sH7Pg9E96JCPF9PIA6oQ8+BjTyO/BH1ZuE/bOcyj4Jk=",
"dependencies": [
"newtype",
"prelude"
]
},
"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"
]
},
"exceptions": {
"type": "registry",
"version": "6.1.0",
"integrity": "sha256-K0T89IHtF3vBY7eSAO7eDOqSb2J9kZGAcDN5+IKsF8E=",
"dependencies": [
"effect",
"either",
"maybe",
"prelude"
]
},
"functions": {
"type": "registry",
"version": "6.0.0",
"integrity": "sha256-adMyJNEnhGde2unHHAP79gPtlNjNqzgLB8arEOn9hLI=",
"dependencies": [
"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"
]
},
"maybe": {
"type": "registry",
"version": "6.0.0",
"integrity": "sha256-5cCIb0wPwbat2PRkQhUeZO0jcAmf8jCt2qE0wbC3v2Q=",
"dependencies": [
"control",
"invariant",
"newtype",
"prelude"
]
},
"newtype": {
"type": "registry",
"version": "5.0.0",
"integrity": "sha256-gdrQu8oGe9eZE6L3wOI8ql/igOg+zEGB5ITh2g+uttw=",
"dependencies": [
"prelude",
"safe-coerce"
]
},
"numbers": {
"type": "registry",
"version": "9.0.1",
"integrity": "sha256-/9M6aeMDBdB4cwYDeJvLFprAHZ49EbtKQLIJsneXLIk=",
"dependencies": [
"functions",
"maybe"
]
},
"partial": {
"type": "registry",
"version": "4.0.0",
"integrity": "sha256-fwXerld6Xw1VkReh8yeQsdtLVrjfGiVuC5bA1Wyo/J4=",
"dependencies": []
},
"prelude": {
"type": "registry",
"version": "6.0.1",
"integrity": "sha256-o8p6SLYmVPqzXZhQFd2hGAWEwBoXl1swxLG/scpJ0V0=",
"dependencies": []
},
"psci-support": {
"type": "registry",
"version": "6.0.0",
"integrity": "sha256-C6ql4P9TEP06hft/1Z5QumPA4yARR4VIxDdhmL1EO+Y=",
"dependencies": [
"console",
"effect",
"prelude"
]
},
"safe-coerce": {
"type": "registry",
"version": "2.0.0",
"integrity": "sha256-a1ibQkiUcbODbLE/WAq7Ttbbh9ex+x33VCQ7GngKudU=",
"dependencies": [
"unsafe-coerce"
]
},
"tuples": {
"type": "registry",
"version": "7.0.0",
"integrity": "sha256-1rXgTomes9105BjgXqIw0FL6Fz1lqqUTLWOumhWec1M=",
"dependencies": [
"control",
"invariant",
"prelude"
]
},
"tuples-native": {
"type": "git",
"url": "https://forge.id1.in/aj/purescript-tuples-native.git",
"rev": "acd3dec41f5dcd12077e635a40262b6defe83095",
"dependencies": [
"console",
"effect",
"functions",
"prelude",
"tuples",
"typelevel",
"typelevel-prelude"
]
},
"type-equality": {
"type": "registry",
"version": "4.0.1",
"integrity": "sha256-Hs9D6Y71zFi/b+qu5NSbuadUQXe5iv5iWx0226vOHUw=",
"dependencies": []
},
"typelevel": {
"type": "registry",
"version": "6.0.0",
"integrity": "sha256-Iu7INcwTC/SbKcienMe7KKQvWku2VhCZSGCvrQWVVoc=",
"dependencies": [
"partial",
"prelude",
"tuples",
"typelevel-prelude",
"unsafe-coerce"
]
},
"typelevel-prelude": {
"type": "registry",
"version": "7.0.0",
"integrity": "sha256-uFF2ph+vHcQpfPuPf2a3ukJDFmLhApmkpTMviHIWgJM=",
"dependencies": [
"prelude",
"type-equality"
]
},
"unsafe-coerce": {
"type": "registry",
"version": "6.0.0",
"integrity": "sha256-IqIYW4Vkevn8sI+6aUwRGvd87tVL36BBeOr0cGAE7t0=",
"dependencies": []
}
}
}

23
spago.yaml Normal file
View file

@ -0,0 +1,23 @@
package:
name: bignumber
dependencies:
- console
- effect
- either
- exceptions
- functions
- integers
- partial
- prelude
- psci-support
- tuples
- tuples-native
- typelevel
workspace:
packageSet:
registry: 61.2.0
extraPackages:
tuples-native:
git: https://forge.id1.in/aj/purescript-tuples-native.git
ref: main

View file

@ -1,38 +1,129 @@
import BigNumber from "bignumber.js";
"use strict";
var BigNumber = require('bignumber.js');
exports.parseBigNumberImpl = function parseBigNumberImpl (Left,Right,s) {
export function parseBigNumberImpl(Left, Right, s) {
var x;
try {
x = new BigNumber(s);
} catch (e) {
}
catch (e) {
return Left(e);
}
return x;
};
exports.configImpl = function configImpl (cfg) {
return Right(x);
}
export function configImpl(cfg) {
BigNumber.config(cfg);
};
exports.isBigNumber = function isBigNumber (x) {
}
export function isBigNumber(x) {
return BigNumber.isBigNumber(x);
};
exports.maxBigNumberImpl = function maxBigNumberImpl (x,y) {
return BigNumber.maximum(x,y);
};
exports.minBigNumberImpl = function minBigNumberImpl (x,y) {
return BigNumber.minimum(x,y);
};
exports.randomBigNumber = function randomBigNumber () {
}
export function randomBigNumber() {
return BigNumber.random();
};
}
export function absImpl(x) {
return x.abs();
}
export function compareBigNumberImpl(LT, EQ, GT, x, y) {
var r = x.comparedTo(y);
if (r === -1) {
return LT;
}
else if (r === 0) {
return EQ;
}
else if (r === 1) {
return GT;
}
}
export function decimalPlacesImpl(x, y) {
return x.decimalPlaces(y);
}
export function divBigNumberImpl(x, y) {
return x.div(y);
}
export function idivBigNumberImpl(x, y) {
return x.idiv(y);
}
export function powBigNumberImpl(x, y) {
return x.pow(y);
}
export function intValue(x) {
return x.integerValue();
}
export function eqBigNumberImpl(x, y) {
return x.eq(y);
}
export function isFinite(x) {
return x.isFinite();
}
export function gtBigNumberImpl(x, y) {
return x.gt(y);
}
export function gteBigNumberImpl(x, y) {
return x.gte(y);
}
export function isInteger(x) {
return x.isInteger();
}
export function ltBigNumberImpl(x, y) {
return x.lt(y);
}
export function lteBigNumberImpl(x, y) {
return x.lte(y);
}
export function isNaN(x) {
return x.isNaN();
}
export function isNegative(x) {
return x.isNegative();
}
export function isPositive(x) {
return x.isPositive();
}
export function isZero(x) {
return x.isZero();
}
export function minusBigNumberImpl(x, y) {
return x.minus(y);
}
export function moduloBigNumberImpl(x, y) {
return x.modulo(y);
}
export function timesBigNumberImpl(x, y) {
return x.times(y);
}
export function negateImpl(x) {
return x.negated();
}
export function plusBigNumberImpl(x, y) {
return x.plus(y);
}
export function precisionImpl(x, y) {
return x.precision(y);
}
export function shiftedByImpl(x, y) {
return x.shiftedBy(y);
}
export function toNumber(x) {
return x.toNumber();
}
export function toString(x) {
return x.toString();
}
export function toExponential(x) {
return x.toExponential();
}
export function toFixed(x) {
return x.toFixed();
}
export function toFormat(x) {
return x.toFormat();
}
export function toFractionImpl(x) {
return x.toFraction();
}
export function valueOf(x) {
return x.valueOf();
}
export function sqrt(x) {
return x.sqrt();
}

View file

@ -1,34 +1,45 @@
module Data.BigNumber
( BIGNUMBER, BigNumber, parseBigNumber, config
( BigNumber, parseBigNumber, config
, ConfigParams, RoundingMode
, roundUp, roundDown, roundCeil, roundFloor
, roundHalfUp, roundHalfDown, roundHalfEven, roundHalfCeil, roundHalfFloor
, ModuloMode, modRoundUp, modRoundDown, modRoundFloor, modRoundHalfEven
, modEuclid
, isBigNumber, maxBigNumber, minBigNumber, randomBigNumber
, isBigNumber, isInteger, isFinite, isNaN, isNegative, isPositive, isZero
, toNumber, toString, toExponential, toFixed, toFormat, toFraction, valueOf
, abs', negate', idiv, sqrt, pow
, intValue, precision, decimalPlaces, shiftedBy, randomBigNumber
) where
import Prelude
import Data.Int as Int
import Data.Either (Either (..))
import Data.Function.Uncurried (Fn3, runFn3, Fn2, runFn2)
import Data.Record.Class (class Subrow)
import Data.Tuple.Native (T2)
import Control.Monad.Eff (Eff, kind Effect)
import Control.Monad.Eff.Exception (Error)
import Control.Monad.Eff.Uncurried (EffFn1, runEffFn1)
import Data.Tuple (Tuple (..))
import Data.Function.Uncurried (Fn3, runFn3, Fn2, runFn2, Fn5, runFn5)
import Data.Tuple.Native (T2, prj)
import Data.Typelevel.Num.Reps (d0, d1)
import Data.Generic.Rep (class Generic, Constructor (..), Argument (..))
import Row.Class (class SubRow)
import Effect (Effect)
import Effect.Exception (Error)
import Effect.Uncurried (EffectFn1, runEffectFn1)
import Partial.Unsafe (unsafePartial)
foreign import data BIGNUMBER :: Effect
foreign import data BigNumber :: Type
instance genericBigNumber :: Generic BigNumber (Constructor "BigNumber" (Argument String)) where
from x = Constructor (Argument (toString x))
to (Constructor (Argument s)) = unsafePartial $ case parseBigNumber s of
Right x -> x
foreign import parseBigNumberImpl :: Fn3 (forall e a. e -> Either e a) (forall e a. a -> Either e a) String (Either Error BigNumber)
parseBigNumber :: String -> Either Error BigNumber
parseBigNumber = runFn3 parseBigNumberImpl Left Right
foreign import configImpl :: forall o eff. EffFn1 (bigNumber :: BIGNUMBER | eff) o Unit
foreign import configImpl :: forall o. EffectFn1 o Unit
newtype RoundingMode = RoundingMode Int
@ -66,6 +77,16 @@ modEuclid :: ModuloMode
modEuclid = ModuloMode 9
type FormatParams =
( decimalSeparator :: String
, groupSeparator :: String
, groupSize :: Int
, secondaryGroupSize :: Int
, fractionGroupSeparator :: String
, fractionGroupSize :: Int
)
type ConfigParams format =
( "DECIMAL_PLACES" :: Int
, "ROUNDING_MODE" :: RoundingMode
@ -78,22 +99,108 @@ type ConfigParams format =
, "ALPHABET" :: String
)
config :: forall o format eff
. Subrow o (ConfigParams format)
=> { | o } -> Eff (bigNumber :: BIGNUMBER | eff) Unit
config = runEffFn1 configImpl
config :: forall o format
. SubRow o (ConfigParams { | format })
=> SubRow format FormatParams
=> { | o } -> Effect Unit
config = runEffectFn1 configImpl
foreign import isBigNumber :: forall a. a -> Boolean
foreign import isInteger :: BigNumber -> Boolean
foreign import isFinite :: BigNumber -> Boolean
foreign import isNaN :: BigNumber -> Boolean
foreign import isNegative :: BigNumber -> Boolean
foreign import isPositive :: BigNumber -> Boolean
foreign import isZero :: BigNumber -> Boolean
foreign import maxBigNumberImpl :: Fn2 BigNumber BigNumber BigNumber
foreign import toNumber :: BigNumber -> Number
foreign import toString :: BigNumber -> String
foreign import toExponential :: BigNumber -> String
foreign import toFixed :: BigNumber -> String
foreign import toFormat :: BigNumber -> String
foreign import toFractionImpl :: Fn2 BigNumber BigNumber (T2 String String)
foreign import valueOf :: BigNumber -> String
maxBigNumber :: BigNumber -> BigNumber -> BigNumber
maxBigNumber = runFn2 maxBigNumberImpl
toFraction :: BigNumber -> BigNumber -> Tuple String String
toFraction a b =
let x = runFn2 toFractionImpl a b
in Tuple (prj d0 x) (prj d1 x)
foreign import minBigNumberImpl :: Fn2 BigNumber BigNumber BigNumber
foreign import eqBigNumberImpl :: Fn2 BigNumber BigNumber Boolean
foreign import gtBigNumberImpl :: Fn2 BigNumber BigNumber Boolean
foreign import gteBigNumberImpl :: Fn2 BigNumber BigNumber Boolean
foreign import ltBigNumberImpl :: Fn2 BigNumber BigNumber Boolean
foreign import lteBigNumberImpl :: Fn2 BigNumber BigNumber Boolean
foreign import compareBigNumberImpl :: Fn5 Ordering Ordering Ordering BigNumber BigNumber Ordering
minBigNumber :: BigNumber -> BigNumber -> BigNumber
minBigNumber = runFn2 minBigNumberImpl
foreign import absImpl :: BigNumber -> BigNumber
foreign import plusBigNumberImpl :: Fn2 BigNumber BigNumber BigNumber
foreign import minusBigNumberImpl :: Fn2 BigNumber BigNumber BigNumber
foreign import negateImpl :: BigNumber -> BigNumber
foreign import timesBigNumberImpl :: Fn2 BigNumber BigNumber BigNumber
foreign import divBigNumberImpl :: Fn2 BigNumber BigNumber BigNumber
foreign import idivBigNumberImpl :: Fn2 BigNumber BigNumber BigNumber
foreign import moduloBigNumberImpl :: Fn2 BigNumber BigNumber BigNumber
foreign import sqrt :: BigNumber -> BigNumber
foreign import powBigNumberImpl :: Fn2 BigNumber BigNumber BigNumber
foreign import randomBigNumber :: forall eff. Eff (bigNumber :: BIGNUMBER | eff) BigNumber
abs' :: BigNumber -> BigNumber
abs' = absImpl
negate' :: BigNumber -> BigNumber
negate' = negateImpl
idiv :: BigNumber -> BigNumber -> BigNumber
idiv = runFn2 idivBigNumberImpl
pow :: BigNumber -> BigNumber -> BigNumber
pow = runFn2 powBigNumberImpl
foreign import intValue :: BigNumber -> BigNumber
foreign import precisionImpl :: Fn2 BigNumber Int BigNumber
foreign import decimalPlacesImpl :: Fn2 BigNumber Int BigNumber
foreign import randomBigNumber :: Effect BigNumber
foreign import shiftedByImpl :: Fn2 BigNumber Int BigNumber
precision :: BigNumber -> Int -> BigNumber
precision = runFn2 precisionImpl
decimalPlaces :: BigNumber -> Int -> BigNumber
decimalPlaces = runFn2 decimalPlacesImpl
shiftedBy :: BigNumber -> Int -> BigNumber
shiftedBy = runFn2 shiftedByImpl
instance eqBigNumber :: Eq BigNumber where
eq = runFn2 eqBigNumberImpl
instance ordBigNumber :: Ord BigNumber where
compare = runFn5 compareBigNumberImpl LT EQ GT
instance showBigNumber :: Show BigNumber where
show = toString
instance semiringBigNumber :: Semiring BigNumber where
add = runFn2 plusBigNumberImpl
zero = unsafePartial $ case parseBigNumber "0" of
Right x -> x
one = unsafePartial $ case parseBigNumber "1" of
Right x -> x
mul = runFn2 timesBigNumberImpl
instance ringBigNumber :: Ring BigNumber where
sub = runFn2 minusBigNumberImpl
instance commutativeRingBigNumber :: CommutativeRing BigNumber
instance divisionRingBigNumber :: DivisionRing BigNumber where
recip = runFn2 divBigNumberImpl one
instance euclideanRingBigNumber :: EuclideanRing BigNumber where
degree = Int.floor <<< toNumber <<< intValue <<< abs'
div = runFn2 divBigNumberImpl
mod = runFn2 moduloBigNumberImpl

16
src/Row/Class.purs Normal file
View file

@ -0,0 +1,16 @@
module Row.Class where
import Prim.Row (class Union)
class SubRow (child :: Row Type) (parent :: Row Type)
instance subRowViaUnion :: Union child any parent => SubRow child parent
class IntersectRow (leftRow :: Row Type) (rightRow :: Row Type) (intersection :: Row Type) (leftRowRemainder :: Row Type) (rightRowRemainder :: Row Type)
instance intersectRowViaUnion
:: ( Union leftRowRemainder intersection leftRow
, Union rightRowRemainder intersection rightRow
) => IntersectRow leftRow rightRow intersection leftRowRemainder rightRowRemainder

View file

@ -1,9 +0,0 @@
module Test.Main where
import Prelude
import Control.Monad.Eff (Eff)
import Control.Monad.Eff.Console (CONSOLE, log)
main :: forall e. Eff (console :: CONSOLE | e) Unit
main = do
log "You should add some tests."