@liforma/publisher 0.1.2 → 0.4.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.
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # @liforma/publisher
2
2
 
3
- Server SDK for Liforma programmatic authoring — upload images, create locations/places/clothes/hair/characters, and publish experiences.
3
+ Server SDK for the Liforma Publisher API — upload images, create locations, wrap places, create clothes/hair/characters, and publish experiences.
4
4
 
5
5
  ```bash
6
6
  npm install @liforma/publisher
@@ -10,7 +10,8 @@ npm install @liforma/publisher
10
10
  import { createPublisher } from '@liforma/publisher';
11
11
 
12
12
  const publisher = createPublisher(process.env.LIFORMA_PROJECT_ID!, {
13
- apiKey: process.env.LIFORMA_API_KEY!
13
+ apiKey: process.env.LIFORMA_API_KEY!,
14
+ retryPolicy: { maxAttempts: 3 }
14
15
  });
15
16
 
16
17
  const background = await publisher.uploadImage(lobbyPng, { contentType: 'image/png' });
@@ -18,6 +19,14 @@ const location = await publisher.createLocation({ name: 'Hotel lobby', image: ba
18
19
  const place = await publisher.createPlace({ name: 'Hotel lobby', locationId: location.id });
19
20
  ```
20
21
 
22
+ Reload with `getCharacter`, `getPlace`, `getExperience`, and `getLocation`. GET still works after archive and includes public `status`. Edit drafts with `update*` — `updateExperience` does not publish. Archive with `archive*`, undo with `restore*`, and permanently remove with `delete*` only after archive. Pass `forceNew: true` on plate creates to skip content-addressed reuse.
23
+
24
+ Long-running creates poll durable Publisher jobs. Use `start*` to keep the job handle, `jobs.wait(jobId)` to resume polling, `jobs.watch(jobId)` for progress, and `jobs.retry(jobId)` after a failed job. Polling a job may resume serverless processing.
25
+
26
+ `jobs.wait` and `jobs.watch` throw `LiformaPublisherError` for failed or incomplete jobs. `error.job` contains the typed last job. `JOB_WAIT_TIMEOUT` only stops local waiting and is not retryable; resume explicitly with `jobs.wait(jobId)`. HTTP retries are bounded, honor `Retry-After`, and apply only to GET/PATCH, retry-safe job/upload operations, and the presigned upload PUT—not resource creates.
27
+
28
+ Experience responses describe the current draft. Use `hasPublishedRevision` and `hasUnpublishedChanges`; `published` is a deprecated 0.x compatibility alias.
29
+
21
30
  Use a **live** API key on the server only. Never ship this package or the key to a browser.
22
31
 
23
32
  Docs (alpha): https://docs.liforma.ai/_alpha/publisher-sdk
@@ -0,0 +1,4 @@
1
+ export { LiformaPublisherError, isRetryableError } from './errors.js';
2
+ export type * from './index.js';
3
+ export declare function createPublisher(): never;
4
+ //# sourceMappingURL=browser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACtE,mBAAmB,YAAY,CAAC;AAEhC,wBAAgB,eAAe,IAAI,KAAK,CAIvC"}
@@ -0,0 +1,5 @@
1
+ export { LiformaPublisherError, isRetryableError } from './errors.js';
2
+ export function createPublisher() {
3
+ throw new Error('@liforma/publisher is server-only and cannot be used in a browser bundle. Call it from server code.');
4
+ }
5
+ //# sourceMappingURL=browser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browser.js","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAGtE,MAAM,UAAU,eAAe;IAC9B,MAAM,IAAI,KAAK,CACd,qGAAqG,CACrG,CAAC;AACH,CAAC"}
@@ -1,15 +1,18 @@
1
1
  import { type WaitOptions } from './jobs.js';
2
- import { type AuthoringAvatar, type AuthoringJob, type CharacterResource, type ClothesResource, type CreatePublishResponse, type ExperienceResource, type HairResource, type LocationResource, type PlaceResource } from './schemas.js';
2
+ import { type Avatar, type PersonaEthnicity, type PersonaGender, type PublishJob, type CharacterResource, type ClothesResource, type CreateClothesPublishResponse, type CreateHairPublishResponse, type CreateLocationPublishResponse, type ExperienceResource, type HairResource, type LocationResource, type PlaceResource } from './schemas.js';
3
3
  import type { ImageBytes } from './hash.js';
4
+ import { type RetryPolicy } from './retry.js';
4
5
  import { type UploadedImage } from './upload.js';
5
6
  export type CreatePublisherOptions = {
6
7
  readonly apiKey?: string;
7
8
  readonly baseUrl?: string;
8
9
  readonly fetch?: typeof fetch;
10
+ readonly retryPolicy?: RetryPolicy;
9
11
  };
10
12
  export type BackgroundMode = 'remove' | 'transparent';
11
13
  export type PollableCreateOptions = WaitOptions & {
12
14
  readonly externalId?: string;
15
+ readonly forceNew?: boolean;
13
16
  };
14
17
  export type CreateClothesInput = PollableCreateOptions & {
15
18
  readonly avatarId: string;
@@ -42,6 +45,9 @@ export type CreateCharacterInput = {
42
45
  readonly hairId?: string;
43
46
  readonly personality?: string;
44
47
  readonly generalInstructions?: string;
48
+ readonly gender?: PersonaGender;
49
+ readonly age?: number;
50
+ readonly ethnicity?: PersonaEthnicity;
45
51
  readonly externalId?: string;
46
52
  readonly signal?: AbortSignal;
47
53
  };
@@ -58,10 +64,42 @@ export type CreateExperienceInput = {
58
64
  readonly externalId?: string;
59
65
  readonly signal?: AbortSignal;
60
66
  };
67
+ export type UpdateCharacterInput = {
68
+ readonly avatarId?: string;
69
+ readonly name?: string;
70
+ readonly voice?: string;
71
+ readonly sttLang?: string;
72
+ readonly clothesId?: string | null;
73
+ readonly hairId?: string | null;
74
+ readonly personality?: string | null;
75
+ readonly generalInstructions?: string | null;
76
+ readonly gender?: PersonaGender | null;
77
+ readonly age?: number | null;
78
+ readonly ethnicity?: PersonaEthnicity | null;
79
+ readonly signal?: AbortSignal;
80
+ };
81
+ export type UpdatePlaceInput = {
82
+ readonly name?: string;
83
+ readonly locationId?: string;
84
+ readonly signal?: AbortSignal;
85
+ };
86
+ export type UpdateHairInput = {
87
+ readonly name: string;
88
+ readonly signal?: AbortSignal;
89
+ };
90
+ export type UpdateClothesInput = {
91
+ readonly name: string;
92
+ readonly signal?: AbortSignal;
93
+ };
61
94
  export type UpdateExperienceInput = {
62
95
  readonly title?: string;
63
96
  readonly slug?: string;
64
97
  readonly attributes?: Record<string, string>;
98
+ readonly characterId?: string;
99
+ readonly placeId?: string;
100
+ readonly startingMessage?: string;
101
+ readonly systemInstructions?: string;
102
+ readonly introduction?: string;
65
103
  readonly signal?: AbortSignal;
66
104
  };
67
105
  export declare function createPublisher(projectId: string, options?: CreatePublisherOptions): {
@@ -75,65 +113,128 @@ export declare function createPublisher(projectId: string, options?: CreatePubli
75
113
  contentType: string;
76
114
  signal?: AbortSignal;
77
115
  }) => Promise<UploadedImage>;
78
- listAvatars: (signal?: AbortSignal) => Promise<AuthoringAvatar[]>;
79
- startClothes: (input: CreateClothesInput) => Promise<CreatePublishResponse>;
116
+ listAvatars: (signal?: AbortSignal) => Promise<Avatar[]>;
117
+ startClothes: (input: CreateClothesInput) => Promise<CreateClothesPublishResponse>;
80
118
  createClothes: (input: CreateClothesInput) => Promise<ClothesResource>;
81
119
  getClothes: (clothesId: string, signal?: AbortSignal) => Promise<{
82
120
  kind: "clothes";
83
121
  id: string;
84
122
  avatarId: string;
85
123
  name: string;
86
- status: string;
124
+ status: "processing" | "ready" | "failed" | "archived";
87
125
  source: string;
88
- renderKind: string;
89
- catalogueKey: string | null;
90
- assetPath: string | null;
91
126
  externalId: string | null;
92
127
  createdAt: string;
93
128
  updatedAt: string;
94
129
  }>;
95
- startHair: (input: CreateHairInput) => Promise<CreatePublishResponse>;
130
+ updateClothes: (clothesId: string, input: UpdateClothesInput) => Promise<ClothesResource>;
131
+ startHair: (input: CreateHairInput) => Promise<CreateHairPublishResponse>;
96
132
  createHair: (input: CreateHairInput) => Promise<HairResource>;
97
133
  getHair: (hairId: string, signal?: AbortSignal) => Promise<{
98
134
  kind: "hair";
99
135
  id: string;
100
136
  avatarId: string;
101
137
  name: string;
102
- status: string;
138
+ status: "processing" | "ready" | "failed" | "archived";
103
139
  source: string;
104
- catalogueKey: string | null;
105
- assetPath: string | null;
106
140
  externalId: string | null;
107
141
  createdAt: string;
108
142
  updatedAt: string;
109
143
  }>;
110
- startLocation: (input: CreateLocationInput) => Promise<CreatePublishResponse>;
144
+ updateHair: (hairId: string, input: UpdateHairInput) => Promise<HairResource>;
145
+ startLocation: (input: CreateLocationInput) => Promise<CreateLocationPublishResponse>;
111
146
  createLocation: (input: CreateLocationInput) => Promise<LocationResource>;
112
147
  getLocation: (locationId: string, signal?: AbortSignal) => Promise<{
113
148
  kind: "location";
114
149
  id: string;
115
- status: string;
150
+ status: "processing" | "ready" | "failed" | "archived";
116
151
  name: string;
117
152
  depthEncoding: string | null;
118
153
  externalId: string | null;
154
+ style?: string | null | undefined;
155
+ }>;
156
+ getPlace: (placeId: string, signal?: AbortSignal) => Promise<{
157
+ id: string;
158
+ name: string;
159
+ locationId: string;
160
+ status: "archived" | "active";
161
+ externalId: string | null;
162
+ createdAt: string;
163
+ updatedAt: string;
164
+ style?: string | null | undefined;
119
165
  }>;
120
166
  createPlace: (input: CreatePlaceInput) => Promise<PlaceResource>;
167
+ getCharacter: (characterId: string, signal?: AbortSignal) => Promise<{
168
+ id: string;
169
+ projectId: string;
170
+ name: string;
171
+ avatarId: string;
172
+ voice: string;
173
+ sttLang: string;
174
+ clothesId: string | null;
175
+ hairId: string | null;
176
+ personality: string | null;
177
+ generalInstructions: string | null;
178
+ status: "archived" | "active";
179
+ externalId: string | null;
180
+ createdAt: string;
181
+ updatedAt: string;
182
+ gender?: "female" | "male" | "non-binary" | null | undefined;
183
+ age?: number | null | undefined;
184
+ ethnicity?: "african" | "east-asian" | "european" | "indigenous" | "mediterranean" | "middle-eastern" | "mixed" | "north-african" | "pacific-islander" | "south-asian" | "southeast-asian" | null | undefined;
185
+ style?: string | null | undefined;
186
+ }>;
121
187
  createCharacter: (input: CreateCharacterInput) => Promise<CharacterResource>;
188
+ updateCharacter: (characterId: string, input: UpdateCharacterInput) => Promise<CharacterResource>;
189
+ updatePlace: (placeId: string, input: UpdatePlaceInput) => Promise<PlaceResource>;
122
190
  createExperience: (input: CreateExperienceInput) => Promise<ExperienceResource>;
123
191
  getExperience: (experienceId: string, signal?: AbortSignal) => Promise<ExperienceResource>;
124
192
  updateExperience: (experienceId: string, input: UpdateExperienceInput) => Promise<ExperienceResource>;
125
193
  publishExperience: (experienceId: string, signal?: AbortSignal) => Promise<ExperienceResource>;
194
+ archiveExperience: (experienceId: string, signal?: AbortSignal) => Promise<ExperienceResource>;
195
+ restoreExperience: (experienceId: string, signal?: AbortSignal) => Promise<ExperienceResource>;
196
+ deleteExperience: (experienceId: string, signal?: AbortSignal) => Promise<{
197
+ deleted: true;
198
+ id: string;
199
+ }>;
200
+ archiveCharacter: (characterId: string, signal?: AbortSignal) => Promise<CharacterResource>;
201
+ restoreCharacter: (characterId: string, signal?: AbortSignal) => Promise<CharacterResource>;
202
+ deleteCharacter: (characterId: string, signal?: AbortSignal) => Promise<{
203
+ deleted: true;
204
+ id: string;
205
+ }>;
206
+ archivePlace: (placeId: string, signal?: AbortSignal) => Promise<PlaceResource>;
207
+ restorePlace: (placeId: string, signal?: AbortSignal) => Promise<PlaceResource>;
208
+ deletePlace: (placeId: string, signal?: AbortSignal) => Promise<{
209
+ deleted: true;
210
+ id: string;
211
+ }>;
212
+ archiveLocation: (locationId: string, signal?: AbortSignal) => Promise<LocationResource>;
213
+ restoreLocation: (locationId: string, signal?: AbortSignal) => Promise<LocationResource>;
214
+ deleteLocation: (locationId: string, signal?: AbortSignal) => Promise<{
215
+ deleted: true;
216
+ id: string;
217
+ }>;
218
+ archiveClothes: (clothesId: string, signal?: AbortSignal) => Promise<ClothesResource>;
219
+ restoreClothes: (clothesId: string, signal?: AbortSignal) => Promise<ClothesResource>;
220
+ deleteClothes: (clothesId: string, signal?: AbortSignal) => Promise<{
221
+ deleted: true;
222
+ id: string;
223
+ }>;
224
+ archiveHair: (hairId: string, signal?: AbortSignal) => Promise<HairResource>;
225
+ restoreHair: (hairId: string, signal?: AbortSignal) => Promise<HairResource>;
226
+ deleteHair: (hairId: string, signal?: AbortSignal) => Promise<{
227
+ deleted: true;
228
+ id: string;
229
+ }>;
126
230
  jobs: {
127
231
  get: (jobId: string, signal?: AbortSignal) => Promise<{
128
232
  id: string;
129
- status: "queued" | "running" | "waiting_processor" | "succeeded" | "failed";
130
- kind: "location" | "clothes" | "hair";
233
+ status: "failed" | "queued" | "running" | "waiting_processor" | "succeeded";
234
+ kind: "clothes" | "hair" | "location";
131
235
  pollUrl: string;
132
236
  targetId: string;
133
237
  requiredOk: boolean;
134
- claimCount: number;
135
- failureCount: number;
136
- nextRunAt: string | null;
137
238
  stage: string | null;
138
239
  progress: {
139
240
  requiredVerified: number;
@@ -143,26 +244,14 @@ export declare function createPublisher(projectId: string, options?: CreatePubli
143
244
  code: string;
144
245
  message: string;
145
246
  } | null;
146
- enrichment: {
147
- status: "running" | "failed" | "pending" | "complete" | "not_applicable";
148
- verified: number;
149
- total: number;
150
- error: {
151
- code: string;
152
- message: string;
153
- } | null;
154
- };
155
247
  }>;
156
248
  wait: (jobId: string, waitOptions?: WaitOptions) => Promise<{
157
249
  id: string;
158
- status: "queued" | "running" | "waiting_processor" | "succeeded" | "failed";
159
- kind: "location" | "clothes" | "hair";
250
+ status: "failed" | "queued" | "running" | "waiting_processor" | "succeeded";
251
+ kind: "clothes" | "hair" | "location";
160
252
  pollUrl: string;
161
253
  targetId: string;
162
254
  requiredOk: boolean;
163
- claimCount: number;
164
- failureCount: number;
165
- nextRunAt: string | null;
166
255
  stage: string | null;
167
256
  progress: {
168
257
  requiredVerified: number;
@@ -172,26 +261,14 @@ export declare function createPublisher(projectId: string, options?: CreatePubli
172
261
  code: string;
173
262
  message: string;
174
263
  } | null;
175
- enrichment: {
176
- status: "running" | "failed" | "pending" | "complete" | "not_applicable";
177
- verified: number;
178
- total: number;
179
- error: {
180
- code: string;
181
- message: string;
182
- } | null;
183
- };
184
264
  }>;
185
265
  watch: (jobId: string, waitOptions?: WaitOptions) => AsyncGenerator<{
186
266
  id: string;
187
- status: "queued" | "running" | "waiting_processor" | "succeeded" | "failed";
188
- kind: "location" | "clothes" | "hair";
267
+ status: "failed" | "queued" | "running" | "waiting_processor" | "succeeded";
268
+ kind: "clothes" | "hair" | "location";
189
269
  pollUrl: string;
190
270
  targetId: string;
191
271
  requiredOk: boolean;
192
- claimCount: number;
193
- failureCount: number;
194
- nextRunAt: string | null;
195
272
  stage: string | null;
196
273
  progress: {
197
274
  requiredVerified: number;
@@ -201,25 +278,13 @@ export declare function createPublisher(projectId: string, options?: CreatePubli
201
278
  code: string;
202
279
  message: string;
203
280
  } | null;
204
- enrichment: {
205
- status: "running" | "failed" | "pending" | "complete" | "not_applicable";
206
- verified: number;
207
- total: number;
208
- error: {
209
- code: string;
210
- message: string;
211
- } | null;
212
- };
213
281
  }, {
214
282
  id: string;
215
- status: "queued" | "running" | "waiting_processor" | "succeeded" | "failed";
216
- kind: "location" | "clothes" | "hair";
283
+ status: "failed" | "queued" | "running" | "waiting_processor" | "succeeded";
284
+ kind: "clothes" | "hair" | "location";
217
285
  pollUrl: string;
218
286
  targetId: string;
219
287
  requiredOk: boolean;
220
- claimCount: number;
221
- failureCount: number;
222
- nextRunAt: string | null;
223
288
  stage: string | null;
224
289
  progress: {
225
290
  requiredVerified: number;
@@ -229,27 +294,37 @@ export declare function createPublisher(projectId: string, options?: CreatePubli
229
294
  code: string;
230
295
  message: string;
231
296
  } | null;
232
- enrichment: {
233
- status: "running" | "failed" | "pending" | "complete" | "not_applicable";
234
- verified: number;
235
- total: number;
297
+ }, void>;
298
+ retry: (jobId: string, signal?: AbortSignal) => Promise<{
299
+ job: {
300
+ id: string;
301
+ status: "failed" | "queued" | "running" | "waiting_processor" | "succeeded";
302
+ kind: "clothes" | "hair" | "location";
303
+ pollUrl: string;
304
+ targetId: string;
305
+ requiredOk: boolean;
306
+ stage: string | null;
307
+ progress: {
308
+ requiredVerified: number;
309
+ requiredTotal: number;
310
+ };
236
311
  error: {
237
312
  code: string;
238
313
  message: string;
239
314
  } | null;
240
315
  };
241
- }, void>;
242
- retry: (jobId: string, signal?: AbortSignal) => Promise<{
316
+ clothes: {
317
+ id: string;
318
+ status: "processing" | "ready" | "failed";
319
+ };
320
+ } | {
243
321
  job: {
244
322
  id: string;
245
- status: "queued" | "running" | "waiting_processor" | "succeeded" | "failed";
246
- kind: "location" | "clothes" | "hair";
323
+ status: "failed" | "queued" | "running" | "waiting_processor" | "succeeded";
324
+ kind: "clothes" | "hair" | "location";
247
325
  pollUrl: string;
248
326
  targetId: string;
249
327
  requiredOk: boolean;
250
- claimCount: number;
251
- failureCount: number;
252
- nextRunAt: string | null;
253
328
  stage: string | null;
254
329
  progress: {
255
330
  requiredVerified: number;
@@ -259,24 +334,36 @@ export declare function createPublisher(projectId: string, options?: CreatePubli
259
334
  code: string;
260
335
  message: string;
261
336
  } | null;
262
- enrichment: {
263
- status: "running" | "failed" | "pending" | "complete" | "not_applicable";
264
- verified: number;
265
- total: number;
266
- error: {
267
- code: string;
268
- message: string;
269
- } | null;
337
+ };
338
+ hair: {
339
+ id: string;
340
+ status: "processing" | "ready" | "failed";
341
+ };
342
+ } | {
343
+ job: {
344
+ id: string;
345
+ status: "failed" | "queued" | "running" | "waiting_processor" | "succeeded";
346
+ kind: "clothes" | "hair" | "location";
347
+ pollUrl: string;
348
+ targetId: string;
349
+ requiredOk: boolean;
350
+ stage: string | null;
351
+ progress: {
352
+ requiredVerified: number;
353
+ requiredTotal: number;
270
354
  };
355
+ error: {
356
+ code: string;
357
+ message: string;
358
+ } | null;
271
359
  };
272
- resource: {
273
- kind: "location" | "clothes" | "hair";
360
+ location: {
274
361
  id: string;
275
- status: string;
362
+ status: "processing" | "ready" | "failed";
276
363
  };
277
364
  }>;
278
365
  };
279
366
  };
280
367
  export type Publisher = ReturnType<typeof createPublisher>;
281
- export type { AuthoringJob, UploadedImage, WaitOptions };
368
+ export type { PublishJob, UploadedImage, WaitOptions };
282
369
  //# sourceMappingURL=createPublisher.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"createPublisher.d.ts","sourceRoot":"","sources":["../src/createPublisher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"createPublisher.d.ts","sourceRoot":"","sources":["../src/createPublisher.ts"],"names":[],"mappings":"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"}