kick-sim-linux-x64 0.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Ege Kocabas
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,164 @@
1
+ # kick-sim
2
+
3
+ [![CI](https://github.com/egekocabas/kick-sim/actions/workflows/ci.yml/badge.svg)](https://github.com/egekocabas/kick-sim/actions/workflows/ci.yml)
4
+ [![Release](https://img.shields.io/github/v/release/egekocabas/kick-sim?include_prereleases)](https://github.com/egekocabas/kick-sim/releases)
5
+ [![License](https://img.shields.io/github/license/egekocabas/kick-sim)](LICENSE)
6
+
7
+ An unofficial, local-only simulator for building and testing [Kick](https://kick.com/) webhook integrations without OAuth, live subscriptions, or requests to Kick.
8
+
9
+ > [!IMPORTANT]
10
+ > Kick Sim is a pre-1.0 development tool. It is not affiliated with, endorsed by, or operated by Kick. Simulator signatures must never be trusted in production.
11
+
12
+ ![Kick Sim Studio dashboard](docs/assets/studio-dashboard.jpg)
13
+
14
+ ## What it does
15
+
16
+ - Generates schema-validated Kick webhook payloads from reviewed, versioned contracts.
17
+ - Signs the exact request body with a workspace-local RSA key.
18
+ - Delivers only to loopback HTTP(S) receivers and refuses redirects.
19
+ - Runs reusable single-event scenarios, timelines, and assertion suites.
20
+ - Retains bounded local delivery history for inspection and deterministic replay.
21
+ - Provides a CLI for scripts and CI plus an embedded browser-based Studio.
22
+ - Never contacts Kick or exposes the simulator private key to the browser.
23
+
24
+ Bundled contracts currently cover `channel.followed`, `chat.message.sent`, `livestream.status.updated`, and `moderation.banned` version 1 events.
25
+
26
+ ## Install
27
+
28
+ Install the same embedded-Studio binary published on the [Releases page](https://github.com/egekocabas/kick-sim/releases) through a package manager:
29
+
30
+ ```sh
31
+ # npm, on macOS or Linux (amd64/arm64) and Windows (amd64)
32
+ npm install --global kick-sim
33
+
34
+ # Homebrew, on macOS or Linux (amd64/arm64)
35
+ brew install --cask egekocabas/tap/kick-sim
36
+
37
+ # Scoop, on Windows (amd64)
38
+ scoop bucket add egekocabas https://github.com/egekocabas/scoop-bucket
39
+ scoop install kick-sim
40
+ ```
41
+
42
+ The npm package requires Node.js 22.14 or newer to launch the native executable. It has no install scripts and downloads only the package matching the host operating system and architecture. You can also run it without a global install using `npx kick-sim`.
43
+
44
+ Prebuilt archives remain available for macOS and Linux (`amd64`, `arm64`) and Windows (`amd64`). Verify an archive against `checksums.txt`, extract it, and place `kick-sim` on your `PATH`.
45
+
46
+ Plain tags such as `v0.5.0` are published on the default package-manager channels even before 1.0. Release candidates use npm's `next` channel (`npx kick-sim@next`) and are not published to Homebrew or Scoop.
47
+
48
+ To build the embedded Studio from source, install:
49
+
50
+ - Go 1.26.6
51
+ - Node.js 24.19.0
52
+ - npm 11.17.0
53
+
54
+ ```sh
55
+ git clone https://github.com/egekocabas/kick-sim.git
56
+ cd kick-sim
57
+ npm ci --prefix web
58
+ make build
59
+ ./dist/kick-sim --help
60
+ ```
61
+
62
+ Use `./dist/kick-sim` in place of `kick-sim` in the examples below when running the source-built binary directly.
63
+
64
+ ## Quick start
65
+
66
+ Create a local workspace in the current project:
67
+
68
+ ```sh
69
+ kick-sim init
70
+ ```
71
+
72
+ The generated configuration targets `http://127.0.0.1:3000/webhooks/kick`. When working from this repository, start the bundled verifying receiver in one terminal:
73
+
74
+ ```sh
75
+ go run ./examples/receiver
76
+ ```
77
+
78
+ Send it a signed built-in scenario from another terminal:
79
+
80
+ ```sh
81
+ kick-sim scenario run builtin:chat/basic-message \
82
+ --content "Hello from Kick Sim"
83
+ ```
84
+
85
+ Then open the local Studio:
86
+
87
+ ```sh
88
+ kick-sim studio
89
+ ```
90
+
91
+ Studio listens on `127.0.0.1:4321`, opens your browser, and uses the same filesystem workspace and delivery history as the CLI.
92
+
93
+ ## Common workflows
94
+
95
+ ```sh
96
+ # Inspect the supported contracts and their upstream provenance.
97
+ kick-sim compatibility
98
+ kick-sim event list
99
+
100
+ # Generate JSON without delivering it.
101
+ kick-sim event generate chat.message.sent --content "Preview me"
102
+
103
+ # Validate authored definitions before running them.
104
+ kick-sim scenario validate builtin:workflows/complete-stream-session
105
+ kick-sim suite validate builtin:security
106
+
107
+ # Run a deterministic timeline or assertion suite.
108
+ kick-sim scenario run builtin:workflows/complete-stream-session
109
+ kick-sim suite run builtin:delivery
110
+
111
+ # Use stable machine-readable output in automation.
112
+ kick-sim --output json scenario list
113
+ ```
114
+
115
+ Run `kick-sim <command> --help` for the complete command surface.
116
+
117
+ ## Safety model
118
+
119
+ Kick Sim is deliberately constrained to local development:
120
+
121
+ - Studio accepts only explicit loopback listener addresses and exact host/origin checks.
122
+ - Webhook destinations must resolve to loopback addresses; redirects and URL credentials are rejected.
123
+ - Each workspace owns a simulator-only key pair. The private key remains on disk with restrictive permissions where supported.
124
+ - Mutating Studio API requests require a random per-process control token.
125
+ - Runtime history is bounded and stored separately from authored scenarios and suites.
126
+
127
+ See [SECURITY.md](SECURITY.md) for trust boundaries, data handling, and vulnerability reporting.
128
+
129
+ ## Repository layout
130
+
131
+ ```text
132
+ cmd/kick-sim/ CLI entrypoint
133
+ internal/app/ event generation, delivery, replay, and history orchestration
134
+ internal/events/ bundled contract registry, payload composition, and validation
135
+ internal/scenario/ authored scenarios and timeline definitions
136
+ internal/suite/ assertion suites
137
+ internal/studio/ loopback-only HTTP API and embedded Studio server
138
+ assets/ embedded contracts, scenarios, suites, and compatibility metadata
139
+ web/ React Studio and generated OpenAPI client
140
+ examples/receiver/ minimal signature-verifying webhook receiver
141
+ ```
142
+
143
+ The filesystem remains the source of truth for authored data. Generated OpenAPI artifacts are committed and checked for drift in CI.
144
+ See [Architecture](docs/architecture.md) for dependency direction, orchestration boundaries, and the safety-critical storage and delivery flows.
145
+
146
+ ## Contracts and documentation
147
+
148
+ - [CLI contract](docs/cli-contract.md)
149
+ - [Architecture](docs/architecture.md)
150
+ - [Workspace and authored-format contract](docs/workspace-contract.md)
151
+ - [Compatibility and provenance](docs/compatibility.md)
152
+ - [Security model](SECURITY.md)
153
+ - [Release and package publishing](docs/releasing.md)
154
+ - [Committed Studio OpenAPI document](web/openapi.json)
155
+
156
+ ## Project status
157
+
158
+ The public CLI, JSON output, Studio API, workspace format, and authored scenario formats are versioned compatibility surfaces. The project is still pre-1.0, and releases may add new commands, fields, events, and capabilities while retaining the documented contracts.
159
+
160
+ This repository is currently published as a showcase and reference implementation. Bug reports are welcome, but unsolicited pull requests are not being accepted at this time. Please use private vulnerability reporting for security issues.
161
+
162
+ ## License
163
+
164
+ [MIT](LICENSE) © 2026 Ege Kocabas.
package/bin/kick-sim ADDED
Binary file
package/package.json ADDED
@@ -0,0 +1,34 @@
1
+ {
2
+ "name": "kick-sim-linux-x64",
3
+ "version": "0.4.1",
4
+ "description": "Local-only simulator for building and testing Kick webhook integrations",
5
+ "license": "MIT",
6
+ "author": "Ege Kocabas",
7
+ "homepage": "https://github.com/egekocabas/kick-sim",
8
+ "repository": {
9
+ "type": "git",
10
+ "url": "git+https://github.com/egekocabas/kick-sim.git"
11
+ },
12
+ "bugs": {
13
+ "url": "https://github.com/egekocabas/kick-sim/issues"
14
+ },
15
+ "keywords": [
16
+ "kick",
17
+ "webhook",
18
+ "simulator",
19
+ "cli",
20
+ "testing"
21
+ ],
22
+ "publishConfig": {
23
+ "access": "public"
24
+ },
25
+ "os": [
26
+ "linux"
27
+ ],
28
+ "cpu": [
29
+ "x64"
30
+ ],
31
+ "files": [
32
+ "bin"
33
+ ]
34
+ }