~repos /website

#astro#js#html#css

git clone https://pyrossh.dev/repos/website.git

木 Personal website of pyrossh. Built with astrojs, shiki, vite.


032ace7e pyrossh

1 year ago
improve sitemap
package-lock.json CHANGED
@@ -28,9 +28,9 @@
28
28
  "mdsvex": "^0.11.0",
29
29
  "prettier": "^3.1.1",
30
30
  "prettier-plugin-svelte": "^3.1.2",
31
+ "super-sitemap": "^0.14.14",
31
32
  "svelte": "4.2.11",
32
33
  "svelte-check": "^3.6.0",
33
- "svelte-sitemap": "^2.6.0",
34
34
  "typescript": "^5.0.0",
35
35
  "unocss": "^0.58.5",
36
36
  "vite": "^5.0.3",
@@ -1381,54 +1381,6 @@
1381
1381
  "node": ">= 8"
1382
1382
  }
1383
1383
  },
1384
- "node_modules/@oozcitak/dom": {
1385
- "version": "1.15.10",
1386
- "resolved": "https://registry.npmjs.org/@oozcitak/dom/-/dom-1.15.10.tgz",
1387
- "integrity": "sha512-0JT29/LaxVgRcGKvHmSrUTEvZ8BXvZhGl2LASRUgHqDTC1M5g1pLmVv56IYNyt3bG2CUjDkc67wnyZC14pbQrQ==",
1388
- "dev": true,
1389
- "dependencies": {
1390
- "@oozcitak/infra": "1.0.8",
1391
- "@oozcitak/url": "1.0.4",
1392
- "@oozcitak/util": "8.3.8"
1393
- },
1394
- "engines": {
1395
- "node": ">=8.0"
1396
- }
1397
- },
1398
- "node_modules/@oozcitak/infra": {
1399
- "version": "1.0.8",
1400
- "resolved": "https://registry.npmjs.org/@oozcitak/infra/-/infra-1.0.8.tgz",
1401
- "integrity": "sha512-JRAUc9VR6IGHOL7OGF+yrvs0LO8SlqGnPAMqyzOuFZPSZSXI7Xf2O9+awQPSMXgIWGtgUf/dA6Hs6X6ySEaWTg==",
1402
- "dev": true,
1403
- "dependencies": {
1404
- "@oozcitak/util": "8.3.8"
1405
- },
1406
- "engines": {
1407
- "node": ">=6.0"
1408
- }
1409
- },
1410
- "node_modules/@oozcitak/url": {
1411
- "version": "1.0.4",
1412
- "resolved": "https://registry.npmjs.org/@oozcitak/url/-/url-1.0.4.tgz",
1413
- "integrity": "sha512-kDcD8y+y3FCSOvnBI6HJgl00viO/nGbQoCINmQ0h98OhnGITrWR3bOGfwYCthgcrV8AnTJz8MzslTQbC3SOAmw==",
1414
- "dev": true,
1415
- "dependencies": {
1416
- "@oozcitak/infra": "1.0.8",
1417
- "@oozcitak/util": "8.3.8"
1418
- },
1419
- "engines": {
1420
- "node": ">=8.0"
1421
- }
1422
- },
1423
- "node_modules/@oozcitak/util": {
1424
- "version": "8.3.8",
1425
- "resolved": "https://registry.npmjs.org/@oozcitak/util/-/util-8.3.8.tgz",
1426
- "integrity": "sha512-T8TbSnGsxo6TDBJx/Sgv/BlVJL3tshxZP7Aq5R1mSnM5OcHY2dQaxLMu2+E8u3gN0MLOzdjurqN4ZRVuzQycOQ==",
1427
- "dev": true,
1428
- "engines": {
1429
- "node": ">=8.0"
1430
- }
1431
- },
1432
1384
  "node_modules/@playwright/test": {
1433
1385
  "version": "1.41.2",
1434
1386
  "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.41.2.tgz",
@@ -2709,6 +2661,15 @@
2709
2661
  "dequal": "^2.0.3"
2710
2662
  }
2711
2663
  },
2664
+ "node_modules/array-back": {
2665
+ "version": "3.1.0",
2666
+ "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz",
2667
+ "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==",
2668
+ "dev": true,
2669
+ "engines": {
2670
+ "node": ">=6"
2671
+ }
2672
+ },
2712
2673
  "node_modules/assert": {
2713
2674
  "version": "2.1.0",
2714
2675
  "resolved": "https://registry.npmjs.org/assert/-/assert-2.1.0.tgz",
@@ -3025,6 +2986,98 @@
3025
2986
  "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==",
3026
2987
  "dev": true
3027
2988
  },
2989
+ "node_modules/command-line-args": {
2990
+ "version": "5.2.1",
2991
+ "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.2.1.tgz",
2992
+ "integrity": "sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg==",
2993
+ "dev": true,
2994
+ "dependencies": {
2995
+ "array-back": "^3.1.0",
2996
+ "find-replace": "^3.0.0",
2997
+ "lodash.camelcase": "^4.3.0",
2998
+ "typical": "^4.0.0"
2999
+ },
3000
+ "engines": {
3001
+ "node": ">=4.0.0"
3002
+ }
3003
+ },
3004
+ "node_modules/command-line-usage": {
3005
+ "version": "6.1.3",
3006
+ "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-6.1.3.tgz",
3007
+ "integrity": "sha512-sH5ZSPr+7UStsloltmDh7Ce5fb8XPlHyoPzTpyyMuYCtervL65+ubVZ6Q61cFtFl62UyJlc8/JwERRbAFPUqgw==",
3008
+ "dev": true,
3009
+ "dependencies": {
3010
+ "array-back": "^4.0.2",
3011
+ "chalk": "^2.4.2",
3012
+ "table-layout": "^1.0.2",
3013
+ "typical": "^5.2.0"
3014
+ },
3015
+ "engines": {
3016
+ "node": ">=8.0.0"
3017
+ }
3018
+ },
3019
+ "node_modules/command-line-usage/node_modules/array-back": {
3020
+ "version": "4.0.2",
3021
+ "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz",
3022
+ "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==",
3023
+ "dev": true,
3024
+ "engines": {
3025
+ "node": ">=8"
3026
+ }
3027
+ },
3028
+ "node_modules/command-line-usage/node_modules/chalk": {
3029
+ "version": "2.4.2",
3030
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
3031
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
3032
+ "dev": true,
3033
+ "dependencies": {
3034
+ "ansi-styles": "^3.2.1",
3035
+ "escape-string-regexp": "^1.0.5",
3036
+ "supports-color": "^5.3.0"
3037
+ },
3038
+ "engines": {
3039
+ "node": ">=4"
3040
+ }
3041
+ },
3042
+ "node_modules/command-line-usage/node_modules/escape-string-regexp": {
3043
+ "version": "1.0.5",
3044
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
3045
+ "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
3046
+ "dev": true,
3047
+ "engines": {
3048
+ "node": ">=0.8.0"
3049
+ }
3050
+ },
3051
+ "node_modules/command-line-usage/node_modules/has-flag": {
3052
+ "version": "3.0.0",
3053
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
3054
+ "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
3055
+ "dev": true,
3056
+ "engines": {
3057
+ "node": ">=4"
3058
+ }
3059
+ },
3060
+ "node_modules/command-line-usage/node_modules/supports-color": {
3061
+ "version": "5.5.0",
3062
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
3063
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
3064
+ "dev": true,
3065
+ "dependencies": {
3066
+ "has-flag": "^3.0.0"
3067
+ },
3068
+ "engines": {
3069
+ "node": ">=4"
3070
+ }
3071
+ },
3072
+ "node_modules/command-line-usage/node_modules/typical": {
3073
+ "version": "5.2.0",
3074
+ "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz",
3075
+ "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==",
3076
+ "dev": true,
3077
+ "engines": {
3078
+ "node": ">=8"
3079
+ }
3080
+ },
3028
3081
  "node_modules/concat-map": {
3029
3082
  "version": "0.0.1",
3030
3083
  "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
@@ -3119,6 +3172,15 @@
3119
3172
  "node": ">=6"
3120
3173
  }
3121
3174
  },
3175
+ "node_modules/deep-extend": {
3176
+ "version": "0.6.0",
3177
+ "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
3178
+ "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==",
3179
+ "dev": true,
3180
+ "engines": {
3181
+ "node": ">=4.0.0"
3182
+ }
3183
+ },
3122
3184
  "node_modules/deep-is": {
3123
3185
  "version": "0.1.4",
3124
3186
  "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
@@ -3209,6 +3271,22 @@
3209
3271
  "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
3210
3272
  }
3211
3273
  },
3274
+ "node_modules/directory-tree": {
3275
+ "version": "3.5.1",
3276
+ "resolved": "https://registry.npmjs.org/directory-tree/-/directory-tree-3.5.1.tgz",
3277
+ "integrity": "sha512-HqjZ49fDzUnKYUhHxVw9eKBqbQ+lL0v4kSBInlDlaktmLtGoV9tC54a6A0ZfYeIrkMHWTE6MwwmUXP477+UEKQ==",
3278
+ "dev": true,
3279
+ "dependencies": {
3280
+ "command-line-args": "^5.2.0",
3281
+ "command-line-usage": "^6.1.1"
3282
+ },
3283
+ "bin": {
3284
+ "directory-tree": "bin/index.js"
3285
+ },
3286
+ "engines": {
3287
+ "node": ">=10.0"
3288
+ }
3289
+ },
3212
3290
  "node_modules/doctrine": {
3213
3291
  "version": "3.0.0",
3214
3292
  "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
@@ -3694,6 +3772,28 @@
3694
3772
  "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==",
3695
3773
  "dev": true
3696
3774
  },
3775
+ "node_modules/fast-xml-parser": {
3776
+ "version": "4.3.6",
3777
+ "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.3.6.tgz",
3778
+ "integrity": "sha512-M2SovcRxD4+vC493Uc2GZVcZaj66CCJhWurC4viynVSTvrpErCShNcDz1lAho6n9REQKvL/ll4A4/fw6Y9z8nw==",
3779
+ "dev": true,
3780
+ "funding": [
3781
+ {
3782
+ "type": "github",
3783
+ "url": "https://github.com/sponsors/NaturalIntelligence"
3784
+ },
3785
+ {
3786
+ "type": "paypal",
3787
+ "url": "https://paypal.me/naturalintelligence"
3788
+ }
3789
+ ],
3790
+ "dependencies": {
3791
+ "strnum": "^1.0.5"
3792
+ },
3793
+ "bin": {
3794
+ "fxparser": "src/cli/cli.js"
3795
+ }
3796
+ },
3697
3797
  "node_modules/fastq": {
3698
3798
  "version": "1.16.0",
3699
3799
  "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.16.0.tgz",
@@ -3726,6 +3826,18 @@
3726
3826
  "node": ">=8"
3727
3827
  }
3728
3828
  },
3829
+ "node_modules/find-replace": {
3830
+ "version": "3.0.0",
3831
+ "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-3.0.0.tgz",
3832
+ "integrity": "sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==",
3833
+ "dev": true,
3834
+ "dependencies": {
3835
+ "array-back": "^3.0.1"
3836
+ },
3837
+ "engines": {
3838
+ "node": ">=4.0.0"
3839
+ }
3840
+ },
3729
3841
  "node_modules/find-up": {
3730
3842
  "version": "5.0.0",
3731
3843
  "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
@@ -4402,6 +4514,12 @@
4402
4514
  "url": "https://github.com/sponsors/sindresorhus"
4403
4515
  }
4404
4516
  },
4517
+ "node_modules/lodash.camelcase": {
4518
+ "version": "4.3.0",
4519
+ "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz",
4520
+ "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==",
4521
+ "dev": true
4522
+ },
4405
4523
  "node_modules/lodash.merge": {
4406
4524
  "version": "4.6.2",
4407
4525
  "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
@@ -5299,6 +5417,15 @@
5299
5417
  "node": ">= 4"
5300
5418
  }
5301
5419
  },
5420
+ "node_modules/reduce-flatten": {
5421
+ "version": "2.0.0",
5422
+ "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-2.0.0.tgz",
5423
+ "integrity": "sha512-EJ4UNY/U1t2P/2k6oqotuX2Cc3T6nxJwsM0N0asT7dhrtH1ltUxDn4NalSYmPE2rCkVpcf/X6R0wDwcFpzhd4w==",
5424
+ "dev": true,
5425
+ "engines": {
5426
+ "node": ">=6"
5427
+ }
5428
+ },
5302
5429
  "node_modules/remark-github": {
5303
5430
  "version": "12.0.0",
5304
5431
  "resolved": "https://registry.npmjs.org/remark-github/-/remark-github-12.0.0.tgz",
@@ -5656,12 +5783,6 @@
5656
5783
  "node": ">=0.10.0"
5657
5784
  }
5658
5785
  },
5659
- "node_modules/sprintf-js": {
5660
- "version": "1.0.3",
5661
- "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
5662
- "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==",
5663
- "dev": true
5664
- },
5665
5786
  "node_modules/stackback": {
5666
5787
  "version": "0.0.2",
5667
5788
  "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz",
@@ -5722,6 +5843,25 @@
5722
5843
  "url": "https://github.com/sponsors/antfu"
5723
5844
  }
5724
5845
  },
5846
+ "node_modules/strnum": {
5847
+ "version": "1.0.5",
5848
+ "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz",
5849
+ "integrity": "sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==",
5850
+ "dev": true
5851
+ },
5852
+ "node_modules/super-sitemap": {
5853
+ "version": "0.14.14",
5854
+ "resolved": "https://registry.npmjs.org/super-sitemap/-/super-sitemap-0.14.14.tgz",
5855
+ "integrity": "sha512-ZrxbwYD1+7n+CHZaFwt3XW3a74gpLATLaDpH4yN67a0kHRwY8Tm0eLVeIuG07PXfzxCroWj8o60G1m4kigHEaw==",
5856
+ "dev": true,
5857
+ "dependencies": {
5858
+ "directory-tree": "^3.5.1",
5859
+ "fast-xml-parser": "^4.3.2"
5860
+ },
5861
+ "peerDependencies": {
5862
+ "svelte": "^4.0.0"
5863
+ }
5864
+ },
5725
5865
  "node_modules/supports-color": {
5726
5866
  "version": "7.2.0",
5727
5867
  "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
@@ -5870,21 +6010,37 @@
5870
6010
  }
5871
6011
  }
5872
6012
  },
5873
- "node_modules/svelte-sitemap": {
6013
+ "node_modules/table-layout": {
5874
- "version": "2.6.0",
6014
+ "version": "1.0.2",
5875
- "resolved": "https://registry.npmjs.org/svelte-sitemap/-/svelte-sitemap-2.6.0.tgz",
6015
+ "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-1.0.2.tgz",
5876
- "integrity": "sha512-WcwsuIeo8iJFG9a5cgvXwXEGoyjk6Zowb6JmL5BbwfnFXMzakGa1+mQjthw5Ni3UV/gGbE0PgJvc7Ygir3LmFg==",
6016
+ "integrity": "sha512-qd/R7n5rQTRFi+Zf2sk5XVVd9UQl6ZkduPFC3S7WEGJAmetDTjY3qPN50eSKzwuzEyQKy5TN2TiZdkIjos2L6A==",
5877
6017
  "dev": true,
5878
6018
  "dependencies": {
5879
- "fast-glob": "^3.2.12",
6019
+ "array-back": "^4.0.1",
6020
+ "deep-extend": "~0.6.0",
5880
- "minimist": "^1.2.8",
6021
+ "typical": "^5.2.0",
5881
- "xmlbuilder2": "^3.0.2"
6022
+ "wordwrapjs": "^4.0.0"
5882
- },
5883
- "bin": {
5884
- "svelte-sitemap": "index.js"
5885
6023
  },
5886
6024
  "engines": {
5887
- "node": ">= 14.17.0"
6025
+ "node": ">=8.0.0"
6026
+ }
6027
+ },
6028
+ "node_modules/table-layout/node_modules/array-back": {
6029
+ "version": "4.0.2",
6030
+ "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz",
6031
+ "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==",
6032
+ "dev": true,
6033
+ "engines": {
6034
+ "node": ">=8"
6035
+ }
6036
+ },
6037
+ "node_modules/table-layout/node_modules/typical": {
6038
+ "version": "5.2.0",
6039
+ "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz",
6040
+ "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==",
6041
+ "dev": true,
6042
+ "engines": {
6043
+ "node": ">=8"
5888
6044
  }
5889
6045
  },
5890
6046
  "node_modules/text-table": {
@@ -6021,6 +6177,15 @@
6021
6177
  "node": ">=14.17"
6022
6178
  }
6023
6179
  },
6180
+ "node_modules/typical": {
6181
+ "version": "4.0.0",
6182
+ "resolved": "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz",
6183
+ "integrity": "sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==",
6184
+ "dev": true,
6185
+ "engines": {
6186
+ "node": ">=8"
6187
+ }
6188
+ },
6024
6189
  "node_modules/ufo": {
6025
6190
  "version": "1.4.0",
6026
6191
  "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.4.0.tgz",
@@ -6511,47 +6676,32 @@
6511
6676
  "node": ">=8"
6512
6677
  }
6513
6678
  },
6514
- "node_modules/wrappy": {
6679
+ "node_modules/wordwrapjs": {
6515
- "version": "1.0.2",
6680
+ "version": "4.0.1",
6516
- "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
6681
+ "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-4.0.1.tgz",
6517
- "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
6518
- },
6519
- "node_modules/xmlbuilder2": {
6520
- "version": "3.1.1",
6521
- "resolved": "https://registry.npmjs.org/xmlbuilder2/-/xmlbuilder2-3.1.1.tgz",
6522
- "integrity": "sha512-WCSfbfZnQDdLQLiMdGUQpMxxckeQ4oZNMNhLVkcekTu7xhD4tuUDyAPoY8CwXvBYE6LwBHd6QW2WZXlOWr1vCw==",
6682
+ "integrity": "sha512-kKlNACbvHrkpIw6oPeYDSmdCTu2hdMHoyXLTcUKala++lx5Y+wjJ/e474Jqv5abnVmwxw08DiTuHmw69lJGksA==",
6523
6683
  "dev": true,
6524
6684
  "dependencies": {
6525
- "@oozcitak/dom": "1.15.10",
6526
- "@oozcitak/infra": "1.0.8",
6685
+ "reduce-flatten": "^2.0.0",
6527
- "@oozcitak/util": "8.3.8",
6528
- "js-yaml": "3.14.1"
6686
+ "typical": "^5.2.0"
6529
6687
  },
6530
6688
  "engines": {
6531
- "node": ">=12.0"
6689
+ "node": ">=8.0.0"
6532
6690
  }
6533
6691
  },
6534
- "node_modules/xmlbuilder2/node_modules/argparse": {
6692
+ "node_modules/wordwrapjs/node_modules/typical": {
6535
- "version": "1.0.10",
6693
+ "version": "5.2.0",
6536
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
6694
+ "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz",
6537
- "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
6695
+ "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==",
6538
6696
  "dev": true,
6539
- "dependencies": {
6697
+ "engines": {
6540
- "sprintf-js": "~1.0.2"
6698
+ "node": ">=8"
6541
6699
  }
6542
6700
  },
6543
- "node_modules/xmlbuilder2/node_modules/js-yaml": {
6701
+ "node_modules/wrappy": {
6544
- "version": "3.14.1",
6702
+ "version": "1.0.2",
6545
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
6703
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
6546
- "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==",
6704
+ "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
6547
- "dev": true,
6548
- "dependencies": {
6549
- "argparse": "^1.0.7",
6550
- "esprima": "^4.0.0"
6551
- },
6552
- "bin": {
6553
- "js-yaml": "bin/js-yaml.js"
6554
- }
6555
6705
  },
6556
6706
  "node_modules/yallist": {
6557
6707
  "version": "4.0.0",
package.json CHANGED
@@ -13,8 +13,7 @@
13
13
  "lint": "prettier --check . && eslint .",
14
14
  "format": "prettier --write .",
15
15
  "test:integration": "playwright test",
16
- "test:unit": "vitest",
16
+ "test:unit": "vitest"
17
- "postbuild": "npx svelte-sitemap --domain https://pyrossh.dev --ignore '**404**'"
18
17
  },
19
18
  "dependencies": {
20
19
  "@sentry/sveltekit": "^7.102.0",
@@ -37,9 +36,9 @@
37
36
  "mdsvex": "^0.11.0",
38
37
  "prettier": "^3.1.1",
39
38
  "prettier-plugin-svelte": "^3.1.2",
39
+ "super-sitemap": "^0.14.14",
40
40
  "svelte": "4.2.11",
41
41
  "svelte-check": "^3.6.0",
42
- "svelte-sitemap": "^2.6.0",
43
42
  "typescript": "^5.0.0",
44
43
  "unocss": "^0.58.5",
45
44
  "vite": "^5.0.3",
src/routes/sitemap.xml/+server.js ADDED
@@ -0,0 +1,15 @@
1
+ import * as sitemap from 'super-sitemap';
2
+
3
+ export const prerender = true;
4
+
5
+ export async function GET() {
6
+ return await sitemap.response({
7
+ origin: 'https://pyrossh.dev',
8
+ paramValues: {
9
+ '/posts/[slug]': [
10
+ 'eyecandy-golang-error-reporting',
11
+ 'gopibot-to-the-rescue',
12
+ ]
13
+ }
14
+ });
15
+ };
static/robots.txt CHANGED
@@ -0,0 +1,4 @@
1
+ User-agent: *
2
+ Allow: /
3
+
4
+ Sitemap: https://pyrossh.dev/sitemap.xml
tests/sitemap.test.js ADDED
@@ -0,0 +1,27 @@
1
+ import { expect, test } from '@playwright/test';
2
+
3
+ test('/sitemap.xml is valid', async ({ page }) => {
4
+ const response = await page.goto('/sitemap.xml');
5
+ expect(response.status()).toBe(200);
6
+
7
+ // Ensure XML is valid. Playwright parses the XML here and will error if it
8
+ // cannot be parsed.
9
+ const urls = await page.$$eval('url', (urls) =>
10
+ urls.map((url) => ({
11
+ loc: url.querySelector('loc').textContent,
12
+ // changefreq: url.querySelector('changefreq').textContent, // if you enabled in your sitemap
13
+ // priority: url.querySelector('priority').textContent,
14
+ }))
15
+ );
16
+
17
+ // Sanity check
18
+ expect(urls.length).toBeGreaterThanOrEqual(5);
19
+
20
+ // Ensure entries are in a valid format.
21
+ for (const url of urls) {
22
+ expect(url.loc).toBeTruthy();
23
+ expect(() => new URL(url.loc)).not.toThrow();
24
+ // expect(url.changefreq).toBe('daily');
25
+ // expect(url.priority).toBe('0.7');
26
+ }
27
+ });
tests/test.js CHANGED
@@ -2,5 +2,5 @@ import { expect, test } from '@playwright/test';
2
2
 
3
3
  test('index page has expected h1', async ({ page }) => {
4
4
  await page.goto('/');
5
- await expect(page.getByRole('heading', { name: 'Welcome to SvelteKit' })).toBeVisible();
5
+ await expect(page.getByRole('heading', { name: 'pyrossh' })).toBeVisible();
6
6
  });