wedance-shared 1.0.22 → 1.0.24

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.
@@ -1,4 +1,4 @@
1
- import { Timestamp } from "../Timestamp";
1
+ import { Timestamp } from "firebase/firestore";
2
2
  export type GoogleAnalyticsResponse = {
3
3
  dimensionHeaders: {
4
4
  name: string;
@@ -1,4 +1,4 @@
1
- import { Timestamp } from "../Timestamp";
1
+ import { Timestamp } from "firebase/firestore";
2
2
  import { City } from "./city";
3
3
  import { OrganizerName } from "./organizer";
4
4
  import { EventTicket } from "./ticket";
@@ -1,4 +1,4 @@
1
- import { Timestamp } from "../../Timestamp";
1
+ import { Timestamp } from "firebase/firestore";
2
2
  import { Links } from "../event";
3
3
  import { EventTicket } from "wedance-shared";
4
4
  /**
@@ -1,4 +1,4 @@
1
- import { Timestamp } from "../../Timestamp";
1
+ import { Timestamp } from "firebase/firestore";
2
2
  import { Role } from "../user";
3
3
  export type FestivalUser = {
4
4
  id: string;
@@ -1,4 +1,4 @@
1
- import { Timestamp } from "../Timestamp";
1
+ import { Timestamp } from "firebase/firestore";
2
2
  export type TicketStatus = "Confirmed" | "Cancelled" | "Refunded" | "Expired" | "Used" | "Transferred";
3
3
  export type Ticket = {
4
4
  /**
@@ -1,10 +1,11 @@
1
- import { Timestamp } from "../Timestamp";
1
+ import { Timestamp } from "firebase/firestore";
2
2
  /**
3
3
  * Converts a Firestore Timestamp to a JavaScript Date object
4
4
  * @param timestamp Firestore Timestamp or null/undefined
5
5
  * @returns JavaScript Date object or null if input is null/undefined
6
6
  */
7
7
  export declare const timestampToDate: (timestamp: Timestamp | null | undefined) => Date | null;
8
+ export declare function timestampToIsoString(timestamp: Timestamp): string;
8
9
  /**
9
10
  * Converts a JavaScript Date to a Firestore Timestamp
10
11
  * @param date JavaScript Date object or null/undefined
@@ -1,6 +1,6 @@
1
1
  import dayjs from "dayjs";
2
2
  import relativeTime from "dayjs/plugin/relativeTime";
3
- import { Timestamp } from "../Timestamp";
3
+ import { Timestamp } from "firebase/firestore";
4
4
  // Register the relativeTime plugin
5
5
  dayjs.extend(relativeTime);
6
6
  /**
@@ -13,6 +13,9 @@ export const timestampToDate = (timestamp) => {
13
13
  return null;
14
14
  return new Date(timestamp.seconds * 1000 + timestamp.nanoseconds / 1000000);
15
15
  };
16
+ export function timestampToIsoString(timestamp) {
17
+ return new Date(timestamp.seconds * 1000).toISOString();
18
+ }
16
19
  /**
17
20
  * Converts a JavaScript Date to a Firestore Timestamp
18
21
  * @param date JavaScript Date object or null/undefined
@@ -1 +1 @@
1
- {"version":3,"file":"date.js","sourceRoot":"","sources":["../../src/utils/date.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,YAAY,MAAM,2BAA2B,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,mCAAmC;AACnC,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;AAE3B;;;;GAIG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,SAAuC,EAC1B,EAAE;IACf,IAAI,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IAC5B,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC,WAAW,GAAG,OAAO,CAAC,CAAC;AAC9E,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,IAA6B,EACX,EAAE;IACpB,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IACvB,OAAO,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAClC,CAAC,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,SAAuC,EACvC,YAAoB,aAAa,EACjC,eAAuB,EAAE,EACjB,EAAE;IACV,IAAI,CAAC,SAAS;QAAE,OAAO,YAAY,CAAC;IAEpC,IAAI,CAAC;QACH,4BAA4B;QAC5B,MAAM,IAAI,GAAG,IAAI,IAAI,CACnB,SAAS,CAAC,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC,WAAW,GAAG,OAAO,CAC3D,CAAC;QAEF,8DAA8D;QAC9D,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACvC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,6BAA6B,EAAE,KAAK,CAAC,CAAC;QACpD,OAAO,YAAY,CAAC;IACtB,CAAC;AACH,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,SAAuC,EAC9B,EAAE;IACX,IAAI,CAAC,SAAS;QAAE,OAAO,KAAK,CAAC;IAE7B,6CAA6C;IAC7C,MAAM,eAAe,GACnB,SAAS,CAAC,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC,WAAW,GAAG,OAAO,CAAC;IAC7D,OAAO,eAAe,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;AACtC,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,SAAuC,EAC9B,EAAE;IACX,IAAI,CAAC,SAAS;QAAE,OAAO,KAAK,CAAC;IAE7B,6CAA6C;IAC7C,MAAM,eAAe,GACnB,SAAS,CAAC,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC,WAAW,GAAG,OAAO,CAAC;IAC7D,OAAO,eAAe,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;AACtC,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,SAAuC,EAC/B,EAAE;IACV,IAAI,CAAC,SAAS;QAAE,OAAO,EAAE,CAAC;IAE1B,IAAI,CAAC;QACH,6CAA6C;QAC7C,MAAM,eAAe,GACnB,SAAS,CAAC,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC,WAAW,GAAG,OAAO,CAAC;QAE7D,iCAAiC;QACjC,OAAO,KAAK,CAAC,eAAe,CAAC,CAAC,OAAO,EAAE,CAAC;IAC1C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,iCAAiC,EAAE,KAAK,CAAC,CAAC;QACxD,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC,CAAC"}
1
+ {"version":3,"file":"date.js","sourceRoot":"","sources":["../../src/utils/date.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wedance-shared",
3
- "version": "1.0.22",
3
+ "version": "1.0.24",
4
4
  "description": "This repository contains shared TypeScript types and interfaces used across multiple WeDance applications:",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -36,6 +36,7 @@
36
36
  },
37
37
  "type": "module",
38
38
  "dependencies": {
39
- "dayjs": "^1.11.13"
39
+ "dayjs": "^1.11.13",
40
+ "firebase": "^11.5.0"
40
41
  }
41
42
  }
@@ -1,4 +1,4 @@
1
- import { Timestamp } from "../Timestamp";
1
+ import { Timestamp } from "firebase/firestore";
2
2
 
3
3
  export type GoogleAnalyticsResponse = {
4
4
  dimensionHeaders: { name: string }[];
@@ -1,4 +1,4 @@
1
- import { Timestamp } from "../Timestamp";
1
+ import { Timestamp } from "firebase/firestore";
2
2
  import { City } from "./city";
3
3
  import { OrganizerName } from "./organizer";
4
4
  import { EventTicket } from "./ticket";
@@ -1,4 +1,4 @@
1
- import { Timestamp } from "../../Timestamp";
1
+ import { Timestamp } from "firebase/firestore";
2
2
  import { Links } from "../event";
3
3
  import { DanceTag, EventTicket } from "wedance-shared";
4
4
 
@@ -1,4 +1,4 @@
1
- import { Timestamp } from "../../Timestamp";
1
+ import { Timestamp } from "firebase/firestore";
2
2
  import { Role } from "../user";
3
3
 
4
4
  export type FestivalUser = {
@@ -1,4 +1,4 @@
1
- import { Timestamp } from "../Timestamp";
1
+ import { Timestamp } from "firebase/firestore";
2
2
 
3
3
  export type TicketStatus =
4
4
  | "Confirmed"
package/src/utils/date.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import dayjs from "dayjs";
2
2
  import relativeTime from "dayjs/plugin/relativeTime";
3
- import { Timestamp } from "../Timestamp";
3
+ import { Timestamp } from "firebase/firestore";
4
4
 
5
5
  // Register the relativeTime plugin
6
6
  dayjs.extend(relativeTime);
@@ -17,6 +17,10 @@ export const timestampToDate = (
17
17
  return new Date(timestamp.seconds * 1000 + timestamp.nanoseconds / 1000000);
18
18
  };
19
19
 
20
+ export function timestampToIsoString(timestamp: Timestamp) {
21
+ return new Date(timestamp.seconds * 1000).toISOString();
22
+ }
23
+
20
24
  /**
21
25
  * Converts a JavaScript Date to a Firestore Timestamp
22
26
  * @param date JavaScript Date object or null/undefined
@@ -1,11 +0,0 @@
1
- export declare class Timestamp {
2
- seconds: number;
3
- nanoseconds: number;
4
- constructor(seconds: number, nanoseconds: number);
5
- static now(): Timestamp;
6
- static fromDate(date: Date): Timestamp;
7
- static fromMillis(milliseconds: number): Timestamp;
8
- toDate(): Date;
9
- toMillis(): number;
10
- isEqual(other: Timestamp): boolean;
11
- }
package/dist/Timestamp.js DELETED
@@ -1,36 +0,0 @@
1
- export class Timestamp {
2
- constructor(seconds, nanoseconds) {
3
- this.seconds = seconds;
4
- this.nanoseconds = nanoseconds;
5
- if (nanoseconds < 0 || nanoseconds >= 1e9) {
6
- throw new RangeError("Nanoseconds must be between 0 and 999,999,999");
7
- }
8
- }
9
- static now() {
10
- const now = Date.now(); // milliseconds
11
- const seconds = Math.floor(now / 1000);
12
- const nanoseconds = (now % 1000) * 1e6;
13
- return new Timestamp(seconds, nanoseconds);
14
- }
15
- static fromDate(date) {
16
- const millis = date.getTime();
17
- const seconds = Math.floor(millis / 1000);
18
- const nanoseconds = (millis % 1000) * 1e6;
19
- return new Timestamp(seconds, nanoseconds);
20
- }
21
- static fromMillis(milliseconds) {
22
- const seconds = Math.floor(milliseconds / 1000);
23
- const nanoseconds = (milliseconds % 1000) * 1e6;
24
- return new Timestamp(seconds, nanoseconds);
25
- }
26
- toDate() {
27
- return new Date(this.seconds * 1000 + this.nanoseconds / 1e6);
28
- }
29
- toMillis() {
30
- return this.seconds * 1000 + this.nanoseconds / 1e6;
31
- }
32
- isEqual(other) {
33
- return (this.seconds === other.seconds && this.nanoseconds === other.nanoseconds);
34
- }
35
- }
36
- //# sourceMappingURL=Timestamp.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Timestamp.js","sourceRoot":"","sources":["../src/Timestamp.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,SAAS;IAIpB,YAAY,OAAe,EAAE,WAAmB;QAC9C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAE/B,IAAI,WAAW,GAAG,CAAC,IAAI,WAAW,IAAI,GAAG,EAAE,CAAC;YAC1C,MAAM,IAAI,UAAU,CAAC,+CAA+C,CAAC,CAAC;QACxE,CAAC;IACH,CAAC;IAED,MAAM,CAAC,GAAG;QACR,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,eAAe;QACvC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC;QACvC,MAAM,WAAW,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC;QACvC,OAAO,IAAI,SAAS,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IAC7C,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,IAAU;QACxB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC9B,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;QAC1C,MAAM,WAAW,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC;QAC1C,OAAO,IAAI,SAAS,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IAC7C,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,YAAoB;QACpC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;QAChD,MAAM,WAAW,GAAG,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC;QAChD,OAAO,IAAI,SAAS,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IAC7C,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,IAAI,GAAG,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC,CAAC;IAChE,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,OAAO,GAAG,IAAI,GAAG,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC;IACtD,CAAC;IAED,OAAO,CAAC,KAAgB;QACtB,OAAO,CACL,IAAI,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,WAAW,KAAK,KAAK,CAAC,WAAW,CACzE,CAAC;IACJ,CAAC;CACF"}
package/src/Timestamp.ts DELETED
@@ -1,47 +0,0 @@
1
- export class Timestamp {
2
- seconds: number;
3
- nanoseconds: number;
4
-
5
- constructor(seconds: number, nanoseconds: number) {
6
- this.seconds = seconds;
7
- this.nanoseconds = nanoseconds;
8
-
9
- if (nanoseconds < 0 || nanoseconds >= 1e9) {
10
- throw new RangeError("Nanoseconds must be between 0 and 999,999,999");
11
- }
12
- }
13
-
14
- static now(): Timestamp {
15
- const now = Date.now(); // milliseconds
16
- const seconds = Math.floor(now / 1000);
17
- const nanoseconds = (now % 1000) * 1e6;
18
- return new Timestamp(seconds, nanoseconds);
19
- }
20
-
21
- static fromDate(date: Date): Timestamp {
22
- const millis = date.getTime();
23
- const seconds = Math.floor(millis / 1000);
24
- const nanoseconds = (millis % 1000) * 1e6;
25
- return new Timestamp(seconds, nanoseconds);
26
- }
27
-
28
- static fromMillis(milliseconds: number): Timestamp {
29
- const seconds = Math.floor(milliseconds / 1000);
30
- const nanoseconds = (milliseconds % 1000) * 1e6;
31
- return new Timestamp(seconds, nanoseconds);
32
- }
33
-
34
- toDate(): Date {
35
- return new Date(this.seconds * 1000 + this.nanoseconds / 1e6);
36
- }
37
-
38
- toMillis(): number {
39
- return this.seconds * 1000 + this.nanoseconds / 1e6;
40
- }
41
-
42
- isEqual(other: Timestamp): boolean {
43
- return (
44
- this.seconds === other.seconds && this.nanoseconds === other.nanoseconds
45
- );
46
- }
47
- }