@timardex/cluemart-server-shared 1.0.179 → 1.0.201

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/index.cjs CHANGED
@@ -7343,7 +7343,12 @@ var gameScreenIdentifierList = [
7343
7343
  match: "/events/events-near-me"
7344
7344
  },
7345
7345
  {
7346
- clue: "A collection of things worth attending.",
7346
+ clue: "Where events appear as pins on a map.",
7347
+ id: "events-map",
7348
+ match: "/events/events-map"
7349
+ },
7350
+ {
7351
+ clue: "A collection of events worth attending.",
7347
7352
  id: "events",
7348
7353
  match: "/events"
7349
7354
  },
@@ -7436,6 +7441,7 @@ function normalizeUrl(url) {
7436
7441
  }
7437
7442
  return url;
7438
7443
  }
7444
+ var CLUEMART_MAIN_DOMAIN_URL = "https://cluemart.co.nz";
7439
7445
  var SCHOOL_MIN_STUDENT_COUNT = 300;
7440
7446
  var packagingTypes = [
7441
7447
  "Biodegradable",
@@ -8841,7 +8847,6 @@ var USER_FIELDS_FRAGMENT = gql`
8841
8847
  platform
8842
8848
  preferredRegion
8843
8849
  promoCodes
8844
- refreshToken
8845
8850
  role
8846
8851
  school
8847
8852
  termsAgreement {
@@ -9091,7 +9096,10 @@ var GET_EVENT_BY_PLACE_ID = gql`
9091
9096
  ${EVENT_LIST_ITEM}
9092
9097
  `;
9093
9098
  var GET_EVENTS_BY_REGION = gql`
9094
- query getEventsByRegion($region: String!, $options: EventsByRegionOptions) {
9099
+ query getEventsByRegion(
9100
+ $region: String!
9101
+ $options: ResourcesByRegionOptions
9102
+ ) {
9095
9103
  eventsByRegion(region: $region, options: $options) {
9096
9104
  ...EventListItemFields
9097
9105
  }
@@ -9099,7 +9107,7 @@ var GET_EVENTS_BY_REGION = gql`
9099
9107
  ${EVENT_LIST_ITEM}
9100
9108
  `;
9101
9109
  var SEARCH_EVENTS = gql`
9102
- query searchEvents($region: String, $search: String,$tags: [String]) {
9110
+ query searchEvents($region: String, $search: String, $tags: [String]) {
9103
9111
  eventsSearch(region: $region, search: $search, tags: $tags) {
9104
9112
  ...EventListItemFields
9105
9113
  }
@@ -9323,8 +9331,11 @@ var GET_VENDOR = gql`
9323
9331
  ${VENDOR}
9324
9332
  `;
9325
9333
  var GET_VENDORS_BY_REGION = gql`
9326
- query getVendorsByRegion($region: String!) {
9327
- vendorsByRegion(region: $region) {
9334
+ query getVendorsByRegion(
9335
+ $region: String!
9336
+ $options: ResourcesByRegionOptions
9337
+ ) {
9338
+ vendorsByRegion(region: $region, options: $options) {
9328
9339
  ...VendorFields
9329
9340
  }
9330
9341
  }
@@ -9720,8 +9731,11 @@ var GET_PARTNER = gql`
9720
9731
  ${PARTNER}
9721
9732
  `;
9722
9733
  var GET_PARTNERS_BY_REGION = gql`
9723
- query getPartnersByRegion($region: String!) {
9724
- partnersByRegion(region: $region) {
9734
+ query getPartnersByRegion(
9735
+ $region: String!
9736
+ $options: ResourcesByRegionOptions
9737
+ ) {
9738
+ partnersByRegion(region: $region, options: $options) {
9725
9739
  ...PartnerFields
9726
9740
  }
9727
9741
  }
@@ -9924,7 +9938,6 @@ var RELATION_FIELDS_FRAGMENT = gql`
9924
9938
  fragment RelationFields on RelationType {
9925
9939
  _id
9926
9940
  active
9927
- apiMessage
9928
9941
  chatId
9929
9942
  createdAt
9930
9943
  lastUpdateBy
@@ -10940,7 +10953,7 @@ var emailOptionalSchema = create$6().nullable().notRequired().transform(
10940
10953
  (value) => !value || create$6().email().isValidSync(value)
10941
10954
  ).label("Email");
10942
10955
  var mobileRegex = /^02\d{7,9}$/;
10943
- var landlineRegex = /^(0(3|4|6|7|9)[0-9]{7})$/;
10956
+ var landlineRegex = /^0[34679]\d{7}$/;
10944
10957
  var mobilePhoneSchema = create$6().label("Mobile Phone").nullable().notRequired().test(
10945
10958
  "mobile-phone",
10946
10959
  "Mobile must start with 02 and be 9\u201311 digits",
@@ -11325,12 +11338,12 @@ var validateVerificationTokenSchema = create$3().shape({
11325
11338
  email: emailRequiredSchema,
11326
11339
  verificationToken: create$6().required("Verification code is required").matches(/^\d{6}$/, "Verification code must be exactly 6 digits")
11327
11340
  });
11328
- var EnumAdShowOn = /* @__PURE__ */ ((EnumAdShowOn3) => {
11329
- EnumAdShowOn3["EVENTS_PAGE"] = "Events_page";
11330
- EnumAdShowOn3["FRONT_PAGE"] = "Front_page";
11331
- EnumAdShowOn3["PARTNERS_PAGE"] = "Partners_page";
11332
- EnumAdShowOn3["VENDORS_PAGE"] = "Vendors_page";
11333
- return EnumAdShowOn3;
11341
+ var EnumAdShowOn = /* @__PURE__ */ ((EnumAdShowOn2) => {
11342
+ EnumAdShowOn2["EVENTS_PAGE"] = "Events_page";
11343
+ EnumAdShowOn2["FRONT_PAGE"] = "Front_page";
11344
+ EnumAdShowOn2["PARTNERS_PAGE"] = "Partners_page";
11345
+ EnumAdShowOn2["VENDORS_PAGE"] = "Vendors_page";
11346
+ return EnumAdShowOn2;
11334
11347
  })(EnumAdShowOn || {});
11335
11348
  var EnumAdStatus = /* @__PURE__ */ ((EnumAdStatus2) => {
11336
11349
  EnumAdStatus2["ACTIVE"] = "Active";
@@ -11349,15 +11362,15 @@ var EnumAdStyle = /* @__PURE__ */ ((EnumAdStyle2) => {
11349
11362
  return EnumAdStyle2;
11350
11363
  })(EnumAdStyle || {});
11351
11364
  var adResourceSchema = create$3({
11352
- adDescription: create$6().nullable().trim().required("Ad description is required").max(150, "Ad description must be at most 150 characters"),
11353
- adImage: create$6().nullable().required("Ad image is required"),
11354
- adStyle: create$8().nullable().oneOf(Object.values(EnumAdStyle), "Please select a valid ad style").required("Ad style is required"),
11355
- adTitle: create$6().nullable().trim().required("Ad title is required").max(30, "Ad title must be at most 30 characters"),
11356
- adType: create$8().nullable().oneOf(Object.values(EnumAdType), "Please select a valid ad type").required("Ad type is required"),
11357
- resourceId: create$6().nullable().required("Resource ID is required"),
11358
- resourceName: create$6().nullable().required("Resource name is required"),
11359
- resourceRegion: create$6().nullable().required("Resource region is required"),
11360
- resourceType: create$8().nullable().oneOf(Object.values(EnumResourceType), "Please select Event or Vendor").required("Resource type is required")
11365
+ adDescription: create$6().trim().required("Ad description is required").max(150, "Ad description must be at most 150 characters"),
11366
+ adImage: create$6().required("Ad image is required"),
11367
+ adStyle: create$8().oneOf(Object.values(EnumAdStyle), "Please select a valid ad style").required("Ad style is required"),
11368
+ adTitle: create$6().trim().required("Ad title is required").max(30, "Ad title must be at most 30 characters"),
11369
+ adType: create$8().oneOf(Object.values(EnumAdType), "Please select a valid ad type").required("Ad type is required"),
11370
+ resourceId: create$6().required("Resource ID is required"),
11371
+ resourceName: create$6().required("Resource name is required"),
11372
+ resourceRegion: create$6().required("Resource region is required"),
11373
+ resourceType: create$8().oneOf(Object.values(EnumResourceType), "Please select Event or Vendor").required("Resource type is required")
11361
11374
  });
11362
11375
  var adSchema = create$3().shape({
11363
11376
  active: create$7().required("Active status is required"),
@@ -11387,7 +11400,8 @@ var adSchema = create$3().shape({
11387
11400
  if (!value) return false;
11388
11401
  return value > /* @__PURE__ */ new Date();
11389
11402
  }),
11390
- otherwise: () => create$4().nullable().notRequired()
11403
+ // Keep `start` optional (not null) when ACTIVE to match TS type `start?: Date`.
11404
+ otherwise: () => create$4().notRequired()
11391
11405
  }),
11392
11406
  targetRegion: create$2().of(create$6().required()).min(1, "At least one target region is required").required("Target region is required")
11393
11407
  });
@@ -11515,6 +11529,31 @@ var contactUsSchema = create$3().shape({
11515
11529
  lastName: create$6().label("Last Name").required("Last name is required"),
11516
11530
  message: create$6().label("Message").required("Message is required")
11517
11531
  });
11532
+ var defaultValues8 = {
11533
+ active: true,
11534
+ // Use a future default so yup "future date" rules pass on first submit.
11535
+ end: new Date(Date.now() + 7 * 24 * 60 * 60 * 1e3),
11536
+ resource: {
11537
+ adDescription: "",
11538
+ adImage: "",
11539
+ adStyle: "Bloom",
11540
+ adTitle: "",
11541
+ adType: "Sponsored",
11542
+ resourceId: "",
11543
+ resourceName: "",
11544
+ resourceRegion: "",
11545
+ resourceType: "event"
11546
+ /* EVENT */
11547
+ },
11548
+ showOn: [
11549
+ "Front_page"
11550
+ /* FRONT_PAGE */
11551
+ ],
11552
+ // `start` is only required (and must be future) when status !== ACTIVE.
11553
+ start: void 0,
11554
+ status: "Active",
11555
+ targetRegion: []
11556
+ };
11518
11557
  var schoolSchema = create$3().shape({
11519
11558
  active: create$7().required("Active is required"),
11520
11559
  contactDetails: contactDetailsSchema,
@@ -11576,8 +11615,9 @@ var badgeFiles = Object.fromEntries(
11576
11615
  var logoIds = [
11577
11616
  "googleMaps-logo-dark",
11578
11617
  "googleMaps-logo-light",
11579
- "logo",
11580
- "logo-atr"
11618
+ "logo-atr",
11619
+ "logo-dark",
11620
+ "logo"
11581
11621
  ];
11582
11622
  var logoFiles = Object.fromEntries(
11583
11623
  logoIds.map((id) => [id, `${id}${IMAGE_EXTENSION}`])
@@ -11585,6 +11625,7 @@ var logoFiles = Object.fromEntries(
11585
11625
  var otherImagesIds = [
11586
11626
  "banner-horizontal",
11587
11627
  "banner-vertical",
11628
+ "gazebo-top",
11588
11629
  "qr-code",
11589
11630
  "store-android",
11590
11631
  "store-ios"
@@ -11612,7 +11653,7 @@ var otherImages = Object.fromEntries(
11612
11653
  );
11613
11654
  var RELATION_SHARE_INVITATION = "invitation";
11614
11655
  var RELATION_SHARE_APPLICATION = "application";
11615
- var SHARE_SITE_URL = "https://cluemart.co.nz";
11656
+ var SHARE_SITE_URL = CLUEMART_MAIN_DOMAIN_URL;
11616
11657
  var SHARE_CALENDAR_ICON = "\u{1F4C5}";
11617
11658
  var SHARE_MARKET_DATES_SECTION_HEADING = `${SHARE_CALENDAR_ICON} Market dates:`;
11618
11659
  var SHARE_CHECKMARK_ICON = "\u2705";
@@ -11952,6 +11993,7 @@ var refundPolicySchema = new MongooseSchema4(
11952
11993
  );
11953
11994
  var schema2 = new MongooseSchema4(
11954
11995
  {
11996
+ active: { default: true, type: Boolean },
11955
11997
  applicationDeadlineHours: { required: true, type: Number },
11956
11998
  dateTime: { required: true, type: [dateTimeSchema2] },
11957
11999
  eventId: {
@@ -12393,7 +12435,11 @@ var schema5 = new MongooseSchema9(
12393
12435
  type: String
12394
12436
  },
12395
12437
  token: { required: true, type: String },
12396
- userId: { required: true, type: import_mongoose9.default.Schema.Types.ObjectId }
12438
+ userId: {
12439
+ ref: "User",
12440
+ required: true,
12441
+ type: import_mongoose9.default.Schema.Types.ObjectId
12442
+ }
12397
12443
  },
12398
12444
  { timestamps: true }
12399
12445
  );
@@ -12736,6 +12782,7 @@ var AttributesSchema = new MongooseSchema14(
12736
12782
  );
12737
12783
  var schema10 = new MongooseSchema14(
12738
12784
  {
12785
+ active: { default: true, type: Boolean },
12739
12786
  compliance: {
12740
12787
  foodBeverageLicense: { default: false, required: false, type: Boolean },
12741
12788
  liabilityInsurance: { default: false, required: false, type: Boolean }
@@ -13467,12 +13514,12 @@ async function removeAssociateFromResource({
13467
13514
  // src/service/vendor.ts
13468
13515
  async function updateVendorBasedOnUserLicense(userId, licenceType) {
13469
13516
  try {
13470
- const user = await UserModel.findById(userId).select("vendor").lean();
13517
+ const user = await UserModel.findById(userId).select("vendor").lean().exec();
13471
13518
  if (!user?.vendor) {
13472
13519
  console.warn(`[updateVendor] No vendor found for userId=${userId}`);
13473
13520
  return;
13474
13521
  }
13475
- const vendor = await VendorModel.findById(user.vendor).lean();
13522
+ const vendor = await VendorModel.findById(user.vendor).lean().exec();
13476
13523
  if (!vendor) {
13477
13524
  console.warn(`[updateVendor] Vendor not found for id=${user.vendor}`);
13478
13525
  return;