@artsy/cohesion 4.362.0 → 4.363.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/CHANGELOG.md CHANGED
@@ -1,3 +1,15 @@
1
+ # v4.363.0 (Tue Jun 23 2026)
2
+
3
+ #### 🚀 Enhancement
4
+
5
+ - chore: add tracking schema for OS Multi-Add feature [#706](https://github.com/artsy/cohesion/pull/706) ([@mzikherman](https://github.com/mzikherman))
6
+
7
+ #### Authors: 1
8
+
9
+ - Matt Zikherman ([@mzikherman](https://github.com/mzikherman))
10
+
11
+ ---
12
+
1
13
  # v4.362.0 (Thu Jun 18 2026)
2
14
 
3
15
  #### 🚀 Enhancement
@@ -163,6 +163,8 @@ export declare enum ContextModule {
163
163
  minimalCTABanner = "minimalCTABanner",
164
164
  moreFromThisSeries = "moreFromThisSeries",
165
165
  moreSeriesByThisArtist = "moreSeriesByThisArtist",
166
+ multiAdd = "multiAdd",
167
+ multiAddReview = "multiAddReview",
166
168
  myCollection = "myCollection",
167
169
  myCollectionAddArtworkAddArtist = "myCollectionAddArtworkAddArtist",
168
170
  myCollectionArtwork = "myCollectionArtwork",
@@ -177,6 +177,8 @@ exports.ContextModule = ContextModule;
177
177
  ContextModule["minimalCTABanner"] = "minimalCTABanner";
178
178
  ContextModule["moreFromThisSeries"] = "moreFromThisSeries";
179
179
  ContextModule["moreSeriesByThisArtist"] = "moreSeriesByThisArtist";
180
+ ContextModule["multiAdd"] = "multiAdd";
181
+ ContextModule["multiAddReview"] = "multiAddReview";
180
182
  ContextModule["myCollection"] = "myCollection";
181
183
  ContextModule["myCollectionAddArtworkAddArtist"] = "myCollectionAddArtworkAddArtist";
182
184
  ContextModule["myCollectionArtwork"] = "myCollectionArtwork";
@@ -93,6 +93,7 @@ export declare enum OwnerType {
93
93
  infiniteDiscoveryArtwork = "infiniteDiscoveryArtwork",
94
94
  infiniteDiscoveryArtist = "infiniteDiscoveryArtist",
95
95
  infiniteDiscoveryOnboarding = "infiniteDiscoveryOnboarding",
96
+ inventory = "inventory",
96
97
  lotsByArtistsYouFollow = "lotsByArtistsYouFollow",
97
98
  lotsForYou = "lotsForYou",
98
99
  marketNews = "marketNews",
@@ -111,6 +111,7 @@ exports.OwnerType = OwnerType;
111
111
  OwnerType["infiniteDiscoveryArtwork"] = "infiniteDiscoveryArtwork";
112
112
  OwnerType["infiniteDiscoveryArtist"] = "infiniteDiscoveryArtist";
113
113
  OwnerType["infiniteDiscoveryOnboarding"] = "infiniteDiscoveryOnboarding";
114
+ OwnerType["inventory"] = "inventory";
114
115
  OwnerType["lotsByArtistsYouFollow"] = "lotsByArtistsYouFollow";
115
116
  OwnerType["lotsForYou"] = "lotsForYou";
116
117
  OwnerType["marketNews"] = "marketNews";
@@ -47,3 +47,10 @@ export * from "./CMS/Events/QuickReplyFlow";
47
47
  export * from "./CMS/Events/SettingsFlow";
48
48
  export * from "./CMS/Events/ShowFlow";
49
49
  export * from "./CMS/Events/UploadArtworkFlow";
50
+ /**
51
+ * Art OS-specific exports
52
+ */
53
+ export * from "./os/Events";
54
+ export * from "./os/Values/OsContextModule";
55
+ export * from "./os/Values/OsOwnerType";
56
+ export * from "./os/Events/MultiAddFlow";
@@ -518,4 +518,52 @@ Object.keys(_UploadArtworkFlow).forEach(function (key) {
518
518
  return _UploadArtworkFlow[key];
519
519
  }
520
520
  });
521
+ });
522
+
523
+ var _Events3 = require("./os/Events");
524
+
525
+ Object.keys(_Events3).forEach(function (key) {
526
+ if (key === "default" || key === "__esModule") return;
527
+ Object.defineProperty(exports, key, {
528
+ enumerable: true,
529
+ get: function get() {
530
+ return _Events3[key];
531
+ }
532
+ });
533
+ });
534
+
535
+ var _OsContextModule = require("./os/Values/OsContextModule");
536
+
537
+ Object.keys(_OsContextModule).forEach(function (key) {
538
+ if (key === "default" || key === "__esModule") return;
539
+ Object.defineProperty(exports, key, {
540
+ enumerable: true,
541
+ get: function get() {
542
+ return _OsContextModule[key];
543
+ }
544
+ });
545
+ });
546
+
547
+ var _OsOwnerType = require("./os/Values/OsOwnerType");
548
+
549
+ Object.keys(_OsOwnerType).forEach(function (key) {
550
+ if (key === "default" || key === "__esModule") return;
551
+ Object.defineProperty(exports, key, {
552
+ enumerable: true,
553
+ get: function get() {
554
+ return _OsOwnerType[key];
555
+ }
556
+ });
557
+ });
558
+
559
+ var _MultiAddFlow = require("./os/Events/MultiAddFlow");
560
+
561
+ Object.keys(_MultiAddFlow).forEach(function (key) {
562
+ if (key === "default" || key === "__esModule") return;
563
+ Object.defineProperty(exports, key, {
564
+ enumerable: true,
565
+ get: function get() {
566
+ return _MultiAddFlow[key];
567
+ }
568
+ });
521
569
  });
@@ -0,0 +1,170 @@
1
+ /**
2
+ * Schemas describing Art OS Multi-Add Artworks events
3
+ * @packageDocumentation
4
+ */
5
+ import { OsContextModule } from "../Values/OsContextModule";
6
+ import { OsOwnerType } from "../Values/OsOwnerType";
7
+ import { OsActionType } from "./index";
8
+ /**
9
+ * A partner clicks "Add From File" to enter the Multi-Add flow and open the drop zone.
10
+ *
11
+ * @example
12
+ * ```
13
+ * {
14
+ * action: "clickedAddFromFile",
15
+ * context_module: "multiAdd",
16
+ * context_page_owner_type: "inventory"
17
+ * }
18
+ * ```
19
+ */
20
+ export interface ClickedAddFromFile {
21
+ action: OsActionType.clickedAddFromFile;
22
+ context_module: OsContextModule.multiAdd;
23
+ context_page_owner_type: OsOwnerType.inventory;
24
+ }
25
+ /**
26
+ * A partner exits the drop zone without dropping a file (nothing is saved).
27
+ *
28
+ * @example
29
+ * ```
30
+ * {
31
+ * action: "clickedExitDropZone",
32
+ * context_module: "multiAdd",
33
+ * context_page_owner_type: "inventory"
34
+ * }
35
+ * ```
36
+ */
37
+ export interface ClickedExitDropZone {
38
+ action: OsActionType.clickedExitDropZone;
39
+ context_module: OsContextModule.multiAdd;
40
+ context_page_owner_type: OsOwnerType.inventory;
41
+ }
42
+ /**
43
+ * A file is accepted by the drop zone and an import session starts (upload to S3,
44
+ * then createArtworkImport with parseWithAI). One event per started session.
45
+ *
46
+ * @example
47
+ * ```
48
+ * {
49
+ * action: "startedArtworkImport",
50
+ * context_module: "multiAdd",
51
+ * context_page_owner_type: "inventory",
52
+ * file_type: "application/pdf"
53
+ * }
54
+ * ```
55
+ */
56
+ export interface StartedArtworkImport {
57
+ action: OsActionType.startedArtworkImport;
58
+ context_module: OsContextModule.multiAdd;
59
+ context_page_owner_type: OsOwnerType.inventory;
60
+ file_type: string;
61
+ }
62
+ /**
63
+ * A partner confirms the review and creates artworks from the import (skipped rows excluded).
64
+ *
65
+ * @example
66
+ * ```
67
+ * {
68
+ * action: "createdImportedArtworks",
69
+ * context_module: "multiAddReview",
70
+ * context_page_owner_type: "inventory",
71
+ * artwork_import_id: "67b646ecbe87376bfeb3f962",
72
+ * row_count: 14,
73
+ * selected_count: 12
74
+ * }
75
+ * ```
76
+ */
77
+ export interface CreatedImportedArtworks {
78
+ action: OsActionType.createdImportedArtworks;
79
+ context_module: OsContextModule.multiAddReview;
80
+ context_page_owner_type: OsOwnerType.inventory;
81
+ artwork_import_id: string;
82
+ row_count: number;
83
+ selected_count: number;
84
+ }
85
+ /**
86
+ * A partner cancels the review session, discarding the import.
87
+ *
88
+ * @example
89
+ * ```
90
+ * {
91
+ * action: "cancelledArtworkImport",
92
+ * context_module: "multiAddReview",
93
+ * context_page_owner_type: "inventory",
94
+ * artwork_import_id: "67b646ecbe87376bfeb3f962"
95
+ * }
96
+ * ```
97
+ */
98
+ export interface CancelledArtworkImport {
99
+ action: OsActionType.cancelledArtworkImport;
100
+ context_module: OsContextModule.multiAddReview;
101
+ context_page_owner_type: OsOwnerType.inventory;
102
+ artwork_import_id: string;
103
+ }
104
+ /**
105
+ * A partner is dropped back into a prior import session that is awaiting review.
106
+ *
107
+ * @example
108
+ * ```
109
+ * {
110
+ * action: "resumedArtworkImport",
111
+ * context_module: "multiAdd",
112
+ * context_page_owner_type: "inventory",
113
+ * artwork_import_id: "67b646ecbe87376bfeb3f962"
114
+ * }
115
+ * ```
116
+ */
117
+ export interface ResumedArtworkImport {
118
+ action: OsActionType.resumedArtworkImport;
119
+ context_module: OsContextModule.multiAdd;
120
+ context_page_owner_type: OsOwnerType.inventory;
121
+ artwork_import_id: string;
122
+ }
123
+ /**
124
+ * Artwork creation for the import finishes successfully.
125
+ *
126
+ * @example
127
+ * ```
128
+ * {
129
+ * action: "completedArtworkImport",
130
+ * context_module: "multiAdd",
131
+ * context_page_owner_type: "inventory",
132
+ * artwork_import_id: "67b646ecbe87376bfeb3f962"
133
+ * }
134
+ * ```
135
+ */
136
+ export interface CompletedArtworkImport {
137
+ action: OsActionType.completedArtworkImport;
138
+ context_module: OsContextModule.multiAdd;
139
+ context_page_owner_type: OsOwnerType.inventory;
140
+ artwork_import_id: string;
141
+ }
142
+ /**
143
+ * A partner corrects a cell in the review table (a flagged cell or an unmatched artist).
144
+ * Carries the import row rather than a saved artwork.
145
+ *
146
+ * @example
147
+ * ```
148
+ * {
149
+ * action: "editedArtworkField",
150
+ * context_module: "multiAddReview",
151
+ * context_page_owner_type: "inventory",
152
+ * artwork_import_id: "67b646ecbe87376bfeb3f962",
153
+ * import_row_id: "a1b2c3d4",
154
+ * field: "title",
155
+ * old_value: "Untitld",
156
+ * new_value: "Untitled"
157
+ * }
158
+ * ```
159
+ */
160
+ export interface EditedArtworkField {
161
+ action: OsActionType.editedArtworkField;
162
+ context_module: OsContextModule.multiAddReview;
163
+ context_page_owner_type: OsOwnerType.inventory;
164
+ artwork_import_id: string;
165
+ import_row_id: string;
166
+ field: string;
167
+ old_value: string;
168
+ new_value: string;
169
+ }
170
+ export type OsMultiAddFlow = ClickedAddFromFile | ClickedExitDropZone | StartedArtworkImport | CreatedImportedArtworks | CancelledArtworkImport | ResumedArtworkImport | CompletedArtworkImport | EditedArtworkField;
@@ -0,0 +1 @@
1
+ "use strict";
@@ -0,0 +1,46 @@
1
+ import { OsMultiAddFlow } from "./MultiAddFlow";
2
+ /**
3
+ * List of valid schemas for Art OS analytics actions
4
+ *
5
+ * Each event describes one ActionType
6
+ */
7
+ export type OsEvent = OsMultiAddFlow;
8
+ /**
9
+ * List of all Art OS actions
10
+ *
11
+ * Each OsActionType corresponds with a table in Redshift.
12
+ */
13
+ export declare enum OsActionType {
14
+ /**
15
+ * Corresponds to {@link CancelledArtworkImport}
16
+ */
17
+ cancelledArtworkImport = "cancelledArtworkImport",
18
+ /**
19
+ * Corresponds to {@link ClickedAddFromFile}
20
+ */
21
+ clickedAddFromFile = "clickedAddFromFile",
22
+ /**
23
+ * Corresponds to {@link ClickedExitDropZone}
24
+ */
25
+ clickedExitDropZone = "clickedExitDropZone",
26
+ /**
27
+ * Corresponds to {@link CompletedArtworkImport}
28
+ */
29
+ completedArtworkImport = "completedArtworkImport",
30
+ /**
31
+ * Corresponds to {@link CreatedImportedArtworks}
32
+ */
33
+ createdImportedArtworks = "createdImportedArtworks",
34
+ /**
35
+ * Corresponds to {@link EditedArtworkField}
36
+ */
37
+ editedArtworkField = "editedArtworkField",
38
+ /**
39
+ * Corresponds to {@link ResumedArtworkImport}
40
+ */
41
+ resumedArtworkImport = "resumedArtworkImport",
42
+ /**
43
+ * Corresponds to {@link StartedArtworkImport}
44
+ */
45
+ startedArtworkImport = "startedArtworkImport"
46
+ }
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.OsActionType = void 0;
7
+
8
+ /**
9
+ * List of valid schemas for Art OS analytics actions
10
+ *
11
+ * Each event describes one ActionType
12
+ */
13
+
14
+ /**
15
+ * List of all Art OS actions
16
+ *
17
+ * Each OsActionType corresponds with a table in Redshift.
18
+ */
19
+ var OsActionType;
20
+ exports.OsActionType = OsActionType;
21
+
22
+ (function (OsActionType) {
23
+ OsActionType["cancelledArtworkImport"] = "cancelledArtworkImport";
24
+ OsActionType["clickedAddFromFile"] = "clickedAddFromFile";
25
+ OsActionType["clickedExitDropZone"] = "clickedExitDropZone";
26
+ OsActionType["completedArtworkImport"] = "completedArtworkImport";
27
+ OsActionType["createdImportedArtworks"] = "createdImportedArtworks";
28
+ OsActionType["editedArtworkField"] = "editedArtworkField";
29
+ OsActionType["resumedArtworkImport"] = "resumedArtworkImport";
30
+ OsActionType["startedArtworkImport"] = "startedArtworkImport";
31
+ })(OsActionType || (exports.OsActionType = OsActionType = {}));
@@ -0,0 +1,10 @@
1
+ /**
2
+ * All context modules available for Art OS
3
+ *
4
+ * A component where an action is triggered
5
+ * @packageDocumentation
6
+ */
7
+ export declare enum OsContextModule {
8
+ multiAdd = "multiAdd",
9
+ multiAddReview = "multiAddReview"
10
+ }
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.OsContextModule = void 0;
7
+
8
+ /**
9
+ * All context modules available for Art OS
10
+ *
11
+ * A component where an action is triggered
12
+ * @packageDocumentation
13
+ */
14
+ var OsContextModule;
15
+ exports.OsContextModule = OsContextModule;
16
+
17
+ (function (OsContextModule) {
18
+ OsContextModule["multiAdd"] = "multiAdd";
19
+ OsContextModule["multiAddReview"] = "multiAddReview";
20
+ })(OsContextModule || (exports.OsContextModule = OsContextModule = {}));
@@ -0,0 +1,8 @@
1
+ /**
2
+ * All owner types available for Art OS
3
+ *
4
+ * @packageDocumentation
5
+ */
6
+ export declare enum OsOwnerType {
7
+ inventory = "inventory"
8
+ }
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.OsOwnerType = void 0;
7
+
8
+ /**
9
+ * All owner types available for Art OS
10
+ *
11
+ * @packageDocumentation
12
+ */
13
+ var OsOwnerType;
14
+ exports.OsOwnerType = OsOwnerType;
15
+
16
+ (function (OsOwnerType) {
17
+ OsOwnerType["inventory"] = "inventory";
18
+ })(OsOwnerType || (exports.OsOwnerType = OsOwnerType = {}));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@artsy/cohesion",
3
- "version": "4.362.0",
3
+ "version": "4.363.0",
4
4
  "description": "Analytics schema",
5
5
  "main": "dist/index.js",
6
6
  "publishConfig": {