@porulle/core 0.54.0 → 0.56.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.
Files changed (32) hide show
  1. package/dist/index.d.ts +2 -0
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +1 -0
  4. package/dist/modules/catalog/brand-service.d.ts +2 -2
  5. package/dist/modules/catalog/brand-service.d.ts.map +1 -1
  6. package/dist/modules/catalog/brand-service.js +3 -3
  7. package/dist/modules/catalog/category-service.d.ts +2 -2
  8. package/dist/modules/catalog/category-service.d.ts.map +1 -1
  9. package/dist/modules/catalog/category-service.js +3 -3
  10. package/dist/modules/catalog/entity-links.d.ts +84 -0
  11. package/dist/modules/catalog/entity-links.d.ts.map +1 -0
  12. package/dist/modules/catalog/entity-links.js +90 -0
  13. package/dist/modules/catalog/import-service.d.ts.map +1 -1
  14. package/dist/modules/catalog/import-service.js +13 -17
  15. package/dist/modules/catalog/repository/index.d.ts +4 -2
  16. package/dist/modules/catalog/repository/index.d.ts.map +1 -1
  17. package/dist/modules/catalog/repository/index.js +10 -4
  18. package/dist/modules/catalog/service.d.ts +6 -0
  19. package/dist/modules/catalog/service.d.ts.map +1 -1
  20. package/dist/modules/catalog/service.js +35 -12
  21. package/dist/modules/media/service.d.ts.map +1 -1
  22. package/dist/modules/media/service.js +3 -0
  23. package/package.json +3 -3
  24. package/src/index.ts +2 -0
  25. package/src/modules/catalog/brand-service.ts +5 -5
  26. package/src/modules/catalog/category-service.ts +5 -5
  27. package/src/modules/catalog/entity-links.ts +158 -0
  28. package/src/modules/catalog/import-service.ts +12 -17
  29. package/src/modules/catalog/repository/index.ts +12 -6
  30. package/src/modules/catalog/service.ts +43 -8
  31. package/src/modules/media/service.ts +4 -0
  32. package/dist/tsconfig.tsbuildinfo +0 -1
package/dist/index.d.ts CHANGED
@@ -70,6 +70,8 @@ export type { DatabaseAdapter } from "./kernel/database/adapter.js";
70
70
  export { isValidFieldPath, validateFieldPath } from "./modules/catalog/ownership.js";
71
71
  export type { FieldPath, FieldOwner } from "./modules/catalog/ownership.js";
72
72
  export type { ImportErrorPolicy, ImportProduct, ImportProductAttributes, ImportProductOption, ImportProductPrice, ImportProductRowResult, ImportProductVariant, ImportProductsOptions, ImportProductsReport, ImportRowFailureCode, } from "./modules/catalog/import-service.js";
73
+ export { writeEntityLinks, removeEntityLinks, linkFieldPaths } from "./modules/catalog/entity-links.js";
74
+ export type { EntityLinkRemovals, EntityLinkRows, EntityMediaRole, WrittenEntityLinks } from "./modules/catalog/entity-links.js";
73
75
  export type { TxContext, WithTransactionOptions, CatalogWriteContext, HookContextCarrier, } from "./kernel/database/tx-context.js";
74
76
  export { createTxContext, reuseOrCreateTxContext, withTransaction, isWriteContextTransactional, resolveWriteContextHookContext, } from "./kernel/database/tx-context.js";
75
77
  export type { TaxAdapter, TaxAddress, TaxCalculationParams, TaxCalculationResult, TaxLineItem, TaxReportParams, TaxVoidParams, } from "./modules/tax/adapter.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -41,6 +41,7 @@ export { defineChannelConnector } from "./modules/channels/adapter.js";
41
41
  export { channelCatalogImageSchema, channelCatalogItemSchema, channelCatalogLocalizedAttributesSchema, channelCatalogOptionTypeSchema, channelCatalogPriceSchema, channelCatalogVariantSchema, channelInventoryLevelSchema, } from "./modules/channels/catalog-schema.js";
42
42
  export { noopStorageAdapter } from "./modules/media/noop-adapter.js";
43
43
  export { isValidFieldPath, validateFieldPath } from "./modules/catalog/ownership.js";
44
+ export { writeEntityLinks, removeEntityLinks, linkFieldPaths } from "./modules/catalog/entity-links.js";
44
45
  export { createTxContext, reuseOrCreateTxContext, withTransaction, isWriteContextTransactional, resolveWriteContextHookContext, } from "./kernel/database/tx-context.js";
45
46
  export { getSchema, buildSchema, getTableNames, getSchemaFiles, pushSchema, } from "./kernel/database/migrate.js";
46
47
  export { consoleEmailAdapter } from "./adapters/console-email.js";
@@ -12,7 +12,7 @@ export declare class BrandService {
12
12
  createBrand(input: CreateBrandInput, actor: Actor | null, ctx?: TxContext): Promise<Result<Brand>>;
13
13
  updateBrand(id: string, input: UpdateBrandInput, actor: Actor | null, ctx?: TxContext): Promise<Result<Brand>>;
14
14
  deleteBrand(id: string, actor: Actor | null, ctx?: TxContext): Promise<Result<void>>;
15
- addToBrand(entityId: string, brandId: string, actor: Actor | null, ctx?: TxContext): Promise<Result<void>>;
16
- removeFromBrand(entityId: string, brandId: string, actor: Actor | null, ctx?: TxContext): Promise<Result<void>>;
15
+ addToBrand(entityId: string, brandId: string, actor: Actor | null, ctx?: TxContext): Promise<Result<boolean>>;
16
+ removeFromBrand(entityId: string, brandId: string, actor: Actor | null, ctx?: TxContext): Promise<Result<boolean>>;
17
17
  }
18
18
  //# sourceMappingURL=brand-service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"brand-service.d.ts","sourceRoot":"","sources":["../../../src/modules/catalog/brand-service.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAMjD,OAAO,EAAW,KAAK,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qCAAqC,CAAC;AACrE,OAAO,KAAK,EACV,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EACjB,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AACnD,qBAAa,YAAY;IACX,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,kBAAkB;IAErD,OAAO,KAAK,IAAI,GAEf;IAED,OAAO,CAAC,aAAa;IAQf,UAAU,CAAC,GAAG,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;IAKrD,WAAW,CAAC,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAYlG,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAc9G,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAUpF,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAgB1G,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;CAYtH"}
1
+ {"version":3,"file":"brand-service.d.ts","sourceRoot":"","sources":["../../../src/modules/catalog/brand-service.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAMjD,OAAO,EAAW,KAAK,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qCAAqC,CAAC;AACrE,OAAO,KAAK,EACV,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EACjB,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AACnD,qBAAa,YAAY;IACX,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,kBAAkB;IAErD,OAAO,KAAK,IAAI,GAEf;IAED,OAAO,CAAC,aAAa;IAQf,UAAU,CAAC,GAAG,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;IAKrD,WAAW,CAAC,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAYlG,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAc9G,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAUpF,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAgB7G,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;CAYzH"}
@@ -95,8 +95,8 @@ export class BrandService {
95
95
  if (!brand) {
96
96
  brand = await this.repo.createBrand({ organizationId: addBrandOrgId, slug: brandId, displayName: brandId, metadata: {} }, ctx);
97
97
  }
98
- await this.repo.addEntityToBrand(entityId, brand.id, 0, ctx);
99
- return Ok(undefined);
98
+ const added = await this.repo.addEntityToBrand(entityId, brand.id, 0, ctx);
99
+ return Ok(added);
100
100
  }
101
101
  async removeFromBrand(entityId, brandId, actor, ctx) {
102
102
  try {
@@ -121,6 +121,6 @@ export class BrandService {
121
121
  const removed = await this.repo.removeEntityFromBrand(entityId, brand?.id ?? brandId, ctx);
122
122
  if (!removed)
123
123
  return Err(new CommerceNotFoundError("Brand assignment not found."));
124
- return Ok(undefined);
124
+ return Ok(true);
125
125
  }
126
126
  }
@@ -16,7 +16,7 @@ export declare class CategoryService {
16
16
  createCategory(input: CreateCategoryInput, actor: Actor | null, ctx?: TxContext): Promise<Result<CategorySummary>>;
17
17
  updateCategory(id: string, input: UpdateCategoryInput, actor: Actor | null, ctx?: TxContext): Promise<Result<CategorySummary>>;
18
18
  deleteCategory(id: string, actor: Actor | null, ctx?: TxContext): Promise<Result<void>>;
19
- addToCategory(entityId: string, categoryId: string, actor: Actor | null, ctx?: TxContext): Promise<Result<void>>;
20
- removeFromCategory(entityId: string, categoryId: string, actor: Actor | null, ctx?: TxContext): Promise<Result<void>>;
19
+ addToCategory(entityId: string, categoryId: string, actor: Actor | null, ctx?: TxContext): Promise<Result<boolean>>;
20
+ removeFromCategory(entityId: string, categoryId: string, actor: Actor | null, ctx?: TxContext): Promise<Result<boolean>>;
21
21
  }
22
22
  //# sourceMappingURL=category-service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"category-service.d.ts","sourceRoot":"","sources":["../../../src/modules/catalog/category-service.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAMjD,OAAO,EAAW,KAAK,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qCAAqC,CAAC;AACrE,OAAO,KAAK,EACV,kBAAkB,EAClB,eAAe,EACf,mBAAmB,EACnB,mBAAmB,EACpB,MAAM,cAAc,CAAC;AACtB,qBAAa,eAAe;IACd,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,kBAAkB;IAErD,OAAO,KAAK,IAAI,GAEf;IAED,OAAO,CAAC,aAAa;IAQf,cAAc,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE;QAAE,eAAe,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC;YASjG,SAAS;IAUjB,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;IAInG,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;IAInG,cAAc,CAAC,KAAK,EAAE,mBAAmB,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;IAalH,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,mBAAmB,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;IAc9H,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAUvF,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAgBhH,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;CAY5H"}
1
+ {"version":3,"file":"category-service.d.ts","sourceRoot":"","sources":["../../../src/modules/catalog/category-service.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAMjD,OAAO,EAAW,KAAK,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qCAAqC,CAAC;AACrE,OAAO,KAAK,EACV,kBAAkB,EAClB,eAAe,EACf,mBAAmB,EACnB,mBAAmB,EACpB,MAAM,cAAc,CAAC;AACtB,qBAAa,eAAe;IACd,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,kBAAkB;IAErD,OAAO,KAAK,IAAI,GAEf;IAED,OAAO,CAAC,aAAa;IAQf,cAAc,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE;QAAE,eAAe,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC;YASjG,SAAS;IAUjB,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;IAInG,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;IAInG,cAAc,CAAC,KAAK,EAAE,mBAAmB,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;IAalH,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,mBAAmB,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;IAc9H,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAUvF,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAgBnH,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;CAY/H"}
@@ -127,8 +127,8 @@ export class CategoryService {
127
127
  if (!category) {
128
128
  category = await this.repo.createCategory({ organizationId: addCatOrgId, slug: categoryId, sortOrder: 0, metadata: {} }, ctx);
129
129
  }
130
- await this.repo.addEntityToCategory(entityId, category.id, 0, ctx);
131
- return Ok(undefined);
130
+ const added = await this.repo.addEntityToCategory(entityId, category.id, 0, ctx);
131
+ return Ok(added);
132
132
  }
133
133
  async removeFromCategory(entityId, categoryId, actor, ctx) {
134
134
  try {
@@ -153,6 +153,6 @@ export class CategoryService {
153
153
  const removed = await this.repo.removeEntityFromCategory(entityId, category?.id ?? categoryId, ctx);
154
154
  if (!removed)
155
155
  return Err(new CommerceNotFoundError("Category assignment not found."));
156
- return Ok(undefined);
156
+ return Ok(true);
157
157
  }
158
158
  }
@@ -0,0 +1,84 @@
1
+ import type { PluginDb } from "../../kernel/database/plugin-types.js";
2
+ import { entityMedia } from "../media/schema.js";
3
+ import { entityBrands, entityCategories, entityTags } from "./schema.js";
4
+ /**
5
+ * THE writer of an entity's link rows — categories, brand, tags, media — for the bulk paths: the
6
+ * page import (`importProducts`) and the channel converge, both of which write links directly
7
+ * rather than one service call per link.
8
+ *
9
+ * - One statement per link class, however many entities the rows span.
10
+ * - Org scope is enforced IN the statement: a row whose entity, or whose category / brand / tag /
11
+ * media asset, belongs to another organization matches nothing and is not written. Callers
12
+ * resolve ids within their org already; this makes a slip a no-write instead of a cross-org link.
13
+ * - Idempotent: a link that already exists is not rewritten and is not returned. What comes back
14
+ * is exactly what changed, which is what a caller versions the entity from (`linkFieldPaths`).
15
+ */
16
+ export type EntityMediaRole = (typeof entityMedia.$inferInsert)["role"];
17
+ export interface EntityLinkRows {
18
+ categories?: ReadonlyArray<{
19
+ entityId: string;
20
+ categoryId: string;
21
+ sortOrder: number;
22
+ }>;
23
+ brands?: ReadonlyArray<{
24
+ entityId: string;
25
+ brandId: string;
26
+ sortOrder: number;
27
+ }>;
28
+ tags?: ReadonlyArray<{
29
+ entityId: string;
30
+ tagId: string;
31
+ }>;
32
+ /** New media links. */
33
+ media?: ReadonlyArray<{
34
+ entityId: string;
35
+ variantId: string | null;
36
+ mediaAssetId: string;
37
+ role: EntityMediaRole;
38
+ sortOrder: number;
39
+ }>;
40
+ /** Existing media links whose role or sort order should become these; unchanged ones write nothing. */
41
+ mediaPlacements?: ReadonlyArray<{
42
+ entityId: string;
43
+ variantId: string | null;
44
+ mediaAssetId: string;
45
+ role: EntityMediaRole;
46
+ sortOrder: number;
47
+ }>;
48
+ }
49
+ export interface WrittenEntityLinks {
50
+ categories: Array<typeof entityCategories.$inferSelect>;
51
+ brands: Array<typeof entityBrands.$inferSelect>;
52
+ tags: Array<typeof entityTags.$inferSelect>;
53
+ media: Array<typeof entityMedia.$inferSelect>;
54
+ placed: Array<typeof entityMedia.$inferSelect>;
55
+ }
56
+ export declare function writeEntityLinks(db: Pick<PluginDb, "insert" | "update">, orgId: string, rows: EntityLinkRows): Promise<WrittenEntityLinks>;
57
+ export interface EntityLinkRemovals {
58
+ categories?: ReadonlyArray<{
59
+ entityId: string;
60
+ categoryId: string;
61
+ }>;
62
+ brands?: ReadonlyArray<{
63
+ entityId: string;
64
+ brandId: string;
65
+ }>;
66
+ tags?: ReadonlyArray<{
67
+ entityId: string;
68
+ tagId: string;
69
+ }>;
70
+ }
71
+ /**
72
+ * `writeEntityLinks`' sibling: deletes exactly the named category / brand / tag links, one
73
+ * statement per class, and returns the rows it deleted (in `WrittenEntityLinks` shape, so
74
+ * `linkFieldPaths` names them). A row naming another organization's entity deletes nothing;
75
+ * a link already gone is not returned.
76
+ */
77
+ export declare function removeEntityLinks(db: Pick<PluginDb, "delete">, orgId: string, rows: EntityLinkRemovals): Promise<WrittenEntityLinks>;
78
+ /**
79
+ * The field paths each entity's written links changed, sorted — the names the catalog services
80
+ * version links under (`categories`, `brand`, `tags`, `media.<role>`), so a consumer sees the same
81
+ * paths whichever path wrote the link.
82
+ */
83
+ export declare function linkFieldPaths(written: WrittenEntityLinks): Map<string, string[]>;
84
+ //# sourceMappingURL=entity-links.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entity-links.d.ts","sourceRoot":"","sources":["../../../src/modules/catalog/entity-links.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uCAAuC,CAAC;AACtE,OAAO,EAAe,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAsB,YAAY,EAAE,gBAAgB,EAAE,UAAU,EAA0B,MAAM,aAAa,CAAC;AAErH;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,WAAW,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC;AAExE,MAAM,WAAW,cAAc;IAC7B,UAAU,CAAC,EAAE,aAAa,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACxF,MAAM,CAAC,EAAE,aAAa,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACjF,IAAI,CAAC,EAAE,aAAa,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC1D,uBAAuB;IACvB,KAAK,CAAC,EAAE,aAAa,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,eAAe,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACtI,uGAAuG;IACvG,eAAe,CAAC,EAAE,aAAa,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,eAAe,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACjJ;AAED,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,KAAK,CAAC,OAAO,gBAAgB,CAAC,YAAY,CAAC,CAAC;IACxD,MAAM,EAAE,KAAK,CAAC,OAAO,YAAY,CAAC,YAAY,CAAC,CAAC;IAChD,IAAI,EAAE,KAAK,CAAC,OAAO,UAAU,CAAC,YAAY,CAAC,CAAC;IAC5C,KAAK,EAAE,KAAK,CAAC,OAAO,WAAW,CAAC,YAAY,CAAC,CAAC;IAC9C,MAAM,EAAE,KAAK,CAAC,OAAO,WAAW,CAAC,YAAY,CAAC,CAAC;CAChD;AAQD,wBAAsB,gBAAgB,CACpC,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,QAAQ,GAAG,QAAQ,CAAC,EACvC,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,cAAc,GACnB,OAAO,CAAC,kBAAkB,CAAC,CA+C7B;AAED,MAAM,WAAW,kBAAkB;IACjC,UAAU,CAAC,EAAE,aAAa,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACrE,MAAM,CAAC,EAAE,aAAa,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC9D,IAAI,CAAC,EAAE,aAAa,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC3D;AAKD;;;;;GAKG;AACH,wBAAsB,iBAAiB,CACrC,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAC5B,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,kBAAkB,GACvB,OAAO,CAAC,kBAAkB,CAAC,CAsB7B;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,kBAAkB,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAYjF"}
@@ -0,0 +1,90 @@
1
+ import { and, eq, isNull, ne, or, sql } from "drizzle-orm";
2
+ import { mediaAssets, entityMedia } from "../media/schema.js";
3
+ import { brands, categories, entityBrands, entityCategories, entityTags, sellableEntities, tags } from "./schema.js";
4
+ const valuesOf = (rows) => sql.join(rows.map((row) => sql `(${sql.join([...row], sql `, `)})`), sql `, `);
5
+ const entityInOrg = (orgId) => sql `join ${sellableEntities} on ${sellableEntities.id} = v.entity_id and ${sellableEntities.organizationId} = ${orgId}`;
6
+ export async function writeEntityLinks(db, orgId, rows) {
7
+ const written = { categories: [], brands: [], tags: [], media: [], placed: [] };
8
+ if (rows.categories?.length) {
9
+ written.categories = await db.insert(entityCategories).select(sql `
10
+ select v.entity_id, v.category_id, v.sort_order
11
+ from (values ${valuesOf(rows.categories.map((row) => [sql `${row.entityId}::uuid`, sql `${row.categoryId}::uuid`, sql `${row.sortOrder}::integer`]))})
12
+ as v(entity_id, category_id, sort_order)
13
+ join ${categories} on ${categories.id} = v.category_id and ${categories.organizationId} = ${orgId}
14
+ ${entityInOrg(orgId)}`).onConflictDoNothing().returning();
15
+ }
16
+ if (rows.brands?.length) {
17
+ written.brands = await db.insert(entityBrands).select(sql `
18
+ select v.entity_id, v.brand_id, v.sort_order
19
+ from (values ${valuesOf(rows.brands.map((row) => [sql `${row.entityId}::uuid`, sql `${row.brandId}::uuid`, sql `${row.sortOrder}::integer`]))})
20
+ as v(entity_id, brand_id, sort_order)
21
+ join ${brands} on ${brands.id} = v.brand_id and ${brands.organizationId} = ${orgId}
22
+ ${entityInOrg(orgId)}`).onConflictDoNothing().returning();
23
+ }
24
+ if (rows.tags?.length) {
25
+ written.tags = await db.insert(entityTags).select(sql `
26
+ select v.entity_id, v.tag_id
27
+ from (values ${valuesOf(rows.tags.map((row) => [sql `${row.entityId}::uuid`, sql `${row.tagId}::uuid`]))})
28
+ as v(entity_id, tag_id)
29
+ join ${tags} on ${tags.id} = v.tag_id and ${tags.organizationId} = ${orgId}
30
+ ${entityInOrg(orgId)}`).onConflictDoNothing().returning();
31
+ }
32
+ if (rows.media?.length) {
33
+ written.media = await db.insert(entityMedia).select(sql `
34
+ select v.entity_id, v.variant_id, v.media_asset_id, v.role, v.sort_order, now()
35
+ from (values ${valuesOf(rows.media.map((row) => [
36
+ sql `${row.entityId}::uuid`, sql `${row.variantId}::uuid`, sql `${row.mediaAssetId}::uuid`, sql `${row.role}::text`, sql `${row.sortOrder}::integer`,
37
+ ]))}) as v(entity_id, variant_id, media_asset_id, role, sort_order)
38
+ join ${mediaAssets} on ${mediaAssets.id} = v.media_asset_id and ${mediaAssets.organizationId} = ${orgId}
39
+ ${entityInOrg(orgId)}`).onConflictDoNothing().returning();
40
+ }
41
+ // ponytail: one UPDATE per re-placed link; a role/sort change upstream is rare, batch it if a
42
+ // store ever reshuffles whole galleries on every sync.
43
+ for (const row of rows.mediaPlacements ?? []) {
44
+ written.placed.push(...await db.update(entityMedia).set({ role: row.role, sortOrder: row.sortOrder }).where(and(eq(entityMedia.entityId, row.entityId), eq(entityMedia.mediaAssetId, row.mediaAssetId), row.variantId === null ? isNull(entityMedia.variantId) : eq(entityMedia.variantId, row.variantId), or(ne(entityMedia.role, row.role), ne(entityMedia.sortOrder, row.sortOrder)), sql `exists (select 1 from ${sellableEntities} where ${sellableEntities.id} = ${entityMedia.entityId} and ${sellableEntities.organizationId} = ${orgId})`)).returning());
45
+ }
46
+ return written;
47
+ }
48
+ const entityOfOrg = (entityId, orgId) => sql `exists (select 1 from ${sellableEntities} where ${sellableEntities.id} = ${entityId} and ${sellableEntities.organizationId} = ${orgId})`;
49
+ /**
50
+ * `writeEntityLinks`' sibling: deletes exactly the named category / brand / tag links, one
51
+ * statement per class, and returns the rows it deleted (in `WrittenEntityLinks` shape, so
52
+ * `linkFieldPaths` names them). A row naming another organization's entity deletes nothing;
53
+ * a link already gone is not returned.
54
+ */
55
+ export async function removeEntityLinks(db, orgId, rows) {
56
+ const removed = { categories: [], brands: [], tags: [], media: [], placed: [] };
57
+ const pairs = (list) => valuesOf(list.map(([a, b]) => [sql `${a}::uuid`, sql `${b}::uuid`]));
58
+ if (rows.categories?.length) {
59
+ removed.categories = await db.delete(entityCategories).where(and(sql `(${entityCategories.entityId}, ${entityCategories.categoryId}) in (${pairs(rows.categories.map((row) => [row.entityId, row.categoryId]))})`, entityOfOrg(entityCategories.entityId, orgId))).returning();
60
+ }
61
+ if (rows.brands?.length) {
62
+ removed.brands = await db.delete(entityBrands).where(and(sql `(${entityBrands.entityId}, ${entityBrands.brandId}) in (${pairs(rows.brands.map((row) => [row.entityId, row.brandId]))})`, entityOfOrg(entityBrands.entityId, orgId))).returning();
63
+ }
64
+ if (rows.tags?.length) {
65
+ removed.tags = await db.delete(entityTags).where(and(sql `(${entityTags.entityId}, ${entityTags.tagId}) in (${pairs(rows.tags.map((row) => [row.entityId, row.tagId]))})`, entityOfOrg(entityTags.entityId, orgId))).returning();
66
+ }
67
+ return removed;
68
+ }
69
+ /**
70
+ * The field paths each entity's written links changed, sorted — the names the catalog services
71
+ * version links under (`categories`, `brand`, `tags`, `media.<role>`), so a consumer sees the same
72
+ * paths whichever path wrote the link.
73
+ */
74
+ export function linkFieldPaths(written) {
75
+ const byEntity = new Map();
76
+ const add = (entityId, path) => {
77
+ const paths = byEntity.get(entityId) ?? new Set();
78
+ paths.add(path);
79
+ byEntity.set(entityId, paths);
80
+ };
81
+ for (const row of written.categories)
82
+ add(row.entityId, "categories");
83
+ for (const row of written.brands)
84
+ add(row.entityId, "brand");
85
+ for (const row of written.tags)
86
+ add(row.entityId, "tags");
87
+ for (const row of [...written.media, ...written.placed])
88
+ add(row.entityId, `media.${row.role}`);
89
+ return new Map([...byEntity].map(([entityId, paths]) => [entityId, [...paths].sort()]));
90
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"import-service.d.ts","sourceRoot":"","sources":["../../../src/modules/catalog/import-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"import-service.d.ts","sourceRoot":"","sources":["../../../src/modules/catalog/import-service.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,8 @@ import { toCommerceError } from "../../kernel/errors.js";
6
6
  import { createTxContext, isWriteContextTransactional, resolveWriteContextHookContext } from "../../kernel/database/tx-context.js";
7
7
  import { runAfterHooks } from "../../kernel/hooks/executor.js";
8
8
  import { isValidFieldPath } from "./ownership.js";
9
- import { brands, categories, catalogFieldOwnership, entityBrands, entityCategories, entityTags, optionTypes, optionValues, sellableAttributes, sellableEntities, sellableEntityRevisions, tags, variantOptionValues, variants, } from "./schema.js";
9
+ import { writeEntityLinks } from "./entity-links.js";
10
+ import { brands, categories, catalogFieldOwnership, optionTypes, optionValues, sellableAttributes, sellableEntities, sellableEntityRevisions, tags, variantOptionValues, variants, } from "./schema.js";
10
11
  import { prices } from "../pricing/schema.js";
11
12
  import { catalogHookContext } from "./entity-service.js";
12
13
  /** The drizzle handle a transaction context carries (typed `unknown` on the context). */
@@ -253,7 +254,6 @@ async function writeItem(sp, orgId, sourceStoreId, item, taxonomy) {
253
254
  if (priceRows.length > 0)
254
255
  await sp.insert(prices).values(priceRows);
255
256
  }
256
- const categoryLinks = [];
257
257
  const categoryInputs = [...new Set(item.categories ?? [])].flatMap((slug, index) => {
258
258
  const category = taxonomy.categories.get(slug);
259
259
  if (!category)
@@ -264,24 +264,20 @@ async function writeItem(sp, orgId, sourceStoreId, item, taxonomy) {
264
264
  }
265
265
  return [{ entityId, categoryId: category.id, sortOrder: index }];
266
266
  });
267
- if (categoryInputs.length > 0)
268
- categoryLinks.push(...asRows(await sp.insert(entityCategories).values(categoryInputs).returning()));
269
- const brandLinks = [];
270
- if (item.brand) {
271
- const brandId = taxonomy.brands.get(item.brand);
272
- if (brandId === undefined)
273
- throw new Error(`Brand "${item.brand}" was not resolved for the page.`);
274
- brandLinks.push(...asRows(await sp.insert(entityBrands).values([{ entityId, brandId, sortOrder: 0 }]).returning()));
275
- }
276
- const tagLinks = [];
267
+ const brandId = item.brand ? taxonomy.brands.get(item.brand) : undefined;
268
+ if (item.brand && brandId === undefined)
269
+ throw new Error(`Brand "${item.brand}" was not resolved for the page.`);
277
270
  const tagInputs = [...new Set(item.tags ?? [])].map((slug) => {
278
271
  const tagId = taxonomy.tags.get(slug);
279
272
  if (tagId === undefined)
280
273
  throw new Error(`Tag "${slug}" was not resolved for the page.`);
281
274
  return { entityId, tagId };
282
275
  });
283
- if (tagInputs.length > 0)
284
- tagLinks.push(...asRows(await sp.insert(entityTags).values(tagInputs).returning()));
276
+ const links = await writeEntityLinks(sp, orgId, {
277
+ categories: categoryInputs,
278
+ brands: brandId === undefined ? [] : [{ entityId, brandId, sortOrder: 0 }],
279
+ tags: tagInputs,
280
+ });
285
281
  const ownedPaths = [...new Set(item.ownedFieldPaths ?? [])];
286
282
  if (ownedPaths.length > 0) {
287
283
  await sp.insert(catalogFieldOwnership).values(ownedPaths.map((fieldPath) => ({
@@ -299,9 +295,9 @@ async function writeItem(sp, orgId, sourceStoreId, item, taxonomy) {
299
295
  attributes: asRows(attributeRows).sort((a, b) => String(a.locale).localeCompare(String(b.locale)) || String(a.id).localeCompare(String(b.id))),
300
296
  customFields: [],
301
297
  media: [],
302
- categories: categoryLinks.sort(byKey("categoryId")),
303
- brands: brandLinks.sort(byKey("brandId")),
304
- tags: tagLinks.sort(byKey("tagId")),
298
+ categories: asRows(links.categories).sort(byKey("categoryId")),
299
+ brands: asRows(links.brands).sort(byKey("brandId")),
300
+ tags: asRows(links.tags).sort(byKey("tagId")),
305
301
  };
306
302
  return { entityId, variantIds, warnings, snapshot };
307
303
  }
@@ -117,7 +117,8 @@ export declare class CatalogRepository {
117
117
  deleteCategory(id: string, ctx?: TxContext): Promise<boolean>;
118
118
  findEntityCategories(entityId: string, ctx?: TxContext): Promise<EntityCategory[]>;
119
119
  findEntitiesByCategory(categoryId: string, ctx?: TxContext): Promise<string[]>;
120
- addEntityToCategory(entityId: string, categoryId: string, sortOrder?: number, ctx?: TxContext): Promise<void>;
120
+ /** True when the link was inserted; false when it already existed. */
121
+ addEntityToCategory(entityId: string, categoryId: string, sortOrder?: number, ctx?: TxContext): Promise<boolean>;
121
122
  removeEntityFromCategory(entityId: string, categoryId: string, ctx?: TxContext): Promise<boolean>;
122
123
  deleteEntityCategoriesByEntityId(entityId: string, ctx?: TxContext): Promise<void>;
123
124
  deleteEntityCategoriesByCategoryId(categoryId: string, ctx?: TxContext): Promise<void>;
@@ -131,7 +132,8 @@ export declare class CatalogRepository {
131
132
  findEntityTags(entityId: string, ctx?: TxContext): Promise<Array<typeof entityTags.$inferSelect>>;
132
133
  addEntityTag(entityId: string, tagId: string, ctx?: TxContext): Promise<void>;
133
134
  deleteEntityTagsByEntityId(entityId: string, ctx?: TxContext): Promise<void>;
134
- addEntityToBrand(entityId: string, brandId: string, sortOrder?: number, ctx?: TxContext): Promise<void>;
135
+ /** True when the link was inserted; false when it already existed. */
136
+ addEntityToBrand(entityId: string, brandId: string, sortOrder?: number, ctx?: TxContext): Promise<boolean>;
135
137
  removeEntityFromBrand(entityId: string, brandId: string, ctx?: TxContext): Promise<boolean>;
136
138
  deleteEntityBrandsByEntityId(entityId: string, ctx?: TxContext): Promise<void>;
137
139
  deleteEntityBrandsByBrandId(brandId: string, ctx?: TxContext): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/modules/catalog/repository/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/modules/catalog/repository/index.ts"],"names":[],"mappings":"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"}
@@ -532,12 +532,15 @@ export class CatalogRepository {
532
532
  .where(eq(entityCategories.categoryId, categoryId));
533
533
  return rows.map((r) => r.entityId);
534
534
  }
535
+ /** True when the link was inserted; false when it already existed. */
535
536
  async addEntityToCategory(entityId, categoryId, sortOrder = 0, ctx) {
536
537
  const db = this.getDb(ctx);
537
- await db
538
+ const inserted = await db
538
539
  .insert(entityCategories)
539
540
  .values({ entityId, categoryId, sortOrder })
540
- .onConflictDoNothing();
541
+ .onConflictDoNothing()
542
+ .returning({ entityId: entityCategories.entityId });
543
+ return inserted.length > 0;
541
544
  }
542
545
  async removeEntityFromCategory(entityId, categoryId, ctx) {
543
546
  const db = this.getDb(ctx);
@@ -631,12 +634,15 @@ export class CatalogRepository {
631
634
  const db = this.getDb(ctx);
632
635
  await db.delete(entityTags).where(eq(entityTags.entityId, entityId));
633
636
  }
637
+ /** True when the link was inserted; false when it already existed. */
634
638
  async addEntityToBrand(entityId, brandId, sortOrder = 0, ctx) {
635
639
  const db = this.getDb(ctx);
636
- await db
640
+ const inserted = await db
637
641
  .insert(entityBrands)
638
642
  .values({ entityId, brandId, sortOrder })
639
- .onConflictDoNothing();
643
+ .onConflictDoNothing()
644
+ .returning({ entityId: entityBrands.entityId });
645
+ return inserted.length > 0;
640
646
  }
641
647
  async removeEntityFromBrand(entityId, brandId, ctx) {
642
648
  const db = this.getDb(ctx);
@@ -178,6 +178,11 @@ export interface CatalogService {
178
178
  created: Variant[];
179
179
  skipped: number;
180
180
  }>>;
181
+ /**
182
+ * Move the entity's `updated_at` and fire `catalog.afterUpdate` for a change to rows RELATED to
183
+ * it (links, media) — the versioning contract consumers rely on to re-read a product.
184
+ */
185
+ notifyEntityChanged(entityId: string, changedFieldPaths: readonly string[], actor: Actor | null, ctx?: TxContext): Promise<void>;
181
186
  recordEntityRevision(entityId: string, actor: Actor | null, reason?: SellableEntityRevisionReason, ctx?: TxContext): Promise<Result<SellableEntityRevision>>;
182
187
  restoreEntityRevision(entityId: string, revisionId: string, actor: Actor | null, ctx?: TxContext): Promise<Result<CatalogEntityHydrated>>;
183
188
  trimEntityRevisions(actor: Actor | null, olderThanDays?: number, ctx?: TxContext): Promise<Result<number>>;
@@ -225,6 +230,7 @@ export declare class CatalogServiceImpl implements CatalogService {
225
230
  private withMutation;
226
231
  private withMutationResult;
227
232
  private captureRevision;
233
+ notifyEntityChanged(entityId: string, changedFieldPaths: readonly string[], actor: Actor | null, ctx?: TxContext): Promise<void>;
228
234
  recordEntityRevision(entityId: string, actor: Actor | null, reason?: SellableEntityRevisionReason, ctx?: TxContext): Promise<Result<SellableEntityRevision>>;
229
235
  private restoreDate;
230
236
  private applyRevisionSnapshot;