@myeiter/mcy-web 0.0.1

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 (51) hide show
  1. package/License.txt +21 -0
  2. package/README.md +1 -0
  3. package/dist/app/app.d.ts +3 -0
  4. package/dist/app/app.d.ts.map +1 -0
  5. package/dist/app/app.js +19 -0
  6. package/dist/app/app.js.map +1 -0
  7. package/dist/app/drawing.d.ts +35 -0
  8. package/dist/app/drawing.d.ts.map +1 -0
  9. package/dist/app/drawing.js +173 -0
  10. package/dist/app/drawing.js.map +1 -0
  11. package/dist/app/input.d.ts +164 -0
  12. package/dist/app/input.d.ts.map +1 -0
  13. package/dist/app/input.js +266 -0
  14. package/dist/app/input.js.map +1 -0
  15. package/dist/backend.d.ts +48 -0
  16. package/dist/backend.d.ts.map +1 -0
  17. package/dist/backend.js +198 -0
  18. package/dist/backend.js.map +1 -0
  19. package/dist/core/containers.d.ts +3 -0
  20. package/dist/core/containers.d.ts.map +1 -0
  21. package/dist/core/containers.js +17 -0
  22. package/dist/core/containers.js.map +1 -0
  23. package/dist/core/core.d.ts +7 -0
  24. package/dist/core/core.d.ts.map +1 -0
  25. package/dist/core/core.js +23 -0
  26. package/dist/core/core.js.map +1 -0
  27. package/dist/core/error.d.ts +6 -0
  28. package/dist/core/error.d.ts.map +1 -0
  29. package/dist/core/error.js +26 -0
  30. package/dist/core/error.js.map +1 -0
  31. package/dist/core/math.d.ts +20 -0
  32. package/dist/core/math.d.ts.map +1 -0
  33. package/dist/core/math.js +48 -0
  34. package/dist/core/math.js.map +1 -0
  35. package/dist/core/serialization.d.ts +10 -0
  36. package/dist/core/serialization.d.ts.map +1 -0
  37. package/dist/core/serialization.js +86 -0
  38. package/dist/core/serialization.js.map +1 -0
  39. package/dist/core/string.d.ts +8 -0
  40. package/dist/core/string.d.ts.map +1 -0
  41. package/dist/core/string.js +47 -0
  42. package/dist/core/string.js.map +1 -0
  43. package/dist/core/time.d.ts +5 -0
  44. package/dist/core/time.d.ts.map +1 -0
  45. package/dist/core/time.js +32 -0
  46. package/dist/core/time.js.map +1 -0
  47. package/dist/misc.d.ts +2 -0
  48. package/dist/misc.d.ts.map +1 -0
  49. package/dist/misc.js +3 -0
  50. package/dist/misc.js.map +1 -0
  51. package/package.json +69 -0
@@ -0,0 +1,20 @@
1
+ export type V2 = {
2
+ x: number;
3
+ y: number;
4
+ };
5
+ export declare function V2Clone(other: V2): V2;
6
+ export declare function V2Add(v1: V2, v2: V2): V2;
7
+ export declare function V2WithX(v2: V2): {
8
+ x: number;
9
+ y: number;
10
+ };
11
+ export declare function V2WithY(v2: V2): {
12
+ x: number;
13
+ y: number;
14
+ };
15
+ export declare function ParseNumberStrict(str: string): number;
16
+ export declare function GetRandomBool(): boolean;
17
+ export declare function GetRandomBoolWeighted(weight: number): boolean;
18
+ export declare function GetRandomInt(min: number, max: number): number;
19
+ export declare function GetRandomIntWithAbsoluteValue(min: number, max: number): number;
20
+ //# sourceMappingURL=math.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"math.d.ts","sourceRoot":"","sources":["../../src/core/math.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,EAAE,GAAG;IACb,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACb,CAAA;AAED,wBAAgB,OAAO,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,CAGrC;AAED,wBAAgB,KAAK,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAGxC;AAED,wBAAgB,OAAO,CAAC,EAAE,EAAE,EAAE;;;EAG7B;AAED,wBAAgB,OAAO,CAAC,EAAE,EAAE,EAAE;;;EAG7B;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CASrD;AAED,wBAAgB,aAAa,IAAI,OAAO,CAGvC;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAG7D;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAG7D;AAED,wBAAgB,6BAA6B,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAS9E"}
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.V2Clone = V2Clone;
4
+ exports.V2Add = V2Add;
5
+ exports.V2WithX = V2WithX;
6
+ exports.V2WithY = V2WithY;
7
+ exports.ParseNumberStrict = ParseNumberStrict;
8
+ exports.GetRandomBool = GetRandomBool;
9
+ exports.GetRandomBoolWeighted = GetRandomBoolWeighted;
10
+ exports.GetRandomInt = GetRandomInt;
11
+ exports.GetRandomIntWithAbsoluteValue = GetRandomIntWithAbsoluteValue;
12
+ function V2Clone(other) {
13
+ return { x: other.x, y: other.y };
14
+ }
15
+ function V2Add(v1, v2) {
16
+ return { x: v1.x + v2.x, y: v1.y + v2.y };
17
+ }
18
+ function V2WithX(v2) {
19
+ return { x: v2.x, y: 0 };
20
+ }
21
+ function V2WithY(v2) {
22
+ return { x: 0, y: v2.y };
23
+ }
24
+ function ParseNumberStrict(str) {
25
+ str = str.trim();
26
+ const value = Number(str);
27
+ if (isNaN(value))
28
+ throw new Error(`${str} is not a number`);
29
+ return value;
30
+ }
31
+ function GetRandomBool() {
32
+ return Math.random() < 0.5;
33
+ }
34
+ function GetRandomBoolWeighted(weight) {
35
+ return Math.random() < weight;
36
+ }
37
+ function GetRandomInt(min, max) {
38
+ return Math.floor(Math.random() * (max - min + 1)) + min;
39
+ }
40
+ function GetRandomIntWithAbsoluteValue(min, max) {
41
+ let result;
42
+ if (GetRandomBool())
43
+ result = GetRandomInt(min, max);
44
+ else
45
+ result = GetRandomInt(-max, -min);
46
+ return result;
47
+ }
48
+ //# sourceMappingURL=math.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"math.js","sourceRoot":"","sources":["../../src/core/math.ts"],"names":[],"mappings":";;AAKA,0BAGC;AAED,sBAGC;AAED,0BAGC;AAED,0BAGC;AAED,8CASC;AAED,sCAGC;AAED,sDAGC;AAED,oCAGC;AAED,sEASC;AAvDD,SAAgB,OAAO,CAAC,KAAS;IAE7B,OAAO,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,EAAC,CAAC;AACrC,CAAC;AAED,SAAgB,KAAK,CAAC,EAAM,EAAE,EAAM;IAEhC,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC;AAC7C,CAAC;AAED,SAAgB,OAAO,CAAC,EAAM;IAE1B,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAC,CAAC;AAC5B,CAAC;AAED,SAAgB,OAAO,CAAC,EAAM;IAE1B,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC;AAC7B,CAAC;AAED,SAAgB,iBAAiB,CAAC,GAAW;IAEzC,GAAG,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IAEjB,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAC1B,IAAI,KAAK,CAAC,KAAK,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,GAAG,GAAG,kBAAkB,CAAC,CAAC;IAE9C,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,SAAgB,aAAa;IAEzB,OAAO,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC;AAC/B,CAAC;AAED,SAAgB,qBAAqB,CAAC,MAAc;IAEhD,OAAO,IAAI,CAAC,MAAM,EAAE,GAAG,MAAM,CAAC;AAClC,CAAC;AAED,SAAgB,YAAY,CAAC,GAAW,EAAE,GAAW;IAEjD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;AAC7D,CAAC;AAED,SAAgB,6BAA6B,CAAC,GAAW,EAAE,GAAW;IAElE,IAAI,MAAc,CAAC;IACnB,IAAI,aAAa,EAAE;QACf,MAAM,GAAG,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;;QAEhC,MAAM,GAAG,YAAY,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;IAEtC,OAAO,MAAM,CAAC;AAClB,CAAC"}
@@ -0,0 +1,10 @@
1
+ export declare function CopyBuffer(src: ArrayBuffer, dest: ArrayBuffer, offset: number): number;
2
+ export declare function SizeStringToArrayBuffer_Small(str: string): number;
3
+ export declare function SizeStringToArrayBuffer_Large(str: string): number;
4
+ export declare function StringToArrayBuffer_Small(str: string): ArrayBuffer;
5
+ export declare function StringToArrayBuffer_Large(str: string): ArrayBuffer;
6
+ export declare function ArrayBufferToString_Small(buffer: ArrayBuffer, offset?: number): [string, number];
7
+ export declare function ArrayBufferToString_Large(buffer: ArrayBuffer, offset?: number): [string, number];
8
+ export declare function ArrayBufferToBase64String(buffer: ArrayBuffer): string;
9
+ export declare function Base64StringToArrayBuffer(base64: string): ArrayBuffer;
10
+ //# sourceMappingURL=serialization.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serialization.d.ts","sourceRoot":"","sources":["../../src/core/serialization.ts"],"names":[],"mappings":"AAEA,wBAAgB,UAAU,CAAC,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAOtF;AAED,wBAAgB,6BAA6B,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAQjE;AAED,wBAAgB,6BAA6B,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAQjE;AAED,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CAelE;AAED,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CAiBlE;AAED,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,GAAE,MAAU,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAQnG;AAED,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,GAAE,MAAU,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAQnG;AAED,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAUrE;AAED,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,CAUrE"}
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CopyBuffer = CopyBuffer;
4
+ exports.SizeStringToArrayBuffer_Small = SizeStringToArrayBuffer_Small;
5
+ exports.SizeStringToArrayBuffer_Large = SizeStringToArrayBuffer_Large;
6
+ exports.StringToArrayBuffer_Small = StringToArrayBuffer_Small;
7
+ exports.StringToArrayBuffer_Large = StringToArrayBuffer_Large;
8
+ exports.ArrayBufferToString_Small = ArrayBufferToString_Small;
9
+ exports.ArrayBufferToString_Large = ArrayBufferToString_Large;
10
+ exports.ArrayBufferToBase64String = ArrayBufferToBase64String;
11
+ exports.Base64StringToArrayBuffer = Base64StringToArrayBuffer;
12
+ const error_1 = require("./error");
13
+ function CopyBuffer(src, dest, offset) {
14
+ const srcView = new Uint8Array(src);
15
+ const destView = new Uint8Array(dest);
16
+ destView.set(srcView, offset);
17
+ return srcView.length;
18
+ }
19
+ function SizeStringToArrayBuffer_Small(str) {
20
+ const encoder = new TextEncoder(); // UTF-8 encoder
21
+ const encoded = encoder.encode(str); // Uint8Array with bytes of str (ASCII-safe)
22
+ (0, error_1.MyAssert)(encoded.length < 255, "String too long (max 255 chars)");
23
+ return 1 + encoded.length;
24
+ }
25
+ function SizeStringToArrayBuffer_Large(str) {
26
+ const encoder = new TextEncoder();
27
+ const encoded = encoder.encode(str);
28
+ (0, error_1.MyAssert)(encoded.length < 65535, "String too long (max 65535 bytes)");
29
+ return 2 + encoded.length; // 2 bytes for length + string bytes
30
+ }
31
+ function StringToArrayBuffer_Small(str) {
32
+ const encoder = new TextEncoder(); // UTF-8 encoder
33
+ const encoded = encoder.encode(str); // Uint8Array with bytes of str (ASCII-safe)
34
+ (0, error_1.MyAssert)(encoded.length < 255, "String too long (max 255 chars)");
35
+ // +1 for the length byte
36
+ const buffer = new ArrayBuffer(1 + encoded.length);
37
+ const view = new Uint8Array(buffer);
38
+ view[0] = encoded.length; // first byte = string length
39
+ view.set(encoded, 1); // copy string bytes after length
40
+ return buffer;
41
+ }
42
+ function StringToArrayBuffer_Large(str) {
43
+ const encoder = new TextEncoder();
44
+ const encoded = encoder.encode(str);
45
+ (0, error_1.MyAssert)(encoded.length < 65535, "String too long (max 65535 bytes)");
46
+ const buffer = new ArrayBuffer(2 + encoded.length);
47
+ const view = new Uint8Array(buffer);
48
+ // Store length in first 2 bytes (big-endian)
49
+ view[0] = (encoded.length >> 8) & 0xFF; // high byte
50
+ view[1] = encoded.length & 0xFF; // low byte
51
+ view.set(encoded, 2); // copy string bytes after length
52
+ return buffer;
53
+ }
54
+ function ArrayBufferToString_Small(buffer, offset = 0) {
55
+ const view = new Uint8Array(buffer, offset);
56
+ const length = view[0]; // first byte = length
57
+ const encoded = view.slice(1, 1 + length); // extract string bytes
58
+ const decoder = new TextDecoder();
59
+ return [decoder.decode(encoded), length + 1];
60
+ }
61
+ function ArrayBufferToString_Large(buffer, offset = 0) {
62
+ const view = new Uint8Array(buffer, offset);
63
+ const length = (view[0] << 8) | view[1];
64
+ const encoded = view.slice(2, 2 + length);
65
+ const decoder = new TextDecoder();
66
+ return [decoder.decode(encoded), length + 2];
67
+ }
68
+ function ArrayBufferToBase64String(buffer) {
69
+ let binary = "";
70
+ const bytes = new Uint8Array(buffer);
71
+ const len = bytes.byteLength;
72
+ for (let i = 0; i < len; i++) {
73
+ binary += String.fromCharCode(bytes[i]);
74
+ }
75
+ return btoa(binary); // base64 encode
76
+ }
77
+ function Base64StringToArrayBuffer(base64) {
78
+ const binary = atob(base64); // base64 decode
79
+ const len = binary.length;
80
+ const bytes = new Uint8Array(len);
81
+ for (let i = 0; i < len; i++) {
82
+ bytes[i] = binary.charCodeAt(i);
83
+ }
84
+ return bytes.buffer;
85
+ }
86
+ //# sourceMappingURL=serialization.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serialization.js","sourceRoot":"","sources":["../../src/core/serialization.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ export declare function HashStringToInt(str: string): number;
2
+ export declare function EscapeRegex(str: string): string;
3
+ export declare function CharIsAlphanumeric(char: string): boolean;
4
+ export declare function IsHexDigit(char: string): boolean;
5
+ export declare function IsValidHexColorString(str: string): boolean;
6
+ export declare function ExtractHexColor(str: string): string | undefined;
7
+ export declare function HexDigitToNumber(char: string): number | undefined;
8
+ //# sourceMappingURL=string.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"string.d.ts","sourceRoot":"","sources":["../../src/core/string.ts"],"names":[],"mappings":"AAAA,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAOnD;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAG/C;AAID,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAQxD;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEhD;AAED,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAE1D;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAK/D;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAKjE"}
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.HashStringToInt = HashStringToInt;
4
+ exports.EscapeRegex = EscapeRegex;
5
+ exports.CharIsAlphanumeric = CharIsAlphanumeric;
6
+ exports.IsHexDigit = IsHexDigit;
7
+ exports.IsValidHexColorString = IsValidHexColorString;
8
+ exports.ExtractHexColor = ExtractHexColor;
9
+ exports.HexDigitToNumber = HexDigitToNumber;
10
+ function HashStringToInt(str) {
11
+ let hash = 0x811c9dc5; // FNV offset basis
12
+ for (let i = 0; i < str.length; i++) {
13
+ hash ^= str.charCodeAt(i);
14
+ hash = Math.imul(hash, 0x01000193); // FNV prime
15
+ }
16
+ return hash >>> 0; // force unsigned 32-bit
17
+ }
18
+ function EscapeRegex(str) {
19
+ return str.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
20
+ }
21
+ function CharIsAlphanumeric(char) {
22
+ if (char.length > 1)
23
+ return false;
24
+ const code = char.charCodeAt(0);
25
+ return (code >= 48 && code <= 57) || // 0-9
26
+ (code >= 65 && code <= 90) || // A-Z
27
+ (code >= 97 && code <= 122); // a-z
28
+ }
29
+ function IsHexDigit(char) {
30
+ return /^[0-9a-fA-F]$/.test(char);
31
+ }
32
+ function IsValidHexColorString(str) {
33
+ return /^[0-9a-fA-F]{6}$/.test(str);
34
+ }
35
+ function ExtractHexColor(str) {
36
+ if (IsValidHexColorString(str)) {
37
+ return `#${str}`;
38
+ }
39
+ return undefined;
40
+ }
41
+ function HexDigitToNumber(char) {
42
+ if (/^[0-9a-fA-F]$/.test(char)) {
43
+ return parseInt(char, 16);
44
+ }
45
+ return undefined;
46
+ }
47
+ //# sourceMappingURL=string.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"string.js","sourceRoot":"","sources":["../../src/core/string.ts"],"names":[],"mappings":";;AAAA,0CAOC;AAED,kCAGC;AAID,gDAQC;AAED,gCAEC;AAED,sDAEC;AAED,0CAKC;AAED,4CAKC;AA9CD,SAAgB,eAAe,CAAC,GAAW;IACvC,IAAI,IAAI,GAAG,UAAU,CAAC,CAAC,mBAAmB;IAC1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAClC,IAAI,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAC1B,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY;IACpD,CAAC;IACD,OAAO,IAAI,KAAK,CAAC,CAAC,CAAC,wBAAwB;AAC/C,CAAC;AAED,SAAgB,WAAW,CAAC,GAAW;IAEnC,OAAO,GAAG,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;AACtD,CAAC;AAID,SAAgB,kBAAkB,CAAC,IAAY;IAE3C,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;QACf,OAAO,KAAK,CAAC;IACjB,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAChC,OAAO,CAAC,IAAI,IAAI,EAAE,IAAI,IAAI,IAAI,EAAE,CAAC,IAAK,MAAM;QACxC,CAAC,IAAI,IAAI,EAAE,IAAI,IAAI,IAAI,EAAE,CAAC,IAAK,MAAM;QACrC,CAAC,IAAI,IAAI,EAAE,IAAI,IAAI,IAAI,GAAG,CAAC,CAAC,CAAG,MAAM;AAC7C,CAAC;AAED,SAAgB,UAAU,CAAC,IAAY;IACnC,OAAO,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACtC,CAAC;AAED,SAAgB,qBAAqB,CAAC,GAAW;IAC7C,OAAO,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACxC,CAAC;AAED,SAAgB,eAAe,CAAC,GAAW;IACvC,IAAI,qBAAqB,CAAC,GAAG,CAAC,EAAE,CAAC;QAC7B,OAAO,IAAI,GAAG,EAAE,CAAC;IACrB,CAAC;IACD,OAAO,SAAS,CAAC;AACrB,CAAC;AAED,SAAgB,gBAAgB,CAAC,IAAY;IACzC,IAAI,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7B,OAAO,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAC9B,CAAC;IACD,OAAO,SAAS,CAAC;AACrB,CAAC"}
@@ -0,0 +1,5 @@
1
+ export declare const MILLISECONDS_PER_MINUTE: number;
2
+ export declare function IsPastTimeMinutes(minutes: number, checkTime: number): boolean;
3
+ export declare function DateAsString(time: number): string;
4
+ export declare function DayString(time: number): string;
5
+ //# sourceMappingURL=time.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"time.d.ts","sourceRoot":"","sources":["../../src/core/time.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,uBAAuB,EAAE,MAAkB,CAAC;AAazD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,WAInE;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAI,MAAM,CAIlD;AAGD,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAS9C"}
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MILLISECONDS_PER_MINUTE = void 0;
4
+ exports.IsPastTimeMinutes = IsPastTimeMinutes;
5
+ exports.DateAsString = DateAsString;
6
+ exports.DayString = DayString;
7
+ exports.MILLISECONDS_PER_MINUTE = 60 * 1000;
8
+ const showDateOption = {
9
+ weekday: "short",
10
+ month: "short",
11
+ day: "numeric",
12
+ hour: "numeric",
13
+ minute: "2-digit",
14
+ second: "2-digit",
15
+ hour12: true,
16
+ };
17
+ function IsPastTimeMinutes(minutes, checkTime) {
18
+ const result = Date.now() - checkTime >= minutes * exports.MILLISECONDS_PER_MINUTE;
19
+ return result;
20
+ }
21
+ function DateAsString(time) {
22
+ const date = new Date(time);
23
+ return `${date.toLocaleString('en-US', showDateOption)}`;
24
+ }
25
+ function DayString(time) {
26
+ const date = new Date(time);
27
+ const year = date.getFullYear();
28
+ const month = String(date.getMonth() + 1).padStart(2, '0');
29
+ const day = String(date.getDate()).padStart(2, '0');
30
+ return `${year} ${month} ${day}`;
31
+ }
32
+ //# sourceMappingURL=time.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"time.js","sourceRoot":"","sources":["../../src/core/time.ts"],"names":[],"mappings":";;;AAaA,8CAIC;AAED,oCAIC;AAGD,8BASC;AAnCY,QAAA,uBAAuB,GAAW,EAAE,GAAG,IAAI,CAAC;AAEzD,MAAM,cAAc,GACpB;IACI,OAAO,EAAE,OAAO;IAChB,KAAK,EAAE,OAAO;IACd,GAAG,EAAE,SAAS;IACd,IAAI,EAAE,SAAS;IACf,MAAM,EAAE,SAAS;IACjB,MAAM,EAAE,SAAS;IACjB,MAAM,EAAE,IAAI;CACf,CAAA;AAED,SAAgB,iBAAiB,CAAC,OAAe,EAAE,SAAiB;IAEhE,MAAM,MAAM,GAAY,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,IAAI,OAAO,GAAG,+BAAuB,CAAC;IACpF,OAAO,MAAM,CAAC;AAClB,CAAC;AAED,SAAgB,YAAY,CAAC,IAAY;IAErC,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5B,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,cAAc,CAAC,EAAE,CAAC;AAC7D,CAAC;AAGD,SAAgB,SAAS,CAAC,IAAY;IAElC,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;IAE5B,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IAChC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC3D,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAEpD,OAAO,GAAG,IAAI,IAAI,KAAK,IAAI,GAAG,EAAE,CAAC;AACrC,CAAC"}
package/dist/misc.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=misc.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"misc.d.ts","sourceRoot":"","sources":["../src/misc.ts"],"names":[],"mappings":""}
package/dist/misc.js ADDED
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=misc.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"misc.js","sourceRoot":"","sources":["../src/misc.ts"],"names":[],"mappings":""}
package/package.json ADDED
@@ -0,0 +1,69 @@
1
+ {
2
+ "name": "@myeiter/mcy-web",
3
+ "version": "0.0.1",
4
+ "exports": {
5
+ ".": {
6
+ "import": "./dist/core/core.js",
7
+ "require": "./dist/core/core.js",
8
+ "types": "./dist/core/core.d.ts"
9
+ },
10
+ "./app": {
11
+ "import": "./dist/app/app.js",
12
+ "require": "./dist/app/app.js",
13
+ "types": "./dist/app/app.d.ts"
14
+ },
15
+ "./backend": {
16
+ "import": "./dist/backend.js",
17
+ "require": "./dist/backend.js",
18
+ "types": "./dist/backend.d.ts"
19
+ }
20
+ },
21
+ "files": [
22
+ "dist",
23
+ "README.md",
24
+ "LICENSE"
25
+ ],
26
+ "main": "dist/core/core.js",
27
+ "types": "dist/core/core.d.ts",
28
+ "scripts": {
29
+ "build": "tsc",
30
+ "prepublishOnly": "npm run build",
31
+ "dev": "vite --config frontend_demo/vite.config.js"
32
+ },
33
+ "repository": {
34
+ "type": "git",
35
+ "url": "git+https://github.com/Aceplace/MCY_Web.git"
36
+ },
37
+ "keywords": [],
38
+ "author": "Michael Yeiter",
39
+ "license": "MIT",
40
+ "bugs": {
41
+ "url": "https://github.com/Aceplace/MCY_Web/issues"
42
+ },
43
+ "homepage": "https://github.com/Aceplace/MCY_Web#readme",
44
+ "description": "",
45
+ "dependencies": {
46
+ "bcrypt": "^6.0.0",
47
+ "cookie-parser": "^1.4.7",
48
+ "cors": "^2.8.5",
49
+ "dotenv": "^17.2.1",
50
+ "express": "^5.1.0",
51
+ "jsonwebtoken": "^9.0.2",
52
+ "mongoose": "^8.17.0",
53
+ "nodemailer": "^7.0.6",
54
+ "ssl-express-www": "^3.2.1"
55
+ },
56
+ "devDependencies": {
57
+ "@types/bcrypt": "^6.0.0",
58
+ "@types/cookie-parser": "^1.4.9",
59
+ "@types/cors": "^2.8.19",
60
+ "@types/express": "^5.0.3",
61
+ "@types/jsonwebtoken": "^9.0.10",
62
+ "@types/node": "^24.2.0",
63
+ "@types/nodemailer": "^7.0.2",
64
+ "ts-node": "^10.9.2",
65
+ "typescript": "^5.9.3",
66
+ "vite": "^7.1.10",
67
+ "vite-plugin-checker": "^0.11.0"
68
+ }
69
+ }