@unchainedshop/core-bookmarks 3.1.10 → 3.1.13
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/lib/db/BookmarksSchema.d.ts +3 -0
- package/lib/db/BookmarksSchema.d.ts.map +1 -0
- package/lib/db/BookmarksSchema.js +9 -0
- package/lib/db/BookmarksSchema.js.map +1 -0
- package/lib/service/bookmarkServices.d.ts +3 -0
- package/lib/service/bookmarkServices.d.ts.map +1 -0
- package/lib/service/bookmarkServices.js +5 -0
- package/lib/service/bookmarkServices.js.map +1 -0
- package/lib/service/migrateBookmarksService.d.ts +3 -0
- package/lib/service/migrateBookmarksService.d.ts.map +1 -0
- package/lib/service/migrateBookmarksService.js +26 -0
- package/lib/service/migrateBookmarksService.js.map +1 -0
- package/package.json +6 -6
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BookmarksSchema.d.ts","sourceRoot":"","sources":["../../src/db/BookmarksSchema.ts"],"names":[],"mappings":"AACA,OAAO,YAAY,MAAM,cAAc,CAAC;AAExC,eAAO,MAAM,cAAc,cAQ1B,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Schemas } from '@unchainedshop/utils';
|
|
2
|
+
import SimpleSchema from 'simpl-schema';
|
|
3
|
+
export const BookmarkSchema = new SimpleSchema({
|
|
4
|
+
userId: { type: String, required: true },
|
|
5
|
+
productId: { type: String, required: true },
|
|
6
|
+
meta: { type: Object, blackbox: true, required: false },
|
|
7
|
+
...Schemas.timestampFields,
|
|
8
|
+
}, { requiredByDefault: false });
|
|
9
|
+
//# sourceMappingURL=BookmarksSchema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BookmarksSchema.js","sourceRoot":"","sources":["../../src/db/BookmarksSchema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,YAAY,MAAM,cAAc,CAAC;AAExC,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,YAAY,CAC5C;IACE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IACxC,SAAS,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IAC3C,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;IACvD,GAAG,OAAO,CAAC,eAAe;CAC3B,EACD,EAAE,iBAAiB,EAAE,KAAK,EAAE,CAC7B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bookmarkServices.d.ts","sourceRoot":"","sources":["../../src/service/bookmarkServices.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAGrE,eAAO,MAAM,gBAAgB,EAAE,gBAE9B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bookmarkServices.js","sourceRoot":"","sources":["../../src/service/bookmarkServices.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAEvE,MAAM,CAAC,MAAM,gBAAgB,GAAqB;IAChD,gBAAgB,EAAE,uBAAuB;CAC1C,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migrateBookmarksService.d.ts","sourceRoot":"","sources":["../../src/service/migrateBookmarksService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,mCAAmC,CAAC;AAM5E,eAAO,MAAM,uBAAuB,EAAE,uBAuBrC,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
const hashBookmark = (bookmark) => {
|
|
2
|
+
return `${bookmark.productId}:${bookmark.userId}:${JSON.stringify(bookmark.meta || {})}`;
|
|
3
|
+
};
|
|
4
|
+
export const migrateBookmarksService = async ({ fromUserId, toUserId, shouldMerge }, { modules }) => {
|
|
5
|
+
const fromBookmarks = await modules.bookmarks.findBookmarks({ userId: fromUserId });
|
|
6
|
+
if (!fromBookmarks) {
|
|
7
|
+
// No bookmarks no copy needed
|
|
8
|
+
return;
|
|
9
|
+
}
|
|
10
|
+
if (!shouldMerge) {
|
|
11
|
+
await modules.bookmarks.deleteByUserId(toUserId);
|
|
12
|
+
await modules.bookmarks.replaceUserId(fromUserId, toUserId);
|
|
13
|
+
}
|
|
14
|
+
else {
|
|
15
|
+
const toBookmarks = await modules.bookmarks.findBookmarks({ userId: toUserId });
|
|
16
|
+
const toBookmarkHashes = toBookmarks.map(hashBookmark);
|
|
17
|
+
const newBookmarkIds = fromBookmarks
|
|
18
|
+
.filter((fromBookmark) => {
|
|
19
|
+
const hash = hashBookmark(fromBookmark);
|
|
20
|
+
return !toBookmarkHashes.includes(hash);
|
|
21
|
+
})
|
|
22
|
+
.map((bookmark) => bookmark._id);
|
|
23
|
+
await modules.bookmarks.replaceUserId(fromUserId, toUserId, newBookmarkIds);
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
//# sourceMappingURL=migrateBookmarksService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migrateBookmarksService.js","sourceRoot":"","sources":["../../src/service/migrateBookmarksService.ts"],"names":[],"mappings":"AAEA,MAAM,YAAY,GAAG,CAAC,QAAQ,EAAE,EAAE;IAChC,OAAO,GAAG,QAAQ,CAAC,SAAS,IAAI,QAAQ,CAAC,MAAM,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC;AAC3F,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAA4B,KAAK,EACnE,EAAE,UAAU,EAAE,QAAQ,EAAE,WAAW,EAAE,EACrC,EAAE,OAAO,EAAE,EACX,EAAE;IACF,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;IACpF,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,8BAA8B;QAC9B,OAAO;IACT,CAAC;IACD,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,MAAM,OAAO,CAAC,SAAS,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QACjD,MAAM,OAAO,CAAC,SAAS,CAAC,aAAa,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IAC9D,CAAC;SAAM,CAAC;QACN,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;QAChF,MAAM,gBAAgB,GAAG,WAAW,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QACvD,MAAM,cAAc,GAAG,aAAa;aACjC,MAAM,CAAC,CAAC,YAAY,EAAE,EAAE;YACvB,MAAM,IAAI,GAAG,YAAY,CAAC,YAAY,CAAC,CAAC;YACxC,OAAO,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC1C,CAAC,CAAC;aACD,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QACnC,MAAM,OAAO,CAAC,SAAS,CAAC,aAAa,CAAC,UAAU,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAC;IAC9E,CAAC;AACH,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@unchainedshop/core-bookmarks",
|
|
3
|
-
"version": "3.1.
|
|
3
|
+
"version": "3.1.13",
|
|
4
4
|
"main": "lib/bookmarks-index.js",
|
|
5
5
|
"types": "lib/bookmarks-index.d.ts",
|
|
6
6
|
"type": "module",
|
|
@@ -31,12 +31,12 @@
|
|
|
31
31
|
},
|
|
32
32
|
"homepage": "https://github.com/unchainedshop/unchained#readme",
|
|
33
33
|
"dependencies": {
|
|
34
|
-
"@unchainedshop/events": "^3.1.
|
|
35
|
-
"@unchainedshop/mongodb": "^3.1.
|
|
34
|
+
"@unchainedshop/events": "^3.1.13",
|
|
35
|
+
"@unchainedshop/mongodb": "^3.1.12"
|
|
36
36
|
},
|
|
37
37
|
"devDependencies": {
|
|
38
|
-
"@types/node": "^
|
|
39
|
-
"tsx": "^4.
|
|
40
|
-
"typescript": "^5.8.
|
|
38
|
+
"@types/node": "^24.0.4",
|
|
39
|
+
"tsx": "^4.20.3",
|
|
40
|
+
"typescript": "^5.8.3"
|
|
41
41
|
}
|
|
42
42
|
}
|