@oxygen-agent/cli 1.987.20 → 1.1010.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.
- package/README.md +1 -1
- package/dist/admin-primary-providers-render.d.ts +0 -2
- package/dist/admin-primary-providers-render.js +1 -1
- package/dist/browser-login.js +1 -4
- package/dist/column-decision-options.d.ts +20 -0
- package/dist/column-decision-options.js +54 -0
- package/dist/command-manifest.d.ts +3 -2
- package/dist/command-manifest.js +25 -2
- package/dist/credentials.d.ts +1 -1
- package/dist/functions-commands.js +13 -9
- package/dist/help.d.ts +8 -0
- package/dist/help.js +46 -0
- package/dist/index.js +2751 -242
- package/dist/knowledge-mirror.d.ts +2 -2
- package/dist/runtime.d.ts +0 -15
- package/dist/runtime.js +1 -1
- package/dist/search-ai-filter-notice.d.ts +17 -0
- package/dist/search-ai-filter-notice.js +38 -0
- package/dist/session.d.ts +4 -3
- package/dist/skills.d.ts +8 -7
- package/dist/skills.js +58 -20
- package/dist/transcript.d.ts +2 -1
- package/dist/util.d.ts +10 -1
- package/dist/util.js +14 -2
- package/node_modules/@oxygen/cli-ugc/dist/commands.js +296 -140
- package/node_modules/@oxygen/cli-ugc/dist/field-parser.d.ts +9 -0
- package/node_modules/@oxygen/cli-ugc/dist/field-parser.js +34 -0
- package/node_modules/@oxygen/formula/dist/coerce.d.ts +10 -0
- package/node_modules/@oxygen/formula/dist/coerce.js +10 -0
- package/node_modules/@oxygen/formula/dist/formula-functions.js +65 -0
- package/node_modules/@oxygen/formula/dist/hash.d.ts +19 -0
- package/node_modules/@oxygen/formula/dist/hash.js +199 -0
- package/node_modules/@oxygen/formula/dist/value-cleaners.d.ts +6 -1
- package/node_modules/@oxygen/formula/dist/value-cleaners.js +10 -26
- package/node_modules/@oxygen/recipe-sdk/dist/index.d.ts +13 -0
- package/node_modules/@oxygen/shared/dist/array-utils.d.ts +5 -0
- package/node_modules/@oxygen/shared/dist/array-utils.js +11 -0
- package/node_modules/@oxygen/shared/dist/billing.d.ts +99 -22
- package/node_modules/@oxygen/shared/dist/billing.js +195 -40
- package/node_modules/@oxygen/shared/dist/byok-connect.js +5 -0
- package/node_modules/@oxygen/shared/dist/capability-discovery.d.ts +27 -0
- package/node_modules/@oxygen/shared/dist/capability-discovery.js +311 -28
- package/node_modules/@oxygen/shared/dist/cli-http-error.d.ts +8 -0
- package/node_modules/@oxygen/shared/dist/cli-http-error.js +8 -0
- package/node_modules/@oxygen/shared/dist/cli-result.js +1 -0
- package/node_modules/@oxygen/shared/dist/column-autofill.d.ts +52 -0
- package/node_modules/@oxygen/shared/dist/column-autofill.js +62 -0
- package/node_modules/@oxygen/shared/dist/column-decision.d.ts +50 -0
- package/node_modules/@oxygen/shared/dist/column-decision.js +228 -0
- package/node_modules/@oxygen/shared/dist/column-output-fields.js +2 -6
- package/node_modules/@oxygen/shared/dist/company-enrichment-fields.d.ts +113 -0
- package/node_modules/@oxygen/shared/dist/company-enrichment-fields.js +548 -0
- package/node_modules/@oxygen/shared/dist/copilot-skills.generated.d.ts +6 -6
- package/node_modules/@oxygen/shared/dist/copilot-skills.generated.js +6 -6
- package/node_modules/@oxygen/shared/dist/cutover-freeze.d.ts +26 -0
- package/node_modules/@oxygen/shared/dist/cutover-freeze.js +52 -0
- package/node_modules/@oxygen/shared/dist/data-suppliers.d.ts +57 -0
- package/node_modules/@oxygen/shared/dist/data-suppliers.js +59 -0
- package/node_modules/@oxygen/shared/dist/deploy-env.d.ts +74 -0
- package/node_modules/@oxygen/shared/dist/deploy-env.js +82 -0
- package/node_modules/@oxygen/shared/dist/dnc-rules.d.ts +130 -0
- package/node_modules/@oxygen/shared/dist/dnc-rules.js +221 -0
- package/node_modules/@oxygen/shared/dist/enrichment-intents.d.ts +107 -0
- package/node_modules/@oxygen/shared/dist/enrichment-intents.js +809 -0
- package/node_modules/@oxygen/shared/dist/error-message.d.ts +1 -0
- package/node_modules/@oxygen/shared/dist/error-message.js +3 -0
- package/node_modules/@oxygen/shared/dist/error-redaction.js +1 -3
- package/node_modules/@oxygen/shared/dist/external-write-policy.d.ts +33 -0
- package/node_modules/@oxygen/shared/dist/external-write-policy.js +68 -0
- package/node_modules/@oxygen/shared/dist/format-percent.d.ts +8 -0
- package/node_modules/@oxygen/shared/dist/format-percent.js +13 -0
- package/node_modules/@oxygen/shared/dist/freemail-domains.d.ts +81 -0
- package/node_modules/@oxygen/shared/dist/freemail-domains.js +157 -0
- package/node_modules/@oxygen/shared/dist/future-signup-lifecycle-projection.d.ts +1 -0
- package/node_modules/@oxygen/shared/dist/future-signup-lifecycle-projection.js +1 -1
- package/node_modules/@oxygen/shared/dist/hosted-ai.d.ts +60 -4
- package/node_modules/@oxygen/shared/dist/hosted-ai.js +125 -10
- package/node_modules/@oxygen/shared/dist/index.d.ts +15 -0
- package/node_modules/@oxygen/shared/dist/index.js +15 -0
- package/node_modules/@oxygen/shared/dist/json-path.js +1 -3
- package/node_modules/@oxygen/shared/dist/knowledge-bases.js +1 -3
- package/node_modules/@oxygen/shared/dist/knowledge-bootstrap.d.ts +2 -2
- package/node_modules/@oxygen/shared/dist/knowledge-bootstrap.js +2 -2
- package/node_modules/@oxygen/shared/dist/langfuse.d.ts +44 -1
- package/node_modules/@oxygen/shared/dist/langfuse.js +416 -14
- package/node_modules/@oxygen/shared/dist/linkedin-countries.d.ts +33 -0
- package/node_modules/@oxygen/shared/dist/linkedin-countries.js +361 -0
- package/node_modules/@oxygen/shared/dist/linkedin-country-timezones.d.ts +24 -0
- package/node_modules/@oxygen/shared/dist/linkedin-country-timezones.js +276 -0
- package/node_modules/@oxygen/shared/dist/linkedin-message-deletion.d.ts +2 -0
- package/node_modules/@oxygen/shared/dist/linkedin-message-deletion.js +5 -0
- package/node_modules/@oxygen/shared/dist/linkedin-post-keywords.d.ts +44 -0
- package/node_modules/@oxygen/shared/dist/linkedin-post-keywords.js +116 -0
- package/node_modules/@oxygen/shared/dist/linkedin-sequences.d.ts +96 -0
- package/node_modules/@oxygen/shared/dist/linkedin-sequences.js +123 -0
- package/node_modules/@oxygen/shared/dist/llm-durable-capture.d.ts +24 -0
- package/node_modules/@oxygen/shared/dist/llm-durable-capture.js +89 -0
- package/node_modules/@oxygen/shared/dist/llm-prompts.d.ts +75 -0
- package/node_modules/@oxygen/shared/dist/llm-prompts.js +161 -0
- package/node_modules/@oxygen/shared/dist/log-sink-selector.d.ts +39 -0
- package/node_modules/@oxygen/shared/dist/log-sink-selector.js +56 -0
- package/node_modules/@oxygen/shared/dist/log.d.ts +1 -0
- package/node_modules/@oxygen/shared/dist/log.js +6 -1
- package/node_modules/@oxygen/shared/dist/mailbox-egress-ownership.d.ts +90 -0
- package/node_modules/@oxygen/shared/dist/mailbox-egress-ownership.js +130 -0
- package/node_modules/@oxygen/shared/dist/object-storage.d.ts +17 -0
- package/node_modules/@oxygen/shared/dist/object-storage.js +21 -0
- package/node_modules/@oxygen/shared/dist/operational-telemetry.d.ts +24 -0
- package/node_modules/@oxygen/shared/dist/operational-telemetry.js +73 -0
- package/node_modules/@oxygen/shared/dist/otlp-log-sink.d.ts +79 -0
- package/node_modules/@oxygen/shared/dist/otlp-log-sink.js +366 -0
- package/node_modules/@oxygen/shared/dist/plan-capabilities.js +1 -0
- package/node_modules/@oxygen/shared/dist/plan-limits.d.ts +23 -22
- package/node_modules/@oxygen/shared/dist/plan-limits.js +45 -18
- package/node_modules/@oxygen/shared/dist/pricing-sheet.d.ts +48 -41
- package/node_modules/@oxygen/shared/dist/pricing-sheet.js +36 -25
- package/node_modules/@oxygen/shared/dist/pricing-snapshot.generated.d.ts +22 -22
- package/node_modules/@oxygen/shared/dist/pricing-snapshot.generated.js +40 -34
- package/node_modules/@oxygen/shared/dist/product-analytics-environment.js +9 -0
- package/node_modules/@oxygen/shared/dist/product-analytics-events.d.ts +36 -2
- package/node_modules/@oxygen/shared/dist/product-analytics-events.js +36 -1
- package/node_modules/@oxygen/shared/dist/rate-window.d.ts +5 -0
- package/node_modules/@oxygen/shared/dist/rate-window.js +8 -0
- package/node_modules/@oxygen/shared/dist/redaction.js +4 -1
- package/node_modules/@oxygen/shared/dist/research-output-contract.js +1 -3
- package/node_modules/@oxygen/shared/dist/scraper-lane-credential.d.ts +18 -0
- package/node_modules/@oxygen/shared/dist/scraper-lane-credential.js +23 -0
- package/node_modules/@oxygen/shared/dist/search-vocab.js +4 -5
- package/node_modules/@oxygen/shared/dist/select-options.js +6 -1
- package/node_modules/@oxygen/shared/dist/sequence-failures.js +1 -5
- package/node_modules/@oxygen/shared/dist/sequences.d.ts +23 -0
- package/node_modules/@oxygen/shared/dist/sequences.js +115 -5
- package/node_modules/@oxygen/shared/dist/signup-lead-payload.d.ts +80 -0
- package/node_modules/@oxygen/shared/dist/signup-lead-payload.js +198 -0
- package/node_modules/@oxygen/shared/dist/social-capabilities.d.ts +6 -0
- package/node_modules/@oxygen/shared/dist/social-capabilities.js +25 -16
- package/node_modules/@oxygen/shared/dist/social-post-metrics-core.d.ts +32 -0
- package/node_modules/@oxygen/shared/dist/social-post-metrics-core.js +32 -0
- package/node_modules/@oxygen/shared/dist/social-post-metrics-linkedin.d.ts +31 -0
- package/node_modules/@oxygen/shared/dist/social-post-metrics-linkedin.js +103 -0
- package/node_modules/@oxygen/shared/dist/social-post-metrics-series.d.ts +96 -0
- package/node_modules/@oxygen/shared/dist/social-post-metrics-series.js +213 -0
- package/node_modules/@oxygen/shared/dist/social-post-metrics-x.d.ts +13 -0
- package/node_modules/@oxygen/shared/dist/social-post-metrics-x.js +78 -0
- package/node_modules/@oxygen/shared/dist/social-post-metrics.d.ts +36 -0
- package/node_modules/@oxygen/shared/dist/social-post-metrics.js +51 -0
- package/node_modules/@oxygen/shared/dist/spend-safety.d.ts +22 -10
- package/node_modules/@oxygen/shared/dist/spend-safety.js +15 -21
- package/node_modules/@oxygen/shared/dist/sql-rows.d.ts +1 -0
- package/node_modules/@oxygen/shared/dist/sql-rows.js +3 -0
- package/node_modules/@oxygen/shared/dist/stripe-price-catalog.d.ts +36 -0
- package/node_modules/@oxygen/shared/dist/stripe-price-catalog.js +184 -0
- package/node_modules/@oxygen/shared/dist/stripe-subscription-kind.d.ts +41 -0
- package/node_modules/@oxygen/shared/dist/stripe-subscription-kind.js +44 -0
- package/node_modules/@oxygen/shared/dist/table-limits.d.ts +3 -0
- package/node_modules/@oxygen/shared/dist/table-limits.js +3 -0
- package/node_modules/@oxygen/shared/dist/telemetry-export-observer.d.ts +94 -0
- package/node_modules/@oxygen/shared/dist/telemetry-export-observer.js +298 -0
- package/node_modules/@oxygen/shared/dist/telemetry.d.ts +11 -0
- package/node_modules/@oxygen/shared/dist/telemetry.js +28 -2
- package/node_modules/@oxygen/shared/dist/type-guards.d.ts +22 -0
- package/node_modules/@oxygen/shared/dist/type-guards.js +35 -0
- package/node_modules/@oxygen/shared/dist/ugc.d.ts +22 -11
- package/node_modules/@oxygen/shared/dist/ugc.js +10 -0
- package/node_modules/@oxygen/shared/dist/value-readers.d.ts +21 -0
- package/node_modules/@oxygen/shared/dist/value-readers.js +59 -0
- package/node_modules/@oxygen/shared/dist/version.generated.d.ts +1 -0
- package/node_modules/@oxygen/shared/dist/version.generated.js +2 -0
- package/node_modules/@oxygen/shared/dist/version.js +8 -1
- package/node_modules/@oxygen/shared/dist/workspace-event-catalog.js +0 -23
- package/node_modules/@oxygen/shared/dist/workspace-file-storage.d.ts +29 -0
- package/node_modules/@oxygen/shared/dist/workspace-file-storage.js +31 -0
- package/node_modules/@oxygen/shared/package.json +59 -0
- package/node_modules/@oxygen/workflows/dist/graph/expression.js +2 -5
- package/node_modules/@oxygen/workflows/dist/graph/params.js +1 -1
- package/package.json +3 -2
|
@@ -0,0 +1,361 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The country vocabulary behind the CRM's "Primary Location — Country" column.
|
|
3
|
+
*
|
|
4
|
+
* WHY A CHECKED-IN TABLE AND NOT `Intl.DisplayNames` AT RUNTIME: these strings
|
|
5
|
+
* are persisted. They become `definition.options[].value` on the column and the
|
|
6
|
+
* literal text stored in every cell, so deriving them from ICU would let a Node
|
|
7
|
+
* upgrade silently rename an option and orphan every row that already carried
|
|
8
|
+
* the old spelling. The table was GENERATED from CLDR English region names once
|
|
9
|
+
* (the 249 officially assigned ISO 3166-1 alpha-2 codes, plus XK/Kosovo, which
|
|
10
|
+
* LinkedIn lists and ISO does not), then frozen here with the overrides below.
|
|
11
|
+
*
|
|
12
|
+
* NAMING: LinkedIn spells a handful differently from CLDR's English short name
|
|
13
|
+
* — those are the entries carrying a trailing comment. Everything else is the
|
|
14
|
+
* CLDR name verbatim, which is what LinkedIn uses. This is a faithful
|
|
15
|
+
* reproduction of LinkedIn's vocabulary, not a scrape of its dropdown: the
|
|
16
|
+
* RESOLVER below is what makes that safe, because it accepts the alpha-2 code,
|
|
17
|
+
* any spelling in this table, and the aliases in COUNTRY_ALIASES. A scrape that
|
|
18
|
+
* returns "US", "United States", "USA" or "Congo - Kinshasa" all land on the
|
|
19
|
+
* one canonical option rather than on an empty cell.
|
|
20
|
+
*/
|
|
21
|
+
/** Canonical LinkedIn country name for each ISO 3166-1 alpha-2 code, A→Z by name. */
|
|
22
|
+
export const LINKEDIN_COUNTRIES = [
|
|
23
|
+
["AF", "Afghanistan"],
|
|
24
|
+
["AX", "Åland Islands"],
|
|
25
|
+
["AL", "Albania"],
|
|
26
|
+
["DZ", "Algeria"],
|
|
27
|
+
["AS", "American Samoa"],
|
|
28
|
+
["AD", "Andorra"],
|
|
29
|
+
["AO", "Angola"],
|
|
30
|
+
["AI", "Anguilla"],
|
|
31
|
+
["AQ", "Antarctica"],
|
|
32
|
+
["AG", "Antigua & Barbuda"],
|
|
33
|
+
["AR", "Argentina"],
|
|
34
|
+
["AM", "Armenia"],
|
|
35
|
+
["AW", "Aruba"],
|
|
36
|
+
["AU", "Australia"],
|
|
37
|
+
["AT", "Austria"],
|
|
38
|
+
["AZ", "Azerbaijan"],
|
|
39
|
+
["BS", "Bahamas"],
|
|
40
|
+
["BH", "Bahrain"],
|
|
41
|
+
["BD", "Bangladesh"],
|
|
42
|
+
["BB", "Barbados"],
|
|
43
|
+
["BY", "Belarus"],
|
|
44
|
+
["BE", "Belgium"],
|
|
45
|
+
["BZ", "Belize"],
|
|
46
|
+
["BJ", "Benin"],
|
|
47
|
+
["BM", "Bermuda"],
|
|
48
|
+
["BT", "Bhutan"],
|
|
49
|
+
["BO", "Bolivia"],
|
|
50
|
+
["BA", "Bosnia & Herzegovina"],
|
|
51
|
+
["BW", "Botswana"],
|
|
52
|
+
["BV", "Bouvet Island"],
|
|
53
|
+
["BR", "Brazil"],
|
|
54
|
+
["IO", "British Indian Ocean Territory"],
|
|
55
|
+
["VG", "British Virgin Islands"],
|
|
56
|
+
["BN", "Brunei"],
|
|
57
|
+
["BG", "Bulgaria"],
|
|
58
|
+
["BF", "Burkina Faso"],
|
|
59
|
+
["BI", "Burundi"],
|
|
60
|
+
["KH", "Cambodia"],
|
|
61
|
+
["CM", "Cameroon"],
|
|
62
|
+
["CA", "Canada"],
|
|
63
|
+
["CV", "Cape Verde"],
|
|
64
|
+
["BQ", "Caribbean Netherlands"],
|
|
65
|
+
["KY", "Cayman Islands"],
|
|
66
|
+
["CF", "Central African Republic"],
|
|
67
|
+
["TD", "Chad"],
|
|
68
|
+
["CL", "Chile"],
|
|
69
|
+
["CN", "China"],
|
|
70
|
+
["CX", "Christmas Island"],
|
|
71
|
+
["CC", "Cocos (Keeling) Islands"],
|
|
72
|
+
["CO", "Colombia"],
|
|
73
|
+
["KM", "Comoros"],
|
|
74
|
+
["CD", "Congo (DRC)"],
|
|
75
|
+
["CG", "Congo (Republic)"],
|
|
76
|
+
["CK", "Cook Islands"],
|
|
77
|
+
["CR", "Costa Rica"],
|
|
78
|
+
["CI", "Côte d'Ivoire"],
|
|
79
|
+
["HR", "Croatia"],
|
|
80
|
+
["CU", "Cuba"],
|
|
81
|
+
["CW", "Curaçao"],
|
|
82
|
+
["CY", "Cyprus"],
|
|
83
|
+
["CZ", "Czechia"],
|
|
84
|
+
["DK", "Denmark"],
|
|
85
|
+
["DJ", "Djibouti"],
|
|
86
|
+
["DM", "Dominica"],
|
|
87
|
+
["DO", "Dominican Republic"],
|
|
88
|
+
["EC", "Ecuador"],
|
|
89
|
+
["EG", "Egypt"],
|
|
90
|
+
["SV", "El Salvador"],
|
|
91
|
+
["GQ", "Equatorial Guinea"],
|
|
92
|
+
["ER", "Eritrea"],
|
|
93
|
+
["EE", "Estonia"],
|
|
94
|
+
["SZ", "Eswatini"],
|
|
95
|
+
["ET", "Ethiopia"],
|
|
96
|
+
["FK", "Falkland Islands"],
|
|
97
|
+
["FO", "Faroe Islands"],
|
|
98
|
+
["FJ", "Fiji"],
|
|
99
|
+
["FI", "Finland"],
|
|
100
|
+
["FR", "France"],
|
|
101
|
+
["GF", "French Guiana"],
|
|
102
|
+
["PF", "French Polynesia"],
|
|
103
|
+
["TF", "French Southern Territories"],
|
|
104
|
+
["GA", "Gabon"],
|
|
105
|
+
["GM", "Gambia"],
|
|
106
|
+
["GE", "Georgia"],
|
|
107
|
+
["DE", "Germany"],
|
|
108
|
+
["GH", "Ghana"],
|
|
109
|
+
["GI", "Gibraltar"],
|
|
110
|
+
["GR", "Greece"],
|
|
111
|
+
["GL", "Greenland"],
|
|
112
|
+
["GD", "Grenada"],
|
|
113
|
+
["GP", "Guadeloupe"],
|
|
114
|
+
["GU", "Guam"],
|
|
115
|
+
["GT", "Guatemala"],
|
|
116
|
+
["GG", "Guernsey"],
|
|
117
|
+
["GN", "Guinea"],
|
|
118
|
+
["GW", "Guinea-Bissau"],
|
|
119
|
+
["GY", "Guyana"],
|
|
120
|
+
["HT", "Haiti"],
|
|
121
|
+
["HM", "Heard & McDonald Islands"],
|
|
122
|
+
["HN", "Honduras"],
|
|
123
|
+
["HK", "Hong Kong SAR"],
|
|
124
|
+
["HU", "Hungary"],
|
|
125
|
+
["IS", "Iceland"],
|
|
126
|
+
["IN", "India"],
|
|
127
|
+
["ID", "Indonesia"],
|
|
128
|
+
["IR", "Iran"],
|
|
129
|
+
["IQ", "Iraq"],
|
|
130
|
+
["IE", "Ireland"],
|
|
131
|
+
["IM", "Isle of Man"],
|
|
132
|
+
["IL", "Israel"],
|
|
133
|
+
["IT", "Italy"],
|
|
134
|
+
["JM", "Jamaica"],
|
|
135
|
+
["JP", "Japan"],
|
|
136
|
+
["JE", "Jersey"],
|
|
137
|
+
["JO", "Jordan"],
|
|
138
|
+
["KZ", "Kazakhstan"],
|
|
139
|
+
["KE", "Kenya"],
|
|
140
|
+
["KI", "Kiribati"],
|
|
141
|
+
["XK", "Kosovo"],
|
|
142
|
+
["KW", "Kuwait"],
|
|
143
|
+
["KG", "Kyrgyzstan"],
|
|
144
|
+
["LA", "Laos"],
|
|
145
|
+
["LV", "Latvia"],
|
|
146
|
+
["LB", "Lebanon"],
|
|
147
|
+
["LS", "Lesotho"],
|
|
148
|
+
["LR", "Liberia"],
|
|
149
|
+
["LY", "Libya"],
|
|
150
|
+
["LI", "Liechtenstein"],
|
|
151
|
+
["LT", "Lithuania"],
|
|
152
|
+
["LU", "Luxembourg"],
|
|
153
|
+
["MO", "Macao SAR"],
|
|
154
|
+
["MG", "Madagascar"],
|
|
155
|
+
["MW", "Malawi"],
|
|
156
|
+
["MY", "Malaysia"],
|
|
157
|
+
["MV", "Maldives"],
|
|
158
|
+
["ML", "Mali"],
|
|
159
|
+
["MT", "Malta"],
|
|
160
|
+
["MH", "Marshall Islands"],
|
|
161
|
+
["MQ", "Martinique"],
|
|
162
|
+
["MR", "Mauritania"],
|
|
163
|
+
["MU", "Mauritius"],
|
|
164
|
+
["YT", "Mayotte"],
|
|
165
|
+
["MX", "Mexico"],
|
|
166
|
+
["FM", "Micronesia"],
|
|
167
|
+
["MD", "Moldova"],
|
|
168
|
+
["MC", "Monaco"],
|
|
169
|
+
["MN", "Mongolia"],
|
|
170
|
+
["ME", "Montenegro"],
|
|
171
|
+
["MS", "Montserrat"],
|
|
172
|
+
["MA", "Morocco"],
|
|
173
|
+
["MZ", "Mozambique"],
|
|
174
|
+
["MM", "Myanmar"],
|
|
175
|
+
["NA", "Namibia"],
|
|
176
|
+
["NR", "Nauru"],
|
|
177
|
+
["NP", "Nepal"],
|
|
178
|
+
["NL", "Netherlands"],
|
|
179
|
+
["NC", "New Caledonia"],
|
|
180
|
+
["NZ", "New Zealand"],
|
|
181
|
+
["NI", "Nicaragua"],
|
|
182
|
+
["NE", "Niger"],
|
|
183
|
+
["NG", "Nigeria"],
|
|
184
|
+
["NU", "Niue"],
|
|
185
|
+
["NF", "Norfolk Island"],
|
|
186
|
+
["KP", "North Korea"],
|
|
187
|
+
["MK", "North Macedonia"],
|
|
188
|
+
["MP", "Northern Mariana Islands"],
|
|
189
|
+
["NO", "Norway"],
|
|
190
|
+
["OM", "Oman"],
|
|
191
|
+
["PK", "Pakistan"],
|
|
192
|
+
["PW", "Palau"],
|
|
193
|
+
["PS", "Palestinian Territories"],
|
|
194
|
+
["PA", "Panama"],
|
|
195
|
+
["PG", "Papua New Guinea"],
|
|
196
|
+
["PY", "Paraguay"],
|
|
197
|
+
["PE", "Peru"],
|
|
198
|
+
["PH", "Philippines"],
|
|
199
|
+
["PN", "Pitcairn Islands"],
|
|
200
|
+
["PL", "Poland"],
|
|
201
|
+
["PT", "Portugal"],
|
|
202
|
+
["PR", "Puerto Rico"],
|
|
203
|
+
["QA", "Qatar"],
|
|
204
|
+
["RE", "Réunion"],
|
|
205
|
+
["RO", "Romania"],
|
|
206
|
+
["RU", "Russia"],
|
|
207
|
+
["RW", "Rwanda"],
|
|
208
|
+
["WS", "Samoa"],
|
|
209
|
+
["SM", "San Marino"],
|
|
210
|
+
["ST", "São Tomé & Príncipe"],
|
|
211
|
+
["SA", "Saudi Arabia"],
|
|
212
|
+
["SN", "Senegal"],
|
|
213
|
+
["RS", "Serbia"],
|
|
214
|
+
["SC", "Seychelles"],
|
|
215
|
+
["SL", "Sierra Leone"],
|
|
216
|
+
["SG", "Singapore"],
|
|
217
|
+
["SX", "Sint Maarten"],
|
|
218
|
+
["SK", "Slovakia"],
|
|
219
|
+
["SI", "Slovenia"],
|
|
220
|
+
["SB", "Solomon Islands"],
|
|
221
|
+
["SO", "Somalia"],
|
|
222
|
+
["ZA", "South Africa"],
|
|
223
|
+
["GS", "South Georgia & South Sandwich Islands"],
|
|
224
|
+
["KR", "South Korea"],
|
|
225
|
+
["SS", "South Sudan"],
|
|
226
|
+
["ES", "Spain"],
|
|
227
|
+
["LK", "Sri Lanka"],
|
|
228
|
+
["BL", "St. Barthélemy"],
|
|
229
|
+
["SH", "St. Helena"],
|
|
230
|
+
["KN", "St. Kitts & Nevis"],
|
|
231
|
+
["LC", "St. Lucia"],
|
|
232
|
+
["MF", "St. Martin"],
|
|
233
|
+
["PM", "St. Pierre & Miquelon"],
|
|
234
|
+
["VC", "St. Vincent & Grenadines"],
|
|
235
|
+
["SD", "Sudan"],
|
|
236
|
+
["SR", "Suriname"],
|
|
237
|
+
["SJ", "Svalbard & Jan Mayen"],
|
|
238
|
+
["SE", "Sweden"],
|
|
239
|
+
["CH", "Switzerland"],
|
|
240
|
+
["SY", "Syria"],
|
|
241
|
+
["TW", "Taiwan"],
|
|
242
|
+
["TJ", "Tajikistan"],
|
|
243
|
+
["TZ", "Tanzania"],
|
|
244
|
+
["TH", "Thailand"],
|
|
245
|
+
["TL", "Timor-Leste"],
|
|
246
|
+
["TG", "Togo"],
|
|
247
|
+
["TK", "Tokelau"],
|
|
248
|
+
["TO", "Tonga"],
|
|
249
|
+
["TT", "Trinidad & Tobago"],
|
|
250
|
+
["TN", "Tunisia"],
|
|
251
|
+
["TR", "Türkiye"],
|
|
252
|
+
["TM", "Turkmenistan"],
|
|
253
|
+
["TC", "Turks & Caicos Islands"],
|
|
254
|
+
["TV", "Tuvalu"],
|
|
255
|
+
["UM", "U.S. Outlying Islands"],
|
|
256
|
+
["VI", "U.S. Virgin Islands"],
|
|
257
|
+
["UG", "Uganda"],
|
|
258
|
+
["UA", "Ukraine"],
|
|
259
|
+
["AE", "United Arab Emirates"],
|
|
260
|
+
["GB", "United Kingdom"],
|
|
261
|
+
["US", "United States"],
|
|
262
|
+
["UY", "Uruguay"],
|
|
263
|
+
["UZ", "Uzbekistan"],
|
|
264
|
+
["VU", "Vanuatu"],
|
|
265
|
+
["VA", "Vatican City"],
|
|
266
|
+
["VE", "Venezuela"],
|
|
267
|
+
["VN", "Vietnam"],
|
|
268
|
+
["WF", "Wallis & Futuna"],
|
|
269
|
+
["EH", "Western Sahara"],
|
|
270
|
+
["YE", "Yemen"],
|
|
271
|
+
["ZM", "Zambia"],
|
|
272
|
+
["ZW", "Zimbabwe"],
|
|
273
|
+
];
|
|
274
|
+
/**
|
|
275
|
+
* Spellings a provider may return that are not the canonical name. Lowercased
|
|
276
|
+
* keys; the resolver lowercases its input before the lookup. Kept deliberately
|
|
277
|
+
* short — it covers the CLDR spellings this table overrides (so a payload
|
|
278
|
+
* carrying the un-overridden name still resolves), the common colloquial forms,
|
|
279
|
+
* and the alpha-3 codes, because Up2Data's `hq.country` is not contractually
|
|
280
|
+
* alpha-2 and has been observed carrying a display name.
|
|
281
|
+
*/
|
|
282
|
+
const COUNTRY_ALIASES = {
|
|
283
|
+
// CLDR spellings this table overrides.
|
|
284
|
+
"hong kong sar china": "HK",
|
|
285
|
+
"macao sar china": "MO",
|
|
286
|
+
"macau sar china": "MO",
|
|
287
|
+
"myanmar (burma)": "MM",
|
|
288
|
+
"congo - kinshasa": "CD",
|
|
289
|
+
"congo - brazzaville": "CG",
|
|
290
|
+
"côte d’ivoire": "CI",
|
|
291
|
+
"st. helena": "SH",
|
|
292
|
+
// Colloquial and legacy forms.
|
|
293
|
+
usa: "US",
|
|
294
|
+
"u.s.": "US",
|
|
295
|
+
"u.s.a.": "US",
|
|
296
|
+
"united states of america": "US",
|
|
297
|
+
uk: "GB",
|
|
298
|
+
"u.k.": "GB",
|
|
299
|
+
"great britain": "GB",
|
|
300
|
+
england: "GB",
|
|
301
|
+
scotland: "GB",
|
|
302
|
+
wales: "GB",
|
|
303
|
+
"northern ireland": "GB",
|
|
304
|
+
"czech republic": "CZ",
|
|
305
|
+
turkey: "TR",
|
|
306
|
+
"ivory coast": "CI",
|
|
307
|
+
burma: "MM",
|
|
308
|
+
swaziland: "SZ",
|
|
309
|
+
macedonia: "MK",
|
|
310
|
+
holland: "NL",
|
|
311
|
+
"the netherlands": "NL",
|
|
312
|
+
"south korea": "KR",
|
|
313
|
+
"korea, republic of": "KR",
|
|
314
|
+
"republic of korea": "KR",
|
|
315
|
+
"north korea": "KP",
|
|
316
|
+
"russian federation": "RU",
|
|
317
|
+
vatican: "VA",
|
|
318
|
+
"holy see": "VA",
|
|
319
|
+
palestine: "PS",
|
|
320
|
+
laos: "LA",
|
|
321
|
+
"cape verde": "CV",
|
|
322
|
+
"east timor": "TL",
|
|
323
|
+
uae: "AE",
|
|
324
|
+
"democratic republic of the congo": "CD",
|
|
325
|
+
"republic of the congo": "CG",
|
|
326
|
+
"hong kong": "HK",
|
|
327
|
+
macao: "MO",
|
|
328
|
+
macau: "MO",
|
|
329
|
+
};
|
|
330
|
+
const BY_CODE = new Map(LINKEDIN_COUNTRIES.map(([code, name]) => [code, name]));
|
|
331
|
+
const BY_LOWER_NAME = new Map(LINKEDIN_COUNTRIES.map(([code, name]) => [name.toLowerCase(), code]));
|
|
332
|
+
/**
|
|
333
|
+
* Resolve a provider value — an alpha-2 code, a canonical name, or a known
|
|
334
|
+
* alias — to its canonical LinkedIn country name.
|
|
335
|
+
*
|
|
336
|
+
* Returns null for anything unrecognized, which is deliberate: the column is a
|
|
337
|
+
* select, so writing a value that is not one of its options would produce a
|
|
338
|
+
* cell no filter can match and no dropdown can show. An empty cell is the
|
|
339
|
+
* honest outcome, and the raw payload is still on the record.
|
|
340
|
+
*/
|
|
341
|
+
export function resolveLinkedInCountry(value) {
|
|
342
|
+
if (typeof value !== "string")
|
|
343
|
+
return null;
|
|
344
|
+
const trimmed = value.trim();
|
|
345
|
+
if (!trimmed)
|
|
346
|
+
return null;
|
|
347
|
+
const upper = trimmed.toUpperCase();
|
|
348
|
+
if (upper.length === 2) {
|
|
349
|
+
const direct = BY_CODE.get(upper);
|
|
350
|
+
if (direct)
|
|
351
|
+
return direct;
|
|
352
|
+
}
|
|
353
|
+
const lower = trimmed.toLowerCase();
|
|
354
|
+
const byName = BY_LOWER_NAME.get(lower);
|
|
355
|
+
if (byName)
|
|
356
|
+
return BY_CODE.get(byName) ?? null;
|
|
357
|
+
const aliased = COUNTRY_ALIASES[lower];
|
|
358
|
+
return aliased ? BY_CODE.get(aliased) ?? null : null;
|
|
359
|
+
}
|
|
360
|
+
// The account-owner country also picks a LinkedIn sender's default working-hours zone.
|
|
361
|
+
export { LINKEDIN_COUNTRY_PRIMARY_TIME_ZONES, linkedInCountryPrimaryTimeZone, } from "./linkedin-country-timezones.js";
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Primary IANA time zone for each LinkedIn country code.
|
|
3
|
+
*
|
|
4
|
+
* WHY: a LinkedIn sender's working hours and daily-quota rollover run in the
|
|
5
|
+
* account owner's local time. The only geo signal OXYGEN holds for a new
|
|
6
|
+
* account is the country the owner chose at connect ("where the account owner
|
|
7
|
+
* normally uses LinkedIn"), so that country picks the zone whenever no explicit
|
|
8
|
+
* timezone was stored. Without it every account ran on America/New_York and a
|
|
9
|
+
* German account was active 13:00–04:00 Berlin time.
|
|
10
|
+
*
|
|
11
|
+
* GENERATED once from ICU's region → zone data (`new Intl.Locale("und-XX")
|
|
12
|
+
* .timeZones`) for the codes in LINKEDIN_COUNTRIES, then frozen here so a Node
|
|
13
|
+
* upgrade cannot silently move an account's window. Countries spanning several
|
|
14
|
+
* zones carry the zone of their largest business population (US → New York,
|
|
15
|
+
* CA → Toronto, AU → Sydney, BR → São Paulo, RU → Moscow, …). Territories with
|
|
16
|
+
* no populated zone (AQ, BV, HM) are absent and fall back to the default. An
|
|
17
|
+
* explicit per-account timezone always wins over this table.
|
|
18
|
+
*/
|
|
19
|
+
export declare const LINKEDIN_COUNTRY_PRIMARY_TIME_ZONES: Readonly<Record<string, string>>;
|
|
20
|
+
/**
|
|
21
|
+
* The primary IANA zone for an ISO 3166-1 alpha-2 country code (any case), or
|
|
22
|
+
* null when the code is unknown or has no populated zone.
|
|
23
|
+
*/
|
|
24
|
+
export declare function linkedInCountryPrimaryTimeZone(country: unknown): string | null;
|
|
@@ -0,0 +1,276 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Primary IANA time zone for each LinkedIn country code.
|
|
3
|
+
*
|
|
4
|
+
* WHY: a LinkedIn sender's working hours and daily-quota rollover run in the
|
|
5
|
+
* account owner's local time. The only geo signal OXYGEN holds for a new
|
|
6
|
+
* account is the country the owner chose at connect ("where the account owner
|
|
7
|
+
* normally uses LinkedIn"), so that country picks the zone whenever no explicit
|
|
8
|
+
* timezone was stored. Without it every account ran on America/New_York and a
|
|
9
|
+
* German account was active 13:00–04:00 Berlin time.
|
|
10
|
+
*
|
|
11
|
+
* GENERATED once from ICU's region → zone data (`new Intl.Locale("und-XX")
|
|
12
|
+
* .timeZones`) for the codes in LINKEDIN_COUNTRIES, then frozen here so a Node
|
|
13
|
+
* upgrade cannot silently move an account's window. Countries spanning several
|
|
14
|
+
* zones carry the zone of their largest business population (US → New York,
|
|
15
|
+
* CA → Toronto, AU → Sydney, BR → São Paulo, RU → Moscow, …). Territories with
|
|
16
|
+
* no populated zone (AQ, BV, HM) are absent and fall back to the default. An
|
|
17
|
+
* explicit per-account timezone always wins over this table.
|
|
18
|
+
*/
|
|
19
|
+
export const LINKEDIN_COUNTRY_PRIMARY_TIME_ZONES = {
|
|
20
|
+
AD: "Europe/Andorra",
|
|
21
|
+
AE: "Asia/Dubai",
|
|
22
|
+
AF: "Asia/Kabul",
|
|
23
|
+
AG: "America/Antigua",
|
|
24
|
+
AI: "America/Anguilla",
|
|
25
|
+
AL: "Europe/Tirane",
|
|
26
|
+
AM: "Asia/Yerevan",
|
|
27
|
+
AO: "Africa/Luanda",
|
|
28
|
+
AR: "America/Argentina/Buenos_Aires",
|
|
29
|
+
AS: "Pacific/Pago_Pago",
|
|
30
|
+
AT: "Europe/Vienna",
|
|
31
|
+
AU: "Australia/Sydney",
|
|
32
|
+
AW: "America/Aruba",
|
|
33
|
+
AX: "Europe/Mariehamn",
|
|
34
|
+
AZ: "Asia/Baku",
|
|
35
|
+
BA: "Europe/Sarajevo",
|
|
36
|
+
BB: "America/Barbados",
|
|
37
|
+
BD: "Asia/Dhaka",
|
|
38
|
+
BE: "Europe/Brussels",
|
|
39
|
+
BF: "Africa/Ouagadougou",
|
|
40
|
+
BG: "Europe/Sofia",
|
|
41
|
+
BH: "Asia/Bahrain",
|
|
42
|
+
BI: "Africa/Bujumbura",
|
|
43
|
+
BJ: "Africa/Porto-Novo",
|
|
44
|
+
BL: "America/St_Barthelemy",
|
|
45
|
+
BM: "Atlantic/Bermuda",
|
|
46
|
+
BN: "Asia/Brunei",
|
|
47
|
+
BO: "America/La_Paz",
|
|
48
|
+
BQ: "America/Kralendijk",
|
|
49
|
+
BR: "America/Sao_Paulo",
|
|
50
|
+
BS: "America/Nassau",
|
|
51
|
+
BT: "Asia/Thimphu",
|
|
52
|
+
BW: "Africa/Gaborone",
|
|
53
|
+
BY: "Europe/Minsk",
|
|
54
|
+
BZ: "America/Belize",
|
|
55
|
+
CA: "America/Toronto",
|
|
56
|
+
CC: "Indian/Cocos",
|
|
57
|
+
CD: "Africa/Kinshasa",
|
|
58
|
+
CF: "Africa/Bangui",
|
|
59
|
+
CG: "Africa/Brazzaville",
|
|
60
|
+
CH: "Europe/Zurich",
|
|
61
|
+
CI: "Africa/Abidjan",
|
|
62
|
+
CK: "Pacific/Rarotonga",
|
|
63
|
+
CL: "America/Santiago",
|
|
64
|
+
CM: "Africa/Douala",
|
|
65
|
+
CN: "Asia/Shanghai",
|
|
66
|
+
CO: "America/Bogota",
|
|
67
|
+
CR: "America/Costa_Rica",
|
|
68
|
+
CU: "America/Havana",
|
|
69
|
+
CV: "Atlantic/Cape_Verde",
|
|
70
|
+
CW: "America/Curacao",
|
|
71
|
+
CX: "Indian/Christmas",
|
|
72
|
+
CY: "Asia/Nicosia",
|
|
73
|
+
CZ: "Europe/Prague",
|
|
74
|
+
DE: "Europe/Berlin",
|
|
75
|
+
DJ: "Africa/Djibouti",
|
|
76
|
+
DK: "Europe/Copenhagen",
|
|
77
|
+
DM: "America/Dominica",
|
|
78
|
+
DO: "America/Santo_Domingo",
|
|
79
|
+
DZ: "Africa/Algiers",
|
|
80
|
+
EC: "America/Guayaquil",
|
|
81
|
+
EE: "Europe/Tallinn",
|
|
82
|
+
EG: "Africa/Cairo",
|
|
83
|
+
EH: "Africa/El_Aaiun",
|
|
84
|
+
ER: "Africa/Asmara",
|
|
85
|
+
ES: "Europe/Madrid",
|
|
86
|
+
ET: "Africa/Addis_Ababa",
|
|
87
|
+
FI: "Europe/Helsinki",
|
|
88
|
+
FJ: "Pacific/Fiji",
|
|
89
|
+
FK: "Atlantic/Stanley",
|
|
90
|
+
FM: "Pacific/Pohnpei",
|
|
91
|
+
FO: "Atlantic/Faroe",
|
|
92
|
+
FR: "Europe/Paris",
|
|
93
|
+
GA: "Africa/Libreville",
|
|
94
|
+
GB: "Europe/London",
|
|
95
|
+
GD: "America/Grenada",
|
|
96
|
+
GE: "Asia/Tbilisi",
|
|
97
|
+
GF: "America/Cayenne",
|
|
98
|
+
GG: "Europe/Guernsey",
|
|
99
|
+
GH: "Africa/Accra",
|
|
100
|
+
GI: "Europe/Gibraltar",
|
|
101
|
+
GL: "America/Nuuk",
|
|
102
|
+
GM: "Africa/Banjul",
|
|
103
|
+
GN: "Africa/Conakry",
|
|
104
|
+
GP: "America/Guadeloupe",
|
|
105
|
+
GQ: "Africa/Malabo",
|
|
106
|
+
GR: "Europe/Athens",
|
|
107
|
+
GS: "Atlantic/South_Georgia",
|
|
108
|
+
GT: "America/Guatemala",
|
|
109
|
+
GU: "Pacific/Guam",
|
|
110
|
+
GW: "Africa/Bissau",
|
|
111
|
+
GY: "America/Guyana",
|
|
112
|
+
HK: "Asia/Hong_Kong",
|
|
113
|
+
HN: "America/Tegucigalpa",
|
|
114
|
+
HR: "Europe/Zagreb",
|
|
115
|
+
HT: "America/Port-au-Prince",
|
|
116
|
+
HU: "Europe/Budapest",
|
|
117
|
+
ID: "Asia/Jakarta",
|
|
118
|
+
IE: "Europe/Dublin",
|
|
119
|
+
IL: "Asia/Jerusalem",
|
|
120
|
+
IM: "Europe/Isle_of_Man",
|
|
121
|
+
IN: "Asia/Kolkata",
|
|
122
|
+
IO: "Indian/Chagos",
|
|
123
|
+
IQ: "Asia/Baghdad",
|
|
124
|
+
IR: "Asia/Tehran",
|
|
125
|
+
IS: "Atlantic/Reykjavik",
|
|
126
|
+
IT: "Europe/Rome",
|
|
127
|
+
JE: "Europe/Jersey",
|
|
128
|
+
JM: "America/Jamaica",
|
|
129
|
+
JO: "Asia/Amman",
|
|
130
|
+
JP: "Asia/Tokyo",
|
|
131
|
+
KE: "Africa/Nairobi",
|
|
132
|
+
KG: "Asia/Bishkek",
|
|
133
|
+
KH: "Asia/Phnom_Penh",
|
|
134
|
+
KI: "Pacific/Tarawa",
|
|
135
|
+
KM: "Indian/Comoro",
|
|
136
|
+
KN: "America/St_Kitts",
|
|
137
|
+
KP: "Asia/Pyongyang",
|
|
138
|
+
KR: "Asia/Seoul",
|
|
139
|
+
KW: "Asia/Kuwait",
|
|
140
|
+
KY: "America/Cayman",
|
|
141
|
+
KZ: "Asia/Almaty",
|
|
142
|
+
LA: "Asia/Vientiane",
|
|
143
|
+
LB: "Asia/Beirut",
|
|
144
|
+
LC: "America/St_Lucia",
|
|
145
|
+
LI: "Europe/Vaduz",
|
|
146
|
+
LK: "Asia/Colombo",
|
|
147
|
+
LR: "Africa/Monrovia",
|
|
148
|
+
LS: "Africa/Maseru",
|
|
149
|
+
LT: "Europe/Vilnius",
|
|
150
|
+
LU: "Europe/Luxembourg",
|
|
151
|
+
LV: "Europe/Riga",
|
|
152
|
+
LY: "Africa/Tripoli",
|
|
153
|
+
MA: "Africa/Casablanca",
|
|
154
|
+
MC: "Europe/Monaco",
|
|
155
|
+
MD: "Europe/Chisinau",
|
|
156
|
+
ME: "Europe/Podgorica",
|
|
157
|
+
MF: "America/Marigot",
|
|
158
|
+
MG: "Indian/Antananarivo",
|
|
159
|
+
MH: "Pacific/Majuro",
|
|
160
|
+
MK: "Europe/Skopje",
|
|
161
|
+
ML: "Africa/Bamako",
|
|
162
|
+
MM: "Asia/Yangon",
|
|
163
|
+
MN: "Asia/Ulaanbaatar",
|
|
164
|
+
MO: "Asia/Macau",
|
|
165
|
+
MP: "Pacific/Saipan",
|
|
166
|
+
MQ: "America/Martinique",
|
|
167
|
+
MR: "Africa/Nouakchott",
|
|
168
|
+
MS: "America/Montserrat",
|
|
169
|
+
MT: "Europe/Malta",
|
|
170
|
+
MU: "Indian/Mauritius",
|
|
171
|
+
MV: "Indian/Maldives",
|
|
172
|
+
MW: "Africa/Blantyre",
|
|
173
|
+
MX: "America/Mexico_City",
|
|
174
|
+
MY: "Asia/Kuala_Lumpur",
|
|
175
|
+
MZ: "Africa/Maputo",
|
|
176
|
+
NA: "Africa/Windhoek",
|
|
177
|
+
NC: "Pacific/Noumea",
|
|
178
|
+
NE: "Africa/Niamey",
|
|
179
|
+
NF: "Pacific/Norfolk",
|
|
180
|
+
NG: "Africa/Lagos",
|
|
181
|
+
NI: "America/Managua",
|
|
182
|
+
NL: "Europe/Amsterdam",
|
|
183
|
+
NO: "Europe/Oslo",
|
|
184
|
+
NP: "Asia/Kathmandu",
|
|
185
|
+
NR: "Pacific/Nauru",
|
|
186
|
+
NU: "Pacific/Niue",
|
|
187
|
+
NZ: "Pacific/Auckland",
|
|
188
|
+
OM: "Asia/Muscat",
|
|
189
|
+
PA: "America/Panama",
|
|
190
|
+
PE: "America/Lima",
|
|
191
|
+
PF: "Pacific/Tahiti",
|
|
192
|
+
PG: "Pacific/Port_Moresby",
|
|
193
|
+
PH: "Asia/Manila",
|
|
194
|
+
PK: "Asia/Karachi",
|
|
195
|
+
PL: "Europe/Warsaw",
|
|
196
|
+
PM: "America/Miquelon",
|
|
197
|
+
PN: "Pacific/Pitcairn",
|
|
198
|
+
PR: "America/Puerto_Rico",
|
|
199
|
+
PS: "Asia/Hebron",
|
|
200
|
+
PT: "Europe/Lisbon",
|
|
201
|
+
PW: "Pacific/Palau",
|
|
202
|
+
PY: "America/Asuncion",
|
|
203
|
+
QA: "Asia/Qatar",
|
|
204
|
+
RE: "Indian/Reunion",
|
|
205
|
+
RO: "Europe/Bucharest",
|
|
206
|
+
RS: "Europe/Belgrade",
|
|
207
|
+
RU: "Europe/Moscow",
|
|
208
|
+
RW: "Africa/Kigali",
|
|
209
|
+
SA: "Asia/Riyadh",
|
|
210
|
+
SB: "Pacific/Guadalcanal",
|
|
211
|
+
SC: "Indian/Mahe",
|
|
212
|
+
SD: "Africa/Khartoum",
|
|
213
|
+
SE: "Europe/Stockholm",
|
|
214
|
+
SG: "Asia/Singapore",
|
|
215
|
+
SH: "Atlantic/St_Helena",
|
|
216
|
+
SI: "Europe/Ljubljana",
|
|
217
|
+
SJ: "Arctic/Longyearbyen",
|
|
218
|
+
SK: "Europe/Bratislava",
|
|
219
|
+
SL: "Africa/Freetown",
|
|
220
|
+
SM: "Europe/San_Marino",
|
|
221
|
+
SN: "Africa/Dakar",
|
|
222
|
+
SO: "Africa/Mogadishu",
|
|
223
|
+
SR: "America/Paramaribo",
|
|
224
|
+
SS: "Africa/Juba",
|
|
225
|
+
ST: "Africa/Sao_Tome",
|
|
226
|
+
SV: "America/El_Salvador",
|
|
227
|
+
SX: "America/Lower_Princes",
|
|
228
|
+
SY: "Asia/Damascus",
|
|
229
|
+
SZ: "Africa/Mbabane",
|
|
230
|
+
TC: "America/Grand_Turk",
|
|
231
|
+
TD: "Africa/Ndjamena",
|
|
232
|
+
TF: "Indian/Kerguelen",
|
|
233
|
+
TG: "Africa/Lome",
|
|
234
|
+
TH: "Asia/Bangkok",
|
|
235
|
+
TJ: "Asia/Dushanbe",
|
|
236
|
+
TK: "Pacific/Fakaofo",
|
|
237
|
+
TL: "Asia/Dili",
|
|
238
|
+
TM: "Asia/Ashgabat",
|
|
239
|
+
TN: "Africa/Tunis",
|
|
240
|
+
TO: "Pacific/Tongatapu",
|
|
241
|
+
TR: "Europe/Istanbul",
|
|
242
|
+
TT: "America/Port_of_Spain",
|
|
243
|
+
TV: "Pacific/Funafuti",
|
|
244
|
+
TW: "Asia/Taipei",
|
|
245
|
+
TZ: "Africa/Dar_es_Salaam",
|
|
246
|
+
UA: "Europe/Kyiv",
|
|
247
|
+
UG: "Africa/Kampala",
|
|
248
|
+
UM: "Pacific/Midway",
|
|
249
|
+
US: "America/New_York",
|
|
250
|
+
UY: "America/Montevideo",
|
|
251
|
+
UZ: "Asia/Tashkent",
|
|
252
|
+
VA: "Europe/Vatican",
|
|
253
|
+
VC: "America/St_Vincent",
|
|
254
|
+
VE: "America/Caracas",
|
|
255
|
+
VG: "America/Tortola",
|
|
256
|
+
VI: "America/St_Thomas",
|
|
257
|
+
VN: "Asia/Ho_Chi_Minh",
|
|
258
|
+
VU: "Pacific/Efate",
|
|
259
|
+
WF: "Pacific/Wallis",
|
|
260
|
+
WS: "Pacific/Apia",
|
|
261
|
+
XK: "Europe/Belgrade",
|
|
262
|
+
YE: "Asia/Aden",
|
|
263
|
+
YT: "Indian/Mayotte",
|
|
264
|
+
ZA: "Africa/Johannesburg",
|
|
265
|
+
ZM: "Africa/Lusaka",
|
|
266
|
+
ZW: "Africa/Harare",
|
|
267
|
+
};
|
|
268
|
+
/**
|
|
269
|
+
* The primary IANA zone for an ISO 3166-1 alpha-2 country code (any case), or
|
|
270
|
+
* null when the code is unknown or has no populated zone.
|
|
271
|
+
*/
|
|
272
|
+
export function linkedInCountryPrimaryTimeZone(country) {
|
|
273
|
+
if (typeof country !== "string")
|
|
274
|
+
return null;
|
|
275
|
+
return LINKEDIN_COUNTRY_PRIMARY_TIME_ZONES[country.trim().toUpperCase()] ?? null;
|
|
276
|
+
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/** LinkedIn permits revoking a sent message only during its first hour. */
|
|
2
|
+
export function linkedInMessageDeletionWindowOpen(sentAt, now = Date.now()) {
|
|
3
|
+
const sent = sentAt instanceof Date ? sentAt.getTime() : sentAt ? Date.parse(sentAt) : NaN;
|
|
4
|
+
return Number.isFinite(sent) && sent <= now && now - sent < 60 * 60 * 1000;
|
|
5
|
+
}
|