@alpic-ai/api 0.0.0-staging.a2e3bbd → 0.0.0-staging.a31e46e

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/dist/index.d.mts CHANGED
@@ -6,6 +6,7 @@ import { z } from "zod";
6
6
  type ApiContext = {
7
7
  request: Request & {
8
8
  teamIds: string[];
9
+ defaultTeamId: string | undefined;
9
10
  };
10
11
  };
11
12
  declare const createEnvironmentContractV1: _orpc_contract0.ContractProcedureBuilderWithInputOutput<z.ZodObject<{
@@ -29,6 +30,17 @@ declare const createEnvironmentContractV1: _orpc_contract0.ContractProcedureBuil
29
30
  BAD_REQUEST: {};
30
31
  }>, Record<never, never>>;
31
32
  declare const contract: {
33
+ teams: {
34
+ list: {
35
+ v1: _orpc_contract0.ContractProcedureBuilderWithOutput<_orpc_contract0.Schema<unknown, unknown>, z.ZodArray<z.ZodObject<{
36
+ id: z.ZodString;
37
+ name: z.ZodString;
38
+ createdAt: z.ZodCoercedDate<unknown>;
39
+ hasStripeAccount: z.ZodBoolean;
40
+ hasActiveSubscription: z.ZodBoolean;
41
+ }, z.core.$strip>>, Record<never, never>, Record<never, never>>;
42
+ };
43
+ };
32
44
  analytics: {
33
45
  get: {
34
46
  v1: _orpc_contract0.ContractProcedureBuilderWithInputOutput<z.ZodObject<{
@@ -123,6 +135,7 @@ declare const contract: {
123
135
  authorAvatarUrl: z.ZodNullable<z.ZodString>;
124
136
  startedAt: z.ZodNullable<z.ZodCoercedDate<unknown>>;
125
137
  completedAt: z.ZodNullable<z.ZodCoercedDate<unknown>>;
138
+ deploymentPageUrl: z.ZodNullable<z.ZodURL>;
126
139
  }, z.core.$strip>, _orpc_contract0.MergedErrorMap<Record<never, never>, {
127
140
  NOT_FOUND: {};
128
141
  }>, Record<never, never>>;
@@ -207,6 +220,7 @@ declare const contract: {
207
220
  authorAvatarUrl: z.ZodNullable<z.ZodString>;
208
221
  startedAt: z.ZodNullable<z.ZodCoercedDate<unknown>>;
209
222
  completedAt: z.ZodNullable<z.ZodCoercedDate<unknown>>;
223
+ deploymentPageUrl: z.ZodNullable<z.ZodURL>;
210
224
  }, z.core.$strip>, _orpc_contract0.MergedErrorMap<Record<never, never>, {
211
225
  NOT_FOUND: {};
212
226
  BAD_REQUEST: {};
@@ -214,6 +228,84 @@ declare const contract: {
214
228
  };
215
229
  };
216
230
  projects: {
231
+ update: {
232
+ v1: _orpc_contract0.ContractProcedureBuilderWithInputOutput<z.ZodObject<{
233
+ projectId: z.ZodString;
234
+ name: z.ZodOptional<z.ZodString>;
235
+ sourceRepository: z.ZodOptional<z.ZodNullable<z.ZodString>>;
236
+ }, z.core.$strip>, z.ZodObject<{
237
+ id: z.ZodString;
238
+ name: z.ZodString;
239
+ teamId: z.ZodString;
240
+ sourceRepository: z.ZodNullable<z.ZodString>;
241
+ runtime: z.ZodEnum<{
242
+ "python3.13": "python3.13";
243
+ "python3.14": "python3.14";
244
+ node22: "node22";
245
+ node24: "node24";
246
+ }>;
247
+ transport: z.ZodNullable<z.ZodEnum<{
248
+ stdio: "stdio";
249
+ sse: "sse";
250
+ streamablehttp: "streamablehttp";
251
+ }>>;
252
+ rootDirectory: z.ZodNullable<z.ZodString>;
253
+ buildCommand: z.ZodNullable<z.ZodString>;
254
+ buildOutputDir: z.ZodNullable<z.ZodString>;
255
+ installCommand: z.ZodNullable<z.ZodString>;
256
+ startCommand: z.ZodNullable<z.ZodString>;
257
+ createdAt: z.ZodCoercedDate<unknown>;
258
+ productionEnvironment: z.ZodNullable<z.ZodObject<{
259
+ id: z.ZodString;
260
+ name: z.ZodString;
261
+ mcpServerUrl: z.ZodString;
262
+ domains: z.ZodArray<z.ZodObject<{
263
+ domain: z.ZodString;
264
+ status: z.ZodEnum<{
265
+ ongoing: "ongoing";
266
+ deployed: "deployed";
267
+ failed: "failed";
268
+ }>;
269
+ createdAt: z.ZodCoercedDate<unknown>;
270
+ }, z.core.$strip>>;
271
+ latestDeployment: z.ZodNullable<z.ZodObject<{
272
+ id: z.ZodString;
273
+ status: z.ZodEnum<{
274
+ ongoing: "ongoing";
275
+ deployed: "deployed";
276
+ failed: "failed";
277
+ canceled: "canceled";
278
+ }>;
279
+ sourceCommitId: z.ZodNullable<z.ZodString>;
280
+ sourceCommitMessage: z.ZodNullable<z.ZodString>;
281
+ completedAt: z.ZodNullable<z.ZodCoercedDate<unknown>>;
282
+ }, z.core.$strip>>;
283
+ }, z.core.$strip>>;
284
+ environments: z.ZodArray<z.ZodObject<{
285
+ id: z.ZodString;
286
+ name: z.ZodString;
287
+ sourceBranch: z.ZodNullable<z.ZodString>;
288
+ mcpServerUrl: z.ZodString;
289
+ createdAt: z.ZodCoercedDate<unknown>;
290
+ projectId: z.ZodString;
291
+ latestDeployment: z.ZodNullable<z.ZodObject<{
292
+ id: z.ZodString;
293
+ status: z.ZodEnum<{
294
+ ongoing: "ongoing";
295
+ deployed: "deployed";
296
+ failed: "failed";
297
+ canceled: "canceled";
298
+ }>;
299
+ sourceCommitId: z.ZodNullable<z.ZodString>;
300
+ sourceCommitMessage: z.ZodNullable<z.ZodString>;
301
+ completedAt: z.ZodNullable<z.ZodCoercedDate<unknown>>;
302
+ }, z.core.$strip>>;
303
+ }, z.core.$strip>>;
304
+ }, z.core.$strip>, _orpc_contract0.MergedErrorMap<Record<never, never>, {
305
+ NOT_FOUND: {};
306
+ BAD_REQUEST: {};
307
+ }>, Record<never, never>>;
308
+ };
217
309
  get: {
218
310
  v1: _orpc_contract0.ContractProcedureBuilderWithInputOutput<z.ZodObject<{
219
311
  projectId: z.ZodString;
@@ -243,6 +335,15 @@ declare const contract: {
243
335
  id: z.ZodString;
244
336
  name: z.ZodString;
245
337
  mcpServerUrl: z.ZodString;
338
+ domains: z.ZodArray<z.ZodObject<{
339
+ domain: z.ZodString;
340
+ status: z.ZodEnum<{
341
+ ongoing: "ongoing";
342
+ deployed: "deployed";
343
+ failed: "failed";
344
+ }>;
345
+ createdAt: z.ZodCoercedDate<unknown>;
346
+ }, z.core.$strip>>;
246
347
  latestDeployment: z.ZodNullable<z.ZodObject<{
247
348
  id: z.ZodString;
248
349
  status: z.ZodEnum<{
@@ -281,7 +382,9 @@ declare const contract: {
281
382
  }>, Record<never, never>>;
282
383
  };
283
384
  list: {
284
- v1: _orpc_contract0.ContractProcedureBuilderWithOutput<_orpc_contract0.Schema<unknown, unknown>, z.ZodArray<z.ZodObject<{
385
+ v1: _orpc_contract0.ContractProcedureBuilderWithInputOutput<z.ZodOptional<z.ZodObject<{
386
+ teamId: z.ZodOptional<z.ZodString>;
387
+ }, z.core.$strip>>, z.ZodArray<z.ZodObject<{
285
388
  id: z.ZodString;
286
389
  name: z.ZodString;
287
390
  teamId: z.ZodString;
@@ -307,6 +410,15 @@ declare const contract: {
307
410
  id: z.ZodString;
308
411
  name: z.ZodString;
309
412
  mcpServerUrl: z.ZodString;
413
+ domains: z.ZodArray<z.ZodObject<{
414
+ domain: z.ZodString;
415
+ status: z.ZodEnum<{
416
+ ongoing: "ongoing";
417
+ deployed: "deployed";
418
+ failed: "failed";
419
+ }>;
420
+ createdAt: z.ZodCoercedDate<unknown>;
421
+ }, z.core.$strip>>;
310
422
  latestDeployment: z.ZodNullable<z.ZodObject<{
311
423
  id: z.ZodString;
312
424
  status: z.ZodEnum<{
@@ -406,6 +518,15 @@ declare const contract: {
406
518
  BAD_REQUEST: {};
407
519
  }>, Record<never, never>>;
408
520
  };
521
+ delete: {
522
+ v1: _orpc_contract0.ContractProcedureBuilderWithInputOutput<z.ZodObject<{
523
+ projectId: z.ZodString;
524
+ }, z.core.$strip>, z.ZodObject<{
525
+ success: z.ZodLiteral<true>;
526
+ }, z.core.$strip>, _orpc_contract0.MergedErrorMap<Record<never, never>, {
527
+ NOT_FOUND: {};
528
+ }>, Record<never, never>>;
529
+ };
409
530
  };
410
531
  };
411
532
  type RouterInput = InferContractRouterInputs<typeof contract>;
package/dist/index.mjs CHANGED
@@ -13,7 +13,11 @@ const RESERVED_KEYS = [
13
13
  "AWS_LAMBDA_FUNCTION_VERSION",
14
14
  "AWS_LAMBDA_INITIALIZATION_TYPE",
15
15
  "AWS_LAMBDA_LOG_GROUP_NAME",
16
+ "AWS_LAMBDA_LOG_STREAM_NAME",
16
17
  "AWS_ACCESS_KEY",
18
+ "AWS_ACCESS_KEY_ID",
19
+ "AWS_SECRET_ACCESS_KEY",
20
+ "AWS_SESSION_TOKEN",
17
21
  "AWS_LAMBDA_RUNTIME_API",
18
22
  "LAMBDA_TASK_ROOT",
19
23
  "LAMBDA_RUNTIME_DIR",
@@ -82,6 +86,7 @@ const deploymentSchema = z.object({
82
86
  startedAt: z.coerce.date().nullable(),
83
87
  completedAt: z.coerce.date().nullable()
84
88
  });
89
+ const deploymentWithPageUrlSchema = deploymentSchema.extend({ deploymentPageUrl: z.url().nullable() });
85
90
  const createEnvironmentContractV1 = oc.route({
86
91
  path: "/v1/environments",
87
92
  method: "POST",
@@ -106,7 +111,7 @@ const createEnvironmentContractV1 = oc.route({
106
111
  projectId: z.string().describe("The ID of the project the environment belongs to")
107
112
  }));
108
113
  const getEnvironmentContractV1 = oc.route({
109
- path: "/v1/environments/:environmentId",
114
+ path: "/v1/environments/{environmentId}",
110
115
  method: "GET",
111
116
  summary: "Get an environment",
112
117
  description: "Get an environment by ID",
@@ -121,10 +126,20 @@ const getEnvironmentContractV1 = oc.route({
121
126
  createdAt: z.coerce.date(),
122
127
  projectId: z.string()
123
128
  }));
129
+ const domainSchema = z.object({
130
+ domain: z.string(),
131
+ status: z.enum([
132
+ "ongoing",
133
+ "deployed",
134
+ "failed"
135
+ ]),
136
+ createdAt: z.coerce.date()
137
+ });
124
138
  const productionEnvironmentSchema = z.object({
125
139
  id: z.string(),
126
140
  name: z.string(),
127
141
  mcpServerUrl: z.string(),
142
+ domains: z.array(domainSchema),
128
143
  latestDeployment: latestDeploymentSchema.nullable()
129
144
  });
130
145
  const environmentSchema = z.object({
@@ -153,7 +168,7 @@ const projectOutputSchema = z.object({
153
168
  environments: z.array(environmentSchema)
154
169
  });
155
170
  const getProjectContractV1 = oc.route({
156
- path: "/v1/projects/:projectId",
171
+ path: "/v1/projects/{projectId}",
157
172
  method: "GET",
158
173
  summary: "Get a project",
159
174
  description: "Get a project by ID",
@@ -167,7 +182,7 @@ const listProjectsContractV1 = oc.route({
167
182
  description: "List all projects for a team",
168
183
  tags: ["projects"],
169
184
  successDescription: "The list of projects"
170
- }).output(z.array(projectOutputSchema));
185
+ }).input(z.object({ teamId: z.string().optional() }).optional()).output(z.array(projectOutputSchema));
171
186
  const createProjectContractV1 = oc.route({
172
187
  path: "/v1/projects",
173
188
  method: "POST",
@@ -180,7 +195,7 @@ const createProjectContractV1 = oc.route({
180
195
  BAD_REQUEST: {}
181
196
  }).input(z.object({
182
197
  teamId: z.string().optional(),
183
- name: z.string().min(1).max(100),
198
+ name: z.string().trim().min(1).max(100),
184
199
  sourceRepository: z.string().optional(),
185
200
  branchName: z.string().min(1).optional(),
186
201
  runtime: runtimeSchema,
@@ -210,8 +225,31 @@ const createProjectContractV1 = oc.route({
210
225
  startCommand: z.string().nullable(),
211
226
  createdAt: z.coerce.date()
212
227
  }));
228
+ const deleteProjectContractV1 = oc.route({
229
+ path: "/v1/projects/:projectId",
230
+ method: "DELETE",
231
+ summary: "Delete a project",
232
+ description: "Delete a project and all its environments",
233
+ tags: ["projects"],
234
+ successDescription: "The project has been deleted successfully"
235
+ }).errors({ NOT_FOUND: {} }).input(z.object({ projectId: z.string().describe("The ID of the project") })).output(z.object({ success: z.literal(true) }));
236
+ const updateProjectContractV1 = oc.route({
237
+ path: "/v1/projects/{projectId}",
238
+ method: "PATCH",
239
+ summary: "Update a project",
240
+ description: "Update project settings",
241
+ tags: ["projects"],
242
+ successDescription: "The project has been updated successfully"
243
+ }).errors({
244
+ NOT_FOUND: {},
245
+ BAD_REQUEST: {}
246
+ }).input(z.object({
247
+ projectId: z.string().describe("The ID of the project"),
248
+ name: z.string().min(1).max(100).optional().describe("The new name for the project"),
249
+ sourceRepository: z.string().nullable().optional().describe("The source repository to connect to the project")
250
+ })).output(projectOutputSchema);
213
251
  const deployEnvironmentContractV1 = oc.route({
214
- path: "/v1/environments/:environmentId/deploy",
252
+ path: "/v1/environments/{environmentId}/deploy",
215
253
  method: "POST",
216
254
  summary: "Deploy an environment",
217
255
  description: "Deploy an environment",
@@ -223,7 +261,7 @@ const deployEnvironmentContractV1 = oc.route({
223
261
  }).input(z.object({
224
262
  environmentId: z.string().describe("The ID of the environment to deploy"),
225
263
  token: z.string().describe("The token to identify the source archive").optional()
226
- })).output(deploymentSchema);
264
+ })).output(deploymentWithPageUrlSchema);
227
265
  const uploadDeploymentArtifactContractV1 = oc.route({
228
266
  path: "/v1/deployments/upload",
229
267
  method: "POST",
@@ -237,7 +275,7 @@ const uploadDeploymentArtifactContractV1 = oc.route({
237
275
  expiresAt: z.coerce.date().describe("Expiration date of the presigned URL")
238
276
  }));
239
277
  const listProjectDeploymentsContractV1 = oc.route({
240
- path: "/v1/projects/:projectId/deployments",
278
+ path: "/v1/projects/{projectId}/deployments",
241
279
  method: "GET",
242
280
  summary: "List project deployments",
243
281
  description: "List all deployments for a project",
@@ -248,15 +286,15 @@ const listProjectDeploymentsContractV1 = oc.route({
248
286
  environmentId: z.string()
249
287
  })));
250
288
  const getDeploymentContractV1 = oc.route({
251
- path: "/v1/deployments/:deploymentId",
289
+ path: "/v1/deployments/{deploymentId}",
252
290
  method: "GET",
253
291
  summary: "Get a deployment",
254
292
  description: "Get a deployment by ID",
255
293
  tags: ["deployments"],
256
294
  successDescription: "The deployment details"
257
- }).errors({ NOT_FOUND: {} }).input(z.object({ deploymentId: z.string().describe("The ID of the deployment") })).output(deploymentSchema);
295
+ }).errors({ NOT_FOUND: {} }).input(z.object({ deploymentId: z.string().describe("The ID of the deployment") })).output(deploymentWithPageUrlSchema);
258
296
  const getDeploymentLogsContractV1 = oc.route({
259
- path: "/v1/deployments/:deploymentId/logs",
297
+ path: "/v1/deployments/{deploymentId}/logs",
260
298
  method: "GET",
261
299
  summary: "Get deployment logs",
262
300
  description: "Get the logs for a deployment",
@@ -283,7 +321,7 @@ const analyticsTimeSeriesSchema = z.object({
283
321
  task_count: z.array(analyticsDataPointSchema)
284
322
  });
285
323
  const getProjectAnalyticsContractV1 = oc.route({
286
- path: "/v1/analytics/:projectId",
324
+ path: "/v1/analytics/{projectId}",
287
325
  method: "GET",
288
326
  summary: "Get project analytics",
289
327
  description: "Get analytics data for a project over a time range",
@@ -307,7 +345,22 @@ const getProjectAnalyticsContractV1 = oc.route({
307
345
  }),
308
346
  timeSeries: analyticsTimeSeriesSchema
309
347
  }));
348
+ const listTeamsContractV1 = oc.route({
349
+ path: "/v1/teams",
350
+ method: "GET",
351
+ summary: "List teams",
352
+ description: "List all teams for the authenticated user",
353
+ tags: ["teams"],
354
+ successDescription: "The list of teams"
355
+ }).output(z.array(z.object({
356
+ id: z.string(),
357
+ name: z.string(),
358
+ createdAt: z.coerce.date(),
359
+ hasStripeAccount: z.boolean(),
360
+ hasActiveSubscription: z.boolean()
361
+ })));
310
362
  const contract = {
363
+ teams: { list: { v1: listTeamsContractV1 } },
311
364
  analytics: { get: { v1: getProjectAnalyticsContractV1 } },
312
365
  deployments: {
313
366
  list: { v1: listProjectDeploymentsContractV1 },
@@ -321,9 +374,11 @@ const contract = {
321
374
  deploy: { v1: deployEnvironmentContractV1 }
322
375
  },
323
376
  projects: {
377
+ update: { v1: updateProjectContractV1 },
324
378
  get: { v1: getProjectContractV1 },
325
379
  list: { v1: listProjectsContractV1 },
326
- create: { v1: createProjectContractV1 }
380
+ create: { v1: createProjectContractV1 },
381
+ delete: { v1: deleteProjectContractV1 }
327
382
  }
328
383
  };
329
384
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alpic-ai/api",
3
- "version": "0.0.0-staging.a2e3bbd",
3
+ "version": "0.0.0-staging.a31e46e",
4
4
  "description": "Contract for the Alpic API",
5
5
  "type": "module",
6
6
  "main": "./dist/index.mjs",
@@ -17,12 +17,11 @@
17
17
  "author": "Alpic",
18
18
  "license": "ISC",
19
19
  "dependencies": {
20
- "@orpc/contract": "^1.13.4",
20
+ "@orpc/contract": "^1.13.6",
21
21
  "zod": "^4.3.6"
22
22
  },
23
23
  "devDependencies": {
24
24
  "@total-typescript/tsconfig": "^1.0.4",
25
- "biome": "^0.3.3",
26
25
  "shx": "^0.4.0",
27
26
  "tsdown": "^0.20.3",
28
27
  "typescript": "^5.9.3",