@saooti/octopus-sdk 41.0.16 → 41.0.18

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/CHANGELOG.md ADDED
@@ -0,0 +1,40 @@
1
+ # CHANGELOG
2
+
3
+ ## En cours 41.0.18 (XX/11/2025)
4
+
5
+ **Features**
6
+
7
+ - Changements pour les émissions non publiées (`visible = false`) :
8
+ - La recherche permet de les afficher quand on affiche les épisodes non
9
+ publiés
10
+ - Un bandeau s'affiche pour indiquer que l'émission n'est pas disponible aux
11
+ auditeurs
12
+
13
+ **Misc**
14
+
15
+ - Ajout d'une propriété `relative` pour faire fonctionner les
16
+ `ClassicHelpButton` quand un parent a une position relative.
17
+ - Correction alignement du texte dans `ClassicAlert`
18
+ - Ajout d'un slot `after-label` sur `ClassicCheckbox`
19
+
20
+ ## 41.0.17 (07/11/2025)
21
+
22
+ **Features**
23
+
24
+ - Ajout options de configuration sur `ClassicHelpButton`
25
+
26
+ **Fixes**
27
+
28
+ - Correction anomalie fermeture `ClassicPopover`
29
+
30
+ **Misc**
31
+
32
+ - Ajout du `CHANGELOG`
33
+ - Ajustements configuration typescript pour analyse de code
34
+ - Nouvelles règles eslint
35
+
36
+ ## 41.0.16 (04/11/2025)
37
+
38
+ - Bannière 'en cours de traitement' ne s'affiche plus dans les listes
39
+ - Ajustements sur `ClassicSelect` & `ClassicHelpButton`
40
+ - Ajout de `ClassicAlert`, pour l'affichage de message
package/eslint.config.mjs CHANGED
@@ -23,9 +23,21 @@ export default typescriptEslint.config(
23
23
  rules: {
24
24
  // your rules
25
25
  "curly": ['error'],
26
+
27
+ // Please don't use console statements and duplicated imports, TODOs are marked
26
28
  "no-console": ['warn', { allow: ['warn', 'error'] }],
27
29
  "no-warning-comments": ['warn'],
28
- "no-duplicate-imports": ['warn']
30
+ "no-duplicate-imports": ['warn'],
31
+
32
+ // Prevent errors when testing on refs (instead of value of ref)
33
+ "vue/no-ref-as-operand": ['error'],
34
+
35
+ // Indentation
36
+ "vue/html-indent": ['warn', 4],
37
+ "vue/script-indent": ['warn', 4],
38
+
39
+ // Number of attributes per line (increase because sometimes two is not a lot)
40
+ "vue/max-attributes-per-line": ['warn', { singleline: 2 } ]
29
41
  },
30
42
  }
31
43
  );
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@saooti/octopus-sdk",
3
- "version": "41.0.16",
3
+ "version": "41.0.18",
4
4
  "private": false,
5
5
  "description": "Javascript SDK for using octopus",
6
6
  "author": "Saooti",
@@ -65,6 +65,7 @@
65
65
  },
66
66
  "devDependencies": {
67
67
  "@types/sockjs-client": "^1.5.4",
68
+ "@types/webpack-env": "^1.18.8",
68
69
  "@vitejs/plugin-vue": "^5.2.4",
69
70
  "eslint": "^9.28.0",
70
71
  "eslint-plugin-vue": "^9.33.0",
@@ -1,5 +1,10 @@
1
1
  import { useRoute, useRouter } from 'vue-router';
2
- export const useRouteUpdateParams = ()=>{
2
+
3
+ interface RouteParams {
4
+ productor: string;
5
+ }
6
+
7
+ export const useRouteUpdateParams = () => {
3
8
 
4
9
  const router = useRouter();
5
10
  const route = useRoute();
@@ -38,11 +43,18 @@ export const useRouteUpdateParams = ()=>{
38
43
  }
39
44
  }
40
45
 
46
+ /*
47
+ function updateRouteParams(params: Partial<RouteParams>) {
48
+ router.push({ query: {
49
+ ...route.query,
50
+ ...params
51
+ }});
52
+ }*/
41
53
 
42
- return {
54
+ return {
43
55
  updatePaginateSize,
44
56
  updateRouteParam,
45
57
  updateRouteParamAdvanced,
46
58
  updateFiltersParam
47
- }
59
+ }
48
60
  }
@@ -16,7 +16,11 @@
16
16
  aria-hidden="true"
17
17
  alt=""
18
18
  :title="t('Emission name image', { name: emission.name })"
19
- />
19
+ >
20
+ <ClassicImageBanner v-if="!emissionVisible">
21
+ {{ t('Emission - Not available for listeners') }}
22
+ </ClassicImageBanner>
23
+
20
24
  <div class="classic-element-text">
21
25
  <div class="d-flex align-items-center element-name basic-line-clamp">
22
26
  <AlertIcon
@@ -63,12 +67,15 @@ import displayHelper from "../../../helper/displayHelper";
63
67
  import { computed, onBeforeMount, onMounted, ref, useTemplateRef } from "vue";
64
68
  import { Podcast } from "@/stores/class/general/podcast";
65
69
  import { ListClassicReturn } from "@/stores/class/general/listReturn";
70
+
71
+ import ClassicImageBanner from '../../misc/ClassicImageBanner.vue';
72
+
66
73
  import { useI18n } from "vue-i18n";
67
74
 
68
75
  //Props
69
76
  const props = defineProps({
70
77
  emission: { default: () => ({}), type: Object as () => Emission },
71
- })
78
+ });
72
79
 
73
80
  //Data
74
81
  const activeEmission = ref(true);
@@ -80,12 +87,16 @@ const { isPodcastmaker, isEditRights } = useOrgaComputed();
80
87
 
81
88
  //Computed
82
89
  const editRight = computed(() => isEditRights(props.emission.orga.id));
83
-
90
+ const emissionVisible = computed(() => {
91
+ return props.emission.visible !== false;
92
+ });
84
93
 
85
94
  onBeforeMount(()=>{
86
- if (!editRight.value) return;
95
+ if (!editRight.value) {
96
+ return;
97
+ }
87
98
  hasPodcast();
88
- })
99
+ });
89
100
 
90
101
  onMounted(()=>{
91
102
  const emissionDesc = useTemplateRef('descriptionEmission')?.value as HTMLElement;
@@ -119,4 +130,4 @@ async function hasPodcast(): Promise<void> {
119
130
  activeEmission.value = false;
120
131
  }
121
132
  }
122
- </script>
133
+ </script>
@@ -190,8 +190,16 @@ async function fetchContent(reset: boolean): Promise<void> {
190
190
  : undefined,
191
191
  rubriqueId: props.rubriqueId.length ? props.rubriqueId : undefined,
192
192
  rubriquageId: props.rubriquageId.length ? props.rubriquageId : undefined,
193
- includeHidden: props.includeHidden,
193
+ includeHidden: props.includeHidden
194
194
  };
195
+
196
+ // When fetching hidden episodes, also fetch hidden emissions
197
+ if (props.includeHidden === true) {
198
+ param.visible = 'ALL';
199
+ } else {
200
+ param.visible = 'VISIBLE';
201
+ }
202
+
195
203
  try {
196
204
  const data = await classicApi.fetchData<ListClassicReturn<Emission>>({
197
205
  api: 0,
@@ -1,3 +1,10 @@
1
+ <!--
2
+ Simple component to display a checkbox
3
+ Use `v-model:text-init` to bind the value.
4
+
5
+ **Slots:**
6
+ `after-label` : A slot to display additional elements after the label
7
+ -->
1
8
  <template>
2
9
  <div class="d-flex flex-nowrap align-items-center octopus-form-item">
3
10
  <div :class="isSwitch ? 'octopus-form-switch me-2' : ''">
@@ -27,6 +34,8 @@
27
34
  @click="clickSlider"
28
35
  >
29
36
  {{ label }}
37
+
38
+ <slot name="after-label" />
30
39
  </label>
31
40
  </div>
32
41
  </template>
@@ -20,7 +20,7 @@
20
20
  />
21
21
 
22
22
  <!-- Main content -->
23
- <span class="ms-2">
23
+ <span class="ms-2 content">
24
24
  <strong v-if="title">
25
25
  {{ title }}
26
26
  <br>
@@ -62,6 +62,8 @@ const iconComponent = computed(() => {
62
62
  return Alert;
63
63
  } else if (type === 'error') {
64
64
  return CloseCircle;
65
+ } else {
66
+ return null;
65
67
  }
66
68
  });
67
69
  </script>
@@ -76,6 +78,12 @@ const iconComponent = computed(() => {
76
78
  align-items: start !important;
77
79
  }
78
80
 
81
+ .content {
82
+ display: flex;
83
+ flex-direction: column;
84
+ align-self: center;
85
+ }
86
+
79
87
  $types: (
80
88
  'success': hsl(from var(--octopus-primary) h s 45),
81
89
  'info': var(--octopus-primary),
@@ -1,28 +1,29 @@
1
1
  <!--
2
- A simple component to display a help button that shows its message when
3
- hovered.
2
+ A simple component to display a help button that shows its message when
3
+ hovered.
4
4
 
5
- Usage:
6
- <ClassicHelpButton>This is my help message</ClassicHelpButton>
5
+ Usage:
6
+ <ClassicHelpButton>This is my help message</ClassicHelpButton>
7
7
  -->
8
8
  <template>
9
- <button
10
- :id="computedId"
11
- class="btn-transparent"
12
- >
13
- <!-- Button icon -->
14
- <HelpCircleIcon :size="30" />
15
-
16
- <!-- Tooltip -->
17
- <ClassicPopover
18
- :target="computedId"
19
- popover-class="help-popover"
9
+ <button
10
+ :id="computedId"
11
+ class="btn-transparent"
20
12
  >
21
- <div class="content">
22
- <slot />
23
- </div>
24
- </ClassicPopover>
25
- </button>
13
+ <!-- Button icon -->
14
+ <HelpCircleIcon :fill-color="color" :size="iconSize" />
15
+
16
+ <!-- Tooltip -->
17
+ <ClassicPopover
18
+ :target="computedId"
19
+ popover-class="help-popover"
20
+ :relative-class="relative ? 'page-element' : ''"
21
+ >
22
+ <div class="content">
23
+ <slot />
24
+ </div>
25
+ </ClassicPopover>
26
+ </button>
26
27
  </template>
27
28
 
28
29
  <script setup lang="ts">
@@ -31,20 +32,46 @@ import { computed, getCurrentInstance } from 'vue';
31
32
  import HelpCircleIcon from "vue-material-design-icons/HelpCircle.vue";
32
33
  import ClassicPopover from './ClassicPopover.vue';
33
34
 
35
+ const { colored, small } = defineProps<{
36
+ colored?: boolean;
37
+ /** Make the popover relative (userful when in page-element) */
38
+ relative?: boolean;
39
+ /** Make the icon smaller if true *(default: false)* */
40
+ small?: boolean;
41
+ }>();
42
+
43
+ /** The color to use for the icon */
44
+ const color = computed(() => {
45
+ if (colored) {
46
+ return "var(--octopus-primary-darker)";
47
+ } else {
48
+ return "black";
49
+ }
50
+ });
51
+
34
52
  /** The internal ID for the elements */
35
53
  const computedId = computed(() => {
36
- return 'popover-' + getCurrentInstance()?.uid;
54
+ return 'popover-' + getCurrentInstance()?.uid;
55
+ });
56
+
57
+ /** The size of the icon, according to the props */
58
+ const iconSize = computed(() => {
59
+ if (small) {
60
+ return 24;
61
+ } else {
62
+ return 30;
63
+ }
37
64
  });
38
65
  </script>
39
66
 
40
67
  <style lang="scss" scoped>
41
68
  .content {
42
- font: revert;
43
- font-size: 18px !important;
44
- text-align: start;
69
+ font: revert;
70
+ font-size: 18px !important;
71
+ text-align: start;
45
72
  }
46
73
 
47
74
  .help-popover {
48
- background-color: var(--octopus-secondary);
75
+ background-color: var(--octopus-secondary-lighter);
49
76
  }
50
77
  </style>
@@ -0,0 +1,33 @@
1
+ <!-- A simple component to display a blur & a banner on an image -->
2
+ <template>
3
+ <div class="blur-with-banner">
4
+ <div class="banner">
5
+ <slot />
6
+ </div>
7
+ </div>
8
+ </template>
9
+
10
+ <script setup>
11
+ </script>
12
+
13
+ <style lang="scss" scoped>
14
+ .blur-with-banner {
15
+ position: absolute;
16
+ inset: 0;
17
+ background-color:var(--octopus-background-transparent);
18
+ // Allow pointer events to go through (allow click on image beneath blur)
19
+ pointer-events: none;
20
+
21
+ .banner {
22
+ text-align: center;
23
+ width: 100%;
24
+ font-size: 0.6rem;
25
+ padding: 0.2rem 0;
26
+ color: white;
27
+ background: black;
28
+ text-transform: uppercase;
29
+ position: absolute;
30
+ top: 0;
31
+ }
32
+ }
33
+ </style>
@@ -12,7 +12,6 @@
12
12
  isFixed && isTopLayerPopover ? 'position-fixed':'position-absolute',
13
13
  popoverClass]"
14
14
  :style="positionInlineStyle"
15
- @focusout="clearDataBlur"
16
15
  @mouseenter="overPopover = true"
17
16
  @mouseleave="
18
17
  overPopover = false;
@@ -139,8 +138,8 @@ function removeListeners() {
139
138
  targetElement.value.removeEventListener("focusout", clearDataBlur);
140
139
  }
141
140
  }
142
- function handleClickEvent(){
143
- if (show.value && isClick.value) {
141
+ function handleClickEvent(e: MouseEvent | PointerEvent){
142
+ if (show.value && isClick.value && e.target !== popoverRef.value && !popoverRef.value?.contains(e.target)) {
144
143
  isClick.value = false;
145
144
  clearData();
146
145
  return -1;
@@ -180,7 +179,7 @@ function setPopoverData(e: MouseEvent | PointerEvent) {
180
179
  if (props.disable || !e || !e.target) {
181
180
  return;
182
181
  }
183
- if ("click" === e.type && -1 === handleClickEvent()) {
182
+ if ("click" === e.type && -1 === handleClickEvent(e)) {
184
183
  return;
185
184
  }
186
185
  show.value = true;
@@ -235,6 +234,7 @@ function setPopoverData(e: MouseEvent | PointerEvent) {
235
234
  maxHeight.value = '80dvh';
236
235
  }
237
236
  }
237
+
238
238
  function clearDataBlur(e: FocusEvent) {
239
239
  if (isTabAction.value) {
240
240
  isTabAction.value = false;
@@ -245,14 +245,18 @@ function clearDataBlur(e: FocusEvent) {
245
245
  if (-1!==result) {
246
246
  return;
247
247
  }
248
+
249
+ const parent = popoverRef?.value as HTMLElement;
248
250
  if (!e.relatedTarget) {
251
+ if (parent !== null && parent.contains(e.target)) {
252
+ return;
253
+ }
249
254
  return clearClick();
250
255
  }
251
256
  const myElement = e.relatedTarget as HTMLElement;
252
257
  if (popoverId.value === myElement.id) {
253
258
  return;
254
259
  }
255
- const parent =popoverRef?.value as HTMLElement;
256
260
  if (null === parent || !parent.contains(myElement)) {
257
261
  return clearClick();
258
262
  }
@@ -301,9 +305,8 @@ defineExpose({
301
305
  clearClick
302
306
  });
303
307
  </script>
304
- <style lang="scss">
305
-
306
308
 
309
+ <style lang="scss">
307
310
  .octopus-popover {
308
311
  background: var(--octopus-background);
309
312
  border-radius: var(--octopus-border-radius);
@@ -3,11 +3,12 @@
3
3
  <div class="d-flex align-items-center bg-warning p-2 rounded my-1">
4
4
  <AlertIcon :title="t('Warning')" class="me-1 text-danger" :size="16" />
5
5
  <div class="text-danger">
6
- {{ message }}
6
+ <slot>{{ message }}</slot>
7
7
  </div>
8
8
  </div>
9
9
  </div>
10
10
  </template>
11
+
11
12
  <script setup lang="ts">
12
13
  import AlertIcon from "vue-material-design-icons/Alert.vue";
13
14
  import { useI18n } from "vue-i18n";
@@ -19,4 +20,5 @@ defineProps({
19
20
 
20
21
  //Composables
21
22
  const { t } = useI18n();
22
- </script>
23
+ </script>
24
+
@@ -25,7 +25,8 @@
25
25
  alt=""
26
26
  :title="t('Emission name image', { name: name })"
27
27
  class="img-box img-box-podcast mb-3 flex-column justify-content-start align-items-start position-relative flex-shrink-0 float-start me-3"
28
- />
28
+ >
29
+
29
30
  <div class="d-flex align-items-center justify-content-between">
30
31
  <h2>{{ name }}</h2>
31
32
  <ShareAnonymous v-if="!editRight" class="d-flex justify-content-end flex-grow-1" :emission="emission" :organisation-id="emission.orga.id"/>
@@ -36,6 +37,17 @@
36
37
  v-html="urlify(description)"
37
38
  />
38
39
  <!-- eslint-enable -->
40
+
41
+ <ErrorMessage v-if="emission.visible === false">
42
+ <div class="d-flex" style="align-items: center">
43
+ <div>{{ t('Emission - Not available for listeners') }}</div>
44
+
45
+ <ClassicHelpButton relative small>
46
+ {{ t('Emission - Not available explanation') }}
47
+ </ClassicHelpButton>
48
+ </div>
49
+ </ErrorMessage>
50
+
39
51
  <div v-if="lastPodcast" class="d-flex align-items-center mt-3">
40
52
  <PodcastPlayButton
41
53
  :podcast="lastPodcast"
@@ -116,6 +128,10 @@ import { Podcast } from "@/stores/class/general/podcast";
116
128
  import { useI18n } from "vue-i18n";
117
129
  import { useRoute } from "vue-router";
118
130
  import { useSimplePageParam } from "../composable/route/useSimplePageParam";
131
+
132
+ import ErrorMessage from "../misc/ErrorMessage.vue";
133
+ import ClassicHelpButton from "../misc/ClassicHelpButton.vue";
134
+
119
135
  const ShareAnonymous = defineAsyncComponent(() => import("../display/sharing/ShareAnonymous.vue"));
120
136
  const PodcastFilterList = defineAsyncComponent(
121
137
  () => import("../display/podcasts/PodcastFilterList.vue"),
package/src/locale/de.ts CHANGED
@@ -415,4 +415,6 @@ export default {
415
415
  "Copied!":"Kopiert!",
416
416
  "Color of the QR Code": "Farbe des QR-Codes",
417
417
  "Silent stream":"Stiller Fluss",
418
+ "Emission - Not available for listeners": "Sendung für Hörer nicht sichtbar",
419
+ "Emission - Not available explanation": "Diese Sendung ist für Hörer nicht sichtbar, da sie so konfiguriert wurde, dass ihre Episoden nicht veröffentlicht werden. Diese Konfiguration ist in den erweiterten Einstellungen der Show verfügbar.",
418
420
  }
package/src/locale/en.ts CHANGED
@@ -418,4 +418,6 @@ export default {
418
418
  "Copied!":"Copied!",
419
419
  "Color of the QR Code": "Color of the QR Code",
420
420
  "Silent stream":"Silent stream",
421
+ "Emission - Not available for listeners": "Broadcast not visible to listeners",
422
+ "Emission - Not available explanation": "This show is not visible to listeners because it has been configured so that its episodes are not published. This configuration is available in the advanced settings of the show.",
421
423
  };
package/src/locale/es.ts CHANGED
@@ -416,4 +416,6 @@ export default {
416
416
  "Copied!":"¡Copiado!",
417
417
  "Color of the QR Code": "Color del código QR",
418
418
  "Silent stream":"Flujo silencioso",
419
+ "Emission - Not available for listeners": "Transmisión no visible para los oyentes",
420
+ "Emission - Not available explanation": "Este programa no es visible para los oyentes porque ha sido configurado para que sus episodios no se publiquen. Esta configuración está disponible en la configuración avanzada del programa.",
419
421
  }
package/src/locale/fr.ts CHANGED
@@ -425,4 +425,6 @@ export default {
425
425
  "Copied!":"Copié !",
426
426
  "Color of the QR Code": "Couleur du Qr Code",
427
427
  "Silent stream":"Flux silencieux",
428
+ "Emission - Not available for listeners": "Émission non visible pour les auditeurs",
429
+ "Emission - Not available explanation": "Cette émission n'est pas visible pour les auditeurs car elle a été configurée pour que ses épisodes ne soient pas publiés. Cette configuration est disponible dans les paramètres avancés de l'émission."
428
430
  };
package/src/locale/it.ts CHANGED
@@ -412,4 +412,6 @@ export default{
412
412
  "Copied!":"Copiato!",
413
413
  "Color of the QR Code": "Colore del codice QR",
414
414
  "Silent stream":"Flusso silenzioso",
415
+ "Emission - Not available for listeners": "Trasmissione non visibile agli ascoltatori",
416
+ "Emission - Not available explanation": "Questo programma non è visibile agli ascoltatori perché è stato configurato in modo che i suoi episodi non vengano pubblicati. Questa configurazione è disponibile nelle impostazioni avanzate dello spettacolo.",
415
417
  };
package/src/locale/sl.ts CHANGED
@@ -407,4 +407,6 @@ export default {
407
407
  "Copied!":"Kopirano!",
408
408
  "Color of the QR Code": "Barva kode QR",
409
409
  "Silent stream":"Tihi tok",
410
+ "Emission - Not available for listeners": "Oddaja ni vidna poslušalcem",
411
+ "Emission - Not available explanation": "Ta oddaja ni vidna poslušalcem, ker je bila konfigurirana tako, da njene epizode niso objavljene. Ta konfiguracija je na voljo v naprednih nastavitvah oddaje.",
410
412
  }
@@ -6,6 +6,7 @@ import { ItuneCategory } from "./ituneCategory";
6
6
  export interface Emission {
7
7
  imageUrl?: string;
8
8
  annotations?: { [key: string]: string | number | boolean | undefined };
9
+ beneficiaries: string[];
9
10
  description: string;
10
11
  emissionId: number;
11
12
  iabIds?: Array<number>;
@@ -26,6 +27,11 @@ export interface Emission {
26
27
  };
27
28
  createdByUserId?: string;
28
29
  privateRssType?:string;
30
+ /**
31
+ * Indicates that this emission and its episode are visible.
32
+ * *Default: true*
33
+ */
34
+ visible?: boolean;
29
35
  }
30
36
 
31
37
  export function emptyEmissionData(): Emission {
package/tsconfig.json CHANGED
@@ -1,43 +1,43 @@
1
1
  {
2
- "compilerOptions": {
3
- "target": "esnext",
4
- "module": "esnext",
5
- "strict": true,
6
- "jsx": "preserve",
7
- "importHelpers": true,
8
- "moduleResolution": "node",
9
- "experimentalDecorators": true,
10
- "skipLibCheck": true,
11
- "esModuleInterop": true,
12
- "allowSyntheticDefaultImports": true,
13
- "sourceMap": true,
14
- "baseUrl": ".",
15
- "types": [
16
- "webpack-env"
17
- ],
18
- "paths": {
19
- "@/*": [
20
- "src/*"
21
- ]
2
+ "compilerOptions": {
3
+ "target": "esnext",
4
+ "module": "esnext",
5
+ // "strict": true,
6
+ "jsx": "preserve",
7
+ "importHelpers": true,
8
+ "moduleResolution": "node",
9
+ "experimentalDecorators": true,
10
+ "skipLibCheck": true,
11
+ "esModuleInterop": true,
12
+ "allowSyntheticDefaultImports": true,
13
+ "sourceMap": true,
14
+ "baseUrl": ".",
15
+ "types": [
16
+ "webpack-env", "sockjs-client"
17
+ ],
18
+ "paths": {
19
+ "@/*": [
20
+ "./src/*"
21
+ ]
22
+ },
23
+ "lib": [
24
+ "esnext",
25
+ "dom",
26
+ "dom.iterable",
27
+ "scripthost"
28
+ ]
22
29
  },
23
- "lib": [
24
- "esnext",
25
- "dom",
26
- "dom.iterable",
27
- "scripthost"
30
+ "include": [
31
+ "src/**/*.ts",
32
+ "src/**/*.tsx",
33
+ "src/**/*.vue",
34
+ "tests/**/*.ts",
35
+ "tests/**/*.tsx"
36
+ ],
37
+ "exclude": [
38
+ "node_modules"
39
+ ],
40
+ "files": [
41
+ "src/shims-vue.d.ts"
28
42
  ]
29
- },
30
- "include": [
31
- "src/**/*.ts",
32
- "src/**/*.tsx",
33
- "src/**/*.vue",
34
- "tests/**/*.ts",
35
- "tests/**/*.tsx"
36
- ],
37
- "exclude": [
38
- "node_modules"
39
- ],
40
- "files": [
41
- "src/shims-vue.d.ts",
42
- ]
43
43
  }
@@ -1 +0,0 @@
1
- declare module 'sockjs-client/dist/sockjs';