@cieloazul310/jclub-financial-statistics 0.0.1-alpha.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.
Files changed (66) hide show
  1. package/dist/dataset/2005-J1.json +728 -0
  2. package/dist/dataset/2005-J2.json +548 -0
  3. package/dist/dataset/2006-J1.json +780 -0
  4. package/dist/dataset/2006-J2.json +600 -0
  5. package/dist/dataset/2007-J1.json +780 -0
  6. package/dist/dataset/2007-J2.json +600 -0
  7. package/dist/dataset/2008-J1.json +780 -0
  8. package/dist/dataset/2008-J2.json +672 -0
  9. package/dist/dataset/2009-J1.json +780 -0
  10. package/dist/dataset/2009-J2.json +780 -0
  11. package/dist/dataset/2010-J1.json +780 -0
  12. package/dist/dataset/2010-J2.json +816 -0
  13. package/dist/dataset/2011-J1.json +780 -0
  14. package/dist/dataset/2011-J2.json +852 -0
  15. package/dist/dataset/2012-J1.json +780 -0
  16. package/dist/dataset/2012-J2.json +924 -0
  17. package/dist/dataset/2013-J1.json +780 -0
  18. package/dist/dataset/2013-J2.json +924 -0
  19. package/dist/dataset/2014-J1.json +780 -0
  20. package/dist/dataset/2014-J2.json +924 -0
  21. package/dist/dataset/2014-J3.json +528 -0
  22. package/dist/dataset/2015-J1.json +780 -0
  23. package/dist/dataset/2015-J2.json +924 -0
  24. package/dist/dataset/2015-J3.json +564 -0
  25. package/dist/dataset/2016-J1.json +780 -0
  26. package/dist/dataset/2016-J2.json +924 -0
  27. package/dist/dataset/2016-J3.json +600 -0
  28. package/dist/dataset/2017-J1.json +780 -0
  29. package/dist/dataset/2017-J2.json +924 -0
  30. package/dist/dataset/2017-J3.json +636 -0
  31. package/dist/dataset/2018-J1.json +780 -0
  32. package/dist/dataset/2018-J2.json +924 -0
  33. package/dist/dataset/2018-J3.json +636 -0
  34. package/dist/dataset/2019-J1.json +780 -0
  35. package/dist/dataset/2019-J2.json +924 -0
  36. package/dist/dataset/2019-J3.json +672 -0
  37. package/dist/dataset/2020-J1.json +780 -0
  38. package/dist/dataset/2020-J2.json +924 -0
  39. package/dist/dataset/2020-J3.json +708 -0
  40. package/dist/dataset/2021-J1.json +852 -0
  41. package/dist/dataset/2021-J2.json +924 -0
  42. package/dist/dataset/2021-J3.json +672 -0
  43. package/dist/dataset/2022-J1.json +780 -0
  44. package/dist/dataset/2022-J2.json +924 -0
  45. package/dist/dataset/2022-J3.json +780 -0
  46. package/dist/dataset/2023-J1.json +780 -0
  47. package/dist/dataset/2023-J2.json +924 -0
  48. package/dist/dataset/2023-J3.json +852 -0
  49. package/dist/dataset/2024-J1.json +852 -0
  50. package/dist/dataset/2024-J2.json +852 -0
  51. package/dist/dataset/2024-J3.json +852 -0
  52. package/dist/index.cjs +104 -0
  53. package/dist/index.d.cts +31 -0
  54. package/dist/index.d.cts.map +1 -0
  55. package/dist/index.d.mts +31 -0
  56. package/dist/index.d.mts.map +1 -0
  57. package/dist/index.mjs +111 -0
  58. package/dist/index.mjs.map +1 -0
  59. package/dist/type.cjs +22 -0
  60. package/dist/type.d.cts +31 -0
  61. package/dist/type.d.cts.map +1 -0
  62. package/dist/type.d.mts +31 -0
  63. package/dist/type.d.mts.map +1 -0
  64. package/dist/type.mjs +21 -0
  65. package/dist/type.mjs.map +1 -0
  66. package/package.json +63 -0
package/dist/index.cjs ADDED
@@ -0,0 +1,104 @@
1
+ const require_type = require('./type.cjs');
2
+ let fs_promises = require("fs/promises");
3
+ let path = require("path");
4
+
5
+ //#region src/index.ts
6
+ async function findDatasetDir() {
7
+ const candidates = [
8
+ (0, path.resolve)(__dirname, "dataset"),
9
+ (0, path.resolve)(__dirname, "../dist/dataset"),
10
+ (0, path.resolve)(process.cwd(), "packages/statistics/dist/dataset"),
11
+ (0, path.resolve)(process.cwd(), "dist/dataset")
12
+ ];
13
+ for (const c of candidates) try {
14
+ if ((await (0, fs_promises.stat)(c)).isDirectory()) return c;
15
+ } catch (err) {}
16
+ throw new Error("dataset directory not found (looked in candidates)");
17
+ }
18
+ async function loadStatsFile(year, category) {
19
+ const filename = (0, path.join)(await findDatasetDir(), `${year}-${category}.json`);
20
+ try {
21
+ const raw = await (0, fs_promises.readFile)(filename, "utf8");
22
+ return JSON.parse(raw);
23
+ } catch (err) {
24
+ return null;
25
+ }
26
+ }
27
+ async function getStatistics(year, category, key) {
28
+ const file = await loadStatsFile(year, category);
29
+ if (!file) return {
30
+ year,
31
+ category,
32
+ key,
33
+ totalCount: 0,
34
+ values: [],
35
+ sum: 0,
36
+ average: null,
37
+ min: null,
38
+ max: null,
39
+ variance: null,
40
+ stddev: null
41
+ };
42
+ const entry = file.stats?.[key];
43
+ if (!entry) return {
44
+ year,
45
+ category,
46
+ key,
47
+ totalCount: 0,
48
+ values: [],
49
+ sum: 0,
50
+ average: null,
51
+ min: null,
52
+ max: null,
53
+ variance: null,
54
+ stddev: null
55
+ };
56
+ const values = entry.values ?? [];
57
+ return {
58
+ year,
59
+ category,
60
+ key,
61
+ totalCount: entry.totalCount ?? values.length,
62
+ values,
63
+ sum: entry.stats?.sum ?? 0,
64
+ average: entry.stats?.average ?? null,
65
+ min: entry.stats?.min ?? null,
66
+ max: entry.stats?.max ?? null,
67
+ variance: entry.stats?.variance ?? null,
68
+ stddev: entry.stats?.deviation ?? null
69
+ };
70
+ }
71
+ const DEFAULT_YEARS = Array.from({ length: 20 }, (_, i) => 2005 + i);
72
+ /**
73
+ * Returns an array of statistics for a single category across multiple years.
74
+ * Example: getCategoryYearSeries("J2", key) -> [Stats|null for 2005, 2006, ...]
75
+ */
76
+ async function getCategoryYearSeries(category, key) {
77
+ const result = [];
78
+ for (const year of DEFAULT_YEARS) {
79
+ const stats = await getStatistics(year, category, key);
80
+ result.push(stats.totalCount === 0 ? null : stats);
81
+ }
82
+ return result;
83
+ }
84
+ /**
85
+ * Returns statistics for a single year as an object keyed by category.
86
+ * If a category has no data, its value will be null.
87
+ */
88
+ async function getStatsByYear(year, key) {
89
+ const out = {
90
+ J1: null,
91
+ J2: null,
92
+ J3: null
93
+ };
94
+ for (const cat of require_type.CATEGORIES) {
95
+ const stats = await getStatistics(year, cat, key);
96
+ out[cat] = stats.totalCount === 0 ? null : stats;
97
+ }
98
+ return out;
99
+ }
100
+
101
+ //#endregion
102
+ exports.getCategoryYearSeries = getCategoryYearSeries;
103
+ exports.getStatistics = getStatistics;
104
+ exports.getStatsByYear = getStatsByYear;
@@ -0,0 +1,31 @@
1
+ import { Category, Fields, ValueItem } from "./type.cjs";
2
+
3
+ //#region src/index.d.ts
4
+ type StatsResult = {
5
+ year: number;
6
+ category: Category;
7
+ key: Fields;
8
+ totalCount: number;
9
+ values: ValueItem[];
10
+ sum: number;
11
+ average: number | null;
12
+ min: number | null;
13
+ max: number | null;
14
+ variance: number | null;
15
+ stddev: number | null;
16
+ };
17
+ declare function getStatistics(year: number, category: Category, key: Fields): Promise<StatsResult>;
18
+ type Year = number;
19
+ /**
20
+ * Returns an array of statistics for a single category across multiple years.
21
+ * Example: getCategoryYearSeries("J2", key) -> [Stats|null for 2005, 2006, ...]
22
+ */
23
+ declare function getCategoryYearSeries(category: Category, key: Fields): Promise<(StatsResult | null)[]>;
24
+ /**
25
+ * Returns statistics for a single year as an object keyed by category.
26
+ * If a category has no data, its value will be null.
27
+ */
28
+ declare function getStatsByYear(year: Year, key: Fields): Promise<Record<Category, StatsResult | null>>;
29
+ //#endregion
30
+ export { StatsResult, Year, getCategoryYearSeries, getStatistics, getStatsByYear };
31
+ //# sourceMappingURL=index.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.cts","names":[],"sources":["../src/index.ts"],"sourcesContent":[],"mappings":";;;KAIY,WAAA;;EAAA,QAAA,EAEA,QAFW;EAEX,GAAA,EACL,MADK;EACL,UAAA,EAAA,MAAA;EAEG,MAAA,EAAA,SAAA,EAAA;EAAS,GAAA,EAAA,MAAA;EAsCG,OAAA,EAAA,MAAA,GAAa,IAAA;EAEvB,GAAA,EAAA,MAAA,GAAA,IAAA;EACL,GAAA,EAAA,MAAA,GAAA,IAAA;EACI,QAAA,EAAA,MAAA,GAAA,IAAA;EAAR,MAAA,EAAA,MAAA,GAAA,IAAA;CAAO;AA2DE,iBA/DU,aAAA,CA+DN,IAAA,EAAA,MAAA,EAAA,QAAA,EA7DJ,QA6DI,EAAA,GAAA,EA5DT,MA4DS,CAAA,EA3Db,OA2Da,CA3DL,WA2DK,CAAA;AAQM,KARV,IAAA,GAQU,MAAA;;;;;AAGZ,iBAHY,qBAAA,CAGZ,QAAA,EAFE,QAEF,EAAA,GAAA,EADH,MACG,CAAA,EAAP,OAAO,CAAA,CAAE,WAAF,GAAA,IAAA,CAAA,EAAA,CAAA;AAaV;;;;AAG4B,iBAHN,cAAA,CAGM,IAAA,EAFpB,IAEoB,EAAA,GAAA,EADrB,MACqB,CAAA,EAAzB,OAAyB,CAAjB,MAAiB,CAAV,QAAU,EAAA,WAAA,GAAA,IAAA,CAAA,CAAA"}
@@ -0,0 +1,31 @@
1
+ import { Category, Fields, ValueItem } from "./type.mjs";
2
+
3
+ //#region src/index.d.ts
4
+ type StatsResult = {
5
+ year: number;
6
+ category: Category;
7
+ key: Fields;
8
+ totalCount: number;
9
+ values: ValueItem[];
10
+ sum: number;
11
+ average: number | null;
12
+ min: number | null;
13
+ max: number | null;
14
+ variance: number | null;
15
+ stddev: number | null;
16
+ };
17
+ declare function getStatistics(year: number, category: Category, key: Fields): Promise<StatsResult>;
18
+ type Year = number;
19
+ /**
20
+ * Returns an array of statistics for a single category across multiple years.
21
+ * Example: getCategoryYearSeries("J2", key) -> [Stats|null for 2005, 2006, ...]
22
+ */
23
+ declare function getCategoryYearSeries(category: Category, key: Fields): Promise<(StatsResult | null)[]>;
24
+ /**
25
+ * Returns statistics for a single year as an object keyed by category.
26
+ * If a category has no data, its value will be null.
27
+ */
28
+ declare function getStatsByYear(year: Year, key: Fields): Promise<Record<Category, StatsResult | null>>;
29
+ //#endregion
30
+ export { StatsResult, Year, getCategoryYearSeries, getStatistics, getStatsByYear };
31
+ //# sourceMappingURL=index.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../src/index.ts"],"sourcesContent":[],"mappings":";;;KAIY,WAAA;;EAAA,QAAA,EAEA,QAFW;EAEX,GAAA,EACL,MADK;EACL,UAAA,EAAA,MAAA;EAEG,MAAA,EAAA,SAAA,EAAA;EAAS,GAAA,EAAA,MAAA;EAsCG,OAAA,EAAA,MAAA,GAAa,IAAA;EAEvB,GAAA,EAAA,MAAA,GAAA,IAAA;EACL,GAAA,EAAA,MAAA,GAAA,IAAA;EACI,QAAA,EAAA,MAAA,GAAA,IAAA;EAAR,MAAA,EAAA,MAAA,GAAA,IAAA;CAAO;AA2DE,iBA/DU,aAAA,CA+DN,IAAA,EAAA,MAAA,EAAA,QAAA,EA7DJ,QA6DI,EAAA,GAAA,EA5DT,MA4DS,CAAA,EA3Db,OA2Da,CA3DL,WA2DK,CAAA;AAQM,KARV,IAAA,GAQU,MAAA;;;;;AAGZ,iBAHY,qBAAA,CAGZ,QAAA,EAFE,QAEF,EAAA,GAAA,EADH,MACG,CAAA,EAAP,OAAO,CAAA,CAAE,WAAF,GAAA,IAAA,CAAA,EAAA,CAAA;AAaV;;;;AAG4B,iBAHN,cAAA,CAGM,IAAA,EAFpB,IAEoB,EAAA,GAAA,EADrB,MACqB,CAAA,EAAzB,OAAyB,CAAjB,MAAiB,CAAV,QAAU,EAAA,WAAA,GAAA,IAAA,CAAA,CAAA"}
package/dist/index.mjs ADDED
@@ -0,0 +1,111 @@
1
+ import { CATEGORIES } from "./type.mjs";
2
+ import path from "node:path";
3
+ import { fileURLToPath } from "node:url";
4
+ import { readFile, stat } from "fs/promises";
5
+ import { join, resolve } from "path";
6
+
7
+ //#region ../../node_modules/tsdown/esm-shims.js
8
+ const getFilename = () => fileURLToPath(import.meta.url);
9
+ const getDirname = () => path.dirname(getFilename());
10
+ const __dirname = /* @__PURE__ */ getDirname();
11
+
12
+ //#endregion
13
+ //#region src/index.ts
14
+ async function findDatasetDir() {
15
+ const candidates = [
16
+ resolve(__dirname, "dataset"),
17
+ resolve(__dirname, "../dist/dataset"),
18
+ resolve(process.cwd(), "packages/statistics/dist/dataset"),
19
+ resolve(process.cwd(), "dist/dataset")
20
+ ];
21
+ for (const c of candidates) try {
22
+ if ((await stat(c)).isDirectory()) return c;
23
+ } catch (err) {}
24
+ throw new Error("dataset directory not found (looked in candidates)");
25
+ }
26
+ async function loadStatsFile(year, category) {
27
+ const filename = join(await findDatasetDir(), `${year}-${category}.json`);
28
+ try {
29
+ const raw = await readFile(filename, "utf8");
30
+ return JSON.parse(raw);
31
+ } catch (err) {
32
+ return null;
33
+ }
34
+ }
35
+ async function getStatistics(year, category, key) {
36
+ const file = await loadStatsFile(year, category);
37
+ if (!file) return {
38
+ year,
39
+ category,
40
+ key,
41
+ totalCount: 0,
42
+ values: [],
43
+ sum: 0,
44
+ average: null,
45
+ min: null,
46
+ max: null,
47
+ variance: null,
48
+ stddev: null
49
+ };
50
+ const entry = file.stats?.[key];
51
+ if (!entry) return {
52
+ year,
53
+ category,
54
+ key,
55
+ totalCount: 0,
56
+ values: [],
57
+ sum: 0,
58
+ average: null,
59
+ min: null,
60
+ max: null,
61
+ variance: null,
62
+ stddev: null
63
+ };
64
+ const values = entry.values ?? [];
65
+ return {
66
+ year,
67
+ category,
68
+ key,
69
+ totalCount: entry.totalCount ?? values.length,
70
+ values,
71
+ sum: entry.stats?.sum ?? 0,
72
+ average: entry.stats?.average ?? null,
73
+ min: entry.stats?.min ?? null,
74
+ max: entry.stats?.max ?? null,
75
+ variance: entry.stats?.variance ?? null,
76
+ stddev: entry.stats?.deviation ?? null
77
+ };
78
+ }
79
+ const DEFAULT_YEARS = Array.from({ length: 20 }, (_, i) => 2005 + i);
80
+ /**
81
+ * Returns an array of statistics for a single category across multiple years.
82
+ * Example: getCategoryYearSeries("J2", key) -> [Stats|null for 2005, 2006, ...]
83
+ */
84
+ async function getCategoryYearSeries(category, key) {
85
+ const result = [];
86
+ for (const year of DEFAULT_YEARS) {
87
+ const stats = await getStatistics(year, category, key);
88
+ result.push(stats.totalCount === 0 ? null : stats);
89
+ }
90
+ return result;
91
+ }
92
+ /**
93
+ * Returns statistics for a single year as an object keyed by category.
94
+ * If a category has no data, its value will be null.
95
+ */
96
+ async function getStatsByYear(year, key) {
97
+ const out = {
98
+ J1: null,
99
+ J2: null,
100
+ J3: null
101
+ };
102
+ for (const cat of CATEGORIES) {
103
+ const stats = await getStatistics(year, cat, key);
104
+ out[cat] = stats.totalCount === 0 ? null : stats;
105
+ }
106
+ return out;
107
+ }
108
+
109
+ //#endregion
110
+ export { getCategoryYearSeries, getStatistics, getStatsByYear };
111
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","names":["values: ValueItem[]","DEFAULT_YEARS: Year[]","result: (StatsResult | null)[]","out: Record<Category, StatsResult | null>"],"sources":["../../../node_modules/tsdown/esm-shims.js","../src/index.ts"],"sourcesContent":["// Shim globals in esm bundle\nimport path from 'node:path'\nimport { fileURLToPath } from 'node:url'\n\nconst getFilename = () => fileURLToPath(import.meta.url)\nconst getDirname = () => path.dirname(getFilename())\n\nexport const __dirname = /* @__PURE__ */ getDirname()\nexport const __filename = /* @__PURE__ */ getFilename()\n","import { stat, readFile } from \"fs/promises\";\nimport { resolve, join } from \"path\";\nimport { CATEGORIES, type Category, type Fields, type ValueItem } from \"./type\";\n\nexport type StatsResult = {\n year: number;\n category: Category;\n key: Fields;\n totalCount: number;\n values: ValueItem[];\n sum: number;\n average: number | null;\n min: number | null;\n max: number | null;\n variance: number | null;\n stddev: number | null;\n};\n\nasync function findDatasetDir(): Promise<string> {\n const candidates = [\n resolve(__dirname, \"dataset\"), // when running from dist\n resolve(__dirname, \"../dist/dataset\"), // when running from src\n resolve(process.cwd(), \"packages/statistics/dist/dataset\"),\n resolve(process.cwd(), \"dist/dataset\"),\n ];\n for (const c of candidates) {\n try {\n const s = await stat(c);\n if (s.isDirectory()) return c;\n } catch (err) {\n // ignore\n }\n }\n throw new Error(\"dataset directory not found (looked in candidates)\");\n}\n\nasync function loadStatsFile(year: number, category: string) {\n const dir = await findDatasetDir();\n const filename = join(dir, `${year}-${category}.json`);\n try {\n const raw = await readFile(filename, \"utf8\");\n return JSON.parse(raw) as any;\n } catch (err) {\n return null;\n }\n}\n\nexport async function getStatistics(\n year: number,\n category: Category,\n key: Fields,\n): Promise<StatsResult> {\n const file = await loadStatsFile(year, category);\n if (!file) {\n return {\n year,\n category,\n key,\n totalCount: 0,\n values: [],\n sum: 0,\n average: null,\n min: null,\n max: null,\n variance: null,\n stddev: null,\n };\n }\n\n const entry = file.stats?.[key as string];\n if (!entry) {\n return {\n year,\n category,\n key,\n totalCount: 0,\n values: [],\n sum: 0,\n average: null,\n min: null,\n max: null,\n variance: null,\n stddev: null,\n };\n }\n\n const values: ValueItem[] = entry.values ?? [];\n const totalCount: number = entry.totalCount ?? values.length;\n const sum: number = entry.stats?.sum ?? 0;\n const average: number | null = entry.stats?.average ?? null;\n const min: number | null = entry.stats?.min ?? null;\n const max: number | null = entry.stats?.max ?? null;\n const variance: number | null = entry.stats?.variance ?? null;\n const stddev: number | null = entry.stats?.deviation ?? null;\n\n return {\n year,\n category,\n key,\n totalCount,\n values,\n sum,\n average,\n min,\n max,\n variance,\n stddev,\n };\n}\n\nexport type Year = number;\n\nconst DEFAULT_YEARS: Year[] = Array.from({ length: 20 }, (_, i) => 2005 + i);\n\n/**\n * Returns an array of statistics for a single category across multiple years.\n * Example: getCategoryYearSeries(\"J2\", key) -> [Stats|null for 2005, 2006, ...]\n */\nexport async function getCategoryYearSeries(\n category: Category,\n key: Fields,\n): Promise<(StatsResult | null)[]> {\n const result: (StatsResult | null)[] = [];\n for (const year of DEFAULT_YEARS) {\n const stats = await getStatistics(year, category, key);\n result.push(stats.totalCount === 0 ? null : stats);\n }\n return result;\n}\n\n/**\n * Returns statistics for a single year as an object keyed by category.\n * If a category has no data, its value will be null.\n */\nexport async function getStatsByYear(\n year: Year,\n key: Fields,\n): Promise<Record<Category, StatsResult | null>> {\n const out: Record<Category, StatsResult | null> = {\n J1: null,\n J2: null,\n J3: null,\n } as any;\n for (const cat of CATEGORIES) {\n const stats = await getStatistics(year, cat as Category, key);\n out[cat] = stats.totalCount === 0 ? null : stats;\n }\n return out;\n}\n"],"x_google_ignoreList":[0],"mappings":";;;;;;;AAIA,MAAM,oBAAoB,cAAc,OAAO,KAAK,IAAI;AACxD,MAAM,mBAAmB,KAAK,QAAQ,aAAa,CAAC;AAEpD,MAAa,YAA4B,4BAAY;;;;ACWrD,eAAe,iBAAkC;CAC/C,MAAM,aAAa;EACjB,QAAQ,WAAW,UAAU;EAC7B,QAAQ,WAAW,kBAAkB;EACrC,QAAQ,QAAQ,KAAK,EAAE,mCAAmC;EAC1D,QAAQ,QAAQ,KAAK,EAAE,eAAe;EACvC;AACD,MAAK,MAAM,KAAK,WACd,KAAI;AAEF,OADU,MAAM,KAAK,EAAE,EACjB,aAAa,CAAE,QAAO;UACrB,KAAK;AAIhB,OAAM,IAAI,MAAM,qDAAqD;;AAGvE,eAAe,cAAc,MAAc,UAAkB;CAE3D,MAAM,WAAW,KADL,MAAM,gBAAgB,EACP,GAAG,KAAK,GAAG,SAAS,OAAO;AACtD,KAAI;EACF,MAAM,MAAM,MAAM,SAAS,UAAU,OAAO;AAC5C,SAAO,KAAK,MAAM,IAAI;UACf,KAAK;AACZ,SAAO;;;AAIX,eAAsB,cACpB,MACA,UACA,KACsB;CACtB,MAAM,OAAO,MAAM,cAAc,MAAM,SAAS;AAChD,KAAI,CAAC,KACH,QAAO;EACL;EACA;EACA;EACA,YAAY;EACZ,QAAQ,EAAE;EACV,KAAK;EACL,SAAS;EACT,KAAK;EACL,KAAK;EACL,UAAU;EACV,QAAQ;EACT;CAGH,MAAM,QAAQ,KAAK,QAAQ;AAC3B,KAAI,CAAC,MACH,QAAO;EACL;EACA;EACA;EACA,YAAY;EACZ,QAAQ,EAAE;EACV,KAAK;EACL,SAAS;EACT,KAAK;EACL,KAAK;EACL,UAAU;EACV,QAAQ;EACT;CAGH,MAAMA,SAAsB,MAAM,UAAU,EAAE;AAS9C,QAAO;EACL;EACA;EACA;EACA,YAZyB,MAAM,cAAc,OAAO;EAapD;EACA,KAbkB,MAAM,OAAO,OAAO;EActC,SAb6B,MAAM,OAAO,WAAW;EAcrD,KAbyB,MAAM,OAAO,OAAO;EAc7C,KAbyB,MAAM,OAAO,OAAO;EAc7C,UAb8B,MAAM,OAAO,YAAY;EAcvD,QAb4B,MAAM,OAAO,aAAa;EAcvD;;AAKH,MAAMC,gBAAwB,MAAM,KAAK,EAAE,QAAQ,IAAI,GAAG,GAAG,MAAM,OAAO,EAAE;;;;;AAM5E,eAAsB,sBACpB,UACA,KACiC;CACjC,MAAMC,SAAiC,EAAE;AACzC,MAAK,MAAM,QAAQ,eAAe;EAChC,MAAM,QAAQ,MAAM,cAAc,MAAM,UAAU,IAAI;AACtD,SAAO,KAAK,MAAM,eAAe,IAAI,OAAO,MAAM;;AAEpD,QAAO;;;;;;AAOT,eAAsB,eACpB,MACA,KAC+C;CAC/C,MAAMC,MAA4C;EAChD,IAAI;EACJ,IAAI;EACJ,IAAI;EACL;AACD,MAAK,MAAM,OAAO,YAAY;EAC5B,MAAM,QAAQ,MAAM,cAAc,MAAM,KAAiB,IAAI;AAC7D,MAAI,OAAO,MAAM,eAAe,IAAI,OAAO;;AAE7C,QAAO"}
package/dist/type.cjs ADDED
@@ -0,0 +1,22 @@
1
+
2
+ //#region src/type.ts
3
+ const CATEGORIES = [
4
+ "J1",
5
+ "J2",
6
+ "J3"
7
+ ];
8
+ const Fields = [
9
+ "revenue",
10
+ "expense",
11
+ "net_worth",
12
+ "sponsor",
13
+ "ticket",
14
+ "broadcast",
15
+ "salary",
16
+ "average_attd",
17
+ "unit_price"
18
+ ];
19
+
20
+ //#endregion
21
+ exports.CATEGORIES = CATEGORIES;
22
+ exports.Fields = Fields;
@@ -0,0 +1,31 @@
1
+ //#region src/type.d.ts
2
+ declare const CATEGORIES: readonly ["J1", "J2", "J3"];
3
+ type Category = (typeof CATEGORIES)[number];
4
+ declare const Fields: readonly ["revenue", "expense", "net_worth", "sponsor", "ticket", "broadcast", "salary", "average_attd", "unit_price"];
5
+ type Fields = (typeof Fields)[number];
6
+ type ValueItem = {
7
+ name: string;
8
+ value: number;
9
+ };
10
+ type StatsSummary = {
11
+ sum: number;
12
+ average: number | null;
13
+ min: number | null;
14
+ max: number | null;
15
+ median?: number | null;
16
+ deviation?: number | null;
17
+ variance?: number | null;
18
+ };
19
+ type CreateStatsResult = {
20
+ values: ValueItem[];
21
+ totalCount: number;
22
+ stats: StatsSummary;
23
+ };
24
+ type DatasetFile = {
25
+ year: number;
26
+ category: Category;
27
+ stats: Record<string, CreateStatsResult>;
28
+ };
29
+ //#endregion
30
+ export { CATEGORIES, Category, CreateStatsResult, DatasetFile, Fields, StatsSummary, ValueItem };
31
+ //# sourceMappingURL=type.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"type.d.cts","names":[],"sources":["../src/type.ts"],"sourcesContent":[],"mappings":";cAAa;AAAA,KACD,QAAA,GADyC,CAAA,OACtB,UADsB,CAAA,CAAA,MAAA,CAAA;AACzC,cAEC,MAFkB,EAAA,SAAU,CAAA,SAAA,EAAA,SAAA,EAAA,WAAA,EAAA,SAAA,EAAA,QAAA,EAAA,WAAA,EAAA,QAAA,EAAA,cAAA,EAAA,YAAA,CAAA;AAE5B,KAWD,MAAA,GADF,CAAA,OACmB,MADnB,CAAA,CAAA,MAAA,CAAA;AACE,KAEA,SAAA,GAFiB;EAEjB,IAAA,EAAA,MAAS;EAET,KAAA,EAAA,MAAA;AAUZ,CAAA;AAMY,KAhBA,YAAA,GAgBW;EAEX,GAAA,EAAA,MAAA;EACY,OAAA,EAAA,MAAA,GAAA,IAAA;EAAf,GAAA,EAAA,MAAA,GAAA,IAAA;EAAM,GAAA,EAAA,MAAA,GAAA,IAAA;;;;;KATH,iBAAA;UACF;;SAED;;KAGG,WAAA;;YAEA;SACH,eAAe"}
@@ -0,0 +1,31 @@
1
+ //#region src/type.d.ts
2
+ declare const CATEGORIES: readonly ["J1", "J2", "J3"];
3
+ type Category = (typeof CATEGORIES)[number];
4
+ declare const Fields: readonly ["revenue", "expense", "net_worth", "sponsor", "ticket", "broadcast", "salary", "average_attd", "unit_price"];
5
+ type Fields = (typeof Fields)[number];
6
+ type ValueItem = {
7
+ name: string;
8
+ value: number;
9
+ };
10
+ type StatsSummary = {
11
+ sum: number;
12
+ average: number | null;
13
+ min: number | null;
14
+ max: number | null;
15
+ median?: number | null;
16
+ deviation?: number | null;
17
+ variance?: number | null;
18
+ };
19
+ type CreateStatsResult = {
20
+ values: ValueItem[];
21
+ totalCount: number;
22
+ stats: StatsSummary;
23
+ };
24
+ type DatasetFile = {
25
+ year: number;
26
+ category: Category;
27
+ stats: Record<string, CreateStatsResult>;
28
+ };
29
+ //#endregion
30
+ export { CATEGORIES, Category, CreateStatsResult, DatasetFile, Fields, StatsSummary, ValueItem };
31
+ //# sourceMappingURL=type.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"type.d.mts","names":[],"sources":["../src/type.ts"],"sourcesContent":[],"mappings":";cAAa;AAAA,KACD,QAAA,GADyC,CAAA,OACtB,UADsB,CAAA,CAAA,MAAA,CAAA;AACzC,cAEC,MAFkB,EAAA,SAAU,CAAA,SAAA,EAAA,SAAA,EAAA,WAAA,EAAA,SAAA,EAAA,QAAA,EAAA,WAAA,EAAA,QAAA,EAAA,cAAA,EAAA,YAAA,CAAA;AAE5B,KAWD,MAAA,GADF,CAAA,OACmB,MADnB,CAAA,CAAA,MAAA,CAAA;AACE,KAEA,SAAA,GAFiB;EAEjB,IAAA,EAAA,MAAS;EAET,KAAA,EAAA,MAAA;AAUZ,CAAA;AAMY,KAhBA,YAAA,GAgBW;EAEX,GAAA,EAAA,MAAA;EACY,OAAA,EAAA,MAAA,GAAA,IAAA;EAAf,GAAA,EAAA,MAAA,GAAA,IAAA;EAAM,GAAA,EAAA,MAAA,GAAA,IAAA;;;;;KATH,iBAAA;UACF;;SAED;;KAGG,WAAA;;YAEA;SACH,eAAe"}
package/dist/type.mjs ADDED
@@ -0,0 +1,21 @@
1
+ //#region src/type.ts
2
+ const CATEGORIES = [
3
+ "J1",
4
+ "J2",
5
+ "J3"
6
+ ];
7
+ const Fields = [
8
+ "revenue",
9
+ "expense",
10
+ "net_worth",
11
+ "sponsor",
12
+ "ticket",
13
+ "broadcast",
14
+ "salary",
15
+ "average_attd",
16
+ "unit_price"
17
+ ];
18
+
19
+ //#endregion
20
+ export { CATEGORIES, Fields };
21
+ //# sourceMappingURL=type.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"type.mjs","names":[],"sources":["../src/type.ts"],"sourcesContent":["export const CATEGORIES = [\"J1\", \"J2\", \"J3\"] as const;\nexport type Category = (typeof CATEGORIES)[number];\n\nexport const Fields = [\n \"revenue\",\n \"expense\",\n \"net_worth\",\n \"sponsor\",\n \"ticket\",\n \"broadcast\",\n \"salary\",\n \"average_attd\",\n \"unit_price\",\n] as const;\nexport type Fields = (typeof Fields)[number];\n\nexport type ValueItem = { name: string; value: number };\n\nexport type StatsSummary = {\n sum: number;\n average: number | null;\n min: number | null;\n max: number | null;\n median?: number | null;\n deviation?: number | null;\n variance?: number | null;\n};\n\nexport type CreateStatsResult = {\n values: ValueItem[];\n totalCount: number;\n stats: StatsSummary;\n};\n\nexport type DatasetFile = {\n year: number;\n category: Category;\n stats: Record<string, CreateStatsResult>;\n};\n"],"mappings":";AAAA,MAAa,aAAa;CAAC;CAAM;CAAM;CAAK;AAG5C,MAAa,SAAS;CACpB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACD"}
package/package.json ADDED
@@ -0,0 +1,63 @@
1
+ {
2
+ "name": "@cieloazul310/jclub-financial-statistics",
3
+ "version": "0.0.1-alpha.0",
4
+ "license": "MIT",
5
+ "homepage": "https://github.com/cieloazul310/jclub-financial-table",
6
+ "author": {
7
+ "name": "cieloazul310",
8
+ "url": "https://cieloazul310.github.io"
9
+ },
10
+ "repository": {
11
+ "type": "git",
12
+ "url": "git+https://github.com/cieloazul310/jclub-financial-table.git",
13
+ "directory": "packages/statistics"
14
+ },
15
+ "publishConfig": {
16
+ "access": "public",
17
+ "registry": "https://registry.npmjs.org/"
18
+ },
19
+ "type": "module",
20
+ "main": "./dist/index.cjs",
21
+ "module": "./dist/index.mjs",
22
+ "types": "./dist/index.d.mts",
23
+ "files": [
24
+ "dist"
25
+ ],
26
+ "exports": {
27
+ ".": {
28
+ "import": {
29
+ "types": "./dist/index.d.mts",
30
+ "default": "./dist/index.mjs"
31
+ },
32
+ "require": {
33
+ "types": "./dist/index.d.cts",
34
+ "default": "./dist/index.cjs"
35
+ }
36
+ },
37
+ "./package.json": "./package.json"
38
+ },
39
+ "scripts": {
40
+ "build": "npm run build:template && npm run build:statistics",
41
+ "build:statistics": "tsx ./scripts/build-statistics.ts",
42
+ "build:template": "tsdown"
43
+ },
44
+ "devDependencies": {
45
+ "@cieloazul310/jclub-financial-data": "^0.0.1-alpha.0",
46
+ "@repo/eslint-config": "^0.0.1-alpha.0",
47
+ "@repo/typescript-config": "^0.0.1-alpha.0",
48
+ "@types/node": "^24.9.1",
49
+ "eslint": "^9.34.0",
50
+ "tsdown": "^0.18.2",
51
+ "tsx": "^4.20.6",
52
+ "typescript": "^5.9.2"
53
+ },
54
+ "peerDependencies": {
55
+ "@cieloazul310/jclub-financial-data": "^0.0.1-alpha.0"
56
+ },
57
+ "lint-staged": {
58
+ "**/*.{js,mjs,cjs,ts,tsx}": [
59
+ "eslint --fix",
60
+ "prettier --parser typescript --write"
61
+ ]
62
+ }
63
+ }