@harborclient/sdk 0.4.5 → 0.5.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 (178) hide show
  1. package/dist/components/AsyncListState/index.d.ts +85 -0
  2. package/dist/components/AsyncListState/index.d.ts.map +1 -0
  3. package/dist/components/AsyncListState/index.js +51 -0
  4. package/dist/components/BackButton/index.d.ts +32 -0
  5. package/dist/components/BackButton/index.d.ts.map +1 -0
  6. package/dist/components/BackButton/index.js +19 -0
  7. package/dist/components/Badge/index.d.ts +29 -0
  8. package/dist/components/Badge/index.d.ts.map +1 -0
  9. package/dist/components/Badge/index.js +32 -0
  10. package/dist/components/BusyIndicator/index.d.ts +16 -0
  11. package/dist/components/BusyIndicator/index.d.ts.map +1 -0
  12. package/dist/components/BusyIndicator/index.js +78 -0
  13. package/dist/components/Button/index.d.ts +29 -0
  14. package/dist/components/Button/index.d.ts.map +1 -0
  15. package/dist/components/Button/index.js +25 -0
  16. package/dist/components/CodeEditor/config.d.ts +51 -0
  17. package/dist/components/CodeEditor/config.d.ts.map +1 -0
  18. package/dist/components/CodeEditor/config.js +64 -0
  19. package/dist/components/CodeEditor/index.d.ts +77 -0
  20. package/dist/components/CodeEditor/index.d.ts.map +1 -0
  21. package/dist/components/CodeEditor/index.js +319 -0
  22. package/dist/components/CodeEditor/themes.d.ts +19 -0
  23. package/dist/components/CodeEditor/themes.d.ts.map +1 -0
  24. package/dist/components/CodeEditor/themes.js +37 -0
  25. package/dist/components/EmptyState/index.d.ts +26 -0
  26. package/dist/components/EmptyState/index.d.ts.map +1 -0
  27. package/dist/components/EmptyState/index.js +25 -0
  28. package/dist/components/FaIcon/index.d.ts +22 -0
  29. package/dist/components/FaIcon/index.d.ts.map +1 -0
  30. package/dist/components/FaIcon/index.js +13 -0
  31. package/dist/components/FieldError/index.d.ts +39 -0
  32. package/dist/components/FieldError/index.d.ts.map +1 -0
  33. package/dist/components/FieldError/index.js +34 -0
  34. package/dist/components/FooterButton/index.d.ts +30 -0
  35. package/dist/components/FooterButton/index.d.ts.map +1 -0
  36. package/dist/components/FooterButton/index.js +19 -0
  37. package/dist/components/FooterIcon/index.d.ts +32 -0
  38. package/dist/components/FooterIcon/index.d.ts.map +1 -0
  39. package/dist/components/FooterIcon/index.js +21 -0
  40. package/dist/components/FormDataEditor/index.d.ts +31 -0
  41. package/dist/components/FormDataEditor/index.d.ts.map +1 -0
  42. package/dist/components/FormDataEditor/index.js +109 -0
  43. package/dist/components/FormGroup/index.d.ts +75 -0
  44. package/dist/components/FormGroup/index.d.ts.map +1 -0
  45. package/dist/components/FormGroup/index.js +95 -0
  46. package/dist/components/KeyValueEditor/index.d.ts +35 -0
  47. package/dist/components/KeyValueEditor/index.d.ts.map +1 -0
  48. package/dist/components/KeyValueEditor/index.js +40 -0
  49. package/dist/components/MethodSelect/index.d.ts +20 -0
  50. package/dist/components/MethodSelect/index.d.ts.map +1 -0
  51. package/dist/components/MethodSelect/index.js +9 -0
  52. package/dist/components/Modal/ModalFooter.d.ts +25 -0
  53. package/dist/components/Modal/ModalFooter.d.ts.map +1 -0
  54. package/dist/components/Modal/ModalFooter.js +13 -0
  55. package/dist/components/Modal/ModalFormLayout.d.ts +31 -0
  56. package/dist/components/Modal/ModalFormLayout.d.ts.map +1 -0
  57. package/dist/components/Modal/ModalFormLayout.js +14 -0
  58. package/dist/components/Modal/ModalHeader.d.ts +34 -0
  59. package/dist/components/Modal/ModalHeader.d.ts.map +1 -0
  60. package/dist/components/Modal/ModalHeader.js +11 -0
  61. package/dist/components/Modal/index.d.ts +59 -0
  62. package/dist/components/Modal/index.d.ts.map +1 -0
  63. package/dist/components/Modal/index.js +37 -0
  64. package/dist/components/OverlayCloseButton/index.d.ts +25 -0
  65. package/dist/components/OverlayCloseButton/index.d.ts.map +1 -0
  66. package/dist/components/OverlayCloseButton/index.js +16 -0
  67. package/dist/components/OverlayPage/index.d.ts +40 -0
  68. package/dist/components/OverlayPage/index.d.ts.map +1 -0
  69. package/dist/components/OverlayPage/index.js +18 -0
  70. package/dist/components/PageHeader/index.d.ts +31 -0
  71. package/dist/components/PageHeader/index.d.ts.map +1 -0
  72. package/dist/components/PageHeader/index.js +12 -0
  73. package/dist/components/PanelCloseButton/index.d.ts +30 -0
  74. package/dist/components/PanelCloseButton/index.d.ts.map +1 -0
  75. package/dist/components/PanelCloseButton/index.js +17 -0
  76. package/dist/components/Resizable/Resizable.d.ts +48 -0
  77. package/dist/components/Resizable/Resizable.d.ts.map +1 -0
  78. package/dist/components/Resizable/Resizable.js +32 -0
  79. package/dist/components/Resizable/ResizeHandle.d.ts +41 -0
  80. package/dist/components/Resizable/ResizeHandle.d.ts.map +1 -0
  81. package/dist/components/Resizable/ResizeHandle.js +17 -0
  82. package/dist/components/Resizable/footerPanelUtils.d.ts +25 -0
  83. package/dist/components/Resizable/footerPanelUtils.d.ts.map +1 -0
  84. package/dist/components/Resizable/footerPanelUtils.js +59 -0
  85. package/dist/components/Resizable/index.d.ts +4 -0
  86. package/dist/components/Resizable/index.d.ts.map +1 -0
  87. package/dist/components/Resizable/index.js +3 -0
  88. package/dist/components/Resizable/useResizable.d.ts +42 -0
  89. package/dist/components/Resizable/useResizable.d.ts.map +1 -0
  90. package/dist/components/Resizable/useResizable.js +151 -0
  91. package/dist/components/ResourceList/index.d.ts +73 -0
  92. package/dist/components/ResourceList/index.d.ts.map +1 -0
  93. package/dist/components/ResourceList/index.js +44 -0
  94. package/dist/components/RowActionsMenu/index.d.ts +33 -0
  95. package/dist/components/RowActionsMenu/index.d.ts.map +1 -0
  96. package/dist/components/RowActionsMenu/index.js +54 -0
  97. package/dist/components/SegmentedTabs/index.d.ts +107 -0
  98. package/dist/components/SegmentedTabs/index.d.ts.map +1 -0
  99. package/dist/components/SegmentedTabs/index.js +111 -0
  100. package/dist/components/Spinner/index.d.ts +26 -0
  101. package/dist/components/Spinner/index.d.ts.map +1 -0
  102. package/dist/components/Spinner/index.js +22 -0
  103. package/dist/components/StatusMessage/index.d.ts +29 -0
  104. package/dist/components/StatusMessage/index.d.ts.map +1 -0
  105. package/dist/components/StatusMessage/index.js +13 -0
  106. package/dist/components/TabCloseButton/index.d.ts +25 -0
  107. package/dist/components/TabCloseButton/index.d.ts.map +1 -0
  108. package/dist/components/TabCloseButton/index.js +13 -0
  109. package/dist/components/VariableInput/index.d.ts +58 -0
  110. package/dist/components/VariableInput/index.d.ts.map +1 -0
  111. package/dist/components/VariableInput/index.js +90 -0
  112. package/dist/components/VariableTable/index.d.ts +22 -0
  113. package/dist/components/VariableTable/index.d.ts.map +1 -0
  114. package/dist/components/VariableTable/index.js +43 -0
  115. package/dist/components/classes.d.ts +11 -0
  116. package/dist/components/classes.d.ts.map +1 -0
  117. package/dist/components/classes.js +14 -0
  118. package/dist/components/forms/Input.d.ts +22 -0
  119. package/dist/components/forms/Input.d.ts.map +1 -0
  120. package/dist/components/forms/Input.js +9 -0
  121. package/dist/components/forms/Select.d.ts +24 -0
  122. package/dist/components/forms/Select.d.ts.map +1 -0
  123. package/dist/components/forms/Select.js +10 -0
  124. package/dist/components/forms/Textarea.d.ts +22 -0
  125. package/dist/components/forms/Textarea.d.ts.map +1 -0
  126. package/dist/components/forms/Textarea.js +8 -0
  127. package/dist/components/forms/classes.d.ts +24 -0
  128. package/dist/components/forms/classes.d.ts.map +1 -0
  129. package/dist/components/forms/classes.js +32 -0
  130. package/dist/components/forms/index.d.ts +5 -0
  131. package/dist/components/forms/index.d.ts.map +1 -0
  132. package/dist/components/forms/index.js +4 -0
  133. package/dist/components/index.d.ts +51 -0
  134. package/dist/components/index.d.ts.map +1 -0
  135. package/dist/components/index.js +37 -0
  136. package/dist/components/rowActionsMenuHelpers.d.ts +13 -0
  137. package/dist/components/rowActionsMenuHelpers.d.ts.map +1 -0
  138. package/dist/components/rowActionsMenuHelpers.js +29 -0
  139. package/dist/components/useDialogFocus.d.ts +16 -0
  140. package/dist/components/useDialogFocus.d.ts.map +1 -0
  141. package/dist/components/useDialogFocus.js +81 -0
  142. package/dist/components/utils.d.ts +29 -0
  143. package/dist/components/utils.d.ts.map +1 -0
  144. package/dist/components/utils.js +89 -0
  145. package/dist/components/utils.test.d.ts +2 -0
  146. package/dist/components/utils.test.d.ts.map +1 -0
  147. package/dist/components/utils.test.js +27 -0
  148. package/dist/http/substitute.d.ts.map +1 -1
  149. package/dist/http/substitute.js +9 -3
  150. package/dist/http/substitute.test.js +8 -0
  151. package/dist/main.d.ts +1 -1
  152. package/dist/main.d.ts.map +1 -1
  153. package/dist/runtime/react.d.ts +16 -1
  154. package/dist/runtime/react.js +40 -0
  155. package/dist/types.d.ts +105 -2
  156. package/dist/types.d.ts.map +1 -1
  157. package/dist/ui/codeEditorSettings.d.ts +29 -0
  158. package/dist/ui/codeEditorSettings.d.ts.map +1 -0
  159. package/dist/ui/codeEditorSettings.js +52 -0
  160. package/dist/ui/index.d.ts +1 -0
  161. package/dist/ui/index.d.ts.map +1 -1
  162. package/dist/ui/index.js +1 -0
  163. package/dist/variables/dynamic.d.ts +49 -0
  164. package/dist/variables/dynamic.d.ts.map +1 -0
  165. package/dist/variables/dynamic.js +735 -0
  166. package/dist/variables/dynamic.test.d.ts +2 -0
  167. package/dist/variables/dynamic.test.d.ts.map +1 -0
  168. package/dist/variables/dynamic.test.js +60 -0
  169. package/dist/variables/index.d.ts +3 -0
  170. package/dist/variables/index.d.ts.map +1 -0
  171. package/dist/variables/index.js +2 -0
  172. package/dist/variables/tokens.d.ts +44 -0
  173. package/dist/variables/tokens.d.ts.map +1 -0
  174. package/dist/variables/tokens.js +76 -0
  175. package/dist/variables/tokens.test.d.ts +2 -0
  176. package/dist/variables/tokens.test.d.ts.map +1 -0
  177. package/dist/variables/tokens.test.js +115 -0
  178. package/package.json +75 -14
@@ -0,0 +1,735 @@
1
+ import { faker } from '@faker-js/faker';
2
+ /**
3
+ * Returns a placeholder image URL for a lorempixel-style category.
4
+ *
5
+ * @param category - Image subject category.
6
+ */
7
+ function categoryImageUrl(category) {
8
+ return faker.image.urlLoremFlickr({ category });
9
+ }
10
+ /**
11
+ * Registry of Postman-compatible dynamic variables backed by faker or built-ins.
12
+ * Keys include the leading `$` (e.g. `$guid`, `$randomFirstName`).
13
+ */
14
+ export const DYNAMIC_VARIABLES = {
15
+ // Common
16
+ $guid: {
17
+ description: 'A uuid-v4 style guid',
18
+ generate: () => faker.string.uuid()
19
+ },
20
+ $timestamp: {
21
+ description: 'The current UNIX timestamp in seconds',
22
+ generate: () => String(Math.floor(Date.now() / 1000))
23
+ },
24
+ $isoTimestamp: {
25
+ description: 'The current ISO timestamp at zero UTC',
26
+ generate: () => new Date().toISOString()
27
+ },
28
+ $randomUUID: {
29
+ description: 'A random 36-character UUID',
30
+ generate: () => faker.string.uuid()
31
+ },
32
+ // Text, numbers, and colors
33
+ $randomAlphaNumeric: {
34
+ description: 'A random alpha-numeric character',
35
+ generate: () => faker.string.alphanumeric(1)
36
+ },
37
+ $randomBoolean: {
38
+ description: 'A random boolean value',
39
+ generate: () => String(faker.datatype.boolean())
40
+ },
41
+ $randomInt: {
42
+ description: 'A random integer between 0 and 1000',
43
+ generate: () => String(faker.number.int({ min: 0, max: 1000 }))
44
+ },
45
+ $randomColor: {
46
+ description: 'A random color name',
47
+ generate: () => faker.color.human()
48
+ },
49
+ $randomHexColor: {
50
+ description: 'A random hex color value',
51
+ generate: () => faker.color.rgb({ format: 'hex' })
52
+ },
53
+ $randomAbbreviation: {
54
+ description: 'A random abbreviation',
55
+ generate: () => faker.hacker.abbreviation()
56
+ },
57
+ // Internet and IP addresses
58
+ $randomIP: {
59
+ description: 'A random IPv4 address',
60
+ generate: () => faker.internet.ipv4()
61
+ },
62
+ $randomIPV6: {
63
+ description: 'A random IPv6 address',
64
+ generate: () => faker.internet.ipv6()
65
+ },
66
+ $randomMACAddress: {
67
+ description: 'A random MAC address',
68
+ generate: () => faker.internet.mac()
69
+ },
70
+ $randomPassword: {
71
+ description: 'A random 15-character alpha-numeric password',
72
+ generate: () => faker.internet.password({ length: 15 })
73
+ },
74
+ $randomLocale: {
75
+ description: 'A random two-letter language code (ISO 639-1)',
76
+ generate: () => faker.location.language().alpha2
77
+ },
78
+ $randomUserAgent: {
79
+ description: 'A random user agent string',
80
+ generate: () => faker.internet.userAgent()
81
+ },
82
+ $randomProtocol: {
83
+ description: 'A random internet protocol',
84
+ generate: () => faker.helpers.arrayElement(['http', 'https'])
85
+ },
86
+ $randomSemver: {
87
+ description: 'A random semantic version number',
88
+ generate: () => faker.system.semver()
89
+ },
90
+ // Names
91
+ $randomFirstName: {
92
+ description: 'A random first name',
93
+ generate: () => faker.person.firstName()
94
+ },
95
+ $randomLastName: {
96
+ description: 'A random last name',
97
+ generate: () => faker.person.lastName()
98
+ },
99
+ $randomFullName: {
100
+ description: 'A random first and last name',
101
+ generate: () => faker.person.fullName()
102
+ },
103
+ $randomNamePrefix: {
104
+ description: 'A random name prefix',
105
+ generate: () => faker.person.prefix()
106
+ },
107
+ $randomNameSuffix: {
108
+ description: 'A random name suffix',
109
+ generate: () => faker.person.suffix()
110
+ },
111
+ // Profession
112
+ $randomJobArea: {
113
+ description: 'A random job area',
114
+ generate: () => faker.person.jobArea()
115
+ },
116
+ $randomJobDescriptor: {
117
+ description: 'A random job descriptor',
118
+ generate: () => faker.person.jobDescriptor()
119
+ },
120
+ $randomJobTitle: {
121
+ description: 'A random job title',
122
+ generate: () => faker.person.jobTitle()
123
+ },
124
+ $randomJobType: {
125
+ description: 'A random job type',
126
+ generate: () => faker.person.jobType()
127
+ },
128
+ // Phone, address, and location
129
+ $randomPhoneNumber: {
130
+ description: 'A random ten-digit phone number',
131
+ generate: () => faker.phone.number({ style: 'national' })
132
+ },
133
+ $randomPhoneNumberExt: {
134
+ description: 'A random phone number with extension',
135
+ generate: () => `${faker.phone.number()} x${faker.string.numeric(4)}`
136
+ },
137
+ $randomCity: {
138
+ description: 'A random city name',
139
+ generate: () => faker.location.city()
140
+ },
141
+ $randomStreetName: {
142
+ description: 'A random street name',
143
+ generate: () => faker.location.street()
144
+ },
145
+ $randomStreetAddress: {
146
+ description: 'A random street address',
147
+ generate: () => faker.location.streetAddress()
148
+ },
149
+ $randomCountry: {
150
+ description: 'A random country name',
151
+ generate: () => faker.location.country()
152
+ },
153
+ $randomCountryCode: {
154
+ description: 'A random two-letter country code (ISO 3166-1 alpha-2)',
155
+ generate: () => faker.location.countryCode()
156
+ },
157
+ $randomLatitude: {
158
+ description: 'A random latitude coordinate',
159
+ generate: () => String(faker.location.latitude())
160
+ },
161
+ $randomLongitude: {
162
+ description: 'A random longitude coordinate',
163
+ generate: () => String(faker.location.longitude())
164
+ },
165
+ // Images
166
+ $randomAvatarImage: {
167
+ description: 'A random avatar image URL',
168
+ generate: () => faker.image.avatar()
169
+ },
170
+ $randomImageUrl: {
171
+ description: 'A URL of a random image',
172
+ generate: () => faker.image.url()
173
+ },
174
+ $randomAbstractImage: {
175
+ description: 'A URL of a random abstract image',
176
+ generate: () => categoryImageUrl('abstract')
177
+ },
178
+ $randomAnimalsImage: {
179
+ description: 'A URL of a random animal image',
180
+ generate: () => categoryImageUrl('animals')
181
+ },
182
+ $randomBusinessImage: {
183
+ description: 'A URL of a random stock business image',
184
+ generate: () => categoryImageUrl('business')
185
+ },
186
+ $randomCatsImage: {
187
+ description: 'A URL of a random cat image',
188
+ generate: () => categoryImageUrl('cats')
189
+ },
190
+ $randomCityImage: {
191
+ description: 'A URL of a random city image',
192
+ generate: () => categoryImageUrl('city')
193
+ },
194
+ $randomFoodImage: {
195
+ description: 'A URL of a random food image',
196
+ generate: () => categoryImageUrl('food')
197
+ },
198
+ $randomNightlifeImage: {
199
+ description: 'A URL of a random nightlife image',
200
+ generate: () => categoryImageUrl('nightlife')
201
+ },
202
+ $randomFashionImage: {
203
+ description: 'A URL of a random fashion image',
204
+ generate: () => categoryImageUrl('fashion')
205
+ },
206
+ $randomPeopleImage: {
207
+ description: 'A URL of a random image of a person',
208
+ generate: () => categoryImageUrl('people')
209
+ },
210
+ $randomNatureImage: {
211
+ description: 'A URL of a random nature image',
212
+ generate: () => categoryImageUrl('nature')
213
+ },
214
+ $randomSportsImage: {
215
+ description: 'A URL of a random sports image',
216
+ generate: () => categoryImageUrl('sports')
217
+ },
218
+ $randomTransportImage: {
219
+ description: 'A URL of a random transportation image',
220
+ generate: () => categoryImageUrl('transport')
221
+ },
222
+ $randomImageDataUri: {
223
+ description: 'A random image data URI',
224
+ generate: () => faker.image.dataUri()
225
+ },
226
+ // Finance
227
+ $randomBankAccount: {
228
+ description: 'A random 8-digit bank account number',
229
+ generate: () => faker.finance.accountNumber(8)
230
+ },
231
+ $randomBankAccountName: {
232
+ description: 'A random bank account name',
233
+ generate: () => faker.finance.accountName()
234
+ },
235
+ $randomCreditCardMask: {
236
+ description: 'A random masked credit card number (last four digits)',
237
+ generate: () => faker.finance.creditCardNumber().slice(-4)
238
+ },
239
+ $randomBankAccountBic: {
240
+ description: 'A random BIC (Bank Identifier Code)',
241
+ generate: () => faker.finance.bic()
242
+ },
243
+ $randomBankAccountIban: {
244
+ description: 'A random IBAN (International Bank Account Number)',
245
+ generate: () => faker.finance.iban()
246
+ },
247
+ $randomTransactionType: {
248
+ description: 'A random transaction type',
249
+ generate: () => faker.helpers.arrayElement(['invoice', 'payment', 'deposit'])
250
+ },
251
+ $randomCurrencyCode: {
252
+ description: 'A random 3-letter currency code (ISO-4217)',
253
+ generate: () => faker.finance.currencyCode()
254
+ },
255
+ $randomCurrencyName: {
256
+ description: 'A random currency name',
257
+ generate: () => faker.finance.currencyName()
258
+ },
259
+ $randomCurrencySymbol: {
260
+ description: 'A random currency symbol',
261
+ generate: () => faker.finance.currencySymbol()
262
+ },
263
+ $randomBitcoin: {
264
+ description: 'A random bitcoin address',
265
+ generate: () => faker.finance.bitcoinAddress()
266
+ },
267
+ // Business
268
+ $randomCompanyName: {
269
+ description: 'A random company name',
270
+ generate: () => faker.company.name()
271
+ },
272
+ $randomCompanySuffix: {
273
+ description: 'A random company suffix',
274
+ generate: () => faker.helpers.arrayElement(['Inc', 'LLC', 'Group', 'Ltd', 'Corp'])
275
+ },
276
+ $randomBs: {
277
+ description: 'A random phrase of business-speak',
278
+ generate: () => faker.company.catchPhrase()
279
+ },
280
+ $randomBsAdjective: {
281
+ description: 'A random business-speak adjective',
282
+ generate: () => faker.company.buzzAdjective()
283
+ },
284
+ $randomBsBuzz: {
285
+ description: 'A random business-speak buzzword',
286
+ generate: () => faker.company.buzzVerb()
287
+ },
288
+ $randomBsNoun: {
289
+ description: 'A random business-speak noun',
290
+ generate: () => faker.company.buzzNoun()
291
+ },
292
+ // Catchphrases
293
+ $randomCatchPhrase: {
294
+ description: 'A random catchphrase',
295
+ generate: () => faker.company.catchPhrase()
296
+ },
297
+ $randomCatchPhraseAdjective: {
298
+ description: 'A random catchphrase adjective',
299
+ generate: () => faker.company.catchPhraseAdjective()
300
+ },
301
+ $randomCatchPhraseDescriptor: {
302
+ description: 'A random catchphrase descriptor',
303
+ generate: () => faker.company.catchPhraseDescriptor()
304
+ },
305
+ $randomCatchPhraseNoun: {
306
+ description: 'A random catchphrase noun',
307
+ generate: () => faker.company.catchPhraseNoun()
308
+ },
309
+ // Databases
310
+ $randomDatabaseColumn: {
311
+ description: 'A random database column name',
312
+ generate: () => faker.database.column()
313
+ },
314
+ $randomDatabaseType: {
315
+ description: 'A random database type',
316
+ generate: () => faker.database.type()
317
+ },
318
+ $randomDatabaseCollation: {
319
+ description: 'A random database collation',
320
+ generate: () => faker.database.collation()
321
+ },
322
+ $randomDatabaseEngine: {
323
+ description: 'A random database engine',
324
+ generate: () => faker.database.engine()
325
+ },
326
+ // Dates
327
+ $randomDateFuture: {
328
+ description: 'A random future datetime',
329
+ generate: () => faker.date.future().toString()
330
+ },
331
+ $randomDatePast: {
332
+ description: 'A random past datetime',
333
+ generate: () => faker.date.past().toString()
334
+ },
335
+ $randomDateRecent: {
336
+ description: 'A random recent datetime',
337
+ generate: () => faker.date.recent().toString()
338
+ },
339
+ $randomWeekday: {
340
+ description: 'A random weekday name',
341
+ generate: () => faker.date.weekday()
342
+ },
343
+ $randomMonth: {
344
+ description: 'A random month name',
345
+ generate: () => faker.date.month()
346
+ },
347
+ // Domains, emails, and usernames
348
+ $randomDomainName: {
349
+ description: 'A random domain name',
350
+ generate: () => faker.internet.domainName()
351
+ },
352
+ $randomDomainSuffix: {
353
+ description: 'A random domain suffix',
354
+ generate: () => faker.internet.domainSuffix()
355
+ },
356
+ $randomDomainWord: {
357
+ description: 'A random unqualified domain name',
358
+ generate: () => faker.internet.domainWord()
359
+ },
360
+ $randomEmail: {
361
+ description: 'A random email address',
362
+ generate: () => faker.internet.email()
363
+ },
364
+ $randomExampleEmail: {
365
+ description: 'A random email address from an example domain',
366
+ generate: () => faker.internet.exampleEmail()
367
+ },
368
+ $randomUserName: {
369
+ description: 'A random username',
370
+ generate: () => faker.internet.username()
371
+ },
372
+ $randomUrl: {
373
+ description: 'A random URL',
374
+ generate: () => faker.internet.url()
375
+ },
376
+ // Files and directories
377
+ $randomFileName: {
378
+ description: 'A random file name',
379
+ generate: () => faker.system.fileName()
380
+ },
381
+ $randomFileType: {
382
+ description: 'A random file type',
383
+ generate: () => faker.system.fileType()
384
+ },
385
+ $randomFileExt: {
386
+ description: 'A random file extension',
387
+ generate: () => faker.system.fileExt()
388
+ },
389
+ $randomCommonFileName: {
390
+ description: 'A random common file name',
391
+ generate: () => faker.system.commonFileName()
392
+ },
393
+ $randomCommonFileType: {
394
+ description: 'A random common file type',
395
+ generate: () => faker.system.commonFileType()
396
+ },
397
+ $randomCommonFileExt: {
398
+ description: 'A random common file extension',
399
+ generate: () => faker.system.commonFileExt()
400
+ },
401
+ $randomFilePath: {
402
+ description: 'A random file path',
403
+ generate: () => faker.system.filePath()
404
+ },
405
+ $randomDirectoryPath: {
406
+ description: 'A random directory path',
407
+ generate: () => faker.system.directoryPath()
408
+ },
409
+ $randomMimeType: {
410
+ description: 'A random MIME type',
411
+ generate: () => faker.system.mimeType()
412
+ },
413
+ // Stores
414
+ $randomPrice: {
415
+ description: 'A random price between 0.00 and 1000.00',
416
+ generate: () => faker.commerce.price({ min: 0, max: 1000 })
417
+ },
418
+ $randomProduct: {
419
+ description: 'A random product name',
420
+ generate: () => faker.commerce.product()
421
+ },
422
+ $randomProductAdjective: {
423
+ description: 'A random product adjective',
424
+ generate: () => faker.commerce.productAdjective()
425
+ },
426
+ $randomProductMaterial: {
427
+ description: 'A random product material',
428
+ generate: () => faker.commerce.productMaterial()
429
+ },
430
+ $randomProductName: {
431
+ description: 'A random product name with adjective and material',
432
+ generate: () => faker.commerce.productName()
433
+ },
434
+ $randomDepartment: {
435
+ description: 'A random commerce category',
436
+ generate: () => faker.commerce.department()
437
+ },
438
+ // Grammar
439
+ $randomNoun: {
440
+ description: 'A random noun',
441
+ generate: () => faker.word.noun()
442
+ },
443
+ $randomVerb: {
444
+ description: 'A random verb',
445
+ generate: () => faker.word.verb()
446
+ },
447
+ $randomIngverb: {
448
+ description: 'A random verb ending in -ing',
449
+ generate: () => `${faker.word.verb()}ing`
450
+ },
451
+ $randomAdjective: {
452
+ description: 'A random adjective',
453
+ generate: () => faker.word.adjective()
454
+ },
455
+ $randomWord: {
456
+ description: 'A random word',
457
+ generate: () => faker.word.sample()
458
+ },
459
+ $randomWords: {
460
+ description: 'Some random words',
461
+ generate: () => faker.word.words()
462
+ },
463
+ $randomPhrase: {
464
+ description: 'A random phrase',
465
+ generate: () => faker.lorem.sentence()
466
+ },
467
+ // Lorem ipsum
468
+ $randomLoremWord: {
469
+ description: 'A random word of lorem ipsum text',
470
+ generate: () => faker.lorem.word()
471
+ },
472
+ $randomLoremWords: {
473
+ description: 'Some random words of lorem ipsum text',
474
+ generate: () => faker.lorem.words()
475
+ },
476
+ $randomLoremSentence: {
477
+ description: 'A random sentence of lorem ipsum text',
478
+ generate: () => faker.lorem.sentence()
479
+ },
480
+ $randomLoremSentences: {
481
+ description: 'A random 2 to 6 sentences of lorem ipsum text',
482
+ generate: () => faker.lorem.sentences({ min: 2, max: 6 })
483
+ },
484
+ $randomLoremParagraph: {
485
+ description: 'A random paragraph of lorem ipsum text',
486
+ generate: () => faker.lorem.paragraph()
487
+ },
488
+ $randomLoremParagraphs: {
489
+ description: 'Three random paragraphs of lorem ipsum text',
490
+ generate: () => faker.lorem.paragraphs(3)
491
+ },
492
+ $randomLoremText: {
493
+ description: 'A random amount of lorem ipsum text',
494
+ generate: () => faker.lorem.text()
495
+ },
496
+ $randomLoremSlug: {
497
+ description: 'A random lorem ipsum URL slug',
498
+ generate: () => faker.lorem.slug()
499
+ },
500
+ $randomLoremLines: {
501
+ description: '1 to 5 random lines of lorem ipsum text',
502
+ generate: () => faker.lorem.lines({ min: 1, max: 5 })
503
+ }
504
+ };
505
+ /**
506
+ * Documentation grouping for dynamic variables, aligned with Postman's reference sections.
507
+ */
508
+ export const DYNAMIC_VARIABLE_CATEGORIES = [
509
+ {
510
+ title: 'Common',
511
+ keys: ['$guid', '$timestamp', '$isoTimestamp', '$randomUUID']
512
+ },
513
+ {
514
+ title: 'Text, numbers, and colors',
515
+ keys: [
516
+ '$randomAlphaNumeric',
517
+ '$randomBoolean',
518
+ '$randomInt',
519
+ '$randomColor',
520
+ '$randomHexColor',
521
+ '$randomAbbreviation'
522
+ ]
523
+ },
524
+ {
525
+ title: 'Internet and IP addresses',
526
+ keys: [
527
+ '$randomIP',
528
+ '$randomIPV6',
529
+ '$randomMACAddress',
530
+ '$randomPassword',
531
+ '$randomLocale',
532
+ '$randomUserAgent',
533
+ '$randomProtocol',
534
+ '$randomSemver'
535
+ ]
536
+ },
537
+ {
538
+ title: 'Names',
539
+ keys: [
540
+ '$randomFirstName',
541
+ '$randomLastName',
542
+ '$randomFullName',
543
+ '$randomNamePrefix',
544
+ '$randomNameSuffix'
545
+ ]
546
+ },
547
+ {
548
+ title: 'Profession',
549
+ keys: ['$randomJobArea', '$randomJobDescriptor', '$randomJobTitle', '$randomJobType']
550
+ },
551
+ {
552
+ title: 'Phone, address, and location',
553
+ keys: [
554
+ '$randomPhoneNumber',
555
+ '$randomPhoneNumberExt',
556
+ '$randomCity',
557
+ '$randomStreetName',
558
+ '$randomStreetAddress',
559
+ '$randomCountry',
560
+ '$randomCountryCode',
561
+ '$randomLatitude',
562
+ '$randomLongitude'
563
+ ]
564
+ },
565
+ {
566
+ title: 'Images',
567
+ keys: [
568
+ '$randomAvatarImage',
569
+ '$randomImageUrl',
570
+ '$randomAbstractImage',
571
+ '$randomAnimalsImage',
572
+ '$randomBusinessImage',
573
+ '$randomCatsImage',
574
+ '$randomCityImage',
575
+ '$randomFoodImage',
576
+ '$randomNightlifeImage',
577
+ '$randomFashionImage',
578
+ '$randomPeopleImage',
579
+ '$randomNatureImage',
580
+ '$randomSportsImage',
581
+ '$randomTransportImage',
582
+ '$randomImageDataUri'
583
+ ]
584
+ },
585
+ {
586
+ title: 'Finance',
587
+ keys: [
588
+ '$randomBankAccount',
589
+ '$randomBankAccountName',
590
+ '$randomCreditCardMask',
591
+ '$randomBankAccountBic',
592
+ '$randomBankAccountIban',
593
+ '$randomTransactionType',
594
+ '$randomCurrencyCode',
595
+ '$randomCurrencyName',
596
+ '$randomCurrencySymbol',
597
+ '$randomBitcoin'
598
+ ]
599
+ },
600
+ {
601
+ title: 'Business',
602
+ keys: [
603
+ '$randomCompanyName',
604
+ '$randomCompanySuffix',
605
+ '$randomBs',
606
+ '$randomBsAdjective',
607
+ '$randomBsBuzz',
608
+ '$randomBsNoun'
609
+ ]
610
+ },
611
+ {
612
+ title: 'Catchphrases',
613
+ keys: [
614
+ '$randomCatchPhrase',
615
+ '$randomCatchPhraseAdjective',
616
+ '$randomCatchPhraseDescriptor',
617
+ '$randomCatchPhraseNoun'
618
+ ]
619
+ },
620
+ {
621
+ title: 'Databases',
622
+ keys: [
623
+ '$randomDatabaseColumn',
624
+ '$randomDatabaseType',
625
+ '$randomDatabaseCollation',
626
+ '$randomDatabaseEngine'
627
+ ]
628
+ },
629
+ {
630
+ title: 'Dates',
631
+ keys: [
632
+ '$randomDateFuture',
633
+ '$randomDatePast',
634
+ '$randomDateRecent',
635
+ '$randomWeekday',
636
+ '$randomMonth'
637
+ ]
638
+ },
639
+ {
640
+ title: 'Domains, emails, and usernames',
641
+ keys: [
642
+ '$randomDomainName',
643
+ '$randomDomainSuffix',
644
+ '$randomDomainWord',
645
+ '$randomEmail',
646
+ '$randomExampleEmail',
647
+ '$randomUserName',
648
+ '$randomUrl'
649
+ ]
650
+ },
651
+ {
652
+ title: 'Files and directories',
653
+ keys: [
654
+ '$randomFileName',
655
+ '$randomFileType',
656
+ '$randomFileExt',
657
+ '$randomCommonFileName',
658
+ '$randomCommonFileType',
659
+ '$randomCommonFileExt',
660
+ '$randomFilePath',
661
+ '$randomDirectoryPath',
662
+ '$randomMimeType'
663
+ ]
664
+ },
665
+ {
666
+ title: 'Stores',
667
+ keys: [
668
+ '$randomPrice',
669
+ '$randomProduct',
670
+ '$randomProductAdjective',
671
+ '$randomProductMaterial',
672
+ '$randomProductName',
673
+ '$randomDepartment'
674
+ ]
675
+ },
676
+ {
677
+ title: 'Grammar',
678
+ keys: [
679
+ '$randomNoun',
680
+ '$randomVerb',
681
+ '$randomIngverb',
682
+ '$randomAdjective',
683
+ '$randomWord',
684
+ '$randomWords',
685
+ '$randomPhrase'
686
+ ]
687
+ },
688
+ {
689
+ title: 'Lorem ipsum',
690
+ keys: [
691
+ '$randomLoremWord',
692
+ '$randomLoremWords',
693
+ '$randomLoremSentence',
694
+ '$randomLoremSentences',
695
+ '$randomLoremParagraph',
696
+ '$randomLoremParagraphs',
697
+ '$randomLoremText',
698
+ '$randomLoremSlug',
699
+ '$randomLoremLines'
700
+ ]
701
+ }
702
+ ];
703
+ /**
704
+ * Returns whether a variable key is a known dynamic variable name.
705
+ *
706
+ * @param key - Token name from inside `{{...}}` braces.
707
+ */
708
+ export function isDynamicVariable(key) {
709
+ return Object.prototype.hasOwnProperty.call(DYNAMIC_VARIABLES, key);
710
+ }
711
+ /**
712
+ * Returns the description for a dynamic variable, if defined.
713
+ *
714
+ * @param key - Token name from inside `{{...}}` braces.
715
+ */
716
+ export function getDynamicVariableDescription(key) {
717
+ return DYNAMIC_VARIABLES[key]?.description;
718
+ }
719
+ /**
720
+ * Generates a fresh value for a dynamic variable key.
721
+ *
722
+ * @param key - Token name from inside `{{...}}` braces (e.g. `$guid`).
723
+ * @returns Generated string, or undefined when the key is not a dynamic variable.
724
+ */
725
+ export function resolveDynamicVariable(key) {
726
+ const definition = DYNAMIC_VARIABLES[key];
727
+ if (!definition) {
728
+ return undefined;
729
+ }
730
+ return definition.generate();
731
+ }
732
+ /**
733
+ * Sorted list of dynamic variable names for autocomplete and documentation.
734
+ */
735
+ export const DYNAMIC_VARIABLE_NAMES = Object.keys(DYNAMIC_VARIABLES).sort();