notu 0.2.2 → 0.2.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,17 @@
1
+ import { Note } from '.';
2
+ import Space from './models/Space';
3
+ import { NotuClient } from './services/HttpClient';
4
+ export default class Environment {
5
+ private _client;
6
+ get client(): NotuClient;
7
+ private _spaces;
8
+ get spaces(): Array<Space>;
9
+ constructor(client: NotuClient);
10
+ loadSpaces(): Promise<Array<Space>>;
11
+ saveSpace(space: Space): Promise<Space>;
12
+ getNotes(query: string, spaceId: number): Promise<Array<Note>>;
13
+ getNoteCount(query: string, spaceId: number): Promise<number>;
14
+ saveNote(note: Note): Promise<Note>;
15
+ saveNotes(notes: Array<Note>): Promise<Array<Note>>;
16
+ customJob(name: string, data: any): Promise<any>;
17
+ }
@@ -0,0 +1,10 @@
1
+ import Attr from './models/Attr';
2
+ import Environment from './Environment';
3
+ import HttpClient from './services/HttpClient';
4
+ import Note from './models/Note';
5
+ import NoteAttr from './models/NoteAttr';
6
+ import NoteTag from './models/NoteTag';
7
+ import parseQuery from './services/QueryParser';
8
+ import Space from './models/Space';
9
+ import Tag from './models/Tag';
10
+ export { Attr, Environment, HttpClient, Note, NoteAttr, NoteTag, parseQuery, Space, Tag };
@@ -0,0 +1,36 @@
1
+ import ModelWithState from './ModelWithState';
2
+ import Space from './Space';
3
+ declare const ATTR_TYPE: {
4
+ TEXT: string;
5
+ NUMBER: string;
6
+ BOOLEAN: string;
7
+ DATE: string;
8
+ };
9
+ export type AttrType = keyof typeof ATTR_TYPE;
10
+ export default class Attr extends ModelWithState<Attr> {
11
+ id: number;
12
+ private _name;
13
+ get name(): string;
14
+ set name(value: string);
15
+ private _type;
16
+ get type(): AttrType;
17
+ set type(value: AttrType);
18
+ get isText(): boolean;
19
+ get isNumber(): boolean;
20
+ get isBoolean(): boolean;
21
+ get isDate(): boolean;
22
+ asText(): Attr;
23
+ asNumber(): Attr;
24
+ asBoolean(): Attr;
25
+ asDate(): Attr;
26
+ private _spaceId;
27
+ get spaceId(): number;
28
+ set spaceId(value: number);
29
+ private _space;
30
+ get space(): Space;
31
+ set space(value: Space);
32
+ duplicate(): Attr;
33
+ validate(throwError?: boolean): boolean;
34
+ get defaultValue(): any;
35
+ }
36
+ export {};
@@ -0,0 +1,20 @@
1
+ declare const MODEL_STATE: {
2
+ NEW: string;
3
+ CLEAN: string;
4
+ DIRTY: string;
5
+ DELETED: string;
6
+ };
7
+ export type ModelState = keyof typeof MODEL_STATE;
8
+ export default class ModelWithState<T extends ModelWithState<T>> {
9
+ state: ModelState;
10
+ new(): T;
11
+ clean(): T;
12
+ dirty(): T;
13
+ delete(): T;
14
+ get isNew(): boolean;
15
+ get isClean(): boolean;
16
+ get isDirty(): boolean;
17
+ get isDeleted(): boolean;
18
+ validate(throwError?: boolean): boolean;
19
+ }
20
+ export {};
@@ -0,0 +1,38 @@
1
+ import ModelWithState from './ModelWithState';
2
+ import NoteAttr from './NoteAttr';
3
+ import NoteTag from './NoteTag';
4
+ import Space from './Space';
5
+ import Tag from './Tag';
6
+ import Attr from './Attr';
7
+ export default class Note extends ModelWithState<Note> {
8
+ id: number;
9
+ private _date;
10
+ get date(): Date;
11
+ set date(value: Date);
12
+ private _text;
13
+ get text(): string;
14
+ set text(value: string);
15
+ private _archived;
16
+ get archived(): boolean;
17
+ set archived(value: boolean);
18
+ private _spaceId;
19
+ get spaceId(): number;
20
+ set spaceId(value: number);
21
+ private _space;
22
+ get space(): Space;
23
+ set space(value: Space);
24
+ private _ownTag;
25
+ get ownTag(): Tag;
26
+ setOwnTag(tag: string | Tag): Note;
27
+ removeOwnTag(): Note;
28
+ private _tags;
29
+ get tags(): Array<NoteTag>;
30
+ addTag(tag: Tag): NoteTag;
31
+ removeTag(tag: Tag): Note;
32
+ private _attrs;
33
+ get attrs(): Array<NoteAttr>;
34
+ addAttr(attr: Attr): NoteAttr;
35
+ removeAttr(attr: Attr): Note;
36
+ duplicate(): Note;
37
+ validate(throwError?: boolean): boolean;
38
+ }
@@ -0,0 +1,29 @@
1
+ import ModelWithState from './ModelWithState';
2
+ import Note from './Note';
3
+ import Attr from './Attr';
4
+ import Tag from './Tag';
5
+ export default class NoteAttr extends ModelWithState<NoteAttr> {
6
+ private _noteId;
7
+ get noteId(): number;
8
+ set noteId(value: number);
9
+ private _note;
10
+ get note(): Note;
11
+ set note(value: Note);
12
+ private _attrId;
13
+ get attrId(): number;
14
+ set attrId(value: number);
15
+ private _attr;
16
+ get attr(): Attr;
17
+ set attr(newAttr: Attr);
18
+ private _value;
19
+ get value(): any;
20
+ set value(newVal: any);
21
+ private _tagId;
22
+ get tagId(): number;
23
+ set tagId(value: number);
24
+ private _tag;
25
+ get tag(): Tag;
26
+ set tag(value: Tag);
27
+ duplicate(): NoteAttr;
28
+ validate(throwError?: boolean): boolean;
29
+ }
@@ -0,0 +1,23 @@
1
+ import Note from './Note';
2
+ import ModelWithState from './ModelWithState';
3
+ import Tag from './Tag';
4
+ import Attr from './Attr';
5
+ import NoteAttr from './NoteAttr';
6
+ export default class NoteTag extends ModelWithState<NoteTag> {
7
+ private _noteId;
8
+ get noteId(): number;
9
+ set noteId(value: number);
10
+ private _note;
11
+ get note(): Note;
12
+ set note(value: Note);
13
+ private _tagId;
14
+ get tagId(): number;
15
+ set tagId(value: number);
16
+ private _tag;
17
+ get tag(): Tag;
18
+ set tag(value: Tag);
19
+ get attrs(): Array<NoteAttr>;
20
+ addAttr(attr: Attr): NoteAttr;
21
+ duplicate(): NoteTag;
22
+ validate(throwError?: boolean): boolean;
23
+ }
@@ -0,0 +1,10 @@
1
+ import ModelWithState from './ModelWithState';
2
+ export default class Space extends ModelWithState<Space> {
3
+ id: number;
4
+ private _name;
5
+ get name(): string;
6
+ set name(value: string);
7
+ constructor(name?: string);
8
+ duplicate(): Space;
9
+ validate(throwError?: boolean): boolean;
10
+ }
@@ -0,0 +1,15 @@
1
+ import ModelWithState from './ModelWithState';
2
+ export default class Tag extends ModelWithState<Tag> {
3
+ private _id;
4
+ get id(): number;
5
+ set id(value: number);
6
+ private _name;
7
+ get name(): string;
8
+ set name(value: string);
9
+ private _color;
10
+ get color(): string;
11
+ set color(value: string);
12
+ constructor(name?: string);
13
+ duplicate(): Tag;
14
+ validate(throwError?: boolean): boolean;
15
+ }
@@ -0,0 +1,33 @@
1
+ import { AxiosRequestConfig, AxiosResponse } from "axios";
2
+ import Space from "../models/Space";
3
+ import { Note } from "..";
4
+ export interface NotuLoginResult {
5
+ success: boolean;
6
+ error: string;
7
+ token: string;
8
+ }
9
+ export interface NotuClient {
10
+ login(username: string, password: string): Promise<NotuLoginResult>;
11
+ getSpaces(): Promise<Array<Space>>;
12
+ saveSpace(space: Space): Promise<Space>;
13
+ getNotes(query: string, spaceId: number): Promise<Array<Note>>;
14
+ getNoteCount(query: string, spaceId: number): Promise<number>;
15
+ saveNotes(notes: Array<Note>): Promise<Array<Note>>;
16
+ customJob(name: string, data: any): Promise<any>;
17
+ }
18
+ export default class HttpClient {
19
+ private _url;
20
+ get url(): string;
21
+ private _token;
22
+ get token(): string;
23
+ set token(value: string);
24
+ private _httpRequester;
25
+ constructor(url: string, httpRequester?: (config: AxiosRequestConfig<any>) => Promise<AxiosResponse<any, any>>);
26
+ login(username: string, password: string): Promise<NotuLoginResult>;
27
+ getSpaces(): Promise<Array<Space>>;
28
+ saveSpace(space: Space): Promise<Space>;
29
+ getNotes(query: string, spaceId: number): Promise<Array<Note>>;
30
+ getNoteCount(query: string, spaceId: number): Promise<number>;
31
+ saveNotes(notes: Array<Note>): Promise<Array<Note>>;
32
+ customJob(name: string, data: any): Promise<any>;
33
+ }
@@ -0,0 +1,24 @@
1
+ export declare class ParsedQuery {
2
+ where: string;
3
+ order: string;
4
+ tags: Array<ParsedTag>;
5
+ attrs: Array<ParsedAttr>;
6
+ }
7
+ declare class ParsedTag {
8
+ space: string;
9
+ name: string;
10
+ searchDepth: number;
11
+ strictSearchDepth: boolean;
12
+ includeOwner: boolean;
13
+ }
14
+ declare class ParsedAttr {
15
+ space: string;
16
+ name: string;
17
+ exists: boolean;
18
+ tagNameFilters: Array<ParsedTag>;
19
+ }
20
+ export default function parseQuery(query: string): ParsedQuery;
21
+ export declare function splitQuery(query: string): ParsedQuery;
22
+ export declare function identifyTags(query: string, parsedQuery: ParsedQuery): string;
23
+ export declare function identifyAttrs(query: string, parsedQuery: ParsedQuery): string;
24
+ export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "notu",
3
- "version": "0.2.2",
3
+ "version": "0.2.4",
4
4
  "type": "module",
5
5
  "main": "dist/notu.js",
6
6
  "unpkg": "dist/notu.js",
@@ -21,6 +21,7 @@
21
21
  "devDependencies": {
22
22
  "typescript": "^5.0.2",
23
23
  "vite": "^4.4.5",
24
+ "vite-plugin-dts": "^3.6.3",
24
25
  "vitest": "^0.34.4"
25
26
  },
26
27
  "dependencies": {