circle-flags 2.8.2 → 2.8.3

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 (207) hide show
  1. package/.pack-symlink-manifest.json +1009 -0
  2. package/flags/ac.svg +1 -0
  3. package/flags/bq.svg +1 -0
  4. package/flags/bv.svg +1 -0
  5. package/flags/by-historical.svg +1 -0
  6. package/flags/cn-hk.svg +1 -0
  7. package/flags/cp.svg +1 -0
  8. package/flags/dg.svg +1 -0
  9. package/flags/ea.svg +1 -0
  10. package/flags/es-vc.svg +1 -0
  11. package/flags/eu.svg +1 -0
  12. package/flags/fx.svg +1 -0
  13. package/flags/hm.svg +1 -0
  14. package/flags/ic.svg +1 -0
  15. package/flags/language/aa.svg +1 -0
  16. package/flags/language/ab.svg +1 -0
  17. package/flags/language/af.svg +1 -0
  18. package/flags/language/ak.svg +1 -0
  19. package/flags/language/am.svg +1 -0
  20. package/flags/language/an.svg +1 -0
  21. package/flags/language/as.svg +1 -0
  22. package/flags/language/av.svg +1 -0
  23. package/flags/language/ay.svg +1 -0
  24. package/flags/language/az.svg +1 -0
  25. package/flags/language/ba.svg +1 -0
  26. package/flags/language/be.svg +1 -0
  27. package/flags/language/bg.svg +1 -0
  28. package/flags/language/bi.svg +1 -0
  29. package/flags/language/bm.svg +1 -0
  30. package/flags/language/bn.svg +1 -0
  31. package/flags/language/bo.svg +1 -0
  32. package/flags/language/br.svg +1 -0
  33. package/flags/language/bs.svg +1 -0
  34. package/flags/language/ca.svg +1 -0
  35. package/flags/language/ce.svg +1 -0
  36. package/flags/language/ceb.svg +1 -0
  37. package/flags/language/ch.svg +1 -0
  38. package/flags/language/chm.svg +1 -0
  39. package/flags/language/ckb.svg +1 -0
  40. package/flags/language/co.svg +1 -0
  41. package/flags/language/cs.svg +1 -0
  42. package/flags/language/cv.svg +1 -0
  43. package/flags/language/cy.svg +1 -0
  44. package/flags/language/da.svg +1 -0
  45. package/flags/language/de.svg +1 -0
  46. package/flags/language/dv.svg +1 -0
  47. package/flags/language/dz.svg +1 -0
  48. package/flags/language/ee.svg +1 -0
  49. package/flags/language/el.svg +1 -0
  50. package/flags/language/en-gb.svg +1 -0
  51. package/flags/language/en.svg +1 -0
  52. package/flags/language/es-es.svg +1 -0
  53. package/flags/language/es.svg +1 -0
  54. package/flags/language/et.svg +1 -0
  55. package/flags/language/eu.svg +1 -0
  56. package/flags/language/fa.svg +1 -0
  57. package/flags/language/fi.svg +1 -0
  58. package/flags/language/fil.svg +1 -0
  59. package/flags/language/fj.svg +1 -0
  60. package/flags/language/fo.svg +1 -0
  61. package/flags/language/fr.svg +1 -0
  62. package/flags/language/fy.svg +1 -0
  63. package/flags/language/ga.svg +1 -0
  64. package/flags/language/gd.svg +1 -0
  65. package/flags/language/gl.svg +1 -0
  66. package/flags/language/gn.svg +1 -0
  67. package/flags/language/gu.svg +1 -0
  68. package/flags/language/gv.svg +1 -0
  69. package/flags/language/ha.svg +1 -0
  70. package/flags/language/haw.svg +1 -0
  71. package/flags/language/he.svg +1 -0
  72. package/flags/language/hi.svg +1 -0
  73. package/flags/language/hmn.svg +1 -0
  74. package/flags/language/ho.svg +1 -0
  75. package/flags/language/hr.svg +1 -0
  76. package/flags/language/ht.svg +1 -0
  77. package/flags/language/hu.svg +1 -0
  78. package/flags/language/hy.svg +1 -0
  79. package/flags/language/id.svg +1 -0
  80. package/flags/language/ig.svg +1 -0
  81. package/flags/language/ilo.svg +1 -0
  82. package/flags/language/is.svg +1 -0
  83. package/flags/language/it.svg +1 -0
  84. package/flags/language/ja.svg +1 -0
  85. package/flags/language/jv.svg +1 -0
  86. package/flags/language/ka.svg +1 -0
  87. package/flags/language/kg.svg +1 -0
  88. package/flags/language/ki.svg +1 -0
  89. package/flags/language/kk.svg +1 -0
  90. package/flags/language/kl.svg +1 -0
  91. package/flags/language/km.svg +1 -0
  92. package/flags/language/kn.svg +1 -0
  93. package/flags/language/ko.svg +1 -0
  94. package/flags/language/kr.svg +1 -0
  95. package/flags/language/kri.svg +1 -0
  96. package/flags/language/ks.svg +1 -0
  97. package/flags/language/ku.svg +1 -0
  98. package/flags/language/kv.svg +1 -0
  99. package/flags/language/kw.svg +1 -0
  100. package/flags/language/ky.svg +1 -0
  101. package/flags/language/lb.svg +1 -0
  102. package/flags/language/lg.svg +1 -0
  103. package/flags/language/ln.svg +1 -0
  104. package/flags/language/lo.svg +1 -0
  105. package/flags/language/lt.svg +1 -0
  106. package/flags/language/lu.svg +1 -0
  107. package/flags/language/lus.svg +1 -0
  108. package/flags/language/lv.svg +1 -0
  109. package/flags/language/mg.svg +1 -0
  110. package/flags/language/mh.svg +1 -0
  111. package/flags/language/mi.svg +1 -0
  112. package/flags/language/mk.svg +1 -0
  113. package/flags/language/ml.svg +1 -0
  114. package/flags/language/mn.svg +1 -0
  115. package/flags/language/mni.svg +1 -0
  116. package/flags/language/mrj.svg +1 -0
  117. package/flags/language/ms.svg +1 -0
  118. package/flags/language/mt.svg +1 -0
  119. package/flags/language/my.svg +1 -0
  120. package/flags/language/na.svg +1 -0
  121. package/flags/language/nb.svg +1 -0
  122. package/flags/language/nd.svg +1 -0
  123. package/flags/language/ne.svg +1 -0
  124. package/flags/language/nl.svg +1 -0
  125. package/flags/language/nn.svg +1 -0
  126. package/flags/language/no.svg +1 -0
  127. package/flags/language/nr.svg +1 -0
  128. package/flags/language/ny.svg +1 -0
  129. package/flags/language/oc.svg +1 -0
  130. package/flags/language/om.svg +1 -0
  131. package/flags/language/or.svg +1 -0
  132. package/flags/language/os.svg +1 -0
  133. package/flags/language/oto.svg +1 -0
  134. package/flags/language/pa.svg +1 -0
  135. package/flags/language/pap.svg +1 -0
  136. package/flags/language/pl.svg +1 -0
  137. package/flags/language/pms.svg +1 -0
  138. package/flags/language/ps.svg +1 -0
  139. package/flags/language/pt-pt.svg +1 -0
  140. package/flags/language/pt.svg +1 -0
  141. package/flags/language/qu.svg +1 -0
  142. package/flags/language/rm.svg +1 -0
  143. package/flags/language/rn.svg +1 -0
  144. package/flags/language/ro.svg +1 -0
  145. package/flags/language/ru.svg +1 -0
  146. package/flags/language/rw.svg +1 -0
  147. package/flags/language/sc.svg +1 -0
  148. package/flags/language/sd.svg +1 -0
  149. package/flags/language/se.svg +1 -0
  150. package/flags/language/sg.svg +1 -0
  151. package/flags/language/si.svg +1 -0
  152. package/flags/language/sk.svg +1 -0
  153. package/flags/language/sl.svg +1 -0
  154. package/flags/language/sm.svg +1 -0
  155. package/flags/language/sn.svg +1 -0
  156. package/flags/language/so.svg +1 -0
  157. package/flags/language/sq.svg +1 -0
  158. package/flags/language/sr.svg +1 -0
  159. package/flags/language/ss.svg +1 -0
  160. package/flags/language/st.svg +1 -0
  161. package/flags/language/su.svg +1 -0
  162. package/flags/language/sv.svg +1 -0
  163. package/flags/language/sw.svg +1 -0
  164. package/flags/language/ta.svg +1 -0
  165. package/flags/language/te.svg +1 -0
  166. package/flags/language/tg.svg +1 -0
  167. package/flags/language/th.svg +1 -0
  168. package/flags/language/ti.svg +1 -0
  169. package/flags/language/tk.svg +1 -0
  170. package/flags/language/tl.svg +1 -0
  171. package/flags/language/tn.svg +1 -0
  172. package/flags/language/to.svg +1 -0
  173. package/flags/language/tr.svg +1 -0
  174. package/flags/language/translingual.svg +1 -0
  175. package/flags/language/tt.svg +1 -0
  176. package/flags/language/ty.svg +1 -0
  177. package/flags/language/udm.svg +1 -0
  178. package/flags/language/ug.svg +1 -0
  179. package/flags/language/uk.svg +1 -0
  180. package/flags/language/ur.svg +1 -0
  181. package/flags/language/uz.svg +1 -0
  182. package/flags/language/vi.svg +1 -0
  183. package/flags/language/xh.svg +1 -0
  184. package/flags/language/xx.svg +1 -0
  185. package/flags/language/yo.svg +1 -0
  186. package/flags/language/yua.svg +1 -0
  187. package/flags/language/zh.svg +1 -0
  188. package/flags/language/zu.svg +1 -0
  189. package/flags/other/chequered.svg +1 -0
  190. package/flags/other/jolly_roger.svg +1 -0
  191. package/flags/other/un.svg +1 -0
  192. package/flags/sh.svg +1 -0
  193. package/flags/sj.svg +1 -0
  194. package/flags/su.svg +1 -0
  195. package/flags/ta.svg +1 -0
  196. package/flags/uk.svg +1 -0
  197. package/flags/um.svg +1 -0
  198. package/flags/un.svg +1 -0
  199. package/flags/us-as.svg +1 -0
  200. package/flags/us-gu.svg +1 -0
  201. package/flags/us-mp.svg +1 -0
  202. package/flags/us-pr.svg +1 -0
  203. package/flags/us-um.svg +1 -0
  204. package/flags/us-vi.svg +1 -0
  205. package/gallery.md +2 -0
  206. package/package.json +6 -1
  207. package/scripts/package-symlinks.cjs +98 -0
@@ -0,0 +1,98 @@
1
+ #!/usr/bin/env node
2
+
3
+ const fs = require("fs");
4
+ const path = require("path");
5
+
6
+ const ROOT = process.cwd();
7
+ const FLAGS_DIR = path.join(ROOT, "flags");
8
+ const MANIFEST_PATH = path.join(ROOT, ".pack-symlink-manifest.json");
9
+
10
+ function walk(dir, onEntry) {
11
+ const entries = fs.readdirSync(dir, { withFileTypes: true });
12
+
13
+ for (const entry of entries) {
14
+ const fullPath = path.join(dir, entry.name);
15
+
16
+ if (entry.isDirectory()) {
17
+ walk(fullPath, onEntry);
18
+ continue;
19
+ }
20
+
21
+ onEntry(fullPath, entry);
22
+ }
23
+ }
24
+
25
+ function materialize() {
26
+ if (!fs.existsSync(FLAGS_DIR)) {
27
+ process.exit(0);
28
+ }
29
+
30
+ const symlinks = [];
31
+
32
+ walk(FLAGS_DIR, (fullPath) => {
33
+ const stat = fs.lstatSync(fullPath);
34
+
35
+ if (!stat.isSymbolicLink()) {
36
+ return;
37
+ }
38
+
39
+ const target = fs.readlinkSync(fullPath);
40
+ const targetPath = path.resolve(path.dirname(fullPath), target);
41
+
42
+ if (!fs.existsSync(targetPath)) {
43
+ throw new Error(`Symlink target does not exist: ${fullPath} -> ${target}`);
44
+ }
45
+
46
+ const data = fs.readFileSync(targetPath);
47
+
48
+ fs.unlinkSync(fullPath);
49
+ fs.writeFileSync(fullPath, data);
50
+
51
+ symlinks.push({
52
+ path: path.relative(ROOT, fullPath),
53
+ target,
54
+ mode: stat.mode
55
+ });
56
+ });
57
+
58
+ fs.writeFileSync(MANIFEST_PATH, JSON.stringify({ symlinks }, null, 2) + "\n");
59
+
60
+ if (symlinks.length > 0) {
61
+ console.log(`Materialized ${symlinks.length} symlink(s) for npm packaging.`);
62
+ }
63
+ }
64
+
65
+ function restore() {
66
+ if (!fs.existsSync(MANIFEST_PATH)) {
67
+ process.exit(0);
68
+ }
69
+
70
+ const { symlinks } = JSON.parse(fs.readFileSync(MANIFEST_PATH, "utf8"));
71
+
72
+ for (const item of symlinks) {
73
+ const fullPath = path.join(ROOT, item.path);
74
+
75
+ if (fs.existsSync(fullPath)) {
76
+ fs.unlinkSync(fullPath);
77
+ }
78
+
79
+ fs.symlinkSync(item.target, fullPath);
80
+ }
81
+
82
+ fs.unlinkSync(MANIFEST_PATH);
83
+
84
+ if (symlinks.length > 0) {
85
+ console.log(`Restored ${symlinks.length} symlink(s) after npm packaging.`);
86
+ }
87
+ }
88
+
89
+ const action = process.argv[2];
90
+
91
+ if (action === "materialize") {
92
+ materialize();
93
+ } else if (action === "restore") {
94
+ restore();
95
+ } else {
96
+ console.error("Usage: node scripts/package-symlinks.cjs <materialize|restore>");
97
+ process.exit(1);
98
+ }