@unchainedshop/core-bookmarks 4.0.0-rc.9 → 4.0.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/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/module/configureBookmarksModule.d.ts +2 -2
- package/lib/module/configureBookmarksModule.d.ts.map +1 -1
- package/lib/module/configureBookmarksModule.js.map +1 -1
- 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 +3 -3
- package/src/module/configureBookmarksModule.ts +2 -2
- package/tsconfig.json +2 -1
|
@@ -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"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { mongodb, TimestampFields, ModuleInput } from '@unchainedshop/mongodb';
|
|
2
2
|
export type Bookmark = {
|
|
3
|
-
_id
|
|
3
|
+
_id: string;
|
|
4
4
|
userId: string;
|
|
5
5
|
productId: string;
|
|
6
6
|
meta?: any;
|
|
7
7
|
} & TimestampFields;
|
|
8
8
|
export declare const configureBookmarksModule: ({ db }: ModuleInput<Record<string, never>>) => Promise<{
|
|
9
9
|
findBookmarksByUserId: (userId: string) => Promise<Bookmark[]>;
|
|
10
|
-
findBookmarkById: (bookmarkId: string) => Promise<Bookmark>;
|
|
10
|
+
findBookmarkById: (bookmarkId: string) => Promise<mongodb.WithId<Bookmark> | null>;
|
|
11
11
|
findBookmarks: (query: mongodb.Filter<Bookmark>) => Promise<Bookmark[]>;
|
|
12
12
|
replaceUserId: (fromUserId: string, toUserId: string, bookmarkIds?: string[]) => Promise<number>;
|
|
13
13
|
deleteByUserId: (userId: string) => Promise<number>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configureBookmarksModule.d.ts","sourceRoot":"","sources":["../../src/module/configureBookmarksModule.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,OAAO,EACP,eAAe,EACf,WAAW,EACZ,MAAM,wBAAwB,CAAC;AAKhC,MAAM,MAAM,QAAQ,GAAG;IACrB,GAAG,
|
|
1
|
+
{"version":3,"file":"configureBookmarksModule.d.ts","sourceRoot":"","sources":["../../src/module/configureBookmarksModule.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,OAAO,EACP,eAAe,EACf,WAAW,EACZ,MAAM,wBAAwB,CAAC;AAKhC,MAAM,MAAM,QAAQ,GAAG;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,GAAG,CAAC;CACZ,GAAG,eAAe,CAAC;AAEpB,eAAO,MAAM,wBAAwB,GAAU,QAAQ,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;oCAO/C,MAAM,KAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;mCAE7B,MAAM;2BAId,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;gCAK7D,MAAM,YACR,MAAM,gBACF,MAAM,EAAE,KACrB,OAAO,CAAC,MAAM,CAAC;6BAaa,MAAM;mCAMA,MAAM;;yBAehB,MAAM,OAAO,OAAO,CAAC,QAAQ,CAAC;yBAa9B,MAAM;EAMpC,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,wBAAwB,CAAC,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configureBookmarksModule.js","sourceRoot":"","sources":["../../src/module/configureBookmarksModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EACL,oBAAoB,EACpB,kBAAkB,GAInB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAEnE,MAAM,eAAe,GAAa,CAAC,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,CAAC,CAAC;AAS5F,MAAM,CAAC,MAAM,wBAAwB,GAAG,KAAK,EAAE,EAAE,EAAE,EAAsC,EAAE,EAAE;IAC3F,cAAc,CAAC,eAAe,CAAC,CAAC;IAEhC,MAAM,SAAS,GAAG,MAAM,mBAAmB,CAAC,EAAE,CAAC,CAAC;IAEhD,OAAO;QACL,UAAU;QACV,qBAAqB,EAAE,KAAK,EAAE,MAAc,EAAuB,EAAE,CACnE,SAAS,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE;QACtC,gBAAgB,EAAE,KAAK,EAAE,UAAkB,
|
|
1
|
+
{"version":3,"file":"configureBookmarksModule.js","sourceRoot":"","sources":["../../src/module/configureBookmarksModule.ts"],"names":[],"mappings":"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"}
|
|
@@ -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": "4.0.0
|
|
3
|
+
"version": "4.0.0",
|
|
4
4
|
"main": "lib/bookmarks-index.js",
|
|
5
5
|
"types": "lib/bookmarks-index.d.ts",
|
|
6
6
|
"type": "module",
|
|
@@ -31,8 +31,8 @@
|
|
|
31
31
|
},
|
|
32
32
|
"homepage": "https://github.com/unchainedshop/unchained#readme",
|
|
33
33
|
"dependencies": {
|
|
34
|
-
"@unchainedshop/events": "^4.0.0
|
|
35
|
-
"@unchainedshop/mongodb": "^4.0.0
|
|
34
|
+
"@unchainedshop/events": "^4.0.0",
|
|
35
|
+
"@unchainedshop/mongodb": "^4.0.0"
|
|
36
36
|
},
|
|
37
37
|
"devDependencies": {
|
|
38
38
|
"@types/node": "^24.0.13",
|
|
@@ -11,7 +11,7 @@ import { BookmarksCollection } from '../db/BookmarksCollection.js';
|
|
|
11
11
|
const BOOKMARK_EVENTS: string[] = ['BOOKMARK_CREATE', 'BOOKMARK_UPDATE', 'BOOKMARK_REMOVE'];
|
|
12
12
|
|
|
13
13
|
export type Bookmark = {
|
|
14
|
-
_id
|
|
14
|
+
_id: string;
|
|
15
15
|
userId: string;
|
|
16
16
|
productId: string;
|
|
17
17
|
meta?: any;
|
|
@@ -26,7 +26,7 @@ export const configureBookmarksModule = async ({ db }: ModuleInput<Record<string
|
|
|
26
26
|
// Queries
|
|
27
27
|
findBookmarksByUserId: async (userId: string): Promise<Bookmark[]> =>
|
|
28
28
|
Bookmarks.find({ userId }).toArray(),
|
|
29
|
-
findBookmarkById: async (bookmarkId: string)
|
|
29
|
+
findBookmarkById: async (bookmarkId: string) => {
|
|
30
30
|
const filter = generateDbFilterById(bookmarkId);
|
|
31
31
|
return Bookmarks.findOne(filter, {});
|
|
32
32
|
},
|