@musnows/scriverse 0.9.0 → 0.9.2

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/app.js CHANGED
@@ -1626,7 +1626,7 @@ export function createRuntime(options) {
1626
1626
  await cleanupAttachments();
1627
1627
  noContent(response);
1628
1628
  });
1629
- app.post("/api/works", (request, response) => data(response, store.createWork(parse(workSchema, request.body)), 201));
1629
+ app.post("/api/works", (request, response) => data(response, store.createWork(parse(workSchema, request.body), request.authUser?.userId ?? null), 201));
1630
1630
  app.post("/api/works/import", upload.single("file"), async (request, response) => {
1631
1631
  if (!request.file)
1632
1632
  throw new AppError(400, "FILE_REQUIRED", "请选择要导入的 TXT 或 DOCX 文件");
@@ -1644,7 +1644,7 @@ export function createRuntime(options) {
1644
1644
  author: typeof request.body.author === "string" ? request.body.author : "",
1645
1645
  description: typeof request.body.description === "string" ? request.body.description : ""
1646
1646
  });
1647
- data(response, store.createImportedWork(input, originalFileName, extension.slice(1), parsedNovel), 201);
1647
+ data(response, store.createImportedWork(input, originalFileName, extension.slice(1), parsedNovel, request.authUser?.userId ?? null), 201);
1648
1648
  });
1649
1649
  app.get("/api/works/:workId", (request, response) => {
1650
1650
  if (request.query.directory === "volumes") {
@@ -2084,6 +2084,10 @@ export function createRuntime(options) {
2084
2084
  const input = parse(z.object({ isFavorite: z.boolean() }).strict(), request.body);
2085
2085
  data(response, store.setDraftFavorite(request.params.draftId, input.isFavorite));
2086
2086
  });
2087
+ app.patch("/api/drafts/:draftId/pin", (request, response) => {
2088
+ const input = parse(z.object({ isPinned: z.boolean() }).strict(), request.body);
2089
+ data(response, store.setDraftPin(request.params.draftId, input.isPinned));
2090
+ });
2087
2091
  app.patch("/api/drafts/:draftId", (request, response) => {
2088
2092
  const { changeNote, expectedVersionNo, ...input } = parse(draftSchema.partial().extend({
2089
2093
  changeNote: changeNoteSchema,
@@ -2113,6 +2117,12 @@ export function createRuntime(options) {
2113
2117
  publishEntityChange(String(setting.workId), "setting", String(setting.id));
2114
2118
  data(response, setting);
2115
2119
  });
2120
+ app.patch("/api/settings/:settingId/pin", (request, response) => {
2121
+ const input = parse(z.object({ isPinned: z.boolean() }).strict(), request.body);
2122
+ const setting = store.setSettingPin(request.params.settingId, input.isPinned);
2123
+ publishEntityChange(String(setting.workId), "setting", String(setting.id));
2124
+ data(response, setting);
2125
+ });
2116
2126
  app.patch("/api/settings/:settingId", (request, response) => {
2117
2127
  const { changeNote, expectedVersionNo, ...input } = parse(settingSchema.partial().extend({ changeNote: changeNoteSchema, expectedVersionNo: expectedVersionNoSchema }).strict(), request.body);
2118
2128
  const setting = store.updateSetting(request.params.settingId, input, "manual", null, changeNote, expectedVersionNo);
@@ -2206,6 +2216,12 @@ export function createRuntime(options) {
2206
2216
  publishEntityChange(String(character.workId), "character", String(character.id));
2207
2217
  data(response, redactCharacterLinks(character, requestPermissions(request)));
2208
2218
  });
2219
+ app.patch("/api/characters/:characterId/pin", (request, response) => {
2220
+ const input = parse(z.object({ isPinned: z.boolean() }).strict(), request.body);
2221
+ const character = store.setCharacterPin(request.params.characterId, input.isPinned);
2222
+ publishEntityChange(String(character.workId), "character", String(character.id));
2223
+ data(response, redactCharacterLinks(character, requestPermissions(request)));
2224
+ });
2209
2225
  app.patch("/api/characters/:characterId", (request, response) => {
2210
2226
  const { changeNote, expectedVersionNo, ...input } = parse(characterUpdateSchema.extend({ expectedVersionNo: expectedVersionNoSchema }), request.body);
2211
2227
  const character = store.updateCharacter(request.params.characterId, input, "manual", null, changeNote, expectedVersionNo);
@@ -2420,6 +2436,12 @@ export function createRuntime(options) {
2420
2436
  publishEntityChange(String(organization.workId), "organization", String(organization.id));
2421
2437
  data(response, redactOrganizationMembers(organization, requestPermissions(request)));
2422
2438
  });
2439
+ app.patch("/api/organizations/:organizationId/pin", (request, response) => {
2440
+ const input = parse(z.object({ isPinned: z.boolean() }).strict(), request.body);
2441
+ const organization = store.setOrganizationPin(request.params.organizationId, input.isPinned);
2442
+ publishEntityChange(String(organization.workId), "organization", String(organization.id));
2443
+ data(response, redactOrganizationMembers(organization, requestPermissions(request)));
2444
+ });
2423
2445
  app.patch("/api/organizations/:organizationId", (request, response) => {
2424
2446
  const { changeNote, expectedVersionNo, ...input } = parse(organizationSchema.partial().extend({ changeNote: changeNoteSchema, expectedVersionNo: expectedVersionNoSchema }).strict(), request.body);
2425
2447
  const organization = store.updateOrganization(request.params.organizationId, input, "manual", null, changeNote, expectedVersionNo);