diff --git a/.vscode/settings.json b/.vscode/settings.json
new file mode 100644
index 0000000..3aff9a0
--- /dev/null
+++ b/.vscode/settings.json
@@ -0,0 +1,3 @@
+{
+ "i18n-ally.localesPaths": ["docs/locales"]
+}
diff --git a/README.md b/README.md
index ce559d2..4fe5c3f 100644
--- a/README.md
+++ b/README.md
@@ -14,7 +14,7 @@ If you've already installed all the deps and want more granular control you can
```bash
# start Docker services (you must have Docker installed)
-docker compose up
+docker compose up -d
# or
pnpm run up
@@ -29,100 +29,3 @@ pnpm run watch
A browser window should now have opened up pointing to `http://localhost:3333`. See you over there.
-
-## Content Types
-
-
-
-+++ **1. API Documents**
-- RUST indexes
- - _will create index references to all **RUST symbols** and home page_
- - [Home Page](https://docs.rs/tauri/latest/tauri/) plus sections in home page
- - [Re-exports](https://docs.rs/tauri/latest/tauri/#reexports)
- - [Modules](https://docs.rs/tauri/latest/tauri/#modules)
- - [Structs](https://docs.rs/tauri/latest/tauri/#structs)
- - [Functions](https://docs.rs/tauri/latest/tauri/#functions)
- - [Type Definitions](https://docs.rs/tauri/latest/tauri/#types)
- - **Re-Exports**
- - [`tauri-api`](https://docs.rs/tauri-api/latest/tauri_api/index.html)
- - **Modules**:
- - [`command`](https://docs.rs/tauri-api/latest/tauri_api/command/index.html)
- - [`http`](https://docs.rs/tauri-api/latest/tauri_api/http/index.html)
- - etc.
- - **Functions**:
- - [`make_request`](https://docs.rs/tauri-api/latest/tauri_api/http/fn.make_request.html)
- -
- - **Enums**
- - [`http::ResponseType`](https://docs.rs/tauri-api/latest/tauri_api/http/enum.ResponseType.html)
- - [`tauri_api::dialog::Response`](https://docs.rs/tauri-api/latest/tauri_api/dialog/enum.Response.html)
- - etc.
- - **Type Definitions**:
- - [`Result`](https://docs.rs/tauri/latest/tauri/type.Result.html)
- - etc.
- - _all indexes will point directly to `docs.rs`_
-- Typescript indexes
- - _we will host the API docs on [Tauri's Website](https://tauri.studio) and all search indexes will point there_
- - indexes will largely mirror what we are doing on the Rust side
-+++
-
-- **Primary / Prose Documentation**
- - _all sections will be authored in English and using Markdown format_
- - _we will need separate indexes for `i18n` content_
- - _All documentation outside of generated API docs will be considered part of this section_
- - The current site includes these areas:
- - About
- - Docs section
- - Community
- - Configuration
-
-## Indexes
-
-### [Meilisearch Index Overview](https://docs.meilisearch.com/learn/core_concepts/indexes.html#index-creation)
-
-
-
-### [Meilisearch Relevance Overview](https://docs.meilisearch.com/learn/core_concepts/relevancy.html)
-
-Meilisearch provides **Ranking Rules** which you can use to help tune each index's strategy. The default rule ordering is as follows (most significant first):
-
-1. Words
-1. Typo
-1. Proximity
-1. Attribute
-1. Sort
-1. Exactness
-
-Rule #4 above -- `Attribute` -- points to another ranking system: **Attribute Ranking**. Attribute Ranking allows you to state the order of importance of each attribute in a document.
-
-### Tauri Indexes
-
-- `rust` -
-- `typescript` -
-- `docs` - we may break this up into further indexes later but best to start with the KISS principle
-
-## Documents
-
-Documents are key-value pairs (referred to as attribute/value in Meili speak).
-
-- The "Primary Field" is the only _required_ attribute/value pair. It will always have a key of `id` and it's value contains the primary key and document identifier.
-- Data can be ingested in any of the three formats:
- - JSOn
- - [NDJSON](https://docs.meilisearch.com/learn/core_concepts/documents.html#ndjson)
- - CSV
-- In general we should prefer NDJSON where possible as it has better performance than JSON and also allows for nested data.
-
-## Deployment Environments
-
-You can test everything locally by firing up the included Docker compose configuration: `docker compose up` but for production Meilisearch has three pre-configured setups that Meilisearch provides:
-
-- [AWS](https://github.com/meilisearch/meilisearch-aws)
-- [Digital Ocean](https://github.com/meilisearch/meilisearch-digitalocean)
-- [GCP](https://github.com/meilisearch/meilisearch-gcp)
-
-I prefer AWS out of familiarity but also:
-- arguably their investment in Rust might facilitate future synergies
-- since we use Netlify for hosting and Netlify uses AWS for functions and basic CDN (advanced CDN is via Cloudflare)
-
-That said, we probably need to consider Digital Ocean too simply because that is the status quo. I'd avoid GCP.
-
-> Note: for local experimentation you can use the Meilisearch API directly at http://localhost:7700 or fire up the demo app with `pnpm run demo`
\ No newline at end of file
diff --git a/docs/LICENSE b/docs/LICENSE.md
similarity index 92%
rename from docs/LICENSE
rename to docs/LICENSE.md
index da26da3..c34cf79 100644
--- a/docs/LICENSE
+++ b/docs/LICENSE.md
@@ -1,6 +1,6 @@
MIT License
-Copyright (c) 2020-2021 Anthony Fu
+Copyright (c) 2020-2021 The Tauri Programme in the Commons Conservancy
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
@@ -18,4 +18,4 @@ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
+SOFTWARE.
\ No newline at end of file
diff --git a/docs/package.json b/docs/package.json
index c3bf1ca..c1ba7e2 100644
--- a/docs/package.json
+++ b/docs/package.json
@@ -19,7 +19,7 @@
"nprogress": "^0.2.0",
"pinia": "^2.0.9",
"prism-theme-vars": "^0.2.2",
- "tauri-search": "link:../",
+ "tauri-search": "workspace:*",
"ts-morph": "^13.0.3",
"vue": "^3.2.28",
"vue-demi": "^0.12.1",
diff --git a/docs/src/components.d.ts b/docs/src/components.d.ts
index d713694..1eda0bc 100644
--- a/docs/src/components.d.ts
+++ b/docs/src/components.d.ts
@@ -4,12 +4,9 @@
declare module 'vue' {
export interface GlobalComponents {
- 'AntDesign:fileMarkdownOutlined': typeof import('~icons/ant-design/file-markdown-outlined')['default']
'Bx:bxSearchAlt': typeof import('~icons/bx/bx-search-alt')['default']
'Carbon:document': typeof import('~icons/carbon/document')['default']
- 'Carbon:errorFilled': typeof import('~icons/carbon/error-filled')['default']
'Carbon:listDropdown': typeof import('~icons/carbon/list-dropdown')['default']
- 'Carbon:nextFilled': typeof import('~icons/carbon/next-filled')['default']
CarbonLanguage: typeof import('~icons/carbon/language')['default']
CarbonMoon: typeof import('~icons/carbon/moon')['default']
CarbonSun: typeof import('~icons/carbon/sun')['default']
@@ -17,10 +14,8 @@ declare module 'vue' {
'Fluent:databaseSearch24Regular': typeof import('~icons/fluent/database-search24-regular')['default']
Footer: typeof import('./components/Footer.vue')['default']
'Mdi:folderHome': typeof import('~icons/mdi/folder-home')['default']
- 'Mdi:github': typeof import('~icons/mdi/github')['default']
'Mdi:languageRust': typeof import('~icons/mdi/language-rust')['default']
'Mdi:languageTypescript': typeof import('~icons/mdi/language-typescript')['default']
- 'Ph:linkLight': typeof import('~icons/ph/link-light')['default']
README: typeof import('./components/README.md')['default']
SearchActions: typeof import('./components/SearchActions.vue')['default']
SearchHit: typeof import('./components/SearchHit.vue')['default']
@@ -29,8 +24,6 @@ declare module 'vue' {
SimpleCard: typeof import('./components/SimpleCard.vue')['default']
'Tabler:databaseImport': typeof import('~icons/tabler/database-import')['default']
'Teenyicons:dockerOutline': typeof import('~icons/teenyicons/docker-outline')['default']
- 'VscodeIcons:fileTypeRust': typeof import('~icons/vscode-icons/file-type-rust')['default']
- 'VscodeIcons:fileTypeTypescriptOfficial': typeof import('~icons/vscode-icons/file-type-typescript-official')['default']
}
}
diff --git a/docs/src/components/SimpleCard.vue b/docs/src/components/SimpleCard.vue
index b6b9af3..5d0f688 100644
--- a/docs/src/components/SimpleCard.vue
+++ b/docs/src/components/SimpleCard.vue
@@ -1,6 +1,7 @@
diff --git a/docs/src/pages/.nojekyll b/docs/src/pages/.nojekyll
deleted file mode 100644
index e2ac661..0000000
--- a/docs/src/pages/.nojekyll
+++ /dev/null
@@ -1 +0,0 @@
-TypeDoc added this file to prevent GitHub Pages from using Jekyll. You can turn off this behavior by setting the `githubPages` option to false.
\ No newline at end of file
diff --git a/docs/src/pages/docs-searchbar.md b/docs/src/pages/docs-searchbar.md
index 3ddd06d..6c9fd84 100644
--- a/docs/src/pages/docs-searchbar.md
+++ b/docs/src/pages/docs-searchbar.md
@@ -2,15 +2,75 @@

+## First Considerations
+
If you use Vuepress documentation then there is a fully integrated solution from Meilisearch but outside of that they provide [`docs-searchbar.js`](https://github.com/meilisearch/docs-searchbar.js) repo for any JS based frontend to get a search bar implementation that matches up perfectly with their scraper's configuration.
+Unfortunately this implementation -- as well as the VuePress implementation -- can only work on a _single index_ and it expects the documents to be scraped with MeiliSearch's [scraper]() tool which imposes an awkward looking document (arguably this last point may not matter too much).
+
++++ MeiliSearch Scraper and Searchbar schema
+```ts
+export type ScrapeSelector =
+ | string
+ | {
+ selector: string;
+ global?: boolean;
+ default_value?: string;
+ };
+
+export type ScrapeSelectorTargets = {
+ lvl0: ScrapeSelector;
+ lvl1: ScrapeSelector;
+ lvl2: ScrapeSelector;
+ lvl3: ScrapeSelector;
+ lvl4: ScrapeSelector;
+ lvl5: ScrapeSelector;
+ lvl6: ScrapeSelector;
+ /** the main body of text */
+ text: ScrapeSelector;
+};
+```
+> NOTE: there are additional fields but these are the core ones
++++
++++ To provide flexibility, our parsing/modeling approach supports both
+```mermaid
+flowchart TD;
+ TS((TS AST)) --map--> ApiModel[ApiModel]
+ RS((Rust AST)) --map--> ApiModel
+ ApiModel --produces--> ApiIndex(API index)
+
+ Prose((MD AST)) --map--> ProseModel[ProseModel]
+ ProseModel --produces--> ProseIndex(Prose index)
+
+ Repo[/Github API/] --map--> RepoModel[Repo Model]
+ RepoModel --produces--> RepoIndex(Repo Index)
+
+ ApiModel --map--> CrossIndex(Cross index)
+ ProseModel --map--> CrossIndex
+ RepoModel --map--> CrossIndex
+```
++++
+
+### Single versus Multi Index Solution
+
+- Having all "content-types" concentrated into a **single index** has the following benefits:
+ - the "relevancy score" will fully determine the sort order for recommended search results; this gives a blended set of content-types based on what it thinks is most relevant being at the top
+ - Meilisearch's [doc-searchbar.js](https://github.com/meilisearch/docs-searchbar.js) component could be used
+- If we had multiple indexes the benefits are:
+ - ability to have different index settings per content type (aka, synonmys, relevancy rules, stop words, etc.)
+ - we can quite easily _force rank_ content-types (aka., Prose is first, then Repos, then API) if this is desired
+ - this _is_ a reasonable strategy with some portfolios of content-types
+ - others strategies benefit from a blended cross-index sort and we _could_ do some blending ourselves but this is extra work
+ - we can give the property fields more specific names, and add only properties which pertain to the given type.
+ - This helps search maintenance, and custom development of the search toolbar (which is necessary when you have multiple indexes)
+
## Installing
```bash
pnpm install docs-searchbar.js
```
-- +++ The Repo Suggests these steps to get it working for any JS framework
++++ When using the
Instantiate the component:
diff --git a/docs/src/pages/index.md b/docs/src/pages/index.md
index c63cd23..e55f6c5 100644
--- a/docs/src/pages/index.md
+++ b/docs/src/pages/index.md
@@ -21,7 +21,19 @@ If you've already installed all the deps and want more granular control you can
pnpm run watch
```
+++
-
++++ Ways to Consume this library
+- **Search Development** - if you are updating docs, index definitions, etc. you'll run this in _watch_ mode (aka., `pnpm run start` (first time) or `pnpm run watch`)
+- **Deployment** - When an _upstream_ dependency is updated this repo should be trigged by a Netlify build hook. For instance:
+- `tauri` has a new release to production branch, as a `postbuild` step in Netlify build process, it will call Netlify's API and ask for a rebuild of this repo.
+ - we care about picking up the two AST files to build the API docs (`ts-docs.json`, `rust.json`)
+- `tauri-docs` releases new docs, again a `postbuild` hook on Netlify is called to it requests a rebuild from this repo
+ - here we need to pickup the directly or MD files
+- `NPM Dependency` - the `Models` you've defined along with all of the _types_ defined are available as an NPM dependency
+ ```ts
+ import { ProseModel } from "tauri-search";
+ import type { MeiliSearchResponse } from "tauri-search";
+ ```
++++
## Sitemap
diff --git a/docs/vite.config.ts b/docs/vite.config.ts
index 723dc4a..1613fdb 100644
--- a/docs/vite.config.ts
+++ b/docs/vite.config.ts
@@ -1,27 +1,27 @@
-import path from 'path'
-import { defineConfig } from 'vite'
-import Vue from '@vitejs/plugin-vue'
-import Pages from 'vite-plugin-pages'
-import Layouts from 'vite-plugin-vue-layouts'
-import Icons from 'unplugin-icons/vite'
-import IconsResolver from 'unplugin-icons/resolver'
-import Components from 'unplugin-vue-components/vite'
-import AutoImport from 'unplugin-auto-import/vite'
-import Markdown from 'vite-plugin-md'
-import WindiCSS from 'vite-plugin-windicss'
-import { VitePWA } from 'vite-plugin-pwa'
-import VueI18n from '@intlify/vite-plugin-vue-i18n'
-import Inspect from 'vite-plugin-inspect'
-import Prism from 'markdown-it-prism'
-import LinkAttributes from 'markdown-it-link-attributes'
-import MdCollapsible from 'markdown-it-collapsible'
+import path from "path";
+import { defineConfig } from "vite";
+import Vue from "@vitejs/plugin-vue";
+import Pages from "vite-plugin-pages";
+import Layouts from "vite-plugin-vue-layouts";
+import Icons from "unplugin-icons/vite";
+import IconsResolver from "unplugin-icons/resolver";
+import Components from "unplugin-vue-components/vite";
+import AutoImport from "unplugin-auto-import/vite";
+import Markdown from "vite-plugin-md";
+import WindiCSS from "vite-plugin-windicss";
+import { VitePWA } from "vite-plugin-pwa";
+import VueI18n from "@intlify/vite-plugin-vue-i18n";
+import Inspect from "vite-plugin-inspect";
+import Prism from "markdown-it-prism";
+import LinkAttributes from "markdown-it-link-attributes";
+import MdCollapsible from "markdown-it-collapsible";
-const markdownWrapperClasses = 'prose prose-sm m-auto text-left'
+const markdownWrapperClasses = "prose prose-sm m-auto text-left";
export default defineConfig({
resolve: {
alias: {
- '~/': `${path.resolve(__dirname, 'src')}/`,
+ "~/": `${path.resolve(__dirname, "src")}/`,
},
},
plugins: [
@@ -31,7 +31,7 @@ export default defineConfig({
// https://github.com/hannoeru/vite-plugin-pages
Pages({
- extensions: ['vue', 'md'],
+ extensions: ["vue", "md"],
}),
// https://github.com/JohnCampionJr/vite-plugin-vue-layouts
@@ -40,20 +40,20 @@ export default defineConfig({
// https://github.com/antfu/unplugin-auto-import
AutoImport({
imports: [
- 'vue',
- 'vue-router',
- 'vue-i18n',
- '@vueuse/head',
- '@vueuse/core',
- 'vitest',
+ "vue",
+ "vue-router",
+ "vue-i18n",
+ "@vueuse/head",
+ "@vueuse/core",
+ "vitest",
],
- dts: 'src/auto-imports.d.ts',
+ dts: "src/auto-imports.d.ts",
}),
// https://github.com/antfu/unplugin-vue-components
Components({
// allow auto load markdown components under `./src/components/`
- extensions: ['vue', 'md'],
+ extensions: ["vue", "md"],
// allow auto import and register components used in markdown
include: [/\.vue$/, /\.vue\?vue/, /\.md$/],
@@ -63,12 +63,12 @@ export default defineConfig({
// auto import icons
// https://github.com/antfu/unplugin-icons
IconsResolver({
- componentPrefix: '',
+ componentPrefix: "",
// enabledCollections: ['carbon']
}),
],
- dts: 'src/components.d.ts',
+ dts: "src/components.d.ts",
}),
// https://github.com/antfu/unplugin-icons
@@ -88,44 +88,42 @@ export default defineConfig({
headEnabled: true,
markdownItSetup(md) {
// https://prismjs.com/
- // @ts-expect-error types mismatch
- md.use(Prism)
- // @ts-expect-error types mismatch
+ md.use(Prism);
md.use(LinkAttributes, {
pattern: /^https?:\/\//,
attrs: {
- target: '_blank',
- rel: 'noopener',
+ target: "_blank",
+ rel: "noopener",
},
- })
- md.use(MdCollapsible)
+ });
+ md.use(MdCollapsible);
},
}),
// https://github.com/antfu/vite-plugin-pwa
VitePWA({
- registerType: 'autoUpdate',
- includeAssets: ['favicon.svg', 'robots.txt', 'safari-pinned-tab.svg'],
+ registerType: "autoUpdate",
+ includeAssets: ["favicon.svg", "robots.txt", "safari-pinned-tab.svg"],
manifest: {
- name: 'Vitesse',
- short_name: 'Vitesse',
- theme_color: '#ffffff',
+ name: "Vitesse",
+ short_name: "Vitesse",
+ theme_color: "#ffffff",
icons: [
{
- src: '/pwa-192x192.png',
- sizes: '192x192',
- type: 'image/png',
+ src: "/pwa-192x192.png",
+ sizes: "192x192",
+ type: "image/png",
},
{
- src: '/pwa-512x512.png',
- sizes: '512x512',
- type: 'image/png',
+ src: "/pwa-512x512.png",
+ sizes: "512x512",
+ type: "image/png",
},
{
- src: '/pwa-512x512.png',
- sizes: '512x512',
- type: 'image/png',
- purpose: 'any maskable',
+ src: "/pwa-512x512.png",
+ sizes: "512x512",
+ type: "image/png",
+ purpose: "any maskable",
},
],
},
@@ -135,7 +133,7 @@ export default defineConfig({
VueI18n({
runtimeOnly: true,
compositionOnly: true,
- include: [path.resolve(__dirname, 'locales/**')],
+ include: [path.resolve(__dirname, "locales/**")],
}),
// https://github.com/antfu/vite-plugin-inspect
@@ -153,26 +151,26 @@ export default defineConfig({
// https://github.com/antfu/vite-ssg
ssgOptions: {
- script: 'async',
- formatting: 'minify',
+ script: "async",
+ formatting: "minify",
},
optimizeDeps: {
- include: ['vue', 'vue-router', '@vueuse/core', '@vueuse/head'],
- exclude: ['vue-demi'],
+ include: ["vue", "vue-router", "@vueuse/core", "@vueuse/head"],
+ exclude: ["vue-demi"],
},
// https://github.com/vitest-dev/vitest
test: {
- include: ['test/**/*.test.ts'],
- environment: 'jsdom',
+ include: ["test/**/*.test.ts"],
+ environment: "jsdom",
api: {
port: 5555,
- host: '0.0.0.0',
+ host: "0.0.0.0",
},
deps: {
- inline: ['@vue', '@vueuse', 'vue-demi'],
+ inline: ["@vue", "@vueuse", "vue-demi"],
},
},
-})
+});
diff --git a/package.json b/package.json
index 12e726a..2bfbdb7 100644
--- a/package.json
+++ b/package.json
@@ -2,44 +2,40 @@
"name": "tauri-search",
"version": "0.1.0",
"description": "Search Engine for Tauri website",
+ "license": "MIT",
+ "author": "Ken Snyder",
"bin": {
- "ts-ast-overview": "./bin/ts-ast-overview.cjs",
- "ts-ast": "./bin/ts-ast.cjs"
+ "ts-ast": "./bin/ts-ast.cjs",
+ "ts-ast-overview": "./bin/ts-ast-overview.cjs"
},
"scripts": {
- "start": "run-s prep watch",
- "prep": "run-p start:*",
- "start:cli": "pnpm install",
- "start:docs": "pnpm -C docs start",
- "start:docker": "run-s up",
- "up": "docker compose up -d",
- "down": "docker compose down",
- "restart": "docker compose restart",
- "vol:inspect": "run-s vol:inspect:*",
- "vol:inspect:search": "docker volume inspect search_db",
- "vol:inspect:scraper": "docker volume inspect scraper",
- "vol:create": "run-s vol:create:*",
- "vol:create:search": "docker volume create search_db",
- "vol:create:scraper": "docker volume create scraper",
- "into:search": "docker exec -it search bash",
- "into:scraper": "docker exec -it scraper bash",
- "ping": "http GET localhost:7700/health",
- "prune": "docker system prune",
"dev": "pnpm -C docs dev",
+ "down": "docker compose down",
+ "into:scraper": "docker exec -it scraper bash",
+ "into:search": "docker exec -it search bash",
"lint": "eslint src --ext ts,js,tsx,jsx --fix --no-error-on-unmatched-pattern",
+ "ping": "http GET localhost:7700/health",
+ "prep": "run-p start:*",
+ "prune": "docker system prune",
+ "restart": "docker compose restart",
+ "start": "run-s prep watch",
+ "start:cli": "pnpm install",
+ "start:docker": "run-s up",
+ "start:docs": "pnpm -C docs start",
"test": "echo \"Error: no test specified\" && exit 1",
- "ts-ast-overview": "node ./bin/ts-ast-overview.js",
"ts-ast": "node ./bin/ts-ast.js",
+ "ts-ast-overview": "node ./bin/ts-ast-overview.js",
+ "up": "docker compose up -d",
+ "vol:create": "run-s vol:create:*",
+ "vol:create:scraper": "docker volume create scraper",
+ "vol:create:search": "docker volume create search_db",
+ "vol:inspect": "run-s vol:inspect:*",
+ "vol:inspect:scraper": "docker volume inspect scraper",
+ "vol:inspect:search": "docker volume inspect search_db",
"watch": "run-p watch:*",
- "watch:docs": "pnpm -C docs dev",
"watch:cli": "tsup src/cli/*.ts --format=esm,cjs --clean --sourcemap -d bin --watch",
- "watch:types": "tsup src/models/index.ts src/type/index.ts --dts"
- },
- "author": "Ken Snyder",
- "license": "MIT",
- "engines": {
- "node": ">=14",
- "pnpm": ">=3"
+ "watch:npm": "tsup src/models/*.ts src/type/*.ts --format=esm,cjs --clean --sourcemap -d dist --dts --watch",
+ "watch:docs": "pnpm -C docs dev"
},
"dependencies": {
"cheerio": "^1.0.0-rc.10",
@@ -47,6 +43,7 @@
"inferred-types": "^0.18.4",
"native-dash": "^1.21.5",
"node-fetch": "^3.2.0",
+ "simple-markdown": "^0.7.3",
"ts-morph": "^13.0.3",
"xxhash-wasm": "^1.0.1"
},
@@ -58,6 +55,7 @@
"@types/node": "^14.18.9",
"@typescript-eslint/eslint-plugin": "^5.10.0",
"@typescript-eslint/parser": "^5.10.0",
+ "changeset": "^0.2.6",
"eslint": "^8.7.0",
"eslint-config-prettier": "^8.3.0",
"eslint-plugin-cypress": "^2.12.1",
@@ -76,10 +74,13 @@
"npm-run-all": "^4.1.5",
"prettier": "^2.5.1",
"rimraf": "^3.0.2",
- "simple-markdown": "^0.7.3",
"ts-jest": "^27.1.3",
"ts-node": "^10.4.0",
"tsup": "^5.11.11",
"typescript": "^4.6.0-dev.20220124"
+ },
+ "engines": {
+ "node": ">=14",
+ "pnpm": ">=3"
}
}
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 886f21b..28556d2 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -8,6 +8,7 @@ specifiers:
'@types/node': ^14.18.9
'@typescript-eslint/eslint-plugin': ^5.10.0
'@typescript-eslint/parser': ^5.10.0
+ changeset: ^0.2.6
cheerio: ^1.0.0-rc.10
eslint: ^8.7.0
eslint-config-prettier: ^8.3.0
@@ -40,6 +41,7 @@ specifiers:
xxhash-wasm: ^1.0.1
dependencies:
+ changeset: 0.2.6
cheerio: 1.0.0-rc.10
gray-matter: 4.0.3
inferred-types: 0.18.4
@@ -1337,6 +1339,13 @@ packages:
supports-color: 7.2.0
dev: true
+ /changeset/0.2.6:
+ resolution: {integrity: sha512-d21ym9zLPOKMVhIa8ulJo5IV3QR2NNdK6BWuwg48qJA0XSQaMeDjo1UGThcTn7YDmU08j3UpKyFNvb3zplk8mw==}
+ dependencies:
+ udc: 1.0.1
+ underscore: 1.13.2
+ dev: false
+
/char-regex/1.0.2:
resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==}
engines: {node: '>=10'}
@@ -4591,6 +4600,10 @@ packages:
resolution: {integrity: sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==}
dev: true
+ /udc/1.0.1:
+ resolution: {integrity: sha1-xeYkSKzzXqpSTVw2mMhjpbrEa/w=}
+ dev: false
+
/unbox-primitive/1.0.1:
resolution: {integrity: sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==}
dependencies:
@@ -4600,6 +4613,10 @@ packages:
which-boxed-primitive: 1.0.2
dev: true
+ /underscore/1.13.2:
+ resolution: {integrity: sha512-ekY1NhRzq0B08g4bGuX4wd2jZx5GnKz6mKSqFL4nqBlfyMGiG10gDFhDTMEfYmDL6Jy0FUIZp7wiRB+0BP7J2g==}
+ dev: false
+
/universalify/0.1.2:
resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==}
engines: {node: '>= 4.0.0'}
diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml
new file mode 100644
index 0000000..954c599
--- /dev/null
+++ b/pnpm-workspace.yaml
@@ -0,0 +1,7 @@
+packages:
+ - "docs"
+ # excludes test dirs and node_modules
+ - "!**/test/**"
+ - "!**/node_modules/**"
+# [Ref](https://pnpm.io/workspaces#shared-workspace-lockfile)
+shared-workspace-lockfile: true
diff --git a/tauri-search.code-workspace b/tauri-search.code-workspace
new file mode 100644
index 0000000..88a291b
--- /dev/null
+++ b/tauri-search.code-workspace
@@ -0,0 +1,15 @@
+{
+ "folders": [
+ {
+ "name": "✨ tauri-search",
+ "path": "."
+ },
+ {
+ "name": "📚 docs",
+ "path": "./docs"
+ }
+ ],
+ "settings": {
+ "monorepoWorkspace.includeRoot": true
+ }
+}
diff --git a/wallaby.js b/wallaby.js
deleted file mode 100644
index a6ff882..0000000
--- a/wallaby.js
+++ /dev/null
@@ -1,5 +0,0 @@
-module.exports = () => ({
- wallaby: {
- autoDetect: true,
- },
-});