@opentermsarchive/engine 0.16.0 → 0.17.1

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.
Files changed (82) hide show
  1. package/README.md +240 -232
  2. package/package.json +7 -1
  3. package/scripts/dataset/README.md +2 -2
  4. package/scripts/dataset/assets/README.template.js +5 -5
  5. package/scripts/dataset/export/test/fixtures/dataset/README.md +5 -5
  6. package/scripts/import/README.md +1 -1
  7. package/scripts/rewrite/README.md +2 -2
  8. package/scripts/rewrite/rewrite-versions.js +1 -1
  9. package/scripts/utils/renamer/README.md +5 -5
  10. package/scripts/utils/renamer/index.js +2 -2
  11. package/src/archivist/recorder/index.js +2 -2
  12. package/src/archivist/recorder/index.test.js +3 -3
  13. package/src/archivist/recorder/repositories/git/dataMapper.js +1 -1
  14. package/src/archivist/recorder/repositories/git/index.test.js +5 -5
  15. package/src/archivist/recorder/repositories/interface.js +2 -2
  16. package/src/archivist/recorder/repositories/mongo/index.test.js +4 -4
  17. package/src/archivist/services/index.test.js +2 -2
  18. package/src/archivist/services/service.test.js +1 -1
  19. package/src/main.js +1 -1
  20. package/.env.example +0 -3
  21. package/.eslintrc.yaml +0 -116
  22. package/.github/workflows/deploy.yml +0 -50
  23. package/.github/workflows/release.yml +0 -71
  24. package/.github/workflows/test.yml +0 -77
  25. package/CHANGELOG.md +0 -14
  26. package/CODE_OF_CONDUCT.md +0 -128
  27. package/CONTRIBUTING.md +0 -143
  28. package/MIGRATING.md +0 -42
  29. package/README.fr.md +0 -110
  30. package/Vagrantfile +0 -38
  31. package/ansible.cfg +0 -13
  32. package/decision-records/0001-service-name-and-id.md +0 -73
  33. package/decision-records/0002-service-history.md +0 -212
  34. package/decision-records/0003-snapshots-database.md +0 -123
  35. package/ops/README.md +0 -280
  36. package/ops/app.yml +0 -5
  37. package/ops/infra.yml +0 -6
  38. package/ops/inventories/dev.yml +0 -7
  39. package/ops/inventories/production.yml +0 -27
  40. package/ops/roles/infra/defaults/main.yml +0 -2
  41. package/ops/roles/infra/files/.gitconfig +0 -3
  42. package/ops/roles/infra/files/mongod.conf +0 -18
  43. package/ops/roles/infra/files/ota-bot-key.private_key +0 -26
  44. package/ops/roles/infra/tasks/main.yml +0 -78
  45. package/ops/roles/infra/tasks/mongo.yml +0 -40
  46. package/ops/roles/infra/templates/ssh_config.j2 +0 -5
  47. package/ops/roles/ota/defaults/main.yml +0 -14
  48. package/ops/roles/ota/files/.env +0 -21
  49. package/ops/roles/ota/tasks/database.yml +0 -65
  50. package/ops/roles/ota/tasks/main.yml +0 -110
  51. package/ops/site.yml +0 -6
  52. package/pm2.config.cjs +0 -20
  53. package/test/fixtures/service_A.js +0 -22
  54. package/test/fixtures/service_A_terms.md +0 -10
  55. package/test/fixtures/service_A_terms_snapshot.html +0 -14
  56. package/test/fixtures/service_B.js +0 -22
  57. package/test/fixtures/service_with_declaration_history.js +0 -65
  58. package/test/fixtures/service_with_filters_history.js +0 -155
  59. package/test/fixtures/service_with_history.js +0 -188
  60. package/test/fixtures/service_with_multipage_document.js +0 -100
  61. package/test/fixtures/service_without_history.js +0 -31
  62. package/test/fixtures/services.js +0 -19
  63. package/test/fixtures/terms.pdf +0 -0
  64. package/test/fixtures/termsFromPDF.md +0 -25
  65. package/test/fixtures/termsModified.pdf +0 -0
  66. package/test/services/service_A.json +0 -9
  67. package/test/services/service_B.json +0 -9
  68. package/test/services/service_with_declaration_history.filters.js +0 -7
  69. package/test/services/service_with_declaration_history.history.json +0 -17
  70. package/test/services/service_with_declaration_history.json +0 -13
  71. package/test/services/service_with_filters_history.filters.history.js +0 -29
  72. package/test/services/service_with_filters_history.filters.js +0 -7
  73. package/test/services/service_with_filters_history.json +0 -13
  74. package/test/services/service_with_history.filters.history.js +0 -29
  75. package/test/services/service_with_history.filters.js +0 -7
  76. package/test/services/service_with_history.history.json +0 -26
  77. package/test/services/service_with_history.json +0 -17
  78. package/test/services/service_with_multipage_document.filters.js +0 -7
  79. package/test/services/service_with_multipage_document.history.json +0 -37
  80. package/test/services/service_with_multipage_document.json +0 -28
  81. package/test/services/service_without_history.filters.js +0 -7
  82. package/test/services/service_without_history.json +0 -13
@@ -1,155 +0,0 @@
1
- import DocumentDeclaration from '../../src/archivist/services/documentDeclaration.js';
2
- import PageDeclaration from '../../src/archivist/services/pageDeclaration.js';
3
- import Service from '../../src/archivist/services/service.js';
4
-
5
- const service = new Service({
6
- id: 'service_with_filters_history',
7
- name: 'Service with filters history',
8
- });
9
-
10
- const filters = [
11
- async function removeShareButton() {
12
- return 'last-removeShareButton';
13
- },
14
- async function removePrintButton() {
15
- return 'last-removePrintButton';
16
- },
17
- ];
18
-
19
- [
20
- new DocumentDeclaration({
21
- service,
22
- type: 'Terms of Service',
23
- pages: [
24
- new PageDeclaration({
25
- location: 'https://www.service-with-filters-history.example/terms',
26
- contentSelectors: 'main',
27
- noiseSelectors: undefined,
28
- filters,
29
- }),
30
- ],
31
- validUntil: null,
32
- }),
33
- new DocumentDeclaration({
34
- service,
35
- type: 'Terms of Service',
36
- pages: [
37
- new PageDeclaration({
38
- location: 'https://www.service-with-filters-history.example/terms',
39
- contentSelectors: 'main',
40
- noiseSelectors: undefined,
41
- filters: [
42
- async function removeShareButton() {
43
- return 'first-removeShareButton';
44
- },
45
- async function removePrintButton() {
46
- return 'first-removePrintButton';
47
- },
48
- ],
49
- }),
50
- ],
51
- validUntil: '2020-07-22T11:30:21.000Z',
52
- }),
53
- new DocumentDeclaration({
54
- service,
55
- type: 'Terms of Service',
56
- pages: [
57
- new PageDeclaration({
58
- location: 'https://www.service-with-filters-history.example/terms',
59
- contentSelectors: 'main',
60
- noiseSelectors: undefined,
61
- filters: [
62
- async function removeShareButton() {
63
- return 'first-removeShareButton';
64
- },
65
- async function removePrintButton() {
66
- return 'second-removePrintButton';
67
- },
68
- ],
69
- }),
70
- ],
71
- validUntil: '2020-08-22T11:30:21.000Z',
72
- }),
73
- new DocumentDeclaration({
74
- service,
75
- type: 'Terms of Service',
76
- pages: [
77
- new PageDeclaration({
78
- location: 'https://www.service-with-filters-history.example/terms',
79
- contentSelectors: 'main',
80
- noiseSelectors: undefined,
81
- filters: [
82
- async function removeShareButton() {
83
- return 'second-removeShareButton';
84
- },
85
- async function removePrintButton() {
86
- return 'second-removePrintButton';
87
- },
88
- ],
89
- }),
90
- ],
91
- validUntil: '2020-09-29T21:30:21.000Z',
92
- }),
93
- new DocumentDeclaration({
94
- service,
95
- type: 'Terms of Service',
96
- pages: [
97
- new PageDeclaration({
98
- location: 'https://www.service-with-filters-history.example/terms',
99
- contentSelectors: 'main',
100
- noiseSelectors: undefined,
101
- filters: [
102
- async function removeShareButton() {
103
- return 'second-removeShareButton';
104
- },
105
- async function removePrintButton() {
106
- return 'third-removePrintButton';
107
- },
108
- ],
109
- }),
110
- ],
111
- validUntil: '2020-09-30T21:30:21.000Z',
112
- }),
113
- new DocumentDeclaration({
114
- service,
115
- type: 'Terms of Service',
116
- pages: [
117
- new PageDeclaration({
118
- location: 'https://www.service-with-filters-history.example/terms',
119
- contentSelectors: 'main',
120
- noiseSelectors: undefined,
121
- filters: [
122
- async function removeShareButton() {
123
- return 'third-removeShareButton';
124
- },
125
- async function removePrintButton() {
126
- return 'third-removePrintButton';
127
- },
128
- ],
129
- }),
130
- ],
131
- validUntil: '2020-10-20T12:30:21.000Z',
132
- }),
133
- new DocumentDeclaration({
134
- service,
135
- type: 'Terms of Service',
136
- pages: [
137
- new PageDeclaration({
138
- location: 'https://www.service-with-filters-history.example/terms',
139
- contentSelectors: 'main',
140
- noiseSelectors: undefined,
141
- filters: [
142
- async function removeShareButton() {
143
- return 'third-removeShareButton';
144
- },
145
- async function removePrintButton() {
146
- return 'last-removePrintButton';
147
- },
148
- ],
149
- }),
150
- ],
151
- validUntil: '2020-11-01T12:30:21.000Z',
152
- }),
153
- ].forEach(declaration => service.addDocumentDeclaration(declaration));
154
-
155
- export default service;
@@ -1,188 +0,0 @@
1
- import DocumentDeclaration from '../../src/archivist/services/documentDeclaration.js';
2
- import PageDeclaration from '../../src/archivist/services/pageDeclaration.js';
3
- import Service from '../../src/archivist/services/service.js';
4
-
5
- const service = new Service({
6
- id: 'service_with_history',
7
- name: 'Service with history',
8
- });
9
-
10
- const filters = [
11
- async function removeShareButton() {
12
- return 'last-removeShareButton';
13
- },
14
- async function removePrintButton() {
15
- return 'last-removePrintButton';
16
- },
17
- ];
18
-
19
- [
20
- new DocumentDeclaration({
21
- service,
22
- type: 'Terms of Service',
23
- pages: [
24
- new PageDeclaration({
25
- location: 'https://www.service-with-history.example/terms',
26
- contentSelectors: 'main',
27
- noiseSelectors: undefined,
28
- filters,
29
- }),
30
- ],
31
- validUntil: null,
32
- }),
33
- new DocumentDeclaration({
34
- service,
35
- type: 'Terms of Service',
36
- pages: [
37
- new PageDeclaration({
38
- location: 'https://www.service-with-history.example/tos',
39
- contentSelectors: 'body',
40
- noiseSelectors: undefined,
41
- filters: undefined,
42
- }),
43
- ],
44
- validUntil: '2020-07-22T11:30:21.000Z',
45
- }),
46
- new DocumentDeclaration({
47
- service,
48
- type: 'Terms of Service',
49
- pages: [
50
- new PageDeclaration({
51
- location: 'https://www.service-with-history.example/tos',
52
- contentSelectors: 'body',
53
- noiseSelectors: undefined,
54
- filters: undefined,
55
- }),
56
- ],
57
- validUntil: '2020-08-15T21:30:21.000Z',
58
- }),
59
- new DocumentDeclaration({
60
- service,
61
- type: 'Terms of Service',
62
- pages: [
63
- new PageDeclaration({
64
- location: 'https://www.service-with-history.example/tos',
65
- contentSelectors: 'main',
66
- noiseSelectors: undefined,
67
- filters: [
68
- async function removeShareButton() {
69
- return 'first-removeShareButton';
70
- },
71
- ],
72
- }),
73
- ],
74
- validUntil: '2020-08-22T11:30:21.000Z',
75
- }),
76
- new DocumentDeclaration({
77
- service,
78
- type: 'Terms of Service',
79
- pages: [
80
- new PageDeclaration({
81
- location: 'https://www.service-with-history.example/tos',
82
- contentSelectors: 'main',
83
- noiseSelectors: undefined,
84
- filters: [
85
- async function removeShareButton() {
86
- return 'second-removeShareButton';
87
- },
88
- ],
89
- }),
90
- ],
91
- validUntil: '2020-09-15T21:30:21.000Z',
92
- }),
93
- new DocumentDeclaration({
94
- service,
95
- type: 'Terms of Service',
96
- pages: [
97
- new PageDeclaration({
98
- location: 'https://www.service-with-history.example/terms_of_service',
99
- contentSelectors: 'body',
100
- noiseSelectors: undefined,
101
- filters: [
102
- async function removeShareButton() {
103
- return 'second-removeShareButton';
104
- },
105
- async function removePrintButton() {
106
- return 'second-removePrintButton';
107
- },
108
- ],
109
- }),
110
- ],
111
- validUntil: '2020-09-29T21:30:21.000Z',
112
- }),
113
- new DocumentDeclaration({
114
- service,
115
- type: 'Terms of Service',
116
- pages: [
117
- new PageDeclaration({
118
- location: 'https://www.service-with-history.example/terms',
119
- contentSelectors: 'main',
120
- noiseSelectors: undefined,
121
- filters: [
122
- async function removeShareButton() {
123
- return 'second-removeShareButton';
124
- },
125
- async function removePrintButton() {
126
- return 'third-removePrintButton';
127
- },
128
- ],
129
- }),
130
- ],
131
- validUntil: '2020-09-30T21:30:21.000Z',
132
- }),
133
- new DocumentDeclaration({
134
- service,
135
- type: 'Terms of Service',
136
- pages: [
137
- new PageDeclaration({
138
- location: 'https://www.service-with-history.example/terms',
139
- contentSelectors: 'main',
140
- noiseSelectors: undefined,
141
- filters: [
142
- async function removeShareButton() {
143
- return 'third-removeShareButton';
144
- },
145
- async function removePrintButton() {
146
- return 'third-removePrintButton';
147
- },
148
- ],
149
- }),
150
- ],
151
- validUntil: '2020-10-20T12:30:21.000Z',
152
- }),
153
- new DocumentDeclaration({
154
- service,
155
- type: 'Terms of Service',
156
- pages: [
157
- new PageDeclaration({
158
- location: 'https://www.service-with-history.example/terms',
159
- contentSelectors: 'main',
160
- noiseSelectors: undefined,
161
- filters: [
162
- async function removeShareButton() {
163
- return 'third-removeShareButton';
164
- },
165
- async function removePrintButton() {
166
- return 'last-removePrintButton';
167
- },
168
- ],
169
- }),
170
- ],
171
- validUntil: '2020-11-01T12:30:21.000Z',
172
- }),
173
- new DocumentDeclaration({
174
- service,
175
- type: 'Privacy Policy',
176
- pages: [
177
- new PageDeclaration({
178
- location: 'https://www.service-with-history.example/privacy',
179
- contentSelectors: 'body',
180
- noiseSelectors: undefined,
181
- filters: undefined,
182
- }),
183
- ],
184
- validUntil: null,
185
- }),
186
- ].forEach(declaration => service.addDocumentDeclaration(declaration));
187
-
188
- export default service;
@@ -1,100 +0,0 @@
1
- import DocumentDeclaration from '../../src/archivist/services/documentDeclaration.js';
2
- import PageDeclaration from '../../src/archivist/services/pageDeclaration.js';
3
- import Service from '../../src/archivist/services/service.js';
4
-
5
- const service = new Service({
6
- id: 'service_with_multipage_document',
7
- name: 'Service with multipage',
8
- });
9
-
10
- const filters = [
11
- async function removeShareButton() {
12
- return 'last-removeShareButton';
13
- },
14
- async function removePrintButton() {
15
- return 'last-removePrintButton';
16
- },
17
- ];
18
-
19
- [
20
- new DocumentDeclaration({
21
- service,
22
- type: 'Community Guidelines',
23
- validUntil: null,
24
- pages: [
25
- new PageDeclaration({
26
- location: 'https://www.service-with-multipage-document.example/community-standards',
27
- contentSelectors: '#main',
28
- noiseSelectors: 'body',
29
- filters: undefined,
30
- executeClientScripts: true,
31
- }),
32
- new PageDeclaration({
33
- location: 'https://www.service-with-multipage-document.example/community-standards/hate-speech/',
34
- contentSelectors: 'body',
35
- noiseSelectors: '#footer',
36
- filters: undefined,
37
- executeClientScripts: false,
38
- }),
39
- new PageDeclaration({
40
- location: 'https://www.service-with-multipage-document.example/community-standards/violence-incitement/',
41
- contentSelectors: 'body',
42
- noiseSelectors: 'body',
43
- filters,
44
- executeClientScripts: true,
45
- }),
46
- ],
47
- }),
48
- new DocumentDeclaration({
49
- service,
50
- type: 'Community Guidelines',
51
- validUntil: '2020-04-15T21:30:21.000Z',
52
- pages: [
53
- new PageDeclaration({
54
- location: 'https://www.service-with-multipage-document.example/community-standards',
55
- contentSelectors: 'body',
56
- noiseSelectors: undefined,
57
- filters: undefined,
58
- }),
59
- new PageDeclaration({
60
- location: 'https://www.service-with-multipage-document.example/community-standards/hate-speech/',
61
- contentSelectors: 'body',
62
- noiseSelectors: undefined,
63
- filters: undefined,
64
- }),
65
- new PageDeclaration({
66
- location: 'https://www.service-with-multipage-document.example/community-standards/violence-incitement/',
67
- contentSelectors: 'body',
68
- noiseSelectors: undefined,
69
- filters: [filters[0]],
70
- }),
71
- ],
72
- }),
73
- new DocumentDeclaration({
74
- service,
75
- type: 'Community Guidelines',
76
- validUntil: '2020-03-15T21:30:21.000Z',
77
- pages: [
78
- new PageDeclaration({
79
- location: 'https://www.service-with-multipage-document.example/community-standards',
80
- contentSelectors: 'body',
81
- noiseSelectors: undefined,
82
- filters: undefined,
83
- }),
84
- new PageDeclaration({
85
- location: 'https://www.service-with-multipage-document.example/community-standards/hate-speech/',
86
- contentSelectors: 'body',
87
- noiseSelectors: undefined,
88
- filters: undefined,
89
- }),
90
- new PageDeclaration({
91
- location: 'https://www.service-with-multipage-document.example/community-standards/violence-incitement/',
92
- contentSelectors: 'body',
93
- noiseSelectors: undefined,
94
- filters: undefined,
95
- }),
96
- ],
97
- }),
98
- ].forEach(declaration => service.addDocumentDeclaration(declaration));
99
-
100
- export default service;
@@ -1,31 +0,0 @@
1
- import DocumentDeclaration from '../../src/archivist/services/documentDeclaration.js';
2
- import PageDeclaration from '../../src/archivist/services/pageDeclaration.js';
3
- import Service from '../../src/archivist/services/service.js';
4
-
5
- const service = new Service({
6
- id: 'service_without_history',
7
- name: 'Service without history',
8
- });
9
-
10
- const filters = [
11
- async function removeShareButton() {
12
- return 'last-removeShareButton';
13
- },
14
- async function removePrintButton() {
15
- return 'last-removePrintButton';
16
- },
17
- ];
18
-
19
- service.addDocumentDeclaration(new DocumentDeclaration({
20
- service,
21
- type: 'Terms of Service',
22
- pages: [new PageDeclaration({
23
- location: 'https://www.service-without-history.example/tos',
24
- contentSelectors: 'body',
25
- noiseSelectors: undefined,
26
- filters,
27
- })],
28
- validUntil: null,
29
- }));
30
-
31
- export default service;
@@ -1,19 +0,0 @@
1
- import serviceA from './service_A.js';
2
- import serviceB from './service_B.js';
3
- import serviceWithDeclarationHistory from './service_with_declaration_history.js';
4
- import serviceWithFiltersHistory from './service_with_filters_history.js';
5
- import serviceWithHistory from './service_with_history.js';
6
- import serviceWithMultipageDocument from './service_with_multipage_document.js';
7
- import serviceWithoutHistory from './service_without_history.js';
8
-
9
- const services = {
10
- service_with_history: serviceWithHistory,
11
- service_without_history: serviceWithoutHistory,
12
- service_with_filters_history: serviceWithFiltersHistory,
13
- service_with_declaration_history: serviceWithDeclarationHistory,
14
- service_with_multipage_document: serviceWithMultipageDocument,
15
- service_A: serviceA,
16
- service_B: serviceB,
17
- };
18
-
19
- export default services;
Binary file
@@ -1,25 +0,0 @@
1
- THIS IS A LEGAL AGREEMENT BETWEEN YOU AND TESTCOMPANY
2
-
3
- TESTCOMPANY Developer Agreement
4
-
5
-
6
-
7
- 1\. Relationship With TestCompany. Et pulvinar integer platea sociosqu nibh
8
-
9
- risus parturient, sit hac turpis dictumst placerat malesuada, ut potenti elementum
10
-
11
- nostra aptent porttitor.
12
-
13
-
14
-
15
- 2\. Developer Benefits. Et pulvinar integer platea sociosqu nibh risus parturient,
16
-
17
- sit hac turpis dictumst placerat malesuada, ut potenti elementum nostra aptent
18
-
19
- porttitor.
20
-
21
-
22
-
23
- 3\. Restrictions. Et pulvinar integer platea sociosqu nibh risus parturient, sit hac
24
-
25
- turpis dictumst placerat malesuada, ut potenti elementum nostra aptent porttitor.
Binary file
@@ -1,9 +0,0 @@
1
- {
2
- "name": "Service A",
3
- "documents": {
4
- "Terms of Service": {
5
- "fetch": "https://www.servicea.example/tos",
6
- "select": "body"
7
- }
8
- }
9
- }
@@ -1,9 +0,0 @@
1
- {
2
- "name": "Service B",
3
- "documents": {
4
- "Privacy Policy": {
5
- "fetch": "https://www.serviceb.example/privacy",
6
- "select": "body"
7
- }
8
- }
9
- }
@@ -1,7 +0,0 @@
1
- export async function removeShareButton() {
2
- return 'last-removeShareButton';
3
- }
4
-
5
- export async function removePrintButton() {
6
- return 'last-removePrintButton';
7
- }
@@ -1,17 +0,0 @@
1
- {
2
- "Terms of Service": [
3
- {
4
- "fetch": "https://www.service-with-declaration-history.example/tos",
5
- "select": "main",
6
- "filter": [
7
- "removeShareButton"
8
- ],
9
- "validUntil": "2020-09-30T21:30:21.000Z"
10
- },
11
- {
12
- "fetch": "https://www.service-with-declaration-history.example/tos",
13
- "select": "body",
14
- "validUntil": "2020-08-22T21:30:21.000Z"
15
- }
16
- ]
17
- }
@@ -1,13 +0,0 @@
1
- {
2
- "name": "Service with declaration history",
3
- "documents": {
4
- "Terms of Service": {
5
- "fetch": "https://www.service-with-declaration-history.example/terms",
6
- "select": "main",
7
- "filter": [
8
- "removeShareButton",
9
- "removePrintButton"
10
- ]
11
- }
12
- }
13
- }
@@ -1,29 +0,0 @@
1
- export const removeShareButton = [
2
- {
3
- validUntil: '2020-09-30T21:30:21.000Z',
4
- filter: async () => 'second-removeShareButton',
5
- },
6
- {
7
- validUntil: '2020-08-22T11:30:21.000Z',
8
- filter: async () => 'first-removeShareButton',
9
- },
10
- {
11
- validUntil: '2020-11-01T12:30:21.000Z',
12
- filter: async () => 'third-removeShareButton',
13
- },
14
- ];
15
-
16
- export const removePrintButton = [
17
- {
18
- validUntil: '2020-09-29T21:30:21.000Z',
19
- filter: async () => 'second-removePrintButton',
20
- },
21
- {
22
- validUntil: '2020-07-22T11:30:21.000Z',
23
- filter: async () => 'first-removePrintButton',
24
- },
25
- {
26
- validUntil: '2020-10-20T12:30:21.000Z',
27
- filter: async () => 'third-removePrintButton',
28
- },
29
- ];
@@ -1,7 +0,0 @@
1
- export async function removeShareButton() {
2
- return 'last-removeShareButton';
3
- }
4
-
5
- export async function removePrintButton() {
6
- return 'last-removePrintButton';
7
- }
@@ -1,13 +0,0 @@
1
- {
2
- "name": "Service with filters history",
3
- "documents": {
4
- "Terms of Service": {
5
- "fetch": "https://www.service-with-filters-history.example/terms",
6
- "select": "main",
7
- "filter": [
8
- "removeShareButton",
9
- "removePrintButton"
10
- ]
11
- }
12
- }
13
- }
@@ -1,29 +0,0 @@
1
- export const removeShareButton = [
2
- {
3
- validUntil: '2020-09-30T21:30:21.000Z',
4
- filter: async () => 'second-removeShareButton',
5
- },
6
- {
7
- validUntil: '2020-08-22T11:30:21.000Z',
8
- filter: async () => 'first-removeShareButton',
9
- },
10
- {
11
- validUntil: '2020-11-01T12:30:21.000Z',
12
- filter: async () => 'third-removeShareButton',
13
- },
14
- ];
15
-
16
- export const removePrintButton = [
17
- {
18
- validUntil: '2020-09-29T21:30:21.000Z',
19
- filter: async () => 'second-removePrintButton',
20
- },
21
- {
22
- validUntil: '2020-07-22T11:30:21.000Z',
23
- filter: async () => 'first-removePrintButton',
24
- },
25
- {
26
- validUntil: '2020-10-20T12:30:21.000Z',
27
- filter: async () => 'third-removePrintButton',
28
- },
29
- ];
@@ -1,7 +0,0 @@
1
- export async function removeShareButton() {
2
- return 'last-removeShareButton';
3
- }
4
-
5
- export async function removePrintButton() {
6
- return 'last-removePrintButton';
7
- }