+7
LICENSE
+7
LICENSE
···
1
+
Copyright 2025 aylac
2
+
3
+
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
4
+
5
+
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
6
+
7
+
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+5
-5
flake.lock
+5
-5
flake.lock
···
2
2
"nodes": {
3
3
"nixpkgs": {
4
4
"locked": {
5
-
"lastModified": 1757068644,
6
-
"narHash": "sha256-NOrUtIhTkIIumj1E/Rsv1J37Yi3xGStISEo8tZm3KW4=",
7
-
"owner": "NixOS",
5
+
"lastModified": 1757347588,
6
+
"narHash": "sha256-tLdkkC6XnsY9EOZW9TlpesTclELy8W7lL2ClL+nma8o=",
7
+
"owner": "nixos",
8
8
"repo": "nixpkgs",
9
-
"rev": "8eb28adfa3dc4de28e792e3bf49fcf9007ca8ac9",
9
+
"rev": "b599843bad24621dcaa5ab60dac98f9b0eb1cabe",
10
10
"type": "github"
11
11
},
12
12
"original": {
13
-
"owner": "NixOS",
13
+
"owner": "nixos",
14
14
"ref": "nixos-unstable",
15
15
"repo": "nixpkgs",
16
16
"type": "github"
+19
flake.nix
+19
flake.nix
···
1
+
{
2
+
inputs = {
3
+
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
4
+
};
5
+
6
+
outputs = {
7
+
self,
8
+
nixpkgs,
9
+
}: let
10
+
pkgs = nixpkgs.legacyPackages."x86_64-linux";
11
+
in {
12
+
packages."x86_64-linux".default = pkgs.buildNpmPackage {
13
+
pname = "atproto-basic-notifications";
14
+
version = "0.1.0";
15
+
src = ./.;
16
+
npmDepsHash = "sha256-gGiNDtxgof7L5y3bH7VWukezEMZbzYkSDdovUwaKQGA=";
17
+
};
18
+
};
19
+
}
+185
package-lock.json
+185
package-lock.json
···
1
+
{
2
+
"name": "atproto-basic-notifications",
3
+
"lockfileVersion": 3,
4
+
"requires": true,
5
+
"packages": {
6
+
"": {
7
+
"dependencies": {
8
+
"@atcute/bluesky": "^3.2.2",
9
+
"@atcute/client": "^4.0.3",
10
+
"@atcute/jetstream": "^1.1.0",
11
+
"@atcute/lexicons": "^1.1.1"
12
+
},
13
+
"bin": {
14
+
"atproto-basic-notifications": "dist/index.js"
15
+
},
16
+
"devDependencies": {
17
+
"@types/node": "^24.3.1",
18
+
"typescript": "^5.5.3"
19
+
}
20
+
},
21
+
"node_modules/@atcute/atproto": {
22
+
"version": "3.1.3",
23
+
"resolved": "https://registry.npmjs.org/@atcute/atproto/-/atproto-3.1.3.tgz",
24
+
"integrity": "sha512-+5u0l+8E7h6wZO7MM1HLXIPoUEbdwRtr28ZRTgsURp+Md9gkoBj9e5iMx/xM8F2Exfyb65J5RchW/WlF2mw/RQ==",
25
+
"license": "0BSD",
26
+
"dependencies": {
27
+
"@atcute/lexicons": "^1.1.1"
28
+
}
29
+
},
30
+
"node_modules/@atcute/bluesky": {
31
+
"version": "3.2.2",
32
+
"resolved": "https://registry.npmjs.org/@atcute/bluesky/-/bluesky-3.2.2.tgz",
33
+
"integrity": "sha512-L8RrMNeRLGvSHMq2KDIAGXrpuNGA87YOXpXHY1yhmovVCjQ5n55FrR6JoQaxhprdXdKKQiefxNwQQQybDrfgFQ==",
34
+
"license": "0BSD",
35
+
"dependencies": {
36
+
"@atcute/atproto": "^3.1.3",
37
+
"@atcute/lexicons": "^1.1.1"
38
+
}
39
+
},
40
+
"node_modules/@atcute/client": {
41
+
"version": "4.0.3",
42
+
"resolved": "https://registry.npmjs.org/@atcute/client/-/client-4.0.3.tgz",
43
+
"integrity": "sha512-RIOZWFVLca/HiPAAUDqQPOdOreCxTbL5cb+WUf5yqQOKIu5yEAP3eksinmlLmgIrlr5qVOE7brazUUzaskFCfw==",
44
+
"license": "MIT",
45
+
"dependencies": {
46
+
"@atcute/identity": "^1.0.2",
47
+
"@atcute/lexicons": "^1.0.3"
48
+
}
49
+
},
50
+
"node_modules/@atcute/identity": {
51
+
"version": "1.1.0",
52
+
"resolved": "https://registry.npmjs.org/@atcute/identity/-/identity-1.1.0.tgz",
53
+
"integrity": "sha512-6vRvRqJatDB+JUQsb+UswYmtBGQnSZcqC3a2y6H5DB/v5KcIh+6nFFtc17G0+3W9rxdk7k9M4KkgkdKf/YDNoQ==",
54
+
"license": "0BSD",
55
+
"dependencies": {
56
+
"@atcute/lexicons": "^1.1.1",
57
+
"@badrap/valita": "^0.4.5"
58
+
}
59
+
},
60
+
"node_modules/@atcute/jetstream": {
61
+
"version": "1.1.0",
62
+
"resolved": "https://registry.npmjs.org/@atcute/jetstream/-/jetstream-1.1.0.tgz",
63
+
"integrity": "sha512-XrSeEHLt2FnVNm3KBDQYY7+rWM0IQKBjLQUjdoCj4mnkMCdm3/dC09qs5ubQQGrHieUWeKHHEko/D6EB891hPg==",
64
+
"license": "0BSD",
65
+
"dependencies": {
66
+
"@atcute/lexicons": "^1.1.1",
67
+
"@badrap/valita": "^0.4.6",
68
+
"@mary-ext/event-iterator": "^1.0.0",
69
+
"@mary-ext/simple-event-emitter": "^1.0.0",
70
+
"partysocket": "^1.1.5",
71
+
"type-fest": "^4.41.0",
72
+
"yocto-queue": "^1.2.1"
73
+
}
74
+
},
75
+
"node_modules/@atcute/lexicons": {
76
+
"version": "1.1.1",
77
+
"resolved": "https://registry.npmjs.org/@atcute/lexicons/-/lexicons-1.1.1.tgz",
78
+
"integrity": "sha512-k6qy5p3j9fJJ6ekaMPfEfp3ni4TW/XNuH9ZmsuwC0fi0tOjp+Fa8ZQakHwnqOzFt/cVBfGcmYE/lKNAbeTjgUg==",
79
+
"license": "0BSD",
80
+
"dependencies": {
81
+
"esm-env": "^1.2.2"
82
+
}
83
+
},
84
+
"node_modules/@badrap/valita": {
85
+
"version": "0.4.6",
86
+
"resolved": "https://registry.npmjs.org/@badrap/valita/-/valita-0.4.6.tgz",
87
+
"integrity": "sha512-4kdqcjyxo/8RQ8ayjms47HCWZIF5981oE5nIenbfThKDxWXtEHKipAOWlflpPJzZx9y/JWYQkp18Awr7VuepFg==",
88
+
"license": "MIT",
89
+
"engines": {
90
+
"node": ">= 18"
91
+
}
92
+
},
93
+
"node_modules/@mary-ext/event-iterator": {
94
+
"version": "1.0.0",
95
+
"resolved": "https://registry.npmjs.org/@mary-ext/event-iterator/-/event-iterator-1.0.0.tgz",
96
+
"integrity": "sha512-l6gCPsWJ8aRCe/s7/oCmero70kDHgIK5m4uJvYgwEYTqVxoBOIXbKr5tnkLqUHEg6mNduB4IWvms3h70Hp9ADQ==",
97
+
"license": "BSD-3-Clause",
98
+
"dependencies": {
99
+
"yocto-queue": "^1.2.1"
100
+
}
101
+
},
102
+
"node_modules/@mary-ext/simple-event-emitter": {
103
+
"version": "1.0.0",
104
+
"resolved": "https://registry.npmjs.org/@mary-ext/simple-event-emitter/-/simple-event-emitter-1.0.0.tgz",
105
+
"integrity": "sha512-meA/zJZKIN1RVBNEYIbjufkUrW7/tRjHH60FjolpG1ixJKo76TB208qefQLNdOVDA7uIG0CGEDuhmMirtHKLAg==",
106
+
"license": "BSD-3-Clause"
107
+
},
108
+
"node_modules/@types/node": {
109
+
"version": "24.3.1",
110
+
"resolved": "https://registry.npmjs.org/@types/node/-/node-24.3.1.tgz",
111
+
"integrity": "sha512-3vXmQDXy+woz+gnrTvuvNrPzekOi+Ds0ReMxw0LzBiK3a+1k0kQn9f2NWk+lgD4rJehFUmYy2gMhJ2ZI+7YP9g==",
112
+
"dev": true,
113
+
"license": "MIT",
114
+
"dependencies": {
115
+
"undici-types": "~7.10.0"
116
+
}
117
+
},
118
+
"node_modules/esm-env": {
119
+
"version": "1.2.2",
120
+
"resolved": "https://registry.npmjs.org/esm-env/-/esm-env-1.2.2.tgz",
121
+
"integrity": "sha512-Epxrv+Nr/CaL4ZcFGPJIYLWFom+YeV1DqMLHJoEd9SYRxNbaFruBwfEX/kkHUJf55j2+TUbmDcmuilbP1TmXHA==",
122
+
"license": "MIT"
123
+
},
124
+
"node_modules/event-target-polyfill": {
125
+
"version": "0.0.4",
126
+
"resolved": "https://registry.npmjs.org/event-target-polyfill/-/event-target-polyfill-0.0.4.tgz",
127
+
"integrity": "sha512-Gs6RLjzlLRdT8X9ZipJdIZI/Y6/HhRLyq9RdDlCsnpxr/+Nn6bU2EFGuC94GjxqhM+Nmij2Vcq98yoHrU8uNFQ==",
128
+
"license": "MIT"
129
+
},
130
+
"node_modules/partysocket": {
131
+
"version": "1.1.5",
132
+
"resolved": "https://registry.npmjs.org/partysocket/-/partysocket-1.1.5.tgz",
133
+
"integrity": "sha512-8uw9foq9bij4sKLCtTSHvyqMrMTQ5FJjrHc7BjoM2s95Vu7xYCN63ABpI7OZHC7ZMP5xaom/A+SsoFPXmTV6ZQ==",
134
+
"license": "MIT",
135
+
"dependencies": {
136
+
"event-target-polyfill": "^0.0.4"
137
+
}
138
+
},
139
+
"node_modules/type-fest": {
140
+
"version": "4.41.0",
141
+
"resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.41.0.tgz",
142
+
"integrity": "sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==",
143
+
"license": "(MIT OR CC0-1.0)",
144
+
"engines": {
145
+
"node": ">=16"
146
+
},
147
+
"funding": {
148
+
"url": "https://github.com/sponsors/sindresorhus"
149
+
}
150
+
},
151
+
"node_modules/typescript": {
152
+
"version": "5.9.2",
153
+
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.2.tgz",
154
+
"integrity": "sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==",
155
+
"dev": true,
156
+
"license": "Apache-2.0",
157
+
"bin": {
158
+
"tsc": "bin/tsc",
159
+
"tsserver": "bin/tsserver"
160
+
},
161
+
"engines": {
162
+
"node": ">=14.17"
163
+
}
164
+
},
165
+
"node_modules/undici-types": {
166
+
"version": "7.10.0",
167
+
"resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.10.0.tgz",
168
+
"integrity": "sha512-t5Fy/nfn+14LuOc2KNYg75vZqClpAiqscVvMygNnlsHBFpSXdJaYtXMcdNLpl/Qvc3P2cB3s6lOV51nqsFq4ag==",
169
+
"dev": true,
170
+
"license": "MIT"
171
+
},
172
+
"node_modules/yocto-queue": {
173
+
"version": "1.2.1",
174
+
"resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.2.1.tgz",
175
+
"integrity": "sha512-AyeEbWOu/TAXdxlV9wmGcR0+yh2j3vYPGOECcIj2S7MkrLyC7ne+oye2BKTItt0ii2PHk4cDy+95+LshzbXnGg==",
176
+
"license": "MIT",
177
+
"engines": {
178
+
"node": ">=12.20"
179
+
},
180
+
"funding": {
181
+
"url": "https://github.com/sponsors/sindresorhus"
182
+
}
183
+
}
184
+
}
185
+
}
+13
-5
package.json
+13
-5
package.json
···
1
1
{
2
+
"name": "atproto-basic-notifications",
3
+
"version": "0.1.0",
4
+
"description": "a basic notification system for atproto stuff",
5
+
"author": {
6
+
"name": "aylac",
7
+
"url": "https://aylac.top"
8
+
},
9
+
"license": "MIT",
2
10
"scripts": {
3
-
"build": "tsc",
4
-
"prestart": "npm run build",
11
+
"build": "npm install && tsc",
5
12
"start": "node dist/index.js",
6
-
"dev": "tsc --watch",
7
-
"clean": "rm -rf dist *.tsbuildinfo",
8
-
"lint": "echo 'No linting configured yet.'"
13
+
"dev": "tsc --watch"
14
+
},
15
+
"bin": {
16
+
"atproto-basic-notifications": "dist/index.js"
9
17
},
10
18
"devDependencies": {
11
19
"@types/node": "^24.3.1",
-150
pnpm-lock.yaml
-150
pnpm-lock.yaml
···
1
-
lockfileVersion: '9.0'
2
-
3
-
settings:
4
-
autoInstallPeers: true
5
-
excludeLinksFromLockfile: false
6
-
7
-
importers:
8
-
9
-
.:
10
-
dependencies:
11
-
'@atcute/bluesky':
12
-
specifier: ^3.2.2
13
-
version: 3.2.2
14
-
'@atcute/client':
15
-
specifier: ^4.0.3
16
-
version: 4.0.3
17
-
'@atcute/jetstream':
18
-
specifier: ^1.1.0
19
-
version: 1.1.0
20
-
'@atcute/lexicons':
21
-
specifier: ^1.1.1
22
-
version: 1.1.1
23
-
devDependencies:
24
-
'@types/node':
25
-
specifier: ^24.3.1
26
-
version: 24.3.1
27
-
typescript:
28
-
specifier: ^5.5.3
29
-
version: 5.9.2
30
-
31
-
packages:
32
-
33
-
'@atcute/atproto@3.1.3':
34
-
resolution: {integrity: sha512-+5u0l+8E7h6wZO7MM1HLXIPoUEbdwRtr28ZRTgsURp+Md9gkoBj9e5iMx/xM8F2Exfyb65J5RchW/WlF2mw/RQ==}
35
-
36
-
'@atcute/bluesky@3.2.2':
37
-
resolution: {integrity: sha512-L8RrMNeRLGvSHMq2KDIAGXrpuNGA87YOXpXHY1yhmovVCjQ5n55FrR6JoQaxhprdXdKKQiefxNwQQQybDrfgFQ==}
38
-
39
-
'@atcute/client@4.0.3':
40
-
resolution: {integrity: sha512-RIOZWFVLca/HiPAAUDqQPOdOreCxTbL5cb+WUf5yqQOKIu5yEAP3eksinmlLmgIrlr5qVOE7brazUUzaskFCfw==}
41
-
42
-
'@atcute/identity@1.1.0':
43
-
resolution: {integrity: sha512-6vRvRqJatDB+JUQsb+UswYmtBGQnSZcqC3a2y6H5DB/v5KcIh+6nFFtc17G0+3W9rxdk7k9M4KkgkdKf/YDNoQ==}
44
-
45
-
'@atcute/jetstream@1.1.0':
46
-
resolution: {integrity: sha512-XrSeEHLt2FnVNm3KBDQYY7+rWM0IQKBjLQUjdoCj4mnkMCdm3/dC09qs5ubQQGrHieUWeKHHEko/D6EB891hPg==}
47
-
48
-
'@atcute/lexicons@1.1.1':
49
-
resolution: {integrity: sha512-k6qy5p3j9fJJ6ekaMPfEfp3ni4TW/XNuH9ZmsuwC0fi0tOjp+Fa8ZQakHwnqOzFt/cVBfGcmYE/lKNAbeTjgUg==}
50
-
51
-
'@badrap/valita@0.4.6':
52
-
resolution: {integrity: sha512-4kdqcjyxo/8RQ8ayjms47HCWZIF5981oE5nIenbfThKDxWXtEHKipAOWlflpPJzZx9y/JWYQkp18Awr7VuepFg==}
53
-
engines: {node: '>= 18'}
54
-
55
-
'@mary-ext/event-iterator@1.0.0':
56
-
resolution: {integrity: sha512-l6gCPsWJ8aRCe/s7/oCmero70kDHgIK5m4uJvYgwEYTqVxoBOIXbKr5tnkLqUHEg6mNduB4IWvms3h70Hp9ADQ==}
57
-
58
-
'@mary-ext/simple-event-emitter@1.0.0':
59
-
resolution: {integrity: sha512-meA/zJZKIN1RVBNEYIbjufkUrW7/tRjHH60FjolpG1ixJKo76TB208qefQLNdOVDA7uIG0CGEDuhmMirtHKLAg==}
60
-
61
-
'@types/node@24.3.1':
62
-
resolution: {integrity: sha512-3vXmQDXy+woz+gnrTvuvNrPzekOi+Ds0ReMxw0LzBiK3a+1k0kQn9f2NWk+lgD4rJehFUmYy2gMhJ2ZI+7YP9g==}
63
-
64
-
esm-env@1.2.2:
65
-
resolution: {integrity: sha512-Epxrv+Nr/CaL4ZcFGPJIYLWFom+YeV1DqMLHJoEd9SYRxNbaFruBwfEX/kkHUJf55j2+TUbmDcmuilbP1TmXHA==}
66
-
67
-
event-target-polyfill@0.0.4:
68
-
resolution: {integrity: sha512-Gs6RLjzlLRdT8X9ZipJdIZI/Y6/HhRLyq9RdDlCsnpxr/+Nn6bU2EFGuC94GjxqhM+Nmij2Vcq98yoHrU8uNFQ==}
69
-
70
-
partysocket@1.1.5:
71
-
resolution: {integrity: sha512-8uw9foq9bij4sKLCtTSHvyqMrMTQ5FJjrHc7BjoM2s95Vu7xYCN63ABpI7OZHC7ZMP5xaom/A+SsoFPXmTV6ZQ==}
72
-
73
-
type-fest@4.41.0:
74
-
resolution: {integrity: sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==}
75
-
engines: {node: '>=16'}
76
-
77
-
typescript@5.9.2:
78
-
resolution: {integrity: sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==}
79
-
engines: {node: '>=14.17'}
80
-
hasBin: true
81
-
82
-
undici-types@7.10.0:
83
-
resolution: {integrity: sha512-t5Fy/nfn+14LuOc2KNYg75vZqClpAiqscVvMygNnlsHBFpSXdJaYtXMcdNLpl/Qvc3P2cB3s6lOV51nqsFq4ag==}
84
-
85
-
yocto-queue@1.2.1:
86
-
resolution: {integrity: sha512-AyeEbWOu/TAXdxlV9wmGcR0+yh2j3vYPGOECcIj2S7MkrLyC7ne+oye2BKTItt0ii2PHk4cDy+95+LshzbXnGg==}
87
-
engines: {node: '>=12.20'}
88
-
89
-
snapshots:
90
-
91
-
'@atcute/atproto@3.1.3':
92
-
dependencies:
93
-
'@atcute/lexicons': 1.1.1
94
-
95
-
'@atcute/bluesky@3.2.2':
96
-
dependencies:
97
-
'@atcute/atproto': 3.1.3
98
-
'@atcute/lexicons': 1.1.1
99
-
100
-
'@atcute/client@4.0.3':
101
-
dependencies:
102
-
'@atcute/identity': 1.1.0
103
-
'@atcute/lexicons': 1.1.1
104
-
105
-
'@atcute/identity@1.1.0':
106
-
dependencies:
107
-
'@atcute/lexicons': 1.1.1
108
-
'@badrap/valita': 0.4.6
109
-
110
-
'@atcute/jetstream@1.1.0':
111
-
dependencies:
112
-
'@atcute/lexicons': 1.1.1
113
-
'@badrap/valita': 0.4.6
114
-
'@mary-ext/event-iterator': 1.0.0
115
-
'@mary-ext/simple-event-emitter': 1.0.0
116
-
partysocket: 1.1.5
117
-
type-fest: 4.41.0
118
-
yocto-queue: 1.2.1
119
-
120
-
'@atcute/lexicons@1.1.1':
121
-
dependencies:
122
-
esm-env: 1.2.2
123
-
124
-
'@badrap/valita@0.4.6': {}
125
-
126
-
'@mary-ext/event-iterator@1.0.0':
127
-
dependencies:
128
-
yocto-queue: 1.2.1
129
-
130
-
'@mary-ext/simple-event-emitter@1.0.0': {}
131
-
132
-
'@types/node@24.3.1':
133
-
dependencies:
134
-
undici-types: 7.10.0
135
-
136
-
esm-env@1.2.2: {}
137
-
138
-
event-target-polyfill@0.0.4: {}
139
-
140
-
partysocket@1.1.5:
141
-
dependencies:
142
-
event-target-polyfill: 0.0.4
143
-
144
-
type-fest@4.41.0: {}
145
-
146
-
typescript@5.9.2: {}
147
-
148
-
undici-types@7.10.0: {}
149
-
150
-
yocto-queue@1.2.1: {}