+22
bruh/index.ts
+22
bruh/index.ts
···
1
+
/**
2
+
* GENERATED CODE - DO NOT MODIFY
3
+
*/
4
+
import {
5
+
XrpcClient,
6
+
type FetchHandler,
7
+
type FetchHandlerOptions,
8
+
} from '@atproto/xrpc'
9
+
import { schemas } from './lexicons.js'
10
+
import { CID } from 'multiformats/cid'
11
+
import { type OmitKey, type Un$Typed } from './util.js'
12
+
13
+
export class AtpBaseClient extends XrpcClient {
14
+
constructor(options: FetchHandler | FetchHandlerOptions) {
15
+
super(options, schemas)
16
+
}
17
+
18
+
/** @deprecated use `this` instead */
19
+
get xrpc(): XrpcClient {
20
+
return this
21
+
}
22
+
}
+44
bruh/lexicons.ts
+44
bruh/lexicons.ts
···
1
+
/**
2
+
* GENERATED CODE - DO NOT MODIFY
3
+
*/
4
+
import {
5
+
type LexiconDoc,
6
+
Lexicons,
7
+
ValidationError,
8
+
type ValidationResult,
9
+
} from '@atproto/lexicon'
10
+
import { type $Typed, is$typed, maybe$typed } from './util.js'
11
+
12
+
export const schemaDict = {} as const satisfies Record<string, LexiconDoc>
13
+
export const schemas = Object.values(schemaDict) satisfies LexiconDoc[]
14
+
export const lexicons: Lexicons = new Lexicons(schemas)
15
+
16
+
export function validate<T extends { $type: string }>(
17
+
v: unknown,
18
+
id: string,
19
+
hash: string,
20
+
requiredType: true,
21
+
): ValidationResult<T>
22
+
export function validate<T extends { $type?: string }>(
23
+
v: unknown,
24
+
id: string,
25
+
hash: string,
26
+
requiredType?: false,
27
+
): ValidationResult<T>
28
+
export function validate(
29
+
v: unknown,
30
+
id: string,
31
+
hash: string,
32
+
requiredType?: boolean,
33
+
): ValidationResult {
34
+
return (requiredType ? is$typed : maybe$typed)(v, id, hash)
35
+
? lexicons.validate(`${id}#${hash}`, v)
36
+
: {
37
+
success: false,
38
+
error: new ValidationError(
39
+
`Must be an object with "${hash === 'main' ? id : `${id}#${hash}`}" $type property`,
40
+
),
41
+
}
42
+
}
43
+
44
+
export const ids = {} as const
+82
bruh/util.ts
+82
bruh/util.ts
···
1
+
/**
2
+
* GENERATED CODE - DO NOT MODIFY
3
+
*/
4
+
5
+
import { type ValidationResult } from '@atproto/lexicon'
6
+
7
+
export type OmitKey<T, K extends keyof T> = {
8
+
[K2 in keyof T as K2 extends K ? never : K2]: T[K2]
9
+
}
10
+
11
+
export type $Typed<V, T extends string = string> = V & { $type: T }
12
+
export type Un$Typed<V extends { $type?: string }> = OmitKey<V, '$type'>
13
+
14
+
export type $Type<Id extends string, Hash extends string> = Hash extends 'main'
15
+
? Id
16
+
: `${Id}#${Hash}`
17
+
18
+
function isObject<V>(v: V): v is V & object {
19
+
return v != null && typeof v === 'object'
20
+
}
21
+
22
+
function is$type<Id extends string, Hash extends string>(
23
+
$type: unknown,
24
+
id: Id,
25
+
hash: Hash,
26
+
): $type is $Type<Id, Hash> {
27
+
return hash === 'main'
28
+
? $type === id
29
+
: // $type === `${id}#${hash}`
30
+
typeof $type === 'string' &&
31
+
$type.length === id.length + 1 + hash.length &&
32
+
$type.charCodeAt(id.length) === 35 /* '#' */ &&
33
+
$type.startsWith(id) &&
34
+
$type.endsWith(hash)
35
+
}
36
+
37
+
export type $TypedObject<
38
+
V,
39
+
Id extends string,
40
+
Hash extends string,
41
+
> = V extends {
42
+
$type: $Type<Id, Hash>
43
+
}
44
+
? V
45
+
: V extends { $type?: string }
46
+
? V extends { $type?: infer T extends $Type<Id, Hash> }
47
+
? V & { $type: T }
48
+
: never
49
+
: V & { $type: $Type<Id, Hash> }
50
+
51
+
export function is$typed<V, Id extends string, Hash extends string>(
52
+
v: V,
53
+
id: Id,
54
+
hash: Hash,
55
+
): v is $TypedObject<V, Id, Hash> {
56
+
return isObject(v) && '$type' in v && is$type(v.$type, id, hash)
57
+
}
58
+
59
+
export function maybe$typed<V, Id extends string, Hash extends string>(
60
+
v: V,
61
+
id: Id,
62
+
hash: Hash,
63
+
): v is V & object & { $type?: $Type<Id, Hash> } {
64
+
return (
65
+
isObject(v) &&
66
+
('$type' in v ? v.$type === undefined || is$type(v.$type, id, hash) : true)
67
+
)
68
+
}
69
+
70
+
export type Validator<R = unknown> = (v: unknown) => ValidationResult<R>
71
+
export type ValidatorParam<V extends Validator> =
72
+
V extends Validator<infer R> ? R : never
73
+
74
+
/**
75
+
* Utility function that allows to convert a "validate*" utility function into a
76
+
* type predicate.
77
+
*/
78
+
export function asPredicate<V extends Validator>(validate: V) {
79
+
return function <T>(v: T): v is T & ValidatorParam<V> {
80
+
return validate(v).success
81
+
}
82
+
}
+619
package-lock.json
+619
package-lock.json
···
9
9
"version": "0.0.0",
10
10
"dependencies": {
11
11
"@atproto/api": "^0.17.3",
12
+
"@atproto/common": "^0.4.12",
13
+
"@atproto/common-web": "^0.4.3",
14
+
"@atproto/lex-cli": "^0.9.5",
15
+
"@atproto/lexicon": "^0.5.1",
12
16
"@atproto/oauth-client-browser": "^0.3.33",
13
17
"@tailwindcss/vite": "^4.1.14",
14
18
"tailwindcss": "^4.1.14"
···
106
110
"zod": "^3.23.8"
107
111
}
108
112
},
113
+
"node_modules/@atproto/common": {
114
+
"version": "0.4.12",
115
+
"resolved": "https://registry.npmjs.org/@atproto/common/-/common-0.4.12.tgz",
116
+
"integrity": "sha512-NC+TULLQiqs6MvNymhQS5WDms3SlbIKGLf4n33tpftRJcalh507rI+snbcUb7TLIkKw7VO17qMqxEXtIdd5auQ==",
117
+
"license": "MIT",
118
+
"dependencies": {
119
+
"@atproto/common-web": "^0.4.3",
120
+
"@ipld/dag-cbor": "^7.0.3",
121
+
"cbor-x": "^1.5.1",
122
+
"iso-datestring-validator": "^2.2.2",
123
+
"multiformats": "^9.9.0",
124
+
"pino": "^8.21.0"
125
+
},
126
+
"engines": {
127
+
"node": ">=18.7.0"
128
+
}
129
+
},
109
130
"node_modules/@atproto/common-web": {
110
131
"version": "0.4.3",
111
132
"resolved": "https://registry.npmjs.org/@atproto/common-web/-/common-web-0.4.3.tgz",
···
158
179
"zod": "^3.23.8"
159
180
}
160
181
},
182
+
"node_modules/@atproto/lex-cli": {
183
+
"version": "0.9.5",
184
+
"resolved": "https://registry.npmjs.org/@atproto/lex-cli/-/lex-cli-0.9.5.tgz",
185
+
"integrity": "sha512-zun4jhD1dbjD7IHtLIjh/1UsMx+6E8+OyOT2GXYAKIj9N6wmLKM/v2OeQBKxcyqUmtRi57lxWnGikWjjU7pplQ==",
186
+
"license": "MIT",
187
+
"dependencies": {
188
+
"@atproto/lexicon": "^0.5.1",
189
+
"@atproto/syntax": "^0.4.1",
190
+
"chalk": "^4.1.2",
191
+
"commander": "^9.4.0",
192
+
"prettier": "^3.2.5",
193
+
"ts-morph": "^24.0.0",
194
+
"yesno": "^0.4.0",
195
+
"zod": "^3.23.8"
196
+
},
197
+
"bin": {
198
+
"lex": "dist/index.js"
199
+
},
200
+
"engines": {
201
+
"node": ">=18.7.0"
202
+
}
203
+
},
161
204
"node_modules/@atproto/lexicon": {
162
205
"version": "0.5.1",
163
206
"resolved": "https://registry.npmjs.org/@atproto/lexicon/-/lexicon-0.5.1.tgz",
···
236
279
"zod": "^3.23.8"
237
280
}
238
281
},
282
+
"node_modules/@cbor-extract/cbor-extract-darwin-arm64": {
283
+
"version": "2.2.0",
284
+
"resolved": "https://registry.npmjs.org/@cbor-extract/cbor-extract-darwin-arm64/-/cbor-extract-darwin-arm64-2.2.0.tgz",
285
+
"integrity": "sha512-P7swiOAdF7aSi0H+tHtHtr6zrpF3aAq/W9FXx5HektRvLTM2O89xCyXF3pk7pLc7QpaY7AoaE8UowVf9QBdh3w==",
286
+
"cpu": [
287
+
"arm64"
288
+
],
289
+
"license": "MIT",
290
+
"optional": true,
291
+
"os": [
292
+
"darwin"
293
+
]
294
+
},
295
+
"node_modules/@cbor-extract/cbor-extract-darwin-x64": {
296
+
"version": "2.2.0",
297
+
"resolved": "https://registry.npmjs.org/@cbor-extract/cbor-extract-darwin-x64/-/cbor-extract-darwin-x64-2.2.0.tgz",
298
+
"integrity": "sha512-1liF6fgowph0JxBbYnAS7ZlqNYLf000Qnj4KjqPNW4GViKrEql2MgZnAsExhY9LSy8dnvA4C0qHEBgPrll0z0w==",
299
+
"cpu": [
300
+
"x64"
301
+
],
302
+
"license": "MIT",
303
+
"optional": true,
304
+
"os": [
305
+
"darwin"
306
+
]
307
+
},
308
+
"node_modules/@cbor-extract/cbor-extract-linux-arm": {
309
+
"version": "2.2.0",
310
+
"resolved": "https://registry.npmjs.org/@cbor-extract/cbor-extract-linux-arm/-/cbor-extract-linux-arm-2.2.0.tgz",
311
+
"integrity": "sha512-QeBcBXk964zOytiedMPQNZr7sg0TNavZeuUCD6ON4vEOU/25+pLhNN6EDIKJ9VLTKaZ7K7EaAriyYQ1NQ05s/Q==",
312
+
"cpu": [
313
+
"arm"
314
+
],
315
+
"license": "MIT",
316
+
"optional": true,
317
+
"os": [
318
+
"linux"
319
+
]
320
+
},
321
+
"node_modules/@cbor-extract/cbor-extract-linux-arm64": {
322
+
"version": "2.2.0",
323
+
"resolved": "https://registry.npmjs.org/@cbor-extract/cbor-extract-linux-arm64/-/cbor-extract-linux-arm64-2.2.0.tgz",
324
+
"integrity": "sha512-rQvhNmDuhjTVXSPFLolmQ47/ydGOFXtbR7+wgkSY0bdOxCFept1hvg59uiLPT2fVDuJFuEy16EImo5tE2x3RsQ==",
325
+
"cpu": [
326
+
"arm64"
327
+
],
328
+
"license": "MIT",
329
+
"optional": true,
330
+
"os": [
331
+
"linux"
332
+
]
333
+
},
334
+
"node_modules/@cbor-extract/cbor-extract-linux-x64": {
335
+
"version": "2.2.0",
336
+
"resolved": "https://registry.npmjs.org/@cbor-extract/cbor-extract-linux-x64/-/cbor-extract-linux-x64-2.2.0.tgz",
337
+
"integrity": "sha512-cWLAWtT3kNLHSvP4RKDzSTX9o0wvQEEAj4SKvhWuOVZxiDAeQazr9A+PSiRILK1VYMLeDml89ohxCnUNQNQNCw==",
338
+
"cpu": [
339
+
"x64"
340
+
],
341
+
"license": "MIT",
342
+
"optional": true,
343
+
"os": [
344
+
"linux"
345
+
]
346
+
},
347
+
"node_modules/@cbor-extract/cbor-extract-win32-x64": {
348
+
"version": "2.2.0",
349
+
"resolved": "https://registry.npmjs.org/@cbor-extract/cbor-extract-win32-x64/-/cbor-extract-win32-x64-2.2.0.tgz",
350
+
"integrity": "sha512-l2M+Z8DO2vbvADOBNLbbh9y5ST1RY5sqkWOg/58GkUPBYou/cuNZ68SGQ644f1CvZ8kcOxyZtw06+dxWHIoN/w==",
351
+
"cpu": [
352
+
"x64"
353
+
],
354
+
"license": "MIT",
355
+
"optional": true,
356
+
"os": [
357
+
"win32"
358
+
]
359
+
},
239
360
"node_modules/@esbuild/aix-ppc64": {
240
361
"version": "0.25.11",
241
362
"resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.11.tgz",
···
650
771
],
651
772
"engines": {
652
773
"node": ">=18"
774
+
}
775
+
},
776
+
"node_modules/@ipld/dag-cbor": {
777
+
"version": "7.0.3",
778
+
"resolved": "https://registry.npmjs.org/@ipld/dag-cbor/-/dag-cbor-7.0.3.tgz",
779
+
"integrity": "sha512-1VVh2huHsuohdXC1bGJNE8WR72slZ9XE2T3wbBBq31dm7ZBatmKLLxrB+XAqafxfRFjv08RZmj/W/ZqaM13AuA==",
780
+
"license": "(Apache-2.0 AND MIT)",
781
+
"dependencies": {
782
+
"cborg": "^1.6.0",
783
+
"multiformats": "^9.5.4"
653
784
}
654
785
},
655
786
"node_modules/@isaacs/fs-minipass": {
···
1307
1438
"vite": "^5.2.0 || ^6 || ^7"
1308
1439
}
1309
1440
},
1441
+
"node_modules/@ts-morph/common": {
1442
+
"version": "0.25.0",
1443
+
"resolved": "https://registry.npmjs.org/@ts-morph/common/-/common-0.25.0.tgz",
1444
+
"integrity": "sha512-kMnZz+vGGHi4GoHnLmMhGNjm44kGtKUXGnOvrKmMwAuvNjM/PgKVGfUnL7IDvK7Jb2QQ82jq3Zmp04Gy+r3Dkg==",
1445
+
"license": "MIT",
1446
+
"dependencies": {
1447
+
"minimatch": "^9.0.4",
1448
+
"path-browserify": "^1.0.1",
1449
+
"tinyglobby": "^0.2.9"
1450
+
}
1451
+
},
1310
1452
"node_modules/@tsconfig/svelte": {
1311
1453
"version": "5.0.5",
1312
1454
"resolved": "https://registry.npmjs.org/@tsconfig/svelte/-/svelte-5.0.5.tgz",
···
1331
1473
"undici-types": "~7.14.0"
1332
1474
}
1333
1475
},
1476
+
"node_modules/abort-controller": {
1477
+
"version": "3.0.0",
1478
+
"resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz",
1479
+
"integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==",
1480
+
"license": "MIT",
1481
+
"dependencies": {
1482
+
"event-target-shim": "^5.0.0"
1483
+
},
1484
+
"engines": {
1485
+
"node": ">=6.5"
1486
+
}
1487
+
},
1334
1488
"node_modules/acorn": {
1335
1489
"version": "8.15.0",
1336
1490
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz",
···
1345
1499
"node": ">=0.4.0"
1346
1500
}
1347
1501
},
1502
+
"node_modules/ansi-styles": {
1503
+
"version": "4.3.0",
1504
+
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
1505
+
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
1506
+
"license": "MIT",
1507
+
"dependencies": {
1508
+
"color-convert": "^2.0.1"
1509
+
},
1510
+
"engines": {
1511
+
"node": ">=8"
1512
+
},
1513
+
"funding": {
1514
+
"url": "https://github.com/chalk/ansi-styles?sponsor=1"
1515
+
}
1516
+
},
1348
1517
"node_modules/aria-query": {
1349
1518
"version": "5.3.2",
1350
1519
"resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz",
···
1355
1524
"node": ">= 0.4"
1356
1525
}
1357
1526
},
1527
+
"node_modules/atomic-sleep": {
1528
+
"version": "1.0.0",
1529
+
"resolved": "https://registry.npmjs.org/atomic-sleep/-/atomic-sleep-1.0.0.tgz",
1530
+
"integrity": "sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==",
1531
+
"license": "MIT",
1532
+
"engines": {
1533
+
"node": ">=8.0.0"
1534
+
}
1535
+
},
1358
1536
"node_modules/await-lock": {
1359
1537
"version": "2.2.2",
1360
1538
"resolved": "https://registry.npmjs.org/await-lock/-/await-lock-2.2.2.tgz",
···
1371
1549
"node": ">= 0.4"
1372
1550
}
1373
1551
},
1552
+
"node_modules/balanced-match": {
1553
+
"version": "1.0.2",
1554
+
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
1555
+
"integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
1556
+
"license": "MIT"
1557
+
},
1558
+
"node_modules/base64-js": {
1559
+
"version": "1.5.1",
1560
+
"resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
1561
+
"integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
1562
+
"funding": [
1563
+
{
1564
+
"type": "github",
1565
+
"url": "https://github.com/sponsors/feross"
1566
+
},
1567
+
{
1568
+
"type": "patreon",
1569
+
"url": "https://www.patreon.com/feross"
1570
+
},
1571
+
{
1572
+
"type": "consulting",
1573
+
"url": "https://feross.org/support"
1574
+
}
1575
+
],
1576
+
"license": "MIT"
1577
+
},
1578
+
"node_modules/brace-expansion": {
1579
+
"version": "2.0.2",
1580
+
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
1581
+
"integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
1582
+
"license": "MIT",
1583
+
"dependencies": {
1584
+
"balanced-match": "^1.0.0"
1585
+
}
1586
+
},
1587
+
"node_modules/buffer": {
1588
+
"version": "6.0.3",
1589
+
"resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz",
1590
+
"integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==",
1591
+
"funding": [
1592
+
{
1593
+
"type": "github",
1594
+
"url": "https://github.com/sponsors/feross"
1595
+
},
1596
+
{
1597
+
"type": "patreon",
1598
+
"url": "https://www.patreon.com/feross"
1599
+
},
1600
+
{
1601
+
"type": "consulting",
1602
+
"url": "https://feross.org/support"
1603
+
}
1604
+
],
1605
+
"license": "MIT",
1606
+
"dependencies": {
1607
+
"base64-js": "^1.3.1",
1608
+
"ieee754": "^1.2.1"
1609
+
}
1610
+
},
1611
+
"node_modules/cbor-extract": {
1612
+
"version": "2.2.0",
1613
+
"resolved": "https://registry.npmjs.org/cbor-extract/-/cbor-extract-2.2.0.tgz",
1614
+
"integrity": "sha512-Ig1zM66BjLfTXpNgKpvBePq271BPOvu8MR0Jl080yG7Jsl+wAZunfrwiwA+9ruzm/WEdIV5QF/bjDZTqyAIVHA==",
1615
+
"hasInstallScript": true,
1616
+
"license": "MIT",
1617
+
"optional": true,
1618
+
"dependencies": {
1619
+
"node-gyp-build-optional-packages": "5.1.1"
1620
+
},
1621
+
"bin": {
1622
+
"download-cbor-prebuilds": "bin/download-prebuilds.js"
1623
+
},
1624
+
"optionalDependencies": {
1625
+
"@cbor-extract/cbor-extract-darwin-arm64": "2.2.0",
1626
+
"@cbor-extract/cbor-extract-darwin-x64": "2.2.0",
1627
+
"@cbor-extract/cbor-extract-linux-arm": "2.2.0",
1628
+
"@cbor-extract/cbor-extract-linux-arm64": "2.2.0",
1629
+
"@cbor-extract/cbor-extract-linux-x64": "2.2.0",
1630
+
"@cbor-extract/cbor-extract-win32-x64": "2.2.0"
1631
+
}
1632
+
},
1633
+
"node_modules/cbor-x": {
1634
+
"version": "1.6.0",
1635
+
"resolved": "https://registry.npmjs.org/cbor-x/-/cbor-x-1.6.0.tgz",
1636
+
"integrity": "sha512-0kareyRwHSkL6ws5VXHEf8uY1liitysCVJjlmhaLG+IXLqhSaOO+t63coaso7yjwEzWZzLy8fJo06gZDVQM9Qg==",
1637
+
"license": "MIT",
1638
+
"optionalDependencies": {
1639
+
"cbor-extract": "^2.2.0"
1640
+
}
1641
+
},
1642
+
"node_modules/cborg": {
1643
+
"version": "1.10.2",
1644
+
"resolved": "https://registry.npmjs.org/cborg/-/cborg-1.10.2.tgz",
1645
+
"integrity": "sha512-b3tFPA9pUr2zCUiCfRd2+wok2/LBSNUMKOuRRok+WlvvAgEt/PlbgPTsZUcwCOs53IJvLgTp0eotwtosE6njug==",
1646
+
"license": "Apache-2.0",
1647
+
"bin": {
1648
+
"cborg": "cli.js"
1649
+
}
1650
+
},
1651
+
"node_modules/chalk": {
1652
+
"version": "4.1.2",
1653
+
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
1654
+
"integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
1655
+
"license": "MIT",
1656
+
"dependencies": {
1657
+
"ansi-styles": "^4.1.0",
1658
+
"supports-color": "^7.1.0"
1659
+
},
1660
+
"engines": {
1661
+
"node": ">=10"
1662
+
},
1663
+
"funding": {
1664
+
"url": "https://github.com/chalk/chalk?sponsor=1"
1665
+
}
1666
+
},
1374
1667
"node_modules/chokidar": {
1375
1668
"version": "4.0.3",
1376
1669
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz",
···
1406
1699
"node": ">=6"
1407
1700
}
1408
1701
},
1702
+
"node_modules/code-block-writer": {
1703
+
"version": "13.0.3",
1704
+
"resolved": "https://registry.npmjs.org/code-block-writer/-/code-block-writer-13.0.3.tgz",
1705
+
"integrity": "sha512-Oofo0pq3IKnsFtuHqSF7TqBfr71aeyZDVJ0HpmqB7FBM2qEigL0iPONSCZSO9pE9dZTAxANe5XHG9Uy0YMv8cg==",
1706
+
"license": "MIT"
1707
+
},
1708
+
"node_modules/color-convert": {
1709
+
"version": "2.0.1",
1710
+
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
1711
+
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
1712
+
"license": "MIT",
1713
+
"dependencies": {
1714
+
"color-name": "~1.1.4"
1715
+
},
1716
+
"engines": {
1717
+
"node": ">=7.0.0"
1718
+
}
1719
+
},
1720
+
"node_modules/color-name": {
1721
+
"version": "1.1.4",
1722
+
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
1723
+
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
1724
+
"license": "MIT"
1725
+
},
1726
+
"node_modules/commander": {
1727
+
"version": "9.5.0",
1728
+
"resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz",
1729
+
"integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==",
1730
+
"license": "MIT",
1731
+
"engines": {
1732
+
"node": "^12.20.0 || >=14"
1733
+
}
1734
+
},
1409
1735
"node_modules/core-js": {
1410
1736
"version": "3.46.0",
1411
1737
"resolved": "https://registry.npmjs.org/core-js/-/core-js-3.46.0.tgz",
···
1525
1851
"@jridgewell/sourcemap-codec": "^1.4.15"
1526
1852
}
1527
1853
},
1854
+
"node_modules/event-target-shim": {
1855
+
"version": "5.0.1",
1856
+
"resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz",
1857
+
"integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==",
1858
+
"license": "MIT",
1859
+
"engines": {
1860
+
"node": ">=6"
1861
+
}
1862
+
},
1863
+
"node_modules/events": {
1864
+
"version": "3.3.0",
1865
+
"resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz",
1866
+
"integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==",
1867
+
"license": "MIT",
1868
+
"engines": {
1869
+
"node": ">=0.8.x"
1870
+
}
1871
+
},
1872
+
"node_modules/fast-redact": {
1873
+
"version": "3.5.0",
1874
+
"resolved": "https://registry.npmjs.org/fast-redact/-/fast-redact-3.5.0.tgz",
1875
+
"integrity": "sha512-dwsoQlS7h9hMeYUq1W++23NDcBLV4KqONnITDV9DjfS3q1SgDGVrBdvvTLUotWtPSD7asWDV9/CmsZPy8Hf70A==",
1876
+
"license": "MIT",
1877
+
"engines": {
1878
+
"node": ">=6"
1879
+
}
1880
+
},
1528
1881
"node_modules/fdir": {
1529
1882
"version": "6.5.0",
1530
1883
"resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz",
···
1567
1920
"resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz",
1568
1921
"integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==",
1569
1922
"license": "MIT"
1923
+
},
1924
+
"node_modules/has-flag": {
1925
+
"version": "4.0.0",
1926
+
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
1927
+
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
1928
+
"license": "MIT",
1929
+
"engines": {
1930
+
"node": ">=8"
1931
+
}
1932
+
},
1933
+
"node_modules/ieee754": {
1934
+
"version": "1.2.1",
1935
+
"resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
1936
+
"integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
1937
+
"funding": [
1938
+
{
1939
+
"type": "github",
1940
+
"url": "https://github.com/sponsors/feross"
1941
+
},
1942
+
{
1943
+
"type": "patreon",
1944
+
"url": "https://www.patreon.com/feross"
1945
+
},
1946
+
{
1947
+
"type": "consulting",
1948
+
"url": "https://feross.org/support"
1949
+
}
1950
+
],
1951
+
"license": "BSD-3-Clause"
1570
1952
},
1571
1953
"node_modules/is-reference": {
1572
1954
"version": "3.0.3",
···
1852
2234
"@jridgewell/sourcemap-codec": "^1.5.5"
1853
2235
}
1854
2236
},
2237
+
"node_modules/minimatch": {
2238
+
"version": "9.0.5",
2239
+
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
2240
+
"integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
2241
+
"license": "ISC",
2242
+
"dependencies": {
2243
+
"brace-expansion": "^2.0.1"
2244
+
},
2245
+
"engines": {
2246
+
"node": ">=16 || 14 >=14.17"
2247
+
},
2248
+
"funding": {
2249
+
"url": "https://github.com/sponsors/isaacs"
2250
+
}
2251
+
},
1855
2252
"node_modules/minipass": {
1856
2253
"version": "7.1.2",
1857
2254
"resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
···
1913
2310
"engines": {
1914
2311
"node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
1915
2312
}
2313
+
},
2314
+
"node_modules/node-gyp-build-optional-packages": {
2315
+
"version": "5.1.1",
2316
+
"resolved": "https://registry.npmjs.org/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.1.1.tgz",
2317
+
"integrity": "sha512-+P72GAjVAbTxjjwUmwjVrqrdZROD4nf8KgpBoDxqXXTiYZZt/ud60dE5yvCSr9lRO8e8yv6kgJIC0K0PfZFVQw==",
2318
+
"license": "MIT",
2319
+
"optional": true,
2320
+
"dependencies": {
2321
+
"detect-libc": "^2.0.1"
2322
+
},
2323
+
"bin": {
2324
+
"node-gyp-build-optional-packages": "bin.js",
2325
+
"node-gyp-build-optional-packages-optional": "optional.js",
2326
+
"node-gyp-build-optional-packages-test": "build-test.js"
2327
+
}
2328
+
},
2329
+
"node_modules/on-exit-leak-free": {
2330
+
"version": "2.1.2",
2331
+
"resolved": "https://registry.npmjs.org/on-exit-leak-free/-/on-exit-leak-free-2.1.2.tgz",
2332
+
"integrity": "sha512-0eJJY6hXLGf1udHwfNftBqH+g73EU4B504nZeKpz1sYRKafAghwxEJunB2O7rDZkL4PGfsMVnTXZ2EjibbqcsA==",
2333
+
"license": "MIT",
2334
+
"engines": {
2335
+
"node": ">=14.0.0"
2336
+
}
2337
+
},
2338
+
"node_modules/path-browserify": {
2339
+
"version": "1.0.1",
2340
+
"resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz",
2341
+
"integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==",
2342
+
"license": "MIT"
1916
2343
},
1917
2344
"node_modules/picocolors": {
1918
2345
"version": "1.1.1",
···
1932
2359
"funding": {
1933
2360
"url": "https://github.com/sponsors/jonschlinkert"
1934
2361
}
2362
+
},
2363
+
"node_modules/pino": {
2364
+
"version": "8.21.0",
2365
+
"resolved": "https://registry.npmjs.org/pino/-/pino-8.21.0.tgz",
2366
+
"integrity": "sha512-ip4qdzjkAyDDZklUaZkcRFb2iA118H9SgRh8yzTkSQK8HilsOJF7rSY8HoW5+I0M46AZgX/pxbprf2vvzQCE0Q==",
2367
+
"license": "MIT",
2368
+
"dependencies": {
2369
+
"atomic-sleep": "^1.0.0",
2370
+
"fast-redact": "^3.1.1",
2371
+
"on-exit-leak-free": "^2.1.0",
2372
+
"pino-abstract-transport": "^1.2.0",
2373
+
"pino-std-serializers": "^6.0.0",
2374
+
"process-warning": "^3.0.0",
2375
+
"quick-format-unescaped": "^4.0.3",
2376
+
"real-require": "^0.2.0",
2377
+
"safe-stable-stringify": "^2.3.1",
2378
+
"sonic-boom": "^3.7.0",
2379
+
"thread-stream": "^2.6.0"
2380
+
},
2381
+
"bin": {
2382
+
"pino": "bin.js"
2383
+
}
2384
+
},
2385
+
"node_modules/pino-abstract-transport": {
2386
+
"version": "1.2.0",
2387
+
"resolved": "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-1.2.0.tgz",
2388
+
"integrity": "sha512-Guhh8EZfPCfH+PMXAb6rKOjGQEoy0xlAIn+irODG5kgfYV+BQ0rGYYWTIel3P5mmyXqkYkPmdIkywsn6QKUR1Q==",
2389
+
"license": "MIT",
2390
+
"dependencies": {
2391
+
"readable-stream": "^4.0.0",
2392
+
"split2": "^4.0.0"
2393
+
}
2394
+
},
2395
+
"node_modules/pino-std-serializers": {
2396
+
"version": "6.2.2",
2397
+
"resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-6.2.2.tgz",
2398
+
"integrity": "sha512-cHjPPsE+vhj/tnhCy/wiMh3M3z3h/j15zHQX+S9GkTBgqJuTuJzYJ4gUyACLhDaJ7kk9ba9iRDmbH2tJU03OiA==",
2399
+
"license": "MIT"
1935
2400
},
1936
2401
"node_modules/postcss": {
1937
2402
"version": "8.5.6",
···
1961
2426
"node": "^10 || ^12 || >=14"
1962
2427
}
1963
2428
},
2429
+
"node_modules/prettier": {
2430
+
"version": "3.6.2",
2431
+
"resolved": "https://registry.npmjs.org/prettier/-/prettier-3.6.2.tgz",
2432
+
"integrity": "sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ==",
2433
+
"license": "MIT",
2434
+
"bin": {
2435
+
"prettier": "bin/prettier.cjs"
2436
+
},
2437
+
"engines": {
2438
+
"node": ">=14"
2439
+
},
2440
+
"funding": {
2441
+
"url": "https://github.com/prettier/prettier?sponsor=1"
2442
+
}
2443
+
},
2444
+
"node_modules/process": {
2445
+
"version": "0.11.10",
2446
+
"resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
2447
+
"integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==",
2448
+
"license": "MIT",
2449
+
"engines": {
2450
+
"node": ">= 0.6.0"
2451
+
}
2452
+
},
2453
+
"node_modules/process-warning": {
2454
+
"version": "3.0.0",
2455
+
"resolved": "https://registry.npmjs.org/process-warning/-/process-warning-3.0.0.tgz",
2456
+
"integrity": "sha512-mqn0kFRl0EoqhnL0GQ0veqFHyIN1yig9RHh/InzORTUiZHFRAur+aMtRkELNwGs9aNwKS6tg/An4NYBPGwvtzQ==",
2457
+
"license": "MIT"
2458
+
},
2459
+
"node_modules/quick-format-unescaped": {
2460
+
"version": "4.0.4",
2461
+
"resolved": "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz",
2462
+
"integrity": "sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==",
2463
+
"license": "MIT"
2464
+
},
2465
+
"node_modules/readable-stream": {
2466
+
"version": "4.7.0",
2467
+
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.7.0.tgz",
2468
+
"integrity": "sha512-oIGGmcpTLwPga8Bn6/Z75SVaH1z5dUut2ibSyAMVhmUggWpmDn2dapB0n7f8nwaSiRtepAsfJyfXIO5DCVAODg==",
2469
+
"license": "MIT",
2470
+
"dependencies": {
2471
+
"abort-controller": "^3.0.0",
2472
+
"buffer": "^6.0.3",
2473
+
"events": "^3.3.0",
2474
+
"process": "^0.11.10",
2475
+
"string_decoder": "^1.3.0"
2476
+
},
2477
+
"engines": {
2478
+
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
2479
+
}
2480
+
},
1964
2481
"node_modules/readdirp": {
1965
2482
"version": "4.1.2",
1966
2483
"resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz",
···
1973
2490
"funding": {
1974
2491
"type": "individual",
1975
2492
"url": "https://paulmillr.com/funding/"
2493
+
}
2494
+
},
2495
+
"node_modules/real-require": {
2496
+
"version": "0.2.0",
2497
+
"resolved": "https://registry.npmjs.org/real-require/-/real-require-0.2.0.tgz",
2498
+
"integrity": "sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==",
2499
+
"license": "MIT",
2500
+
"engines": {
2501
+
"node": ">= 12.13.0"
1976
2502
}
1977
2503
},
1978
2504
"node_modules/rollup": {
···
2029
2555
"node": ">=6"
2030
2556
}
2031
2557
},
2558
+
"node_modules/safe-buffer": {
2559
+
"version": "5.2.1",
2560
+
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
2561
+
"integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
2562
+
"funding": [
2563
+
{
2564
+
"type": "github",
2565
+
"url": "https://github.com/sponsors/feross"
2566
+
},
2567
+
{
2568
+
"type": "patreon",
2569
+
"url": "https://www.patreon.com/feross"
2570
+
},
2571
+
{
2572
+
"type": "consulting",
2573
+
"url": "https://feross.org/support"
2574
+
}
2575
+
],
2576
+
"license": "MIT"
2577
+
},
2578
+
"node_modules/safe-stable-stringify": {
2579
+
"version": "2.5.0",
2580
+
"resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.5.0.tgz",
2581
+
"integrity": "sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==",
2582
+
"license": "MIT",
2583
+
"engines": {
2584
+
"node": ">=10"
2585
+
}
2586
+
},
2587
+
"node_modules/sonic-boom": {
2588
+
"version": "3.8.1",
2589
+
"resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-3.8.1.tgz",
2590
+
"integrity": "sha512-y4Z8LCDBuum+PBP3lSV7RHrXscqksve/bi0as7mhwVnBW+/wUqKT/2Kb7um8yqcFy0duYbbPxzt89Zy2nOCaxg==",
2591
+
"license": "MIT",
2592
+
"dependencies": {
2593
+
"atomic-sleep": "^1.0.0"
2594
+
}
2595
+
},
2032
2596
"node_modules/source-map-js": {
2033
2597
"version": "1.2.1",
2034
2598
"resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz",
···
2038
2602
"node": ">=0.10.0"
2039
2603
}
2040
2604
},
2605
+
"node_modules/split2": {
2606
+
"version": "4.2.0",
2607
+
"resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz",
2608
+
"integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==",
2609
+
"license": "ISC",
2610
+
"engines": {
2611
+
"node": ">= 10.x"
2612
+
}
2613
+
},
2614
+
"node_modules/string_decoder": {
2615
+
"version": "1.3.0",
2616
+
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
2617
+
"integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
2618
+
"license": "MIT",
2619
+
"dependencies": {
2620
+
"safe-buffer": "~5.2.0"
2621
+
}
2622
+
},
2623
+
"node_modules/supports-color": {
2624
+
"version": "7.2.0",
2625
+
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
2626
+
"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
2627
+
"license": "MIT",
2628
+
"dependencies": {
2629
+
"has-flag": "^4.0.0"
2630
+
},
2631
+
"engines": {
2632
+
"node": ">=8"
2633
+
}
2634
+
},
2041
2635
"node_modules/svelte": {
2042
2636
"version": "5.41.0",
2043
2637
"resolved": "https://registry.npmjs.org/svelte/-/svelte-5.41.0.tgz",
···
2124
2718
"node": ">=18"
2125
2719
}
2126
2720
},
2721
+
"node_modules/thread-stream": {
2722
+
"version": "2.7.0",
2723
+
"resolved": "https://registry.npmjs.org/thread-stream/-/thread-stream-2.7.0.tgz",
2724
+
"integrity": "sha512-qQiRWsU/wvNolI6tbbCKd9iKaTnCXsTwVxhhKM6nctPdujTyztjlbUkUTUymidWcMnZ5pWR0ej4a0tjsW021vw==",
2725
+
"license": "MIT",
2726
+
"dependencies": {
2727
+
"real-require": "^0.2.0"
2728
+
}
2729
+
},
2127
2730
"node_modules/tinyglobby": {
2128
2731
"version": "0.2.15",
2129
2732
"resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz",
···
2147
2750
"license": "MIT",
2148
2751
"bin": {
2149
2752
"tlds": "bin.js"
2753
+
}
2754
+
},
2755
+
"node_modules/ts-morph": {
2756
+
"version": "24.0.0",
2757
+
"resolved": "https://registry.npmjs.org/ts-morph/-/ts-morph-24.0.0.tgz",
2758
+
"integrity": "sha512-2OAOg/Ob5yx9Et7ZX4CvTCc0UFoZHwLEJ+dpDPSUi5TgwwlTlX47w+iFRrEwzUZwYACjq83cgjS/Da50Ga37uw==",
2759
+
"license": "MIT",
2760
+
"dependencies": {
2761
+
"@ts-morph/common": "~0.25.0",
2762
+
"code-block-writer": "^13.0.3"
2150
2763
}
2151
2764
},
2152
2765
"node_modules/typescript": {
···
2283
2896
"engines": {
2284
2897
"node": ">=18"
2285
2898
}
2899
+
},
2900
+
"node_modules/yesno": {
2901
+
"version": "0.4.0",
2902
+
"resolved": "https://registry.npmjs.org/yesno/-/yesno-0.4.0.tgz",
2903
+
"integrity": "sha512-tdBxmHvbXPBKYIg81bMCB7bVeDmHkRzk5rVJyYYXurwKkHq/MCd8rz4HSJUP7hW0H2NlXiq8IFiWvYKEHhlotA==",
2904
+
"license": "BSD"
2286
2905
},
2287
2906
"node_modules/zimmerframe": {
2288
2907
"version": "1.1.4",
+2
package.json
+2
package.json
+38
-8
src/pages/Comment.svelte
+38
-8
src/pages/Comment.svelte
···
1
-
<script>
1
+
<script lang="ts">
2
+
import { Agent } from "@atproto/api";
2
3
import Button from "../components/Button.svelte";
3
4
import Link from "../components/Link.svelte";
4
5
import { Session } from "../states/session.svelte";
6
+
import { TID } from "@atproto/common-web";
7
+
8
+
let comment = $state("");
9
+
10
+
async function submitForm(e: SubmitEvent) {
11
+
e.preventDefault();
12
+
13
+
if (Session.value === undefined) {
14
+
console.error("Session.value is undefined");
15
+
return;
16
+
}
17
+
18
+
console.log(comment);
19
+
20
+
let agent = new Agent(Session.value);
21
+
await agent.com.atproto.repo.putRecord({
22
+
repo: agent.assertDid,
23
+
collection: "me.bigaston.comments",
24
+
rkey: TID.nextStr(),
25
+
record: {
26
+
text: comment,
27
+
},
28
+
});
29
+
}
5
30
</script>
6
31
7
32
<div class="flex justify-center">
···
12
37
>{Session.profile.displayName}</span
13
38
>:</label
14
39
>
15
-
<textarea
16
-
class="mb-2 rounded-lg border-[0.5px] border-neutral-300 bg-neutral-50 p-2 shadow-xs w-full block"
17
-
></textarea>
18
-
<button
19
-
class="mb-2 ml-auto rounded-lg border-[0.5px] border-blue-500 bg-blue-400 hover:bg-blue-500 p-2 pl-4 pr-4 shadow-xs transition-all block hover:cursor-pointer"
20
-
>Post</button
21
-
>
40
+
41
+
<form onsubmit={submitForm}>
42
+
<textarea
43
+
required
44
+
bind:value={comment}
45
+
class="mb-2 rounded-lg border-[0.5px] border-neutral-300 bg-neutral-50 p-2 shadow-xs w-full block"
46
+
></textarea>
47
+
<button
48
+
class="mb-2 ml-auto rounded-lg border-[0.5px] border-blue-500 bg-blue-400 hover:bg-blue-500 p-2 pl-4 pr-4 shadow-xs transition-all block hover:cursor-pointer"
49
+
>Post</button
50
+
>
51
+
</form>
22
52
{:else}
23
53
<p class="text-neutral-600 text-center">
24
54
To add a comment, please <Link