feature: intention detection by nlp.js, with demo of showing weather
This commit is contained in:
parent
669ad510ed
commit
421e4fcdb8
42
components/search/onesearch/handleNLUResult.ts
Normal file
42
components/search/onesearch/handleNLUResult.ts
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
import { suggestionItem } from "@/global";
|
||||||
|
import { findClosestDateIndex } from "@/lib/weather/getCurrentWeather";
|
||||||
|
import { getLocationNative } from "@/lib/weather/getLocation";
|
||||||
|
import { getWeather } from "@/lib/weather/getWeather";
|
||||||
|
import { WMOCodeTable } from "@/lib/weather/wmocode";
|
||||||
|
|
||||||
|
type UpdateSuggestionFunction = (data: suggestionItem[]) => void;
|
||||||
|
|
||||||
|
export function handleNLUResult(result: any, updateSuggestion: UpdateSuggestionFunction){
|
||||||
|
if (result.intent == "weather.summary") {
|
||||||
|
getLocationNative((data: GeolocationCoordinates | GeolocationPositionError) => {
|
||||||
|
console.log(data);
|
||||||
|
if (data instanceof GeolocationCoordinates) {
|
||||||
|
getWeather(data.latitude, data.longitude).then((weather) => {
|
||||||
|
console.log(weather["hourly"]);
|
||||||
|
let hourIndex = findClosestDateIndex(
|
||||||
|
weather["hourly"]["time"],
|
||||||
|
weather["utc_offset_seconds"]
|
||||||
|
);
|
||||||
|
let temp = weather["hourly"]["apparent_temperature"][hourIndex];
|
||||||
|
let weatherCode = weather["hourly"]["weather_code"][hourIndex];
|
||||||
|
console.log(temp, weatherCode, hourIndex);
|
||||||
|
updateSuggestion([
|
||||||
|
{
|
||||||
|
type: "text",
|
||||||
|
suggestion: `Weather: ${temp}${weather["hourly_units"]["apparent_temperature"]}, ${WMOCodeTable[weatherCode]["day"].description}`,
|
||||||
|
relevance: 3000 * result.score
|
||||||
|
}
|
||||||
|
]);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} else if (result.intent !== "None") {
|
||||||
|
updateSuggestion([
|
||||||
|
{
|
||||||
|
type: "text",
|
||||||
|
suggestion: result.intent,
|
||||||
|
relevance: 2200 * result.score
|
||||||
|
}
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
}
|
@ -11,12 +11,19 @@ import validLink from "@/lib/url/validLink";
|
|||||||
import Link from "./link";
|
import Link from "./link";
|
||||||
import { selectedSuggestionState } from "@/components/state/suggestionSelection";
|
import { selectedSuggestionState } from "@/components/state/suggestionSelection";
|
||||||
import { settingsState } from "@/components/state/settings";
|
import { settingsState } from "@/components/state/settings";
|
||||||
import { base64NLP } from "@/lib/onesearch/baseCheck";
|
|
||||||
import PlainText from "./plainText";
|
import PlainText from "./plainText";
|
||||||
import { sendError } from "@/lib/telemetering/sendError";
|
import { sendError } from "@/lib/telemetering/sendError";
|
||||||
|
import { NLU } from "@/lib/nlp/load";
|
||||||
|
import { getLocationNative } from "@/lib/weather/getLocation";
|
||||||
|
import { getWeather } from "@/lib/weather/getWeather";
|
||||||
|
import { findClosestDateIndex, getClosestHourTimestamp } from "@/lib/weather/getCurrentWeather";
|
||||||
|
import { WMOCodeTable } from "@/lib/weather/wmocode";
|
||||||
|
import { handleNLUResult } from "./handleNLUResult";
|
||||||
|
|
||||||
export default function () {
|
export default function () {
|
||||||
const [suggestion, setFinalSuggetsion] = useRecoilState(suggestionsState);
|
const [suggestion, setFinalSuggetsion] = useRecoilState(suggestionsState);
|
||||||
|
const [location, setLocation] = useState(null);
|
||||||
|
const [manager, setManager] = useState(null);
|
||||||
const lastRequestTimeRef = useRef(0);
|
const lastRequestTimeRef = useRef(0);
|
||||||
const selected = useRecoilValue(selectedSuggestionState);
|
const selected = useRecoilValue(selectedSuggestionState);
|
||||||
const settings = useRecoilValue(settingsState);
|
const settings = useRecoilValue(settingsState);
|
||||||
@ -78,6 +85,15 @@ export default function () {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const NLUModel = new NLU();
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
NLUModel.init().then((nlu) => {
|
||||||
|
setManager(nlu.manager);
|
||||||
|
console.log(nlu.manager);
|
||||||
|
});
|
||||||
|
}, []);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
cleanSuggestion("default-link", "default", "text");
|
cleanSuggestion("default-link", "default", "text");
|
||||||
if (validLink(query)) {
|
if (validLink(query)) {
|
||||||
@ -94,9 +110,13 @@ export default function () {
|
|||||||
}
|
}
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
const b64 = base64NLP(query);
|
|
||||||
if (b64.suggestion !== null) {
|
if (manager != null) {
|
||||||
updateSuggestion([b64 as suggestionItem]);
|
// @ts-ignore
|
||||||
|
manager.process(query).then((result) => {
|
||||||
|
console.log(result);
|
||||||
|
handleNLUResult(result, updateSuggestion);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}, [query, engineName]);
|
}, [query, engineName]);
|
||||||
|
|
||||||
|
@ -1,19 +1,32 @@
|
|||||||
import { NLPResult } from "../onesearch/NLPResult";
|
import { NLPResult } from "../onesearch/NLPResult";
|
||||||
import { stopwords } from "./stopwords";
|
import { stopwords } from "./stopwords";
|
||||||
|
|
||||||
class NLP {
|
export class NLP {
|
||||||
result: NLPResult;
|
result: NLPResult;
|
||||||
constructor(
|
constructor(
|
||||||
public query: String,
|
public query: String,
|
||||||
public task: String
|
public task: String,
|
||||||
|
public intentionKeywords?: String[],
|
||||||
) {
|
) {
|
||||||
this.result = new NLPResult();
|
this.result = new NLPResult();
|
||||||
}
|
}
|
||||||
public removeStopwords(str: string, extraStopwords: string[] = [], disableDefault: boolean = false){
|
public removeStopwords(extraStopwords: string[] = [], disableDefault: boolean = false){
|
||||||
const list = disableDefault ? extraStopwords : stopwords.concat(extraStopwords);
|
const list = disableDefault ? extraStopwords : stopwords.concat(extraStopwords);
|
||||||
|
if (list.includes(this.query.trim())) {
|
||||||
|
this.query = "";
|
||||||
|
}
|
||||||
for (let word of list){
|
for (let word of list){
|
||||||
str = str.replace(new RegExp(`\\b${word}\\b`, 'gi'), '');
|
this.query = this.query.replace(new RegExp(`\\b${word}\\b`, 'gi'), '');
|
||||||
}
|
}
|
||||||
return str;
|
}
|
||||||
|
public extractSlots(str: string, useNER = false): string[]{
|
||||||
|
const slots: string[] = [];
|
||||||
|
|
||||||
|
return slots;
|
||||||
|
}
|
||||||
|
public trim() {
|
||||||
|
this.query = this.query.trim();
|
||||||
|
const wordList = this.query.split(" ").filter(word => word !== "");
|
||||||
|
this.query = wordList.join(" ");
|
||||||
}
|
}
|
||||||
}
|
}
|
134
lib/nlp/data/en.json
Normal file
134
lib/nlp/data/en.json
Normal file
@ -0,0 +1,134 @@
|
|||||||
|
{
|
||||||
|
"weather.summary": [
|
||||||
|
"how's the weather",
|
||||||
|
"What's going on with the weather?",
|
||||||
|
"Can you give me an update on the weather?",
|
||||||
|
"How's the forecast looking today?",
|
||||||
|
"Give me a summary of the current weather.",
|
||||||
|
"Can you tell me the current weather?",
|
||||||
|
"What is the weather situation at the moment?",
|
||||||
|
"Could you provide a quick weather update?",
|
||||||
|
"Is it raining or sunny outside?",
|
||||||
|
"What's the weather like right now?",
|
||||||
|
"Tell me the current weather conditions.",
|
||||||
|
"How about the weather today?",
|
||||||
|
"Is it a good day to be outside?",
|
||||||
|
"What should I expect in terms of weather today?",
|
||||||
|
"Is there any severe weather to be aware of?",
|
||||||
|
"Can you summarize today's weather forecast?",
|
||||||
|
"What's the weather looking like for the next few hours?",
|
||||||
|
"Is it going to stay this way all day?",
|
||||||
|
"Could you give me a brief overview of the weather?",
|
||||||
|
"What's the general weather situation in our area?",
|
||||||
|
"Is it cloudy or clear outside?",
|
||||||
|
"Any weather alerts I should know about?",
|
||||||
|
"How's the weather looking for outdoor activities?",
|
||||||
|
"What's the forecast saying for today's weather?",
|
||||||
|
"Is it going to be a warm day?",
|
||||||
|
"Are we expecting any storms today?",
|
||||||
|
"What's the weather condition outside my window?",
|
||||||
|
"Is it a typical day for this season in terms of weather?",
|
||||||
|
"how's the weather now?"
|
||||||
|
],
|
||||||
|
|
||||||
|
"weather.temp": [
|
||||||
|
"What's the temperature like right now?",
|
||||||
|
"Can you tell me the current temperature?",
|
||||||
|
"How hot is it outside?",
|
||||||
|
"What's the temperature supposed to be today?",
|
||||||
|
"What is the current temp outside?",
|
||||||
|
"Could you tell me the outdoor temperature?",
|
||||||
|
"Is it cold or warm outside?",
|
||||||
|
"What's the high temperature for today?",
|
||||||
|
"What's the low temperature expected tonight?",
|
||||||
|
"How does the temperature feel outside?",
|
||||||
|
"Is it going to get warmer or cooler today?",
|
||||||
|
"What's the temperature in the shade?",
|
||||||
|
"Can you provide the current temp in Celsius?",
|
||||||
|
"What's the temperature in Fahrenheit right now?",
|
||||||
|
"Is it too hot to be outside?",
|
||||||
|
"What's the temperature like in the morning?",
|
||||||
|
"How about the temperature in the evening?",
|
||||||
|
"Is it warm enough to go swimming?",
|
||||||
|
"What's the temperature in the city center?",
|
||||||
|
"Can you tell me the temp in the nearby area?",
|
||||||
|
"Is it below freezing outside?",
|
||||||
|
"What's the average temperature for today?",
|
||||||
|
"Is the temperature dropping or rising?",
|
||||||
|
"What should I wear considering the temperature?"
|
||||||
|
],
|
||||||
|
|
||||||
|
"base64.encode": [
|
||||||
|
"Please encode this data with base64: %s",
|
||||||
|
"I need to encode the following data in base64: %s",
|
||||||
|
"Could you encode this string using base64? %s",
|
||||||
|
"Convert this data to b64 encoding: %s",
|
||||||
|
"I want to encode this information with base64: %s",
|
||||||
|
"Help me encode this in base64: %s",
|
||||||
|
"Can you encode this data to base64 format? %s",
|
||||||
|
"b64 encode",
|
||||||
|
"base64 encode",
|
||||||
|
"encode base64 %s"
|
||||||
|
],
|
||||||
|
|
||||||
|
"base64.decode": [
|
||||||
|
"Please decode this base64 data: %s",
|
||||||
|
"I have a base64 encoded string that needs decoding: %s",
|
||||||
|
"Could you decode this base64 string for me? %s",
|
||||||
|
"Convert this base64 encoded data back to its original form: %s",
|
||||||
|
"I need to decode this base64 information: %s",
|
||||||
|
"Help me decode this base64 data: %s",
|
||||||
|
"Can you translate this base64 back to normal text? %s",
|
||||||
|
"b64 decode",
|
||||||
|
"base64 decode",
|
||||||
|
"decode base64 %s"
|
||||||
|
],
|
||||||
|
|
||||||
|
"url.encode": [
|
||||||
|
"Please encode this URL: %s",
|
||||||
|
"I need to encode this URL component: %s",
|
||||||
|
"Could you encode this part of the URL? %s",
|
||||||
|
"Convert this URL to its encoded form: %s",
|
||||||
|
"I want to encode this URL for safe transmission: %s",
|
||||||
|
"Help me encode this URL segment: %s",
|
||||||
|
"Can you encode this URL data? %s"
|
||||||
|
],
|
||||||
|
|
||||||
|
"url.decode": [
|
||||||
|
"Please decode this URL: %s",
|
||||||
|
"I have an encoded URL that needs decoding: %s",
|
||||||
|
"Could you decode this URL for me? %s",
|
||||||
|
"Convert this encoded URL back to its original form: %s",
|
||||||
|
"I need to decode this URL component: %s",
|
||||||
|
"Help me decode this URL segment: %s",
|
||||||
|
"Can you translate this encoded URL back to normal? %s"
|
||||||
|
],
|
||||||
|
|
||||||
|
"html.encode": [
|
||||||
|
"Please encode this HTML entity: %s",
|
||||||
|
"I need to encode this text to HTML entity: %s",
|
||||||
|
"Could you encode this as an HTML entity? %s",
|
||||||
|
"Convert this text to HTML entity encoding: %s",
|
||||||
|
"I want to encode this to prevent HTML interpretation: %s",
|
||||||
|
"Help me encode this into HTML entity: %s",
|
||||||
|
"Can you encode this for HTML usage? %s"
|
||||||
|
],
|
||||||
|
|
||||||
|
"html.decode": [
|
||||||
|
"Please decode this HTML entity: %s",
|
||||||
|
"I have an HTML entity that needs decoding: %s",
|
||||||
|
"Could you decode this HTML entity for me? %s",
|
||||||
|
"Convert this HTML entity back to its original text: %s",
|
||||||
|
"I need to decode this HTML entity to plain text: %s",
|
||||||
|
"Help me decode this HTML entity: %s",
|
||||||
|
"Can you translate this HTML entity back to normal text? %s"
|
||||||
|
],
|
||||||
|
|
||||||
|
"None": [
|
||||||
|
"free weather api",
|
||||||
|
"js get timezone",
|
||||||
|
"how",
|
||||||
|
"how's",
|
||||||
|
"how's the"
|
||||||
|
]
|
||||||
|
}
|
124
lib/nlp/data/zh.json
Normal file
124
lib/nlp/data/zh.json
Normal file
@ -0,0 +1,124 @@
|
|||||||
|
{
|
||||||
|
"weather.summary": [
|
||||||
|
"天气如何",
|
||||||
|
"现在的天气",
|
||||||
|
"今天的天气预报",
|
||||||
|
"现在的天气状况",
|
||||||
|
"今天天气怎么样",
|
||||||
|
"目前是什么天气",
|
||||||
|
"今天的天气概述",
|
||||||
|
"当前天气状况如何",
|
||||||
|
"今天会下雨吗",
|
||||||
|
"今天会下雪吗",
|
||||||
|
"今天晴天吗",
|
||||||
|
"今天的天气状况如何",
|
||||||
|
"现在外面是什么天气",
|
||||||
|
"今天天气好么",
|
||||||
|
"今天适合外出吗",
|
||||||
|
"今天的天气适宜做什么",
|
||||||
|
"今天有没有雾霾",
|
||||||
|
"今天的空气质量如何",
|
||||||
|
"今天的紫外线指数是多少",
|
||||||
|
"今天有没有大风",
|
||||||
|
"今天会不会很冷",
|
||||||
|
"今天的天气会变化吗",
|
||||||
|
"今天晚上的天气如何",
|
||||||
|
"今天夜里会下雨吗",
|
||||||
|
"今天的天气对出行有影响吗",
|
||||||
|
"今天的天气对运动有影响吗",
|
||||||
|
"今天的天气对工作有影响吗",
|
||||||
|
"今天的天气对旅游有影响吗",
|
||||||
|
"今天的天气对健康有影响吗"
|
||||||
|
],
|
||||||
|
"weather.temp": [
|
||||||
|
"现在的温度",
|
||||||
|
"现在多少度",
|
||||||
|
"外面有多热",
|
||||||
|
"明天热不热?",
|
||||||
|
"现在的气温是多少",
|
||||||
|
"今天最高温度是多少",
|
||||||
|
"今天最低温度是多少",
|
||||||
|
"现在外面感觉冷吗",
|
||||||
|
"现在需要穿外套吗",
|
||||||
|
"现在适合穿短袖吗",
|
||||||
|
"现在的温度适合外出吗",
|
||||||
|
"现在的温度适合运动吗",
|
||||||
|
"现在的温度适合睡觉吗",
|
||||||
|
"明天会比今天热吗",
|
||||||
|
"明天会比今天冷吗",
|
||||||
|
"今天的温度变化大吗",
|
||||||
|
"现在的温度适合开空调吗",
|
||||||
|
"现在的温度适合开暖气吗",
|
||||||
|
"室外的温度是多少",
|
||||||
|
"室内的温度是多少",
|
||||||
|
"现在的温度适合种植吗",
|
||||||
|
"现在的温度适合养宠物吗",
|
||||||
|
"现在的温度对健康有影响吗",
|
||||||
|
"现在的温度是否舒适",
|
||||||
|
"现在的温度是否适合工作"
|
||||||
|
],
|
||||||
|
"base64.encode": [
|
||||||
|
"请将数据使用base64编码:%s",
|
||||||
|
"需要将以下数据base64编码:%s",
|
||||||
|
"请将此字符串转为base64:%s",
|
||||||
|
"将数据转为base64编码:%s",
|
||||||
|
"信息base64编码:%s",
|
||||||
|
"请帮忙编码base64:%s",
|
||||||
|
"将数据编码为base64:%s"
|
||||||
|
],
|
||||||
|
|
||||||
|
"base64.decode": [
|
||||||
|
"请解码这个base64数据:%s",
|
||||||
|
"有base64编码字符串需要解码:%s",
|
||||||
|
"帮忙解码base64:%s",
|
||||||
|
"将base64编码转回原数据:%s",
|
||||||
|
"解码base64信息:%s",
|
||||||
|
"解码这个base64:%s",
|
||||||
|
"将base64转文本:%s"
|
||||||
|
],
|
||||||
|
|
||||||
|
"url.encode": [
|
||||||
|
"请编码这个URL:%s",
|
||||||
|
"URL部分需要编码:%s",
|
||||||
|
"请将URL部分编码:%s",
|
||||||
|
"URL编码转换:%s",
|
||||||
|
"安全传输需编码URL:%s",
|
||||||
|
"编码URL段:%s",
|
||||||
|
"URL数据编码:%s"
|
||||||
|
],
|
||||||
|
|
||||||
|
"url.decode": [
|
||||||
|
"请解码这个URL:%s",
|
||||||
|
"有URL编码需要解码:%s",
|
||||||
|
"解码这个URL:%s",
|
||||||
|
"URL编码转回原URL:%s",
|
||||||
|
"解码URL部分:%s",
|
||||||
|
"解码URL段:%s",
|
||||||
|
"URL编码转文本:%s"
|
||||||
|
],
|
||||||
|
|
||||||
|
"html.encode": [
|
||||||
|
"请编码HTML实体:%s",
|
||||||
|
"文本转为HTML实体:%s",
|
||||||
|
"编码为HTML实体:%s",
|
||||||
|
"文本HTML实体编码:%s",
|
||||||
|
"预防HTML解析编码:%s",
|
||||||
|
"HTML实体编码:%s",
|
||||||
|
"文本HTML使用编码:%s"
|
||||||
|
],
|
||||||
|
|
||||||
|
"html.decode": [
|
||||||
|
"请解码HTML实体:%s",
|
||||||
|
"HTML实体需要解码:%s",
|
||||||
|
"解码HTML实体:%s",
|
||||||
|
"HTML实体转回文本:%s",
|
||||||
|
"HTML实体解码:%s",
|
||||||
|
"解码HTML实体:%s",
|
||||||
|
"HTML实体转文本:%s"
|
||||||
|
],
|
||||||
|
|
||||||
|
"None": [
|
||||||
|
"你好",
|
||||||
|
"为什么计算机使用二进制"
|
||||||
|
]
|
||||||
|
}
|
55
lib/nlp/load.ts
Normal file
55
lib/nlp/load.ts
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
// @ts-ignore
|
||||||
|
import { containerBootstrap } from "@nlpjs/core";
|
||||||
|
// @ts-ignore
|
||||||
|
import { Nlp } from "@nlpjs/nlp";
|
||||||
|
// @ts-ignore
|
||||||
|
import { NluManager, NluNeural } from "@nlpjs/nlu";
|
||||||
|
// @ts-ignore
|
||||||
|
import { LangEn } from "@nlpjs/lang-en-min";
|
||||||
|
// @ts-ignore
|
||||||
|
import { LangZh } from "@nlpjs/lang-zh";
|
||||||
|
import * as fflate from 'fflate';
|
||||||
|
|
||||||
|
let zh: TrainData = {};
|
||||||
|
let en: TrainData = {};
|
||||||
|
|
||||||
|
type TrainData = {
|
||||||
|
[key: string]: string[];
|
||||||
|
};
|
||||||
|
|
||||||
|
export class NLU {
|
||||||
|
manager: any;
|
||||||
|
inited: boolean = false;
|
||||||
|
async loadIntentionModel() {
|
||||||
|
const container = await containerBootstrap();
|
||||||
|
container.use(Nlp);
|
||||||
|
container.use(LangEn);
|
||||||
|
container.use(LangZh);
|
||||||
|
container.use(NluNeural);
|
||||||
|
const manager = new NluManager({
|
||||||
|
container,
|
||||||
|
locales: ["en", "zh"],
|
||||||
|
nlu: {
|
||||||
|
useNoneFeature: true
|
||||||
|
}
|
||||||
|
});
|
||||||
|
const response = await fetch("/model");
|
||||||
|
|
||||||
|
const responseBuf = await response.arrayBuffer();
|
||||||
|
const compressed = new Uint8Array(responseBuf);
|
||||||
|
const decompressed = fflate.decompressSync(compressed);
|
||||||
|
const modelText = fflate.strFromU8(decompressed);
|
||||||
|
manager.fromJSON(JSON.parse(modelText));
|
||||||
|
this.manager = manager;
|
||||||
|
// console.log(this.manager);
|
||||||
|
}
|
||||||
|
async init() {
|
||||||
|
await this.loadIntentionModel();
|
||||||
|
this.inited = true;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
async process(lang: string, text: string): Promise<any> {
|
||||||
|
const actual = await this.manager.process(lang, text);
|
||||||
|
return actual;
|
||||||
|
}
|
||||||
|
}
|
@ -1 +1,3 @@
|
|||||||
export const stopwords = ["a","about","above","after","again","against","all","am","an","and","any","are","aren't","as","at","be","because","been","before","being","below","between","both","but","by","can't","cannot","could","couldn't","did","didn't","do","does","doesn't","doing","don't","down","during","each","few","for","from","further","had","hadn't","has","hasn't","have","haven't","having","he","he'd","he'll","he's","her","here","here's","hers","herself","him","himself","his","how","how's","i","i'd","i'll","i'm","i've","if","in","into","is","isn't","it","it's","its","itself","let's","me","more","most","mustn't","my","myself","no","nor","not","of","off","on","once","only","or","other","ought","our","ours ourselves","out","over","own","same","shan't","she","she'd","she'll","she's","should","shouldn't","so","some","such","than","that","that's","the","their","theirs","them","themselves","then","there","there's","these","they","they'd","they'll","they're","they've","this","those","through","to","too","under","until","up","very","was","wasn't","we","we'd","we'll","we're","we've","were","weren't","what","what's","when","when's","where","where's","which","while","who","who's","whom","why","why's","with","won't","would","wouldn't","you","you'd","you'll","you're","you've","your","yours","yourself","yourselves"];
|
export const stopwords = ["a","about","above","after","again","against","all","am","an","and","any","are","aren't","as","at","be","because","been","before","being","below","between","both","but","by","can't","cannot","could","couldn't","did","didn't","do","does","doesn't","doing","don't","down","during","each","few","for","from","further","had","hadn't","has","hasn't","have","haven't","having","he","he'd","he'll","he's","her","here","here's","hers","herself","him","himself","his","how","how's","i","i'd","i'll","i'm","i've","if","in","into","is","isn't","it","it's","its","itself","let's","me","more","most","mustn't","my","myself","no","nor","not","of","off","on","once","only","or","other","ought","our","ours","ourselves","out","over","own","please","same","shan't","she","she'd","she'll","she's","should","shouldn't","so","some","such","than","that","that's","the","their","theirs","them","themselves","then","there","there's","these","they","they'd","they'll","they're","they've","this","those","through","to","too","under","until","up","very","was","wasn't","we","we'd","we'll","we're","we've","were","weren't","what","what's","when","when's","where","where's","which","while","who","who's","whom","why","why's","with","won't","would","wouldn't","you","you'd","you'll","you're","you've","your","yours","yourself","yourselves"];
|
||||||
|
|
||||||
|
export const convertStopwords = ["transform", "change", "translate", "convert"];
|
76
lib/nlp/train.ts
Normal file
76
lib/nlp/train.ts
Normal file
@ -0,0 +1,76 @@
|
|||||||
|
// @ts-ignore
|
||||||
|
import { containerBootstrap } from "@nlpjs/core";
|
||||||
|
// @ts-ignore
|
||||||
|
import { Nlp } from "@nlpjs/nlp";
|
||||||
|
// @ts-ignore
|
||||||
|
import { NluManager, NluNeural } from "@nlpjs/nlu";
|
||||||
|
// @ts-ignore
|
||||||
|
import { LangEn } from "@nlpjs/lang-en-min";
|
||||||
|
// @ts-ignore
|
||||||
|
import { LangZh } from "@nlpjs/lang-zh";
|
||||||
|
import fs from "node:fs";
|
||||||
|
import * as fflate from 'fflate';
|
||||||
|
|
||||||
|
let zh: TrainData = {};
|
||||||
|
let en: TrainData = {};
|
||||||
|
|
||||||
|
type TrainData = {
|
||||||
|
[key: string]: string[];
|
||||||
|
};
|
||||||
|
|
||||||
|
export async function trainIntentionModel() {
|
||||||
|
try {
|
||||||
|
const dataZH = fs.readFileSync("./lib/nlp/data/zh.json", "utf8");
|
||||||
|
const dataEN = fs.readFileSync("./lib/nlp/data/en.json", "utf8");
|
||||||
|
zh = JSON.parse(dataZH);
|
||||||
|
en = JSON.parse(dataEN);
|
||||||
|
} catch (err) {
|
||||||
|
console.error(err);
|
||||||
|
}
|
||||||
|
|
||||||
|
const container = await containerBootstrap();
|
||||||
|
container.use(Nlp);
|
||||||
|
container.use(LangEn);
|
||||||
|
container.use(LangZh);
|
||||||
|
container.use(NluNeural);
|
||||||
|
const manager = new NluManager({
|
||||||
|
container,
|
||||||
|
locales: ["en", "zh"],
|
||||||
|
nlu: {
|
||||||
|
useNoneFeature: true
|
||||||
|
}
|
||||||
|
});
|
||||||
|
// Adds the utterances and intents for the NLP
|
||||||
|
|
||||||
|
for (const key in zh) {
|
||||||
|
for (const value of zh[key]) {
|
||||||
|
manager.add("zh", value, key);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for (const key in en) {
|
||||||
|
for (const value of en[key]) {
|
||||||
|
manager.add("en", value, key);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
await manager.train();
|
||||||
|
|
||||||
|
// let actual = await manager.process("en", "base64 decode bilibili");
|
||||||
|
// console.log(actual);
|
||||||
|
// let actualZH = await manager.process("zh", "去除百分号");
|
||||||
|
// console.log(actualZH);
|
||||||
|
|
||||||
|
const resultModel = manager.toJSON();
|
||||||
|
|
||||||
|
const buf = fflate.strToU8(JSON.stringify(resultModel));
|
||||||
|
|
||||||
|
const gzipped = fflate.gzipSync(buf, {
|
||||||
|
filename: 'model.json',
|
||||||
|
mtime: new Date().getTime()
|
||||||
|
});
|
||||||
|
|
||||||
|
fs.writeFileSync("./public/model", Buffer.from(gzipped));
|
||||||
|
}
|
||||||
|
|
||||||
|
trainIntentionModel();
|
@ -1,3 +1,3 @@
|
|||||||
export const SPARKHOME_VERSION="4.14.3";
|
export const SPARKHOME_VERSION="4.17.0";
|
||||||
export const CLIENT_VERSION="4.14.2";
|
export const CLIENT_VERSION="4.17.0";
|
||||||
export const NEXT_API_VERSION="4.14.3";
|
export const NEXT_API_VERSION="4.14.3";
|
39
lib/weather/getCurrentWeather.ts
Normal file
39
lib/weather/getCurrentWeather.ts
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
export function getClosestHourTimestamp(): string {
|
||||||
|
const now = new Date();
|
||||||
|
now.setMinutes(0, 0, 0); // 设置分钟、秒和毫秒为0
|
||||||
|
|
||||||
|
// 获取本地时间的年份、月份、日期、小时
|
||||||
|
const year = now.getFullYear();
|
||||||
|
const month = String(now.getMonth() + 1).padStart(2, '0'); // 月份从0开始
|
||||||
|
const day = String(now.getDate()).padStart(2, '0');
|
||||||
|
const hour = String(now.getHours()).padStart(2, '0');
|
||||||
|
|
||||||
|
// 拼接成所需的格式
|
||||||
|
const localHourTimestamp = `${year}-${month}-${day}T${hour}:00`;
|
||||||
|
|
||||||
|
return localHourTimestamp;
|
||||||
|
}
|
||||||
|
|
||||||
|
export function findClosestDateIndex(dates: string[], utc_offset_seconds: number): number {
|
||||||
|
const now = new Date();
|
||||||
|
const nowTimestamp = now.getTime();
|
||||||
|
const offsetMilliseconds = utc_offset_seconds * 1000;
|
||||||
|
|
||||||
|
let closestIndex = -1;
|
||||||
|
let closestDiff = Infinity;
|
||||||
|
|
||||||
|
for (let i = 0; i < dates.length; i++) {
|
||||||
|
const date = new Date(dates[i]);
|
||||||
|
const adjustedTimestamp = date.getTime();
|
||||||
|
|
||||||
|
if (adjustedTimestamp <= nowTimestamp) {
|
||||||
|
const diff = nowTimestamp - adjustedTimestamp;
|
||||||
|
if (diff < closestDiff) {
|
||||||
|
closestDiff = diff;
|
||||||
|
closestIndex = i;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return closestIndex;
|
||||||
|
}
|
17
lib/weather/getLocation.ts
Normal file
17
lib/weather/getLocation.ts
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
const options = {
|
||||||
|
enableHighAccuracy: true,
|
||||||
|
timeout: 10000,
|
||||||
|
maximumAge: 3600
|
||||||
|
};
|
||||||
|
|
||||||
|
export function getLocationNative(callback: Function) {
|
||||||
|
navigator.geolocation.getCurrentPosition(
|
||||||
|
(pos: GeolocationPosition) => {
|
||||||
|
callback(pos.coords);
|
||||||
|
},
|
||||||
|
(err: GeolocationPositionError) => {
|
||||||
|
callback(err);
|
||||||
|
},
|
||||||
|
options
|
||||||
|
);
|
||||||
|
}
|
23
lib/weather/getWeather.ts
Normal file
23
lib/weather/getWeather.ts
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
export async function getWeather(lat: number, lon: number) {
|
||||||
|
const timezone = Intl.DateTimeFormat().resolvedOptions().timeZone;
|
||||||
|
const cacheKey = `weather-cache-${lat.toFixed(2)}-${lon.toFixed(2)}-${timezone}`;
|
||||||
|
const localData = localStorage.getItem(cacheKey);
|
||||||
|
if (localData != null) {
|
||||||
|
console.log('Using cache');
|
||||||
|
const parsedLocalData = JSON.parse(localData);
|
||||||
|
if (parsedLocalData["hourly"]["time"][0] != undefined &&
|
||||||
|
new Date().getTime() - new Date(parsedLocalData["hourly"]["time"][0]).getTime() < 86400 * 1000
|
||||||
|
) {
|
||||||
|
return parsedLocalData;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
console.log('Cache expired');
|
||||||
|
localStorage.removeItem(cacheKey);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
const url = `https://api.open-meteo.com/v1/cma?latitude=${lat.toString()}&longitude=${lon.toString()}&hourly=apparent_temperature,precipitation,weather_code&timezone=${encodeURIComponent(timezone)}&forecast_days=1`;
|
||||||
|
const response = await fetch(url);
|
||||||
|
const responseJson = await response.json();
|
||||||
|
localStorage.setItem(cacheKey, JSON.stringify(responseJson));
|
||||||
|
return responseJson;
|
||||||
|
}
|
294
lib/weather/wmocode.ts
Normal file
294
lib/weather/wmocode.ts
Normal file
@ -0,0 +1,294 @@
|
|||||||
|
type WeatherInfo = {
|
||||||
|
description: string;
|
||||||
|
image: string;
|
||||||
|
};
|
||||||
|
|
||||||
|
type WMOCodeTable = {
|
||||||
|
[key: string]: {
|
||||||
|
day: WeatherInfo;
|
||||||
|
night: WeatherInfo;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
export let WMOCodeTable: WMOCodeTable = {
|
||||||
|
"0": {
|
||||||
|
day: {
|
||||||
|
description: "Sunny",
|
||||||
|
image: "http://openweathermap.org/img/wn/01d@2x.png"
|
||||||
|
},
|
||||||
|
night: {
|
||||||
|
description: "Clear",
|
||||||
|
image: "http://openweathermap.org/img/wn/01n@2x.png"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"1": {
|
||||||
|
day: {
|
||||||
|
description: "Mainly Sunny",
|
||||||
|
image: "http://openweathermap.org/img/wn/01d@2x.png"
|
||||||
|
},
|
||||||
|
night: {
|
||||||
|
description: "Mainly Clear",
|
||||||
|
image: "http://openweathermap.org/img/wn/01n@2x.png"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
day: {
|
||||||
|
description: "Partly Cloudy",
|
||||||
|
image: "http://openweathermap.org/img/wn/02d@2x.png"
|
||||||
|
},
|
||||||
|
night: {
|
||||||
|
description: "Partly Cloudy",
|
||||||
|
image: "http://openweathermap.org/img/wn/02n@2x.png"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"3": {
|
||||||
|
day: {
|
||||||
|
description: "Cloudy",
|
||||||
|
image: "http://openweathermap.org/img/wn/03d@2x.png"
|
||||||
|
},
|
||||||
|
night: {
|
||||||
|
description: "Cloudy",
|
||||||
|
image: "http://openweathermap.org/img/wn/03n@2x.png"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"45": {
|
||||||
|
day: {
|
||||||
|
description: "Foggy",
|
||||||
|
image: "http://openweathermap.org/img/wn/50d@2x.png"
|
||||||
|
},
|
||||||
|
night: {
|
||||||
|
description: "Foggy",
|
||||||
|
image: "http://openweathermap.org/img/wn/50n@2x.png"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"48": {
|
||||||
|
day: {
|
||||||
|
description: "Rime Fog",
|
||||||
|
image: "http://openweathermap.org/img/wn/50d@2x.png"
|
||||||
|
},
|
||||||
|
night: {
|
||||||
|
description: "Rime Fog",
|
||||||
|
image: "http://openweathermap.org/img/wn/50n@2x.png"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"51": {
|
||||||
|
day: {
|
||||||
|
description: "Light Drizzle",
|
||||||
|
image: "http://openweathermap.org/img/wn/09d@2x.png"
|
||||||
|
},
|
||||||
|
night: {
|
||||||
|
description: "Light Drizzle",
|
||||||
|
image: "http://openweathermap.org/img/wn/09n@2x.png"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"53": {
|
||||||
|
day: {
|
||||||
|
description: "Drizzle",
|
||||||
|
image: "http://openweathermap.org/img/wn/09d@2x.png"
|
||||||
|
},
|
||||||
|
night: {
|
||||||
|
description: "Drizzle",
|
||||||
|
image: "http://openweathermap.org/img/wn/09n@2x.png"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"55": {
|
||||||
|
day: {
|
||||||
|
description: "Heavy Drizzle",
|
||||||
|
image: "http://openweathermap.org/img/wn/09d@2x.png"
|
||||||
|
},
|
||||||
|
night: {
|
||||||
|
description: "Heavy Drizzle",
|
||||||
|
image: "http://openweathermap.org/img/wn/09n@2x.png"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"56": {
|
||||||
|
day: {
|
||||||
|
description: "Light Freezing Drizzle",
|
||||||
|
image: "http://openweathermap.org/img/wn/09d@2x.png"
|
||||||
|
},
|
||||||
|
night: {
|
||||||
|
description: "Light Freezing Drizzle",
|
||||||
|
image: "http://openweathermap.org/img/wn/09n@2x.png"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"57": {
|
||||||
|
day: {
|
||||||
|
description: "Freezing Drizzle",
|
||||||
|
image: "http://openweathermap.org/img/wn/09d@2x.png"
|
||||||
|
},
|
||||||
|
night: {
|
||||||
|
description: "Freezing Drizzle",
|
||||||
|
image: "http://openweathermap.org/img/wn/09n@2x.png"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"61": {
|
||||||
|
day: {
|
||||||
|
description: "Light Rain",
|
||||||
|
image: "http://openweathermap.org/img/wn/10d@2x.png"
|
||||||
|
},
|
||||||
|
night: {
|
||||||
|
description: "Light Rain",
|
||||||
|
image: "http://openweathermap.org/img/wn/10n@2x.png"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"63": {
|
||||||
|
day: {
|
||||||
|
description: "Rain",
|
||||||
|
image: "http://openweathermap.org/img/wn/10d@2x.png"
|
||||||
|
},
|
||||||
|
night: {
|
||||||
|
description: "Rain",
|
||||||
|
image: "http://openweathermap.org/img/wn/10n@2x.png"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"65": {
|
||||||
|
day: {
|
||||||
|
description: "Heavy Rain",
|
||||||
|
image: "http://openweathermap.org/img/wn/10d@2x.png"
|
||||||
|
},
|
||||||
|
night: {
|
||||||
|
description: "Heavy Rain",
|
||||||
|
image: "http://openweathermap.org/img/wn/10n@2x.png"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"66": {
|
||||||
|
day: {
|
||||||
|
description: "Light Freezing Rain",
|
||||||
|
image: "http://openweathermap.org/img/wn/10d@2x.png"
|
||||||
|
},
|
||||||
|
night: {
|
||||||
|
description: "Light Freezing Rain",
|
||||||
|
image: "http://openweathermap.org/img/wn/10n@2x.png"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"67": {
|
||||||
|
day: {
|
||||||
|
description: "Freezing Rain",
|
||||||
|
image: "http://openweathermap.org/img/wn/10d@2x.png"
|
||||||
|
},
|
||||||
|
night: {
|
||||||
|
description: "Freezing Rain",
|
||||||
|
image: "http://openweathermap.org/img/wn/10n@2x.png"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"71": {
|
||||||
|
day: {
|
||||||
|
description: "Light Snow",
|
||||||
|
image: "http://openweathermap.org/img/wn/13d@2x.png"
|
||||||
|
},
|
||||||
|
night: {
|
||||||
|
description: "Light Snow",
|
||||||
|
image: "http://openweathermap.org/img/wn/13n@2x.png"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"73": {
|
||||||
|
day: {
|
||||||
|
description: "Snow",
|
||||||
|
image: "http://openweathermap.org/img/wn/13d@2x.png"
|
||||||
|
},
|
||||||
|
night: {
|
||||||
|
description: "Snow",
|
||||||
|
image: "http://openweathermap.org/img/wn/13n@2x.png"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"75": {
|
||||||
|
day: {
|
||||||
|
description: "Heavy Snow",
|
||||||
|
image: "http://openweathermap.org/img/wn/13d@2x.png"
|
||||||
|
},
|
||||||
|
night: {
|
||||||
|
description: "Heavy Snow",
|
||||||
|
image: "http://openweathermap.org/img/wn/13n@2x.png"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"77": {
|
||||||
|
day: {
|
||||||
|
description: "Snow Grains",
|
||||||
|
image: "http://openweathermap.org/img/wn/13d@2x.png"
|
||||||
|
},
|
||||||
|
night: {
|
||||||
|
description: "Snow Grains",
|
||||||
|
image: "http://openweathermap.org/img/wn/13n@2x.png"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"80": {
|
||||||
|
day: {
|
||||||
|
description: "Light Showers",
|
||||||
|
image: "http://openweathermap.org/img/wn/09d@2x.png"
|
||||||
|
},
|
||||||
|
night: {
|
||||||
|
description: "Light Showers",
|
||||||
|
image: "http://openweathermap.org/img/wn/09n@2x.png"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"81": {
|
||||||
|
day: {
|
||||||
|
description: "Showers",
|
||||||
|
image: "http://openweathermap.org/img/wn/09d@2x.png"
|
||||||
|
},
|
||||||
|
night: {
|
||||||
|
description: "Showers",
|
||||||
|
image: "http://openweathermap.org/img/wn/09n@2x.png"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"82": {
|
||||||
|
day: {
|
||||||
|
description: "Heavy Showers",
|
||||||
|
image: "http://openweathermap.org/img/wn/09d@2x.png"
|
||||||
|
},
|
||||||
|
night: {
|
||||||
|
description: "Heavy Showers",
|
||||||
|
image: "http://openweathermap.org/img/wn/09n@2x.png"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"85": {
|
||||||
|
day: {
|
||||||
|
description: "Light Snow Showers",
|
||||||
|
image: "http://openweathermap.org/img/wn/13d@2x.png"
|
||||||
|
},
|
||||||
|
night: {
|
||||||
|
description: "Light Snow Showers",
|
||||||
|
image: "http://openweathermap.org/img/wn/13n@2x.png"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"86": {
|
||||||
|
day: {
|
||||||
|
description: "Snow Showers",
|
||||||
|
image: "http://openweathermap.org/img/wn/13d@2x.png"
|
||||||
|
},
|
||||||
|
night: {
|
||||||
|
description: "Snow Showers",
|
||||||
|
image: "http://openweathermap.org/img/wn/13n@2x.png"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"95": {
|
||||||
|
day: {
|
||||||
|
description: "Thunderstorm",
|
||||||
|
image: "http://openweathermap.org/img/wn/11d@2x.png"
|
||||||
|
},
|
||||||
|
night: {
|
||||||
|
description: "Thunderstorm",
|
||||||
|
image: "http://openweathermap.org/img/wn/11n@2x.png"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"96": {
|
||||||
|
day: {
|
||||||
|
description: "Light Thunderstorms With Hail",
|
||||||
|
image: "http://openweathermap.org/img/wn/11d@2x.png"
|
||||||
|
},
|
||||||
|
night: {
|
||||||
|
description: "Light Thunderstorms With Hail",
|
||||||
|
image: "http://openweathermap.org/img/wn/11n@2x.png"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"99": {
|
||||||
|
day: {
|
||||||
|
description: "Thunderstorm With Hail",
|
||||||
|
image: "http://openweathermap.org/img/wn/11d@2x.png"
|
||||||
|
},
|
||||||
|
night: {
|
||||||
|
description: "Thunderstorm With Hail",
|
||||||
|
image: "http://openweathermap.org/img/wn/11n@2x.png"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
13
package.json
13
package.json
@ -1,10 +1,11 @@
|
|||||||
{
|
{
|
||||||
"name": "sparkhome",
|
"name": "sparkhome",
|
||||||
"version": "4.10.2",
|
"version": "4.17.0",
|
||||||
"private": false,
|
"private": false,
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "next dev",
|
"dev": "next dev",
|
||||||
"build": "next build",
|
"build": "next build",
|
||||||
|
"build:NLP": "tsx ./lib/nlp/train.ts",
|
||||||
"start": "next start",
|
"start": "next start",
|
||||||
"lint": "next lint",
|
"lint": "next lint",
|
||||||
"test": "jest",
|
"test": "jest",
|
||||||
@ -14,11 +15,19 @@
|
|||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@nextui-org/react": "^2.3.6",
|
"@nextui-org/react": "^2.3.6",
|
||||||
|
"@nlpjs/basic": "^4.27.0",
|
||||||
|
"@nlpjs/builtin-compromise": "^4.26.1",
|
||||||
|
"@nlpjs/core": "^4.26.1",
|
||||||
|
"@nlpjs/lang-en-min": "^4.26.1",
|
||||||
|
"@nlpjs/lang-zh": "^4.26.1",
|
||||||
|
"@nlpjs/nlp": "^4.27.0",
|
||||||
"clsx": "^2.1.1",
|
"clsx": "^2.1.1",
|
||||||
|
"fflate": "^0.8.2",
|
||||||
"framer-motion": "^11.1.7",
|
"framer-motion": "^11.1.7",
|
||||||
"next": "14.1.4",
|
"next": "14.1.4",
|
||||||
"next-intl": "^3.12.0",
|
"next-intl": "^3.12.0",
|
||||||
"next-themes": "^0.3.0",
|
"next-themes": "^0.3.0",
|
||||||
|
"openmeteo": "^1.1.4",
|
||||||
"pino": "^9.0.0",
|
"pino": "^9.0.0",
|
||||||
"punycode": "^2.3.1",
|
"punycode": "^2.3.1",
|
||||||
"react": "^18.3.0",
|
"react": "^18.3.0",
|
||||||
@ -26,7 +35,6 @@
|
|||||||
"recoil": "^0.7.7",
|
"recoil": "^0.7.7",
|
||||||
"search-engine-autocomplete": "^0.4.3",
|
"search-engine-autocomplete": "^0.4.3",
|
||||||
"tailwind-merge": "^2.3.0",
|
"tailwind-merge": "^2.3.0",
|
||||||
"ts-node": "^10.9.2",
|
|
||||||
"unicode-encode": "^1.4.2",
|
"unicode-encode": "^1.4.2",
|
||||||
"valid-url": "^1.0.9",
|
"valid-url": "^1.0.9",
|
||||||
"validate-color": "^2.2.4"
|
"validate-color": "^2.2.4"
|
||||||
@ -48,6 +56,7 @@
|
|||||||
"postcss": "^8.4.38",
|
"postcss": "^8.4.38",
|
||||||
"tailwindcss": "^3.4.3",
|
"tailwindcss": "^3.4.3",
|
||||||
"ts-jest": "^29.1.2",
|
"ts-jest": "^29.1.2",
|
||||||
|
"tsx": "^4.15.6",
|
||||||
"typescript": "^5.4.5",
|
"typescript": "^5.4.5",
|
||||||
"vitepress": "^1.2.3",
|
"vitepress": "^1.2.3",
|
||||||
"vue": "^3.4.29"
|
"vue": "^3.4.29"
|
||||||
|
505
pnpm-lock.yaml
505
pnpm-lock.yaml
@ -11,9 +11,30 @@ importers:
|
|||||||
'@nextui-org/react':
|
'@nextui-org/react':
|
||||||
specifier: ^2.3.6
|
specifier: ^2.3.6
|
||||||
version: 2.3.6(@types/react@18.3.0)(framer-motion@11.1.7(react-dom@18.3.0(react@18.3.0))(react@18.3.0))(react-dom@18.3.0(react@18.3.0))(react@18.3.0)(tailwind-variants@0.2.1(tailwindcss@3.4.3(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5))))(tailwindcss@3.4.3(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5)))
|
version: 2.3.6(@types/react@18.3.0)(framer-motion@11.1.7(react-dom@18.3.0(react@18.3.0))(react@18.3.0))(react-dom@18.3.0(react@18.3.0))(react@18.3.0)(tailwind-variants@0.2.1(tailwindcss@3.4.3(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5))))(tailwindcss@3.4.3(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5)))
|
||||||
|
'@nlpjs/basic':
|
||||||
|
specifier: ^4.27.0
|
||||||
|
version: 4.27.0
|
||||||
|
'@nlpjs/builtin-compromise':
|
||||||
|
specifier: ^4.26.1
|
||||||
|
version: 4.26.1
|
||||||
|
'@nlpjs/core':
|
||||||
|
specifier: ^4.26.1
|
||||||
|
version: 4.26.1
|
||||||
|
'@nlpjs/lang-en-min':
|
||||||
|
specifier: ^4.26.1
|
||||||
|
version: 4.26.1
|
||||||
|
'@nlpjs/lang-zh':
|
||||||
|
specifier: ^4.26.1
|
||||||
|
version: 4.26.1
|
||||||
|
'@nlpjs/nlp':
|
||||||
|
specifier: ^4.27.0
|
||||||
|
version: 4.27.0
|
||||||
clsx:
|
clsx:
|
||||||
specifier: ^2.1.1
|
specifier: ^2.1.1
|
||||||
version: 2.1.1
|
version: 2.1.1
|
||||||
|
fflate:
|
||||||
|
specifier: ^0.8.2
|
||||||
|
version: 0.8.2
|
||||||
framer-motion:
|
framer-motion:
|
||||||
specifier: ^11.1.7
|
specifier: ^11.1.7
|
||||||
version: 11.1.7(react-dom@18.3.0(react@18.3.0))(react@18.3.0)
|
version: 11.1.7(react-dom@18.3.0(react@18.3.0))(react@18.3.0)
|
||||||
@ -26,6 +47,9 @@ importers:
|
|||||||
next-themes:
|
next-themes:
|
||||||
specifier: ^0.3.0
|
specifier: ^0.3.0
|
||||||
version: 0.3.0(react-dom@18.3.0(react@18.3.0))(react@18.3.0)
|
version: 0.3.0(react-dom@18.3.0(react@18.3.0))(react@18.3.0)
|
||||||
|
openmeteo:
|
||||||
|
specifier: ^1.1.4
|
||||||
|
version: 1.1.4
|
||||||
pino:
|
pino:
|
||||||
specifier: ^9.0.0
|
specifier: ^9.0.0
|
||||||
version: 9.0.0
|
version: 9.0.0
|
||||||
@ -47,9 +71,6 @@ importers:
|
|||||||
tailwind-merge:
|
tailwind-merge:
|
||||||
specifier: ^2.3.0
|
specifier: ^2.3.0
|
||||||
version: 2.3.0
|
version: 2.3.0
|
||||||
ts-node:
|
|
||||||
specifier: ^10.9.2
|
|
||||||
version: 10.9.2(@types/node@20.12.7)(typescript@5.4.5)
|
|
||||||
unicode-encode:
|
unicode-encode:
|
||||||
specifier: ^1.4.2
|
specifier: ^1.4.2
|
||||||
version: 1.4.2
|
version: 1.4.2
|
||||||
@ -108,6 +129,9 @@ importers:
|
|||||||
ts-jest:
|
ts-jest:
|
||||||
specifier: ^29.1.2
|
specifier: ^29.1.2
|
||||||
version: 29.1.2(@babel/core@7.24.4)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.24.4))(jest@29.7.0(@types/node@20.12.7)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5)))(typescript@5.4.5)
|
version: 29.1.2(@babel/core@7.24.4)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.24.4))(jest@29.7.0(@types/node@20.12.7)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5)))(typescript@5.4.5)
|
||||||
|
tsx:
|
||||||
|
specifier: ^4.15.6
|
||||||
|
version: 4.15.6
|
||||||
typescript:
|
typescript:
|
||||||
specifier: ^5.4.5
|
specifier: ^5.4.5
|
||||||
version: 5.4.5
|
version: 5.4.5
|
||||||
@ -1224,6 +1248,69 @@ packages:
|
|||||||
react: '>=18'
|
react: '>=18'
|
||||||
react-dom: '>=18'
|
react-dom: '>=18'
|
||||||
|
|
||||||
|
'@nlpjs/basic@4.27.0':
|
||||||
|
resolution: {integrity: sha512-AL03Xdf2H1leAkWfjVwjm8SqeEj9M7ZBHoKC16sSd2SGgQN24YwZFpRyySW2vvDfHLHk8LkFu0+Efw9LdADz4A==}
|
||||||
|
|
||||||
|
'@nlpjs/builtin-compromise@4.26.1':
|
||||||
|
resolution: {integrity: sha512-wc4tN0NIyfjMyRt1qpU+A4i6hIdtg92ZlfIgzx1q67sZJ+jMp0EQU2slokqFSRK1m4+WT9jAsbd/nrUan3oWlA==}
|
||||||
|
|
||||||
|
'@nlpjs/connector@4.26.1':
|
||||||
|
resolution: {integrity: sha512-VCNoZpuKXoaQPT9djrEnpGDRFCYs8LBCeV/f4u0waaKM2VVp6OdLDCYV9RDQ7MK+VOsZhvDfPa2kuoixRE4srA==}
|
||||||
|
|
||||||
|
'@nlpjs/console-connector@4.26.1':
|
||||||
|
resolution: {integrity: sha512-gktzTvDVAUzq5N/JTBZ5gMa8DhG4lV9rXOONIuuivo4Ze8jP/JdcenK1WQoisV/XnI7uMjnYhVnSB4wY7IizSA==}
|
||||||
|
|
||||||
|
'@nlpjs/core-loader@4.26.1':
|
||||||
|
resolution: {integrity: sha512-IiRtn65bdiUSQHy2kusco2fmhk39u2Mc2c5Fsm9+9EVG6BtJCmVEFU/btAzGDAmxEA/E4qKecaAT4LvcW6TPbA==}
|
||||||
|
|
||||||
|
'@nlpjs/core@4.26.1':
|
||||||
|
resolution: {integrity: sha512-M/PeFddsi3y7Z1piFJxsLGm5/xdMhcrpOsml7s6CTEgYo8iduaT30HDd61tZxDyvvJseU6uFqlXSn7XKkAcC1g==}
|
||||||
|
|
||||||
|
'@nlpjs/evaluator@4.26.1':
|
||||||
|
resolution: {integrity: sha512-WeUrC8qq7+V8Jhkkjc2yiXdzy9V0wbETv8/qasQmL0QmEuwBDJF+fvfl4z2vWpBb0vW07A8aNrFElKELzbpkdg==}
|
||||||
|
|
||||||
|
'@nlpjs/lang-en-min@4.26.1':
|
||||||
|
resolution: {integrity: sha512-1sJZ7dy7ysqzbsB8IklguvB88J8EPIv4XGVkZCcwecKtOw+fp5LAsZ3TJVmEf18iK1gD4cEGr7qZg5fpPxTpWQ==}
|
||||||
|
|
||||||
|
'@nlpjs/lang-en@4.26.1':
|
||||||
|
resolution: {integrity: sha512-GVoJpOjyk5TtBAqo/fxsiuuH7jXycyakGT0gw5f01u9lOmUnpJegvXyGff/Nb0j14pXcGHXOhmpWrcTrG2B0LQ==}
|
||||||
|
|
||||||
|
'@nlpjs/lang-zh@4.26.1':
|
||||||
|
resolution: {integrity: sha512-kwqeqeEgMAMvucVX9HNE1p6s/2APP23ZsS8Um/lNvtswb4gL5jjYF9kyCvRfqlPBQSWWdRv7wwcnNXOvXYkxcQ==}
|
||||||
|
|
||||||
|
'@nlpjs/language-min@4.25.0':
|
||||||
|
resolution: {integrity: sha512-g8jtbDbqtRm+dlD/1Vnb4VWfKbKteApEGVTqIMxYkk6N/HMhvLZ5J2svrxzrB98a/HZ0fb//YBfFgymnz9Oukg==}
|
||||||
|
|
||||||
|
'@nlpjs/logger@4.26.1':
|
||||||
|
resolution: {integrity: sha512-1WaXq+lt1vm34TPxoRZQ8c6PA7cqou/V18lGDt7uZbK0L5cXsB8OuYm5lEB/J1QlbJ819Nkmb32Oax9idQODRw==}
|
||||||
|
|
||||||
|
'@nlpjs/ner@4.27.0':
|
||||||
|
resolution: {integrity: sha512-ptwkxriJdmgHSH9TfP10JQ1jviaSl2SupSFGUvTuWkuJhobQd3hbnlSq40V6XYvJNmqh9M9zEab/AKeghxYOTA==}
|
||||||
|
|
||||||
|
'@nlpjs/neural@4.25.0':
|
||||||
|
resolution: {integrity: sha512-Oz20denGiBe0DlQsS7lN4TNrATN1nXlHKc/HB6jJPegjVmgJVCugDaHwIGoV7qOWyA6F2fRRwOgD+quNT2gVpg==}
|
||||||
|
|
||||||
|
'@nlpjs/nlg@4.26.1':
|
||||||
|
resolution: {integrity: sha512-PCJWiZ7464ChXXUGvjBZIFtoqkC24Oy6X63HgQrSv+63svz22Y5Cmu1MYLk77Nb+4keWv+hKhFJKDkvJoOpBVg==}
|
||||||
|
|
||||||
|
'@nlpjs/nlp@4.27.0':
|
||||||
|
resolution: {integrity: sha512-q6X7sY6TYVnQRZJKF/6mfLFlNA5oRYLhgQ5k3i1IBqH9lbWTAZJr31w/dCf97HXaYaj+vJp3h0ucfNumme9EIw==}
|
||||||
|
|
||||||
|
'@nlpjs/nlu@4.27.0':
|
||||||
|
resolution: {integrity: sha512-j4DUdoXS/y/Xag6ysYXx7Ve8NBmUVViUSCJhj3r49+zGyYtyVAHuVcqSej5q0tJjn0JSMT+6+ip8klON1q8ixw==}
|
||||||
|
|
||||||
|
'@nlpjs/request@4.25.0':
|
||||||
|
resolution: {integrity: sha512-MPVYWfFZY03WyFL7GWkUkv8tw968OXsdxFSJEvjXHzhiCe/vAlPCWbvoR+VnoQTgzLHxs/KIF6sIF2s9AzsLmQ==}
|
||||||
|
|
||||||
|
'@nlpjs/sentiment@4.26.1':
|
||||||
|
resolution: {integrity: sha512-U2WmcW3w6yDDO45+Y7v5e6DPQj8e0x+RUUePPyRu2uIZmUtIKG+qCPMWnNLMmYQZoSQEFxmMMlLcGDC7tN7o3w==}
|
||||||
|
|
||||||
|
'@nlpjs/similarity@4.26.1':
|
||||||
|
resolution: {integrity: sha512-QutSBFGo/huNuz60PgqCjub0oBd9S8MLrjme33U5GzxuSvToQzXtn9/ynIia8qDm009D09VXV+LPeNE4h7yuSg==}
|
||||||
|
|
||||||
|
'@nlpjs/slot@4.26.1':
|
||||||
|
resolution: {integrity: sha512-mK8EEy5O+mRGne822PIKMxHSFh8j+iC7hGJ6T31XdFsNhFEYXLI/0dmeBstZgTSKBTe27HNFgCCwuGb77u0o9w==}
|
||||||
|
|
||||||
'@nodelib/fs.scandir@2.1.5':
|
'@nodelib/fs.scandir@2.1.5':
|
||||||
resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
|
resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
|
||||||
engines: {node: '>= 8'}
|
engines: {node: '>= 8'}
|
||||||
@ -1236,6 +1323,10 @@ packages:
|
|||||||
resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
|
resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
|
||||||
engines: {node: '>= 8'}
|
engines: {node: '>= 8'}
|
||||||
|
|
||||||
|
'@openmeteo/sdk@1.11.7':
|
||||||
|
resolution: {integrity: sha512-qV790gksvJ+l/umb1iKt+ZRUKE5RzgmPkwTeUSmtUcnoRaAQZX9/BQLDpmEZrkcuv4g1trzcsNRwxBrBLWUnWA==}
|
||||||
|
engines: {node: '>=12.0'}
|
||||||
|
|
||||||
'@pkgjs/parseargs@0.11.0':
|
'@pkgjs/parseargs@0.11.0':
|
||||||
resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==}
|
resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==}
|
||||||
engines: {node: '>=14'}
|
engines: {node: '>=14'}
|
||||||
@ -2051,6 +2142,10 @@ packages:
|
|||||||
argparse@1.0.10:
|
argparse@1.0.10:
|
||||||
resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==}
|
resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==}
|
||||||
|
|
||||||
|
args@5.0.3:
|
||||||
|
resolution: {integrity: sha512-h6k/zfFgusnv3i5TU08KQkVKuCPBtL/PWQbWkHUxvJrZ2nAyeaUupneemcrgn1xmqxPQsPIzwkUhOpoqPDRZuA==}
|
||||||
|
engines: {node: '>= 6.0.0'}
|
||||||
|
|
||||||
aria-query@5.1.3:
|
aria-query@5.1.3:
|
||||||
resolution: {integrity: sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==}
|
resolution: {integrity: sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==}
|
||||||
|
|
||||||
@ -2171,6 +2266,10 @@ packages:
|
|||||||
resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==}
|
resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==}
|
||||||
engines: {node: '>= 6'}
|
engines: {node: '>= 6'}
|
||||||
|
|
||||||
|
camelcase@5.0.0:
|
||||||
|
resolution: {integrity: sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA==}
|
||||||
|
engines: {node: '>=6'}
|
||||||
|
|
||||||
camelcase@5.3.1:
|
camelcase@5.3.1:
|
||||||
resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==}
|
resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==}
|
||||||
engines: {node: '>=6'}
|
engines: {node: '>=6'}
|
||||||
@ -2254,6 +2353,9 @@ packages:
|
|||||||
resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==}
|
resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==}
|
||||||
engines: {node: '>=12.5.0'}
|
engines: {node: '>=12.5.0'}
|
||||||
|
|
||||||
|
colorette@2.0.20:
|
||||||
|
resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==}
|
||||||
|
|
||||||
combined-stream@1.0.8:
|
combined-stream@1.0.8:
|
||||||
resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==}
|
resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==}
|
||||||
engines: {node: '>= 0.8'}
|
engines: {node: '>= 0.8'}
|
||||||
@ -2262,6 +2364,21 @@ packages:
|
|||||||
resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==}
|
resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==}
|
||||||
engines: {node: '>= 6'}
|
engines: {node: '>= 6'}
|
||||||
|
|
||||||
|
compromise-dates@1.5.6:
|
||||||
|
resolution: {integrity: sha512-i51/snFZtaW+cLx16HrBMHdgqc9eB3lsT5igtm9pOw6sNsNMX64lKiJdp3/kxGtOnl0fjGbZ69DoHb6o4pGUJw==}
|
||||||
|
peerDependencies:
|
||||||
|
compromise: '>=12.0.0'
|
||||||
|
compromise-numbers: '>=1.0.0'
|
||||||
|
|
||||||
|
compromise-numbers@1.4.0:
|
||||||
|
resolution: {integrity: sha512-3ceRpwZIWduVSMYn54ET1ELdI7bvXQk42uDwxffxiJBxgKCwcCfVbiLuTG62cI+qTHchwLDh4vp9i3WARXROFQ==}
|
||||||
|
peerDependencies:
|
||||||
|
compromise: '>=12.0.0'
|
||||||
|
|
||||||
|
compromise@13.11.4:
|
||||||
|
resolution: {integrity: sha512-nBITcNdqIHSVDDluaG6guyFFCSNXN+Hu87fU8VlhkE5Z0PwTZN1nro2O7a8JcUH88nB5EOzrxd9zKfXLSNFqcg==}
|
||||||
|
engines: {node: '>=8.0.0'}
|
||||||
|
|
||||||
compute-scroll-into-view@3.1.0:
|
compute-scroll-into-view@3.1.0:
|
||||||
resolution: {integrity: sha512-rj8l8pD4bJ1nx+dAkMhV1xB5RuZEyVysfxJqB1pRchh1KVvwOv9b7CGB8ZfjTImVv2oF+sYMUkMZq6Na5Ftmbg==}
|
resolution: {integrity: sha512-rj8l8pD4bJ1nx+dAkMhV1xB5RuZEyVysfxJqB1pRchh1KVvwOv9b7CGB8ZfjTImVv2oF+sYMUkMZq6Na5Ftmbg==}
|
||||||
|
|
||||||
@ -2312,6 +2429,9 @@ packages:
|
|||||||
resolution: {integrity: sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==}
|
resolution: {integrity: sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==}
|
||||||
engines: {node: '>=12'}
|
engines: {node: '>=12'}
|
||||||
|
|
||||||
|
dateformat@4.6.3:
|
||||||
|
resolution: {integrity: sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==}
|
||||||
|
|
||||||
debug@4.3.4:
|
debug@4.3.4:
|
||||||
resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==}
|
resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==}
|
||||||
engines: {node: '>=6.0'}
|
engines: {node: '>=6.0'}
|
||||||
@ -2388,9 +2508,15 @@ packages:
|
|||||||
engines: {node: '>=12'}
|
engines: {node: '>=12'}
|
||||||
deprecated: Use your platform's native DOMException instead
|
deprecated: Use your platform's native DOMException instead
|
||||||
|
|
||||||
|
duplexify@4.1.3:
|
||||||
|
resolution: {integrity: sha512-M3BmBhwJRZsSx38lZyhE53Csddgzl5R7xGJNk7CVddZD6CcmwMCH8J+7AprIrQKH7TonKxaCjcv27Qmf+sQ+oA==}
|
||||||
|
|
||||||
eastasianwidth@0.2.0:
|
eastasianwidth@0.2.0:
|
||||||
resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==}
|
resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==}
|
||||||
|
|
||||||
|
efrt-unpack@2.2.0:
|
||||||
|
resolution: {integrity: sha512-9xUSSj7qcUxz+0r4X3+bwUNttEfGfK5AH+LVa1aTpqdAfrN5VhROYCfcF+up4hp5OL7IUKcZJJrzAGipQRDoiQ==}
|
||||||
|
|
||||||
electron-to-chromium@1.4.749:
|
electron-to-chromium@1.4.749:
|
||||||
resolution: {integrity: sha512-LRMMrM9ITOvue0PoBrvNIraVmuDbJV5QC9ierz/z5VilMdPOVMjOtpICNld3PuXuTZ3CHH/UPxX9gHhAPwi+0Q==}
|
resolution: {integrity: sha512-LRMMrM9ITOvue0PoBrvNIraVmuDbJV5QC9ierz/z5VilMdPOVMjOtpICNld3PuXuTZ3CHH/UPxX9gHhAPwi+0Q==}
|
||||||
|
|
||||||
@ -2404,6 +2530,9 @@ packages:
|
|||||||
emoji-regex@9.2.2:
|
emoji-regex@9.2.2:
|
||||||
resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==}
|
resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==}
|
||||||
|
|
||||||
|
end-of-stream@1.4.4:
|
||||||
|
resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==}
|
||||||
|
|
||||||
entities@4.5.0:
|
entities@4.5.0:
|
||||||
resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==}
|
resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==}
|
||||||
engines: {node: '>=0.12'}
|
engines: {node: '>=0.12'}
|
||||||
@ -2491,12 +2620,18 @@ packages:
|
|||||||
resolution: {integrity: sha512-dwsoQlS7h9hMeYUq1W++23NDcBLV4KqONnITDV9DjfS3q1SgDGVrBdvvTLUotWtPSD7asWDV9/CmsZPy8Hf70A==}
|
resolution: {integrity: sha512-dwsoQlS7h9hMeYUq1W++23NDcBLV4KqONnITDV9DjfS3q1SgDGVrBdvvTLUotWtPSD7asWDV9/CmsZPy8Hf70A==}
|
||||||
engines: {node: '>=6'}
|
engines: {node: '>=6'}
|
||||||
|
|
||||||
|
fast-safe-stringify@2.1.1:
|
||||||
|
resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==}
|
||||||
|
|
||||||
fastq@1.17.1:
|
fastq@1.17.1:
|
||||||
resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==}
|
resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==}
|
||||||
|
|
||||||
fb-watchman@2.0.2:
|
fb-watchman@2.0.2:
|
||||||
resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==}
|
resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==}
|
||||||
|
|
||||||
|
fflate@0.8.2:
|
||||||
|
resolution: {integrity: sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==}
|
||||||
|
|
||||||
fill-range@7.0.1:
|
fill-range@7.0.1:
|
||||||
resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==}
|
resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==}
|
||||||
engines: {node: '>=8'}
|
engines: {node: '>=8'}
|
||||||
@ -2509,6 +2644,9 @@ packages:
|
|||||||
resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==}
|
resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
|
|
||||||
|
flatbuffers@24.3.25:
|
||||||
|
resolution: {integrity: sha512-3HDgPbgiwWMI9zVB7VYBHaMrbOO7Gm0v+yD2FV/sCKj+9NDeVL7BOBYUuhWAQGKWOzBo8S9WdMvV0eixO233XQ==}
|
||||||
|
|
||||||
focus-trap@7.5.4:
|
focus-trap@7.5.4:
|
||||||
resolution: {integrity: sha512-N7kHdlgsO/v+iD/dMoJKtsSqs5Dz/dXZVebRgJw23LDk+jMi/974zyiOYDziY2JPp8xivq9BmUGwIJMiuSBi7w==}
|
resolution: {integrity: sha512-N7kHdlgsO/v+iD/dMoJKtsSqs5Dz/dXZVebRgJw23LDk+jMi/974zyiOYDziY2JPp8xivq9BmUGwIJMiuSBi7w==}
|
||||||
|
|
||||||
@ -2578,6 +2716,9 @@ packages:
|
|||||||
resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==}
|
resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==}
|
||||||
engines: {node: '>=10'}
|
engines: {node: '>=10'}
|
||||||
|
|
||||||
|
get-tsconfig@4.7.5:
|
||||||
|
resolution: {integrity: sha512-ZCuZCnlqNzjb4QprAzXKdpp/gh6KTxSJuw3IBsPnV/7fV4NxC9ckB+vPTt8w7fJA0TaSD7c55BR47JD6MEDyDw==}
|
||||||
|
|
||||||
glob-parent@5.1.2:
|
glob-parent@5.1.2:
|
||||||
resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
|
resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
|
||||||
engines: {node: '>= 6'}
|
engines: {node: '>= 6'}
|
||||||
@ -2980,6 +3121,10 @@ packages:
|
|||||||
resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==}
|
resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
|
|
||||||
|
joycon@3.1.1:
|
||||||
|
resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==}
|
||||||
|
engines: {node: '>=10'}
|
||||||
|
|
||||||
js-tokens@4.0.0:
|
js-tokens@4.0.0:
|
||||||
resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
|
resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
|
||||||
|
|
||||||
@ -3013,6 +3158,10 @@ packages:
|
|||||||
resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==}
|
resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==}
|
||||||
engines: {node: '>=6'}
|
engines: {node: '>=6'}
|
||||||
|
|
||||||
|
leven@2.1.0:
|
||||||
|
resolution: {integrity: sha512-nvVPLpIHUxCUoRLrFqTgSxXJ614d8AgQoWl7zPe/2VadE8+1dpU3LBhowRuBAcuwruWtOdD8oYC9jDNJjXDPyA==}
|
||||||
|
engines: {node: '>=0.10.0'}
|
||||||
|
|
||||||
leven@3.1.0:
|
leven@3.1.0:
|
||||||
resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==}
|
resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==}
|
||||||
engines: {node: '>=6'}
|
engines: {node: '>=6'}
|
||||||
@ -3135,6 +3284,10 @@ packages:
|
|||||||
mitt@3.0.1:
|
mitt@3.0.1:
|
||||||
resolution: {integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==}
|
resolution: {integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==}
|
||||||
|
|
||||||
|
mri@1.1.4:
|
||||||
|
resolution: {integrity: sha512-6y7IjGPm8AzlvoUrwAaw1tLnUBudaS3752vcd8JtrpGGQn+rXIe63LFVHm/YMwtqAuh+LJPCFdlLYPWM1nYn6w==}
|
||||||
|
engines: {node: '>=4'}
|
||||||
|
|
||||||
ms@2.1.2:
|
ms@2.1.2:
|
||||||
resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==}
|
resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==}
|
||||||
|
|
||||||
@ -3224,6 +3377,9 @@ packages:
|
|||||||
resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==}
|
resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==}
|
||||||
engines: {node: '>= 0.4'}
|
engines: {node: '>= 0.4'}
|
||||||
|
|
||||||
|
on-exit-leak-free@0.2.0:
|
||||||
|
resolution: {integrity: sha512-dqaz3u44QbRXQooZLTUKU41ZrzYrcvLISVgbrzbyCMxpmSLJvZ3ZamIJIZ29P6OhZIkNIQKosdeM6t1LYbA9hg==}
|
||||||
|
|
||||||
on-exit-leak-free@2.1.2:
|
on-exit-leak-free@2.1.2:
|
||||||
resolution: {integrity: sha512-0eJJY6hXLGf1udHwfNftBqH+g73EU4B504nZeKpz1sYRKafAghwxEJunB2O7rDZkL4PGfsMVnTXZ2EjibbqcsA==}
|
resolution: {integrity: sha512-0eJJY6hXLGf1udHwfNftBqH+g73EU4B504nZeKpz1sYRKafAghwxEJunB2O7rDZkL4PGfsMVnTXZ2EjibbqcsA==}
|
||||||
engines: {node: '>=14.0.0'}
|
engines: {node: '>=14.0.0'}
|
||||||
@ -3235,6 +3391,10 @@ packages:
|
|||||||
resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==}
|
resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==}
|
||||||
engines: {node: '>=6'}
|
engines: {node: '>=6'}
|
||||||
|
|
||||||
|
openmeteo@1.1.4:
|
||||||
|
resolution: {integrity: sha512-TalTDl0M7JJoeRTf+rWiFZ9SLvoxm7KkFLOQqcSjCiYs+bVMhax1qtryJqeZ1RF4W4Xfsgcl9x+VC1z39ULCxA==}
|
||||||
|
engines: {node: '>=12.0'}
|
||||||
|
|
||||||
p-limit@2.3.0:
|
p-limit@2.3.0:
|
||||||
resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==}
|
resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==}
|
||||||
engines: {node: '>=6'}
|
engines: {node: '>=6'}
|
||||||
@ -3291,12 +3451,26 @@ packages:
|
|||||||
resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==}
|
resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==}
|
||||||
engines: {node: '>=0.10.0'}
|
engines: {node: '>=0.10.0'}
|
||||||
|
|
||||||
|
pino-abstract-transport@0.5.0:
|
||||||
|
resolution: {integrity: sha512-+KAgmVeqXYbTtU2FScx1XS3kNyfZ5TrXY07V96QnUSFqo2gAqlvmaxH67Lj7SWazqsMabf+58ctdTcBgnOLUOQ==}
|
||||||
|
|
||||||
pino-abstract-transport@1.2.0:
|
pino-abstract-transport@1.2.0:
|
||||||
resolution: {integrity: sha512-Guhh8EZfPCfH+PMXAb6rKOjGQEoy0xlAIn+irODG5kgfYV+BQ0rGYYWTIel3P5mmyXqkYkPmdIkywsn6QKUR1Q==}
|
resolution: {integrity: sha512-Guhh8EZfPCfH+PMXAb6rKOjGQEoy0xlAIn+irODG5kgfYV+BQ0rGYYWTIel3P5mmyXqkYkPmdIkywsn6QKUR1Q==}
|
||||||
|
|
||||||
|
pino-pretty@7.6.1:
|
||||||
|
resolution: {integrity: sha512-H7N6ZYkiyrfwBGW9CSjx0uyO9Q2Lyt73881+OTYk8v3TiTdgN92QHrWlEq/LeWw5XtDP64jeSk3mnc6T+xX9/w==}
|
||||||
|
hasBin: true
|
||||||
|
|
||||||
|
pino-std-serializers@4.0.0:
|
||||||
|
resolution: {integrity: sha512-cK0pekc1Kjy5w9V2/n+8MkZwusa6EyyxfeQCB799CQRhRt/CqYKiWs5adeu8Shve2ZNffvfC/7J64A2PJo1W/Q==}
|
||||||
|
|
||||||
pino-std-serializers@6.2.2:
|
pino-std-serializers@6.2.2:
|
||||||
resolution: {integrity: sha512-cHjPPsE+vhj/tnhCy/wiMh3M3z3h/j15zHQX+S9GkTBgqJuTuJzYJ4gUyACLhDaJ7kk9ba9iRDmbH2tJU03OiA==}
|
resolution: {integrity: sha512-cHjPPsE+vhj/tnhCy/wiMh3M3z3h/j15zHQX+S9GkTBgqJuTuJzYJ4gUyACLhDaJ7kk9ba9iRDmbH2tJU03OiA==}
|
||||||
|
|
||||||
|
pino@7.11.0:
|
||||||
|
resolution: {integrity: sha512-dMACeu63HtRLmCG8VKdy4cShCPKaYDR4youZqoSWLxl5Gu99HUw8bw75thbPv9Nip+H+QYX8o3ZJbTdVZZ2TVg==}
|
||||||
|
hasBin: true
|
||||||
|
|
||||||
pino@9.0.0:
|
pino@9.0.0:
|
||||||
resolution: {integrity: sha512-uI1ThkzTShNSwvsUM6b4ND8ANzWURk9zTELMztFkmnCQeR/4wkomJ+echHee5GMWGovoSfjwdeu80DsFIt7mbA==}
|
resolution: {integrity: sha512-uI1ThkzTShNSwvsUM6b4ND8ANzWURk9zTELMztFkmnCQeR/4wkomJ+echHee5GMWGovoSfjwdeu80DsFIt7mbA==}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
@ -3369,6 +3543,9 @@ packages:
|
|||||||
resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==}
|
resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==}
|
||||||
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
|
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
|
||||||
|
|
||||||
|
process-warning@1.0.0:
|
||||||
|
resolution: {integrity: sha512-du4wfLyj4yCZq1VupnVSZmRsPJsNuxoDQFdCFHLaYiEbFBD7QE0a+I4D7hOxrVnh78QE/YipFAj9lXHiXocV+Q==}
|
||||||
|
|
||||||
process-warning@3.0.0:
|
process-warning@3.0.0:
|
||||||
resolution: {integrity: sha512-mqn0kFRl0EoqhnL0GQ0veqFHyIN1yig9RHh/InzORTUiZHFRAur+aMtRkELNwGs9aNwKS6tg/An4NYBPGwvtzQ==}
|
resolution: {integrity: sha512-mqn0kFRl0EoqhnL0GQ0veqFHyIN1yig9RHh/InzORTUiZHFRAur+aMtRkELNwGs9aNwKS6tg/An4NYBPGwvtzQ==}
|
||||||
|
|
||||||
@ -3383,6 +3560,9 @@ packages:
|
|||||||
psl@1.9.0:
|
psl@1.9.0:
|
||||||
resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==}
|
resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==}
|
||||||
|
|
||||||
|
pump@3.0.0:
|
||||||
|
resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==}
|
||||||
|
|
||||||
punycode@2.3.1:
|
punycode@2.3.1:
|
||||||
resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==}
|
resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==}
|
||||||
engines: {node: '>=6'}
|
engines: {node: '>=6'}
|
||||||
@ -3453,6 +3633,10 @@ packages:
|
|||||||
read-cache@1.0.0:
|
read-cache@1.0.0:
|
||||||
resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==}
|
resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==}
|
||||||
|
|
||||||
|
readable-stream@3.6.2:
|
||||||
|
resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==}
|
||||||
|
engines: {node: '>= 6'}
|
||||||
|
|
||||||
readable-stream@4.5.2:
|
readable-stream@4.5.2:
|
||||||
resolution: {integrity: sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==}
|
resolution: {integrity: sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==}
|
||||||
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
||||||
@ -3461,6 +3645,10 @@ packages:
|
|||||||
resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==}
|
resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==}
|
||||||
engines: {node: '>=8.10.0'}
|
engines: {node: '>=8.10.0'}
|
||||||
|
|
||||||
|
real-require@0.1.0:
|
||||||
|
resolution: {integrity: sha512-r/H9MzAWtrv8aSVjPCMFpDMl5q66GqtmmRkRjpHTsp4zBAa+snZyiQNlMONiUmEJcsnaw0wCauJ2GWODr/aFkg==}
|
||||||
|
engines: {node: '>= 12.13.0'}
|
||||||
|
|
||||||
real-require@0.2.0:
|
real-require@0.2.0:
|
||||||
resolution: {integrity: sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==}
|
resolution: {integrity: sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==}
|
||||||
engines: {node: '>= 12.13.0'}
|
engines: {node: '>= 12.13.0'}
|
||||||
@ -3503,6 +3691,9 @@ packages:
|
|||||||
resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==}
|
resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==}
|
||||||
engines: {node: '>=8'}
|
engines: {node: '>=8'}
|
||||||
|
|
||||||
|
resolve-pkg-maps@1.0.0:
|
||||||
|
resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==}
|
||||||
|
|
||||||
resolve.exports@2.0.2:
|
resolve.exports@2.0.2:
|
||||||
resolution: {integrity: sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==}
|
resolution: {integrity: sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==}
|
||||||
engines: {node: '>=10'}
|
engines: {node: '>=10'}
|
||||||
@ -3552,6 +3743,9 @@ packages:
|
|||||||
search-insights@2.14.0:
|
search-insights@2.14.0:
|
||||||
resolution: {integrity: sha512-OLN6MsPMCghDOqlCtsIsYgtsC0pnwVTyT9Mu6A3ewOj1DxvzZF6COrn2g86E/c05xbktB0XN04m/t1Z+n+fTGw==}
|
resolution: {integrity: sha512-OLN6MsPMCghDOqlCtsIsYgtsC0pnwVTyT9Mu6A3ewOj1DxvzZF6COrn2g86E/c05xbktB0XN04m/t1Z+n+fTGw==}
|
||||||
|
|
||||||
|
secure-json-parse@2.7.0:
|
||||||
|
resolution: {integrity: sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw==}
|
||||||
|
|
||||||
semver@6.3.1:
|
semver@6.3.1:
|
||||||
resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==}
|
resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
@ -3601,6 +3795,9 @@ packages:
|
|||||||
resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==}
|
resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==}
|
||||||
engines: {node: '>=8'}
|
engines: {node: '>=8'}
|
||||||
|
|
||||||
|
sonic-boom@2.8.0:
|
||||||
|
resolution: {integrity: sha512-kuonw1YOYYNOve5iHdSahXPOK49GqwA+LZhI6Wz/l0rP57iKyXXIHaRagOBHAPmGwJC6od2Z9zgvZ5loSgMlVg==}
|
||||||
|
|
||||||
sonic-boom@3.8.1:
|
sonic-boom@3.8.1:
|
||||||
resolution: {integrity: sha512-y4Z8LCDBuum+PBP3lSV7RHrXscqksve/bi0as7mhwVnBW+/wUqKT/2Kb7um8yqcFy0duYbbPxzt89Zy2nOCaxg==}
|
resolution: {integrity: sha512-y4Z8LCDBuum+PBP3lSV7RHrXscqksve/bi0as7mhwVnBW+/wUqKT/2Kb7um8yqcFy0duYbbPxzt89Zy2nOCaxg==}
|
||||||
|
|
||||||
@ -3615,6 +3812,14 @@ packages:
|
|||||||
resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==}
|
resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==}
|
||||||
engines: {node: '>=0.10.0'}
|
engines: {node: '>=0.10.0'}
|
||||||
|
|
||||||
|
spacetime-holiday@0.1.0:
|
||||||
|
resolution: {integrity: sha512-rYIpSDbHnznZRstUrmYYFAaruW8e96t+1JfS0b6qMiAAQ2DrkLKc8oMotAAkB9qMTUwXXf5bIkdTHfP434uitQ==}
|
||||||
|
peerDependencies:
|
||||||
|
spacetime: ^6.3.0
|
||||||
|
|
||||||
|
spacetime@6.14.0:
|
||||||
|
resolution: {integrity: sha512-pz/nMIRGNSJeFfDFvhPjMHXhFU1NcrYnpydMuSS2Zsk0NEoHJc2rRKXugkmlqUv/l/fPxWVJVnj8isVS0//vbQ==}
|
||||||
|
|
||||||
speakingurl@14.0.1:
|
speakingurl@14.0.1:
|
||||||
resolution: {integrity: sha512-1POYv7uv2gXoyGFpBCmpDVSNV74IfsWlDW216UPjbWufNf+bSU6GdbDsxdcxtfwb4xlI3yxzOTKClUosxARYrQ==}
|
resolution: {integrity: sha512-1POYv7uv2gXoyGFpBCmpDVSNV74IfsWlDW216UPjbWufNf+bSU6GdbDsxdcxtfwb4xlI3yxzOTKClUosxARYrQ==}
|
||||||
engines: {node: '>=0.10.0'}
|
engines: {node: '>=0.10.0'}
|
||||||
@ -3634,6 +3839,9 @@ packages:
|
|||||||
resolution: {integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==}
|
resolution: {integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==}
|
||||||
engines: {node: '>= 0.4'}
|
engines: {node: '>= 0.4'}
|
||||||
|
|
||||||
|
stream-shift@1.0.3:
|
||||||
|
resolution: {integrity: sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==}
|
||||||
|
|
||||||
streamsearch@1.1.0:
|
streamsearch@1.1.0:
|
||||||
resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==}
|
resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==}
|
||||||
engines: {node: '>=10.0.0'}
|
engines: {node: '>=10.0.0'}
|
||||||
@ -3755,6 +3963,9 @@ packages:
|
|||||||
thenify@3.3.1:
|
thenify@3.3.1:
|
||||||
resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==}
|
resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==}
|
||||||
|
|
||||||
|
thread-stream@0.15.2:
|
||||||
|
resolution: {integrity: sha512-UkEhKIg2pD+fjkHQKyJO3yoIvAP3N6RlNFt2dUhcS1FGvCD1cQa1M/PGknCLFIyZdtJOWQjejp7bdNqmN7zwdA==}
|
||||||
|
|
||||||
thread-stream@2.7.0:
|
thread-stream@2.7.0:
|
||||||
resolution: {integrity: sha512-qQiRWsU/wvNolI6tbbCKd9iKaTnCXsTwVxhhKM6nctPdujTyztjlbUkUTUymidWcMnZ5pWR0ej4a0tjsW021vw==}
|
resolution: {integrity: sha512-qQiRWsU/wvNolI6tbbCKd9iKaTnCXsTwVxhhKM6nctPdujTyztjlbUkUTUymidWcMnZ5pWR0ej4a0tjsW021vw==}
|
||||||
|
|
||||||
@ -3818,6 +4029,11 @@ packages:
|
|||||||
tslib@2.6.2:
|
tslib@2.6.2:
|
||||||
resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==}
|
resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==}
|
||||||
|
|
||||||
|
tsx@4.15.6:
|
||||||
|
resolution: {integrity: sha512-is0VQQlfNZRHEuSSTKA6m4xw74IU4AizmuB6lAYLRt9XtuyeQnyJYexhNZOPCB59SqC4JzmSzPnHGBXxf3k0hA==}
|
||||||
|
engines: {node: '>=18.0.0'}
|
||||||
|
hasBin: true
|
||||||
|
|
||||||
type-detect@4.0.8:
|
type-detect@4.0.8:
|
||||||
resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==}
|
resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==}
|
||||||
engines: {node: '>=4'}
|
engines: {node: '>=4'}
|
||||||
@ -4403,6 +4619,7 @@ snapshots:
|
|||||||
'@cspotcode/source-map-support@0.8.1':
|
'@cspotcode/source-map-support@0.8.1':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@jridgewell/trace-mapping': 0.3.9
|
'@jridgewell/trace-mapping': 0.3.9
|
||||||
|
optional: true
|
||||||
|
|
||||||
'@docsearch/css@3.6.0': {}
|
'@docsearch/css@3.6.0': {}
|
||||||
|
|
||||||
@ -4778,6 +4995,7 @@ snapshots:
|
|||||||
dependencies:
|
dependencies:
|
||||||
'@jridgewell/resolve-uri': 3.1.2
|
'@jridgewell/resolve-uri': 3.1.2
|
||||||
'@jridgewell/sourcemap-codec': 1.4.15
|
'@jridgewell/sourcemap-codec': 1.4.15
|
||||||
|
optional: true
|
||||||
|
|
||||||
'@next/env@14.1.4': {}
|
'@next/env@14.1.4': {}
|
||||||
|
|
||||||
@ -5801,6 +6019,112 @@ snapshots:
|
|||||||
react: 18.3.0
|
react: 18.3.0
|
||||||
react-dom: 18.3.0(react@18.3.0)
|
react-dom: 18.3.0(react@18.3.0)
|
||||||
|
|
||||||
|
'@nlpjs/basic@4.27.0':
|
||||||
|
dependencies:
|
||||||
|
'@nlpjs/console-connector': 4.26.1
|
||||||
|
'@nlpjs/core-loader': 4.26.1
|
||||||
|
'@nlpjs/evaluator': 4.26.1
|
||||||
|
'@nlpjs/lang-en': 4.26.1
|
||||||
|
'@nlpjs/logger': 4.26.1
|
||||||
|
'@nlpjs/nlp': 4.27.0
|
||||||
|
transitivePeerDependencies:
|
||||||
|
- supports-color
|
||||||
|
|
||||||
|
'@nlpjs/builtin-compromise@4.26.1':
|
||||||
|
dependencies:
|
||||||
|
'@nlpjs/core': 4.26.1
|
||||||
|
compromise: 13.11.4
|
||||||
|
compromise-dates: 1.5.6(compromise-numbers@1.4.0(compromise@13.11.4))(compromise@13.11.4)
|
||||||
|
compromise-numbers: 1.4.0(compromise@13.11.4)
|
||||||
|
|
||||||
|
'@nlpjs/connector@4.26.1':
|
||||||
|
dependencies:
|
||||||
|
'@nlpjs/core': 4.26.1
|
||||||
|
|
||||||
|
'@nlpjs/console-connector@4.26.1':
|
||||||
|
dependencies:
|
||||||
|
'@nlpjs/connector': 4.26.1
|
||||||
|
'@nlpjs/core': 4.26.1
|
||||||
|
|
||||||
|
'@nlpjs/core-loader@4.26.1':
|
||||||
|
dependencies:
|
||||||
|
'@nlpjs/core': 4.26.1
|
||||||
|
'@nlpjs/request': 4.25.0
|
||||||
|
transitivePeerDependencies:
|
||||||
|
- supports-color
|
||||||
|
|
||||||
|
'@nlpjs/core@4.26.1': {}
|
||||||
|
|
||||||
|
'@nlpjs/evaluator@4.26.1':
|
||||||
|
dependencies:
|
||||||
|
escodegen: 2.1.0
|
||||||
|
esprima: 4.0.1
|
||||||
|
|
||||||
|
'@nlpjs/lang-en-min@4.26.1':
|
||||||
|
dependencies:
|
||||||
|
'@nlpjs/core': 4.26.1
|
||||||
|
|
||||||
|
'@nlpjs/lang-en@4.26.1':
|
||||||
|
dependencies:
|
||||||
|
'@nlpjs/core': 4.26.1
|
||||||
|
'@nlpjs/lang-en-min': 4.26.1
|
||||||
|
|
||||||
|
'@nlpjs/lang-zh@4.26.1':
|
||||||
|
dependencies:
|
||||||
|
'@nlpjs/core': 4.26.1
|
||||||
|
|
||||||
|
'@nlpjs/language-min@4.25.0': {}
|
||||||
|
|
||||||
|
'@nlpjs/logger@4.26.1':
|
||||||
|
dependencies:
|
||||||
|
pino: 7.11.0
|
||||||
|
pino-pretty: 7.6.1
|
||||||
|
|
||||||
|
'@nlpjs/ner@4.27.0':
|
||||||
|
dependencies:
|
||||||
|
'@nlpjs/core': 4.26.1
|
||||||
|
'@nlpjs/language-min': 4.25.0
|
||||||
|
'@nlpjs/similarity': 4.26.1
|
||||||
|
|
||||||
|
'@nlpjs/neural@4.25.0': {}
|
||||||
|
|
||||||
|
'@nlpjs/nlg@4.26.1':
|
||||||
|
dependencies:
|
||||||
|
'@nlpjs/core': 4.26.1
|
||||||
|
|
||||||
|
'@nlpjs/nlp@4.27.0':
|
||||||
|
dependencies:
|
||||||
|
'@nlpjs/core': 4.26.1
|
||||||
|
'@nlpjs/ner': 4.27.0
|
||||||
|
'@nlpjs/nlg': 4.26.1
|
||||||
|
'@nlpjs/nlu': 4.27.0
|
||||||
|
'@nlpjs/sentiment': 4.26.1
|
||||||
|
'@nlpjs/slot': 4.26.1
|
||||||
|
|
||||||
|
'@nlpjs/nlu@4.27.0':
|
||||||
|
dependencies:
|
||||||
|
'@nlpjs/core': 4.26.1
|
||||||
|
'@nlpjs/language-min': 4.25.0
|
||||||
|
'@nlpjs/neural': 4.25.0
|
||||||
|
'@nlpjs/similarity': 4.26.1
|
||||||
|
|
||||||
|
'@nlpjs/request@4.25.0':
|
||||||
|
dependencies:
|
||||||
|
http-proxy-agent: 5.0.0
|
||||||
|
https-proxy-agent: 5.0.1
|
||||||
|
transitivePeerDependencies:
|
||||||
|
- supports-color
|
||||||
|
|
||||||
|
'@nlpjs/sentiment@4.26.1':
|
||||||
|
dependencies:
|
||||||
|
'@nlpjs/core': 4.26.1
|
||||||
|
'@nlpjs/language-min': 4.25.0
|
||||||
|
'@nlpjs/neural': 4.25.0
|
||||||
|
|
||||||
|
'@nlpjs/similarity@4.26.1': {}
|
||||||
|
|
||||||
|
'@nlpjs/slot@4.26.1': {}
|
||||||
|
|
||||||
'@nodelib/fs.scandir@2.1.5':
|
'@nodelib/fs.scandir@2.1.5':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@nodelib/fs.stat': 2.0.5
|
'@nodelib/fs.stat': 2.0.5
|
||||||
@ -5813,6 +6137,10 @@ snapshots:
|
|||||||
'@nodelib/fs.scandir': 2.1.5
|
'@nodelib/fs.scandir': 2.1.5
|
||||||
fastq: 1.17.1
|
fastq: 1.17.1
|
||||||
|
|
||||||
|
'@openmeteo/sdk@1.11.7':
|
||||||
|
dependencies:
|
||||||
|
flatbuffers: 24.3.25
|
||||||
|
|
||||||
'@pkgjs/parseargs@0.11.0':
|
'@pkgjs/parseargs@0.11.0':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
@ -6639,13 +6967,17 @@ snapshots:
|
|||||||
|
|
||||||
'@tootallnate/once@2.0.0': {}
|
'@tootallnate/once@2.0.0': {}
|
||||||
|
|
||||||
'@tsconfig/node10@1.0.11': {}
|
'@tsconfig/node10@1.0.11':
|
||||||
|
optional: true
|
||||||
|
|
||||||
'@tsconfig/node12@1.0.11': {}
|
'@tsconfig/node12@1.0.11':
|
||||||
|
optional: true
|
||||||
|
|
||||||
'@tsconfig/node14@1.0.3': {}
|
'@tsconfig/node14@1.0.3':
|
||||||
|
optional: true
|
||||||
|
|
||||||
'@tsconfig/node16@1.0.4': {}
|
'@tsconfig/node16@1.0.4':
|
||||||
|
optional: true
|
||||||
|
|
||||||
'@types/aria-query@5.0.4': {}
|
'@types/aria-query@5.0.4': {}
|
||||||
|
|
||||||
@ -6919,7 +7251,8 @@ snapshots:
|
|||||||
normalize-path: 3.0.0
|
normalize-path: 3.0.0
|
||||||
picomatch: 2.3.1
|
picomatch: 2.3.1
|
||||||
|
|
||||||
arg@4.1.3: {}
|
arg@4.1.3:
|
||||||
|
optional: true
|
||||||
|
|
||||||
arg@5.0.2: {}
|
arg@5.0.2: {}
|
||||||
|
|
||||||
@ -6927,6 +7260,13 @@ snapshots:
|
|||||||
dependencies:
|
dependencies:
|
||||||
sprintf-js: 1.0.3
|
sprintf-js: 1.0.3
|
||||||
|
|
||||||
|
args@5.0.3:
|
||||||
|
dependencies:
|
||||||
|
camelcase: 5.0.0
|
||||||
|
chalk: 2.4.2
|
||||||
|
leven: 2.1.0
|
||||||
|
mri: 1.1.4
|
||||||
|
|
||||||
aria-query@5.1.3:
|
aria-query@5.1.3:
|
||||||
dependencies:
|
dependencies:
|
||||||
deep-equal: 2.2.3
|
deep-equal: 2.2.3
|
||||||
@ -7073,6 +7413,8 @@ snapshots:
|
|||||||
|
|
||||||
camelcase-css@2.0.1: {}
|
camelcase-css@2.0.1: {}
|
||||||
|
|
||||||
|
camelcase@5.0.0: {}
|
||||||
|
|
||||||
camelcase@5.3.1: {}
|
camelcase@5.3.1: {}
|
||||||
|
|
||||||
camelcase@6.3.0: {}
|
camelcase@6.3.0: {}
|
||||||
@ -7153,12 +7495,29 @@ snapshots:
|
|||||||
color-convert: 2.0.1
|
color-convert: 2.0.1
|
||||||
color-string: 1.9.1
|
color-string: 1.9.1
|
||||||
|
|
||||||
|
colorette@2.0.20: {}
|
||||||
|
|
||||||
combined-stream@1.0.8:
|
combined-stream@1.0.8:
|
||||||
dependencies:
|
dependencies:
|
||||||
delayed-stream: 1.0.0
|
delayed-stream: 1.0.0
|
||||||
|
|
||||||
commander@4.1.1: {}
|
commander@4.1.1: {}
|
||||||
|
|
||||||
|
compromise-dates@1.5.6(compromise-numbers@1.4.0(compromise@13.11.4))(compromise@13.11.4):
|
||||||
|
dependencies:
|
||||||
|
compromise: 13.11.4
|
||||||
|
compromise-numbers: 1.4.0(compromise@13.11.4)
|
||||||
|
spacetime: 6.14.0
|
||||||
|
spacetime-holiday: 0.1.0(spacetime@6.14.0)
|
||||||
|
|
||||||
|
compromise-numbers@1.4.0(compromise@13.11.4):
|
||||||
|
dependencies:
|
||||||
|
compromise: 13.11.4
|
||||||
|
|
||||||
|
compromise@13.11.4:
|
||||||
|
dependencies:
|
||||||
|
efrt-unpack: 2.2.0
|
||||||
|
|
||||||
compute-scroll-into-view@3.1.0: {}
|
compute-scroll-into-view@3.1.0: {}
|
||||||
|
|
||||||
concat-map@0.0.1: {}
|
concat-map@0.0.1: {}
|
||||||
@ -7184,7 +7543,8 @@ snapshots:
|
|||||||
- supports-color
|
- supports-color
|
||||||
- ts-node
|
- ts-node
|
||||||
|
|
||||||
create-require@1.1.1: {}
|
create-require@1.1.1:
|
||||||
|
optional: true
|
||||||
|
|
||||||
cross-spawn@7.0.3:
|
cross-spawn@7.0.3:
|
||||||
dependencies:
|
dependencies:
|
||||||
@ -7212,6 +7572,8 @@ snapshots:
|
|||||||
whatwg-mimetype: 3.0.0
|
whatwg-mimetype: 3.0.0
|
||||||
whatwg-url: 11.0.0
|
whatwg-url: 11.0.0
|
||||||
|
|
||||||
|
dateformat@4.6.3: {}
|
||||||
|
|
||||||
debug@4.3.4:
|
debug@4.3.4:
|
||||||
dependencies:
|
dependencies:
|
||||||
ms: 2.1.2
|
ms: 2.1.2
|
||||||
@ -7267,7 +7629,8 @@ snapshots:
|
|||||||
|
|
||||||
diff-sequences@29.6.3: {}
|
diff-sequences@29.6.3: {}
|
||||||
|
|
||||||
diff@4.0.2: {}
|
diff@4.0.2:
|
||||||
|
optional: true
|
||||||
|
|
||||||
dlv@1.1.3: {}
|
dlv@1.1.3: {}
|
||||||
|
|
||||||
@ -7279,8 +7642,17 @@ snapshots:
|
|||||||
dependencies:
|
dependencies:
|
||||||
webidl-conversions: 7.0.0
|
webidl-conversions: 7.0.0
|
||||||
|
|
||||||
|
duplexify@4.1.3:
|
||||||
|
dependencies:
|
||||||
|
end-of-stream: 1.4.4
|
||||||
|
inherits: 2.0.4
|
||||||
|
readable-stream: 3.6.2
|
||||||
|
stream-shift: 1.0.3
|
||||||
|
|
||||||
eastasianwidth@0.2.0: {}
|
eastasianwidth@0.2.0: {}
|
||||||
|
|
||||||
|
efrt-unpack@2.2.0: {}
|
||||||
|
|
||||||
electron-to-chromium@1.4.749: {}
|
electron-to-chromium@1.4.749: {}
|
||||||
|
|
||||||
emittery@0.13.1: {}
|
emittery@0.13.1: {}
|
||||||
@ -7289,6 +7661,10 @@ snapshots:
|
|||||||
|
|
||||||
emoji-regex@9.2.2: {}
|
emoji-regex@9.2.2: {}
|
||||||
|
|
||||||
|
end-of-stream@1.4.4:
|
||||||
|
dependencies:
|
||||||
|
once: 1.4.0
|
||||||
|
|
||||||
entities@4.5.0: {}
|
entities@4.5.0: {}
|
||||||
|
|
||||||
error-ex@1.3.2:
|
error-ex@1.3.2:
|
||||||
@ -7399,6 +7775,8 @@ snapshots:
|
|||||||
|
|
||||||
fast-redact@3.5.0: {}
|
fast-redact@3.5.0: {}
|
||||||
|
|
||||||
|
fast-safe-stringify@2.1.1: {}
|
||||||
|
|
||||||
fastq@1.17.1:
|
fastq@1.17.1:
|
||||||
dependencies:
|
dependencies:
|
||||||
reusify: 1.0.4
|
reusify: 1.0.4
|
||||||
@ -7407,6 +7785,8 @@ snapshots:
|
|||||||
dependencies:
|
dependencies:
|
||||||
bser: 2.1.1
|
bser: 2.1.1
|
||||||
|
|
||||||
|
fflate@0.8.2: {}
|
||||||
|
|
||||||
fill-range@7.0.1:
|
fill-range@7.0.1:
|
||||||
dependencies:
|
dependencies:
|
||||||
to-regex-range: 5.0.1
|
to-regex-range: 5.0.1
|
||||||
@ -7418,6 +7798,8 @@ snapshots:
|
|||||||
|
|
||||||
flat@5.0.2: {}
|
flat@5.0.2: {}
|
||||||
|
|
||||||
|
flatbuffers@24.3.25: {}
|
||||||
|
|
||||||
focus-trap@7.5.4:
|
focus-trap@7.5.4:
|
||||||
dependencies:
|
dependencies:
|
||||||
tabbable: 6.2.0
|
tabbable: 6.2.0
|
||||||
@ -7473,6 +7855,10 @@ snapshots:
|
|||||||
|
|
||||||
get-stream@6.0.1: {}
|
get-stream@6.0.1: {}
|
||||||
|
|
||||||
|
get-tsconfig@4.7.5:
|
||||||
|
dependencies:
|
||||||
|
resolve-pkg-maps: 1.0.0
|
||||||
|
|
||||||
glob-parent@5.1.2:
|
glob-parent@5.1.2:
|
||||||
dependencies:
|
dependencies:
|
||||||
is-glob: 4.0.3
|
is-glob: 4.0.3
|
||||||
@ -8069,6 +8455,8 @@ snapshots:
|
|||||||
|
|
||||||
jiti@1.21.0: {}
|
jiti@1.21.0: {}
|
||||||
|
|
||||||
|
joycon@3.1.1: {}
|
||||||
|
|
||||||
js-tokens@4.0.0: {}
|
js-tokens@4.0.0: {}
|
||||||
|
|
||||||
js-yaml@3.14.1:
|
js-yaml@3.14.1:
|
||||||
@ -8117,6 +8505,8 @@ snapshots:
|
|||||||
|
|
||||||
kleur@3.0.3: {}
|
kleur@3.0.3: {}
|
||||||
|
|
||||||
|
leven@2.1.0: {}
|
||||||
|
|
||||||
leven@3.1.0: {}
|
leven@3.1.0: {}
|
||||||
|
|
||||||
lilconfig@2.1.0: {}
|
lilconfig@2.1.0: {}
|
||||||
@ -8210,6 +8600,8 @@ snapshots:
|
|||||||
|
|
||||||
mitt@3.0.1: {}
|
mitt@3.0.1: {}
|
||||||
|
|
||||||
|
mri@1.1.4: {}
|
||||||
|
|
||||||
ms@2.1.2: {}
|
ms@2.1.2: {}
|
||||||
|
|
||||||
mz@2.7.0:
|
mz@2.7.0:
|
||||||
@ -8296,6 +8688,8 @@ snapshots:
|
|||||||
has-symbols: 1.0.3
|
has-symbols: 1.0.3
|
||||||
object-keys: 1.1.1
|
object-keys: 1.1.1
|
||||||
|
|
||||||
|
on-exit-leak-free@0.2.0: {}
|
||||||
|
|
||||||
on-exit-leak-free@2.1.2: {}
|
on-exit-leak-free@2.1.2: {}
|
||||||
|
|
||||||
once@1.4.0:
|
once@1.4.0:
|
||||||
@ -8306,6 +8700,11 @@ snapshots:
|
|||||||
dependencies:
|
dependencies:
|
||||||
mimic-fn: 2.1.0
|
mimic-fn: 2.1.0
|
||||||
|
|
||||||
|
openmeteo@1.1.4:
|
||||||
|
dependencies:
|
||||||
|
'@openmeteo/sdk': 1.11.7
|
||||||
|
flatbuffers: 24.3.25
|
||||||
|
|
||||||
p-limit@2.3.0:
|
p-limit@2.3.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
p-try: 2.2.0
|
p-try: 2.2.0
|
||||||
@ -8352,13 +8751,50 @@ snapshots:
|
|||||||
|
|
||||||
pify@2.3.0: {}
|
pify@2.3.0: {}
|
||||||
|
|
||||||
|
pino-abstract-transport@0.5.0:
|
||||||
|
dependencies:
|
||||||
|
duplexify: 4.1.3
|
||||||
|
split2: 4.2.0
|
||||||
|
|
||||||
pino-abstract-transport@1.2.0:
|
pino-abstract-transport@1.2.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
readable-stream: 4.5.2
|
readable-stream: 4.5.2
|
||||||
split2: 4.2.0
|
split2: 4.2.0
|
||||||
|
|
||||||
|
pino-pretty@7.6.1:
|
||||||
|
dependencies:
|
||||||
|
args: 5.0.3
|
||||||
|
colorette: 2.0.20
|
||||||
|
dateformat: 4.6.3
|
||||||
|
fast-safe-stringify: 2.1.1
|
||||||
|
joycon: 3.1.1
|
||||||
|
on-exit-leak-free: 0.2.0
|
||||||
|
pino-abstract-transport: 0.5.0
|
||||||
|
pump: 3.0.0
|
||||||
|
readable-stream: 3.6.2
|
||||||
|
rfdc: 1.4.1
|
||||||
|
secure-json-parse: 2.7.0
|
||||||
|
sonic-boom: 2.8.0
|
||||||
|
strip-json-comments: 3.1.1
|
||||||
|
|
||||||
|
pino-std-serializers@4.0.0: {}
|
||||||
|
|
||||||
pino-std-serializers@6.2.2: {}
|
pino-std-serializers@6.2.2: {}
|
||||||
|
|
||||||
|
pino@7.11.0:
|
||||||
|
dependencies:
|
||||||
|
atomic-sleep: 1.0.0
|
||||||
|
fast-redact: 3.5.0
|
||||||
|
on-exit-leak-free: 0.2.0
|
||||||
|
pino-abstract-transport: 0.5.0
|
||||||
|
pino-std-serializers: 4.0.0
|
||||||
|
process-warning: 1.0.0
|
||||||
|
quick-format-unescaped: 4.0.4
|
||||||
|
real-require: 0.1.0
|
||||||
|
safe-stable-stringify: 2.4.3
|
||||||
|
sonic-boom: 2.8.0
|
||||||
|
thread-stream: 0.15.2
|
||||||
|
|
||||||
pino@9.0.0:
|
pino@9.0.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
atomic-sleep: 1.0.0
|
atomic-sleep: 1.0.0
|
||||||
@ -8439,6 +8875,8 @@ snapshots:
|
|||||||
ansi-styles: 5.2.0
|
ansi-styles: 5.2.0
|
||||||
react-is: 18.3.0
|
react-is: 18.3.0
|
||||||
|
|
||||||
|
process-warning@1.0.0: {}
|
||||||
|
|
||||||
process-warning@3.0.0: {}
|
process-warning@3.0.0: {}
|
||||||
|
|
||||||
process@0.11.10: {}
|
process@0.11.10: {}
|
||||||
@ -8450,6 +8888,11 @@ snapshots:
|
|||||||
|
|
||||||
psl@1.9.0: {}
|
psl@1.9.0: {}
|
||||||
|
|
||||||
|
pump@3.0.0:
|
||||||
|
dependencies:
|
||||||
|
end-of-stream: 1.4.4
|
||||||
|
once: 1.4.0
|
||||||
|
|
||||||
punycode@2.3.1: {}
|
punycode@2.3.1: {}
|
||||||
|
|
||||||
pure-rand@6.1.0: {}
|
pure-rand@6.1.0: {}
|
||||||
@ -8515,6 +8958,12 @@ snapshots:
|
|||||||
dependencies:
|
dependencies:
|
||||||
pify: 2.3.0
|
pify: 2.3.0
|
||||||
|
|
||||||
|
readable-stream@3.6.2:
|
||||||
|
dependencies:
|
||||||
|
inherits: 2.0.4
|
||||||
|
string_decoder: 1.3.0
|
||||||
|
util-deprecate: 1.0.2
|
||||||
|
|
||||||
readable-stream@4.5.2:
|
readable-stream@4.5.2:
|
||||||
dependencies:
|
dependencies:
|
||||||
abort-controller: 3.0.0
|
abort-controller: 3.0.0
|
||||||
@ -8527,6 +8976,8 @@ snapshots:
|
|||||||
dependencies:
|
dependencies:
|
||||||
picomatch: 2.3.1
|
picomatch: 2.3.1
|
||||||
|
|
||||||
|
real-require@0.1.0: {}
|
||||||
|
|
||||||
real-require@0.2.0: {}
|
real-require@0.2.0: {}
|
||||||
|
|
||||||
recoil@0.7.7(react-dom@18.3.0(react@18.3.0))(react@18.3.0):
|
recoil@0.7.7(react-dom@18.3.0(react@18.3.0))(react@18.3.0):
|
||||||
@ -8560,6 +9011,8 @@ snapshots:
|
|||||||
|
|
||||||
resolve-from@5.0.0: {}
|
resolve-from@5.0.0: {}
|
||||||
|
|
||||||
|
resolve-pkg-maps@1.0.0: {}
|
||||||
|
|
||||||
resolve.exports@2.0.2: {}
|
resolve.exports@2.0.2: {}
|
||||||
|
|
||||||
resolve@1.22.8:
|
resolve@1.22.8:
|
||||||
@ -8620,6 +9073,8 @@ snapshots:
|
|||||||
|
|
||||||
search-insights@2.14.0: {}
|
search-insights@2.14.0: {}
|
||||||
|
|
||||||
|
secure-json-parse@2.7.0: {}
|
||||||
|
|
||||||
semver@6.3.1: {}
|
semver@6.3.1: {}
|
||||||
|
|
||||||
semver@7.6.0:
|
semver@7.6.0:
|
||||||
@ -8671,6 +9126,10 @@ snapshots:
|
|||||||
|
|
||||||
slash@3.0.0: {}
|
slash@3.0.0: {}
|
||||||
|
|
||||||
|
sonic-boom@2.8.0:
|
||||||
|
dependencies:
|
||||||
|
atomic-sleep: 1.0.0
|
||||||
|
|
||||||
sonic-boom@3.8.1:
|
sonic-boom@3.8.1:
|
||||||
dependencies:
|
dependencies:
|
||||||
atomic-sleep: 1.0.0
|
atomic-sleep: 1.0.0
|
||||||
@ -8684,6 +9143,12 @@ snapshots:
|
|||||||
|
|
||||||
source-map@0.6.1: {}
|
source-map@0.6.1: {}
|
||||||
|
|
||||||
|
spacetime-holiday@0.1.0(spacetime@6.14.0):
|
||||||
|
dependencies:
|
||||||
|
spacetime: 6.14.0
|
||||||
|
|
||||||
|
spacetime@6.14.0: {}
|
||||||
|
|
||||||
speakingurl@14.0.1: {}
|
speakingurl@14.0.1: {}
|
||||||
|
|
||||||
split2@4.2.0: {}
|
split2@4.2.0: {}
|
||||||
@ -8698,6 +9163,8 @@ snapshots:
|
|||||||
dependencies:
|
dependencies:
|
||||||
internal-slot: 1.0.7
|
internal-slot: 1.0.7
|
||||||
|
|
||||||
|
stream-shift@1.0.3: {}
|
||||||
|
|
||||||
streamsearch@1.1.0: {}
|
streamsearch@1.1.0: {}
|
||||||
|
|
||||||
string-length@4.0.2:
|
string-length@4.0.2:
|
||||||
@ -8835,6 +9302,10 @@ snapshots:
|
|||||||
dependencies:
|
dependencies:
|
||||||
any-promise: 1.3.0
|
any-promise: 1.3.0
|
||||||
|
|
||||||
|
thread-stream@0.15.2:
|
||||||
|
dependencies:
|
||||||
|
real-require: 0.1.0
|
||||||
|
|
||||||
thread-stream@2.7.0:
|
thread-stream@2.7.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
real-require: 0.2.0
|
real-require: 0.2.0
|
||||||
@ -8894,9 +9365,17 @@ snapshots:
|
|||||||
typescript: 5.4.5
|
typescript: 5.4.5
|
||||||
v8-compile-cache-lib: 3.0.1
|
v8-compile-cache-lib: 3.0.1
|
||||||
yn: 3.1.1
|
yn: 3.1.1
|
||||||
|
optional: true
|
||||||
|
|
||||||
tslib@2.6.2: {}
|
tslib@2.6.2: {}
|
||||||
|
|
||||||
|
tsx@4.15.6:
|
||||||
|
dependencies:
|
||||||
|
esbuild: 0.21.5
|
||||||
|
get-tsconfig: 4.7.5
|
||||||
|
optionalDependencies:
|
||||||
|
fsevents: 2.3.3
|
||||||
|
|
||||||
type-detect@4.0.8: {}
|
type-detect@4.0.8: {}
|
||||||
|
|
||||||
type-fest@0.21.3: {}
|
type-fest@0.21.3: {}
|
||||||
@ -8963,7 +9442,8 @@ snapshots:
|
|||||||
|
|
||||||
util-deprecate@1.0.2: {}
|
util-deprecate@1.0.2: {}
|
||||||
|
|
||||||
v8-compile-cache-lib@3.0.1: {}
|
v8-compile-cache-lib@3.0.1:
|
||||||
|
optional: true
|
||||||
|
|
||||||
v8-to-istanbul@9.2.0:
|
v8-to-istanbul@9.2.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
@ -9138,6 +9618,7 @@ snapshots:
|
|||||||
y18n: 5.0.8
|
y18n: 5.0.8
|
||||||
yargs-parser: 21.1.1
|
yargs-parser: 21.1.1
|
||||||
|
|
||||||
yn@3.1.1: {}
|
yn@3.1.1:
|
||||||
|
optional: true
|
||||||
|
|
||||||
yocto-queue@0.1.0: {}
|
yocto-queue@0.1.0: {}
|
||||||
|
BIN
public/model
Normal file
BIN
public/model
Normal file
Binary file not shown.
18
test/NLP/removeStopwords.test.ts
Normal file
18
test/NLP/removeStopwords.test.ts
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
|
||||||
|
import { NLP } from "@/lib/nlp/base";
|
||||||
|
import { convertStopwords } from "@/lib/nlp/stopwords";
|
||||||
|
import { describe, expect, test } from "@jest/globals";
|
||||||
|
|
||||||
|
describe("Test 1", () => {
|
||||||
|
test("basic", () => {
|
||||||
|
const nlp = new NLP("please", "remove-stopword");
|
||||||
|
nlp.removeStopwords();
|
||||||
|
expect(nlp.query).toBe("");
|
||||||
|
});
|
||||||
|
test("convert something", () => {
|
||||||
|
const nlp = new NLP("please convert 1cm to m", "remove-stopword");
|
||||||
|
nlp.removeStopwords(convertStopwords);
|
||||||
|
nlp.trim();
|
||||||
|
expect(nlp.query).toBe("1cm m");
|
||||||
|
});
|
||||||
|
});
|
Loading…
Reference in New Issue
Block a user