@citolab/qti-backend-firebase 0.0.3 → 0.0.5

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 (78) hide show
  1. package/dist/api/app-specific/base/application-specific-base.d.ts +11 -20
  2. package/dist/api/app-specific/base/application-specific-base.d.ts.map +1 -1
  3. package/dist/api/app-specific/base/application-specific-base.js +73 -88
  4. package/dist/api/app-specific/base/application-specific-base.js.map +1 -1
  5. package/dist/api/app-specific/baseImplementation.d.ts +2 -3
  6. package/dist/api/app-specific/baseImplementation.d.ts.map +1 -1
  7. package/dist/api/app-specific/baseImplementation.js +2 -6
  8. package/dist/api/app-specific/baseImplementation.js.map +1 -1
  9. package/dist/api/app-specific/index.d.ts +1 -0
  10. package/dist/api/app-specific/index.d.ts.map +1 -1
  11. package/dist/api/app-specific/index.js +1 -0
  12. package/dist/api/app-specific/index.js.map +1 -1
  13. package/dist/api/app-specific/interface/IApplicationSpecific.d.ts +10 -20
  14. package/dist/api/app-specific/interface/IApplicationSpecific.d.ts.map +1 -1
  15. package/dist/api/qti-data.d.ts.map +1 -1
  16. package/dist/api/qti-data.js +619 -271
  17. package/dist/api/qti-data.js.map +1 -1
  18. package/dist/api/qti-resources.d.ts.map +1 -1
  19. package/dist/api/qti-resources.js +134 -131
  20. package/dist/api/qti-resources.js.map +1 -1
  21. package/dist/api/qti-teacher.d.ts.map +1 -1
  22. package/dist/api/qti-teacher.js +563 -424
  23. package/dist/api/qti-teacher.js.map +1 -1
  24. package/dist/api/qti-tools.d.ts.map +1 -1
  25. package/dist/api/qti-tools.js +213 -41
  26. package/dist/api/qti-tools.js.map +1 -1
  27. package/dist/helpers/database.d.ts +35 -24
  28. package/dist/helpers/database.d.ts.map +1 -1
  29. package/dist/helpers/database.js +47 -36
  30. package/dist/helpers/database.js.map +1 -1
  31. package/dist/helpers/db.d.ts +1 -1
  32. package/dist/helpers/db.d.ts.map +1 -1
  33. package/dist/helpers/db.js +3 -7
  34. package/dist/helpers/db.js.map +1 -1
  35. package/dist/helpers/endpoint-helpers.d.ts +2 -2
  36. package/dist/helpers/endpoint-helpers.d.ts.map +1 -1
  37. package/dist/helpers/endpoint-helpers.js +59 -17
  38. package/dist/helpers/endpoint-helpers.js.map +1 -1
  39. package/dist/helpers/excel-helper.d.ts +29 -0
  40. package/dist/helpers/excel-helper.d.ts.map +1 -0
  41. package/dist/helpers/excel-helper.js +150 -0
  42. package/dist/helpers/excel-helper.js.map +1 -0
  43. package/dist/helpers/general.d.ts +15 -0
  44. package/dist/helpers/general.d.ts.map +1 -0
  45. package/dist/helpers/general.js +148 -0
  46. package/dist/helpers/general.js.map +1 -0
  47. package/dist/helpers/index.d.ts +2 -0
  48. package/dist/helpers/index.d.ts.map +1 -1
  49. package/dist/helpers/index.js +2 -0
  50. package/dist/helpers/index.js.map +1 -1
  51. package/dist/helpers/logic.d.ts +100 -41
  52. package/dist/helpers/logic.d.ts.map +1 -1
  53. package/dist/helpers/logic.js +523 -413
  54. package/dist/helpers/logic.js.map +1 -1
  55. package/dist/helpers/package-upload.d.ts.map +1 -1
  56. package/dist/helpers/package-upload.js +2 -3
  57. package/dist/helpers/package-upload.js.map +1 -1
  58. package/dist/helpers/package.d.ts +3 -4
  59. package/dist/helpers/package.d.ts.map +1 -1
  60. package/dist/helpers/package.js +12 -17
  61. package/dist/helpers/package.js.map +1 -1
  62. package/dist/helpers/request-headers.d.ts +4 -0
  63. package/dist/helpers/request-headers.d.ts.map +1 -1
  64. package/dist/helpers/request-headers.js +2 -2
  65. package/dist/helpers/request-headers.js.map +1 -1
  66. package/dist/helpers/resource-cache.d.ts +35 -0
  67. package/dist/helpers/resource-cache.d.ts.map +1 -0
  68. package/dist/helpers/resource-cache.js +171 -0
  69. package/dist/helpers/resource-cache.js.map +1 -0
  70. package/dist/helpers/storage.d.ts +2 -2
  71. package/dist/helpers/storage.d.ts.map +1 -1
  72. package/dist/helpers/storage.js +16 -15
  73. package/dist/helpers/storage.js.map +1 -1
  74. package/dist/helpers/utils.d.ts +4 -3
  75. package/dist/helpers/utils.d.ts.map +1 -1
  76. package/dist/helpers/utils.js +73 -51
  77. package/dist/helpers/utils.js.map +1 -1
  78. package/package.json +12 -9
@@ -0,0 +1,171 @@
1
+ import NodeCache from "node-cache";
2
+ import { getStorage } from "./firebase";
3
+ import { getStorageRef } from "./package";
4
+ import path from "path";
5
+ import mime from "mime";
6
+ class ResourceCacheManager {
7
+ cache;
8
+ stats;
9
+ MAX_FILE_SIZE = 10 * 1024 * 1024; // 10MB
10
+ DEFAULT_TTL = 30 * 60; // 30 minutes
11
+ constructor() {
12
+ this.cache = new NodeCache({
13
+ stdTTL: this.DEFAULT_TTL,
14
+ checkperiod: 5 * 60, // Check for expired keys every 5 minutes
15
+ maxKeys: 1000, // Limit number of cached items
16
+ useClones: false, // Don't clone objects for better performance
17
+ });
18
+ this.stats = {
19
+ hits: 0,
20
+ misses: 0,
21
+ totalSize: 0,
22
+ };
23
+ // Log cache statistics periodically
24
+ setInterval(() => {
25
+ const keys = this.cache.keys().length;
26
+ console.log(`Resource Cache Stats - Keys: ${keys}, Hits: ${this.stats.hits}, Misses: ${this.stats.misses}, Hit Rate: ${this.getHitRate()}%`);
27
+ }, 10 * 60 * 1000); // Every 10 minutes
28
+ }
29
+ getHitRate() {
30
+ const total = this.stats.hits + this.stats.misses;
31
+ return total > 0 ? Math.round((this.stats.hits / total) * 100) : 0;
32
+ }
33
+ getCacheKey(packageId, relativeUrl) {
34
+ return `${packageId}:${relativeUrl}`;
35
+ }
36
+ shouldCache(relativeUrl, fileSize) {
37
+ const ext = path.extname(relativeUrl).toLowerCase();
38
+ // Don't cache large files
39
+ if (fileSize && fileSize > this.MAX_FILE_SIZE) {
40
+ return false;
41
+ }
42
+ // Cache these file types
43
+ const cacheableExtensions = [
44
+ ".xml",
45
+ ".css",
46
+ ".js",
47
+ ".json", // Text files
48
+ ".png",
49
+ ".jpg",
50
+ ".jpeg",
51
+ ".gif",
52
+ ".svg", // Images
53
+ ".woff",
54
+ ".woff2",
55
+ ".ttf",
56
+ ".eot", // Fonts
57
+ ".html",
58
+ ".htm",
59
+ ".txt", // Other text
60
+ ];
61
+ // Don't cache video/audio files (they use streaming)
62
+ const streamingExtensions = [
63
+ ".mp4",
64
+ ".webm",
65
+ ".ogg",
66
+ ".mp3",
67
+ ".wav",
68
+ ".m4a",
69
+ ];
70
+ if (streamingExtensions.includes(ext)) {
71
+ return false;
72
+ }
73
+ return cacheableExtensions.includes(ext) || ext === "";
74
+ }
75
+ getTTL(relativeUrl) {
76
+ // Standardize all cached resources to 30 minutes TTL
77
+ // This ensures content updates are reflected relatively quickly
78
+ // while still providing significant performance benefits
79
+ return 30 * 60; // 30 minutes for all cached files
80
+ }
81
+ async get(packageId, relativeUrl) {
82
+ if (!this.shouldCache(relativeUrl)) {
83
+ return null;
84
+ }
85
+ const cacheKey = this.getCacheKey(packageId, relativeUrl);
86
+ const cached = this.cache.get(cacheKey);
87
+ if (cached) {
88
+ this.stats.hits++;
89
+ return cached;
90
+ }
91
+ this.stats.misses++;
92
+ return null;
93
+ }
94
+ async set(packageId, relativeUrl, buffer, contentType, etag) {
95
+ if (!this.shouldCache(relativeUrl, buffer.length)) {
96
+ return;
97
+ }
98
+ const cacheKey = this.getCacheKey(packageId, relativeUrl);
99
+ const ttl = this.getTTL(relativeUrl);
100
+ const cachedResource = {
101
+ buffer,
102
+ contentType,
103
+ lastModified: new Date(),
104
+ etag: etag || this.generateETag(buffer),
105
+ };
106
+ this.cache.set(cacheKey, cachedResource, ttl);
107
+ this.stats.totalSize += buffer.length;
108
+ }
109
+ generateETag(buffer) {
110
+ const crypto = require("crypto");
111
+ return crypto.createHash("md5").update(buffer).digest("hex");
112
+ }
113
+ async fetchAndCache(packageId, relativeUrl) {
114
+ try {
115
+ const storageRef = getStorageRef(relativeUrl, packageId);
116
+ const bucket = getStorage().bucket();
117
+ const fileRef = bucket.file(storageRef);
118
+ // Check if file exists
119
+ const [exists] = await fileRef.exists();
120
+ if (!exists) {
121
+ return null;
122
+ }
123
+ // Get file metadata for size check
124
+ const [metadata] = await fileRef.getMetadata();
125
+ const fileSize = Number(metadata.size);
126
+ if (!this.shouldCache(relativeUrl, fileSize)) {
127
+ return null;
128
+ }
129
+ // Download file
130
+ const [buffer] = await fileRef.download();
131
+ const ext = path.extname(relativeUrl).toLowerCase();
132
+ const contentType = mime.getType(ext) || "application/octet-stream";
133
+ const etag = metadata.etag;
134
+ // Cache it
135
+ await this.set(packageId, relativeUrl, buffer, contentType, etag);
136
+ return {
137
+ buffer,
138
+ contentType,
139
+ lastModified: new Date(metadata.updated || Date.now()),
140
+ etag: etag || this.generateETag(buffer),
141
+ };
142
+ }
143
+ catch (error) {
144
+ console.error(`Error fetching and caching resource ${packageId}:${relativeUrl}:`, error);
145
+ return null;
146
+ }
147
+ }
148
+ // Method to clear cache for a specific package (useful when package is updated)
149
+ clearPackage(packageId) {
150
+ const keys = this.cache.keys();
151
+ const packageKeys = keys.filter((key) => key.startsWith(`${packageId}:`));
152
+ packageKeys.forEach((key) => this.cache.del(key));
153
+ console.log(`Cleared ${packageKeys.length} cached resources for package ${packageId}`);
154
+ }
155
+ // Method to get cache statistics
156
+ getStats() {
157
+ return {
158
+ ...this.stats,
159
+ keys: this.cache.keys().length,
160
+ hitRate: this.getHitRate(),
161
+ };
162
+ }
163
+ // Method to clear all cache
164
+ clear() {
165
+ this.cache.flushAll();
166
+ this.stats = { hits: 0, misses: 0, totalSize: 0 };
167
+ }
168
+ }
169
+ // Export singleton instance
170
+ export const resourceCache = new ResourceCacheManager();
171
+ //# sourceMappingURL=resource-cache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resource-cache.js","sourceRoot":"","sources":["../../src/helpers/resource-cache.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import * as cheerio from 'cheerio';
2
- import { Bucket } from '@google-cloud/storage';
1
+ import * as cheerio from "cheerio";
2
+ import { Bucket } from "@google-cloud/storage";
3
3
  export declare const storeXml: (location: string, xml: string) => Promise<void>;
4
4
  export declare const storageFileToXml: (file: {
5
5
  download: () => Promise<Buffer[]>;
@@ -1 +1 @@
1
- {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../src/helpers/storage.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AAGnC,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAI/C,eAAO,MAAM,QAAQ,GAAU,UAAU,MAAM,EAAE,KAAK,MAAM,kBAI3D,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAU,MAAM;IAC3C,QAAQ,EAAE,MAAM,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;CACnC,KAAG,OAAO,CAAC,OAAO,CAAC,UAAU,CAY7B,CAAC;AAEF,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,YAAY,GAAE,MAAM,EAAO,GAC1B,OAAO,CAAC,IAAI,CAAC,CAuBf;AAED,eAAO,MAAM,kBAAkB,GAC7B,YAAY,MAAM,EAClB,SAAS,MAAM,EACf,oBAAe,8DAgBhB,CAAC;AA0FF,eAAO,MAAM,gBAAgB,GAC3B,YAAY,MAAM,EAClB,UAAU,MAAM,EAChB,oBAAoB,MAAM,EAC1B,kBAAkB,MAAM,kBAgBzB,CAAC"}
1
+ {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../src/helpers/storage.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AAGnC,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAG/C,eAAO,MAAM,QAAQ,GAAU,UAAU,MAAM,EAAE,KAAK,MAAM,kBAI3D,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAU,MAAM;IAC3C,QAAQ,EAAE,MAAM,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;CACnC,KAAG,OAAO,CAAC,OAAO,CAAC,UAAU,CAgB7B,CAAC;AAEF,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,YAAY,GAAE,MAAM,EAAO,GAC1B,OAAO,CAAC,IAAI,CAAC,CAuBf;AAED,eAAO,MAAM,kBAAkB,GAC7B,YAAY,MAAM,EAClB,SAAS,MAAM,EACf,oBAAe,8DAgBhB,CAAC;AA0FF,eAAO,MAAM,gBAAgB,GAC3B,YAAY,MAAM,EAClB,UAAU,MAAM,EAChB,oBAAoB,MAAM,EAC1B,kBAAkB,MAAM,kBAgBzB,CAAC"}
@@ -1,10 +1,9 @@
1
- import { readFileSync } from 'fs';
2
- import * as cheerio from 'cheerio';
3
- import * as admin from 'firebase-admin';
4
- import fs from 'fs';
5
- import { cleanXMLString } from '@citolab/qti-convert/qti-convert';
6
- import path from 'path';
7
- import { getStorage } from './firebase';
1
+ import { readFileSync } from "fs";
2
+ import * as cheerio from "cheerio";
3
+ import * as admin from "firebase-admin";
4
+ import fs from "fs";
5
+ import path from "path";
6
+ import { getStorage } from "./firebase";
8
7
  export const storeXml = async (location, xml) => {
9
8
  const storage = getStorage();
10
9
  const file = storage.bucket().file(`${location}`);
@@ -14,21 +13,23 @@ export const storageFileToXml = async (file) => {
14
13
  try {
15
14
  const downloadResult = await file.download();
16
15
  if (downloadResult) {
17
- const content = cleanXMLString(downloadResult[0].toString('utf8'));
16
+ // Dynamically import to avoid top-level await issues
17
+ const { cleanXMLString } = await import("@citolab/qti-convert/qti-convert");
18
+ const content = cleanXMLString(downloadResult[0].toString("utf8"));
18
19
  return cheerio.load(content, { xmlMode: true, xml: true });
19
20
  }
20
21
  }
21
22
  catch (e) {
22
- console.log('could not download or parse xml file: ' + e);
23
+ console.log("could not download or parse xml file: " + e);
23
24
  }
24
- return cheerio.load('', { xmlMode: true, xml: true });
25
+ return cheerio.load("", { xmlMode: true, xml: true });
25
26
  };
26
27
  export async function deleteFilesRecursive(bucket, directory, excludeFiles = []) {
27
28
  try {
28
29
  // List all files in the directory
29
30
  const [files] = await bucket.getFiles({ prefix: directory });
30
31
  // Filter files to exclude the ones specified in excludeFiles array
31
- const filesToDelete = files.filter((file) => !excludeFiles.includes(file.name.replace(directory, '').replace('/', '')));
32
+ const filesToDelete = files.filter((file) => !excludeFiles.includes(file.name.replace(directory, "").replace("/", "")));
32
33
  // Delete the files
33
34
  const deletePromises = filesToDelete.map((file) => file.delete());
34
35
  // Wait for all deletions to complete
@@ -36,7 +37,7 @@ export async function deleteFilesRecursive(bucket, directory, excludeFiles = [])
36
37
  console.log(`Deleted ${filesToDelete.length} files from ${directory}`);
37
38
  }
38
39
  catch (error) {
39
- console.error('Error deleting files:', error);
40
+ console.error("Error deleting files:", error);
40
41
  }
41
42
  }
42
43
  export const pollForStorageFile = async (bucketname, fileRef, maxAttempts = 8) => {
@@ -58,7 +59,7 @@ export const pollForStorageFile = async (bucketname, fileRef, maxAttempts = 8) =
58
59
  };
59
60
  // Initialize Firebase Admin for two different projects
60
61
  const initFirebaseApp = (adminSdkJson, appName) => {
61
- const firebaseContent = readFileSync(adminSdkJson, 'utf8');
62
+ const firebaseContent = readFileSync(adminSdkJson, "utf8");
62
63
  const config = JSON.parse(firebaseContent);
63
64
  return admin.initializeApp({
64
65
  credential: admin.credential.cert(config),
@@ -119,8 +120,8 @@ const copyFilesRecursively = async (originBucket, destBucket, originPath, destPa
119
120
  };
120
121
  export const copyStorageFiles = async (originPath, destPath, adminSdkJsonOrigin, adminSdkJsonDest) => {
121
122
  // Initialize the Firebase applications
122
- const originApp = initFirebaseApp(adminSdkJsonOrigin, 'originApp');
123
- const destApp = initFirebaseApp(adminSdkJsonDest, 'destApp');
123
+ const originApp = initFirebaseApp(adminSdkJsonOrigin, "originApp");
124
+ const destApp = initFirebaseApp(adminSdkJsonDest, "destApp");
124
125
  // Get the buckets
125
126
  const orginStorage = getStorage(originApp);
126
127
  const destStorage = getStorage(destApp);
@@ -1 +1 @@
1
- {"version":3,"file":"storage.js","sourceRoot":"","sources":["../../src/helpers/storage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"storage.js","sourceRoot":"","sources":["../../src/helpers/storage.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { VariableDeclaration } from '@citolab/qti-components/exports/variables.js';
1
+ import { VariableDeclaration } from "@citolab/qti-components/exports/variables.js";
2
2
  export declare const sum: (items: number[]) => number;
3
3
  export declare function sumField<T>(items: T[], getKey: (item: T) => number): number;
4
4
  export declare function avgField<T>(items: T[], getKey: (item: T) => number): number;
@@ -11,6 +11,7 @@ export declare const toQtiCompatibleId: (id: string) => string;
11
11
  export declare function sort<T, K>(list: T[], getKey: (item: T) => K, desc?: boolean): T[];
12
12
  export declare const trimStart: (text: string, chars: string[]) => string;
13
13
  export declare const dateId: () => string;
14
+ export declare const dateIdToDate: (dateId: string) => Date;
14
15
  export declare const todayId: () => string;
15
16
  export declare function convertFirebaseDate(dateObject: {
16
17
  seconds: number;
@@ -21,7 +22,7 @@ export declare function splitArray<T>(flatArray: T[], numCols: number): T[][];
21
22
  export declare function groupBy<T, K>(list: T[], getKey: (item: T) => K): [K, T[]][];
22
23
  export declare const timeout: (ms: number) => Promise<unknown>;
23
24
  export declare const getReadableResponseFromVariables: (variables: readonly VariableDeclaration<string | string[]>[]) => string;
24
- export declare const createCode: (length: number) => string;
25
+ export declare const createCode: (length: number, type?: "numeric" | "alphabetic" | "alphanumeric") => string;
25
26
  export declare const randomInt: (min: number, max: number) => number;
26
27
  export declare const parseUrl: (url: string) => {
27
28
  hash: string;
@@ -38,5 +39,5 @@ export declare const parseUrl: (url: string) => {
38
39
  } | null;
39
40
  export declare const truncate: (text: string, length: number) => string;
40
41
  export declare const trim: (s: string, c: string) => string;
41
- export declare function httpCall<ResponseType, BodyType>(url: string | undefined, method: 'GET' | 'POST' | 'PATCH', data?: BodyType): Promise<ResponseType | null>;
42
+ export declare function httpCall<ResponseType, BodyType>(url: string | undefined, method: "GET" | "POST" | "PATCH", data?: BodyType): Promise<ResponseType | null>;
42
43
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/helpers/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,8CAA8C,CAAC;AAEnF,eAAO,MAAM,GAAG,GAAI,OAAO,MAAM,EAAE,WACiB,CAAC;AAErD,wBAAgB,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,UAElE;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,UAIlE;AACD,wBAAgB,OAAO,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAEnD;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,WAE1C;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,6BAE/C;AAED,wBAAgB,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,OAAO,GAAG,IAAI,WAM9D;AAED,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,UAO9C;AAED,eAAO,MAAM,iBAAiB,GAAI,IAAI,MAAM,WAK3C,CAAC;AAEF,wBAAgB,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,EAAE,IAAI,UAAQ,OAazE;AAED,eAAO,MAAM,SAAS,GAAI,MAAM,MAAM,EAAE,OAAO,MAAM,EAAE,WAatD,CAAC;AAEF,eAAO,MAAM,MAAM,cAUlB,CAAC;AAEF,eAAO,MAAM,OAAO,cAMnB,CAAC;AAEF,wBAAgB,mBAAmB,CACjC,UAAU,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,QAY5D;AAOD,wBAAgB,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,CAG1C;AAED,wBAAgB,UAAU,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,GAAG,CAAC,EAAE,EAAE,CAUpE;AAED,wBAAgB,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,cAY9D;AAED,eAAO,MAAM,OAAO,GAAI,IAAI,MAAM,qBACmB,CAAC;AAEtD,eAAO,MAAM,gCAAgC,GAC3C,WAAW,SAAS,mBAAmB,CAAC,MAAM,GAAG,MAAM,EAAE,CAAC,EAAE,WAY7D,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,QAAQ,MAAM,WAQxC,CAAC;AAEF,eAAO,MAAM,SAAS,GAAI,KAAK,MAAM,EAAE,KAAK,MAAM,WAGjD,CAAC;AAEF,eAAO,MAAM,QAAQ,GAAI,KAAK,MAAM;;;;;;;;;;;;QA2BnC,CAAC;AAEF,eAAO,MAAM,QAAQ,GAAI,MAAM,MAAM,EAAE,QAAQ,MAAM,WAEpD,CAAC;AAEF,eAAO,MAAM,IAAI,GAAI,GAAG,MAAM,EAAE,GAAG,MAAM,WAKxC,CAAC;AAEF,wBAAsB,QAAQ,CAAC,YAAY,EAAE,QAAQ,EACnD,GAAG,oBAAK,EACR,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,OAAO,EAChC,IAAI,CAAC,EAAE,QAAQ,GACd,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CA0B9B"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/helpers/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,8CAA8C,CAAC;AAEnF,eAAO,MAAM,GAAG,GAAI,OAAO,MAAM,EAAE,WACiB,CAAC;AAErD,wBAAgB,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,UAElE;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,UAIlE;AACD,wBAAgB,OAAO,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAEnD;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,WAE1C;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,6BAE/C;AAED,wBAAgB,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,OAAO,GAAG,IAAI,WAM9D;AAED,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,UAO9C;AAED,eAAO,MAAM,iBAAiB,GAAI,IAAI,MAAM,WAK3C,CAAC;AAEF,wBAAgB,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,EAAE,IAAI,UAAQ,OAazE;AAED,eAAO,MAAM,SAAS,GAAI,MAAM,MAAM,EAAE,OAAO,MAAM,EAAE,WAatD,CAAC;AAEF,eAAO,MAAM,MAAM,cAUlB,CAAC;AAEF,eAAO,MAAM,YAAY,GAAI,QAAQ,MAAM,SAS1C,CAAC;AAEF,eAAO,MAAM,OAAO,cAMnB,CAAC;AAEF,wBAAgB,mBAAmB,CACjC,UAAU,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,QAY5D;AAOD,wBAAgB,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,CAG1C;AAED,wBAAgB,UAAU,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,GAAG,CAAC,EAAE,EAAE,CAUpE;AAED,wBAAgB,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,cAY9D;AAED,eAAO,MAAM,OAAO,GAAI,IAAI,MAAM,qBACmB,CAAC;AAEtD,eAAO,MAAM,gCAAgC,GAC3C,WAAW,SAAS,mBAAmB,CAAC,MAAM,GAAG,MAAM,EAAE,CAAC,EAAE,WAY7D,CAAC;AAEF,eAAO,MAAM,UAAU,GACrB,QAAQ,MAAM,EACd,OAAM,SAAS,GAAG,YAAY,GAAG,cAA+B,WAuBjE,CAAC;AAEF,eAAO,MAAM,SAAS,GAAI,KAAK,MAAM,EAAE,KAAK,MAAM,WAGjD,CAAC;AAEF,eAAO,MAAM,QAAQ,GAAI,KAAK,MAAM;;;;;;;;;;;;QA2BnC,CAAC;AAEF,eAAO,MAAM,QAAQ,GAAI,MAAM,MAAM,EAAE,QAAQ,MAAM,WAEpD,CAAC;AAEF,eAAO,MAAM,IAAI,GAAI,GAAG,MAAM,EAAE,GAAG,MAAM,WAKxC,CAAC;AAEF,wBAAsB,QAAQ,CAAC,YAAY,EAAE,QAAQ,EACnD,GAAG,oBAAK,EACR,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,OAAO,EAChC,IAAI,CAAC,EAAE,QAAQ,GACd,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CA0B9B"}
@@ -19,24 +19,24 @@ export function IsNullOrUndefined(value) {
19
19
  }
20
20
  export function IsTrue(value) {
21
21
  // lower case if it's a string
22
- if (typeof value === 'string') {
22
+ if (typeof value === "string") {
23
23
  value = value.toLowerCase();
24
24
  }
25
- return value === 'true' || value === true;
25
+ return value === "true" || value === true;
26
26
  }
27
27
  export function removeDoubleSlashes(str) {
28
28
  const singleForwardSlashes = str
29
- .replace(/([^:]\/)\/+/g, '$1')
30
- .replace(/\/\//g, '/')
31
- .replace('http:/', 'http://')
32
- .replace('https:/', 'https://');
29
+ .replace(/([^:]\/)\/+/g, "$1")
30
+ .replace(/\/\//g, "/")
31
+ .replace("http:/", "http://")
32
+ .replace("https:/", "https://");
33
33
  return singleForwardSlashes;
34
34
  }
35
35
  export const toQtiCompatibleId = (id) => {
36
- if (id.startsWith('ITM-')) {
36
+ if (id.startsWith("ITM-")) {
37
37
  return id;
38
38
  }
39
- return `ITM-${id.replaceAll(' ', '_')}`;
39
+ return `ITM-${id.replaceAll(" ", "_")}`;
40
40
  };
41
41
  export function sort(list, getKey, desc = false) {
42
42
  list.sort((a, b) => {
@@ -72,19 +72,29 @@ export const trimStart = (text, chars) => {
72
72
  export const dateId = () => {
73
73
  const dt = new Date();
74
74
  const year = dt.getFullYear();
75
- const month = (dt.getMonth() + 1).toString().padStart(2, '0');
76
- const day = dt.getDate().toString().padStart(2, '0');
77
- const hour = dt.getHours().toString().padStart(2, '0');
78
- const minutes = dt.getMinutes().toString().padStart(2, '0');
79
- const seconds = dt.getSeconds().toString().padStart(2, '0');
80
- const milliseconds = dt.getMilliseconds().toString().padStart(3, '0');
75
+ const month = (dt.getMonth() + 1).toString().padStart(2, "0");
76
+ const day = dt.getDate().toString().padStart(2, "0");
77
+ const hour = dt.getHours().toString().padStart(2, "0");
78
+ const minutes = dt.getMinutes().toString().padStart(2, "0");
79
+ const seconds = dt.getSeconds().toString().padStart(2, "0");
80
+ const milliseconds = dt.getMilliseconds().toString().padStart(3, "0");
81
81
  return `${year}${month}${day}${hour}${minutes}${seconds}${milliseconds}`;
82
82
  };
83
+ export const dateIdToDate = (dateId) => {
84
+ const year = parseInt(dateId.substring(0, 4), 10);
85
+ const month = parseInt(dateId.substring(4, 6), 10) - 1; // Months are zero-based
86
+ const day = parseInt(dateId.substring(6, 8), 10);
87
+ const hour = parseInt(dateId.substring(8, 10), 10);
88
+ const minutes = parseInt(dateId.substring(10, 12), 10);
89
+ const seconds = parseInt(dateId.substring(12, 14), 10);
90
+ const milliseconds = parseInt(dateId.substring(14, 17), 10);
91
+ return new Date(year, month, day, hour, minutes, seconds, milliseconds);
92
+ };
83
93
  export const todayId = () => {
84
94
  const dt = new Date();
85
95
  const year = dt.getFullYear();
86
- const month = (dt.getMonth() + 1).toString().padStart(2, '0');
87
- const day = dt.getDate().toString().padStart(2, '0');
96
+ const month = (dt.getMonth() + 1).toString().padStart(2, "0");
97
+ const day = dt.getDate().toString().padStart(2, "0");
88
98
  return `${year}${month}${day}`;
89
99
  };
90
100
  export function convertFirebaseDate(dateObject) {
@@ -132,22 +142,34 @@ export function groupBy(list, getKey) {
132
142
  });
133
143
  return Array.from(map);
134
144
  }
135
- export const timeout = (ms) => new Promise((res) => setTimeout(() => res(''), ms));
145
+ export const timeout = (ms) => new Promise((res) => setTimeout(() => res(""), ms));
136
146
  export const getReadableResponseFromVariables = (variables) => {
137
147
  const response = variables
138
- .filter((i) => i.identifier.toLocaleLowerCase().startsWith('response'))
148
+ .filter((i) => i.identifier.toLocaleLowerCase().startsWith("response"))
139
149
  .map((i) => {
140
150
  if (Array.isArray(i.value)) {
141
- return i.value.join('&');
151
+ return i.value.join("&");
142
152
  }
143
153
  return i.value;
144
154
  })
145
- .join(' , ');
155
+ .join(" , ");
146
156
  return response;
147
157
  };
148
- export const createCode = (length) => {
149
- let result = '';
150
- const characters = 'BCDFGHJKLMNPQRSTVWXYZ';
158
+ export const createCode = (length, type = "alphanumeric") => {
159
+ let result = "";
160
+ let characters;
161
+ switch (type) {
162
+ case "numeric":
163
+ characters = "23456789";
164
+ break;
165
+ case "alphabetic":
166
+ characters = "BCDFGHJKLMNPQRSTVWXYZ";
167
+ break;
168
+ case "alphanumeric":
169
+ default:
170
+ characters = "BCDFGHJKLMNPQRSTVWXYZ23456789";
171
+ break;
172
+ }
151
173
  const charactersLength = characters.length;
152
174
  for (let i = 0; i < length; i++) {
153
175
  result += characters.charAt(Math.floor(Math.random() * charactersLength));
@@ -164,21 +186,21 @@ export const parseUrl = (url) => {
164
186
  /^(([^:\/?#]+:)?(?:\/\/((?:([^\/?#:]*):([^\/?#:]*)@)?([^\/?#:]*)(?::([^\/?#:]*))?)))?([^?#]*)(\?[^#]*)?(#.*)?$/);
165
187
  if (m) {
166
188
  const r = {
167
- hash: m[10] || '', // #asd
168
- host: m[3] || '', // localhost:257
169
- hostname: m[6] || '', // localhost
170
- href: m[0] || '', // http://username:password@localhost:257/deploy/?asd=asd#asd
171
- origin: m[1] || '', // http://username:password@localhost:257
172
- pathname: m[8] || (m[1] ? '/' : ''), // /deploy/
173
- port: m[7] || '', // 257
174
- protocol: m[2] || '', // http:
175
- search: m[9] || '', // ?asd=asd
176
- username: m[4] || '', // username
177
- password: m[5] || '', // password
189
+ hash: m[10] || "", // #asd
190
+ host: m[3] || "", // localhost:257
191
+ hostname: m[6] || "", // localhost
192
+ href: m[0] || "", // http://username:password@localhost:257/deploy/?asd=asd#asd
193
+ origin: m[1] || "", // http://username:password@localhost:257
194
+ pathname: m[8] || (m[1] ? "/" : ""), // /deploy/
195
+ port: m[7] || "", // 257
196
+ protocol: m[2] || "", // http:
197
+ search: m[9] || "", // ?asd=asd
198
+ username: m[4] || "", // username
199
+ password: m[5] || "", // password
178
200
  };
179
201
  if (r.protocol.length == 2) {
180
- r.protocol = 'file:///' + r.protocol.toUpperCase();
181
- r.origin = r.protocol + '//' + r.host;
202
+ r.protocol = "file:///" + r.protocol.toUpperCase();
203
+ r.origin = r.protocol + "//" + r.host;
182
204
  }
183
205
  r.href = r.origin + r.pathname + r.search + r.hash;
184
206
  return r;
@@ -186,27 +208,27 @@ export const parseUrl = (url) => {
186
208
  return null;
187
209
  };
188
210
  export const truncate = (text, length) => {
189
- return text.length > length ? text.substring(0, length - 3) + '...' : text;
211
+ return text.length > length ? text.substring(0, length - 3) + "..." : text;
190
212
  };
191
213
  export const trim = (s, c) => {
192
- if (c === ']')
193
- c = '\\]';
194
- if (c === '^')
195
- c = '\\^';
196
- if (c === '\\')
197
- c = '\\\\';
198
- return s.replace(new RegExp('^[' + c + ']+|[' + c + ']+$', 'g'), '');
214
+ if (c === "]")
215
+ c = "\\]";
216
+ if (c === "^")
217
+ c = "\\^";
218
+ if (c === "\\")
219
+ c = "\\\\";
220
+ return s.replace(new RegExp("^[" + c + "]+|[" + c + "]+$", "g"), "");
199
221
  };
200
- export async function httpCall(url = '', method, data) {
201
- const headers = { 'Content-Type': 'application/json' };
222
+ export async function httpCall(url = "", method, data) {
223
+ const headers = { "Content-Type": "application/json" };
202
224
  let requestInit = {
203
225
  method, // *GET, POST, PUT, DELETE, etc.
204
- mode: 'cors', // no-cors, *cors, same-origin
205
- cache: 'no-cache', // *default, no-cache, reload, force-cache, only-if-cached
206
- credentials: 'same-origin', // include, *same-origin, omit
226
+ mode: "cors", // no-cors, *cors, same-origin
227
+ cache: "no-cache", // *default, no-cache, reload, force-cache, only-if-cached
228
+ credentials: "same-origin", // include, *same-origin, omit
207
229
  headers,
208
- redirect: 'follow', // manual, *follow, error
209
- referrerPolicy: 'no-referrer', // no-referrer, *no-referrer-when-downgrade, origin, origin-when-cross-origin, same-origin, strict-origin, strict-origin-when-cross-origin, unsafe-url
230
+ redirect: "follow", // manual, *follow, error
231
+ referrerPolicy: "no-referrer", // no-referrer, *no-referrer-when-downgrade, origin, origin-when-cross-origin, same-origin, strict-origin, strict-origin-when-cross-origin, unsafe-url
210
232
  };
211
233
  if (data) {
212
234
  requestInit = { ...requestInit, body: JSON.stringify(data) };
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/helpers/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/helpers/utils.ts"],"names":[],"mappings":"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"}