diff --git a/package.json b/package.json index 639fb806..811b1b79 100644 --- a/package.json +++ b/package.json @@ -47,6 +47,7 @@ "tsconfig.json" ], "dependencies": { + "gray-matter": "^4.0.3", "pug-lexer": "^5.0.0" }, "devDependencies": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e27c7c04..88cd5244 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -14,6 +14,7 @@ specifiers: eslint-plugin-jsdoc: ~39.3.2 eslint-plugin-prettier: ~4.0.0 eslint-plugin-spellcheck: ~0.0.19 + gray-matter: ^4.0.3 prettier: 2.6.2 prettier-plugin-organize-imports: ~2.3.4 pug-lexer: ^5.0.0 @@ -23,17 +24,18 @@ specifiers: vitest: ~0.13.1 dependencies: + gray-matter: 4.0.3 pug-lexer: 5.0.1 devDependencies: - '@types/node': 17.0.39 + '@types/node': 17.0.41 '@types/prettier': 2.6.3 - '@typescript-eslint/eslint-plugin': 5.27.0_kor2e3kwnnzugzo3aovmfcq2la - '@typescript-eslint/parser': 5.27.0_ud6rd4xtew5bv4yhvkvu24pzm4 + '@typescript-eslint/eslint-plugin': 5.27.1_aq7uryhocdbvbqum33pitcm3y4 + '@typescript-eslint/parser': 5.27.1_ud6rd4xtew5bv4yhvkvu24pzm4 benchmark: 2.1.4 eslint: 8.17.0 eslint-config-prettier: 8.5.0_eslint@8.17.0 - eslint-define-config: 1.5.0 + eslint-define-config: 1.5.1 eslint-gitignore: 0.1.0_eslint@8.17.0 eslint-plugin-inclusive-language: 2.2.0 eslint-plugin-jsdoc: 39.3.2_eslint@8.17.0 @@ -42,7 +44,7 @@ devDependencies: prettier: 2.6.2 prettier-plugin-organize-imports: 2.3.4_swzprww56tbt6xqyypkb3snuza typescript: 4.7.3 - vite: 2.9.9 + vite: 2.9.10 vitepress: 1.0.0-alpha.1 vitest: 0.13.1 @@ -279,16 +281,16 @@ packages: resolution: {integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==} dev: true - /@types/node/17.0.39: - resolution: {integrity: sha512-JDU3YLlnPK3WDao6/DlXLOgSNpG13ct+CwIO17V8q0/9fWJyeMJJ/VyZ1lv8kDprihvZMydzVwf0tQOqGiY2Nw==} + /@types/node/17.0.41: + resolution: {integrity: sha512-xA6drNNeqb5YyV5fO3OAEsnXLfO7uF0whiOfPTz5AeDo8KeZFmODKnvwPymMNO8qE/an8pVY/O50tig2SQCrGw==} dev: true /@types/prettier/2.6.3: resolution: {integrity: sha512-ymZk3LEC/fsut+/Q5qejp6R9O1rMxz3XaRHDV6kX8MrGAhOSPqVARbDi+EZvInBpw+BnCX3TD240byVkOfQsHg==} dev: true - /@typescript-eslint/eslint-plugin/5.27.0_kor2e3kwnnzugzo3aovmfcq2la: - resolution: {integrity: sha512-DDrIA7GXtmHXr1VCcx9HivA39eprYBIFxbQEHI6NyraRDxCGpxAFiYQAT/1Y0vh1C+o2vfBiy4IuPoXxtTZCAQ==} + /@typescript-eslint/eslint-plugin/5.27.1_aq7uryhocdbvbqum33pitcm3y4: + resolution: {integrity: sha512-6dM5NKT57ZduNnJfpY81Phe9nc9wolnMCnknb1im6brWi1RYv84nbMS3olJa27B6+irUVV1X/Wb+Am0FjJdGFw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: '@typescript-eslint/parser': ^5.0.0 @@ -298,10 +300,10 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/parser': 5.27.0_ud6rd4xtew5bv4yhvkvu24pzm4 - '@typescript-eslint/scope-manager': 5.27.0 - '@typescript-eslint/type-utils': 5.27.0_ud6rd4xtew5bv4yhvkvu24pzm4 - '@typescript-eslint/utils': 5.27.0_ud6rd4xtew5bv4yhvkvu24pzm4 + '@typescript-eslint/parser': 5.27.1_ud6rd4xtew5bv4yhvkvu24pzm4 + '@typescript-eslint/scope-manager': 5.27.1 + '@typescript-eslint/type-utils': 5.27.1_ud6rd4xtew5bv4yhvkvu24pzm4 + '@typescript-eslint/utils': 5.27.1_ud6rd4xtew5bv4yhvkvu24pzm4 debug: 4.3.4 eslint: 8.17.0 functional-red-black-tree: 1.0.1 @@ -314,8 +316,8 @@ packages: - supports-color dev: true - /@typescript-eslint/parser/5.27.0_ud6rd4xtew5bv4yhvkvu24pzm4: - resolution: {integrity: sha512-8oGjQF46c52l7fMiPPvX4It3u3V3JipssqDfHQ2hcR0AeR8Zge+OYyKUCm5b70X72N1qXt0qgHenwN6Gc2SXZA==} + /@typescript-eslint/parser/5.27.1_ud6rd4xtew5bv4yhvkvu24pzm4: + resolution: {integrity: sha512-7Va2ZOkHi5NP+AZwb5ReLgNF6nWLGTeUJfxdkVUAPPSaAdbWNnFZzLZ4EGGmmiCTg+AwlbE1KyUYTBglosSLHQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 @@ -324,9 +326,9 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 5.27.0 - '@typescript-eslint/types': 5.27.0 - '@typescript-eslint/typescript-estree': 5.27.0_typescript@4.7.3 + '@typescript-eslint/scope-manager': 5.27.1 + '@typescript-eslint/types': 5.27.1 + '@typescript-eslint/typescript-estree': 5.27.1_typescript@4.7.3 debug: 4.3.4 eslint: 8.17.0 typescript: 4.7.3 @@ -334,16 +336,16 @@ packages: - supports-color dev: true - /@typescript-eslint/scope-manager/5.27.0: - resolution: {integrity: sha512-VnykheBQ/sHd1Vt0LJ1JLrMH1GzHO+SzX6VTXuStISIsvRiurue/eRkTqSrG0CexHQgKG8shyJfR4o5VYioB9g==} + /@typescript-eslint/scope-manager/5.27.1: + resolution: {integrity: sha512-fQEOSa/QroWE6fAEg+bJxtRZJTH8NTskggybogHt4H9Da8zd4cJji76gA5SBlR0MgtwF7rebxTbDKB49YUCpAg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - '@typescript-eslint/types': 5.27.0 - '@typescript-eslint/visitor-keys': 5.27.0 + '@typescript-eslint/types': 5.27.1 + '@typescript-eslint/visitor-keys': 5.27.1 dev: true - /@typescript-eslint/type-utils/5.27.0_ud6rd4xtew5bv4yhvkvu24pzm4: - resolution: {integrity: sha512-vpTvRRchaf628Hb/Xzfek+85o//zEUotr1SmexKvTfs7czXfYjXVT/a5yDbpzLBX1rhbqxjDdr1Gyo0x1Fc64g==} + /@typescript-eslint/type-utils/5.27.1_ud6rd4xtew5bv4yhvkvu24pzm4: + resolution: {integrity: sha512-+UC1vVUWaDHRnC2cQrCJ4QtVjpjjCgjNFpg8b03nERmkHv9JV9X5M19D7UFMd+/G7T/sgFwX2pGmWK38rqyvXw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: '*' @@ -352,7 +354,7 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/utils': 5.27.0_ud6rd4xtew5bv4yhvkvu24pzm4 + '@typescript-eslint/utils': 5.27.1_ud6rd4xtew5bv4yhvkvu24pzm4 debug: 4.3.4 eslint: 8.17.0 tsutils: 3.21.0_typescript@4.7.3 @@ -361,13 +363,13 @@ packages: - supports-color dev: true - /@typescript-eslint/types/5.27.0: - resolution: {integrity: sha512-lY6C7oGm9a/GWhmUDOs3xAVRz4ty/XKlQ2fOLr8GAIryGn0+UBOoJDWyHer3UgrHkenorwvBnphhP+zPmzmw0A==} + /@typescript-eslint/types/5.27.1: + resolution: {integrity: sha512-LgogNVkBhCTZU/m8XgEYIWICD6m4dmEDbKXESCbqOXfKZxRKeqpiJXQIErv66sdopRKZPo5l32ymNqibYEH/xg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@typescript-eslint/typescript-estree/5.27.0_typescript@4.7.3: - resolution: {integrity: sha512-QywPMFvgZ+MHSLRofLI7BDL+UczFFHyj0vF5ibeChDAJgdTV8k4xgEwF0geFhVlPc1p8r70eYewzpo6ps+9LJQ==} + /@typescript-eslint/typescript-estree/5.27.1_typescript@4.7.3: + resolution: {integrity: sha512-DnZvvq3TAJ5ke+hk0LklvxwYsnXpRdqUY5gaVS0D4raKtbznPz71UJGnPTHEFo0GDxqLOLdMkkmVZjSpET1hFw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: typescript: '*' @@ -375,8 +377,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 5.27.0 - '@typescript-eslint/visitor-keys': 5.27.0 + '@typescript-eslint/types': 5.27.1 + '@typescript-eslint/visitor-keys': 5.27.1 debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 @@ -387,16 +389,16 @@ packages: - supports-color dev: true - /@typescript-eslint/utils/5.27.0_ud6rd4xtew5bv4yhvkvu24pzm4: - resolution: {integrity: sha512-nZvCrkIJppym7cIbP3pOwIkAefXOmfGPnCM0LQfzNaKxJHI6VjI8NC662uoiPlaf5f6ymkTy9C3NQXev2mdXmA==} + /@typescript-eslint/utils/5.27.1_ud6rd4xtew5bv4yhvkvu24pzm4: + resolution: {integrity: sha512-mZ9WEn1ZLDaVrhRaYgzbkXBkTPghPFsup8zDbbsYTxC5OmqrFE7skkKS/sraVsLP3TcT3Ki5CSyEFBRkLH/H/w==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: '@types/json-schema': 7.0.11 - '@typescript-eslint/scope-manager': 5.27.0 - '@typescript-eslint/types': 5.27.0 - '@typescript-eslint/typescript-estree': 5.27.0_typescript@4.7.3 + '@typescript-eslint/scope-manager': 5.27.1 + '@typescript-eslint/types': 5.27.1 + '@typescript-eslint/typescript-estree': 5.27.1_typescript@4.7.3 eslint: 8.17.0 eslint-scope: 5.1.1 eslint-utils: 3.0.0_eslint@8.17.0 @@ -405,109 +407,109 @@ packages: - typescript dev: true - /@typescript-eslint/visitor-keys/5.27.0: - resolution: {integrity: sha512-46cYrteA2MrIAjv9ai44OQDUoCZyHeGIc4lsjCUX2WT6r4C+kidz1bNiR4017wHOPUythYeH+Sc7/cFP97KEAA==} + /@typescript-eslint/visitor-keys/5.27.1: + resolution: {integrity: sha512-xYs6ffo01nhdJgPieyk7HAOpjhTsx7r/oB9LWEhwAXgwn33tkr+W8DI2ChboqhZlC4q3TC6geDYPoiX8ROqyOQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - '@typescript-eslint/types': 5.27.0 + '@typescript-eslint/types': 5.27.1 eslint-visitor-keys: 3.3.0 dev: true - /@vitejs/plugin-vue/2.3.3_vite@2.9.9+vue@3.2.36: + /@vitejs/plugin-vue/2.3.3_vite@2.9.10+vue@3.2.37: resolution: {integrity: sha512-SmQLDyhz+6lGJhPELsBdzXGc+AcaT8stgkbiTFGpXPe8Tl1tJaBw1A6pxDqDuRsVkD8uscrkx3hA7QDOoKYtyw==} engines: {node: '>=12.0.0'} peerDependencies: vite: ^2.5.10 vue: ^3.2.25 dependencies: - vite: 2.9.9 - vue: 3.2.36 + vite: 2.9.10 + vue: 3.2.37 dev: true - /@vue/compiler-core/3.2.36: - resolution: {integrity: sha512-bbyZM5hvBicv0PW3KUfVi+x3ylHnfKG7DOn5wM+f2OztTzTjLEyBb/5yrarIYpmnGitVGbjZqDbODyW4iK8hqw==} + /@vue/compiler-core/3.2.37: + resolution: {integrity: sha512-81KhEjo7YAOh0vQJoSmAD68wLfYqJvoiD4ulyedzF+OEk/bk6/hx3fTNVfuzugIIaTrOx4PGx6pAiBRe5e9Zmg==} dependencies: '@babel/parser': 7.18.4 - '@vue/shared': 3.2.36 + '@vue/shared': 3.2.37 estree-walker: 2.0.2 source-map: 0.6.1 dev: true - /@vue/compiler-dom/3.2.36: - resolution: {integrity: sha512-tcOTAOiW4s24QLnq+ON6J+GRONXJ+A/mqKCORi0LSlIh8XQlNnlm24y8xIL8la+ZDgkdbjarQ9ZqYSvEja6gVA==} + /@vue/compiler-dom/3.2.37: + resolution: {integrity: sha512-yxJLH167fucHKxaqXpYk7x8z7mMEnXOw3G2q62FTkmsvNxu4FQSu5+3UMb+L7fjKa26DEzhrmCxAgFLLIzVfqQ==} dependencies: - '@vue/compiler-core': 3.2.36 - '@vue/shared': 3.2.36 + '@vue/compiler-core': 3.2.37 + '@vue/shared': 3.2.37 dev: true - /@vue/compiler-sfc/3.2.36: - resolution: {integrity: sha512-AvGb4bTj4W8uQ4BqaSxo7UwTEqX5utdRSMyHy58OragWlt8nEACQ9mIeQh3K4di4/SX+41+pJrLIY01lHAOFOA==} + /@vue/compiler-sfc/3.2.37: + resolution: {integrity: sha512-+7i/2+9LYlpqDv+KTtWhOZH+pa8/HnX/905MdVmAcI/mPQOBwkHHIzrsEsucyOIZQYMkXUiTkmZq5am/NyXKkg==} dependencies: '@babel/parser': 7.18.4 - '@vue/compiler-core': 3.2.36 - '@vue/compiler-dom': 3.2.36 - '@vue/compiler-ssr': 3.2.36 - '@vue/reactivity-transform': 3.2.36 - '@vue/shared': 3.2.36 + '@vue/compiler-core': 3.2.37 + '@vue/compiler-dom': 3.2.37 + '@vue/compiler-ssr': 3.2.37 + '@vue/reactivity-transform': 3.2.37 + '@vue/shared': 3.2.37 estree-walker: 2.0.2 magic-string: 0.25.9 postcss: 8.4.14 source-map: 0.6.1 dev: true - /@vue/compiler-ssr/3.2.36: - resolution: {integrity: sha512-+KugInUFRvOxEdLkZwE+W43BqHyhBh0jpYXhmqw1xGq2dmE6J9eZ8UUSOKNhdHtQ/iNLWWeK/wPZkVLUf3YGaw==} + /@vue/compiler-ssr/3.2.37: + resolution: {integrity: sha512-7mQJD7HdXxQjktmsWp/J67lThEIcxLemz1Vb5I6rYJHR5vI+lON3nPGOH3ubmbvYGt8xEUaAr1j7/tIFWiEOqw==} dependencies: - '@vue/compiler-dom': 3.2.36 - '@vue/shared': 3.2.36 + '@vue/compiler-dom': 3.2.37 + '@vue/shared': 3.2.37 dev: true - /@vue/reactivity-transform/3.2.36: - resolution: {integrity: sha512-Jk5o2BhpODC9XTA7o4EL8hSJ4JyrFWErLtClG3NH8wDS7ri9jBDWxI7/549T7JY9uilKsaNM+4pJASLj5dtRwA==} + /@vue/reactivity-transform/3.2.37: + resolution: {integrity: sha512-IWopkKEb+8qpu/1eMKVeXrK0NLw9HicGviJzhJDEyfxTR9e1WtpnnbYkJWurX6WwoFP0sz10xQg8yL8lgskAZg==} dependencies: '@babel/parser': 7.18.4 - '@vue/compiler-core': 3.2.36 - '@vue/shared': 3.2.36 + '@vue/compiler-core': 3.2.37 + '@vue/shared': 3.2.37 estree-walker: 2.0.2 magic-string: 0.25.9 dev: true - /@vue/reactivity/3.2.36: - resolution: {integrity: sha512-c2qvopo0crh9A4GXi2/2kfGYMxsJW4tVILrqRPydVGZHhq0fnzy6qmclWOhBFckEhmyxmpHpdJtIRYGeKcuhnA==} + /@vue/reactivity/3.2.37: + resolution: {integrity: sha512-/7WRafBOshOc6m3F7plwzPeCu/RCVv9uMpOwa/5PiY1Zz+WLVRWiy0MYKwmg19KBdGtFWsmZ4cD+LOdVPcs52A==} dependencies: - '@vue/shared': 3.2.36 + '@vue/shared': 3.2.37 dev: true - /@vue/runtime-core/3.2.36: - resolution: {integrity: sha512-PTWBD+Lub+1U3/KhbCExrfxyS14hstLX+cBboxVHaz+kXoiDLNDEYAovPtxeTutbqtClIXtft+wcGdC+FUQ9qQ==} + /@vue/runtime-core/3.2.37: + resolution: {integrity: sha512-JPcd9kFyEdXLl/i0ClS7lwgcs0QpUAWj+SKX2ZC3ANKi1U4DOtiEr6cRqFXsPwY5u1L9fAjkinIdB8Rz3FoYNQ==} dependencies: - '@vue/reactivity': 3.2.36 - '@vue/shared': 3.2.36 + '@vue/reactivity': 3.2.37 + '@vue/shared': 3.2.37 dev: true - /@vue/runtime-dom/3.2.36: - resolution: {integrity: sha512-gYPYblm7QXHVuBohqNRRT7Wez0f2Mx2D40rb4fleehrJU9CnkjG0phhcGEZFfGwCmHZRqBCRgbFWE98bPULqkg==} + /@vue/runtime-dom/3.2.37: + resolution: {integrity: sha512-HimKdh9BepShW6YozwRKAYjYQWg9mQn63RGEiSswMbW+ssIht1MILYlVGkAGGQbkhSh31PCdoUcfiu4apXJoPw==} dependencies: - '@vue/runtime-core': 3.2.36 - '@vue/shared': 3.2.36 + '@vue/runtime-core': 3.2.37 + '@vue/shared': 3.2.37 csstype: 2.6.20 dev: true - /@vue/server-renderer/3.2.36_vue@3.2.36: - resolution: {integrity: sha512-uZE0+jfye6yYXWvAQYeHZv+f50sRryvy16uiqzk3jn8hEY8zTjI+rzlmZSGoE915k+W/Ol9XSw6vxOUD8dGkUg==} + /@vue/server-renderer/3.2.37_vue@3.2.37: + resolution: {integrity: sha512-kLITEJvaYgZQ2h47hIzPh2K3jG8c1zCVbp/o/bzQOyvzaKiCquKS7AaioPI28GNxIsE/zSx+EwWYsNxDCX95MA==} peerDependencies: - vue: 3.2.36 + vue: 3.2.37 dependencies: - '@vue/compiler-ssr': 3.2.36 - '@vue/shared': 3.2.36 - vue: 3.2.36 + '@vue/compiler-ssr': 3.2.37 + '@vue/shared': 3.2.37 + vue: 3.2.37 dev: true - /@vue/shared/3.2.36: - resolution: {integrity: sha512-JtB41wXl7Au3+Nl3gD16Cfpj7k/6aCroZ6BbOiCMFCMvrOpkg/qQUXTso2XowaNqBbnkuGHurLAqkLBxNGc1hQ==} + /@vue/shared/3.2.37: + resolution: {integrity: sha512-4rSJemR2NQIo9Klm1vabqWjD8rs/ZaJSzMxkMNeJS6lHiUjjUeYFbooN19NgFjztubEKh3WlZUeOLVdbbUWHsw==} dev: true - /@vueuse/core/8.6.0_vue@3.2.36: + /@vueuse/core/8.6.0_vue@3.2.37: resolution: {integrity: sha512-VirzExCm/N+QdrEWT7J4uSrvJ5hquKIAU9alQ37kUvIJk9XxCLxmfRnmekYc1kz2+6BnoyuKYXVmrMV351CB4w==} peerDependencies: '@vue/composition-api': ^1.1.0 @@ -519,16 +521,16 @@ packages: optional: true dependencies: '@vueuse/metadata': 8.6.0 - '@vueuse/shared': 8.6.0_vue@3.2.36 - vue: 3.2.36 - vue-demi: 0.13.1_vue@3.2.36 + '@vueuse/shared': 8.6.0_vue@3.2.37 + vue: 3.2.37 + vue-demi: 0.13.1_vue@3.2.37 dev: true /@vueuse/metadata/8.6.0: resolution: {integrity: sha512-F+CKPvaExsm7QgRr8y+ZNJFwXasn89rs5wth/HeX9lJ1q8XEt+HJ16Q5Sxh4rfG5YSKXrStveVge8TKvPjMjFA==} dev: true - /@vueuse/shared/8.6.0_vue@3.2.36: + /@vueuse/shared/8.6.0_vue@3.2.37: resolution: {integrity: sha512-Y/IVywZo7IfEoSSEtCYpkVEmPV7pU35mEIxV7PbD/D3ly18B3mEsBaPbtDkNM/QP3zAZ5mn4nEkOfddX4uwuIA==} peerDependencies: '@vue/composition-api': ^1.1.0 @@ -539,8 +541,8 @@ packages: vue: optional: true dependencies: - vue: 3.2.36 - vue-demi: 0.13.1_vue@3.2.36 + vue: 3.2.37 + vue-demi: 0.13.1_vue@3.2.37 dev: true /acorn-jsx/5.3.2_acorn@8.7.1: @@ -603,6 +605,12 @@ packages: color-convert: 2.0.1 dev: true + /argparse/1.0.10: + resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} + dependencies: + sprintf-js: 1.0.3 + dev: false + /argparse/2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} dev: true @@ -659,7 +667,7 @@ packages: resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} dependencies: function-bind: 1.1.1 - get-intrinsic: 1.1.1 + get-intrinsic: 1.1.2 /callsites/3.1.0: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} @@ -714,7 +722,7 @@ packages: dev: true /concat-map/0.0.1: - resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=} + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} dev: true /cross-spawn/7.0.3: @@ -783,7 +791,7 @@ packages: es-to-primitive: 1.2.1 function-bind: 1.1.1 function.prototype.name: 1.1.5 - get-intrinsic: 1.1.1 + get-intrinsic: 1.1.2 get-symbol-description: 1.0.0 has: 1.0.3 has-property-descriptors: 1.0.0 @@ -819,8 +827,8 @@ packages: is-symbol: 1.0.4 dev: true - /esbuild-android-64/0.14.42: - resolution: {integrity: sha512-P4Y36VUtRhK/zivqGVMqhptSrFILAGlYp0Z8r9UQqHJ3iWztRCNWnlBzD9HRx0DbueXikzOiwyOri+ojAFfW6A==} + /esbuild-android-64/0.14.43: + resolution: {integrity: sha512-kqFXAS72K6cNrB6RiM7YJ5lNvmWRDSlpi7ZuRZ1hu1S3w0zlwcoCxWAyM23LQUyZSs1PbjHgdbbfYAN8IGh6xg==} engines: {node: '>=12'} cpu: [x64] os: [android] @@ -828,8 +836,8 @@ packages: dev: true optional: true - /esbuild-android-arm64/0.14.42: - resolution: {integrity: sha512-0cOqCubq+RWScPqvtQdjXG3Czb3AWI2CaKw3HeXry2eoA2rrPr85HF7IpdU26UWdBXgPYtlTN1LUiuXbboROhg==} + /esbuild-android-arm64/0.14.43: + resolution: {integrity: sha512-bKS2BBFh+7XZY9rpjiHGRNA7LvWYbZWP87pLehggTG7tTaCDvj8qQGOU/OZSjCSKDYbgY7Q+oDw8RlYQ2Jt2BA==} engines: {node: '>=12'} cpu: [arm64] os: [android] @@ -837,8 +845,8 @@ packages: dev: true optional: true - /esbuild-darwin-64/0.14.42: - resolution: {integrity: sha512-ipiBdCA3ZjYgRfRLdQwP82rTiv/YVMtW36hTvAN5ZKAIfxBOyPXY7Cejp3bMXWgzKD8B6O+zoMzh01GZsCuEIA==} + /esbuild-darwin-64/0.14.43: + resolution: {integrity: sha512-/3PSilx011ttoieRGkSZ0XV8zjBf2C9enV4ScMMbCT4dpx0mFhMOpFnCHkOK0pWGB8LklykFyHrWk2z6DENVUg==} engines: {node: '>=12'} cpu: [x64] os: [darwin] @@ -846,8 +854,8 @@ packages: dev: true optional: true - /esbuild-darwin-arm64/0.14.42: - resolution: {integrity: sha512-bU2tHRqTPOaoH/4m0zYHbFWpiYDmaA0gt90/3BMEFaM0PqVK/a6MA2V/ypV5PO0v8QxN6gH5hBPY4YJ2lopXgA==} + /esbuild-darwin-arm64/0.14.43: + resolution: {integrity: sha512-1HyFUKs8DMCBOvw1Qxpr5Vv/ThNcVIFb5xgXWK3pyT40WPvgYIiRTwJCvNs4l8i5qWF8/CK5bQxJVDjQvtv0Yw==} engines: {node: '>=12'} cpu: [arm64] os: [darwin] @@ -855,8 +863,8 @@ packages: dev: true optional: true - /esbuild-freebsd-64/0.14.42: - resolution: {integrity: sha512-75h1+22Ivy07+QvxHyhVqOdekupiTZVLN1PMwCDonAqyXd8TVNJfIRFrdL8QmSJrOJJ5h8H1I9ETyl2L8LQDaw==} + /esbuild-freebsd-64/0.14.43: + resolution: {integrity: sha512-FNWc05TPHYgaXjbPZO5/rJKSBslfG6BeMSs8GhwnqAKP56eEhvmzwnIz1QcC9cRVyO+IKqWNfmHFkCa1WJTULA==} engines: {node: '>=12'} cpu: [x64] os: [freebsd] @@ -864,8 +872,8 @@ packages: dev: true optional: true - /esbuild-freebsd-arm64/0.14.42: - resolution: {integrity: sha512-W6Jebeu5TTDQMJUJVarEzRU9LlKpNkPBbjqSu+GUPTHDCly5zZEQq9uHkmHHl7OKm+mQ2zFySN83nmfCeZCyNA==} + /esbuild-freebsd-arm64/0.14.43: + resolution: {integrity: sha512-amrYopclz3VohqisOPR6hA3GOWA3LZC1WDLnp21RhNmoERmJ/vLnOpnrG2P/Zao+/erKTCUqmrCIPVtj58DRoA==} engines: {node: '>=12'} cpu: [arm64] os: [freebsd] @@ -873,8 +881,8 @@ packages: dev: true optional: true - /esbuild-linux-32/0.14.42: - resolution: {integrity: sha512-Ooy/Bj+mJ1z4jlWcK5Dl6SlPlCgQB9zg1UrTCeY8XagvuWZ4qGPyYEWGkT94HUsRi2hKsXvcs6ThTOjBaJSMfg==} + /esbuild-linux-32/0.14.43: + resolution: {integrity: sha512-KoxoEra+9O3AKVvgDFvDkiuddCds6q71owSQEYwjtqRV7RwbPzKxJa6+uyzUulHcyGVq0g15K0oKG5CFBcvYDw==} engines: {node: '>=12'} cpu: [ia32] os: [linux] @@ -882,8 +890,8 @@ packages: dev: true optional: true - /esbuild-linux-64/0.14.42: - resolution: {integrity: sha512-2L0HbzQfbTuemUWfVqNIjOfaTRt9zsvjnme6lnr7/MO9toz/MJ5tZhjqrG6uDWDxhsaHI2/nsDgrv8uEEN2eoA==} + /esbuild-linux-64/0.14.43: + resolution: {integrity: sha512-EwINwGMyiJMgBby5/SbMqKcUhS5AYAZ2CpEBzSowsJPNBJEdhkCTtEjk757TN/wxgbu3QklqDM6KghY660QCUw==} engines: {node: '>=12'} cpu: [x64] os: [linux] @@ -891,8 +899,8 @@ packages: dev: true optional: true - /esbuild-linux-arm/0.14.42: - resolution: {integrity: sha512-STq69yzCMhdRaWnh29UYrLSr/qaWMm/KqwaRF1pMEK7kDiagaXhSL1zQGXbYv94GuGY/zAwzK98+6idCMUOOCg==} + /esbuild-linux-arm/0.14.43: + resolution: {integrity: sha512-e6YzQUoDxxtyamuF12eVzzRC7bbEFSZohJ6igQB9tBqnNmIQY3fI6Cns3z2wxtbZ3f2o6idkD2fQnlvs2902Dg==} engines: {node: '>=12'} cpu: [arm] os: [linux] @@ -900,8 +908,8 @@ packages: dev: true optional: true - /esbuild-linux-arm64/0.14.42: - resolution: {integrity: sha512-c3Ug3e9JpVr8jAcfbhirtpBauLxzYPpycjWulD71CF6ZSY26tvzmXMJYooQ2YKqDY4e/fPu5K8bm7MiXMnyxuA==} + /esbuild-linux-arm64/0.14.43: + resolution: {integrity: sha512-UlSpjMWllAc70zYbHxWuDS3FJytyuR/gHJYBr8BICcTNb/TSOYVBg6U7b3jZ3mILTrgzwJUHwhEwK18FZDouUQ==} engines: {node: '>=12'} cpu: [arm64] os: [linux] @@ -909,8 +917,8 @@ packages: dev: true optional: true - /esbuild-linux-mips64le/0.14.42: - resolution: {integrity: sha512-QuvpHGbYlkyXWf2cGm51LBCHx6eUakjaSrRpUqhPwjh/uvNUYvLmz2LgPTTPwCqaKt0iwL+OGVL0tXA5aDbAbg==} + /esbuild-linux-mips64le/0.14.43: + resolution: {integrity: sha512-f+v8cInPEL1/SDP//CfSYzcDNgE4CY3xgDV81DWm3KAPWzhvxARrKxB1Pstf5mB56yAslJDxu7ryBUPX207EZA==} engines: {node: '>=12'} cpu: [mips64el] os: [linux] @@ -918,8 +926,8 @@ packages: dev: true optional: true - /esbuild-linux-ppc64le/0.14.42: - resolution: {integrity: sha512-8ohIVIWDbDT+i7lCx44YCyIRrOW1MYlks9fxTo0ME2LS/fxxdoJBwHWzaDYhjvf8kNpA+MInZvyOEAGoVDrMHg==} + /esbuild-linux-ppc64le/0.14.43: + resolution: {integrity: sha512-5wZYMDGAL/K2pqkdIsW+I4IR41kyfHr/QshJcNpUfK3RjB3VQcPWOaZmc+74rm4ZjVirYrtz+jWw0SgxtxRanA==} engines: {node: '>=12'} cpu: [ppc64] os: [linux] @@ -927,8 +935,8 @@ packages: dev: true optional: true - /esbuild-linux-riscv64/0.14.42: - resolution: {integrity: sha512-DzDqK3TuoXktPyG1Lwx7vhaF49Onv3eR61KwQyxYo4y5UKTpL3NmuarHSIaSVlTFDDpcIajCDwz5/uwKLLgKiQ==} + /esbuild-linux-riscv64/0.14.43: + resolution: {integrity: sha512-lYcAOUxp85hC7lSjycJUVSmj4/9oEfSyXjb/ua9bNl8afonaduuqtw7hvKMoKuYnVwOCDw4RSfKpcnIRDWq+Bw==} engines: {node: '>=12'} cpu: [riscv64] os: [linux] @@ -936,8 +944,8 @@ packages: dev: true optional: true - /esbuild-linux-s390x/0.14.42: - resolution: {integrity: sha512-YFRhPCxl8nb//Wn6SiS5pmtplBi4z9yC2gLrYoYI/tvwuB1jldir9r7JwAGy1Ck4D7sE7wBN9GFtUUX/DLdcEQ==} + /esbuild-linux-s390x/0.14.43: + resolution: {integrity: sha512-27e43ZhHvhFE4nM7HqtUbMRu37I/4eNSUbb8FGZWszV+uLzMIsHDwLoBiJmw7G9N+hrehNPeQ4F5Ujad0DrUKQ==} engines: {node: '>=12'} cpu: [s390x] os: [linux] @@ -945,8 +953,8 @@ packages: dev: true optional: true - /esbuild-netbsd-64/0.14.42: - resolution: {integrity: sha512-QYSD2k+oT9dqB/4eEM9c+7KyNYsIPgzYOSrmfNGDIyJrbT1d+CFVKvnKahDKNJLfOYj8N4MgyFaU9/Ytc6w5Vw==} + /esbuild-netbsd-64/0.14.43: + resolution: {integrity: sha512-2mH4QF6hHBn5zzAfxEI/2eBC0mspVsZ6UVo821LpAJKMvLJPBk3XJO5xwg7paDqSqpl7p6IRrAenW999AEfJhQ==} engines: {node: '>=12'} cpu: [x64] os: [netbsd] @@ -954,8 +962,8 @@ packages: dev: true optional: true - /esbuild-openbsd-64/0.14.42: - resolution: {integrity: sha512-M2meNVIKWsm2HMY7+TU9AxM7ZVwI9havdsw6m/6EzdXysyCFFSoaTQ/Jg03izjCsK17FsVRHqRe26Llj6x0MNA==} + /esbuild-openbsd-64/0.14.43: + resolution: {integrity: sha512-ZhQpiZjvqCqO8jKdGp9+8k9E/EHSA+zIWOg+grwZasI9RoblqJ1QiZqqi7jfd6ZrrG1UFBNGe4m0NFxCFbMVbg==} engines: {node: '>=12'} cpu: [x64] os: [openbsd] @@ -963,8 +971,8 @@ packages: dev: true optional: true - /esbuild-sunos-64/0.14.42: - resolution: {integrity: sha512-uXV8TAZEw36DkgW8Ak3MpSJs1ofBb3Smkc/6pZ29sCAN1KzCAQzsje4sUwugf+FVicrHvlamCOlFZIXgct+iqQ==} + /esbuild-sunos-64/0.14.43: + resolution: {integrity: sha512-DgxSi9DaHReL9gYuul2rrQCAapgnCJkh3LSHPKsY26zytYppG0HgkgVF80zjIlvEsUbGBP/GHQzBtrezj/Zq1Q==} engines: {node: '>=12'} cpu: [x64] os: [sunos] @@ -972,8 +980,8 @@ packages: dev: true optional: true - /esbuild-windows-32/0.14.42: - resolution: {integrity: sha512-4iw/8qWmRICWi9ZOnJJf9sYt6wmtp3hsN4TdI5NqgjfOkBVMxNdM9Vt3626G1Rda9ya2Q0hjQRD9W1o+m6Lz6g==} + /esbuild-windows-32/0.14.43: + resolution: {integrity: sha512-Ih3+2O5oExiqm0mY6YYE5dR0o8+AspccQ3vIAtRodwFvhuyGLjb0Hbmzun/F3Lw19nuhPMu3sW2fqIJ5xBxByw==} engines: {node: '>=12'} cpu: [ia32] os: [win32] @@ -981,8 +989,8 @@ packages: dev: true optional: true - /esbuild-windows-64/0.14.42: - resolution: {integrity: sha512-j3cdK+Y3+a5H0wHKmLGTJcq0+/2mMBHPWkItR3vytp/aUGD/ua/t2BLdfBIzbNN9nLCRL9sywCRpOpFMx3CxzA==} + /esbuild-windows-64/0.14.43: + resolution: {integrity: sha512-8NsuNfI8xwFuJbrCuI+aBqNTYkrWErejFO5aYM+yHqyHuL8mmepLS9EPzAzk8rvfaJrhN0+RvKWAcymViHOKEw==} engines: {node: '>=12'} cpu: [x64] os: [win32] @@ -990,8 +998,8 @@ packages: dev: true optional: true - /esbuild-windows-arm64/0.14.42: - resolution: {integrity: sha512-+lRAARnF+hf8J0mN27ujO+VbhPbDqJ8rCcJKye4y7YZLV6C4n3pTRThAb388k/zqF5uM0lS5O201u0OqoWSicw==} + /esbuild-windows-arm64/0.14.43: + resolution: {integrity: sha512-7ZlD7bo++kVRblJEoG+cepljkfP8bfuTPz5fIXzptwnPaFwGS6ahvfoYzY7WCf5v/1nX2X02HDraVItTgbHnKw==} engines: {node: '>=12'} cpu: [arm64] os: [win32] @@ -999,32 +1007,32 @@ packages: dev: true optional: true - /esbuild/0.14.42: - resolution: {integrity: sha512-V0uPZotCEHokJdNqyozH6qsaQXqmZEOiZWrXnds/zaH/0SyrIayRXWRB98CENO73MIZ9T3HBIOsmds5twWtmgw==} + /esbuild/0.14.43: + resolution: {integrity: sha512-Uf94+kQmy/5jsFwKWiQB4hfo/RkM9Dh7b79p8yqd1tshULdr25G2szLz631NoH3s2ujnKEKVD16RmOxvCNKRFA==} engines: {node: '>=12'} hasBin: true requiresBuild: true optionalDependencies: - esbuild-android-64: 0.14.42 - esbuild-android-arm64: 0.14.42 - esbuild-darwin-64: 0.14.42 - esbuild-darwin-arm64: 0.14.42 - esbuild-freebsd-64: 0.14.42 - esbuild-freebsd-arm64: 0.14.42 - esbuild-linux-32: 0.14.42 - esbuild-linux-64: 0.14.42 - esbuild-linux-arm: 0.14.42 - esbuild-linux-arm64: 0.14.42 - esbuild-linux-mips64le: 0.14.42 - esbuild-linux-ppc64le: 0.14.42 - esbuild-linux-riscv64: 0.14.42 - esbuild-linux-s390x: 0.14.42 - esbuild-netbsd-64: 0.14.42 - esbuild-openbsd-64: 0.14.42 - esbuild-sunos-64: 0.14.42 - esbuild-windows-32: 0.14.42 - esbuild-windows-64: 0.14.42 - esbuild-windows-arm64: 0.14.42 + esbuild-android-64: 0.14.43 + esbuild-android-arm64: 0.14.43 + esbuild-darwin-64: 0.14.43 + esbuild-darwin-arm64: 0.14.43 + esbuild-freebsd-64: 0.14.43 + esbuild-freebsd-arm64: 0.14.43 + esbuild-linux-32: 0.14.43 + esbuild-linux-64: 0.14.43 + esbuild-linux-arm: 0.14.43 + esbuild-linux-arm64: 0.14.43 + esbuild-linux-mips64le: 0.14.43 + esbuild-linux-ppc64le: 0.14.43 + esbuild-linux-riscv64: 0.14.43 + esbuild-linux-s390x: 0.14.43 + esbuild-netbsd-64: 0.14.43 + esbuild-openbsd-64: 0.14.43 + esbuild-sunos-64: 0.14.43 + esbuild-windows-32: 0.14.43 + esbuild-windows-64: 0.14.43 + esbuild-windows-arm64: 0.14.43 dev: true /escape-string-regexp/4.0.0: @@ -1041,8 +1049,8 @@ packages: eslint: 8.17.0 dev: true - /eslint-define-config/1.5.0: - resolution: {integrity: sha512-2C6tmeMRAXQ+y5vxbXsOjn/CTmMseJ0eRXsK+ThFEjeibSpMmurPq2SjBGzl5Ha4pTpVSMJQc0lzE8Y3hPYbHQ==} + /eslint-define-config/1.5.1: + resolution: {integrity: sha512-6gxrmN7aKGffaO8dCtMMKyo3IxbWymMQ248p4lf8GbaFRcLsqOXHFdUhhM0Hcy1NudvnpwHcfbDf7Nh9pIm1TA==} engines: {node: '>= 14.6.0', npm: '>= 6.0.0', pnpm: '>= 7.0.0'} dev: true @@ -1201,6 +1209,12 @@ packages: eslint-visitor-keys: 3.3.0 dev: true + /esprima/4.0.1: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + engines: {node: '>=4'} + hasBin: true + dev: false + /esquery/1.4.0: resolution: {integrity: sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==} engines: {node: '>=0.10'} @@ -1234,6 +1248,13 @@ packages: engines: {node: '>=0.10.0'} dev: true + /extend-shallow/2.0.1: + resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==} + engines: {node: '>=0.10.0'} + dependencies: + is-extendable: 0.1.1 + dev: false + /fast-deep-equal/3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} dev: true @@ -1330,8 +1351,8 @@ packages: resolution: {integrity: sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==} dev: true - /get-intrinsic/1.1.1: - resolution: {integrity: sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==} + /get-intrinsic/1.1.2: + resolution: {integrity: sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA==} dependencies: function-bind: 1.1.1 has: 1.0.3 @@ -1342,7 +1363,7 @@ packages: engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 - get-intrinsic: 1.1.1 + get-intrinsic: 1.1.2 dev: true /glob-parent/5.1.2: @@ -1389,6 +1410,16 @@ packages: slash: 3.0.0 dev: true + /gray-matter/4.0.3: + resolution: {integrity: sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==} + engines: {node: '>=6.0'} + dependencies: + js-yaml: 3.14.1 + kind-of: 6.0.3 + section-matter: 1.0.0 + strip-bom-string: 1.0.0 + dev: false + /has-bigints/1.0.2: resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} dev: true @@ -1401,7 +1432,7 @@ packages: /has-property-descriptors/1.0.0: resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==} dependencies: - get-intrinsic: 1.1.1 + get-intrinsic: 1.1.2 dev: true /has-symbols/1.0.3: @@ -1462,7 +1493,7 @@ packages: resolution: {integrity: sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==} engines: {node: '>= 0.4'} dependencies: - get-intrinsic: 1.1.1 + get-intrinsic: 1.1.2 has: 1.0.3 side-channel: 1.0.4 dev: true @@ -1506,6 +1537,11 @@ packages: object-assign: 4.1.1 dev: false + /is-extendable/0.1.1: + resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==} + engines: {node: '>=0.10.0'} + dev: false + /is-extglob/2.1.1: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} @@ -1572,6 +1608,14 @@ packages: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} dev: true + /js-yaml/3.14.1: + resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} + hasBin: true + dependencies: + argparse: 1.0.10 + esprima: 4.0.1 + dev: false + /js-yaml/4.1.0: resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} hasBin: true @@ -1596,6 +1640,11 @@ packages: resolution: {integrity: sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA==} dev: true + /kind-of/6.0.3: + resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} + engines: {node: '>=0.10.0'} + dev: false + /levn/0.4.1: resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} engines: {node: '>= 0.8.0'} @@ -1856,8 +1905,8 @@ packages: glob: 7.2.3 dev: true - /rollup/2.75.5: - resolution: {integrity: sha512-JzNlJZDison3o2mOxVmb44Oz7t74EfSd1SQrplQk0wSaXV7uLQXtVdHbxlcT3w+8tZ1TL4r/eLfc7nAbz38BBA==} + /rollup/2.75.6: + resolution: {integrity: sha512-OEf0TgpC9vU6WGROJIk1JA3LR5vk/yvqlzxqdrE2CzzXnqKXNzbAwlWUXis8RS3ZPe7LAq+YUxsRa0l3r27MLA==} engines: {node: '>=10.0.0'} hasBin: true optionalDependencies: @@ -1870,6 +1919,14 @@ packages: queue-microtask: 1.2.3 dev: true + /section-matter/1.0.0: + resolution: {integrity: sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==} + engines: {node: '>=4'} + dependencies: + extend-shallow: 2.0.1 + kind-of: 6.0.3 + dev: false + /semver/7.3.7: resolution: {integrity: sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==} engines: {node: '>=10'} @@ -1902,7 +1959,7 @@ packages: resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} dependencies: call-bind: 1.0.2 - get-intrinsic: 1.1.1 + get-intrinsic: 1.1.2 object-inspect: 1.12.2 dev: true @@ -1940,6 +1997,10 @@ packages: resolution: {integrity: sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==} dev: true + /sprintf-js/1.0.3: + resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} + dev: false + /string.prototype.trimend/1.0.5: resolution: {integrity: sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==} dependencies: @@ -1963,6 +2024,11 @@ packages: ansi-regex: 5.0.1 dev: true + /strip-bom-string/1.0.0: + resolution: {integrity: sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==} + engines: {node: '>=0.10.0'} + dev: false + /strip-json-comments/3.1.1: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} @@ -2062,8 +2128,8 @@ packages: resolution: {integrity: sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==} dev: true - /vite/2.9.9: - resolution: {integrity: sha512-ffaam+NgHfbEmfw/Vuh6BHKKlI/XIAhxE5QSS7gFLIngxg171mg1P3a4LSRME0z2ZU1ScxoKzphkipcYwSD5Ew==} + /vite/2.9.10: + resolution: {integrity: sha512-TwZRuSMYjpTurLqXspct+HZE7ONiW9d+wSWgvADGxhDPPyoIcNywY+RX4ng+QpK30DCa1l/oZgi2PLZDibhzbQ==} engines: {node: '>=12.2.0'} hasBin: true peerDependencies: @@ -2078,10 +2144,10 @@ packages: stylus: optional: true dependencies: - esbuild: 0.14.42 + esbuild: 0.14.43 postcss: 8.4.14 resolve: 1.22.0 - rollup: 2.75.5 + rollup: 2.75.6 optionalDependencies: fsevents: 2.3.2 dev: true @@ -2093,12 +2159,12 @@ packages: dependencies: '@docsearch/css': 3.1.0 '@docsearch/js': 3.1.0 - '@vitejs/plugin-vue': 2.3.3_vite@2.9.9+vue@3.2.36 - '@vueuse/core': 8.6.0_vue@3.2.36 + '@vitejs/plugin-vue': 2.3.3_vite@2.9.10+vue@3.2.37 + '@vueuse/core': 8.6.0_vue@3.2.37 body-scroll-lock: 4.0.0-beta.0 shiki: 0.10.1 - vite: 2.9.9 - vue: 3.2.36 + vite: 2.9.10 + vue: 3.2.37 transitivePeerDependencies: - '@types/react' - '@vue/composition-api' @@ -2135,7 +2201,7 @@ packages: local-pkg: 0.4.1 tinypool: 0.1.3 tinyspy: 0.3.2 - vite: 2.9.9 + vite: 2.9.10 transitivePeerDependencies: - less - sass @@ -2151,7 +2217,7 @@ packages: resolution: {integrity: sha512-Uw5ooOQxRASHgu6C7GVvUxisKXfSgW4oFlO+aa+PAkgmH89O3CXxEEzNRNtHSqtXFTl0nAC1uYj0GMSH27uwtQ==} dev: true - /vue-demi/0.13.1_vue@3.2.36: + /vue-demi/0.13.1_vue@3.2.37: resolution: {integrity: sha512-xmkJ56koG3ptpLnpgmIzk9/4nFf4CqduSJbUM0OdPoU87NwRuZ6x49OLhjSa/fC15fV+5CbEnrxU4oyE022svg==} engines: {node: '>=12'} hasBin: true @@ -2163,17 +2229,17 @@ packages: '@vue/composition-api': optional: true dependencies: - vue: 3.2.36 + vue: 3.2.37 dev: true - /vue/3.2.36: - resolution: {integrity: sha512-5yTXmrE6gW8IQgttzHW5bfBiFA6mx35ZXHjGLDmKYzW6MMmYvCwuKybANRepwkMYeXw2v1buGg3/lPICY5YlZw==} + /vue/3.2.37: + resolution: {integrity: sha512-bOKEZxrm8Eh+fveCqS1/NkG/n6aMidsI6hahas7pa0w/l7jkbssJVsRhVDs07IdDq7h9KHswZOgItnwJAgtVtQ==} dependencies: - '@vue/compiler-dom': 3.2.36 - '@vue/compiler-sfc': 3.2.36 - '@vue/runtime-dom': 3.2.36 - '@vue/server-renderer': 3.2.36_vue@3.2.36 - '@vue/shared': 3.2.36 + '@vue/compiler-dom': 3.2.37 + '@vue/compiler-sfc': 3.2.37 + '@vue/runtime-dom': 3.2.37 + '@vue/server-renderer': 3.2.37_vue@3.2.37 + '@vue/shared': 3.2.37 dev: true /which-boxed-primitive/1.0.2: diff --git a/src/index.ts b/src/index.ts index ae446d54..97c0d863 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,3 +1,4 @@ +import matter = require('gray-matter'); import type { AstPath, Doc, @@ -23,6 +24,7 @@ import { PugPrinter } from './printer'; interface AstPathStackEntry { content: string; tokens: Token[]; + frontmatter: matter.GrayMatterFile; } /** The plugin object that is picked up by prettier. */ @@ -49,6 +51,8 @@ export const plugin: Plugin = { options: ParserOptions, ): AstPathStackEntry { logger.debug('[parsers:pug:parse]:', { text }); + const frontmatter = matter(text); + text = frontmatter.content; let trimmedAndAlignedContent: string = text.replace(/^\s*\n/, ''); const contentIndentation: RegExpExecArray | null = /^\s*/.exec( @@ -72,7 +76,7 @@ export const plugin: Plugin = { // logger.debug('[parsers:pug:parse]: tokens', JSON.stringify(tokens, undefined, 2)); // const ast: AST = parse(tokens, {}); // logger.debug('[parsers:pug:parse]: ast', JSON.stringify(ast, undefined, 2)); - return { content, tokens }; + return { content, tokens, frontmatter }; }, astFormat: 'pug-ast', hasPragma(text: string): boolean { @@ -102,9 +106,14 @@ export const plugin: Plugin = { print: (path: AstPath) => Doc, ): Doc { const entry: AstPathStackEntry = path.stack[0]; - const { content, tokens } = entry; + const { content, tokens, frontmatter } = entry; const pugOptions: PugPrinterOptions = convergeOptions(options); - const printer: PugPrinter = new PugPrinter(content, tokens, pugOptions); + const printer: PugPrinter = new PugPrinter( + content, + tokens, + pugOptions, + frontmatter, + ); const result: string = printer.build(); logger.debug('[printers:pug-ast:print]:', result); return result; diff --git a/src/printer.ts b/src/printer.ts index 85214299..165c3697 100644 --- a/src/printer.ts +++ b/src/printer.ts @@ -1,3 +1,4 @@ +import matter = require('gray-matter'); import type { BuiltInParserName, Options, RequiredOptions } from 'prettier'; import { format } from 'prettier'; import type { parsers as AngularParsers } from 'prettier/parser-angular'; @@ -234,7 +235,9 @@ export class PugPrinter { private readonly content: string, private tokens: Token[], private readonly options: PugPrinterOptions, + private frontmatter: matter.GrayMatterFile, ) { + this.frontmatter = frontmatter; this.indentString = options.pugUseTabs ? '\t' : ' '.repeat(options.pugTabWidth); @@ -359,7 +362,7 @@ export class PugPrinter { } token = this.getNextToken(); } - return results.join(''); + return matter.stringify(results.join(''), this.frontmatter.data); } private getNextToken(): Token | null { diff --git a/tests/frontmatter/formatted.pug b/tests/frontmatter/formatted.pug new file mode 100644 index 00000000..f16f2441 --- /dev/null +++ b/tests/frontmatter/formatted.pug @@ -0,0 +1,33 @@ +--- +name: YAML test +tags: + - this + - squence + - should + - be + - indented +lets: + have: + us: + some: nesting + and: some more + flow style not supported: + key: value + bar: baz + not even arrays: + - 1 + - 2 + - 3 + - 4 + - 5 +--- +doctype +html + head + title This is a !{ name }! + + body + h1 Hello world! + h2= name + + #example diff --git a/tests/frontmatter/frontmatter.test.ts b/tests/frontmatter/frontmatter.test.ts new file mode 100644 index 00000000..b42d77fc --- /dev/null +++ b/tests/frontmatter/frontmatter.test.ts @@ -0,0 +1,9 @@ +import { compareFiles } from 'tests/common'; +import { describe, expect, it } from 'vitest'; + +describe('Frontmatter', () => { + it('should format yaml frontmatter', () => { + const { actual, expected } = compareFiles(__dirname); + expect(actual).toBe(expected); + }); +}); diff --git a/tests/frontmatter/unformatted.pug b/tests/frontmatter/unformatted.pug new file mode 100644 index 00000000..0c9a90a9 --- /dev/null +++ b/tests/frontmatter/unformatted.pug @@ -0,0 +1,27 @@ +--- +name: YAML test +tags: +- this +- squence +- should +- be +- indented +lets: + have: + us: + some: nesting + and: some more + flow style not supported: + {key: value, bar: baz} + not even arrays: [1,2,3,4,5] +--- +doctype +html + head + title This is a !{name}! + + body + h1 Hello world! + h2= name + + div( id='example' )