Skip to content

Commit 49a3c8a

Browse files
committed
Merge branch 'develop' into 74-speakers-listing-view
2 parents 8ae72d1 + a2dd33a commit 49a3c8a

File tree

130 files changed

+472
-316
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

130 files changed

+472
-316
lines changed

cloud/functions/package-lock.json

Lines changed: 13 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

cloud/functions/package.json

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,12 @@
22
"name": "functions",
33
"scripts": {
44
"lint": "eslint --ext .js,.ts .",
5-
"build": "tsc",
6-
"build:watch": "tsc --watch",
5+
"build": "tsc --build",
6+
"build:watch": "tsc --build --watch",
77
"serve": "npm run build && env-cmd -f ./.env.local firebase emulators:start --import data --export-on-exit --inspect-functions --project ${FIREBASE_PROJECT_NAME:-voxxrin-v3}",
88
"shell": "npm run build && firebase functions:shell",
99
"start": "npm run shell",
10+
"predeploy": "npm run build && cp -r ../../shared/dist ./lib/shared",
1011
"deploy": "firebase deploy --only functions --project ${FIREBASE_PROJECT_NAME:-voxxrin-v3}",
1112
"logs": "firebase functions:log",
1213
"test": "vitest"
@@ -15,7 +16,7 @@
1516
"engines": {
1617
"node": "20"
1718
},
18-
"main": "lib/cloud/functions/src/index.js",
19+
"main": "lib/cloud-functions/index.js",
1920
"dependencies": {
2021
"@googleapis/youtube": "15.0.0",
2122
"@js-temporal/polyfill": "^0.4.3",
@@ -28,13 +29,15 @@
2829
"isomorphic-dompurify": "2.14.0",
2930
"lodash": "^4.17.21",
3031
"marked": "13.0.2",
32+
"module-alias": "2.2.3",
3133
"string-similarity-js": "2.1.4",
3234
"ts-pattern": "5.1.1",
3335
"uuid": "9.0.0",
3436
"yaml": "2.3.2",
3537
"zod": "3.22.4"
3638
},
3739
"devDependencies": {
40+
"@types/module-alias": "2.0.4",
3841
"@types/uuid": "9.0.2",
3942
"@typescript-eslint/eslint-plugin": "^5.12.0",
4043
"@typescript-eslint/parser": "^5.12.0",
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
import moduleAlias from 'module-alias';
2+
3+
// This needs to be done as soon as possible in the loading process...
4+
5+
const isEmulator = !!process.env.FIREBASE_EMULATOR_HUB || !!process.env.FUNCTIONS_EMULATOR;
6+
moduleAlias.addAliases({
7+
// In Emulator (dev mode) it's easier to directly reference shared/dist folder (so that we don't need to copy its content into lib/shared/ folder)
8+
'@shared': isEmulator ? `${__dirname}/../../../../shared/dist`:`${__dirname}/../shared`,
9+
})

cloud/functions/src/crawlers/bdxio/crawler.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,18 +4,18 @@ import {
44
BreakTimeSlot,
55
DailySchedule, DetailedTalk, Room, ScheduleTimeSlot,
66
Speaker, Talk, TalksTimeSlot,
7-
} from "../../../../../shared/daily-schedule.firestore";
7+
} from "@shared/daily-schedule.firestore";
88
import * as cheerio from 'cheerio';
9-
import {ConferenceDescriptor} from "../../../../../shared/conference-descriptor.firestore";
10-
import {Day} from "../../../../../shared/event-list.firestore";
9+
import {ConferenceDescriptor} from "@shared/conference-descriptor.firestore";
10+
import {Day} from "@shared/event-list.firestore";
1111
import {
1212
BREAK_PARSER,
1313
BREAK_TIME_SLOT_PARSER,
1414
DAY_PARSER,
1515
EVENT_DESCRIPTOR_PARSER, SPEAKER_PARSER
1616
} from "../crawler-parsers";
1717
import {CrawlerKind} from "../crawl";
18-
import {ISODatetime} from "../../../../../shared/type-utils";
18+
import {ISODatetime} from "@shared/type-utils";
1919
import {Temporal} from "@js-temporal/polyfill";
2020
import {match, P} from "ts-pattern";
2121
import {http} from "../utils";

cloud/functions/src/crawlers/camping-des-speakers/crawler.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,16 @@ import {
44
BreakTimeSlot,
55
DailySchedule, DetailedTalk, ScheduleTimeSlot,
66
Speaker, TalksTimeSlot,
7-
} from "../../../../../shared/daily-schedule.firestore";
7+
} from "@shared/daily-schedule.firestore";
88
import * as cheerio from 'cheerio';
9-
import {ConferenceDescriptor} from "../../../../../shared/conference-descriptor.firestore";
9+
import {ConferenceDescriptor} from "@shared/conference-descriptor.firestore";
1010
import {
1111
BREAK_PARSER,
1212
BREAK_TIME_SLOT_PARSER,
1313
EVENT_DESCRIPTOR_PARSER
1414
} from "../crawler-parsers";
1515
import {CrawlerKind} from "../crawl";
16-
import {ISODatetime} from "../../../../../shared/type-utils";
16+
import {ISODatetime} from "@shared/type-utils";
1717
import {Temporal} from "@js-temporal/polyfill";
1818
import {http} from "../utils";
1919

cloud/functions/src/crawlers/codeurs-en-seine/crawler.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@ import {detailedTalksToSpeakersLineup, FullEvent} from "../../models/Event";
33
import {
44
Break, BreakTimeSlot, DailySchedule,
55
DetailedTalk, ScheduleTimeSlot, SocialLink, Speaker, Talk, TalksTimeSlot
6-
} from "../../../../../shared/daily-schedule.firestore";
7-
import {ConferenceDescriptor} from "../../../../../shared/conference-descriptor.firestore";
8-
import {Day} from "../../../../../shared/event-list.firestore";
6+
} from "@shared/daily-schedule.firestore";
7+
import {ConferenceDescriptor} from "@shared/conference-descriptor.firestore";
8+
import {Day} from "@shared/event-list.firestore";
99
import {
1010
BREAK_PARSER,
1111
BREAK_TIME_SLOT_PARSER,
@@ -14,7 +14,7 @@ import {
1414
THEMABLE_TALK_FORMAT_PARSER
1515
} from "../crawler-parsers";
1616
import {CrawlerKind} from "../crawl";
17-
import {ISODatetime, ISOLocalDate, Replace} from "../../../../../shared/type-utils";
17+
import {ISODatetime, ISOLocalDate, Replace} from "@shared/type-utils";
1818
import {Temporal} from "@js-temporal/polyfill";
1919
import {match, P} from "ts-pattern";
2020
import {GithubMDXCrawler} from "../github/GithubMDXCrawler";

cloud/functions/src/crawlers/crawl.ts

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@ import {db, info, error} from "../firebase"
22
import { FullEvent } from "../models/Event";
33
import {z} from "zod";
44
import {FIREBASE_CRAWLER_DESCRIPTOR_PARSER} from "./crawler-parsers";
5-
import {HexColor} from "../../../../shared/type-utils";
5+
import {HexColor} from "@shared/type-utils";
66
import {Temporal} from "@js-temporal/polyfill";
77
import {match, P} from "ts-pattern";
88
import {v4 as uuidv4} from "uuid"
9-
import {ConferenceOrganizerSpace} from "../../../../shared/conference-organizer-space.firestore";
9+
import {ConferenceOrganizerSpace} from "@shared/conference-organizer-space.firestore";
1010
import {eventLastUpdateRefreshed} from "../functions/firestore/firestore-utils";
1111
import {http} from "./utils";
1212
import {
@@ -16,18 +16,18 @@ import {
1616
Room, TalkAsset,
1717
TalkFormat,
1818
Track
19-
} from "../../../../shared/daily-schedule.firestore";
19+
} from "@shared/daily-schedule.firestore";
2020
import {ensureRoomsStatsFilledFor} from "../functions/firestore/services/stats-utils";
2121
import {getEventOrganizerToken, getFamilyOrganizerToken} from "../functions/firestore/services/publicTokens-utils";
2222
import {getCrawlersMatching} from "../functions/firestore/services/crawlers-utils";
23-
import {ListableEvent} from "../../../../shared/event-list.firestore";
24-
import {ConferenceDescriptor} from "../../../../shared/conference-descriptor.firestore";
25-
import {toValidFirebaseKey} from "../../../../shared/utilities/firebase.utils";
23+
import {ListableEvent} from "@shared/event-list.firestore";
24+
import {ConferenceDescriptor} from "@shared/conference-descriptor.firestore";
25+
import {toValidFirebaseKey} from "@shared/utilities/firebase.utils";
2626
import { sanitize as domPurifySanitize } from "isomorphic-dompurify";
2727
import { marked } from 'marked'
2828
import {
2929
resolvedEventFirestorePath,
30-
} from "../../../../shared/utilities/event-utils";
30+
} from "@shared/utilities/event-utils";
3131
import {createAllSpeakers} from "../functions/firestore/services/event-utils";
3232
import { DocumentSnapshot } from "firebase-admin/firestore";
3333

cloud/functions/src/crawlers/crawler-parsers.ts

Lines changed: 19 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import {z, ZodLiteral} from "zod";
2-
import {type ISODatetime, ISOLocalDate, ISOZonedTime} from "../../../../shared/type-utils";
3-
import {ConferenceDescriptor} from "../../../../shared/conference-descriptor.firestore";
4-
import {RecordingPlatform, ScheduleTimeSlot} from "../../../../shared/daily-schedule.firestore";
2+
import {type ISODatetime, ISOLocalDate, ISOZonedTime} from "@shared/type-utils";
3+
import {ConferenceDescriptor} from "@shared/conference-descriptor.firestore";
4+
import {RecordingPlatform, ScheduleTimeSlot} from "@shared/daily-schedule.firestore";
55
import {ISO_DATETIME_PARSER} from "../utils/zod-parsers";
66

77

@@ -46,15 +46,23 @@ export const THEMABLE_LANGUAGE_PARSER = z.object({
4646
themeColor: HEX_COLOR_PARSER
4747
})
4848

49+
export const THEME_COLORS_PARSER = z.object({
50+
primaryHex: HEX_COLOR_PARSER,
51+
primaryContrastHex: HEX_COLOR_PARSER,
52+
secondaryHex: HEX_COLOR_PARSER,
53+
secondaryContrastHex: HEX_COLOR_PARSER,
54+
tertiaryHex: HEX_COLOR_PARSER,
55+
tertiaryContrastHex: HEX_COLOR_PARSER
56+
})
57+
4958
export const EVENT_THEME_PARSER = z.object({
50-
colors: z.object({
51-
primaryHex: HEX_COLOR_PARSER,
52-
primaryContrastHex: HEX_COLOR_PARSER,
53-
secondaryHex: HEX_COLOR_PARSER,
54-
secondaryContrastHex: HEX_COLOR_PARSER,
55-
tertiaryHex: HEX_COLOR_PARSER,
56-
tertiaryContrastHex: HEX_COLOR_PARSER
57-
}),
59+
colors: z.union([
60+
THEME_COLORS_PARSER,
61+
z.object({
62+
light: THEME_COLORS_PARSER,
63+
dark: THEME_COLORS_PARSER,
64+
})
65+
]),
5866
headingCustomStyles: z.object({
5967
title: z.string().nullable(),
6068
subTitle: z.string().nullable(),

cloud/functions/src/crawlers/devoxx-scala/crawler.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,9 @@ import {
1818
TalksTimeSlot,
1919
ThemedTalkFormat,
2020
ThemedTrack
21-
} from "../../../../../shared/daily-schedule.firestore"
21+
} from "@shared/daily-schedule.firestore"
2222
import {detailedTalksToSpeakersLineup, FullEvent} from "../../models/Event";
23-
import {ISODatetime} from "../../../../../shared/type-utils";
23+
import {ISODatetime} from "@shared/type-utils";
2424
import {Temporal} from "@js-temporal/polyfill";
2525
import {z} from "zod";
2626
import {EVENT_DESCRIPTOR_PARSER, THEMABLE_TALK_FORMAT_PARSER, THEMABLE_TALK_TRACK_PARSER,} from "../crawler-parsers";

cloud/functions/src/crawlers/devoxx/crawler.ts

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,17 @@
11
import {info} from "../../firebase";
22

33
import {CfpDetailedSpeaker, CfpEvent, DevoxxRoom, DevoxxScheduleItem, DevoxxScheduleProposal,} from "./types"
4-
import {Break, SocialLink} from "../../../../../shared/daily-schedule.firestore"
4+
import {Break, SocialLink} from "@shared/daily-schedule.firestore"
55
import {FullEvent} from "../../models/Event";
6-
import {ISODatetime, ISOLocalDate} from "../../../../../shared/type-utils";
7-
import {Day} from "../../../../../shared/event-list.firestore";
6+
import {ISODatetime, ISOLocalDate} from "@shared/type-utils";
7+
import {Day} from "@shared/event-list.firestore";
88
import {Temporal} from "@js-temporal/polyfill";
99
import {z} from "zod";
10-
import {EVENT_DESCRIPTOR_PARSER, INFOS_PARSER, THEMABLE_TALK_FORMAT_PARSER} from "../crawler-parsers";
10+
import {
11+
EVENT_DESCRIPTOR_PARSER,
12+
INFOS_PARSER,
13+
THEMABLE_TALK_FORMAT_PARSER
14+
} from "../crawler-parsers";
1115
import {CrawlerKind} from "../crawl";
1216
import {match, P} from "ts-pattern";
1317
import {http} from "../utils";

0 commit comments

Comments
 (0)