git.iko.soy/rowtype-yoga/purescript-yoga-json
on main help sign in
Add derive via (#26)
d4efaa2Mark Eibes
.github/workflows/ci.yml+5−3
@@ -13,13 +13,15 @@ jobs:
13 - uses: actions/checkout@v2
13 - uses: actions/checkout@v2
14
14
15 - uses: purescript-contrib/setup-purescript@main
15 - uses: purescript-contrib/setup-purescript@main
16+ with:
17+ spago: "unstable"
16
18
17 - uses: actions/setup-node@v2
19 - uses: actions/setup-node@v2
18 with:
20 with:
19− node-version: "14"
21+ node-version: "20"
20
22
21 - name: Cache PureScript dependencies
23 - name: Cache PureScript dependencies
22− uses: actions/cache@v2
24+ uses: actions/cache@v4
23 # This cache uses the .dhall files to know when it should reinstall
25 # This cache uses the .dhall files to know when it should reinstall
24 # and rebuild packages. It caches both the installed packages from
26 # and rebuild packages. It caches both the installed packages from
25 # the `.spago` directory and compilation artifacts from the `output`
27 # the `.spago` directory and compilation artifacts from the `output`
@@ -27,7 +29,7 @@ jobs:
27 # have changed. If you do not want to cache compiled output, remove
29 # have changed. If you do not want to cache compiled output, remove
28 # the `output` path.
30 # the `output` path.
29 with:
31 with:
30− key: ${{ runner.os }}-spago-${{ hashFiles('**/*.dhall') }}
32+ key: ${{ runner.os }}-spago-${{ hashFiles('**/*.yaml') }}
31 path: |
33 path: |
32 .spago
34 .spago
33 output
35 output
.gitignore+1
@@ -9,3 +9,4 @@
9/.nyc_output/
9/.nyc_output/
10/coverage/
10/coverage/
11/.idea/
11/.idea/
12+.spec-results
bower.jsondeleted−49
@@ -1,49 +0,0 @@
1−{
2− "name": "purescript-yoga-json",
3− "license": [
4− "MIT"
5− ],
6− "repository": {
7− "type": "git",
8− "url": "https://github.com/rowtype-yoga/purescript-yoga-json.git"
9− },
10− "ignore": [
11− "**/.*",
12− "node_modules",
13− "bower_components",
14− "output"
15− ],
16− "dependencies": {
17− "purescript-arrays": "^v7.1.0",
18− "purescript-bifunctors": "^v6.0.0",
19− "purescript-control": "^v6.0.0",
20− "purescript-datetime": "^v6.1.0",
21− "purescript-effect": "^v4.0.0",
22− "purescript-either": "^v6.1.0",
23− "purescript-exceptions": "^v6.0.0",
24− "purescript-foldable-traversable": "^v6.0.0",
25− "purescript-foreign": "^v7.0.0",
26− "purescript-foreign-object": "^v4.1.0",
27− "purescript-free": "^v7.0.0",
28− "purescript-identity": "^v6.0.0",
29− "purescript-integers": "^v6.0.0",
30− "purescript-js-bigints": "https://github.com/sigma-andex/purescript-js-bigints.git#v2.0.0",
31− "purescript-js-date": "^v8.0.0",
32− "purescript-lists": "^v7.0.0",
33− "purescript-maybe": "^v6.0.0",
34− "purescript-newtype": "^v5.0.0",
35− "purescript-nullable": "^v6.0.0",
36− "purescript-numbers": "^v9.0.0",
37− "purescript-ordered-collections": "^v3.0.0",
38− "purescript-partial": "^v4.0.0",
39− "purescript-prelude": "^v6.0.1",
40− "purescript-record": "^v4.0.0",
41− "purescript-strings": "^v6.0.1",
42− "purescript-transformers": "^v6.0.0",
43− "purescript-tuples": "^v7.0.0",
44− "purescript-typelevel-prelude": "^v7.0.0",
45− "purescript-unsafe-coerce": "^v6.0.0",
46− "purescript-variant": "^v8.0.0",
47− "purescript-yoga-tree": "https://github.com/rowtype-yoga/purescript-yoga-tree.git#v1.0.0"
48− }
49−}
package-lock.json+17−12
@@ -4,6 +4,7 @@
4 "requires": true,
4 "requires": true,
5 "packages": {
5 "packages": {
6 "": {
6 "": {
7+ "name": "purescript-yoga-json",
7 "devDependencies": {
8 "devDependencies": {
8 "c8": "^7.12.0",
9 "c8": "^7.12.0",
9 "rimraf": "^3.0.2"
10 "rimraf": "^3.0.2"
@@ -163,10 +164,11 @@
163 "dev": true
164 "dev": true
164 },
165 },
165 "node_modules/cross-spawn": {
166 "node_modules/cross-spawn": {
166− "version": "7.0.3",
167+ "version": "7.0.6",
167− "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
168+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz",
168− "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
169+ "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==",
169 "dev": true,
170 "dev": true,
171+ "license": "MIT",
170 "dependencies": {
172 "dependencies": {
171 "path-key": "^3.1.0",
173 "path-key": "^3.1.0",
172 "shebang-command": "^2.0.0",
174 "shebang-command": "^2.0.0",
@@ -458,7 +460,9 @@
458 "version": "3.0.2",
460 "version": "3.0.2",
459 "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
461 "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
460 "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
462 "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
463+ "deprecated": "Rimraf versions prior to v4 are no longer supported",
461 "dev": true,
464 "dev": true,
465+ "license": "ISC",
462 "dependencies": {
466 "dependencies": {
463 "glob": "^7.1.3"
467 "glob": "^7.1.3"
464 },
468 },
@@ -470,10 +474,11 @@
470 }
474 }
471 },
475 },
472 "node_modules/semver": {
476 "node_modules/semver": {
473− "version": "6.3.0",
477+ "version": "6.3.1",
474− "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
478+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
475− "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
479+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
476 "dev": true,
480 "dev": true,
481+ "license": "ISC",
477 "bin": {
482 "bin": {
478 "semver": "bin/semver.js"
483 "semver": "bin/semver.js"
479 }
484 }
@@ -789,9 +794,9 @@
789 "dev": true
794 "dev": true
790 },
795 },
791 "cross-spawn": {
796 "cross-spawn": {
792− "version": "7.0.3",
797+ "version": "7.0.6",
793− "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
798+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz",
794− "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
799+ "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==",
795 "dev": true,
800 "dev": true,
796 "requires": {
801 "requires": {
797 "path-key": "^3.1.0",
802 "path-key": "^3.1.0",
@@ -1012,9 +1017,9 @@
1012 }
1017 }
1013 },
1018 },
1014 "semver": {
1019 "semver": {
1015− "version": "6.3.0",
1020+ "version": "6.3.1",
1016− "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
1021+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
1017− "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
1022+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
1018 "dev": true
1023 "dev": true
1019 },
1024 },
1020 "shebang-command": {
1025 "shebang-command": {
package.json+4−7
@@ -1,14 +1,11 @@
1{
1{
2 "scripts": {
2 "scripts": {
3− "test": "spago -x test.dhall test --purs-args '-g sourcemaps'",
3+ "test": "spago test",
4− "precoverage": "rimraf output && npm run test",
4+ "precoverage": "npm run test",
5− "coverage": "c8 --100 npm run test"
5+ "coverage": "c8 --lines=99 --branches=75 --statements=99 npm run test"
6− },
7− "dependencies": {
8 },
6 },
9 "type": "module",
7 "type": "module",
10 "devDependencies": {
8 "devDependencies": {
11− "c8": "^7.12.0",
9+ "c8": "^7.12.0"
12− "rimraf": "^3.0.2"
13 }
10 }
14}
11}
spago.locknew file+1783
@@ -0,0 +1,1783 @@
1+{
2+ "workspace": {
3+ "packages": {
4+ "yoga-json": {
5+ "path": "./",
6+ "core": {
7+ "dependencies": [
8+ "arrays",
9+ "bifunctors",
10+ "control",
11+ "datetime",
12+ "effect",
13+ "either",
14+ "exceptions",
15+ "foldable-traversable",
16+ "foreign",
17+ "foreign-object",
18+ "free",
19+ "identity",
20+ "integers",
21+ "js-bigints",
22+ "js-date",
23+ "lists",
24+ "maybe",
25+ "newtype",
26+ "nullable",
27+ "numbers",
28+ "ordered-collections",
29+ "partial",
30+ "prelude",
31+ "record",
32+ "strings",
33+ "transformers",
34+ "tuples",
35+ "typelevel-prelude",
36+ "unsafe-coerce",
37+ "variant",
38+ "yoga-tree"
39+ ],
40+ "build_plan": [
41+ "arrays",
42+ "bifunctors",
43+ "catenable-lists",
44+ "const",
45+ "contravariant",
46+ "control",
47+ "datetime",
48+ "distributive",
49+ "effect",
50+ "either",
51+ "enums",
52+ "exceptions",
53+ "exists",
54+ "foldable-traversable",
55+ "foreign",
56+ "foreign-object",
57+ "free",
58+ "functions",
59+ "functors",
60+ "gen",
61+ "identity",
62+ "integers",
63+ "invariant",
64+ "js-bigints",
65+ "js-date",
66+ "lazy",
67+ "lists",
68+ "maybe",
69+ "newtype",
70+ "nonempty",
71+ "now",
72+ "nullable",
73+ "numbers",
74+ "ordered-collections",
75+ "orders",
76+ "partial",
77+ "prelude",
78+ "profunctor",
79+ "record",
80+ "refs",
81+ "safe-coerce",
82+ "st",
83+ "strings",
84+ "tailrec",
85+ "transformers",
86+ "tuples",
87+ "type-equality",
88+ "typelevel-prelude",
89+ "unfoldable",
90+ "unsafe-coerce",
91+ "variant",
92+ "yoga-tree"
93+ ]
94+ },
95+ "test": {
96+ "dependencies": [
97+ "spec",
98+ "spec-discovery",
99+ "spec-node",
100+ "strings-extra"
101+ ],
102+ "build_plan": [
103+ "aff",
104+ "ansi",
105+ "argonaut-codecs",
106+ "argonaut-core",
107+ "arraybuffer-types",
108+ "arrays",
109+ "avar",
110+ "bifunctors",
111+ "catenable-lists",
112+ "console",
113+ "const",
114+ "contravariant",
115+ "control",
116+ "datetime",
117+ "distributive",
118+ "effect",
119+ "either",
120+ "enums",
121+ "exceptions",
122+ "exists",
123+ "exitcodes",
124+ "foldable-traversable",
125+ "foreign",
126+ "foreign-object",
127+ "fork",
128+ "free",
129+ "functions",
130+ "functors",
131+ "gen",
132+ "identity",
133+ "integers",
134+ "invariant",
135+ "js-date",
136+ "lazy",
137+ "lists",
138+ "maybe",
139+ "mmorph",
140+ "newtype",
141+ "node-buffer",
142+ "node-event-emitter",
143+ "node-fs",
144+ "node-path",
145+ "node-process",
146+ "node-streams",
147+ "nonempty",
148+ "now",
149+ "nullable",
150+ "numbers",
151+ "open-memoize",
152+ "optparse",
153+ "ordered-collections",
154+ "orders",
155+ "parallel",
156+ "partial",
157+ "pipes",
158+ "posix-types",
159+ "prelude",
160+ "profunctor",
161+ "record",
162+ "refs",
163+ "safe-coerce",
164+ "spec",
165+ "spec-discovery",
166+ "spec-node",
167+ "st",
168+ "strings",
169+ "strings-extra",
170+ "tailrec",
171+ "transformers",
172+ "tuples",
173+ "type-equality",
174+ "typelevel-prelude",
175+ "unfoldable",
176+ "unicode",
177+ "unsafe-coerce"
178+ ]
179+ }
180+ }
181+ },
182+ "package_set": {
183+ "address": {
184+ "registry": "63.2.1"
185+ },
186+ "compiler": ">=0.15.15 <0.16.0",
187+ "content": {
188+ "abc-parser": "2.0.1",
189+ "ace": "9.1.0",
190+ "address-rfc2821": "0.1.1",
191+ "aff": "8.0.0",
192+ "aff-bus": "6.0.0",
193+ "aff-coroutines": "9.0.0",
194+ "aff-promise": "4.0.0",
195+ "aff-retry": "2.0.0",
196+ "affjax": "13.0.0",
197+ "affjax-node": "1.0.0",
198+ "affjax-web": "1.0.0",
199+ "ansi": "7.0.0",
200+ "apexcharts": "0.5.0",
201+ "applicative-phases": "1.0.0",
202+ "argonaut": "9.0.0",
203+ "argonaut-aeson-generic": "0.4.1",
204+ "argonaut-codecs": "9.1.0",
205+ "argonaut-core": "7.0.0",
206+ "argonaut-generic": "8.0.0",
207+ "argonaut-traversals": "10.0.0",
208+ "argparse-basic": "2.0.0",
209+ "array-builder": "0.1.2",
210+ "array-search": "0.6.0",
211+ "arraybuffer": "13.2.0",
212+ "arraybuffer-builder": "3.1.0",
213+ "arraybuffer-types": "3.0.2",
214+ "arrays": "7.3.0",
215+ "arrays-extra": "0.6.1",
216+ "arrays-zipper": "2.0.1",
217+ "ask": "1.0.0",
218+ "assert": "6.0.0",
219+ "assert-multiple": "0.4.0",
220+ "avar": "5.0.1",
221+ "b64": "0.0.8",
222+ "barbies": "1.0.1",
223+ "barlow-lens": "0.9.0",
224+ "bifunctors": "6.0.0",
225+ "bigints": "7.0.1",
226+ "bolson": "0.3.9",
227+ "bookhound": "0.1.7",
228+ "bower-json": "3.0.0",
229+ "call-by-name": "4.0.1",
230+ "canvas": "6.0.0",
231+ "canvas-action": "9.0.0",
232+ "cartesian": "1.0.6",
233+ "catenable-lists": "7.0.0",
234+ "cbor-stream": "1.3.0",
235+ "chameleon": "1.0.0",
236+ "chameleon-halogen": "1.0.3",
237+ "chameleon-react-basic": "1.1.0",
238+ "chameleon-styled": "2.5.0",
239+ "chameleon-transformers": "1.0.0",
240+ "channel": "1.0.0",
241+ "checked-exceptions": "3.1.1",
242+ "choku": "1.0.2",
243+ "classless": "0.1.1",
244+ "classless-arbitrary": "0.1.1",
245+ "classless-decode-json": "0.1.1",
246+ "classless-encode-json": "0.1.3",
247+ "classnames": "2.0.0",
248+ "codec": "6.1.0",
249+ "codec-argonaut": "10.0.0",
250+ "codec-json": "2.0.0",
251+ "colors": "7.0.1",
252+ "concur-core": "0.5.0",
253+ "concur-react": "0.5.0",
254+ "concurrent-queues": "3.0.0",
255+ "console": "6.1.0",
256+ "const": "6.0.0",
257+ "contravariant": "6.0.0",
258+ "control": "6.0.0",
259+ "convertable-options": "1.0.0",
260+ "coroutines": "7.0.0",
261+ "css": "6.0.0",
262+ "css-class-name-extractor": "0.0.4",
263+ "css-frameworks": "1.0.1",
264+ "csv-stream": "2.3.0",
265+ "data-mvc": "0.0.2",
266+ "datetime": "6.1.0",
267+ "datetime-parsing": "0.2.0",
268+ "debounce": "0.1.0",
269+ "debug": "6.0.2",
270+ "decimals": "7.1.0",
271+ "default-values": "1.0.1",
272+ "deku": "0.9.23",
273+ "deno": "0.0.5",
274+ "dissect": "1.0.0",
275+ "distributive": "6.0.0",
276+ "dodo-printer": "2.2.3",
277+ "dom-filereader": "7.0.0",
278+ "dom-indexed": "12.0.0",
279+ "dom-simple": "0.4.0",
280+ "dotenv": "4.0.3",
281+ "droplet": "0.6.0",
282+ "dts": "1.0.0",
283+ "dual-numbers": "1.0.3",
284+ "dynamic-buffer": "3.0.1",
285+ "echarts-simple": "0.0.1",
286+ "effect": "4.0.0",
287+ "either": "6.1.0",
288+ "elmish": "0.13.0",
289+ "elmish-enzyme": "0.1.1",
290+ "elmish-hooks": "0.10.3",
291+ "elmish-html": "0.9.0",
292+ "elmish-testing-library": "0.3.2",
293+ "email-validate": "7.0.0",
294+ "encoding": "0.0.9",
295+ "enums": "6.0.1",
296+ "env-names": "0.4.0",
297+ "error": "2.0.0",
298+ "eta-conversion": "0.3.2",
299+ "exceptions": "6.1.0",
300+ "exists": "6.0.0",
301+ "exitcodes": "4.0.0",
302+ "expect-inferred": "3.0.0",
303+ "ezfetch": "1.1.0",
304+ "fahrtwind": "2.0.0",
305+ "fallback": "0.1.0",
306+ "fast-vect": "1.2.0",
307+ "fetch": "4.1.0",
308+ "fetch-argonaut": "1.0.1",
309+ "fetch-core": "5.1.0",
310+ "fetch-yoga-json": "1.1.0",
311+ "ffi-simple": "0.5.1",
312+ "fft-js": "0.1.0",
313+ "filterable": "5.0.0",
314+ "fix-functor": "0.1.0",
315+ "fixed-points": "7.0.0",
316+ "fixed-precision": "5.0.0",
317+ "flame": "1.3.0",
318+ "float32": "2.0.0",
319+ "fmt": "0.2.1",
320+ "foldable-traversable": "6.0.0",
321+ "foldable-traversable-extra": "0.0.6",
322+ "foreign": "7.0.0",
323+ "foreign-object": "4.1.0",
324+ "foreign-readwrite": "3.4.0",
325+ "forgetmenot": "0.1.0",
326+ "fork": "6.0.0",
327+ "form-urlencoded": "7.0.0",
328+ "formatters": "7.0.0",
329+ "framer-motion": "1.0.1",
330+ "free": "7.1.0",
331+ "freeap": "7.0.0",
332+ "freer-free": "0.0.1",
333+ "freet": "7.0.0",
334+ "functions": "6.0.0",
335+ "functor1": "3.0.0",
336+ "functors": "5.0.0",
337+ "fuzzy": "0.4.0",
338+ "gen": "4.0.0",
339+ "generate-values": "1.0.1",
340+ "generic-router": "0.0.1",
341+ "geojson": "0.0.5",
342+ "geometria": "2.2.0",
343+ "gojs": "0.1.1",
344+ "grain": "3.0.0",
345+ "grain-router": "3.0.0",
346+ "grain-virtualized": "3.0.0",
347+ "graphs": "8.1.0",
348+ "group": "4.1.1",
349+ "halogen": "7.0.0",
350+ "halogen-bootstrap5": "5.3.2",
351+ "halogen-canvas": "1.0.0",
352+ "halogen-css": "10.0.0",
353+ "halogen-echarts-simple": "0.0.4",
354+ "halogen-formless": "4.0.3",
355+ "halogen-helix": "1.0.1",
356+ "halogen-hooks": "0.6.3",
357+ "halogen-hooks-extra": "0.9.0",
358+ "halogen-infinite-scroll": "1.1.0",
359+ "halogen-store": "0.5.4",
360+ "halogen-storybook": "2.0.0",
361+ "halogen-subscriptions": "2.0.0",
362+ "halogen-svg-elems": "8.0.0",
363+ "halogen-typewriter": "1.0.4",
364+ "halogen-vdom": "8.0.0",
365+ "halogen-vdom-string-renderer": "0.5.0",
366+ "halogen-xterm": "2.0.0",
367+ "heckin": "2.0.1",
368+ "heterogeneous": "0.6.0",
369+ "homogeneous": "0.4.0",
370+ "http-methods": "6.0.0",
371+ "httpurple": "4.0.0",
372+ "huffman": "0.4.0",
373+ "humdrum": "0.0.1",
374+ "hyrule": "2.3.8",
375+ "identity": "6.0.0",
376+ "identy": "4.0.1",
377+ "indexed-db": "1.0.0",
378+ "indexed-monad": "3.0.0",
379+ "int64": "3.0.0",
380+ "integers": "6.0.0",
381+ "interpolate": "5.0.2",
382+ "intersection-observer": "1.0.1",
383+ "invariant": "6.0.0",
384+ "jarilo": "1.0.1",
385+ "jelly": "0.10.0",
386+ "jelly-router": "0.3.0",
387+ "jelly-signal": "0.4.0",
388+ "jest": "1.0.0",
389+ "js-abort-controller": "1.0.0",
390+ "js-bigints": "2.2.1",
391+ "js-date": "8.0.0",
392+ "js-fetch": "0.2.1",
393+ "js-fileio": "3.0.0",
394+ "js-intl": "1.1.4",
395+ "js-iterators": "0.1.1",
396+ "js-maps": "0.1.2",
397+ "js-promise": "1.0.0",
398+ "js-promise-aff": "1.0.0",
399+ "js-timers": "6.1.0",
400+ "js-uri": "3.1.0",
401+ "jsdom": "1.0.0",
402+ "json": "1.1.0",
403+ "json-codecs": "5.0.0",
404+ "justifill": "0.5.0",
405+ "jwt": "0.0.9",
406+ "labeled-data": "0.2.0",
407+ "language-cst-parser": "0.14.1",
408+ "lazy": "6.0.0",
409+ "lazy-joe": "1.0.0",
410+ "lcg": "4.0.0",
411+ "leibniz": "5.0.0",
412+ "leveldb": "1.0.1",
413+ "liminal": "1.0.1",
414+ "linalg": "6.0.0",
415+ "lists": "7.0.0",
416+ "literals": "1.0.2",
417+ "logging": "3.0.0",
418+ "logging-journald": "0.4.0",
419+ "lumi-components": "18.0.0",
420+ "machines": "7.0.0",
421+ "maps-eager": "0.5.0",
422+ "marionette": "1.0.0",
423+ "marionette-react-basic-hooks": "0.1.1",
424+ "marked": "0.1.0",
425+ "matrices": "5.0.1",
426+ "matryoshka": "1.0.0",
427+ "maybe": "6.0.0",
428+ "media-types": "6.0.0",
429+ "meowclient": "1.0.0",
430+ "midi": "4.0.0",
431+ "milkis": "9.0.0",
432+ "minibench": "4.0.1",
433+ "mmorph": "7.0.0",
434+ "monad-control": "5.0.0",
435+ "monad-logger": "1.3.1",
436+ "monad-loops": "0.5.0",
437+ "monad-unlift": "1.0.1",
438+ "monoid-extras": "0.0.1",
439+ "monoidal": "0.16.0",
440+ "morello": "0.4.0",
441+ "mote": "3.0.0",
442+ "motsunabe": "2.0.0",
443+ "mvc": "0.0.1",
444+ "mysql": "6.0.1",
445+ "n3": "0.1.0",
446+ "nano-id": "1.1.0",
447+ "nanoid": "0.1.0",
448+ "naturals": "3.0.0",
449+ "nested-functor": "0.2.1",
450+ "newtype": "5.0.0",
451+ "nextjs": "0.1.1",
452+ "nextui": "0.2.0",
453+ "node-buffer": "9.0.0",
454+ "node-child-process": "11.1.0",
455+ "node-event-emitter": "3.0.0",
456+ "node-execa": "5.0.0",
457+ "node-fs": "9.2.0",
458+ "node-glob-basic": "2.0.0",
459+ "node-http": "9.1.0",
460+ "node-http2": "1.1.1",
461+ "node-human-signals": "1.0.0",
462+ "node-net": "5.1.0",
463+ "node-os": "5.1.0",
464+ "node-path": "5.0.1",
465+ "node-process": "11.2.0",
466+ "node-readline": "8.1.1",
467+ "node-sqlite3": "8.0.0",
468+ "node-stream-pipes": "2.1.6",
469+ "node-streams": "9.0.1",
470+ "node-tls": "0.3.1",
471+ "node-url": "7.0.1",
472+ "node-workerbees": "0.3.1",
473+ "node-zlib": "0.4.0",
474+ "nonempty": "7.0.0",
475+ "now": "6.0.0",
476+ "npm-package-json": "2.0.0",
477+ "nullable": "6.0.0",
478+ "numberfield": "0.2.2",
479+ "numbers": "9.0.1",
480+ "oak": "3.1.1",
481+ "oak-debug": "1.2.2",
482+ "object-maps": "0.3.0",
483+ "ocarina": "1.5.4",
484+ "oooooooooorrrrrrrmm-lib": "0.0.1",
485+ "open-colors-scales-and-schemes": "1.0.0",
486+ "open-folds": "6.4.0",
487+ "open-foreign-generic": "11.0.3",
488+ "open-memoize": "6.2.0",
489+ "open-mkdirp-aff": "1.2.0",
490+ "open-pairing": "6.2.0",
491+ "open-smolder": "12.0.2",
492+ "options": "7.0.0",
493+ "optparse": "5.0.1",
494+ "ordered-collections": "3.2.0",
495+ "ordered-set": "0.4.0",
496+ "orders": "6.0.0",
497+ "owoify": "1.2.0",
498+ "pairs": "9.0.1",
499+ "parallel": "7.0.0",
500+ "parsing": "10.2.0",
501+ "parsing-dataview": "3.2.4",
502+ "partial": "4.0.0",
503+ "pathy": "9.0.0",
504+ "pha": "0.13.0",
505+ "phaser": "0.7.0",
506+ "phylio": "1.1.2",
507+ "pipes": "8.0.0",
508+ "pirates-charm": "0.0.1",
509+ "pmock": "0.9.0",
510+ "point-free": "1.0.0",
511+ "pointed-list": "0.5.1",
512+ "polymorphic-vectors": "4.0.0",
513+ "posix-types": "6.0.0",
514+ "postgresql": "2.0.20",
515+ "precise": "6.0.0",
516+ "precise-datetime": "7.0.0",
517+ "prelude": "6.0.2",
518+ "prettier-printer": "3.0.0",
519+ "printf": "0.1.0",
520+ "priority-queue": "0.1.2",
521+ "profunctor": "6.0.1",
522+ "profunctor-lenses": "8.0.0",
523+ "protobuf": "4.4.0",
524+ "psa-utils": "8.0.0",
525+ "psci-support": "6.0.0",
526+ "punycode": "1.0.0",
527+ "qualified-do": "2.2.0",
528+ "quantities": "12.2.0",
529+ "quickcheck": "8.0.1",
530+ "quickcheck-combinators": "0.1.3",
531+ "quickcheck-laws": "7.0.0",
532+ "quickcheck-utf8": "0.0.0",
533+ "random": "6.0.0",
534+ "rationals": "6.0.0",
535+ "rdf": "0.1.0",
536+ "react": "11.0.0",
537+ "react-aria": "0.2.0",
538+ "react-basic": "17.0.0",
539+ "react-basic-classic": "3.0.0",
540+ "react-basic-dnd": "10.1.0",
541+ "react-basic-dom": "7.0.0",
542+ "react-basic-dom-beta": "0.1.1",
543+ "react-basic-emotion": "7.1.0",
544+ "react-basic-hooks": "8.2.0",
545+ "react-basic-storybook": "2.0.0",
546+ "react-dom": "8.0.0",
547+ "react-halo": "3.0.0",
548+ "react-icons": "1.1.5",
549+ "react-markdown": "0.1.0",
550+ "react-testing-library": "4.0.1",
551+ "react-virtuoso": "1.0.0",
552+ "reactix": "0.6.1",
553+ "read": "1.0.1",
554+ "recharts": "1.1.0",
555+ "record": "4.0.0",
556+ "record-extra": "5.0.1",
557+ "record-ptional-fields": "0.1.2",
558+ "record-studio": "1.0.4",
559+ "refs": "6.0.0",
560+ "remotedata": "5.0.1",
561+ "repr": "0.5.0",
562+ "resize-observer": "1.0.0",
563+ "resource": "2.0.1",
564+ "resourcet": "1.0.0",
565+ "result": "1.0.3",
566+ "return": "0.2.0",
567+ "ring-modules": "5.0.1",
568+ "rito": "0.3.4",
569+ "roman": "0.4.0",
570+ "rough-notation": "1.0.2",
571+ "routing": "11.0.0",
572+ "routing-duplex": "0.7.0",
573+ "run": "5.0.0",
574+ "safe-coerce": "2.0.0",
575+ "safely": "4.0.1",
576+ "school-of-music": "1.3.0",
577+ "selection-foldable": "0.2.0",
578+ "selective-functors": "1.0.1",
579+ "semirings": "7.0.0",
580+ "shuffle": "1.1.0",
581+ "signal": "13.0.0",
582+ "simple-emitter": "3.0.1",
583+ "simple-i18n": "2.0.1",
584+ "simple-json": "9.0.0",
585+ "simple-json-generics": "0.2.1",
586+ "simple-ulid": "3.0.0",
587+ "sized-matrices": "1.0.0",
588+ "sized-vectors": "5.0.2",
589+ "slug": "3.1.0",
590+ "small-ffi": "4.0.1",
591+ "soundfonts": "4.1.0",
592+ "sparse-matrices": "2.0.1",
593+ "sparse-polynomials": "3.0.1",
594+ "spec": "8.1.1",
595+ "spec-discovery": "8.4.0",
596+ "spec-mocha": "5.1.1",
597+ "spec-node": "0.0.3",
598+ "spec-quickcheck": "5.0.2",
599+ "spec-reporter-xunit": "0.7.1",
600+ "splitmix": "2.1.0",
601+ "ssrs": "1.0.0",
602+ "st": "6.2.0",
603+ "statistics": "0.3.2",
604+ "strictlypositiveint": "1.0.1",
605+ "string-parsers": "8.0.0",
606+ "strings": "6.0.1",
607+ "strings-extra": "4.0.0",
608+ "stringutils": "0.0.12",
609+ "substitute": "0.2.3",
610+ "supply": "0.2.0",
611+ "svg-parser": "3.0.0",
612+ "systemd-journald": "0.3.0",
613+ "tagged": "4.0.2",
614+ "tailrec": "6.1.0",
615+ "tanstack-query": "2.0.0",
616+ "tecton": "0.2.1",
617+ "tecton-halogen": "0.2.0",
618+ "test-unit": "17.0.0",
619+ "thermite": "6.3.1",
620+ "thermite-dom": "0.3.1",
621+ "these": "6.0.0",
622+ "threading": "0.0.3",
623+ "tidy": "0.11.1",
624+ "tidy-codegen": "4.0.1",
625+ "tldr": "0.0.0",
626+ "toestand": "0.9.0",
627+ "transformation-matrix": "1.0.1",
628+ "transformers": "6.1.0",
629+ "tree-rose": "4.0.2",
630+ "ts-bridge": "4.0.0",
631+ "tuples": "7.0.0",
632+ "two-or-more": "1.0.0",
633+ "type-equality": "4.0.1",
634+ "typedenv": "2.0.1",
635+ "typelevel": "6.0.0",
636+ "typelevel-lists": "2.1.0",
637+ "typelevel-peano": "1.0.1",
638+ "typelevel-prelude": "7.0.0",
639+ "typelevel-regex": "0.0.3",
640+ "typelevel-rows": "0.1.0",
641+ "typisch": "0.4.0",
642+ "uint": "7.0.0",
643+ "ulid": "3.0.1",
644+ "uncurried-transformers": "1.1.0",
645+ "undefined": "2.0.0",
646+ "undefined-is-not-a-problem": "1.1.0",
647+ "unfoldable": "6.0.0",
648+ "unicode": "6.0.0",
649+ "unique": "0.6.1",
650+ "unlift": "1.0.1",
651+ "unordered-collections": "3.1.0",
652+ "unsafe-coerce": "6.0.0",
653+ "unsafe-reference": "5.0.0",
654+ "untagged-to-tagged": "0.1.4",
655+ "untagged-union": "1.0.0",
656+ "uri": "9.0.0",
657+ "url-immutable": "1.0.0",
658+ "uuid": "9.0.0",
659+ "uuidv4": "1.0.0",
660+ "validation": "6.0.0",
661+ "variant": "8.0.0",
662+ "variant-encodings": "2.0.0",
663+ "vectorfield": "1.0.1",
664+ "vectors": "2.1.0",
665+ "versions": "7.0.0",
666+ "visx": "0.0.2",
667+ "vitest": "1.0.0",
668+ "web-clipboard": "6.0.0",
669+ "web-cssom": "2.0.0",
670+ "web-cssom-view": "0.1.0",
671+ "web-dom": "6.0.0",
672+ "web-dom-parser": "8.0.0",
673+ "web-dom-xpath": "3.0.0",
674+ "web-encoding": "3.0.0",
675+ "web-events": "4.0.0",
676+ "web-fetch": "4.0.1",
677+ "web-file": "4.0.0",
678+ "web-geometry": "0.1.0",
679+ "web-html": "4.1.0",
680+ "web-pointerevents": "2.0.0",
681+ "web-proletarian": "1.0.0",
682+ "web-promise": "3.2.0",
683+ "web-resize-observer": "2.1.0",
684+ "web-router": "1.0.0",
685+ "web-socket": "4.0.0",
686+ "web-storage": "5.0.0",
687+ "web-streams": "4.0.0",
688+ "web-touchevents": "4.0.0",
689+ "web-uievents": "5.0.0",
690+ "web-url": "2.0.0",
691+ "web-workers": "1.1.0",
692+ "web-xhr": "5.0.1",
693+ "webextension-polyfill": "0.1.0",
694+ "webgpu": "0.0.1",
695+ "which": "2.0.0",
696+ "whine-core": "0.0.28",
697+ "xterm": "1.0.0",
698+ "yoga-fetch": "1.0.1",
699+ "yoga-json": "5.1.0",
700+ "yoga-om": "0.1.0",
701+ "yoga-postgres": "6.0.0",
702+ "yoga-react-dom": "1.0.1",
703+ "yoga-subtlecrypto": "0.1.0",
704+ "yoga-tree": "1.0.0",
705+ "z3": "0.0.2",
706+ "zipperarray": "2.0.0"
707+ }
708+ },
709+ "extra_packages": {}
710+ },
711+ "packages": {
712+ "aff": {
713+ "type": "registry",
714+ "version": "8.0.0",
715+ "integrity": "sha256-5MmdI4+0RHBtSBy+YlU3/Cq4R5W2ih3OaRedJIrVHdk=",
716+ "dependencies": [
717+ "bifunctors",
718+ "control",
719+ "datetime",
720+ "effect",
721+ "either",
722+ "exceptions",
723+ "foldable-traversable",
724+ "functions",
725+ "maybe",
726+ "newtype",
727+ "parallel",
728+ "prelude",
729+ "refs",
730+ "tailrec",
731+ "transformers",
732+ "unsafe-coerce"
733+ ]
734+ },
735+ "ansi": {
736+ "type": "registry",
737+ "version": "7.0.0",
738+ "integrity": "sha256-ZMB6HD+q9CXvn9fRCmJ8dvuDrOVHcjombL3oNOerVnE=",
739+ "dependencies": [
740+ "foldable-traversable",
741+ "lists",
742+ "strings"
743+ ]
744+ },
745+ "argonaut-codecs": {
746+ "type": "registry",
747+ "version": "9.1.0",
748+ "integrity": "sha256-N6efXByUeg848ompEqJfVvZuZPfdRYDGlTDFn0G0Oh8=",
749+ "dependencies": [
750+ "argonaut-core",
751+ "arrays",
752+ "effect",
753+ "foreign-object",
754+ "identity",
755+ "integers",
756+ "maybe",
757+ "nonempty",
758+ "ordered-collections",
759+ "prelude",
760+ "record"
761+ ]
762+ },
763+ "argonaut-core": {
764+ "type": "registry",
765+ "version": "7.0.0",
766+ "integrity": "sha256-RC82GfAjItydxrO24cdX373KHVZiLqybu19b5X8u7B4=",
767+ "dependencies": [
768+ "arrays",
769+ "control",
770+ "either",
771+ "foreign-object",
772+ "functions",
773+ "gen",
774+ "maybe",
775+ "nonempty",
776+ "prelude",
777+ "strings",
778+ "tailrec"
779+ ]
780+ },
781+ "arraybuffer-types": {
782+ "type": "registry",
783+ "version": "3.0.2",
784+ "integrity": "sha256-mQKokysYVkooS4uXbO+yovmV/s8b138Ws3zQvOwIHRA=",
785+ "dependencies": []
786+ },
787+ "arrays": {
788+ "type": "registry",
789+ "version": "7.3.0",
790+ "integrity": "sha256-tmcklBlc/muUtUfr9RapdCPwnlQeB3aSrC4dK85gQlc=",
791+ "dependencies": [
792+ "bifunctors",
793+ "control",
794+ "foldable-traversable",
795+ "functions",
796+ "maybe",
797+ "nonempty",
798+ "partial",
799+ "prelude",
800+ "safe-coerce",
801+ "st",
802+ "tailrec",
803+ "tuples",
804+ "unfoldable",
805+ "unsafe-coerce"
806+ ]
807+ },
808+ "avar": {
809+ "type": "registry",
810+ "version": "5.0.1",
811+ "integrity": "sha256-f+bRR3qQPa/GVe4UbLQiJBy7+PzJkUCwT6qNn0UlkMY=",
812+ "dependencies": [
813+ "aff",
814+ "effect",
815+ "either",
816+ "exceptions",
817+ "functions",
818+ "maybe"
819+ ]
820+ },
821+ "bifunctors": {
822+ "type": "registry",
823+ "version": "6.0.0",
824+ "integrity": "sha256-/gZwC9YhNxZNQpnHa5BIYerCGM2jeX9ukZiEvYxm5Nw=",
825+ "dependencies": [
826+ "const",
827+ "either",
828+ "newtype",
829+ "prelude",
830+ "tuples"
831+ ]
832+ },
833+ "catenable-lists": {
834+ "type": "registry",
835+ "version": "7.0.0",
836+ "integrity": "sha256-76vYENhwF4BWTBsjeLuErCH2jqVT4M3R1HX+4RwSftA=",
837+ "dependencies": [
838+ "control",
839+ "foldable-traversable",
840+ "lists",
841+ "maybe",
842+ "prelude",
843+ "tuples",
844+ "unfoldable"
845+ ]
846+ },
847+ "console": {
848+ "type": "registry",
849+ "version": "6.1.0",
850+ "integrity": "sha256-CxmAzjgyuGDmt9FZW51VhV6rBPwR6o0YeKUzA9rSzcM=",
851+ "dependencies": [
852+ "effect",
853+ "prelude"
854+ ]
855+ },
856+ "const": {
857+ "type": "registry",
858+ "version": "6.0.0",
859+ "integrity": "sha256-tNrxDW8D8H4jdHE2HiPzpLy08zkzJMmGHdRqt5BQuTc=",
860+ "dependencies": [
861+ "invariant",
862+ "newtype",
863+ "prelude"
864+ ]
865+ },
866+ "contravariant": {
867+ "type": "registry",
868+ "version": "6.0.0",
869+ "integrity": "sha256-TP+ooAp3vvmdjfQsQJSichF5B4BPDHp3wAJoWchip6c=",
870+ "dependencies": [
871+ "const",
872+ "either",
873+ "newtype",
874+ "prelude",
875+ "tuples"
876+ ]
877+ },
878+ "control": {
879+ "type": "registry",
880+ "version": "6.0.0",
881+ "integrity": "sha256-sH7Pg9E96JCPF9PIA6oQ8+BjTyO/BH1ZuE/bOcyj4Jk=",
882+ "dependencies": [
883+ "newtype",
884+ "prelude"
885+ ]
886+ },
887+ "datetime": {
888+ "type": "registry",
889+ "version": "6.1.0",
890+ "integrity": "sha256-g/5X5BBegQWLpI9IWD+sY6mcaYpzzlW5lz5NBzaMtyI=",
891+ "dependencies": [
892+ "bifunctors",
893+ "control",
894+ "either",
895+ "enums",
896+ "foldable-traversable",
897+ "functions",
898+ "gen",
899+ "integers",
900+ "lists",
901+ "maybe",
902+ "newtype",
903+ "numbers",
904+ "ordered-collections",
905+ "partial",
906+ "prelude",
907+ "tuples"
908+ ]
909+ },
910+ "distributive": {
911+ "type": "registry",
912+ "version": "6.0.0",
913+ "integrity": "sha256-HTDdmEnzigMl+02SJB88j+gAXDx9VKsbvR4MJGDPbOQ=",
914+ "dependencies": [
915+ "identity",
916+ "newtype",
917+ "prelude",
918+ "tuples",
919+ "type-equality"
920+ ]
921+ },
922+ "effect": {
923+ "type": "registry",
924+ "version": "4.0.0",
925+ "integrity": "sha256-eBtZu+HZcMa5HilvI6kaDyVX3ji8p0W9MGKy2K4T6+M=",
926+ "dependencies": [
927+ "prelude"
928+ ]
929+ },
930+ "either": {
931+ "type": "registry",
932+ "version": "6.1.0",
933+ "integrity": "sha256-6hgTPisnMWVwQivOu2PKYcH8uqjEOOqDyaDQVUchTpY=",
934+ "dependencies": [
935+ "control",
936+ "invariant",
937+ "maybe",
938+ "prelude"
939+ ]
940+ },
941+ "enums": {
942+ "type": "registry",
943+ "version": "6.0.1",
944+ "integrity": "sha256-HWaD73JFLorc4A6trKIRUeDMdzE+GpkJaEOM1nTNkC8=",
945+ "dependencies": [
946+ "control",
947+ "either",
948+ "gen",
949+ "maybe",
950+ "newtype",
951+ "nonempty",
952+ "partial",
953+ "prelude",
954+ "tuples",
955+ "unfoldable"
956+ ]
957+ },
958+ "exceptions": {
959+ "type": "registry",
960+ "version": "6.1.0",
961+ "integrity": "sha256-K0T89IHtF3vBY7eSAO7eDOqSb2J9kZGAcDN5+IKsF8E=",
962+ "dependencies": [
963+ "effect",
964+ "either",
965+ "maybe",
966+ "prelude"
967+ ]
968+ },
969+ "exists": {
970+ "type": "registry",
971+ "version": "6.0.0",
972+ "integrity": "sha256-A0JQHpTfo1dNOj9U5/Fd3xndlRSE0g2IQWOGor2yXn8=",
973+ "dependencies": [
974+ "unsafe-coerce"
975+ ]
976+ },
977+ "exitcodes": {
978+ "type": "registry",
979+ "version": "4.0.0",
980+ "integrity": "sha256-4wxViTbyOoyKJ/WaRGI6+hZmgMKI5Miv16lSwefiLSM=",
981+ "dependencies": [
982+ "enums"
983+ ]
984+ },
985+ "foldable-traversable": {
986+ "type": "registry",
987+ "version": "6.0.0",
988+ "integrity": "sha256-fLeqRYM4jUrZD5H4WqcwUgzU7XfYkzO4zhgtNc3jcWM=",
989+ "dependencies": [
990+ "bifunctors",
991+ "const",
992+ "control",
993+ "either",
994+ "functors",
995+ "identity",
996+ "maybe",
997+ "newtype",
998+ "orders",
999+ "prelude",
1000+ "tuples"
1001+ ]
1002+ },
1003+ "foreign": {
1004+ "type": "registry",
1005+ "version": "7.0.0",
1006+ "integrity": "sha256-1ORiqoS3HW+qfwSZAppHPWy4/6AQysxZ2t29jcdUMNA=",
1007+ "dependencies": [
1008+ "either",
1009+ "functions",
1010+ "identity",
1011+ "integers",
1012+ "lists",
1013+ "maybe",
1014+ "prelude",
1015+ "strings",
1016+ "transformers"
1017+ ]
1018+ },
1019+ "foreign-object": {
1020+ "type": "registry",
1021+ "version": "4.1.0",
1022+ "integrity": "sha256-q24okj6mT+yGHYQ+ei/pYPj5ih6sTbu7eDv/WU56JVo=",
1023+ "dependencies": [
1024+ "arrays",
1025+ "foldable-traversable",
1026+ "functions",
1027+ "gen",
1028+ "lists",
1029+ "maybe",
1030+ "prelude",
1031+ "st",
1032+ "tailrec",
1033+ "tuples",
1034+ "typelevel-prelude",
1035+ "unfoldable"
1036+ ]
1037+ },
1038+ "fork": {
1039+ "type": "registry",
1040+ "version": "6.0.0",
1041+ "integrity": "sha256-X7u0SuCvFbLbzuNEKLBNuWjmcroqMqit4xEzpQwAP7E=",
1042+ "dependencies": [
1043+ "aff"
1044+ ]
1045+ },
1046+ "free": {
1047+ "type": "registry",
1048+ "version": "7.1.0",
1049+ "integrity": "sha256-JAumgEsGSzJCNLD8AaFvuX7CpqS5yruCngi6yI7+V5k=",
1050+ "dependencies": [
1051+ "catenable-lists",
1052+ "control",
1053+ "distributive",
1054+ "either",
1055+ "exists",
1056+ "foldable-traversable",
1057+ "invariant",
1058+ "lazy",
1059+ "maybe",
1060+ "prelude",
1061+ "tailrec",
1062+ "transformers",
1063+ "tuples",
1064+ "unsafe-coerce"
1065+ ]
1066+ },
1067+ "functions": {
1068+ "type": "registry",
1069+ "version": "6.0.0",
1070+ "integrity": "sha256-adMyJNEnhGde2unHHAP79gPtlNjNqzgLB8arEOn9hLI=",
1071+ "dependencies": [
1072+ "prelude"
1073+ ]
1074+ },
1075+ "functors": {
1076+ "type": "registry",
1077+ "version": "5.0.0",
1078+ "integrity": "sha256-zfPWWYisbD84MqwpJSZFlvM6v86McM68ob8p9s27ywU=",
1079+ "dependencies": [
1080+ "bifunctors",
1081+ "const",
1082+ "contravariant",
1083+ "control",
1084+ "distributive",
1085+ "either",
1086+ "invariant",
1087+ "maybe",
1088+ "newtype",
1089+ "prelude",
1090+ "profunctor",
1091+ "tuples",
1092+ "unsafe-coerce"
1093+ ]
1094+ },
1095+ "gen": {
1096+ "type": "registry",
1097+ "version": "4.0.0",
1098+ "integrity": "sha256-f7yzAXWwr+xnaqEOcvyO3ezKdoes8+WXWdXIHDBCAPI=",
1099+ "dependencies": [
1100+ "either",
1101+ "foldable-traversable",
1102+ "identity",
1103+ "maybe",
1104+ "newtype",
1105+ "nonempty",
1106+ "prelude",
1107+ "tailrec",
1108+ "tuples",
1109+ "unfoldable"
1110+ ]
1111+ },
1112+ "identity": {
1113+ "type": "registry",
1114+ "version": "6.0.0",
1115+ "integrity": "sha256-4wY0XZbAksjY6UAg99WkuKyJlQlWAfTi2ssadH0wVMY=",
1116+ "dependencies": [
1117+ "control",
1118+ "invariant",
1119+ "newtype",
1120+ "prelude"
1121+ ]
1122+ },
1123+ "integers": {
1124+ "type": "registry",
1125+ "version": "6.0.0",
1126+ "integrity": "sha256-sf+sK26R1hzwl3NhXR7WAu9zCDjQnfoXwcyGoseX158=",
1127+ "dependencies": [
1128+ "maybe",
1129+ "numbers",
1130+ "prelude"
1131+ ]
1132+ },
1133+ "invariant": {
1134+ "type": "registry",
1135+ "version": "6.0.0",
1136+ "integrity": "sha256-RGWWyYrz0Hs1KjPDA+87Kia67ZFBhfJ5lMGOMCEFoLo=",
1137+ "dependencies": [
1138+ "control",
1139+ "prelude"
1140+ ]
1141+ },
1142+ "js-bigints": {
1143+ "type": "registry",
1144+ "version": "2.2.1",
1145+ "integrity": "sha256-hKWZo9NxtsAaHmNXr6B8GY4c0olQbYLXPVGWm4TF2Ss=",
1146+ "dependencies": [
1147+ "integers",
1148+ "maybe",
1149+ "prelude"
1150+ ]
1151+ },
1152+ "js-date": {
1153+ "type": "registry",
1154+ "version": "8.0.0",
1155+ "integrity": "sha256-6TVF4DWg5JL+jRAsoMssYw8rgOVALMUHT1CuNZt8NRo=",
1156+ "dependencies": [
1157+ "datetime",
1158+ "effect",
1159+ "exceptions",
1160+ "foreign",
1161+ "integers",
1162+ "now"
1163+ ]
1164+ },
1165+ "lazy": {
1166+ "type": "registry",
1167+ "version": "6.0.0",
1168+ "integrity": "sha256-lMsfFOnlqfe4KzRRiW8ot5ge6HtcU3Eyh2XkXcP5IgU=",
1169+ "dependencies": [
1170+ "control",
1171+ "foldable-traversable",
1172+ "invariant",
1173+ "prelude"
1174+ ]
1175+ },
1176+ "lists": {
1177+ "type": "registry",
1178+ "version": "7.0.0",
1179+ "integrity": "sha256-EKF15qYqucuXP2lT/xPxhqy58f0FFT6KHdIB/yBOayI=",
1180+ "dependencies": [
1181+ "bifunctors",
1182+ "control",
1183+ "foldable-traversable",
1184+ "lazy",
1185+ "maybe",
1186+ "newtype",
1187+ "nonempty",
1188+ "partial",
1189+ "prelude",
1190+ "tailrec",
1191+ "tuples",
1192+ "unfoldable"
1193+ ]
1194+ },
1195+ "maybe": {
1196+ "type": "registry",
1197+ "version": "6.0.0",
1198+ "integrity": "sha256-5cCIb0wPwbat2PRkQhUeZO0jcAmf8jCt2qE0wbC3v2Q=",
1199+ "dependencies": [
1200+ "control",
1201+ "invariant",
1202+ "newtype",
1203+ "prelude"
1204+ ]
1205+ },
1206+ "mmorph": {
1207+ "type": "registry",
1208+ "version": "7.0.0",
1209+ "integrity": "sha256-urZlZNNqGeQFe5D/ClHlR8QgGBNHTMFPtJ5S5IpflTQ=",
1210+ "dependencies": [
1211+ "free",
1212+ "functors",
1213+ "transformers"
1214+ ]
1215+ },
1216+ "newtype": {
1217+ "type": "registry",
1218+ "version": "5.0.0",
1219+ "integrity": "sha256-gdrQu8oGe9eZE6L3wOI8ql/igOg+zEGB5ITh2g+uttw=",
1220+ "dependencies": [
1221+ "prelude",
1222+ "safe-coerce"
1223+ ]
1224+ },
1225+ "node-buffer": {
1226+ "type": "registry",
1227+ "version": "9.0.0",
1228+ "integrity": "sha256-PWE2DJ5ruBLCmeA/fUiuySEFmUJ/VuRfyrnCuVZBlu4=",
1229+ "dependencies": [
1230+ "arraybuffer-types",
1231+ "effect",
1232+ "maybe",
1233+ "nullable",
1234+ "st",
1235+ "unsafe-coerce"
1236+ ]
1237+ },
1238+ "node-event-emitter": {
1239+ "type": "registry",
1240+ "version": "3.0.0",
1241+ "integrity": "sha256-Qw0MjsT4xRH2j2i4K8JmRjcMKnH5z1Cw39t00q4LE4w=",
1242+ "dependencies": [
1243+ "effect",
1244+ "either",
1245+ "functions",
1246+ "maybe",
1247+ "nullable",
1248+ "prelude",
1249+ "unsafe-coerce"
1250+ ]
1251+ },
1252+ "node-fs": {
1253+ "type": "registry",
1254+ "version": "9.2.0",
1255+ "integrity": "sha256-Sg0vkXycEzkEerX6hLccz21Ygd9w1+QSk1thotRZPGI=",
1256+ "dependencies": [
1257+ "datetime",
1258+ "effect",
1259+ "either",
1260+ "enums",
1261+ "exceptions",
1262+ "functions",
1263+ "integers",
1264+ "js-date",
1265+ "maybe",
1266+ "node-buffer",
1267+ "node-path",
1268+ "node-streams",
1269+ "nullable",
1270+ "partial",
1271+ "prelude",
1272+ "strings",
1273+ "unsafe-coerce"
1274+ ]
1275+ },
1276+ "node-path": {
1277+ "type": "registry",
1278+ "version": "5.0.1",
1279+ "integrity": "sha256-ePOElFamHkffhwJcS0Ozq4A14rflnkasFU6X2B8/yXs=",
1280+ "dependencies": [
1281+ "effect"
1282+ ]
1283+ },
1284+ "node-process": {
1285+ "type": "registry",
1286+ "version": "11.2.0",
1287+ "integrity": "sha256-+2MQDYChjGbVbapCyJtuWYwD41jk+BntF/kcOTKBMVs=",
1288+ "dependencies": [
1289+ "effect",
1290+ "foreign",
1291+ "foreign-object",
1292+ "maybe",
1293+ "node-event-emitter",
1294+ "node-streams",
1295+ "posix-types",
1296+ "prelude",
1297+ "unsafe-coerce"
1298+ ]
1299+ },
1300+ "node-streams": {
1301+ "type": "registry",
1302+ "version": "9.0.1",
1303+ "integrity": "sha256-7RJ6RqjOlhW+QlDFQNUHlkCG/CuYTTLT8yary5jhhsU=",
1304+ "dependencies": [
1305+ "aff",
1306+ "arrays",
1307+ "effect",
1308+ "either",
1309+ "exceptions",
1310+ "maybe",
1311+ "node-buffer",
1312+ "node-event-emitter",
1313+ "nullable",
1314+ "prelude",
1315+ "refs",
1316+ "st",
1317+ "tailrec",
1318+ "unsafe-coerce"
1319+ ]
1320+ },
1321+ "nonempty": {
1322+ "type": "registry",
1323+ "version": "7.0.0",
1324+ "integrity": "sha256-54ablJZUHGvvlTJzi3oXyPCuvY6zsrWJuH/dMJ/MFLs=",
1325+ "dependencies": [
1326+ "control",
1327+ "foldable-traversable",
1328+ "maybe",
1329+ "prelude",
1330+ "tuples",
1331+ "unfoldable"
1332+ ]
1333+ },
1334+ "now": {
1335+ "type": "registry",
1336+ "version": "6.0.0",
1337+ "integrity": "sha256-xZ7x37ZMREfs6GCDw/h+FaKHV/3sPWmtqBZRGTxybQY=",
1338+ "dependencies": [
1339+ "datetime",
1340+ "effect"
1341+ ]
1342+ },
1343+ "nullable": {
1344+ "type": "registry",
1345+ "version": "6.0.0",
1346+ "integrity": "sha256-yiGBVl3AD+Guy4kNWWeN+zl1gCiJK+oeIFtZtPCw4+o=",
1347+ "dependencies": [
1348+ "effect",
1349+ "functions",
1350+ "maybe"
1351+ ]
1352+ },
1353+ "numbers": {
1354+ "type": "registry",
1355+ "version": "9.0.1",
1356+ "integrity": "sha256-/9M6aeMDBdB4cwYDeJvLFprAHZ49EbtKQLIJsneXLIk=",
1357+ "dependencies": [
1358+ "functions",
1359+ "maybe"
1360+ ]
1361+ },
1362+ "open-memoize": {
1363+ "type": "registry",
1364+ "version": "6.2.0",
1365+ "integrity": "sha256-p1m7wF3aHQ80yUvqMs20OTMl496WS6YpKlmI2Nkg9j0=",
1366+ "dependencies": [
1367+ "either",
1368+ "integers",
1369+ "lazy",
1370+ "lists",
1371+ "maybe",
1372+ "partial",
1373+ "prelude",
1374+ "strings",
1375+ "tuples"
1376+ ]
1377+ },
1378+ "optparse": {
1379+ "type": "registry",
1380+ "version": "5.0.1",
1381+ "integrity": "sha256-cEzEkNW4q0gZlXl4z0zn+H2vs6l2UAp7NPHCsois73k=",
1382+ "dependencies": [
1383+ "aff",
1384+ "arrays",
1385+ "bifunctors",
1386+ "console",
1387+ "control",
1388+ "effect",
1389+ "either",
1390+ "enums",
1391+ "exists",
1392+ "exitcodes",
1393+ "foldable-traversable",
1394+ "free",
1395+ "gen",
1396+ "integers",
1397+ "lazy",
1398+ "lists",
1399+ "maybe",
1400+ "newtype",
1401+ "node-buffer",
1402+ "node-process",
1403+ "node-streams",
1404+ "nonempty",
1405+ "numbers",
1406+ "open-memoize",
1407+ "partial",
1408+ "prelude",
1409+ "strings",
1410+ "tailrec",
1411+ "transformers",
1412+ "tuples"
1413+ ]
1414+ },
1415+ "ordered-collections": {
1416+ "type": "registry",
1417+ "version": "3.2.0",
1418+ "integrity": "sha256-o9jqsj5rpJmMdoe/zyufWHFjYYFTTsJpgcuCnqCO6PM=",
1419+ "dependencies": [
1420+ "arrays",
1421+ "foldable-traversable",
1422+ "gen",
1423+ "lists",
1424+ "maybe",
1425+ "partial",
1426+ "prelude",
1427+ "st",
1428+ "tailrec",
1429+ "tuples",
1430+ "unfoldable"
1431+ ]
1432+ },
1433+ "orders": {
1434+ "type": "registry",
1435+ "version": "6.0.0",
1436+ "integrity": "sha256-nBA0g3/ai0euH8q9pSbGqk53W2q6agm/dECZTHcoink=",
1437+ "dependencies": [
1438+ "newtype",
1439+ "prelude"
1440+ ]
1441+ },
1442+ "parallel": {
1443+ "type": "registry",
1444+ "version": "7.0.0",
1445+ "integrity": "sha256-gUC9i4Txnx9K9RcMLsjujbwZz6BB1bnE2MLvw4GIw5o=",
1446+ "dependencies": [
1447+ "control",
1448+ "effect",
1449+ "either",
1450+ "foldable-traversable",
1451+ "functors",
1452+ "maybe",
1453+ "newtype",
1454+ "prelude",
1455+ "profunctor",
1456+ "refs",
1457+ "transformers"
1458+ ]
1459+ },
1460+ "partial": {
1461+ "type": "registry",
1462+ "version": "4.0.0",
1463+ "integrity": "sha256-fwXerld6Xw1VkReh8yeQsdtLVrjfGiVuC5bA1Wyo/J4=",
1464+ "dependencies": []
1465+ },
1466+ "pipes": {
1467+ "type": "registry",
1468+ "version": "8.0.0",
1469+ "integrity": "sha256-kvfqGM4cPA/wCcBHbp5psouFw5dZGvku2462x7ZBwSY=",
1470+ "dependencies": [
1471+ "aff",
1472+ "lists",
1473+ "mmorph",
1474+ "prelude",
1475+ "tailrec",
1476+ "transformers",
1477+ "tuples"
1478+ ]
1479+ },
1480+ "posix-types": {
1481+ "type": "registry",
1482+ "version": "6.0.0",
1483+ "integrity": "sha256-ZfFz8RR1lee/o/Prccyeut3Q+9tYd08mlR72sIh6GzA=",
1484+ "dependencies": [
1485+ "maybe",
1486+ "prelude"
1487+ ]
1488+ },
1489+ "prelude": {
1490+ "type": "registry",
1491+ "version": "6.0.2",
1492+ "integrity": "sha256-kiAPZxihtAel8uRiTNdccf4qylp/9J3jNkEHNAD0MsE=",
1493+ "dependencies": []
1494+ },
1495+ "profunctor": {
1496+ "type": "registry",
1497+ "version": "6.0.1",
1498+ "integrity": "sha256-E58hSYdJvF2Qjf9dnWLPlJKh2Z2fLfFLkQoYi16vsFk=",
1499+ "dependencies": [
1500+ "control",
1501+ "distributive",
1502+ "either",
1503+ "exists",
1504+ "invariant",
1505+ "newtype",
1506+ "prelude",
1507+ "tuples"
1508+ ]
1509+ },
1510+ "record": {
1511+ "type": "registry",
1512+ "version": "4.0.0",
1513+ "integrity": "sha256-Za5U85bTRJEfGK5Sk4hM41oXy84YQI0I8TL3WUn1Qzg=",
1514+ "dependencies": [
1515+ "functions",
1516+ "prelude",
1517+ "unsafe-coerce"
1518+ ]
1519+ },
1520+ "refs": {
1521+ "type": "registry",
1522+ "version": "6.0.0",
1523+ "integrity": "sha256-Vgwne7jIbD3ZMoLNNETLT8Litw6lIYo3MfYNdtYWj9s=",
1524+ "dependencies": [
1525+ "effect",
1526+ "prelude"
1527+ ]
1528+ },
1529+ "safe-coerce": {
1530+ "type": "registry",
1531+ "version": "2.0.0",
1532+ "integrity": "sha256-a1ibQkiUcbODbLE/WAq7Ttbbh9ex+x33VCQ7GngKudU=",
1533+ "dependencies": [
1534+ "unsafe-coerce"
1535+ ]
1536+ },
1537+ "spec": {
1538+ "type": "registry",
1539+ "version": "8.1.1",
1540+ "integrity": "sha256-EM7UfQIaSgiw13LJ4ZASkfYmmRDKIlec3nYbGKFqGhk=",
1541+ "dependencies": [
1542+ "aff",
1543+ "ansi",
1544+ "arrays",
1545+ "avar",
1546+ "bifunctors",
1547+ "control",
1548+ "datetime",
1549+ "effect",
1550+ "either",
1551+ "exceptions",
1552+ "foldable-traversable",
1553+ "fork",
1554+ "identity",
1555+ "integers",
1556+ "lists",
1557+ "maybe",
1558+ "newtype",
1559+ "now",
1560+ "ordered-collections",
1561+ "parallel",
1562+ "pipes",
1563+ "prelude",
1564+ "refs",
1565+ "strings",
1566+ "tailrec",
1567+ "transformers",
1568+ "tuples"
1569+ ]
1570+ },
1571+ "spec-discovery": {
1572+ "type": "registry",
1573+ "version": "8.4.0",
1574+ "integrity": "sha256-ajaGtBe+WBnURPPxIfqyiBbxI9DvbCGpxpYYYrvi5nk=",
1575+ "dependencies": [
1576+ "aff",
1577+ "effect",
1578+ "foldable-traversable",
1579+ "prelude",
1580+ "spec",
1581+ "spec-node"
1582+ ]
1583+ },
1584+ "spec-node": {
1585+ "type": "registry",
1586+ "version": "0.0.3",
1587+ "integrity": "sha256-Bjzg6l4uOfMN/FV0SKuT1Mm8eMP9sloLGVcY/0MeMnI=",
1588+ "dependencies": [
1589+ "aff",
1590+ "argonaut-codecs",
1591+ "argonaut-core",
1592+ "arrays",
1593+ "control",
1594+ "datetime",
1595+ "effect",
1596+ "either",
1597+ "foldable-traversable",
1598+ "identity",
1599+ "integers",
1600+ "maybe",
1601+ "newtype",
1602+ "node-buffer",
1603+ "node-fs",
1604+ "node-process",
1605+ "now",
1606+ "numbers",
1607+ "optparse",
1608+ "ordered-collections",
1609+ "partial",
1610+ "prelude",
1611+ "spec",
1612+ "strings",
1613+ "tuples"
1614+ ]
1615+ },
1616+ "st": {
1617+ "type": "registry",
1618+ "version": "6.2.0",
1619+ "integrity": "sha256-z9X0WsOUlPwNx9GlCC+YccCyz8MejC8Wb0C4+9fiBRY=",
1620+ "dependencies": [
1621+ "partial",
1622+ "prelude",
1623+ "tailrec",
1624+ "unsafe-coerce"
1625+ ]
1626+ },
1627+ "strings": {
1628+ "type": "registry",
1629+ "version": "6.0.1",
1630+ "integrity": "sha256-WssD3DbX4OPzxSdjvRMX0yvc9+pS7n5gyPv5I2Trb7k=",
1631+ "dependencies": [
1632+ "arrays",
1633+ "control",
1634+ "either",
1635+ "enums",
1636+ "foldable-traversable",
1637+ "gen",
1638+ "integers",
1639+ "maybe",
1640+ "newtype",
1641+ "nonempty",
1642+ "partial",
1643+ "prelude",
1644+ "tailrec",
1645+ "tuples",
1646+ "unfoldable",
1647+ "unsafe-coerce"
1648+ ]
1649+ },
1650+ "strings-extra": {
1651+ "type": "registry",
1652+ "version": "4.0.0",
1653+ "integrity": "sha256-tah7VFvEvFF4tpWXgWwGFIynpWHkYe5tpy6bWi5tMpU=",
1654+ "dependencies": [
1655+ "arrays",
1656+ "foldable-traversable",
1657+ "maybe",
1658+ "prelude",
1659+ "strings",
1660+ "unicode"
1661+ ]
1662+ },
1663+ "tailrec": {
1664+ "type": "registry",
1665+ "version": "6.1.0",
1666+ "integrity": "sha256-Xx19ECVDRrDWpz9D2GxQHHV89vd61dnXxQm0IcYQHGk=",
1667+ "dependencies": [
1668+ "bifunctors",
1669+ "effect",
1670+ "either",
1671+ "identity",
1672+ "maybe",
1673+ "partial",
1674+ "prelude",
1675+ "refs"
1676+ ]
1677+ },
1678+ "transformers": {
1679+ "type": "registry",
1680+ "version": "6.1.0",
1681+ "integrity": "sha256-3Bm+Z6tsC/paG888XkywDngJ2JMos+JfOhRlkVfb7gI=",
1682+ "dependencies": [
1683+ "control",
1684+ "distributive",
1685+ "effect",
1686+ "either",
1687+ "exceptions",
1688+ "foldable-traversable",
1689+ "identity",
1690+ "lazy",
1691+ "maybe",
1692+ "newtype",
1693+ "prelude",
1694+ "st",
1695+ "tailrec",
1696+ "tuples",
1697+ "unfoldable"
1698+ ]
1699+ },
1700+ "tuples": {
1701+ "type": "registry",
1702+ "version": "7.0.0",
1703+ "integrity": "sha256-1rXgTomes9105BjgXqIw0FL6Fz1lqqUTLWOumhWec1M=",
1704+ "dependencies": [
1705+ "control",
1706+ "invariant",
1707+ "prelude"
1708+ ]
1709+ },
1710+ "type-equality": {
1711+ "type": "registry",
1712+ "version": "4.0.1",
1713+ "integrity": "sha256-Hs9D6Y71zFi/b+qu5NSbuadUQXe5iv5iWx0226vOHUw=",
1714+ "dependencies": []
1715+ },
1716+ "typelevel-prelude": {
1717+ "type": "registry",
1718+ "version": "7.0.0",
1719+ "integrity": "sha256-uFF2ph+vHcQpfPuPf2a3ukJDFmLhApmkpTMviHIWgJM=",
1720+ "dependencies": [
1721+ "prelude",
1722+ "type-equality"
1723+ ]
1724+ },
1725+ "unfoldable": {
1726+ "type": "registry",
1727+ "version": "6.0.0",
1728+ "integrity": "sha256-JtikvJdktRap7vr/K4ITlxUX1QexpnqBq0G/InLr6eg=",
1729+ "dependencies": [
1730+ "foldable-traversable",
1731+ "maybe",
1732+ "partial",
1733+ "prelude",
1734+ "tuples"
1735+ ]
1736+ },
1737+ "unicode": {
1738+ "type": "registry",
1739+ "version": "6.0.0",
1740+ "integrity": "sha256-QJnTVZpmihEAUiMeYrfkusVoziJWp2hJsgi9bMQLue8=",
1741+ "dependencies": [
1742+ "foldable-traversable",
1743+ "maybe",
1744+ "strings"
1745+ ]
1746+ },
1747+ "unsafe-coerce": {
1748+ "type": "registry",
1749+ "version": "6.0.0",
1750+ "integrity": "sha256-IqIYW4Vkevn8sI+6aUwRGvd87tVL36BBeOr0cGAE7t0=",
1751+ "dependencies": []
1752+ },
1753+ "variant": {
1754+ "type": "registry",
1755+ "version": "8.0.0",
1756+ "integrity": "sha256-SR//zQDg2dnbB8ZHslcxieUkCeNlbMToapvmh9onTtw=",
1757+ "dependencies": [
1758+ "enums",
1759+ "lists",
1760+ "maybe",
1761+ "partial",
1762+ "prelude",
1763+ "record",
1764+ "tuples",
1765+ "unsafe-coerce"
1766+ ]
1767+ },
1768+ "yoga-tree": {
1769+ "type": "registry",
1770+ "version": "1.0.0",
1771+ "integrity": "sha256-wBjfEYrX1ffTHa/mE9B26C6td0FFfjYNnysTJ9/N8Hc=",
1772+ "dependencies": [
1773+ "arrays",
1774+ "control",
1775+ "foldable-traversable",
1776+ "free",
1777+ "maybe",
1778+ "prelude",
1779+ "tailrec"
1780+ ]
1781+ }
1782+ }
1783+}
spago.yamlnew file+46
@@ -0,0 +1,46 @@
1+package:
2+ name: yoga-json
3+ dependencies:
4+ - arrays
5+ - bifunctors
6+ - control
7+ - datetime
8+ - effect
9+ - either
10+ - exceptions
11+ - foldable-traversable
12+ - foreign
13+ - foreign-object
14+ - free
15+ - identity
16+ - integers
17+ - js-bigints
18+ - js-date
19+ - lists
20+ - maybe
21+ - newtype
22+ - nullable
23+ - numbers
24+ - ordered-collections
25+ - partial
26+ - prelude
27+ - record
28+ - strings
29+ - transformers
30+ - tuples
31+ - typelevel-prelude
32+ - unsafe-coerce
33+ - variant
34+ - yoga-tree
35+ - js-bigints
36+ test:
37+ main: Test.Main
38+ dependencies:
39+ - spec
40+ - spec-node
41+ - spec-discovery
42+ - strings-extra
43+
44+workspace:
45+ packageSet:
46+ registry: 63.2.1
src/Yoga/JSON/Derive.pursnew file+13
@@ -0,0 +1,13 @@
1+module Yoga.JSON.Derive where
2+
3+import Prelude
4+
5+import Foreign (Foreign, F)
6+import Safe.Coerce (class Coercible, coerce)
7+import Yoga.JSON (class ReadForeign, class WriteForeign, readImpl, writeImpl)
8+
9+writeVia ∷ ∀ @via a. (Coercible a via) ⇒ WriteForeign via ⇒ a → Foreign
10+writeVia = writeImpl <<< (coerce ∷ _ → via)
11+
12+readVia ∷ ∀ @via a. (Coercible a via) ⇒ ReadForeign via ⇒ Foreign → F a
13+readVia fgn = readImpl fgn # map (coerce ∷ via → _)
test.dhalldeleted−15
@@ -1,15 +0,0 @@
1−let conf = ./spago.dhall
2−
3−in conf
4− // { sources = conf.sources # [ "test/**/*.purs" ]
5− , dependencies =
6− conf.dependencies
7− # [ "spec"
8− , "spec-discovery"
9− , "aff"
10− , "strings-extra"
11− , "newtype"
12− , "debug"
13− , "now"
14− ]
15− }
test/BasicsSpec.purs+4−2
@@ -34,7 +34,7 @@ import Yoga.JSON.Variant (TaggedVariant(..), UntaggedVariant(..))
34import Yoga.Tree (Tree, mkLeaf, mkTree, showTree)
34import Yoga.Tree (Tree, mkLeaf, mkTree, showTree)
35
35
36spec ∷ Spec Unit
36spec ∷ Spec Unit
37−spec = describe "En- and decoding" $ do
37+spec = describe "En- and decoding" do
38
38
39 describe "works on primitive types" do
39 describe "works on primitive types" do
40 it "roundtrips Number" $ roundtrips 3.1414
40 it "roundtrips Number" $ roundtrips 3.1414
@@ -53,7 +53,8 @@ spec = describe "En- and decoding" $ do
53 roundtrips ((Right 3) ∷ Either String Int)
53 roundtrips ((Right 3) ∷ Either String Int)
54 writeJSON (Right 3 ∷ Either Int Int) `shouldEqual` """{"value":3,"type":"right"}"""
54 writeJSON (Right 3 ∷ Either Int Int) `shouldEqual` """{"value":3,"type":"right"}"""
55 writeJSON (Left true ∷ Either Boolean Int) `shouldEqual` """{"value":true,"type":"left"}"""
55 writeJSON (Left true ∷ Either Boolean Int) `shouldEqual` """{"value":true,"type":"left"}"""
56+
56− it "roundtrips Tuple" $ do
57+ it "roundtrips Tuple" do
57 roundtrips (Tuple 3 4)
58 roundtrips (Tuple 3 4)
58 roundtrips ("4" /\ 8 /\ Just 4)
59 roundtrips ("4" /\ 8 /\ Just 4)
59 it "roundtrips Array" $ traverse_ roundtrips [ [ "A", "B" ], [] ]
60 it "roundtrips Array" $ traverse_ roundtrips [ [ "A", "B" ], [] ]
@@ -135,6 +136,7 @@ spec = describe "En- and decoding" $ do
135 it "roundtrips" do
136 it "roundtrips" do
136 roundtrips { a: 12, b: "54" }
137 roundtrips { a: 12, b: "54" }
137 roundtrips { a: 12, b: { c: "54" } }
138 roundtrips { a: 12, b: { c: "54" } }
139+ roundtrips {}
138
140
139 describe "works on newtypes" do
141 describe "works on newtypes" do
140 it "roundtrips" do
142 it "roundtrips" do
test/GenericsSpec.purs+1−1
@@ -14,7 +14,7 @@ import Yoga.JSON.Generics as GenericTaggedSum
14import Yoga.JSON.Generics.EnumSumRep as Enum
14import Yoga.JSON.Generics.EnumSumRep as Enum
15
15
16spec ∷ Spec Unit
16spec ∷ Spec Unit
17−spec = describe "Generics" $ do
17+spec = describe "Generics" do
18
18
19 describe "Enum" do
19 describe "Enum" do
20 describe "MyEnum = Enum1 | Enum2 | Enum3" do
20 describe "MyEnum = Enum1 | Enum2 | Enum3" do
test/WriteViaSpec.pursnew file+42
@@ -0,0 +1,42 @@
1+module Test.WriteViaSpec where
2+
3+import Prelude
4+
5+import Data.Either (Either(..))
6+import Test.Spec (Spec, describe, it)
7+import Test.Spec.Assertions (shouldEqual)
8+import Yoga.JSON (class ReadForeign, class WriteForeign)
9+import Yoga.JSON as JSON
10+import Yoga.JSON.Derive (readVia, writeVia)
11+
12+spec ∷ Spec Unit
13+spec = describe "En- and decoding with Coercibles" do
14+ let referenceJSON = """{"myString":"A","myInt":3}"""
15+ it "writing works" do
16+ let myRecord = MyRecord { myInt: MyInt 3, myString: MyString "A" }
17+ JSON.writeJSON myRecord `shouldEqual` referenceJSON
18+ it "reading works" do
19+ JSON.readJSON referenceJSON `shouldEqual` Right (MyRecord { myInt: MyInt 3, myString: MyString "A" })
20+
21+newtype MyInt = MyInt Int
22+newtype MyString = MyString String
23+
24+newtype MyRecord = MyRecord
25+ { myInt ∷ MyInt
26+ , myString ∷ MyString
27+ }
28+
29+instance WriteForeign MyRecord where
30+ writeImpl = writeVia @{ myInt ∷ Int, myString ∷ String }
31+
32+instance ReadForeign MyRecord where
33+ readImpl = readVia @{ myInt ∷ Int, myString ∷ String }
34+
35+-- Below instances are just necessary for the tests to compile
36+
37+instance Show MyRecord where
38+ show = JSON.writeJSON
39+
40+derive instance Eq MyRecord
41+derive instance Eq MyInt
42+derive instance Eq MyString