@supernova-studio/client 1.31.0 → 1.31.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/index.d.mts +43 -11
- package/dist/index.d.ts +43 -11
- package/dist/index.js +63 -60
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +63 -60
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -5219,6 +5219,7 @@ var ProjectFeature = z179.object({
|
|
|
5219
5219
|
sectionId: Id.optional(),
|
|
5220
5220
|
sortOrder: SortOrder.default(0),
|
|
5221
5221
|
status: ProjectFeatureStatus.default("Draft"),
|
|
5222
|
+
initialPrompt: z179.string(),
|
|
5222
5223
|
updatedAt: z179.coerce.date().optional()
|
|
5223
5224
|
});
|
|
5224
5225
|
var ForgeProjectFigmaNode = z180.object({
|
|
@@ -9463,6 +9464,7 @@ var DTOForgeProjectFeatureCreateInput = z318.object({
|
|
|
9463
9464
|
id: Id,
|
|
9464
9465
|
name: z318.string(),
|
|
9465
9466
|
description: z318.string(),
|
|
9467
|
+
initialPrompt: z318.string(),
|
|
9466
9468
|
sectionId: Id.optional(),
|
|
9467
9469
|
afterFeatureId: Id.nullable().optional()
|
|
9468
9470
|
});
|
|
@@ -17831,6 +17833,59 @@ var LocalProjectActionExecutor = class {
|
|
|
17831
17833
|
//
|
|
17832
17834
|
// Artifacts
|
|
17833
17835
|
//
|
|
17836
|
+
calculateSectionSortOrder(items, afterItemId) {
|
|
17837
|
+
const sortedItems = Array.from(items.values()).sort((a, b) => a.sortOrder - b.sortOrder);
|
|
17838
|
+
const sortOrder = this.calculateSortOrderNoDb(
|
|
17839
|
+
(pId) => sortedItems.find((s) => s.projectId === pId),
|
|
17840
|
+
(pId) => sortedItems.findLast((s) => s.projectId === pId),
|
|
17841
|
+
(pId, id) => sortedItems.find((s) => s.projectId === pId && s.id === id),
|
|
17842
|
+
(pId, sortOrder2) => sortedItems.find((s) => s.projectId === pId && s.sortOrder > sortOrder2),
|
|
17843
|
+
(pId, sortOrder2, step) => items.forEach((s) => s.sortOrder > sortOrder2 && s.projectId === pId ? s.sortOrder += step : {}),
|
|
17844
|
+
this.projectId,
|
|
17845
|
+
afterItemId
|
|
17846
|
+
);
|
|
17847
|
+
return sortOrder ?? 0;
|
|
17848
|
+
}
|
|
17849
|
+
calculateItemSortOrder(items, afterItemId, sectionId) {
|
|
17850
|
+
const sortedItems = Array.from(items.values()).sort((a, b) => a.sortOrder - b.sortOrder);
|
|
17851
|
+
const matchIds = (i, pId, sId) => i.sectionId === sId && i.projectId === pId;
|
|
17852
|
+
const sortOrder = this.calculateSortOrderNoDb(
|
|
17853
|
+
(pId, sId) => sortedItems.find((i) => matchIds(i, pId, sId)),
|
|
17854
|
+
(pId, sId) => sortedItems.findLast((i) => matchIds(i, pId, sId)),
|
|
17855
|
+
(pId, id, sId) => sortedItems.find((i) => i.id === id && matchIds(i, pId, sId)),
|
|
17856
|
+
(pId, sortOrder2, sId) => sortedItems.find((i) => i.sortOrder > sortOrder2 && matchIds(i, pId, sId)),
|
|
17857
|
+
(pId, sortOrder2, step, sId) => items.forEach((i) => i.sortOrder > sortOrder2 && matchIds(i, pId, sId) ? i.sortOrder += step : {}),
|
|
17858
|
+
this.projectId,
|
|
17859
|
+
afterItemId,
|
|
17860
|
+
sectionId ?? void 0
|
|
17861
|
+
);
|
|
17862
|
+
return sortOrder ?? 0;
|
|
17863
|
+
}
|
|
17864
|
+
// See also calculateSectionSortOrder and calculateSectionedItemSortOrder
|
|
17865
|
+
calculateSortOrderNoDb(findFirst, findLast, findUnique, findNext, shiftAfter, projectId, afterItemId, sectionId) {
|
|
17866
|
+
const SORT_ORDER_STEP = 1e3;
|
|
17867
|
+
if (afterItemId === void 0) {
|
|
17868
|
+
const lastSection = findLast(projectId, sectionId);
|
|
17869
|
+
return (lastSection?.sortOrder ?? 0) + SORT_ORDER_STEP;
|
|
17870
|
+
} else if (afterItemId === null) {
|
|
17871
|
+
const firstSection = findFirst(projectId, sectionId);
|
|
17872
|
+
return (firstSection?.sortOrder ?? SORT_ORDER_STEP) - SORT_ORDER_STEP;
|
|
17873
|
+
} else {
|
|
17874
|
+
const targetSection = findUnique(projectId, afterItemId, sectionId);
|
|
17875
|
+
if (!targetSection) return null;
|
|
17876
|
+
const nextSection = findNext(projectId, targetSection.sortOrder, sectionId);
|
|
17877
|
+
if (nextSection) {
|
|
17878
|
+
let newSortOrder = Math.floor((targetSection.sortOrder + nextSection.sortOrder) / 2);
|
|
17879
|
+
if (newSortOrder <= targetSection.sortOrder) {
|
|
17880
|
+
newSortOrder = targetSection.sortOrder + SORT_ORDER_STEP / 2;
|
|
17881
|
+
shiftAfter(projectId, targetSection.sortOrder, SORT_ORDER_STEP, sectionId);
|
|
17882
|
+
}
|
|
17883
|
+
return newSortOrder;
|
|
17884
|
+
} else {
|
|
17885
|
+
return targetSection.sortOrder + SORT_ORDER_STEP;
|
|
17886
|
+
}
|
|
17887
|
+
}
|
|
17888
|
+
}
|
|
17834
17889
|
artifactCreate(trx) {
|
|
17835
17890
|
const { input } = trx;
|
|
17836
17891
|
const { id, afterArtifactId, sectionId } = input;
|
|
@@ -17846,6 +17901,9 @@ var LocalProjectActionExecutor = class {
|
|
|
17846
17901
|
createdByUserId: this.userId
|
|
17847
17902
|
});
|
|
17848
17903
|
}
|
|
17904
|
+
//
|
|
17905
|
+
// Feature
|
|
17906
|
+
//
|
|
17849
17907
|
artifactUpdate(trx) {
|
|
17850
17908
|
const { input } = trx;
|
|
17851
17909
|
const { id } = input;
|
|
@@ -17882,9 +17940,6 @@ var LocalProjectActionExecutor = class {
|
|
|
17882
17940
|
throw new Error(`Cannot delete artifact: artifact ${id} was not found in local storage`);
|
|
17883
17941
|
}
|
|
17884
17942
|
}
|
|
17885
|
-
//
|
|
17886
|
-
// Feature
|
|
17887
|
-
//
|
|
17888
17943
|
featureCreate(trx) {
|
|
17889
17944
|
const { input } = trx;
|
|
17890
17945
|
const { id, afterFeatureId, sectionId } = input;
|
|
@@ -17900,9 +17955,13 @@ var LocalProjectActionExecutor = class {
|
|
|
17900
17955
|
status: "Draft",
|
|
17901
17956
|
updatedAt: /* @__PURE__ */ new Date(),
|
|
17902
17957
|
createdAt: /* @__PURE__ */ new Date(),
|
|
17903
|
-
createdByUserId: this.userId
|
|
17958
|
+
createdByUserId: this.userId,
|
|
17959
|
+
initialPrompt: input.initialPrompt
|
|
17904
17960
|
});
|
|
17905
17961
|
}
|
|
17962
|
+
//
|
|
17963
|
+
// Sections
|
|
17964
|
+
//
|
|
17906
17965
|
featureUpdate(trx) {
|
|
17907
17966
|
const { input } = trx;
|
|
17908
17967
|
const { id } = input;
|
|
@@ -17942,9 +18001,6 @@ var LocalProjectActionExecutor = class {
|
|
|
17942
18001
|
throw new Error(`Cannot delete feature: feature ${id} was not found in local storage`);
|
|
17943
18002
|
}
|
|
17944
18003
|
}
|
|
17945
|
-
//
|
|
17946
|
-
// Sections
|
|
17947
|
-
//
|
|
17948
18004
|
sectionCreate(trx) {
|
|
17949
18005
|
const { input } = trx;
|
|
17950
18006
|
const { id, afterSectionId } = input;
|
|
@@ -18000,59 +18056,6 @@ var LocalProjectActionExecutor = class {
|
|
|
18000
18056
|
throw new Error(`Cannot delete section: section ${id} was not found in local storage`);
|
|
18001
18057
|
}
|
|
18002
18058
|
}
|
|
18003
|
-
calculateSectionSortOrder(items, afterItemId) {
|
|
18004
|
-
const sortedItems = Array.from(items.values()).sort((a, b) => a.sortOrder - b.sortOrder);
|
|
18005
|
-
const sortOrder = this.calculateSortOrderNoDb(
|
|
18006
|
-
(pId) => sortedItems.find((s) => s.projectId === pId),
|
|
18007
|
-
(pId) => sortedItems.findLast((s) => s.projectId === pId),
|
|
18008
|
-
(pId, id) => sortedItems.find((s) => s.projectId === pId && s.id === id),
|
|
18009
|
-
(pId, sortOrder2) => sortedItems.find((s) => s.projectId === pId && s.sortOrder > sortOrder2),
|
|
18010
|
-
(pId, sortOrder2, step) => items.forEach((s) => s.sortOrder > sortOrder2 && s.projectId === pId ? s.sortOrder += step : {}),
|
|
18011
|
-
this.projectId,
|
|
18012
|
-
afterItemId
|
|
18013
|
-
);
|
|
18014
|
-
return sortOrder ?? 0;
|
|
18015
|
-
}
|
|
18016
|
-
calculateItemSortOrder(items, afterItemId, sectionId) {
|
|
18017
|
-
const sortedItems = Array.from(items.values()).sort((a, b) => a.sortOrder - b.sortOrder);
|
|
18018
|
-
const matchIds = (i, pId, sId) => i.sectionId === sId && i.projectId === pId;
|
|
18019
|
-
const sortOrder = this.calculateSortOrderNoDb(
|
|
18020
|
-
(pId, sId) => sortedItems.find((i) => matchIds(i, pId, sId)),
|
|
18021
|
-
(pId, sId) => sortedItems.findLast((i) => matchIds(i, pId, sId)),
|
|
18022
|
-
(pId, id, sId) => sortedItems.find((i) => i.id === id && matchIds(i, pId, sId)),
|
|
18023
|
-
(pId, sortOrder2, sId) => sortedItems.find((i) => i.sortOrder > sortOrder2 && matchIds(i, pId, sId)),
|
|
18024
|
-
(pId, sortOrder2, step, sId) => items.forEach((i) => i.sortOrder > sortOrder2 && matchIds(i, pId, sId) ? i.sortOrder += step : {}),
|
|
18025
|
-
this.projectId,
|
|
18026
|
-
afterItemId,
|
|
18027
|
-
sectionId ?? void 0
|
|
18028
|
-
);
|
|
18029
|
-
return sortOrder ?? 0;
|
|
18030
|
-
}
|
|
18031
|
-
// See also calculateSectionSortOrder and calculateSectionedItemSortOrder
|
|
18032
|
-
calculateSortOrderNoDb(findFirst, findLast, findUnique, findNext, shiftAfter, projectId, afterItemId, sectionId) {
|
|
18033
|
-
const SORT_ORDER_STEP = 1e3;
|
|
18034
|
-
if (afterItemId === void 0) {
|
|
18035
|
-
const lastSection = findLast(projectId, sectionId);
|
|
18036
|
-
return (lastSection?.sortOrder ?? 0) + SORT_ORDER_STEP;
|
|
18037
|
-
} else if (afterItemId === null) {
|
|
18038
|
-
const firstSection = findFirst(projectId, sectionId);
|
|
18039
|
-
return (firstSection?.sortOrder ?? SORT_ORDER_STEP) - SORT_ORDER_STEP;
|
|
18040
|
-
} else {
|
|
18041
|
-
const targetSection = findUnique(projectId, afterItemId, sectionId);
|
|
18042
|
-
if (!targetSection) return null;
|
|
18043
|
-
const nextSection = findNext(projectId, targetSection.sortOrder, sectionId);
|
|
18044
|
-
if (nextSection) {
|
|
18045
|
-
let newSortOrder = Math.floor((targetSection.sortOrder + nextSection.sortOrder) / 2);
|
|
18046
|
-
if (newSortOrder <= targetSection.sortOrder) {
|
|
18047
|
-
newSortOrder = targetSection.sortOrder + SORT_ORDER_STEP / 2;
|
|
18048
|
-
shiftAfter(projectId, targetSection.sortOrder, SORT_ORDER_STEP, sectionId);
|
|
18049
|
-
}
|
|
18050
|
-
return newSortOrder;
|
|
18051
|
-
} else {
|
|
18052
|
-
return targetSection.sortOrder + SORT_ORDER_STEP;
|
|
18053
|
-
}
|
|
18054
|
-
}
|
|
18055
|
-
}
|
|
18056
18059
|
};
|
|
18057
18060
|
|
|
18058
18061
|
// src/sync/project-content-repo.ts
|