@hybrd/utils 1.3.1 → 1.4.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.
- package/README.md +30 -265
- package/dist/index.cjs +31 -0
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +14 -1
- package/dist/index.d.ts +14 -1
- package/dist/index.js +30 -0
- package/dist/index.js.map +1 -1
- package/package.json +8 -4
- package/src/index.ts +1 -0
- package/src/lib/logger.ts +32 -0
- package/.cache/tsbuildinfo.json +0 -1
- package/.turbo/turbo-build.log +0 -23
- package/.turbo/turbo-lint$colon$fix.log +0 -6
- package/.turbo/turbo-typecheck.log +0 -5
- package/tsconfig.json +0 -13
- package/tsup.config.ts +0 -14
package/README.md
CHANGED
|
@@ -1,293 +1,58 @@
|
|
|
1
1
|
# @hybrd/utils
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
This package is part of the Hybrid monorepo.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
Hybrid makes it easy for developers to create intelligent agents that can understand natural language, process messages, and respond through XMTP's decentralized messaging protocol.
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
pnpm install @hybrd/utils
|
|
9
|
-
```
|
|
10
|
-
|
|
11
|
-
## Usage
|
|
12
|
-
|
|
13
|
-
```typescript
|
|
14
|
-
import { chunk, truncate, formatDate, stringifyValues } from "@hybrd/utils"
|
|
15
|
-
```
|
|
16
|
-
|
|
17
|
-
## API Reference
|
|
18
|
-
|
|
19
|
-
### Array Utilities
|
|
20
|
-
|
|
21
|
-
#### `chunk<T>(arr: T[], size: number): T[][]`
|
|
22
|
-
|
|
23
|
-
Splits an array into chunks of specified size.
|
|
24
|
-
|
|
25
|
-
```typescript
|
|
26
|
-
import { chunk } from "@hybrd/utils"
|
|
27
|
-
|
|
28
|
-
const numbers = [1, 2, 3, 4, 5, 6, 7, 8]
|
|
29
|
-
const chunks = chunk(numbers, 3)
|
|
30
|
-
// Result: [[1, 2, 3], [4, 5, 6], [7, 8]]
|
|
31
|
-
```
|
|
32
|
-
|
|
33
|
-
#### `uniq<T>(array: T[]): T[]`
|
|
34
|
-
|
|
35
|
-
Returns a new array with only unique elements from the input array.
|
|
36
|
-
|
|
37
|
-
```typescript
|
|
38
|
-
import { uniq } from "@hybrd/utils"
|
|
39
|
-
|
|
40
|
-
const duplicates = [1, 2, 2, 3, 3, 3, 4]
|
|
41
|
-
const unique = uniq(duplicates)
|
|
42
|
-
// Result: [1, 2, 3, 4]
|
|
43
|
-
```
|
|
44
|
-
|
|
45
|
-
#### `shuffle(array: any[]): any[]`
|
|
46
|
-
|
|
47
|
-
Randomly shuffles the elements of an array. Returns an empty array if input is undefined.
|
|
48
|
-
|
|
49
|
-
```typescript
|
|
50
|
-
import { shuffle } from "@hybrd/utils"
|
|
51
|
-
|
|
52
|
-
const cards = ['A', 'K', 'Q', 'J']
|
|
53
|
-
const shuffled = shuffle(cards)
|
|
54
|
-
// Result: randomly ordered array
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
### String Utilities
|
|
58
|
-
|
|
59
|
-
#### `truncate(str: string, length: number): string`
|
|
60
|
-
|
|
61
|
-
Truncates a string to a specified length, adding an ellipsis if the string is longer than the specified length.
|
|
62
|
-
|
|
63
|
-
```typescript
|
|
64
|
-
import { truncate } from "@hybrd/utils"
|
|
65
|
-
|
|
66
|
-
const longText = "This is a very long text that needs to be truncated"
|
|
67
|
-
const short = truncate(longText, 20)
|
|
68
|
-
// Result: "This is a very long..."
|
|
69
|
-
```
|
|
70
|
-
|
|
71
|
-
### Date Utilities
|
|
72
|
-
|
|
73
|
-
#### `formatDate(stringOrDate?: string | Date): string`
|
|
74
|
-
|
|
75
|
-
Formats a date string or Date object into a localized date string.
|
|
76
|
-
|
|
77
|
-
```typescript
|
|
78
|
-
import { formatDate } from "@hybrd/utils"
|
|
79
|
-
|
|
80
|
-
const date = new Date('2024-01-15')
|
|
81
|
-
const formatted = formatDate(date)
|
|
82
|
-
// Result: "Jan 15, 2024"
|
|
83
|
-
|
|
84
|
-
const dateString = formatDate('2024-01-15')
|
|
85
|
-
// Result: "Jan 15, 2024"
|
|
86
|
-
|
|
87
|
-
const empty = formatDate()
|
|
88
|
-
// Result: ""
|
|
89
|
-
```
|
|
90
|
-
|
|
91
|
-
#### `formatRelativeDate(date: Date): string`
|
|
92
|
-
|
|
93
|
-
Formats a date relative to the current time with intelligent formatting:
|
|
94
|
-
- "Today, [time]" for today's dates
|
|
95
|
-
- "Yesterday, [time]" for yesterday's dates
|
|
96
|
-
- "MMM d, h:mm a" for dates in current year
|
|
97
|
-
- "MMM d, yyyy" for dates in other years
|
|
98
|
-
|
|
99
|
-
```typescript
|
|
100
|
-
import { formatRelativeDate } from "@hybrd/utils"
|
|
101
|
-
|
|
102
|
-
const today = new Date()
|
|
103
|
-
const todayFormatted = formatRelativeDate(today)
|
|
104
|
-
// Result: "Today, 2:30 PM"
|
|
105
|
-
|
|
106
|
-
const yesterday = new Date(Date.now() - 24 * 60 * 60 * 1000)
|
|
107
|
-
const yesterdayFormatted = formatRelativeDate(yesterday)
|
|
108
|
-
// Result: "Yesterday, 2:30 PM"
|
|
109
|
-
```
|
|
110
|
-
|
|
111
|
-
### Object Utilities
|
|
112
|
-
|
|
113
|
-
#### `stringifyValues(obj: Record<string, unknown>): Record<string, string>`
|
|
114
|
-
|
|
115
|
-
Stringifies all values in an object, including objects and null values. Returns an empty object if input is undefined.
|
|
116
|
-
|
|
117
|
-
```typescript
|
|
118
|
-
import { stringifyValues } from "@hybrd/utils"
|
|
119
|
-
|
|
120
|
-
const mixed = {
|
|
121
|
-
string: "hello",
|
|
122
|
-
number: 42,
|
|
123
|
-
object: { nested: true },
|
|
124
|
-
nullValue: null,
|
|
125
|
-
boolean: false
|
|
126
|
-
}
|
|
7
|
+
See [hybrid.dev](https://hybrid.dev) for more information.
|
|
127
8
|
|
|
128
|
-
|
|
129
|
-
// Result: {
|
|
130
|
-
// string: "hello",
|
|
131
|
-
// number: "42",
|
|
132
|
-
// object: '{"nested":true}',
|
|
133
|
-
// nullValue: "null",
|
|
134
|
-
// boolean: "false"
|
|
135
|
-
// }
|
|
136
|
-
```
|
|
137
|
-
|
|
138
|
-
#### `pruneEmpty<T>(obj: T): Partial<T>`
|
|
139
|
-
|
|
140
|
-
Removes empty values (undefined, null, empty strings) from an object.
|
|
141
|
-
|
|
142
|
-
```typescript
|
|
143
|
-
import { pruneEmpty } from "@hybrd/utils"
|
|
144
|
-
|
|
145
|
-
const withEmpties = {
|
|
146
|
-
name: "John",
|
|
147
|
-
email: "",
|
|
148
|
-
age: null,
|
|
149
|
-
active: true,
|
|
150
|
-
notes: undefined
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
const pruned = pruneEmpty(withEmpties)
|
|
154
|
-
// Result: { name: "John", active: true }
|
|
155
|
-
```
|
|
156
|
-
|
|
157
|
-
### Markdown Utilities
|
|
158
|
-
|
|
159
|
-
#### `stripMarkdown(markdown: string): Promise<string>`
|
|
160
|
-
|
|
161
|
-
Strips markdown formatting from a string, returning plain text.
|
|
162
|
-
|
|
163
|
-
```typescript
|
|
164
|
-
import { stripMarkdown } from "@hybrd/utils"
|
|
165
|
-
|
|
166
|
-
const markdown = "# Hello **world**\n\nThis is *italic* text."
|
|
167
|
-
const plain = await stripMarkdown(markdown)
|
|
168
|
-
// Result: "Hello world\n\nThis is italic text."
|
|
169
|
-
```
|
|
170
|
-
|
|
171
|
-
### Cloudflare Utilities
|
|
172
|
-
|
|
173
|
-
#### `getCloudflareEnvironment(): CloudflareEnvironment`
|
|
174
|
-
|
|
175
|
-
Detects if running in Cloudflare environment and returns appropriate configuration.
|
|
176
|
-
|
|
177
|
-
```typescript
|
|
178
|
-
import { getCloudflareEnvironment } from "@hybrd/utils"
|
|
179
|
-
|
|
180
|
-
const env = getCloudflareEnvironment()
|
|
181
|
-
// Result: { isCloudflare: boolean, branch?: string, url?: string }
|
|
182
|
-
```
|
|
183
|
-
|
|
184
|
-
#### `getCloudflareStoragePath(subPath?: string): string`
|
|
185
|
-
|
|
186
|
-
Gets the appropriate storage path for the current environment.
|
|
187
|
-
|
|
188
|
-
```typescript
|
|
189
|
-
import { getCloudflareStoragePath } from "@hybrd/utils"
|
|
190
|
-
|
|
191
|
-
const storagePath = getCloudflareStoragePath("uploads")
|
|
192
|
-
// Result: appropriate path based on environment
|
|
193
|
-
```
|
|
9
|
+
## 📦 Quickstart
|
|
194
10
|
|
|
195
|
-
|
|
11
|
+
Getting started with Hybrid is simple:
|
|
196
12
|
|
|
197
|
-
|
|
13
|
+
### 1. Initialize your project
|
|
198
14
|
|
|
199
|
-
```
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
const serviceUrl = getCloudflareServiceUrl(3000)
|
|
203
|
-
// Result: CF_PAGES_URL or localhost with fallback port
|
|
15
|
+
```bash
|
|
16
|
+
npm create hybrid my-agent
|
|
17
|
+
cd my-agent
|
|
204
18
|
```
|
|
205
19
|
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
#### `R2StorageAdapter`
|
|
20
|
+
This creates all the necessary files and configuration for your agent.
|
|
209
21
|
|
|
210
|
-
|
|
22
|
+
### 2. Get your OpenRouter API key
|
|
23
|
+
|
|
24
|
+
Visit [OpenRouter](https://openrouter.ai/keys), create an account and generate an API key
|
|
211
25
|
|
|
212
|
-
|
|
213
|
-
import { R2StorageAdapter } from "@hybrd/utils"
|
|
26
|
+
Add it to your `.env` file:
|
|
214
27
|
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
await adapter.downloadFile(remotePath, localPath)
|
|
218
|
-
await adapter.delete(remotePath)
|
|
28
|
+
```env
|
|
29
|
+
OPENROUTER_API_KEY=your_openrouter_api_key_here
|
|
219
30
|
```
|
|
220
31
|
|
|
221
|
-
|
|
32
|
+
### 3. Generate XMTP keys
|
|
222
33
|
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
```typescript
|
|
226
|
-
import { ExternalDatabaseAdapter } from "@hybrd/utils"
|
|
227
|
-
|
|
228
|
-
const adapter = new ExternalDatabaseAdapter(connectionString)
|
|
229
|
-
await adapter.uploadFile(localPath, remotePath)
|
|
34
|
+
```bash
|
|
35
|
+
hybrid keys
|
|
230
36
|
```
|
|
231
37
|
|
|
232
|
-
|
|
38
|
+
or automatically add it to your `.env` file:
|
|
233
39
|
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
```typescript
|
|
237
|
-
import { createStorageAdapter } from "@hybrd/utils"
|
|
238
|
-
|
|
239
|
-
const adapter = createStorageAdapter()
|
|
240
|
-
if (adapter) {
|
|
241
|
-
await adapter.uploadFile(localPath, remotePath)
|
|
242
|
-
}
|
|
40
|
+
```bash
|
|
41
|
+
hybrid keys --write
|
|
243
42
|
```
|
|
244
43
|
|
|
245
|
-
###
|
|
246
|
-
|
|
247
|
-
#### `getUrl(path?: string): string`
|
|
248
|
-
|
|
249
|
-
Gets the appropriate URL for the current environment, checking:
|
|
250
|
-
1. `AGENT_URL` environment variable
|
|
251
|
-
2. `RAILWAY_PUBLIC_DOMAIN` environment variable (Railway deployment)
|
|
252
|
-
3. `http://localhost:8454/` (default)
|
|
253
|
-
|
|
254
|
-
```typescript
|
|
255
|
-
import { getUrl } from "@hybrd/utils"
|
|
44
|
+
### 4. Register your wallet with XMTP
|
|
256
45
|
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
const apiUrl = getUrl("/api/messages")
|
|
261
|
-
// Result: full URL with path appended
|
|
46
|
+
```bash
|
|
47
|
+
hybrid register
|
|
262
48
|
```
|
|
263
49
|
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
#### `randomUUID(): string`
|
|
50
|
+
This generates secure wallet and encryption keys for your XMTP agent.
|
|
267
51
|
|
|
268
|
-
|
|
52
|
+
### 5. Start developing
|
|
269
53
|
|
|
270
|
-
```
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
const id = randomUUID()
|
|
274
|
-
// Result: "550e8400-e29b-41d4-a716-446655440000"
|
|
54
|
+
```bash
|
|
55
|
+
hybrid dev
|
|
275
56
|
```
|
|
276
57
|
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
This package uses the following external dependencies:
|
|
280
|
-
|
|
281
|
-
- `date-fns` - Date formatting and manipulation
|
|
282
|
-
- `remark` & `strip-markdown` - Markdown processing
|
|
283
|
-
- `uuid` - UUID generation
|
|
284
|
-
|
|
285
|
-
## Related Packages
|
|
286
|
-
|
|
287
|
-
- [`hybrid`](../core) - Main agent framework
|
|
288
|
-
- [`@hybrd/xmtp`](../xmtp) - XMTP client integration
|
|
289
|
-
- [`@hybrd/cli`](../cli) - Command-line interface
|
|
290
|
-
|
|
291
|
-
## License
|
|
292
|
-
|
|
293
|
-
MIT
|
|
58
|
+
Your agent will start listening for XMTP messages and you're ready to build!
|
package/dist/index.cjs
CHANGED
|
@@ -40,6 +40,7 @@ __export(src_exports, {
|
|
|
40
40
|
getCloudflareServiceUrl: () => getCloudflareServiceUrl,
|
|
41
41
|
getCloudflareStoragePath: () => getCloudflareStoragePath,
|
|
42
42
|
getUrl: () => getUrl,
|
|
43
|
+
logger: () => logger,
|
|
43
44
|
pruneEmpty: () => pruneEmpty,
|
|
44
45
|
randomUUID: () => randomUUID,
|
|
45
46
|
shuffle: () => shuffle,
|
|
@@ -238,6 +239,35 @@ var import_uuid = require("uuid");
|
|
|
238
239
|
function randomUUID() {
|
|
239
240
|
return (0, import_uuid.v4)();
|
|
240
241
|
}
|
|
242
|
+
|
|
243
|
+
// src/lib/logger.ts
|
|
244
|
+
var logger = {
|
|
245
|
+
debug: (message, ...args) => {
|
|
246
|
+
if (typeof process !== "undefined" && (process.env?.DEBUG || process.env?.XMTP_DEBUG)) {
|
|
247
|
+
console.log(message, ...args);
|
|
248
|
+
}
|
|
249
|
+
},
|
|
250
|
+
log: (message, ...args) => {
|
|
251
|
+
if (typeof process !== "undefined" && (process.env?.DEBUG || process.env?.XMTP_DEBUG)) {
|
|
252
|
+
console.log(message, ...args);
|
|
253
|
+
}
|
|
254
|
+
},
|
|
255
|
+
info: (message, ...args) => {
|
|
256
|
+
if (typeof process !== "undefined" && (process.env?.DEBUG || process.env?.XMTP_DEBUG)) {
|
|
257
|
+
console.info(message, ...args);
|
|
258
|
+
}
|
|
259
|
+
},
|
|
260
|
+
warn: (message, ...args) => {
|
|
261
|
+
if (typeof process !== "undefined" && (process.env?.DEBUG || process.env?.XMTP_DEBUG)) {
|
|
262
|
+
console.warn(message, ...args);
|
|
263
|
+
}
|
|
264
|
+
},
|
|
265
|
+
error: (message, ...args) => {
|
|
266
|
+
if (typeof process !== "undefined" && (process.env?.DEBUG || process.env?.XMTP_DEBUG)) {
|
|
267
|
+
console.error(message, ...args);
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
};
|
|
241
271
|
// Annotate the CommonJS export names for ESM import in node:
|
|
242
272
|
0 && (module.exports = {
|
|
243
273
|
ExternalDatabaseAdapter,
|
|
@@ -250,6 +280,7 @@ function randomUUID() {
|
|
|
250
280
|
getCloudflareServiceUrl,
|
|
251
281
|
getCloudflareStoragePath,
|
|
252
282
|
getUrl,
|
|
283
|
+
logger,
|
|
253
284
|
pruneEmpty,
|
|
254
285
|
randomUUID,
|
|
255
286
|
shuffle,
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../src/lib/array.ts","../src/lib/cloudflare.ts","../src/lib/storage.ts","../src/lib/date.ts","../src/lib/object.ts","../src/lib/markdown.ts","../src/lib/string.ts","../src/lib/urls.ts","../src/lib/uuid.ts"],"sourcesContent":["export * from \"./lib/array\"\nexport * from \"./lib/cloudflare\"\nexport * from \"./lib/storage\"\nexport * from \"./lib/date\"\nexport * from \"./lib/object\"\nexport * from \"./lib/markdown\"\nexport * from \"./lib/string\"\nexport * from \"./lib/urls\"\nexport * from \"./lib/uuid\"\n","/**\n * Splits an array into chunks of specified size.\n *\n * @template T - The type of the array elements.\n * @param {T[]} arr - The array to split into chunks.\n * @param {number} size - The maximum number of elements per chunk.\n * @returns {T[][]} An array of chunks, where each chunk is an array of T.\n */\nexport function chunk<T>(arr: T[], size: number): T[][] {\n\treturn Array.from({ length: Math.ceil(arr.length / size) }, (_, i) =>\n\t\tarr.slice(i * size, i * size + size)\n\t)\n}\n\n/**\n * Returns a new array with only unique elements from the input array.\n *\n * @template T - The type of the array elements.\n * @param {T[]} array - The array from which to remove duplicate elements.\n * @returns {T[]} A new array containing only unique elements.\n */\nexport function uniq<T>(array: T[]): T[] {\n\treturn array.filter((item, index, self) => self.indexOf(item) === index)\n}\n\n/**\n * Randomly shuffles the elements of an array.\n *\n * @param {any[] | undefined} array - The array to shuffle. If undefined, returns an empty array.\n * @returns {any[]} A shuffled copy of the input array.\n */\nexport function shuffle(array: any[] | undefined) {\n\tif (!array) return []\n\treturn array.sort(() => Math.random() - 0.5)\n}\n","/**\n * Cloudflare environment detection and storage utilities\n */\n\ndeclare const process: {\n env: Record<string, string | undefined>\n cwd(): string\n}\n\nexport interface CloudflareEnvironment {\n isCloudflare: boolean\n platform: 'pages' | 'workers' | 'local'\n storagePath: string\n}\n\n/**\n * Detects if running in Cloudflare environment and returns appropriate storage configuration\n */\nexport function getCloudflareEnvironment(): CloudflareEnvironment {\n if (process.env.CF_PAGES_BRANCH) {\n return {\n isCloudflare: true,\n platform: 'pages',\n storagePath: '/tmp'\n }\n }\n\n if (process.env.CF_WORKER_NAME) {\n return {\n isCloudflare: true,\n platform: 'workers',\n storagePath: '/tmp'\n }\n }\n\n return {\n isCloudflare: false,\n platform: 'local',\n storagePath: process.env.PROJECT_ROOT || process.cwd()\n }\n}\n\n/**\n * Gets the appropriate storage path for the current environment\n * @param subPath - Optional subdirectory within the storage path\n */\nexport function getCloudflareStoragePath(subPath?: string): string {\n const env = getCloudflareEnvironment()\n \n if (env.isCloudflare) {\n return subPath ? `/tmp/${subPath}` : '/tmp'\n }\n\n const basePath = env.storagePath\n const dataPath = subPath ? `${basePath}/.data/${subPath}` : `${basePath}/.data`\n \n return dataPath\n}\n\n/**\n * Gets service URL based on Cloudflare environment variables\n */\nexport function getCloudflareServiceUrl(fallbackPort = 3000): string {\n if (process.env.CF_PAGES_URL) {\n return process.env.CF_PAGES_URL\n }\n\n if (process.env.CF_WORKER_URL) {\n return process.env.CF_WORKER_URL\n }\n\n // Local development fallback\n return `http://localhost:${fallbackPort}`\n}\n","import fs from \"node:fs/promises\"\n\nexport interface StorageAdapter {\n uploadFile(localPath: string, remotePath: string): Promise<void>\n downloadFile(remotePath: string, localPath: string): Promise<void>\n exists(remotePath: string): Promise<boolean>\n delete(remotePath: string): Promise<void>\n}\n\nexport class R2StorageAdapter implements StorageAdapter {\n constructor(private bucket: any) {}\n \n async uploadFile(localPath: string, remotePath: string): Promise<void> {\n const fileData = await fs.readFile(localPath)\n await this.bucket.put(remotePath, fileData)\n }\n \n async downloadFile(remotePath: string, localPath: string): Promise<void> {\n const object = await this.bucket.get(remotePath)\n if (object) {\n await fs.writeFile(localPath, await object.arrayBuffer())\n }\n }\n \n async exists(remotePath: string): Promise<boolean> {\n const object = await this.bucket.head(remotePath)\n return object !== null\n }\n \n async delete(remotePath: string): Promise<void> {\n await this.bucket.delete(remotePath)\n }\n}\n\nexport class ExternalDatabaseAdapter implements StorageAdapter {\n constructor(private connectionString: string) {}\n \n async uploadFile(localPath: string, remotePath: string): Promise<void> {\n throw new Error('External database storage not yet implemented')\n }\n \n async downloadFile(remotePath: string, localPath: string): Promise<void> {\n throw new Error('External database storage not yet implemented')\n }\n \n async exists(remotePath: string): Promise<boolean> {\n return false\n }\n \n async delete(remotePath: string): Promise<void> {\n }\n}\n\nexport function createStorageAdapter(): StorageAdapter | null {\n if (typeof globalThis !== 'undefined' && 'XMTP_STORAGE' in globalThis) {\n return new R2StorageAdapter((globalThis as any).XMTP_STORAGE)\n }\n \n if (typeof process !== 'undefined' && process.env?.DATABASE_URL) {\n return new ExternalDatabaseAdapter(process.env.DATABASE_URL)\n }\n \n return null\n}\n","import { format, isToday, isYesterday } from \"date-fns\";\n\n/**\n * Formats a date string or Date object into a localized date string\n * @param stringOrDate - Date string or Date object to format\n * @returns Formatted date string (e.g., \"Jan 1, 2024\") or empty string if no input\n */\nexport function formatDate(stringOrDate?: string | Date): string {\n\tif (!stringOrDate) return \"\";\n\n\tconst date = new Date(stringOrDate);\n\n\treturn date.toLocaleDateString(undefined, {\n\t\tyear: \"numeric\",\n\t\tmonth: \"short\",\n\t\tday: \"numeric\",\n\t});\n}\n\n/**\n * Formats a date relative to the current time\n * @param date - Date object to format\n * @returns Formatted string with relative time:\n * - \"Today, [time]\" for today's dates\n * - \"Yesterday, [time]\" for yesterday's dates\n * - \"MMM d, h:mm a\" for dates in current year\n * - \"MMM d, yyyy\" for dates in other years\n */\nexport function formatRelativeDate(date: Date) {\n\tif (isToday(date)) {\n\t\treturn `Today, ${format(date, \"h:mm a\")}`;\n\t}\n\tif (isYesterday(date)) {\n\t\treturn `Yesterday, ${format(date, \"h:mm a\")}`;\n\t}\n\tif (new Date().getFullYear() === date.getFullYear()) {\n\t\treturn format(date, \"MMM d, h:mm a\");\n\t}\n\treturn format(date, \"MMM d, yyyy\");\n}\n","/**\n * Stringifies all values in an object, including objects and null values.\n * If obj is undefined, returns an empty object.\n * @param obj - The object to stringify\n * @returns A new object with the same keys as obj, but with all values stringified\n */\nexport function stringifyValues(\n\tobj: Record<string, unknown> | undefined\n): Record<string, string> {\n\tconst result: Record<string, string> = {}\n\n\tif (!obj) {\n\t\treturn {}\n\t}\n\n\tfor (const key in obj) {\n\t\tconst value = obj[key]\n\t\tresult[key] =\n\t\t\tvalue === null\n\t\t\t\t? \"null\"\n\t\t\t\t: typeof value === \"object\"\n\t\t\t\t\t? JSON.stringify(value)\n\t\t\t\t\t: String(value)\n\t}\n\n\treturn result\n}\n\n/**\n * Removes empty values (undefined, null, empty strings) from an object\n *\n * @param obj - The object to prune\n * @returns A new object with empty values removed\n */\nexport function pruneEmpty<T extends Record<string, unknown>>(\n\tobj: T | undefined\n): Partial<T> {\n\tif (!obj) {\n\t\treturn {}\n\t}\n\n\treturn Object.entries(obj).reduce(\n\t\t(acc, [key, value]) => {\n\t\t\t// Skip undefined, null, and empty strings\n\t\t\tif (value === undefined || value === null || value === \"\") {\n\t\t\t\treturn acc\n\t\t\t}\n\t\t\t// Avoid spread syntax on accumulator\n\t\t\tacc[key as keyof T] = value as any\n\t\t\treturn acc\n\t\t},\n\t\t{} as Partial<T>\n\t)\n}\n","import { remark } from \"remark\"\nimport strip from \"strip-markdown\"\n\n/**\n * Strips markdown from a string\n * @param markdown - The markdown string to strip\n * @returns The stripped markdown string\n */\nexport async function stripMarkdown(markdown: string) {\n\tconst file = await remark().use(strip).process(markdown)\n\treturn String(file)\n}\n","/**\n * Truncates a given string to a specified length, adding an ellipsis if the\n * string is longer than the specified length.\n *\n * @param {string} str - The string to truncate.\n * @param {number} length - The maximum length of the resulting string.\n *\n * @returns {string} The truncated string.\n */\nexport function truncate(str: string, length: number) {\n\treturn str.length > length ? `${str.slice(0, length)}...` : str\n}\n","/**\n * Get the agent application URL for webhooks and callbacks\n *\n * This function constructs the URL for the main agent application, used primarily\n * for QStash webhooks and external callbacks. It supports multiple deployment\n * environments with fallback logic.\n *\n * @param path - Optional path to append to the base URL (leading slashes are normalized)\n * @returns The complete URL for the agent application\n *\n * @example\n * ```typescript\n * // Get base URL\n * getUrl() // \"http://localhost:8454/\"\n *\n * // Get URL with path\n * getUrl(\"/qstash/webhook\") // \"http://localhost:8454/qstash/webhook\"\n * getUrl(\"api/health\") // \"http://localhost:8454/api/health\"\n * ```\n *\n * @remarks\n * URL resolution priority:\n * 1. `AGENT_URL` environment variable (custom deployment)\n * 2. `RAILWAY_PUBLIC_DOMAIN` environment variable (Railway deployment)\n * 3. `http://localhost:8454/` (default)\n */\nexport function getUrl(path = \"\") {\n\tconst trimmedPath = path.replace(/^\\/+/, \"\")\n\n\tif (process.env.AGENT_URL) {\n\t\treturn `https://${process.env.AGENT_URL}/${trimmedPath}`\n\t}\n\n\tif (process.env.RAILWAY_PUBLIC_DOMAIN) {\n\t\treturn `https://${process.env.RAILWAY_PUBLIC_DOMAIN}/${trimmedPath}`\n\t}\n\n\treturn `https://localhost:8454/${trimmedPath}`\n}\n","import { v4 as uuidv4 } from \"uuid\";\n\n// The node:crypto version is not supported in the browser.\n// Use the uuid package instead.\nexport function randomUUID(): string {\n\treturn uuidv4();\n}\n"],"mappings":"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","names":["fs","strip","uuidv4"]}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/lib/array.ts","../src/lib/cloudflare.ts","../src/lib/storage.ts","../src/lib/date.ts","../src/lib/object.ts","../src/lib/markdown.ts","../src/lib/string.ts","../src/lib/urls.ts","../src/lib/uuid.ts","../src/lib/logger.ts"],"sourcesContent":["export * from \"./lib/array\"\nexport * from \"./lib/cloudflare\"\nexport * from \"./lib/storage\"\nexport * from \"./lib/date\"\nexport * from \"./lib/object\"\nexport * from \"./lib/markdown\"\nexport * from \"./lib/string\"\nexport * from \"./lib/urls\"\nexport * from \"./lib/uuid\"\nexport * from \"./lib/logger\"\n","/**\n * Splits an array into chunks of specified size.\n *\n * @template T - The type of the array elements.\n * @param {T[]} arr - The array to split into chunks.\n * @param {number} size - The maximum number of elements per chunk.\n * @returns {T[][]} An array of chunks, where each chunk is an array of T.\n */\nexport function chunk<T>(arr: T[], size: number): T[][] {\n\treturn Array.from({ length: Math.ceil(arr.length / size) }, (_, i) =>\n\t\tarr.slice(i * size, i * size + size)\n\t)\n}\n\n/**\n * Returns a new array with only unique elements from the input array.\n *\n * @template T - The type of the array elements.\n * @param {T[]} array - The array from which to remove duplicate elements.\n * @returns {T[]} A new array containing only unique elements.\n */\nexport function uniq<T>(array: T[]): T[] {\n\treturn array.filter((item, index, self) => self.indexOf(item) === index)\n}\n\n/**\n * Randomly shuffles the elements of an array.\n *\n * @param {any[] | undefined} array - The array to shuffle. If undefined, returns an empty array.\n * @returns {any[]} A shuffled copy of the input array.\n */\nexport function shuffle(array: any[] | undefined) {\n\tif (!array) return []\n\treturn array.sort(() => Math.random() - 0.5)\n}\n","/**\n * Cloudflare environment detection and storage utilities\n */\n\ndeclare const process: {\n env: Record<string, string | undefined>\n cwd(): string\n}\n\nexport interface CloudflareEnvironment {\n isCloudflare: boolean\n platform: 'pages' | 'workers' | 'local'\n storagePath: string\n}\n\n/**\n * Detects if running in Cloudflare environment and returns appropriate storage configuration\n */\nexport function getCloudflareEnvironment(): CloudflareEnvironment {\n if (process.env.CF_PAGES_BRANCH) {\n return {\n isCloudflare: true,\n platform: 'pages',\n storagePath: '/tmp'\n }\n }\n\n if (process.env.CF_WORKER_NAME) {\n return {\n isCloudflare: true,\n platform: 'workers',\n storagePath: '/tmp'\n }\n }\n\n return {\n isCloudflare: false,\n platform: 'local',\n storagePath: process.env.PROJECT_ROOT || process.cwd()\n }\n}\n\n/**\n * Gets the appropriate storage path for the current environment\n * @param subPath - Optional subdirectory within the storage path\n */\nexport function getCloudflareStoragePath(subPath?: string): string {\n const env = getCloudflareEnvironment()\n \n if (env.isCloudflare) {\n return subPath ? `/tmp/${subPath}` : '/tmp'\n }\n\n const basePath = env.storagePath\n const dataPath = subPath ? `${basePath}/.data/${subPath}` : `${basePath}/.data`\n \n return dataPath\n}\n\n/**\n * Gets service URL based on Cloudflare environment variables\n */\nexport function getCloudflareServiceUrl(fallbackPort = 3000): string {\n if (process.env.CF_PAGES_URL) {\n return process.env.CF_PAGES_URL\n }\n\n if (process.env.CF_WORKER_URL) {\n return process.env.CF_WORKER_URL\n }\n\n // Local development fallback\n return `http://localhost:${fallbackPort}`\n}\n","import fs from \"node:fs/promises\"\n\nexport interface StorageAdapter {\n uploadFile(localPath: string, remotePath: string): Promise<void>\n downloadFile(remotePath: string, localPath: string): Promise<void>\n exists(remotePath: string): Promise<boolean>\n delete(remotePath: string): Promise<void>\n}\n\nexport class R2StorageAdapter implements StorageAdapter {\n constructor(private bucket: any) {}\n \n async uploadFile(localPath: string, remotePath: string): Promise<void> {\n const fileData = await fs.readFile(localPath)\n await this.bucket.put(remotePath, fileData)\n }\n \n async downloadFile(remotePath: string, localPath: string): Promise<void> {\n const object = await this.bucket.get(remotePath)\n if (object) {\n await fs.writeFile(localPath, await object.arrayBuffer())\n }\n }\n \n async exists(remotePath: string): Promise<boolean> {\n const object = await this.bucket.head(remotePath)\n return object !== null\n }\n \n async delete(remotePath: string): Promise<void> {\n await this.bucket.delete(remotePath)\n }\n}\n\nexport class ExternalDatabaseAdapter implements StorageAdapter {\n constructor(private connectionString: string) {}\n \n async uploadFile(localPath: string, remotePath: string): Promise<void> {\n throw new Error('External database storage not yet implemented')\n }\n \n async downloadFile(remotePath: string, localPath: string): Promise<void> {\n throw new Error('External database storage not yet implemented')\n }\n \n async exists(remotePath: string): Promise<boolean> {\n return false\n }\n \n async delete(remotePath: string): Promise<void> {\n }\n}\n\nexport function createStorageAdapter(): StorageAdapter | null {\n if (typeof globalThis !== 'undefined' && 'XMTP_STORAGE' in globalThis) {\n return new R2StorageAdapter((globalThis as any).XMTP_STORAGE)\n }\n \n if (typeof process !== 'undefined' && process.env?.DATABASE_URL) {\n return new ExternalDatabaseAdapter(process.env.DATABASE_URL)\n }\n \n return null\n}\n","import { format, isToday, isYesterday } from \"date-fns\";\n\n/**\n * Formats a date string or Date object into a localized date string\n * @param stringOrDate - Date string or Date object to format\n * @returns Formatted date string (e.g., \"Jan 1, 2024\") or empty string if no input\n */\nexport function formatDate(stringOrDate?: string | Date): string {\n\tif (!stringOrDate) return \"\";\n\n\tconst date = new Date(stringOrDate);\n\n\treturn date.toLocaleDateString(undefined, {\n\t\tyear: \"numeric\",\n\t\tmonth: \"short\",\n\t\tday: \"numeric\",\n\t});\n}\n\n/**\n * Formats a date relative to the current time\n * @param date - Date object to format\n * @returns Formatted string with relative time:\n * - \"Today, [time]\" for today's dates\n * - \"Yesterday, [time]\" for yesterday's dates\n * - \"MMM d, h:mm a\" for dates in current year\n * - \"MMM d, yyyy\" for dates in other years\n */\nexport function formatRelativeDate(date: Date) {\n\tif (isToday(date)) {\n\t\treturn `Today, ${format(date, \"h:mm a\")}`;\n\t}\n\tif (isYesterday(date)) {\n\t\treturn `Yesterday, ${format(date, \"h:mm a\")}`;\n\t}\n\tif (new Date().getFullYear() === date.getFullYear()) {\n\t\treturn format(date, \"MMM d, h:mm a\");\n\t}\n\treturn format(date, \"MMM d, yyyy\");\n}\n","/**\n * Stringifies all values in an object, including objects and null values.\n * If obj is undefined, returns an empty object.\n * @param obj - The object to stringify\n * @returns A new object with the same keys as obj, but with all values stringified\n */\nexport function stringifyValues(\n\tobj: Record<string, unknown> | undefined\n): Record<string, string> {\n\tconst result: Record<string, string> = {}\n\n\tif (!obj) {\n\t\treturn {}\n\t}\n\n\tfor (const key in obj) {\n\t\tconst value = obj[key]\n\t\tresult[key] =\n\t\t\tvalue === null\n\t\t\t\t? \"null\"\n\t\t\t\t: typeof value === \"object\"\n\t\t\t\t\t? JSON.stringify(value)\n\t\t\t\t\t: String(value)\n\t}\n\n\treturn result\n}\n\n/**\n * Removes empty values (undefined, null, empty strings) from an object\n *\n * @param obj - The object to prune\n * @returns A new object with empty values removed\n */\nexport function pruneEmpty<T extends Record<string, unknown>>(\n\tobj: T | undefined\n): Partial<T> {\n\tif (!obj) {\n\t\treturn {}\n\t}\n\n\treturn Object.entries(obj).reduce(\n\t\t(acc, [key, value]) => {\n\t\t\t// Skip undefined, null, and empty strings\n\t\t\tif (value === undefined || value === null || value === \"\") {\n\t\t\t\treturn acc\n\t\t\t}\n\t\t\t// Avoid spread syntax on accumulator\n\t\t\tacc[key as keyof T] = value as any\n\t\t\treturn acc\n\t\t},\n\t\t{} as Partial<T>\n\t)\n}\n","import { remark } from \"remark\"\nimport strip from \"strip-markdown\"\n\n/**\n * Strips markdown from a string\n * @param markdown - The markdown string to strip\n * @returns The stripped markdown string\n */\nexport async function stripMarkdown(markdown: string) {\n\tconst file = await remark().use(strip).process(markdown)\n\treturn String(file)\n}\n","/**\n * Truncates a given string to a specified length, adding an ellipsis if the\n * string is longer than the specified length.\n *\n * @param {string} str - The string to truncate.\n * @param {number} length - The maximum length of the resulting string.\n *\n * @returns {string} The truncated string.\n */\nexport function truncate(str: string, length: number) {\n\treturn str.length > length ? `${str.slice(0, length)}...` : str\n}\n","/**\n * Get the agent application URL for webhooks and callbacks\n *\n * This function constructs the URL for the main agent application, used primarily\n * for QStash webhooks and external callbacks. It supports multiple deployment\n * environments with fallback logic.\n *\n * @param path - Optional path to append to the base URL (leading slashes are normalized)\n * @returns The complete URL for the agent application\n *\n * @example\n * ```typescript\n * // Get base URL\n * getUrl() // \"http://localhost:8454/\"\n *\n * // Get URL with path\n * getUrl(\"/qstash/webhook\") // \"http://localhost:8454/qstash/webhook\"\n * getUrl(\"api/health\") // \"http://localhost:8454/api/health\"\n * ```\n *\n * @remarks\n * URL resolution priority:\n * 1. `AGENT_URL` environment variable (custom deployment)\n * 2. `RAILWAY_PUBLIC_DOMAIN` environment variable (Railway deployment)\n * 3. `http://localhost:8454/` (default)\n */\nexport function getUrl(path = \"\") {\n\tconst trimmedPath = path.replace(/^\\/+/, \"\")\n\n\tif (process.env.AGENT_URL) {\n\t\treturn `https://${process.env.AGENT_URL}/${trimmedPath}`\n\t}\n\n\tif (process.env.RAILWAY_PUBLIC_DOMAIN) {\n\t\treturn `https://${process.env.RAILWAY_PUBLIC_DOMAIN}/${trimmedPath}`\n\t}\n\n\treturn `https://localhost:8454/${trimmedPath}`\n}\n","import { v4 as uuidv4 } from \"uuid\";\n\n// The node:crypto version is not supported in the browser.\n// Use the uuid package instead.\nexport function randomUUID(): string {\n\treturn uuidv4();\n}\n","/**\n * Global logger instance for conditional debug logging\n * Supports both DEBUG and XMTP_DEBUG environment variables for backward compatibility\n * Compatible with common logger interfaces\n */\nexport const logger = {\n\tdebug: (message: string, ...args: any[]): void => {\n\t\tif (typeof process !== 'undefined' && (process.env?.DEBUG || process.env?.XMTP_DEBUG)) {\n\t\t\tconsole.log(message, ...args)\n\t\t}\n\t},\n\tlog: (message: string, ...args: any[]): void => {\n\t\tif (typeof process !== 'undefined' && (process.env?.DEBUG || process.env?.XMTP_DEBUG)) {\n\t\t\tconsole.log(message, ...args)\n\t\t}\n\t},\n\tinfo: (message: string, ...args: any[]): void => {\n\t\tif (typeof process !== 'undefined' && (process.env?.DEBUG || process.env?.XMTP_DEBUG)) {\n\t\t\tconsole.info(message, ...args)\n\t\t}\n\t},\n\twarn: (message: string, ...args: any[]): void => {\n\t\tif (typeof process !== 'undefined' && (process.env?.DEBUG || process.env?.XMTP_DEBUG)) {\n\t\t\tconsole.warn(message, ...args)\n\t\t}\n\t},\n\terror: (message: string, ...args: any[]): void => {\n\t\tif (typeof process !== 'undefined' && (process.env?.DEBUG || process.env?.XMTP_DEBUG)) {\n\t\t\tconsole.error(message, ...args)\n\t\t}\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACQO,SAAS,MAAS,KAAU,MAAqB;AACvD,SAAO,MAAM;AAAA,IAAK,EAAE,QAAQ,KAAK,KAAK,IAAI,SAAS,IAAI,EAAE;AAAA,IAAG,CAAC,GAAG,MAC/D,IAAI,MAAM,IAAI,MAAM,IAAI,OAAO,IAAI;AAAA,EACpC;AACD;AASO,SAAS,KAAQ,OAAiB;AACxC,SAAO,MAAM,OAAO,CAAC,MAAM,OAAO,SAAS,KAAK,QAAQ,IAAI,MAAM,KAAK;AACxE;AAQO,SAAS,QAAQ,OAA0B;AACjD,MAAI,CAAC,MAAO,QAAO,CAAC;AACpB,SAAO,MAAM,KAAK,MAAM,KAAK,OAAO,IAAI,GAAG;AAC5C;;;AChBO,SAAS,2BAAkD;AAChE,MAAI,QAAQ,IAAI,iBAAiB;AAC/B,WAAO;AAAA,MACL,cAAc;AAAA,MACd,UAAU;AAAA,MACV,aAAa;AAAA,IACf;AAAA,EACF;AAEA,MAAI,QAAQ,IAAI,gBAAgB;AAC9B,WAAO;AAAA,MACL,cAAc;AAAA,MACd,UAAU;AAAA,MACV,aAAa;AAAA,IACf;AAAA,EACF;AAEA,SAAO;AAAA,IACL,cAAc;AAAA,IACd,UAAU;AAAA,IACV,aAAa,QAAQ,IAAI,gBAAgB,QAAQ,IAAI;AAAA,EACvD;AACF;AAMO,SAAS,yBAAyB,SAA0B;AACjE,QAAM,MAAM,yBAAyB;AAErC,MAAI,IAAI,cAAc;AACpB,WAAO,UAAU,QAAQ,OAAO,KAAK;AAAA,EACvC;AAEA,QAAM,WAAW,IAAI;AACrB,QAAM,WAAW,UAAU,GAAG,QAAQ,UAAU,OAAO,KAAK,GAAG,QAAQ;AAEvE,SAAO;AACT;AAKO,SAAS,wBAAwB,eAAe,KAAc;AACnE,MAAI,QAAQ,IAAI,cAAc;AAC5B,WAAO,QAAQ,IAAI;AAAA,EACrB;AAEA,MAAI,QAAQ,IAAI,eAAe;AAC7B,WAAO,QAAQ,IAAI;AAAA,EACrB;AAGA,SAAO,oBAAoB,YAAY;AACzC;;;ACzEA,sBAAe;AASR,IAAM,mBAAN,MAAiD;AAAA,EACtD,YAAoB,QAAa;AAAb;AAAA,EAAc;AAAA,EAElC,MAAM,WAAW,WAAmB,YAAmC;AACrE,UAAM,WAAW,MAAM,gBAAAA,QAAG,SAAS,SAAS;AAC5C,UAAM,KAAK,OAAO,IAAI,YAAY,QAAQ;AAAA,EAC5C;AAAA,EAEA,MAAM,aAAa,YAAoB,WAAkC;AACvE,UAAM,SAAS,MAAM,KAAK,OAAO,IAAI,UAAU;AAC/C,QAAI,QAAQ;AACV,YAAM,gBAAAA,QAAG,UAAU,WAAW,MAAM,OAAO,YAAY,CAAC;AAAA,IAC1D;AAAA,EACF;AAAA,EAEA,MAAM,OAAO,YAAsC;AACjD,UAAM,SAAS,MAAM,KAAK,OAAO,KAAK,UAAU;AAChD,WAAO,WAAW;AAAA,EACpB;AAAA,EAEA,MAAM,OAAO,YAAmC;AAC9C,UAAM,KAAK,OAAO,OAAO,UAAU;AAAA,EACrC;AACF;AAEO,IAAM,0BAAN,MAAwD;AAAA,EAC7D,YAAoB,kBAA0B;AAA1B;AAAA,EAA2B;AAAA,EAE/C,MAAM,WAAW,WAAmB,YAAmC;AACrE,UAAM,IAAI,MAAM,+CAA+C;AAAA,EACjE;AAAA,EAEA,MAAM,aAAa,YAAoB,WAAkC;AACvE,UAAM,IAAI,MAAM,+CAA+C;AAAA,EACjE;AAAA,EAEA,MAAM,OAAO,YAAsC;AACjD,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,OAAO,YAAmC;AAAA,EAChD;AACF;AAEO,SAAS,uBAA8C;AAC5D,MAAI,OAAO,eAAe,eAAe,kBAAkB,YAAY;AACrE,WAAO,IAAI,iBAAkB,WAAmB,YAAY;AAAA,EAC9D;AAEA,MAAI,OAAO,YAAY,eAAe,QAAQ,KAAK,cAAc;AAC/D,WAAO,IAAI,wBAAwB,QAAQ,IAAI,YAAY;AAAA,EAC7D;AAEA,SAAO;AACT;;;AC/DA,sBAA6C;AAOtC,SAAS,WAAW,cAAsC;AAChE,MAAI,CAAC,aAAc,QAAO;AAE1B,QAAM,OAAO,IAAI,KAAK,YAAY;AAElC,SAAO,KAAK,mBAAmB,QAAW;AAAA,IACzC,MAAM;AAAA,IACN,OAAO;AAAA,IACP,KAAK;AAAA,EACN,CAAC;AACF;AAWO,SAAS,mBAAmB,MAAY;AAC9C,UAAI,yBAAQ,IAAI,GAAG;AAClB,WAAO,cAAU,wBAAO,MAAM,QAAQ,CAAC;AAAA,EACxC;AACA,UAAI,6BAAY,IAAI,GAAG;AACtB,WAAO,kBAAc,wBAAO,MAAM,QAAQ,CAAC;AAAA,EAC5C;AACA,OAAI,oBAAI,KAAK,GAAE,YAAY,MAAM,KAAK,YAAY,GAAG;AACpD,eAAO,wBAAO,MAAM,eAAe;AAAA,EACpC;AACA,aAAO,wBAAO,MAAM,aAAa;AAClC;;;ACjCO,SAAS,gBACf,KACyB;AACzB,QAAM,SAAiC,CAAC;AAExC,MAAI,CAAC,KAAK;AACT,WAAO,CAAC;AAAA,EACT;AAEA,aAAW,OAAO,KAAK;AACtB,UAAM,QAAQ,IAAI,GAAG;AACrB,WAAO,GAAG,IACT,UAAU,OACP,SACA,OAAO,UAAU,WAChB,KAAK,UAAU,KAAK,IACpB,OAAO,KAAK;AAAA,EAClB;AAEA,SAAO;AACR;AAQO,SAAS,WACf,KACa;AACb,MAAI,CAAC,KAAK;AACT,WAAO,CAAC;AAAA,EACT;AAEA,SAAO,OAAO,QAAQ,GAAG,EAAE;AAAA,IAC1B,CAAC,KAAK,CAAC,KAAK,KAAK,MAAM;AAEtB,UAAI,UAAU,UAAa,UAAU,QAAQ,UAAU,IAAI;AAC1D,eAAO;AAAA,MACR;AAEA,UAAI,GAAc,IAAI;AACtB,aAAO;AAAA,IACR;AAAA,IACA,CAAC;AAAA,EACF;AACD;;;ACrDA,oBAAuB;AACvB,4BAAkB;AAOlB,eAAsB,cAAc,UAAkB;AACrD,QAAM,OAAO,UAAM,sBAAO,EAAE,IAAI,sBAAAC,OAAK,EAAE,QAAQ,QAAQ;AACvD,SAAO,OAAO,IAAI;AACnB;;;ACFO,SAAS,SAAS,KAAa,QAAgB;AACrD,SAAO,IAAI,SAAS,SAAS,GAAG,IAAI,MAAM,GAAG,MAAM,CAAC,QAAQ;AAC7D;;;ACeO,SAAS,OAAO,OAAO,IAAI;AACjC,QAAM,cAAc,KAAK,QAAQ,QAAQ,EAAE;AAE3C,MAAI,QAAQ,IAAI,WAAW;AAC1B,WAAO,WAAW,QAAQ,IAAI,SAAS,IAAI,WAAW;AAAA,EACvD;AAEA,MAAI,QAAQ,IAAI,uBAAuB;AACtC,WAAO,WAAW,QAAQ,IAAI,qBAAqB,IAAI,WAAW;AAAA,EACnE;AAEA,SAAO,0BAA0B,WAAW;AAC7C;;;ACtCA,kBAA6B;AAItB,SAAS,aAAqB;AACpC,aAAO,YAAAC,IAAO;AACf;;;ACDO,IAAM,SAAS;AAAA,EACrB,OAAO,CAAC,YAAoB,SAAsB;AACjD,QAAI,OAAO,YAAY,gBAAgB,QAAQ,KAAK,SAAS,QAAQ,KAAK,aAAa;AACtF,cAAQ,IAAI,SAAS,GAAG,IAAI;AAAA,IAC7B;AAAA,EACD;AAAA,EACA,KAAK,CAAC,YAAoB,SAAsB;AAC/C,QAAI,OAAO,YAAY,gBAAgB,QAAQ,KAAK,SAAS,QAAQ,KAAK,aAAa;AACtF,cAAQ,IAAI,SAAS,GAAG,IAAI;AAAA,IAC7B;AAAA,EACD;AAAA,EACA,MAAM,CAAC,YAAoB,SAAsB;AAChD,QAAI,OAAO,YAAY,gBAAgB,QAAQ,KAAK,SAAS,QAAQ,KAAK,aAAa;AACtF,cAAQ,KAAK,SAAS,GAAG,IAAI;AAAA,IAC9B;AAAA,EACD;AAAA,EACA,MAAM,CAAC,YAAoB,SAAsB;AAChD,QAAI,OAAO,YAAY,gBAAgB,QAAQ,KAAK,SAAS,QAAQ,KAAK,aAAa;AACtF,cAAQ,KAAK,SAAS,GAAG,IAAI;AAAA,IAC9B;AAAA,EACD;AAAA,EACA,OAAO,CAAC,YAAoB,SAAsB;AACjD,QAAI,OAAO,YAAY,gBAAgB,QAAQ,KAAK,SAAS,QAAQ,KAAK,aAAa;AACtF,cAAQ,MAAM,SAAS,GAAG,IAAI;AAAA,IAC/B;AAAA,EACD;AACD;","names":["fs","strip","uuidv4"]}
|
package/dist/index.d.cts
CHANGED
|
@@ -149,4 +149,17 @@ declare function getUrl(path?: string): string;
|
|
|
149
149
|
|
|
150
150
|
declare function randomUUID(): string;
|
|
151
151
|
|
|
152
|
-
|
|
152
|
+
/**
|
|
153
|
+
* Global logger instance for conditional debug logging
|
|
154
|
+
* Supports both DEBUG and XMTP_DEBUG environment variables for backward compatibility
|
|
155
|
+
* Compatible with common logger interfaces
|
|
156
|
+
*/
|
|
157
|
+
declare const logger: {
|
|
158
|
+
debug: (message: string, ...args: any[]) => void;
|
|
159
|
+
log: (message: string, ...args: any[]) => void;
|
|
160
|
+
info: (message: string, ...args: any[]) => void;
|
|
161
|
+
warn: (message: string, ...args: any[]) => void;
|
|
162
|
+
error: (message: string, ...args: any[]) => void;
|
|
163
|
+
};
|
|
164
|
+
|
|
165
|
+
export { type CloudflareEnvironment, ExternalDatabaseAdapter, R2StorageAdapter, type StorageAdapter, chunk, createStorageAdapter, formatDate, formatRelativeDate, getCloudflareEnvironment, getCloudflareServiceUrl, getCloudflareStoragePath, getUrl, logger, pruneEmpty, randomUUID, shuffle, stringifyValues, stripMarkdown, truncate, uniq };
|
package/dist/index.d.ts
CHANGED
|
@@ -149,4 +149,17 @@ declare function getUrl(path?: string): string;
|
|
|
149
149
|
|
|
150
150
|
declare function randomUUID(): string;
|
|
151
151
|
|
|
152
|
-
|
|
152
|
+
/**
|
|
153
|
+
* Global logger instance for conditional debug logging
|
|
154
|
+
* Supports both DEBUG and XMTP_DEBUG environment variables for backward compatibility
|
|
155
|
+
* Compatible with common logger interfaces
|
|
156
|
+
*/
|
|
157
|
+
declare const logger: {
|
|
158
|
+
debug: (message: string, ...args: any[]) => void;
|
|
159
|
+
log: (message: string, ...args: any[]) => void;
|
|
160
|
+
info: (message: string, ...args: any[]) => void;
|
|
161
|
+
warn: (message: string, ...args: any[]) => void;
|
|
162
|
+
error: (message: string, ...args: any[]) => void;
|
|
163
|
+
};
|
|
164
|
+
|
|
165
|
+
export { type CloudflareEnvironment, ExternalDatabaseAdapter, R2StorageAdapter, type StorageAdapter, chunk, createStorageAdapter, formatDate, formatRelativeDate, getCloudflareEnvironment, getCloudflareServiceUrl, getCloudflareStoragePath, getUrl, logger, pruneEmpty, randomUUID, shuffle, stringifyValues, stripMarkdown, truncate, uniq };
|
package/dist/index.js
CHANGED
|
@@ -186,6 +186,35 @@ import { v4 as uuidv4 } from "uuid";
|
|
|
186
186
|
function randomUUID() {
|
|
187
187
|
return uuidv4();
|
|
188
188
|
}
|
|
189
|
+
|
|
190
|
+
// src/lib/logger.ts
|
|
191
|
+
var logger = {
|
|
192
|
+
debug: (message, ...args) => {
|
|
193
|
+
if (typeof process !== "undefined" && (process.env?.DEBUG || process.env?.XMTP_DEBUG)) {
|
|
194
|
+
console.log(message, ...args);
|
|
195
|
+
}
|
|
196
|
+
},
|
|
197
|
+
log: (message, ...args) => {
|
|
198
|
+
if (typeof process !== "undefined" && (process.env?.DEBUG || process.env?.XMTP_DEBUG)) {
|
|
199
|
+
console.log(message, ...args);
|
|
200
|
+
}
|
|
201
|
+
},
|
|
202
|
+
info: (message, ...args) => {
|
|
203
|
+
if (typeof process !== "undefined" && (process.env?.DEBUG || process.env?.XMTP_DEBUG)) {
|
|
204
|
+
console.info(message, ...args);
|
|
205
|
+
}
|
|
206
|
+
},
|
|
207
|
+
warn: (message, ...args) => {
|
|
208
|
+
if (typeof process !== "undefined" && (process.env?.DEBUG || process.env?.XMTP_DEBUG)) {
|
|
209
|
+
console.warn(message, ...args);
|
|
210
|
+
}
|
|
211
|
+
},
|
|
212
|
+
error: (message, ...args) => {
|
|
213
|
+
if (typeof process !== "undefined" && (process.env?.DEBUG || process.env?.XMTP_DEBUG)) {
|
|
214
|
+
console.error(message, ...args);
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
};
|
|
189
218
|
export {
|
|
190
219
|
ExternalDatabaseAdapter,
|
|
191
220
|
R2StorageAdapter,
|
|
@@ -197,6 +226,7 @@ export {
|
|
|
197
226
|
getCloudflareServiceUrl,
|
|
198
227
|
getCloudflareStoragePath,
|
|
199
228
|
getUrl,
|
|
229
|
+
logger,
|
|
200
230
|
pruneEmpty,
|
|
201
231
|
randomUUID,
|
|
202
232
|
shuffle,
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/lib/array.ts","../src/lib/cloudflare.ts","../src/lib/storage.ts","../src/lib/date.ts","../src/lib/object.ts","../src/lib/markdown.ts","../src/lib/string.ts","../src/lib/urls.ts","../src/lib/uuid.ts"],"sourcesContent":["/**\n * Splits an array into chunks of specified size.\n *\n * @template T - The type of the array elements.\n * @param {T[]} arr - The array to split into chunks.\n * @param {number} size - The maximum number of elements per chunk.\n * @returns {T[][]} An array of chunks, where each chunk is an array of T.\n */\nexport function chunk<T>(arr: T[], size: number): T[][] {\n\treturn Array.from({ length: Math.ceil(arr.length / size) }, (_, i) =>\n\t\tarr.slice(i * size, i * size + size)\n\t)\n}\n\n/**\n * Returns a new array with only unique elements from the input array.\n *\n * @template T - The type of the array elements.\n * @param {T[]} array - The array from which to remove duplicate elements.\n * @returns {T[]} A new array containing only unique elements.\n */\nexport function uniq<T>(array: T[]): T[] {\n\treturn array.filter((item, index, self) => self.indexOf(item) === index)\n}\n\n/**\n * Randomly shuffles the elements of an array.\n *\n * @param {any[] | undefined} array - The array to shuffle. If undefined, returns an empty array.\n * @returns {any[]} A shuffled copy of the input array.\n */\nexport function shuffle(array: any[] | undefined) {\n\tif (!array) return []\n\treturn array.sort(() => Math.random() - 0.5)\n}\n","/**\n * Cloudflare environment detection and storage utilities\n */\n\ndeclare const process: {\n env: Record<string, string | undefined>\n cwd(): string\n}\n\nexport interface CloudflareEnvironment {\n isCloudflare: boolean\n platform: 'pages' | 'workers' | 'local'\n storagePath: string\n}\n\n/**\n * Detects if running in Cloudflare environment and returns appropriate storage configuration\n */\nexport function getCloudflareEnvironment(): CloudflareEnvironment {\n if (process.env.CF_PAGES_BRANCH) {\n return {\n isCloudflare: true,\n platform: 'pages',\n storagePath: '/tmp'\n }\n }\n\n if (process.env.CF_WORKER_NAME) {\n return {\n isCloudflare: true,\n platform: 'workers',\n storagePath: '/tmp'\n }\n }\n\n return {\n isCloudflare: false,\n platform: 'local',\n storagePath: process.env.PROJECT_ROOT || process.cwd()\n }\n}\n\n/**\n * Gets the appropriate storage path for the current environment\n * @param subPath - Optional subdirectory within the storage path\n */\nexport function getCloudflareStoragePath(subPath?: string): string {\n const env = getCloudflareEnvironment()\n \n if (env.isCloudflare) {\n return subPath ? `/tmp/${subPath}` : '/tmp'\n }\n\n const basePath = env.storagePath\n const dataPath = subPath ? `${basePath}/.data/${subPath}` : `${basePath}/.data`\n \n return dataPath\n}\n\n/**\n * Gets service URL based on Cloudflare environment variables\n */\nexport function getCloudflareServiceUrl(fallbackPort = 3000): string {\n if (process.env.CF_PAGES_URL) {\n return process.env.CF_PAGES_URL\n }\n\n if (process.env.CF_WORKER_URL) {\n return process.env.CF_WORKER_URL\n }\n\n // Local development fallback\n return `http://localhost:${fallbackPort}`\n}\n","import fs from \"node:fs/promises\"\n\nexport interface StorageAdapter {\n uploadFile(localPath: string, remotePath: string): Promise<void>\n downloadFile(remotePath: string, localPath: string): Promise<void>\n exists(remotePath: string): Promise<boolean>\n delete(remotePath: string): Promise<void>\n}\n\nexport class R2StorageAdapter implements StorageAdapter {\n constructor(private bucket: any) {}\n \n async uploadFile(localPath: string, remotePath: string): Promise<void> {\n const fileData = await fs.readFile(localPath)\n await this.bucket.put(remotePath, fileData)\n }\n \n async downloadFile(remotePath: string, localPath: string): Promise<void> {\n const object = await this.bucket.get(remotePath)\n if (object) {\n await fs.writeFile(localPath, await object.arrayBuffer())\n }\n }\n \n async exists(remotePath: string): Promise<boolean> {\n const object = await this.bucket.head(remotePath)\n return object !== null\n }\n \n async delete(remotePath: string): Promise<void> {\n await this.bucket.delete(remotePath)\n }\n}\n\nexport class ExternalDatabaseAdapter implements StorageAdapter {\n constructor(private connectionString: string) {}\n \n async uploadFile(localPath: string, remotePath: string): Promise<void> {\n throw new Error('External database storage not yet implemented')\n }\n \n async downloadFile(remotePath: string, localPath: string): Promise<void> {\n throw new Error('External database storage not yet implemented')\n }\n \n async exists(remotePath: string): Promise<boolean> {\n return false\n }\n \n async delete(remotePath: string): Promise<void> {\n }\n}\n\nexport function createStorageAdapter(): StorageAdapter | null {\n if (typeof globalThis !== 'undefined' && 'XMTP_STORAGE' in globalThis) {\n return new R2StorageAdapter((globalThis as any).XMTP_STORAGE)\n }\n \n if (typeof process !== 'undefined' && process.env?.DATABASE_URL) {\n return new ExternalDatabaseAdapter(process.env.DATABASE_URL)\n }\n \n return null\n}\n","import { format, isToday, isYesterday } from \"date-fns\";\n\n/**\n * Formats a date string or Date object into a localized date string\n * @param stringOrDate - Date string or Date object to format\n * @returns Formatted date string (e.g., \"Jan 1, 2024\") or empty string if no input\n */\nexport function formatDate(stringOrDate?: string | Date): string {\n\tif (!stringOrDate) return \"\";\n\n\tconst date = new Date(stringOrDate);\n\n\treturn date.toLocaleDateString(undefined, {\n\t\tyear: \"numeric\",\n\t\tmonth: \"short\",\n\t\tday: \"numeric\",\n\t});\n}\n\n/**\n * Formats a date relative to the current time\n * @param date - Date object to format\n * @returns Formatted string with relative time:\n * - \"Today, [time]\" for today's dates\n * - \"Yesterday, [time]\" for yesterday's dates\n * - \"MMM d, h:mm a\" for dates in current year\n * - \"MMM d, yyyy\" for dates in other years\n */\nexport function formatRelativeDate(date: Date) {\n\tif (isToday(date)) {\n\t\treturn `Today, ${format(date, \"h:mm a\")}`;\n\t}\n\tif (isYesterday(date)) {\n\t\treturn `Yesterday, ${format(date, \"h:mm a\")}`;\n\t}\n\tif (new Date().getFullYear() === date.getFullYear()) {\n\t\treturn format(date, \"MMM d, h:mm a\");\n\t}\n\treturn format(date, \"MMM d, yyyy\");\n}\n","/**\n * Stringifies all values in an object, including objects and null values.\n * If obj is undefined, returns an empty object.\n * @param obj - The object to stringify\n * @returns A new object with the same keys as obj, but with all values stringified\n */\nexport function stringifyValues(\n\tobj: Record<string, unknown> | undefined\n): Record<string, string> {\n\tconst result: Record<string, string> = {}\n\n\tif (!obj) {\n\t\treturn {}\n\t}\n\n\tfor (const key in obj) {\n\t\tconst value = obj[key]\n\t\tresult[key] =\n\t\t\tvalue === null\n\t\t\t\t? \"null\"\n\t\t\t\t: typeof value === \"object\"\n\t\t\t\t\t? JSON.stringify(value)\n\t\t\t\t\t: String(value)\n\t}\n\n\treturn result\n}\n\n/**\n * Removes empty values (undefined, null, empty strings) from an object\n *\n * @param obj - The object to prune\n * @returns A new object with empty values removed\n */\nexport function pruneEmpty<T extends Record<string, unknown>>(\n\tobj: T | undefined\n): Partial<T> {\n\tif (!obj) {\n\t\treturn {}\n\t}\n\n\treturn Object.entries(obj).reduce(\n\t\t(acc, [key, value]) => {\n\t\t\t// Skip undefined, null, and empty strings\n\t\t\tif (value === undefined || value === null || value === \"\") {\n\t\t\t\treturn acc\n\t\t\t}\n\t\t\t// Avoid spread syntax on accumulator\n\t\t\tacc[key as keyof T] = value as any\n\t\t\treturn acc\n\t\t},\n\t\t{} as Partial<T>\n\t)\n}\n","import { remark } from \"remark\"\nimport strip from \"strip-markdown\"\n\n/**\n * Strips markdown from a string\n * @param markdown - The markdown string to strip\n * @returns The stripped markdown string\n */\nexport async function stripMarkdown(markdown: string) {\n\tconst file = await remark().use(strip).process(markdown)\n\treturn String(file)\n}\n","/**\n * Truncates a given string to a specified length, adding an ellipsis if the\n * string is longer than the specified length.\n *\n * @param {string} str - The string to truncate.\n * @param {number} length - The maximum length of the resulting string.\n *\n * @returns {string} The truncated string.\n */\nexport function truncate(str: string, length: number) {\n\treturn str.length > length ? `${str.slice(0, length)}...` : str\n}\n","/**\n * Get the agent application URL for webhooks and callbacks\n *\n * This function constructs the URL for the main agent application, used primarily\n * for QStash webhooks and external callbacks. It supports multiple deployment\n * environments with fallback logic.\n *\n * @param path - Optional path to append to the base URL (leading slashes are normalized)\n * @returns The complete URL for the agent application\n *\n * @example\n * ```typescript\n * // Get base URL\n * getUrl() // \"http://localhost:8454/\"\n *\n * // Get URL with path\n * getUrl(\"/qstash/webhook\") // \"http://localhost:8454/qstash/webhook\"\n * getUrl(\"api/health\") // \"http://localhost:8454/api/health\"\n * ```\n *\n * @remarks\n * URL resolution priority:\n * 1. `AGENT_URL` environment variable (custom deployment)\n * 2. `RAILWAY_PUBLIC_DOMAIN` environment variable (Railway deployment)\n * 3. `http://localhost:8454/` (default)\n */\nexport function getUrl(path = \"\") {\n\tconst trimmedPath = path.replace(/^\\/+/, \"\")\n\n\tif (process.env.AGENT_URL) {\n\t\treturn `https://${process.env.AGENT_URL}/${trimmedPath}`\n\t}\n\n\tif (process.env.RAILWAY_PUBLIC_DOMAIN) {\n\t\treturn `https://${process.env.RAILWAY_PUBLIC_DOMAIN}/${trimmedPath}`\n\t}\n\n\treturn `https://localhost:8454/${trimmedPath}`\n}\n","import { v4 as uuidv4 } from \"uuid\";\n\n// The node:crypto version is not supported in the browser.\n// Use the uuid package instead.\nexport function randomUUID(): string {\n\treturn uuidv4();\n}\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../src/lib/array.ts","../src/lib/cloudflare.ts","../src/lib/storage.ts","../src/lib/date.ts","../src/lib/object.ts","../src/lib/markdown.ts","../src/lib/string.ts","../src/lib/urls.ts","../src/lib/uuid.ts","../src/lib/logger.ts"],"sourcesContent":["/**\n * Splits an array into chunks of specified size.\n *\n * @template T - The type of the array elements.\n * @param {T[]} arr - The array to split into chunks.\n * @param {number} size - The maximum number of elements per chunk.\n * @returns {T[][]} An array of chunks, where each chunk is an array of T.\n */\nexport function chunk<T>(arr: T[], size: number): T[][] {\n\treturn Array.from({ length: Math.ceil(arr.length / size) }, (_, i) =>\n\t\tarr.slice(i * size, i * size + size)\n\t)\n}\n\n/**\n * Returns a new array with only unique elements from the input array.\n *\n * @template T - The type of the array elements.\n * @param {T[]} array - The array from which to remove duplicate elements.\n * @returns {T[]} A new array containing only unique elements.\n */\nexport function uniq<T>(array: T[]): T[] {\n\treturn array.filter((item, index, self) => self.indexOf(item) === index)\n}\n\n/**\n * Randomly shuffles the elements of an array.\n *\n * @param {any[] | undefined} array - The array to shuffle. If undefined, returns an empty array.\n * @returns {any[]} A shuffled copy of the input array.\n */\nexport function shuffle(array: any[] | undefined) {\n\tif (!array) return []\n\treturn array.sort(() => Math.random() - 0.5)\n}\n","/**\n * Cloudflare environment detection and storage utilities\n */\n\ndeclare const process: {\n env: Record<string, string | undefined>\n cwd(): string\n}\n\nexport interface CloudflareEnvironment {\n isCloudflare: boolean\n platform: 'pages' | 'workers' | 'local'\n storagePath: string\n}\n\n/**\n * Detects if running in Cloudflare environment and returns appropriate storage configuration\n */\nexport function getCloudflareEnvironment(): CloudflareEnvironment {\n if (process.env.CF_PAGES_BRANCH) {\n return {\n isCloudflare: true,\n platform: 'pages',\n storagePath: '/tmp'\n }\n }\n\n if (process.env.CF_WORKER_NAME) {\n return {\n isCloudflare: true,\n platform: 'workers',\n storagePath: '/tmp'\n }\n }\n\n return {\n isCloudflare: false,\n platform: 'local',\n storagePath: process.env.PROJECT_ROOT || process.cwd()\n }\n}\n\n/**\n * Gets the appropriate storage path for the current environment\n * @param subPath - Optional subdirectory within the storage path\n */\nexport function getCloudflareStoragePath(subPath?: string): string {\n const env = getCloudflareEnvironment()\n \n if (env.isCloudflare) {\n return subPath ? `/tmp/${subPath}` : '/tmp'\n }\n\n const basePath = env.storagePath\n const dataPath = subPath ? `${basePath}/.data/${subPath}` : `${basePath}/.data`\n \n return dataPath\n}\n\n/**\n * Gets service URL based on Cloudflare environment variables\n */\nexport function getCloudflareServiceUrl(fallbackPort = 3000): string {\n if (process.env.CF_PAGES_URL) {\n return process.env.CF_PAGES_URL\n }\n\n if (process.env.CF_WORKER_URL) {\n return process.env.CF_WORKER_URL\n }\n\n // Local development fallback\n return `http://localhost:${fallbackPort}`\n}\n","import fs from \"node:fs/promises\"\n\nexport interface StorageAdapter {\n uploadFile(localPath: string, remotePath: string): Promise<void>\n downloadFile(remotePath: string, localPath: string): Promise<void>\n exists(remotePath: string): Promise<boolean>\n delete(remotePath: string): Promise<void>\n}\n\nexport class R2StorageAdapter implements StorageAdapter {\n constructor(private bucket: any) {}\n \n async uploadFile(localPath: string, remotePath: string): Promise<void> {\n const fileData = await fs.readFile(localPath)\n await this.bucket.put(remotePath, fileData)\n }\n \n async downloadFile(remotePath: string, localPath: string): Promise<void> {\n const object = await this.bucket.get(remotePath)\n if (object) {\n await fs.writeFile(localPath, await object.arrayBuffer())\n }\n }\n \n async exists(remotePath: string): Promise<boolean> {\n const object = await this.bucket.head(remotePath)\n return object !== null\n }\n \n async delete(remotePath: string): Promise<void> {\n await this.bucket.delete(remotePath)\n }\n}\n\nexport class ExternalDatabaseAdapter implements StorageAdapter {\n constructor(private connectionString: string) {}\n \n async uploadFile(localPath: string, remotePath: string): Promise<void> {\n throw new Error('External database storage not yet implemented')\n }\n \n async downloadFile(remotePath: string, localPath: string): Promise<void> {\n throw new Error('External database storage not yet implemented')\n }\n \n async exists(remotePath: string): Promise<boolean> {\n return false\n }\n \n async delete(remotePath: string): Promise<void> {\n }\n}\n\nexport function createStorageAdapter(): StorageAdapter | null {\n if (typeof globalThis !== 'undefined' && 'XMTP_STORAGE' in globalThis) {\n return new R2StorageAdapter((globalThis as any).XMTP_STORAGE)\n }\n \n if (typeof process !== 'undefined' && process.env?.DATABASE_URL) {\n return new ExternalDatabaseAdapter(process.env.DATABASE_URL)\n }\n \n return null\n}\n","import { format, isToday, isYesterday } from \"date-fns\";\n\n/**\n * Formats a date string or Date object into a localized date string\n * @param stringOrDate - Date string or Date object to format\n * @returns Formatted date string (e.g., \"Jan 1, 2024\") or empty string if no input\n */\nexport function formatDate(stringOrDate?: string | Date): string {\n\tif (!stringOrDate) return \"\";\n\n\tconst date = new Date(stringOrDate);\n\n\treturn date.toLocaleDateString(undefined, {\n\t\tyear: \"numeric\",\n\t\tmonth: \"short\",\n\t\tday: \"numeric\",\n\t});\n}\n\n/**\n * Formats a date relative to the current time\n * @param date - Date object to format\n * @returns Formatted string with relative time:\n * - \"Today, [time]\" for today's dates\n * - \"Yesterday, [time]\" for yesterday's dates\n * - \"MMM d, h:mm a\" for dates in current year\n * - \"MMM d, yyyy\" for dates in other years\n */\nexport function formatRelativeDate(date: Date) {\n\tif (isToday(date)) {\n\t\treturn `Today, ${format(date, \"h:mm a\")}`;\n\t}\n\tif (isYesterday(date)) {\n\t\treturn `Yesterday, ${format(date, \"h:mm a\")}`;\n\t}\n\tif (new Date().getFullYear() === date.getFullYear()) {\n\t\treturn format(date, \"MMM d, h:mm a\");\n\t}\n\treturn format(date, \"MMM d, yyyy\");\n}\n","/**\n * Stringifies all values in an object, including objects and null values.\n * If obj is undefined, returns an empty object.\n * @param obj - The object to stringify\n * @returns A new object with the same keys as obj, but with all values stringified\n */\nexport function stringifyValues(\n\tobj: Record<string, unknown> | undefined\n): Record<string, string> {\n\tconst result: Record<string, string> = {}\n\n\tif (!obj) {\n\t\treturn {}\n\t}\n\n\tfor (const key in obj) {\n\t\tconst value = obj[key]\n\t\tresult[key] =\n\t\t\tvalue === null\n\t\t\t\t? \"null\"\n\t\t\t\t: typeof value === \"object\"\n\t\t\t\t\t? JSON.stringify(value)\n\t\t\t\t\t: String(value)\n\t}\n\n\treturn result\n}\n\n/**\n * Removes empty values (undefined, null, empty strings) from an object\n *\n * @param obj - The object to prune\n * @returns A new object with empty values removed\n */\nexport function pruneEmpty<T extends Record<string, unknown>>(\n\tobj: T | undefined\n): Partial<T> {\n\tif (!obj) {\n\t\treturn {}\n\t}\n\n\treturn Object.entries(obj).reduce(\n\t\t(acc, [key, value]) => {\n\t\t\t// Skip undefined, null, and empty strings\n\t\t\tif (value === undefined || value === null || value === \"\") {\n\t\t\t\treturn acc\n\t\t\t}\n\t\t\t// Avoid spread syntax on accumulator\n\t\t\tacc[key as keyof T] = value as any\n\t\t\treturn acc\n\t\t},\n\t\t{} as Partial<T>\n\t)\n}\n","import { remark } from \"remark\"\nimport strip from \"strip-markdown\"\n\n/**\n * Strips markdown from a string\n * @param markdown - The markdown string to strip\n * @returns The stripped markdown string\n */\nexport async function stripMarkdown(markdown: string) {\n\tconst file = await remark().use(strip).process(markdown)\n\treturn String(file)\n}\n","/**\n * Truncates a given string to a specified length, adding an ellipsis if the\n * string is longer than the specified length.\n *\n * @param {string} str - The string to truncate.\n * @param {number} length - The maximum length of the resulting string.\n *\n * @returns {string} The truncated string.\n */\nexport function truncate(str: string, length: number) {\n\treturn str.length > length ? `${str.slice(0, length)}...` : str\n}\n","/**\n * Get the agent application URL for webhooks and callbacks\n *\n * This function constructs the URL for the main agent application, used primarily\n * for QStash webhooks and external callbacks. It supports multiple deployment\n * environments with fallback logic.\n *\n * @param path - Optional path to append to the base URL (leading slashes are normalized)\n * @returns The complete URL for the agent application\n *\n * @example\n * ```typescript\n * // Get base URL\n * getUrl() // \"http://localhost:8454/\"\n *\n * // Get URL with path\n * getUrl(\"/qstash/webhook\") // \"http://localhost:8454/qstash/webhook\"\n * getUrl(\"api/health\") // \"http://localhost:8454/api/health\"\n * ```\n *\n * @remarks\n * URL resolution priority:\n * 1. `AGENT_URL` environment variable (custom deployment)\n * 2. `RAILWAY_PUBLIC_DOMAIN` environment variable (Railway deployment)\n * 3. `http://localhost:8454/` (default)\n */\nexport function getUrl(path = \"\") {\n\tconst trimmedPath = path.replace(/^\\/+/, \"\")\n\n\tif (process.env.AGENT_URL) {\n\t\treturn `https://${process.env.AGENT_URL}/${trimmedPath}`\n\t}\n\n\tif (process.env.RAILWAY_PUBLIC_DOMAIN) {\n\t\treturn `https://${process.env.RAILWAY_PUBLIC_DOMAIN}/${trimmedPath}`\n\t}\n\n\treturn `https://localhost:8454/${trimmedPath}`\n}\n","import { v4 as uuidv4 } from \"uuid\";\n\n// The node:crypto version is not supported in the browser.\n// Use the uuid package instead.\nexport function randomUUID(): string {\n\treturn uuidv4();\n}\n","/**\n * Global logger instance for conditional debug logging\n * Supports both DEBUG and XMTP_DEBUG environment variables for backward compatibility\n * Compatible with common logger interfaces\n */\nexport const logger = {\n\tdebug: (message: string, ...args: any[]): void => {\n\t\tif (typeof process !== 'undefined' && (process.env?.DEBUG || process.env?.XMTP_DEBUG)) {\n\t\t\tconsole.log(message, ...args)\n\t\t}\n\t},\n\tlog: (message: string, ...args: any[]): void => {\n\t\tif (typeof process !== 'undefined' && (process.env?.DEBUG || process.env?.XMTP_DEBUG)) {\n\t\t\tconsole.log(message, ...args)\n\t\t}\n\t},\n\tinfo: (message: string, ...args: any[]): void => {\n\t\tif (typeof process !== 'undefined' && (process.env?.DEBUG || process.env?.XMTP_DEBUG)) {\n\t\t\tconsole.info(message, ...args)\n\t\t}\n\t},\n\twarn: (message: string, ...args: any[]): void => {\n\t\tif (typeof process !== 'undefined' && (process.env?.DEBUG || process.env?.XMTP_DEBUG)) {\n\t\t\tconsole.warn(message, ...args)\n\t\t}\n\t},\n\terror: (message: string, ...args: any[]): void => {\n\t\tif (typeof process !== 'undefined' && (process.env?.DEBUG || process.env?.XMTP_DEBUG)) {\n\t\t\tconsole.error(message, ...args)\n\t\t}\n\t}\n}\n"],"mappings":";AAQO,SAAS,MAAS,KAAU,MAAqB;AACvD,SAAO,MAAM;AAAA,IAAK,EAAE,QAAQ,KAAK,KAAK,IAAI,SAAS,IAAI,EAAE;AAAA,IAAG,CAAC,GAAG,MAC/D,IAAI,MAAM,IAAI,MAAM,IAAI,OAAO,IAAI;AAAA,EACpC;AACD;AASO,SAAS,KAAQ,OAAiB;AACxC,SAAO,MAAM,OAAO,CAAC,MAAM,OAAO,SAAS,KAAK,QAAQ,IAAI,MAAM,KAAK;AACxE;AAQO,SAAS,QAAQ,OAA0B;AACjD,MAAI,CAAC,MAAO,QAAO,CAAC;AACpB,SAAO,MAAM,KAAK,MAAM,KAAK,OAAO,IAAI,GAAG;AAC5C;;;AChBO,SAAS,2BAAkD;AAChE,MAAI,QAAQ,IAAI,iBAAiB;AAC/B,WAAO;AAAA,MACL,cAAc;AAAA,MACd,UAAU;AAAA,MACV,aAAa;AAAA,IACf;AAAA,EACF;AAEA,MAAI,QAAQ,IAAI,gBAAgB;AAC9B,WAAO;AAAA,MACL,cAAc;AAAA,MACd,UAAU;AAAA,MACV,aAAa;AAAA,IACf;AAAA,EACF;AAEA,SAAO;AAAA,IACL,cAAc;AAAA,IACd,UAAU;AAAA,IACV,aAAa,QAAQ,IAAI,gBAAgB,QAAQ,IAAI;AAAA,EACvD;AACF;AAMO,SAAS,yBAAyB,SAA0B;AACjE,QAAM,MAAM,yBAAyB;AAErC,MAAI,IAAI,cAAc;AACpB,WAAO,UAAU,QAAQ,OAAO,KAAK;AAAA,EACvC;AAEA,QAAM,WAAW,IAAI;AACrB,QAAM,WAAW,UAAU,GAAG,QAAQ,UAAU,OAAO,KAAK,GAAG,QAAQ;AAEvE,SAAO;AACT;AAKO,SAAS,wBAAwB,eAAe,KAAc;AACnE,MAAI,QAAQ,IAAI,cAAc;AAC5B,WAAO,QAAQ,IAAI;AAAA,EACrB;AAEA,MAAI,QAAQ,IAAI,eAAe;AAC7B,WAAO,QAAQ,IAAI;AAAA,EACrB;AAGA,SAAO,oBAAoB,YAAY;AACzC;;;ACzEA,OAAO,QAAQ;AASR,IAAM,mBAAN,MAAiD;AAAA,EACtD,YAAoB,QAAa;AAAb;AAAA,EAAc;AAAA,EAElC,MAAM,WAAW,WAAmB,YAAmC;AACrE,UAAM,WAAW,MAAM,GAAG,SAAS,SAAS;AAC5C,UAAM,KAAK,OAAO,IAAI,YAAY,QAAQ;AAAA,EAC5C;AAAA,EAEA,MAAM,aAAa,YAAoB,WAAkC;AACvE,UAAM,SAAS,MAAM,KAAK,OAAO,IAAI,UAAU;AAC/C,QAAI,QAAQ;AACV,YAAM,GAAG,UAAU,WAAW,MAAM,OAAO,YAAY,CAAC;AAAA,IAC1D;AAAA,EACF;AAAA,EAEA,MAAM,OAAO,YAAsC;AACjD,UAAM,SAAS,MAAM,KAAK,OAAO,KAAK,UAAU;AAChD,WAAO,WAAW;AAAA,EACpB;AAAA,EAEA,MAAM,OAAO,YAAmC;AAC9C,UAAM,KAAK,OAAO,OAAO,UAAU;AAAA,EACrC;AACF;AAEO,IAAM,0BAAN,MAAwD;AAAA,EAC7D,YAAoB,kBAA0B;AAA1B;AAAA,EAA2B;AAAA,EAE/C,MAAM,WAAW,WAAmB,YAAmC;AACrE,UAAM,IAAI,MAAM,+CAA+C;AAAA,EACjE;AAAA,EAEA,MAAM,aAAa,YAAoB,WAAkC;AACvE,UAAM,IAAI,MAAM,+CAA+C;AAAA,EACjE;AAAA,EAEA,MAAM,OAAO,YAAsC;AACjD,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,OAAO,YAAmC;AAAA,EAChD;AACF;AAEO,SAAS,uBAA8C;AAC5D,MAAI,OAAO,eAAe,eAAe,kBAAkB,YAAY;AACrE,WAAO,IAAI,iBAAkB,WAAmB,YAAY;AAAA,EAC9D;AAEA,MAAI,OAAO,YAAY,eAAe,QAAQ,KAAK,cAAc;AAC/D,WAAO,IAAI,wBAAwB,QAAQ,IAAI,YAAY;AAAA,EAC7D;AAEA,SAAO;AACT;;;AC/DA,SAAS,QAAQ,SAAS,mBAAmB;AAOtC,SAAS,WAAW,cAAsC;AAChE,MAAI,CAAC,aAAc,QAAO;AAE1B,QAAM,OAAO,IAAI,KAAK,YAAY;AAElC,SAAO,KAAK,mBAAmB,QAAW;AAAA,IACzC,MAAM;AAAA,IACN,OAAO;AAAA,IACP,KAAK;AAAA,EACN,CAAC;AACF;AAWO,SAAS,mBAAmB,MAAY;AAC9C,MAAI,QAAQ,IAAI,GAAG;AAClB,WAAO,UAAU,OAAO,MAAM,QAAQ,CAAC;AAAA,EACxC;AACA,MAAI,YAAY,IAAI,GAAG;AACtB,WAAO,cAAc,OAAO,MAAM,QAAQ,CAAC;AAAA,EAC5C;AACA,OAAI,oBAAI,KAAK,GAAE,YAAY,MAAM,KAAK,YAAY,GAAG;AACpD,WAAO,OAAO,MAAM,eAAe;AAAA,EACpC;AACA,SAAO,OAAO,MAAM,aAAa;AAClC;;;ACjCO,SAAS,gBACf,KACyB;AACzB,QAAM,SAAiC,CAAC;AAExC,MAAI,CAAC,KAAK;AACT,WAAO,CAAC;AAAA,EACT;AAEA,aAAW,OAAO,KAAK;AACtB,UAAM,QAAQ,IAAI,GAAG;AACrB,WAAO,GAAG,IACT,UAAU,OACP,SACA,OAAO,UAAU,WAChB,KAAK,UAAU,KAAK,IACpB,OAAO,KAAK;AAAA,EAClB;AAEA,SAAO;AACR;AAQO,SAAS,WACf,KACa;AACb,MAAI,CAAC,KAAK;AACT,WAAO,CAAC;AAAA,EACT;AAEA,SAAO,OAAO,QAAQ,GAAG,EAAE;AAAA,IAC1B,CAAC,KAAK,CAAC,KAAK,KAAK,MAAM;AAEtB,UAAI,UAAU,UAAa,UAAU,QAAQ,UAAU,IAAI;AAC1D,eAAO;AAAA,MACR;AAEA,UAAI,GAAc,IAAI;AACtB,aAAO;AAAA,IACR;AAAA,IACA,CAAC;AAAA,EACF;AACD;;;ACrDA,SAAS,cAAc;AACvB,OAAO,WAAW;AAOlB,eAAsB,cAAc,UAAkB;AACrD,QAAM,OAAO,MAAM,OAAO,EAAE,IAAI,KAAK,EAAE,QAAQ,QAAQ;AACvD,SAAO,OAAO,IAAI;AACnB;;;ACFO,SAAS,SAAS,KAAa,QAAgB;AACrD,SAAO,IAAI,SAAS,SAAS,GAAG,IAAI,MAAM,GAAG,MAAM,CAAC,QAAQ;AAC7D;;;ACeO,SAAS,OAAO,OAAO,IAAI;AACjC,QAAM,cAAc,KAAK,QAAQ,QAAQ,EAAE;AAE3C,MAAI,QAAQ,IAAI,WAAW;AAC1B,WAAO,WAAW,QAAQ,IAAI,SAAS,IAAI,WAAW;AAAA,EACvD;AAEA,MAAI,QAAQ,IAAI,uBAAuB;AACtC,WAAO,WAAW,QAAQ,IAAI,qBAAqB,IAAI,WAAW;AAAA,EACnE;AAEA,SAAO,0BAA0B,WAAW;AAC7C;;;ACtCA,SAAS,MAAM,cAAc;AAItB,SAAS,aAAqB;AACpC,SAAO,OAAO;AACf;;;ACDO,IAAM,SAAS;AAAA,EACrB,OAAO,CAAC,YAAoB,SAAsB;AACjD,QAAI,OAAO,YAAY,gBAAgB,QAAQ,KAAK,SAAS,QAAQ,KAAK,aAAa;AACtF,cAAQ,IAAI,SAAS,GAAG,IAAI;AAAA,IAC7B;AAAA,EACD;AAAA,EACA,KAAK,CAAC,YAAoB,SAAsB;AAC/C,QAAI,OAAO,YAAY,gBAAgB,QAAQ,KAAK,SAAS,QAAQ,KAAK,aAAa;AACtF,cAAQ,IAAI,SAAS,GAAG,IAAI;AAAA,IAC7B;AAAA,EACD;AAAA,EACA,MAAM,CAAC,YAAoB,SAAsB;AAChD,QAAI,OAAO,YAAY,gBAAgB,QAAQ,KAAK,SAAS,QAAQ,KAAK,aAAa;AACtF,cAAQ,KAAK,SAAS,GAAG,IAAI;AAAA,IAC9B;AAAA,EACD;AAAA,EACA,MAAM,CAAC,YAAoB,SAAsB;AAChD,QAAI,OAAO,YAAY,gBAAgB,QAAQ,KAAK,SAAS,QAAQ,KAAK,aAAa;AACtF,cAAQ,KAAK,SAAS,GAAG,IAAI;AAAA,IAC9B;AAAA,EACD;AAAA,EACA,OAAO,CAAC,YAAoB,SAAsB;AACjD,QAAI,OAAO,YAAY,gBAAgB,QAAQ,KAAK,SAAS,QAAQ,KAAK,aAAa;AACtF,cAAQ,MAAM,SAAS,GAAG,IAAI;AAAA,IAC/B;AAAA,EACD;AACD;","names":[]}
|
package/package.json
CHANGED
|
@@ -1,10 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hybrd/utils",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.4.0",
|
|
4
4
|
"type": "module",
|
|
5
|
+
"files": [
|
|
6
|
+
"dist",
|
|
7
|
+
"src"
|
|
8
|
+
],
|
|
5
9
|
"exports": {
|
|
6
10
|
".": {
|
|
7
|
-
"types": "./
|
|
11
|
+
"types": "./src/index.ts",
|
|
8
12
|
"import": "./dist/index.js",
|
|
9
13
|
"require": "./dist/index.cjs"
|
|
10
14
|
}
|
|
@@ -19,8 +23,8 @@
|
|
|
19
23
|
"devDependencies": {
|
|
20
24
|
"@types/node": "22.8.6",
|
|
21
25
|
"tsup": "^8.5.0",
|
|
22
|
-
"@config/
|
|
23
|
-
"@config/
|
|
26
|
+
"@config/tsconfig": "0.0.0",
|
|
27
|
+
"@config/biome": "0.0.0"
|
|
24
28
|
},
|
|
25
29
|
"scripts": {
|
|
26
30
|
"build": "tsup",
|
package/src/index.ts
CHANGED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Global logger instance for conditional debug logging
|
|
3
|
+
* Supports both DEBUG and XMTP_DEBUG environment variables for backward compatibility
|
|
4
|
+
* Compatible with common logger interfaces
|
|
5
|
+
*/
|
|
6
|
+
export const logger = {
|
|
7
|
+
debug: (message: string, ...args: any[]): void => {
|
|
8
|
+
if (typeof process !== 'undefined' && (process.env?.DEBUG || process.env?.XMTP_DEBUG)) {
|
|
9
|
+
console.log(message, ...args)
|
|
10
|
+
}
|
|
11
|
+
},
|
|
12
|
+
log: (message: string, ...args: any[]): void => {
|
|
13
|
+
if (typeof process !== 'undefined' && (process.env?.DEBUG || process.env?.XMTP_DEBUG)) {
|
|
14
|
+
console.log(message, ...args)
|
|
15
|
+
}
|
|
16
|
+
},
|
|
17
|
+
info: (message: string, ...args: any[]): void => {
|
|
18
|
+
if (typeof process !== 'undefined' && (process.env?.DEBUG || process.env?.XMTP_DEBUG)) {
|
|
19
|
+
console.info(message, ...args)
|
|
20
|
+
}
|
|
21
|
+
},
|
|
22
|
+
warn: (message: string, ...args: any[]): void => {
|
|
23
|
+
if (typeof process !== 'undefined' && (process.env?.DEBUG || process.env?.XMTP_DEBUG)) {
|
|
24
|
+
console.warn(message, ...args)
|
|
25
|
+
}
|
|
26
|
+
},
|
|
27
|
+
error: (message: string, ...args: any[]): void => {
|
|
28
|
+
if (typeof process !== 'undefined' && (process.env?.DEBUG || process.env?.XMTP_DEBUG)) {
|
|
29
|
+
console.error(message, ...args)
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
package/.cache/tsbuildinfo.json
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"fileNames":["../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2020.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2021.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2022.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2016.intl.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2017.date.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2020.date.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2020.string.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2020.number.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2021.promise.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2021.string.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2021.intl.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2022.array.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2022.error.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2022.intl.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2022.object.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2022.string.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.decorators.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.decorators.legacy.d.ts","../src/lib/array.ts","../src/lib/cloudflare.ts","../src/lib/storage.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/constants.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/types.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/fp/types.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/types.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/add.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/addbusinessdays.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/adddays.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/addhours.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/addisoweekyears.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/addmilliseconds.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/addminutes.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/addmonths.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/addquarters.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/addseconds.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/addweeks.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/addyears.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/areintervalsoverlapping.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/clamp.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/closestindexto.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/closestto.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/compareasc.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/comparedesc.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/constructfrom.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/constructnow.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/daystoweeks.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/differenceinbusinessdays.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/differenceincalendardays.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/differenceincalendarisoweekyears.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/differenceincalendarisoweeks.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/differenceincalendarmonths.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/differenceincalendarquarters.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/differenceincalendarweeks.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/differenceincalendaryears.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/differenceindays.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/differenceinhours.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/differenceinisoweekyears.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/differenceinmilliseconds.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/differenceinminutes.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/differenceinmonths.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/differenceinquarters.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/differenceinseconds.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/differenceinweeks.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/differenceinyears.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/eachdayofinterval.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/eachhourofinterval.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/eachminuteofinterval.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/eachmonthofinterval.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/eachquarterofinterval.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/eachweekofinterval.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/eachweekendofinterval.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/eachweekendofmonth.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/eachweekendofyear.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/eachyearofinterval.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/endofday.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/endofdecade.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/endofhour.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/endofisoweek.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/endofisoweekyear.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/endofminute.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/endofmonth.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/endofquarter.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/endofsecond.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/endoftoday.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/endoftomorrow.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/endofweek.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/endofyear.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/endofyesterday.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/_lib/format/formatters.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/_lib/format/longformatters.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/format.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/formatdistance.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/formatdistancestrict.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/formatdistancetonow.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/formatdistancetonowstrict.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/formatduration.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/formatiso.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/formatiso9075.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/formatisoduration.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/formatrfc3339.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/formatrfc7231.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/formatrelative.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/fromunixtime.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getdate.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getday.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getdayofyear.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getdaysinmonth.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getdaysinyear.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getdecade.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/_lib/defaultoptions.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getdefaultoptions.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/gethours.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getisoday.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getisoweek.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getisoweekyear.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getisoweeksinyear.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getmilliseconds.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getminutes.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getmonth.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getoverlappingdaysinintervals.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getquarter.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getseconds.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/gettime.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getunixtime.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getweek.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getweekofmonth.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getweekyear.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getweeksinmonth.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getyear.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/hourstomilliseconds.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/hourstominutes.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/hourstoseconds.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/interval.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/intervaltoduration.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/intlformat.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/intlformatdistance.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isafter.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isbefore.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isdate.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isequal.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isexists.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isfirstdayofmonth.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isfriday.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isfuture.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/islastdayofmonth.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isleapyear.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/ismatch.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/ismonday.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/ispast.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/issameday.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/issamehour.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/issameisoweek.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/issameisoweekyear.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/issameminute.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/issamemonth.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/issamequarter.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/issamesecond.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/issameweek.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/issameyear.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/issaturday.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/issunday.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isthishour.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isthisisoweek.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isthisminute.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isthismonth.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isthisquarter.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isthissecond.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isthisweek.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isthisyear.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isthursday.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/istoday.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/istomorrow.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/istuesday.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isvalid.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/iswednesday.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isweekend.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/iswithininterval.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isyesterday.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/lastdayofdecade.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/lastdayofisoweek.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/lastdayofisoweekyear.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/lastdayofmonth.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/lastdayofquarter.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/lastdayofweek.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/lastdayofyear.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/_lib/format/lightformatters.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/lightformat.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/max.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/milliseconds.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/millisecondstohours.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/millisecondstominutes.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/millisecondstoseconds.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/min.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/minutestohours.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/minutestomilliseconds.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/minutestoseconds.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/monthstoquarters.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/monthstoyears.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/nextday.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/nextfriday.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/nextmonday.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/nextsaturday.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/nextsunday.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/nextthursday.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/nexttuesday.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/nextwednesday.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/types.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/setter.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parser.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parseiso.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parsejson.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/previousday.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/previousfriday.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/previousmonday.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/previoussaturday.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/previoussunday.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/previousthursday.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/previoustuesday.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/previouswednesday.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/quarterstomonths.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/quarterstoyears.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/roundtonearesthours.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/roundtonearestminutes.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/secondstohours.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/secondstomilliseconds.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/secondstominutes.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/set.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/setdate.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/setday.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/setdayofyear.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/setdefaultoptions.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/sethours.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/setisoday.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/setisoweek.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/setisoweekyear.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/setmilliseconds.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/setminutes.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/setmonth.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/setquarter.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/setseconds.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/setweek.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/setweekyear.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/setyear.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/startofday.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/startofdecade.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/startofhour.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/startofisoweek.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/startofisoweekyear.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/startofminute.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/startofmonth.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/startofquarter.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/startofsecond.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/startoftoday.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/startoftomorrow.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/startofweek.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/startofweekyear.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/startofyear.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/startofyesterday.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/sub.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/subbusinessdays.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/subdays.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/subhours.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/subisoweekyears.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/submilliseconds.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/subminutes.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/submonths.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/subquarters.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/subseconds.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/subweeks.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/subyears.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/todate.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/transpose.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/weekstodays.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/yearstodays.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/yearstomonths.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/yearstoquarters.d.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/index.d.cts","../src/lib/date.ts","../src/lib/object.ts","../../../node_modules/.pnpm/@types+unist@3.0.3/node_modules/@types/unist/index.d.ts","../../../node_modules/.pnpm/@types+mdast@4.0.4/node_modules/@types/mdast/index.d.ts","../../../node_modules/.pnpm/micromark-util-types@2.0.2/node_modules/micromark-util-types/index.d.ts","../../../node_modules/.pnpm/mdast-util-from-markdown@2.0.2/node_modules/mdast-util-from-markdown/lib/types.d.ts","../../../node_modules/.pnpm/mdast-util-from-markdown@2.0.2/node_modules/mdast-util-from-markdown/lib/index.d.ts","../../../node_modules/.pnpm/mdast-util-from-markdown@2.0.2/node_modules/mdast-util-from-markdown/index.d.ts","../../../node_modules/.pnpm/vfile-message@4.0.3/node_modules/vfile-message/lib/index.d.ts","../../../node_modules/.pnpm/vfile-message@4.0.3/node_modules/vfile-message/index.d.ts","../../../node_modules/.pnpm/vfile@6.0.3/node_modules/vfile/lib/index.d.ts","../../../node_modules/.pnpm/vfile@6.0.3/node_modules/vfile/index.d.ts","../../../node_modules/.pnpm/unified@11.0.5/node_modules/unified/lib/callable-instance.d.ts","../../../node_modules/.pnpm/trough@2.2.0/node_modules/trough/lib/index.d.ts","../../../node_modules/.pnpm/trough@2.2.0/node_modules/trough/index.d.ts","../../../node_modules/.pnpm/unified@11.0.5/node_modules/unified/lib/index.d.ts","../../../node_modules/.pnpm/unified@11.0.5/node_modules/unified/index.d.ts","../../../node_modules/.pnpm/remark-parse@11.0.0/node_modules/remark-parse/lib/index.d.ts","../../../node_modules/.pnpm/remark-parse@11.0.0/node_modules/remark-parse/index.d.ts","../../../node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/types.d.ts","../../../node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/index.d.ts","../../../node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/handle/blockquote.d.ts","../../../node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/handle/break.d.ts","../../../node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/handle/code.d.ts","../../../node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/handle/definition.d.ts","../../../node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/handle/emphasis.d.ts","../../../node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/handle/heading.d.ts","../../../node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/handle/html.d.ts","../../../node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/handle/image.d.ts","../../../node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/handle/image-reference.d.ts","../../../node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/handle/inline-code.d.ts","../../../node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/handle/link.d.ts","../../../node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/handle/link-reference.d.ts","../../../node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/handle/list.d.ts","../../../node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/handle/list-item.d.ts","../../../node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/handle/paragraph.d.ts","../../../node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/handle/root.d.ts","../../../node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/handle/strong.d.ts","../../../node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/handle/text.d.ts","../../../node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/handle/thematic-break.d.ts","../../../node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/handle/index.d.ts","../../../node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/index.d.ts","../../../node_modules/.pnpm/remark-stringify@11.0.0/node_modules/remark-stringify/lib/index.d.ts","../../../node_modules/.pnpm/remark-stringify@11.0.0/node_modules/remark-stringify/index.d.ts","../../../node_modules/.pnpm/remark@15.0.1/node_modules/remark/index.d.ts","../../../node_modules/.pnpm/strip-markdown@6.0.0/node_modules/strip-markdown/lib/index.d.ts","../../../node_modules/.pnpm/strip-markdown@6.0.0/node_modules/strip-markdown/index.d.ts","../src/lib/markdown.ts","../src/lib/string.ts","../src/lib/urls.ts","../../../node_modules/.pnpm/uuid@11.0.5/node_modules/uuid/dist/cjs/types.d.ts","../../../node_modules/.pnpm/uuid@11.0.5/node_modules/uuid/dist/cjs/max.d.ts","../../../node_modules/.pnpm/uuid@11.0.5/node_modules/uuid/dist/cjs/nil.d.ts","../../../node_modules/.pnpm/uuid@11.0.5/node_modules/uuid/dist/cjs/parse.d.ts","../../../node_modules/.pnpm/uuid@11.0.5/node_modules/uuid/dist/cjs/stringify.d.ts","../../../node_modules/.pnpm/uuid@11.0.5/node_modules/uuid/dist/cjs/v1.d.ts","../../../node_modules/.pnpm/uuid@11.0.5/node_modules/uuid/dist/cjs/v1tov6.d.ts","../../../node_modules/.pnpm/uuid@11.0.5/node_modules/uuid/dist/cjs/v35.d.ts","../../../node_modules/.pnpm/uuid@11.0.5/node_modules/uuid/dist/cjs/v3.d.ts","../../../node_modules/.pnpm/uuid@11.0.5/node_modules/uuid/dist/cjs/v4.d.ts","../../../node_modules/.pnpm/uuid@11.0.5/node_modules/uuid/dist/cjs/v5.d.ts","../../../node_modules/.pnpm/uuid@11.0.5/node_modules/uuid/dist/cjs/v6.d.ts","../../../node_modules/.pnpm/uuid@11.0.5/node_modules/uuid/dist/cjs/v6tov1.d.ts","../../../node_modules/.pnpm/uuid@11.0.5/node_modules/uuid/dist/cjs/v7.d.ts","../../../node_modules/.pnpm/uuid@11.0.5/node_modules/uuid/dist/cjs/validate.d.ts","../../../node_modules/.pnpm/uuid@11.0.5/node_modules/uuid/dist/cjs/version.d.ts","../../../node_modules/.pnpm/uuid@11.0.5/node_modules/uuid/dist/cjs/index.d.ts","../src/lib/uuid.ts","../src/index.ts","../../../node_modules/.pnpm/@types+node@22.8.6/node_modules/@types/node/compatibility/disposable.d.ts","../../../node_modules/.pnpm/@types+node@22.8.6/node_modules/@types/node/compatibility/indexable.d.ts","../../../node_modules/.pnpm/@types+node@22.8.6/node_modules/@types/node/compatibility/iterators.d.ts","../../../node_modules/.pnpm/@types+node@22.8.6/node_modules/@types/node/compatibility/index.d.ts","../../../node_modules/.pnpm/@types+node@22.8.6/node_modules/@types/node/globals.typedarray.d.ts","../../../node_modules/.pnpm/@types+node@22.8.6/node_modules/@types/node/buffer.buffer.d.ts","../../../node_modules/.pnpm/buffer@6.0.3/node_modules/buffer/index.d.ts","../../../node_modules/.pnpm/undici-types@6.19.8/node_modules/undici-types/header.d.ts","../../../node_modules/.pnpm/undici-types@6.19.8/node_modules/undici-types/readable.d.ts","../../../node_modules/.pnpm/undici-types@6.19.8/node_modules/undici-types/file.d.ts","../../../node_modules/.pnpm/undici-types@6.19.8/node_modules/undici-types/fetch.d.ts","../../../node_modules/.pnpm/undici-types@6.19.8/node_modules/undici-types/formdata.d.ts","../../../node_modules/.pnpm/undici-types@6.19.8/node_modules/undici-types/connector.d.ts","../../../node_modules/.pnpm/undici-types@6.19.8/node_modules/undici-types/client.d.ts","../../../node_modules/.pnpm/undici-types@6.19.8/node_modules/undici-types/errors.d.ts","../../../node_modules/.pnpm/undici-types@6.19.8/node_modules/undici-types/dispatcher.d.ts","../../../node_modules/.pnpm/undici-types@6.19.8/node_modules/undici-types/global-dispatcher.d.ts","../../../node_modules/.pnpm/undici-types@6.19.8/node_modules/undici-types/global-origin.d.ts","../../../node_modules/.pnpm/undici-types@6.19.8/node_modules/undici-types/pool-stats.d.ts","../../../node_modules/.pnpm/undici-types@6.19.8/node_modules/undici-types/pool.d.ts","../../../node_modules/.pnpm/undici-types@6.19.8/node_modules/undici-types/handlers.d.ts","../../../node_modules/.pnpm/undici-types@6.19.8/node_modules/undici-types/balanced-pool.d.ts","../../../node_modules/.pnpm/undici-types@6.19.8/node_modules/undici-types/agent.d.ts","../../../node_modules/.pnpm/undici-types@6.19.8/node_modules/undici-types/mock-interceptor.d.ts","../../../node_modules/.pnpm/undici-types@6.19.8/node_modules/undici-types/mock-agent.d.ts","../../../node_modules/.pnpm/undici-types@6.19.8/node_modules/undici-types/mock-client.d.ts","../../../node_modules/.pnpm/undici-types@6.19.8/node_modules/undici-types/mock-pool.d.ts","../../../node_modules/.pnpm/undici-types@6.19.8/node_modules/undici-types/mock-errors.d.ts","../../../node_modules/.pnpm/undici-types@6.19.8/node_modules/undici-types/proxy-agent.d.ts","../../../node_modules/.pnpm/undici-types@6.19.8/node_modules/undici-types/env-http-proxy-agent.d.ts","../../../node_modules/.pnpm/undici-types@6.19.8/node_modules/undici-types/retry-handler.d.ts","../../../node_modules/.pnpm/undici-types@6.19.8/node_modules/undici-types/retry-agent.d.ts","../../../node_modules/.pnpm/undici-types@6.19.8/node_modules/undici-types/api.d.ts","../../../node_modules/.pnpm/undici-types@6.19.8/node_modules/undici-types/interceptors.d.ts","../../../node_modules/.pnpm/undici-types@6.19.8/node_modules/undici-types/util.d.ts","../../../node_modules/.pnpm/undici-types@6.19.8/node_modules/undici-types/cookies.d.ts","../../../node_modules/.pnpm/undici-types@6.19.8/node_modules/undici-types/patch.d.ts","../../../node_modules/.pnpm/undici-types@6.19.8/node_modules/undici-types/websocket.d.ts","../../../node_modules/.pnpm/undici-types@6.19.8/node_modules/undici-types/eventsource.d.ts","../../../node_modules/.pnpm/undici-types@6.19.8/node_modules/undici-types/filereader.d.ts","../../../node_modules/.pnpm/undici-types@6.19.8/node_modules/undici-types/diagnostics-channel.d.ts","../../../node_modules/.pnpm/undici-types@6.19.8/node_modules/undici-types/content-type.d.ts","../../../node_modules/.pnpm/undici-types@6.19.8/node_modules/undici-types/cache.d.ts","../../../node_modules/.pnpm/undici-types@6.19.8/node_modules/undici-types/index.d.ts","../../../node_modules/.pnpm/@types+node@22.8.6/node_modules/@types/node/globals.d.ts","../../../node_modules/.pnpm/@types+node@22.8.6/node_modules/@types/node/assert.d.ts","../../../node_modules/.pnpm/@types+node@22.8.6/node_modules/@types/node/assert/strict.d.ts","../../../node_modules/.pnpm/@types+node@22.8.6/node_modules/@types/node/async_hooks.d.ts","../../../node_modules/.pnpm/@types+node@22.8.6/node_modules/@types/node/buffer.d.ts","../../../node_modules/.pnpm/@types+node@22.8.6/node_modules/@types/node/child_process.d.ts","../../../node_modules/.pnpm/@types+node@22.8.6/node_modules/@types/node/cluster.d.ts","../../../node_modules/.pnpm/@types+node@22.8.6/node_modules/@types/node/console.d.ts","../../../node_modules/.pnpm/@types+node@22.8.6/node_modules/@types/node/constants.d.ts","../../../node_modules/.pnpm/@types+node@22.8.6/node_modules/@types/node/crypto.d.ts","../../../node_modules/.pnpm/@types+node@22.8.6/node_modules/@types/node/dgram.d.ts","../../../node_modules/.pnpm/@types+node@22.8.6/node_modules/@types/node/diagnostics_channel.d.ts","../../../node_modules/.pnpm/@types+node@22.8.6/node_modules/@types/node/dns.d.ts","../../../node_modules/.pnpm/@types+node@22.8.6/node_modules/@types/node/dns/promises.d.ts","../../../node_modules/.pnpm/@types+node@22.8.6/node_modules/@types/node/domain.d.ts","../../../node_modules/.pnpm/@types+node@22.8.6/node_modules/@types/node/dom-events.d.ts","../../../node_modules/.pnpm/@types+node@22.8.6/node_modules/@types/node/events.d.ts","../../../node_modules/.pnpm/@types+node@22.8.6/node_modules/@types/node/fs.d.ts","../../../node_modules/.pnpm/@types+node@22.8.6/node_modules/@types/node/fs/promises.d.ts","../../../node_modules/.pnpm/@types+node@22.8.6/node_modules/@types/node/http.d.ts","../../../node_modules/.pnpm/@types+node@22.8.6/node_modules/@types/node/http2.d.ts","../../../node_modules/.pnpm/@types+node@22.8.6/node_modules/@types/node/https.d.ts","../../../node_modules/.pnpm/@types+node@22.8.6/node_modules/@types/node/inspector.d.ts","../../../node_modules/.pnpm/@types+node@22.8.6/node_modules/@types/node/module.d.ts","../../../node_modules/.pnpm/@types+node@22.8.6/node_modules/@types/node/net.d.ts","../../../node_modules/.pnpm/@types+node@22.8.6/node_modules/@types/node/os.d.ts","../../../node_modules/.pnpm/@types+node@22.8.6/node_modules/@types/node/path.d.ts","../../../node_modules/.pnpm/@types+node@22.8.6/node_modules/@types/node/perf_hooks.d.ts","../../../node_modules/.pnpm/@types+node@22.8.6/node_modules/@types/node/process.d.ts","../../../node_modules/.pnpm/@types+node@22.8.6/node_modules/@types/node/punycode.d.ts","../../../node_modules/.pnpm/@types+node@22.8.6/node_modules/@types/node/querystring.d.ts","../../../node_modules/.pnpm/@types+node@22.8.6/node_modules/@types/node/readline.d.ts","../../../node_modules/.pnpm/@types+node@22.8.6/node_modules/@types/node/readline/promises.d.ts","../../../node_modules/.pnpm/@types+node@22.8.6/node_modules/@types/node/repl.d.ts","../../../node_modules/.pnpm/@types+node@22.8.6/node_modules/@types/node/sea.d.ts","../../../node_modules/.pnpm/@types+node@22.8.6/node_modules/@types/node/sqlite.d.ts","../../../node_modules/.pnpm/@types+node@22.8.6/node_modules/@types/node/stream.d.ts","../../../node_modules/.pnpm/@types+node@22.8.6/node_modules/@types/node/stream/promises.d.ts","../../../node_modules/.pnpm/@types+node@22.8.6/node_modules/@types/node/stream/consumers.d.ts","../../../node_modules/.pnpm/@types+node@22.8.6/node_modules/@types/node/stream/web.d.ts","../../../node_modules/.pnpm/@types+node@22.8.6/node_modules/@types/node/string_decoder.d.ts","../../../node_modules/.pnpm/@types+node@22.8.6/node_modules/@types/node/test.d.ts","../../../node_modules/.pnpm/@types+node@22.8.6/node_modules/@types/node/timers.d.ts","../../../node_modules/.pnpm/@types+node@22.8.6/node_modules/@types/node/timers/promises.d.ts","../../../node_modules/.pnpm/@types+node@22.8.6/node_modules/@types/node/tls.d.ts","../../../node_modules/.pnpm/@types+node@22.8.6/node_modules/@types/node/trace_events.d.ts","../../../node_modules/.pnpm/@types+node@22.8.6/node_modules/@types/node/tty.d.ts","../../../node_modules/.pnpm/@types+node@22.8.6/node_modules/@types/node/url.d.ts","../../../node_modules/.pnpm/@types+node@22.8.6/node_modules/@types/node/util.d.ts","../../../node_modules/.pnpm/@types+node@22.8.6/node_modules/@types/node/v8.d.ts","../../../node_modules/.pnpm/@types+node@22.8.6/node_modules/@types/node/vm.d.ts","../../../node_modules/.pnpm/@types+node@22.8.6/node_modules/@types/node/wasi.d.ts","../../../node_modules/.pnpm/@types+node@22.8.6/node_modules/@types/node/worker_threads.d.ts","../../../node_modules/.pnpm/@types+node@22.8.6/node_modules/@types/node/zlib.d.ts","../../../node_modules/.pnpm/@types+node@22.8.6/node_modules/@types/node/index.d.ts"],"fileIdsList":[[321,393,436],[393,433,436],[393,435,436],[436],[393,436,441,471],[393,436,437,442,448,449,456,468,479],[393,436,437,438,448,456],[393,436],[388,389,390,393,436],[393,436,439,480],[393,436,440,441,449,457],[393,436,441,468,476],[393,436,442,444,448,456],[393,435,436,443],[393,436,444,445],[393,436,448],[393,436,446,448],[393,435,436,448],[393,436,448,449,450,468,479],[393,436,448,449,450,463,468,471],[393,431,436,484],[393,431,436,444,448,451,456,468,479],[393,436,448,449,451,452,456,468,476,479],[393,436,451,453,468,476,479],[391,392,393,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450,451,452,453,454,455,456,457,458,459,460,461,462,463,464,465,466,467,468,469,470,471,472,473,474,475,476,477,478,479,480,481,482,483,484,485],[393,436,448,454],[393,436,455,479,484],[393,436,444,448,456,468],[393,436,457],[393,436,458],[393,435,436,459],[393,433,434,435,436,437,438,439,440,441,442,443,444,445,446,448,449,450,451,452,453,454,455,456,457,458,459,460,461,462,463,464,465,466,467,468,469,470,471,472,473,474,475,476,477,478,479,480,481,482,483,484,485],[393,436,461],[393,436,462],[393,436,448,463,464],[393,436,463,465,480,482],[393,436,448,468,469,470,471],[393,436,468,470],[393,436,468,469],[393,436,471],[393,436,472],[393,433,436,468],[393,436,448,474,475],[393,436,474,475],[393,436,441,456,468,476],[393,436,477],[393,436,456,478],[393,436,451,462,479],[393,436,441,480],[393,436,468,481],[393,436,455,482],[393,436,483],[393,436,441,448,450,459,468,479,482,484],[393,436,468,485],[64,393,436],[62,64,393,436],[62,393,436],[64,128,129,393,436],[64,131,393,436],[64,132,393,436],[149,393,436],[64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,393,436],[64,225,393,436],[64,129,249,393,436],[62,246,247,393,436],[248,393,436],[64,246,393,436],[61,62,63,393,436],[323,324,325,326,393,436],[322,323,324,326,393,436],[322,323,326,393,436],[338,339,359,393,436],[322,360,393,436],[322,393,436],[340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,393,436],[321,322,393,436],[322,323,326,335,336,337,362,393,436],[322,326,330,335,337,362,393,436],[322,335,337,360,361,362,393,436],[322,330,335,337,360,362,393,436],[322,335,337,362,393,436],[364,393,436],[332,393,436],[393,403,407,436,479],[393,403,436,468,479],[393,398,436],[393,400,403,436,476,479],[393,436,456,476],[393,436,486],[393,398,436,486],[393,400,403,436,456,479],[393,395,396,399,402,436,448,468,479],[393,403,410,436],[393,395,401,436],[393,403,424,425,436],[393,399,403,436,471,479,486],[393,424,436,486],[393,397,398,436,486],[393,403,436],[393,397,398,399,400,401,402,403,404,405,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,425,426,427,428,429,430,436],[393,403,418,436],[393,403,410,411,436],[393,401,403,411,412,436],[393,402,436],[393,395,398,403,436],[393,403,407,411,412,436],[393,407,436],[393,401,403,406,436,479],[393,395,400,403,410,436],[393,436,468],[393,398,403,424,436,484,486],[330,334,393,436],[321,330,331,333,335,337,362,393,436],[369,370,371,372,373,374,375,377,378,379,380,381,382,383,384,393,436],[369,393,436],[369,376,393,436],[327,393,436],[328,329,393,436],[321,328,330,393,436],[58,59,60,319,320,366,367,368,386,393,436],[318,393,436],[363,365,393,436],[393,436,450],[385,393,436]],"fileInfos":[{"version":"c430d44666289dae81f30fa7b2edebf186ecc91a2d4c71266ea6ae76388792e1","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"ee7bad0c15b58988daa84371e0b89d313b762ab83cb5b31b8a2d1162e8eb41c2","impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"0559b1f683ac7505ae451f9a96ce4c3c92bdc71411651ca6ddb0e88baaaad6a3","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"fb0f136d372979348d59b3f5020b4cdb81b5504192b1cacff5d1fbba29378aa1","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"a680117f487a4d2f30ea46f1b4b7f58bef1480456e18ba53ee85c2746eeca012","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"d6d7ae4d1f1f3772e2a3cde568ed08991a8ae34a080ff1151af28b7f798e22ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"959d36cddf5e7d572a65045b876f2956c973a586da58e5d26cde519184fd9b8a","affectsGlobalScope":true,"impliedFormat":1},{"version":"965f36eae237dd74e6cca203a43e9ca801ce38824ead814728a2807b1910117d","affectsGlobalScope":true,"impliedFormat":1},{"version":"3925a6c820dcb1a06506c90b1577db1fdbf7705d65b62b99dce4be75c637e26b","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a3d63ef2b853447ec4f749d3f368ce642264246e02911fcb1590d8c161b8005","affectsGlobalScope":true,"impliedFormat":1},{"version":"8cdf8847677ac7d20486e54dd3fcf09eda95812ac8ace44b4418da1bbbab6eb8","affectsGlobalScope":true,"impliedFormat":1},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true,"impliedFormat":1},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true,"impliedFormat":1},{"version":"b4b67b1a91182421f5df999988c690f14d813b9850b40acd06ed44691f6727ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"b4f66fd38237cccb4008c6661e917f971cd8471d8e07edf2f5345935c66fa61a","signature":"e81343129c8facd5f90a75749341122d0a66887409775f4cbf9f3156224a0f6e"},{"version":"cb97b174edad1dd202ba7ff73810580c7d9837071a126f31ee235b3a3bd4a760","signature":"a09ea25fad7a44c6e0d78ccf19d5927f51e28201129a4f3d45c0ce4075353330"},{"version":"208267d2dfa43a3da935458c5e09c3adaad839aceda46e84a1e3341f7c81e256","signature":"4c7c6b7ff7bdb1c54c12703a8ae1dc575c746ba61f7b26d2ece17cf266f770b6"},{"version":"2cef84bf00cbdb452fdc5d8ecfe7b8c0aa3fa788bdc4ad8961e2e636530dbb60","impliedFormat":99},{"version":"24104650185414f379d5cc35c0e2c19f06684a73de5b472bae79e0d855771ecf","impliedFormat":99},{"version":"799003c0ab928582fca04977f47b8d85b43a8de610f4eef0ad2d069fbb9f9399","impliedFormat":99},{"version":"b13dd41c344a23e085f81b2f5cd96792e6b35ae814f32b25e39d9841844ad240","impliedFormat":99},{"version":"17d8b4e6416e48b6e23b73d05fd2fde407e2af8fddbe9da2a98ede14949c3489","impliedFormat":99},{"version":"6d17b2b41f874ab4369b8e04bdbe660163ea5c8239785c850f767370604959e3","impliedFormat":99},{"version":"04b4c044c8fe6af77b6c196a16c41e0f7d76b285d036d79dcaa6d92e24b4982b","impliedFormat":99},{"version":"30bdeead5293c1ddfaea4097d3e9dd5a6b0bc59a1e07ff4714ea1bbe7c5b2318","impliedFormat":99},{"version":"e7df226dcc1b0ce76b32f160556f3d1550124c894aae2d5f73cefaaf28df7779","impliedFormat":99},{"version":"f2b7eef5c46c61e6e72fba9afd7cc612a08c0c48ed44c3c5518559d8508146a2","impliedFormat":99},{"version":"00f0ba57e829398d10168b7db1e16217f87933e61bd8612b53a894bd7d6371da","impliedFormat":99},{"version":"126b20947d9fa74a88bb4e9281462bda05e529f90e22d08ee9f116a224291e84","impliedFormat":99},{"version":"40d9e43acee39702745eb5c641993978ac40f227475eacc99a83ba893ad995db","impliedFormat":99},{"version":"8a66b69b21c8de9cb88b4b6d12f655d5b7636e692a014c5aa1bd81745c8c51d5","impliedFormat":99},{"version":"ebbb846bdd5a78fdacff59ae04cea7a097912aeb1a2b34f8d88f4ebb84643069","impliedFormat":99},{"version":"7321adb29ffd637acb33ee67ea035f1a97d0aa0b14173291cc2fd58e93296e04","impliedFormat":99},{"version":"320816f1a4211188f07a782bdb6c1a44555b3e716ce13018f528ad7387108d5f","impliedFormat":99},{"version":"b2cc8a474b7657f4a03c67baf6bff75e26635fd4b5850675e8cad524a09ddd0c","impliedFormat":99},{"version":"0d081e9dc251063cc69611041c17d25847e8bdbe18164baaa89b7f1f1633c0ab","impliedFormat":99},{"version":"a64c25d8f4ec16339db49867ea2324e77060782993432a875d6e5e8608b0de1e","impliedFormat":99},{"version":"0739310b6b777f3e2baaf908c0fbc622c71160e6310eb93e0d820d86a52e2e23","impliedFormat":99},{"version":"37b32e4eadd8cd3c263e7ac1681c58b2ac54f3f77bb34c5e4326cc78516d55a9","impliedFormat":99},{"version":"9b7a8974e028c4ed6f7f9abb969e3eb224c069fd7f226e26fcc3a5b0e2a1eba8","impliedFormat":99},{"version":"e8100b569926a5592146ed68a0418109d625a045a94ed878a8c5152b1379237c","impliedFormat":99},{"version":"594201c616c318b7f3149a912abd8d6bdf338d765b7bcbde86bca2e66b144606","impliedFormat":99},{"version":"03e380975e047c5c6ded532cf8589e6cc85abb7be3629e1e4b0c9e703f2fd36f","impliedFormat":99},{"version":"fae14b53b7f52a8eb3274c67c11f261a58530969885599efe3df0277b48909e1","impliedFormat":99},{"version":"c41206757c428186f2e0d1fd373915c823504c249336bdc9a9c9bbdf9da95fef","impliedFormat":99},{"version":"e961f853b7b0111c42b763a6aa46fc70d06a697db3d8ed69b38f7ba0ae42a62b","impliedFormat":99},{"version":"3db90f79e36bcb60b3f8de1bc60321026800979c150e5615047d598c787a64b7","impliedFormat":99},{"version":"639b6fb3afbb8f6067c1564af2bd284c3e883f0f1556d59bd5eb87cdbbdd8486","impliedFormat":99},{"version":"49795f5478cb607fd5965aa337135a8e7fd1c58bc40c0b6db726adf186dd403f","impliedFormat":99},{"version":"7d8890e6e2e4e215959e71d5b5bd49482cf7a23be68d48ea446601a4c99bd511","impliedFormat":99},{"version":"d56f72c4bb518de5702b8b6ae3d3c3045c99e0fd48b3d3b54c653693a8378017","impliedFormat":99},{"version":"4c9ac40163e4265b5750510d6d2933fb7b39023eed69f7b7c68b540ad960826e","impliedFormat":99},{"version":"8dfab17cf48e7be6e023c438a9cdf6d15a9b4d2fa976c26e223ba40c53eb8da8","impliedFormat":99},{"version":"38bdf7ccacfd8e418de3a7b1e3cecc29b5625f90abc2fa4ac7843a290f3bf555","impliedFormat":99},{"version":"9819e46a914735211fbc04b8dc6ba65152c62e3a329ca0601a46ba6e05b2c897","impliedFormat":99},{"version":"50f0dc9a42931fb5d65cdd64ba0f7b378aedd36e0cfca988aa4109aad5e714cb","impliedFormat":99},{"version":"894f23066f9fafccc6e2dd006ed5bd85f3b913de90f17cf1fe15a2eb677fd603","impliedFormat":99},{"version":"abdf39173867e6c2d6045f120a316de451bbb6351a6929546b8470ddf2e4b3b9","impliedFormat":99},{"version":"aa2cb4053f948fbd606228195bbe44d78733861b6f7204558bbee603202ee440","impliedFormat":99},{"version":"6911b41bfe9942ac59c2da1bbcbe5c3c1f4e510bf65cae89ed00f434cc588860","impliedFormat":99},{"version":"7b81bc4d4e2c764e85d869a8dd9fe3652b34b45c065482ac94ffaacc642b2507","impliedFormat":99},{"version":"895df4edb46ccdcbce2ec982f5eed292cf7ea3f7168f1efea738ee346feab273","impliedFormat":99},{"version":"8692bb1a4799eda7b2e3288a6646519d4cebb9a0bddf800085fc1bd8076997a0","impliedFormat":99},{"version":"239c9e98547fe99711b01a0293f8a1a776fc10330094aa261f3970aaba957c82","impliedFormat":99},{"version":"34833ec50360a32efdc12780ae624e9a710dd1fd7013b58c540abf856b54285a","impliedFormat":99},{"version":"647538e4007dcc351a8882067310a0835b5bb8559d1cfa5f378e929bceb2e64d","impliedFormat":99},{"version":"992d6b1abcc9b6092e5a574d51d441238566b6461ade5de53cb9718e4f27da46","impliedFormat":99},{"version":"938702305649bf1050bd79f3803cf5cc2904596fc1edd4e3b91033184eae5c54","impliedFormat":99},{"version":"1e931d3c367d4b96fe043e792196d9c2cf74f672ff9c0b894be54e000280a79d","impliedFormat":99},{"version":"05bec322ea9f6eb9efcd6458bb47087e55bd688afdd232b78379eb5d526816ed","impliedFormat":99},{"version":"4c449a874c2d2e5e5bc508e6aa98f3140218e78c585597a21a508a647acd780a","impliedFormat":99},{"version":"dae15e326140a633d7693e92b1af63274f7295ea94fb7c322d5cbe3f5e48be88","impliedFormat":99},{"version":"c2b0a869713bca307e58d81d1d1f4b99ebfc7ec8b8f17e80dde40739aa8a2bc6","impliedFormat":99},{"version":"6e4b4ff6c7c54fa9c6022e88f2f3e675eac3c6923143eb8b9139150f09074049","impliedFormat":99},{"version":"69559172a9a97bbe34a32bff8c24ef1d8c8063feb5f16a6d3407833b7ee504cf","impliedFormat":99},{"version":"86b94a2a3edcb78d9bfcdb3b382547d47cb017e71abe770c9ee8721e9c84857f","impliedFormat":99},{"version":"e3fafafda82853c45c0afc075fea1eaf0df373a06daf6e6c7f382f9f61b2deb3","impliedFormat":99},{"version":"a4ba4b31de9e9140bc49c0addddbfaf96b943a7956a46d45f894822e12bf5560","impliedFormat":99},{"version":"d8a7926fc75f2ed887f17bae732ee31a4064b8a95a406c87e430c58578ee1f67","impliedFormat":99},{"version":"9886ffbb134b0a0059fd82219eba2a75f8af341d98bc6331b6ef8a921e10ec68","impliedFormat":99},{"version":"c2ead057b70d0ae7b87a771461a6222ebdb187ba6f300c974768b0ae5966d10e","impliedFormat":99},{"version":"46687d985aed8485ab2c71085f82fafb11e69e82e8552cf5d3849c00e64a00a5","impliedFormat":99},{"version":"999ca66d4b5e2790b656e0a7ce42267737577fc7a52b891e97644ec418eff7ec","impliedFormat":99},{"version":"ec948ee7e92d0888f92d4a490fdd0afb27fbf6d7aabebe2347a3e8ac82c36db9","impliedFormat":99},{"version":"03ef2386c683707ce741a1c30cb126e8c51a908aa0acc01c3471fafb9baaacd5","impliedFormat":99},{"version":"66a372e03c41d2d5e920df5282dadcec2acae4c629cb51cab850825d2a144cea","impliedFormat":99},{"version":"ddf9b157bd4c06c2e4646c9f034f36267a0fbd028bd4738214709de7ea7c548b","impliedFormat":99},{"version":"3e795aac9be23d4ad9781c00b153e7603be580602e40e5228e2dafe8a8e3aba1","impliedFormat":99},{"version":"98c461ec5953dfb1b5d5bca5fee0833c8a932383b9e651ca6548e55f1e2c71c3","impliedFormat":99},{"version":"5c42107b46cb1d36b6f1dee268df125e930b81f9b47b5fa0b7a5f2a42d556c10","impliedFormat":99},{"version":"7e32f1251d1e986e9dd98b6ff25f62c06445301b94aeebdf1f4296dbd2b8652f","impliedFormat":99},{"version":"2f7e328dda700dcb2b72db0f58c652ae926913de27391bd11505fc5e9aae6c33","impliedFormat":99},{"version":"3de7190e4d37da0c316db53a8a60096dbcd06d1a50677ccf11d182fa26882080","impliedFormat":99},{"version":"a9d6f87e59b32b02c861aade3f4477d7277c30d43939462b93f48644fa548c58","impliedFormat":99},{"version":"2bce8fd2d16a9432110bbe0ba1e663fd02f7d8b8968cd10178ea7bc306c4a5df","impliedFormat":99},{"version":"798bedbf45a8f1e55594e6879cd46023e8767757ecce1d3feaa78d16ad728703","impliedFormat":99},{"version":"62723d5ac66f7ed6885a3931dd5cfa017797e73000d590492988a944832e8bc2","impliedFormat":99},{"version":"03db8e7df7514bf17fc729c87fff56ca99567b9aa50821f544587a666537c233","impliedFormat":99},{"version":"9b1f311ba4409968b68bf20b5d892dbd3c5b1d65c673d5841c7dbde351bc0d0b","impliedFormat":99},{"version":"2d1e8b5431502739fe335ceec0aaded030b0f918e758a5d76f61effa0965b189","impliedFormat":99},{"version":"e725839b8f884dab141b42e9d7ff5659212f6e1d7b4054caa23bc719a4629071","impliedFormat":99},{"version":"4fa38a0b8ae02507f966675d0a7d230ed67c92ab8b5736d99a16c5fbe2b42036","impliedFormat":99},{"version":"50ec1e8c23bad160ddedf8debeebc722becbddda127b8fdce06c23eacd3fe689","impliedFormat":99},{"version":"9a0aea3a113064fd607f41375ade308c035911d3c8af5ae9db89593b5ca9f1f9","impliedFormat":99},{"version":"8d643903b58a0bf739ce4e6a8b0e5fb3fbdfaacbae50581b90803934b27d5b89","impliedFormat":99},{"version":"19de2915ccebc0a1482c2337b34cb178d446def2493bf775c4018a4ea355adb8","impliedFormat":99},{"version":"9be8fc03c8b5392cd17d40fd61063d73f08d0ee3457ecf075dcb3768ae1427bd","impliedFormat":99},{"version":"a2d89a8dc5a993514ca79585039eea083a56822b1d9b9d9d85b14232e4782cbe","impliedFormat":99},{"version":"f526f20cae73f17e8f38905de4c3765287575c9c4d9ecacee41cfda8c887da5b","impliedFormat":99},{"version":"d9ec0978b7023612b9b83a71fee8972e290d02f8ff894e95cdd732cd0213b070","impliedFormat":99},{"version":"7ab10c473a058ec8ac4790b05cae6f3a86c56be9b0c0a897771d428a2a48a9f9","impliedFormat":99},{"version":"451d7a93f8249d2e1453b495b13805e58f47784ef2131061821b0e456a9fd0e1","impliedFormat":99},{"version":"21c56fe515d227ed4943f275a8b242d884046001722a4ba81f342a08dbe74ae2","impliedFormat":99},{"version":"d8311f0c39381aa1825081c921efde36e618c5cf46258c351633342a11601208","impliedFormat":99},{"version":"6b50c3bcc92dc417047740810596fcb2df2502aa3f280c9e7827e87896da168a","impliedFormat":99},{"version":"18a6b318d1e7b31e5749a52be0cf9bbce1b275f63190ef32e2c79db0579328ca","impliedFormat":99},{"version":"6a2d0af2c27b993aa85414f3759898502aa198301bc58b0d410948fe908b07b0","impliedFormat":99},{"version":"2da11b6f5c374300e5e66a6b01c3c78ec21b5d3fec0748a28cc28e00be73e006","impliedFormat":99},{"version":"0729691b39c24d222f0b854776b00530877217bfc30aac1dc7fa2f4b1795c536","impliedFormat":99},{"version":"ca45bb5c98c474d669f0e47615e4a5ae65d90a2e78531fda7862ee43e687a059","impliedFormat":99},{"version":"c1c058b91d5b9a24c95a51aea814b0ad4185f411c38ac1d5eef0bf3cebec17dc","impliedFormat":99},{"version":"3ab0ed4060b8e5b5e594138aab3e7f0262d68ad671d6678bcda51568d4fc4ccc","impliedFormat":99},{"version":"e2bf1faba4ff10a6020c41df276411f641d3fdce5c6bae1db0ec84a0bf042106","impliedFormat":99},{"version":"80b0a8fe14d47a71e23d7c3d4dcee9584d4282ef1d843b70cab1a42a4ea1588c","impliedFormat":99},{"version":"a0f02a73f6e3de48168d14abe33bf5970fdacdb52d7c574e908e75ad571e78f7","impliedFormat":99},{"version":"c728002a759d8ec6bccb10eed56184e86aeff0a762c1555b62b5d0fa9d1f7d64","impliedFormat":99},{"version":"586f94e07a295f3d02f847f9e0e47dbf14c16e04ccc172b011b3f4774a28aaea","impliedFormat":99},{"version":"cfe1a0f4ed2df36a2c65ea6bc235dbb8cf6e6c25feb6629989f1fa51210b32e7","impliedFormat":99},{"version":"8ba69c9bf6de79c177329451ffde48ddab7ec495410b86972ded226552f664df","impliedFormat":99},{"version":"15111cbe020f8802ad1d150524f974a5251f53d2fe10eb55675f9df1e82dbb62","impliedFormat":99},{"version":"782dc153c56a99c9ed07b2f6f497d8ad2747764966876dbfef32f3e27ce11421","impliedFormat":99},{"version":"cc2db30c3d8bb7feb53a9c9ff9b0b859dd5e04c83d678680930b5594b2bf99cb","impliedFormat":99},{"version":"46909b8c85a6fd52e0807d18045da0991e3bdc7373435794a6ba425bc23cc6be","impliedFormat":99},{"version":"e4e511ff63bb6bd69a2a51e472c6044298bca2c27835a34a20827bc3ef9b7d13","impliedFormat":99},{"version":"2c86f279d7db3c024de0f21cd9c8c2c972972f842357016bfbbd86955723b223","impliedFormat":99},{"version":"112c895cff9554cf754f928477c7d58a21191c8089bffbf6905c87fe2dc6054f","impliedFormat":99},{"version":"8cfc293b33082003cacbf7856b8b5e2d6dd3bde46abbd575b0c935dc83af4844","impliedFormat":99},{"version":"d2c5c53f85ce0474b3a876d76c4fc44ff7bb766b14ed1bf495f9abac181d7f5f","impliedFormat":99},{"version":"3c523f27926905fcbe20b8301a0cc2da317f3f9aea2273f8fc8d9ae88b524819","impliedFormat":99},{"version":"9ca0d706f6b039cc52552323aeccb4db72e600b67ddc7a54cebc095fc6f35539","impliedFormat":99},{"version":"a64909a9f75081342ddd061f8c6b49decf0d28051bc78e698d347bdcb9746577","impliedFormat":99},{"version":"7d8d55ae58766d0d52033eae73084c4db6a93c4630a3e17f419dd8a0b2a4dcd8","impliedFormat":99},{"version":"b8b5c8ba972d9ffff313b3c8a3321e7c14523fc58173862187e8d1cb814168ac","impliedFormat":99},{"version":"9c42c0fa76ee36cf9cc7cc34b1389fbb4bd49033ec124b93674ec635fabf7ffe","impliedFormat":99},{"version":"6184c8da9d8107e3e67c0b99dedb5d2dfe5ccf6dfea55c2a71d4037caf8ca196","impliedFormat":99},{"version":"4030ceea7bf41449c1b86478b786e3b7eadd13dfe5a4f8f5fe2eb359260e08b3","impliedFormat":99},{"version":"7bf516ec5dfc60e97a5bde32a6b73d772bd9de24a2e0ec91d83138d39ac83d04","impliedFormat":99},{"version":"e6a6fb3e6525f84edf42ba92e261240d4efead3093aca3d6eb1799d5942ba393","impliedFormat":99},{"version":"45df74648934f97d26800262e9b2af2f77ef7191d4a5c2eb1df0062f55e77891","impliedFormat":99},{"version":"3fe361e4e567f32a53af1f2c67ad62d958e3d264e974b0a8763d174102fe3b29","impliedFormat":99},{"version":"28b520acee4bc6911bfe458d1ad3ebc455fa23678463f59946ad97a327c9ab2b","impliedFormat":99},{"version":"121b39b1a9ad5d23ed1076b0db2fe326025150ef476dccb8bf87778fcc4f6dd7","impliedFormat":99},{"version":"f791f92a060b52aa043dde44eb60307938f18d4c7ac13df1b52c82a1e658953f","impliedFormat":99},{"version":"df09443e7743fd6adc7eb108e760084bacdf5914403b7aac5fbd4dc4e24e0c2c","impliedFormat":99},{"version":"eeb4ff4aa06956083eaa2aad59070361c20254b865d986bc997ee345dbd44cbb","impliedFormat":99},{"version":"ed84d5043444d51e1e5908f664addc4472c227b9da8401f13daa565f23624b6e","impliedFormat":99},{"version":"146bf888b703d8baa825f3f2fb1b7b31bda5dff803e15973d9636cdda33f4af3","impliedFormat":99},{"version":"b4ec8b7a8d23bdf7e1c31e43e5beac3209deb7571d2ccf2a9572865bf242da7c","impliedFormat":99},{"version":"3fba0d61d172091638e56fba651aa1f8a8500aac02147d29bd5a9cc0bc8f9ec2","impliedFormat":99},{"version":"a5a57deb0351b03041e0a1448d3a0cc5558c48e0ed9b79b69c99163cdca64ad8","impliedFormat":99},{"version":"9bcecf0cbc2bfc17e33199864c19549905309a0f9ecc37871146107aac6e05ae","impliedFormat":99},{"version":"d6a211db4b4a821e93c978add57e484f2a003142a6aef9dbfa1fe990c66f337b","impliedFormat":99},{"version":"bd4d10bd44ce3f630dd9ce44f102422cb2814ead5711955aa537a52c8d2cae14","impliedFormat":99},{"version":"08e4c39ab1e52eea1e528ee597170480405716bae92ebe7a7c529f490afff1e0","impliedFormat":99},{"version":"625bb2bc3867557ea7912bd4581288a9fca4f3423b8dffa1d9ed57fafc8610e3","impliedFormat":99},{"version":"d1992164ecc334257e0bef56b1fd7e3e1cea649c70c64ffc39999bb480c0ecdf","impliedFormat":99},{"version":"a53ff2c4037481eb357e33b85e0d78e8236e285b6428b93aa286ceea1db2f5dc","impliedFormat":99},{"version":"4fe608d524954b6857d78857efce623852fcb0c155f010710656f9db86e973a5","impliedFormat":99},{"version":"b53b62a9838d3f57b70cc456093662302abb9962e5555f5def046172a4fe0d4e","impliedFormat":99},{"version":"9866369eb72b6e77be2a92589c9df9be1232a1a66e96736170819e8a1297b61f","impliedFormat":99},{"version":"43abfbdf4e297868d780b8f4cfdd8b781b90ecd9f588b05e845192146a86df34","impliedFormat":99},{"version":"582419791241fb851403ae4a08d0712a63d4c94787524a7419c2bc8e0eb1b031","impliedFormat":99},{"version":"18437eeb932fe48590b15f404090db0ab3b32d58f831d5ffc157f63b04885ee5","impliedFormat":99},{"version":"0c5eaedf622d7a8150f5c2ec1f79ac3d51eea1966b0b3e61bfdea35e8ca213a7","impliedFormat":99},{"version":"fac39fc7a9367c0246de3543a6ee866a0cf2e4c3a8f64641461c9f2dac0d8aae","impliedFormat":99},{"version":"3b9f559d0200134f3c196168630997caedeadc6733523c8b6076a09615d5dec8","impliedFormat":99},{"version":"932af64286d9723da5ef7b77a0c4229829ce8e085e6bcc5f874cb0b83e8310d4","impliedFormat":99},{"version":"adeb9278f11f5561157feee565171c72fd48f5fe34ed06f71abf24e561fcaa1e","impliedFormat":99},{"version":"2269fef79b4900fc6b08c840260622ca33524771ff24fda5b9101ad98ea551f3","impliedFormat":99},{"version":"73d47498a1b73d5392d40fb42a3e7b009ae900c8423f4088c4faa663cc508886","impliedFormat":99},{"version":"7efc34cdc4da0968c3ba687bc780d5cacde561915577d8d1c1e46c7ac931d023","impliedFormat":99},{"version":"3c20a3bb0c50c819419f44aa55acc58476dad4754a16884cef06012d02b0722f","impliedFormat":99},{"version":"4569abf6bc7d51a455503670f3f1c0e9b4f8632a3b030e0794c61bfbba2d13be","impliedFormat":99},{"version":"98b2297b4dc1404078a54b61758d8643e4c1d7830af724f3ed2445d77a7a2d57","impliedFormat":99},{"version":"952ba89d75f1b589e07070fea2d8174332e3028752e76fd46e1c16cc51e6e2af","impliedFormat":99},{"version":"b6c9a2deefb6a57ff68d2a38d33c34407b9939487fc9ee9f32ba3ecf2987a88a","impliedFormat":99},{"version":"f6b371377bab3018dac2bca63e27502ecbd5d06f708ad7e312658d3b5315d948","impliedFormat":99},{"version":"31947dd8f1c8eeb7841e1f139a493a73bd520f90e59a6415375d0d8e6a031f01","impliedFormat":99},{"version":"95cd83b807e10b1af408e62caf5fea98562221e8ddca9d7ccc053d482283ddda","impliedFormat":99},{"version":"19287d6b76288c2814f1633bdd68d2b76748757ffd355e73e41151644e4773d6","impliedFormat":99},{"version":"fc4e6ec7dade5f9d422b153c5d8f6ad074bd9cc4e280415b7dc58fb5c52b5df1","impliedFormat":99},{"version":"3aea973106e1184db82d8880f0ca134388b6cbc420f7309d1c8947b842886349","impliedFormat":99},{"version":"765e278c464923da94dda7c2b281ece92f58981642421ae097862effe2bd30fa","impliedFormat":99},{"version":"de260bed7f7d25593f59e859bd7c7f8c6e6bb87e8686a0fcafa3774cb5ca02d8","impliedFormat":99},{"version":"b5c341ce978f5777fbe05bc86f65e9906a492fa6b327bda3c6aae900c22e76c6","impliedFormat":99},{"version":"686ddbfaf88f06b02c6324005042f85317187866ca0f8f4c9584dd9479653344","impliedFormat":99},{"version":"7f789c0c1db29dd3aab6e159d1ba82894a046bf8df595ac48385931ae6ad83e0","impliedFormat":99},{"version":"8eb3057d4fe9b59b2492921b73a795a2455ebe94ccb3d01027a7866612ead137","impliedFormat":99},{"version":"1e43c5d7aee1c5ec20611e28b5417f5840c75d048de9d7f1800d6808499236f8","impliedFormat":99},{"version":"d42610a5a2bee4b71769968a24878885c9910cd049569daa2d2ee94208b3a7a5","impliedFormat":99},{"version":"f6ed95506a6ed2d40ed5425747529befaa4c35fcbbc1e0d793813f6d725690fa","impliedFormat":99},{"version":"a6fcc1cd6583939506c906dff1276e7ebdc38fbe12d3e108ba38ad231bd18d97","impliedFormat":99},{"version":"ed13354f0d96fb6d5878655b1fead51722b54875e91d5e53ef16de5b71a0e278","impliedFormat":99},{"version":"1193b4872c1fb65769d8b164ca48124c7ebacc33eae03abf52087c2b29e8c46c","impliedFormat":99},{"version":"af682dfabe85688289b420d939020a10eb61f0120e393d53c127f1968b3e9f66","impliedFormat":99},{"version":"0dca04006bf13f72240c6a6a502df9c0b49c41c3cab2be75e81e9b592dcd4ea8","impliedFormat":99},{"version":"79d6ac4a2a229047259116688f9cd62fda25422dee3ad304f77d7e9af53a41ef","impliedFormat":99},{"version":"64534c17173990dc4c3d9388d16675a059aac407031cfce8f7fdffa4ee2de988","impliedFormat":99},{"version":"ba46d160a192639f3ca9e5b640b870b1263f24ac77b6895ab42960937b42dcbb","impliedFormat":99},{"version":"5e5ddd6fc5b590190dde881974ab969455e7fad61012e32423415ae3d085b037","impliedFormat":99},{"version":"1c16fd00c42b60b96fe0fa62113a953af58ddf0d93b0a49cb4919cf5644616f0","impliedFormat":99},{"version":"eb240c0e6b412c57f7d9a9f1c6cd933642a929837c807b179a818f6e8d3a4e44","impliedFormat":99},{"version":"4a7bde5a1155107fc7d9483b8830099f1a6072b6afda5b78d91eb5d6549b3956","impliedFormat":99},{"version":"3c1baaffa9a24cc7ef9eea6b64742394498e0616b127ca630aca0e11e3298006","impliedFormat":99},{"version":"87ca1c31a326c898fa3feb99ec10750d775e1c84dbb7c4b37252bcf3742c7b21","impliedFormat":99},{"version":"d7bd26af1f5457f037225602035c2d7e876b80d02663ab4ca644099ad3a55888","impliedFormat":99},{"version":"2ad0a6b93e84a56b64f92f36a07de7ebcb910822f9a72ad22df5f5d642aff6f3","impliedFormat":99},{"version":"523d1775135260f53f672264937ee0f3dc42a92a39de8bee6c48c7ea60b50b5a","impliedFormat":99},{"version":"e441b9eebbc1284e5d995d99b53ed520b76a87cab512286651c4612d86cd408e","impliedFormat":99},{"version":"76f853ee21425c339a79d28e0859d74f2e53dee2e4919edafff6883dd7b7a80f","impliedFormat":99},{"version":"00cf042cd6ba1915648c8d6d2aa00e63bbbc300ea54d28ed087185f0f662e080","impliedFormat":99},{"version":"f57e6707d035ab89a03797d34faef37deefd3dd90aa17d90de2f33dce46a2c56","impliedFormat":99},{"version":"cc8b559b2cf9380ca72922c64576a43f000275c72042b2af2415ce0fb88d7077","impliedFormat":99},{"version":"1a337ca294c428ba8f2eb01e887b28d080ee4a4307ae87e02e468b1d26af4a74","impliedFormat":99},{"version":"5a15362fc2e72765a908c0d4dd89e3ab3b763e8bc8c23f19234a709ecfd202fe","impliedFormat":99},{"version":"2dffdfe62ac8af0943853234519616db6fd8958fc7ff631149fd8364e663f361","impliedFormat":99},{"version":"5dbdb2b2229b5547d8177c34705272da5a10b8d0033c49efbc9f6efba5e617f2","impliedFormat":99},{"version":"6fc0498cd8823d139004baff830343c9a0d210c687b2402c1384fb40f0aa461c","impliedFormat":99},{"version":"8492306a4864a1dc6fc7e0cc0de0ae9279cbd37f3aae3e9dc1065afcdc83dddc","impliedFormat":99},{"version":"c011b378127497d6337a93f020a05f726db2c30d55dc56d20e6a5090f05919a6","impliedFormat":99},{"version":"f4556979e95a274687ae206bbab2bb9a71c3ad923b92df241d9ab88c184b3f40","impliedFormat":99},{"version":"50e82bb6e238db008b5beba16d733b77e8b2a933c9152d1019cf8096845171a4","impliedFormat":99},{"version":"d6011f8b8bbf5163ef1e73588e64a53e8bf1f13533c375ec53e631aad95f1375","impliedFormat":99},{"version":"693cd7936ac7acfa026d4bcb5801fce71cec49835ba45c67af1ef90dbfd30af7","impliedFormat":99},{"version":"195e2cf684ecddfc1f6420564535d7c469f9611ce7a380d6e191811f84556cd2","impliedFormat":99},{"version":"1dc6b6e7b2a7f2962f31c77f4713f3a5a132bbe14c00db75d557568fe82e4311","impliedFormat":99},{"version":"add93b1180e9aaac2dae4ef3b16f7655893e2ecbe62bd9e48366c305f0063d89","impliedFormat":99},{"version":"594bd896fe37c970aafb7a376ebeec4c0d636b62a5f611e2e27d30fb839ad8a5","impliedFormat":99},{"version":"b1c6a6faf60542ba4b4271db045d7faea56e143b326ef507d2797815250f3afc","impliedFormat":99},{"version":"8c8b165beb794260f462679329b131419e9f5f35212de11c4d53e6d4d9cbedf6","impliedFormat":99},{"version":"ee5a4cf57d49fcf977249ab73c690a59995997c4672bb73fcaaf2eed65dbd1b2","impliedFormat":99},{"version":"f9f36051f138ab1c40b76b230c2a12b3ce6e1271179f4508da06a959f8bee4c1","impliedFormat":99},{"version":"9dc2011a3573d271a45c12656326530c0930f92539accbec3531d65131a14a14","impliedFormat":99},{"version":"091521ce3ede6747f784ae6f68ad2ea86bbda76b59d2bf678bcad2f9d141f629","impliedFormat":99},{"version":"202c2be951f53bafe943fb2c8d1245e35ed0e4dfed89f48c9a948e4d186dd6d4","impliedFormat":99},{"version":"c618aead1d799dbf4f5b28df5a6b9ce13d72722000a0ec3fe90a8115b1ea9226","impliedFormat":99},{"version":"9b0bf59708549c3e77fddd36530b95b55419414f88bbe5893f7bc8b534617973","impliedFormat":99},{"version":"7e216f67c4886f1bde564fb4eebdd6b185f262fe85ad1d6128cad9b229b10354","impliedFormat":99},{"version":"cd51e60b96b4d43698df74a665aa7a16604488193de86aa60ec0c44d9f114951","impliedFormat":99},{"version":"b63341fb6c7ba6f2aeabd9fc46b43e6cc2d2b9eec06534cfd583d9709f310ec2","impliedFormat":99},{"version":"be2af50c81b15bcfe54ad60f53eb1c72dae681c72d0a9dce1967825e1b5830a3","impliedFormat":99},{"version":"be5366845dfb9726f05005331b9b9645f237f1ddc594c0def851208e8b7d297b","impliedFormat":99},{"version":"5ddd536aaeadd4bf0f020492b3788ed209a7050ce27abec4e01c7563ff65da81","impliedFormat":99},{"version":"e243b24da119c1ef0d79af2a45217e50682b139cb48e7607efd66cc01bd9dcda","impliedFormat":99},{"version":"5b1398c8257fd180d0bf62e999fe0a89751c641e87089a83b24392efda720476","impliedFormat":99},{"version":"1588b1359f8507a16dbef67cd2759965fc2e8d305e5b3eb71be5aa9506277dff","impliedFormat":99},{"version":"4c99f2524eee1ec81356e2b4f67047a4b7efaf145f1c4eb530cd358c36784423","impliedFormat":99},{"version":"b30c6b9f6f30c35d6ef84daed1c3781e367f4360171b90598c02468b0db2fc3d","impliedFormat":99},{"version":"79c0d32274ccfd45fae74ac61d17a2be27aea74c70806d22c43fc625b7e9f12a","impliedFormat":99},{"version":"1b7e3958f668063c9d24ac75279f3e610755b0f49b1c02bb3b1c232deb958f54","impliedFormat":99},{"version":"779d4022c3d0a4df070f94858a33d9ebf54af3664754536c4ce9fd37c6f4a8db","impliedFormat":99},{"version":"e662f063d46aa8c088edffdf1d96cb13d9a2cbf06bc38dc6fc62b4d125fb7b49","impliedFormat":99},{"version":"d1d612df1e41c90d9678b07740d13d4f8e6acec2f17390d4ff4be5c889a6d37d","impliedFormat":99},{"version":"c95933fe140918892d569186f17b70ef6b1162f851a0f13f6a89e8f4d599c5a1","impliedFormat":99},{"version":"1d8d30677f87c13c2786980a80750ac1e281bdb65aa013ea193766fe9f0edd74","impliedFormat":99},{"version":"4661673cbc984b8a6ee5e14875a71ed529b64e7f8e347e12c0db4cecc25ad67d","impliedFormat":99},{"version":"7f980a414274f0f23658baa9a16e21d828535f9eac538e2eab2bb965325841db","impliedFormat":99},{"version":"20fb747a339d3c1d4a032a31881d0c65695f8167575e01f222df98791a65da9b","impliedFormat":99},{"version":"dd4e7ebd3f205a11becf1157422f98db675a626243d2fbd123b8b93efe5fb505","impliedFormat":99},{"version":"43ec6b74c8d31e88bb6947bb256ad78e5c6c435cbbbad991c3ff39315b1a3dba","impliedFormat":99},{"version":"b27242dd3af2a5548d0c7231db7da63d6373636d6c4e72d9b616adaa2acef7e1","impliedFormat":99},{"version":"e0ee7ba0571b83c53a3d6ec761cf391e7128d8f8f590f8832c28661b73c21b68","impliedFormat":99},{"version":"072bfd97fc61c894ef260723f43a416d49ebd8b703696f647c8322671c598873","impliedFormat":99},{"version":"e70875232f5d5528f1650dd6f5c94a5bed344ecf04bdbb998f7f78a3c1317d02","impliedFormat":99},{"version":"8e495129cb6cd8008de6f4ff8ce34fe1302a9e0dcff8d13714bd5593be3f7898","impliedFormat":1},{"version":"8370a4004a92c06a2017d00b7e8d53ccc59315d8a6305362d941541e356e63f3","signature":"b6291e1147ffae08edf347432d0cec78934fde41a4ae233dd431912c24500e09"},{"version":"3c80b8ceb9c0f0763ef3cbdd6314c2ad9adb675ba1ea94b898790ff0b14fbbb3","signature":"8ecfd9a94ccc5c00b410896a45457c68f798c1365f203c144324f7f636c5ba4a"},{"version":"89121c1bf2990f5219bfd802a3e7fc557de447c62058d6af68d6b6348d64499a","impliedFormat":1},{"version":"d4a22007b481fe2a2e6bfd3a42c00cd62d41edb36d30fc4697df2692e9891fc8","impliedFormat":1},{"version":"a5dbd4c9941b614526619bad31047ddd5f504ec4cdad88d6117b549faef34dd3","impliedFormat":99},{"version":"011423c04bfafb915ceb4faec12ea882d60acbe482780a667fa5095796c320f8","impliedFormat":99},{"version":"f8eb2909590ec619643841ead2fc4b4b183fbd859848ef051295d35fef9d8469","impliedFormat":99},{"version":"fe784567dd721417e2c4c7c1d7306f4b8611a4f232f5b7ce734382cf34b417d2","impliedFormat":99},{"version":"2b37ba54ec067598bf912d56fcb81f6d8ad86a045c757e79440bdef97b52fe1b","impliedFormat":99},{"version":"1bc9dd465634109668661f998485a32da369755d9f32b5a55ed64a525566c94b","impliedFormat":99},{"version":"5702b3c2f5d248290ed99419d77ca1cc3e6c29db5847172377659c50e6303768","impliedFormat":99},{"version":"9764b2eb5b4fc0b8951468fb3dbd6cd922d7752343ef5fbf1a7cd3dfcd54a75e","impliedFormat":99},{"version":"1fc2d3fe8f31c52c802c4dee6c0157c5a1d1f6be44ece83c49174e316cf931ad","impliedFormat":99},{"version":"dc4aae103a0c812121d9db1f7a5ea98231801ed405bf577d1c9c46a893177e36","impliedFormat":99},{"version":"106d3f40907ba68d2ad8ce143a68358bad476e1cc4a5c710c11c7dbaac878308","impliedFormat":99},{"version":"42ad582d92b058b88570d5be95393cf0a6c09a29ba9aa44609465b41d39d2534","impliedFormat":99},{"version":"36e051a1e0d2f2a808dbb164d846be09b5d98e8b782b37922a3b75f57ee66698","impliedFormat":99},{"version":"4f7e6730a707b0d4971d96de3b562819ce304af770723707a58a578dd55a5e52","impliedFormat":99},{"version":"d1c1213e9176398b4d1d9aa543691181fd5ae23ae5415e80ede41f1ec1ccf72a","impliedFormat":99},{"version":"45d1e8fb4fd3e265b15f5a77866a8e21870eae4c69c473c33289a4b971e93704","impliedFormat":99},{"version":"cd40919f70c875ca07ecc5431cc740e366c008bcbe08ba14b8c78353fb4680df","impliedFormat":99},{"version":"ddfd9196f1f83997873bbe958ce99123f11b062f8309fc09d9c9667b2c284391","impliedFormat":99},{"version":"2999ba314a310f6a333199848166d008d088c6e36d090cbdcc69db67d8ae3154","impliedFormat":99},{"version":"62c1e573cd595d3204dfc02b96eba623020b181d2aa3ce6a33e030bc83bebb41","impliedFormat":99},{"version":"ca1616999d6ded0160fea978088a57df492b6c3f8c457a5879837a7e68d69033","impliedFormat":99},{"version":"835e3d95251bbc48918bb874768c13b8986b87ea60471ad8eceb6e38ddd8845e","impliedFormat":99},{"version":"de54e18f04dbcc892a4b4241b9e4c233cfce9be02ac5f43a631bbc25f479cd84","impliedFormat":99},{"version":"453fb9934e71eb8b52347e581b36c01d7751121a75a5cd1a96e3237e3fd9fc7e","impliedFormat":99},{"version":"bc1a1d0eba489e3eb5c2a4aa8cd986c700692b07a76a60b73a3c31e52c7ef983","impliedFormat":99},{"version":"4098e612efd242b5e203c5c0b9afbf7473209905ab2830598be5c7b3942643d0","impliedFormat":99},{"version":"28410cfb9a798bd7d0327fbf0afd4c4038799b1d6a3f86116dc972e31156b6d2","impliedFormat":99},{"version":"514ae9be6724e2164eb38f2a903ef56cf1d0e6ddb62d0d40f155f32d1317c116","impliedFormat":99},{"version":"970e5e94a9071fd5b5c41e2710c0ef7d73e7f7732911681592669e3f7bd06308","impliedFormat":99},{"version":"491fb8b0e0aef777cec1339cb8f5a1a599ed4973ee22a2f02812dd0f48bd78c1","impliedFormat":99},{"version":"6acf0b3018881977d2cfe4382ac3e3db7e103904c4b634be908f1ade06eb302d","impliedFormat":99},{"version":"2dbb2e03b4b7f6524ad5683e7b5aa2e6aef9c83cab1678afd8467fde6d5a3a92","impliedFormat":99},{"version":"135b12824cd5e495ea0a8f7e29aba52e1adb4581bb1e279fb179304ba60c0a44","impliedFormat":99},{"version":"e4c784392051f4bbb80304d3a909da18c98bc58b093456a09b3e3a1b7b10937f","impliedFormat":99},{"version":"2e87c3480512f057f2e7f44f6498b7e3677196e84e0884618fc9e8b6d6228bed","impliedFormat":99},{"version":"66984309d771b6b085e3369227077da237b40e798570f0a2ddbfea383db39812","impliedFormat":99},{"version":"e41be8943835ad083a4f8a558bd2a89b7fe39619ed99f1880187c75e231d033e","impliedFormat":99},{"version":"260558fff7344e4985cfc78472ae58cbc2487e406d23c1ddaf4d484618ce4cfd","impliedFormat":99},{"version":"e6274d956641c1cbd5a01a221a85a6671fd85104ed6b530f8d34ad3086804133","impliedFormat":99},{"version":"77516308358982bb05209e8c0ed6f321860e03393587d89f61055941e5bbcdd2","impliedFormat":99},{"version":"dc8652855a95ef9b9c12be8d2f5e6fc37b96aa2144f6c6f195cd1d2e07f721ee","impliedFormat":99},{"version":"df7f5e6e07195e2c697ba8fd9ee2762428a7771c693cb9ad37d1ef4ad575f3b8","impliedFormat":99},{"version":"8cf824d4c225a38e85b5daf2d3c5dac56a78257be5dd7b1da5b056671421e3fb","impliedFormat":99},{"version":"7f40b3f2858893cf8c0d765beff06711b13d0f214ce4e4e99d563fdf4ecfcc8a","signature":"e079021effe3378fd0a7357ba831e77b1fc96422ff49ec5bcf8bacdcc7a932a1"},{"version":"fed4aa54adce2000928519583ae02cb301138c65fbbf854033be689abb56299e","signature":"4003778129e8b41bf55950723c5e9edd359a2715a15819e6e9b2462bc947c579"},{"version":"4bece5c44cad465f4a2d7e05bfb389f9f0ec645650939840761c9ec8d6c55416","signature":"828419bccd05fc1889f84d43c1a2e637e1abbf819867cd3ce118e4ae86d7b200"},{"version":"a65cf458c879172bef4012d3397612e7357bf72971b09db5bb5bf8fca0957612","impliedFormat":1},{"version":"6ada175c0c585e89569e8feb8ff6fc9fc443d7f9ca6340b456e0f94cbef559bf","impliedFormat":1},{"version":"e56e4d95fad615c97eb0ae39c329a4cda9c0af178273a9173676cc9b14b58520","impliedFormat":1},{"version":"73e8dfd5e7d2abc18bdb5c5873e64dbdd1082408dd1921cad6ff7130d8339334","impliedFormat":1},{"version":"fc820b2f0c21501f51f79b58a21d3fa7ae5659fc1812784dbfbb72af147659ee","impliedFormat":1},{"version":"d128037db3a40d1d8ae8ec36431e6a4678df56d236729f620e58f4a37f9f33d0","impliedFormat":1},{"version":"31501b8fc4279e78f6a05ca35e365e73c0b0c57d06dbe8faecb10c7254ce7714","impliedFormat":1},{"version":"9985141f349552055b7b6b5082384fdbc1758ba14ff51fada049347628b4e018","impliedFormat":1},{"version":"c3b65655e9b7b290340f3a1c73c7e02907dd290a288de5e62726350da39b96b1","impliedFormat":1},{"version":"c0398181fff2b85eef72a8abfad6a8b31bc5989a3a763fd3d0fd61154e55bcfc","impliedFormat":1},{"version":"89daadaa769a9bf8c1fa26a464e06459197a5914ed42702e1ce439bb5915b767","impliedFormat":1},{"version":"83af685afea5d13d6cd6a8db34aba9aec7962c289bb6c92e770e838e7d5faec9","impliedFormat":1},{"version":"d05bd4d28c12545827349b0ac3a79c50658d68147dad38d13e97e22353544496","impliedFormat":1},{"version":"b99abb32e0aa47c71bf14b6bd2ebc526a4afcee1553c157e49864e41868bdfa4","impliedFormat":1},{"version":"04ace6bedd6f59c30ea6df1f0f8d432c728c8bc5c5fd0c5c1c80242d3ab51977","impliedFormat":1},{"version":"57a8a7772769c35ba7b4b1ba125f0812deec5c7102a0d04d9e15b1d22880c9e8","impliedFormat":1},{"version":"badcc9d59770b91987e962f8e3ddfa1e06671b0e4c5e2738bbd002255cad3f38","impliedFormat":1},{"version":"6897a1c28db022511411870a195b5de01d7aabed051dc60016b263fef7a55fa5","signature":"096b90b59896fdf9c1dc6fb3705d280f5e18c5d7f59146da580d5aa47eeccc88"},{"version":"ecaf84b3024d9564196503527953f87ae211130e6f455195fc67cda723d391cf","signature":"aa329d147a88e37d2f3519f42e6111af04ff676d159ed0b18b1ea29f819f5166"},{"version":"70521b6ab0dcba37539e5303104f29b721bfb2940b2776da4cc818c07e1fefc1","affectsGlobalScope":true,"impliedFormat":1},{"version":"030e350db2525514580ed054f712ffb22d273e6bc7eddc1bb7eda1e0ba5d395e","affectsGlobalScope":true,"impliedFormat":1},{"version":"d153a11543fd884b596587ccd97aebbeed950b26933ee000f94009f1ab142848","affectsGlobalScope":true,"impliedFormat":1},{"version":"21d819c173c0cf7cc3ce57c3276e77fd9a8a01d35a06ad87158781515c9a438a","impliedFormat":1},{"version":"a79e62f1e20467e11a904399b8b18b18c0c6eea6b50c1168bf215356d5bebfaf","affectsGlobalScope":true,"impliedFormat":1},{"version":"0fd06258805d26c72f5997e07a23155d322d5f05387adb3744a791fe6a0b042d","affectsGlobalScope":true,"impliedFormat":1},{"version":"4967529644e391115ca5592184d4b63980569adf60ee685f968fd59ab1557188","impliedFormat":1},{"version":"5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","impliedFormat":1},{"version":"24bd580b5743dc56402c440dc7f9a4f5d592ad7a419f25414d37a7bfe11e342b","impliedFormat":1},{"version":"25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","impliedFormat":1},{"version":"c464d66b20788266e5353b48dc4aa6bc0dc4a707276df1e7152ab0c9ae21fad8","impliedFormat":1},{"version":"78d0d27c130d35c60b5e5566c9f1e5be77caf39804636bc1a40133919a949f21","impliedFormat":1},{"version":"c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","impliedFormat":1},{"version":"1d6e127068ea8e104a912e42fc0a110e2aa5a66a356a917a163e8cf9a65e4a75","impliedFormat":1},{"version":"5ded6427296cdf3b9542de4471d2aa8d3983671d4cac0f4bf9c637208d1ced43","impliedFormat":1},{"version":"6bdc71028db658243775263e93a7db2fd2abfce3ca569c3cca5aee6ed5eb186d","impliedFormat":1},{"version":"cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","impliedFormat":1},{"version":"385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","impliedFormat":1},{"version":"9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","impliedFormat":1},{"version":"0b8a9268adaf4da35e7fa830c8981cfa22adbbe5b3f6f5ab91f6658899e657a7","impliedFormat":1},{"version":"11396ed8a44c02ab9798b7dca436009f866e8dae3c9c25e8c1fbc396880bf1bb","impliedFormat":1},{"version":"ba7bc87d01492633cb5a0e5da8a4a42a1c86270e7b3d2dea5d156828a84e4882","impliedFormat":1},{"version":"4893a895ea92c85345017a04ed427cbd6a1710453338df26881a6019432febdd","impliedFormat":1},{"version":"c21dc52e277bcfc75fac0436ccb75c204f9e1b3fa5e12729670910639f27343e","impliedFormat":1},{"version":"13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","impliedFormat":1},{"version":"9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","impliedFormat":1},{"version":"4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","impliedFormat":1},{"version":"24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","impliedFormat":1},{"version":"ea0148f897b45a76544ae179784c95af1bd6721b8610af9ffa467a518a086a43","impliedFormat":1},{"version":"24c6a117721e606c9984335f71711877293a9651e44f59f3d21c1ea0856f9cc9","impliedFormat":1},{"version":"dd3273ead9fbde62a72949c97dbec2247ea08e0c6952e701a483d74ef92d6a17","impliedFormat":1},{"version":"405822be75ad3e4d162e07439bac80c6bcc6dbae1929e179cf467ec0b9ee4e2e","impliedFormat":1},{"version":"0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","impliedFormat":1},{"version":"4d2b0eb911816f66abe4970898f97a2cfc902bcd743cbfa5017fad79f7ef90d8","impliedFormat":1},{"version":"bd0532fd6556073727d28da0edfd1736417a3f9f394877b6d5ef6ad88fba1d1a","impliedFormat":1},{"version":"89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","impliedFormat":1},{"version":"e53a3c2a9f624d90f24bf4588aacd223e7bec1b9d0d479b68d2f4a9e6011147f","impliedFormat":1},{"version":"24b8685c62562f5d98615c5a0c1d05f297cf5065f15246edfe99e81ec4c0e011","impliedFormat":1},{"version":"93507c745e8f29090efb99399c3f77bec07db17acd75634249dc92f961573387","impliedFormat":1},{"version":"339dc5265ee5ed92e536a93a04c4ebbc2128f45eeec6ed29f379e0085283542c","impliedFormat":1},{"version":"4732aec92b20fb28c5fe9ad99521fb59974289ed1e45aecb282616202184064f","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"bf67d53d168abc1298888693338cb82854bdb2e69ef83f8a0092093c2d562107","impliedFormat":1},{"version":"81184fe8e67d78ac4e5374650f0892d547d665d77da2b2f544b5d84729c4a15d","affectsGlobalScope":true,"impliedFormat":1},{"version":"f52e8dacc97d71dcc96af29e49584353f9c54cb916d132e3e768d8b8129c928d","impliedFormat":1},{"version":"7394959e5a741b185456e1ef5d64599c36c60a323207450991e7a42e08911419","impliedFormat":1},{"version":"76103716ba397bbb61f9fa9c9090dca59f39f9047cb1352b2179c5d8e7f4e8d0","impliedFormat":1},{"version":"53eac70430b30089a3a1959d8306b0f9cfaf0de75224b68ef25243e0b5ad1ca3","affectsGlobalScope":true,"impliedFormat":1},{"version":"4314c7a11517e221f7296b46547dbc4df047115b182f544d072bdccffa57fc72","impliedFormat":1},{"version":"115971d64632ea4742b5b115fb64ed04bcaae2c3c342f13d9ba7e3f9ee39c4e7","impliedFormat":1},{"version":"c2510f124c0293ab80b1777c44d80f812b75612f297b9857406468c0f4dafe29","affectsGlobalScope":true,"impliedFormat":1},{"version":"a40826e8476694e90da94aa008283a7de50d1dafd37beada623863f1901cb7fb","impliedFormat":1},{"version":"a76037255d4e7af8b20d191a4d3ad13236fba352239d3d9d54868a98dbb222f5","affectsGlobalScope":true,"impliedFormat":1},{"version":"24642567d3729bcc545bacb65ee7c0db423400c7f1ef757cab25d05650064f98","impliedFormat":1},{"version":"e6f5a38687bebe43a4cef426b69d34373ef68be9a6b1538ec0a371e69f309354","impliedFormat":1},{"version":"a6bf63d17324010ca1fbf0389cab83f93389bb0b9a01dc8a346d092f65b3605f","impliedFormat":1},{"version":"e009777bef4b023a999b2e5b9a136ff2cde37dc3f77c744a02840f05b18be8ff","impliedFormat":1},{"version":"1e0d1f8b0adfa0b0330e028c7941b5a98c08b600efe7f14d2d2a00854fb2f393","impliedFormat":1},{"version":"ee1ee365d88c4c6c0c0a5a5701d66ebc27ccd0bcfcfaa482c6e2e7fe7b98edf7","affectsGlobalScope":true,"impliedFormat":1},{"version":"875928df2f3e9a3aed4019539a15d04ff6140a06df6cd1b2feb836d22a81eaca","affectsGlobalScope":true,"impliedFormat":1},{"version":"20b97c3368b1a63d2156deea35d03b125bb07908906eb35e0438042a3bbb3e71","impliedFormat":1},{"version":"f65eecc63138013d13fefea9092e83c3043cb52a5e351d22ea194e81021c1cd5","impliedFormat":1},{"version":"4617299caf33afef24b5e074e6d20ce8f510dd212cebd75884ef27c64457a77b","impliedFormat":1},{"version":"fa56be9b96f747e93b895d8dc2aa4fb9f0816743e6e2abb9d60705e88d4743a2","impliedFormat":1},{"version":"8257c55ff6bff6169142a35fce6811b511d857b4ae4f522cdb6ce20fd2116b2c","impliedFormat":1},{"version":"6d386bc0d7f3afa1d401afc3e00ed6b09205a354a9795196caed937494a713e6","impliedFormat":1},{"version":"5990bd8b9bc91f6e90269685ff5a154eeda52c18238f89f0101fb4d08cd80476","affectsGlobalScope":true,"impliedFormat":1},{"version":"94c4187083503a74f4544503b5a30e2bd7af0032dc739b0c9a7ce87f8bddc7b9","impliedFormat":1},{"version":"b1b6ee0d012aeebe11d776a155d8979730440082797695fc8e2a5c326285678f","impliedFormat":1},{"version":"45875bcae57270aeb3ebc73a5e3fb4c7b9d91d6b045f107c1d8513c28ece71c0","impliedFormat":1},{"version":"3eb62baae4df08c9173e6903d3ca45942ccec8c3659b0565684a75f3292cffbb","affectsGlobalScope":true,"impliedFormat":1},{"version":"6f6abdaf8764ef01a552a958f45e795b5e79153b87ddad3af5264b86d2681b72","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f16a7e4deafa527ed9995a772bb380eb7d3c2c0fd4ae178c5263ed18394db2c","impliedFormat":1},{"version":"c6b4e0a02545304935ecbf7de7a8e056a31bb50939b5b321c9d50a405b5a0bba","impliedFormat":1},{"version":"4de73e132bf47437c56b1e8416c60d9d517c8ba3822e7c623b54d4300834dd37","impliedFormat":1},{"version":"e432b0e3761ca9ba734bdd41e19a75fec1454ca8e9769bfdf8b31011854cf06a","impliedFormat":1},{"version":"e1120271ebbc9952fdc7b2dd3e145560e52e06956345e6fdf91d70ca4886464f","impliedFormat":1},{"version":"15c5e91b5f08be34a78e3d976179bf5b7a9cc28dc0ef1ffebffeb3c7812a2dca","impliedFormat":1},{"version":"a8f06c2382a30b7cb89ad2dfc48fc3b2b490f3dafcd839dadc008e4e5d57031d","impliedFormat":1},{"version":"553870e516f8c772b89f3820576152ebc70181d7994d96917bb943e37da7f8a7","impliedFormat":1},{"version":"37ba7b45141a45ce6e80e66f2a96c8a5ab1bcef0fc2d0f56bb58df96ec67e972","impliedFormat":1},{"version":"93452d394fdd1dc551ec62f5042366f011a00d342d36d50793b3529bfc9bd633","impliedFormat":1},{"version":"745c4240220559bd340c8aeb6e3c5270a709d3565e934dc22a69c304703956bc","affectsGlobalScope":true,"impliedFormat":1},{"version":"2754d8221d77c7b382096651925eb476f1066b3348da4b73fe71ced7801edada","impliedFormat":1},{"version":"cdb781940d24f57752615cc37d2b975b45906f386e2e5344700156fd2fb74efc","affectsGlobalScope":true,"impliedFormat":1},{"version":"bef91efa0baea5d0e0f0f27b574a8bc100ce62a6d7e70220a0d58af6acab5e89","affectsGlobalScope":true,"impliedFormat":1},{"version":"f59493f68eade5200559e5016b5855f7d12e6381eb6cab9ad8a379af367b3b2d","impliedFormat":1},{"version":"125e3472965f529de239d2bc85b54579fed8e0b060d1d04de6576fb910a6ec7f","impliedFormat":1},{"version":"66ba1b2c3e3a3644a1011cd530fb444a96b1b2dfe2f5e837a002d41a1a799e60","impliedFormat":1},{"version":"7e514f5b852fdbc166b539fdd1f4e9114f29911592a5eb10a94bb3a13ccac3c4","impliedFormat":1},{"version":"7d6ff413e198d25639f9f01f16673e7df4e4bd2875a42455afd4ecc02ef156da","affectsGlobalScope":true,"impliedFormat":1},{"version":"6306bf4c2b609f4c5b8bd7d26a85d40ccac8fb4276a84597fa8240f83c82f2b3","affectsGlobalScope":true,"impliedFormat":1},{"version":"a5c09990a37469b0311a92ce8feeb8682e83918723aedbd445bd7a0f510eaaa3","impliedFormat":1},{"version":"ae25afbbf1ed5df63a177d67b9048bf7481067f1b8dc9c39212e59db94fc9fc6","impliedFormat":1},{"version":"ac5ed35e649cdd8143131964336ab9076937fa91802ec760b3ea63b59175c10a","impliedFormat":1},{"version":"89332fc3cc945c8df2bc0aead55230430a0dabd3277c39a43315e00330de97a6","affectsGlobalScope":true,"impliedFormat":1},{"version":"78dc0513cc4f1642906b74dda42146bcbd9df7401717d6e89ea6d72d12ecb539","impliedFormat":1},{"version":"ad90122e1cb599b3bc06a11710eb5489101be678f2920f2322b0ac3e195af78d","impliedFormat":1}],"root":[[58,60],319,320,[366,368],386,387],"options":{"allowJs":true,"checkJs":true,"declaration":true,"declarationMap":true,"emitDeclarationOnly":false,"esModuleInterop":true,"module":6,"noUncheckedIndexedAccess":true,"outDir":"../dist","skipLibCheck":true,"strict":true,"strictNullChecks":true,"target":7,"tsBuildInfoFile":"./tsbuildinfo.json"},"referencedMap":[[322,1],[433,2],[434,2],[435,3],[393,4],[436,5],[437,6],[438,7],[388,8],[391,9],[389,8],[390,8],[439,10],[440,11],[441,12],[442,13],[443,14],[444,15],[445,15],[447,16],[446,17],[448,18],[449,19],[450,20],[432,21],[392,8],[451,22],[452,23],[453,24],[486,25],[454,26],[455,27],[456,28],[457,29],[458,30],[459,31],[460,32],[461,33],[462,34],[463,35],[464,35],[465,36],[466,8],[467,8],[468,37],[470,38],[469,39],[471,40],[472,41],[473,42],[474,43],[475,44],[476,45],[477,46],[478,47],[479,48],[480,49],[481,50],[482,51],[483,52],[484,53],[485,54],[321,8],[394,8],[149,55],[128,56],[225,8],[129,57],[65,55],[66,55],[67,55],[68,55],[69,55],[70,55],[71,55],[72,55],[73,55],[74,55],[75,55],[76,55],[77,55],[78,55],[79,55],[80,55],[81,55],[82,55],[61,8],[83,55],[84,55],[85,8],[86,55],[87,55],[89,55],[88,55],[90,55],[91,55],[92,55],[93,55],[94,55],[95,55],[96,55],[97,55],[98,55],[99,55],[100,55],[101,55],[102,55],[103,55],[104,55],[105,55],[106,55],[107,55],[108,55],[110,55],[111,55],[112,55],[109,55],[113,55],[114,55],[115,55],[116,55],[117,55],[118,55],[119,55],[120,55],[121,55],[122,55],[123,55],[124,55],[125,55],[126,55],[127,55],[130,58],[131,55],[132,55],[133,59],[134,60],[135,55],[136,55],[137,55],[138,55],[141,55],[139,55],[140,55],[63,8],[142,55],[143,55],[144,55],[145,55],[146,55],[147,55],[148,55],[150,61],[151,55],[152,55],[153,55],[155,55],[154,55],[156,55],[157,55],[158,55],[159,55],[160,55],[161,55],[162,55],[163,55],[164,55],[165,55],[167,55],[166,55],[168,55],[169,8],[170,8],[171,8],[318,62],[172,55],[173,55],[174,55],[175,55],[176,55],[177,55],[178,8],[179,55],[180,8],[181,55],[182,55],[183,55],[184,55],[185,55],[186,55],[187,55],[188,55],[189,55],[190,55],[191,55],[192,55],[193,55],[194,55],[195,55],[196,55],[197,55],[198,55],[199,55],[200,55],[201,55],[202,55],[203,55],[204,55],[205,55],[206,55],[207,55],[208,55],[209,55],[210,55],[211,55],[212,55],[213,8],[214,55],[215,55],[216,55],[217,55],[218,55],[219,55],[220,55],[221,55],[222,55],[223,55],[224,55],[226,63],[62,55],[227,55],[228,55],[229,8],[230,8],[231,8],[232,55],[233,8],[234,8],[235,8],[236,8],[237,8],[238,55],[239,55],[240,55],[241,55],[242,55],[243,55],[244,55],[245,55],[250,64],[248,65],[249,66],[247,67],[246,55],[251,55],[252,55],[253,55],[254,55],[255,55],[256,55],[257,55],[258,55],[259,55],[260,55],[261,8],[262,8],[263,55],[264,55],[265,8],[266,8],[267,8],[268,55],[269,55],[270,55],[271,55],[272,61],[273,55],[274,55],[275,55],[276,55],[277,55],[278,55],[279,55],[280,55],[281,55],[282,55],[283,55],[284,55],[285,55],[286,55],[287,55],[288,55],[289,55],[290,55],[291,55],[292,55],[293,55],[294,55],[295,55],[296,55],[297,55],[298,55],[299,55],[300,55],[301,55],[302,55],[303,55],[304,55],[305,55],[306,55],[307,55],[308,55],[309,55],[310,55],[311,55],[312,55],[313,55],[64,68],[314,8],[315,8],[316,8],[317,8],[326,69],[325,70],[324,71],[360,72],[340,73],[341,73],[342,73],[343,73],[344,73],[345,73],[346,74],[348,73],[347,73],[359,75],[349,73],[351,73],[350,73],[353,73],[352,73],[354,73],[355,73],[356,73],[357,73],[358,73],[339,73],[338,76],[323,8],[337,77],[336,78],[362,79],[361,80],[363,81],[365,82],[364,74],[333,83],[332,8],[56,8],[57,8],[11,8],[10,8],[2,8],[12,8],[13,8],[14,8],[15,8],[16,8],[17,8],[18,8],[19,8],[3,8],[20,8],[21,8],[4,8],[22,8],[26,8],[23,8],[24,8],[25,8],[27,8],[28,8],[29,8],[5,8],[30,8],[31,8],[32,8],[33,8],[6,8],[37,8],[34,8],[35,8],[36,8],[38,8],[7,8],[39,8],[44,8],[45,8],[40,8],[41,8],[42,8],[43,8],[8,8],[49,8],[46,8],[47,8],[48,8],[50,8],[9,8],[51,8],[52,8],[53,8],[55,8],[54,8],[1,8],[410,84],[420,85],[409,84],[430,86],[401,87],[400,88],[429,89],[423,90],[428,91],[403,92],[417,93],[402,94],[426,95],[398,96],[397,89],[427,97],[399,98],[404,99],[405,8],[408,99],[395,8],[431,100],[421,101],[412,102],[413,103],[415,104],[411,105],[414,106],[424,89],[406,107],[407,108],[416,109],[396,110],[419,101],[418,99],[422,8],[425,111],[335,112],[331,8],[334,113],[385,114],[370,8],[371,8],[372,8],[373,8],[369,8],[374,115],[375,8],[377,116],[376,115],[378,115],[379,116],[380,115],[381,8],[382,115],[383,8],[384,8],[328,117],[327,1],[330,118],[329,119],[387,120],[58,8],[59,8],[319,121],[366,122],[320,8],[60,123],[367,8],[368,8],[386,124]],"version":"5.9.2"}
|
package/.turbo/turbo-build.log
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
> @hybrd/utils@1.3.1 build /Users/ian/Projects/01/hybrid/packages/utils
|
|
4
|
-
> tsup
|
|
5
|
-
|
|
6
|
-
[34mCLI[39m Building entry: {"index":"src/index.ts"}
|
|
7
|
-
[34mCLI[39m Using tsconfig: tsconfig.json
|
|
8
|
-
[34mCLI[39m tsup v8.5.0
|
|
9
|
-
[34mCLI[39m Using tsup config: /Users/ian/Projects/01/hybrid/packages/utils/tsup.config.ts
|
|
10
|
-
[34mCLI[39m Target: es2020
|
|
11
|
-
[34mCLI[39m Cleaning output folder
|
|
12
|
-
[34mCJS[39m Build start
|
|
13
|
-
[34mESM[39m Build start
|
|
14
|
-
[32mESM[39m [1mdist/index.js [22m[32m5.11 KB[39m
|
|
15
|
-
[32mESM[39m [1mdist/index.js.map [22m[32m13.61 KB[39m
|
|
16
|
-
[32mESM[39m ⚡️ Build success in 45ms
|
|
17
|
-
[32mCJS[39m [1mdist/index.cjs [22m[32m7.59 KB[39m
|
|
18
|
-
[32mCJS[39m [1mdist/index.cjs.map [22m[32m14.07 KB[39m
|
|
19
|
-
[32mCJS[39m ⚡️ Build success in 55ms
|
|
20
|
-
DTS Build start
|
|
21
|
-
DTS ⚡️ Build success in 889ms
|
|
22
|
-
DTS dist/index.d.cts 5.76 KB
|
|
23
|
-
DTS dist/index.d.ts 5.76 KB
|
package/tsconfig.json
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"extends": "@config/tsconfig/external-package.json",
|
|
3
|
-
"compilerOptions": {
|
|
4
|
-
"emitDeclarationOnly": false,
|
|
5
|
-
"noEmit": false,
|
|
6
|
-
"outDir": "dist",
|
|
7
|
-
"module": "ES2020",
|
|
8
|
-
"moduleResolution": "node",
|
|
9
|
-
"target": "ES2020"
|
|
10
|
-
},
|
|
11
|
-
"include": ["src/**/*.ts"],
|
|
12
|
-
"exclude": ["node_modules", "dist"]
|
|
13
|
-
}
|
package/tsup.config.ts
DELETED