@useinsider/guido 3.7.0-beta.77d2633 → 3.7.0-beta.fc2a9d1
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/composables/useSave.js +16 -17
- package/dist/extensions/Blocks/Recommendation/controls/main/index.js +35 -30
- package/dist/extensions/Blocks/Recommendation/controls/main/productLayout.js +62 -50
- package/dist/extensions/Blocks/Recommendation/controls/main/utils.js +208 -193
- package/dist/extensions/Blocks/Recommendation/store/recommendation.js +18 -17
- package/dist/extensions/Blocks/Recommendation/validation/requiredFields.js +9 -9
- package/dist/extensions/Blocks/Unsubscribe/block.js +13 -13
- package/dist/extensions/Blocks/Unsubscribe/utils/constants.js +3 -4
- package/dist/src/extensions/Blocks/Recommendation/controls/main/index.d.ts +1 -0
- package/dist/src/extensions/Blocks/Recommendation/store/recommendation.d.ts +1 -0
- package/dist/src/extensions/Blocks/Recommendation/validation/requiredFields.d.ts +2 -3
- package/dist/src/extensions/Blocks/Unsubscribe/utils/constants.d.ts +0 -1
- package/dist/stores/dynamic-content.js +1 -1
- package/package.json +1 -1
- package/dist/composables/validators/useUnsubscribeBlockValidator.js +0 -32
- package/dist/src/composables/useApiExample.d.ts +0 -63
- package/dist/src/composables/useRecommendation.test.d.ts +0 -1
- package/dist/src/composables/validators/useUnsubscribeBlockValidator.d.ts +0 -3
- package/dist/src/composables/validators/useUnsubscribeBlockValidator.test.d.ts +0 -1
- package/dist/src/config/migrator/recommendation/compositionMapper.test.d.ts +0 -1
- package/dist/src/config/migrator/recommendation/extractors.test.d.ts +0 -1
- package/dist/src/config/migrator/recommendation/parseLegacyConfig.test.d.ts +0 -1
- package/dist/src/config/migrator/recommendation/settingsMapper.test.d.ts +0 -1
- package/dist/src/config/migrator/recommendation/themeMapper.test.d.ts +0 -1
- package/dist/src/config/migrator/recommendationMigrator.test.d.ts +0 -1
- package/dist/src/extensions/Blocks/Recommendation/controls/main/utils.test.d.ts +0 -1
- package/dist/src/extensions/Blocks/Recommendation/services/configService.test.d.ts +0 -1
- package/dist/src/extensions/Blocks/Recommendation/store/recommendation.test.d.ts +0 -1
- package/dist/src/extensions/Blocks/Recommendation/templates/utils.test.d.ts +0 -1
- package/dist/src/extensions/Blocks/Recommendation/utils/filterUtil.test.d.ts +0 -1
- package/dist/src/extensions/Blocks/Recommendation/utils/legacyStrategyMap.test.d.ts +0 -1
- package/dist/src/extensions/Blocks/Recommendation/utils/priceFormatter.test.d.ts +0 -1
- package/dist/src/stores/config.test.d.ts +0 -1
- package/dist/src/utils/ampErrorFilter.test.d.ts +0 -1
- package/dist/src/utils/htmlEscape.test.d.ts +0 -1
- package/dist/src/utils/templatePreparation.test.d.ts +0 -1
- package/dist/src/vitest.setup.d.ts +0 -0
|
@@ -2,16 +2,16 @@ import { getRecommendationFeedSourceMaps as g, getOperatorOptions as R, PriceAtt
|
|
|
2
2
|
import { useRecommendationApi as y } from "../../../../services/recommendationApi.js";
|
|
3
3
|
import { useConfigStore as G } from "../../../../stores/config.js";
|
|
4
4
|
import { defineStore as P } from "pinia";
|
|
5
|
-
import { DEFAULT_CARDS_IN_ROW as F } from "../constants/layout.js";
|
|
6
|
-
import { EXCLUDED_ALGORITHM_IDS as
|
|
5
|
+
import { DEFAULT_MOBILE_CARDS_IN_ROW as D, DEFAULT_CARDS_IN_ROW as F } from "../constants/layout.js";
|
|
6
|
+
import { EXCLUDED_ALGORITHM_IDS as w } from "../constants/defaultConfig.js";
|
|
7
7
|
import { getDefaultProducts as S } from "../templates/utils.js";
|
|
8
8
|
import { generateCompleteFilterQuery as b } from "../utils/filterUtil.js";
|
|
9
9
|
import { getPartnerRecommendationParams as v } from "../utils/partnerCustomizations.js";
|
|
10
|
-
import { isFilterValid as
|
|
11
|
-
import { isConfigValid as
|
|
10
|
+
import { isFilterValid as N } from "../validation/filterSchema.js";
|
|
11
|
+
import { isConfigValid as x } from "../validation/requiredFields.js";
|
|
12
12
|
const h = y();
|
|
13
13
|
let m = null, u = null, d = null;
|
|
14
|
-
function
|
|
14
|
+
function k() {
|
|
15
15
|
return {
|
|
16
16
|
cardsInRow: F,
|
|
17
17
|
currencySettings: {
|
|
@@ -27,6 +27,7 @@ function I() {
|
|
|
27
27
|
productIds: [],
|
|
28
28
|
id: 1,
|
|
29
29
|
language: "en_US",
|
|
30
|
+
mobileCardsInRow: D,
|
|
30
31
|
mobileLayoutEnabled: !1,
|
|
31
32
|
orientation: "grid",
|
|
32
33
|
recommendedProducts: [],
|
|
@@ -39,9 +40,9 @@ function I() {
|
|
|
39
40
|
customAttributes: []
|
|
40
41
|
};
|
|
41
42
|
}
|
|
42
|
-
function
|
|
43
|
+
function I() {
|
|
43
44
|
return {
|
|
44
|
-
recommendationConfigs:
|
|
45
|
+
recommendationConfigs: k(),
|
|
45
46
|
recommendationProducts: [],
|
|
46
47
|
filterStatus: !1,
|
|
47
48
|
filterSelectionDrawerStatus: !1,
|
|
@@ -50,7 +51,7 @@ function k() {
|
|
|
50
51
|
filterSnapshot: null
|
|
51
52
|
};
|
|
52
53
|
}
|
|
53
|
-
const
|
|
54
|
+
const L = () => ({
|
|
54
55
|
recommendationCampaignUrls: {},
|
|
55
56
|
activePredictiveAlgorithms: [],
|
|
56
57
|
languages: {},
|
|
@@ -59,8 +60,8 @@ const x = () => ({
|
|
|
59
60
|
blockStates: {},
|
|
60
61
|
currentRecommendationId: null,
|
|
61
62
|
configVersion: 0
|
|
62
|
-
}),
|
|
63
|
-
state: () =>
|
|
63
|
+
}), K = P("guidoRecommendationExtension", {
|
|
64
|
+
state: () => L(),
|
|
64
65
|
getters: {
|
|
65
66
|
// ====================================================================
|
|
66
67
|
// Proxy Getters — Backward Compatible Access to Current Block State
|
|
@@ -70,7 +71,7 @@ const x = () => ({
|
|
|
70
71
|
* This allows all existing code that reads `store.recommendationConfigs` to work unchanged.
|
|
71
72
|
*/
|
|
72
73
|
recommendationConfigs(t) {
|
|
73
|
-
return t.currentRecommendationId !== null && t.blockStates[t.currentRecommendationId] ? t.blockStates[t.currentRecommendationId].recommendationConfigs :
|
|
74
|
+
return t.currentRecommendationId !== null && t.blockStates[t.currentRecommendationId] ? t.blockStates[t.currentRecommendationId].recommendationConfigs : k();
|
|
74
75
|
},
|
|
75
76
|
/**
|
|
76
77
|
* Proxy getter: delegates to blockStates[currentRecommendationId].recommendationProducts
|
|
@@ -116,7 +117,7 @@ const x = () => ({
|
|
|
116
117
|
},
|
|
117
118
|
getActivePredictiveAlgorithms: (t) => {
|
|
118
119
|
const e = g(), r = [];
|
|
119
|
-
return t.activePredictiveAlgorithms.filter((n) => !
|
|
120
|
+
return t.activePredictiveAlgorithms.filter((n) => !w.includes(n)).forEach((n) => {
|
|
120
121
|
r.push(...e.filter((c) => c.id === n));
|
|
121
122
|
}), r.map((n) => ({
|
|
122
123
|
text: n.name,
|
|
@@ -156,7 +157,7 @@ const x = () => ({
|
|
|
156
157
|
setCurrentBlock(t) {
|
|
157
158
|
this.blockStates[t] || (this.blockStates = {
|
|
158
159
|
...this.blockStates,
|
|
159
|
-
[t]:
|
|
160
|
+
[t]: I()
|
|
160
161
|
}), this.currentRecommendationId = t;
|
|
161
162
|
},
|
|
162
163
|
/**
|
|
@@ -224,7 +225,7 @@ const x = () => ({
|
|
|
224
225
|
decimalCount: String(e.currencyDecimalCount),
|
|
225
226
|
decimalSeparator: r(e.currencyDecimalSeparator, ","),
|
|
226
227
|
thousandSeparator: r(e.currencyThousandSeparator, ".")
|
|
227
|
-
}, c = !this.blockStates[t], i = c ?
|
|
228
|
+
}, c = !this.blockStates[t], i = c ? I() : this.blockStates[t];
|
|
228
229
|
i.recommendationConfigs = {
|
|
229
230
|
...i.recommendationConfigs,
|
|
230
231
|
strategy: e.strategy,
|
|
@@ -379,7 +380,7 @@ const x = () => ({
|
|
|
379
380
|
const n = [...e.recommendationConfigs.filters];
|
|
380
381
|
n[r] = {
|
|
381
382
|
...t,
|
|
382
|
-
isValid:
|
|
383
|
+
isValid: N(t)
|
|
383
384
|
}, e.recommendationConfigs.filters = n;
|
|
384
385
|
}
|
|
385
386
|
},
|
|
@@ -425,7 +426,7 @@ const x = () => ({
|
|
|
425
426
|
* every block's recommendationConfigs across user edits.
|
|
426
427
|
*/
|
|
427
428
|
hasInvalidBlock() {
|
|
428
|
-
return Object.values(this.blockStates).some((t) => !
|
|
429
|
+
return Object.values(this.blockStates).some((t) => !x(t.recommendationConfigs, this));
|
|
429
430
|
},
|
|
430
431
|
// ====================================================================
|
|
431
432
|
// Per-Block Product Fetching
|
|
@@ -475,5 +476,5 @@ const x = () => ({
|
|
|
475
476
|
}
|
|
476
477
|
});
|
|
477
478
|
export {
|
|
478
|
-
|
|
479
|
+
K as useRecommendationExtensionStore
|
|
479
480
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const
|
|
1
|
+
const u = [
|
|
2
2
|
{
|
|
3
3
|
key: "locale",
|
|
4
4
|
getValue: (e) => e.language,
|
|
@@ -9,8 +9,8 @@ const o = [
|
|
|
9
9
|
getValue: (e) => e.currencySettings.value,
|
|
10
10
|
getAvailableOptions: (e) => e.currencyList.map((n) => n.text)
|
|
11
11
|
}
|
|
12
|
-
],
|
|
13
|
-
function
|
|
12
|
+
], s = "newsletter.recommendation-fill-required-fields";
|
|
13
|
+
function l(e, n, o = u) {
|
|
14
14
|
return o.filter((t) => {
|
|
15
15
|
var a;
|
|
16
16
|
if (t.condition && !t.condition(e))
|
|
@@ -22,12 +22,12 @@ function u(e, n) {
|
|
|
22
22
|
return r !== void 0 && !r.includes(i);
|
|
23
23
|
}).map((t) => t.key);
|
|
24
24
|
}
|
|
25
|
-
function
|
|
26
|
-
return
|
|
25
|
+
function c(e, n) {
|
|
26
|
+
return l(e, n).length === 0;
|
|
27
27
|
}
|
|
28
28
|
export {
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
29
|
+
u as REQUIRED_RECOMMENDATION_FIELDS,
|
|
30
|
+
s as RecommendationRequiredFieldsKey,
|
|
31
|
+
l as getInvalidFields,
|
|
32
|
+
c as isConfigValid
|
|
33
33
|
};
|
|
@@ -5,11 +5,11 @@ import { useToaster as B } from "../../../composables/useToaster.js";
|
|
|
5
5
|
import { ToasterTypeOptions as S } from "../../../enums/toaster.js";
|
|
6
6
|
import { PAGE_TYPES as E } from "../../../enums/unsubscribe.js";
|
|
7
7
|
import { useUnsubscribeStore as a } from "../../../stores/unsubscribe.js";
|
|
8
|
-
import { Block as L, BlockCompositionType as f, ContextActionType as h, ModificationDescription as b, BlockType as
|
|
9
|
-
import { getDefaultTemplate as
|
|
10
|
-
import { DATA_ATTRIBUTES as i,
|
|
11
|
-
import { parsePageList as
|
|
12
|
-
const y = "unsubscribe-block",
|
|
8
|
+
import { Block as L, BlockCompositionType as f, ContextActionType as h, ModificationDescription as b, BlockType as v } from "../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
|
|
9
|
+
import { getDefaultTemplate as A } from "./template.js";
|
|
10
|
+
import { DATA_ATTRIBUTES as i, UNSUBSCRIBE_EVENTS as d } from "./utils/constants.js";
|
|
11
|
+
import { parsePageList as p } from "./utils/utils.js";
|
|
12
|
+
const y = "unsubscribe-block", m = 'a[data-unsubscribe-link="true"]', _ = ".unsubscribe-block-v2", I = "{{ins-unsubscribe-link}}", T = "https://academy.insiderone.com/docs/adding-unsubscribe-pages-into-emails", C = "Removing the unsubscribe text leaves an empty block, but an active unsubscribe link is required. Undo your last action to restore the text, or delete the unsubscribe block entirely.", N = {
|
|
13
13
|
[E.GLOBAL_UNSUBSCRIBE]: "{{ins-global-unsubscribe-link}}",
|
|
14
14
|
[E.SUBSCRIPTION_PREFERENCE_CENTER]: "{{ins-preferences-unsubscribe-link}}"
|
|
15
15
|
};
|
|
@@ -42,7 +42,7 @@ class F extends L {
|
|
|
42
42
|
return this.api.translate("Unsubscribe Block Description");
|
|
43
43
|
}
|
|
44
44
|
getTemplate() {
|
|
45
|
-
return
|
|
45
|
+
return A();
|
|
46
46
|
}
|
|
47
47
|
getContextActionsIds() {
|
|
48
48
|
return [h.MOVE, h.REMOVE];
|
|
@@ -68,7 +68,7 @@ class F extends L {
|
|
|
68
68
|
this._removeEventListeners(), this.currentNode = void 0, this.linkStateByBlockId.clear();
|
|
69
69
|
}
|
|
70
70
|
_hasUnsubscribeLink(e) {
|
|
71
|
-
return "querySelector" in e ? !!e.querySelector(
|
|
71
|
+
return "querySelector" in e ? !!e.querySelector(m) : !1;
|
|
72
72
|
}
|
|
73
73
|
_readBlockId(e) {
|
|
74
74
|
return "getAttribute" in e ? e.getAttribute(i.BLOCK_ID) : null;
|
|
@@ -102,7 +102,7 @@ class F extends L {
|
|
|
102
102
|
let e = 0;
|
|
103
103
|
try {
|
|
104
104
|
const t = this.api.getDocumentRoot();
|
|
105
|
-
t && "querySelectorAll" in t && t.querySelectorAll(
|
|
105
|
+
t && "querySelectorAll" in t && t.querySelectorAll(_).forEach((s) => {
|
|
106
106
|
if ("getAttribute" in s) {
|
|
107
107
|
const o = s.getAttribute(i.BLOCK_ID), u = o ? parseInt(o) : 0;
|
|
108
108
|
u > e && (e = u);
|
|
@@ -150,7 +150,7 @@ class F extends L {
|
|
|
150
150
|
try {
|
|
151
151
|
if (!this.currentNode)
|
|
152
152
|
return;
|
|
153
|
-
this.api.getDocumentModifier().modifyHtml(this.currentNode).replaceWith(`<${
|
|
153
|
+
this.api.getDocumentModifier().modifyHtml(this.currentNode).replaceWith(`<${v.EMPTY_CONTAINER}/>`).apply(new b("Removed unsubscribe block due to cancel"));
|
|
154
154
|
} catch (e) {
|
|
155
155
|
console.warn("[UnsubscribeBlock] Failed to remove unsubscribe block:", e);
|
|
156
156
|
}
|
|
@@ -161,7 +161,7 @@ class F extends L {
|
|
|
161
161
|
_updateBlock(e, t) {
|
|
162
162
|
if (!this.currentNode || !("querySelector" in this.currentNode))
|
|
163
163
|
return;
|
|
164
|
-
const r = this.currentNode.querySelector(
|
|
164
|
+
const r = this.currentNode.querySelector(m);
|
|
165
165
|
if (!r)
|
|
166
166
|
return;
|
|
167
167
|
const s = this._getMergeTag(e);
|
|
@@ -181,7 +181,7 @@ class F extends L {
|
|
|
181
181
|
}
|
|
182
182
|
_checkExistingBlocks() {
|
|
183
183
|
const e = a();
|
|
184
|
-
e.isGlobalUnsubscribeDisabled = !1, e.isSubscriptionPreferencesCenterDisabled = !1, this.api.getDocumentRoot().querySelectorAll(
|
|
184
|
+
e.isGlobalUnsubscribeDisabled = !1, e.isSubscriptionPreferencesCenterDisabled = !1, this.api.getDocumentRoot().querySelectorAll(_).forEach((r) => {
|
|
185
185
|
if ("getAttribute" in r) {
|
|
186
186
|
const s = r.getAttribute(i.PAGE_TYPE);
|
|
187
187
|
if (s) {
|
|
@@ -197,7 +197,7 @@ class F extends L {
|
|
|
197
197
|
const t = e.getAttribute(i.PAGE_TYPE), r = e.getAttribute(i.PAGE_LIST);
|
|
198
198
|
if (!t || !r)
|
|
199
199
|
return;
|
|
200
|
-
const s = a(), o = Number(t), u =
|
|
200
|
+
const s = a(), o = Number(t), u = p(r);
|
|
201
201
|
await s.fetchTemplates(), s.setCollectionWithoutAutoSelection(o), s.loadSelectedTemplates(u);
|
|
202
202
|
}
|
|
203
203
|
_resetStoreState() {
|
|
@@ -209,7 +209,7 @@ class F extends L {
|
|
|
209
209
|
const t = e.getAttribute(i.PAGE_LIST);
|
|
210
210
|
if (!t)
|
|
211
211
|
return;
|
|
212
|
-
const r = a(), s =
|
|
212
|
+
const r = a(), s = p(t);
|
|
213
213
|
r.removeUnsubscribePages(s);
|
|
214
214
|
}
|
|
215
215
|
}
|
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
const s = {
|
|
2
2
|
SELECT: "unsubscribe:select",
|
|
3
3
|
CANCEL: "unsubscribe:cancel"
|
|
4
|
-
},
|
|
4
|
+
}, e = {
|
|
5
5
|
PAGE_TYPE: "data-unsubscribe-page-type",
|
|
6
6
|
PAGE_LIST: "data-unsubscribe-page-list",
|
|
7
7
|
BLOCK_ID: "data-unsubscribe-block-id"
|
|
8
|
-
}
|
|
8
|
+
};
|
|
9
9
|
export {
|
|
10
|
-
|
|
11
|
-
c as UNSUBSCRIBE_BLOCK_SELECTOR,
|
|
10
|
+
e as DATA_ATTRIBUTES,
|
|
12
11
|
s as UNSUBSCRIBE_EVENTS
|
|
13
12
|
};
|
|
@@ -8,7 +8,7 @@ export interface ExtensionStoreSlice {
|
|
|
8
8
|
languages: Languages;
|
|
9
9
|
currencyList: Currency[];
|
|
10
10
|
}
|
|
11
|
-
interface RequiredField {
|
|
11
|
+
export interface RequiredField {
|
|
12
12
|
key: string;
|
|
13
13
|
getValue: (config: PerBlockConfigs) => string;
|
|
14
14
|
getAvailableOptions?: (store: ExtensionStoreSlice) => string[];
|
|
@@ -16,6 +16,5 @@ interface RequiredField {
|
|
|
16
16
|
}
|
|
17
17
|
export declare const REQUIRED_RECOMMENDATION_FIELDS: RequiredField[];
|
|
18
18
|
export declare const RecommendationRequiredFieldsKey = "newsletter.recommendation-fill-required-fields";
|
|
19
|
-
export declare function getInvalidFields(config: PerBlockConfigs, store: ExtensionStoreSlice): string[];
|
|
19
|
+
export declare function getInvalidFields(config: PerBlockConfigs, store: ExtensionStoreSlice, fields?: RequiredField[]): string[];
|
|
20
20
|
export declare function isConfigValid(config: PerBlockConfigs, store: ExtensionStoreSlice): boolean;
|
|
21
|
-
export {};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@useinsider/guido",
|
|
3
|
-
"version": "3.7.0-beta.
|
|
3
|
+
"version": "3.7.0-beta.fc2a9d1",
|
|
4
4
|
"description": "Guido is a Vue + TypeScript wrapper for Email Plugin. Easily embed the email editor in your Vue applications.",
|
|
5
5
|
"main": "./dist/guido.umd.cjs",
|
|
6
6
|
"module": "./dist/library.js",
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { ToasterTypeOptions as i } from "../../enums/toaster.js";
|
|
2
|
-
import { PAGE_TYPES as n } from "../../enums/unsubscribe.js";
|
|
3
|
-
import { UNSUBSCRIBE_BLOCK_SELECTOR as u, DATA_ATTRIBUTES as l } from "../../extensions/Blocks/Unsubscribe/utils/constants.js";
|
|
4
|
-
import { useToaster as T } from "../useToaster.js";
|
|
5
|
-
import { useTranslations as E } from "../useTranslations.js";
|
|
6
|
-
const m = [
|
|
7
|
-
{
|
|
8
|
-
pageType: n.GLOBAL_UNSUBSCRIBE,
|
|
9
|
-
messageKey: "unsubscription-preference.duplicate-global-unsub"
|
|
10
|
-
},
|
|
11
|
-
{
|
|
12
|
-
pageType: n.SUBSCRIPTION_PREFERENCE_CENTER,
|
|
13
|
-
messageKey: "unsubscription-preference.duplicate-pref-center"
|
|
14
|
-
}
|
|
15
|
-
], g = "unsubscription-preference.duplicate-both", y = () => {
|
|
16
|
-
const { showToaster: o } = T(), a = E();
|
|
17
|
-
return { validateUnsubscribeBlockUniqueness: (c) => {
|
|
18
|
-
const p = new DOMParser().parseFromString(c, "text/html"), t = /* @__PURE__ */ new Map();
|
|
19
|
-
p.querySelectorAll(u).forEach((e) => {
|
|
20
|
-
const r = Number(e.getAttribute(l.PAGE_TYPE));
|
|
21
|
-
t.set(r, (t.get(r) ?? 0) + 1);
|
|
22
|
-
});
|
|
23
|
-
const s = m.filter((e) => (t.get(e.pageType) ?? 0) > 1).map((e) => e.messageKey);
|
|
24
|
-
return s.length ? (o({
|
|
25
|
-
type: i.Alert,
|
|
26
|
-
message: a(s.length > 1 ? g : s[0])
|
|
27
|
-
}), !1) : !0;
|
|
28
|
-
} };
|
|
29
|
-
};
|
|
30
|
-
export {
|
|
31
|
-
y as useUnsubscribeBlockValidator
|
|
32
|
-
};
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
interface User {
|
|
2
|
-
id: number;
|
|
3
|
-
name: string;
|
|
4
|
-
email: string;
|
|
5
|
-
}
|
|
6
|
-
export declare const useApiExample: () => {
|
|
7
|
-
loading: import("vue").ComputedRef<boolean>;
|
|
8
|
-
error: import("vue").ComputedRef<{
|
|
9
|
-
message: string;
|
|
10
|
-
status?: number | undefined;
|
|
11
|
-
statusText?: string | undefined;
|
|
12
|
-
response?: {
|
|
13
|
-
readonly headers: {
|
|
14
|
-
append: (name: string, value: string) => void;
|
|
15
|
-
delete: (name: string) => void;
|
|
16
|
-
get: (name: string) => string | null;
|
|
17
|
-
getSetCookie: () => string[];
|
|
18
|
-
has: (name: string) => boolean;
|
|
19
|
-
set: (name: string, value: string) => void;
|
|
20
|
-
forEach: (callbackfn: (value: string, key: string, parent: Headers) => void, thisArg?: any) => void;
|
|
21
|
-
entries: () => IterableIterator<[string, string]>;
|
|
22
|
-
keys: () => IterableIterator<string>;
|
|
23
|
-
values: () => IterableIterator<string>;
|
|
24
|
-
[Symbol.iterator]: () => IterableIterator<[string, string]>;
|
|
25
|
-
};
|
|
26
|
-
readonly ok: boolean;
|
|
27
|
-
readonly redirected: boolean;
|
|
28
|
-
readonly status: number;
|
|
29
|
-
readonly statusText: string;
|
|
30
|
-
readonly type: ResponseType;
|
|
31
|
-
readonly url: string;
|
|
32
|
-
clone: () => Response;
|
|
33
|
-
readonly body: {
|
|
34
|
-
readonly locked: boolean;
|
|
35
|
-
cancel: (reason?: any) => Promise<void>;
|
|
36
|
-
getReader: {
|
|
37
|
-
(options: {
|
|
38
|
-
mode: "byob";
|
|
39
|
-
}): ReadableStreamBYOBReader;
|
|
40
|
-
(): ReadableStreamDefaultReader<Uint8Array>;
|
|
41
|
-
(options?: ReadableStreamGetReaderOptions): ReadableStreamReader<Uint8Array>;
|
|
42
|
-
};
|
|
43
|
-
pipeThrough: <T>(transform: ReadableWritablePair<T, Uint8Array>, options?: StreamPipeOptions) => ReadableStream<T>;
|
|
44
|
-
pipeTo: (destination: WritableStream<Uint8Array>, options?: StreamPipeOptions) => Promise<void>;
|
|
45
|
-
tee: () => [ReadableStream<Uint8Array>, ReadableStream<Uint8Array>];
|
|
46
|
-
} | null;
|
|
47
|
-
readonly bodyUsed: boolean;
|
|
48
|
-
arrayBuffer: () => Promise<ArrayBuffer>;
|
|
49
|
-
blob: () => Promise<Blob>;
|
|
50
|
-
formData: () => Promise<FormData>;
|
|
51
|
-
json: () => Promise<any>;
|
|
52
|
-
text: () => Promise<string>;
|
|
53
|
-
} | undefined;
|
|
54
|
-
} | null>;
|
|
55
|
-
hasError: import("vue").ComputedRef<boolean>;
|
|
56
|
-
fetchUsers: () => Promise<User[]>;
|
|
57
|
-
createUser: (userData: Omit<User, "id">) => Promise<User>;
|
|
58
|
-
updateUser: (id: number, userData: Partial<User>) => Promise<User>;
|
|
59
|
-
deleteUser: (id: number) => Promise<void>;
|
|
60
|
-
uploadFile: (file: File) => Promise<string>;
|
|
61
|
-
clearError: () => void;
|
|
62
|
-
};
|
|
63
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
File without changes
|