git.iko.soy/rowtype-yoga/purescript-web-proletarian
on main help sign in
Release web-proletarian 2.0.0 with portable runtime APIs
5efdce1Mark
LICENSE-MITnew file+21
unifiedsplit
@@ -0,0 +1,21 @@
1+MIT License
2+
3+Copyright (c) 2026 Mark Eibes
4+
5+Permission is hereby granted, free of charge, to any person obtaining a copy
6+of this software and associated documentation files (the "Software"), to deal
7+in the Software without restriction, including without limitation the rights
8+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+copies of the Software, and to permit persons to whom the Software is
10+furnished to do so, subject to the following conditions:
11+
12+The above copyright notice and this permission notice shall be included in all
13+copies or substantial portions of the Software.
14+
15+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+SOFTWARE.
spago.locknew file+1265
@@ -0,0 +1,1265 @@
1+{
2+ "workspace": {
3+ "packages": {
4+ "web-proletarian": {
5+ "path": "./",
6+ "core": {
7+ "dependencies": [
8+ {
9+ "effect": ">=4.0.0 <5.0.0"
10+ },
11+ {
12+ "prelude": ">=6.0.2 <7.0.0"
13+ },
14+ {
15+ "unsafe-coerce": ">=6.0.0 <7.0.0"
16+ },
17+ {
18+ "web-dom": ">=6.0.0 <7.0.0"
19+ },
20+ {
21+ "web-html": ">=4.1.1 <5.0.0"
22+ }
23+ ]
24+ },
25+ "test": {
26+ "dependencies": []
27+ }
28+ }
29+ },
30+ "package_set": {
31+ "address": {
32+ "registry": "73.2.0"
33+ },
34+ "compiler": ">=0.15.15 <0.16.0",
35+ "content": {
36+ "abc-parser": "2.1.0",
37+ "ace": "9.1.0",
38+ "address-rfc2821": "0.1.1",
39+ "aff": "8.0.0",
40+ "aff-bus": "6.0.0",
41+ "aff-coroutines": "9.0.0",
42+ "aff-promise": "4.0.0",
43+ "aff-retry": "2.0.0",
44+ "affjax": "13.0.0",
45+ "affjax-node": "1.0.0",
46+ "affjax-web": "1.0.0",
47+ "ansi": "7.0.0",
48+ "apexcharts": "0.5.0",
49+ "applicative-phases": "1.0.0",
50+ "argonaut": "9.0.0",
51+ "argonaut-aeson-generic": "0.4.1",
52+ "argonaut-codecs": "9.1.0",
53+ "argonaut-core": "7.0.0",
54+ "argonaut-generic": "8.0.0",
55+ "argonaut-traversals": "10.0.0",
56+ "argparse-basic": "2.0.0",
57+ "array-builder": "0.1.2",
58+ "array-search": "0.6.0",
59+ "arraybuffer": "13.2.0",
60+ "arraybuffer-builder": "3.1.0",
61+ "arraybuffer-types": "3.0.2",
62+ "arrays": "7.3.0",
63+ "arrays-extra": "0.6.1",
64+ "arrays-zipper": "2.0.1",
65+ "ask": "1.0.0",
66+ "assert": "6.0.0",
67+ "assert-multiple": "0.4.0",
68+ "avar": "5.0.1",
69+ "axon": "0.0.3",
70+ "b64": "0.0.8",
71+ "barbies": "1.0.1",
72+ "barlow-lens": "0.9.0",
73+ "benchlib": "0.0.4",
74+ "bifunctors": "6.1.0",
75+ "bigints": "7.0.1",
76+ "blessed": "1.0.0",
77+ "bolson": "0.3.9",
78+ "bookhound": "0.1.7",
79+ "bower-json": "3.0.0",
80+ "call-by-name": "4.0.1",
81+ "canvas": "6.0.0",
82+ "canvas-action": "9.0.0",
83+ "cartesian": "1.0.6",
84+ "catenable-lists": "7.0.0",
85+ "cbor-stream": "1.3.0",
86+ "chameleon": "1.0.0",
87+ "chameleon-halogen": "1.0.3",
88+ "chameleon-react-basic": "1.1.0",
89+ "chameleon-styled": "2.5.0",
90+ "chameleon-transformers": "1.0.0",
91+ "channel": "1.0.0",
92+ "checked-exceptions": "3.1.1",
93+ "choku": "1.0.2",
94+ "classless": "0.1.1",
95+ "classless-arbitrary": "0.1.1",
96+ "classless-decode-json": "0.1.1",
97+ "classless-encode-json": "0.1.3",
98+ "classnames": "2.0.0",
99+ "codec": "6.1.0",
100+ "codec-argonaut": "10.0.0",
101+ "codec-json": "2.0.0",
102+ "colors": "7.0.1",
103+ "concur-core": "0.5.0",
104+ "concur-react": "0.5.0",
105+ "concurrent-queues": "3.0.0",
106+ "console": "6.1.0",
107+ "const": "6.0.0",
108+ "contravariant": "6.0.0",
109+ "control": "6.0.0",
110+ "convertable-options": "1.0.0",
111+ "coroutines": "7.0.0",
112+ "css": "6.0.0",
113+ "css-class-name-extractor": "0.0.4",
114+ "css-frameworks": "1.1.0",
115+ "csv-stream": "2.3.0",
116+ "data-mvc": "0.0.2",
117+ "datetime": "6.1.0",
118+ "datetime-parsing": "0.2.0",
119+ "debounce": "0.1.0",
120+ "debug": "6.0.2",
121+ "decimals": "7.1.0",
122+ "default-values": "1.0.1",
123+ "deku": "0.9.23",
124+ "deno": "0.0.5",
125+ "dissect": "1.0.0",
126+ "distributive": "6.0.0",
127+ "dodo-printer": "2.2.3",
128+ "dom-filereader": "7.0.0",
129+ "dom-indexed": "13.0.0",
130+ "dom-simple": "0.4.0",
131+ "dotenv": "4.0.3",
132+ "droplet": "0.6.0",
133+ "dts": "1.0.0",
134+ "dual-numbers": "1.0.3",
135+ "dynamic-buffer": "3.0.1",
136+ "echarts-simple": "0.0.1",
137+ "effect": "4.0.0",
138+ "either": "6.1.0",
139+ "elmish": "0.13.0",
140+ "elmish-enzyme": "0.1.1",
141+ "elmish-hooks": "0.11.0",
142+ "elmish-html": "0.10.0",
143+ "elmish-testing-library": "0.3.2",
144+ "elmish-time-machine": "0.4.2",
145+ "email-validate": "7.0.0",
146+ "encoding": "0.0.9",
147+ "enums": "6.0.1",
148+ "env-names": "0.4.0",
149+ "environment": "2.0.0",
150+ "error": "2.0.0",
151+ "eta-conversion": "0.3.2",
152+ "exceptions": "6.1.0",
153+ "exists": "6.0.0",
154+ "exitcodes": "4.0.0",
155+ "expect-inferred": "3.0.0",
156+ "express": "0.9.1",
157+ "ezfetch": "1.1.1",
158+ "fahrtwind": "2.0.0",
159+ "fakerjs": "0.0.1",
160+ "fallback": "0.1.0",
161+ "fast-vect": "1.2.0",
162+ "fetch": "4.1.0",
163+ "fetch-argonaut": "1.0.1",
164+ "fetch-core": "5.1.0",
165+ "fetch-yoga-json": "1.1.0",
166+ "ffi-simple": "0.5.1",
167+ "fft": "0.3.0",
168+ "fft-js": "0.1.0",
169+ "filterable": "5.0.0",
170+ "fix-functor": "0.1.0",
171+ "fixed-points": "7.0.0",
172+ "fixed-precision": "5.0.0",
173+ "flame": "1.6.0",
174+ "float32": "2.0.0",
175+ "fmt": "0.2.1",
176+ "foldable-traversable": "6.0.0",
177+ "foldable-traversable-extra": "0.0.6",
178+ "foreign": "7.0.0",
179+ "foreign-object": "4.1.0",
180+ "foreign-readwrite": "3.4.0",
181+ "forgetmenot": "0.1.0",
182+ "fork": "6.0.0",
183+ "form-urlencoded": "7.0.0",
184+ "formatters": "7.0.0",
185+ "framer-motion": "2.0.1",
186+ "free": "7.1.0",
187+ "freeap": "7.0.0",
188+ "freer-free": "0.0.1",
189+ "freet": "7.0.0",
190+ "functions": "6.0.0",
191+ "functor1": "3.0.0",
192+ "functors": "5.0.0",
193+ "fuzzy": "0.4.0",
194+ "gen": "4.0.0",
195+ "generate-values": "1.0.1",
196+ "generic-router": "0.0.1",
197+ "geojson": "0.0.5",
198+ "geometria": "2.2.0",
199+ "gesso": "1.0.1",
200+ "gojs": "0.1.1",
201+ "golem-fetch": "0.1.0",
202+ "grain": "3.0.0",
203+ "grain-router": "3.0.0",
204+ "grain-virtualized": "3.0.0",
205+ "graphql-client": "10.1.1",
206+ "graphs": "8.1.0",
207+ "group": "4.1.1",
208+ "halogen": "7.0.0",
209+ "halogen-bootstrap5": "5.3.2",
210+ "halogen-canvas": "1.0.0",
211+ "halogen-css": "10.0.0",
212+ "halogen-declarative-canvas": "0.0.8",
213+ "halogen-echarts-simple": "0.0.4",
214+ "halogen-formless": "4.0.3",
215+ "halogen-helix": "1.1.0",
216+ "halogen-hooks": "0.6.3",
217+ "halogen-hooks-extra": "0.9.0",
218+ "halogen-infinite-scroll": "1.1.0",
219+ "halogen-store": "0.5.4",
220+ "halogen-storybook": "2.0.0",
221+ "halogen-subscriptions": "2.0.0",
222+ "halogen-svg-elems": "8.0.0",
223+ "halogen-typewriter": "1.0.4",
224+ "halogen-use-trigger-hooks": "1.0.0",
225+ "halogen-vdom": "8.0.0",
226+ "halogen-vdom-string-renderer": "0.5.0",
227+ "halogen-xterm": "2.0.0",
228+ "heckin": "2.0.1",
229+ "heterogeneous": "0.7.0",
230+ "homogeneous": "0.4.0",
231+ "http-methods": "6.0.0",
232+ "httpurple": "4.0.0",
233+ "huffman": "0.4.0",
234+ "humdrum": "0.0.1",
235+ "hylograph-canvas": "0.1.0",
236+ "hylograph-d3-kernel": "0.1.0",
237+ "hylograph-graph": "0.1.0",
238+ "hylograph-layout": "0.1.0",
239+ "hylograph-music": "0.1.0",
240+ "hylograph-optics": "0.1.0",
241+ "hylograph-selection": "0.1.1",
242+ "hylograph-simulation": "0.1.0",
243+ "hylograph-simulation-core": "0.1.0",
244+ "hylograph-simulation-halogen": "0.1.0",
245+ "hylograph-transitions": "0.1.0",
246+ "hylograph-wasm-kernel": "0.1.0",
247+ "hyrule": "2.3.8",
248+ "identity": "6.0.0",
249+ "identy": "4.0.1",
250+ "indexed-db": "1.0.0",
251+ "indexed-monad": "3.0.0",
252+ "ink": "0.0.1",
253+ "int64": "3.0.0",
254+ "integers": "6.0.0",
255+ "interpolate": "5.0.2",
256+ "intersection-observer": "1.0.1",
257+ "invariant": "6.0.0",
258+ "jarilo": "1.0.1",
259+ "jelly": "0.10.0",
260+ "jelly-router": "0.3.0",
261+ "jelly-signal": "0.4.0",
262+ "jest": "1.0.0",
263+ "js-abort-controller": "1.0.0",
264+ "js-bigints": "2.2.1",
265+ "js-date": "8.0.0",
266+ "js-fetch": "0.2.1",
267+ "js-fileio": "3.0.0",
268+ "js-intl": "1.1.4",
269+ "js-iterators": "0.1.1",
270+ "js-maps": "0.1.2",
271+ "js-promise": "1.0.0",
272+ "js-promise-aff": "1.0.0",
273+ "js-timers": "6.1.0",
274+ "js-uri": "3.1.0",
275+ "jsdom": "1.0.0",
276+ "json": "1.1.0",
277+ "json-codecs": "5.0.0",
278+ "justifill": "0.5.0",
279+ "jwt": "0.0.9",
280+ "labeled-data": "0.2.0",
281+ "language-cst-parser": "0.14.1",
282+ "lazy": "6.0.0",
283+ "lazy-joe": "1.0.0",
284+ "lcg": "4.0.0",
285+ "leibniz": "5.0.0",
286+ "leveldb": "1.0.1",
287+ "liminal": "1.0.1",
288+ "linalg": "6.0.0",
289+ "lists": "7.0.0",
290+ "literals": "1.0.2",
291+ "logging": "3.0.0",
292+ "logging-journald": "0.4.0",
293+ "lumi-components": "18.0.0",
294+ "machines": "7.0.0",
295+ "maps-eager": "0.5.0",
296+ "marionette": "1.0.0",
297+ "marionette-react-basic-hooks": "0.1.1",
298+ "marked": "0.1.0",
299+ "matrices": "5.0.1",
300+ "matryoshka": "1.0.0",
301+ "maybe": "6.0.0",
302+ "media-types": "6.0.0",
303+ "meowclient": "1.0.0",
304+ "midi": "4.0.0",
305+ "milkis": "9.0.0",
306+ "mimetype": "0.0.1",
307+ "minibench": "4.0.1",
308+ "mmorph": "7.0.0",
309+ "monad-control": "5.0.0",
310+ "monad-logger": "1.3.1",
311+ "monad-loops": "0.5.0",
312+ "monad-unlift": "1.0.1",
313+ "monoid-extras": "0.0.1",
314+ "monoidal": "0.16.0",
315+ "morello": "0.4.0",
316+ "mote": "3.0.0",
317+ "motsunabe": "2.0.0",
318+ "mvc": "0.0.1",
319+ "mysql": "6.0.1",
320+ "n3": "0.1.0",
321+ "nano-id": "1.1.0",
322+ "nanoid": "0.1.0",
323+ "naturals": "3.0.0",
324+ "nested-functor": "0.2.1",
325+ "newtype": "5.0.0",
326+ "nextjs": "0.1.1",
327+ "nextui": "0.2.0",
328+ "node-buffer": "9.0.0",
329+ "node-child-process": "11.1.0",
330+ "node-event-emitter": "3.0.0",
331+ "node-execa": "5.0.0",
332+ "node-fs": "9.2.0",
333+ "node-glob-basic": "2.0.0",
334+ "node-http": "9.1.0",
335+ "node-http2": "1.1.1",
336+ "node-human-signals": "1.0.0",
337+ "node-net": "5.1.0",
338+ "node-os": "5.1.0",
339+ "node-path": "5.0.1",
340+ "node-process": "11.2.0",
341+ "node-readline": "8.1.1",
342+ "node-sqlite3": "8.0.0",
343+ "node-stream-pipes": "2.1.6",
344+ "node-streams": "9.0.1",
345+ "node-tls": "0.3.1",
346+ "node-url": "7.0.1",
347+ "node-workerbees": "0.3.1",
348+ "node-zlib": "0.4.0",
349+ "nonempty": "7.0.0",
350+ "now": "6.0.0",
351+ "npm-package-json": "2.0.0",
352+ "nullable": "6.0.0",
353+ "numberfield": "0.2.2",
354+ "numbers": "9.0.1",
355+ "oak": "3.1.1",
356+ "oak-debug": "1.2.2",
357+ "object-maps": "0.3.0",
358+ "ocarina": "1.5.4",
359+ "oooooooooorrrrrrrmm-lib": "0.0.1",
360+ "open-colors-scales-and-schemes": "1.0.0",
361+ "open-drawing": "6.0.4",
362+ "open-folds": "6.4.0",
363+ "open-foreign-generic": "11.0.3",
364+ "open-memoize": "6.2.0",
365+ "open-mkdirp-aff": "1.2.0",
366+ "open-pairing": "6.2.0",
367+ "open-smolder": "12.0.2",
368+ "options": "7.0.0",
369+ "optparse": "5.0.1",
370+ "ordered-collections": "3.2.0",
371+ "ordered-set": "0.5.0",
372+ "orders": "6.0.0",
373+ "org-doc": "0.1.0",
374+ "owoify": "1.2.0",
375+ "pairs": "9.0.1",
376+ "parallel": "7.0.0",
377+ "parsing": "11.0.0",
378+ "parsing-dataview": "3.2.4",
379+ "partial": "4.0.0",
380+ "pathy": "9.0.0",
381+ "pha": "0.13.0",
382+ "phaser": "0.7.0",
383+ "phylio": "1.1.2",
384+ "pipes": "8.0.0",
385+ "pirates-charm": "0.0.1",
386+ "play": "1.0.0",
387+ "pmock": "0.9.0",
388+ "point-free": "1.0.0",
389+ "pointed-list": "0.5.1",
390+ "polymorphic-vectors": "4.0.0",
391+ "posix-types": "6.0.0",
392+ "postgresql": "2.0.21",
393+ "precise": "6.0.0",
394+ "precise-datetime": "7.0.0",
395+ "prelude": "6.0.2",
396+ "prettier-printer": "3.0.0",
397+ "printf": "0.1.0",
398+ "priority-queue": "0.1.2",
399+ "profunctor": "6.0.1",
400+ "profunctor-lenses": "8.0.0",
401+ "protobuf": "4.4.0",
402+ "psa-utils": "8.0.0",
403+ "psci-support": "6.0.0",
404+ "punycode": "1.0.0",
405+ "pursfmt": "0.17.0",
406+ "qualified-do": "2.2.0",
407+ "quantities": "12.2.0",
408+ "quickcheck": "8.0.1",
409+ "quickcheck-combinators": "0.1.3",
410+ "quickcheck-laws": "7.0.0",
411+ "quickcheck-utf8": "0.0.0",
412+ "random": "6.0.0",
413+ "rationals": "6.0.0",
414+ "rdf": "0.1.0",
415+ "react": "11.0.0",
416+ "react-aria": "0.2.0",
417+ "react-basic": "17.0.0",
418+ "react-basic-classic": "3.0.0",
419+ "react-basic-dnd": "10.1.0",
420+ "react-basic-dom": "7.0.0",
421+ "react-basic-dom-beta": "0.1.1",
422+ "react-basic-emotion": "7.1.0",
423+ "react-basic-hooks": "9.0.0",
424+ "react-basic-storybook": "2.0.0",
425+ "react-dom": "8.0.0",
426+ "react-halo": "3.0.0",
427+ "react-icons": "1.1.5",
428+ "react-markdown": "0.1.0",
429+ "react-testing-library": "4.0.1",
430+ "react-virtuoso": "1.0.0",
431+ "reactix": "0.6.1",
432+ "read": "1.0.1",
433+ "recharts": "1.1.0",
434+ "record": "4.0.0",
435+ "record-extra": "5.0.1",
436+ "record-extra-srghma": "0.2.8",
437+ "record-ptional-fields": "0.1.2",
438+ "record-studio": "1.0.4",
439+ "refs": "6.0.0",
440+ "remotedata": "5.0.1",
441+ "repr": "0.5.0",
442+ "resize-arrays": "0.0.1",
443+ "resize-observer": "1.0.0",
444+ "resource": "2.0.1",
445+ "resourcet": "1.0.0",
446+ "result": "1.0.3",
447+ "return": "0.2.0",
448+ "ring-modules": "5.0.1",
449+ "rito": "0.3.4",
450+ "roman": "0.4.0",
451+ "rough-notation": "1.0.2",
452+ "routing": "11.0.0",
453+ "routing-duplex": "0.7.0",
454+ "run": "5.0.0",
455+ "safe-coerce": "2.0.0",
456+ "safely": "4.0.1",
457+ "school-of-music": "1.3.0",
458+ "selection-foldable": "0.2.0",
459+ "selective-functors": "1.0.1",
460+ "semirings": "7.0.0",
461+ "shuffle": "2.0.0",
462+ "sigil": "0.2.0",
463+ "signal": "13.0.0",
464+ "simple-emitter": "3.0.1",
465+ "simple-i18n": "2.0.1",
466+ "simple-json": "9.0.0",
467+ "simple-json-generics": "0.2.1",
468+ "simple-ulid": "3.0.0",
469+ "sized-matrices": "1.0.0",
470+ "sized-vectors": "5.0.2",
471+ "slug": "3.2.0",
472+ "small-ffi": "4.0.1",
473+ "soundfonts": "4.1.0",
474+ "sparse-matrices": "2.0.1",
475+ "sparse-polynomials": "3.0.1",
476+ "spec": "8.1.1",
477+ "spec-discovery": "8.4.1",
478+ "spec-mocha": "5.1.1",
479+ "spec-node": "0.0.3",
480+ "spec-quickcheck": "5.0.2",
481+ "spec-reporter-xunit": "0.7.1",
482+ "splitmix": "2.1.0",
483+ "ssrs": "1.0.0",
484+ "st": "6.2.0",
485+ "statistics": "0.3.2",
486+ "strictlypositiveint": "1.0.1",
487+ "string-parsers": "8.0.0",
488+ "strings": "6.0.1",
489+ "strings-extra": "4.0.0",
490+ "stringutils": "0.0.12",
491+ "structured-logging": "1.0.0",
492+ "substitute": "0.2.3",
493+ "supply": "0.2.0",
494+ "svg-parser": "3.0.0",
495+ "systemd-journald": "0.3.0",
496+ "tagged": "4.0.2",
497+ "tailrec": "6.1.0",
498+ "tanstack-query": "2.0.0",
499+ "tecton": "0.2.1",
500+ "tecton-halogen": "0.2.0",
501+ "test-unit": "17.0.0",
502+ "text-formatting": "0.1.0",
503+ "thermite": "6.3.1",
504+ "thermite-dom": "0.3.1",
505+ "these": "6.0.0",
506+ "threading": "0.0.3",
507+ "tidy": "0.11.1",
508+ "tidy-codegen": "4.0.1",
509+ "tldr": "0.0.0",
510+ "toestand": "0.9.0",
511+ "transformation-matrix": "1.0.1",
512+ "transformers": "6.1.0",
513+ "transit": "1.0.0",
514+ "tree-rose": "4.0.2",
515+ "trivial-unfold": "0.5.0",
516+ "ts-bridge": "4.0.0",
517+ "tuples": "7.0.0",
518+ "two-or-more": "1.0.0",
519+ "type-equality": "4.0.1",
520+ "typedenv": "2.0.1",
521+ "typelevel": "6.0.0",
522+ "typelevel-lists": "2.1.0",
523+ "typelevel-peano": "1.0.1",
524+ "typelevel-prelude": "7.0.0",
525+ "typelevel-regex": "0.0.3",
526+ "typelevel-rows": "0.1.0",
527+ "typisch": "0.4.0",
528+ "uint": "7.0.0",
529+ "ulid": "3.0.1",
530+ "uncurried-transformers": "1.1.0",
531+ "undefined": "2.0.0",
532+ "undefined-is-not-a-problem": "1.1.0",
533+ "unfoldable": "6.0.0",
534+ "unicode": "6.0.0",
535+ "unique": "0.6.1",
536+ "unlift": "1.0.1",
537+ "unordered-collections": "3.1.0",
538+ "unsafe-coerce": "6.0.0",
539+ "unsafe-reference": "5.0.0",
540+ "untagged-to-tagged": "0.1.4",
541+ "untagged-union": "1.0.0",
542+ "uri": "9.0.0",
543+ "url-immutable": "1.0.0",
544+ "url-regex-safe": "0.1.1",
545+ "uuid": "9.0.0",
546+ "uuidv4": "1.0.0",
547+ "validation": "6.0.0",
548+ "variant": "8.0.0",
549+ "variant-encodings": "2.0.0",
550+ "variant-gen": "1.0.0",
551+ "vectorfield": "1.0.1",
552+ "vectors": "2.1.0",
553+ "versions": "7.0.0",
554+ "visx": "0.0.2",
555+ "vitest": "2.0.0",
556+ "web-clipboard": "6.0.0",
557+ "web-cssom": "2.0.0",
558+ "web-cssom-view": "0.1.0",
559+ "web-dom": "6.0.0",
560+ "web-dom-parser": "8.0.0",
561+ "web-dom-xpath": "3.0.0",
562+ "web-encoding": "3.0.0",
563+ "web-events": "4.0.0",
564+ "web-fetch": "4.0.1",
565+ "web-file": "4.0.0",
566+ "web-geometry": "0.1.0",
567+ "web-html": "4.1.1",
568+ "web-pointerevents": "2.0.0",
569+ "web-proletarian": "1.0.0",
570+ "web-promise": "3.2.0",
571+ "web-resize-observer": "2.1.0",
572+ "web-router": "1.0.0",
573+ "web-socket": "4.0.0",
574+ "web-storage": "5.0.0",
575+ "web-streams": "4.0.0",
576+ "web-touchevents": "4.0.0",
577+ "web-uievents": "5.0.0",
578+ "web-url": "2.0.0",
579+ "web-workers": "1.1.0",
580+ "web-xhr": "5.0.1",
581+ "webb-aff-list": "0.0.2",
582+ "webb-array": "0.0.2",
583+ "webb-channel": "0.0.3",
584+ "webb-commandline": "0.0.3",
585+ "webb-directory": "0.0.7",
586+ "webb-file": "0.0.1",
587+ "webb-map": "0.0.1",
588+ "webb-monad": "0.0.2",
589+ "webb-mutex": "0.0.7",
590+ "webb-parsing": "0.0.5",
591+ "webb-random": "0.0.1",
592+ "webb-refer": "0.0.3",
593+ "webb-set": "0.0.1",
594+ "webb-slot": "0.0.1",
595+ "webb-stateful": "0.0.3",
596+ "webb-string": "0.0.1",
597+ "webb-test": "0.0.1",
598+ "webb-thread": "0.0.2",
599+ "webb-writer": "0.0.3",
600+ "webextension-polyfill": "0.1.0",
601+ "webgpu": "0.0.1",
602+ "which": "2.0.0",
603+ "whine-core": "0.0.33",
604+ "xterm": "1.0.0",
605+ "yaml-next": "3.1.1",
606+ "yoga-fetch": "1.0.1",
607+ "yoga-json": "5.1.0",
608+ "yoga-om": "0.1.0",
609+ "yoga-postgres": "6.0.0",
610+ "yoga-react-dom": "1.0.1",
611+ "yoga-redis": "0.1.0",
612+ "yoga-sql-types": "0.1.0",
613+ "yoga-subtlecrypto": "0.1.0",
614+ "yoga-test-docker": "0.1.0",
615+ "yoga-tree": "1.0.0",
616+ "yoga-tree-svg": "0.1.0",
617+ "yoga-tree-utils": "1.0.0",
618+ "z3": "0.0.2",
619+ "zipperarray": "2.0.0"
620+ }
621+ },
622+ "extra_packages": {}
623+ },
624+ "packages": {
625+ "arrays": {
626+ "type": "registry",
627+ "version": "7.3.0",
628+ "integrity": "sha256-GD4z7LCi9wzi7FCQqbWhvs8paoUK9NO+HwgXZ+KP8Rk=",
629+ "dependencies": [
630+ "bifunctors",
631+ "control",
632+ "foldable-traversable",
633+ "functions",
634+ "maybe",
635+ "nonempty",
636+ "partial",
637+ "prelude",
638+ "safe-coerce",
639+ "st",
640+ "tailrec",
641+ "tuples",
642+ "unfoldable",
643+ "unsafe-coerce"
644+ ]
645+ },
646+ "bifunctors": {
647+ "type": "registry",
648+ "version": "6.1.0",
649+ "integrity": "sha256-CvZRb8uI75eKIqiYntR+k05Wk6tKlMS5w8sCA2AFna0=",
650+ "dependencies": [
651+ "const",
652+ "either",
653+ "newtype",
654+ "prelude",
655+ "tuples"
656+ ]
657+ },
658+ "const": {
659+ "type": "registry",
660+ "version": "6.0.0",
661+ "integrity": "sha256-S+m0lQsxnji0z1XRUmkn+3RFuWJ5CXWuIr1u3i8Bfoc=",
662+ "dependencies": [
663+ "invariant",
664+ "newtype",
665+ "prelude"
666+ ]
667+ },
668+ "contravariant": {
669+ "type": "registry",
670+ "version": "6.0.0",
671+ "integrity": "sha256-nuckEWqL80NaPmR/l9AUyrfycNh18XcvlZV9PAamwqc=",
672+ "dependencies": [
673+ "const",
674+ "either",
675+ "newtype",
676+ "prelude",
677+ "tuples"
678+ ]
679+ },
680+ "control": {
681+ "type": "registry",
682+ "version": "6.0.0",
683+ "integrity": "sha256-0vxyYh5FL+ilxgLo954w1LqCUC0RSIivNNlb9CaNUQg=",
684+ "dependencies": [
685+ "newtype",
686+ "prelude"
687+ ]
688+ },
689+ "datetime": {
690+ "type": "registry",
691+ "version": "6.1.0",
692+ "integrity": "sha256-tbv6eDXy6QOD7YSknxYSbsDF32OC2JrNbSBpzMs7Doc=",
693+ "dependencies": [
694+ "bifunctors",
695+ "control",
696+ "either",
697+ "enums",
698+ "foldable-traversable",
699+ "functions",
700+ "gen",
701+ "integers",
702+ "lists",
703+ "maybe",
704+ "newtype",
705+ "numbers",
706+ "ordered-collections",
707+ "partial",
708+ "prelude",
709+ "tuples"
710+ ]
711+ },
712+ "distributive": {
713+ "type": "registry",
714+ "version": "6.0.0",
715+ "integrity": "sha256-netyJK4B32PDYHD0tF2AenKgo3urzbI770ycM0pArAo=",
716+ "dependencies": [
717+ "identity",
718+ "newtype",
719+ "prelude",
720+ "tuples",
721+ "type-equality"
722+ ]
723+ },
724+ "effect": {
725+ "type": "registry",
726+ "version": "4.0.0",
727+ "integrity": "sha256-DdqU3bncRTjgMVPPRlAuGHVeajSPEcRaRhNuio7if6s=",
728+ "dependencies": [
729+ "prelude"
730+ ]
731+ },
732+ "either": {
733+ "type": "registry",
734+ "version": "6.1.0",
735+ "integrity": "sha256-tBHx3PgtH4GZOApZCDkcM7szRTYJinrUrVGWazQCUUg=",
736+ "dependencies": [
737+ "control",
738+ "invariant",
739+ "maybe",
740+ "prelude"
741+ ]
742+ },
743+ "enums": {
744+ "type": "registry",
745+ "version": "6.0.1",
746+ "integrity": "sha256-sdZOmLX5+5pASGpvVyT0vSD5BBYQjZiayjV5XiPutso=",
747+ "dependencies": [
748+ "control",
749+ "either",
750+ "gen",
751+ "maybe",
752+ "newtype",
753+ "nonempty",
754+ "partial",
755+ "prelude",
756+ "tuples",
757+ "unfoldable"
758+ ]
759+ },
760+ "exceptions": {
761+ "type": "registry",
762+ "version": "6.1.0",
763+ "integrity": "sha256-nRrr+N0wk0TUFOWLR7e1n1oxcXo/X345bQUtoY9lW6A=",
764+ "dependencies": [
765+ "effect",
766+ "either",
767+ "maybe",
768+ "prelude"
769+ ]
770+ },
771+ "exists": {
772+ "type": "registry",
773+ "version": "6.0.0",
774+ "integrity": "sha256-vtLbrWNaI+pzx/2fw2AQnCovoLtcosClIhjO26QKkh8=",
775+ "dependencies": [
776+ "unsafe-coerce"
777+ ]
778+ },
779+ "foldable-traversable": {
780+ "type": "registry",
781+ "version": "6.0.0",
782+ "integrity": "sha256-NGGWyCio/xjce6fPP7y3wwg7CheqllID6aJudDxbWhA=",
783+ "dependencies": [
784+ "bifunctors",
785+ "const",
786+ "control",
787+ "either",
788+ "functors",
789+ "identity",
790+ "maybe",
791+ "newtype",
792+ "orders",
793+ "prelude",
794+ "tuples"
795+ ]
796+ },
797+ "foreign": {
798+ "type": "registry",
799+ "version": "7.0.0",
800+ "integrity": "sha256-jiDRMVQfovGsbbA/FzbzYf6iWk9i2b5gNrIjz+gFfsI=",
801+ "dependencies": [
802+ "either",
803+ "functions",
804+ "integers",
805+ "lists",
806+ "maybe",
807+ "prelude",
808+ "strings",
809+ "transformers",
810+ "unsafe-coerce"
811+ ]
812+ },
813+ "functions": {
814+ "type": "registry",
815+ "version": "6.0.0",
816+ "integrity": "sha256-0jgtOr+SFO4UScKc40oA/9Vdcf2rLn3h3vZlY0KfqVo=",
817+ "dependencies": [
818+ "prelude"
819+ ]
820+ },
821+ "functors": {
822+ "type": "registry",
823+ "version": "5.0.0",
824+ "integrity": "sha256-W1o/4wcp6S3chodYL8uixlXK2mfr1L+SzM1R+whqUco=",
825+ "dependencies": [
826+ "bifunctors",
827+ "const",
828+ "contravariant",
829+ "control",
830+ "distributive",
831+ "either",
832+ "invariant",
833+ "maybe",
834+ "newtype",
835+ "prelude",
836+ "profunctor",
837+ "tuples",
838+ "unsafe-coerce"
839+ ]
840+ },
841+ "gen": {
842+ "type": "registry",
843+ "version": "4.0.0",
844+ "integrity": "sha256-kyOateeOtQa07vfTMYeSuCKdelgKE1R65fwKkZ10wsY=",
845+ "dependencies": [
846+ "either",
847+ "foldable-traversable",
848+ "identity",
849+ "maybe",
850+ "newtype",
851+ "nonempty",
852+ "prelude",
853+ "tailrec",
854+ "tuples",
855+ "unfoldable"
856+ ]
857+ },
858+ "identity": {
859+ "type": "registry",
860+ "version": "6.0.0",
861+ "integrity": "sha256-RY/iXPpxpqvKHYfJeFVNI1J06kohB9rbtWYuha8t0LE=",
862+ "dependencies": [
863+ "control",
864+ "invariant",
865+ "newtype",
866+ "prelude"
867+ ]
868+ },
869+ "integers": {
870+ "type": "registry",
871+ "version": "6.0.0",
872+ "integrity": "sha256-Y8yozC1uHRLcruobEyv5/bMKzE1BoKJ/olHv6o+bgm8=",
873+ "dependencies": [
874+ "maybe",
875+ "numbers",
876+ "prelude"
877+ ]
878+ },
879+ "invariant": {
880+ "type": "registry",
881+ "version": "6.0.0",
882+ "integrity": "sha256-HyoT1I5qIHRq8RSZji6zZDvqnpVjLw748utrKwZtqsw=",
883+ "dependencies": [
884+ "control",
885+ "prelude"
886+ ]
887+ },
888+ "js-date": {
889+ "type": "registry",
890+ "version": "8.0.0",
891+ "integrity": "sha256-DNQrp4xYc8o80jtxo0aOkUeXGi6h0Xidkk2ZQ8Y4l5Y=",
892+ "dependencies": [
893+ "datetime",
894+ "effect",
895+ "enums",
896+ "foreign",
897+ "functions",
898+ "integers",
899+ "maybe",
900+ "prelude"
901+ ]
902+ },
903+ "lazy": {
904+ "type": "registry",
905+ "version": "6.0.0",
906+ "integrity": "sha256-MHRC+1Pc+AjortBp4b/e1e6KpEpsDwaJBNBB7TOL+1I=",
907+ "dependencies": [
908+ "control",
909+ "foldable-traversable",
910+ "invariant",
911+ "prelude"
912+ ]
913+ },
914+ "lists": {
915+ "type": "registry",
916+ "version": "7.0.0",
917+ "integrity": "sha256-/mGd7wLoU+wsTcqii7SSUByxsvwvjnu2PjwAD47yYb4=",
918+ "dependencies": [
919+ "bifunctors",
920+ "control",
921+ "foldable-traversable",
922+ "lazy",
923+ "maybe",
924+ "newtype",
925+ "nonempty",
926+ "partial",
927+ "prelude",
928+ "tailrec",
929+ "tuples",
930+ "unfoldable"
931+ ]
932+ },
933+ "maybe": {
934+ "type": "registry",
935+ "version": "6.0.0",
936+ "integrity": "sha256-8X6XEgtZ5lqfkEuc1hWOofnL6mwhk8gSJTxwvbR/SbY=",
937+ "dependencies": [
938+ "control",
939+ "invariant",
940+ "newtype",
941+ "prelude"
942+ ]
943+ },
944+ "media-types": {
945+ "type": "registry",
946+ "version": "6.0.0",
947+ "integrity": "sha256-3Wyq+vfqJFTmy1k6DGVnXStxtZxgK631wusDPzlFVxg=",
948+ "dependencies": [
949+ "newtype",
950+ "prelude"
951+ ]
952+ },
953+ "newtype": {
954+ "type": "registry",
955+ "version": "5.0.0",
956+ "integrity": "sha256-dt6w0cty4OS+Pjt9fsh3iU6ottqSU83mdAZkaEEvo6c=",
957+ "dependencies": [
958+ "prelude",
959+ "safe-coerce"
960+ ]
961+ },
962+ "nonempty": {
963+ "type": "registry",
964+ "version": "7.0.0",
965+ "integrity": "sha256-Ctkq8/+KiGqCE53Y/LvibA/coy7ev9HtRZU+GYS7yfQ=",
966+ "dependencies": [
967+ "control",
968+ "foldable-traversable",
969+ "maybe",
970+ "prelude",
971+ "tuples",
972+ "unfoldable"
973+ ]
974+ },
975+ "nullable": {
976+ "type": "registry",
977+ "version": "6.0.0",
978+ "integrity": "sha256-CDAZk+L9Sc0GCFTkE8n+qdp4Ys8avvnkU+m2hVALt7M=",
979+ "dependencies": [
980+ "functions",
981+ "maybe",
982+ "prelude"
983+ ]
984+ },
985+ "numbers": {
986+ "type": "registry",
987+ "version": "9.0.1",
988+ "integrity": "sha256-ZydYckgwRAnRaFC7pu6fADhzdwX+UqHZrfJyet64zls=",
989+ "dependencies": [
990+ "functions",
991+ "maybe",
992+ "prelude"
993+ ]
994+ },
995+ "ordered-collections": {
996+ "type": "registry",
997+ "version": "3.2.0",
998+ "integrity": "sha256-NaEXc2cz/7lJfxPWEja4XlZbGxuRqJwFKQJjsJf51kQ=",
999+ "dependencies": [
1000+ "arrays",
1001+ "control",
1002+ "foldable-traversable",
1003+ "functions",
1004+ "gen",
1005+ "lists",
1006+ "maybe",
1007+ "newtype",
1008+ "partial",
1009+ "prelude",
1010+ "safe-coerce",
1011+ "tailrec",
1012+ "tuples",
1013+ "unfoldable"
1014+ ]
1015+ },
1016+ "orders": {
1017+ "type": "registry",
1018+ "version": "6.0.0",
1019+ "integrity": "sha256-nSMxZK7wxyDULkjZqvMyB71mVo6b0AyLLHosDVbv1XM=",
1020+ "dependencies": [
1021+ "newtype",
1022+ "prelude"
1023+ ]
1024+ },
1025+ "partial": {
1026+ "type": "registry",
1027+ "version": "4.0.0",
1028+ "integrity": "sha256-mdrlJBAgFMh79hNRW39uv7c+BwnnaOrAMmdh7+VhEhs=",
1029+ "dependencies": []
1030+ },
1031+ "prelude": {
1032+ "type": "registry",
1033+ "version": "6.0.2",
1034+ "integrity": "sha256-IqykrDRquGUD/LRSad7y75hZv3bUsGQ4knc8tdez8Qw=",
1035+ "dependencies": []
1036+ },
1037+ "profunctor": {
1038+ "type": "registry",
1039+ "version": "6.0.1",
1040+ "integrity": "sha256-Ow0mJC+PIIRq/a3mzCWY5vxuTgR/e+Ee68+mWeSRnWY=",
1041+ "dependencies": [
1042+ "control",
1043+ "distributive",
1044+ "either",
1045+ "exists",
1046+ "invariant",
1047+ "newtype",
1048+ "prelude",
1049+ "tuples"
1050+ ]
1051+ },
1052+ "refs": {
1053+ "type": "registry",
1054+ "version": "6.0.0",
1055+ "integrity": "sha256-KKD5G9dR2SauuDGULUJsxjqDOEi1Jqm+2Sq5U2mY8YU=",
1056+ "dependencies": [
1057+ "effect",
1058+ "prelude"
1059+ ]
1060+ },
1061+ "safe-coerce": {
1062+ "type": "registry",
1063+ "version": "2.0.0",
1064+ "integrity": "sha256-EJrxtKt5xC7TYjBZrSBO/J7Aw3DmtilYjt4olpAXWVc=",
1065+ "dependencies": [
1066+ "unsafe-coerce"
1067+ ]
1068+ },
1069+ "st": {
1070+ "type": "registry",
1071+ "version": "6.2.0",
1072+ "integrity": "sha256-WI4MEkkwUd4pnwZQ3G8VKWgX5t1RSNJludm5e9boaRo=",
1073+ "dependencies": [
1074+ "effect",
1075+ "partial",
1076+ "prelude",
1077+ "tailrec",
1078+ "unsafe-coerce"
1079+ ]
1080+ },
1081+ "strings": {
1082+ "type": "registry",
1083+ "version": "6.0.1",
1084+ "integrity": "sha256-FNto2hoNW5Da6W6crIk77YXMagBvOGHZE1kO7eZ1vLM=",
1085+ "dependencies": [
1086+ "arrays",
1087+ "control",
1088+ "either",
1089+ "enums",
1090+ "foldable-traversable",
1091+ "gen",
1092+ "integers",
1093+ "maybe",
1094+ "newtype",
1095+ "nonempty",
1096+ "partial",
1097+ "prelude",
1098+ "tailrec",
1099+ "tuples",
1100+ "unfoldable",
1101+ "unsafe-coerce"
1102+ ]
1103+ },
1104+ "tailrec": {
1105+ "type": "registry",
1106+ "version": "6.1.0",
1107+ "integrity": "sha256-xrorCfP0xV1wubs27idQCHQqdvSUuqmmL/am7Ji1wVU=",
1108+ "dependencies": [
1109+ "bifunctors",
1110+ "effect",
1111+ "either",
1112+ "identity",
1113+ "maybe",
1114+ "partial",
1115+ "prelude",
1116+ "refs"
1117+ ]
1118+ },
1119+ "transformers": {
1120+ "type": "registry",
1121+ "version": "6.1.0",
1122+ "integrity": "sha256-QJmgNT/y7ljPHSsXaW4zxF/982BFiQ90KNL1g/NtEOQ=",
1123+ "dependencies": [
1124+ "control",
1125+ "distributive",
1126+ "effect",
1127+ "either",
1128+ "exceptions",
1129+ "foldable-traversable",
1130+ "identity",
1131+ "lazy",
1132+ "maybe",
1133+ "newtype",
1134+ "prelude",
1135+ "st",
1136+ "tailrec",
1137+ "tuples",
1138+ "unfoldable"
1139+ ]
1140+ },
1141+ "tuples": {
1142+ "type": "registry",
1143+ "version": "7.0.0",
1144+ "integrity": "sha256-BKy7EfK8S1KeTCwyWqyW1wwcpSAQuh3IsczSVgS6fzY=",
1145+ "dependencies": [
1146+ "control",
1147+ "invariant",
1148+ "prelude"
1149+ ]
1150+ },
1151+ "type-equality": {
1152+ "type": "registry",
1153+ "version": "4.0.1",
1154+ "integrity": "sha256-BBqYOSnAKmayRvR5mtZoCf4SlYs2ipatD/+5nQx73aw=",
1155+ "dependencies": []
1156+ },
1157+ "unfoldable": {
1158+ "type": "registry",
1159+ "version": "6.0.0",
1160+ "integrity": "sha256-BK/6By1sKp/ztk+9CF3q43SV0QDTLVdsGqFerKHSmbg=",
1161+ "dependencies": [
1162+ "foldable-traversable",
1163+ "maybe",
1164+ "partial",
1165+ "prelude",
1166+ "tuples"
1167+ ]
1168+ },
1169+ "unsafe-coerce": {
1170+ "type": "registry",
1171+ "version": "6.0.0",
1172+ "integrity": "sha256-0L1QsaY20OILjfU5TV72d3U/tSjhmL9hJ32WMp857Lk=",
1173+ "dependencies": []
1174+ },
1175+ "web-dom": {
1176+ "type": "registry",
1177+ "version": "6.0.0",
1178+ "integrity": "sha256-rVeqkxChkjqisDvOujy9BMEgGqJkwX3t6g21bXfiG5o=",
1179+ "dependencies": [
1180+ "effect",
1181+ "enums",
1182+ "maybe",
1183+ "newtype",
1184+ "nullable",
1185+ "prelude",
1186+ "unsafe-coerce",
1187+ "web-events"
1188+ ]
1189+ },
1190+ "web-events": {
1191+ "type": "registry",
1192+ "version": "4.0.0",
1193+ "integrity": "sha256-wZNeldG0OU+8qGycUJ9e6vxf1/GC4Ep4OlRMhvjs9LA=",
1194+ "dependencies": [
1195+ "datetime",
1196+ "effect",
1197+ "enums",
1198+ "foreign",
1199+ "functions",
1200+ "maybe",
1201+ "newtype",
1202+ "nullable",
1203+ "prelude",
1204+ "unsafe-coerce"
1205+ ]
1206+ },
1207+ "web-file": {
1208+ "type": "registry",
1209+ "version": "4.0.0",
1210+ "integrity": "sha256-txsdkeWBKU/+5v9m5c6kysgJQSDyV1r7MHaeT4STpjQ=",
1211+ "dependencies": [
1212+ "datetime",
1213+ "effect",
1214+ "enums",
1215+ "foreign",
1216+ "integers",
1217+ "maybe",
1218+ "media-types",
1219+ "nullable",
1220+ "numbers",
1221+ "partial",
1222+ "prelude",
1223+ "tuples",
1224+ "unfoldable",
1225+ "unsafe-coerce",
1226+ "web-events"
1227+ ]
1228+ },
1229+ "web-html": {
1230+ "type": "registry",
1231+ "version": "4.1.1",
1232+ "integrity": "sha256-yOuZJGUxFrivHKpo/jKuKzFZaq6PPPE64ftSysXFssk=",
1233+ "dependencies": [
1234+ "effect",
1235+ "enums",
1236+ "foreign",
1237+ "functions",
1238+ "js-date",
1239+ "maybe",
1240+ "media-types",
1241+ "newtype",
1242+ "nullable",
1243+ "prelude",
1244+ "unsafe-coerce",
1245+ "web-dom",
1246+ "web-events",
1247+ "web-file",
1248+ "web-storage"
1249+ ]
1250+ },
1251+ "web-storage": {
1252+ "type": "registry",
1253+ "version": "5.0.0",
1254+ "integrity": "sha256-YJfos55oeKtBStNfoWfeflSy8j+4IDym5eaZtIY7YM4=",
1255+ "dependencies": [
1256+ "effect",
1257+ "maybe",
1258+ "nullable",
1259+ "prelude",
1260+ "unsafe-coerce",
1261+ "web-events"
1262+ ]
1263+ }
1264+ }
1265+}
spago.yaml+16−4
@@ -1,7 +1,19 @@
1package:
1package:
2 name: web-proletarian
2 name: web-proletarian
3 dependencies:
3 dependencies:
4− - effect
4+ - effect: ">=4.0.0 <5.0.0"
5− - prelude
5+ - prelude: ">=6.0.2 <7.0.0"
6+ - web-dom: ">=6.0.0 <7.0.0"
6− - web-html
7+ - web-html: ">=4.1.1 <5.0.0"
7− - unsafe-coerce
8+ - unsafe-coerce: ">=6.0.0 <7.0.0"
9+ publish:
10+ version: 2.0.0
11+ license: MIT-0 AND MIT
12+ location:
13+ githubOwner: rowtype-yoga
14+ githubRepo: purescript-web-proletarian
15+ include:
16+ - vite.mjs
17+workspace:
18+ packageSet:
19+ registry: 73.2.0
src/Yoga/WebProletarian/Runtime.jsnew file+5
@@ -0,0 +1,5 @@
1+export const requestAnimationFrame = callback => () => globalThis.requestAnimationFrame(callback);
2+export const cancelAnimationFrame = handle => () => globalThis.cancelAnimationFrame(handle);
3+export const supportsAnimationFrame = () => typeof globalThis.requestAnimationFrame === "function";
4+export const monotonicNowMilliseconds = () => globalThis.performance.now();
5+export const supportsWorkers = () => typeof globalThis.Worker === "function";
src/Yoga/WebProletarian/Runtime.pursnew file+17
@@ -0,0 +1,17 @@
1+module Yoga.WebProletarian.Runtime
2+ ( requestAnimationFrame
3+ , cancelAnimationFrame
4+ , supportsAnimationFrame
5+ , monotonicNowMilliseconds
6+ , supportsWorkers
7+ ) where
8+
9+import Prelude
10+
11+import Effect (Effect)
12+
13+foreign import requestAnimationFrame :: Effect Unit -> Effect Int
14+foreign import cancelAnimationFrame :: Int -> Effect Unit
15+foreign import supportsAnimationFrame :: Effect Boolean
16+foreign import monotonicNowMilliseconds :: Effect Number
17+foreign import supportsWorkers :: Effect Boolean
src/Yoga/WebProletarian/Transferable.js+3
@@ -1 +1,4 @@
1export const transferControlToOffscreenImpl = (canvas) => () => canvas.transferControlToOffscreen()
1export const transferControlToOffscreenImpl = (canvas) => () => canvas.transferControlToOffscreen()
2+
3+export const supportsTransferControlToOffscreen = element => () =>
4+ typeof element.transferControlToOffscreen === "function";
src/Yoga/WebProletarian/Transferable.purs+3
@@ -2,6 +2,7 @@ module Yoga.WebProletarian.Transferable where
2
2
3import Effect (Effect)
3import Effect (Effect)
4import Unsafe.Coerce (unsafeCoerce)
4import Unsafe.Coerce (unsafeCoerce)
5+import Web.DOM.Element (Element)
5import Web.HTML.HTMLCanvasElement (HTMLCanvasElement)
6import Web.HTML.HTMLCanvasElement (HTMLCanvasElement)
6
7
7foreign import data Transferable ∷ Type
8foreign import data Transferable ∷ Type
@@ -17,3 +18,5 @@ offscreenCanvasToTransferable = unsafeCoerce
17
18
18unsafeToTransferable ∷ ∀ a. a → Transferable
19unsafeToTransferable ∷ ∀ a. a → Transferable
19unsafeToTransferable = unsafeCoerce
20unsafeToTransferable = unsafeCoerce
21+
22+foreign import supportsTransferControlToOffscreen ∷ Element → Effect Boolean
src/Yoga/WebProletarian/Vite.jsnew file+11
@@ -0,0 +1,11 @@
1+import { workers, textAssets } from "virtual:yoga-web-proletarian";
2+
3+export const createWorker = key => options => () => {
4+ if (!Object.prototype.hasOwnProperty.call(workers, key)) throw new Error(`Unknown configured worker: ${key}`);
5+ return new workers[key](options);
6+};
7+
8+export const textAsset = key => {
9+ if (!Object.prototype.hasOwnProperty.call(textAssets, key)) throw new Error(`Unknown configured text asset: ${key}`);
10+ return textAssets[key];
11+};
src/Yoga/WebProletarian/Vite.pursnew file+9
@@ -0,0 +1,9 @@
1+-- | Factories and immutable text assets supplied by the package's Vite plugin.
2+-- | The application configures entry points and assets in its bundler config.
3+module Yoga.WebProletarian.Vite (createWorker, textAsset) where
4+
5+import Effect (Effect)
6+import Yoga.WebProletarian.Types (Worker)
7+
8+foreign import createWorker :: forall request response. String -> { name :: String } -> Effect (Worker request response)
9+foreign import textAsset :: String -> String
vite.mjsnew file+34
@@ -0,0 +1,34 @@
1+import { readFileSync } from "node:fs";
2+import { resolve } from "node:path";
3+
4+// Entries are ordinary compiled-main boot files. No application source is
5+// interpreted here; Vite owns worker bundling, including its inline fallback.
6+export function webProletarian({ workers = {}, textAssets = {}, inline = true } = {}) {
7+ const virtualId = "virtual:yoga-web-proletarian";
8+ const resolvedId = `\0${virtualId}`;
9+ return {
10+ name: "yoga-web-proletarian",
11+ resolveId(id) {
12+ if (id === virtualId) return resolvedId;
13+ },
14+ load(id) {
15+ if (id !== resolvedId) return;
16+ const imports = [];
17+ const constructors = [];
18+ for (const [key, entry] of Object.entries(workers)) {
19+ const path = resolve(entry);
20+ this.addWatchFile(path);
21+ const local = `Worker${imports.length}`;
22+ imports.push(`import ${local} from ${JSON.stringify(`${path}?worker${inline ? "&inline" : ""}`)};`);
23+ constructors.push(`[${JSON.stringify(key)}]: ${local}`);
24+ }
25+ const texts = [];
26+ for (const [key, entry] of Object.entries(textAssets)) {
27+ const path = resolve(entry);
28+ this.addWatchFile(path);
29+ texts.push(`[${JSON.stringify(key)}]: ${JSON.stringify(readFileSync(path, "utf8"))}`);
30+ }
31+ return `${imports.join("\n")}\nexport const workers = {${constructors.join(",")}};\nexport const textAssets = {${texts.join(",")}};`;
32+ },
33+ };
34+}