@short.io/client-node 1.0.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 (114) hide show
  1. package/.eslintignore +1 -0
  2. package/.eslintrc.cjs +3 -0
  3. package/README.md +50 -0
  4. package/dist/index.js +412 -0
  5. package/dist/index.js.map +1 -0
  6. package/dist/test/domain/createDomain.js +5 -0
  7. package/dist/test/domain/createDomain.js.map +1 -0
  8. package/dist/test/domain/getDomains.js +5 -0
  9. package/dist/test/domain/getDomains.js.map +1 -0
  10. package/dist/test/getLinks.js +5 -0
  11. package/dist/test/getLinks.js.map +1 -0
  12. package/dist/test/link/archiveLink.js +5 -0
  13. package/dist/test/link/archiveLink.js.map +1 -0
  14. package/dist/test/link/createLink.js +5 -0
  15. package/dist/test/link/createLink.js.map +1 -0
  16. package/dist/test/link/createLinkBulk.js +14 -0
  17. package/dist/test/link/createLinkBulk.js.map +1 -0
  18. package/dist/test/link/createLinkCountry.js +8 -0
  19. package/dist/test/link/createLinkCountry.js.map +1 -0
  20. package/dist/test/link/createLinkPublic.js +5 -0
  21. package/dist/test/link/createLinkPublic.js.map +1 -0
  22. package/dist/test/link/createLinkRegions.js +9 -0
  23. package/dist/test/link/createLinkRegions.js.map +1 -0
  24. package/dist/test/link/deleteLink.js +5 -0
  25. package/dist/test/link/deleteLink.js.map +1 -0
  26. package/dist/test/link/deleteLinkCountry.js +5 -0
  27. package/dist/test/link/deleteLinkCountry.js.map +1 -0
  28. package/dist/test/link/deleteLinkRegion.js +8 -0
  29. package/dist/test/link/deleteLinkRegion.js.map +1 -0
  30. package/dist/test/link/getLinkCountry.js +5 -0
  31. package/dist/test/link/getLinkCountry.js.map +1 -0
  32. package/dist/test/link/getLinkInfoByOriginalURL.js +5 -0
  33. package/dist/test/link/getLinkInfoByOriginalURL.js.map +1 -0
  34. package/dist/test/link/getLinkInfoByPath.js +5 -0
  35. package/dist/test/link/getLinkInfoByPath.js.map +1 -0
  36. package/dist/test/link/getLinkQRCode.js +5 -0
  37. package/dist/test/link/getLinkQRCode.js.map +1 -0
  38. package/dist/test/link/getLinkRegions.js +5 -0
  39. package/dist/test/link/getLinkRegions.js.map +1 -0
  40. package/dist/test/link/getLinks.js +5 -0
  41. package/dist/test/link/getLinks.js.map +1 -0
  42. package/dist/test/link/getOpenGraph.js +5 -0
  43. package/dist/test/link/getOpenGraph.js.map +1 -0
  44. package/dist/test/link/updateLink.js +8 -0
  45. package/dist/test/link/updateLink.js.map +1 -0
  46. package/dist/test/link/updateOpenGraph.js +5 -0
  47. package/dist/test/link/updateOpenGraph.js.map +1 -0
  48. package/dist/test/statistics/clear.js +5 -0
  49. package/dist/test/statistics/clear.js.map +1 -0
  50. package/dist/test/statistics/getByDomain.js +7 -0
  51. package/dist/test/statistics/getByDomain.js.map +1 -0
  52. package/dist/test/statistics/getByDomainPost.js +10 -0
  53. package/dist/test/statistics/getByDomainPost.js.map +1 -0
  54. package/dist/test/statistics/getByLink.js +7 -0
  55. package/dist/test/statistics/getByLink.js.map +1 -0
  56. package/dist/test/statistics/getByLinkPost.js +7 -0
  57. package/dist/test/statistics/getByLinkPost.js.map +1 -0
  58. package/dist/test/statistics/getLastClicks.js +8 -0
  59. package/dist/test/statistics/getLastClicks.js.map +1 -0
  60. package/dist/test/statistics/getLinkClicks.js +7 -0
  61. package/dist/test/statistics/getLinkClicks.js.map +1 -0
  62. package/dist/test/statistics/getLinkClicksByPathDates.js +13 -0
  63. package/dist/test/statistics/getLinkClicksByPathDates.js.map +1 -0
  64. package/dist/test/statistics/getTopByColumn.js +8 -0
  65. package/dist/test/statistics/getTopByColumn.js.map +1 -0
  66. package/dist/test/statistics/getTopByInterval.js +8 -0
  67. package/dist/test/statistics/getTopByInterval.js.map +1 -0
  68. package/dist/types/common.js +2 -0
  69. package/dist/types/common.js.map +1 -0
  70. package/dist/types/domain.js +2 -0
  71. package/dist/types/domain.js.map +1 -0
  72. package/dist/types/link.js +2 -0
  73. package/dist/types/link.js.map +1 -0
  74. package/dist/types/statistics.js +2 -0
  75. package/dist/types/statistics.js.map +1 -0
  76. package/dist/types.js +2 -0
  77. package/dist/types.js.map +1 -0
  78. package/package.json +35 -0
  79. package/src/index.ts +774 -0
  80. package/src/test/domain/createDomain.ts +5 -0
  81. package/src/test/domain/getDomains.ts +5 -0
  82. package/src/test/link/archiveLink.ts +5 -0
  83. package/src/test/link/createLink.ts +5 -0
  84. package/src/test/link/createLinkBulk.ts +18 -0
  85. package/src/test/link/createLinkCountry.ts +8 -0
  86. package/src/test/link/createLinkPublic.ts +9 -0
  87. package/src/test/link/createLinkRegions.ts +9 -0
  88. package/src/test/link/deleteLink.ts +5 -0
  89. package/src/test/link/deleteLinkCountry.ts +5 -0
  90. package/src/test/link/deleteLinkRegion.ts +8 -0
  91. package/src/test/link/getLinkCountry.ts +5 -0
  92. package/src/test/link/getLinkInfoByOriginalURL.ts +5 -0
  93. package/src/test/link/getLinkInfoByPath.ts +5 -0
  94. package/src/test/link/getLinkQRCode.ts +5 -0
  95. package/src/test/link/getLinkRegions.ts +5 -0
  96. package/src/test/link/getLinks.ts +5 -0
  97. package/src/test/link/getOpenGraph.ts +5 -0
  98. package/src/test/link/updateLink.ts +8 -0
  99. package/src/test/link/updateOpenGraph.ts +5 -0
  100. package/src/test/statistics/clear.ts +5 -0
  101. package/src/test/statistics/getByDomain.ts +7 -0
  102. package/src/test/statistics/getByDomainPost.ts +10 -0
  103. package/src/test/statistics/getByLink.ts +7 -0
  104. package/src/test/statistics/getByLinkPost.ts +7 -0
  105. package/src/test/statistics/getLastClicks.ts +8 -0
  106. package/src/test/statistics/getLinkClicks.ts +7 -0
  107. package/src/test/statistics/getLinkClicksByPathDates.ts +17 -0
  108. package/src/test/statistics/getTopByColumn.ts +8 -0
  109. package/src/test/statistics/getTopByInterval.ts +8 -0
  110. package/src/types/common.ts +11 -0
  111. package/src/types/domain.ts +44 -0
  112. package/src/types/link.ts +159 -0
  113. package/src/types/statistics.ts +242 -0
  114. package/tsconfig.json +19 -0
@@ -0,0 +1,242 @@
1
+ import { Link } from "./link";
2
+
3
+ export interface GetStatisticsOptions extends StartEndDate {
4
+ period?: Period;
5
+ tzOffset?: number;
6
+ clicksChartInterval?: Interval;
7
+ }
8
+
9
+ export interface TopByColumnOptions extends StartEndDate, Pick<LimitOffset, "limit">, IncludeExcludeOptions {
10
+ period?: Period;
11
+ tzOffset?: number;
12
+ prefix?: string;
13
+ }
14
+
15
+ export interface TopByIntervalOptions extends StartEndDate, Pick<LimitOffset, "limit">, IncludeExcludeOptions {
16
+ interval?: Interval;
17
+ period?: Period;
18
+ tzOffset?: number;
19
+ }
20
+
21
+ export interface TopByIntervalRes {
22
+ date: string;
23
+ statistics: {
24
+ column: string;
25
+ score: string;
26
+ }[];
27
+ }
28
+
29
+ export interface TopByColumnRes {
30
+ name: string;
31
+ }
32
+
33
+ export interface GetLastClicksOptions
34
+ extends StartEndDate,
35
+ Pick<LimitOffset, "limit">,
36
+ IncludeExcludeOptions,
37
+ BeforeAfterDate {
38
+ tzOffset?: number;
39
+ period?: Period;
40
+ }
41
+
42
+ export interface LastClicksRes {
43
+ host: string;
44
+ path: string;
45
+ lcpath: string;
46
+ dt: string;
47
+ method: string;
48
+ url: string;
49
+ st: number;
50
+ ip: string;
51
+ proto: string;
52
+ ref: string;
53
+ ua: string;
54
+ human: boolean;
55
+ browser: string;
56
+ browser_version: string;
57
+ country: string;
58
+ city: string;
59
+ social: string;
60
+ refhost: string;
61
+ os: string;
62
+ utm_source: string;
63
+ utm_medium: string;
64
+ utm_campaign: string;
65
+ goal_completed: boolean | null;
66
+ ab_path: string | null;
67
+ }
68
+
69
+ export interface FilterOptions {
70
+ paths?: Set<string>;
71
+ countries?: Set<string>;
72
+ dt?: [Date, Date];
73
+ browsers?: string[];
74
+ human?: boolean;
75
+ socials?: string[];
76
+ browserVersions?: string[];
77
+ statuses?: number[];
78
+ methods?: string[];
79
+ protos?: ("http" | "https")[];
80
+ refhosts?: string[];
81
+ utmSources?: string[];
82
+ utmMediums?: string[];
83
+ utmCampaigns?: string[];
84
+ }
85
+
86
+ export interface IncludeExcludeOptions {
87
+ include?: FilterOptions;
88
+ exclude?: FilterOptions;
89
+ }
90
+
91
+ export interface LinkIds {
92
+ ids: string;
93
+ }
94
+
95
+ export interface PathDate extends Pick<Link, "path" | "createdAt"> {}
96
+
97
+ export interface PathClicks {
98
+ [path: Link["path"]]: number;
99
+ }
100
+
101
+ export interface LinkStatistics {
102
+ totalClicks: number;
103
+ humanClicks: number;
104
+ humanClicksChange: string;
105
+ totalClicksChange: string;
106
+ clickStatistics: {
107
+ datasets: [
108
+ {
109
+ data: DatePoint[];
110
+ },
111
+ ];
112
+ };
113
+ interval: IntervalResponse;
114
+ referer: Referer[];
115
+ social: Social[];
116
+ browser: Browser[];
117
+ os: OS[];
118
+ city: City[];
119
+ country: Country[];
120
+ }
121
+
122
+ export interface DomainStatistics {
123
+ country: Country[];
124
+ city: City[];
125
+ clicks: number;
126
+ humanClicks: number;
127
+ links: number;
128
+ linksChange: string;
129
+ linksChangePositive: boolean;
130
+ clicksPerLink: string;
131
+ clicksPerLinkChange: string;
132
+ humanClicksPerLink: string;
133
+ prevClicksChange: string;
134
+ humanClicksChange: string;
135
+ humanClicksChangePositive: boolean;
136
+ interval: IntervalResponse;
137
+ clickStatistics: {
138
+ datasets: [
139
+ {
140
+ data: DatePoint[];
141
+ },
142
+ ];
143
+ };
144
+ referer: Referer[];
145
+ social: Social[];
146
+ browser: Browser[];
147
+ os: OS[];
148
+ utm_medium: ({ utm_medium: string } & ClicksScore)[];
149
+ utm_source: ({ utm_source: string } & ClicksScore)[];
150
+ utm_campaign: ({ utm_campaign: string } & ClicksScore)[];
151
+ }
152
+
153
+ interface IntervalResponse {
154
+ startDate: Date | null;
155
+ endDate: Date | null;
156
+ prevStartDate: Date | null;
157
+ prevEndDate: Date | null;
158
+ }
159
+
160
+ interface DatePoint {
161
+ x: Date;
162
+ y: number;
163
+ }
164
+
165
+ interface City extends ClicksScore {
166
+ city: number;
167
+ name: string;
168
+ }
169
+
170
+ interface OS extends ClicksScore {
171
+ os: string;
172
+ }
173
+
174
+ interface Social extends ClicksScore {
175
+ social: string;
176
+ socialName?: string;
177
+ }
178
+
179
+ interface Browser extends ClicksScore {
180
+ browser: string;
181
+ browserName?: string;
182
+ }
183
+
184
+ interface Referer extends ClicksScore {
185
+ referer: string;
186
+ }
187
+
188
+ interface Country extends ClicksScore {
189
+ country: string;
190
+ countryName: string;
191
+ }
192
+
193
+ interface ClicksScore {
194
+ score: number;
195
+ }
196
+
197
+ type Period = "custom" | "today" | "yesterday" | "total" | "week" | "month" | "lastmonth" | "last7" | "last30";
198
+ type Interval = "hour" | "day" | "week" | "month";
199
+
200
+ export interface StartEndDate {
201
+ startDate?: string;
202
+ endDate?: string;
203
+ }
204
+
205
+ export interface BeforeAfterDate {
206
+ afterDate?: string;
207
+ beforeDate?: string;
208
+ }
209
+
210
+ export interface LinkClicks {
211
+ [key: Link["idString"]]: number;
212
+ }
213
+
214
+ export interface LimitOffset {
215
+ limit?: number;
216
+ offset?: number;
217
+ }
218
+
219
+ export type Column =
220
+ | "path"
221
+ | "method"
222
+ | "st"
223
+ | "proto"
224
+ | "human"
225
+ | "browser"
226
+ | "browser_version"
227
+ | "country"
228
+ | "city"
229
+ | "social"
230
+ | "refhost"
231
+ | "os"
232
+ | "utm_source"
233
+ | "utm_medium"
234
+ | "utm_campaign"
235
+ | "goal_completed"
236
+ | "ab_path";
237
+
238
+ export interface TopColumnRes {
239
+ score: number;
240
+ column: string;
241
+ displayName: string;
242
+ }
package/tsconfig.json ADDED
@@ -0,0 +1,19 @@
1
+ {
2
+ "compilerOptions": {
3
+ "rootDir": "./src",
4
+ "outDir": "./dist",
5
+ "module": "ESNext",
6
+ "target": "ESNext",
7
+ "moduleResolution": "node",
8
+ "experimentalDecorators": true,
9
+ "allowSyntheticDefaultImports": true,
10
+ "incremental": true,
11
+ "noImplicitAny": true,
12
+ "removeComments": true,
13
+ "preserveConstEnums": true,
14
+ "noUnusedLocals": true,
15
+ "sourceMap": true,
16
+ "inlineSources": true,
17
+ "strictNullChecks": true
18
+ }
19
+ }