@vue-skuilder/db 0.1.5 → 0.1.6

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.
Files changed (55) hide show
  1. package/CLAUDE.md +43 -0
  2. package/dist/core/index.d.mts +5 -5
  3. package/dist/core/index.d.ts +5 -5
  4. package/dist/core/index.js +254 -5701
  5. package/dist/core/index.js.map +1 -1
  6. package/dist/core/index.mjs +225 -5692
  7. package/dist/core/index.mjs.map +1 -1
  8. package/dist/{dataLayerProvider-DRjMZMaf.d.ts → dataLayerProvider-BZmLyBVw.d.mts} +5 -1
  9. package/dist/{dataLayerProvider-B8wquRiB.d.mts → dataLayerProvider-BuntXkCs.d.ts} +5 -1
  10. package/dist/impl/couch/index.d.mts +6 -6
  11. package/dist/impl/couch/index.d.ts +6 -6
  12. package/dist/impl/couch/index.js +215 -5662
  13. package/dist/impl/couch/index.js.map +1 -1
  14. package/dist/impl/couch/index.mjs +182 -5649
  15. package/dist/impl/couch/index.mjs.map +1 -1
  16. package/dist/impl/static/index.d.mts +38 -54
  17. package/dist/impl/static/index.d.ts +38 -54
  18. package/dist/impl/static/index.js +343 -5787
  19. package/dist/impl/static/index.js.map +1 -1
  20. package/dist/impl/static/index.mjs +329 -5792
  21. package/dist/impl/static/index.mjs.map +1 -1
  22. package/dist/index.d.mts +7 -7
  23. package/dist/index.d.ts +7 -7
  24. package/dist/index.js +566 -5664
  25. package/dist/index.js.map +1 -1
  26. package/dist/index.mjs +547 -5665
  27. package/dist/index.mjs.map +1 -1
  28. package/dist/{types-B0GJsjOr.d.ts → types-D6SnlHPm.d.ts} +14 -3
  29. package/dist/{types-DIgj8pP7.d.mts → types-DPRvCrIk.d.mts} +14 -3
  30. package/dist/{types-legacy-CTsJvvxI.d.mts → types-legacy-WPe8CtO-.d.mts} +2 -0
  31. package/dist/{types-legacy-CTsJvvxI.d.ts → types-legacy-WPe8CtO-.d.ts} +2 -0
  32. package/dist/{userDB-ZSwOXiYN.d.mts → userDB-31gsvxyd.d.mts} +9 -2
  33. package/dist/{userDB-C5dcuRZs.d.ts → userDB-D9EuWTp1.d.ts} +9 -2
  34. package/dist/util/packer/index.d.mts +43 -3
  35. package/dist/util/packer/index.d.ts +43 -3
  36. package/dist/util/packer/index.js +241 -36
  37. package/dist/util/packer/index.js.map +1 -1
  38. package/dist/util/packer/index.mjs +241 -36
  39. package/dist/util/packer/index.mjs.map +1 -1
  40. package/package.json +2 -2
  41. package/src/core/interfaces/courseDB.ts +1 -1
  42. package/src/core/interfaces/dataLayerProvider.ts +5 -0
  43. package/src/core/interfaces/userDB.ts +5 -0
  44. package/src/core/types/types-legacy.ts +2 -0
  45. package/src/impl/common/BaseUserDB.ts +59 -1
  46. package/src/impl/couch/PouchDataLayerProvider.ts +4 -0
  47. package/src/impl/couch/courseAPI.ts +31 -16
  48. package/src/impl/couch/courseDB.ts +8 -7
  49. package/src/impl/static/StaticDataLayerProvider.ts +4 -0
  50. package/src/impl/static/StaticDataUnpacker.ts +175 -2
  51. package/src/impl/static/courseDB.ts +18 -0
  52. package/src/impl/static/index.ts +0 -1
  53. package/src/util/packer/CouchDBToStaticPacker.ts +320 -49
  54. package/src/util/packer/types.ts +13 -1
  55. package/src/impl/static/userDB.ts +0 -179
package/CLAUDE.md ADDED
@@ -0,0 +1,43 @@
1
+ # @vue-skuilder/db Package
2
+
3
+ Database abstraction layer providing unified interfaces for CouchDB/PouchDB and static data providers.
4
+
5
+ ## Commands
6
+ - Build: `yarn workspace @vue-skuilder/db build`
7
+ - Dev (watch): `yarn workspace @vue-skuilder/db dev`
8
+ - Lint: `yarn workspace @vue-skuilder/db lint:fix`
9
+ - Type check: `tsc --noEmit` (no dedicated script)
10
+
11
+ ## Build System
12
+ Uses **tsup** for dual CommonJS/ESM output:
13
+ - **ESM**: `dist/index.mjs` (primary)
14
+ - **CommonJS**: `dist/index.js` (Jest compatibility)
15
+ - **Types**: `dist/index.d.ts`
16
+
17
+ ## Package Exports
18
+ Multiple entry points for different use cases:
19
+ - **Main**: Core interfaces and factory
20
+ - **Core**: Core types and interfaces only
21
+ - **Pouch**: PouchDB implementation
22
+ - **Packer**: Static data packing utilities
23
+ - **Static**: Static data provider implementation
24
+
25
+ ## Dependencies
26
+ - `@vue-skuilder/common` - Shared types and utilities
27
+ - `pouchdb` - Client-side database
28
+ - `pouchdb-find` - Query plugin
29
+ - `@nilock2/pouchdb-authentication` - Auth plugin
30
+
31
+ ## Architecture
32
+ - **Interfaces**: Abstract DB layer contracts (`core/interfaces/`)
33
+ - **Implementations**:
34
+ - CouchDB/PouchDB provider (`impl/couch/`)
35
+ - Static data provider (`impl/static/`)
36
+ - **Study System**: Spaced repetition logic (`study/`)
37
+ - **Utilities**: Logging, packing tools (`util/`)
38
+
39
+ ## Key Features
40
+ - **Provider Pattern**: Switchable backend implementations
41
+ - **Dual Export**: Works in both Node.js and browser environments
42
+ - **Type Safety**: Full TypeScript coverage with strict mode
43
+ - **Sync Strategy**: Configurable online/offline data synchronization
@@ -1,8 +1,8 @@
1
- import { c as StudyContentSource, U as UserDBInterface, C as CourseDBInterface, H as ContentNavigationStrategyData, m as StudySessionReviewItem, D as ScheduledCard, l as StudySessionNewItem } from '../userDB-ZSwOXiYN.mjs';
2
- export { y as ActivityRecord, A as AdminDBInterface, h as AssignedCard, e as AssignedContent, g as AssignedCourse, f as AssignedTag, b as ClassroomDBInterface, v as ClassroomRegistration, u as ClassroomRegistrationDesignation, w as ClassroomRegistrationDoc, o as ContentSourceID, q as CourseInfo, z as CourseRegistration, B as CourseRegistrationDoc, a as CoursesDBInterface, d as StudentClassroomDBInterface, i as StudySessionFailedItem, j as StudySessionFailedNewItem, k as StudySessionFailedReviewItem, S as StudySessionItem, T as TeacherClassroomDBInterface, x as UserConfig, s as UserCourseSetting, r as UserCourseSettings, t as UsrCrsDataInterface, p as getStudySource, n as isReview } from '../userDB-ZSwOXiYN.mjs';
3
- export { D as DataLayerProvider } from '../dataLayerProvider-B8wquRiB.mjs';
4
- import { g as CardHistory, C as CardRecord, h as QuestionRecord } from '../types-legacy-CTsJvvxI.mjs';
5
- export { b as CardData, c as CourseListData, e as DataShapeData, d as DisplayableData, D as DocType, F as Field, G as GuestUsername, Q as QuestionData, S as SkuilderCourseData, T as Tag, a as TagStub, f as cardHistoryPrefix, l as log } from '../types-legacy-CTsJvvxI.mjs';
1
+ import { c as StudyContentSource, U as UserDBInterface, C as CourseDBInterface, H as ContentNavigationStrategyData, m as StudySessionReviewItem, D as ScheduledCard, l as StudySessionNewItem } from '../userDB-31gsvxyd.mjs';
2
+ export { y as ActivityRecord, A as AdminDBInterface, h as AssignedCard, e as AssignedContent, g as AssignedCourse, f as AssignedTag, b as ClassroomDBInterface, v as ClassroomRegistration, u as ClassroomRegistrationDesignation, w as ClassroomRegistrationDoc, o as ContentSourceID, q as CourseInfo, z as CourseRegistration, B as CourseRegistrationDoc, a as CoursesDBInterface, d as StudentClassroomDBInterface, i as StudySessionFailedItem, j as StudySessionFailedNewItem, k as StudySessionFailedReviewItem, S as StudySessionItem, T as TeacherClassroomDBInterface, x as UserConfig, s as UserCourseSetting, r as UserCourseSettings, t as UsrCrsDataInterface, p as getStudySource, n as isReview } from '../userDB-31gsvxyd.mjs';
3
+ export { D as DataLayerProvider } from '../dataLayerProvider-BZmLyBVw.mjs';
4
+ import { g as CardHistory, C as CardRecord, h as QuestionRecord } from '../types-legacy-WPe8CtO-.mjs';
5
+ export { b as CardData, c as CourseListData, e as DataShapeData, d as DisplayableData, D as DocType, F as Field, G as GuestUsername, Q as QuestionData, S as SkuilderCourseData, T as Tag, a as TagStub, f as cardHistoryPrefix, l as log } from '../types-legacy-WPe8CtO-.mjs';
6
6
  import { DataShape, ParsedCard } from '@vue-skuilder/common';
7
7
  import 'moment';
8
8
 
@@ -1,8 +1,8 @@
1
- import { c as StudyContentSource, U as UserDBInterface, C as CourseDBInterface, H as ContentNavigationStrategyData, m as StudySessionReviewItem, D as ScheduledCard, l as StudySessionNewItem } from '../userDB-C5dcuRZs.js';
2
- export { y as ActivityRecord, A as AdminDBInterface, h as AssignedCard, e as AssignedContent, g as AssignedCourse, f as AssignedTag, b as ClassroomDBInterface, v as ClassroomRegistration, u as ClassroomRegistrationDesignation, w as ClassroomRegistrationDoc, o as ContentSourceID, q as CourseInfo, z as CourseRegistration, B as CourseRegistrationDoc, a as CoursesDBInterface, d as StudentClassroomDBInterface, i as StudySessionFailedItem, j as StudySessionFailedNewItem, k as StudySessionFailedReviewItem, S as StudySessionItem, T as TeacherClassroomDBInterface, x as UserConfig, s as UserCourseSetting, r as UserCourseSettings, t as UsrCrsDataInterface, p as getStudySource, n as isReview } from '../userDB-C5dcuRZs.js';
3
- export { D as DataLayerProvider } from '../dataLayerProvider-DRjMZMaf.js';
4
- import { g as CardHistory, C as CardRecord, h as QuestionRecord } from '../types-legacy-CTsJvvxI.js';
5
- export { b as CardData, c as CourseListData, e as DataShapeData, d as DisplayableData, D as DocType, F as Field, G as GuestUsername, Q as QuestionData, S as SkuilderCourseData, T as Tag, a as TagStub, f as cardHistoryPrefix, l as log } from '../types-legacy-CTsJvvxI.js';
1
+ import { c as StudyContentSource, U as UserDBInterface, C as CourseDBInterface, H as ContentNavigationStrategyData, m as StudySessionReviewItem, D as ScheduledCard, l as StudySessionNewItem } from '../userDB-D9EuWTp1.js';
2
+ export { y as ActivityRecord, A as AdminDBInterface, h as AssignedCard, e as AssignedContent, g as AssignedCourse, f as AssignedTag, b as ClassroomDBInterface, v as ClassroomRegistration, u as ClassroomRegistrationDesignation, w as ClassroomRegistrationDoc, o as ContentSourceID, q as CourseInfo, z as CourseRegistration, B as CourseRegistrationDoc, a as CoursesDBInterface, d as StudentClassroomDBInterface, i as StudySessionFailedItem, j as StudySessionFailedNewItem, k as StudySessionFailedReviewItem, S as StudySessionItem, T as TeacherClassroomDBInterface, x as UserConfig, s as UserCourseSetting, r as UserCourseSettings, t as UsrCrsDataInterface, p as getStudySource, n as isReview } from '../userDB-D9EuWTp1.js';
3
+ export { D as DataLayerProvider } from '../dataLayerProvider-BuntXkCs.js';
4
+ import { g as CardHistory, C as CardRecord, h as QuestionRecord } from '../types-legacy-WPe8CtO-.js';
5
+ export { b as CardData, c as CourseListData, e as DataShapeData, d as DisplayableData, D as DocType, F as Field, G as GuestUsername, Q as QuestionData, S as SkuilderCourseData, T as Tag, a as TagStub, f as cardHistoryPrefix, l as log } from '../types-legacy-WPe8CtO-.js';
6
6
  import { DataShape, ParsedCard } from '@vue-skuilder/common';
7
7
  import 'moment';
8
8