@timardex/cluemart-shared 1.5.600 → 1.5.601

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.
@@ -26,7 +26,7 @@ import {
26
26
  EnumVendorType
27
27
  } from "../chunk-ZR4TGWTS.mjs";
28
28
  import "../chunk-S2VBOUOO.mjs";
29
- import "../chunk-GSOSJNID.mjs";
29
+ import "../chunk-Y6OS3HDB.mjs";
30
30
  import {
31
31
  dateFormat,
32
32
  timeFormat
package/dist/index.cjs CHANGED
@@ -81,8 +81,14 @@ __export(index_exports, {
81
81
  SAVED_TOKEN_KEY: () => SAVED_TOKEN_KEY,
82
82
  SCHOOL_MAX_STUDENT_COUNT: () => SCHOOL_MAX_STUDENT_COUNT,
83
83
  SCHOOL_MIN_STUDENT_COUNT: () => SCHOOL_MIN_STUDENT_COUNT,
84
+ SHARE_CALENDAR_ICON: () => SHARE_CALENDAR_ICON,
85
+ SHARE_CATEGORIES_SECTION_HEADING: () => SHARE_CATEGORIES_SECTION_HEADING,
86
+ SHARE_CATEGORY_ICON: () => SHARE_CATEGORY_ICON,
87
+ SHARE_CHECKMARK_ICON: () => SHARE_CHECKMARK_ICON,
84
88
  SHARE_DESCRIPTION_SECTION_BREAK: () => SHARE_DESCRIPTION_SECTION_BREAK,
85
89
  SHARE_DESCRIPTION_SECTION_SEPARATOR: () => SHARE_DESCRIPTION_SECTION_SEPARATOR,
90
+ SHARE_MARKET_DATES_SECTION_HEADING: () => SHARE_MARKET_DATES_SECTION_HEADING,
91
+ SHARE_REQUIREMENTS_SECTION_HEADING: () => SHARE_REQUIREMENTS_SECTION_HEADING,
86
92
  SHARE_RESOURCE_LABEL: () => SHARE_RESOURCE_LABEL,
87
93
  SHARE_SITE_URL: () => SHARE_SITE_URL,
88
94
  SHARE_TYPE_PATH_REGEX: () => SHARE_TYPE_PATH_REGEX,
@@ -129,6 +135,9 @@ __export(index_exports, {
129
135
  foodFlavourOptions: () => foodFlavourOptions,
130
136
  formatCategoryLabel: () => formatCategoryLabel,
131
137
  formatDate: () => formatDate,
138
+ formatShareApplicationCategoriesSection: () => formatShareApplicationCategoriesSection,
139
+ formatShareInvitationMarketDatesSection: () => formatShareInvitationMarketDatesSection,
140
+ formatShareInvitationRequirementsSection: () => formatShareInvitationRequirementsSection,
132
141
  formatShareMarketDate: () => formatShareMarketDate,
133
142
  formatShareSectionsForCompactDisplay: () => formatShareSectionsForCompactDisplay,
134
143
  formatShareSectionsForMultilineDisplay: () => formatShareSectionsForMultilineDisplay,
@@ -8834,6 +8843,54 @@ var otherImages = Object.fromEntries(
8834
8843
  Object.entries(otherImagesFiles).map(([key, file]) => [key, `${PKG}/images/${file}`])
8835
8844
  );
8836
8845
 
8846
+ // src/sharing/relationShareTypes.ts
8847
+ var RELATION_SHARE_INVITATION = "invitation";
8848
+ var RELATION_SHARE_APPLICATION = "application";
8849
+ var RELATION_SHARE_RESOURCE_TYPES = [
8850
+ RELATION_SHARE_INVITATION,
8851
+ RELATION_SHARE_APPLICATION
8852
+ ];
8853
+ function isRelationShareResourceType(resourceType) {
8854
+ return RELATION_SHARE_RESOURCE_TYPES.includes(
8855
+ resourceType
8856
+ );
8857
+ }
8858
+
8859
+ // src/sharing/constants.ts
8860
+ var SHARE_SITE_URL = "https://cluemart.co.nz";
8861
+ var SHARE_CALENDAR_ICON = "\u{1F4C5}";
8862
+ var SHARE_MARKET_DATES_SECTION_HEADING = `${SHARE_CALENDAR_ICON} Market dates:`;
8863
+ var SHARE_CHECKMARK_ICON = "\u2705";
8864
+ var SHARE_REQUIREMENTS_SECTION_HEADING = `${SHARE_CHECKMARK_ICON} Requirements:`;
8865
+ var SHARE_CATEGORY_ICON = "\u{1F3F7}\uFE0F";
8866
+ var SHARE_CATEGORIES_SECTION_HEADING = `${SHARE_CATEGORY_ICON} Categories:`;
8867
+ var DEFAULT_SHARE_OG_IMAGE = `${SHARE_SITE_URL}/assets/logo.webp`;
8868
+ var RESOURCE_SHARE_TYPES = [
8869
+ "market",
8870
+ "stallholder",
8871
+ "partner"
8872
+ ];
8873
+ var POST_SHARE_RESOURCE_TYPES = [
8874
+ "daily_meets",
8875
+ "daily_tips",
8876
+ "daily_games"
8877
+ ];
8878
+ var SHARE_RESOURCE_LABEL = {
8879
+ [RELATION_SHARE_APPLICATION]: "Application",
8880
+ [RELATION_SHARE_INVITATION]: "Invitation",
8881
+ daily_games: "Daily Game",
8882
+ daily_meets: "Daily Meet",
8883
+ daily_tips: "Daily Tip",
8884
+ market: "Market",
8885
+ partner: "Partner",
8886
+ stallholder: "Stallholder"
8887
+ };
8888
+ function isPostShareResourceType(resourceType) {
8889
+ return POST_SHARE_RESOURCE_TYPES.includes(
8890
+ resourceType
8891
+ );
8892
+ }
8893
+
8837
8894
  // src/sharing/formatCategoryLabel.ts
8838
8895
  function formatCategoryLabel(category) {
8839
8896
  const subcategoryNames = category.subcategories.map((subcategory) => subcategory.name).filter(Boolean);
@@ -8861,6 +8918,28 @@ function formatShareMarketDate(dateStr) {
8861
8918
  function formatStallCapacityLabel(stallCapacity) {
8862
8919
  return stallCapacity > 0 ? ` (${stallCapacity} spaces available)` : " - Full";
8863
8920
  }
8921
+ function formatShareStallLine(stall) {
8922
+ return ` - ${stall.label} \u2014 $${stall.price}${formatStallCapacityLabel(stall.stallCapacity)}`;
8923
+ }
8924
+ function formatShareInvitationMarketDatesSection(dateTime) {
8925
+ const dateBlocks = dateTime.map((date3) => {
8926
+ const formattedDate = formatShareMarketDate(date3.startDate);
8927
+ const stallLines = date3.stallTypes.map(formatShareStallLine);
8928
+ return [`- ${formattedDate}`, ...stallLines].join("\n");
8929
+ });
8930
+ return `${SHARE_MARKET_DATES_SECTION_HEADING}
8931
+ ${dateBlocks.join("\n")}`;
8932
+ }
8933
+ function formatShareInvitationRequirementsSection(requirementLabels) {
8934
+ const bullets = requirementLabels.map((label) => `- ${label}`);
8935
+ return `${SHARE_REQUIREMENTS_SECTION_HEADING}
8936
+ ${bullets.join("\n")}`;
8937
+ }
8938
+ function formatShareApplicationCategoriesSection(categoryLabels) {
8939
+ const bullets = categoryLabels.map((label) => `- ${label}`);
8940
+ return `${SHARE_CATEGORIES_SECTION_HEADING}
8941
+ ${bullets.join("\n")}`;
8942
+ }
8864
8943
  function buildInvitationShareDescription(event, eventInfo2) {
8865
8944
  const stallTypes2 = eventInfo2?.dateTime?.flatMap((date3) => date3.stallTypes) ?? [];
8866
8945
  if (!eventInfo2 || stallTypes2.length === 0) {
@@ -8869,15 +8948,9 @@ function buildInvitationShareDescription(event, eventInfo2) {
8869
8948
  const requirementLabels = (eventInfo2.requirements ?? []).filter((item) => item.value).map((item) => item.label);
8870
8949
  const sections = [
8871
8950
  event.location.fullAddress,
8872
- ...event.dateTime.map((date3) => {
8873
- const start = formatShareMarketDate(date3.startDate);
8874
- return `Market date: ${start}`;
8875
- }),
8951
+ formatShareInvitationMarketDatesSection(eventInfo2.dateTime),
8876
8952
  `Application deadline: vendors must apply at least ${eventInfo2.applicationDeadlineHours} hours before each market date.`,
8877
- ...stallTypes2.map(
8878
- (stall) => `Stall: ${stall.label} \u2014 $${stall.price}${formatStallCapacityLabel(stall.stallCapacity)}`
8879
- ),
8880
- requirementLabels.length > 0 && `Requirements: ${requirementLabels.join(", ")}`
8953
+ requirementLabels.length > 0 && formatShareInvitationRequirementsSection(requirementLabels)
8881
8954
  ];
8882
8955
  return joinShareDescriptionSections(sections);
8883
8956
  }
@@ -8895,57 +8968,15 @@ function buildApplicationShareDescription(vendor, vendorInfo) {
8895
8968
  ].filter(Boolean);
8896
8969
  const profileDescription = vendor.description?.trim();
8897
8970
  const sections = [
8898
- categoryLabels.length > 0 && `Categories: ${categoryLabels.join(", ")}`,
8971
+ categoryLabels.length > 0 && formatShareApplicationCategoriesSection(categoryLabels),
8899
8972
  `Stall size: ${vendorInfo.stallInfo.size.width}m \xD7 ${vendorInfo.stallInfo.size.depth}m`,
8900
- `Compliance: ${complianceLabels.length > 0 ? complianceLabels.join(", ") : "Not specified"}`,
8973
+ complianceLabels.length > 0 && `Compliance: ${complianceLabels.join(", ")}`,
8901
8974
  `Price range: $${vendorInfo.product.priceRange.min} \u2013 $${vendorInfo.product.priceRange.max}`,
8902
8975
  profileDescription
8903
8976
  ];
8904
8977
  return joinShareDescriptionSections(sections);
8905
8978
  }
8906
8979
 
8907
- // src/sharing/relationShareTypes.ts
8908
- var RELATION_SHARE_INVITATION = "invitation";
8909
- var RELATION_SHARE_APPLICATION = "application";
8910
- var RELATION_SHARE_RESOURCE_TYPES = [
8911
- RELATION_SHARE_INVITATION,
8912
- RELATION_SHARE_APPLICATION
8913
- ];
8914
- function isRelationShareResourceType(resourceType) {
8915
- return RELATION_SHARE_RESOURCE_TYPES.includes(
8916
- resourceType
8917
- );
8918
- }
8919
-
8920
- // src/sharing/constants.ts
8921
- var SHARE_SITE_URL = "https://cluemart.co.nz";
8922
- var DEFAULT_SHARE_OG_IMAGE = `${SHARE_SITE_URL}/assets/logo.webp`;
8923
- var RESOURCE_SHARE_TYPES = [
8924
- "market",
8925
- "stallholder",
8926
- "partner"
8927
- ];
8928
- var POST_SHARE_RESOURCE_TYPES = [
8929
- "daily_meets",
8930
- "daily_tips",
8931
- "daily_games"
8932
- ];
8933
- var SHARE_RESOURCE_LABEL = {
8934
- [RELATION_SHARE_APPLICATION]: "Application",
8935
- [RELATION_SHARE_INVITATION]: "Invitation",
8936
- daily_games: "Daily Game",
8937
- daily_meets: "Daily Meet",
8938
- daily_tips: "Daily Tip",
8939
- market: "Market",
8940
- partner: "Partner",
8941
- stallholder: "Stallholder"
8942
- };
8943
- function isPostShareResourceType(resourceType) {
8944
- return POST_SHARE_RESOURCE_TYPES.includes(
8945
- resourceType
8946
- );
8947
- }
8948
-
8949
8980
  // src/sharing/buildShareUrl.ts
8950
8981
  var PUBLIC_SHARE_PATH_TYPES = [
8951
8982
  ...RESOURCE_SHARE_TYPES,
@@ -8967,7 +8998,14 @@ function normalizeShareSection(value) {
8967
8998
  if (value == null) {
8968
8999
  return "";
8969
9000
  }
8970
- return value.trim().split("\n").map((line) => line.trim().replace(/[ \t]+/g, " ")).join("\n").replace(/\n{3,}/g, "\n\n");
9001
+ return value.trim().split("\n").map((line) => {
9002
+ const match = line.match(/^([ \t]*)(.*)$/);
9003
+ if (!match) {
9004
+ return line;
9005
+ }
9006
+ const [, leading, rest] = match;
9007
+ return leading + rest.trim().replace(/[ \t]{2,}/g, " ");
9008
+ }).join("\n").replace(/\n{3,}/g, "\n\n");
8971
9009
  }
8972
9010
  function stripLegacyBulletPrefix(section) {
8973
9011
  return section.startsWith(LEGACY_BULLET_PREFIX) ? section.slice(LEGACY_BULLET_PREFIX.length) : section;
@@ -9173,8 +9211,14 @@ var gameTypeToDisplayName = {
9173
9211
  SAVED_TOKEN_KEY,
9174
9212
  SCHOOL_MAX_STUDENT_COUNT,
9175
9213
  SCHOOL_MIN_STUDENT_COUNT,
9214
+ SHARE_CALENDAR_ICON,
9215
+ SHARE_CATEGORIES_SECTION_HEADING,
9216
+ SHARE_CATEGORY_ICON,
9217
+ SHARE_CHECKMARK_ICON,
9176
9218
  SHARE_DESCRIPTION_SECTION_BREAK,
9177
9219
  SHARE_DESCRIPTION_SECTION_SEPARATOR,
9220
+ SHARE_MARKET_DATES_SECTION_HEADING,
9221
+ SHARE_REQUIREMENTS_SECTION_HEADING,
9178
9222
  SHARE_RESOURCE_LABEL,
9179
9223
  SHARE_SITE_URL,
9180
9224
  SHARE_TYPE_PATH_REGEX,
@@ -9221,6 +9265,9 @@ var gameTypeToDisplayName = {
9221
9265
  foodFlavourOptions,
9222
9266
  formatCategoryLabel,
9223
9267
  formatDate,
9268
+ formatShareApplicationCategoriesSection,
9269
+ formatShareInvitationMarketDatesSection,
9270
+ formatShareInvitationRequirementsSection,
9224
9271
  formatShareMarketDate,
9225
9272
  formatShareSectionsForCompactDisplay,
9226
9273
  formatShareSectionsForMultilineDisplay,