@andrey4emk/npm-app-front-b24 0.2.0 → 0.4.0

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/package.json CHANGED
@@ -1,25 +1,43 @@
1
1
  {
2
2
  "name": "@andrey4emk/npm-app-front-b24",
3
- "version": "0.2.0",
3
+ "version": "0.4.0",
4
4
  "description": "Vue 3 компоненты для Bitrix24: Subscriptions, ConfigLogs",
5
5
  "files": [
6
6
  "Subscriptions.vue",
7
7
  "ConfigLogs.vue",
8
+ "types",
8
9
  "README.md",
9
10
  "LICENSE"
10
11
  ],
11
12
  "exports": {
12
- "./Subscriptions.vue": "./Subscriptions.vue",
13
- "./ConfigLogs.vue": "./ConfigLogs.vue"
13
+ "./Subscriptions.vue": {
14
+ "types": "./types/Subscriptions.vue.d.ts",
15
+ "default": "./Subscriptions.vue"
16
+ },
17
+ "./ConfigLogs.vue": {
18
+ "types": "./types/ConfigLogs.vue.d.ts",
19
+ "default": "./ConfigLogs.vue"
20
+ },
21
+ "./package.json": "./package.json"
14
22
  },
15
23
  "scripts": {
16
- "lint": "echo \"no lint\""
17
- },
18
- "dependencies": {
19
- "luxon": "^3.7.2"
24
+ "lint": "echo \"no lint\"",
25
+ "test": "vitest run",
26
+ "build:types": "rm -rf types && vue-tsc --declaration --emitDeclarationOnly -p tsconfig.json",
27
+ "prepublishOnly": "npm run build:types"
20
28
  },
21
29
  "peerDependencies": {
22
- "vue": "^3.0.0"
30
+ "vue": "^3.5.2"
31
+ },
32
+ "devDependencies": {
33
+ "@vitejs/plugin-vue": "6.0.8",
34
+ "@vue/test-utils": "2.5.0",
35
+ "jsdom": "29.1.1",
36
+ "typescript": "5.9.3",
37
+ "vite": "8.2.2",
38
+ "vitest": "5.0.0",
39
+ "vue": "3.5.42",
40
+ "vue-tsc": "3.3.11"
23
41
  },
24
42
  "keywords": [
25
43
  "vue",
@@ -0,0 +1,33 @@
1
+ declare const _default: typeof __VLS_export;
2
+ export default _default;
3
+ declare const __VLS_export: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
4
+ apiBase: {
5
+ type: StringConstructor;
6
+ default: string;
7
+ };
8
+ secretKey: {
9
+ type: StringConstructor;
10
+ default: string;
11
+ };
12
+ configName: {
13
+ type: StringConstructor;
14
+ default: string;
15
+ };
16
+ }>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
17
+ apiBase: {
18
+ type: StringConstructor;
19
+ default: string;
20
+ };
21
+ secretKey: {
22
+ type: StringConstructor;
23
+ default: string;
24
+ };
25
+ configName: {
26
+ type: StringConstructor;
27
+ default: string;
28
+ };
29
+ }>> & Readonly<{}>, {
30
+ apiBase: string;
31
+ secretKey: string;
32
+ configName: string;
33
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
@@ -0,0 +1,167 @@
1
+ declare const _default: typeof __VLS_export;
2
+ export default _default;
3
+ declare const __VLS_export: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
4
+ b24: {
5
+ type: import("vue").PropType<object | null>;
6
+ required: false;
7
+ };
8
+ authConnector: {
9
+ type: StringConstructor;
10
+ default: string;
11
+ };
12
+ portalDomain: {
13
+ type: StringConstructor;
14
+ default: string;
15
+ };
16
+ timeZone: {
17
+ type: StringConstructor;
18
+ default: string;
19
+ };
20
+ }>, {}, {
21
+ tabs: {
22
+ tab1: boolean;
23
+ tab2: boolean;
24
+ };
25
+ events: any[];
26
+ subscribedEvents: any[];
27
+ entities: {
28
+ list: any[];
29
+ total: number;
30
+ };
31
+ autoRefresh: boolean;
32
+ loading: boolean;
33
+ busy: boolean;
34
+ error: string;
35
+ message: string;
36
+ refreshTimerId: any;
37
+ isUnmounted: boolean;
38
+ loadFailed: boolean;
39
+ confirmAction: string;
40
+ confirmTimerId: any;
41
+ }, {
42
+ b24Client(): any;
43
+ portalOrigin(): string;
44
+ confirmAllLabel(): "Точно удалить?" | "Удалить все";
45
+ confirmEmptyLabel(): "Точно удалить?" | "Удалить все пустые";
46
+ dateFormatter(): any;
47
+ }, {
48
+ selectTab(name: any): void;
49
+ formatDate(timestamp: any): string;
50
+ pause(ms: any): Promise<any>;
51
+ clearFeedback(): void;
52
+ showError(text: any): void;
53
+ showMessage(text: any): void;
54
+ /**
55
+ * Клиент Bitrix24 или null. При отсутствии клиента сам показывает ошибку —
56
+ * вызывающему остаётся только выйти
57
+ */
58
+ ensureClient(): any;
59
+ errorText(err: any): string;
60
+ resultErrors(result: any): any;
61
+ resultErrorsByKey(result: any): {};
62
+ requestConfirm(action: any): boolean;
63
+ resetConfirm(): void;
64
+ /**
65
+ * Определяет ENTITY_TYPE_ID смарт-процесса: сначала из FIELDS, затем из имени события.
66
+ * Общий разбор для ссылки и для обновления — иначе событие без ENTITY_TYPE_ID в FIELDS
67
+ * уходит в ветку сделки. Возвращает "" когда тип определить не удалось.
68
+ */
69
+ resolveEntityTypeId(entity: any): string;
70
+ entityLink(entity: any): string;
71
+ eventsList(): Promise<void>;
72
+ subscribeToEvents(event: any): Promise<void>;
73
+ getSubscribedEvents(): Promise<void>;
74
+ unbindSubscribedEvents(event: any): Promise<void>;
75
+ loadOfflineEntitiesList(): Promise<void>;
76
+ /**
77
+ * Снимает одну запись из оффлайн-очереди. Возвращает признак успеха.
78
+ */
79
+ deleteOfflineEntities(entity: any): Promise<boolean>;
80
+ /**
81
+ * Читает страницу очереди. Возвращает { rows, error }: непустой error означает,
82
+ * что проход надо оборвать
83
+ */
84
+ readOfflineQueuePage(b24: any): Promise<{
85
+ rows: any[];
86
+ error: any;
87
+ } | {
88
+ rows: any;
89
+ error: string;
90
+ }>;
91
+ /**
92
+ * Уникальные PROCESS_ID страницы и те из них, что ещё не сняты.
93
+ * Чистая функция от аргументов, поэтому её удобно звать и из отчёта
94
+ */
95
+ collectProcessIds(rows: any, clearedProcessIds: any): {
96
+ processIds: any[];
97
+ freshProcessIds: any[];
98
+ };
99
+ /**
100
+ * Команды batch для одной пачки PROCESS_ID
101
+ */
102
+ buildClearCommands(chunk: any): {};
103
+ /**
104
+ * Отправляет один batch и пополняет множество снятых пачек.
105
+ * Возвращает текст неудачи или "" — пачка снята целиком
106
+ */
107
+ sendClearChunk(b24: any, chunk: any, clearedProcessIds: any): Promise<string>;
108
+ /**
109
+ * Итоговый отчёт прохода. Возвращает { kind: "error" | "message", text }
110
+ */
111
+ buildClearReport({ failures, reachedLimit, stoppedOnRepeat, stoppedOnEmpty, clearedCount }: {
112
+ failures: any;
113
+ reachedLimit: any;
114
+ stoppedOnRepeat: any;
115
+ stoppedOnEmpty: any;
116
+ clearedCount: any;
117
+ }): {
118
+ kind: string;
119
+ text: string;
120
+ };
121
+ deleteOfflineEntitiesAll(): Promise<void>;
122
+ deleteOfflineEntitiesAllEmpty(): Promise<void>;
123
+ isSubscribed(event: any): boolean;
124
+ startAutoRefresh(): void;
125
+ stopAutoRefresh(): void;
126
+ autoRefreshEntities(): void;
127
+ handleVisibilityChange(): Promise<void>;
128
+ /**
129
+ * Перезаписывает смарт-процесс его же заголовком.
130
+ * true — обновлено, false — отказ (текст ошибки уже показан)
131
+ */
132
+ updateSmartProcessEntity(b24: any, entityTypeId: any, entityId: any): Promise<boolean>;
133
+ /**
134
+ * Перезаписывает сделку её же заголовком.
135
+ * true — обновлено, false — отказ (текст ошибки уже показан)
136
+ */
137
+ updateDealEntity(b24: any, entityId: any): Promise<boolean>;
138
+ /**
139
+ * Снимает обновлённую сущность из очереди и печатает итог операции целиком
140
+ */
141
+ finishEntityUpdate(eventEntity: any, entityId: any, failed: any): Promise<void>;
142
+ /**
143
+ * Перезаписывает сущность теми же данными и снимает её из оффлайн-очереди.
144
+ */
145
+ entityUpdate(eventEntity: any): Promise<void>;
146
+ }, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
147
+ b24: {
148
+ type: import("vue").PropType<object | null>;
149
+ required: false;
150
+ };
151
+ authConnector: {
152
+ type: StringConstructor;
153
+ default: string;
154
+ };
155
+ portalDomain: {
156
+ type: StringConstructor;
157
+ default: string;
158
+ };
159
+ timeZone: {
160
+ type: StringConstructor;
161
+ default: string;
162
+ };
163
+ }>> & Readonly<{}>, {
164
+ authConnector: string;
165
+ portalDomain: string;
166
+ timeZone: string;
167
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;