@vue-skuilder/common 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.
package/CLAUDE.md ADDED
@@ -0,0 +1,56 @@
1
+ # @vue-skuilder/common Package
2
+
3
+ Shared TypeScript library providing common types, interfaces, and utilities used across all vue-skuilder packages.
4
+
5
+ ## Commands
6
+ - Build: `yarn workspace @vue-skuilder/common build` (complex dual-format build)
7
+ - Dev: `yarn workspace @vue-skuilder/common dev` (TypeScript watch mode)
8
+ - Lint: `yarn workspace @vue-skuilder/common lint:fix`
9
+
10
+ ## Build System
11
+ Complex dual-format build supporting both CommonJS and ESM:
12
+
13
+ ### Build Process
14
+ 1. **CJS Build**: `tsc -p tsconfig.cjs.json` → `dist/`
15
+ 2. **ESM Build**: `tsc -p tsconfig.esm.json` → `dist-esm/`
16
+ 3. **File Transformation**: Convert `.js` extensions to `.mjs` for ESM
17
+ 4. **File Renaming**: Rename all `.js` files to `.mjs` in ESM build
18
+ 5. **Merge**: Copy ESM files to `dist/` alongside CJS files
19
+ 6. **Cleanup**: Remove temporary `dist-esm/`
20
+
21
+ ### Package Exports
22
+ - **Types**: `./dist/index.d.ts`
23
+ - **Import (ESM)**: `./dist/index.mjs`
24
+ - **Require (CJS)**: `./dist/index.js`
25
+
26
+ ## Dependencies
27
+ - `moment` - Date/time manipulation (only runtime dependency)
28
+
29
+ ## Package Contents
30
+
31
+ ### Core Types & Interfaces
32
+ - **DataShape**: Core data structure definitions (`interfaces/DataShape.ts`)
33
+ - **FieldDefinition**: Form field type system (`interfaces/FieldDefinition.ts`)
34
+ - **ViewData**: UI data presentation contracts (`interfaces/ViewData.ts`)
35
+ - **Answer Interfaces**: Question/answer type system (`interfaces/AnswerInterfaces.ts`)
36
+
37
+ ### Enums
38
+ - **DataShapeNames**: Standardized data type identifiers (`enums/DataShapeNames.ts`)
39
+ - **FieldType**: Form field type enumeration (`enums/FieldType.ts`)
40
+
41
+ ### Utilities
42
+ - **Field Converters**: Data transformation utilities (`fieldConverters.ts`)
43
+ - **Validators**: Input validation logic (`validators.ts`)
44
+ - **Wire Format**: Serialization helpers (`wire-format.ts`)
45
+ - **ELO System**: Rating algorithm implementation (`elo.ts`)
46
+ - **Course Data**: Course management utilities (`course-data.ts`)
47
+
48
+ ### Bulk Import System
49
+ - **Card Parser**: Content parsing utilities (`bulkImport/cardParser.ts`)
50
+ - **Import Types**: Bulk operation type definitions (`bulkImport/types.ts`)
51
+
52
+ ## Key Design Principles
53
+ - **Zero Framework Dependencies**: Pure TypeScript/JavaScript utilities
54
+ - **Universal Compatibility**: Works in Node.js, browsers, and bundlers
55
+ - **Type Safety**: Full TypeScript coverage with strict mode
56
+ - **Minimal Runtime**: Only essential dependencies (moment.js)
package/dist/db.d.ts CHANGED
@@ -27,6 +27,7 @@ export interface Tag extends SkuilderCourseData {
27
27
  snippet: string;
28
28
  wiki: string;
29
29
  taggedCards: PouchDB.Core.DocumentId[];
30
+ author: string;
30
31
  }
31
32
  export interface TagStub {
32
33
  name: string;
@@ -38,6 +39,7 @@ export interface CardData extends SkuilderCourseData {
38
39
  id_displayable_data: PouchDB.Core.DocumentId[];
39
40
  id_view: PouchDB.Core.DocumentId;
40
41
  elo: CourseElo;
42
+ author: string;
41
43
  }
42
44
  /** A list of populated courses in the DB */
43
45
  export interface CourseListData extends PouchDB.Core.Response {
package/dist/db.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":"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"}
package/dist/db.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"db.js","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":"AAKA,MAAM,CAAN,IAAY,OAUX;AAVD,WAAY,OAAO;IACjB,gDAAqC,CAAA;IACrC,wBAAa,CAAA;IACb,kCAAuB,CAAA;IACvB,oCAAyB,CAAA;IACzB,wBAAa,CAAA;IACb,gCAAqB,CAAA;IACrB,oCAAyB,CAAA;IACzB,4CAAiC,CAAA;IACjC,sBAAW,CAAA;AACb,CAAC,EAVW,OAAO,KAAP,OAAO,QAUlB;AAiED,MAAM,iBAAiB,GAAG,OAAO,CAAC;AAElC,MAAM,UAAU,gBAAgB,CAAC,QAAgB,EAAE,MAAc;IAC/D,OAAO,GAAG,iBAAiB,IAAI,QAAQ,IAAI,MAAM,EAAE,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,EAAU;IAI3C,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC5B,IAAI,KAAK,GAAW,EAAE,CAAC;IACvB,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,qDAAqD,CAAC;IACzF,KAAK;QACH,KAAK,CAAC,CAAC,CAAC,KAAK,iBAAiB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,oCAAoC,iBAAiB,EAAE,CAAC;IAEhG,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,iBAAiB,EAAE,CAAC;QACzD,OAAO;YACL,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;YAClB,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;SACjB,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,KAAK,CAAC,yBAAyB,GAAG,KAAK,CAAC,CAAC;IACrD,CAAC;AACH,CAAC;AAsED,MAAM,UAAU,kBAAkB,CAAC,CAA0B;IAC3D,OAAO,gBAAgB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,CAAa;IAC5C,OAAQ,CAAoB,CAAC,UAAU,KAAK,SAAS,CAAC;AACxD,CAAC"}
1
+ {"version":3,"file":"db.js","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":"AAKA,MAAM,CAAN,IAAY,OAUX;AAVD,WAAY,OAAO;IACjB,gDAAqC,CAAA;IACrC,wBAAa,CAAA;IACb,kCAAuB,CAAA;IACvB,oCAAyB,CAAA;IACzB,wBAAa,CAAA;IACb,gCAAqB,CAAA;IACrB,oCAAyB,CAAA;IACzB,4CAAiC,CAAA;IACjC,sBAAW,CAAA;AACb,CAAC,EAVW,OAAO,KAAP,OAAO,QAUlB;AAmED,MAAM,iBAAiB,GAAG,OAAO,CAAC;AAElC,MAAM,UAAU,gBAAgB,CAAC,QAAgB,EAAE,MAAc;IAC/D,OAAO,GAAG,iBAAiB,IAAI,QAAQ,IAAI,MAAM,EAAE,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,EAAU;IAI3C,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC5B,IAAI,KAAK,GAAW,EAAE,CAAC;IACvB,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,qDAAqD,CAAC;IACzF,KAAK;QACH,KAAK,CAAC,CAAC,CAAC,KAAK,iBAAiB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,oCAAoC,iBAAiB,EAAE,CAAC;IAEhG,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,iBAAiB,EAAE,CAAC;QACzD,OAAO;YACL,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;YAClB,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;SACjB,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,KAAK,CAAC,yBAAyB,GAAG,KAAK,CAAC,CAAC;IACrD,CAAC;AACH,CAAC;AAsED,MAAM,UAAU,kBAAkB,CAAC,CAA0B;IAC3D,OAAO,gBAAgB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,CAAa;IAC5C,OAAQ,CAAoB,CAAC,UAAU,KAAK,SAAS,CAAC;AACxD,CAAC"}
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "publishConfig": {
4
4
  "access": "public"
5
5
  },
6
- "version": "0.1.5",
6
+ "version": "0.1.6",
7
7
  "type": "module",
8
8
  "main": "dist/index.js",
9
9
  "module": "dist/index.mjs",
package/src/db.ts CHANGED
@@ -30,6 +30,7 @@ export interface Tag extends SkuilderCourseData {
30
30
  snippet: string; // 200 char description of the tag
31
31
  wiki: string; // 3000 char md-friendly description
32
32
  taggedCards: PouchDB.Core.DocumentId[];
33
+ author: string;
33
34
  }
34
35
  export interface TagStub {
35
36
  name: string;
@@ -42,6 +43,7 @@ export interface CardData extends SkuilderCourseData {
42
43
  id_displayable_data: PouchDB.Core.DocumentId[];
43
44
  id_view: PouchDB.Core.DocumentId;
44
45
  elo: CourseElo;
46
+ author: string;
45
47
  }
46
48
 
47
49
  /** A list of populated courses in the DB */