@sparted/shared-library 1.7.90 → 1.7.92

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.
@@ -28,13 +28,6 @@ export type BoActivityCardDetails = {
28
28
  utcStartDate: string;
29
29
  utcEndDate?: string;
30
30
  };
31
- export type AudienceGroup = {
32
- type: 'all' | 'segmentation' | 'magic-code' | 'email-list';
33
- name: string;
34
- description: string;
35
- locked: boolean;
36
- segments: Segment[];
37
- };
38
31
  export type BoActivityCard = {
39
32
  id: number;
40
33
  type: 'campaign' | 'breaking-news';
@@ -43,7 +36,7 @@ export type BoActivityCard = {
43
36
  language: LanguageCode[];
44
37
  eventSummary: EventSummary;
45
38
  audience: AudienceInformation;
46
- audienceGroups: AudienceGroup[];
39
+ audienceGroupNames: string[];
47
40
  };
48
41
  export declare const ACTIVITY_STATUS: readonly ["draft", "inactive", "archived", "upcoming", "live", "celebration", "finished"];
49
42
  export declare const isActivityCampaign: (activity: unknown) => activity is CampaignActivity;
@@ -1 +1 @@
1
- {"version":3,"file":"activity.js","sources":["../../../src/business/types/activity.ts"],"sourcesContent":["import type { AudienceInformation, Segment } from './audience';\nimport type { BreakingNewsActivity } from './breaking-news';\nimport type { Campaign } from './campaign';\nimport type { Media } from './media';\nimport type { LanguageCode, MultilingualLabel } from './multilingual';\nimport type { EventSummary } from './user-engagement';\n\nexport type ActivityAudience = {\n groupId: number;\n type: 'all' | 'segmentation' | 'magic-code' | 'email-list';\n segments: Segment[];\n};\n\nexport type ActivityStatus = (typeof ACTIVITY_STATUS)[number];\n\nexport type SharedActivityMetadata = {\n status: ActivityStatus;\n languages?: LanguageCode[];\n audiences?: ActivityAudience[];\n userEngagement?: {\n viewCount?: number;\n likeCount?: number;\n };\n};\n\nexport type CampaignActivity = SharedActivityMetadata & Campaign;\n\nexport type Activity = CampaignActivity | BreakingNewsActivity;\n\nexport type BoActivityCardDetails = {\n identifier: string;\n cover: Media;\n title: MultilingualLabel;\n utcStartDate: string;\n utcEndDate?: string;\n};\n\nexport type AudienceGroup = {\n type: 'all' | 'segmentation' | 'magic-code' | 'email-list';\n name: string;\n description: string;\n locked: boolean;\n segments: Segment[];\n}\n\nexport type BoActivityCard = {\n id: number;\n type: 'campaign' | 'breaking-news';\n status: ActivityStatus;\n details: BoActivityCardDetails;\n language: LanguageCode[];\n eventSummary: EventSummary;\n audience: AudienceInformation;\n audienceGroups: AudienceGroup[];\n};\n\nexport const ACTIVITY_STATUS = [\n 'draft',\n 'inactive',\n 'archived',\n 'upcoming',\n 'live',\n 'celebration',\n 'finished',\n] as const;\n\nexport const isActivityCampaign = (activity: unknown): activity is CampaignActivity =>\n typeof activity === 'object' && activity !== null && 'type' in activity && activity.type === 'campaign';\n\nexport const isActivityBreakingNews = (\n activity: CampaignActivity | BreakingNewsActivity,\n): activity is BreakingNewsActivity => activity.type === 'breaking-news';\n"],"names":[],"mappings":";;;;AAwDa,MAAA,eAAe,GAAG;IAC7B,OAAO;IACP,UAAU;IACV,UAAU;IACV,UAAU;IACV,MAAM;IACN,aAAa;IACb,UAAU;EACD;AAEE,MAAA,kBAAkB,GAAG,CAAC,QAAiB,KAClD,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,IAAI,IAAI,MAAM,IAAI,QAAQ,IAAI,QAAQ,CAAC,IAAI,KAAK,WAAW;AAEnG,MAAM,sBAAsB,GAAG,CACpC,QAAiD,KACZ,QAAQ,CAAC,IAAI,KAAK;;;;;;"}
1
+ {"version":3,"file":"activity.js","sources":["../../../src/business/types/activity.ts"],"sourcesContent":["import type { AudienceInformation, Segment } from './audience';\nimport type { BreakingNewsActivity } from './breaking-news';\nimport type { Campaign } from './campaign';\nimport type { Media } from './media';\nimport type { LanguageCode, MultilingualLabel } from './multilingual';\nimport type { EventSummary } from './user-engagement';\n\nexport type ActivityAudience = {\n groupId: number;\n type: 'all' | 'segmentation' | 'magic-code' | 'email-list';\n segments: Segment[];\n};\n\nexport type ActivityStatus = (typeof ACTIVITY_STATUS)[number];\n\nexport type SharedActivityMetadata = {\n status: ActivityStatus;\n languages?: LanguageCode[];\n audiences?: ActivityAudience[];\n userEngagement?: {\n viewCount?: number;\n likeCount?: number;\n };\n};\n\nexport type CampaignActivity = SharedActivityMetadata & Campaign;\n\nexport type Activity = CampaignActivity | BreakingNewsActivity;\n\nexport type BoActivityCardDetails = {\n identifier: string;\n cover: Media;\n title: MultilingualLabel;\n utcStartDate: string;\n utcEndDate?: string;\n};\n\nexport type BoActivityCard = {\n id: number;\n type: 'campaign' | 'breaking-news';\n status: ActivityStatus;\n details: BoActivityCardDetails;\n language: LanguageCode[];\n eventSummary: EventSummary;\n audience: AudienceInformation;\n audienceGroupNames: string[];\n};\n\nexport const ACTIVITY_STATUS = [\n 'draft',\n 'inactive',\n 'archived',\n 'upcoming',\n 'live',\n 'celebration',\n 'finished',\n] as const;\n\nexport const isActivityCampaign = (activity: unknown): activity is CampaignActivity =>\n typeof activity === 'object' && activity !== null && 'type' in activity && activity.type === 'campaign';\n\nexport const isActivityBreakingNews = (\n activity: CampaignActivity | BreakingNewsActivity,\n): activity is BreakingNewsActivity => activity.type === 'breaking-news';\n"],"names":[],"mappings":";;;;AAgDa,MAAA,eAAe,GAAG;IAC7B,OAAO;IACP,UAAU;IACV,UAAU;IACV,UAAU;IACV,MAAM;IACN,aAAa;IACb,UAAU;EACD;AAEE,MAAA,kBAAkB,GAAG,CAAC,QAAiB,KAClD,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,IAAI,IAAI,MAAM,IAAI,QAAQ,IAAI,QAAQ,CAAC,IAAI,KAAK,WAAW;AAEnG,MAAM,sBAAsB,GAAG,CACpC,QAAiD,KACZ,QAAQ,CAAC,IAAI,KAAK;;;;;;"}
@@ -1,7 +1,7 @@
1
- import { SearchObject } from '../types';
1
+ import { SearchObject, SearchQueryValue } from '../types';
2
2
  export type EncodingConfig = {
3
3
  keyValueDelimiter: string;
4
4
  pairDelimiter: string;
5
5
  };
6
- export declare const encodeSearchValue: <T extends Record<string, string>>(searchValue: T, config?: EncodingConfig) => string;
6
+ export declare const encodeSearchValue: <T extends Record<string, SearchQueryValue>>(searchValue: T, config?: EncodingConfig) => string;
7
7
  export declare const encodeSearchObject: (searchObject: SearchObject) => string;
@@ -9,7 +9,10 @@ const defaultEncodingConfig = {
9
9
  const encodeSearchValue = (searchValue, config = defaultEncodingConfig) => {
10
10
  const { pairDelimiter, keyValueDelimiter } = config;
11
11
  return Object.entries(searchValue)
12
- .map(([key, value]) => `${key}${keyValueDelimiter}${encodeURI(value)}`)
12
+ .map(([key, value]) => {
13
+ const stringValue = Array.isArray(value) ? value.join(',') : value;
14
+ return `${key}${keyValueDelimiter}${encodeURI(stringValue)}`;
15
+ })
13
16
  .join(pairDelimiter);
14
17
  };
15
18
  const encodeSearchObject = (searchObject) => {
@@ -1 +1 @@
1
- {"version":3,"file":"encode-search-object.js","sources":["../../src/http/encode-search-object.ts"],"sourcesContent":["import { SearchObject } from '../types';\n\nexport type EncodingConfig = {\n keyValueDelimiter: string;\n pairDelimiter: string;\n};\n\nconst defaultEncodingConfig: EncodingConfig = {\n keyValueDelimiter: ':',\n pairDelimiter: '+',\n};\n\nexport const encodeSearchValue = <T extends Record<string, string>>(\n searchValue: T,\n config: EncodingConfig = defaultEncodingConfig,\n) => {\n const { pairDelimiter, keyValueDelimiter } = config;\n\n return Object.entries(searchValue)\n .map(([key, value]) => `${key}${keyValueDelimiter}${encodeURI(value)}`)\n .join(pairDelimiter);\n};\n\nexport const encodeSearchObject = (searchObject: SearchObject): string => {\n const { sort, query, offset, limit } = searchObject;\n\n const sortEncoded = sort ? encodeSearchValue(sort) : null;\n const queryEncoded = query ? encodeSearchValue(query) : null;\n\n const urlParams = new URLSearchParams({\n ...(offset !== undefined ? { offset: offset.toString() } : undefined),\n ...(limit !== undefined ? { limit: limit.toString() } : undefined),\n });\n\n if (sortEncoded) urlParams.append('sort', sortEncoded);\n if (queryEncoded) urlParams.append('query', queryEncoded);\n\n return urlParams.toString();\n};\n"],"names":[],"mappings":";;;;AAOA,MAAM,qBAAqB,GAAmB;AAC5C,IAAA,iBAAiB,EAAE,GAAG;AACtB,IAAA,aAAa,EAAE,GAAG;CACnB,CAAC;AAEW,MAAA,iBAAiB,GAAG,CAC/B,WAAc,EACd,MAAA,GAAyB,qBAAqB,KAC5C;AACF,IAAA,MAAM,EAAE,aAAa,EAAE,iBAAiB,EAAE,GAAG,MAAM,CAAC;AAEpD,IAAA,OAAO,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC;SAC/B,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,GAAG,GAAG,CAAA,EAAG,iBAAiB,CAAG,EAAA,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;SACtE,IAAI,CAAC,aAAa,CAAC,CAAC;AACzB,EAAE;AAEW,MAAA,kBAAkB,GAAG,CAAC,YAA0B,KAAY;IACvE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,YAAY,CAAC;AAEpD,IAAA,MAAM,WAAW,GAAG,IAAI,GAAG,iBAAiB,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AAC1D,IAAA,MAAM,YAAY,GAAG,KAAK,GAAG,iBAAiB,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;IAE7D,MAAM,SAAS,GAAG,IAAI,eAAe,kCAC/B,MAAM,KAAK,SAAS,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,QAAQ,EAAE,EAAE,GAAG,SAAS,EAAC,GACjE,KAAK,KAAK,SAAS,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,QAAQ,EAAE,EAAE,GAAG,SAAS,EAAC,CAClE,CAAC;AAEH,IAAA,IAAI,WAAW;AAAE,QAAA,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AACvD,IAAA,IAAI,YAAY;AAAE,QAAA,SAAS,CAAC,MAAM,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;AAE1D,IAAA,OAAO,SAAS,CAAC,QAAQ,EAAE,CAAC;AAC9B;;;;;"}
1
+ {"version":3,"file":"encode-search-object.js","sources":["../../src/http/encode-search-object.ts"],"sourcesContent":["import { SearchObject, SearchQueryValue } from '../types';\n\nexport type EncodingConfig = {\n keyValueDelimiter: string;\n pairDelimiter: string;\n};\n\nconst defaultEncodingConfig: EncodingConfig = {\n keyValueDelimiter: ':',\n pairDelimiter: '+',\n};\n\nexport const encodeSearchValue = <T extends Record<string, SearchQueryValue>>(\n searchValue: T,\n config: EncodingConfig = defaultEncodingConfig,\n) => {\n const { pairDelimiter, keyValueDelimiter } = config;\n\n return Object.entries(searchValue)\n .map(([key, value]) => {\n const stringValue = Array.isArray(value) ? value.join(',') : value;\n return `${key}${keyValueDelimiter}${encodeURI(stringValue)}`;\n })\n .join(pairDelimiter);\n};\n\nexport const encodeSearchObject = (searchObject: SearchObject): string => {\n const { sort, query, offset, limit } = searchObject;\n\n const sortEncoded = sort ? encodeSearchValue(sort) : null;\n const queryEncoded = query ? encodeSearchValue(query) : null;\n\n const urlParams = new URLSearchParams({\n ...(offset !== undefined ? { offset: offset.toString() } : undefined),\n ...(limit !== undefined ? { limit: limit.toString() } : undefined),\n });\n\n if (sortEncoded) urlParams.append('sort', sortEncoded);\n if (queryEncoded) urlParams.append('query', queryEncoded);\n\n return urlParams.toString();\n};\n"],"names":[],"mappings":";;;;AAOA,MAAM,qBAAqB,GAAmB;AAC5C,IAAA,iBAAiB,EAAE,GAAG;AACtB,IAAA,aAAa,EAAE,GAAG;CACnB,CAAC;AAEW,MAAA,iBAAiB,GAAG,CAC/B,WAAc,EACd,MAAA,GAAyB,qBAAqB,KAC5C;AACF,IAAA,MAAM,EAAE,aAAa,EAAE,iBAAiB,EAAE,GAAG,MAAM,CAAC;AAEpD,IAAA,OAAO,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC;SAC/B,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,KAAI;QACpB,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACnE,OAAO,CAAA,EAAG,GAAG,CAAA,EAAG,iBAAiB,CAAA,EAAG,SAAS,CAAC,WAAW,CAAC,CAAA,CAAE,CAAC;AAC/D,KAAC,CAAC;SACD,IAAI,CAAC,aAAa,CAAC,CAAC;AACzB,EAAE;AAEW,MAAA,kBAAkB,GAAG,CAAC,YAA0B,KAAY;IACvE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,YAAY,CAAC;AAEpD,IAAA,MAAM,WAAW,GAAG,IAAI,GAAG,iBAAiB,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AAC1D,IAAA,MAAM,YAAY,GAAG,KAAK,GAAG,iBAAiB,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;IAE7D,MAAM,SAAS,GAAG,IAAI,eAAe,kCAC/B,MAAM,KAAK,SAAS,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,QAAQ,EAAE,EAAE,GAAG,SAAS,EAAC,GACjE,KAAK,KAAK,SAAS,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,QAAQ,EAAE,EAAE,GAAG,SAAS,EAAC,CAClE,CAAC;AAEH,IAAA,IAAI,WAAW;AAAE,QAAA,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AACvD,IAAA,IAAI,YAAY;AAAE,QAAA,SAAS,CAAC,MAAM,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;AAE1D,IAAA,OAAO,SAAS,CAAC,QAAQ,EAAE,CAAC;AAC9B;;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sparted/shared-library",
3
- "version": "1.7.90",
3
+ "version": "1.7.92",
4
4
  "repository": "git@github.com:Sparted/shared-library.git",
5
5
  "author": {
6
6
  "name": "Sparted",
package/types/search.d.ts CHANGED
@@ -4,7 +4,7 @@ export type SearchSort = {
4
4
  [by: SearchSortBy]: SearchSortOrder;
5
5
  };
6
6
  export type SearchQueryProperty = string;
7
- export type SearchQueryValue = string;
7
+ export type SearchQueryValue = string | string[];
8
8
  export type SearchQuery = {
9
9
  [property: SearchQueryProperty]: SearchQueryValue;
10
10
  };