llaminate 0.1.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/.gitattributes +2 -0
- package/LICENSE +21 -0
- package/README.md +95 -0
- package/assets/llaminate-256.webp +0 -0
- package/assets/llaminate.jpg +0 -0
- package/assets/llaminate.webp +0 -0
- package/dist/build-info.json +5 -0
- package/dist/config.schema.json +126 -0
- package/dist/llaminate.d.ts +202 -0
- package/dist/llaminate.min.js +9 -0
- package/dist/llaminate.min.js.map +1 -0
- package/dist/ratelimiter.d.ts +33 -0
- package/dist/ratelimiter.min.js +7 -0
- package/dist/ratelimiter.min.js.map +1 -0
- package/dist/system.hbs +3 -0
- package/docs/LICENSE +21 -0
- package/docs/Llaminate.html +1040 -0
- package/docs/Llaminate.module_Endpoints.html +278 -0
- package/docs/Llaminate.module_Llaminate.html +200 -0
- package/docs/Llaminate.module_MimeTypes.html +275 -0
- package/docs/LlaminateConfig.html +667 -0
- package/docs/LlaminateMessage.html +328 -0
- package/docs/LlaminateResponse.html +253 -0
- package/docs/assets/llaminate-256.webp +0 -0
- package/docs/fonts/OpenSans-Bold-webfont.eot +0 -0
- package/docs/fonts/OpenSans-Bold-webfont.svg +1830 -0
- package/docs/fonts/OpenSans-Bold-webfont.woff +0 -0
- package/docs/fonts/OpenSans-BoldItalic-webfont.eot +0 -0
- package/docs/fonts/OpenSans-BoldItalic-webfont.svg +1830 -0
- package/docs/fonts/OpenSans-BoldItalic-webfont.woff +0 -0
- package/docs/fonts/OpenSans-Italic-webfont.eot +0 -0
- package/docs/fonts/OpenSans-Italic-webfont.svg +1830 -0
- package/docs/fonts/OpenSans-Italic-webfont.woff +0 -0
- package/docs/fonts/OpenSans-Light-webfont.eot +0 -0
- package/docs/fonts/OpenSans-Light-webfont.svg +1831 -0
- package/docs/fonts/OpenSans-Light-webfont.woff +0 -0
- package/docs/fonts/OpenSans-LightItalic-webfont.eot +0 -0
- package/docs/fonts/OpenSans-LightItalic-webfont.svg +1835 -0
- package/docs/fonts/OpenSans-LightItalic-webfont.woff +0 -0
- package/docs/fonts/OpenSans-Regular-webfont.eot +0 -0
- package/docs/fonts/OpenSans-Regular-webfont.svg +1831 -0
- package/docs/fonts/OpenSans-Regular-webfont.woff +0 -0
- package/docs/index.html +142 -0
- package/docs/scripts/linenumber.js +25 -0
- package/docs/scripts/prettify/Apache-License-2.0.txt +202 -0
- package/docs/scripts/prettify/lang-css.js +2 -0
- package/docs/scripts/prettify/prettify.js +28 -0
- package/docs/styles/jsdoc-default.css +358 -0
- package/docs/styles/prettify-jsdoc.css +111 -0
- package/docs/styles/prettify-tomorrow.css +132 -0
- package/jsdoc.json +23 -0
- package/package.json +38 -0
- package/scripts/build.sh +21 -0
- package/scripts/docs.sh +28 -0
- package/scripts/prebuild.js +43 -0
- package/scripts/prepare.sh +11 -0
- package/scripts/pretest.js +14 -0
- package/src/config.schema.json +126 -0
- package/src/llaminate.d.ts +99 -0
- package/src/llaminate.ts +1326 -0
- package/src/llaminate.types.js +176 -0
- package/src/ratelimiter.ts +95 -0
- package/src/system.hbs +3 -0
- package/tests/attachments.test.js +66 -0
- package/tests/common/base64.js +13 -0
- package/tests/common/matches.js +69 -0
- package/tests/common/setup.js +45 -0
- package/tests/complete.test.js +27 -0
- package/tests/extensions/toMatchSchema.js +20 -0
- package/tests/history.test.js +86 -0
- package/tests/stream.test.js +67 -0
- package/tsconfig.json +12 -0
|
@@ -0,0 +1,358 @@
|
|
|
1
|
+
@font-face {
|
|
2
|
+
font-family: 'Open Sans';
|
|
3
|
+
font-weight: normal;
|
|
4
|
+
font-style: normal;
|
|
5
|
+
src: url('../fonts/OpenSans-Regular-webfont.eot');
|
|
6
|
+
src:
|
|
7
|
+
local('Open Sans'),
|
|
8
|
+
local('OpenSans'),
|
|
9
|
+
url('../fonts/OpenSans-Regular-webfont.eot?#iefix') format('embedded-opentype'),
|
|
10
|
+
url('../fonts/OpenSans-Regular-webfont.woff') format('woff'),
|
|
11
|
+
url('../fonts/OpenSans-Regular-webfont.svg#open_sansregular') format('svg');
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
@font-face {
|
|
15
|
+
font-family: 'Open Sans Light';
|
|
16
|
+
font-weight: normal;
|
|
17
|
+
font-style: normal;
|
|
18
|
+
src: url('../fonts/OpenSans-Light-webfont.eot');
|
|
19
|
+
src:
|
|
20
|
+
local('Open Sans Light'),
|
|
21
|
+
local('OpenSans Light'),
|
|
22
|
+
url('../fonts/OpenSans-Light-webfont.eot?#iefix') format('embedded-opentype'),
|
|
23
|
+
url('../fonts/OpenSans-Light-webfont.woff') format('woff'),
|
|
24
|
+
url('../fonts/OpenSans-Light-webfont.svg#open_sanslight') format('svg');
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
html
|
|
28
|
+
{
|
|
29
|
+
overflow: auto;
|
|
30
|
+
background-color: #fff;
|
|
31
|
+
font-size: 14px;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
body
|
|
35
|
+
{
|
|
36
|
+
font-family: 'Open Sans', sans-serif;
|
|
37
|
+
line-height: 1.5;
|
|
38
|
+
color: #4d4e53;
|
|
39
|
+
background-color: white;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
a, a:visited, a:active {
|
|
43
|
+
color: #0095dd;
|
|
44
|
+
text-decoration: none;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
a:hover {
|
|
48
|
+
text-decoration: underline;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
header
|
|
52
|
+
{
|
|
53
|
+
display: block;
|
|
54
|
+
padding: 0px 4px;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
tt, code, kbd, samp {
|
|
58
|
+
font-family: Consolas, Monaco, 'Andale Mono', monospace;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
.class-description {
|
|
62
|
+
font-size: 130%;
|
|
63
|
+
line-height: 140%;
|
|
64
|
+
margin-bottom: 1em;
|
|
65
|
+
margin-top: 1em;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
.class-description:empty {
|
|
69
|
+
margin: 0;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
#main {
|
|
73
|
+
float: left;
|
|
74
|
+
width: 70%;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
article dl {
|
|
78
|
+
margin-bottom: 40px;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
article img {
|
|
82
|
+
max-width: 100%;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
section
|
|
86
|
+
{
|
|
87
|
+
display: block;
|
|
88
|
+
background-color: #fff;
|
|
89
|
+
padding: 12px 24px;
|
|
90
|
+
border-bottom: 1px solid #ccc;
|
|
91
|
+
margin-right: 30px;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
.variation {
|
|
95
|
+
display: none;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
.signature-attributes {
|
|
99
|
+
font-size: 60%;
|
|
100
|
+
color: #aaa;
|
|
101
|
+
font-style: italic;
|
|
102
|
+
font-weight: lighter;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
nav
|
|
106
|
+
{
|
|
107
|
+
display: block;
|
|
108
|
+
float: right;
|
|
109
|
+
margin-top: 28px;
|
|
110
|
+
width: 30%;
|
|
111
|
+
box-sizing: border-box;
|
|
112
|
+
border-left: 1px solid #ccc;
|
|
113
|
+
padding-left: 16px;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
nav ul {
|
|
117
|
+
font-family: 'Lucida Grande', 'Lucida Sans Unicode', arial, sans-serif;
|
|
118
|
+
font-size: 100%;
|
|
119
|
+
line-height: 17px;
|
|
120
|
+
padding: 0;
|
|
121
|
+
margin: 0;
|
|
122
|
+
list-style-type: none;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
nav ul a, nav ul a:visited, nav ul a:active {
|
|
126
|
+
font-family: Consolas, Monaco, 'Andale Mono', monospace;
|
|
127
|
+
line-height: 18px;
|
|
128
|
+
color: #4D4E53;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
nav h3 {
|
|
132
|
+
margin-top: 12px;
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
nav li {
|
|
136
|
+
margin-top: 6px;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
footer {
|
|
140
|
+
display: block;
|
|
141
|
+
padding: 6px;
|
|
142
|
+
margin-top: 12px;
|
|
143
|
+
font-style: italic;
|
|
144
|
+
font-size: 90%;
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
h1, h2, h3, h4 {
|
|
148
|
+
font-weight: 200;
|
|
149
|
+
margin: 0;
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
h1
|
|
153
|
+
{
|
|
154
|
+
font-family: 'Open Sans Light', sans-serif;
|
|
155
|
+
font-size: 48px;
|
|
156
|
+
letter-spacing: -2px;
|
|
157
|
+
margin: 12px 24px 20px;
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
h2, h3.subsection-title
|
|
161
|
+
{
|
|
162
|
+
font-size: 30px;
|
|
163
|
+
font-weight: 700;
|
|
164
|
+
letter-spacing: -1px;
|
|
165
|
+
margin-bottom: 12px;
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
h3
|
|
169
|
+
{
|
|
170
|
+
font-size: 24px;
|
|
171
|
+
letter-spacing: -0.5px;
|
|
172
|
+
margin-bottom: 12px;
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
h4
|
|
176
|
+
{
|
|
177
|
+
font-size: 18px;
|
|
178
|
+
letter-spacing: -0.33px;
|
|
179
|
+
margin-bottom: 12px;
|
|
180
|
+
color: #4d4e53;
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
h5, .container-overview .subsection-title
|
|
184
|
+
{
|
|
185
|
+
font-size: 120%;
|
|
186
|
+
font-weight: bold;
|
|
187
|
+
letter-spacing: -0.01em;
|
|
188
|
+
margin: 8px 0 3px 0;
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
h6
|
|
192
|
+
{
|
|
193
|
+
font-size: 100%;
|
|
194
|
+
letter-spacing: -0.01em;
|
|
195
|
+
margin: 6px 0 3px 0;
|
|
196
|
+
font-style: italic;
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
table
|
|
200
|
+
{
|
|
201
|
+
border-spacing: 0;
|
|
202
|
+
border: 0;
|
|
203
|
+
border-collapse: collapse;
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
td, th
|
|
207
|
+
{
|
|
208
|
+
border: 1px solid #ddd;
|
|
209
|
+
margin: 0px;
|
|
210
|
+
text-align: left;
|
|
211
|
+
vertical-align: top;
|
|
212
|
+
padding: 4px 6px;
|
|
213
|
+
display: table-cell;
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
thead tr
|
|
217
|
+
{
|
|
218
|
+
background-color: #ddd;
|
|
219
|
+
font-weight: bold;
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
th { border-right: 1px solid #aaa; }
|
|
223
|
+
tr > th:last-child { border-right: 1px solid #ddd; }
|
|
224
|
+
|
|
225
|
+
.ancestors, .attribs { color: #999; }
|
|
226
|
+
.ancestors a, .attribs a
|
|
227
|
+
{
|
|
228
|
+
color: #999 !important;
|
|
229
|
+
text-decoration: none;
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
.clear
|
|
233
|
+
{
|
|
234
|
+
clear: both;
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
.important
|
|
238
|
+
{
|
|
239
|
+
font-weight: bold;
|
|
240
|
+
color: #950B02;
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
.yes-def {
|
|
244
|
+
text-indent: -1000px;
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
.type-signature {
|
|
248
|
+
color: #aaa;
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
.name, .signature {
|
|
252
|
+
font-family: Consolas, Monaco, 'Andale Mono', monospace;
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
.details { margin-top: 14px; border-left: 2px solid #DDD; }
|
|
256
|
+
.details dt { width: 120px; float: left; padding-left: 10px; padding-top: 6px; }
|
|
257
|
+
.details dd { margin-left: 70px; }
|
|
258
|
+
.details ul { margin: 0; }
|
|
259
|
+
.details ul { list-style-type: none; }
|
|
260
|
+
.details li { margin-left: 30px; padding-top: 6px; }
|
|
261
|
+
.details pre.prettyprint { margin: 0 }
|
|
262
|
+
.details .object-value { padding-top: 0; }
|
|
263
|
+
|
|
264
|
+
.description {
|
|
265
|
+
margin-bottom: 1em;
|
|
266
|
+
margin-top: 1em;
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
.code-caption
|
|
270
|
+
{
|
|
271
|
+
font-style: italic;
|
|
272
|
+
font-size: 107%;
|
|
273
|
+
margin: 0;
|
|
274
|
+
}
|
|
275
|
+
|
|
276
|
+
.source
|
|
277
|
+
{
|
|
278
|
+
border: 1px solid #ddd;
|
|
279
|
+
width: 80%;
|
|
280
|
+
overflow: auto;
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
.prettyprint.source {
|
|
284
|
+
width: inherit;
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
.source code
|
|
288
|
+
{
|
|
289
|
+
font-size: 100%;
|
|
290
|
+
line-height: 18px;
|
|
291
|
+
display: block;
|
|
292
|
+
padding: 4px 12px;
|
|
293
|
+
margin: 0;
|
|
294
|
+
background-color: #fff;
|
|
295
|
+
color: #4D4E53;
|
|
296
|
+
}
|
|
297
|
+
|
|
298
|
+
.prettyprint code span.line
|
|
299
|
+
{
|
|
300
|
+
display: inline-block;
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
.prettyprint.linenums
|
|
304
|
+
{
|
|
305
|
+
padding-left: 70px;
|
|
306
|
+
-webkit-user-select: none;
|
|
307
|
+
-moz-user-select: none;
|
|
308
|
+
-ms-user-select: none;
|
|
309
|
+
user-select: none;
|
|
310
|
+
}
|
|
311
|
+
|
|
312
|
+
.prettyprint.linenums ol
|
|
313
|
+
{
|
|
314
|
+
padding-left: 0;
|
|
315
|
+
}
|
|
316
|
+
|
|
317
|
+
.prettyprint.linenums li
|
|
318
|
+
{
|
|
319
|
+
border-left: 3px #ddd solid;
|
|
320
|
+
}
|
|
321
|
+
|
|
322
|
+
.prettyprint.linenums li.selected,
|
|
323
|
+
.prettyprint.linenums li.selected *
|
|
324
|
+
{
|
|
325
|
+
background-color: lightyellow;
|
|
326
|
+
}
|
|
327
|
+
|
|
328
|
+
.prettyprint.linenums li *
|
|
329
|
+
{
|
|
330
|
+
-webkit-user-select: text;
|
|
331
|
+
-moz-user-select: text;
|
|
332
|
+
-ms-user-select: text;
|
|
333
|
+
user-select: text;
|
|
334
|
+
}
|
|
335
|
+
|
|
336
|
+
.params .name, .props .name, .name code {
|
|
337
|
+
color: #4D4E53;
|
|
338
|
+
font-family: Consolas, Monaco, 'Andale Mono', monospace;
|
|
339
|
+
font-size: 100%;
|
|
340
|
+
}
|
|
341
|
+
|
|
342
|
+
.params td.description > p:first-child,
|
|
343
|
+
.props td.description > p:first-child
|
|
344
|
+
{
|
|
345
|
+
margin-top: 0;
|
|
346
|
+
padding-top: 0;
|
|
347
|
+
}
|
|
348
|
+
|
|
349
|
+
.params td.description > p:last-child,
|
|
350
|
+
.props td.description > p:last-child
|
|
351
|
+
{
|
|
352
|
+
margin-bottom: 0;
|
|
353
|
+
padding-bottom: 0;
|
|
354
|
+
}
|
|
355
|
+
|
|
356
|
+
.disabled {
|
|
357
|
+
color: #454545;
|
|
358
|
+
}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
/* JSDoc prettify.js theme */
|
|
2
|
+
|
|
3
|
+
/* plain text */
|
|
4
|
+
.pln {
|
|
5
|
+
color: #000000;
|
|
6
|
+
font-weight: normal;
|
|
7
|
+
font-style: normal;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
/* string content */
|
|
11
|
+
.str {
|
|
12
|
+
color: #006400;
|
|
13
|
+
font-weight: normal;
|
|
14
|
+
font-style: normal;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
/* a keyword */
|
|
18
|
+
.kwd {
|
|
19
|
+
color: #000000;
|
|
20
|
+
font-weight: bold;
|
|
21
|
+
font-style: normal;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
/* a comment */
|
|
25
|
+
.com {
|
|
26
|
+
font-weight: normal;
|
|
27
|
+
font-style: italic;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/* a type name */
|
|
31
|
+
.typ {
|
|
32
|
+
color: #000000;
|
|
33
|
+
font-weight: normal;
|
|
34
|
+
font-style: normal;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/* a literal value */
|
|
38
|
+
.lit {
|
|
39
|
+
color: #006400;
|
|
40
|
+
font-weight: normal;
|
|
41
|
+
font-style: normal;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
/* punctuation */
|
|
45
|
+
.pun {
|
|
46
|
+
color: #000000;
|
|
47
|
+
font-weight: bold;
|
|
48
|
+
font-style: normal;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
/* lisp open bracket */
|
|
52
|
+
.opn {
|
|
53
|
+
color: #000000;
|
|
54
|
+
font-weight: bold;
|
|
55
|
+
font-style: normal;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
/* lisp close bracket */
|
|
59
|
+
.clo {
|
|
60
|
+
color: #000000;
|
|
61
|
+
font-weight: bold;
|
|
62
|
+
font-style: normal;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
/* a markup tag name */
|
|
66
|
+
.tag {
|
|
67
|
+
color: #006400;
|
|
68
|
+
font-weight: normal;
|
|
69
|
+
font-style: normal;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
/* a markup attribute name */
|
|
73
|
+
.atn {
|
|
74
|
+
color: #006400;
|
|
75
|
+
font-weight: normal;
|
|
76
|
+
font-style: normal;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
/* a markup attribute value */
|
|
80
|
+
.atv {
|
|
81
|
+
color: #006400;
|
|
82
|
+
font-weight: normal;
|
|
83
|
+
font-style: normal;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
/* a declaration */
|
|
87
|
+
.dec {
|
|
88
|
+
color: #000000;
|
|
89
|
+
font-weight: bold;
|
|
90
|
+
font-style: normal;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
/* a variable name */
|
|
94
|
+
.var {
|
|
95
|
+
color: #000000;
|
|
96
|
+
font-weight: normal;
|
|
97
|
+
font-style: normal;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
/* a function name */
|
|
101
|
+
.fun {
|
|
102
|
+
color: #000000;
|
|
103
|
+
font-weight: bold;
|
|
104
|
+
font-style: normal;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
/* Specify class=linenums on a pre to get line numbering */
|
|
108
|
+
ol.linenums {
|
|
109
|
+
margin-top: 0;
|
|
110
|
+
margin-bottom: 0;
|
|
111
|
+
}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
/* Tomorrow Theme */
|
|
2
|
+
/* Original theme - https://github.com/chriskempson/tomorrow-theme */
|
|
3
|
+
/* Pretty printing styles. Used with prettify.js. */
|
|
4
|
+
/* SPAN elements with the classes below are added by prettyprint. */
|
|
5
|
+
/* plain text */
|
|
6
|
+
.pln {
|
|
7
|
+
color: #4d4d4c; }
|
|
8
|
+
|
|
9
|
+
@media screen {
|
|
10
|
+
/* string content */
|
|
11
|
+
.str {
|
|
12
|
+
color: #718c00; }
|
|
13
|
+
|
|
14
|
+
/* a keyword */
|
|
15
|
+
.kwd {
|
|
16
|
+
color: #8959a8; }
|
|
17
|
+
|
|
18
|
+
/* a comment */
|
|
19
|
+
.com {
|
|
20
|
+
color: #8e908c; }
|
|
21
|
+
|
|
22
|
+
/* a type name */
|
|
23
|
+
.typ {
|
|
24
|
+
color: #4271ae; }
|
|
25
|
+
|
|
26
|
+
/* a literal value */
|
|
27
|
+
.lit {
|
|
28
|
+
color: #f5871f; }
|
|
29
|
+
|
|
30
|
+
/* punctuation */
|
|
31
|
+
.pun {
|
|
32
|
+
color: #4d4d4c; }
|
|
33
|
+
|
|
34
|
+
/* lisp open bracket */
|
|
35
|
+
.opn {
|
|
36
|
+
color: #4d4d4c; }
|
|
37
|
+
|
|
38
|
+
/* lisp close bracket */
|
|
39
|
+
.clo {
|
|
40
|
+
color: #4d4d4c; }
|
|
41
|
+
|
|
42
|
+
/* a markup tag name */
|
|
43
|
+
.tag {
|
|
44
|
+
color: #c82829; }
|
|
45
|
+
|
|
46
|
+
/* a markup attribute name */
|
|
47
|
+
.atn {
|
|
48
|
+
color: #f5871f; }
|
|
49
|
+
|
|
50
|
+
/* a markup attribute value */
|
|
51
|
+
.atv {
|
|
52
|
+
color: #3e999f; }
|
|
53
|
+
|
|
54
|
+
/* a declaration */
|
|
55
|
+
.dec {
|
|
56
|
+
color: #f5871f; }
|
|
57
|
+
|
|
58
|
+
/* a variable name */
|
|
59
|
+
.var {
|
|
60
|
+
color: #c82829; }
|
|
61
|
+
|
|
62
|
+
/* a function name */
|
|
63
|
+
.fun {
|
|
64
|
+
color: #4271ae; } }
|
|
65
|
+
/* Use higher contrast and text-weight for printable form. */
|
|
66
|
+
@media print, projection {
|
|
67
|
+
.str {
|
|
68
|
+
color: #060; }
|
|
69
|
+
|
|
70
|
+
.kwd {
|
|
71
|
+
color: #006;
|
|
72
|
+
font-weight: bold; }
|
|
73
|
+
|
|
74
|
+
.com {
|
|
75
|
+
color: #600;
|
|
76
|
+
font-style: italic; }
|
|
77
|
+
|
|
78
|
+
.typ {
|
|
79
|
+
color: #404;
|
|
80
|
+
font-weight: bold; }
|
|
81
|
+
|
|
82
|
+
.lit {
|
|
83
|
+
color: #044; }
|
|
84
|
+
|
|
85
|
+
.pun, .opn, .clo {
|
|
86
|
+
color: #440; }
|
|
87
|
+
|
|
88
|
+
.tag {
|
|
89
|
+
color: #006;
|
|
90
|
+
font-weight: bold; }
|
|
91
|
+
|
|
92
|
+
.atn {
|
|
93
|
+
color: #404; }
|
|
94
|
+
|
|
95
|
+
.atv {
|
|
96
|
+
color: #060; } }
|
|
97
|
+
/* Style */
|
|
98
|
+
/*
|
|
99
|
+
pre.prettyprint {
|
|
100
|
+
background: white;
|
|
101
|
+
font-family: Consolas, Monaco, 'Andale Mono', monospace;
|
|
102
|
+
font-size: 12px;
|
|
103
|
+
line-height: 1.5;
|
|
104
|
+
border: 1px solid #ccc;
|
|
105
|
+
padding: 10px; }
|
|
106
|
+
*/
|
|
107
|
+
|
|
108
|
+
/* Specify class=linenums on a pre to get line numbering */
|
|
109
|
+
ol.linenums {
|
|
110
|
+
margin-top: 0;
|
|
111
|
+
margin-bottom: 0; }
|
|
112
|
+
|
|
113
|
+
/* IE indents via margin-left */
|
|
114
|
+
li.L0,
|
|
115
|
+
li.L1,
|
|
116
|
+
li.L2,
|
|
117
|
+
li.L3,
|
|
118
|
+
li.L4,
|
|
119
|
+
li.L5,
|
|
120
|
+
li.L6,
|
|
121
|
+
li.L7,
|
|
122
|
+
li.L8,
|
|
123
|
+
li.L9 {
|
|
124
|
+
/* */ }
|
|
125
|
+
|
|
126
|
+
/* Alternate shading for lines */
|
|
127
|
+
li.L1,
|
|
128
|
+
li.L3,
|
|
129
|
+
li.L5,
|
|
130
|
+
li.L7,
|
|
131
|
+
li.L9 {
|
|
132
|
+
/* */ }
|
package/jsdoc.json
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
{
|
|
2
|
+
"plugins": [],
|
|
3
|
+
"recurseDepth": 10,
|
|
4
|
+
"source": {
|
|
5
|
+
"include": [ "./tmp/llaminate.js", "./src/llaminate.types.js" ]
|
|
6
|
+
},
|
|
7
|
+
"opts": {
|
|
8
|
+
"destination": "./docs/"
|
|
9
|
+
},
|
|
10
|
+
"sourceType": "module",
|
|
11
|
+
"tags": {
|
|
12
|
+
"allowUnknownTags": true,
|
|
13
|
+
"dictionaries": ["jsdoc"]
|
|
14
|
+
},
|
|
15
|
+
"templates": {
|
|
16
|
+
"cleverLinks": true,
|
|
17
|
+
"monospaceLinks": true,
|
|
18
|
+
"default": {
|
|
19
|
+
"outputSourceFiles": false,
|
|
20
|
+
"includeDate": false
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
}
|
package/package.json
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "llaminate",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "A simple but powerful library that abstracts LLM chat completions, providing chat history, tokens tracking and tools interfaces.",
|
|
5
|
+
"main": "dist/llaminate.min.js",
|
|
6
|
+
"types": "dist/llaminate.d.ts",
|
|
7
|
+
"scripts": {
|
|
8
|
+
"prebuild": "node scripts/prebuild.js",
|
|
9
|
+
"build": "bash scripts/build.sh",
|
|
10
|
+
"docs": "bash scripts/docs.sh",
|
|
11
|
+
"prepare": "bash scripts/prepare.sh",
|
|
12
|
+
"pretest": "node scripts/pretest.js",
|
|
13
|
+
"scratch": "node --env-file=.env ./tests/scratch.js",
|
|
14
|
+
"test": "jest --i --config=./tests/jest.config.json"
|
|
15
|
+
},
|
|
16
|
+
"keywords": [
|
|
17
|
+
"LLM",
|
|
18
|
+
"AI",
|
|
19
|
+
"chat",
|
|
20
|
+
"completions",
|
|
21
|
+
"streaming",
|
|
22
|
+
"tools"
|
|
23
|
+
],
|
|
24
|
+
"author": "Oliver Moran <oliver.moran@gmail.com>",
|
|
25
|
+
"license": "MIT",
|
|
26
|
+
"devDependencies": {
|
|
27
|
+
"@dotenvx/dotenvx": "^1.55.1",
|
|
28
|
+
"@types/node": "^25.5.0",
|
|
29
|
+
"jest": "^30.3.0",
|
|
30
|
+
"jsdoc": "^4.0.5",
|
|
31
|
+
"terser": "^5.46.0",
|
|
32
|
+
"typescript": "^5.0.0"
|
|
33
|
+
},
|
|
34
|
+
"dependencies": {
|
|
35
|
+
"ajv": "^8.18.0",
|
|
36
|
+
"handlebars": "^4.7.8"
|
|
37
|
+
}
|
|
38
|
+
}
|
package/scripts/build.sh
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
|
|
3
|
+
# Compile TypeScript
|
|
4
|
+
echo "Compiling TypeScript files."
|
|
5
|
+
tsc
|
|
6
|
+
|
|
7
|
+
# Minify JavaScript files
|
|
8
|
+
echo "Minifying JavaScript files:"
|
|
9
|
+
for file in dist/*.js; do
|
|
10
|
+
echo " - $file"
|
|
11
|
+
terser "$file" -o "${file%.js}.min.js" --source-map --comments 'some'
|
|
12
|
+
done
|
|
13
|
+
|
|
14
|
+
# Remove original JavaScript files
|
|
15
|
+
echo "Removing non-minified files."
|
|
16
|
+
find dist -type f \( -name '*.min.js' \) -prune -o -name '*.js' -exec rm {} +
|
|
17
|
+
find dist -type f \( -name '*.min.js.map' \) -prune -o -name '*.js.map' -exec rm {} +
|
|
18
|
+
|
|
19
|
+
# Building documentation
|
|
20
|
+
echo "Building documentation."
|
|
21
|
+
npm run docs
|
package/scripts/docs.sh
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
|
|
3
|
+
# Prepring documentation directories
|
|
4
|
+
echo "Preparing documentation directories."
|
|
5
|
+
rm -rf ./tmp
|
|
6
|
+
rm -rf ./docs
|
|
7
|
+
|
|
8
|
+
# Compile TypeScript
|
|
9
|
+
echo "Compiling TypeScript files."
|
|
10
|
+
tsc --project tsconfig.json --outDir tmp --sourceMap false --module preserve --declaration false --strict false
|
|
11
|
+
|
|
12
|
+
# Generate documentation using JSDoc
|
|
13
|
+
echo "Generating documentation with JSDoc."
|
|
14
|
+
jsdoc --readme README.md -c jsdoc.json && rm -rf ./tmp
|
|
15
|
+
|
|
16
|
+
# Customize documentation HTML files (a hack, yes, but effective)
|
|
17
|
+
echo "Customizing documentation."
|
|
18
|
+
find ./docs -type f -name "*.html" -exec sed -i '' 's/<h2><a href="index.html">Home<\/a><\/h2>/<h4><a href="index.html">README.md<\/a><\/h4>/g' {} +
|
|
19
|
+
find ./docs -type f -name "*.html" -exec sed -i '' 's/Home/Llaminate/g' {} +
|
|
20
|
+
find ./docs -type f -name "*.html" -exec sed -i '' 's/JSDoc: Llaminate/Llaminate - A simple but powerful library for interacting with large language models (LLMs)/g' {} +
|
|
21
|
+
find ./docs -type f -name "*.html" -exec sed -i '' 's/JSDoc//g' {} +
|
|
22
|
+
|
|
23
|
+
# Copy additional files to the docs directory
|
|
24
|
+
# JSDoc doesn't handle this gracefully enough, so we do it manually.
|
|
25
|
+
echo "Copying additional files to the docs."
|
|
26
|
+
cp LICENSE ./docs
|
|
27
|
+
mkdir -p ./docs/assets
|
|
28
|
+
cp ./assets/llaminate-256.webp ./docs/assets
|