@overmap-ai/core 1.0.54 → 1.0.56

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.
@@ -9,7 +9,7 @@ export declare class OutboxCoordinator {
9
9
  /**
10
10
  * Used when the app is loaded. Reconstructs the dependency graph based on an outbox from the redux-offline store.
11
11
  */
12
- static fromOutbox(outbox: Outbox): OutboxCoordinator;
12
+ static _fromOutbox(outbox: Outbox): OutboxCoordinator;
13
13
  _addDependency(from: string, to: string): void;
14
14
  static _addDependency(from: string, to: string, graph: DepGraph<FullOfflineAction>): void;
15
15
  /**
package/dist/sdk/sdk.d.ts CHANGED
@@ -1,10 +1,22 @@
1
- import { AuthService, CategoryService, ComponentService, ComponentStageCompletionService, ComponentStageService, ComponentAttachmentService, ComponentTypeService, ComponentTypeAttachmentService, EmailVerificationService, FileService, IssueCommentService, IssueAttachmentService, IssueService, MainService, OrganizationAccessService, ProjectAccessService, ProjectFileService, ProjectAttachmentService, ProjectService, UserFormService, UserFormSubmissionService, WorkspaceService, OrganizationService, EmailDomainsService, LicenseService, DocumentService, DocumentAttachmentService, IssueUpdateService, AgentService, TeamService, IssueTypeService } from "./services";
2
- import { ToolkitStore } from "@reduxjs/toolkit/dist/configureStore.js";
1
+ import { AgentService, AuthService, CategoryService, ComponentAttachmentService, ComponentService, ComponentStageCompletionService, ComponentStageService, ComponentTypeAttachmentService, ComponentTypeService, DocumentAttachmentService, DocumentService, EmailDomainsService, EmailVerificationService, FileService, IssueAttachmentService, IssueCommentService, IssueService, IssueTypeService, IssueUpdateService, LicenseService, MainService, OrganizationAccessService, OrganizationService, ProjectAccessService, ProjectAttachmentService, ProjectFileService, ProjectService, TeamService, UserFormService, UserFormSubmissionService, WorkspaceService } from "./services";
2
+ import { ToolkitStore } from "@reduxjs/toolkit/dist/configureStore";
3
3
  import { RootState } from "../typings";
4
+ import { SDKRequest } from "./typings";
4
5
  export declare class OvermapSDK {
5
6
  readonly API_URL: string;
6
7
  readonly store: ToolkitStore<RootState>;
7
8
  constructor(apiUrl: string, store: ToolkitStore<RootState>);
9
+ /**
10
+ * Enqueues an API request to the offline outbox.
11
+ * @param requestDetails An SDKRequest object containing the details of the request.
12
+ * @protected
13
+ */
14
+ enqueueRequest<TResult>(requestDetails: SDKRequest): Promise<TResult>;
15
+ /**
16
+ * Enqueues an API request to the Redux Offline outbox
17
+ * @protected
18
+ */
19
+ private _enqueueRequest;
8
20
  agent: AgentService;
9
21
  files: FileService;
10
22
  auth: AuthService;
@@ -1,16 +1,6 @@
1
1
  import { BaseApiService } from "./BaseApiService";
2
- import { OptionalFileModel, Payload } from "../../typings";
2
+ import { AgentProfile, AgentUserConversation, Payload } from "../../typings";
3
3
  import { JSONContent } from "@tiptap/core";
4
- export interface AgentProfile extends OptionalFileModel {
5
- /**
6
- * The name of the agent.
7
- */
8
- name: string;
9
- /**
10
- * The description of the agent.
11
- */
12
- description: string;
13
- }
14
4
  export interface PromptAgentResponse {
15
5
  /**
16
6
  * The response from the agent.
@@ -30,11 +20,14 @@ export interface PromptAgentResponse {
30
20
  profile?: AgentProfile;
31
21
  }
32
22
  export declare class AgentService extends BaseApiService {
23
+ startConversation(prompt: string): Promise<AgentUserConversation>;
33
24
  /**
34
25
  * Prompt the agent with a message.
35
- * @param request The message to prompt the agent with.
26
+ * @param prompt The message to prompt the agent with.
36
27
  * @param conversationId If continuing an existing message, the UUID of that conversation.
37
28
  */
38
- prompt(request: Payload<string>, conversationId?: string | null | undefined): Promise<PromptAgentResponse>;
29
+ continueConversation(prompt: Payload<string>, conversationId: AgentUserConversation["offline_id"]): Promise<void>;
30
+ fetchDetails(conversationId: AgentUserConversation["offline_id"]): Promise<void>;
39
31
  rate(responseId: string, rating: 1 | 5): Promise<undefined>;
32
+ refreshStore(): Promise<void>;
40
33
  }
@@ -1,20 +1,8 @@
1
1
  import type { OvermapSDK } from "../sdk";
2
- import { SDKRequest } from "../typings";
3
2
  /**
4
3
  * Abstract base class for building a service that can enqueue API requests
5
4
  */
6
5
  export declare abstract class BaseApiService {
7
6
  protected readonly client: OvermapSDK;
8
7
  constructor(sdk: OvermapSDK);
9
- /**
10
- * Enqueues an API request to the offline outbox.
11
- * @param requestDetails An SDKRequest object containing the details of the request.
12
- * @protected
13
- */
14
- protected enqueueRequest<TResult>(requestDetails: SDKRequest): Promise<TResult>;
15
- /**
16
- * Enqueues an API request to the Redux Offline outbox
17
- * @protected
18
- */
19
- private _enqueueRequest;
20
8
  }
@@ -7,5 +7,5 @@ export declare class ComponentService extends BaseApiService {
7
7
  remove(id: string): Promise<undefined>;
8
8
  deleteAllByComponentType(componentTypeId: string): Promise<undefined>;
9
9
  addBatch(componentsToCreate: Payload<Component>[], workspaceId: string, componentTypeId: string): Promise<Record<string, Component>>;
10
- refreshStore(replace: boolean): Promise<void>;
10
+ refreshStore(): Promise<void>;
11
11
  }
@@ -1,23 +1,16 @@
1
1
  import { BaseApiService } from "./BaseApiService";
2
- import { Category, License, Organization, Project, User } from "../../typings";
2
+ import { License, Organization, Project, User, Workspace } from "../../typings";
3
3
  export interface InitialAPIData {
4
4
  projects: (Project & {
5
- workspaces: {
6
- categories?: Category[];
7
- offline_id: string;
8
- name: string;
9
- abbreviation: string;
10
- permitted: boolean;
11
- }[];
5
+ workspaces: Workspace[];
12
6
  })[];
13
7
  organizations: Organization[];
14
8
  user: User;
15
- project_owners: User[];
16
9
  licenses: License[];
17
10
  }
18
11
  export declare class MainService extends BaseApiService {
19
- fetchInitialData(replaceExisting: boolean, uuid?: string): Promise<InitialAPIData>;
20
- fetchProjectUsers(projectId: number): Promise<User[]>;
12
+ fetchInitialData(replaceExisting: boolean, uuid?: string): Promise<undefined>;
13
+ fetchProjectUsers(): Promise<User[]>;
21
14
  fetchOrganizationUsers(orgId: number): Promise<User[]>;
22
15
  _processInitialData(data: InitialAPIData, overwrite: boolean): Promise<void>;
23
16
  }
@@ -0,0 +1,16 @@
1
+ import { PayloadAction, Reducer } from "@reduxjs/toolkit";
2
+ import { AgentUserConversation, Offline, OfflineIdMapping, RootState, Selector } from "../../typings";
3
+ export interface AgentsState {
4
+ conversations: OfflineIdMapping<AgentUserConversation>;
5
+ }
6
+ export declare const agentsSlice: import("@reduxjs/toolkit").Slice<AgentsState, {
7
+ setConversations: (state: import("immer/dist/internal.js").WritableDraft<AgentsState>, action: PayloadAction<AgentUserConversation[]>) => void;
8
+ addConversation: (state: import("immer/dist/internal.js").WritableDraft<AgentsState>, action: PayloadAction<AgentUserConversation>) => void;
9
+ setConversation: (state: import("immer/dist/internal.js").WritableDraft<AgentsState>, action: PayloadAction<AgentUserConversation>) => void;
10
+ updateConversation: (state: import("immer/dist/internal.js").WritableDraft<AgentsState>, action: PayloadAction<Offline<Partial<AgentUserConversation>>>) => void;
11
+ }, "agents">;
12
+ export declare const setConversations: import("@reduxjs/toolkit").ActionCreatorWithPayload<AgentUserConversation[], "agents/setConversations">, addConversation: import("@reduxjs/toolkit").ActionCreatorWithPayload<AgentUserConversation, "agents/addConversation">, setConversation: import("@reduxjs/toolkit").ActionCreatorWithPayload<AgentUserConversation, "agents/setConversation">, updateConversation: import("@reduxjs/toolkit").ActionCreatorWithPayload<Offline<Partial<AgentUserConversation>>, "agents/updateConversation">;
13
+ export declare const selectConversationMapping: (state: RootState) => OfflineIdMapping<AgentUserConversation>;
14
+ export declare const selectConversations: Selector<AgentUserConversation[]>;
15
+ export declare const selectConversation: (args: string) => (state: RootState) => AgentUserConversation | undefined;
16
+ export declare const agentsReducer: Reducer<AgentsState>;
@@ -70,6 +70,7 @@ export declare const selectCategories: ((state: import("redux").EmptyObject & {
70
70
  licenseReducer: import('..').LicenseState;
71
71
  documentsReducer: import('..').DocumentState;
72
72
  teamReducer: import('..').TeamState;
73
+ agentsReducer: import('..').AgentsState;
73
74
  } & {
74
75
  offline: import("@redux-offline/redux-offline/lib/types").OfflineState;
75
76
  }) => Category[]) & import("reselect").OutputSelectorFields<(args_0: Record<string, Category>, args_1: string | null) => Category[], {
@@ -55,7 +55,7 @@ export declare const componentSlice: import("@reduxjs/toolkit").Slice<ComponentS
55
55
  export declare const addComponent: import("@reduxjs/toolkit").ActionCreatorWithPayload<Component, "components/addComponent">, updateComponent: import("@reduxjs/toolkit").ActionCreatorWithPayload<Component, "components/updateComponent">, removeComponent: import("@reduxjs/toolkit").ActionCreatorWithPayload<string, "components/removeComponent">, addComponentsInBatches: import("@reduxjs/toolkit").ActionCreatorWithPayload<(Component | Submitted<Component>)[], "components/addComponentsInBatches">, setComponents: import("@reduxjs/toolkit").ActionCreatorWithPayload<Component[], "components/setComponents">, removeAllComponentsOfType: import("@reduxjs/toolkit").ActionCreatorWithPayload<string, "components/removeAllComponentsOfType">, setComponentAttachment: import("@reduxjs/toolkit").ActionCreatorWithPayload<Stored<ComponentAttachment>, "components/setComponentAttachment">, setComponentAttachments: import("@reduxjs/toolkit").ActionCreatorWithPayload<Stored<ComponentAttachment>[], "components/setComponentAttachments">, addComponentAttachment: import("@reduxjs/toolkit").ActionCreatorWithPayload<Submitted<ComponentAttachment>, "components/addComponentAttachment">, addComponentAttachments: import("@reduxjs/toolkit").ActionCreatorWithPayload<Submitted<ComponentAttachment>[], "components/addComponentAttachments">, updateComponentAttachment: import("@reduxjs/toolkit").ActionCreatorWithPayload<Submitted<ComponentAttachment>, "components/updateComponentAttachment">, updateComponentAttachments: import("@reduxjs/toolkit").ActionCreatorWithPayload<Submitted<ComponentAttachment>[], "components/updateComponentAttachments">, removeComponentAttachment: import("@reduxjs/toolkit").ActionCreatorWithPayload<string, "components/removeComponentAttachment">, removeComponentAttachments: import("@reduxjs/toolkit").ActionCreatorWithPayload<string[], "components/removeComponentAttachments">;
56
56
  export declare const selectComponents: (state: RootState) => Component[];
57
57
  export declare const selectComponentsMapping: (state: RootState) => Record<string, Component | Submitted<Component>>;
58
- export declare const selectComponentsFromComponentType: SelectorWithArgs<string | undefined, Component[]>;
58
+ export declare const selectComponentsFromComponentType: SelectorWithArgs<string, Component[]>;
59
59
  export declare const selectComponent: SelectorWithArgs<string, Component>;
60
60
  export declare const selectComponentTypeFromComponent: SelectorWithArgs<string, ComponentType>;
61
61
  export declare const selectComponentTypeFromComponents: Selector<Record<string, ComponentType>>;
@@ -270,6 +270,7 @@ export declare const selectRootDocuments: ((state: import("redux").EmptyObject &
270
270
  licenseReducer: import('..').LicenseState;
271
271
  documentsReducer: DocumentState;
272
272
  teamReducer: import('..').TeamState;
273
+ agentsReducer: import('..').AgentsState;
273
274
  } & {
274
275
  offline: import("@redux-offline/redux-offline/lib/types").OfflineState;
275
276
  }) => ((import('../../typings/models/base').OfflineModel & import('../../typings/models/base').CreatedByModel & {
@@ -49,6 +49,7 @@ export declare const selectFormRevisions: ((state: import("redux").EmptyObject &
49
49
  licenseReducer: import('..').LicenseState;
50
50
  documentsReducer: import('..').DocumentState;
51
51
  teamReducer: import('..').TeamState;
52
+ agentsReducer: import('..').AgentsState;
52
53
  } & {
53
54
  offline: import("@redux-offline/redux-offline/lib/types").OfflineState;
54
55
  }) => Stored<UserFormRevision<import('../../forms').ISerializedField>>[]) & import("reselect").OutputSelectorFields<(args_0: Record<string, Stored<UserFormRevision<import('../../forms').ISerializedField>>>) => Stored<UserFormRevision<import('../../forms').ISerializedField>>[], {
@@ -25,3 +25,4 @@ export * from "./emailDomainsSlice";
25
25
  export * from "./licenseSlice";
26
26
  export * from "./documentSlice";
27
27
  export * from "./teamSlice";
28
+ export * from "./agentsSlice";
@@ -158,6 +158,7 @@ export declare const selectAllAttachments: ((state: import("redux").EmptyObject
158
158
  licenseReducer: import('..').LicenseState;
159
159
  documentsReducer: import('..').DocumentState;
160
160
  teamReducer: import('..').TeamState;
161
+ agentsReducer: import('..').AgentsState;
161
162
  } & {
162
163
  offline: import("@redux-offline/redux-offline/lib/types").OfflineState;
163
164
  }) => Stored<IssueAttachment>[]) & import("reselect").OutputSelectorFields<(args_0: Record<string, Stored<IssueAttachment>>) => Stored<IssueAttachment>[], {
@@ -78,6 +78,7 @@ export declare const selectProjectFiles: ((state: import("redux").EmptyObject &
78
78
  licenseReducer: import('..').LicenseState;
79
79
  documentsReducer: import('..').DocumentState;
80
80
  teamReducer: import('..').TeamState;
81
+ agentsReducer: import('..').AgentsState;
81
82
  } & {
82
83
  offline: import("@redux-offline/redux-offline/lib/types").OfflineState;
83
84
  }) => ProjectFile[]) & import("reselect").OutputSelectorFields<(args_0: Record<string, ProjectFile>, args_1: number | null) => ProjectFile[], {
@@ -56,6 +56,7 @@ export declare const selectWorkspaces: ((state: import("redux").EmptyObject & {
56
56
  licenseReducer: import('..').LicenseState;
57
57
  documentsReducer: import('..').DocumentState;
58
58
  teamReducer: import('..').TeamState;
59
+ agentsReducer: import('..').AgentsState;
59
60
  } & {
60
61
  offline: import("@redux-offline/redux-offline/lib/types").OfflineState;
61
62
  }) => Workspace[]) & import("reselect").OutputSelectorFields<(args_0: Record<string, Workspace>) => Workspace[], {
@@ -2,8 +2,8 @@
2
2
  import { AnyAction, Reducer } from "redux";
3
3
  import { Config, OfflineAction, OfflineMetadata, OfflineState } from "@redux-offline/redux-offline/lib/types";
4
4
  import request from "superagent";
5
- import { type OfflineMetaEffect, type OvermapSDK, RequestDetails } from "../sdk";
6
- import { AuthState, CategoryState, ComponentStageCompletionState, ComponentStageState, ComponentState, ComponentTypeState, DocumentState, EmailDomainState, FileState, IssueState, IssueTypeState, LicenseState, MapState, OrganizationAccessState, OrganizationState, OutboxState, ProjectAccessState, ProjectFileState, ProjectState, RehydratedState, SettingState, FormState, FormRevisionState, FormSubmissionState, UserState, WorkspaceState, TeamState } from "./slices";
5
+ import { type OfflineMetaEffect, OutboxCoordinator, type OvermapSDK, RequestDetails } from "../sdk";
6
+ import { AgentsState, AuthState, CategoryState, ComponentStageCompletionState, ComponentStageState, ComponentState, ComponentTypeState, DocumentState, EmailDomainState, FileState, FormRevisionState, FormState, FormSubmissionState, IssueState, IssueTypeState, LicenseState, MapState, OrganizationAccessState, OrganizationState, OutboxState, ProjectAccessState, ProjectFileState, ProjectState, RehydratedState, SettingState, TeamState, UserState, WorkspaceState } from "./slices";
7
7
  import { VersioningState } from "./slices/versioningSlice";
8
8
  import { RootState } from "../typings";
9
9
  export declare const overmapReducers: {
@@ -35,6 +35,7 @@ export declare const overmapReducers: {
35
35
  licenseReducer: Reducer<LicenseState>;
36
36
  documentsReducer: Reducer<DocumentState>;
37
37
  teamReducer: Reducer<TeamState>;
38
+ agentsReducer: Reducer<AgentsState>;
38
39
  };
39
40
  export declare const overmapReducer: Reducer<import("redux").CombinedState<{
40
41
  versioning: VersioningState;
@@ -65,6 +66,7 @@ export declare const overmapReducer: Reducer<import("redux").CombinedState<{
65
66
  licenseReducer: LicenseState;
66
67
  documentsReducer: DocumentState;
67
68
  teamReducer: TeamState;
69
+ agentsReducer: AgentsState;
68
70
  }>, AnyAction>;
69
71
  export declare const resetStore = "RESET";
70
72
  export declare const rootReducer: Reducer<RootState>;
@@ -77,6 +79,7 @@ export interface FullOfflineAction extends OfflineAction {
77
79
  };
78
80
  payload: RequestDetails;
79
81
  }
82
+ export declare function getOutboxCoordinator(): OutboxCoordinator | null;
80
83
  export declare const enqueue: Config["queue"]["enqueue"];
81
84
  export declare const dequeue: Config["queue"]["dequeue"];
82
85
  /**
@@ -113,6 +116,7 @@ export declare const defaultStore: import("@reduxjs/toolkit/dist/configureStore"
113
116
  licenseReducer: LicenseState;
114
117
  documentsReducer: DocumentState;
115
118
  teamReducer: TeamState;
119
+ agentsReducer: AgentsState;
116
120
  } & {
117
121
  offline: OfflineState;
118
122
  }, AnyAction, import("@reduxjs/toolkit").MiddlewareArray<[import("@reduxjs/toolkit").ThunkMiddleware<RootState, AnyAction>]>>;
@@ -0,0 +1,26 @@
1
+ import { JSONContent } from "@tiptap/core";
2
+ import { Offline, OptionalFileModel, TimestampedModel } from "./base";
3
+ export interface AgentProfile extends OptionalFileModel {
4
+ /**
5
+ * The name of the agent.
6
+ */
7
+ name: string;
8
+ /**
9
+ * The description of the agent.
10
+ */
11
+ description: string;
12
+ }
13
+ export interface AgentProfile extends OptionalFileModel {
14
+ /**
15
+ * The name of the agent.
16
+ */
17
+ name: string;
18
+ /**
19
+ * The description of the agent.
20
+ */
21
+ description: string;
22
+ }
23
+ export interface AgentUserConversation extends Offline<TimestampedModel> {
24
+ profile?: AgentProfile | null;
25
+ tiptap_content?: JSONContent[];
26
+ }
@@ -20,6 +20,11 @@ export type Payload<TModel> = Omit<TModel, "offline_id" | "created_at" | "update
20
20
  export type MaybePayload<TModel extends OfflineModel> = Payload<TModel> & {
21
21
  offline_id?: string | null;
22
22
  };
23
+ export interface FileObject {
24
+ file_sha1: string;
25
+ file: string;
26
+ objectURL?: string;
27
+ }
23
28
  export interface OptionalFileModel {
24
29
  file_sha1?: string | null;
25
30
  file?: string | null;
@@ -17,3 +17,4 @@ export * from "./emailDomain";
17
17
  export * from "./license";
18
18
  export * from "./documents";
19
19
  export * from "./teams";
20
+ export * from "./agents";
package/package.json CHANGED
@@ -1,153 +1,153 @@
1
- {
2
- "name": "@overmap-ai/core",
3
- "description": "Core functionality for Overmap",
4
- "author": "Wôrdn Inc.",
5
- "license": "UNLICENSED",
6
- "version": "1.0.54",
7
- "type": "module",
8
- "main": "dist/overmap-core.umd.cjs",
9
- "module": "dist/overmap-core.js",
10
- "types": "dist/index.d.ts",
11
- "scripts": {
12
- "dev": "vite",
13
- "build": "tsc --noEmit && vite build",
14
- "lint": "tsc --noEmit && eslint . --ext ts,tsx,js,jsx --report-unused-disable-directives --max-warnings 0",
15
- "lint:fix": "eslint . --ext ts,tsx,js,jsx --report-unused-disable-directives --max-warnings 0 --fix",
16
- "format": "prettier --write \"**/*.{js,jsx,ts,tsx,json,md,html,sass,yaml}\"",
17
- "preview": "vite preview",
18
- "prepare": "husky install",
19
- "storybook": "storybook dev -p 6006",
20
- "build-storybook": "storybook build",
21
- "test": "npx vitest"
22
- },
23
- "dependencies": {
24
- "@hello-pangea/dnd": "^16.5.0",
25
- "@redux-offline/redux-offline": "^2.6.0",
26
- "@reduxjs/toolkit": "^1.9.5",
27
- "color": "^4.2.3",
28
- "dependency-graph": "^1.0.0",
29
- "eslint-plugin-vitest": "^0.3.20",
30
- "file-saver": "^2.0.5",
31
- "formik": "^2.4.5",
32
- "idb": "^7.1.1",
33
- "jwt-decode": "^3.1.2",
34
- "leaflet-draw": "^1.0.4",
35
- "leaflet.markercluster": "^1.5.3",
36
- "linkify-react": "^4.1.3",
37
- "linkifyjs": "^4.1.3",
38
- "localforage": "^1.10.0",
39
- "lodash.clonedeep": "^4.5.0",
40
- "lodash.get": "^4.4.2",
41
- "lodash.set": "^4.3.2",
42
- "qr-scanner": "^1.4.2",
43
- "react-leaflet": "^4.2.1",
44
- "react-pdf": "^8.0.2",
45
- "react-sketch-canvas": "^6.2.0",
46
- "react-spreadsheet": "^0.9.4",
47
- "redux-persist-migrate": "^5.0.0",
48
- "superagent": "^8.1.2",
49
- "uuid": "^9.0.0",
50
- "xlsx": "^0.18.5"
51
- },
52
- "devDependencies": {
53
- "@esbuild-plugins/node-globals-polyfill": "^0.2.3",
54
- "@esbuild-plugins/node-modules-polyfill": "^0.2.2",
55
- "@overmap-ai/blocks": "^1.0.29-alpha.1",
56
- "@rollup/plugin-commonjs": "^25.0.4",
57
- "@storybook/addon-essentials": "7.3.2",
58
- "@storybook/addon-interactions": "7.3.2",
59
- "@storybook/addon-links": "7.3.2",
60
- "@storybook/addon-onboarding": "1.0.8",
61
- "@storybook/blocks": "7.3.2",
62
- "@storybook/react": "7.3.2",
63
- "@storybook/react-vite": "7.3.2",
64
- "@storybook/testing-library": "0.2.0",
65
- "@testing-library/dom": "^9.3.4",
66
- "@testing-library/react": "^14.1.2",
67
- "@testing-library/user-event": "^14.5.2",
68
- "@tiptap/core": "^2.4.0",
69
- "@types/color": "^3.0.4",
70
- "@types/file-saver": "^2.0.7",
71
- "@types/jwt-decode": "^3.1.0",
72
- "@types/leaflet": "^1.9.3",
73
- "@types/lodash.clonedeep": "^4.5.9",
74
- "@types/lodash.get": "^4.4.9",
75
- "@types/lodash.set": "^4.3.9",
76
- "@types/node": "^20.12.11",
77
- "@types/react": "^18.3.1",
78
- "@types/react-dom": "^18.2.7",
79
- "@types/react-redux": "^7.1.26",
80
- "@types/superagent": "^4.1.18",
81
- "@types/uuid": "^9.0.3",
82
- "@types/xlsx": "^0.0.36",
83
- "@typescript-eslint/eslint-plugin": "^6.4.1",
84
- "@typescript-eslint/parser": "^6.4.1",
85
- "@vitejs/plugin-react-swc": "^3.3.2",
86
- "@vitest/coverage-v8": "^1.2.1",
87
- "eslint": "^8.47.0",
88
- "eslint-config-prettier": "^9.0.0",
89
- "eslint-plugin-import": "^2.28.1",
90
- "eslint-plugin-prettier": "^5.0.0",
91
- "eslint-plugin-react": "^7.33.2",
92
- "eslint-plugin-react-hooks": "^4.6.0",
93
- "eslint-plugin-react-refresh": "^0.4.3",
94
- "eslint-plugin-simple-import-sort": "^10.0.0",
95
- "eslint-plugin-storybook": "^0.6.13",
96
- "happy-dom": "^13.3.1",
97
- "husky": "^8.0.3",
98
- "jsdom": "^23.2.0",
99
- "leaflet": "^1.9.0",
100
- "lint-staged": "^15.1.0",
101
- "prettier": "^3.0.2",
102
- "react": "^18.2.0",
103
- "react-dom": "^18.2.0",
104
- "react-hooks": "^1.0.1",
105
- "react-redux": "^8.1.2",
106
- "redux": "^4.2.1",
107
- "rollup-plugin-polyfill-node": "^0.12.0",
108
- "sass": "^1.66.1",
109
- "storybook": "7.3.2",
110
- "typescript": "^5.2.2",
111
- "vite": "^4.4.5",
112
- "vite-plugin-dts": "^3.5.2",
113
- "vite-plugin-externalize-deps": "^0.7.0",
114
- "vitest": "^1.2.1"
115
- },
116
- "peerDependencies": {
117
- "@overmap-ai/blocks": "1.0.8",
118
- "@tiptap/core": "^2.4.0",
119
- "leaflet": "^1.9.0",
120
- "react": "^18.2.0",
121
- "react-dom": "^18.2.0",
122
- "react-redux": "^8.1.2"
123
- },
124
- "resolutions": {
125
- "//": "Workaround for eslint issue: https://github.com/eslint/eslint/discussions/17215",
126
- "strip-ansi": "6.0.1",
127
- "string-width": "4.2.2",
128
- "wrap-ansi": "7.0.0"
129
- },
130
- "lint-staged": {
131
- "src/**/*.{js,jsx,ts,tsx}": [
132
- "yarn lint",
133
- "yarn format"
134
- ]
135
- },
136
- "files": [
137
- "dist"
138
- ],
139
- "keywords": [
140
- "react",
141
- "geospacial",
142
- "map",
143
- "components"
144
- ],
145
- "homepage": "https://overmap.ai",
146
- "repository": {
147
- "type": "git",
148
- "url": "git+https://github.com/hemora-app/overmap-core.git"
149
- },
150
- "bugs": {
151
- "url": "https://github.com/hemora-app/overmap-core/issues"
152
- }
153
- }
1
+ {
2
+ "name": "@overmap-ai/core",
3
+ "description": "Core functionality for Overmap",
4
+ "author": "Wôrdn Inc.",
5
+ "license": "UNLICENSED",
6
+ "version": "1.0.56",
7
+ "type": "module",
8
+ "main": "dist/overmap-core.umd.cjs",
9
+ "module": "dist/overmap-core.js",
10
+ "types": "dist/index.d.ts",
11
+ "scripts": {
12
+ "dev": "vite",
13
+ "build": "tsc --noEmit && vite build",
14
+ "lint": "tsc --noEmit && eslint . --ext ts,tsx,js,jsx --report-unused-disable-directives --max-warnings 0",
15
+ "lint:fix": "eslint . --ext ts,tsx,js,jsx --report-unused-disable-directives --max-warnings 0 --fix",
16
+ "format": "prettier --write \"**/*.{js,jsx,ts,tsx,json,md,html,sass,yaml}\"",
17
+ "preview": "vite preview",
18
+ "prepare": "husky install",
19
+ "storybook": "storybook dev -p 6006",
20
+ "build-storybook": "storybook build",
21
+ "test": "npx vitest"
22
+ },
23
+ "dependencies": {
24
+ "@hello-pangea/dnd": "^16.5.0",
25
+ "@redux-offline/redux-offline": "^2.6.0",
26
+ "@reduxjs/toolkit": "^1.9.5",
27
+ "color": "^4.2.3",
28
+ "dependency-graph": "^1.0.0",
29
+ "eslint-plugin-vitest": "^0.3.20",
30
+ "file-saver": "^2.0.5",
31
+ "formik": "^2.4.5",
32
+ "idb": "^7.1.1",
33
+ "jwt-decode": "^3.1.2",
34
+ "leaflet-draw": "^1.0.4",
35
+ "leaflet.markercluster": "^1.5.3",
36
+ "linkify-react": "^4.1.3",
37
+ "linkifyjs": "^4.1.3",
38
+ "localforage": "^1.10.0",
39
+ "lodash.clonedeep": "^4.5.0",
40
+ "lodash.get": "^4.4.2",
41
+ "lodash.set": "^4.3.2",
42
+ "qr-scanner": "^1.4.2",
43
+ "react-leaflet": "^4.2.1",
44
+ "react-pdf": "^8.0.2",
45
+ "react-sketch-canvas": "^6.2.0",
46
+ "react-spreadsheet": "^0.9.4",
47
+ "redux-persist-migrate": "^5.0.0",
48
+ "superagent": "^8.1.2",
49
+ "uuid": "^9.0.0",
50
+ "xlsx": "^0.18.5"
51
+ },
52
+ "devDependencies": {
53
+ "@esbuild-plugins/node-globals-polyfill": "^0.2.3",
54
+ "@esbuild-plugins/node-modules-polyfill": "^0.2.2",
55
+ "@overmap-ai/blocks": "^1.0.29-alpha.1",
56
+ "@rollup/plugin-commonjs": "^25.0.4",
57
+ "@storybook/addon-essentials": "7.3.2",
58
+ "@storybook/addon-interactions": "7.3.2",
59
+ "@storybook/addon-links": "7.3.2",
60
+ "@storybook/addon-onboarding": "1.0.8",
61
+ "@storybook/blocks": "7.3.2",
62
+ "@storybook/react": "7.3.2",
63
+ "@storybook/react-vite": "7.3.2",
64
+ "@storybook/testing-library": "0.2.0",
65
+ "@testing-library/dom": "^9.3.4",
66
+ "@testing-library/react": "^14.1.2",
67
+ "@testing-library/user-event": "^14.5.2",
68
+ "@tiptap/core": "^2.4.0",
69
+ "@types/color": "^3.0.4",
70
+ "@types/file-saver": "^2.0.7",
71
+ "@types/jwt-decode": "^3.1.0",
72
+ "@types/leaflet": "^1.9.3",
73
+ "@types/lodash.clonedeep": "^4.5.9",
74
+ "@types/lodash.get": "^4.4.9",
75
+ "@types/lodash.set": "^4.3.9",
76
+ "@types/node": "^20.12.11",
77
+ "@types/react": "^18.3.1",
78
+ "@types/react-dom": "^18.2.7",
79
+ "@types/react-redux": "^7.1.26",
80
+ "@types/superagent": "^4.1.18",
81
+ "@types/uuid": "^9.0.3",
82
+ "@types/xlsx": "^0.0.36",
83
+ "@typescript-eslint/eslint-plugin": "^6.4.1",
84
+ "@typescript-eslint/parser": "^6.4.1",
85
+ "@vitejs/plugin-react-swc": "^3.3.2",
86
+ "@vitest/coverage-v8": "^1.2.1",
87
+ "eslint": "^8.47.0",
88
+ "eslint-config-prettier": "^9.0.0",
89
+ "eslint-plugin-import": "^2.28.1",
90
+ "eslint-plugin-prettier": "^5.0.0",
91
+ "eslint-plugin-react": "^7.33.2",
92
+ "eslint-plugin-react-hooks": "^4.6.0",
93
+ "eslint-plugin-react-refresh": "^0.4.3",
94
+ "eslint-plugin-simple-import-sort": "^10.0.0",
95
+ "eslint-plugin-storybook": "^0.6.13",
96
+ "happy-dom": "^13.3.1",
97
+ "husky": "^8.0.3",
98
+ "jsdom": "^23.2.0",
99
+ "leaflet": "^1.9.0",
100
+ "lint-staged": "^15.1.0",
101
+ "prettier": "^3.0.2",
102
+ "react": "^18.2.0",
103
+ "react-dom": "^18.2.0",
104
+ "react-hooks": "^1.0.1",
105
+ "react-redux": "^8.1.2",
106
+ "redux": "^4.2.1",
107
+ "rollup-plugin-polyfill-node": "^0.12.0",
108
+ "sass": "^1.66.1",
109
+ "storybook": "7.3.2",
110
+ "typescript": "^5.2.2",
111
+ "vite": "^4.4.5",
112
+ "vite-plugin-dts": "^3.5.2",
113
+ "vite-plugin-externalize-deps": "^0.7.0",
114
+ "vitest": "^1.2.1"
115
+ },
116
+ "peerDependencies": {
117
+ "@overmap-ai/blocks": "1.0.8",
118
+ "@tiptap/core": "^2.4.0",
119
+ "leaflet": "^1.9.0",
120
+ "react": "^18.2.0",
121
+ "react-dom": "^18.2.0",
122
+ "react-redux": "^8.1.2"
123
+ },
124
+ "resolutions": {
125
+ "//": "Workaround for eslint issue: https://github.com/eslint/eslint/discussions/17215",
126
+ "strip-ansi": "6.0.1",
127
+ "string-width": "4.2.2",
128
+ "wrap-ansi": "7.0.0"
129
+ },
130
+ "lint-staged": {
131
+ "src/**/*.{js,jsx,ts,tsx}": [
132
+ "yarn lint",
133
+ "yarn format"
134
+ ]
135
+ },
136
+ "files": [
137
+ "dist"
138
+ ],
139
+ "keywords": [
140
+ "react",
141
+ "geospacial",
142
+ "map",
143
+ "components"
144
+ ],
145
+ "homepage": "https://overmap.ai",
146
+ "repository": {
147
+ "type": "git",
148
+ "url": "git+https://github.com/hemora-app/overmap-core.git"
149
+ },
150
+ "bugs": {
151
+ "url": "https://github.com/hemora-app/overmap-core/issues"
152
+ }
153
+ }