selma 0.0.7 → 0.1.6

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9d12ee9e6f3513dac3d511e1289c8719a2746dc0c565dd838c04e8cdab59bc6e
4
- data.tar.gz: 75616f7a40ee931b88768cf27e92d97e38e3c8a31d897567368eeeb5ae0b6957
3
+ metadata.gz: 1c8f57d5ae3f09a9457ea5a2ed3bd8db347bbb2b4d696cd660e53fe7dd77b3e1
4
+ data.tar.gz: 7722be4f78d25760464a28679cd92cede4ae0013ef1f5a170a68945e500270f3
5
5
  SHA512:
6
- metadata.gz: 15c950e3689390a1e7a32f60191aa29a9f351ef8f7c84127552c0cd936bfb3ae858aa79050ab9c418234fa50e2fb2a3b11a95606bdacd041dfd69a6d66b3b949
7
- data.tar.gz: e02be77c5b4a4e4f61641cc03b65103c2771cc3164caa456ecf6a40fbaa03e627a386265629f8fe77d4c277f0ed969d9220d589c740a3bd4a3e8f532168bf8c8
6
+ metadata.gz: afd41b0e75bec3fa4f6ffffa20a3b8642fcbf3338fe2e9fa1439dfa54cb70a007d86fe15f9c6c78f1815d45305309f2ccef19987165e2e8c30018286d6d94576
7
+ data.tar.gz: e07f434d483f5ef6b7181c4f4197b258a83b35958eda0c5c1cb216a2bf407a9cd3b6adbc59dc6e280990397bb40f21712520d4190b4076e881a79645af01833f
data/Cargo.lock ADDED
@@ -0,0 +1,734 @@
1
+ # This file is automatically @generated by Cargo.
2
+ # It is not intended for manual editing.
3
+ version = 3
4
+
5
+ [[package]]
6
+ name = "ahash"
7
+ version = "0.8.3"
8
+ source = "registry+https://github.com/rust-lang/crates.io-index"
9
+ checksum = "2c99f64d1e06488f620f932677e24bc6e2897582980441ae90a671415bd7ec2f"
10
+ dependencies = [
11
+ "cfg-if",
12
+ "once_cell",
13
+ "version_check",
14
+ ]
15
+
16
+ [[package]]
17
+ name = "aho-corasick"
18
+ version = "1.0.2"
19
+ source = "registry+https://github.com/rust-lang/crates.io-index"
20
+ checksum = "43f6cb1bf222025340178f382c426f13757b2960e89779dfcb319c32542a5a41"
21
+ dependencies = [
22
+ "memchr",
23
+ ]
24
+
25
+ [[package]]
26
+ name = "bindgen"
27
+ version = "0.62.0"
28
+ source = "registry+https://github.com/rust-lang/crates.io-index"
29
+ checksum = "c6720a8b7b2d39dd533285ed438d458f65b31b5c257e6ac7bb3d7e82844dd722"
30
+ dependencies = [
31
+ "bitflags 1.3.2",
32
+ "cexpr",
33
+ "clang-sys",
34
+ "lazy_static",
35
+ "lazycell",
36
+ "peeking_take_while",
37
+ "proc-macro2",
38
+ "quote",
39
+ "regex",
40
+ "rustc-hash",
41
+ "shlex",
42
+ "syn 1.0.109",
43
+ ]
44
+
45
+ [[package]]
46
+ name = "bitflags"
47
+ version = "1.3.2"
48
+ source = "registry+https://github.com/rust-lang/crates.io-index"
49
+ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
50
+
51
+ [[package]]
52
+ name = "bitflags"
53
+ version = "2.3.1"
54
+ source = "registry+https://github.com/rust-lang/crates.io-index"
55
+ checksum = "6776fc96284a0bb647b615056fc496d1fe1644a7ab01829818a6d91cae888b84"
56
+
57
+ [[package]]
58
+ name = "byteorder"
59
+ version = "1.4.3"
60
+ source = "registry+https://github.com/rust-lang/crates.io-index"
61
+ checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610"
62
+
63
+ [[package]]
64
+ name = "cexpr"
65
+ version = "0.6.0"
66
+ source = "registry+https://github.com/rust-lang/crates.io-index"
67
+ checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766"
68
+ dependencies = [
69
+ "nom",
70
+ ]
71
+
72
+ [[package]]
73
+ name = "cfg-if"
74
+ version = "1.0.0"
75
+ source = "registry+https://github.com/rust-lang/crates.io-index"
76
+ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
77
+
78
+ [[package]]
79
+ name = "clang-sys"
80
+ version = "1.6.1"
81
+ source = "registry+https://github.com/rust-lang/crates.io-index"
82
+ checksum = "c688fc74432808e3eb684cae8830a86be1d66a2bd58e1f248ed0960a590baf6f"
83
+ dependencies = [
84
+ "glob",
85
+ "libc",
86
+ "libloading",
87
+ ]
88
+
89
+ [[package]]
90
+ name = "convert_case"
91
+ version = "0.4.0"
92
+ source = "registry+https://github.com/rust-lang/crates.io-index"
93
+ checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e"
94
+
95
+ [[package]]
96
+ name = "cssparser"
97
+ version = "0.27.2"
98
+ source = "registry+https://github.com/rust-lang/crates.io-index"
99
+ checksum = "754b69d351cdc2d8ee09ae203db831e005560fc6030da058f86ad60c92a9cb0a"
100
+ dependencies = [
101
+ "cssparser-macros",
102
+ "dtoa-short",
103
+ "itoa",
104
+ "matches",
105
+ "phf",
106
+ "proc-macro2",
107
+ "quote",
108
+ "smallvec",
109
+ "syn 1.0.109",
110
+ ]
111
+
112
+ [[package]]
113
+ name = "cssparser-macros"
114
+ version = "0.6.1"
115
+ source = "registry+https://github.com/rust-lang/crates.io-index"
116
+ checksum = "13b588ba4ac1a99f7f2964d24b3d896ddc6bf847ee3855dbd4366f058cfcd331"
117
+ dependencies = [
118
+ "quote",
119
+ "syn 2.0.18",
120
+ ]
121
+
122
+ [[package]]
123
+ name = "derive_more"
124
+ version = "0.99.17"
125
+ source = "registry+https://github.com/rust-lang/crates.io-index"
126
+ checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321"
127
+ dependencies = [
128
+ "convert_case",
129
+ "proc-macro2",
130
+ "quote",
131
+ "rustc_version",
132
+ "syn 1.0.109",
133
+ ]
134
+
135
+ [[package]]
136
+ name = "dtoa"
137
+ version = "0.4.8"
138
+ source = "registry+https://github.com/rust-lang/crates.io-index"
139
+ checksum = "56899898ce76aaf4a0f24d914c97ea6ed976d42fec6ad33fcbb0a1103e07b2b0"
140
+
141
+ [[package]]
142
+ name = "dtoa-short"
143
+ version = "0.3.3"
144
+ source = "registry+https://github.com/rust-lang/crates.io-index"
145
+ checksum = "bde03329ae10e79ede66c9ce4dc930aa8599043b0743008548680f25b91502d6"
146
+ dependencies = [
147
+ "dtoa",
148
+ ]
149
+
150
+ [[package]]
151
+ name = "encoding_rs"
152
+ version = "0.8.32"
153
+ source = "registry+https://github.com/rust-lang/crates.io-index"
154
+ checksum = "071a31f4ee85403370b58aca746f01041ede6f0da2730960ad001edc2b71b394"
155
+ dependencies = [
156
+ "cfg-if",
157
+ ]
158
+
159
+ [[package]]
160
+ name = "entities"
161
+ version = "1.0.1"
162
+ source = "registry+https://github.com/rust-lang/crates.io-index"
163
+ checksum = "b5320ae4c3782150d900b79807611a59a99fc9a1d61d686faafc24b93fc8d7ca"
164
+
165
+ [[package]]
166
+ name = "enum-iterator"
167
+ version = "1.4.1"
168
+ source = "registry+https://github.com/rust-lang/crates.io-index"
169
+ checksum = "7add3873b5dd076766ee79c8e406ad1a472c385476b9e38849f8eec24f1be689"
170
+ dependencies = [
171
+ "enum-iterator-derive",
172
+ ]
173
+
174
+ [[package]]
175
+ name = "enum-iterator-derive"
176
+ version = "1.2.1"
177
+ source = "registry+https://github.com/rust-lang/crates.io-index"
178
+ checksum = "eecf8589574ce9b895052fa12d69af7a233f99e6107f5cb8dd1044f2a17bfdcb"
179
+ dependencies = [
180
+ "proc-macro2",
181
+ "quote",
182
+ "syn 2.0.18",
183
+ ]
184
+
185
+ [[package]]
186
+ name = "escapist"
187
+ version = "0.0.2"
188
+ source = "registry+https://github.com/rust-lang/crates.io-index"
189
+ checksum = "a91c7e59d7e5afa56d8be4dc7e27ea123dcd23d38b4b6a6497a05cddd95844a2"
190
+ dependencies = [
191
+ "entities",
192
+ ]
193
+
194
+ [[package]]
195
+ name = "fxhash"
196
+ version = "0.2.1"
197
+ source = "registry+https://github.com/rust-lang/crates.io-index"
198
+ checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c"
199
+ dependencies = [
200
+ "byteorder",
201
+ ]
202
+
203
+ [[package]]
204
+ name = "getrandom"
205
+ version = "0.1.16"
206
+ source = "registry+https://github.com/rust-lang/crates.io-index"
207
+ checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce"
208
+ dependencies = [
209
+ "cfg-if",
210
+ "libc",
211
+ "wasi",
212
+ ]
213
+
214
+ [[package]]
215
+ name = "glob"
216
+ version = "0.3.1"
217
+ source = "registry+https://github.com/rust-lang/crates.io-index"
218
+ checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b"
219
+
220
+ [[package]]
221
+ name = "hashbrown"
222
+ version = "0.13.2"
223
+ source = "registry+https://github.com/rust-lang/crates.io-index"
224
+ checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e"
225
+ dependencies = [
226
+ "ahash",
227
+ ]
228
+
229
+ [[package]]
230
+ name = "itoa"
231
+ version = "0.4.8"
232
+ source = "registry+https://github.com/rust-lang/crates.io-index"
233
+ checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4"
234
+
235
+ [[package]]
236
+ name = "lazy_static"
237
+ version = "1.4.0"
238
+ source = "registry+https://github.com/rust-lang/crates.io-index"
239
+ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
240
+
241
+ [[package]]
242
+ name = "lazycell"
243
+ version = "1.3.0"
244
+ source = "registry+https://github.com/rust-lang/crates.io-index"
245
+ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55"
246
+
247
+ [[package]]
248
+ name = "libc"
249
+ version = "0.2.145"
250
+ source = "registry+https://github.com/rust-lang/crates.io-index"
251
+ checksum = "fc86cde3ff845662b8f4ef6cb50ea0e20c524eb3d29ae048287e06a1b3fa6a81"
252
+
253
+ [[package]]
254
+ name = "libloading"
255
+ version = "0.7.4"
256
+ source = "registry+https://github.com/rust-lang/crates.io-index"
257
+ checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f"
258
+ dependencies = [
259
+ "cfg-if",
260
+ "winapi",
261
+ ]
262
+
263
+ [[package]]
264
+ name = "log"
265
+ version = "0.4.18"
266
+ source = "registry+https://github.com/rust-lang/crates.io-index"
267
+ checksum = "518ef76f2f87365916b142844c16d8fefd85039bc5699050210a7778ee1cd1de"
268
+
269
+ [[package]]
270
+ name = "lol_html"
271
+ version = "1.0.0"
272
+ source = "registry+https://github.com/rust-lang/crates.io-index"
273
+ checksum = "ce59b33732efed2480f7d15722ed56905e81004b402196a738f7532ff44d9798"
274
+ dependencies = [
275
+ "bitflags 2.3.1",
276
+ "cfg-if",
277
+ "cssparser",
278
+ "encoding_rs",
279
+ "hashbrown",
280
+ "lazy_static",
281
+ "lazycell",
282
+ "memchr",
283
+ "mime",
284
+ "safemem",
285
+ "selectors",
286
+ "thiserror",
287
+ ]
288
+
289
+ [[package]]
290
+ name = "magnus"
291
+ version = "0.5.3"
292
+ source = "registry+https://github.com/rust-lang/crates.io-index"
293
+ checksum = "c8dc14463c2552e753ef562961f486ca76f17a857c121db40e9f3ade3f35ab81"
294
+ dependencies = [
295
+ "magnus-macros",
296
+ "rb-sys",
297
+ "rb-sys-env",
298
+ ]
299
+
300
+ [[package]]
301
+ name = "magnus-macros"
302
+ version = "0.4.1"
303
+ source = "registry+https://github.com/rust-lang/crates.io-index"
304
+ checksum = "6cc17af1d45442c011aa579d727ec6cff8a69aea8a6bbad26736e7112d749bfb"
305
+ dependencies = [
306
+ "proc-macro2",
307
+ "quote",
308
+ "syn 1.0.109",
309
+ ]
310
+
311
+ [[package]]
312
+ name = "matches"
313
+ version = "0.1.10"
314
+ source = "registry+https://github.com/rust-lang/crates.io-index"
315
+ checksum = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5"
316
+
317
+ [[package]]
318
+ name = "memchr"
319
+ version = "2.5.0"
320
+ source = "registry+https://github.com/rust-lang/crates.io-index"
321
+ checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
322
+
323
+ [[package]]
324
+ name = "mime"
325
+ version = "0.3.17"
326
+ source = "registry+https://github.com/rust-lang/crates.io-index"
327
+ checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a"
328
+
329
+ [[package]]
330
+ name = "minimal-lexical"
331
+ version = "0.2.1"
332
+ source = "registry+https://github.com/rust-lang/crates.io-index"
333
+ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
334
+
335
+ [[package]]
336
+ name = "nodrop"
337
+ version = "0.1.14"
338
+ source = "registry+https://github.com/rust-lang/crates.io-index"
339
+ checksum = "72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bb"
340
+
341
+ [[package]]
342
+ name = "nom"
343
+ version = "7.1.3"
344
+ source = "registry+https://github.com/rust-lang/crates.io-index"
345
+ checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a"
346
+ dependencies = [
347
+ "memchr",
348
+ "minimal-lexical",
349
+ ]
350
+
351
+ [[package]]
352
+ name = "once_cell"
353
+ version = "1.18.0"
354
+ source = "registry+https://github.com/rust-lang/crates.io-index"
355
+ checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d"
356
+
357
+ [[package]]
358
+ name = "peeking_take_while"
359
+ version = "0.1.2"
360
+ source = "registry+https://github.com/rust-lang/crates.io-index"
361
+ checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099"
362
+
363
+ [[package]]
364
+ name = "phf"
365
+ version = "0.8.0"
366
+ source = "registry+https://github.com/rust-lang/crates.io-index"
367
+ checksum = "3dfb61232e34fcb633f43d12c58f83c1df82962dcdfa565a4e866ffc17dafe12"
368
+ dependencies = [
369
+ "phf_macros",
370
+ "phf_shared",
371
+ "proc-macro-hack",
372
+ ]
373
+
374
+ [[package]]
375
+ name = "phf_codegen"
376
+ version = "0.8.0"
377
+ source = "registry+https://github.com/rust-lang/crates.io-index"
378
+ checksum = "cbffee61585b0411840d3ece935cce9cb6321f01c45477d30066498cd5e1a815"
379
+ dependencies = [
380
+ "phf_generator",
381
+ "phf_shared",
382
+ ]
383
+
384
+ [[package]]
385
+ name = "phf_generator"
386
+ version = "0.8.0"
387
+ source = "registry+https://github.com/rust-lang/crates.io-index"
388
+ checksum = "17367f0cc86f2d25802b2c26ee58a7b23faeccf78a396094c13dced0d0182526"
389
+ dependencies = [
390
+ "phf_shared",
391
+ "rand",
392
+ ]
393
+
394
+ [[package]]
395
+ name = "phf_macros"
396
+ version = "0.8.0"
397
+ source = "registry+https://github.com/rust-lang/crates.io-index"
398
+ checksum = "7f6fde18ff429ffc8fe78e2bf7f8b7a5a5a6e2a8b58bc5a9ac69198bbda9189c"
399
+ dependencies = [
400
+ "phf_generator",
401
+ "phf_shared",
402
+ "proc-macro-hack",
403
+ "proc-macro2",
404
+ "quote",
405
+ "syn 1.0.109",
406
+ ]
407
+
408
+ [[package]]
409
+ name = "phf_shared"
410
+ version = "0.8.0"
411
+ source = "registry+https://github.com/rust-lang/crates.io-index"
412
+ checksum = "c00cf8b9eafe68dde5e9eaa2cef8ee84a9336a47d566ec55ca16589633b65af7"
413
+ dependencies = [
414
+ "siphasher",
415
+ ]
416
+
417
+ [[package]]
418
+ name = "ppv-lite86"
419
+ version = "0.2.17"
420
+ source = "registry+https://github.com/rust-lang/crates.io-index"
421
+ checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
422
+
423
+ [[package]]
424
+ name = "precomputed-hash"
425
+ version = "0.1.1"
426
+ source = "registry+https://github.com/rust-lang/crates.io-index"
427
+ checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c"
428
+
429
+ [[package]]
430
+ name = "proc-macro-hack"
431
+ version = "0.5.20+deprecated"
432
+ source = "registry+https://github.com/rust-lang/crates.io-index"
433
+ checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068"
434
+
435
+ [[package]]
436
+ name = "proc-macro2"
437
+ version = "1.0.59"
438
+ source = "registry+https://github.com/rust-lang/crates.io-index"
439
+ checksum = "6aeca18b86b413c660b781aa319e4e2648a3e6f9eadc9b47e9038e6fe9f3451b"
440
+ dependencies = [
441
+ "unicode-ident",
442
+ ]
443
+
444
+ [[package]]
445
+ name = "quote"
446
+ version = "1.0.28"
447
+ source = "registry+https://github.com/rust-lang/crates.io-index"
448
+ checksum = "1b9ab9c7eadfd8df19006f1cf1a4aed13540ed5cbc047010ece5826e10825488"
449
+ dependencies = [
450
+ "proc-macro2",
451
+ ]
452
+
453
+ [[package]]
454
+ name = "rand"
455
+ version = "0.7.3"
456
+ source = "registry+https://github.com/rust-lang/crates.io-index"
457
+ checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03"
458
+ dependencies = [
459
+ "getrandom",
460
+ "libc",
461
+ "rand_chacha",
462
+ "rand_core",
463
+ "rand_hc",
464
+ "rand_pcg",
465
+ ]
466
+
467
+ [[package]]
468
+ name = "rand_chacha"
469
+ version = "0.2.2"
470
+ source = "registry+https://github.com/rust-lang/crates.io-index"
471
+ checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402"
472
+ dependencies = [
473
+ "ppv-lite86",
474
+ "rand_core",
475
+ ]
476
+
477
+ [[package]]
478
+ name = "rand_core"
479
+ version = "0.5.1"
480
+ source = "registry+https://github.com/rust-lang/crates.io-index"
481
+ checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19"
482
+ dependencies = [
483
+ "getrandom",
484
+ ]
485
+
486
+ [[package]]
487
+ name = "rand_hc"
488
+ version = "0.2.0"
489
+ source = "registry+https://github.com/rust-lang/crates.io-index"
490
+ checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c"
491
+ dependencies = [
492
+ "rand_core",
493
+ ]
494
+
495
+ [[package]]
496
+ name = "rand_pcg"
497
+ version = "0.2.1"
498
+ source = "registry+https://github.com/rust-lang/crates.io-index"
499
+ checksum = "16abd0c1b639e9eb4d7c50c0b8100b0d0f849be2349829c740fe8e6eb4816429"
500
+ dependencies = [
501
+ "rand_core",
502
+ ]
503
+
504
+ [[package]]
505
+ name = "rb-sys"
506
+ version = "0.9.78"
507
+ source = "registry+https://github.com/rust-lang/crates.io-index"
508
+ checksum = "91447d8cbb45afb5c915bad4dd44bd4b4e9be37648122409ceca75302cb81683"
509
+ dependencies = [
510
+ "rb-sys-build",
511
+ ]
512
+
513
+ [[package]]
514
+ name = "rb-sys-build"
515
+ version = "0.9.78"
516
+ source = "registry+https://github.com/rust-lang/crates.io-index"
517
+ checksum = "20673c1cfbd57b2db6c066b796352f07d241c45b210fd15b269dec54fa240380"
518
+ dependencies = [
519
+ "bindgen",
520
+ "lazy_static",
521
+ "proc-macro2",
522
+ "quote",
523
+ "regex",
524
+ "shell-words",
525
+ "syn 1.0.109",
526
+ ]
527
+
528
+ [[package]]
529
+ name = "rb-sys-env"
530
+ version = "0.1.2"
531
+ source = "registry+https://github.com/rust-lang/crates.io-index"
532
+ checksum = "a35802679f07360454b418a5d1735c89716bde01d35b1560fc953c1415a0b3bb"
533
+
534
+ [[package]]
535
+ name = "regex"
536
+ version = "1.8.3"
537
+ source = "registry+https://github.com/rust-lang/crates.io-index"
538
+ checksum = "81ca098a9821bd52d6b24fd8b10bd081f47d39c22778cafaa75a2857a62c6390"
539
+ dependencies = [
540
+ "aho-corasick",
541
+ "memchr",
542
+ "regex-syntax",
543
+ ]
544
+
545
+ [[package]]
546
+ name = "regex-syntax"
547
+ version = "0.7.2"
548
+ source = "registry+https://github.com/rust-lang/crates.io-index"
549
+ checksum = "436b050e76ed2903236f032a59761c1eb99e1b0aead2c257922771dab1fc8c78"
550
+
551
+ [[package]]
552
+ name = "rustc-hash"
553
+ version = "1.1.0"
554
+ source = "registry+https://github.com/rust-lang/crates.io-index"
555
+ checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
556
+
557
+ [[package]]
558
+ name = "rustc_version"
559
+ version = "0.4.0"
560
+ source = "registry+https://github.com/rust-lang/crates.io-index"
561
+ checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366"
562
+ dependencies = [
563
+ "semver",
564
+ ]
565
+
566
+ [[package]]
567
+ name = "safemem"
568
+ version = "0.3.3"
569
+ source = "registry+https://github.com/rust-lang/crates.io-index"
570
+ checksum = "ef703b7cb59335eae2eb93ceb664c0eb7ea6bf567079d843e09420219668e072"
571
+
572
+ [[package]]
573
+ name = "selectors"
574
+ version = "0.22.0"
575
+ source = "registry+https://github.com/rust-lang/crates.io-index"
576
+ checksum = "df320f1889ac4ba6bc0cdc9c9af7af4bd64bb927bccdf32d81140dc1f9be12fe"
577
+ dependencies = [
578
+ "bitflags 1.3.2",
579
+ "cssparser",
580
+ "derive_more",
581
+ "fxhash",
582
+ "log",
583
+ "matches",
584
+ "phf",
585
+ "phf_codegen",
586
+ "precomputed-hash",
587
+ "servo_arc",
588
+ "smallvec",
589
+ "thin-slice",
590
+ ]
591
+
592
+ [[package]]
593
+ name = "selma"
594
+ version = "1.0.0"
595
+ dependencies = [
596
+ "enum-iterator",
597
+ "escapist",
598
+ "lol_html",
599
+ "magnus",
600
+ ]
601
+
602
+ [[package]]
603
+ name = "semver"
604
+ version = "1.0.17"
605
+ source = "registry+https://github.com/rust-lang/crates.io-index"
606
+ checksum = "bebd363326d05ec3e2f532ab7660680f3b02130d780c299bca73469d521bc0ed"
607
+
608
+ [[package]]
609
+ name = "servo_arc"
610
+ version = "0.1.1"
611
+ source = "registry+https://github.com/rust-lang/crates.io-index"
612
+ checksum = "d98238b800e0d1576d8b6e3de32827c2d74bee68bb97748dcf5071fb53965432"
613
+ dependencies = [
614
+ "nodrop",
615
+ "stable_deref_trait",
616
+ ]
617
+
618
+ [[package]]
619
+ name = "shell-words"
620
+ version = "1.1.0"
621
+ source = "registry+https://github.com/rust-lang/crates.io-index"
622
+ checksum = "24188a676b6ae68c3b2cb3a01be17fbf7240ce009799bb56d5b1409051e78fde"
623
+
624
+ [[package]]
625
+ name = "shlex"
626
+ version = "1.1.0"
627
+ source = "registry+https://github.com/rust-lang/crates.io-index"
628
+ checksum = "43b2853a4d09f215c24cc5489c992ce46052d359b5109343cbafbf26bc62f8a3"
629
+
630
+ [[package]]
631
+ name = "siphasher"
632
+ version = "0.3.10"
633
+ source = "registry+https://github.com/rust-lang/crates.io-index"
634
+ checksum = "7bd3e3206899af3f8b12af284fafc038cc1dc2b41d1b89dd17297221c5d225de"
635
+
636
+ [[package]]
637
+ name = "smallvec"
638
+ version = "1.10.0"
639
+ source = "registry+https://github.com/rust-lang/crates.io-index"
640
+ checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0"
641
+
642
+ [[package]]
643
+ name = "stable_deref_trait"
644
+ version = "1.2.0"
645
+ source = "registry+https://github.com/rust-lang/crates.io-index"
646
+ checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3"
647
+
648
+ [[package]]
649
+ name = "syn"
650
+ version = "1.0.109"
651
+ source = "registry+https://github.com/rust-lang/crates.io-index"
652
+ checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
653
+ dependencies = [
654
+ "proc-macro2",
655
+ "quote",
656
+ "unicode-ident",
657
+ ]
658
+
659
+ [[package]]
660
+ name = "syn"
661
+ version = "2.0.18"
662
+ source = "registry+https://github.com/rust-lang/crates.io-index"
663
+ checksum = "32d41677bcbe24c20c52e7c70b0d8db04134c5d1066bf98662e2871ad200ea3e"
664
+ dependencies = [
665
+ "proc-macro2",
666
+ "quote",
667
+ "unicode-ident",
668
+ ]
669
+
670
+ [[package]]
671
+ name = "thin-slice"
672
+ version = "0.1.1"
673
+ source = "registry+https://github.com/rust-lang/crates.io-index"
674
+ checksum = "8eaa81235c7058867fa8c0e7314f33dcce9c215f535d1913822a2b3f5e289f3c"
675
+
676
+ [[package]]
677
+ name = "thiserror"
678
+ version = "1.0.40"
679
+ source = "registry+https://github.com/rust-lang/crates.io-index"
680
+ checksum = "978c9a314bd8dc99be594bc3c175faaa9794be04a5a5e153caba6915336cebac"
681
+ dependencies = [
682
+ "thiserror-impl",
683
+ ]
684
+
685
+ [[package]]
686
+ name = "thiserror-impl"
687
+ version = "1.0.40"
688
+ source = "registry+https://github.com/rust-lang/crates.io-index"
689
+ checksum = "f9456a42c5b0d803c8cd86e73dd7cc9edd429499f37a3550d286d5e86720569f"
690
+ dependencies = [
691
+ "proc-macro2",
692
+ "quote",
693
+ "syn 2.0.18",
694
+ ]
695
+
696
+ [[package]]
697
+ name = "unicode-ident"
698
+ version = "1.0.9"
699
+ source = "registry+https://github.com/rust-lang/crates.io-index"
700
+ checksum = "b15811caf2415fb889178633e7724bad2509101cde276048e013b9def5e51fa0"
701
+
702
+ [[package]]
703
+ name = "version_check"
704
+ version = "0.9.4"
705
+ source = "registry+https://github.com/rust-lang/crates.io-index"
706
+ checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
707
+
708
+ [[package]]
709
+ name = "wasi"
710
+ version = "0.9.0+wasi-snapshot-preview1"
711
+ source = "registry+https://github.com/rust-lang/crates.io-index"
712
+ checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519"
713
+
714
+ [[package]]
715
+ name = "winapi"
716
+ version = "0.3.9"
717
+ source = "registry+https://github.com/rust-lang/crates.io-index"
718
+ checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
719
+ dependencies = [
720
+ "winapi-i686-pc-windows-gnu",
721
+ "winapi-x86_64-pc-windows-gnu",
722
+ ]
723
+
724
+ [[package]]
725
+ name = "winapi-i686-pc-windows-gnu"
726
+ version = "0.4.0"
727
+ source = "registry+https://github.com/rust-lang/crates.io-index"
728
+ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
729
+
730
+ [[package]]
731
+ name = "winapi-x86_64-pc-windows-gnu"
732
+ version = "0.4.0"
733
+ source = "registry+https://github.com/rust-lang/crates.io-index"
734
+ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
data/Cargo.toml ADDED
@@ -0,0 +1,6 @@
1
+ # This Cargo.toml is here to let externals tools (IDEs, etc.) know that this is
2
+ # a Rust project. Your extensions depedencies should be added to the Cargo.toml
3
+ # in the ext/ directory.
4
+
5
+ [workspace]
6
+ members = ["ext/selma"]
data/README.md CHANGED
@@ -29,7 +29,7 @@ Selma can perform two different actions, either independently or together:
29
29
  - Sanitize HTML, through a [Sanitize](https://github.com/rgrove/sanitize)-like allowlist syntax; and
30
30
  - Select HTML using CSS rules, and manipulate elements and text nodes along the way.
31
31
 
32
- It does this through two kwargsL `sanitizer` and `handlers`. The basic API for Selma looks like this:
32
+ It does this through two kwargs: `sanitizer` and `handlers`. The basic API for Selma looks like this:
33
33
 
34
34
  ```ruby
35
35
  sanitizer_config = {
data/ext/selma/Cargo.toml CHANGED
@@ -4,10 +4,10 @@ version = "1.0.0"
4
4
  edition = "2021"
5
5
 
6
6
  [dependencies]
7
- enum-iterator = "1.2"
7
+ enum-iterator = "1.4"
8
8
  escapist = "0.0.2"
9
- magnus = { git = "https://github.com/matsadler/magnus", rev = "23160f7229ac74c42da1b5096a65ccbc40962697" }
10
- lol_html = "0.3"
9
+ magnus = "0.5"
10
+ lol_html = "1.0"
11
11
 
12
12
  [lib]
13
13
  name = "selma"
data/ext/selma/extconf.rb CHANGED
@@ -1,6 +1,4 @@
1
1
  require "mkmf"
2
2
  require "rb_sys/mkmf"
3
3
 
4
- require_relative "_util"
5
-
6
4
  create_rust_makefile("selma/selma")
@@ -39,12 +39,12 @@ impl SelmaHTMLTextChunk {
39
39
 
40
40
  if let Ok(tc) = binding.text_chunk.get() {
41
41
  match tc.text_type() {
42
- TextType::Data => Ok(Symbol::from("data")),
43
- TextType::PlainText => Ok(Symbol::from("plain_text")),
44
- TextType::RawText => Ok(Symbol::from("raw_text")),
45
- TextType::ScriptData => Ok(Symbol::from("script")),
46
- TextType::RCData => Ok(Symbol::from("rc_data")),
47
- TextType::CDataSection => Ok(Symbol::from("cdata_section")),
42
+ TextType::Data => Ok(Symbol::new("data")),
43
+ TextType::PlainText => Ok(Symbol::new("plain_text")),
44
+ TextType::RawText => Ok(Symbol::new("raw_text")),
45
+ TextType::ScriptData => Ok(Symbol::new("script")),
46
+ TextType::RCData => Ok(Symbol::new("rc_data")),
47
+ TextType::CDataSection => Ok(Symbol::new("cdata_section")),
48
48
  }
49
49
  } else {
50
50
  Err(Error::new(
@@ -1,6 +1,6 @@
1
1
  use lol_html::{
2
2
  doc_comments, doctype, element,
3
- html_content::{Element, EndTag, TextChunk},
3
+ html_content::{Element, TextChunk},
4
4
  text, DocumentContentHandlers, ElementContentHandlers, HtmlRewriter, Selector, Settings,
5
5
  };
6
6
  use magnus::{exception, function, method, scan_args, Module, Object, RArray, RModule, Value};
@@ -37,9 +37,6 @@ pub struct Rewriter {
37
37
  #[magnus::wrap(class = "Selma::Rewriter")]
38
38
  pub struct SelmaRewriter(std::cell::RefCell<Rewriter>);
39
39
 
40
- /// SAFETY: This is safe because we only access this data when the GVL is held.
41
- unsafe impl Send for SelmaRewriter {}
42
-
43
40
  impl SelmaRewriter {
44
41
  const SELMA_ON_END_TAG: &str = "on_end_tag";
45
42
  const SELMA_HANDLE_ELEMENT: &str = "handle_element";
@@ -334,11 +331,15 @@ impl SelmaRewriter {
334
331
  element_stack.as_ref().borrow_mut().push(tag_name);
335
332
 
336
333
  let closure_element_stack = element_stack.clone();
337
- el.on_end_tag(move |_end_tag: &mut EndTag| {
338
- let mut stack = closure_element_stack.as_ref().borrow_mut();
339
- stack.pop();
340
- Ok(())
341
- })?;
334
+
335
+ el.end_tag_handlers()
336
+ .unwrap()
337
+ .push(Box::new(move |_end_tag| {
338
+ let mut stack = closure_element_stack.as_ref().borrow_mut();
339
+ stack.pop();
340
+ Ok(())
341
+ }));
342
+
342
343
  Ok(())
343
344
  }));
344
345
  });
@@ -373,14 +374,17 @@ impl SelmaRewriter {
373
374
  // if `on_end_tag` function is defined, call it
374
375
  if rb_handler.respond_to(Self::SELMA_ON_END_TAG, true).unwrap() {
375
376
  // TODO: error here is an "EndTagError"
376
- element.on_end_tag(move |end_tag| {
377
- let rb_end_tag = SelmaHTMLEndTag::new(end_tag);
378
-
379
- match rb_handler.funcall::<_, _, Value>(Self::SELMA_ON_END_TAG, (rb_end_tag,)) {
380
- Ok(_) => Ok(()),
381
- Err(err) => Err(err.to_string().into()),
382
- }
383
- });
377
+ element
378
+ .end_tag_handlers()
379
+ .unwrap()
380
+ .push(Box::new(move |end_tag| {
381
+ let rb_end_tag = SelmaHTMLEndTag::new(end_tag);
382
+
383
+ match rb_handler.funcall::<_, _, Value>(Self::SELMA_ON_END_TAG, (rb_end_tag,)) {
384
+ Ok(_) => Ok(()),
385
+ Err(err) => Err(err.to_string().into()),
386
+ }
387
+ }));
384
388
  }
385
389
 
386
390
  let rb_element = SelmaHTMLElement::new(element, ancestors);
@@ -530,11 +530,12 @@ impl SelmaSanitizer {
530
530
  fn check_if_end_tag_needs_removal(element: &mut Element) {
531
531
  if element.removed() && !crate::tags::Tag::tag_from_element(element).self_closing {
532
532
  element
533
- .on_end_tag(move |end| {
533
+ .end_tag_handlers()
534
+ .unwrap()
535
+ .push(Box::new(move |end| {
534
536
  Self::remove_end_tag(end);
535
537
  Ok(())
536
- })
537
- .unwrap();
538
+ }));
538
539
  }
539
540
  }
540
541
 
data/lib/selma/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Selma
4
- VERSION = "0.0.7"
4
+ VERSION = "0.1.6"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: selma
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.7
4
+ version: 0.1.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Garen J. Torikian
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-01-09 00:00:00.000000000 Z
11
+ date: 2023-06-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rb_sys
@@ -52,20 +52,6 @@ dependencies:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '1.2'
55
- - !ruby/object:Gem::Dependency
56
- name: rake-compiler-dock
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - "~>"
60
- - !ruby/object:Gem::Version
61
- version: '1.2'
62
- type: :development
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - "~>"
67
- - !ruby/object:Gem::Version
68
- version: '1.2'
69
55
  description:
70
56
  email:
71
57
  - gjtorikian@gmail.com
@@ -74,10 +60,11 @@ extensions:
74
60
  - ext/selma/extconf.rb
75
61
  extra_rdoc_files: []
76
62
  files:
63
+ - Cargo.lock
64
+ - Cargo.toml
77
65
  - LICENSE.txt
78
66
  - README.md
79
67
  - ext/selma/Cargo.toml
80
- - ext/selma/_util.rb
81
68
  - ext/selma/extconf.rb
82
69
  - ext/selma/src/html.rs
83
70
  - ext/selma/src/html/element.rs
@@ -102,7 +89,6 @@ files:
102
89
  - lib/selma/sanitizer/config/restricted.rb
103
90
  - lib/selma/selector.rb
104
91
  - lib/selma/version.rb
105
- - selma.gemspec
106
92
  homepage:
107
93
  licenses:
108
94
  - MIT
@@ -126,7 +112,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
126
112
  - !ruby/object:Gem::Version
127
113
  version: 3.3.22
128
114
  requirements: []
129
- rubygems_version: 3.4.3
115
+ rubygems_version: 3.4.13
130
116
  signing_key:
131
117
  specification_version: 4
132
118
  summary: Selma selects and matches HTML nodes using CSS rules. Backed by Rust's lol_html
data/ext/selma/_util.rb DELETED
@@ -1,102 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- RUBY_MAJOR, RUBY_MINOR = RUBY_VERSION.split(".").collect(&:to_i)
4
-
5
- PACKAGE_ROOT_DIR = File.expand_path(File.join(File.dirname(__FILE__), "..", ".."))
6
- PACKAGE_EXT_DIR = File.join(PACKAGE_ROOT_DIR, "ext", "selma")
7
-
8
- OS = case os = RbConfig::CONFIG["host_os"].downcase
9
- when /linux/
10
- # The official ruby-alpine Docker containers pre-build Ruby. As a result,
11
- # Ruby doesn't know that it's on a musl-based platform. `ldd` is the
12
- # a more reliable way to detect musl.
13
- # See https://github.com/skylightio/skylight-ruby/issues/92
14
- if ENV["SKYLIGHT_MUSL"] || %x(ldd --version 2>&1).include?("musl")
15
- "linux-musl"
16
- else
17
- "linux"
18
- end
19
- when /darwin/
20
- "darwin"
21
- when /freebsd/
22
- "freebsd"
23
- when /netbsd/
24
- "netbsd"
25
- when /openbsd/
26
- "openbsd"
27
- when /sunos|solaris/
28
- "solaris"
29
- when /mingw|mswin/
30
- "windows"
31
- else
32
- os
33
- end
34
-
35
- # Normalize the platform CPU
36
- ARCH = case cpu = RbConfig::CONFIG["host_cpu"].downcase
37
- when /amd64|x86_64|x64/
38
- "x86_64"
39
- when /i?86|x86|i86pc/
40
- "x86"
41
- when /ppc|powerpc/
42
- "powerpc"
43
- when /^aarch/
44
- "aarch"
45
- when /^arm/
46
- "arm"
47
- else
48
- cpu
49
- end
50
-
51
- def windows?
52
- OS == "windows"
53
- end
54
-
55
- def solaris?
56
- OS == solaries
57
- end
58
-
59
- def darwin?
60
- OS == "darwin"
61
- end
62
-
63
- def macos?
64
- darwin? || OS == "macos"
65
- end
66
-
67
- def openbsd?
68
- OS == "openbsd"
69
- end
70
-
71
- def aix?
72
- OS == "aix"
73
- end
74
-
75
- def nix?
76
- !(windows? || solaris? || darwin?)
77
- end
78
-
79
- def x86_64?
80
- ARCH == "x86_64"
81
- end
82
-
83
- def x86?
84
- ARCH == "x86"
85
- end
86
-
87
- def abs_path(path)
88
- File.join(PACKAGE_EXT_DIR, path)
89
- end
90
-
91
- def find_header_or_abort(header, *paths)
92
- find_header(header, *paths) || abort("#{header} was expected in `#{paths.join(", ")}`, but it is missing.")
93
- end
94
-
95
- def find_library_or_abort(lib, func, *paths)
96
- find_library(lib, func, *paths) || abort("#{lib} was expected in `#{paths.join(", ")}`, but it is missing.")
97
- end
98
-
99
- def concat_flags(*args)
100
- args.compact.join(" ")
101
- end
102
-
data/selma.gemspec DELETED
@@ -1,41 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- lib = File.expand_path("lib", __dir__)
4
- $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
5
- require "selma/version"
6
-
7
- Gem::Specification.new do |spec|
8
- spec.name = "selma"
9
- spec.version = Selma::VERSION
10
- spec.authors = ["Garen J. Torikian"]
11
- spec.email = ["gjtorikian@gmail.com"]
12
-
13
- spec.summary = "Selma selects and matches HTML nodes using CSS rules. Backed by Rust's lol_html parser."
14
- spec.license = "MIT"
15
-
16
- spec.required_ruby_version = "~> 3.1"
17
- # https://github.com/rubygems/rubygems/pull/5852#issuecomment-1231118509
18
- spec.required_rubygems_version = ">= 3.3.22"
19
-
20
- spec.files = ["LICENSE.txt", "README.md", "selma.gemspec"]
21
- spec.files += Dir.glob("lib/**/*.rb")
22
- spec.files += Dir.glob("ext/**/*.{rs,toml,lock,rb}")
23
- spec.bindir = "exe"
24
- spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
25
-
26
- spec.require_paths = ["lib"]
27
- spec.extensions = ["ext/selma/extconf.rb"]
28
-
29
- spec.metadata = {
30
- "allowed_push_host" => "https://rubygems.org",
31
- "funding_uri" => "https://github.com/sponsors/gjtorikian/",
32
- "source_code_uri" => "https://github.com/gjtorikian/selma",
33
- "rubygems_mfa_required" => "true",
34
- }
35
-
36
- spec.add_dependency("rb_sys", "~> 0.9")
37
-
38
- spec.add_development_dependency("rake", "~> 13.0")
39
- spec.add_development_dependency("rake-compiler", "~> 1.2")
40
- spec.add_development_dependency("rake-compiler-dock", "~> 1.2")
41
- end