@liascript/editor 1.1.6--0.15.12 → 1.1.7--0.16.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +9 -3
- package/README.md +1 -1
- package/dist/{Base.9a5d63ee.js → Base.605d9ab5.js} +1 -1
- package/dist/{Base.a9e738fa.js → Base.d8e1fc60.js} +1 -1
- package/dist/index.11182e74.js +1 -0
- package/dist/index.55026812.js +1 -0
- package/dist/index.691fb05c.js +1 -0
- package/dist/index.756a5816.css +1 -0
- package/dist/index.796e2c5e.js +1 -0
- package/dist/index.html +1 -1
- package/dist/jszip.min.0e12e848.js +13 -0
- package/dist/jszip.min.a7b69263.js +13 -0
- package/package.json +9 -2
- package/.elm/0.19.1/packages/BrianHicks/elm-string-graphemes/1.0.4/LICENSE +0 -11
- package/.elm/0.19.1/packages/BrianHicks/elm-string-graphemes/1.0.4/README.md +0 -172
- package/.elm/0.19.1/packages/BrianHicks/elm-string-graphemes/1.0.4/artifacts.dat +0 -0
- package/.elm/0.19.1/packages/BrianHicks/elm-string-graphemes/1.0.4/docs.json +0 -1
- package/.elm/0.19.1/packages/NoRedInk/elm-json-decode-pipeline/1.0.1/LICENSE +0 -27
- package/.elm/0.19.1/packages/NoRedInk/elm-json-decode-pipeline/1.0.1/README.md +0 -107
- package/.elm/0.19.1/packages/NoRedInk/elm-json-decode-pipeline/1.0.1/artifacts.dat +0 -0
- package/.elm/0.19.1/packages/NoRedInk/elm-json-decode-pipeline/1.0.1/docs.json +0 -1
- package/.elm/0.19.1/packages/andre-dietrich/elm-conditional/1.0.0/LICENSE +0 -29
- package/.elm/0.19.1/packages/andre-dietrich/elm-conditional/1.0.0/README.md +0 -51
- package/.elm/0.19.1/packages/andre-dietrich/elm-conditional/1.0.0/artifacts.dat +0 -0
- package/.elm/0.19.1/packages/andre-dietrich/elm-conditional/1.0.0/docs.json +0 -1
- package/.elm/0.19.1/packages/andre-dietrich/elm-random-regex/1.0.9/LICENSE +0 -21
- package/.elm/0.19.1/packages/andre-dietrich/elm-random-regex/1.0.9/README.md +0 -313
- package/.elm/0.19.1/packages/andre-dietrich/elm-random-regex/1.0.9/artifacts.dat +0 -0
- package/.elm/0.19.1/packages/andre-dietrich/elm-random-regex/1.0.9/docs.json +0 -1
- package/.elm/0.19.1/packages/andre-dietrich/elm-svgbob/5.0.2/LICENSE +0 -202
- package/.elm/0.19.1/packages/andre-dietrich/elm-svgbob/5.0.2/README.md +0 -820
- package/.elm/0.19.1/packages/andre-dietrich/elm-svgbob/5.0.2/artifacts.dat +0 -0
- package/.elm/0.19.1/packages/andre-dietrich/elm-svgbob/5.0.2/docs.json +0 -1
- package/.elm/0.19.1/packages/andre-dietrich/parser-combinators/4.1.0/LICENSE +0 -24
- package/.elm/0.19.1/packages/andre-dietrich/parser-combinators/4.1.0/README.md +0 -7
- package/.elm/0.19.1/packages/andre-dietrich/parser-combinators/4.1.0/artifacts.dat +0 -0
- package/.elm/0.19.1/packages/andre-dietrich/parser-combinators/4.1.0/docs.json +0 -1
- package/.elm/0.19.1/packages/avh4/elm-color/1.0.0/LICENSE +0 -11
- package/.elm/0.19.1/packages/avh4/elm-color/1.0.0/README.md +0 -57
- package/.elm/0.19.1/packages/avh4/elm-color/1.0.0/artifacts.dat +0 -0
- package/.elm/0.19.1/packages/avh4/elm-color/1.0.0/docs.json +0 -1
- package/.elm/0.19.1/packages/danfishgold/base64-bytes/1.1.0/LICENSE +0 -11
- package/.elm/0.19.1/packages/danfishgold/base64-bytes/1.1.0/README.md +0 -58
- package/.elm/0.19.1/packages/danfishgold/base64-bytes/1.1.0/artifacts.dat +0 -0
- package/.elm/0.19.1/packages/danfishgold/base64-bytes/1.1.0/docs.json +0 -1
- package/.elm/0.19.1/packages/elm/browser/1.0.2/LICENSE +0 -11
- package/.elm/0.19.1/packages/elm/browser/1.0.2/README.md +0 -21
- package/.elm/0.19.1/packages/elm/browser/1.0.2/artifacts.dat +0 -0
- package/.elm/0.19.1/packages/elm/browser/1.0.2/docs.json +0 -1
- package/.elm/0.19.1/packages/elm/bytes/1.0.8/LICENSE +0 -30
- package/.elm/0.19.1/packages/elm/bytes/1.0.8/README.md +0 -56
- package/.elm/0.19.1/packages/elm/bytes/1.0.8/artifacts.dat +0 -0
- package/.elm/0.19.1/packages/elm/bytes/1.0.8/docs.json +0 -1
- package/.elm/0.19.1/packages/elm/core/1.0.5/LICENSE +0 -11
- package/.elm/0.19.1/packages/elm/core/1.0.5/README.md +0 -30
- package/.elm/0.19.1/packages/elm/core/1.0.5/artifacts.dat +0 -0
- package/.elm/0.19.1/packages/elm/core/1.0.5/docs.json +0 -1
- package/.elm/0.19.1/packages/elm/file/1.0.5/LICENSE +0 -30
- package/.elm/0.19.1/packages/elm/file/1.0.5/README.md +0 -127
- package/.elm/0.19.1/packages/elm/file/1.0.5/artifacts.dat +0 -0
- package/.elm/0.19.1/packages/elm/file/1.0.5/docs.json +0 -1
- package/.elm/0.19.1/packages/elm/html/1.0.0/LICENSE +0 -30
- package/.elm/0.19.1/packages/elm/html/1.0.0/README.md +0 -50
- package/.elm/0.19.1/packages/elm/html/1.0.0/artifacts.dat +0 -0
- package/.elm/0.19.1/packages/elm/html/1.0.0/docs.json +0 -1
- package/.elm/0.19.1/packages/elm/http/2.0.0/LICENSE +0 -30
- package/.elm/0.19.1/packages/elm/http/2.0.0/README.md +0 -36
- package/.elm/0.19.1/packages/elm/http/2.0.0/artifacts.dat +0 -0
- package/.elm/0.19.1/packages/elm/http/2.0.0/docs.json +0 -1
- package/.elm/0.19.1/packages/elm/json/1.1.3/LICENSE +0 -30
- package/.elm/0.19.1/packages/elm/json/1.1.3/README.md +0 -63
- package/.elm/0.19.1/packages/elm/json/1.1.3/artifacts.dat +0 -0
- package/.elm/0.19.1/packages/elm/json/1.1.3/docs.json +0 -1
- package/.elm/0.19.1/packages/elm/random/1.0.0/LICENSE +0 -30
- package/.elm/0.19.1/packages/elm/random/1.0.0/README.md +0 -46
- package/.elm/0.19.1/packages/elm/random/1.0.0/artifacts.dat +0 -0
- package/.elm/0.19.1/packages/elm/random/1.0.0/docs.json +0 -1
- package/.elm/0.19.1/packages/elm/regex/1.0.0/LICENSE +0 -30
- package/.elm/0.19.1/packages/elm/regex/1.0.0/README.md +0 -59
- package/.elm/0.19.1/packages/elm/regex/1.0.0/artifacts.dat +0 -0
- package/.elm/0.19.1/packages/elm/regex/1.0.0/docs.json +0 -1
- package/.elm/0.19.1/packages/elm/svg/1.0.1/LICENSE +0 -30
- package/.elm/0.19.1/packages/elm/svg/1.0.1/README.md +0 -62
- package/.elm/0.19.1/packages/elm/svg/1.0.1/artifacts.dat +0 -0
- package/.elm/0.19.1/packages/elm/svg/1.0.1/docs.json +0 -1
- package/.elm/0.19.1/packages/elm/time/1.0.0/LICENSE +0 -30
- package/.elm/0.19.1/packages/elm/time/1.0.0/README.md +0 -94
- package/.elm/0.19.1/packages/elm/time/1.0.0/artifacts.dat +0 -0
- package/.elm/0.19.1/packages/elm/time/1.0.0/docs.json +0 -1
- package/.elm/0.19.1/packages/elm/url/1.0.0/LICENSE +0 -27
- package/.elm/0.19.1/packages/elm/url/1.0.0/README.md +0 -32
- package/.elm/0.19.1/packages/elm/url/1.0.0/artifacts.dat +0 -0
- package/.elm/0.19.1/packages/elm/url/1.0.0/docs.json +0 -1
- package/.elm/0.19.1/packages/elm/virtual-dom/1.0.3/LICENSE +0 -30
- package/.elm/0.19.1/packages/elm/virtual-dom/1.0.3/README.md +0 -5
- package/.elm/0.19.1/packages/elm/virtual-dom/1.0.3/artifacts.dat +0 -0
- package/.elm/0.19.1/packages/elm/virtual-dom/1.0.3/docs.json +0 -1
- package/.elm/0.19.1/packages/elm-community/list-extra/8.7.0/LICENSE +0 -21
- package/.elm/0.19.1/packages/elm-community/list-extra/8.7.0/README.md +0 -19
- package/.elm/0.19.1/packages/elm-community/list-extra/8.7.0/artifacts.dat +0 -0
- package/.elm/0.19.1/packages/elm-community/list-extra/8.7.0/docs.json +0 -1
- package/.elm/0.19.1/packages/elm-community/random-extra/3.2.0/LICENSE +0 -29
- package/.elm/0.19.1/packages/elm-community/random-extra/3.2.0/README.md +0 -31
- package/.elm/0.19.1/packages/elm-community/random-extra/3.2.0/artifacts.dat +0 -0
- package/.elm/0.19.1/packages/elm-community/random-extra/3.2.0/docs.json +0 -1
- package/.elm/0.19.1/packages/f0i/statistics/2.0.0/LICENSE +0 -11
- package/.elm/0.19.1/packages/f0i/statistics/2.0.0/README.md +0 -73
- package/.elm/0.19.1/packages/f0i/statistics/2.0.0/artifacts.dat +0 -0
- package/.elm/0.19.1/packages/f0i/statistics/2.0.0/docs.json +0 -1
- package/.elm/0.19.1/packages/folkertdev/elm-flate/2.0.5/LICENSE +0 -373
- package/.elm/0.19.1/packages/folkertdev/elm-flate/2.0.5/README.md +0 -77
- package/.elm/0.19.1/packages/folkertdev/elm-flate/2.0.5/artifacts.dat +0 -0
- package/.elm/0.19.1/packages/folkertdev/elm-flate/2.0.5/docs.json +0 -1
- package/.elm/0.19.1/packages/justgook/elm-image/5.0.0/LICENSE +0 -9
- package/.elm/0.19.1/packages/justgook/elm-image/5.0.0/README.md +0 -112
- package/.elm/0.19.1/packages/justgook/elm-image/5.0.0/artifacts.dat +0 -0
- package/.elm/0.19.1/packages/justgook/elm-image/5.0.0/docs.json +0 -1
- package/.elm/0.19.1/packages/jxxcarlson/elm-pseudorandom/1.0.3/LICENSE +0 -11
- package/.elm/0.19.1/packages/jxxcarlson/elm-pseudorandom/1.0.3/README.md +0 -67
- package/.elm/0.19.1/packages/jxxcarlson/elm-pseudorandom/1.0.3/artifacts.dat +0 -0
- package/.elm/0.19.1/packages/jxxcarlson/elm-pseudorandom/1.0.3/docs.json +0 -1
- package/.elm/0.19.1/packages/lock +0 -0
- package/.elm/0.19.1/packages/pablohirafuji/elm-qrcode/4.0.2/LICENSE +0 -27
- package/.elm/0.19.1/packages/pablohirafuji/elm-qrcode/4.0.2/README.md +0 -32
- package/.elm/0.19.1/packages/pablohirafuji/elm-qrcode/4.0.2/artifacts.dat +0 -0
- package/.elm/0.19.1/packages/pablohirafuji/elm-qrcode/4.0.2/docs.json +0 -1
- package/.elm/0.19.1/packages/pilatch/flip/1.0.0/LICENSE +0 -25
- package/.elm/0.19.1/packages/pilatch/flip/1.0.0/README.md +0 -14
- package/.elm/0.19.1/packages/pilatch/flip/1.0.0/artifacts.dat +0 -0
- package/.elm/0.19.1/packages/pilatch/flip/1.0.0/docs.json +0 -1
- package/.elm/0.19.1/packages/registry.dat +0 -0
- package/.elm/0.19.1/packages/rtfeldman/elm-hex/1.0.0/LICENSE +0 -29
- package/.elm/0.19.1/packages/rtfeldman/elm-hex/1.0.0/README.md +0 -13
- package/.elm/0.19.1/packages/rtfeldman/elm-hex/1.0.0/artifacts.dat +0 -0
- package/.elm/0.19.1/packages/rtfeldman/elm-hex/1.0.0/docs.json +0 -1
- package/.elm/0.19.1/packages/tesk9/accessible-html/4.1.1/LICENSE +0 -27
- package/.elm/0.19.1/packages/tesk9/accessible-html/4.1.1/README.md +0 -72
- package/.elm/0.19.1/packages/tesk9/accessible-html/4.1.1/artifacts.dat +0 -0
- package/.elm/0.19.1/packages/tesk9/accessible-html/4.1.1/docs.json +0 -1
- package/.elm/0.19.1/packages/truqu/elm-base64/2.0.4/LICENSE +0 -22
- package/.elm/0.19.1/packages/truqu/elm-base64/2.0.4/README.md +0 -27
- package/.elm/0.19.1/packages/truqu/elm-base64/2.0.4/artifacts.dat +0 -0
- package/.elm/0.19.1/packages/truqu/elm-base64/2.0.4/docs.json +0 -1
- package/.elm/0.19.1/packages/truqu/elm-md5/1.1.0/LICENSE +0 -27
- package/.elm/0.19.1/packages/truqu/elm-md5/1.1.0/README.md +0 -34
- package/.elm/0.19.1/packages/truqu/elm-md5/1.1.0/artifacts.dat +0 -0
- package/.elm/0.19.1/packages/truqu/elm-md5/1.1.0/docs.json +0 -1
- package/.elm/0.19.1/packages/zwilias/elm-utf-tools/2.0.1/LICENSE +0 -29
- package/.elm/0.19.1/packages/zwilias/elm-utf-tools/2.0.1/README.md +0 -8
- package/.elm/0.19.1/packages/zwilias/elm-utf-tools/2.0.1/artifacts.dat +0 -0
- package/.elm/0.19.1/packages/zwilias/elm-utf-tools/2.0.1/docs.json +0 -1
- package/dist/index.270309fa.js +0 -1
- package/dist/index.2b67d179.js +0 -1
- package/dist/index.3d681c84.js +0 -1
- package/dist/index.72230c64.css +0 -1
- package/dist/index.d57ed7b9.js +0 -1
|
@@ -1,373 +0,0 @@
|
|
|
1
|
-
Mozilla Public License Version 2.0
|
|
2
|
-
==================================
|
|
3
|
-
|
|
4
|
-
1. Definitions
|
|
5
|
-
--------------
|
|
6
|
-
|
|
7
|
-
1.1. "Contributor"
|
|
8
|
-
means each individual or legal entity that creates, contributes to
|
|
9
|
-
the creation of, or owns Covered Software.
|
|
10
|
-
|
|
11
|
-
1.2. "Contributor Version"
|
|
12
|
-
means the combination of the Contributions of others (if any) used
|
|
13
|
-
by a Contributor and that particular Contributor's Contribution.
|
|
14
|
-
|
|
15
|
-
1.3. "Contribution"
|
|
16
|
-
means Covered Software of a particular Contributor.
|
|
17
|
-
|
|
18
|
-
1.4. "Covered Software"
|
|
19
|
-
means Source Code Form to which the initial Contributor has attached
|
|
20
|
-
the notice in Exhibit A, the Executable Form of such Source Code
|
|
21
|
-
Form, and Modifications of such Source Code Form, in each case
|
|
22
|
-
including portions thereof.
|
|
23
|
-
|
|
24
|
-
1.5. "Incompatible With Secondary Licenses"
|
|
25
|
-
means
|
|
26
|
-
|
|
27
|
-
(a) that the initial Contributor has attached the notice described
|
|
28
|
-
in Exhibit B to the Covered Software; or
|
|
29
|
-
|
|
30
|
-
(b) that the Covered Software was made available under the terms of
|
|
31
|
-
version 1.1 or earlier of the License, but not also under the
|
|
32
|
-
terms of a Secondary License.
|
|
33
|
-
|
|
34
|
-
1.6. "Executable Form"
|
|
35
|
-
means any form of the work other than Source Code Form.
|
|
36
|
-
|
|
37
|
-
1.7. "Larger Work"
|
|
38
|
-
means a work that combines Covered Software with other material, in
|
|
39
|
-
a separate file or files, that is not Covered Software.
|
|
40
|
-
|
|
41
|
-
1.8. "License"
|
|
42
|
-
means this document.
|
|
43
|
-
|
|
44
|
-
1.9. "Licensable"
|
|
45
|
-
means having the right to grant, to the maximum extent possible,
|
|
46
|
-
whether at the time of the initial grant or subsequently, any and
|
|
47
|
-
all of the rights conveyed by this License.
|
|
48
|
-
|
|
49
|
-
1.10. "Modifications"
|
|
50
|
-
means any of the following:
|
|
51
|
-
|
|
52
|
-
(a) any file in Source Code Form that results from an addition to,
|
|
53
|
-
deletion from, or modification of the contents of Covered
|
|
54
|
-
Software; or
|
|
55
|
-
|
|
56
|
-
(b) any new file in Source Code Form that contains any Covered
|
|
57
|
-
Software.
|
|
58
|
-
|
|
59
|
-
1.11. "Patent Claims" of a Contributor
|
|
60
|
-
means any patent claim(s), including without limitation, method,
|
|
61
|
-
process, and apparatus claims, in any patent Licensable by such
|
|
62
|
-
Contributor that would be infringed, but for the grant of the
|
|
63
|
-
License, by the making, using, selling, offering for sale, having
|
|
64
|
-
made, import, or transfer of either its Contributions or its
|
|
65
|
-
Contributor Version.
|
|
66
|
-
|
|
67
|
-
1.12. "Secondary License"
|
|
68
|
-
means either the GNU General Public License, Version 2.0, the GNU
|
|
69
|
-
Lesser General Public License, Version 2.1, the GNU Affero General
|
|
70
|
-
Public License, Version 3.0, or any later versions of those
|
|
71
|
-
licenses.
|
|
72
|
-
|
|
73
|
-
1.13. "Source Code Form"
|
|
74
|
-
means the form of the work preferred for making modifications.
|
|
75
|
-
|
|
76
|
-
1.14. "You" (or "Your")
|
|
77
|
-
means an individual or a legal entity exercising rights under this
|
|
78
|
-
License. For legal entities, "You" includes any entity that
|
|
79
|
-
controls, is controlled by, or is under common control with You. For
|
|
80
|
-
purposes of this definition, "control" means (a) the power, direct
|
|
81
|
-
or indirect, to cause the direction or management of such entity,
|
|
82
|
-
whether by contract or otherwise, or (b) ownership of more than
|
|
83
|
-
fifty percent (50%) of the outstanding shares or beneficial
|
|
84
|
-
ownership of such entity.
|
|
85
|
-
|
|
86
|
-
2. License Grants and Conditions
|
|
87
|
-
--------------------------------
|
|
88
|
-
|
|
89
|
-
2.1. Grants
|
|
90
|
-
|
|
91
|
-
Each Contributor hereby grants You a world-wide, royalty-free,
|
|
92
|
-
non-exclusive license:
|
|
93
|
-
|
|
94
|
-
(a) under intellectual property rights (other than patent or trademark)
|
|
95
|
-
Licensable by such Contributor to use, reproduce, make available,
|
|
96
|
-
modify, display, perform, distribute, and otherwise exploit its
|
|
97
|
-
Contributions, either on an unmodified basis, with Modifications, or
|
|
98
|
-
as part of a Larger Work; and
|
|
99
|
-
|
|
100
|
-
(b) under Patent Claims of such Contributor to make, use, sell, offer
|
|
101
|
-
for sale, have made, import, and otherwise transfer either its
|
|
102
|
-
Contributions or its Contributor Version.
|
|
103
|
-
|
|
104
|
-
2.2. Effective Date
|
|
105
|
-
|
|
106
|
-
The licenses granted in Section 2.1 with respect to any Contribution
|
|
107
|
-
become effective for each Contribution on the date the Contributor first
|
|
108
|
-
distributes such Contribution.
|
|
109
|
-
|
|
110
|
-
2.3. Limitations on Grant Scope
|
|
111
|
-
|
|
112
|
-
The licenses granted in this Section 2 are the only rights granted under
|
|
113
|
-
this License. No additional rights or licenses will be implied from the
|
|
114
|
-
distribution or licensing of Covered Software under this License.
|
|
115
|
-
Notwithstanding Section 2.1(b) above, no patent license is granted by a
|
|
116
|
-
Contributor:
|
|
117
|
-
|
|
118
|
-
(a) for any code that a Contributor has removed from Covered Software;
|
|
119
|
-
or
|
|
120
|
-
|
|
121
|
-
(b) for infringements caused by: (i) Your and any other third party's
|
|
122
|
-
modifications of Covered Software, or (ii) the combination of its
|
|
123
|
-
Contributions with other software (except as part of its Contributor
|
|
124
|
-
Version); or
|
|
125
|
-
|
|
126
|
-
(c) under Patent Claims infringed by Covered Software in the absence of
|
|
127
|
-
its Contributions.
|
|
128
|
-
|
|
129
|
-
This License does not grant any rights in the trademarks, service marks,
|
|
130
|
-
or logos of any Contributor (except as may be necessary to comply with
|
|
131
|
-
the notice requirements in Section 3.4).
|
|
132
|
-
|
|
133
|
-
2.4. Subsequent Licenses
|
|
134
|
-
|
|
135
|
-
No Contributor makes additional grants as a result of Your choice to
|
|
136
|
-
distribute the Covered Software under a subsequent version of this
|
|
137
|
-
License (see Section 10.2) or under the terms of a Secondary License (if
|
|
138
|
-
permitted under the terms of Section 3.3).
|
|
139
|
-
|
|
140
|
-
2.5. Representation
|
|
141
|
-
|
|
142
|
-
Each Contributor represents that the Contributor believes its
|
|
143
|
-
Contributions are its original creation(s) or it has sufficient rights
|
|
144
|
-
to grant the rights to its Contributions conveyed by this License.
|
|
145
|
-
|
|
146
|
-
2.6. Fair Use
|
|
147
|
-
|
|
148
|
-
This License is not intended to limit any rights You have under
|
|
149
|
-
applicable copyright doctrines of fair use, fair dealing, or other
|
|
150
|
-
equivalents.
|
|
151
|
-
|
|
152
|
-
2.7. Conditions
|
|
153
|
-
|
|
154
|
-
Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted
|
|
155
|
-
in Section 2.1.
|
|
156
|
-
|
|
157
|
-
3. Responsibilities
|
|
158
|
-
-------------------
|
|
159
|
-
|
|
160
|
-
3.1. Distribution of Source Form
|
|
161
|
-
|
|
162
|
-
All distribution of Covered Software in Source Code Form, including any
|
|
163
|
-
Modifications that You create or to which You contribute, must be under
|
|
164
|
-
the terms of this License. You must inform recipients that the Source
|
|
165
|
-
Code Form of the Covered Software is governed by the terms of this
|
|
166
|
-
License, and how they can obtain a copy of this License. You may not
|
|
167
|
-
attempt to alter or restrict the recipients' rights in the Source Code
|
|
168
|
-
Form.
|
|
169
|
-
|
|
170
|
-
3.2. Distribution of Executable Form
|
|
171
|
-
|
|
172
|
-
If You distribute Covered Software in Executable Form then:
|
|
173
|
-
|
|
174
|
-
(a) such Covered Software must also be made available in Source Code
|
|
175
|
-
Form, as described in Section 3.1, and You must inform recipients of
|
|
176
|
-
the Executable Form how they can obtain a copy of such Source Code
|
|
177
|
-
Form by reasonable means in a timely manner, at a charge no more
|
|
178
|
-
than the cost of distribution to the recipient; and
|
|
179
|
-
|
|
180
|
-
(b) You may distribute such Executable Form under the terms of this
|
|
181
|
-
License, or sublicense it under different terms, provided that the
|
|
182
|
-
license for the Executable Form does not attempt to limit or alter
|
|
183
|
-
the recipients' rights in the Source Code Form under this License.
|
|
184
|
-
|
|
185
|
-
3.3. Distribution of a Larger Work
|
|
186
|
-
|
|
187
|
-
You may create and distribute a Larger Work under terms of Your choice,
|
|
188
|
-
provided that You also comply with the requirements of this License for
|
|
189
|
-
the Covered Software. If the Larger Work is a combination of Covered
|
|
190
|
-
Software with a work governed by one or more Secondary Licenses, and the
|
|
191
|
-
Covered Software is not Incompatible With Secondary Licenses, this
|
|
192
|
-
License permits You to additionally distribute such Covered Software
|
|
193
|
-
under the terms of such Secondary License(s), so that the recipient of
|
|
194
|
-
the Larger Work may, at their option, further distribute the Covered
|
|
195
|
-
Software under the terms of either this License or such Secondary
|
|
196
|
-
License(s).
|
|
197
|
-
|
|
198
|
-
3.4. Notices
|
|
199
|
-
|
|
200
|
-
You may not remove or alter the substance of any license notices
|
|
201
|
-
(including copyright notices, patent notices, disclaimers of warranty,
|
|
202
|
-
or limitations of liability) contained within the Source Code Form of
|
|
203
|
-
the Covered Software, except that You may alter any license notices to
|
|
204
|
-
the extent required to remedy known factual inaccuracies.
|
|
205
|
-
|
|
206
|
-
3.5. Application of Additional Terms
|
|
207
|
-
|
|
208
|
-
You may choose to offer, and to charge a fee for, warranty, support,
|
|
209
|
-
indemnity or liability obligations to one or more recipients of Covered
|
|
210
|
-
Software. However, You may do so only on Your own behalf, and not on
|
|
211
|
-
behalf of any Contributor. You must make it absolutely clear that any
|
|
212
|
-
such warranty, support, indemnity, or liability obligation is offered by
|
|
213
|
-
You alone, and You hereby agree to indemnify every Contributor for any
|
|
214
|
-
liability incurred by such Contributor as a result of warranty, support,
|
|
215
|
-
indemnity or liability terms You offer. You may include additional
|
|
216
|
-
disclaimers of warranty and limitations of liability specific to any
|
|
217
|
-
jurisdiction.
|
|
218
|
-
|
|
219
|
-
4. Inability to Comply Due to Statute or Regulation
|
|
220
|
-
---------------------------------------------------
|
|
221
|
-
|
|
222
|
-
If it is impossible for You to comply with any of the terms of this
|
|
223
|
-
License with respect to some or all of the Covered Software due to
|
|
224
|
-
statute, judicial order, or regulation then You must: (a) comply with
|
|
225
|
-
the terms of this License to the maximum extent possible; and (b)
|
|
226
|
-
describe the limitations and the code they affect. Such description must
|
|
227
|
-
be placed in a text file included with all distributions of the Covered
|
|
228
|
-
Software under this License. Except to the extent prohibited by statute
|
|
229
|
-
or regulation, such description must be sufficiently detailed for a
|
|
230
|
-
recipient of ordinary skill to be able to understand it.
|
|
231
|
-
|
|
232
|
-
5. Termination
|
|
233
|
-
--------------
|
|
234
|
-
|
|
235
|
-
5.1. The rights granted under this License will terminate automatically
|
|
236
|
-
if You fail to comply with any of its terms. However, if You become
|
|
237
|
-
compliant, then the rights granted under this License from a particular
|
|
238
|
-
Contributor are reinstated (a) provisionally, unless and until such
|
|
239
|
-
Contributor explicitly and finally terminates Your grants, and (b) on an
|
|
240
|
-
ongoing basis, if such Contributor fails to notify You of the
|
|
241
|
-
non-compliance by some reasonable means prior to 60 days after You have
|
|
242
|
-
come back into compliance. Moreover, Your grants from a particular
|
|
243
|
-
Contributor are reinstated on an ongoing basis if such Contributor
|
|
244
|
-
notifies You of the non-compliance by some reasonable means, this is the
|
|
245
|
-
first time You have received notice of non-compliance with this License
|
|
246
|
-
from such Contributor, and You become compliant prior to 30 days after
|
|
247
|
-
Your receipt of the notice.
|
|
248
|
-
|
|
249
|
-
5.2. If You initiate litigation against any entity by asserting a patent
|
|
250
|
-
infringement claim (excluding declaratory judgment actions,
|
|
251
|
-
counter-claims, and cross-claims) alleging that a Contributor Version
|
|
252
|
-
directly or indirectly infringes any patent, then the rights granted to
|
|
253
|
-
You by any and all Contributors for the Covered Software under Section
|
|
254
|
-
2.1 of this License shall terminate.
|
|
255
|
-
|
|
256
|
-
5.3. In the event of termination under Sections 5.1 or 5.2 above, all
|
|
257
|
-
end user license agreements (excluding distributors and resellers) which
|
|
258
|
-
have been validly granted by You or Your distributors under this License
|
|
259
|
-
prior to termination shall survive termination.
|
|
260
|
-
|
|
261
|
-
************************************************************************
|
|
262
|
-
* *
|
|
263
|
-
* 6. Disclaimer of Warranty *
|
|
264
|
-
* ------------------------- *
|
|
265
|
-
* *
|
|
266
|
-
* Covered Software is provided under this License on an "as is" *
|
|
267
|
-
* basis, without warranty of any kind, either expressed, implied, or *
|
|
268
|
-
* statutory, including, without limitation, warranties that the *
|
|
269
|
-
* Covered Software is free of defects, merchantable, fit for a *
|
|
270
|
-
* particular purpose or non-infringing. The entire risk as to the *
|
|
271
|
-
* quality and performance of the Covered Software is with You. *
|
|
272
|
-
* Should any Covered Software prove defective in any respect, You *
|
|
273
|
-
* (not any Contributor) assume the cost of any necessary servicing, *
|
|
274
|
-
* repair, or correction. This disclaimer of warranty constitutes an *
|
|
275
|
-
* essential part of this License. No use of any Covered Software is *
|
|
276
|
-
* authorized under this License except under this disclaimer. *
|
|
277
|
-
* *
|
|
278
|
-
************************************************************************
|
|
279
|
-
|
|
280
|
-
************************************************************************
|
|
281
|
-
* *
|
|
282
|
-
* 7. Limitation of Liability *
|
|
283
|
-
* -------------------------- *
|
|
284
|
-
* *
|
|
285
|
-
* Under no circumstances and under no legal theory, whether tort *
|
|
286
|
-
* (including negligence), contract, or otherwise, shall any *
|
|
287
|
-
* Contributor, or anyone who distributes Covered Software as *
|
|
288
|
-
* permitted above, be liable to You for any direct, indirect, *
|
|
289
|
-
* special, incidental, or consequential damages of any character *
|
|
290
|
-
* including, without limitation, damages for lost profits, loss of *
|
|
291
|
-
* goodwill, work stoppage, computer failure or malfunction, or any *
|
|
292
|
-
* and all other commercial damages or losses, even if such party *
|
|
293
|
-
* shall have been informed of the possibility of such damages. This *
|
|
294
|
-
* limitation of liability shall not apply to liability for death or *
|
|
295
|
-
* personal injury resulting from such party's negligence to the *
|
|
296
|
-
* extent applicable law prohibits such limitation. Some *
|
|
297
|
-
* jurisdictions do not allow the exclusion or limitation of *
|
|
298
|
-
* incidental or consequential damages, so this exclusion and *
|
|
299
|
-
* limitation may not apply to You. *
|
|
300
|
-
* *
|
|
301
|
-
************************************************************************
|
|
302
|
-
|
|
303
|
-
8. Litigation
|
|
304
|
-
-------------
|
|
305
|
-
|
|
306
|
-
Any litigation relating to this License may be brought only in the
|
|
307
|
-
courts of a jurisdiction where the defendant maintains its principal
|
|
308
|
-
place of business and such litigation shall be governed by laws of that
|
|
309
|
-
jurisdiction, without reference to its conflict-of-law provisions.
|
|
310
|
-
Nothing in this Section shall prevent a party's ability to bring
|
|
311
|
-
cross-claims or counter-claims.
|
|
312
|
-
|
|
313
|
-
9. Miscellaneous
|
|
314
|
-
----------------
|
|
315
|
-
|
|
316
|
-
This License represents the complete agreement concerning the subject
|
|
317
|
-
matter hereof. If any provision of this License is held to be
|
|
318
|
-
unenforceable, such provision shall be reformed only to the extent
|
|
319
|
-
necessary to make it enforceable. Any law or regulation which provides
|
|
320
|
-
that the language of a contract shall be construed against the drafter
|
|
321
|
-
shall not be used to construe this License against a Contributor.
|
|
322
|
-
|
|
323
|
-
10. Versions of the License
|
|
324
|
-
---------------------------
|
|
325
|
-
|
|
326
|
-
10.1. New Versions
|
|
327
|
-
|
|
328
|
-
Mozilla Foundation is the license steward. Except as provided in Section
|
|
329
|
-
10.3, no one other than the license steward has the right to modify or
|
|
330
|
-
publish new versions of this License. Each version will be given a
|
|
331
|
-
distinguishing version number.
|
|
332
|
-
|
|
333
|
-
10.2. Effect of New Versions
|
|
334
|
-
|
|
335
|
-
You may distribute the Covered Software under the terms of the version
|
|
336
|
-
of the License under which You originally received the Covered Software,
|
|
337
|
-
or under the terms of any subsequent version published by the license
|
|
338
|
-
steward.
|
|
339
|
-
|
|
340
|
-
10.3. Modified Versions
|
|
341
|
-
|
|
342
|
-
If you create software not governed by this License, and you want to
|
|
343
|
-
create a new license for such software, you may create and use a
|
|
344
|
-
modified version of this License if you rename the license and remove
|
|
345
|
-
any references to the name of the license steward (except to note that
|
|
346
|
-
such modified license differs from this License).
|
|
347
|
-
|
|
348
|
-
10.4. Distributing Source Code Form that is Incompatible With Secondary
|
|
349
|
-
Licenses
|
|
350
|
-
|
|
351
|
-
If You choose to distribute Source Code Form that is Incompatible With
|
|
352
|
-
Secondary Licenses under the terms of this version of the License, the
|
|
353
|
-
notice described in Exhibit B of this License must be attached.
|
|
354
|
-
|
|
355
|
-
Exhibit A - Source Code Form License Notice
|
|
356
|
-
-------------------------------------------
|
|
357
|
-
|
|
358
|
-
This Source Code Form is subject to the terms of the Mozilla Public
|
|
359
|
-
License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
360
|
-
file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
361
|
-
|
|
362
|
-
If it is not possible or desirable to put the notice in a particular
|
|
363
|
-
file, then You may include the notice in a location (such as a LICENSE
|
|
364
|
-
file in a relevant directory) where a recipient would be likely to look
|
|
365
|
-
for such a notice.
|
|
366
|
-
|
|
367
|
-
You may add additional accurate notices of copyright ownership.
|
|
368
|
-
|
|
369
|
-
Exhibit B - "Incompatible With Secondary Licenses" Notice
|
|
370
|
-
---------------------------------------------------------
|
|
371
|
-
|
|
372
|
-
This Source Code Form is "Incompatible With Secondary Licenses", as
|
|
373
|
-
defined by the Mozilla Public License, v. 2.0.
|
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
# elm-flate
|
|
2
|
-
|
|
3
|
-
An implementation of [DEFLATE](https://www.ietf.org/rfc/rfc1951.txt) compression.
|
|
4
|
-
|
|
5
|
-
The deflate format is used in common file formats like gzip, png, and woff.
|
|
6
|
-
This package implements vanilla deflate/inflate, as well as gzip and zlib variants.
|
|
7
|
-
It additionally exposes LZ77 compression and the Adler32 and Crc32 checksum algorithms.
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
## Example
|
|
11
|
-
|
|
12
|
-
```elm
|
|
13
|
-
import Bytes exposing (Bytes)
|
|
14
|
-
import Bytes.Encode as Encode
|
|
15
|
-
import Bytes.Decode as Decode
|
|
16
|
-
|
|
17
|
-
text : String
|
|
18
|
-
text =
|
|
19
|
-
"Dyn flam dôve nea"
|
|
20
|
-
|
|
21
|
-
decodeAsString : Bytes -> Maybe String
|
|
22
|
-
decodeAsString buffer =
|
|
23
|
-
let
|
|
24
|
-
decoder = Decode.string (Bytes.width buffer)
|
|
25
|
-
in
|
|
26
|
-
Decode.decode decoder buffer
|
|
27
|
-
|
|
28
|
-
inflate (deflate (Encode.encode (Encode.string text)))
|
|
29
|
-
|> Maybe.andThen decodeAsString
|
|
30
|
-
--> Just "Dyn flam dôve nea"
|
|
31
|
-
```
|
|
32
|
-
|
|
33
|
-
## How does DEFLATE work?
|
|
34
|
-
|
|
35
|
-
The deflate algorithm is a combination of two lossless compression techniques: run-length encoding and huffman codes.
|
|
36
|
-
|
|
37
|
-
**Run-length encoding** tries to find and abstract common sequences in the data. For instance `"aaaaa"` can be represented as `"a"<distance=1, length=4>`: the character `"a"`, and then an instruction to go 1 position back, and read 4 characters from that position. Deflate uses the LZ77 algorithm to find the repeated sequences.
|
|
38
|
-
|
|
39
|
-
**Huffman codes** translate the bytes into a language with shorter words. We pick an alphabet, in this case with the characters `0` and `1`, and generate all the words over that alphabet (e.g. `10`, `110`, `1111`) up to a certain length. Then we map bytes of our data to "words" in our language. The trick is to pick the shortest words for the most common bytes.
|
|
40
|
-
|
|
41
|
-
This is a high-level overview: Huffman codes are more complicated and in deflate they work together with the run-length encoding to be more compact. In any case I hope this gives some background.
|
|
42
|
-
|
|
43
|
-
## Performance
|
|
44
|
-
|
|
45
|
-
The performance of this package is tricky.
|
|
46
|
-
|
|
47
|
-
So you have to think about what is most important to you
|
|
48
|
-
|
|
49
|
-
**The data needs to look like it is deflated, but I don't need compression**
|
|
50
|
-
|
|
51
|
-
In this case raw encoding is the fastest. It performs no compression but produces valid DEFLATE data.
|
|
52
|
-
|
|
53
|
-
```elm
|
|
54
|
-
deflateWithOptions Flate.Raw
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
**I want some compression, but speed is important**
|
|
58
|
-
|
|
59
|
-
You can use the `NoCompression` argument. It skips LZ77 compression, but still uses a huffman code to make the data a little smaller at relatively low cost.
|
|
60
|
-
|
|
61
|
-
```elm
|
|
62
|
-
deflateWithOptions (Flate.Static Flate.NoCompression)
|
|
63
|
-
```
|
|
64
|
-
**I want compression, speed is less important**
|
|
65
|
-
|
|
66
|
-
The default `deflate` will use a dynamic (custom to your data) huffman table and LZ77 compression.
|
|
67
|
-
|
|
68
|
-
```elm
|
|
69
|
-
deflateWithOptions (Flate.Dynamic (Flate.WithWindowSize LZ77.maxWindowSize))
|
|
70
|
-
```
|
|
71
|
-
|
|
72
|
-
## Acknowledgements
|
|
73
|
-
|
|
74
|
-
* The decoder is based on the [libflate](https://docs.rs/libflate/0.1.25/libflate/) rust crate by Takeru Ohta
|
|
75
|
-
* The encoder is based on [tiny-inflate](https://github.com/foliojs/tiny-inflate) written by Devon Govett
|
|
76
|
-
* Which is a JS port of the [tinf](https://bitbucket.org/jibsen/tinf/src/default/) c library by Jørgen Ibsen
|
|
77
|
-
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
[{"name":"Flate","comment":" An implementation of [DEFLATE](https://www.ietf.org/rfc/rfc1951.txt) compression.\n\nThe deflate format is used in common file formats like gzip, png, and woff.\n\n import Bytes exposing (Bytes)\n import Bytes.Encode as Encode\n import Bytes.Decode as Decode\n\n text : String\n text =\n \"Dyn flam dôve nea\"\n\n decodeAsString : Bytes -> Maybe String\n decodeAsString buffer =\n let\n decoder = Decode.string (Bytes.width buffer)\n in\n Decode.decode decoder buffer\n\n inflate (deflate (Encode.encode (Encode.string text)))\n |> Maybe.andThen decodeAsString\n --> Just \"Dyn flam dôve nea\"\n\n@docs deflate, inflate\n\n\n## GZip\n\n@docs deflateGZip, inflateGZip\n\n\n## Zlib\n\n@docs deflateZlib, inflateZlib\n\n\n## Lowlevel Primitives\n\n@docs deflateWithOptions, deflateGZipWithOptions, deflateZlibWithOptions\n@docs Encoding, Compression\n\n\n## Checksums\n\nChecksums are simple hashes that are used to make check that the decoded data is the same as the encoded data.\nThe gzip and zlib formats calculate the checksum over the data they encode, and put the value into the output.\nWhen decoding, the checksum is also calculated for the decoded data. The two values must be the same.\n\n@docs adler32, crc32\n\n","unions":[{"name":"Compression","comment":" The type of compression used\n\n - **NoCompression**: the data will not be compressed. The encoder still can give a smaller file. Use this option if superquick encoding and/or decoding is needed, and output size is less of a concern.\n - **WithWindowSize**: use [LZ77 compression](https://en.wikipedia.org/wiki/LZ77_and_LZ78#LZ77) with the given window size.\n\n**default**: `WithWindowSize LZ77.maxWindowSize`\n\n","args":[],"cases":[["NoCompression",[]],["WithWindowSize",["Basics.Int"]]]},{"name":"Encoding","comment":" The type of encoding used\n\n - **Raw**: puts the raw bytes into the output. The output is a bit larger, but it is now a valid zip/gzip/zlib compressed byte stream.\n - **Static**: uses a default huffman table to shorten the input. Good for very short messages, or messages with a lot of simple repetition, because the table is not included.\n - **Dynamic**: calculates an optimal huffman table for the specific input it is given. This table must be included in the output, but the result can be much smaller than with the static table.\n\n**default**: `Dynamic`\n\n","args":[],"cases":[["Raw",[]],["Dynamic",["Flate.Compression"]],["Static",["Flate.Compression"]]]}],"aliases":[],"values":[{"name":"adler32","comment":" The adler32 checksum.\nUsed in zlib. Faster than crc32, but also less reliable (larger chance of collisions).\n","type":"Bytes.Bytes -> Basics.Int"},{"name":"crc32","comment":" The crc32 checksum.\nUsed in gzip. Slower than adler32, but also more reliable (smaller chance of collisions).\n","type":"Bytes.Bytes -> Basics.Int"},{"name":"deflate","comment":" Deflate a sequence of bytes. This is an alias for:\n\n deflateWithOptions\n (Dynamic (WithWindowSize LZ77.maxWindowSize))\n\nThat means good compression, but can be slow for large data.\nThe README elaborates on deflate performance. `deflateWithOptions` allows you to pick different deflate options.\n\n","type":"Bytes.Bytes -> Bytes.Bytes"},{"name":"deflateGZip","comment":" Deflate with the [gzip](https://tools.ietf.org/html/rfc1952) format\n\n**Note**: the gzip header and trailer are not customizable in the current version.\n\n","type":"Bytes.Bytes -> Bytes.Bytes"},{"name":"deflateGZipWithOptions","comment":" ","type":"Flate.Encoding -> Bytes.Bytes -> Bytes.Bytes"},{"name":"deflateWithOptions","comment":" Deflate a sequence of bytes\n\n import LZ77\n import Bytes\n\n data : Bytes.Bytes\n data =\n Encode.encode (Encode.string \"foo\")\n\n deflateWithOptions Raw data\n --> [1,3,0,252,-1,102,111,111]\n\n\n deflateWithOptions (Static NoCompression) data\n --> [75,203,207,7,0]\n\n\n deflateWithOptions (Dynamic (WithWindowSize LZ77.maxWindowSize)) data\n --> [5,192,33,1,0,0,0,128,-96,183,86,254,55,137,1]\n\n","type":"Flate.Encoding -> Bytes.Bytes -> Bytes.Bytes"},{"name":"deflateZlib","comment":" Deflate with the [zlib](https://www.ietf.org/rfc/rfc1950.txt) format\n\n**Note**: the zlib header and trailer are not customizable in the current version.\n\n","type":"Bytes.Bytes -> Bytes.Bytes"},{"name":"deflateZlibWithOptions","comment":" ","type":"Flate.Encoding -> Bytes.Bytes -> Bytes.Bytes"},{"name":"inflate","comment":" Inflate (decode) data encoded with DEFLATE\n","type":"Bytes.Bytes -> Maybe.Maybe Bytes.Bytes"},{"name":"inflateGZip","comment":" Inflate data compressed with gzip.\ngzip adds some extra data at the front and the back. This decoder will take care of that and also check the checksum if specified.\n\n**Note**: this only gives back the inflated data block. The header and trailer parts are discarded, but checksums (if specified) will be checked.\n\n","type":"Bytes.Bytes -> Maybe.Maybe Bytes.Bytes"},{"name":"inflateZlib","comment":" Inflate data compressed with [zlib](http://www.zlib.net/).\nzlib adds some extra data at the front and the back. This decoder will take care of that and also check the checksum if specified.\n\n**Note**: this only gives back the inflated data block. The header and trailer parts are discarded, but checksums (if specified) are checked.\n\n","type":"Bytes.Bytes -> Maybe.Maybe Bytes.Bytes"}],"binops":[]},{"name":"LZ77","comment":" LZ77 finds sequences of bytes that occur multiple times, and stores them only once:\n\n LZ77.encode (Encode.encode (Encode.string \"aaaaa\"))\n --> [ Literal 97, Pointer 4 1 ]\n\nThe character `a` occurs 5 times, which is encoded as:\n\n - the byte 97 (the ascii code for `a`)\n - go back 1 position and read 4 bytes there, putting them onto the end of the stream\n\nNote that the pointer tries to read 4 bytes, even though the output stream at that point only has length 1. This is fine: the elements are copied over one by one.\nThe general concept behind this kind of compression is [run-length encoding](https://en.wikipedia.org/wiki/Run-length_encoding).\n\n@docs encode, decode\n@docs Code\n@docs encodeWithOptions, maxWindowSize\n\n","unions":[{"name":"Code","comment":" The codes\n\n - **Literal**: A byte value\n - **Pointer length distance**: Go `distance` positions back and read `length` bytes. put the read bytes at the end of the output stream.\n\n","args":[],"cases":[["Literal",["Basics.Int"]],["Pointer",["Basics.Int","Basics.Int"]]]}],"aliases":[],"values":[{"name":"decode","comment":" Decode using the LZ77 encoding\n","type":"Array.Array LZ77.Code -> Bytes.Bytes"},{"name":"encode","comment":" Encode using the LZ77 encoding\n","type":"Bytes.Bytes -> Array.Array LZ77.Code"},{"name":"encodeWithOptions","comment":" Encode using the LZ77 encoding, with additional options.\n\n - **window size**: The window size is an how far back a `Pointer` can jump. A bigger window size gives better compression, but requires more data in memory.\n That is almost never a problem nowadays though, so `encode` uses the maximum window size that LZ77 supports.\n\n> **Note**: decreasing the window size doesn't change the performance that much in elm. The bottleneck is in keeping track of matches in a large array, and the size of that array is constant.\n\n","type":"{ windowSize : Basics.Int } -> Bytes.Bytes -> Array.Array LZ77.Code"},{"name":"maxWindowSize","comment":" Maximum size of a sliding window.\n","type":"Basics.Int"}],"binops":[]}]
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
Copyright (c) 2020-present, Romāns Potašovs. All rights reserved.
|
|
2
|
-
|
|
3
|
-
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
|
|
4
|
-
|
|
5
|
-
1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
|
|
6
|
-
2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
|
|
7
|
-
3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
|
|
8
|
-
|
|
9
|
-
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
@@ -1,112 +0,0 @@
|
|
|
1
|
-
[](https://travis-ci.org/justgook/elm-image)
|
|
2
|
-
|
|
3
|
-
A library for building base64 encoded images in elm
|
|
4
|
-
|
|
5
|
-
## Motivation
|
|
6
|
-
|
|
7
|
-
[WebGL for Elm](https://package.elm-lang.org/packages/elm-explorations/webgl/latest/) do not support arrays, so I need to build lookup tables for that, to prevent doing it in preprocess was created this library that can convert matrix (`List Int`) into image, and then used in shader ([Example3](#example3)).
|
|
8
|
-
|
|
9
|
-
## Usage
|
|
10
|
-
|
|
11
|
-
### Encoding
|
|
12
|
-
|
|
13
|
-
Package provides tools for encoding elm data types into [`Image`][Image]:
|
|
14
|
-
- `List Pixel`
|
|
15
|
-
- `List (List Pixel)`
|
|
16
|
-
- `Array Pixel`
|
|
17
|
-
- `Array (Array Pixel)`
|
|
18
|
-
|
|
19
|
-
> Where each `Pixel` is 4 channel color is `Int` (`0xRRGGBBAA`)
|
|
20
|
-
|
|
21
|
-
Other way is use [`avh4/elm-color#Color`][elm-color]:
|
|
22
|
-
- `List Color`
|
|
23
|
-
- `List (List Color)`
|
|
24
|
-
- `Array Color`
|
|
25
|
-
- `Array (Array Color)`
|
|
26
|
-
|
|
27
|
-
[`Image`][Image] can be encoded into `Bytes` with [`Image.toPng`](Image#Image.toPng) or [`Image.toBmp`](Image#Image.toBmp) or directly to base64-url ([`Image.toPngUrl`](Image#toPngUrl) or [`Image.toBmpUrl`](Image.toBmpUrl)) that can be used directly in `img [src]` ([Example1](#example1)).
|
|
28
|
-
|
|
29
|
-
You can find [package][package] to use in your project and [Demo][demo].
|
|
30
|
-
|
|
31
|
-
### Decoding
|
|
32
|
-
|
|
33
|
-
Package can take `Bytes` of png or bmp image (even those that some browsers can not display), and decode them to [`Image`][Image] ([Example2](#example2))
|
|
34
|
-
|
|
35
|
-
Use case:
|
|
36
|
-
- get image [dimensions](Image#dimensions), without rendering image
|
|
37
|
-
- [mirror](Image-Magic#mirror) image
|
|
38
|
-
- crop image (coming soon)
|
|
39
|
-
- change / update / remove color using [`Image.Advanced.map`](Image-Advanced#map)
|
|
40
|
-
- get image header inf (format, color, size..) [`Image.Advanced.info`](Image-Advanced#info)
|
|
41
|
-
- convert image from one format ot other
|
|
42
|
-
|
|
43
|
-
[package]: https://package.elm-lang.org/packages/justgook/elm-image/latest/
|
|
44
|
-
[demo]: https://justgook.github.io/elm-image/
|
|
45
|
-
[Image]: Image#Image
|
|
46
|
-
[elm-color]: https://package.elm-lang.org/packages/avh4/elm-color/latest/
|
|
47
|
-
|
|
48
|
-
## Example1
|
|
49
|
-
|
|
50
|
-
Data to image
|
|
51
|
-
|
|
52
|
-
```elm
|
|
53
|
-
import Base64
|
|
54
|
-
import Html exposing (img)
|
|
55
|
-
import Html.Attributes exposing (src)
|
|
56
|
-
import Image
|
|
57
|
-
import Image.Data as Image exposing (Image)
|
|
58
|
-
import Image.Options
|
|
59
|
-
|
|
60
|
-
main =
|
|
61
|
-
let
|
|
62
|
-
imageData : Image
|
|
63
|
-
imageData =
|
|
64
|
-
Image.fromList2d
|
|
65
|
-
[ List.repeat 4 0xFFFF
|
|
66
|
-
, List.repeat 4 0xFF0000FF
|
|
67
|
-
, List.repeat 4 0xFFFF
|
|
68
|
-
, List.repeat 2 0x00FFFFFF
|
|
69
|
-
]
|
|
70
|
-
|
|
71
|
-
pngEncodeBase64Url =
|
|
72
|
-
Image.toPngUrl imageData
|
|
73
|
-
|
|
74
|
-
in
|
|
75
|
-
img [ src pngEncodeBase64Url ] []
|
|
76
|
-
```
|
|
77
|
-
|
|
78
|
-
## Example2
|
|
79
|
-
|
|
80
|
-
Getting image from server
|
|
81
|
-
|
|
82
|
-
```elm
|
|
83
|
-
import Http
|
|
84
|
-
|
|
85
|
-
type Msg
|
|
86
|
-
= GotImage (Result Http.Error (Maybe Image))
|
|
87
|
-
|
|
88
|
-
getImage : Cmd Msg
|
|
89
|
-
getImage =
|
|
90
|
-
Http.get
|
|
91
|
-
{ url = "/image.png"
|
|
92
|
-
, expect = Http.expectBytes GotImage Image.decode
|
|
93
|
-
}
|
|
94
|
-
```
|
|
95
|
-
## Example3
|
|
96
|
-
|
|
97
|
-
Create texture using base64 encoded image and load it as [`Texture`](https://package.elm-lang.org/packages/elm-explorations/webgl/latest/WebGL-Texture#load)
|
|
98
|
-
```elm
|
|
99
|
-
textureTask = WebGL.Texture.load pngEncodeBase64Url
|
|
100
|
-
-- then use resulting texture as lookup table
|
|
101
|
-
```
|
|
102
|
-
|
|
103
|
-
You can use simple function to get data from lookup table, where `color` is pixel color from just created texture
|
|
104
|
-
```glsl
|
|
105
|
-
float color2float(vec4 color) {
|
|
106
|
-
return
|
|
107
|
-
color.a * 255.0
|
|
108
|
-
+ color.b * 256.0 * 255.0
|
|
109
|
-
+ color.g * 256.0 * 256.0 * 255.0
|
|
110
|
-
+ color.r * 256.0 * 256.0 * 256.0 * 255.0;
|
|
111
|
-
}
|
|
112
|
-
```
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
[{"name":"Image","comment":"\n\n@docs Image\n\n\n# Decoding\n\n@docs decode\n\n\n# Encoding\n\n@docs toPng, toBmp, toGif, toPngUrl, toBmpUrl, toGifUrl\n\n\n# Construct\n\n@docs fromList, fromList2d, fromArray, fromArray2d\n\n\n# Destruct\n\n@docs toList, toList2d, toArray, toArray2d\n\n\n# Meta Data\n\n@docs dimensions\n\n\n# Helper Types\n\n@docs Pixel, Width, Height\n\n","unions":[],"aliases":[{"name":"Height","comment":" ","args":[],"type":"Basics.Int"},{"name":"Image","comment":" Data Model representing Image data, that can be used to create image, or convert primitives to use image pixels as data\n","args":[],"type":"Image.Internal.ImageData.Image"},{"name":"Pixel","comment":" Color encoded as `0xRRGGBBAA`\n","args":[],"type":"Basics.Int"},{"name":"Width","comment":" ","args":[],"type":"Basics.Int"}],"values":[{"name":"decode","comment":" Convert blob of image (`png` or `bmp`) into [`Image`](#Image)\n\n import Http\n\n type Msg\n = GotImage (Result Http.Error (Maybe Image))\n\n getImage : Cmd Msg\n getImage =\n Http.get\n { url = \"/image.png\"\n , expect = Http.expectBytes GotImage Image.decode\n }\n\n","type":"Bytes.Bytes -> Maybe.Maybe Image.Image"},{"name":"dimensions","comment":" Get `width` and `height` of [`Image`](#Image)\n","type":"Image.Image -> { width : Basics.Int, height : Basics.Int }"},{"name":"fromArray","comment":" Create [`Image`](#Image) of `Array Int` where each `Pixel` is `Int` as `0xRRGGBBAA`\n","type":"Image.Width -> Array.Array Image.Pixel -> Image.Image"},{"name":"fromArray2d","comment":" Create [`Image`](#Image) of `Array (Array Pixel)` where each `Pixel` is `Int` as `0xRRGGBBAA`\n","type":"Array.Array (Array.Array Image.Pixel) -> Image.Image"},{"name":"fromList","comment":" Create [`Image`](#Image) of `List Int` where each `Pixel` is `Int` as `0xRRGGBBAA`\n","type":"Image.Width -> List.List Image.Pixel -> Image.Image"},{"name":"fromList2d","comment":" Create [`Image`](#Image) of `List (List Int)` where each `Pixel` is `Int` as `0xRRGGBBAA`\n","type":"List.List (List.List Image.Pixel) -> Image.Image"},{"name":"toArray","comment":" Take [`Image`](#Image) of and converts it to `Array Pixel` where each `Pixel` is `Int` as `0xRRGGBBAA`\n","type":"Image.Image -> Array.Array Image.Pixel"},{"name":"toArray2d","comment":" Take [`Image`](#Image) of and converts it to matrix `Array (Array Pixel)` where each `Pixel` is `Int` as `0xRRGGBBAA`\n","type":"Image.Image -> Array.Array (Array.Array Image.Pixel)"},{"name":"toBmp","comment":" The BMP file format, also known as bitmap image file or device independent bitmap (DIB) file format or simply a bitmap, is a raster graphics image file format used to store bitmap digital images, independently of the display device (such as a graphics adapter), especially on Microsoft Windows and OS/2 operating systems.\n\n**Note**: Using BMP 32bit is discouraged due to lack of proper support across browsers, so image will be 24bit (no alpha channel)\n\n","type":"Image.Image -> Bytes.Bytes"},{"name":"toBmpUrl","comment":" Create base64-url that can be used directly as img source (`img [ src <| toBmpUrl myImage ]`)\n","type":"Image.Image -> String.String"},{"name":"toGif","comment":" The Graphics Interchange Format (GIF)\n\nPalette based image with support of animation (not implemented), Transparency (totally transparent color - use 0x00)\n\n","type":"Image.Image -> Bytes.Bytes"},{"name":"toGifUrl","comment":" Create base64-url that can be used directly as img source (`img [ src <| toGifUrl myImage ]`)\n","type":"Image.Image -> String.String"},{"name":"toList","comment":" Take [`Image`](#Image) of and converts it to `List Pixel` where each `Pixel` is `Int` as `0xRRGGBBAA`\n","type":"Image.Image -> List.List Image.Pixel"},{"name":"toList2d","comment":" Take [`Image`](#Image) of and converts it to matrix `List (List Pixel)` where each `Pixel` is `Int` as `0xRRGGBBAA`\n","type":"Image.Image -> List.List (List.List Image.Pixel)"},{"name":"toPng","comment":" Portable Network Graphics (PNG) is a raster-graphics file-format that supports lossless data compression. PNG was developed as an improved, non-patented replacement for Graphics Interchange Format (GIF).\n\nPNG supports palette-based images (with palettes of 24-bit RGB or 32-bit RGBA colors), grayscale images (with or without alpha channel for transparency), and full-color non-palette-based RGB images (with or without alpha channel).\n\n","type":"Image.Image -> Bytes.Bytes"},{"name":"toPngUrl","comment":" Create base64-url that can be used directly as img source (`img [ src <| toPngUrl myImage ]`)\n","type":"Image.Image -> String.String"}],"binops":[]},{"name":"Image.Advanced","comment":"\n\n\n# Image Info\n\n@docs source, Source\n\n\n# Manipulations\n\n@docs map, get, put, eval, mirror\n\n\n# Custom Encoding\n\n@docs toPng32\n@docs toBmp24, toBmp32\n@docs toGIF89a\n\n","unions":[{"name":"Source","comment":" Possible image decoded type\n","args":[],"cases":[["Png",[]],["Bmp",[]],["Gif",[]],["Code",[]]]}],"aliases":[],"values":[{"name":"eval","comment":" When decoding images they are decoded in _lazy way_ (real decoding is postponed until data is needed)\nthis function evaluates postponed decode, useful if you need to encode multiple images from same source.\n","type":"Image.Internal.ImageData.Image -> Image.Internal.ImageData.Image"},{"name":"get","comment":" Returns an `Image` representing the underlying pixel data for a specified portion of the `Image`.\n\n region =\n Image.get sx sy sw sh image\n\n - `sx` The x-axis coordinate of the top-left corner of the rectangle from which the `Image` will be extracted.\n - `sy` The y-axis coordinate of the top-left corner of the rectangle from which the `Image` will be extracted.\n - `sw` The width of the rectangle from which the `Image` will be extracted. Positive values are to the right, and negative to the left.\n - `sh` The height of the rectangle from which the `Image` will be extracted. Positive values are down, and negative are up.\n - `image` The source image to select pixels from.\n - `region` An `Image` containing the image data for the rectangle of the `image` specified.\n The coordinates of the rectangle's top-left corner are (`sx`, `sy`), while the coordinates of the bottom corner are (`sx` + `sw`, `sy` + `sh`).\n\n","type":"Basics.Int -> Basics.Int -> Basics.Int -> Basics.Int -> Image.Internal.ImageData.Image -> Image.Internal.ImageData.Image"},{"name":"map","comment":" Apply a function on every pixel in an image.\n","type":"(Basics.Int -> Basics.Int) -> Image.Internal.ImageData.Image -> Image.Internal.ImageData.Image"},{"name":"mirror","comment":" Mirror image horizontally or/and vertically\n\n newImage =\n Image.mirror x y image\n\n","type":"Basics.Bool -> Basics.Bool -> Image.Internal.ImageData.Image -> Image.Internal.ImageData.Image"},{"name":"put","comment":" Paints data from the given `Image` onto the other `Image`.\n\n newImage =\n Image.put dx dy imageFrom imageTo\n\n - `imageData` An `Image` containing the array of pixel values.\n - `dx` Horizontal position (x coordinate) at which to place the image data in the destination `Image`.\n - `dy` Vertical position (y coordinate) at which to place the image data in the destination `Image`.\n\n","type":"Basics.Int -> Basics.Int -> Image.Internal.ImageData.Image -> Image.Internal.ImageData.Image -> Image.Internal.ImageData.Image"},{"name":"source","comment":" Get image type\n","type":"Image.Internal.ImageData.Image -> Image.Advanced.Source"},{"name":"toBmp24","comment":" Encode image into BMP24\n","type":"Image.Internal.ImageData.Image -> Bytes.Bytes"},{"name":"toBmp32","comment":" Encode image into BMP32\n\n**Note**: Using BMP 32bit is discouraged due to lack of proper support across browsers\n\n","type":"Image.Internal.ImageData.Image -> Bytes.Bytes"},{"name":"toGIF89a","comment":" Encode image into GIF89a\n\n**Note**:\n\n1. Gif supports only 256 colors in palette - if image have more that 256 colors, all colors that exceed 256 will become first color in palette\n2. Gif supports only fully transparent color, all colors that isn't fully transparent (alpha > 0) will be flatted to it color\n\n","type":"Image.Internal.ImageData.Image -> Bytes.Bytes"},{"name":"toPng32","comment":" Encode image into True color with alpha PNG image\n","type":"Image.Internal.ImageData.Image -> Bytes.Bytes"}],"binops":[]},{"name":"Image.Color","comment":" Same as main functions only instead of `Int` uses `Color` (`avh4/elm-color`) to represent pixel\n\n\n# Construct\n\n@docs fromList, fromList2d, fromArray, fromArray2d\n\n\n# Destruct\n\n@docs toList, toList2d, toArray, toArray2d\n\n","unions":[],"aliases":[],"values":[{"name":"fromArray","comment":" Create [`Image`](#Image) of `Array Int` where each `Color` is pixel\n","type":"Image.Width -> Array.Array Color.Color -> Image.Internal.ImageData.Image"},{"name":"fromArray2d","comment":" Create [`Image`](#Image) of `Array (Array Int)` where each `Color` is pixel\n","type":"Array.Array (Array.Array Color.Color) -> Image.Internal.ImageData.Image"},{"name":"fromList","comment":" Create [`Image`](Image#Image) of `List Color` where each `Color` is pixel\n","type":"Image.Width -> List.List Color.Color -> Image.Internal.ImageData.Image"},{"name":"fromList2d","comment":" Create [`Image`](#Image) of `List (List Int)` where each `Color` is pixel\n","type":"List.List (List.List Color.Color) -> Image.Internal.ImageData.Image"},{"name":"toArray","comment":" Take [`Image`](#Image) of and converts it to `Array Int` where each `Color` is pixel\n","type":"Image.Internal.ImageData.Image -> Array.Array Color.Color"},{"name":"toArray2d","comment":" Take [`Image`](#Image) of and converts it to matrix `Array (Array Int)` where each `Color` is pixel\n","type":"Image.Internal.ImageData.Image -> Array.Array (Array.Array Color.Color)"},{"name":"toList","comment":" Take [`Image`](#Image) of and converts it to `List Int` where each `Color` is pixel\n","type":"Image.Internal.ImageData.Image -> List.List Color.Color"},{"name":"toList2d","comment":" Take [`Image`](#Image) of and converts it to matrix `List (List Int)` where each `Color` is pixel\n","type":"Image.Internal.ImageData.Image -> List.List (List.List Color.Color)"}],"binops":[]}]
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
Copyright 2019 James A. Carlson
|
|
2
|
-
|
|
3
|
-
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
|
|
4
|
-
|
|
5
|
-
1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
|
|
6
|
-
|
|
7
|
-
2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
|
|
8
|
-
|
|
9
|
-
3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
|
|
10
|
-
|
|
11
|
-
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|