@seamlet/astro 1.5.0 → 2.1.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/CHANGELOG.md +12 -0
- package/README.md +4 -4
- package/components/RequestForm.astro +12 -12
- package/dist/bridge.js +2 -2
- package/dist/{chunk-62XHZAPK.js → chunk-6F7DPGWS.js} +1 -1
- package/dist/{chunk-WABVCYGZ.js → chunk-DKGVY2VP.js} +1 -1
- package/dist/{chunk-JN6XVHCW.js → chunk-IY6Q6BUX.js} +2 -2
- package/dist/{chunk-53O34DN3.js → chunk-ZH6Q4KMM.js} +137 -3
- package/dist/cli.js +1 -1
- package/dist/client.js +1 -1
- package/dist/feeds.js +1 -1
- package/dist/index.js +3 -3
- package/dist/preview-requests.js +3 -3
- package/dist/protocol.js +2 -2
- package/dist/{request-sending-PW6OB4W2.js → request-sending-4TEGXELF.js} +1 -1
- package/dist/routes/media.js +3 -3
- package/dist/schema.d.ts +45 -7
- package/dist/schema.js +13 -3
- package/dist/site.js +2 -2
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 2.1.0
|
|
4
|
+
|
|
5
|
+
- The visitor's consent is a document of its own, as 152-ФЗ asks since 1 September 2025: `privacyConsentFields()` and `privacyConsentTextOf(source)` make it, at `/consent` of the site (`CONSENT_PAGE_PATH`), and the checkbox of `RequestForm.astro` links to it and to the policy («Даю согласие на обработку персональных данных и принимаю политику их обработки»; `consentHref` names another page).
|
|
6
|
+
- `privacyPolicyTextOf` follows the sections Роскомнадзор recommends a policy to have: general provisions, purposes with the data, subjects, ways, terms and erasure of each, legal grounds, the data and whose it is, how it is processed and protected (the commission to Seamlet, storage in Russia, notice of leaks), and how it is corrected, erased and asked about, with the terms of the law.
|
|
7
|
+
|
|
8
|
+
A site with a form adds the page `/consent` (or passes `consentHref`).
|
|
9
|
+
|
|
10
|
+
## 2.0.0
|
|
11
|
+
|
|
12
|
+
- The consent of a form links to the business's own policy, a page of the site (`policyHref`, `/privacy` by default, `PRIVACY_PAGE_PATH`), not to texts kept by the CMS: the business is the operator of its visitors' data, and the CMS only passes requests on. `privacyPolicyFields()` is the policy as content and `privacyPolicyTextOf({ siteTitle, operator, forms })` a template to start it with.
|
|
13
|
+
- Breaking: `RequestForm.astro` has no `consentHref` and no separate paragraph of the policy (`seamlet-form-policy`); `legalPagePathOf` and `LegalDocument` are gone. The reason `closed` of `seamlet:request-failed` now means the CMS has nobody to mail the site's requests to.
|
|
14
|
+
|
|
3
15
|
## 1.5.0
|
|
4
16
|
|
|
5
17
|
- Feeds of the catalog: `@seamlet/astro/feeds` with `yandexFeedOf` (YML for Яндекс), `avitoFeedOf` (an Avito autoload file, with the fields of its category from the site) and `productOffersOf`, the offers of `productFields` records.
|
package/README.md
CHANGED
|
@@ -375,7 +375,7 @@ What was opened stays open while the page is rendered anew after every edit: a p
|
|
|
375
375
|
|
|
376
376
|
## Requests
|
|
377
377
|
|
|
378
|
-
A visitor sends the business a request from the site: «Обратный звонок», «Рассчитать стоимость», «Бронь столика». The site declares its forms, gives them to `defineSeamletSite` and renders them; the CMS
|
|
378
|
+
A visitor sends the business a request from the site: «Обратный звонок», «Рассчитать стоимость», «Бронь столика». The site declares its forms, gives them to `defineSeamletSite` and renders them; the CMS passes every request on by mail to the people who edit the site and keeps nothing once it is delivered.
|
|
379
379
|
|
|
380
380
|
```ts
|
|
381
381
|
// src/forms.ts
|
|
@@ -420,15 +420,15 @@ import { estimateForm } from "../forms";
|
|
|
420
420
|
|
|
421
421
|
The fields are `requestText` (a line), `requestLongText` (several lines), `requestPhone`, `requestEmail` and `requestChoice` (one of `options`); each may be `required`, and a text has a `maxLength` (200 for a line, 2000 for several by default). A field's name is a name such as `phone` or `preferredTime`. The form's `title` names its requests in the CMS and in the letters.
|
|
422
422
|
|
|
423
|
-
`RequestForm.astro` renders plain elements with classes (`seamlet-form`, `seamlet-form-field`, `seamlet-form-issue`, `seamlet-form-consent`, `seamlet-form-
|
|
423
|
+
`RequestForm.astro` renders plain elements with classes (`seamlet-form`, `seamlet-form-field`, `seamlet-form-issue`, `seamlet-form-consent`, `seamlet-form-submit`, `seamlet-form-sent`, `seamlet-form-failed`), which the site styles from around it: `.contacts :global(.seamlet-form-field)`. Its props are the `form`, the words of the button (`submitLabel`), what the visitor reads once the request is sent or could not be (`sentText`, `failedText`), the pages of the visitor's consent and of the business's policy the checkbox links to (`consentHref` and `policyHref`, the site's own `/consent` and `/privacy` by default, `CONSENT_PAGE_PATH` and `PRIVACY_PAGE_PATH`) and `instance`, which tells apart two forms of the same id on one page.
|
|
424
424
|
|
|
425
|
-
The visitor consents with a checkbox of its own, never checked beforehand, to the
|
|
425
|
+
The visitor consents with a checkbox of its own, never checked beforehand, linking to two pages of the site: the consent, a document of its own as 152-ФЗ asks (`/consent` unless `consentHref` names another), and the business's policy (`/privacy` unless `policyHref` names another). The business is the operator of its visitors' data and publishes both; Seamlet only passes a request on by its commission. `privacyConsentFields()` and `privacyPolicyFields()` are the two as content the owner edits, and `privacyConsentTextOf(source)` and `privacyPolicyTextOf(source)` (`source` is `{ siteTitle, operator, forms }`) start them with the business's details and what its forms ask, the policy in the sections Роскомнадзор recommends: put them in the initial content and render each with `RichText` at its page. While the CMS has nobody to mail a site's requests to, it takes none, and the form says it could not send. Without a script the form is posted to the CMS, which answers with a page of its own; with the package's script (on every page, loaded only where a form is) the visitor stays on the page. The script checks what was typed with the code the CMS checks it with (`readRequestValues`), says what to fix under each field and sends the request.
|
|
426
426
|
|
|
427
427
|
The site's own code hears every step from events on the form element, which bubble:
|
|
428
428
|
|
|
429
429
|
- `seamlet:request-send` (`REQUEST_SEND_EVENT`), before the request is sent, with `{ form, entries }`. Cancelable: after `event.preventDefault()` the package sends nothing, and the site sends the request its own way.
|
|
430
430
|
- `seamlet:request-sent` (`REQUEST_SENT_EVENT`), once the CMS has kept it, with `{ form, entries, id }`: a goal of the site's analytics, its own message.
|
|
431
|
-
- `seamlet:request-failed` (`REQUEST_FAILED_EVENT`), with `{ form, reason, issues }`; `reason` is `invalid`, `closed` (the
|
|
431
|
+
- `seamlet:request-failed` (`REQUEST_FAILED_EVENT`), with `{ form, reason, issues }`; `reason` is `invalid`, `closed` (the CMS has nobody to mail the site's requests to), `too-many` or `unavailable`.
|
|
432
432
|
|
|
433
433
|
```ts
|
|
434
434
|
document.addEventListener(REQUEST_SENT_EVENT, (event) => {
|
|
@@ -2,12 +2,13 @@
|
|
|
2
2
|
// A form of the site's requests as plain elements, which the site styles from around it
|
|
3
3
|
// (`.contacts :global(.seamlet-form-field)`). Without a script it is a form posted to the CMS, and
|
|
4
4
|
// the CMS answers with a page of its own; the package's script sends it in place. The checkbox of
|
|
5
|
-
// consent stands apart from the fields and is never checked beforehand, as the law asks
|
|
6
|
-
//
|
|
5
|
+
// consent stands apart from the fields and is never checked beforehand, as the law asks, and links
|
|
6
|
+
// to the consent and the policy of the business, pages of the site itself.
|
|
7
7
|
import { cmsOrigin, siteId } from "virtual:seamlet/config";
|
|
8
8
|
import {
|
|
9
|
-
|
|
9
|
+
CONSENT_PAGE_PATH,
|
|
10
10
|
maxLengthOf,
|
|
11
|
+
PRIVACY_PAGE_PATH,
|
|
11
12
|
REQUEST_CONSENT_KEY,
|
|
12
13
|
REQUEST_FORM_KEY,
|
|
13
14
|
REQUEST_PAGE_KEY,
|
|
@@ -25,9 +26,9 @@ interface Props {
|
|
|
25
26
|
readonly sentText?: string;
|
|
26
27
|
/** What the visitor reads when the request could not be sent. */
|
|
27
28
|
readonly failedText?: string;
|
|
28
|
-
/** Where the
|
|
29
|
+
/** Where the visitor's consent is: the site's `/consent` unless it says another page. */
|
|
29
30
|
readonly consentHref?: string;
|
|
30
|
-
/** Where the business's policy is: the
|
|
31
|
+
/** Where the business's policy is: the site's `/privacy` unless it says another page. */
|
|
31
32
|
readonly policyHref?: string;
|
|
32
33
|
/** Tells two forms of the same id on one page apart, in the ids of their elements. */
|
|
33
34
|
readonly instance?: string;
|
|
@@ -39,8 +40,8 @@ const {
|
|
|
39
40
|
submitLabel = "Отправить",
|
|
40
41
|
sentText = "Спасибо! Заявка отправлена, мы скоро свяжемся с вами.",
|
|
41
42
|
failedText = "Не получилось отправить заявку. Попробуйте ещё раз чуть позже.",
|
|
42
|
-
consentHref =
|
|
43
|
-
policyHref =
|
|
43
|
+
consentHref = CONSENT_PAGE_PATH,
|
|
44
|
+
policyHref = PRIVACY_PAGE_PATH,
|
|
44
45
|
instance = form.id,
|
|
45
46
|
class: className,
|
|
46
47
|
} = Astro.props;
|
|
@@ -148,6 +149,10 @@ const isLineField = (field: RequestField): field is LineField =>
|
|
|
148
149
|
Даю{" "}
|
|
149
150
|
<a href={consentHref} target="_blank" rel="noopener">
|
|
150
151
|
согласие на обработку персональных данных
|
|
152
|
+
</a>{" "}
|
|
153
|
+
и принимаю{" "}
|
|
154
|
+
<a href={policyHref} target="_blank" rel="noopener">
|
|
155
|
+
политику их обработки
|
|
151
156
|
</a>
|
|
152
157
|
</label>
|
|
153
158
|
<p
|
|
@@ -157,11 +162,6 @@ const isLineField = (field: RequestField): field is LineField =>
|
|
|
157
162
|
hidden
|
|
158
163
|
/>
|
|
159
164
|
</div>
|
|
160
|
-
<p class="seamlet-form-policy">
|
|
161
|
-
<a href={policyHref} target="_blank" rel="noopener">
|
|
162
|
-
Политика обработки персональных данных
|
|
163
|
-
</a>
|
|
164
|
-
</p>
|
|
165
165
|
<button class="seamlet-form-submit" type="submit">
|
|
166
166
|
{submitLabel}
|
|
167
167
|
</button>
|
package/dist/bridge.js
CHANGED
|
@@ -18,7 +18,7 @@ import {
|
|
|
18
18
|
shortcutOf,
|
|
19
19
|
toggleList,
|
|
20
20
|
toggleMark
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-DKGVY2VP.js";
|
|
22
22
|
import {
|
|
23
23
|
FIELD_PATH_ATTRIBUTE,
|
|
24
24
|
REVEALED_ATTRIBUTE,
|
|
@@ -28,7 +28,7 @@ import {
|
|
|
28
28
|
readRichText,
|
|
29
29
|
resolveFieldPath,
|
|
30
30
|
safeHref
|
|
31
|
-
} from "./chunk-
|
|
31
|
+
} from "./chunk-ZH6Q4KMM.js";
|
|
32
32
|
|
|
33
33
|
// src/bridge/typed-fields.ts
|
|
34
34
|
function typedKindAt(schema, path) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
pagePathOf
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-6F7DPGWS.js";
|
|
4
4
|
import {
|
|
5
5
|
FIELD_PATH_SEPARATOR,
|
|
6
6
|
collectionAt,
|
|
@@ -9,7 +9,7 @@ import {
|
|
|
9
9
|
newRecord,
|
|
10
10
|
recordAt,
|
|
11
11
|
recordPageAt
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-ZH6Q4KMM.js";
|
|
13
13
|
|
|
14
14
|
// src/preview-requests.ts
|
|
15
15
|
var MAX_DRAFT_BYTES = 1024 * 1024;
|
|
@@ -1827,8 +1827,137 @@ function isFilledValue(reading) {
|
|
|
1827
1827
|
function requestsPathOf(siteId) {
|
|
1828
1828
|
return `/api/sites/${siteId}/requests`;
|
|
1829
1829
|
}
|
|
1830
|
-
|
|
1831
|
-
|
|
1830
|
+
|
|
1831
|
+
// src/schema/privacy-policy.ts
|
|
1832
|
+
var PRIVACY_PAGE_PATH = "/privacy";
|
|
1833
|
+
var CONSENT_PAGE_PATH = "/consent";
|
|
1834
|
+
var ANSWER_WORKING_DAYS = 10;
|
|
1835
|
+
var ANSWER_EXTENSION_WORKING_DAYS = 5;
|
|
1836
|
+
var CORRECTION_WORKING_DAYS = 7;
|
|
1837
|
+
var UNLAWFUL_STOP_WORKING_DAYS = 3;
|
|
1838
|
+
var UNLAWFUL_ERASE_WORKING_DAYS = 10;
|
|
1839
|
+
var ERASE_DAYS = 30;
|
|
1840
|
+
function privacyPolicyFields(options = {}) {
|
|
1841
|
+
return documentFields(
|
|
1842
|
+
options.label ?? "\u041F\u043E\u043B\u0438\u0442\u0438\u043A\u0430 \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0438 \u043F\u0435\u0440\u0441\u043E\u043D\u0430\u043B\u044C\u043D\u044B\u0445 \u0434\u0430\u043D\u043D\u044B\u0445"
|
|
1843
|
+
);
|
|
1844
|
+
}
|
|
1845
|
+
function privacyConsentFields(options = {}) {
|
|
1846
|
+
return documentFields(
|
|
1847
|
+
options.label ?? "\u0421\u043E\u0433\u043B\u0430\u0441\u0438\u0435 \u043D\u0430 \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0443 \u043F\u0435\u0440\u0441\u043E\u043D\u0430\u043B\u044C\u043D\u044B\u0445 \u0434\u0430\u043D\u043D\u044B\u0445"
|
|
1848
|
+
);
|
|
1849
|
+
}
|
|
1850
|
+
function documentFields(label) {
|
|
1851
|
+
return group({
|
|
1852
|
+
label,
|
|
1853
|
+
fields: {
|
|
1854
|
+
title: text({ label: "\u0417\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A", maxLength: 120 }),
|
|
1855
|
+
text: richText({ label: "\u0422\u0435\u043A\u0441\u0442" })
|
|
1856
|
+
}
|
|
1857
|
+
});
|
|
1858
|
+
}
|
|
1859
|
+
function privacyPolicyTextOf(source) {
|
|
1860
|
+
const paragraphs = [
|
|
1861
|
+
...generalProvisionsOf(source),
|
|
1862
|
+
...purposesOf(source),
|
|
1863
|
+
...legalGroundsOf(),
|
|
1864
|
+
...dataScopeOf(source),
|
|
1865
|
+
...processingOf(),
|
|
1866
|
+
...subjectRequestsOf(source.operator),
|
|
1867
|
+
...finalProvisions()
|
|
1868
|
+
];
|
|
1869
|
+
return richTextOf(paragraphs.join("\n\n"));
|
|
1870
|
+
}
|
|
1871
|
+
function privacyConsentTextOf(source) {
|
|
1872
|
+
const { operator, siteTitle } = source;
|
|
1873
|
+
const paragraphs = [
|
|
1874
|
+
`\u041E\u0442\u043C\u0435\u0447\u0430\u044F \u0441\u043E\u0433\u043B\u0430\u0441\u0438\u0435 \u0432 \u0444\u043E\u0440\u043C\u0435 \u0437\u0430\u044F\u0432\u043A\u0438 \u043D\u0430 \u0441\u0430\u0439\u0442\u0435 \xAB${siteTitle}\xBB \u0438 \u043E\u0442\u043F\u0440\u0430\u0432\u043B\u044F\u044F \u0437\u0430\u044F\u0432\u043A\u0443, \u044F \u0441\u0432\u043E\u0431\u043E\u0434\u043D\u043E, \u0441\u0432\u043E\u0435\u0439 \u0432\u043E\u043B\u0435\u0439 \u0438 \u0432 \u0441\u0432\u043E\u0451\u043C \u0438\u043D\u0442\u0435\u0440\u0435\u0441\u0435 \u0434\u0430\u044E \u0441\u043E\u0433\u043B\u0430\u0441\u0438\u0435 \u043D\u0430 \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0443 \u043C\u043E\u0438\u0445 \u043F\u0435\u0440\u0441\u043E\u043D\u0430\u043B\u044C\u043D\u044B\u0445 \u0434\u0430\u043D\u043D\u044B\u0445 \u043D\u0430 \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0438\u0445 \u0443\u0441\u043B\u043E\u0432\u0438\u044F\u0445.`,
|
|
1875
|
+
`1. \u041E\u043F\u0435\u0440\u0430\u0442\u043E\u0440: ${operatorDetailsOf(operator)}.`,
|
|
1876
|
+
`2. \u0426\u0435\u043B\u044C \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0438: ${PURPOSE}.`,
|
|
1877
|
+
`3. \u041F\u0435\u0440\u0441\u043E\u043D\u0430\u043B\u044C\u043D\u044B\u0435 \u0434\u0430\u043D\u043D\u044B\u0435: ${sentDataOf(source.forms)}, \u0430 \u0442\u0430\u043A\u0436\u0435 \u0430\u0434\u0440\u0435\u0441 \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u044B, \u0441 \u043A\u043E\u0442\u043E\u0440\u043E\u0439 \u043E\u0442\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0430 \u0437\u0430\u044F\u0432\u043A\u0430, \u0438 \u0432\u0440\u0435\u043C\u044F \u0435\u0451 \u043E\u0442\u043F\u0440\u0430\u0432\u043A\u0438.`,
|
|
1878
|
+
`4. \u0414\u0435\u0439\u0441\u0442\u0432\u0438\u044F \u0441 \u0434\u0430\u043D\u043D\u044B\u043C\u0438: ${ACTIONS}. \u041E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0430 \u0441\u043C\u0435\u0448\u0430\u043D\u043D\u0430\u044F, \u0441 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0435\u043C \u0441\u0440\u0435\u0434\u0441\u0442\u0432 \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u0438.`,
|
|
1879
|
+
`5. \u041E\u043F\u0435\u0440\u0430\u0442\u043E\u0440 \u043F\u043E\u0440\u0443\u0447\u0430\u0435\u0442 \u043F\u0440\u0438\u0451\u043C \u0438 \u043F\u0435\u0440\u0435\u0434\u0430\u0447\u0443 \u0437\u0430\u044F\u0432\u043E\u043A ${PROCESSOR}. \u0421\u0435\u0440\u0432\u0438\u0441 \u043F\u0435\u0440\u0435\u0434\u0430\u0451\u0442 \u0437\u0430\u044F\u0432\u043A\u0443 \u041E\u043F\u0435\u0440\u0430\u0442\u043E\u0440\u0443 \u0438 \u043D\u0435 \u0445\u0440\u0430\u043D\u0438\u0442 \u0435\u0451 \u0434\u043E\u043B\u044C\u0448\u0435, \u0447\u0435\u043C \u043D\u0443\u0436\u043D\u043E \u0434\u043B\u044F \u0434\u043E\u0441\u0442\u0430\u0432\u043A\u0438. \u0414\u0430\u043D\u043D\u044B\u0435 \u043D\u0435 \u0440\u0430\u0441\u043F\u0440\u043E\u0441\u0442\u0440\u0430\u043D\u044F\u044E\u0442\u0441\u044F \u0438 \u043D\u0435 \u043F\u0435\u0440\u0435\u0434\u0430\u044E\u0442\u0441\u044F \u0437\u0430 \u043F\u0440\u0435\u0434\u0435\u043B\u044B \u0420\u043E\u0441\u0441\u0438\u0439\u0441\u043A\u043E\u0439 \u0424\u0435\u0434\u0435\u0440\u0430\u0446\u0438\u0438.`,
|
|
1880
|
+
`6. \u0421\u043E\u0433\u043B\u0430\u0441\u0438\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0443\u0435\u0442 \u0434\u043E \u0434\u043E\u0441\u0442\u0438\u0436\u0435\u043D\u0438\u044F \u0446\u0435\u043B\u0438 \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0438, \u043D\u043E \u043D\u0435 \u0434\u043E\u043B\u044C\u0448\u0435 \u043E\u0434\u043D\u043E\u0433\u043E \u0433\u043E\u0434\u0430 \u0441\u043E \u0434\u043D\u044F \u043E\u0442\u043F\u0440\u0430\u0432\u043A\u0438 \u0437\u0430\u044F\u0432\u043A\u0438. \u042F \u043C\u043E\u0433\u0443 \u043E\u0442\u043E\u0437\u0432\u0430\u0442\u044C \u0435\u0433\u043E, \u043D\u0430\u043F\u0438\u0441\u0430\u0432 \u041E\u043F\u0435\u0440\u0430\u0442\u043E\u0440\u0443 \u043D\u0430 ${operator.email}; \u0442\u043E\u0433\u0434\u0430 \u041E\u043F\u0435\u0440\u0430\u0442\u043E\u0440 \u043F\u0440\u0435\u043A\u0440\u0430\u0442\u0438\u0442 \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0443 \u0438 \u0443\u043D\u0438\u0447\u0442\u043E\u0436\u0438\u0442 \u0434\u0430\u043D\u043D\u044B\u0435 \u0432 \u0442\u0435\u0447\u0435\u043D\u0438\u0435 ${String(ERASE_DAYS)} \u0434\u043D\u0435\u0439, \u0435\u0441\u043B\u0438 \u0438\u043D\u043E\u0435 \u043D\u0435 \u043F\u0440\u0435\u0434\u0443\u0441\u043C\u043E\u0442\u0440\u0435\u043D\u043E \u0437\u0430\u043A\u043E\u043D\u043E\u043C.`,
|
|
1881
|
+
"7. \u041F\u043E\u0440\u044F\u0434\u043E\u043A \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0438 \u043C\u043E\u0438\u0445 \u0434\u0430\u043D\u043D\u044B\u0445 \u0438 \u043C\u043E\u0438 \u043F\u0440\u0430\u0432\u0430 \u043E\u043F\u0438\u0441\u0430\u043D\u044B \u0432 \u043F\u043E\u043B\u0438\u0442\u0438\u043A\u0435 \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0438 \u043F\u0435\u0440\u0441\u043E\u043D\u0430\u043B\u044C\u043D\u044B\u0445 \u0434\u0430\u043D\u043D\u044B\u0445 \u041E\u043F\u0435\u0440\u0430\u0442\u043E\u0440\u0430, \u043E\u043F\u0443\u0431\u043B\u0438\u043A\u043E\u0432\u0430\u043D\u043D\u043E\u0439 \u043D\u0430 \u044D\u0442\u043E\u043C \u0441\u0430\u0439\u0442\u0435."
|
|
1882
|
+
];
|
|
1883
|
+
return richTextOf(paragraphs.join("\n\n"));
|
|
1884
|
+
}
|
|
1885
|
+
var PURPOSE = "\u0440\u0430\u0441\u0441\u043C\u043E\u0442\u0440\u0435\u043D\u0438\u0435 \u0437\u0430\u044F\u0432\u043A\u0438, \u043E\u0442\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u043D\u043E\u0439 \u0447\u0435\u0440\u0435\u0437 \u0444\u043E\u0440\u043C\u0443 \u0441\u0430\u0439\u0442\u0430, \u0438 \u0441\u0432\u044F\u0437\u044C \u0441 \u043E\u0442\u043F\u0440\u0430\u0432\u0438\u0442\u0435\u043B\u0435\u043C \u043F\u043E \u043D\u0435\u0439";
|
|
1886
|
+
var ACTIONS = "\u0441\u0431\u043E\u0440, \u0437\u0430\u043F\u0438\u0441\u044C, \u0441\u0438\u0441\u0442\u0435\u043C\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u044F, \u043D\u0430\u043A\u043E\u043F\u043B\u0435\u043D\u0438\u0435, \u0445\u0440\u0430\u043D\u0435\u043D\u0438\u0435, \u0443\u0442\u043E\u0447\u043D\u0435\u043D\u0438\u0435 (\u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u0435, \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u0435), \u0438\u0437\u0432\u043B\u0435\u0447\u0435\u043D\u0438\u0435, \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0435, \u043F\u0435\u0440\u0435\u0434\u0430\u0447\u0430 (\u043F\u0440\u0435\u0434\u043E\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u0435, \u0434\u043E\u0441\u0442\u0443\u043F), \u0431\u043B\u043E\u043A\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435, \u0443\u0434\u0430\u043B\u0435\u043D\u0438\u0435, \u0443\u043D\u0438\u0447\u0442\u043E\u0436\u0435\u043D\u0438\u0435";
|
|
1887
|
+
var PROCESSOR = "\u0441\u0435\u0440\u0432\u0438\u0441\u0443 Seamlet (seamlet.ru), \u043A\u043E\u0442\u043E\u0440\u044B\u0439 \u043E\u0431\u0440\u0430\u0431\u0430\u0442\u044B\u0432\u0430\u0435\u0442 \u0434\u0430\u043D\u043D\u044B\u0435 \u043F\u043E \u043F\u043E\u0440\u0443\u0447\u0435\u043D\u0438\u044E \u041E\u043F\u0435\u0440\u0430\u0442\u043E\u0440\u0430 \u0432 \u0441\u043E\u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0438 \u0441 \u0447\u0430\u0441\u0442\u044C\u044E 3 \u0441\u0442\u0430\u0442\u044C\u0438 6 \u0424\u0435\u0434\u0435\u0440\u0430\u043B\u044C\u043D\u043E\u0433\u043E \u0437\u0430\u043A\u043E\u043D\u0430 \u2116 152-\u0424\u0417";
|
|
1888
|
+
function operatorDetailsOf(operator) {
|
|
1889
|
+
return `${operator.name}, \u0418\u041D\u041D ${operator.inn}, \u0430\u0434\u0440\u0435\u0441: ${operator.address}, \u044D\u043B\u0435\u043A\u0442\u0440\u043E\u043D\u043D\u0430\u044F \u043F\u043E\u0447\u0442\u0430: ${operator.email}`;
|
|
1890
|
+
}
|
|
1891
|
+
function generalProvisionsOf({
|
|
1892
|
+
operator,
|
|
1893
|
+
siteTitle
|
|
1894
|
+
}) {
|
|
1895
|
+
return [
|
|
1896
|
+
"1. \u041E\u0431\u0449\u0438\u0435 \u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u044F",
|
|
1897
|
+
`1.1. \u041F\u043E\u043B\u0438\u0442\u0438\u043A\u0430 \u043E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442 \u043F\u043E\u0440\u044F\u0434\u043E\u043A \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0438 \u0438 \u043C\u0435\u0440\u044B \u0437\u0430\u0449\u0438\u0442\u044B \u043F\u0435\u0440\u0441\u043E\u043D\u0430\u043B\u044C\u043D\u044B\u0445 \u0434\u0430\u043D\u043D\u044B\u0445, \u043A\u043E\u0442\u043E\u0440\u044B\u0435 \u043E\u0431\u0440\u0430\u0431\u0430\u0442\u044B\u0432\u0430\u0435\u0442 ${operatorDetailsOf(operator)} (\u0434\u0430\u043B\u0435\u0435 \u2014 \u041E\u043F\u0435\u0440\u0430\u0442\u043E\u0440), \u0432 \u0441\u0432\u044F\u0437\u0438 \u0441 \u0440\u0430\u0431\u043E\u0442\u043E\u0439 \u0441\u0430\u0439\u0442\u0430 \xAB${siteTitle}\xBB (\u0434\u0430\u043B\u0435\u0435 \u2014 \u0421\u0430\u0439\u0442).`,
|
|
1898
|
+
"1.2. \u041F\u043E\u043B\u0438\u0442\u0438\u043A\u0430 \u0441\u043E\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0430 \u0432\u043E \u0438\u0441\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u0435 \u043F\u0443\u043D\u043A\u0442\u0430 2 \u0447\u0430\u0441\u0442\u0438 1 \u0441\u0442\u0430\u0442\u044C\u0438 18.1 \u0424\u0435\u0434\u0435\u0440\u0430\u043B\u044C\u043D\u043E\u0433\u043E \u0437\u0430\u043A\u043E\u043D\u0430 \u043E\u0442 27.07.2006 \u2116 152-\u0424\u0417 \xAB\u041E \u043F\u0435\u0440\u0441\u043E\u043D\u0430\u043B\u044C\u043D\u044B\u0445 \u0434\u0430\u043D\u043D\u044B\u0445\xBB (\u0434\u0430\u043B\u0435\u0435 \u2014 \u0417\u0430\u043A\u043E\u043D) \u0441 \u0443\u0447\u0451\u0442\u043E\u043C \u0440\u0435\u043A\u043E\u043C\u0435\u043D\u0434\u0430\u0446\u0438\u0439 \u0420\u043E\u0441\u043A\u043E\u043C\u043D\u0430\u0434\u0437\u043E\u0440\u0430. \u041F\u043E\u043D\u044F\u0442\u0438\u044F \xAB\u043F\u0435\u0440\u0441\u043E\u043D\u0430\u043B\u044C\u043D\u044B\u0435 \u0434\u0430\u043D\u043D\u044B\u0435\xBB, \xAB\u043E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0430\xBB, \xAB\u043E\u043F\u0435\u0440\u0430\u0442\u043E\u0440\xBB \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u044E\u0442\u0441\u044F \u0432 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F\u0445 \u0441\u0442\u0430\u0442\u044C\u0438 3 \u0417\u0430\u043A\u043E\u043D\u0430.",
|
|
1899
|
+
"1.3. \u041E\u043F\u0435\u0440\u0430\u0442\u043E\u0440 \u043E\u0431\u044F\u0437\u0430\u043D \u043E\u0431\u0440\u0430\u0431\u0430\u0442\u044B\u0432\u0430\u0442\u044C \u043F\u0435\u0440\u0441\u043E\u043D\u0430\u043B\u044C\u043D\u044B\u0435 \u0434\u0430\u043D\u043D\u044B\u0435 \u0437\u0430\u043A\u043E\u043D\u043D\u043E \u0438 \u0441\u043F\u0440\u0430\u0432\u0435\u0434\u043B\u0438\u0432\u043E, \u0442\u043E\u043B\u044C\u043A\u043E \u0432 \u0437\u0430\u044F\u0432\u043B\u0435\u043D\u043D\u044B\u0445 \u0446\u0435\u043B\u044F\u0445 \u0438 \u0432 \u043D\u0435\u043E\u0431\u0445\u043E\u0434\u0438\u043C\u043E\u043C \u043E\u0431\u044A\u0451\u043C\u0435, \u043E\u0431\u0435\u0441\u043F\u0435\u0447\u0438\u0432\u0430\u0442\u044C \u0438\u0445 \u043A\u043E\u043D\u0444\u0438\u0434\u0435\u043D\u0446\u0438\u0430\u043B\u044C\u043D\u043E\u0441\u0442\u044C \u0438 \u0431\u0435\u0437\u043E\u043F\u0430\u0441\u043D\u043E\u0441\u0442\u044C, \u043E\u0442\u0432\u0435\u0447\u0430\u0442\u044C \u043D\u0430 \u043E\u0431\u0440\u0430\u0449\u0435\u043D\u0438\u044F \u0441\u0443\u0431\u044A\u0435\u043A\u0442\u043E\u0432 \u043F\u0435\u0440\u0441\u043E\u043D\u0430\u043B\u044C\u043D\u044B\u0445 \u0434\u0430\u043D\u043D\u044B\u0445 \u0438 \u0420\u043E\u0441\u043A\u043E\u043C\u043D\u0430\u0434\u0437\u043E\u0440\u0430 \u0432 \u0441\u0440\u043E\u043A\u0438, \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u043B\u0435\u043D\u043D\u044B\u0435 \u0417\u0430\u043A\u043E\u043D\u043E\u043C.",
|
|
1900
|
+
"1.4. \u0421\u0443\u0431\u044A\u0435\u043A\u0442 \u043F\u0435\u0440\u0441\u043E\u043D\u0430\u043B\u044C\u043D\u044B\u0445 \u0434\u0430\u043D\u043D\u044B\u0445 \u0432\u043F\u0440\u0430\u0432\u0435 \u043F\u043E\u043B\u0443\u0447\u0430\u0442\u044C \u0441\u0432\u0435\u0434\u0435\u043D\u0438\u044F \u043E\u0431 \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0435 \u0441\u0432\u043E\u0438\u0445 \u0434\u0430\u043D\u043D\u044B\u0445, \u0442\u0440\u0435\u0431\u043E\u0432\u0430\u0442\u044C \u0438\u0445 \u0443\u0442\u043E\u0447\u043D\u0435\u043D\u0438\u044F, \u0431\u043B\u043E\u043A\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F \u0438\u043B\u0438 \u0443\u043D\u0438\u0447\u0442\u043E\u0436\u0435\u043D\u0438\u044F, \u043E\u0442\u043E\u0437\u0432\u0430\u0442\u044C \u0441\u043E\u0433\u043B\u0430\u0441\u0438\u0435, \u043E\u0431\u0436\u0430\u043B\u043E\u0432\u0430\u0442\u044C \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044F \u041E\u043F\u0435\u0440\u0430\u0442\u043E\u0440\u0430 \u0432 \u0420\u043E\u0441\u043A\u043E\u043C\u043D\u0430\u0434\u0437\u043E\u0440\u0435 \u0438\u043B\u0438 \u0432 \u0441\u0443\u0434\u0435.",
|
|
1901
|
+
"1.5. \u041F\u043E\u043B\u0438\u0442\u0438\u043A\u0430 \u043E\u043F\u0443\u0431\u043B\u0438\u043A\u043E\u0432\u0430\u043D\u0430 \u043D\u0430 \u0421\u0430\u0439\u0442\u0435 \u0438 \u0434\u043E\u0441\u0442\u0443\u043F\u043D\u0430 \u043B\u044E\u0431\u043E\u043C\u0443 \u0431\u0435\u0437 \u043E\u0433\u0440\u0430\u043D\u0438\u0447\u0435\u043D\u0438\u0439."
|
|
1902
|
+
];
|
|
1903
|
+
}
|
|
1904
|
+
function purposesOf(source) {
|
|
1905
|
+
return [
|
|
1906
|
+
"2. \u0426\u0435\u043B\u0438 \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0438 \u043F\u0435\u0440\u0441\u043E\u043D\u0430\u043B\u044C\u043D\u044B\u0445 \u0434\u0430\u043D\u043D\u044B\u0445",
|
|
1907
|
+
`2.1. \u0426\u0435\u043B\u044C: ${PURPOSE}.`,
|
|
1908
|
+
`2.2. \u0414\u043B\u044F \u044D\u0442\u043E\u0439 \u0446\u0435\u043B\u0438: \u043A\u0430\u0442\u0435\u0433\u043E\u0440\u0438\u0438 \u0434\u0430\u043D\u043D\u044B\u0445 \u2014 \u043E\u0431\u0449\u0438\u0435 \u043F\u0435\u0440\u0441\u043E\u043D\u0430\u043B\u044C\u043D\u044B\u0435 \u0434\u0430\u043D\u043D\u044B\u0435; \u043F\u0435\u0440\u0435\u0447\u0435\u043D\u044C \u0434\u0430\u043D\u043D\u044B\u0445 \u2014 ${sentDataOf(source.forms)}, \u0430\u0434\u0440\u0435\u0441 \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u044B, \u0441 \u043A\u043E\u0442\u043E\u0440\u043E\u0439 \u043E\u0442\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0430 \u0437\u0430\u044F\u0432\u043A\u0430, \u0432\u0440\u0435\u043C\u044F \u0435\u0451 \u043E\u0442\u043F\u0440\u0430\u0432\u043A\u0438; \u043A\u0430\u0442\u0435\u0433\u043E\u0440\u0438\u0438 \u0441\u0443\u0431\u044A\u0435\u043A\u0442\u043E\u0432 \u2014 \u043F\u043E\u0441\u0435\u0442\u0438\u0442\u0435\u043B\u0438 \u0421\u0430\u0439\u0442\u0430, \u043E\u0442\u043F\u0440\u0430\u0432\u0438\u0432\u0448\u0438\u0435 \u0437\u0430\u044F\u0432\u043A\u0443; \u0441\u043F\u043E\u0441\u043E\u0431 \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0438 \u2014 \u0441\u043C\u0435\u0448\u0430\u043D\u043D\u044B\u0439, \u0441 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0435\u043C \u0441\u0440\u0435\u0434\u0441\u0442\u0432 \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u0438; \u0441\u0440\u043E\u043A \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0438 \u0438 \u0445\u0440\u0430\u043D\u0435\u043D\u0438\u044F \u2014 \u0434\u043E \u0434\u043E\u0441\u0442\u0438\u0436\u0435\u043D\u0438\u044F \u0446\u0435\u043B\u0438, \u043D\u043E \u043D\u0435 \u0431\u043E\u043B\u0435\u0435 \u043E\u0434\u043D\u043E\u0433\u043E \u0433\u043E\u0434\u0430 \u0441\u043E \u0434\u043D\u044F \u043E\u0442\u043F\u0440\u0430\u0432\u043A\u0438 \u0437\u0430\u044F\u0432\u043A\u0438; \u043F\u043E\u0440\u044F\u0434\u043E\u043A \u0443\u043D\u0438\u0447\u0442\u043E\u0436\u0435\u043D\u0438\u044F \u2014 \u0443\u0434\u0430\u043B\u0435\u043D\u0438\u0435 \u0437\u0430\u043F\u0438\u0441\u0435\u0439 \u0438 \u043F\u0438\u0441\u0435\u043C \u0441 \u0437\u0430\u044F\u0432\u043A\u043E\u0439 \u0432 \u0442\u0435\u0447\u0435\u043D\u0438\u0435 ${String(ERASE_DAYS)} \u0434\u043D\u0435\u0439 \u043F\u043E\u0441\u043B\u0435 \u0434\u043E\u0441\u0442\u0438\u0436\u0435\u043D\u0438\u044F \u0446\u0435\u043B\u0438, \u0438\u0441\u0442\u0435\u0447\u0435\u043D\u0438\u044F \u0441\u0440\u043E\u043A\u0430 \u0438\u043B\u0438 \u043E\u0442\u0437\u044B\u0432\u0430 \u0441\u043E\u0433\u043B\u0430\u0441\u0438\u044F.`
|
|
1909
|
+
];
|
|
1910
|
+
}
|
|
1911
|
+
function legalGroundsOf() {
|
|
1912
|
+
return [
|
|
1913
|
+
"3. \u041F\u0440\u0430\u0432\u043E\u0432\u044B\u0435 \u043E\u0441\u043D\u043E\u0432\u0430\u043D\u0438\u044F \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0438",
|
|
1914
|
+
"3.1. \u041A\u043E\u043D\u0441\u0442\u0438\u0442\u0443\u0446\u0438\u044F \u0420\u043E\u0441\u0441\u0438\u0439\u0441\u043A\u043E\u0439 \u0424\u0435\u0434\u0435\u0440\u0430\u0446\u0438\u0438, \u0413\u0440\u0430\u0436\u0434\u0430\u043D\u0441\u043A\u0438\u0439 \u043A\u043E\u0434\u0435\u043A\u0441 \u0420\u043E\u0441\u0441\u0438\u0439\u0441\u043A\u043E\u0439 \u0424\u0435\u0434\u0435\u0440\u0430\u0446\u0438\u0438, \u0417\u0430\u043A\u043E\u043D \u0438 \u043F\u0440\u0438\u043D\u044F\u0442\u044B\u0435 \u0432 \u0441\u043E\u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0438 \u0441 \u043D\u0438\u043C \u043D\u043E\u0440\u043C\u0430\u0442\u0438\u0432\u043D\u044B\u0435 \u0430\u043A\u0442\u044B.",
|
|
1915
|
+
"3.2. \u0421\u043E\u0433\u043B\u0430\u0441\u0438\u0435 \u0441\u0443\u0431\u044A\u0435\u043A\u0442\u0430 \u043F\u0435\u0440\u0441\u043E\u043D\u0430\u043B\u044C\u043D\u044B\u0445 \u0434\u0430\u043D\u043D\u044B\u0445 (\u043F\u0443\u043D\u043A\u0442 1 \u0447\u0430\u0441\u0442\u0438 1 \u0441\u0442\u0430\u0442\u044C\u0438 6 \u0417\u0430\u043A\u043E\u043D\u0430), \u043A\u043E\u0442\u043E\u0440\u043E\u0435 \u043E\u043D \u0434\u0430\u0451\u0442 \u043E\u0442\u0434\u0435\u043B\u044C\u043D\u043E\u0439 \u043E\u0442\u043C\u0435\u0442\u043A\u043E\u0439 \u0432 \u0444\u043E\u0440\u043C\u0435 \u0437\u0430\u044F\u0432\u043A\u0438 \u043F\u0435\u0440\u0435\u0434 \u0435\u0451 \u043E\u0442\u043F\u0440\u0430\u0432\u043A\u043E\u0439. \u0422\u0435\u043A\u0441\u0442 \u0441\u043E\u0433\u043B\u0430\u0441\u0438\u044F \u043E\u043F\u0443\u0431\u043B\u0438\u043A\u043E\u0432\u0430\u043D \u043D\u0430 \u0421\u0430\u0439\u0442\u0435 \u043E\u0442\u0434\u0435\u043B\u044C\u043D\u044B\u043C \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u043E\u043C."
|
|
1916
|
+
];
|
|
1917
|
+
}
|
|
1918
|
+
function dataScopeOf(source) {
|
|
1919
|
+
return [
|
|
1920
|
+
"4. \u041E\u0431\u044A\u0451\u043C \u0438 \u043A\u0430\u0442\u0435\u0433\u043E\u0440\u0438\u0438 \u043E\u0431\u0440\u0430\u0431\u0430\u0442\u044B\u0432\u0430\u0435\u043C\u044B\u0445 \u0434\u0430\u043D\u043D\u044B\u0445, \u043A\u0430\u0442\u0435\u0433\u043E\u0440\u0438\u0438 \u0441\u0443\u0431\u044A\u0435\u043A\u0442\u043E\u0432",
|
|
1921
|
+
`4.1. \u041E\u043F\u0435\u0440\u0430\u0442\u043E\u0440 \u043E\u0431\u0440\u0430\u0431\u0430\u0442\u044B\u0432\u0430\u0435\u0442 \u0442\u043E\u043B\u044C\u043A\u043E \u0434\u0430\u043D\u043D\u044B\u0435, \u043A\u043E\u0442\u043E\u0440\u044B\u0435 \u043F\u043E\u0441\u0435\u0442\u0438\u0442\u0435\u043B\u044C \u0441\u0430\u043C \u0443\u043A\u0430\u0437\u044B\u0432\u0430\u0435\u0442 \u0432 \u0444\u043E\u0440\u043C\u0435 \u0437\u0430\u044F\u0432\u043A\u0438: ${sentDataOf(source.forms)}, \u0430 \u0442\u0430\u043A\u0436\u0435 \u0430\u0434\u0440\u0435\u0441 \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u044B, \u0441 \u043A\u043E\u0442\u043E\u0440\u043E\u0439 \u043E\u0442\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0430 \u0437\u0430\u044F\u0432\u043A\u0430, \u0438 \u0432\u0440\u0435\u043C\u044F \u0435\u0451 \u043E\u0442\u043F\u0440\u0430\u0432\u043A\u0438.`,
|
|
1922
|
+
"4.2. \u041E\u043F\u0435\u0440\u0430\u0442\u043E\u0440 \u043D\u0435 \u043E\u0431\u0440\u0430\u0431\u0430\u0442\u044B\u0432\u0430\u0435\u0442 \u0441\u043F\u0435\u0446\u0438\u0430\u043B\u044C\u043D\u044B\u0435 \u043A\u0430\u0442\u0435\u0433\u043E\u0440\u0438\u0438 \u043F\u0435\u0440\u0441\u043E\u043D\u0430\u043B\u044C\u043D\u044B\u0445 \u0434\u0430\u043D\u043D\u044B\u0445 \u0438 \u0431\u0438\u043E\u043C\u0435\u0442\u0440\u0438\u0447\u0435\u0441\u043A\u0438\u0435 \u043F\u0435\u0440\u0441\u043E\u043D\u0430\u043B\u044C\u043D\u044B\u0435 \u0434\u0430\u043D\u043D\u044B\u0435 \u0438 \u043F\u0440\u043E\u0441\u0438\u0442 \u043D\u0435 \u0443\u043A\u0430\u0437\u044B\u0432\u0430\u0442\u044C \u0438\u0445 \u0432 \u0437\u0430\u044F\u0432\u043A\u0435.",
|
|
1923
|
+
"4.3. \u0421\u0443\u0431\u044A\u0435\u043A\u0442\u044B \u043F\u0435\u0440\u0441\u043E\u043D\u0430\u043B\u044C\u043D\u044B\u0445 \u0434\u0430\u043D\u043D\u044B\u0445 \u2014 \u043F\u043E\u0441\u0435\u0442\u0438\u0442\u0435\u043B\u0438 \u0421\u0430\u0439\u0442\u0430, \u043E\u0442\u043F\u0440\u0430\u0432\u0438\u0432\u0448\u0438\u0435 \u0437\u0430\u044F\u0432\u043A\u0443."
|
|
1924
|
+
];
|
|
1925
|
+
}
|
|
1926
|
+
function processingOf() {
|
|
1927
|
+
return [
|
|
1928
|
+
"5. \u041F\u043E\u0440\u044F\u0434\u043E\u043A \u0438 \u0443\u0441\u043B\u043E\u0432\u0438\u044F \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0438",
|
|
1929
|
+
`5.1. \u0414\u0435\u0439\u0441\u0442\u0432\u0438\u044F \u0441 \u043F\u0435\u0440\u0441\u043E\u043D\u0430\u043B\u044C\u043D\u044B\u043C\u0438 \u0434\u0430\u043D\u043D\u044B\u043C\u0438: ${ACTIONS}.`,
|
|
1930
|
+
`5.2. \u041E\u043F\u0435\u0440\u0430\u0442\u043E\u0440 \u043F\u043E\u0440\u0443\u0447\u0430\u0435\u0442 \u043F\u0440\u0438\u0451\u043C \u0437\u0430\u044F\u0432\u043E\u043A \u0441 \u0444\u043E\u0440\u043C \u0421\u0430\u0439\u0442\u0430 \u0438 \u0438\u0445 \u043F\u0435\u0440\u0435\u0434\u0430\u0447\u0443 \u041E\u043F\u0435\u0440\u0430\u0442\u043E\u0440\u0443 \u043F\u043E \u044D\u043B\u0435\u043A\u0442\u0440\u043E\u043D\u043D\u043E\u0439 \u043F\u043E\u0447\u0442\u0435 ${PROCESSOR}. \u0421\u0435\u0440\u0432\u0438\u0441 \u043E\u0431\u044F\u0437\u0430\u043D \u0441\u043E\u0431\u043B\u044E\u0434\u0430\u0442\u044C \u043A\u043E\u043D\u0444\u0438\u0434\u0435\u043D\u0446\u0438\u0430\u043B\u044C\u043D\u043E\u0441\u0442\u044C \u0434\u0430\u043D\u043D\u044B\u0445, \u043E\u0431\u0435\u0441\u043F\u0435\u0447\u0438\u0432\u0430\u0442\u044C \u0438\u0445 \u0431\u0435\u0437\u043E\u043F\u0430\u0441\u043D\u043E\u0441\u0442\u044C \u043F\u043E \u0441\u0442\u0430\u0442\u044C\u0435 19 \u0417\u0430\u043A\u043E\u043D\u0430, \u043D\u0435 \u0445\u0440\u0430\u043D\u0438\u0442 \u0437\u0430\u044F\u0432\u043A\u0443 \u0434\u043E\u043B\u044C\u0448\u0435, \u0447\u0435\u043C \u043D\u0443\u0436\u043D\u043E \u0434\u043B\u044F \u0434\u043E\u0441\u0442\u0430\u0432\u043A\u0438, \u0438 \u043D\u0435 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u0442 \u0434\u0430\u043D\u043D\u044B\u0435 \u0432 \u0441\u0432\u043E\u0438\u0445 \u0446\u0435\u043B\u044F\u0445. \u041E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043D\u043D\u043E\u0441\u0442\u044C \u043F\u0435\u0440\u0435\u0434 \u0441\u0443\u0431\u044A\u0435\u043A\u0442\u043E\u043C \u0437\u0430 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044F \u0441\u0435\u0440\u0432\u0438\u0441\u0430 \u043D\u0435\u0441\u0451\u0442 \u041E\u043F\u0435\u0440\u0430\u0442\u043E\u0440.`,
|
|
1931
|
+
"5.3. \u0417\u0430\u043F\u0438\u0441\u044C, \u0441\u0438\u0441\u0442\u0435\u043C\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u044F, \u043D\u0430\u043A\u043E\u043F\u043B\u0435\u043D\u0438\u0435, \u0445\u0440\u0430\u043D\u0435\u043D\u0438\u0435, \u0443\u0442\u043E\u0447\u043D\u0435\u043D\u0438\u0435 \u0438 \u0438\u0437\u0432\u043B\u0435\u0447\u0435\u043D\u0438\u0435 \u043F\u0435\u0440\u0441\u043E\u043D\u0430\u043B\u044C\u043D\u044B\u0445 \u0434\u0430\u043D\u043D\u044B\u0445 \u0433\u0440\u0430\u0436\u0434\u0430\u043D \u0420\u043E\u0441\u0441\u0438\u0439\u0441\u043A\u043E\u0439 \u0424\u0435\u0434\u0435\u0440\u0430\u0446\u0438\u0438 \u0432\u0435\u0434\u0443\u0442\u0441\u044F \u0441 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0435\u043C \u0431\u0430\u0437 \u0434\u0430\u043D\u043D\u044B\u0445, \u043D\u0430\u0445\u043E\u0434\u044F\u0449\u0438\u0445\u0441\u044F \u043D\u0430 \u0442\u0435\u0440\u0440\u0438\u0442\u043E\u0440\u0438\u0438 \u0420\u043E\u0441\u0441\u0438\u0439\u0441\u043A\u043E\u0439 \u0424\u0435\u0434\u0435\u0440\u0430\u0446\u0438\u0438. \u0422\u0440\u0430\u043D\u0441\u0433\u0440\u0430\u043D\u0438\u0447\u043D\u0430\u044F \u043F\u0435\u0440\u0435\u0434\u0430\u0447\u0430 \u043D\u0435 \u043E\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043B\u044F\u0435\u0442\u0441\u044F.",
|
|
1932
|
+
"5.4. \u041E\u043F\u0435\u0440\u0430\u0442\u043E\u0440 \u043D\u0435 \u0440\u0430\u0441\u043F\u0440\u043E\u0441\u0442\u0440\u0430\u043D\u044F\u0435\u0442 \u043F\u0435\u0440\u0441\u043E\u043D\u0430\u043B\u044C\u043D\u044B\u0435 \u0434\u0430\u043D\u043D\u044B\u0435 \u0438 \u043D\u0435 \u043F\u0435\u0440\u0435\u0434\u0430\u0451\u0442 \u0438\u0445 \u0442\u0440\u0435\u0442\u044C\u0438\u043C \u043B\u0438\u0446\u0430\u043C, \u043A\u0440\u043E\u043C\u0435 \u0441\u043B\u0443\u0447\u0430\u0435\u0432, \u043F\u0440\u0435\u0434\u0443\u0441\u043C\u043E\u0442\u0440\u0435\u043D\u043D\u044B\u0445 \u0437\u0430\u043A\u043E\u043D\u043E\u043C (\u043D\u0430\u043F\u0440\u0438\u043C\u0435\u0440, \u043F\u043E \u0437\u0430\u043F\u0440\u043E\u0441\u0443 \u0441\u0443\u0434\u0430 \u0438\u043B\u0438 \u0443\u043F\u043E\u043B\u043D\u043E\u043C\u043E\u0447\u0435\u043D\u043D\u044B\u0445 \u043E\u0440\u0433\u0430\u043D\u043E\u0432).",
|
|
1933
|
+
"5.5. \u0414\u043B\u044F \u0437\u0430\u0449\u0438\u0442\u044B \u0434\u0430\u043D\u043D\u044B\u0445 \u041E\u043F\u0435\u0440\u0430\u0442\u043E\u0440 \u043F\u0440\u0438\u043D\u0438\u043C\u0430\u0435\u0442 \u043C\u0435\u0440\u044B \u043F\u043E \u0441\u0442\u0430\u0442\u044C\u044F\u043C 18.1 \u0438 19 \u0417\u0430\u043A\u043E\u043D\u0430: \u043D\u0430\u0437\u043D\u0430\u0447\u0430\u0435\u0442 \u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043D\u043D\u043E\u0433\u043E \u0437\u0430 \u043E\u0440\u0433\u0430\u043D\u0438\u0437\u0430\u0446\u0438\u044E \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0438, \u043E\u0433\u0440\u0430\u043D\u0438\u0447\u0438\u0432\u0430\u0435\u0442 \u0434\u043E\u0441\u0442\u0443\u043F \u043A \u0434\u0430\u043D\u043D\u044B\u043C \u043B\u0438\u0446\u0430\u043C\u0438, \u043A\u043E\u0442\u043E\u0440\u044B\u043C \u043E\u043D \u043D\u0443\u0436\u0435\u043D \u0434\u043B\u044F \u0440\u0430\u0431\u043E\u0442\u044B, \u043F\u0435\u0440\u0435\u0434\u0430\u0451\u0442 \u0434\u0430\u043D\u043D\u044B\u0435 \u043F\u043E \u0437\u0430\u0449\u0438\u0449\u0451\u043D\u043D\u044B\u043C \u043A\u0430\u043D\u0430\u043B\u0430\u043C \u0441\u0432\u044F\u0437\u0438, \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u0442 \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430 \u0437\u0430\u0449\u0438\u0442\u044B \u043E\u0442 \u043D\u0435\u0441\u0430\u043D\u043A\u0446\u0438\u043E\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u043E\u0433\u043E \u0434\u043E\u0441\u0442\u0443\u043F\u0430 \u0438 \u0443\u043D\u0438\u0447\u0442\u043E\u0436\u0430\u0435\u0442 \u0434\u0430\u043D\u043D\u044B\u0435, \u043A\u043E\u0433\u0434\u0430 \u043E\u043D\u0438 \u0431\u043E\u043B\u044C\u0448\u0435 \u043D\u0435 \u043D\u0443\u0436\u043D\u044B.",
|
|
1934
|
+
"5.6. \u041E \u043D\u0435\u043F\u0440\u0430\u0432\u043E\u043C\u0435\u0440\u043D\u043E\u0439 \u0438\u043B\u0438 \u0441\u043B\u0443\u0447\u0430\u0439\u043D\u043E\u0439 \u043F\u0435\u0440\u0435\u0434\u0430\u0447\u0435 \u043F\u0435\u0440\u0441\u043E\u043D\u0430\u043B\u044C\u043D\u044B\u0445 \u0434\u0430\u043D\u043D\u044B\u0445, \u043F\u043E\u0432\u043B\u0451\u043A\u0448\u0435\u0439 \u043D\u0430\u0440\u0443\u0448\u0435\u043D\u0438\u0435 \u043F\u0440\u0430\u0432 \u0441\u0443\u0431\u044A\u0435\u043A\u0442\u043E\u0432, \u041E\u043F\u0435\u0440\u0430\u0442\u043E\u0440 \u0443\u0432\u0435\u0434\u043E\u043C\u043B\u044F\u0435\u0442 \u0420\u043E\u0441\u043A\u043E\u043C\u043D\u0430\u0434\u0437\u043E\u0440 \u0432 \u0441\u0440\u043E\u043A\u0438, \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u043B\u0435\u043D\u043D\u044B\u0435 \u0447\u0430\u0441\u0442\u044C\u044E 3.1 \u0441\u0442\u0430\u0442\u044C\u0438 21 \u0417\u0430\u043A\u043E\u043D\u0430."
|
|
1935
|
+
];
|
|
1936
|
+
}
|
|
1937
|
+
function subjectRequestsOf(operator) {
|
|
1938
|
+
return [
|
|
1939
|
+
"6. \u0410\u043A\u0442\u0443\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u044F, \u0438\u0441\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u0435, \u0443\u0434\u0430\u043B\u0435\u043D\u0438\u0435 \u0438 \u0443\u043D\u0438\u0447\u0442\u043E\u0436\u0435\u043D\u0438\u0435 \u0434\u0430\u043D\u043D\u044B\u0445, \u043E\u0442\u0432\u0435\u0442\u044B \u043D\u0430 \u0437\u0430\u043F\u0440\u043E\u0441\u044B",
|
|
1940
|
+
`6.1. \u0417\u0430\u043F\u0440\u043E\u0441 \u043E \u0441\u0432\u043E\u0438\u0445 \u0434\u0430\u043D\u043D\u044B\u0445, \u0442\u0440\u0435\u0431\u043E\u0432\u0430\u043D\u0438\u0435 \u0438\u0445 \u0443\u0442\u043E\u0447\u043D\u0438\u0442\u044C, \u0437\u0430\u0431\u043B\u043E\u043A\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0438\u043B\u0438 \u0443\u043D\u0438\u0447\u0442\u043E\u0436\u0438\u0442\u044C, \u0430 \u0442\u0430\u043A\u0436\u0435 \u043E\u0442\u0437\u044B\u0432 \u0441\u043E\u0433\u043B\u0430\u0441\u0438\u044F \u0441\u0443\u0431\u044A\u0435\u043A\u0442 \u043D\u0430\u043F\u0440\u0430\u0432\u043B\u044F\u0435\u0442 \u043D\u0430 ${operator.email}. \u0412 \u0437\u0430\u043F\u0440\u043E\u0441\u0435 \u043D\u0443\u0436\u043D\u043E \u0443\u043A\u0430\u0437\u0430\u0442\u044C \u0441\u0432\u0435\u0434\u0435\u043D\u0438\u044F, \u043F\u043E \u043A\u043E\u0442\u043E\u0440\u044B\u043C \u041E\u043F\u0435\u0440\u0430\u0442\u043E\u0440 \u043D\u0430\u0439\u0434\u0451\u0442 \u0437\u0430\u044F\u0432\u043A\u0443 (\u043D\u0430\u043F\u0440\u0438\u043C\u0435\u0440, \u0442\u0435\u043B\u0435\u0444\u043E\u043D \u0438\u043B\u0438 \u043F\u043E\u0447\u0442\u0443, \u0443\u043A\u0430\u0437\u0430\u043D\u043D\u044B\u0435 \u0432 \u043D\u0435\u0439), \u0438 \u0447\u0442\u043E \u0438\u043C\u0435\u043D\u043D\u043E \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044F.`,
|
|
1941
|
+
`6.2. \u041E\u043F\u0435\u0440\u0430\u0442\u043E\u0440 \u043E\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u043D\u0430 \u0437\u0430\u043F\u0440\u043E\u0441 \u0432 \u0442\u0435\u0447\u0435\u043D\u0438\u0435 ${String(ANSWER_WORKING_DAYS)} \u0440\u0430\u0431\u043E\u0447\u0438\u0445 \u0434\u043D\u0435\u0439. \u0421\u0440\u043E\u043A \u043C\u043E\u0436\u0435\u0442 \u0431\u044B\u0442\u044C \u043F\u0440\u043E\u0434\u043B\u0451\u043D \u0435\u0449\u0451 \u043D\u0430 ${String(ANSWER_EXTENSION_WORKING_DAYS)} \u0440\u0430\u0431\u043E\u0447\u0438\u0445 \u0434\u043D\u0435\u0439, \u0435\u0441\u043B\u0438 \u041E\u043F\u0435\u0440\u0430\u0442\u043E\u0440 \u043D\u0430\u043F\u0440\u0430\u0432\u0438\u0442 \u043C\u043E\u0442\u0438\u0432\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u043E\u0435 \u0443\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u0435.`,
|
|
1942
|
+
`6.3. \u041D\u0435\u0442\u043E\u0447\u043D\u044B\u0435 \u0434\u0430\u043D\u043D\u044B\u0435 \u041E\u043F\u0435\u0440\u0430\u0442\u043E\u0440 \u0443\u0442\u043E\u0447\u043D\u044F\u0435\u0442 \u0432 \u0442\u0435\u0447\u0435\u043D\u0438\u0435 ${String(CORRECTION_WORKING_DAYS)} \u0440\u0430\u0431\u043E\u0447\u0438\u0445 \u0434\u043D\u0435\u0439 \u043F\u043E\u0441\u043B\u0435 \u043F\u043E\u043B\u0443\u0447\u0435\u043D\u0438\u044F \u0441\u0432\u0435\u0434\u0435\u043D\u0438\u0439 \u043E \u043D\u0435\u0442\u043E\u0447\u043D\u043E\u0441\u0442\u0438. \u041D\u0435\u043F\u0440\u0430\u0432\u043E\u043C\u0435\u0440\u043D\u0443\u044E \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0443 \u041E\u043F\u0435\u0440\u0430\u0442\u043E\u0440 \u043F\u0440\u0435\u043A\u0440\u0430\u0449\u0430\u0435\u0442 \u0432 \u0442\u0435\u0447\u0435\u043D\u0438\u0435 ${String(UNLAWFUL_STOP_WORKING_DAYS)} \u0440\u0430\u0431\u043E\u0447\u0438\u0445 \u0434\u043D\u0435\u0439, \u0430 \u0435\u0441\u043B\u0438 \u0435\u0451 \u043D\u0435\u043B\u044C\u0437\u044F \u0441\u0434\u0435\u043B\u0430\u0442\u044C \u043F\u0440\u0430\u0432\u043E\u043C\u0435\u0440\u043D\u043E\u0439 \u2014 \u0443\u043D\u0438\u0447\u0442\u043E\u0436\u0430\u0435\u0442 \u0434\u0430\u043D\u043D\u044B\u0435 \u0432 \u0442\u0435\u0447\u0435\u043D\u0438\u0435 ${String(UNLAWFUL_ERASE_WORKING_DAYS)} \u0440\u0430\u0431\u043E\u0447\u0438\u0445 \u0434\u043D\u0435\u0439.`,
|
|
1943
|
+
`6.4. \u041F\u0440\u0438 \u0434\u043E\u0441\u0442\u0438\u0436\u0435\u043D\u0438\u0438 \u0446\u0435\u043B\u0438 \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0438, \u0438\u0441\u0442\u0435\u0447\u0435\u043D\u0438\u0438 \u0441\u0440\u043E\u043A\u0430 \u0445\u0440\u0430\u043D\u0435\u043D\u0438\u044F \u0438\u043B\u0438 \u043E\u0442\u0437\u044B\u0432\u0435 \u0441\u043E\u0433\u043B\u0430\u0441\u0438\u044F \u041E\u043F\u0435\u0440\u0430\u0442\u043E\u0440 \u043F\u0440\u0435\u043A\u0440\u0430\u0449\u0430\u0435\u0442 \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0443 \u0438 \u0443\u043D\u0438\u0447\u0442\u043E\u0436\u0430\u0435\u0442 \u0434\u0430\u043D\u043D\u044B\u0435 \u0432 \u0442\u0435\u0447\u0435\u043D\u0438\u0435 ${String(ERASE_DAYS)} \u0434\u043D\u0435\u0439, \u0435\u0441\u043B\u0438 \u0438\u043D\u043E\u0435 \u043D\u0435 \u043F\u0440\u0435\u0434\u0443\u0441\u043C\u043E\u0442\u0440\u0435\u043D\u043E \u0437\u0430\u043A\u043E\u043D\u043E\u043C.`
|
|
1944
|
+
];
|
|
1945
|
+
}
|
|
1946
|
+
function finalProvisions() {
|
|
1947
|
+
return [
|
|
1948
|
+
"7. \u0417\u0430\u043A\u043B\u044E\u0447\u0438\u0442\u0435\u043B\u044C\u043D\u044B\u0435 \u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u044F",
|
|
1949
|
+
"7.1. \u041E\u043F\u0435\u0440\u0430\u0442\u043E\u0440 \u043C\u043E\u0436\u0435\u0442 \u0438\u0437\u043C\u0435\u043D\u044F\u0442\u044C \u041F\u043E\u043B\u0438\u0442\u0438\u043A\u0443. \u041D\u043E\u0432\u0430\u044F \u0440\u0435\u0434\u0430\u043A\u0446\u0438\u044F \u0434\u0435\u0439\u0441\u0442\u0432\u0443\u0435\u0442 \u0441\u043E \u0434\u043D\u044F \u0435\u0451 \u043F\u0443\u0431\u043B\u0438\u043A\u0430\u0446\u0438\u0438 \u043D\u0430 \u0421\u0430\u0439\u0442\u0435."
|
|
1950
|
+
];
|
|
1951
|
+
}
|
|
1952
|
+
function sentDataOf(forms) {
|
|
1953
|
+
const labels = forms.flatMap(
|
|
1954
|
+
(form) => Object.values(form.fields).map((field) => lowercaseFirst(field.label))
|
|
1955
|
+
);
|
|
1956
|
+
const unique = [...new Set(labels)];
|
|
1957
|
+
return unique.length === 0 ? "\u0438\u043C\u044F \u0438 \u043A\u043E\u043D\u0442\u0430\u043A\u0442\u044B" : unique.join(", ");
|
|
1958
|
+
}
|
|
1959
|
+
function lowercaseFirst(label) {
|
|
1960
|
+
return `${label.charAt(0).toLocaleLowerCase("ru")}${label.slice(1)}`;
|
|
1832
1961
|
}
|
|
1833
1962
|
|
|
1834
1963
|
// src/schema/request-events.ts
|
|
@@ -1941,7 +2070,12 @@ export {
|
|
|
1941
2070
|
isPhoneNumber,
|
|
1942
2071
|
isEmailAddress,
|
|
1943
2072
|
requestsPathOf,
|
|
1944
|
-
|
|
2073
|
+
PRIVACY_PAGE_PATH,
|
|
2074
|
+
CONSENT_PAGE_PATH,
|
|
2075
|
+
privacyPolicyFields,
|
|
2076
|
+
privacyConsentFields,
|
|
2077
|
+
privacyPolicyTextOf,
|
|
2078
|
+
privacyConsentTextOf,
|
|
1945
2079
|
REQUEST_SEND_EVENT,
|
|
1946
2080
|
REQUEST_SENT_EVENT,
|
|
1947
2081
|
REQUEST_FAILED_EVENT
|
package/dist/cli.js
CHANGED
package/dist/client.js
CHANGED
|
@@ -16,7 +16,7 @@ if (isFramed && isPreview) {
|
|
|
16
16
|
});
|
|
17
17
|
}
|
|
18
18
|
if (document.querySelector(REQUEST_FORM_SELECTOR) !== null) {
|
|
19
|
-
void import("./request-sending-
|
|
19
|
+
void import("./request-sending-4TEGXELF.js").then(({ connectRequestForms }) => {
|
|
20
20
|
connectRequestForms(document, { isPreview });
|
|
21
21
|
});
|
|
22
22
|
}
|
package/dist/feeds.js
CHANGED
package/dist/index.js
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import {
|
|
2
2
|
isUploadedFile
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-IY6Q6BUX.js";
|
|
4
4
|
import {
|
|
5
5
|
OWN_PHOTOS_PATH
|
|
6
6
|
} from "./chunk-W2LIOR2C.js";
|
|
7
|
-
import "./chunk-
|
|
7
|
+
import "./chunk-6F7DPGWS.js";
|
|
8
8
|
import {
|
|
9
9
|
SITE_CONFIG_FILE,
|
|
10
10
|
SITE_DESCRIPTION_PATH,
|
|
11
11
|
isJsonObject,
|
|
12
12
|
readSiteConfig
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-ZH6Q4KMM.js";
|
|
14
14
|
import {
|
|
15
15
|
PREVIEW_PATH,
|
|
16
16
|
SITE_MODULE_FILE,
|
package/dist/preview-requests.js
CHANGED
|
@@ -6,9 +6,9 @@ import {
|
|
|
6
6
|
previewContentAt,
|
|
7
7
|
previewHeadersOf,
|
|
8
8
|
readDraft
|
|
9
|
-
} from "./chunk-
|
|
10
|
-
import "./chunk-
|
|
11
|
-
import "./chunk-
|
|
9
|
+
} from "./chunk-IY6Q6BUX.js";
|
|
10
|
+
import "./chunk-6F7DPGWS.js";
|
|
11
|
+
import "./chunk-ZH6Q4KMM.js";
|
|
12
12
|
export {
|
|
13
13
|
MAX_DRAFT_BYTES,
|
|
14
14
|
isPageAddress,
|
package/dist/protocol.js
CHANGED
package/dist/routes/media.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import {
|
|
2
2
|
isUploadedFile
|
|
3
|
-
} from "../chunk-
|
|
4
|
-
import "../chunk-
|
|
5
|
-
import "../chunk-
|
|
3
|
+
} from "../chunk-IY6Q6BUX.js";
|
|
4
|
+
import "../chunk-6F7DPGWS.js";
|
|
5
|
+
import "../chunk-ZH6Q4KMM.js";
|
|
6
6
|
import {
|
|
7
7
|
uploadedPhotoPath
|
|
8
8
|
} from "../chunk-QCVWHHJC.js";
|
package/dist/schema.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { j as ImageValue, k as LinkValue, a as CollectionField, C as Content, F as Fields, i as RecordFields, e as ContentOf, g as RecordOf, T as TextField, N as NumberField } from './content-ZG6F3MPA.js';
|
|
2
|
-
export { l as ChoiceField, m as ChoiceOption, c as ChoicesField, D as DateField, h as Field, n as FieldKind, o as FieldValue, p as FileField, q as FileValue,
|
|
1
|
+
import { j as ImageValue, k as LinkValue, a as CollectionField, C as Content, F as Fields, i as RecordFields, e as ContentOf, g as RecordOf, T as TextField, N as NumberField, G as GroupField, R as RichTextField, f as RichText } from './content-ZG6F3MPA.js';
|
|
2
|
+
export { l as ChoiceField, m as ChoiceOption, c as ChoicesField, D as DateField, h as Field, n as FieldKind, o as FieldValue, p as FileField, q as FileValue, I as ImageField, r as ImageFocus, L as LinkField, O as OptionValue, s as ReferenceField, t as ReferencesField, u as RichBlock, v as RichLine, w as RichSpan, S as SlugField, d as TimeField, b as ToggleField, U as UrlField, V as ValueOf, x as asOneParagraph, y as choice, z as choices, A as collection, B as date, E as defaultContent, H as defaultValue, J as defineSchema, K as file, M as group, P as image, Q as linesOf, W as link, X as normalizedLine, Y as number, Z as plainTextOf, _ as readRichText, $ as reference, a0 as references, a1 as richText, a2 as richTextOf, a3 as slug, a4 as text, a5 as time, a6 as toggle, a7 as url } from './content-ZG6F3MPA.js';
|
|
3
3
|
export { C as ContentIssue, F as FieldPath, P as ParsedContent, c as countCharacters, f as formatFieldPath, p as parseContent } from './parse-content-Dtec5MKj.js';
|
|
4
4
|
import { R as RequestForm } from './site-description-0UU5Wukx.js';
|
|
5
5
|
export { C as CollectionPath, D as DEFAULT_LONG_TEXT_LENGTH, b as DEFAULT_TEXT_LENGTH, F as FIELD_PATH_SEPARATOR, c as FieldTarget, d as FieldsReading, H as HOME_PAGE_PATH, M as MAX_REQUEST_FIELD_LENGTH, P as PAGE_PATH_SEPARATOR, e as PageProblemReason, f as PlacedRecord, g as RECORD_PLACEHOLDER, h as RecordFieldsAt, i as RecordPagePath, j as RecordPageProblemReason, k as RecordPages, l as RequestChoiceField, m as RequestEmailField, n as RequestField, o as RequestFieldKind, p as RequestFields, q as RequestFormProblemReason, r as RequestFormReading, s as RequestLongTextField, t as RequestPhoneField, u as RequestTextField, v as SITE_DESCRIPTION_PATH, w as SchemaProblem, x as SchemaProblemReason, S as SiteDescription, y as SiteDescriptionProblem, z as SiteDescriptionReading, A as SitePageDescription, B as SiteRecordPageDescription, a as SiteRecordPages, E as checkFields, G as checkSiteDescription, I as isFormId, J as isRecordPagePath, K as isSearchTextsGroup, L as maxLengthOf, N as readFields, O as readRequestForm, Q as readSiteDescription, T as recordAddressOf, U as recordAt, V as recordPageAt, W as recordPagePath, X as recordPages, Y as requestChoice, Z as requestEmail, _ as requestForm, $ as requestLongText, a0 as requestPhone, a1 as requestText, a2 as resolveFieldPath } from './site-description-0UU5Wukx.js';
|
|
@@ -208,12 +208,50 @@ declare function requestPageOf(entries: RequestEntries): string;
|
|
|
208
208
|
declare function isPhoneNumber(typed: string): boolean;
|
|
209
209
|
declare function isEmailAddress(typed: string): boolean;
|
|
210
210
|
|
|
211
|
-
/** The two texts a form's visitor reads before sending: the consent and the operator's policy. */
|
|
212
|
-
type LegalDocument = "consent" | "privacy";
|
|
213
211
|
/** Where the site's forms send their requests, on the CMS's origin. */
|
|
214
212
|
declare function requestsPathOf(siteId: string): string;
|
|
215
|
-
|
|
216
|
-
|
|
213
|
+
|
|
214
|
+
/** The business that collects the data: as its documents name it. */
|
|
215
|
+
interface PolicyOperator {
|
|
216
|
+
/** «ООО «Лесная мастерская»» or «ИП Иванов Иван Иванович». */
|
|
217
|
+
readonly name: string;
|
|
218
|
+
readonly inn: string;
|
|
219
|
+
readonly address: string;
|
|
220
|
+
/** Where a visitor writes about their data: to withdraw the consent, to ask what is kept. */
|
|
221
|
+
readonly email: string;
|
|
222
|
+
}
|
|
223
|
+
interface PolicySource {
|
|
224
|
+
readonly siteTitle: string;
|
|
225
|
+
readonly operator: PolicyOperator;
|
|
226
|
+
/** The site's forms, whose fields the documents name. */
|
|
227
|
+
readonly forms: readonly RequestForm[];
|
|
228
|
+
}
|
|
229
|
+
/** The page of the policy on a site, which a form links to unless the site says another. */
|
|
230
|
+
declare const PRIVACY_PAGE_PATH = "/privacy";
|
|
231
|
+
/** The page of the consent on a site, which a form's checkbox links to unless the site says another. */
|
|
232
|
+
declare const CONSENT_PAGE_PATH = "/consent";
|
|
233
|
+
/** The policy as content: its title and its text, which the owner edits like any other text. */
|
|
234
|
+
declare function privacyPolicyFields(options?: {
|
|
235
|
+
readonly label?: string;
|
|
236
|
+
}): GroupField<{
|
|
237
|
+
title: TextField;
|
|
238
|
+
text: RichTextField;
|
|
239
|
+
}>;
|
|
240
|
+
/** The consent as content: a document of its own, which the owner edits like any other text. */
|
|
241
|
+
declare function privacyConsentFields(options?: {
|
|
242
|
+
readonly label?: string;
|
|
243
|
+
}): GroupField<{
|
|
244
|
+
title: TextField;
|
|
245
|
+
text: RichTextField;
|
|
246
|
+
}>;
|
|
247
|
+
/**
|
|
248
|
+
* A policy to start with, in the sections Роскомнадзор recommends: general provisions, purposes,
|
|
249
|
+
* legal grounds, the data and whose it is, how it is processed, and how it is corrected, erased and
|
|
250
|
+
* asked about.
|
|
251
|
+
*/
|
|
252
|
+
declare function privacyPolicyTextOf(source: PolicySource): RichText;
|
|
253
|
+
/** A consent to start with: what ст. 9 asks a consent to name, as a document of its own. */
|
|
254
|
+
declare function privacyConsentTextOf(source: PolicySource): RichText;
|
|
217
255
|
|
|
218
256
|
/**
|
|
219
257
|
* Before the request is sent, once the form takes what was typed. Cancelable: a site that calls
|
|
@@ -250,4 +288,4 @@ interface RequestFailedDetail {
|
|
|
250
288
|
readonly issues: readonly RequestIssue[];
|
|
251
289
|
}
|
|
252
290
|
|
|
253
|
-
export { CONSENT_REQUIRED_TEXT, CollectionField, type CollectionRecords, Content, ContentOf, type ContentPath, FIELD_PATH_ATTRIBUTE, type FieldMarker, Fields, ImageValue, type JsonObject, type
|
|
291
|
+
export { CONSENT_PAGE_PATH, CONSENT_REQUIRED_TEXT, CollectionField, type CollectionRecords, Content, ContentOf, type ContentPath, FIELD_PATH_ATTRIBUTE, type FieldMarker, Fields, GroupField, ImageValue, type JsonObject, type LinkKind, type LinkTarget, LinkValue, MAX_SLUG_LENGTH, NumberField, PRIVACY_PAGE_PATH, type PolicyOperator, type PolicySource, RECORD_ID_KEY, REQUEST_CONSENT_KEY, REQUEST_FAILED_EVENT, REQUEST_FORM_KEY, REQUEST_ISSUE_TEXTS, REQUEST_PAGE_KEY, REQUEST_SEND_EVENT, REQUEST_SENT_EVENT, REQUEST_TRAP_KEY, REVEALED_ATTRIBUTE, REVEAL_ATTRIBUTE, REVEAL_EVENT, type Rate, RecordFields, RecordOf, type RequestEntries, type RequestFailedDetail, type RequestFailure, RequestForm, type RequestIssue, type RequestIssueCode, type RequestReading, type RequestSendDetail, type RequestSentDetail, type RequestValue, RichText, RichTextField, SITE_CONFIG_FILE, type SiteConfig, type SiteConfigField, type SiteConfigReading, TextField, collectionAt, collectionFieldAt, editable, estimateOf, findRecord, hrefOf, imagePosition, isConsentGiven, isContentObject, isEmailAddress, isJsonObject, isPhoneNumber, isRecordId, isSiteId, isSlug, isTrapFilled, linkTargetOf, newRecord, privacyConsentFields, privacyConsentTextOf, privacyPolicyFields, privacyPolicyTextOf, ratesField, readRequestEntries, readRequestValues, readSiteConfig, requestPageOf, requestsPathOf, safeHref, slugFieldOf, slugOf, withRecordIds };
|
package/dist/schema.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import {
|
|
2
|
+
CONSENT_PAGE_PATH,
|
|
2
3
|
CONSENT_REQUIRED_TEXT,
|
|
3
4
|
DEFAULT_LONG_TEXT_LENGTH,
|
|
4
5
|
DEFAULT_TEXT_LENGTH,
|
|
@@ -8,6 +9,7 @@ import {
|
|
|
8
9
|
MAX_REQUEST_FIELD_LENGTH,
|
|
9
10
|
MAX_SLUG_LENGTH,
|
|
10
11
|
PAGE_PATH_SEPARATOR,
|
|
12
|
+
PRIVACY_PAGE_PATH,
|
|
11
13
|
RECORD_ID_KEY,
|
|
12
14
|
RECORD_PLACEHOLDER,
|
|
13
15
|
REQUEST_CONSENT_KEY,
|
|
@@ -59,7 +61,6 @@ import {
|
|
|
59
61
|
isSiteId,
|
|
60
62
|
isSlug,
|
|
61
63
|
isTrapFilled,
|
|
62
|
-
legalPagePathOf,
|
|
63
64
|
linesOf,
|
|
64
65
|
link,
|
|
65
66
|
linkTargetOf,
|
|
@@ -70,6 +71,10 @@ import {
|
|
|
70
71
|
openingHoursField,
|
|
71
72
|
parseContent,
|
|
72
73
|
plainTextOf,
|
|
74
|
+
privacyConsentFields,
|
|
75
|
+
privacyConsentTextOf,
|
|
76
|
+
privacyPolicyFields,
|
|
77
|
+
privacyPolicyTextOf,
|
|
73
78
|
productFields,
|
|
74
79
|
ratesField,
|
|
75
80
|
readFields,
|
|
@@ -107,8 +112,9 @@ import {
|
|
|
107
112
|
toggle,
|
|
108
113
|
url,
|
|
109
114
|
withRecordIds
|
|
110
|
-
} from "./chunk-
|
|
115
|
+
} from "./chunk-ZH6Q4KMM.js";
|
|
111
116
|
export {
|
|
117
|
+
CONSENT_PAGE_PATH,
|
|
112
118
|
CONSENT_REQUIRED_TEXT,
|
|
113
119
|
DEFAULT_LONG_TEXT_LENGTH,
|
|
114
120
|
DEFAULT_TEXT_LENGTH,
|
|
@@ -118,6 +124,7 @@ export {
|
|
|
118
124
|
MAX_REQUEST_FIELD_LENGTH,
|
|
119
125
|
MAX_SLUG_LENGTH,
|
|
120
126
|
PAGE_PATH_SEPARATOR,
|
|
127
|
+
PRIVACY_PAGE_PATH,
|
|
121
128
|
RECORD_ID_KEY,
|
|
122
129
|
RECORD_PLACEHOLDER,
|
|
123
130
|
REQUEST_CONSENT_KEY,
|
|
@@ -169,7 +176,6 @@ export {
|
|
|
169
176
|
isSiteId,
|
|
170
177
|
isSlug,
|
|
171
178
|
isTrapFilled,
|
|
172
|
-
legalPagePathOf,
|
|
173
179
|
linesOf,
|
|
174
180
|
link,
|
|
175
181
|
linkTargetOf,
|
|
@@ -180,6 +186,10 @@ export {
|
|
|
180
186
|
openingHoursField,
|
|
181
187
|
parseContent,
|
|
182
188
|
plainTextOf,
|
|
189
|
+
privacyConsentFields,
|
|
190
|
+
privacyConsentTextOf,
|
|
191
|
+
privacyPolicyFields,
|
|
192
|
+
privacyPolicyTextOf,
|
|
183
193
|
productFields,
|
|
184
194
|
ratesField,
|
|
185
195
|
readFields,
|
package/dist/site.js
CHANGED
|
@@ -3,12 +3,12 @@ import {
|
|
|
3
3
|
previewedPageAt,
|
|
4
4
|
renderedPageAt,
|
|
5
5
|
staticPagesOf
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-6F7DPGWS.js";
|
|
7
7
|
import {
|
|
8
8
|
checkSiteDescription,
|
|
9
9
|
formatFieldPath,
|
|
10
10
|
parseContent
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-ZH6Q4KMM.js";
|
|
12
12
|
import {
|
|
13
13
|
SITE_MODULE_FILE
|
|
14
14
|
} from "./chunk-QCVWHHJC.js";
|
package/package.json
CHANGED