fil commited on
Commit
c70cb8c
·
1 Parent(s): fe85e53

upgrade to framework 1.2

Browse files
Files changed (4) hide show
  1. docs/gazette.md +36 -42
  2. docs/index.md +12 -6
  3. docs/resistance.md +10 -14
  4. yarn.lock +83 -83
docs/gazette.md CHANGED
@@ -1,3 +1,8 @@
 
 
 
 
 
1
  <header id="observablehq-header">
2
  <style>
3
  #observablehq-header a[href] {color: inherit;}
@@ -29,48 +34,40 @@ const search = view(
29
  );
30
  ```
31
 
32
- ${
33
- Plot.plot({
34
- x: { nice: true },
35
- y: {
36
- label: `Share of titles matching ${search}`,
37
- tickFormat: "%",
38
- },
39
- marks: [
40
- Plot.ruleY([0, 0.01], {stroke: ["currentColor"]}),
41
- Plot.areaY(base, {
42
- x: "year",
43
- y: ({year, total}) => gazette.get(year) / total,
44
- fillOpacity: 0.2,
45
- curve: "step"
46
- }),
47
- Plot.lineY(base, {
48
- x: "year",
49
- y: ({year, total}) => gazette.get(year) / total,
50
- curve: "step"
51
- }),
52
- ],
53
- })
54
- }
 
 
55
 
56
  I called this page “Gazette” because I was surprised that most of the corpus in the earlier years had a title containing this word. The query uses a case-insensitive [REGEXP_MATCHES](https://duckdb.org/docs/archive/0.9.2/sql/functions/patternmatching) operator to count occurrences; you can query for example “socialis[tm]e” to match both “socialiste” and “socialisme”.
57
 
58
- ```js echo
59
- const results = db.query(
60
- `
61
  SELECT year
62
  , COUNT() c
63
  FROM presse
64
- WHERE REGEXP_MATCHES(STRIP_ACCENTS(title), STRIP_ACCENTS(?), 'i')
65
- GROUP BY year;
66
- `,
67
- [search]
68
- );
69
- ```
70
-
71
- ```js
72
- import { DuckDBClient } from "npm:@observablehq/duckdb";
73
- const db = DuckDBClient.of({ presse: FileAttachment("data/presse.parquet") });
74
  ```
75
 
76
  ```js
@@ -78,15 +75,12 @@ const db = DuckDBClient.of({ presse: FileAttachment("data/presse.parquet") });
78
  const gazette = new d3.InternMap(results.map(({ year, c }) => [year, c]));
79
  ```
80
 
81
- ```js
82
- // The base denominator (count by year)
83
- const base = db.query(
84
- `SELECT year
85
  , COUNT(*)::int total
86
  FROM presse
87
  WHERE year > '1000'
88
  GROUP BY year
89
  ORDER BY year
90
- `
91
- );
92
  ```
 
1
+ ---
2
+ sql:
3
+ presse: data/presse.parquet
4
+ ---
5
+
6
  <header id="observablehq-header">
7
  <style>
8
  #observablehq-header a[href] {color: inherit;}
 
34
  );
35
  ```
36
 
37
+ ```js
38
+ const chart = Plot.plot({
39
+ x: { nice: true },
40
+ y: {
41
+ label: `Share of titles matching ${search}`,
42
+ tickFormat: "%",
43
+ },
44
+ marks: [
45
+ Plot.ruleY([0, 0.01], { stroke: ["currentColor"] }),
46
+ Plot.areaY(base, {
47
+ x: "year",
48
+ y: ({ year, total }) => gazette.get(year) / total,
49
+ fillOpacity: 0.2,
50
+ curve: "step",
51
+ }),
52
+ Plot.lineY(base, {
53
+ x: "year",
54
+ y: ({ year, total }) => gazette.get(year) / total,
55
+ curve: "step",
56
+ }),
57
+ ],
58
+ });
59
+
60
+ display(chart);
61
+ ```
62
 
63
  I called this page “Gazette” because I was surprised that most of the corpus in the earlier years had a title containing this word. The query uses a case-insensitive [REGEXP_MATCHES](https://duckdb.org/docs/archive/0.9.2/sql/functions/patternmatching) operator to count occurrences; you can query for example “socialis[tm]e” to match both “socialiste” and “socialisme”.
64
 
65
+ ```sql id=results
 
 
66
  SELECT year
67
  , COUNT() c
68
  FROM presse
69
+ WHERE REGEXP_MATCHES(STRIP_ACCENTS(title), STRIP_ACCENTS(${search}), 'i')
70
+ GROUP BY year
 
 
 
 
 
 
 
 
71
  ```
72
 
73
  ```js
 
75
  const gazette = new d3.InternMap(results.map(({ year, c }) => [year, c]));
76
  ```
77
 
78
+ ```sql id=base
79
+ -- base (denominator: count by year) --
80
+ SELECT year
 
81
  , COUNT(*)::int total
82
  FROM presse
83
  WHERE year > '1000'
84
  GROUP BY year
85
  ORDER BY year
 
 
86
  ```
docs/index.md CHANGED
@@ -1,3 +1,8 @@
 
 
 
 
 
1
  <header id="observablehq-header">
2
  <style>
3
  #observablehq-header a[href] {color: inherit;}
@@ -25,7 +30,7 @@
25
 
26
  <p class=signature>by <a href="https://observablehq.com/@fil">Fil</a>
27
 
28
- This new fascinating dataset just dropped on Hugging Face&nbsp;: [French public domain newspapers](https://huggingface.co/datasets/PleIAs/French-PD-Newspapers) 🤗 references about **3&nbsp;million newspapers and periodicals** with their full text OCR’ed and some meta-data.
29
 
30
  The data is stored in 320 large parquet files. The data loader for this [Observable framework](https://observablehq.com/framework) project uses [DuckDB](https://duckdb.org/) to read these files (altogether about 200GB) and combines a minimal subset of their metadata — title and year of publication, most importantly without the text contents&nbsp;—, into a single highly optimized parquet file. This takes only about 1 minute to run in a hugging-face Space.
31
 
@@ -39,14 +44,15 @@ In this project, I’m exploring two aspects of the dataset:
39
 
40
  This page summarizes the time distribution of the data:
41
 
42
- ```js echo
43
- import { DuckDBClient } from "npm:@observablehq/duckdb";
44
- const db = DuckDBClient.of({ presse: FileAttachment("data/presse.parquet") });
45
  ```
46
 
47
- ```js echo
48
- const dates = db.query("SELECT year FROM presse WHERE year >= '1000'");
 
49
  ```
 
50
 
51
  _Note: due to the date pattern matching I’m using, unknown years are marked as 0000. Hence the filter above._
52
 
 
1
+ ---
2
+ sql:
3
+ presse: data/presse.parquet
4
+ ---
5
+
6
  <header id="observablehq-header">
7
  <style>
8
  #observablehq-header a[href] {color: inherit;}
 
30
 
31
  <p class=signature>by <a href="https://observablehq.com/@fil">Fil</a>
32
 
33
+ This new fascinating dataset just dropped on Hugging Face: [French public domain newspapers](https://huggingface.co/datasets/PleIAs/French-PD-Newspapers) 🤗 references about **3&nbsp;million newspapers and periodicals** with their full text OCR’ed and some meta-data.
34
 
35
  The data is stored in 320 large parquet files. The data loader for this [Observable framework](https://observablehq.com/framework) project uses [DuckDB](https://duckdb.org/) to read these files (altogether about 200GB) and combines a minimal subset of their metadata — title and year of publication, most importantly without the text contents&nbsp;—, into a single highly optimized parquet file. This takes only about 1 minute to run in a hugging-face Space.
36
 
 
44
 
45
  This page summarizes the time distribution of the data:
46
 
47
+ ```sql id=dates
48
+ SELECT year FROM presse WHERE year >= '1000'
 
49
  ```
50
 
51
+ ````
52
+ ```sql id=dates
53
+ SELECT year FROM presse WHERE year >= '1000'
54
  ```
55
+ ````
56
 
57
  _Note: due to the date pattern matching I’m using, unknown years are marked as 0000. Hence the filter above._
58
 
docs/resistance.md CHANGED
@@ -1,3 +1,8 @@
 
 
 
 
 
1
  <header id="observablehq-header">
2
  <style>
3
  #observablehq-header a[href] {color: inherit;}
@@ -23,20 +28,14 @@
23
 
24
  During the second world war the nazis occupied the northern half of France, and the collaborationist governement of Pétain was left to rule over the southern half (the “[zone libre](https://fr.wikipedia.org/wiki/Zone_libre)”). A lot of newspapers at that time were closed, others submitted to the occupiers (some even enthusiastically collaborated). At the same time, a range of clandestine publications started circulating, often associated with the resistance movements. When the country was Liberated in 1944, the most outrageously collaborationist press was dismantled, other newspapers changed their names and were sometimes taken over by new teams of resistance journalists. The most famous case is “Le Temps,” a daily newspaper that had been [publishing since 1861](<https://fr.wikipedia.org/wiki/Le_Temps_(quotidien_fran%C3%A7ais,_1861-1942)>) and had closed in 1942. Although not a collaborationist newspaper, it was not allowed to reopen, and its assets were transferred to create “Le Monde” on 19&nbsp;December 1944, under Hubert Beuve-Méry.
25
 
26
- ```js echo
27
- import { DuckDBClient } from "npm:@observablehq/duckdb";
28
- const db = DuckDBClient.of({ presse: FileAttachment("data/presse.parquet") });
29
- ```
30
-
31
- ```js echo
32
- const letemps = db.query(`
33
  SELECT year
34
  , count(*) "count"
35
  FROM presse
36
  WHERE title = 'Le Temps'
37
  AND year > DATE '1000-01-01'
38
  GROUP BY ALL
39
- `);
40
  ```
41
 
42
  ```js echo
@@ -57,14 +56,13 @@ display(
57
 
58
  The number of titles that stopped or started publishing exploded in those fatal years. Note that many of these publications were short-lived, such as this example picked at random in the dataset: [Au-devant de la vie. Organe de l'Union des jeunes filles patriotes (UJFP), Région parisienne](https://gallica.bnf.fr/ark:/12148/bpt6k76208732?rk=21459;2). While the the UJFP (a resistance organisation of communist young women) published several titles during the war, only one issue was distributed under this title.
59
 
60
- ```js echo
61
- const years = db.query(`
62
  SELECT title
63
  , MIN(year) AS start
64
  , MAX(year) AS end
65
  FROM presse
66
  GROUP BY 1
67
- `);
68
  ```
69
 
70
  ```js echo
@@ -109,8 +107,7 @@ display(
109
 
110
  Let’s focus on the ${start1944.length} publications that started publishing in 1944, and extract their titles and authors:
111
 
112
- ```js echo
113
- const start1944 = db.query(`
114
  SELECT title
115
  , IFNULL(NULLIF(author, 'None'), '') AS author
116
  , YEAR(MIN(year)) AS start
@@ -120,7 +117,6 @@ const start1944 = db.query(`
120
  GROUP BY ALL
121
  HAVING start = 1944
122
  ORDER BY issues DESC
123
- `);
124
  ```
125
 
126
  ```js
 
1
+ ---
2
+ sql:
3
+ presse: data/presse.parquet
4
+ ---
5
+
6
  <header id="observablehq-header">
7
  <style>
8
  #observablehq-header a[href] {color: inherit;}
 
28
 
29
  During the second world war the nazis occupied the northern half of France, and the collaborationist governement of Pétain was left to rule over the southern half (the “[zone libre](https://fr.wikipedia.org/wiki/Zone_libre)”). A lot of newspapers at that time were closed, others submitted to the occupiers (some even enthusiastically collaborated). At the same time, a range of clandestine publications started circulating, often associated with the resistance movements. When the country was Liberated in 1944, the most outrageously collaborationist press was dismantled, other newspapers changed their names and were sometimes taken over by new teams of resistance journalists. The most famous case is “Le Temps,” a daily newspaper that had been [publishing since 1861](<https://fr.wikipedia.org/wiki/Le_Temps_(quotidien_fran%C3%A7ais,_1861-1942)>) and had closed in 1942. Although not a collaborationist newspaper, it was not allowed to reopen, and its assets were transferred to create “Le Monde” on 19&nbsp;December 1944, under Hubert Beuve-Méry.
30
 
31
+ ```sql id=letemps echo
32
+ -- letemps --
 
 
 
 
 
33
  SELECT year
34
  , count(*) "count"
35
  FROM presse
36
  WHERE title = 'Le Temps'
37
  AND year > DATE '1000-01-01'
38
  GROUP BY ALL
 
39
  ```
40
 
41
  ```js echo
 
56
 
57
  The number of titles that stopped or started publishing exploded in those fatal years. Note that many of these publications were short-lived, such as this example picked at random in the dataset: [Au-devant de la vie. Organe de l'Union des jeunes filles patriotes (UJFP), Région parisienne](https://gallica.bnf.fr/ark:/12148/bpt6k76208732?rk=21459;2). While the the UJFP (a resistance organisation of communist young women) published several titles during the war, only one issue was distributed under this title.
58
 
59
+ ```sql id=years echo
60
+ -- years --
61
  SELECT title
62
  , MIN(year) AS start
63
  , MAX(year) AS end
64
  FROM presse
65
  GROUP BY 1
 
66
  ```
67
 
68
  ```js echo
 
107
 
108
  Let’s focus on the ${start1944.length} publications that started publishing in 1944, and extract their titles and authors:
109
 
110
+ ```sql id=start1944 echo
 
111
  SELECT title
112
  , IFNULL(NULLIF(author, 'None'), '') AS author
113
  , YEAR(MIN(year)) AS start
 
117
  GROUP BY ALL
118
  HAVING start = 1944
119
  ORDER BY issues DESC
 
120
  ```
121
 
122
  ```js
yarn.lock CHANGED
@@ -135,9 +135,9 @@
135
  integrity sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==
136
 
137
  "@observablehq/framework@1":
138
- version "1.1.2"
139
- resolved "https://registry.yarnpkg.com/@observablehq/framework/-/framework-1.1.2.tgz#84b83990cb6512e3bcc6698dba81ed856a74e63e"
140
- integrity sha512-YblOEZ3qSk//XTNNmWBDurpm99dHYDT2NLFRfyMHK3g+VvV03zJLu4RZraw3NLc5ATZUEJZ4v44evEyv+TNyAQ==
141
  dependencies:
142
  "@clack/prompts" "^0.7.0"
143
  "@observablehq/inputs" "^0.10.6"
@@ -226,70 +226,70 @@
226
  estree-walker "^2.0.2"
227
  picomatch "^2.3.1"
228
 
229
- "@rollup/[email protected].0":
230
- version "4.12.0"
231
- resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.12.0.tgz#38c3abd1955a3c21d492af6b1a1dca4bb1d894d6"
232
- integrity sha512-+ac02NL/2TCKRrJu2wffk1kZ+RyqxVUlbjSagNgPm94frxtr+XDL12E5Ll1enWskLrtrZ2r8L3wED1orIibV/w==
233
-
234
- "@rollup/[email protected].0":
235
- version "4.12.0"
236
- resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.12.0.tgz#3822e929f415627609e53b11cec9a4be806de0e2"
237
- integrity sha512-OBqcX2BMe6nvjQ0Nyp7cC90cnumt8PXmO7Dp3gfAju/6YwG0Tj74z1vKrfRz7qAv23nBcYM8BCbhrsWqO7PzQQ==
238
-
239
- "@rollup/[email protected].0":
240
- version "4.12.0"
241
- resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.12.0.tgz#6c082de71f481f57df6cfa3701ab2a7afde96f69"
242
- integrity sha512-X64tZd8dRE/QTrBIEs63kaOBG0b5GVEd3ccoLtyf6IdXtHdh8h+I56C2yC3PtC9Ucnv0CpNFJLqKFVgCYe0lOQ==
243
-
244
- "@rollup/[email protected].0":
245
- version "4.12.0"
246
- resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.12.0.tgz#c34ca0d31f3c46a22c9afa0e944403eea0edcfd8"
247
- integrity sha512-cc71KUZoVbUJmGP2cOuiZ9HSOP14AzBAThn3OU+9LcA1+IUqswJyR1cAJj3Mg55HbjZP6OLAIscbQsQLrpgTOg==
248
-
249
- "@rollup/[email protected].0":
250
- version "4.12.0"
251
- resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.12.0.tgz#48e899c1e438629c072889b824a98787a7c2362d"
252
- integrity sha512-a6w/Y3hyyO6GlpKL2xJ4IOh/7d+APaqLYdMf86xnczU3nurFTaVN9s9jOXQg97BE4nYm/7Ga51rjec5nfRdrvA==
253
-
254
- "@rollup/[email protected].0":
255
- version "4.12.0"
256
- resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.12.0.tgz#788c2698a119dc229062d40da6ada8a090a73a68"
257
- integrity sha512-0fZBq27b+D7Ar5CQMofVN8sggOVhEtzFUwOwPppQt0k+VR+7UHMZZY4y+64WJ06XOhBTKXtQB/Sv0NwQMXyNAA==
258
-
259
- "@rollup/[email protected].0":
260
- version "4.12.0"
261
- resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.12.0.tgz#3882a4e3a564af9e55804beeb67076857b035ab7"
262
- integrity sha512-eTvzUS3hhhlgeAv6bfigekzWZjaEX9xP9HhxB0Dvrdbkk5w/b+1Sxct2ZuDxNJKzsRStSq1EaEkVSEe7A7ipgQ==
263
-
264
- "@rollup/[email protected].0":
265
- version "4.12.0"
266
- resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.12.0.tgz#0c6ad792e1195c12bfae634425a3d2aa0fe93ab7"
267
- integrity sha512-ix+qAB9qmrCRiaO71VFfY8rkiAZJL8zQRXveS27HS+pKdjwUfEhqo2+YF2oI+H/22Xsiski+qqwIBxVewLK7sw==
268
-
269
- "@rollup/[email protected].0":
270
- version "4.12.0"
271
- resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.12.0.tgz#9d62485ea0f18d8674033b57aa14fb758f6ec6e3"
272
- integrity sha512-TenQhZVOtw/3qKOPa7d+QgkeM6xY0LtwzR8OplmyL5LrgTWIXpTQg2Q2ycBf8jm+SFW2Wt/DTn1gf7nFp3ssVA==
273
-
274
- "@rollup/[email protected].0":
275
- version "4.12.0"
276
- resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.12.0.tgz#50e8167e28b33c977c1f813def2b2074d1435e05"
277
- integrity sha512-LfFdRhNnW0zdMvdCb5FNuWlls2WbbSridJvxOvYWgSBOYZtgBfW9UGNJG//rwMqTX1xQE9BAodvMH9tAusKDUw==
278
-
279
- "@rollup/[email protected].0":
280
- version "4.12.0"
281
- resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.12.0.tgz#68d233272a2004429124494121a42c4aebdc5b8e"
282
- integrity sha512-JPDxovheWNp6d7AHCgsUlkuCKvtu3RB55iNEkaQcf0ttsDU/JZF+iQnYcQJSk/7PtT4mjjVG8N1kpwnI9SLYaw==
283
-
284
- "@rollup/[email protected].0":
285
- version "4.12.0"
286
- resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.12.0.tgz#366ca62221d1689e3b55a03f4ae12ae9ba595d40"
287
- integrity sha512-fjtuvMWRGJn1oZacG8IPnzIV6GF2/XG+h71FKn76OYFqySXInJtseAqdprVTDTyqPxQOG9Exak5/E9Z3+EJ8ZA==
288
-
289
- "@rollup/[email protected].0":
290
- version "4.12.0"
291
- resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.12.0.tgz#9ffdf9ed133a7464f4ae187eb9e1294413fab235"
292
- integrity sha512-ZYmr5mS2wd4Dew/JjT0Fqi2NPB/ZhZ2VvPp7SmvPZb4Y1CG/LRcS6tcRo2cYU7zLK5A7cdbhWnnWmUjoI4qapg==
293
 
294
  "@types/[email protected]", "@types/estree@^1.0.0":
295
  version "1.0.5"
@@ -1179,25 +1179,25 @@ rollup-plugin-esbuild@^6.1.0:
1179
  get-tsconfig "^4.7.2"
1180
 
1181
  rollup@^4.6.0:
1182
- version "4.12.0"
1183
- resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.12.0.tgz#0b6d1e5f3d46bbcf244deec41a7421dc54cc45b5"
1184
- integrity sha512-wz66wn4t1OHIJw3+XU7mJJQV/2NAfw5OAk6G6Hoo3zcvz/XOfQ52Vgi+AN4Uxoxi0KBBwk2g8zPrTDA4btSB/Q==
1185
  dependencies:
1186
  "@types/estree" "1.0.5"
1187
  optionalDependencies:
1188
- "@rollup/rollup-android-arm-eabi" "4.12.0"
1189
- "@rollup/rollup-android-arm64" "4.12.0"
1190
- "@rollup/rollup-darwin-arm64" "4.12.0"
1191
- "@rollup/rollup-darwin-x64" "4.12.0"
1192
- "@rollup/rollup-linux-arm-gnueabihf" "4.12.0"
1193
- "@rollup/rollup-linux-arm64-gnu" "4.12.0"
1194
- "@rollup/rollup-linux-arm64-musl" "4.12.0"
1195
- "@rollup/rollup-linux-riscv64-gnu" "4.12.0"
1196
- "@rollup/rollup-linux-x64-gnu" "4.12.0"
1197
- "@rollup/rollup-linux-x64-musl" "4.12.0"
1198
- "@rollup/rollup-win32-arm64-msvc" "4.12.0"
1199
- "@rollup/rollup-win32-ia32-msvc" "4.12.0"
1200
- "@rollup/rollup-win32-x64-msvc" "4.12.0"
1201
  fsevents "~2.3.2"
1202
 
1203
  rrweb-cssom@^0.6.0:
 
135
  integrity sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==
136
 
137
  "@observablehq/framework@1":
138
+ version "1.2.0"
139
+ resolved "https://registry.yarnpkg.com/@observablehq/framework/-/framework-1.2.0.tgz#ba2e27e0876f164379f8cee637827e88d53891f5"
140
+ integrity sha512-pW0Ls2/gQ1oRhr+M6Gi+GUvxzM0FCGrcGzR+NYYNMQyj8tnvOqh0+8ItQP1rs4NPUbNTKl5dns76yfCVRK29Xw==
141
  dependencies:
142
  "@clack/prompts" "^0.7.0"
143
  "@observablehq/inputs" "^0.10.6"
 
226
  estree-walker "^2.0.2"
227
  picomatch "^2.3.1"
228
 
229
+ "@rollup/[email protected].1":
230
+ version "4.12.1"
231
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.12.1.tgz#11aaa02a933864b87f0b31cf2b755734e1f22787"
232
+ integrity sha512-iU2Sya8hNn1LhsYyf0N+L4Gf9Qc+9eBTJJJsaOGUp+7x4n2M9dxTt8UvhJl3oeftSjblSlpCfvjA/IfP3g5VjQ==
233
+
234
+ "@rollup/[email protected].1":
235
+ version "4.12.1"
236
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.12.1.tgz#b1e606fb4b46b38dc32bf010d513449462d669e9"
237
+ integrity sha512-wlzcWiH2Ir7rdMELxFE5vuM7D6TsOcJ2Yw0c3vaBR3VOsJFVTx9xvwnAvhgU5Ii8Gd6+I11qNHwndDscIm0HXg==
238
+
239
+ "@rollup/[email protected].1":
240
+ version "4.12.1"
241
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.12.1.tgz#dc21df1be9402671a8b6b15a93dd5953c68ec114"
242
+ integrity sha512-YRXa1+aZIFN5BaImK+84B3uNK8C6+ynKLPgvn29X9s0LTVCByp54TB7tdSMHDR7GTV39bz1lOmlLDuedgTwwHg==
243
+
244
+ "@rollup/[email protected].1":
245
+ version "4.12.1"
246
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.12.1.tgz#397dcc4427d774f29b9954676893574ac563bf0b"
247
+ integrity sha512-opjWJ4MevxeA8FhlngQWPBOvVWYNPFkq6/25rGgG+KOy0r8clYwL1CFd+PGwRqqMFVQ4/Qd3sQu5t7ucP7C/Uw==
248
+
249
+ "@rollup/[email protected].1":
250
+ version "4.12.1"
251
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.12.1.tgz#d851fd49d617e7792e7cde8e5a95ca51ea520fe5"
252
+ integrity sha512-uBkwaI+gBUlIe+EfbNnY5xNyXuhZbDSx2nzzW8tRMjUmpScd6lCQYKY2V9BATHtv5Ef2OBq6SChEP8h+/cxifQ==
253
+
254
+ "@rollup/[email protected].1":
255
+ version "4.12.1"
256
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.12.1.tgz#e41a271ae51f79ffee6fb2b5597cc81b4ef66ad9"
257
+ integrity sha512-0bK9aG1kIg0Su7OcFTlexkVeNZ5IzEsnz1ept87a0TUgZ6HplSgkJAnFpEVRW7GRcikT4GlPV0pbtVedOaXHQQ==
258
+
259
+ "@rollup/[email protected].1":
260
+ version "4.12.1"
261
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.12.1.tgz#d3b4cd6ef18d0aa7103129755e0c535701624fac"
262
+ integrity sha512-qB6AFRXuP8bdkBI4D7UPUbE7OQf7u5OL+R94JE42Z2Qjmyj74FtDdLGeriRyBDhm4rQSvqAGCGC01b8Fu2LthQ==
263
+
264
+ "@rollup/[email protected].1":
265
+ version "4.12.1"
266
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.12.1.tgz#215101b2bb768cce2f2227145b8dd5c3c716c259"
267
+ integrity sha512-sHig3LaGlpNgDj5o8uPEoGs98RII8HpNIqFtAI8/pYABO8i0nb1QzT0JDoXF/pxzqO+FkxvwkHZo9k0NJYDedg==
268
+
269
+ "@rollup/[email protected].1":
270
+ version "4.12.1"
271
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.12.1.tgz#34a12fa305e167105eab70dbf577cd41e5199709"
272
+ integrity sha512-nD3YcUv6jBJbBNFvSbp0IV66+ba/1teuBcu+fBBPZ33sidxitc6ErhON3JNavaH8HlswhWMC3s5rgZpM4MtPqQ==
273
+
274
+ "@rollup/[email protected].1":
275
+ version "4.12.1"
276
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.12.1.tgz#3f000b5a92a32b844e385e1166979c87882930a3"
277
+ integrity sha512-7/XVZqgBby2qp/cO0TQ8uJK+9xnSdJ9ct6gSDdEr4MfABrjTyrW6Bau7HQ73a2a5tPB7hno49A0y1jhWGDN9OQ==
278
+
279
+ "@rollup/[email protected].1":
280
+ version "4.12.1"
281
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.12.1.tgz#27977d91f5059645ebb3b7fbf4429982de2278d3"
282
+ integrity sha512-CYc64bnICG42UPL7TrhIwsJW4QcKkIt9gGlj21gq3VV0LL6XNb1yAdHVp1pIi9gkts9gGcT3OfUYHjGP7ETAiw==
283
+
284
+ "@rollup/[email protected].1":
285
+ version "4.12.1"
286
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.12.1.tgz#0d252acd5af0274209c74374867ee8b949843d75"
287
+ integrity sha512-LN+vnlZ9g0qlHGlS920GR4zFCqAwbv2lULrR29yGaWP9u7wF5L7GqWu9Ah6/kFZPXPUkpdZwd//TNR+9XC9hvA==
288
+
289
+ "@rollup/[email protected].1":
290
+ version "4.12.1"
291
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.12.1.tgz#cd8d175e001c212d5ac71c7827ef1d5c5e14494c"
292
+ integrity sha512-n+vkrSyphvmU0qkQ6QBNXCGr2mKjhP08mPRM/Xp5Ck2FV4NrHU+y6axzDeixUrCBHVUS51TZhjqrKBBsHLKb2Q==
293
 
294
  "@types/[email protected]", "@types/estree@^1.0.0":
295
  version "1.0.5"
 
1179
  get-tsconfig "^4.7.2"
1180
 
1181
  rollup@^4.6.0:
1182
+ version "4.12.1"
1183
+ resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.12.1.tgz#0659cb02551cde4c5b210e9bd3af050b5b5b415d"
1184
+ integrity sha512-ggqQKvx/PsB0FaWXhIvVkSWh7a/PCLQAsMjBc+nA2M8Rv2/HG0X6zvixAB7KyZBRtifBUhy5k8voQX/mRnABPg==
1185
  dependencies:
1186
  "@types/estree" "1.0.5"
1187
  optionalDependencies:
1188
+ "@rollup/rollup-android-arm-eabi" "4.12.1"
1189
+ "@rollup/rollup-android-arm64" "4.12.1"
1190
+ "@rollup/rollup-darwin-arm64" "4.12.1"
1191
+ "@rollup/rollup-darwin-x64" "4.12.1"
1192
+ "@rollup/rollup-linux-arm-gnueabihf" "4.12.1"
1193
+ "@rollup/rollup-linux-arm64-gnu" "4.12.1"
1194
+ "@rollup/rollup-linux-arm64-musl" "4.12.1"
1195
+ "@rollup/rollup-linux-riscv64-gnu" "4.12.1"
1196
+ "@rollup/rollup-linux-x64-gnu" "4.12.1"
1197
+ "@rollup/rollup-linux-x64-musl" "4.12.1"
1198
+ "@rollup/rollup-win32-arm64-msvc" "4.12.1"
1199
+ "@rollup/rollup-win32-ia32-msvc" "4.12.1"
1200
+ "@rollup/rollup-win32-x64-msvc" "4.12.1"
1201
  fsevents "~2.3.2"
1202
 
1203
  rrweb-cssom@^0.6.0: