@aneuhold/core-ts-db-lib 3.0.2 → 4.0.0
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.
- package/CHANGELOG.md +34 -0
- package/lib/browser.d.ts +19 -16
- package/lib/browser.d.ts.map +1 -1
- package/lib/browser.js +10 -12
- package/lib/browser.js.map +1 -1
- package/lib/browser.ts +46 -36
- package/lib/documents/BaseDocument.d.ts +22 -9
- package/lib/documents/BaseDocument.d.ts.map +1 -1
- package/lib/documents/BaseDocument.js +16 -7
- package/lib/documents/BaseDocument.js.map +1 -1
- package/lib/documents/BaseDocument.ts +27 -7
- package/lib/documents/common/ApiKey.d.ts +8 -25
- package/lib/documents/common/ApiKey.d.ts.map +1 -1
- package/lib/documents/common/ApiKey.js +7 -36
- package/lib/documents/common/ApiKey.js.map +1 -1
- package/lib/documents/common/ApiKey.ts +11 -41
- package/lib/documents/common/User.d.ts +25 -31
- package/lib/documents/common/User.d.ts.map +1 -1
- package/lib/documents/common/User.js +22 -39
- package/lib/documents/common/User.js.map +1 -1
- package/lib/documents/common/User.ts +29 -53
- package/lib/documents/dashboard/NonogramKatanaItem.d.ts +18 -27
- package/lib/documents/dashboard/NonogramKatanaItem.d.ts.map +1 -1
- package/lib/documents/dashboard/NonogramKatanaItem.js +17 -31
- package/lib/documents/dashboard/NonogramKatanaItem.js.map +1 -1
- package/lib/documents/dashboard/NonogramKatanaItem.ts +21 -45
- package/lib/documents/dashboard/NonogramKatanaUpgrade.d.ts +16 -41
- package/lib/documents/dashboard/NonogramKatanaUpgrade.d.ts.map +1 -1
- package/lib/documents/dashboard/NonogramKatanaUpgrade.js +17 -43
- package/lib/documents/dashboard/NonogramKatanaUpgrade.js.map +1 -1
- package/lib/documents/dashboard/NonogramKatanaUpgrade.ts +21 -55
- package/lib/documents/dashboard/Task.d.ts +73 -97
- package/lib/documents/dashboard/Task.d.ts.map +1 -1
- package/lib/documents/dashboard/Task.js +38 -80
- package/lib/documents/dashboard/Task.js.map +1 -1
- package/lib/documents/dashboard/Task.ts +71 -111
- package/lib/documents/dashboard/UserConfig.d.ts +49 -69
- package/lib/documents/dashboard/UserConfig.d.ts.map +1 -1
- package/lib/documents/dashboard/UserConfig.js +31 -51
- package/lib/documents/dashboard/UserConfig.js.map +1 -1
- package/lib/documents/dashboard/UserConfig.ts +41 -87
- package/lib/embedded-types/dashboard/nonogramKatanaItem/ItemName.d.ts +5 -0
- package/lib/embedded-types/dashboard/nonogramKatanaItem/ItemName.d.ts.map +1 -1
- package/lib/embedded-types/dashboard/nonogramKatanaItem/ItemName.js +5 -0
- package/lib/embedded-types/dashboard/nonogramKatanaItem/ItemName.js.map +1 -1
- package/lib/embedded-types/dashboard/nonogramKatanaItem/ItemName.ts +7 -0
- package/lib/embedded-types/dashboard/nonogramKatanaUpgrade/UpgradeName.d.ts +5 -0
- package/lib/embedded-types/dashboard/nonogramKatanaUpgrade/UpgradeName.d.ts.map +1 -1
- package/lib/embedded-types/dashboard/nonogramKatanaUpgrade/UpgradeName.js +5 -0
- package/lib/embedded-types/dashboard/nonogramKatanaUpgrade/UpgradeName.js.map +1 -1
- package/lib/embedded-types/dashboard/nonogramKatanaUpgrade/UpgradeName.ts +7 -0
- package/lib/embedded-types/dashboard/task/FilterSettings.d.ts +69 -41
- package/lib/embedded-types/dashboard/task/FilterSettings.d.ts.map +1 -1
- package/lib/embedded-types/dashboard/task/FilterSettings.js +29 -36
- package/lib/embedded-types/dashboard/task/FilterSettings.js.map +1 -1
- package/lib/embedded-types/dashboard/task/FilterSettings.ts +51 -74
- package/lib/embedded-types/dashboard/task/RecurrenceInfo.d.ts +74 -52
- package/lib/embedded-types/dashboard/task/RecurrenceInfo.d.ts.map +1 -1
- package/lib/embedded-types/dashboard/task/RecurrenceInfo.js +66 -28
- package/lib/embedded-types/dashboard/task/RecurrenceInfo.js.map +1 -1
- package/lib/embedded-types/dashboard/task/RecurrenceInfo.ts +83 -77
- package/lib/embedded-types/dashboard/task/SortSettings.d.ts +61 -42
- package/lib/embedded-types/dashboard/task/SortSettings.d.ts.map +1 -1
- package/lib/embedded-types/dashboard/task/SortSettings.js +34 -31
- package/lib/embedded-types/dashboard/task/SortSettings.js.map +1 -1
- package/lib/embedded-types/dashboard/task/SortSettings.ts +66 -61
- package/lib/embedded-types/dashboard/userConfig/Tags.d.ts +18 -11
- package/lib/embedded-types/dashboard/userConfig/Tags.d.ts.map +1 -1
- package/lib/embedded-types/dashboard/userConfig/Tags.js +15 -1
- package/lib/embedded-types/dashboard/userConfig/Tags.js.map +1 -1
- package/lib/embedded-types/dashboard/userConfig/Tags.ts +21 -9
- package/lib/schemas/required-refs/RequiredUserId.d.ts +9 -5
- package/lib/schemas/required-refs/RequiredUserId.d.ts.map +1 -1
- package/lib/schemas/required-refs/RequiredUserId.js +9 -4
- package/lib/schemas/required-refs/RequiredUserId.js.map +1 -1
- package/lib/schemas/required-refs/RequiredUserId.ts +13 -4
- package/lib/services/DocumentService.d.ts +1 -1
- package/lib/services/DocumentService.d.ts.map +1 -1
- package/lib/services/DocumentService.js +0 -1
- package/lib/services/DocumentService.js.map +1 -1
- package/lib/services/DocumentService.ts +1 -1
- package/lib/services/dashboard/Task/TaskRecurrenceService.d.ts +4 -4
- package/lib/services/dashboard/Task/TaskRecurrenceService.d.ts.map +1 -1
- package/lib/services/dashboard/Task/TaskRecurrenceService.js +3 -4
- package/lib/services/dashboard/Task/TaskRecurrenceService.js.map +1 -1
- package/lib/services/dashboard/Task/TaskRecurrenceService.ts +8 -5
- package/lib/services/dashboard/Task/TaskService.d.ts +1 -2
- package/lib/services/dashboard/Task/TaskService.d.ts.map +1 -1
- package/lib/services/dashboard/Task/TaskService.js +0 -1
- package/lib/services/dashboard/Task/TaskService.js.map +1 -1
- package/lib/services/dashboard/Task/TaskService.ts +1 -2
- package/lib/services/dashboard/Task/TaskSortService.d.ts.map +1 -1
- package/lib/services/dashboard/Task/TaskSortService.js +0 -1
- package/lib/services/dashboard/Task/TaskSortService.js.map +1 -1
- package/lib/services/dashboard/Task/TaskSortService.ts +1 -2
- package/package.json +10 -10
- package/lib/documents/BaseDocumentWithType.d.ts +0 -8
- package/lib/documents/BaseDocumentWithType.d.ts.map +0 -1
- package/lib/documents/BaseDocumentWithType.js +0 -7
- package/lib/documents/BaseDocumentWithType.js.map +0 -1
- package/lib/documents/BaseDocumentWithType.ts +0 -8
- package/lib/schemas/type-guards/commonTypeGuards.d.ts +0 -36
- package/lib/schemas/type-guards/commonTypeGuards.d.ts.map +0 -1
- package/lib/schemas/type-guards/commonTypeGuards.js +0 -46
- package/lib/schemas/type-guards/commonTypeGuards.js.map +0 -1
- package/lib/schemas/type-guards/commonTypeGuards.ts +0 -49
- package/lib/schemas/validators/DocumentValidator.d.ts +0 -9
- package/lib/schemas/validators/DocumentValidator.d.ts.map +0 -1
- package/lib/schemas/validators/DocumentValidator.js +0 -2
- package/lib/schemas/validators/DocumentValidator.js.map +0 -1
- package/lib/schemas/validators/DocumentValidator.ts +0 -9
- package/lib/schemas/validators/ValidateUtil.d.ts +0 -122
- package/lib/schemas/validators/ValidateUtil.d.ts.map +0 -1
- package/lib/schemas/validators/ValidateUtil.js +0 -216
- package/lib/schemas/validators/ValidateUtil.js.map +0 -1
- package/lib/schemas/validators/ValidateUtil.ts +0 -240
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,38 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## 🔖 [4.0.0] (2025-12-07)
|
|
9
|
+
|
|
10
|
+
### ✅ Added
|
|
11
|
+
|
|
12
|
+
- Added Zod-based schemas for all document, embedded, and type files.
|
|
13
|
+
- Added new and updated tests for all document and service logic using Zod schemas.
|
|
14
|
+
|
|
15
|
+
### 🏗️ Changed
|
|
16
|
+
|
|
17
|
+
- _Breaking Change:_ Migrated all document, type, and service code from legacy validation and type-guards to Zod schemas.
|
|
18
|
+
- _Breaking Change:_ All type-only imports now use `import type` for clarity and build performance.
|
|
19
|
+
- Refactored all document, embedded, and service files to use new Zod-based validation and schemas.
|
|
20
|
+
- Updated dependencies: now requires `@aneuhold/core-ts-lib@^2.3.13`, `zod@^4.1.13`, and `@aneuhold/local-npm-registry@^0.2.20`.
|
|
21
|
+
- Updated dev dependencies for compatibility: `prettier`, `tsx`, and `vitest`.
|
|
22
|
+
- Improved test coverage for all document and embedded types.
|
|
23
|
+
|
|
24
|
+
### 🩹 Fixed
|
|
25
|
+
|
|
26
|
+
- Fixed issues with partial updates and field validation in document schemas.
|
|
27
|
+
- Fixed bugs in document creation and migration logic for dashboard-related entities.
|
|
28
|
+
|
|
29
|
+
### 🔥 Removed
|
|
30
|
+
|
|
31
|
+
- _Breaking Change:_ Removed all legacy validation utilities, type-guards, and helper files in favor of Zod schemas.
|
|
32
|
+
- Removed unused files and legacy test utilities.
|
|
33
|
+
|
|
34
|
+
## 🔖 [3.0.3] (2025-12-07)
|
|
35
|
+
|
|
36
|
+
### 🏗️ Changed
|
|
37
|
+
|
|
38
|
+
- Updated dependencies: now requires `@aneuhold/core-ts-lib@^2.3.13` and `@aneuhold/local-npm-registry@^0.2.20`.
|
|
39
|
+
|
|
8
40
|
## 🔖 [3.0.2] (2025-12-03)
|
|
9
41
|
|
|
10
42
|
### 🏗️ Changed
|
|
@@ -116,6 +148,8 @@ Updated dependency: now requires `@aneuhold/core-ts-lib@^2.3.11`.
|
|
|
116
148
|
|
|
117
149
|
<!-- Link References -->
|
|
118
150
|
|
|
151
|
+
[4.0.0]: https://github.com/aneuhold/ts-libs/compare/core-ts-db-lib-v3.0.3...core-ts-db-lib-v4.0.0
|
|
152
|
+
[3.0.3]: https://github.com/aneuhold/ts-libs/compare/core-ts-db-lib-v3.0.2...core-ts-db-lib-v3.0.3
|
|
119
153
|
[3.0.2]: https://github.com/aneuhold/ts-libs/compare/core-ts-db-lib-v3.0.1...core-ts-db-lib-v3.0.2
|
|
120
154
|
[3.0.1]: https://github.com/aneuhold/ts-libs/compare/core-ts-db-lib-v3.0.0...core-ts-db-lib-v3.0.1
|
|
121
155
|
[3.0.0]: https://github.com/aneuhold/ts-libs/compare/core-ts-db-lib-v2.0.90...core-ts-db-lib-v3.0.0
|
package/lib/browser.d.ts
CHANGED
|
@@ -1,28 +1,31 @@
|
|
|
1
|
-
import BaseDocument from './documents/BaseDocument.js';
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import User,
|
|
6
|
-
import
|
|
7
|
-
import
|
|
8
|
-
import
|
|
9
|
-
import
|
|
10
|
-
import
|
|
1
|
+
import type { BaseDocument, BaseDocumentWithType } from './documents/BaseDocument.js';
|
|
2
|
+
import { BaseDocumentSchema, BaseDocumentWithTypeSchema } from './documents/BaseDocument.js';
|
|
3
|
+
import type { ApiKey } from './documents/common/ApiKey.js';
|
|
4
|
+
import { ApiKeySchema } from './documents/common/ApiKey.js';
|
|
5
|
+
import type { User, UserCTO } from './documents/common/User.js';
|
|
6
|
+
import { UserCTOSchema, UserSchema } from './documents/common/User.js';
|
|
7
|
+
import type { NonogramKatanaItem } from './documents/dashboard/NonogramKatanaItem.js';
|
|
8
|
+
import { NonogramKatanaItem_docType, NonogramKatanaItemSchema } from './documents/dashboard/NonogramKatanaItem.js';
|
|
9
|
+
import type { NonogramKatanaUpgrade } from './documents/dashboard/NonogramKatanaUpgrade.js';
|
|
10
|
+
import { NonogramKatanaUpgrade_docType, NonogramKatanaUpgradeSchema } from './documents/dashboard/NonogramKatanaUpgrade.js';
|
|
11
|
+
import type { DashboardTask, DashboardTaskMap } from './documents/dashboard/Task.js';
|
|
12
|
+
import { DashboardTask_docType, DashboardTaskSchema } from './documents/dashboard/Task.js';
|
|
13
|
+
import type { DashboardUserConfig } from './documents/dashboard/UserConfig.js';
|
|
14
|
+
import { DashboardUserConfig_docType, DashboardUserConfigSchema } from './documents/dashboard/UserConfig.js';
|
|
11
15
|
import NonogramKatanaItemName from './embedded-types/dashboard/nonogramKatanaItem/ItemName.js';
|
|
12
16
|
import NonogramKatanaUpgradeName from './embedded-types/dashboard/nonogramKatanaUpgrade/UpgradeName.js';
|
|
13
17
|
import type { DashboardTaskFilterSettings, DashboardTaskListFilterSettings, DashboardTaskListGlobalFilterSettings } from './embedded-types/dashboard/task/FilterSettings.js';
|
|
14
|
-
import { getDefaultTaskListFilterSettings } from './embedded-types/dashboard/task/FilterSettings.js';
|
|
15
18
|
import type { ParentRecurringTaskInfo, RecurrenceFrequency, RecurrenceInfo } from './embedded-types/dashboard/task/RecurrenceInfo.js';
|
|
16
19
|
import { RecurrenceBasis, RecurrenceEffect, RecurrenceFrequencyType } from './embedded-types/dashboard/task/RecurrenceInfo.js';
|
|
17
20
|
import type { DashboardTaskListGlobalSortSettings, DashboardTaskListSortSettings, DashboardTaskSortSetting, DashboardTaskSortSettings } from './embedded-types/dashboard/task/SortSettings.js';
|
|
18
|
-
import { DashboardTaskSortBy, DashboardTaskSortDirection
|
|
21
|
+
import { DashboardTaskSortBy, DashboardTaskSortDirection } from './embedded-types/dashboard/task/SortSettings.js';
|
|
19
22
|
import type { DashboardTagSetting, DashboardTagSettings } from './embedded-types/dashboard/userConfig/Tags.js';
|
|
20
|
-
import RequiredUserId from './schemas/required-refs/RequiredUserId.js';
|
|
21
|
-
import
|
|
23
|
+
import type { RequiredUserId } from './schemas/required-refs/RequiredUserId.js';
|
|
24
|
+
import { RequiredUserIdSchema } from './schemas/required-refs/RequiredUserId.js';
|
|
22
25
|
import type { DocumentMap } from './services/DocumentService.js';
|
|
23
26
|
import DocumentService from './services/DocumentService.js';
|
|
24
27
|
import type { DashboardTaskFilterAndSortResult } from './services/dashboard/Task/TaskService.js';
|
|
25
28
|
import DashboardTaskService from './services/dashboard/Task/TaskService.js';
|
|
26
|
-
export {
|
|
27
|
-
export type { DashboardTagSetting, DashboardTagSettings, DashboardTaskFilterAndSortResult, DashboardTaskFilterSettings, DashboardTaskListFilterSettings, DashboardTaskListGlobalFilterSettings, DashboardTaskListGlobalSortSettings, DashboardTaskListSortSettings, DashboardTaskMap, DashboardTaskSortSetting, DashboardTaskSortSettings, DocumentMap,
|
|
29
|
+
export { ApiKeySchema, BaseDocumentSchema, BaseDocumentWithTypeSchema, DashboardTask_docType, DashboardTaskSchema, DashboardTaskService, DashboardTaskSortBy, DashboardTaskSortDirection, DashboardUserConfig_docType, DashboardUserConfigSchema, DocumentService, NonogramKatanaItem_docType, NonogramKatanaItemName, NonogramKatanaItemSchema, NonogramKatanaUpgrade_docType, NonogramKatanaUpgradeName, NonogramKatanaUpgradeSchema, RecurrenceBasis, RecurrenceEffect, RecurrenceFrequencyType, RequiredUserIdSchema, UserCTOSchema, UserSchema };
|
|
30
|
+
export type { ApiKey, BaseDocument, BaseDocumentWithType, DashboardTagSetting, DashboardTagSettings, DashboardTask, DashboardTaskFilterAndSortResult, DashboardTaskFilterSettings, DashboardTaskListFilterSettings, DashboardTaskListGlobalFilterSettings, DashboardTaskListGlobalSortSettings, DashboardTaskListSortSettings, DashboardTaskMap, DashboardTaskSortSetting, DashboardTaskSortSettings, DashboardUserConfig, DocumentMap, NonogramKatanaItem, NonogramKatanaUpgrade, ParentRecurringTaskInfo, RecurrenceFrequency, RecurrenceInfo, RequiredUserId, User, UserCTO };
|
|
28
31
|
//# sourceMappingURL=browser.d.ts.map
|
package/lib/browser.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACtF,OAAO,EAAE,kBAAkB,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AAC7F,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6CAA6C,CAAC;AACtF,OAAO,EACL,0BAA0B,EAC1B,wBAAwB,EACzB,MAAM,6CAA6C,CAAC;AACrD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,gDAAgD,CAAC;AAC5F,OAAO,EACL,6BAA6B,EAC7B,2BAA2B,EAC5B,MAAM,gDAAgD,CAAC;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACrF,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAC3F,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAC/E,OAAO,EACL,2BAA2B,EAC3B,yBAAyB,EAC1B,MAAM,qCAAqC,CAAC;AAC7C,OAAO,sBAAsB,MAAM,2DAA2D,CAAC;AAC/F,OAAO,yBAAyB,MAAM,iEAAiE,CAAC;AACxG,OAAO,KAAK,EACV,2BAA2B,EAC3B,+BAA+B,EAC/B,qCAAqC,EACtC,MAAM,mDAAmD,CAAC;AAC3D,OAAO,KAAK,EACV,uBAAuB,EACvB,mBAAmB,EACnB,cAAc,EACf,MAAM,mDAAmD,CAAC;AAC3D,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,uBAAuB,EACxB,MAAM,mDAAmD,CAAC;AAC3D,OAAO,KAAK,EACV,mCAAmC,EACnC,6BAA6B,EAC7B,wBAAwB,EACxB,yBAAyB,EAC1B,MAAM,iDAAiD,CAAC;AACzD,OAAO,EACL,mBAAmB,EACnB,0BAA0B,EAC3B,MAAM,iDAAiD,CAAC;AACzD,OAAO,KAAK,EACV,mBAAmB,EACnB,oBAAoB,EACrB,MAAM,+CAA+C,CAAC;AACvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2CAA2C,CAAC;AAChF,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,eAAe,MAAM,+BAA+B,CAAC;AAC5D,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,0CAA0C,CAAC;AACjG,OAAO,oBAAoB,MAAM,0CAA0C,CAAC;AAG5E,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,0BAA0B,EAC1B,qBAAqB,EACrB,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,EACnB,0BAA0B,EAC1B,2BAA2B,EAC3B,yBAAyB,EACzB,eAAe,EACf,0BAA0B,EAC1B,sBAAsB,EACtB,wBAAwB,EACxB,6BAA6B,EAC7B,yBAAyB,EACzB,2BAA2B,EAC3B,eAAe,EACf,gBAAgB,EAChB,uBAAuB,EACvB,oBAAoB,EACpB,aAAa,EACb,UAAU,EACX,CAAC;AAGF,YAAY,EACV,MAAM,EACN,YAAY,EACZ,oBAAoB,EACpB,mBAAmB,EACnB,oBAAoB,EACpB,aAAa,EACb,gCAAgC,EAChC,2BAA2B,EAC3B,+BAA+B,EAC/B,qCAAqC,EACrC,mCAAmC,EACnC,6BAA6B,EAC7B,gBAAgB,EAChB,wBAAwB,EACxB,yBAAyB,EACzB,mBAAmB,EACnB,WAAW,EACX,kBAAkB,EAClB,qBAAqB,EACrB,uBAAuB,EACvB,mBAAmB,EACnB,cAAc,EACd,cAAc,EACd,IAAI,EACJ,OAAO,EACR,CAAC"}
|
package/lib/browser.js
CHANGED
|
@@ -1,19 +1,17 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
import
|
|
7
|
-
import
|
|
8
|
-
import DashboardUserConfig, { validateDashboardUserConfig } from './documents/dashboard/UserConfig.js';
|
|
1
|
+
import { BaseDocumentSchema, BaseDocumentWithTypeSchema } from './documents/BaseDocument.js';
|
|
2
|
+
import { ApiKeySchema } from './documents/common/ApiKey.js';
|
|
3
|
+
import { UserCTOSchema, UserSchema } from './documents/common/User.js';
|
|
4
|
+
import { NonogramKatanaItem_docType, NonogramKatanaItemSchema } from './documents/dashboard/NonogramKatanaItem.js';
|
|
5
|
+
import { NonogramKatanaUpgrade_docType, NonogramKatanaUpgradeSchema } from './documents/dashboard/NonogramKatanaUpgrade.js';
|
|
6
|
+
import { DashboardTask_docType, DashboardTaskSchema } from './documents/dashboard/Task.js';
|
|
7
|
+
import { DashboardUserConfig_docType, DashboardUserConfigSchema } from './documents/dashboard/UserConfig.js';
|
|
9
8
|
import NonogramKatanaItemName from './embedded-types/dashboard/nonogramKatanaItem/ItemName.js';
|
|
10
9
|
import NonogramKatanaUpgradeName from './embedded-types/dashboard/nonogramKatanaUpgrade/UpgradeName.js';
|
|
11
|
-
import { getDefaultTaskListFilterSettings } from './embedded-types/dashboard/task/FilterSettings.js';
|
|
12
10
|
import { RecurrenceBasis, RecurrenceEffect, RecurrenceFrequencyType } from './embedded-types/dashboard/task/RecurrenceInfo.js';
|
|
13
|
-
import { DashboardTaskSortBy, DashboardTaskSortDirection
|
|
14
|
-
import
|
|
11
|
+
import { DashboardTaskSortBy, DashboardTaskSortDirection } from './embedded-types/dashboard/task/SortSettings.js';
|
|
12
|
+
import { RequiredUserIdSchema } from './schemas/required-refs/RequiredUserId.js';
|
|
15
13
|
import DocumentService from './services/DocumentService.js';
|
|
16
14
|
import DashboardTaskService from './services/dashboard/Task/TaskService.js';
|
|
17
15
|
// Export all browser-safe functions and classes from this library
|
|
18
|
-
export {
|
|
16
|
+
export { ApiKeySchema, BaseDocumentSchema, BaseDocumentWithTypeSchema, DashboardTask_docType, DashboardTaskSchema, DashboardTaskService, DashboardTaskSortBy, DashboardTaskSortDirection, DashboardUserConfig_docType, DashboardUserConfigSchema, DocumentService, NonogramKatanaItem_docType, NonogramKatanaItemName, NonogramKatanaItemSchema, NonogramKatanaUpgrade_docType, NonogramKatanaUpgradeName, NonogramKatanaUpgradeSchema, RecurrenceBasis, RecurrenceEffect, RecurrenceFrequencyType, RequiredUserIdSchema, UserCTOSchema, UserSchema };
|
|
19
17
|
//# sourceMappingURL=browser.js.map
|
package/lib/browser.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser.js","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"browser.js","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AAE7F,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAE5D,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAEvE,OAAO,EACL,0BAA0B,EAC1B,wBAAwB,EACzB,MAAM,6CAA6C,CAAC;AAErD,OAAO,EACL,6BAA6B,EAC7B,2BAA2B,EAC5B,MAAM,gDAAgD,CAAC;AAExD,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAE3F,OAAO,EACL,2BAA2B,EAC3B,yBAAyB,EAC1B,MAAM,qCAAqC,CAAC;AAC7C,OAAO,sBAAsB,MAAM,2DAA2D,CAAC;AAC/F,OAAO,yBAAyB,MAAM,iEAAiE,CAAC;AAWxG,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,uBAAuB,EACxB,MAAM,mDAAmD,CAAC;AAO3D,OAAO,EACL,mBAAmB,EACnB,0BAA0B,EAC3B,MAAM,iDAAiD,CAAC;AAMzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AAEjF,OAAO,eAAe,MAAM,+BAA+B,CAAC;AAE5D,OAAO,oBAAoB,MAAM,0CAA0C,CAAC;AAE5E,kEAAkE;AAClE,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,0BAA0B,EAC1B,qBAAqB,EACrB,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,EACnB,0BAA0B,EAC1B,2BAA2B,EAC3B,yBAAyB,EACzB,eAAe,EACf,0BAA0B,EAC1B,sBAAsB,EACtB,wBAAwB,EACxB,6BAA6B,EAC7B,yBAAyB,EACzB,2BAA2B,EAC3B,eAAe,EACf,gBAAgB,EAChB,uBAAuB,EACvB,oBAAoB,EACpB,aAAa,EACb,UAAU,EACX,CAAC"}
|
package/lib/browser.ts
CHANGED
|
@@ -1,18 +1,25 @@
|
|
|
1
|
-
import BaseDocument from './documents/BaseDocument.js';
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import User,
|
|
6
|
-
import
|
|
7
|
-
|
|
1
|
+
import type { BaseDocument, BaseDocumentWithType } from './documents/BaseDocument.js';
|
|
2
|
+
import { BaseDocumentSchema, BaseDocumentWithTypeSchema } from './documents/BaseDocument.js';
|
|
3
|
+
import type { ApiKey } from './documents/common/ApiKey.js';
|
|
4
|
+
import { ApiKeySchema } from './documents/common/ApiKey.js';
|
|
5
|
+
import type { User, UserCTO } from './documents/common/User.js';
|
|
6
|
+
import { UserCTOSchema, UserSchema } from './documents/common/User.js';
|
|
7
|
+
import type { NonogramKatanaItem } from './documents/dashboard/NonogramKatanaItem.js';
|
|
8
|
+
import {
|
|
9
|
+
NonogramKatanaItem_docType,
|
|
10
|
+
NonogramKatanaItemSchema
|
|
8
11
|
} from './documents/dashboard/NonogramKatanaItem.js';
|
|
9
|
-
import NonogramKatanaUpgrade
|
|
10
|
-
|
|
12
|
+
import type { NonogramKatanaUpgrade } from './documents/dashboard/NonogramKatanaUpgrade.js';
|
|
13
|
+
import {
|
|
14
|
+
NonogramKatanaUpgrade_docType,
|
|
15
|
+
NonogramKatanaUpgradeSchema
|
|
11
16
|
} from './documents/dashboard/NonogramKatanaUpgrade.js';
|
|
12
|
-
import type { DashboardTaskMap } from './documents/dashboard/Task.js';
|
|
13
|
-
import
|
|
14
|
-
import DashboardUserConfig
|
|
15
|
-
|
|
17
|
+
import type { DashboardTask, DashboardTaskMap } from './documents/dashboard/Task.js';
|
|
18
|
+
import { DashboardTask_docType, DashboardTaskSchema } from './documents/dashboard/Task.js';
|
|
19
|
+
import type { DashboardUserConfig } from './documents/dashboard/UserConfig.js';
|
|
20
|
+
import {
|
|
21
|
+
DashboardUserConfig_docType,
|
|
22
|
+
DashboardUserConfigSchema
|
|
16
23
|
} from './documents/dashboard/UserConfig.js';
|
|
17
24
|
import NonogramKatanaItemName from './embedded-types/dashboard/nonogramKatanaItem/ItemName.js';
|
|
18
25
|
import NonogramKatanaUpgradeName from './embedded-types/dashboard/nonogramKatanaUpgrade/UpgradeName.js';
|
|
@@ -21,7 +28,6 @@ import type {
|
|
|
21
28
|
DashboardTaskListFilterSettings,
|
|
22
29
|
DashboardTaskListGlobalFilterSettings
|
|
23
30
|
} from './embedded-types/dashboard/task/FilterSettings.js';
|
|
24
|
-
import { getDefaultTaskListFilterSettings } from './embedded-types/dashboard/task/FilterSettings.js';
|
|
25
31
|
import type {
|
|
26
32
|
ParentRecurringTaskInfo,
|
|
27
33
|
RecurrenceFrequency,
|
|
@@ -40,15 +46,14 @@ import type {
|
|
|
40
46
|
} from './embedded-types/dashboard/task/SortSettings.js';
|
|
41
47
|
import {
|
|
42
48
|
DashboardTaskSortBy,
|
|
43
|
-
DashboardTaskSortDirection
|
|
44
|
-
getDefaultTaskListSortSettings
|
|
49
|
+
DashboardTaskSortDirection
|
|
45
50
|
} from './embedded-types/dashboard/task/SortSettings.js';
|
|
46
51
|
import type {
|
|
47
52
|
DashboardTagSetting,
|
|
48
53
|
DashboardTagSettings
|
|
49
54
|
} from './embedded-types/dashboard/userConfig/Tags.js';
|
|
50
|
-
import RequiredUserId from './schemas/required-refs/RequiredUserId.js';
|
|
51
|
-
import
|
|
55
|
+
import type { RequiredUserId } from './schemas/required-refs/RequiredUserId.js';
|
|
56
|
+
import { RequiredUserIdSchema } from './schemas/required-refs/RequiredUserId.js';
|
|
52
57
|
import type { DocumentMap } from './services/DocumentService.js';
|
|
53
58
|
import DocumentService from './services/DocumentService.js';
|
|
54
59
|
import type { DashboardTaskFilterAndSortResult } from './services/dashboard/Task/TaskService.js';
|
|
@@ -56,38 +61,39 @@ import DashboardTaskService from './services/dashboard/Task/TaskService.js';
|
|
|
56
61
|
|
|
57
62
|
// Export all browser-safe functions and classes from this library
|
|
58
63
|
export {
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
64
|
+
ApiKeySchema,
|
|
65
|
+
BaseDocumentSchema,
|
|
66
|
+
BaseDocumentWithTypeSchema,
|
|
67
|
+
DashboardTask_docType,
|
|
68
|
+
DashboardTaskSchema,
|
|
63
69
|
DashboardTaskService,
|
|
64
70
|
DashboardTaskSortBy,
|
|
65
71
|
DashboardTaskSortDirection,
|
|
66
|
-
|
|
72
|
+
DashboardUserConfig_docType,
|
|
73
|
+
DashboardUserConfigSchema,
|
|
67
74
|
DocumentService,
|
|
68
|
-
|
|
69
|
-
getDefaultTaskListSortSettings,
|
|
70
|
-
NonogramKatanaItem,
|
|
75
|
+
NonogramKatanaItem_docType,
|
|
71
76
|
NonogramKatanaItemName,
|
|
72
|
-
|
|
77
|
+
NonogramKatanaItemSchema,
|
|
78
|
+
NonogramKatanaUpgrade_docType,
|
|
73
79
|
NonogramKatanaUpgradeName,
|
|
80
|
+
NonogramKatanaUpgradeSchema,
|
|
74
81
|
RecurrenceBasis,
|
|
75
82
|
RecurrenceEffect,
|
|
76
83
|
RecurrenceFrequencyType,
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
validateDashboardTask,
|
|
81
|
-
validateDashboardUserConfig,
|
|
82
|
-
validateNonogramKatanaItem,
|
|
83
|
-
validateNonogramKatanaUpgrade,
|
|
84
|
-
validateUser
|
|
84
|
+
RequiredUserIdSchema,
|
|
85
|
+
UserCTOSchema,
|
|
86
|
+
UserSchema
|
|
85
87
|
};
|
|
86
88
|
|
|
87
89
|
// Export TypeScript types where needed
|
|
88
90
|
export type {
|
|
91
|
+
ApiKey,
|
|
92
|
+
BaseDocument,
|
|
93
|
+
BaseDocumentWithType,
|
|
89
94
|
DashboardTagSetting,
|
|
90
95
|
DashboardTagSettings,
|
|
96
|
+
DashboardTask,
|
|
91
97
|
DashboardTaskFilterAndSortResult,
|
|
92
98
|
DashboardTaskFilterSettings,
|
|
93
99
|
DashboardTaskListFilterSettings,
|
|
@@ -97,10 +103,14 @@ export type {
|
|
|
97
103
|
DashboardTaskMap,
|
|
98
104
|
DashboardTaskSortSetting,
|
|
99
105
|
DashboardTaskSortSettings,
|
|
106
|
+
DashboardUserConfig,
|
|
100
107
|
DocumentMap,
|
|
101
|
-
|
|
108
|
+
NonogramKatanaItem,
|
|
109
|
+
NonogramKatanaUpgrade,
|
|
102
110
|
ParentRecurringTaskInfo,
|
|
103
111
|
RecurrenceFrequency,
|
|
104
112
|
RecurrenceInfo,
|
|
113
|
+
RequiredUserId,
|
|
114
|
+
User,
|
|
105
115
|
UserCTO
|
|
106
116
|
};
|
|
@@ -1,12 +1,25 @@
|
|
|
1
|
-
import
|
|
1
|
+
import z from 'zod';
|
|
2
2
|
/**
|
|
3
|
-
* Base
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
* document databases. All document types should extend this class.
|
|
3
|
+
* Base schema for all documents. Provides the common `_id` field required by
|
|
4
|
+
* MongoDB and other document databases. All document schemas should extend
|
|
5
|
+
* this schema.
|
|
7
6
|
*/
|
|
8
|
-
export
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
7
|
+
export declare const BaseDocumentSchema: z.ZodObject<{
|
|
8
|
+
_id: z.ZodPipe<z.ZodDefault<z.ZodUUID>, z.ZodTransform<`${string}-${string}-${string}-${string}-${string}`, string>>;
|
|
9
|
+
}, z.z.core.$strip>;
|
|
10
|
+
/**
|
|
11
|
+
* Base schema for all documents with a `docType` field.
|
|
12
|
+
*/
|
|
13
|
+
export declare const BaseDocumentWithTypeSchema: z.ZodObject<{
|
|
14
|
+
_id: z.ZodPipe<z.ZodDefault<z.ZodUUID>, z.ZodTransform<`${string}-${string}-${string}-${string}-${string}`, string>>;
|
|
15
|
+
docType: z.ZodString;
|
|
16
|
+
}, z.z.core.$strip>;
|
|
17
|
+
/**
|
|
18
|
+
* Base document type for all documents stored in a document database.
|
|
19
|
+
*/
|
|
20
|
+
export type BaseDocument = z.infer<typeof BaseDocumentSchema>;
|
|
21
|
+
/**
|
|
22
|
+
* Base document type with a `docType` field.
|
|
23
|
+
*/
|
|
24
|
+
export type BaseDocumentWithType = z.infer<typeof BaseDocumentWithTypeSchema>;
|
|
12
25
|
//# sourceMappingURL=BaseDocument.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseDocument.d.ts","sourceRoot":"","sources":["../../src/documents/BaseDocument.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"BaseDocument.d.ts","sourceRoot":"","sources":["../../src/documents/BaseDocument.ts"],"names":[],"mappings":"AACA,OAAO,CAAC,MAAM,KAAK,CAAC;AAGpB;;;;GAIG;AACH,eAAO,MAAM,kBAAkB;;mBAM7B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,0BAA0B;;;mBAErC,CAAC;AAEH;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC"}
|
|
@@ -1,12 +1,21 @@
|
|
|
1
|
+
import z from 'zod';
|
|
1
2
|
import DocumentService from '../services/DocumentService.js';
|
|
2
3
|
/**
|
|
3
|
-
* Base
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
* document databases. All document types should extend this class.
|
|
4
|
+
* Base schema for all documents. Provides the common `_id` field required by
|
|
5
|
+
* MongoDB and other document databases. All document schemas should extend
|
|
6
|
+
* this schema.
|
|
7
7
|
*/
|
|
8
|
-
export
|
|
8
|
+
export const BaseDocumentSchema = z.object({
|
|
9
9
|
/** The unique identifier for this document */
|
|
10
|
-
_id
|
|
11
|
-
|
|
10
|
+
_id: z
|
|
11
|
+
.uuidv7()
|
|
12
|
+
.default(() => DocumentService.generateID())
|
|
13
|
+
.transform((val) => val)
|
|
14
|
+
});
|
|
15
|
+
/**
|
|
16
|
+
* Base schema for all documents with a `docType` field.
|
|
17
|
+
*/
|
|
18
|
+
export const BaseDocumentWithTypeSchema = BaseDocumentSchema.extend({
|
|
19
|
+
docType: z.string()
|
|
20
|
+
});
|
|
12
21
|
//# sourceMappingURL=BaseDocument.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseDocument.js","sourceRoot":"","sources":["../../src/documents/BaseDocument.ts"],"names":[],"mappings":"AACA,OAAO,eAAe,MAAM,gCAAgC,CAAC;AAE7D
|
|
1
|
+
{"version":3,"file":"BaseDocument.js","sourceRoot":"","sources":["../../src/documents/BaseDocument.ts"],"names":[],"mappings":"AACA,OAAO,CAAC,MAAM,KAAK,CAAC;AACpB,OAAO,eAAe,MAAM,gCAAgC,CAAC;AAE7D;;;;GAIG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,8CAA8C;IAC9C,GAAG,EAAE,CAAC;SACH,MAAM,EAAE;SACR,OAAO,CAAC,GAAG,EAAE,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC;SAC3C,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAW,CAAC;CACnC,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,kBAAkB,CAAC,MAAM,CAAC;IAClE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;CACpB,CAAC,CAAC"}
|
|
@@ -1,13 +1,33 @@
|
|
|
1
1
|
import type { UUID } from 'crypto';
|
|
2
|
+
import z from 'zod';
|
|
2
3
|
import DocumentService from '../services/DocumentService.js';
|
|
3
4
|
|
|
4
5
|
/**
|
|
5
|
-
* Base
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
* document databases. All document types should extend this class.
|
|
6
|
+
* Base schema for all documents. Provides the common `_id` field required by
|
|
7
|
+
* MongoDB and other document databases. All document schemas should extend
|
|
8
|
+
* this schema.
|
|
9
9
|
*/
|
|
10
|
-
export
|
|
10
|
+
export const BaseDocumentSchema = z.object({
|
|
11
11
|
/** The unique identifier for this document */
|
|
12
|
-
_id:
|
|
13
|
-
|
|
12
|
+
_id: z
|
|
13
|
+
.uuidv7()
|
|
14
|
+
.default(() => DocumentService.generateID())
|
|
15
|
+
.transform((val) => val as UUID)
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Base schema for all documents with a `docType` field.
|
|
20
|
+
*/
|
|
21
|
+
export const BaseDocumentWithTypeSchema = BaseDocumentSchema.extend({
|
|
22
|
+
docType: z.string()
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Base document type for all documents stored in a document database.
|
|
27
|
+
*/
|
|
28
|
+
export type BaseDocument = z.infer<typeof BaseDocumentSchema>;
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Base document type with a `docType` field.
|
|
32
|
+
*/
|
|
33
|
+
export type BaseDocumentWithType = z.infer<typeof BaseDocumentWithTypeSchema>;
|
|
@@ -1,32 +1,15 @@
|
|
|
1
|
-
import
|
|
2
|
-
import RequiredUserId from '../../schemas/required-refs/RequiredUserId.js';
|
|
3
|
-
import type { DocumentValidator } from '../../schemas/validators/DocumentValidator.js';
|
|
4
|
-
import BaseDocument from '../BaseDocument.js';
|
|
1
|
+
import { z } from 'zod';
|
|
5
2
|
/**
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
* @param apiKey - The {@link ApiKey} instance to validate.
|
|
9
|
-
* @returns An object containing the updated document and any validation errors.
|
|
3
|
+
* The schema for {@link ApiKey} documents.
|
|
10
4
|
*/
|
|
11
|
-
export declare const
|
|
5
|
+
export declare const ApiKeySchema: z.ZodObject<{
|
|
6
|
+
_id: z.ZodPipe<z.ZodDefault<z.ZodUUID>, z.ZodTransform<`${string}-${string}-${string}-${string}-${string}`, string>>;
|
|
7
|
+
userId: z.ZodPipe<z.ZodUUID, z.ZodTransform<`${string}-${string}-${string}-${string}-${string}`, string>>;
|
|
8
|
+
key: z.ZodDefault<z.ZodUUID>;
|
|
9
|
+
}, z.core.$strip>;
|
|
12
10
|
/**
|
|
13
11
|
* A document containing an API key for a particular user. This is stored
|
|
14
12
|
* separately from the {@link User} document to enhance security a bit.
|
|
15
13
|
*/
|
|
16
|
-
export
|
|
17
|
-
/**
|
|
18
|
-
* The API key for the user. This is indexed in the DB.
|
|
19
|
-
*/
|
|
20
|
-
key: UUID;
|
|
21
|
-
/**
|
|
22
|
-
* The user ID that this key is for. This field is indexed in the database.
|
|
23
|
-
*/
|
|
24
|
-
userId: UUID;
|
|
25
|
-
/**
|
|
26
|
-
* Constructs a new {@link ApiKey} for the provided user.
|
|
27
|
-
*
|
|
28
|
-
* @param userId - The ID of the user.
|
|
29
|
-
*/
|
|
30
|
-
constructor(userId: UUID);
|
|
31
|
-
}
|
|
14
|
+
export type ApiKey = z.infer<typeof ApiKeySchema>;
|
|
32
15
|
//# sourceMappingURL=ApiKey.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ApiKey.d.ts","sourceRoot":"","sources":["../../../src/documents/common/ApiKey.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ApiKey.d.ts","sourceRoot":"","sources":["../../../src/documents/common/ApiKey.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB;;GAEG;AACH,eAAO,MAAM,YAAY;;;;iBAKvB,CAAC;AAEH;;;GAGG;AACH,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC"}
|
|
@@ -1,42 +1,13 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import DocumentService from '../../services/DocumentService.js';
|
|
5
|
-
import BaseDocument from '../BaseDocument.js';
|
|
1
|
+
import { randomUUID } from 'crypto';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { RequiredUserIdSchema } from '../../schemas/required-refs/RequiredUserId.js';
|
|
6
4
|
/**
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
* @param apiKey - The {@link ApiKey} instance to validate.
|
|
10
|
-
* @returns An object containing the updated document and any validation errors.
|
|
5
|
+
* The schema for {@link ApiKey} documents.
|
|
11
6
|
*/
|
|
12
|
-
export const
|
|
13
|
-
const errors = [];
|
|
14
|
-
const exampleApiKey = new ApiKey(DocumentService.generateID());
|
|
15
|
-
const validate = new Validate(apiKey, errors);
|
|
16
|
-
validate.string('key', exampleApiKey.key);
|
|
17
|
-
return { updatedDoc: apiKey, errors };
|
|
18
|
-
};
|
|
19
|
-
/**
|
|
20
|
-
* A document containing an API key for a particular user. This is stored
|
|
21
|
-
* separately from the {@link User} document to enhance security a bit.
|
|
22
|
-
*/
|
|
23
|
-
export default class ApiKey extends BaseDocument {
|
|
7
|
+
export const ApiKeySchema = RequiredUserIdSchema.extend({
|
|
24
8
|
/**
|
|
25
9
|
* The API key for the user. This is indexed in the DB.
|
|
26
10
|
*/
|
|
27
|
-
key
|
|
28
|
-
|
|
29
|
-
* The user ID that this key is for. This field is indexed in the database.
|
|
30
|
-
*/
|
|
31
|
-
userId;
|
|
32
|
-
/**
|
|
33
|
-
* Constructs a new {@link ApiKey} for the provided user.
|
|
34
|
-
*
|
|
35
|
-
* @param userId - The ID of the user.
|
|
36
|
-
*/
|
|
37
|
-
constructor(userId) {
|
|
38
|
-
super();
|
|
39
|
-
this.userId = userId;
|
|
40
|
-
}
|
|
41
|
-
}
|
|
11
|
+
key: z.uuid().default(() => randomUUID())
|
|
12
|
+
});
|
|
42
13
|
//# sourceMappingURL=ApiKey.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ApiKey.js","sourceRoot":"","sources":["../../../src/documents/common/ApiKey.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ApiKey.js","sourceRoot":"","sources":["../../../src/documents/common/ApiKey.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AACpC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,oBAAoB,EAAE,MAAM,+CAA+C,CAAC;AAErF;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,oBAAoB,CAAC,MAAM,CAAC;IACtD;;OAEG;IACH,GAAG,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,UAAU,EAAE,CAAC;CAC1C,CAAC,CAAC"}
|
|
@@ -1,49 +1,19 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import type { DocumentValidator } from '../../schemas/validators/DocumentValidator.js';
|
|
5
|
-
import Validate from '../../schemas/validators/ValidateUtil.js';
|
|
6
|
-
import DocumentService from '../../services/DocumentService.js';
|
|
7
|
-
import BaseDocument from '../BaseDocument.js';
|
|
1
|
+
import { randomUUID } from 'crypto';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { RequiredUserIdSchema } from '../../schemas/required-refs/RequiredUserId.js';
|
|
8
4
|
|
|
9
5
|
/**
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
* @param apiKey - The {@link ApiKey} instance to validate.
|
|
13
|
-
* @returns An object containing the updated document and any validation errors.
|
|
6
|
+
* The schema for {@link ApiKey} documents.
|
|
14
7
|
*/
|
|
15
|
-
export const
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
return { updatedDoc: apiKey, errors };
|
|
23
|
-
};
|
|
8
|
+
export const ApiKeySchema = RequiredUserIdSchema.extend({
|
|
9
|
+
/**
|
|
10
|
+
* The API key for the user. This is indexed in the DB.
|
|
11
|
+
*/
|
|
12
|
+
key: z.uuid().default(() => randomUUID())
|
|
13
|
+
});
|
|
24
14
|
|
|
25
15
|
/**
|
|
26
16
|
* A document containing an API key for a particular user. This is stored
|
|
27
17
|
* separately from the {@link User} document to enhance security a bit.
|
|
28
18
|
*/
|
|
29
|
-
export
|
|
30
|
-
/**
|
|
31
|
-
* The API key for the user. This is indexed in the DB.
|
|
32
|
-
*/
|
|
33
|
-
key: UUID = crypto.randomUUID();
|
|
34
|
-
|
|
35
|
-
/**
|
|
36
|
-
* The user ID that this key is for. This field is indexed in the database.
|
|
37
|
-
*/
|
|
38
|
-
userId: UUID;
|
|
39
|
-
|
|
40
|
-
/**
|
|
41
|
-
* Constructs a new {@link ApiKey} for the provided user.
|
|
42
|
-
*
|
|
43
|
-
* @param userId - The ID of the user.
|
|
44
|
-
*/
|
|
45
|
-
constructor(userId: UUID) {
|
|
46
|
-
super();
|
|
47
|
-
this.userId = userId;
|
|
48
|
-
}
|
|
49
|
-
}
|
|
19
|
+
export type ApiKey = z.infer<typeof ApiKeySchema>;
|