@speakableio/core 0.1.106 → 1.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/dist/analytics-Bj2i88Zk.d.ts +89 -0
- package/dist/analytics.d.mts +88 -0
- package/dist/analytics.js +329 -25
- package/dist/analytics.js.map +1 -1
- package/dist/{assignment.model-DLMWAp0Y.d.ts → assignment.model-BRS4h8gX.d.ts} +1 -1
- package/dist/assignment.model-Bc61gBHl.d.ts +302 -0
- package/dist/assignment.model-Bm9gE2YK.d.ts +301 -0
- package/dist/const.d.ts +3 -73
- package/dist/const.js +355 -45
- package/dist/const.js.map +1 -1
- package/dist/everything.d.ts +1348 -0
- package/dist/everything.js +3509 -0
- package/dist/everything.js.map +1 -0
- package/dist/hooks.d.ts +621 -4
- package/dist/hooks.js +1745 -61
- package/dist/hooks.js.map +1 -1
- package/dist/index.native.d.mts +2836 -0
- package/dist/index.native.d.ts +2272 -27
- package/dist/index.native.js +2995 -166
- package/dist/index.native.js.map +1 -1
- package/dist/index.native.mjs +3322 -0
- package/dist/index.native.mjs.map +1 -0
- package/dist/index.web-DNYJV_41.d.ts +469 -0
- package/dist/index.web.d.mts +2836 -0
- package/dist/index.web.d.ts +68 -2
- package/dist/index.web.js +3244 -12
- package/dist/index.web.js.map +1 -1
- package/dist/models.d.ts +2 -2
- package/dist/models.js +43 -8
- package/dist/models.js.map +1 -1
- package/dist/{notification.constants-Da4-_0kX.d.ts → notification.constants-B72fb734.d.ts} +1 -1
- package/dist/repos.d.ts +1 -1
- package/dist/repos.js +440 -13
- package/dist/repos.js.map +1 -1
- package/dist/speakable-plans-BjWWEWrQ.d.ts +72 -0
- package/dist/speakable-plans-DR1cQ6IK.d.ts +92 -0
- package/dist/speakable-plans-Dq9nRefI.d.ts +72 -0
- package/dist/utils.d.ts +84 -2
- package/dist/utils.js +481 -15
- package/dist/utils.js.map +1 -1
- package/dist/web.constants-qmx4rGyO.d.ts +26 -0
- package/package.json +11 -62
- package/dist/chunk-233VJDUF.js +0 -149
- package/dist/chunk-233VJDUF.js.map +0 -1
- package/dist/chunk-2CRI5MJP.js +0 -225
- package/dist/chunk-2CRI5MJP.js.map +0 -1
- package/dist/chunk-AWVUNWML.js +0 -141
- package/dist/chunk-AWVUNWML.js.map +0 -1
- package/dist/chunk-CJ5JXKII.js +0 -129
- package/dist/chunk-CJ5JXKII.js.map +0 -1
- package/dist/chunk-EEBMPASA.js +0 -21
- package/dist/chunk-EEBMPASA.js.map +0 -1
- package/dist/chunk-H5XNOXRC.js +0 -11
- package/dist/chunk-H5XNOXRC.js.map +0 -1
- package/dist/chunk-LZG3MTSH.js +0 -53
- package/dist/chunk-LZG3MTSH.js.map +0 -1
- package/dist/chunk-OLSTHM2U.js +0 -154
- package/dist/chunk-OLSTHM2U.js.map +0 -1
- package/dist/chunk-TQGDTKTE.js +0 -13
- package/dist/chunk-TQGDTKTE.js.map +0 -1
- package/dist/chunk-YKUMIPSO.js +0 -212
- package/dist/chunk-YKUMIPSO.js.map +0 -1
- package/dist/chunk-YMJRCINF.js +0 -68
- package/dist/chunk-YMJRCINF.js.map +0 -1
- package/dist/chunk-YO34TZYN.js +0 -28
- package/dist/chunk-YO34TZYN.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/domains/assignment/assignment.constants.ts","../src/domains/cards/card.constants.ts"],"sourcesContent":["export enum AssignmentAnalyticsType {\n Macro = 'macro',\n Gradebook = 'gradebook',\n Cards = 'cards',\n Student = 'student',\n StudentSummary = 'student_summary',\n All = 'all',\n}\n\nexport const ASSIGNMENT_ANALYTICS_TYPES = [\n AssignmentAnalyticsType.Macro,\n AssignmentAnalyticsType.Gradebook,\n AssignmentAnalyticsType.Cards,\n AssignmentAnalyticsType.Student,\n AssignmentAnalyticsType.StudentSummary,\n]\n\nconst ASSIGNMENTS_COLLECTION = 'assignments'\nconst ANALYTICS_SUBCOLLECTION = 'analytics'\nconst SCORES_SUBCOLLECTION = 'scores'\n\nexport type RefsAssignmentFiresotre =\n `${typeof ASSIGNMENTS_COLLECTION}/${string}${`/${typeof ANALYTICS_SUBCOLLECTION}/${string}` | `/${typeof SCORES_SUBCOLLECTION}/${string}` | ''}`\n\nexport const refsAssignmentFiresotre = {\n allAssignments: () => ASSIGNMENTS_COLLECTION,\n assignment: (params: { id: string }) => `${ASSIGNMENTS_COLLECTION}/${params.id}` as const,\n assignmentAllAnalytics: (params: { id: string }) =>\n `${ASSIGNMENTS_COLLECTION}/${params.id}/${ANALYTICS_SUBCOLLECTION}` as const,\n assignmentAnalytics: (params: { id: string; type: string }) =>\n `${ASSIGNMENTS_COLLECTION}/${params.id}/${ANALYTICS_SUBCOLLECTION}/${params.type}` as const,\n assignmentScores: (params: { id: string; userId: string }) =>\n `${ASSIGNMENTS_COLLECTION}/${params.id}/${SCORES_SUBCOLLECTION}/${params.userId}` as const,\n}\n","/* eslint-disable @typescript-eslint/naming-convention */\n\nexport enum FeedbackTypesCard {\n SuggestedResponse = 'suggested_response',\n Wida = 'wida',\n GrammarInsights = 'grammar_insights',\n Actfl = 'actfl',\n ProficiencyLevel = 'proficiency_level',\n}\n\nexport enum LeniencyCard {\n CONFIDENCE = 'confidence',\n EASY = 'easy',\n NORMAL = 'normal',\n HARD = 'hard',\n}\n\nexport const LENIENCY_OPTIONS = [\n {\n label: 'Build Confidence - most lenient',\n value: LeniencyCard.CONFIDENCE,\n },\n {\n label: 'Very Lenient',\n value: LeniencyCard.EASY,\n },\n {\n label: 'Normal',\n value: LeniencyCard.NORMAL,\n },\n {\n label: 'No leniency - most strict',\n value: LeniencyCard.HARD,\n },\n]\n\nexport const STUDENT_LEVELS_OPTIONS = [\n {\n label: 'Beginner',\n description: 'Beginner Level: Just starting out. Can say a few basic words and phrases.',\n value: 'beginner',\n },\n {\n label: 'Elementary',\n description:\n 'Elementary Level: Can understand simple sentences and have very basic conversations.',\n value: 'elementary',\n },\n {\n label: 'Intermediate',\n description: 'Intermediate Level: Can talk about everyday topics and handle common situations.',\n value: 'intermediate',\n },\n {\n label: 'Advanced',\n description: 'Advanced Level: Can speak and understand with ease, and explain ideas clearly.',\n value: 'advanced',\n },\n {\n label: 'Fluent',\n description:\n 'Fluent Level: Speaks naturally and easily. Can use the language in work or school settings.',\n value: 'fluent',\n },\n {\n label: 'Native-like',\n description:\n 'Native-like Level: Understands and speaks like a native. Can discuss complex ideas accurately.',\n value: 'nativeLike',\n },\n]\n\nexport const BASE_RESPOND_FIELD_VALUES = {\n title: '',\n allowRetries: true,\n respondTime: 180,\n maxCharacters: 1000,\n}\n\nexport const BASE_REPEAT_FIELD_VALUES = {\n repeat: 1,\n}\n\nexport const BASE_MULTIPLE_CHOICE_FIELD_VALUES = {\n MCQType: 'single',\n answer: ['A'],\n choices: [\n { option: 'A', value: 'Option A' },\n { option: 'B', value: 'Option B' },\n { option: 'C', value: 'Option C' },\n ],\n}\n\nexport enum VerificationCardStatus {\n VERIFIED = 'VERIFIED',\n WARNING = 'WARNING',\n NOT_RECOMMENDED = 'NOT_RECOMMENDED',\n NOT_WORKING = 'NOT_WORKING',\n NOT_CHECKED = 'NOT_CHECKED',\n}\n\nconst CARDS_COLLECTION = 'flashcards'\n\nexport type RefsCardsFiresotre = `${typeof CARDS_COLLECTION}/${string}`\n\nexport const refsCardsFiresotre = {\n allCards: CARDS_COLLECTION,\n card: (id: string) => `${CARDS_COLLECTION}/${id}` as const,\n}\n"],"mappings":"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","names":["AssignmentAnalyticsType","FeedbackTypesCard","LeniencyCard","VerificationCardStatus"]}
|
package/dist/chunk-CJ5JXKII.js
DELETED
|
@@ -1,129 +0,0 @@
|
|
|
1
|
-
// src/lib/firebase/api.ts
|
|
2
|
-
var FirebaseAPI = class _FirebaseAPI {
|
|
3
|
-
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
4
|
-
constructor() {
|
|
5
|
-
this.config = null;
|
|
6
|
-
}
|
|
7
|
-
static getInstance() {
|
|
8
|
-
if (!_FirebaseAPI.instance) {
|
|
9
|
-
_FirebaseAPI.instance = new _FirebaseAPI();
|
|
10
|
-
}
|
|
11
|
-
return _FirebaseAPI.instance;
|
|
12
|
-
}
|
|
13
|
-
initialize(config) {
|
|
14
|
-
this.config = config;
|
|
15
|
-
}
|
|
16
|
-
get db() {
|
|
17
|
-
if (!this.config) throw new Error("Firebase API not initialized");
|
|
18
|
-
return this.config.db;
|
|
19
|
-
}
|
|
20
|
-
get helpers() {
|
|
21
|
-
if (!this.config) throw new Error("Firebase API not initialized");
|
|
22
|
-
return this.config.helpers;
|
|
23
|
-
}
|
|
24
|
-
get httpsCallable() {
|
|
25
|
-
var _a;
|
|
26
|
-
return (_a = this.config) == null ? void 0 : _a.httpsCallable;
|
|
27
|
-
}
|
|
28
|
-
logEvent(name, data) {
|
|
29
|
-
var _a;
|
|
30
|
-
(_a = this.config) == null ? void 0 : _a.logEvent(name, data);
|
|
31
|
-
}
|
|
32
|
-
accessQueryConstraints() {
|
|
33
|
-
const { query, orderBy, limit, startAt, startAfter, endAt, endBefore, where, increment } = this.helpers;
|
|
34
|
-
return {
|
|
35
|
-
query,
|
|
36
|
-
orderBy,
|
|
37
|
-
limit,
|
|
38
|
-
startAt,
|
|
39
|
-
startAfter,
|
|
40
|
-
endAt,
|
|
41
|
-
endBefore,
|
|
42
|
-
where,
|
|
43
|
-
increment
|
|
44
|
-
};
|
|
45
|
-
}
|
|
46
|
-
accessHelpers() {
|
|
47
|
-
const { doc, collection, writeBatch, serverTimestamp, setDoc } = this.helpers;
|
|
48
|
-
return {
|
|
49
|
-
doc: (path) => doc(this.db, path),
|
|
50
|
-
collection: (path) => collection(this.db, path),
|
|
51
|
-
writeBatch: () => writeBatch(this.db),
|
|
52
|
-
serverTimestamp,
|
|
53
|
-
setDoc
|
|
54
|
-
};
|
|
55
|
-
}
|
|
56
|
-
async getDoc(path) {
|
|
57
|
-
const { getDoc, doc } = this.helpers;
|
|
58
|
-
const docRef = doc(this.db, path);
|
|
59
|
-
const docSnap = await getDoc(docRef);
|
|
60
|
-
const data = docSnap.exists() ? {
|
|
61
|
-
...docSnap.data(),
|
|
62
|
-
id: docSnap.id
|
|
63
|
-
} : null;
|
|
64
|
-
return {
|
|
65
|
-
id: docSnap.id,
|
|
66
|
-
data
|
|
67
|
-
};
|
|
68
|
-
}
|
|
69
|
-
async getDocs(path, ...queryConstraints) {
|
|
70
|
-
const { getDocs, query, collection } = this.helpers;
|
|
71
|
-
const collectionRef = collection(this.db, path);
|
|
72
|
-
const q = queryConstraints.length > 0 ? query(collectionRef, ...queryConstraints) : collectionRef;
|
|
73
|
-
const querySnapshot = await getDocs(q);
|
|
74
|
-
const data = querySnapshot.docs.map((doc) => ({
|
|
75
|
-
data: doc.data(),
|
|
76
|
-
id: doc.id
|
|
77
|
-
}));
|
|
78
|
-
return {
|
|
79
|
-
data,
|
|
80
|
-
querySnapshot,
|
|
81
|
-
empty: querySnapshot.empty
|
|
82
|
-
};
|
|
83
|
-
}
|
|
84
|
-
async addDoc(path, data) {
|
|
85
|
-
const { addDoc, collection } = this.helpers;
|
|
86
|
-
const collectionRef = collection(this.db, path);
|
|
87
|
-
const docRef = await addDoc(collectionRef, data);
|
|
88
|
-
return {
|
|
89
|
-
...data,
|
|
90
|
-
id: docRef.id
|
|
91
|
-
};
|
|
92
|
-
}
|
|
93
|
-
async setDoc(path, data, options = {}) {
|
|
94
|
-
const { setDoc, doc } = this.helpers;
|
|
95
|
-
const docRef = doc(this.db, path);
|
|
96
|
-
await setDoc(docRef, data, options);
|
|
97
|
-
}
|
|
98
|
-
async updateDoc(path, data) {
|
|
99
|
-
const { updateDoc, doc } = this.helpers;
|
|
100
|
-
const docRef = doc(this.db, path);
|
|
101
|
-
await updateDoc(docRef, data);
|
|
102
|
-
}
|
|
103
|
-
async deleteDoc(path) {
|
|
104
|
-
const { deleteDoc, doc } = this.helpers;
|
|
105
|
-
const docRef = doc(this.db, path);
|
|
106
|
-
await deleteDoc(docRef);
|
|
107
|
-
}
|
|
108
|
-
async runTransaction(updateFunction) {
|
|
109
|
-
const { runTransaction } = this.helpers;
|
|
110
|
-
return runTransaction(this.db, updateFunction);
|
|
111
|
-
}
|
|
112
|
-
async runBatch(operations) {
|
|
113
|
-
const { writeBatch } = this.helpers;
|
|
114
|
-
const batch = writeBatch(this.db);
|
|
115
|
-
await Promise.all(operations.map((op) => op()));
|
|
116
|
-
await batch.commit();
|
|
117
|
-
}
|
|
118
|
-
writeBatch() {
|
|
119
|
-
const { writeBatch } = this.helpers;
|
|
120
|
-
const batch = writeBatch(this.db);
|
|
121
|
-
return batch;
|
|
122
|
-
}
|
|
123
|
-
};
|
|
124
|
-
var api = FirebaseAPI.getInstance();
|
|
125
|
-
|
|
126
|
-
export {
|
|
127
|
-
api
|
|
128
|
-
};
|
|
129
|
-
//# sourceMappingURL=chunk-CJ5JXKII.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/lib/firebase/api.ts"],"sourcesContent":["import { type CallableFunction, type FirestoreHelpers } from '@core/types/firebase.types'\nimport {\n type SetOptions,\n type DocumentData,\n type QueryConstraint,\n type WithFieldValue,\n type Firestore,\n} from 'firebase/firestore'\n\ninterface FirebaseConfig {\n db: Firestore\n helpers: FirestoreHelpers\n httpsCallable: (name: string) => CallableFunction\n logEvent: (name: string, data: any) => void\n}\n\ntype FirebasePath = string\n\nexport class FirebaseAPI {\n private static instance: FirebaseAPI\n private config: FirebaseConfig | null = null\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n private constructor() {\n // Private constructor for singleton pattern\n }\n\n static getInstance(): FirebaseAPI {\n if (!FirebaseAPI.instance) {\n FirebaseAPI.instance = new FirebaseAPI()\n }\n\n return FirebaseAPI.instance\n }\n\n initialize(config: FirebaseConfig) {\n this.config = config\n }\n\n get db() {\n if (!this.config) throw new Error('Firebase API not initialized')\n\n return this.config.db\n }\n\n get helpers() {\n if (!this.config) throw new Error('Firebase API not initialized')\n\n return this.config.helpers\n }\n\n get httpsCallable() {\n return this.config?.httpsCallable\n }\n\n logEvent(name: string, data: any) {\n this.config?.logEvent(name, data)\n }\n\n accessQueryConstraints() {\n const { query, orderBy, limit, startAt, startAfter, endAt, endBefore, where, increment } =\n this.helpers\n\n return {\n query,\n orderBy,\n limit,\n startAt,\n startAfter,\n endAt,\n endBefore,\n where,\n increment,\n }\n }\n\n accessHelpers() {\n const { doc, collection, writeBatch, serverTimestamp, setDoc } = this.helpers\n\n return {\n doc: (path: FirebasePath) => doc(this.db, path),\n collection: (path: FirebasePath) => collection(this.db, path),\n writeBatch: () => writeBatch(this.db),\n serverTimestamp: serverTimestamp,\n setDoc: setDoc,\n }\n }\n\n async getDoc<T>(path: FirebasePath) {\n const { getDoc, doc } = this.helpers\n\n const docRef = doc(this.db, path)\n const docSnap = await getDoc(docRef)\n\n const data = docSnap.exists()\n ? ({\n ...docSnap.data(),\n id: docSnap.id,\n } as T)\n : null\n\n return {\n id: docSnap.id,\n data,\n }\n }\n\n async getDocs<T>(path: FirebasePath, ...queryConstraints: QueryConstraint[]) {\n const { getDocs, query, collection } = this.helpers\n const collectionRef = collection(this.db, path)\n const q =\n queryConstraints.length > 0 ? query(collectionRef, ...queryConstraints) : collectionRef\n\n const querySnapshot = await getDocs(q)\n\n const data = querySnapshot.docs.map(doc => ({\n data: doc.data() as T,\n id: doc.id,\n }))\n\n return {\n data: data as unknown as (T & {\n id: string\n })[],\n querySnapshot,\n empty: querySnapshot.empty,\n }\n }\n\n async addDoc<T extends WithFieldValue<DocumentData>>(\n path: FirebasePath,\n data: T,\n ): Promise<{ id: string } & T> {\n const { addDoc, collection } = this.helpers\n const collectionRef = collection(this.db, path)\n const docRef = await addDoc(collectionRef, data)\n\n return {\n ...data,\n id: docRef.id,\n }\n }\n\n async setDoc<T extends WithFieldValue<DocumentData>>(\n path: FirebasePath,\n data: T,\n options: SetOptions = {},\n ): Promise<void> {\n const { setDoc, doc } = this.helpers\n const docRef = doc(this.db, path)\n\n await setDoc(docRef, data, options)\n }\n\n async updateDoc(path: FirebasePath, data: any): Promise<void> {\n const { updateDoc, doc } = this.helpers\n\n const docRef = doc(this.db, path)\n\n await updateDoc(docRef, data)\n }\n\n async deleteDoc(path: FirebasePath): Promise<void> {\n const { deleteDoc, doc } = this.helpers\n const docRef = doc(this.db, path)\n\n await deleteDoc(docRef)\n }\n\n async runTransaction<T>(updateFunction: (transaction: any) => Promise<T>): Promise<T> {\n const { runTransaction } = this.helpers\n\n return runTransaction(this.db, updateFunction)\n }\n\n async runBatch(operations: (() => Promise<void>)[]): Promise<void> {\n const { writeBatch } = this.helpers\n const batch = writeBatch(this.db)\n\n await Promise.all(operations.map(op => op()))\n await batch.commit()\n }\n\n writeBatch() {\n const { writeBatch } = this.helpers\n\n const batch = writeBatch(this.db)\n\n return batch\n }\n}\n\nexport const api = FirebaseAPI.getInstance()\n"],"mappings":"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","names":[]}
|
package/dist/chunk-EEBMPASA.js
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
withErrorHandler
|
|
3
|
-
} from "./chunk-233VJDUF.js";
|
|
4
|
-
import {
|
|
5
|
-
refsSetsFirestore
|
|
6
|
-
} from "./chunk-H5XNOXRC.js";
|
|
7
|
-
import {
|
|
8
|
-
api
|
|
9
|
-
} from "./chunk-CJ5JXKII.js";
|
|
10
|
-
|
|
11
|
-
// src/domains/sets/services/get-set.service.ts
|
|
12
|
-
async function _getSet({ setId }) {
|
|
13
|
-
const response = await api.getDoc(refsSetsFirestore.set(setId));
|
|
14
|
-
return response.data;
|
|
15
|
-
}
|
|
16
|
-
var getSet = withErrorHandler(_getSet, "getSet");
|
|
17
|
-
|
|
18
|
-
export {
|
|
19
|
-
getSet
|
|
20
|
-
};
|
|
21
|
-
//# sourceMappingURL=chunk-EEBMPASA.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/domains/sets/services/get-set.service.ts"],"sourcesContent":["import { api } from '@core/lib/firebase/api'\nimport { withErrorHandler } from '@core/utils/error-handler'\n\nimport { refsSetsFirestore } from '../set.constants'\nimport { type SetWithId } from '../set.model'\n\nasync function _getSet({ setId }: { setId: string }) {\n const response = await api.getDoc<SetWithId>(refsSetsFirestore.set(setId))\n\n return response.data\n}\n\nexport const getSet = withErrorHandler(_getSet, 'getSet')\n"],"mappings":";;;;;;;;;;;AAMA,eAAe,QAAQ,EAAE,MAAM,GAAsB;AACnD,QAAM,WAAW,MAAM,IAAI,OAAkB,kBAAkB,IAAI,KAAK,CAAC;AAEzE,SAAO,SAAS;AAClB;AAEO,IAAM,SAAS,iBAAiB,SAAS,QAAQ;","names":[]}
|
package/dist/chunk-H5XNOXRC.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/domains/sets/set.constants.ts"],"sourcesContent":["const SETS_COLLECTION = 'sets'\n\nexport type RefsSetsFirestore = `${typeof SETS_COLLECTION}/${string}`\n\nexport const refsSetsFirestore = {\n allSets: SETS_COLLECTION,\n set: (id: string) => `${SETS_COLLECTION}/${id}` as const,\n}\n"],"mappings":";AAAA,IAAM,kBAAkB;AAIjB,IAAM,oBAAoB;AAAA,EAC/B,SAAS;AAAA,EACT,KAAK,CAAC,OAAe,GAAG,eAAe,IAAI,EAAE;AAC/C;","names":[]}
|
package/dist/chunk-LZG3MTSH.js
DELETED
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
// src/domains/cards/card.model.ts
|
|
2
|
-
var ActivityPageType = /* @__PURE__ */ ((ActivityPageType2) => {
|
|
3
|
-
ActivityPageType2["READ_REPEAT"] = "READ_REPEAT";
|
|
4
|
-
ActivityPageType2["VIDEO"] = "VIDEO";
|
|
5
|
-
ActivityPageType2["TEXT"] = "TEXT";
|
|
6
|
-
ActivityPageType2["READ_RESPOND"] = "READ_RESPOND";
|
|
7
|
-
ActivityPageType2["FREE_RESPONSE"] = "FREE_RESPONSE";
|
|
8
|
-
ActivityPageType2["REPEAT"] = "REPEAT";
|
|
9
|
-
ActivityPageType2["RESPOND"] = "RESPOND";
|
|
10
|
-
ActivityPageType2["RESPOND_WRITE"] = "RESPOND_WRITE";
|
|
11
|
-
ActivityPageType2["TEXT_TO_SPEECH"] = "TEXT_TO_SPEECH";
|
|
12
|
-
ActivityPageType2["MULTIPLE_CHOICE"] = "MULTIPLE_CHOICE";
|
|
13
|
-
ActivityPageType2["PODCAST"] = "PODCAST";
|
|
14
|
-
ActivityPageType2["MEDIA_PAGE"] = "MEDIA_PAGE";
|
|
15
|
-
ActivityPageType2["WRITE"] = "WRITE";
|
|
16
|
-
ActivityPageType2["SHORT_ANSWER"] = "SHORT_ANSWER";
|
|
17
|
-
ActivityPageType2["SHORT_STORY"] = "SHORT_STORY";
|
|
18
|
-
ActivityPageType2["SPEAK"] = "SPEAK";
|
|
19
|
-
ActivityPageType2["CONVERSATION"] = "CONVERSATION";
|
|
20
|
-
ActivityPageType2["CONVERSATION_WRITE"] = "CONVERSATION_WRITE";
|
|
21
|
-
ActivityPageType2["DIALOGUE"] = "DIALOGUE";
|
|
22
|
-
ActivityPageType2["INSTRUCTION"] = "INSTRUCTION";
|
|
23
|
-
ActivityPageType2["LISTEN"] = "LISTEN";
|
|
24
|
-
ActivityPageType2["READ"] = "READ";
|
|
25
|
-
ActivityPageType2["ANSWER"] = "ANSWER";
|
|
26
|
-
return ActivityPageType2;
|
|
27
|
-
})(ActivityPageType || {});
|
|
28
|
-
var RESPOND_PAGE_ACTIVITY_TYPES = [
|
|
29
|
-
"READ_RESPOND" /* READ_RESPOND */,
|
|
30
|
-
"RESPOND" /* RESPOND */,
|
|
31
|
-
"RESPOND_WRITE" /* RESPOND_WRITE */,
|
|
32
|
-
"FREE_RESPONSE" /* FREE_RESPONSE */
|
|
33
|
-
];
|
|
34
|
-
var MULTIPLE_CHOICE_PAGE_ACTIVITY_TYPES = ["MULTIPLE_CHOICE" /* MULTIPLE_CHOICE */];
|
|
35
|
-
var REPEAT_PAGE_ACTIVITY_TYPES = ["READ_REPEAT" /* READ_REPEAT */, "REPEAT" /* REPEAT */];
|
|
36
|
-
var RESPOND_WRITE_PAGE_ACTIVITY_TYPES = [
|
|
37
|
-
"RESPOND_WRITE" /* RESPOND_WRITE */,
|
|
38
|
-
"FREE_RESPONSE" /* FREE_RESPONSE */
|
|
39
|
-
];
|
|
40
|
-
var RESPOND_AUDIO_PAGE_ACTIVITY_TYPES = [
|
|
41
|
-
"RESPOND" /* RESPOND */,
|
|
42
|
-
"READ_RESPOND" /* READ_RESPOND */
|
|
43
|
-
];
|
|
44
|
-
|
|
45
|
-
export {
|
|
46
|
-
ActivityPageType,
|
|
47
|
-
RESPOND_PAGE_ACTIVITY_TYPES,
|
|
48
|
-
MULTIPLE_CHOICE_PAGE_ACTIVITY_TYPES,
|
|
49
|
-
REPEAT_PAGE_ACTIVITY_TYPES,
|
|
50
|
-
RESPOND_WRITE_PAGE_ACTIVITY_TYPES,
|
|
51
|
-
RESPOND_AUDIO_PAGE_ACTIVITY_TYPES
|
|
52
|
-
};
|
|
53
|
-
//# sourceMappingURL=chunk-LZG3MTSH.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/domains/cards/card.model.ts"],"sourcesContent":["import { type VerificationCardStatus } from './card.constants'\n\n/* eslint-disable @typescript-eslint/naming-convention */\nexport interface PageActivityWithId extends PageActivity {\n id: string\n}\n\nexport interface PageActivity {\n owners: string[]\n checked?: boolean\n completed?: boolean\n media_area_id?: string | null\n media_area_layout?: 'left' | 'right' | null\n score?: number\n verificationStatus?: VerificationCardStatus\n native_text?: string\n repeat?: number\n language?: string | null\n image?: {\n path?: string | null\n url?: string\n }\n audio?: {\n path?: string | null\n url?: string\n } | null\n notes?: string\n difficulty?: string\n default_language?: string\n target_text?: string\n type: ActivityPageType\n grading_criteria?: string\n scoring_type?: string\n grading_method?: 'simple' | 'rubric' | 'manual' | 'standards_based'\n feedback_types?: string[]\n rubricId?: string\n prompt?: string\n title?: string\n passing_score?: number\n maxCharacters?: number\n answer?: string[]\n choices?: {\n value: string\n option: string\n }[]\n MCQType?: string\n multipleAttemptsAllowed?: boolean\n allowRetries?: boolean\n question?: string\n respondTime?: number\n hidePrompt?: boolean\n videoUrl?: string\n link?: string\n text?: string\n isListenAloud?: boolean\n embedCode?: string\n attempt?: number\n correct?: number\n autoGrade?: boolean\n points?: number\n shuffle?: boolean\n translation?: string\n includeAIContext?: boolean\n media_area_context_ref?: string | null\n standardId?: string\n target_proficiency_level?: string\n allowTTS?: boolean\n feedback_language?: string | null\n correct_answer?: string | null\n limit_attempts?: boolean\n max_attempts?: number\n rich_text?: string\n}\n\nexport enum ActivityPageType {\n // DEFAULT = 'READ_REPEAT',\n READ_REPEAT = 'READ_REPEAT',\n VIDEO = 'VIDEO',\n TEXT = 'TEXT',\n READ_RESPOND = 'READ_RESPOND',\n FREE_RESPONSE = 'FREE_RESPONSE',\n REPEAT = 'REPEAT',\n RESPOND = 'RESPOND',\n RESPOND_WRITE = 'RESPOND_WRITE',\n TEXT_TO_SPEECH = 'TEXT_TO_SPEECH',\n MULTIPLE_CHOICE = 'MULTIPLE_CHOICE',\n PODCAST = 'PODCAST',\n MEDIA_PAGE = 'MEDIA_PAGE',\n WRITE = 'WRITE',\n SHORT_ANSWER = 'SHORT_ANSWER',\n SHORT_STORY = 'SHORT_STORY',\n SPEAK = 'SPEAK',\n CONVERSATION = 'CONVERSATION',\n CONVERSATION_WRITE = 'CONVERSATION_WRITE',\n DIALOGUE = 'DIALOGUE',\n INSTRUCTION = 'INSTRUCTION',\n LISTEN = 'LISTEN',\n READ = 'READ',\n ANSWER = 'ANSWER',\n}\n\nexport const RESPOND_PAGE_ACTIVITY_TYPES = [\n ActivityPageType.READ_RESPOND,\n ActivityPageType.RESPOND,\n ActivityPageType.RESPOND_WRITE,\n ActivityPageType.FREE_RESPONSE,\n]\n\nexport const MULTIPLE_CHOICE_PAGE_ACTIVITY_TYPES = [ActivityPageType.MULTIPLE_CHOICE]\n\nexport const REPEAT_PAGE_ACTIVITY_TYPES = [ActivityPageType.READ_REPEAT, ActivityPageType.REPEAT]\n\nexport const RESPOND_WRITE_PAGE_ACTIVITY_TYPES = [\n ActivityPageType.RESPOND_WRITE,\n ActivityPageType.FREE_RESPONSE,\n]\n\nexport const RESPOND_AUDIO_PAGE_ACTIVITY_TYPES = [\n ActivityPageType.RESPOND,\n ActivityPageType.READ_RESPOND,\n]\n"],"mappings":";AA0EO,IAAK,mBAAL,kBAAKA,sBAAL;AAEL,EAAAA,kBAAA,iBAAc;AACd,EAAAA,kBAAA,WAAQ;AACR,EAAAA,kBAAA,UAAO;AACP,EAAAA,kBAAA,kBAAe;AACf,EAAAA,kBAAA,mBAAgB;AAChB,EAAAA,kBAAA,YAAS;AACT,EAAAA,kBAAA,aAAU;AACV,EAAAA,kBAAA,mBAAgB;AAChB,EAAAA,kBAAA,oBAAiB;AACjB,EAAAA,kBAAA,qBAAkB;AAClB,EAAAA,kBAAA,aAAU;AACV,EAAAA,kBAAA,gBAAa;AACb,EAAAA,kBAAA,WAAQ;AACR,EAAAA,kBAAA,kBAAe;AACf,EAAAA,kBAAA,iBAAc;AACd,EAAAA,kBAAA,WAAQ;AACR,EAAAA,kBAAA,kBAAe;AACf,EAAAA,kBAAA,wBAAqB;AACrB,EAAAA,kBAAA,cAAW;AACX,EAAAA,kBAAA,iBAAc;AACd,EAAAA,kBAAA,YAAS;AACT,EAAAA,kBAAA,UAAO;AACP,EAAAA,kBAAA,YAAS;AAxBC,SAAAA;AAAA,GAAA;AA2BL,IAAM,8BAA8B;AAAA,EACzC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAEO,IAAM,sCAAsC,CAAC,uCAAgC;AAE7E,IAAM,6BAA6B,CAAC,iCAA8B,qBAAuB;AAEzF,IAAM,oCAAoC;AAAA,EAC/C;AAAA,EACA;AACF;AAEO,IAAM,oCAAoC;AAAA,EAC/C;AAAA,EACA;AACF;","names":["ActivityPageType"]}
|
package/dist/chunk-OLSTHM2U.js
DELETED
|
@@ -1,154 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
createCard,
|
|
3
|
-
createCards,
|
|
4
|
-
getCard,
|
|
5
|
-
withErrorHandler
|
|
6
|
-
} from "./chunk-233VJDUF.js";
|
|
7
|
-
import {
|
|
8
|
-
ASSIGNMENT_ANALYTICS_TYPES,
|
|
9
|
-
refsAssignmentFiresotre
|
|
10
|
-
} from "./chunk-AWVUNWML.js";
|
|
11
|
-
import {
|
|
12
|
-
checkAssignmentAvailability
|
|
13
|
-
} from "./chunk-TQGDTKTE.js";
|
|
14
|
-
import {
|
|
15
|
-
api
|
|
16
|
-
} from "./chunk-CJ5JXKII.js";
|
|
17
|
-
|
|
18
|
-
// src/domains/assignment/services/get-assignments-score.service.ts
|
|
19
|
-
var _getAssignmentScores = async ({
|
|
20
|
-
assignmentId,
|
|
21
|
-
analyticType = "macro" /* Macro */,
|
|
22
|
-
studentId,
|
|
23
|
-
currentUserId
|
|
24
|
-
}) => {
|
|
25
|
-
if (analyticType === "student" /* Student */) {
|
|
26
|
-
const path = refsAssignmentFiresotre.assignmentScores({
|
|
27
|
-
id: assignmentId,
|
|
28
|
-
userId: currentUserId
|
|
29
|
-
});
|
|
30
|
-
const response = await api.getDoc(path);
|
|
31
|
-
return { scores: response.data, id: assignmentId };
|
|
32
|
-
}
|
|
33
|
-
if (analyticType === "student_summary" /* StudentSummary */ && studentId) {
|
|
34
|
-
const path = refsAssignmentFiresotre.assignmentScores({
|
|
35
|
-
id: assignmentId,
|
|
36
|
-
userId: studentId
|
|
37
|
-
});
|
|
38
|
-
const response = await api.getDoc(path);
|
|
39
|
-
return { scores: response.data, id: assignmentId };
|
|
40
|
-
}
|
|
41
|
-
if (analyticType !== "all" /* All */ && ASSIGNMENT_ANALYTICS_TYPES.includes(analyticType)) {
|
|
42
|
-
const ref = refsAssignmentFiresotre.assignmentAnalytics({
|
|
43
|
-
id: assignmentId,
|
|
44
|
-
type: analyticType
|
|
45
|
-
});
|
|
46
|
-
const docData = await api.getDoc(ref);
|
|
47
|
-
return { scores: docData.data, id: assignmentId };
|
|
48
|
-
} else if (analyticType === "all" /* All */) {
|
|
49
|
-
const ref = refsAssignmentFiresotre.assignmentAllAnalytics({ id: assignmentId });
|
|
50
|
-
const response = await api.getDocs(ref);
|
|
51
|
-
const data = response.data.reduce((acc, curr) => {
|
|
52
|
-
acc[curr.id] = curr;
|
|
53
|
-
return acc;
|
|
54
|
-
}, {});
|
|
55
|
-
return { scores: data, id: assignmentId };
|
|
56
|
-
}
|
|
57
|
-
};
|
|
58
|
-
var getAssignmentScores = withErrorHandler(_getAssignmentScores, "getAssignmentScores");
|
|
59
|
-
|
|
60
|
-
// src/domains/assignment/services/attach-score-assignment.service.ts
|
|
61
|
-
var _attachScoresAssignment = async ({
|
|
62
|
-
assignments,
|
|
63
|
-
analyticType,
|
|
64
|
-
studentId,
|
|
65
|
-
currentUserId
|
|
66
|
-
}) => {
|
|
67
|
-
const scoresPromises = assignments.map((a) => {
|
|
68
|
-
return getAssignmentScores({
|
|
69
|
-
assignmentId: a.id,
|
|
70
|
-
analyticType,
|
|
71
|
-
studentId,
|
|
72
|
-
currentUserId
|
|
73
|
-
});
|
|
74
|
-
});
|
|
75
|
-
const scores = await Promise.all(scoresPromises);
|
|
76
|
-
const scoresObject = scores.reduce((acc, curr) => {
|
|
77
|
-
acc[curr.id] = curr.scores;
|
|
78
|
-
return acc;
|
|
79
|
-
}, {});
|
|
80
|
-
const assignmentsWithScores = assignments.map((a) => {
|
|
81
|
-
var _a;
|
|
82
|
-
return {
|
|
83
|
-
...a,
|
|
84
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/ban-ts-comment
|
|
85
|
-
// @ts-ignore
|
|
86
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
87
|
-
scores: (_a = scoresObject[a.id]) != null ? _a : null
|
|
88
|
-
};
|
|
89
|
-
});
|
|
90
|
-
return assignmentsWithScores;
|
|
91
|
-
};
|
|
92
|
-
var attachScoresAssignment = withErrorHandler(
|
|
93
|
-
_attachScoresAssignment,
|
|
94
|
-
"attachScoresAssignment"
|
|
95
|
-
);
|
|
96
|
-
|
|
97
|
-
// src/domains/assignment/services/get-all-assignment.service.ts
|
|
98
|
-
async function _getAllAssignments() {
|
|
99
|
-
const path = refsAssignmentFiresotre.allAssignments();
|
|
100
|
-
const response = await api.getDocs(path);
|
|
101
|
-
return response.data;
|
|
102
|
-
}
|
|
103
|
-
var getAllAssignments = withErrorHandler(_getAllAssignments, "getAllAssignments");
|
|
104
|
-
|
|
105
|
-
// src/domains/assignment/services/get-assignment.service.ts
|
|
106
|
-
async function _getAssignment(params) {
|
|
107
|
-
var _a;
|
|
108
|
-
const path = refsAssignmentFiresotre.assignment({ id: params.assignmentId });
|
|
109
|
-
const response = await api.getDoc(path);
|
|
110
|
-
if (!response.data) return null;
|
|
111
|
-
const assignment = response.data;
|
|
112
|
-
const isAvailable = checkAssignmentAvailability(assignment.scheduledTime);
|
|
113
|
-
const assignmentWithId = {
|
|
114
|
-
...assignment,
|
|
115
|
-
isAvailable,
|
|
116
|
-
id: params.assignmentId,
|
|
117
|
-
scheduledTime: (_a = assignment.scheduledTime) != null ? _a : null
|
|
118
|
-
};
|
|
119
|
-
if (params.analyticType) {
|
|
120
|
-
const assignmentsWithScores = await attachScoresAssignment({
|
|
121
|
-
assignments: [assignmentWithId],
|
|
122
|
-
analyticType: params.analyticType,
|
|
123
|
-
currentUserId: params.currentUserId
|
|
124
|
-
});
|
|
125
|
-
return assignmentsWithScores.length > 0 ? assignmentsWithScores[0] : assignmentWithId;
|
|
126
|
-
}
|
|
127
|
-
return assignmentWithId;
|
|
128
|
-
}
|
|
129
|
-
var getAssignment = withErrorHandler(_getAssignment, "getAssignment");
|
|
130
|
-
|
|
131
|
-
// src/domains/assignment/assignment.repo.ts
|
|
132
|
-
var createAssignmentRepo = () => {
|
|
133
|
-
return {
|
|
134
|
-
getAssignment,
|
|
135
|
-
attachScoresAssignment,
|
|
136
|
-
getAssignmentScores,
|
|
137
|
-
getAllAssignments
|
|
138
|
-
};
|
|
139
|
-
};
|
|
140
|
-
|
|
141
|
-
// src/domains/cards/card.repo.ts
|
|
142
|
-
var createCardRepo = () => {
|
|
143
|
-
return {
|
|
144
|
-
createCard,
|
|
145
|
-
createCards,
|
|
146
|
-
getCard
|
|
147
|
-
};
|
|
148
|
-
};
|
|
149
|
-
|
|
150
|
-
export {
|
|
151
|
-
createAssignmentRepo,
|
|
152
|
-
createCardRepo
|
|
153
|
-
};
|
|
154
|
-
//# sourceMappingURL=chunk-OLSTHM2U.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/domains/assignment/services/get-assignments-score.service.ts","../src/domains/assignment/services/attach-score-assignment.service.ts","../src/domains/assignment/services/get-all-assignment.service.ts","../src/domains/assignment/services/get-assignment.service.ts","../src/domains/assignment/assignment.repo.ts","../src/domains/cards/card.repo.ts"],"sourcesContent":["import { api } from '@core/lib/firebase/api'\nimport { withErrorHandler } from '@core/utils/error-handler'\n\nimport {\n ASSIGNMENT_ANALYTICS_TYPES,\n AssignmentAnalyticsType,\n refsAssignmentFiresotre,\n} from '../assignment.constants'\n\nconst _getAssignmentScores = async ({\n assignmentId,\n analyticType = AssignmentAnalyticsType.Macro,\n studentId,\n currentUserId,\n}: {\n assignmentId: string\n currentUserId: string\n analyticType?: AssignmentAnalyticsType\n studentId?: string\n}) => {\n if (analyticType === AssignmentAnalyticsType.Student) {\n const path = refsAssignmentFiresotre.assignmentScores({\n id: assignmentId,\n userId: currentUserId,\n })\n const response = await api.getDoc(path)\n\n return { scores: response.data, id: assignmentId }\n }\n\n if (analyticType === AssignmentAnalyticsType.StudentSummary && studentId) {\n const path = refsAssignmentFiresotre.assignmentScores({\n id: assignmentId,\n userId: studentId,\n })\n const response = await api.getDoc(path)\n\n return { scores: response.data, id: assignmentId }\n }\n\n if (\n analyticType !== AssignmentAnalyticsType.All &&\n ASSIGNMENT_ANALYTICS_TYPES.includes(analyticType)\n ) {\n const ref = refsAssignmentFiresotre.assignmentAnalytics({\n id: assignmentId,\n type: analyticType,\n })\n\n const docData = await api.getDoc(ref)\n\n return { scores: docData.data, id: assignmentId }\n } else if (analyticType === AssignmentAnalyticsType.All) {\n const ref = refsAssignmentFiresotre.assignmentAllAnalytics({ id: assignmentId })\n\n const response = await api.getDocs(ref)\n const data = response.data.reduce((acc, curr) => {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n acc[curr.id] = curr\n\n return acc\n }, {})\n\n return { scores: data, id: assignmentId }\n }\n}\n\nexport const getAssignmentScores = withErrorHandler(_getAssignmentScores, 'getAssignmentScores')\n","import { withErrorHandler } from '@core/utils/error-handler'\n\nimport { type AssignmentAnalyticsType } from '../assignment.constants'\nimport { type AssignmentWithId } from '../assignment.model'\n\nimport { getAssignmentScores } from './get-assignments-score.service'\n\nconst _attachScoresAssignment = async ({\n assignments,\n analyticType,\n studentId,\n currentUserId,\n}: {\n assignments: AssignmentWithId[]\n analyticType: AssignmentAnalyticsType\n studentId?: string\n currentUserId: string\n}) => {\n const scoresPromises = assignments.map(a => {\n return getAssignmentScores({\n assignmentId: a.id,\n analyticType: analyticType,\n studentId,\n currentUserId,\n })\n })\n const scores = await Promise.all(scoresPromises)\n\n const scoresObject = scores.reduce((acc, curr) => {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n acc[curr.id] = curr.scores\n\n return acc\n }, {})\n const assignmentsWithScores = assignments.map(a => {\n return {\n ...a,\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/ban-ts-comment\n // @ts-ignore\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n scores: scoresObject[a.id] ?? null,\n }\n })\n\n return assignmentsWithScores\n}\n\nexport const attachScoresAssignment = withErrorHandler(\n _attachScoresAssignment,\n 'attachScoresAssignment',\n)\n","import { api } from '@core/lib/firebase/api'\nimport { withErrorHandler } from '@core/utils/error-handler'\n\nimport { refsAssignmentFiresotre } from '../assignment.constants'\nimport { type AssignmentWithId } from '../assignment.model'\n\nexport async function _getAllAssignments() {\n const path = refsAssignmentFiresotre.allAssignments()\n const response = await api.getDocs<AssignmentWithId>(path)\n\n return response.data\n}\n\nexport const getAllAssignments = withErrorHandler(_getAllAssignments, 'getAllAssignments')\n","import { api } from '@core/lib/firebase/api'\nimport { withErrorHandler } from '@core/utils/error-handler'\n\nimport { type AssignmentWithId } from '../assignment.model'\nimport { type AssignmentAnalyticsType, refsAssignmentFiresotre } from '../assignment.constants'\nimport { checkAssignmentAvailability } from '../utils/check-assignment-availability'\n\nimport { attachScoresAssignment } from './attach-score-assignment.service'\n\nasync function _getAssignment(params: {\n assignmentId: string\n currentUserId: string\n analyticType?: AssignmentAnalyticsType\n studentId?: string\n}) {\n const path = refsAssignmentFiresotre.assignment({ id: params.assignmentId })\n const response = await api.getDoc<AssignmentWithId>(path)\n\n if (!response.data) return null\n\n const assignment = response.data\n\n const isAvailable = checkAssignmentAvailability(assignment.scheduledTime)\n\n const assignmentWithId: AssignmentWithId = {\n ...assignment,\n isAvailable,\n id: params.assignmentId,\n scheduledTime: assignment.scheduledTime ?? null,\n }\n\n if (params.analyticType) {\n const assignmentsWithScores = await attachScoresAssignment({\n assignments: [assignmentWithId],\n analyticType: params.analyticType,\n currentUserId: params.currentUserId,\n })\n\n return assignmentsWithScores.length > 0 ? assignmentsWithScores[0] : assignmentWithId\n }\n\n return assignmentWithId\n}\n\nexport const getAssignment = withErrorHandler(_getAssignment, 'getAssignment')\n","import { attachScoresAssignment } from './services/attach-score-assignment.service'\nimport { getAllAssignments } from './services/get-all-assignment.service'\nimport { getAssignment } from './services/get-assignment.service'\nimport { getAssignmentScores } from './services/get-assignments-score.service'\n\nexport const createAssignmentRepo = () => {\n return {\n getAssignment: getAssignment,\n attachScoresAssignment: attachScoresAssignment,\n getAssignmentScores: getAssignmentScores,\n getAllAssignments: getAllAssignments,\n }\n}\n","import { createCards } from './services/create-card.service'\nimport { createCard } from './services/create-card.service'\nimport { getCard } from './services/get-card.service'\n\nexport const createCardRepo = () => {\n return {\n createCard: createCard,\n createCards: createCards,\n getCard: getCard,\n }\n}\n"],"mappings":"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","names":[]}
|
package/dist/chunk-TQGDTKTE.js
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
// src/domains/assignment/utils/check-assignment-availability.ts
|
|
2
|
-
import dayjs from "dayjs";
|
|
3
|
-
var checkAssignmentAvailability = (scheduledTime) => {
|
|
4
|
-
if (!scheduledTime) return true;
|
|
5
|
-
const scheduledDate = typeof scheduledTime === "string" ? dayjs(scheduledTime) : dayjs(scheduledTime.toDate());
|
|
6
|
-
if (!scheduledDate.isValid()) return true;
|
|
7
|
-
return dayjs().isAfter(scheduledDate);
|
|
8
|
-
};
|
|
9
|
-
|
|
10
|
-
export {
|
|
11
|
-
checkAssignmentAvailability
|
|
12
|
-
};
|
|
13
|
-
//# sourceMappingURL=chunk-TQGDTKTE.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/domains/assignment/utils/check-assignment-availability.ts"],"sourcesContent":["import { type CustomTimestamp } from '@core/types/firebase.types'\nimport dayjs from 'dayjs'\n\nexport const checkAssignmentAvailability = (\n scheduledTime: string | CustomTimestamp | null | undefined,\n) => {\n if (!scheduledTime) return true\n\n const scheduledDate =\n typeof scheduledTime === 'string' ? dayjs(scheduledTime) : dayjs(scheduledTime.toDate())\n\n if (!scheduledDate.isValid()) return true\n\n return dayjs().isAfter(scheduledDate)\n}\n"],"mappings":";AACA,OAAO,WAAW;AAEX,IAAM,8BAA8B,CACzC,kBACG;AACH,MAAI,CAAC,cAAe,QAAO;AAE3B,QAAM,gBACJ,OAAO,kBAAkB,WAAW,MAAM,aAAa,IAAI,MAAM,cAAc,OAAO,CAAC;AAEzF,MAAI,CAAC,cAAc,QAAQ,EAAG,QAAO;AAErC,SAAO,MAAM,EAAE,QAAQ,aAAa;AACtC;","names":[]}
|