callman-core 1.27.0 → 1.28.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (111) hide show
  1. package/ai-packs/db-queries.md +10 -1
  2. package/ai-packs/diagram-components.md +373 -0
  3. package/dist/curl/bodyFormat.d.ts +4 -0
  4. package/dist/curl/bodyFormat.d.ts.map +1 -0
  5. package/dist/curl/bodyFormat.js +80 -0
  6. package/dist/curl/bodyFormat.js.map +1 -0
  7. package/dist/curl/index.d.ts +5 -0
  8. package/dist/curl/index.d.ts.map +1 -0
  9. package/dist/curl/index.js +4 -0
  10. package/dist/curl/index.js.map +1 -0
  11. package/dist/curl/parseCurl.d.ts +4 -0
  12. package/dist/curl/parseCurl.d.ts.map +1 -0
  13. package/dist/curl/parseCurl.js +288 -0
  14. package/dist/curl/parseCurl.js.map +1 -0
  15. package/dist/curl/rows.d.ts +6 -0
  16. package/dist/curl/rows.d.ts.map +1 -0
  17. package/dist/curl/rows.js +23 -0
  18. package/dist/curl/rows.js.map +1 -0
  19. package/dist/curl/types.d.ts +21 -0
  20. package/dist/curl/types.d.ts.map +1 -0
  21. package/dist/curl/types.js +6 -0
  22. package/dist/curl/types.js.map +1 -0
  23. package/dist/diagram/componentCatalog.d.ts +31 -0
  24. package/dist/diagram/componentCatalog.d.ts.map +1 -0
  25. package/dist/diagram/componentCatalog.data.d.ts +3 -0
  26. package/dist/diagram/componentCatalog.data.d.ts.map +1 -0
  27. package/dist/diagram/componentCatalog.data.js +287 -0
  28. package/dist/diagram/componentCatalog.data.js.map +1 -0
  29. package/dist/diagram/componentCatalog.js +71 -0
  30. package/dist/diagram/componentCatalog.js.map +1 -0
  31. package/dist/diagram/edgeSemantics.d.ts +28 -0
  32. package/dist/diagram/edgeSemantics.d.ts.map +1 -0
  33. package/dist/diagram/edgeSemantics.js +78 -0
  34. package/dist/diagram/edgeSemantics.js.map +1 -0
  35. package/dist/diagram/elkGraph.d.ts +80 -0
  36. package/dist/diagram/elkGraph.d.ts.map +1 -0
  37. package/dist/diagram/elkGraph.js +283 -0
  38. package/dist/diagram/elkGraph.js.map +1 -0
  39. package/dist/diagram/index.d.ts +7 -0
  40. package/dist/diagram/index.d.ts.map +1 -0
  41. package/dist/diagram/index.js +13 -0
  42. package/dist/diagram/index.js.map +1 -0
  43. package/dist/diagram/migrations.d.ts +3 -0
  44. package/dist/diagram/migrations.d.ts.map +1 -0
  45. package/dist/diagram/migrations.js +33 -0
  46. package/dist/diagram/migrations.js.map +1 -0
  47. package/dist/diagram/normalize.d.ts +4 -0
  48. package/dist/diagram/normalize.d.ts.map +1 -0
  49. package/dist/diagram/normalize.js +68 -0
  50. package/dist/diagram/normalize.js.map +1 -0
  51. package/dist/diagram/schema.d.ts +116 -0
  52. package/dist/diagram/schema.d.ts.map +1 -0
  53. package/dist/diagram/schema.js +135 -0
  54. package/dist/diagram/schema.js.map +1 -0
  55. package/dist/http-file/detect.d.ts +12 -0
  56. package/dist/http-file/detect.d.ts.map +1 -0
  57. package/dist/http-file/detect.js +108 -0
  58. package/dist/http-file/detect.js.map +1 -0
  59. package/dist/http-file/flatImport.d.ts +32 -0
  60. package/dist/http-file/flatImport.d.ts.map +1 -0
  61. package/dist/http-file/flatImport.js +102 -0
  62. package/dist/http-file/flatImport.js.map +1 -0
  63. package/dist/http-file/index.d.ts +4 -0
  64. package/dist/http-file/index.d.ts.map +1 -0
  65. package/dist/http-file/index.js +7 -0
  66. package/dist/http-file/index.js.map +1 -0
  67. package/dist/http-file/parseHttpFile.d.ts +12 -0
  68. package/dist/http-file/parseHttpFile.d.ts.map +1 -0
  69. package/dist/http-file/parseHttpFile.js +122 -0
  70. package/dist/http-file/parseHttpFile.js.map +1 -0
  71. package/dist/index.d.ts +3 -0
  72. package/dist/index.d.ts.map +1 -1
  73. package/dist/index.js +5 -0
  74. package/dist/index.js.map +1 -1
  75. package/dist-cjs/curl/bodyFormat.js +85 -0
  76. package/dist-cjs/curl/bodyFormat.js.map +1 -0
  77. package/dist-cjs/curl/index.js +15 -0
  78. package/dist-cjs/curl/index.js.map +1 -0
  79. package/dist-cjs/curl/parseCurl.js +293 -0
  80. package/dist-cjs/curl/parseCurl.js.map +1 -0
  81. package/dist-cjs/curl/rows.js +30 -0
  82. package/dist-cjs/curl/rows.js.map +1 -0
  83. package/dist-cjs/curl/types.js +7 -0
  84. package/dist-cjs/curl/types.js.map +1 -0
  85. package/dist-cjs/diagram/componentCatalog.data.js +290 -0
  86. package/dist-cjs/diagram/componentCatalog.data.js.map +1 -0
  87. package/dist-cjs/diagram/componentCatalog.js +79 -0
  88. package/dist-cjs/diagram/componentCatalog.js.map +1 -0
  89. package/dist-cjs/diagram/edgeSemantics.js +86 -0
  90. package/dist-cjs/diagram/edgeSemantics.js.map +1 -0
  91. package/dist-cjs/diagram/elkGraph.js +293 -0
  92. package/dist-cjs/diagram/elkGraph.js.map +1 -0
  93. package/dist-cjs/diagram/index.js +33 -0
  94. package/dist-cjs/diagram/index.js.map +1 -0
  95. package/dist-cjs/diagram/migrations.js +37 -0
  96. package/dist-cjs/diagram/migrations.js.map +1 -0
  97. package/dist-cjs/diagram/normalize.js +73 -0
  98. package/dist-cjs/diagram/normalize.js.map +1 -0
  99. package/dist-cjs/diagram/schema.js +144 -0
  100. package/dist-cjs/diagram/schema.js.map +1 -0
  101. package/dist-cjs/http-file/detect.js +113 -0
  102. package/dist-cjs/http-file/detect.js.map +1 -0
  103. package/dist-cjs/http-file/flatImport.js +109 -0
  104. package/dist-cjs/http-file/flatImport.js.map +1 -0
  105. package/dist-cjs/http-file/index.js +20 -0
  106. package/dist-cjs/http-file/index.js.map +1 -0
  107. package/dist-cjs/http-file/parseHttpFile.js +127 -0
  108. package/dist-cjs/http-file/parseHttpFile.js.map +1 -0
  109. package/dist-cjs/index.js +5 -0
  110. package/dist-cjs/index.js.map +1 -1
  111. package/package.json +1 -1
@@ -36,8 +36,17 @@ pm.expect(res.rowCount).to.be.above(0);
36
36
 
37
37
  Notes: a trailing `;` is stripped (except Oracle PL/SQL blocks, which keep it). **Oracle** returns column names UPPERCASE — read `res.rows[0].EMAIL`, not `.email`. `res.rowCount` is the row count for SELECT and the affected-row count for INSERT/UPDATE/DELETE.
38
38
 
39
+ ## SQL Server (mssql)
40
+ Single statement per query; a trailing `;` is stripped; `GO` batch separators are REJECTED (client-tool syntax, not T-SQL). Positional params bind as named inputs: `params[0]` → `@p1`, `params[1]` → `@p2`… (scenario db node only — `pm.db.query` has no params).
41
+
42
+ ```sql
43
+ SELECT TOP 1 id, amount FROM dbo.orders WHERE customer_id = @p1 ORDER BY created_at DESC
44
+ ```
45
+
39
46
  ## Redis (`pm.redis.command`)
40
- `command` is a single string. Only **GET, SET, DEL, EXISTS, TTL** are supported. Quote a value that contains spaces.
47
+ `command` is a single string. Supported commands: **GET, SET, DEL, EXISTS, TTL, HGET, HSET, HGETALL, HDEL, LPUSH, RPUSH, LRANGE, LLEN, SADD, SMEMBERS, SISMEMBER, INCR, DECR, INCRBY, EXPIRE, PERSIST, TYPE, ZADD, ZRANGE, ZSCORE, SCAN**. Quote a value that contains spaces.
48
+
49
+ Structured replies land in `res.result` as real values: `HGETALL` → object, `LRANGE`/`SMEMBERS`/`ZRANGE` → array, `EXISTS`/`SISMEMBER`/`EXPIRE`/`PERSIST` → boolean; `res.resultText` is the stringified form. `SCAN pattern [count]` is Callman-managed: the cursor loop runs internally (capped at 1000 keys / 100 iterations) and returns `{ keys, count, truncated }` — no raw cursors.
41
50
 
42
51
  ```js
43
52
  const res = await pm.redis.command({ connectionId: "…", command: `GET session:${id}` });
@@ -0,0 +1,373 @@
1
+ <!-- GENERATED FILE — do not edit by hand. Source: callman_core (npm run ai:packs). -->
2
+
3
+ # Diagram components and edge notation
4
+
5
+ A diagram node's `type` MUST be one of the keys below (`callman-core` `DIAGRAM_COMPONENT_CATALOG`). Sizes are the defaults the studio uses; `container` types hold children via `parentId`.
6
+
7
+ ## Edge notation
8
+
9
+ | Semantic | Meaning | Style tuple |
10
+ | --- | --- | --- |
11
+ | `sync` | Request / response call | dashed=false, strokeWidth=1.5 |
12
+ | `async` | Fire-and-forget, event or callback | dashed=true, dashPattern="6 4", strokeWidth=1.5 |
13
+ | `fallback` | Retry, fallback or optional path | dashed=true, dashPattern="1 3", strokeWidth=1.25 |
14
+ | `bus` | Message bus or stream | dashed=false, strokeWidth=3 |
15
+
16
+ ## Generic (`generic`)
17
+
18
+ | Type | Label | Default size | Aliases |
19
+ | --- | --- | --- | --- |
20
+ | `line` | Line | 160×0 | connector, edge, link |
21
+ | `arrow` | Arrow | 160×0 | connector, directed, link |
22
+ | `line.dashed` | Dashed Line | 160×0 | dotted, connector |
23
+ | `rect` | Rectangle | 140×64 | box, card |
24
+ | `square` | Square | 90×90 | |
25
+ | `ellipse` | Ellipse | 140×64 | oval |
26
+ | `circle` | Circle | 90×90 | |
27
+ | `diamond` | Diamond | 140×64 | rhombus |
28
+ | `triangle` | Triangle | 140×64 | |
29
+ | `hexagon` | Hexagon | 140×64 | |
30
+ | `pentagon` | Pentagon | 140×64 | |
31
+ | `octagon` | Octagon | 140×64 | |
32
+ | `parallelogram` | Parallelogram | 140×64 | |
33
+ | `trapezoid` | Trapezoid | 140×64 | |
34
+ | `cylinder` | Cylinder | 140×64 | can, tube |
35
+ | `cloud-shape` | Cloud | 140×64 | |
36
+ | `callout` | Callout | 140×64 | speech, bubble |
37
+ | `text` | Text | 120×36 | |
38
+ | `sticky` | Sticky note | 140×100 | postit, comment |
39
+ | `card` | Card | 140×64 | |
40
+ | `frame` | Frame / Container (container) | 220×160 | group, container, boundary |
41
+ | `pool.horizontal` | Pool (horizontal) (swimlane) | 360×220 | swimlane, lane, container, subsystem |
42
+ | `pool.vertical` | Pool (vertical) (swimlane) | 220×360 | swimlane, lane, container, subsystem |
43
+ | `image` | Image | 140×64 | picture |
44
+
45
+ ## Flowchart (`flowchart`)
46
+
47
+ | Type | Label | Default size | Aliases |
48
+ | --- | --- | --- | --- |
49
+ | `flow.process` | Process | 140×64 | step, action |
50
+ | `flow.alt-process` | Alternate Process | 140×64 | |
51
+ | `flow.decision` | Decision | 140×100 | if, branch |
52
+ | `flow.terminator` | Start / End | 130×56 | terminator, begin, stop |
53
+ | `flow.data` | Data (I/O) | 140×64 | input, output, io |
54
+ | `flow.document` | Document | 140×64 | |
55
+ | `flow.multi-document` | Multi-Document | 140×64 | |
56
+ | `flow.predefined` | Predefined Process | 140×64 | subroutine |
57
+ | `flow.manual-input` | Manual Input | 140×64 | |
58
+ | `flow.manual-op` | Manual Operation | 140×64 | |
59
+ | `flow.preparation` | Preparation | 140×64 | |
60
+ | `flow.stored-data` | Stored Data | 140×64 | |
61
+ | `flow.database` | Database | 140×64 | db, store |
62
+ | `flow.display` | Display | 140×64 | |
63
+ | `flow.delay` | Delay | 140×64 | |
64
+ | `flow.merge` | Merge | 140×64 | |
65
+ | `flow.or` | Or | 140×64 | |
66
+ | `flow.connector` | On-page Connector | 48×48 | |
67
+ | `flow.off-page` | Off-page Connector | 140×64 | |
68
+ | `flow.annotation` | Annotation | 140×64 | |
69
+
70
+ ## UML (`uml`)
71
+
72
+ | Type | Label | Default size | Aliases |
73
+ | --- | --- | --- | --- |
74
+ | `uml.class` | Class | 140×64 | entity |
75
+ | `uml.abstract` | Abstract Class | 140×64 | |
76
+ | `uml.interface` | Interface | 140×64 | |
77
+ | `uml.enum` | Enum | 140×64 | |
78
+ | `uml.object` | Object | 140×64 | |
79
+ | `uml.package` | Package | 140×64 | |
80
+ | `uml.component` | Component | 140×64 | |
81
+ | `uml.node` | Node / Deployment | 140×64 | |
82
+ | `uml.actor` | Actor | 60×100 | user, role |
83
+ | `uml.usecase` | Use Case | 140×64 | |
84
+ | `uml.boundary` | Boundary | 140×64 | |
85
+ | `uml.control` | Control | 140×64 | |
86
+ | `uml.entity` | Entity | 140×64 | |
87
+ | `uml.state` | State | 140×64 | |
88
+ | `uml.initial` | Initial State | 36×36 | |
89
+ | `uml.final` | Final State | 40×40 | |
90
+ | `uml.decision` | Decision | 60×60 | |
91
+ | `uml.note` | Note / Comment | 140×64 | comment |
92
+
93
+ ## ERD (`erd`)
94
+
95
+ | Type | Label | Default size | Aliases |
96
+ | --- | --- | --- | --- |
97
+ | `erd.entity` | Entity | 140×64 | table |
98
+ | `erd.weak-entity` | Weak Entity | 140×64 | |
99
+ | `erd.attribute` | Attribute | 140×64 | |
100
+ | `erd.key-attribute` | Key Attribute | 140×64 | pk, primary key |
101
+ | `erd.multivalued` | Multivalued Attribute | 140×64 | |
102
+ | `erd.derived` | Derived Attribute | 140×64 | |
103
+ | `erd.relationship` | Relationship | 140×64 | |
104
+ | `erd.identifying` | Identifying Relationship | 140×64 | |
105
+
106
+ ## Architecture (`networking`)
107
+
108
+ | Type | Label | Default size | Aliases |
109
+ | --- | --- | --- | --- |
110
+ | `net.user` | User / Client | 60×100 | client, person |
111
+ | `net.admin` | Admin | 60×100 | |
112
+ | `net.browser` | Browser | 140×64 | |
113
+ | `net.mobile` | Mobile Device | 90×130 | phone |
114
+ | `net.desktop` | Desktop | 140×64 | |
115
+ | `net.iot` | IoT Device | 140×64 | |
116
+ | `net.server` | Server | 140×64 | |
117
+ | `net.service` | Service | 140×64 | microservice |
118
+ | `net.monolith` | Monolith | 140×64 | |
119
+ | `net.api-gateway` | API Gateway | 140×64 | api, gateway |
120
+ | `net.load-balancer` | Load Balancer | 140×64 | lb |
121
+ | `net.reverse-proxy` | Reverse Proxy | 140×64 | proxy |
122
+ | `net.firewall` | Firewall | 140×64 | waf |
123
+ | `net.router` | Router | 140×64 | |
124
+ | `net.switch` | Switch | 140×64 | |
125
+ | `net.dns` | DNS | 140×64 | |
126
+ | `net.cdn` | CDN | 140×64 | edge |
127
+ | `net.cache` | Cache | 140×64 | |
128
+ | `net.queue` | Queue | 140×64 | mq |
129
+ | `net.websocket` | Web Socket | 140×64 | ws |
130
+ | `net.rest` | REST endpoint | 140×64 | http, api |
131
+ | `net.internet` | Internet / Cloud | 140×64 | wan |
132
+ | `net.datacenter` | Datacenter | 140×64 | |
133
+ | `net.container` | Container | 140×64 | |
134
+ | `net.pod` | Pod | 140×64 | |
135
+ | `net.vm` | Virtual Machine | 140×64 | vm |
136
+
137
+ ## Databases (`database`)
138
+
139
+ | Type | Label | Default size | Aliases |
140
+ | --- | --- | --- | --- |
141
+ | `db.postgres` | PostgreSQL | 176×56 | postgres, pg |
142
+ | `db.mysql` | MySQL | 176×56 | |
143
+ | `db.mariadb` | MariaDB | 176×56 | |
144
+ | `db.mongodb` | MongoDB | 176×56 | mongo |
145
+ | `db.redis` | Redis | 176×56 | |
146
+ | `db.sqlite` | SQLite | 176×56 | |
147
+ | `db.mssql` | MS SQL Server | 176×56 | sqlserver, mssql |
148
+ | `db.oracle` | Oracle | 176×56 | |
149
+ | `db.cassandra` | Cassandra | 176×56 | |
150
+ | `db.elasticsearch` | Elasticsearch | 176×56 | elastic, es |
151
+ | `db.neo4j` | Neo4j | 176×56 | graph |
152
+ | `db.couchdb` | CouchDB | 176×56 | couch |
153
+ | `db.couchbase` | Couchbase | 176×56 | |
154
+ | `db.clickhouse` | ClickHouse | 176×56 | |
155
+ | `db.cockroachdb` | CockroachDB | 176×56 | cockroach |
156
+ | `db.influxdb` | InfluxDB | 176×56 | influx, tsdb |
157
+ | `db.snowflake` | Snowflake | 176×56 | |
158
+ | `db.supabase` | Supabase | 176×56 | |
159
+
160
+ ## Messaging (`messaging`)
161
+
162
+ | Type | Label | Default size | Aliases |
163
+ | --- | --- | --- | --- |
164
+ | `mq.kafka` | Apache Kafka | 176×56 | kafka |
165
+ | `mq.rabbitmq` | RabbitMQ | 176×56 | rabbit, amqp |
166
+ | `mq.nats` | NATS | 176×56 | |
167
+ | `mq.pulsar` | Apache Pulsar | 176×56 | pulsar |
168
+ | `mq.mqtt` | MQTT | 176×56 | |
169
+ | `mq.pubsub` | Pub/Sub | 176×56 | pubsub |
170
+ | `mq.activemq` | ActiveMQ | 176×56 | jms |
171
+
172
+ ## Languages (`language`)
173
+
174
+ | Type | Label | Default size | Aliases |
175
+ | --- | --- | --- | --- |
176
+ | `lang.node` | Node.js | 176×56 | node, js runtime |
177
+ | `lang.python` | Python | 176×56 | py |
178
+ | `lang.java` | Java | 176×56 | jvm |
179
+ | `lang.go` | Go | 176×56 | golang |
180
+ | `lang.rust` | Rust | 176×56 | |
181
+ | `lang.dotnet` | C# / .NET | 176×56 | csharp, c# |
182
+ | `lang.typescript` | TypeScript | 176×56 | ts |
183
+ | `lang.javascript` | JavaScript | 176×56 | js |
184
+ | `lang.ruby` | Ruby | 176×56 | |
185
+ | `lang.php` | PHP | 176×56 | |
186
+ | `lang.kotlin` | Kotlin | 176×56 | |
187
+ | `lang.swift` | Swift | 176×56 | |
188
+ | `lang.scala` | Scala | 176×56 | |
189
+ | `lang.elixir` | Elixir | 176×56 | |
190
+ | `lang.cpp` | C++ | 176×56 | cpp |
191
+
192
+ ## Frameworks (`framework`)
193
+
194
+ | Type | Label | Default size | Aliases |
195
+ | --- | --- | --- | --- |
196
+ | `fw.express` | Express | 176×56 | |
197
+ | `fw.nestjs` | NestJS | 176×56 | nest |
198
+ | `fw.spring` | Spring Boot | 176×56 | spring |
199
+ | `fw.django` | Django | 176×56 | |
200
+ | `fw.flask` | Flask | 176×56 | |
201
+ | `fw.fastapi` | FastAPI | 176×56 | |
202
+ | `fw.rails` | Rails | 176×56 | ruby on rails |
203
+ | `fw.laravel` | Laravel | 176×56 | |
204
+ | `fw.dotnet` | .NET | 176×56 | |
205
+ | `fw.react` | React | 176×56 | |
206
+ | `fw.vue` | Vue | 176×56 | vuejs |
207
+ | `fw.angular` | Angular | 176×56 | |
208
+ | `fw.next` | Next.js | 176×56 | nextjs |
209
+ | `fw.nuxt` | Nuxt | 176×56 | nuxtjs |
210
+ | `fw.svelte` | Svelte | 176×56 | sveltekit |
211
+ | `fw.electron` | Electron | 176×56 | |
212
+ | `fw.tailwind` | Tailwind | 176×56 | tailwindcss |
213
+ | `fw.graphql` | GraphQL | 176×56 | |
214
+
215
+ ## DevOps / CI-CD (`devops`)
216
+
217
+ | Type | Label | Default size | Aliases |
218
+ | --- | --- | --- | --- |
219
+ | `ops.docker` | Docker | 176×56 | |
220
+ | `ops.k8s` | Kubernetes | 176×56 | k8s |
221
+ | `ops.nginx` | Nginx | 176×56 | |
222
+ | `ops.haproxy` | HAProxy | 176×56 | lb |
223
+ | `ops.traefik` | Traefik | 176×56 | traefik |
224
+ | `ops.terraform` | Terraform | 176×56 | iac |
225
+ | `ops.ansible` | Ansible | 176×56 | |
226
+ | `ops.jenkins` | Jenkins | 176×56 | ci |
227
+ | `ops.gha` | GitHub Actions | 176×56 | ci, actions |
228
+ | `ops.gitlab` | GitLab CI | 176×56 | ci |
229
+ | `ops.argocd` | ArgoCD | 176×56 | gitops |
230
+ | `ops.helm` | Helm | 176×56 | |
231
+ | `ops.istio` | Istio | 176×56 | service mesh |
232
+ | `ops.envoy` | Envoy | 176×56 | proxy |
233
+ | `ops.consul` | Consul | 176×56 | |
234
+ | `ops.vault` | Vault | 176×56 | secrets |
235
+ | `ops.pm2` | PM2 | 176×56 | |
236
+ | `ops.maven` | Maven | 176×56 | build |
237
+
238
+ ## Auth / Identity (`auth`)
239
+
240
+ | Type | Label | Default size | Aliases |
241
+ | --- | --- | --- | --- |
242
+ | `auth.oidc` | OpenID Connect | 176×56 | oidc |
243
+ | `auth.jwt` | JWT | 176×56 | token |
244
+ | `auth.keycloak` | Keycloak | 176×56 | |
245
+ | `auth.auth0` | Auth0 | 176×56 | |
246
+ | `auth.okta` | Okta | 176×56 | |
247
+ | `auth.firebase` | Firebase Auth | 176×56 | firebase |
248
+ | `auth.oauth` | OAuth 2.0 | 176×56 | oauth |
249
+ | `auth.saml` | SAML | 176×56 | |
250
+ | `auth.ldap` | LDAP | 176×56 | |
251
+
252
+ ## Observability (`observability`)
253
+
254
+ | Type | Label | Default size | Aliases |
255
+ | --- | --- | --- | --- |
256
+ | `obs.prometheus` | Prometheus | 176×56 | metrics |
257
+ | `obs.grafana` | Grafana | 176×56 | dashboard |
258
+ | `obs.datadog` | Datadog | 176×56 | |
259
+ | `obs.sentry` | Sentry | 176×56 | errors |
260
+ | `obs.elasticsearch` | Elasticsearch | 176×56 | elk |
261
+ | `obs.logstash` | Logstash | 176×56 | elk |
262
+ | `obs.kibana` | Kibana | 176×56 | elk |
263
+ | `obs.jaeger` | Jaeger | 176×56 | tracing |
264
+ | `obs.otel` | OpenTelemetry | 176×56 | otel, tracing |
265
+ | `obs.newrelic` | New Relic | 176×56 | |
266
+
267
+ ## AWS (`aws`)
268
+
269
+ | Type | Label | Default size | Aliases |
270
+ | --- | --- | --- | --- |
271
+ | `aws.ec2` | EC2 | 176×56 | aws |
272
+ | `aws.lambda` | Lambda | 176×56 | aws |
273
+ | `aws.s3` | S3 | 176×56 | aws |
274
+ | `aws.ebs` | EBS | 176×56 | aws |
275
+ | `aws.efs` | EFS | 176×56 | aws |
276
+ | `aws.rds` | RDS | 176×56 | aws |
277
+ | `aws.aurora` | Aurora | 176×56 | aws |
278
+ | `aws.dynamodb` | DynamoDB | 176×56 | aws |
279
+ | `aws.elasticache` | ElastiCache | 176×56 | aws |
280
+ | `aws.redshift` | Redshift | 176×56 | aws |
281
+ | `aws.vpc` | VPC | 176×56 | aws |
282
+ | `aws.subnet` | Subnet | 176×56 | aws |
283
+ | `aws.internet-gateway` | Internet Gateway | 176×56 | aws |
284
+ | `aws.nat-gateway` | NAT Gateway | 176×56 | aws |
285
+ | `aws.elb` | ELB | 176×56 | aws |
286
+ | `aws.alb` | ALB | 176×56 | aws |
287
+ | `aws.nlb` | NLB | 176×56 | aws |
288
+ | `aws.api-gateway` | API Gateway | 176×56 | aws |
289
+ | `aws.cloudfront` | CloudFront | 176×56 | aws |
290
+ | `aws.route-53` | Route 53 | 176×56 | aws |
291
+ | `aws.sqs` | SQS | 176×56 | aws |
292
+ | `aws.sns` | SNS | 176×56 | aws |
293
+ | `aws.eventbridge` | EventBridge | 176×56 | aws |
294
+ | `aws.kinesis` | Kinesis | 176×56 | aws |
295
+ | `aws.step-functions` | Step Functions | 176×56 | aws |
296
+ | `aws.ecs` | ECS | 176×56 | aws |
297
+ | `aws.eks` | EKS | 176×56 | aws |
298
+ | `aws.fargate` | Fargate | 176×56 | aws |
299
+ | `aws.ecr` | ECR | 176×56 | aws |
300
+ | `aws.iam` | IAM | 176×56 | aws |
301
+ | `aws.cognito` | Cognito | 176×56 | aws |
302
+ | `aws.secrets-manager` | Secrets Manager | 176×56 | aws |
303
+ | `aws.kms` | KMS | 176×56 | aws |
304
+ | `aws.cloudwatch` | CloudWatch | 176×56 | aws |
305
+ | `aws.cloudtrail` | CloudTrail | 176×56 | aws |
306
+ | `aws.glue` | Glue | 176×56 | aws |
307
+ | `aws.athena` | Athena | 176×56 | aws |
308
+ | `aws.sagemaker` | SageMaker | 176×56 | aws |
309
+ | `aws.appsync` | AppSync | 176×56 | aws |
310
+ | `aws.amplify` | Amplify | 176×56 | aws |
311
+
312
+ ## Azure (`azure`)
313
+
314
+ | Type | Label | Default size | Aliases |
315
+ | --- | --- | --- | --- |
316
+ | `azure.virtual-machine` | Virtual Machine | 176×56 | azure |
317
+ | `azure.vm-scale-set` | VM Scale Set | 176×56 | azure |
318
+ | `azure.app-service` | App Service | 176×56 | azure |
319
+ | `azure.functions` | Functions | 176×56 | azure |
320
+ | `azure.container-instances` | Container Instances | 176×56 | azure |
321
+ | `azure.aks` | AKS | 176×56 | azure |
322
+ | `azure.container-registry` | Container Registry | 176×56 | azure |
323
+ | `azure.blob-storage` | Blob Storage | 176×56 | azure |
324
+ | `azure.files` | Files | 176×56 | azure |
325
+ | `azure.disk` | Disk | 176×56 | azure |
326
+ | `azure.sql-database` | SQL Database | 176×56 | azure |
327
+ | `azure.cosmos-db` | Cosmos DB | 176×56 | azure |
328
+ | `azure.cache-for-redis` | Cache for Redis | 176×56 | azure |
329
+ | `azure.synapse` | Synapse | 176×56 | azure |
330
+ | `azure.virtual-network` | Virtual Network | 176×56 | azure |
331
+ | `azure.load-balancer` | Load Balancer | 176×56 | azure |
332
+ | `azure.application-gateway` | Application Gateway | 176×56 | azure |
333
+ | `azure.front-door` | Front Door | 176×56 | azure |
334
+ | `azure.service-bus` | Service Bus | 176×56 | azure |
335
+ | `azure.event-hub` | Event Hub | 176×56 | azure |
336
+ | `azure.event-grid` | Event Grid | 176×56 | azure |
337
+ | `azure.key-vault` | Key Vault | 176×56 | azure |
338
+ | `azure.entra-id` | Entra ID | 176×56 | azure |
339
+ | `azure.monitor` | Monitor | 176×56 | azure |
340
+ | `azure.application-insights` | Application Insights | 176×56 | azure |
341
+ | `azure.logic-apps` | Logic Apps | 176×56 | azure |
342
+ | `azure.api-management` | API Management | 176×56 | azure |
343
+
344
+ ## GCP (`gcp`)
345
+
346
+ | Type | Label | Default size | Aliases |
347
+ | --- | --- | --- | --- |
348
+ | `gcp.compute-engine` | Compute Engine | 176×56 | gcp, google |
349
+ | `gcp.app-engine` | App Engine | 176×56 | gcp, google |
350
+ | `gcp.cloud-functions` | Cloud Functions | 176×56 | gcp, google |
351
+ | `gcp.cloud-run` | Cloud Run | 176×56 | gcp, google |
352
+ | `gcp.gke` | GKE | 176×56 | gcp, google |
353
+ | `gcp.artifact-registry` | Artifact Registry | 176×56 | gcp, google |
354
+ | `gcp.cloud-storage` | Cloud Storage | 176×56 | gcp, google |
355
+ | `gcp.persistent-disk` | Persistent Disk | 176×56 | gcp, google |
356
+ | `gcp.cloud-sql` | Cloud SQL | 176×56 | gcp, google |
357
+ | `gcp.cloud-spanner` | Cloud Spanner | 176×56 | gcp, google |
358
+ | `gcp.firestore` | Firestore | 176×56 | gcp, google |
359
+ | `gcp.bigtable` | Bigtable | 176×56 | gcp, google |
360
+ | `gcp.bigquery` | BigQuery | 176×56 | gcp, google |
361
+ | `gcp.memorystore` | Memorystore | 176×56 | gcp, google |
362
+ | `gcp.vpc` | VPC | 176×56 | gcp, google |
363
+ | `gcp.cloud-load-balancing` | Cloud Load Balancing | 176×56 | gcp, google |
364
+ | `gcp.cloud-cdn` | Cloud CDN | 176×56 | gcp, google |
365
+ | `gcp.cloud-dns` | Cloud DNS | 176×56 | gcp, google |
366
+ | `gcp.pub-sub` | Pub/Sub | 176×56 | gcp, google |
367
+ | `gcp.dataflow` | Dataflow | 176×56 | gcp, google |
368
+ | `gcp.cloud-tasks` | Cloud Tasks | 176×56 | gcp, google |
369
+ | `gcp.iam` | IAM | 176×56 | gcp, google |
370
+ | `gcp.secret-manager` | Secret Manager | 176×56 | gcp, google |
371
+ | `gcp.cloud-kms` | Cloud KMS | 176×56 | gcp, google |
372
+ | `gcp.cloud-monitoring` | Cloud Monitoring | 176×56 | gcp, google |
373
+ | `gcp.vertex-ai` | Vertex AI | 176×56 | gcp, google |
@@ -0,0 +1,4 @@
1
+ import type { KeyValueRow, ParsedRequestBody, RawBodyLanguage } from "./types.js";
2
+ export declare const sniffRawBodyLanguage: (raw: string) => RawBodyLanguage;
3
+ export declare const inferBodyStateFromRaw: (rawBody: string, headers: KeyValueRow[]) => ParsedRequestBody;
4
+ //# sourceMappingURL=bodyFormat.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bodyFormat.d.ts","sourceRoot":"","sources":["../../src/curl/bodyFormat.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAIlF,eAAO,MAAM,oBAAoB,GAAI,KAAK,MAAM,KAAG,eASlD,CAAC;AAoBF,eAAO,MAAM,qBAAqB,GAChC,SAAS,MAAM,EACf,SAAS,WAAW,EAAE,KACrB,iBA+CF,CAAC"}
@@ -0,0 +1,80 @@
1
+ // Raw-body sub-format detection shared by the cURL and .http importers.
2
+ // Content-Type is authoritative; without a decisive one the payload is
3
+ // sniffed so an XML body does not land on the JSON tab.
4
+ import { emptyRow } from "./rows.js";
5
+ // Restore a plausible language for a raw body string. Defaults to "json"
6
+ // (the historical assumption of every consumer).
7
+ export const sniffRawBodyLanguage = (raw) => {
8
+ const trimmed = raw.trimStart();
9
+ if (/^<!doctype html/i.test(trimmed) || /^<html[\s>]/i.test(trimmed)) {
10
+ return "html";
11
+ }
12
+ if (/^<\?xml/i.test(trimmed) || /^<[a-z][\w:.-]*[\s/>]/i.test(trimmed)) {
13
+ return "xml";
14
+ }
15
+ return "json";
16
+ };
17
+ const safeDecode = (value) => {
18
+ try {
19
+ return decodeURIComponent(value.replace(/\+/g, " "));
20
+ }
21
+ catch {
22
+ return value.replace(/\+/g, " ");
23
+ }
24
+ };
25
+ const detectRawLanguage = (rawBody, contentType) => {
26
+ if (contentType.includes("json"))
27
+ return "json";
28
+ if (contentType.includes("xml"))
29
+ return "xml";
30
+ if (contentType.includes("html"))
31
+ return "html";
32
+ if (contentType.includes("text/plain"))
33
+ return "text";
34
+ return sniffRawBodyLanguage(rawBody);
35
+ };
36
+ // Raw string → editor body state. Named distinctly from the desktop's
37
+ // persisted→editor `inferBodyState`: this one goes raw text → editor.
38
+ export const inferBodyStateFromRaw = (rawBody, headers) => {
39
+ if (!rawBody) {
40
+ return { mode: "none", raw: "", formEntries: [emptyRow()] };
41
+ }
42
+ const contentType = headers
43
+ .find((header) => header.key.trim().toLowerCase() === "content-type")
44
+ ?.value.toLowerCase() ?? "";
45
+ if (contentType.includes("application/x-www-form-urlencoded")) {
46
+ const formEntries = rawBody
47
+ .split("&")
48
+ .filter((segment) => segment.length > 0)
49
+ .map((segment) => {
50
+ const separatorIndex = segment.indexOf("=");
51
+ return emptyRow({
52
+ key: separatorIndex >= 0 ? safeDecode(segment.slice(0, separatorIndex)) : safeDecode(segment),
53
+ value: separatorIndex >= 0 ? safeDecode(segment.slice(separatorIndex + 1)) : "",
54
+ });
55
+ });
56
+ return {
57
+ mode: "urlencoded",
58
+ raw: "",
59
+ formEntries: formEntries.length > 0 ? formEntries : [emptyRow()],
60
+ };
61
+ }
62
+ const rawLanguage = detectRawLanguage(rawBody, contentType);
63
+ // Only JSON gets pretty-printed; XML/HTML/text are kept verbatim so they
64
+ // are never mangled by a trip through JSON.parse.
65
+ if (rawLanguage === "json") {
66
+ try {
67
+ return {
68
+ mode: "raw",
69
+ raw: JSON.stringify(JSON.parse(rawBody), null, 2),
70
+ rawLanguage: "json",
71
+ formEntries: [emptyRow()],
72
+ };
73
+ }
74
+ catch {
75
+ return { mode: "raw", raw: rawBody, rawLanguage: "json", formEntries: [emptyRow()] };
76
+ }
77
+ }
78
+ return { mode: "raw", raw: rawBody, rawLanguage, formEntries: [emptyRow()] };
79
+ };
80
+ //# sourceMappingURL=bodyFormat.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bodyFormat.js","sourceRoot":"","sources":["../../src/curl/bodyFormat.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export type { KeyValueRow, ParsedCurlRequest, ParsedRequestBody, RawBodyLanguage, RequestBodyMode, } from "./types.js";
2
+ export { emptyRow, filledRows, normalizeRows, queryRowsFromUrl } from "./rows.js";
3
+ export { inferBodyStateFromRaw, sniffRawBodyLanguage } from "./bodyFormat.js";
4
+ export { isCurlCommand, parseCurl } from "./parseCurl.js";
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/curl/index.ts"],"names":[],"mappings":"AAGA,YAAY,EACV,WAAW,EACX,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,eAAe,GAChB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAClF,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAC9E,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,4 @@
1
+ export { emptyRow, filledRows, normalizeRows, queryRowsFromUrl } from "./rows.js";
2
+ export { inferBodyStateFromRaw, sniffRawBodyLanguage } from "./bodyFormat.js";
3
+ export { isCurlCommand, parseCurl } from "./parseCurl.js";
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/curl/index.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAClF,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAC9E,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { ParsedCurlRequest } from "./types.js";
2
+ export declare const isCurlCommand: (input: string) => boolean;
3
+ export declare const parseCurl: (input: string) => ParsedCurlRequest;
4
+ //# sourceMappingURL=parseCurl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parseCurl.d.ts","sourceRoot":"","sources":["../../src/curl/parseCurl.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAe,iBAAiB,EAAqB,MAAM,YAAY,CAAC;AA+DpF,eAAO,MAAM,aAAa,GAAI,OAAO,MAAM,KAAG,OAA0C,CAAC;AA+BzF,eAAO,MAAM,SAAS,GAAI,OAAO,MAAM,KAAG,iBAkNzC,CAAC"}