@attlaz/client 1.88.0 → 1.90.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 (150) hide show
  1. package/dist/Catalog/Model/Catalog.d.ts +19 -0
  2. package/dist/Catalog/Model/Catalog.js +28 -0
  3. package/dist/Catalog/Model/CatalogId.d.ts +4 -0
  4. package/dist/Catalog/Model/CatalogId.js +4 -0
  5. package/dist/Catalog/Model/CatalogProduct.d.ts +21 -0
  6. package/dist/Catalog/Model/CatalogProduct.js +31 -0
  7. package/dist/Catalog/Service/CatalogEndpoint.d.ts +15 -0
  8. package/dist/Catalog/Service/CatalogEndpoint.js +21 -0
  9. package/dist/Catalog/Service/CatalogProductEndpoint.d.ts +16 -0
  10. package/dist/Catalog/Service/CatalogProductEndpoint.js +24 -0
  11. package/dist/Client.d.ts +35 -7
  12. package/dist/Client.js +77 -7
  13. package/dist/DataQuality/Model/QualityDataset.d.ts +17 -0
  14. package/dist/DataQuality/Model/QualityDataset.js +26 -0
  15. package/dist/DataQuality/Model/QualityEntity.d.ts +24 -0
  16. package/dist/DataQuality/Model/QualityEntity.js +41 -0
  17. package/dist/DataQuality/Model/QualityProblem.d.ts +25 -0
  18. package/dist/DataQuality/Model/QualityProblem.js +43 -0
  19. package/dist/DataQuality/Service/QualityEndpoint.d.ts +45 -0
  20. package/dist/DataQuality/Service/QualityEndpoint.js +89 -0
  21. package/dist/EnhanceData/Model/GenerateContentBatch.d.ts +22 -0
  22. package/dist/EnhanceData/Model/GenerateContentBatch.js +34 -0
  23. package/dist/EnhanceData/Service/GenerateContentEndpoint.d.ts +23 -0
  24. package/dist/EnhanceData/Service/GenerateContentEndpoint.js +21 -0
  25. package/dist/FeedManagement/Model/CatalogFeed.d.ts +26 -0
  26. package/dist/FeedManagement/Model/CatalogFeed.js +51 -0
  27. package/dist/FeedManagement/Service/CatalogFeedEndpoint.d.ts +14 -0
  28. package/dist/FeedManagement/Service/CatalogFeedEndpoint.js +19 -0
  29. package/dist/{Model/Flow → Flow/Model}/Flow.d.ts +3 -3
  30. package/dist/{Model/Flow → Flow/Model}/Flow.js +1 -1
  31. package/dist/{Model/Flow → Flow/Model}/FlowRun.d.ts +3 -3
  32. package/dist/{Model/Flow → Flow/Model}/FlowRun.js +1 -1
  33. package/dist/{Model/Flow → Flow/Model}/FlowRunHistory.d.ts +1 -1
  34. package/dist/{Model/Flow → Flow/Model}/FlowRunLifecycle.d.ts +1 -1
  35. package/dist/{Model/Flow → Flow/Model}/FlowRunStats.d.ts +1 -1
  36. package/dist/{Model/Flow → Flow/Model}/FlowRunSummary.d.ts +1 -1
  37. package/dist/{Model/Flow → Flow/Model}/FlowSummary.d.ts +1 -1
  38. package/dist/{Service → Flow/Service}/FlowEndpoint.d.ts +5 -5
  39. package/dist/{Service → Flow/Service}/FlowEndpoint.js +6 -6
  40. package/dist/{Service → Flow/Service}/FlowRunEndpoint.d.ts +8 -8
  41. package/dist/{Service → Flow/Service}/FlowRunEndpoint.js +6 -6
  42. package/dist/Flow/Service/FlowRunRequestEndpoint.d.ts +6 -0
  43. package/dist/{Service → Flow/Service}/FlowRunRequestEndpoint.js +2 -2
  44. package/dist/{Service → Flow/Service}/FlowRunStatsEndpoint.d.ts +2 -2
  45. package/dist/{Service → Flow/Service}/FlowRunStatsEndpoint.js +2 -2
  46. package/dist/{Model/Log → Logging/Model}/Log.d.ts +2 -2
  47. package/dist/{Model/Log → Logging/Model}/Log.js +1 -1
  48. package/dist/{Model/Log → Logging/Model}/LogQuery.d.ts +1 -1
  49. package/dist/{Model/Log → Logging/Model}/LogStreamId.d.ts +1 -1
  50. package/dist/{Model/Log → Logging/Model}/LogStreamId.js +1 -1
  51. package/dist/{Model/Log → Logging/Model}/LogStreamInformation.d.ts +2 -2
  52. package/dist/{Service → Logging/Service}/LogEndpoint.d.ts +9 -9
  53. package/dist/{Service → Logging/Service}/LogEndpoint.js +6 -6
  54. package/dist/Model/Messaging/Subscriber.d.ts +1 -1
  55. package/dist/Model/Messaging/Subscriber.js +1 -1
  56. package/dist/Model/Search/SearchResult.d.ts +2 -2
  57. package/dist/Model/Search/SearchResult.js +2 -2
  58. package/dist/Pulse/Model/CatalogProductWithMatches.d.ts +31 -0
  59. package/dist/Pulse/Model/CatalogProductWithMatches.js +50 -0
  60. package/dist/Pulse/Model/CompetingVendorProduct.d.ts +15 -0
  61. package/dist/Pulse/Model/CompetingVendorProduct.js +21 -0
  62. package/dist/Pulse/Model/Competitor.d.ts +27 -0
  63. package/dist/Pulse/Model/Competitor.js +43 -0
  64. package/dist/{Model/Pulse → Pulse/Model}/CrawlJob.d.ts +2 -2
  65. package/dist/Pulse/Model/IndexJob.d.ts +19 -0
  66. package/dist/Pulse/Model/IndexJob.js +29 -0
  67. package/dist/Pulse/Model/MatchedVendorProduct.d.ts +29 -0
  68. package/dist/Pulse/Model/MatchedVendorProduct.js +48 -0
  69. package/dist/Pulse/Model/PriceAlertConfig.d.ts +22 -0
  70. package/dist/Pulse/Model/PriceAlertConfig.js +34 -0
  71. package/dist/Pulse/Model/PriceAlertEvent.d.ts +20 -0
  72. package/dist/Pulse/Model/PriceAlertEvent.js +33 -0
  73. package/dist/Pulse/Model/PriceIndexSnapshotEntry.d.ts +16 -0
  74. package/dist/Pulse/Model/PriceIndexSnapshotEntry.js +23 -0
  75. package/dist/Pulse/Model/PriceSuggestion.d.ts +29 -0
  76. package/dist/Pulse/Model/PriceSuggestion.js +46 -0
  77. package/dist/Pulse/Model/PricingRule.d.ts +30 -0
  78. package/dist/Pulse/Model/PricingRule.js +49 -0
  79. package/dist/Pulse/Model/ProductGroup.d.ts +25 -0
  80. package/dist/Pulse/Model/ProductGroup.js +36 -0
  81. package/dist/Pulse/Model/ProductMatch.d.ts +21 -0
  82. package/dist/Pulse/Model/ProductMatch.js +28 -0
  83. package/dist/Pulse/Model/ProductMatchJob.d.ts +27 -0
  84. package/dist/Pulse/Model/ProductMatchJob.js +42 -0
  85. package/dist/Pulse/Model/ReviewMatch.d.ts +42 -0
  86. package/dist/Pulse/Model/ReviewMatch.js +55 -0
  87. package/dist/Pulse/Model/TopCompetitor.d.ts +23 -0
  88. package/dist/Pulse/Model/TopCompetitor.js +37 -0
  89. package/dist/Pulse/Model/Vendor.d.ts +12 -0
  90. package/dist/Pulse/Model/Vendor.js +18 -0
  91. package/dist/{Model/Pulse → Pulse/Model}/VendorProduct.d.ts +6 -1
  92. package/dist/{Model/Pulse → Pulse/Model}/VendorProduct.js +9 -1
  93. package/dist/Pulse/Model/VendorProductPriceHistoryEntry.d.ts +18 -0
  94. package/dist/Pulse/Model/VendorProductPriceHistoryEntry.js +36 -0
  95. package/dist/Pulse/Model/VendorStatus.d.ts +25 -0
  96. package/dist/Pulse/Model/VendorStatus.js +34 -0
  97. package/dist/Pulse/Service/CompetitorEndpoint.d.ts +15 -0
  98. package/dist/Pulse/Service/CompetitorEndpoint.js +23 -0
  99. package/dist/{Service/Pulse → Pulse/Service}/CrawlJobEndpoint.d.ts +13 -3
  100. package/dist/{Service/Pulse → Pulse/Service}/CrawlJobEndpoint.js +18 -5
  101. package/dist/Pulse/Service/IndexJobEndpoint.d.ts +20 -0
  102. package/dist/Pulse/Service/IndexJobEndpoint.js +31 -0
  103. package/dist/Pulse/Service/PriceAlertEndpoint.d.ts +31 -0
  104. package/dist/Pulse/Service/PriceAlertEndpoint.js +42 -0
  105. package/dist/Pulse/Service/PricingEndpoint.d.ts +40 -0
  106. package/dist/Pulse/Service/PricingEndpoint.js +51 -0
  107. package/dist/Pulse/Service/ProductGroupEndpoint.d.ts +18 -0
  108. package/dist/Pulse/Service/ProductGroupEndpoint.js +19 -0
  109. package/dist/Pulse/Service/ProductMatchEndpoint.d.ts +47 -0
  110. package/dist/Pulse/Service/ProductMatchEndpoint.js +66 -0
  111. package/dist/Pulse/Service/ProductMatchJobEndpoint.d.ts +19 -0
  112. package/dist/Pulse/Service/ProductMatchJobEndpoint.js +30 -0
  113. package/dist/Pulse/Service/PulseCatalogProductEndpoint.d.ts +40 -0
  114. package/dist/Pulse/Service/PulseCatalogProductEndpoint.js +54 -0
  115. package/dist/Pulse/Service/PulseStatisticsEndpoint.d.ts +44 -0
  116. package/dist/Pulse/Service/PulseStatisticsEndpoint.js +65 -0
  117. package/dist/Pulse/Service/VendorProductEndpoint.d.ts +32 -0
  118. package/dist/{Service/Pulse → Pulse/Service}/VendorProductEndpoint.js +37 -2
  119. package/dist/Service/Endpoint.js +5 -3
  120. package/dist/index.d.ts +67 -27
  121. package/dist/index.js +67 -27
  122. package/dist/version.d.ts +1 -1
  123. package/dist/version.js +1 -1
  124. package/package.json +1 -1
  125. package/dist/Service/FlowRunRequestEndpoint.d.ts +0 -6
  126. package/dist/Service/Pulse/VendorProductEndpoint.d.ts +0 -14
  127. /package/dist/{Model/Flow → Flow/Model}/FlowRunHistory.js +0 -0
  128. /package/dist/{Model/Flow → Flow/Model}/FlowRunHistoryStatus.d.ts +0 -0
  129. /package/dist/{Model/Flow → Flow/Model}/FlowRunHistoryStatus.js +0 -0
  130. /package/dist/{Model/Flow → Flow/Model}/FlowRunLifecycle.js +0 -0
  131. /package/dist/{Model/Flow → Flow/Model}/FlowRunPriority.d.ts +0 -0
  132. /package/dist/{Model/Flow → Flow/Model}/FlowRunPriority.js +0 -0
  133. /package/dist/{Model/Flow → Flow/Model}/FlowRunResponse.d.ts +0 -0
  134. /package/dist/{Model/Flow → Flow/Model}/FlowRunResponse.js +0 -0
  135. /package/dist/{Model/Flow → Flow/Model}/FlowRunStats.js +0 -0
  136. /package/dist/{Model/Flow → Flow/Model}/FlowRunStatus.d.ts +0 -0
  137. /package/dist/{Model/Flow → Flow/Model}/FlowRunStatus.js +0 -0
  138. /package/dist/{Model/Flow → Flow/Model}/FlowRunSummary.js +0 -0
  139. /package/dist/{Model/Flow → Flow/Model}/FlowSummary.js +0 -0
  140. /package/dist/{Model/Flow → Flow/Model}/FlowTemplate.d.ts +0 -0
  141. /package/dist/{Model/Flow → Flow/Model}/FlowTemplate.js +0 -0
  142. /package/dist/{Model/Log → Logging/Model}/LogLevel.d.ts +0 -0
  143. /package/dist/{Model/Log → Logging/Model}/LogLevel.js +0 -0
  144. /package/dist/{Model/Log → Logging/Model}/LogQuery.js +0 -0
  145. /package/dist/{Model/Log → Logging/Model}/LogStatus.d.ts +0 -0
  146. /package/dist/{Model/Log → Logging/Model}/LogStatus.js +0 -0
  147. /package/dist/{Model/Log → Logging/Model}/LogStream.d.ts +0 -0
  148. /package/dist/{Model/Log → Logging/Model}/LogStream.js +0 -0
  149. /package/dist/{Model/Log → Logging/Model}/LogStreamInformation.js +0 -0
  150. /package/dist/{Model/Pulse → Pulse/Model}/CrawlJob.js +0 -0
@@ -0,0 +1,19 @@
1
+ import { ApiRecord } from '../../Model/ApiRecord.js';
2
+ import { CatalogId } from './CatalogId.js';
3
+ /**
4
+ * A catalog: the product selection an app works on — the `/catalogs` resource. Market Pulse,
5
+ * Data Enrichment, Feed Management and Data Quality all read one.
6
+ *
7
+ * `source` is the connection the products are imported from (null for a catalog filled by a flow),
8
+ * `vendor` is the vendor the catalog's own products belong to.
9
+ */
10
+ export declare class Catalog {
11
+ id: CatalogId;
12
+ project: string;
13
+ name: string;
14
+ description: string | null;
15
+ source: string | null;
16
+ vendor: string | null;
17
+ constructor(id: CatalogId, project: string, name: string);
18
+ static parse(raw: ApiRecord): Catalog;
19
+ }
@@ -0,0 +1,28 @@
1
+ import { CatalogId } from './CatalogId.js';
2
+ /**
3
+ * A catalog: the product selection an app works on — the `/catalogs` resource. Market Pulse,
4
+ * Data Enrichment, Feed Management and Data Quality all read one.
5
+ *
6
+ * `source` is the connection the products are imported from (null for a catalog filled by a flow),
7
+ * `vendor` is the vendor the catalog's own products belong to.
8
+ */
9
+ export class Catalog {
10
+ id;
11
+ project;
12
+ name;
13
+ description = null;
14
+ source = null;
15
+ vendor = null;
16
+ constructor(id, project, name) {
17
+ this.id = id;
18
+ this.project = project;
19
+ this.name = name;
20
+ }
21
+ static parse(raw) {
22
+ const catalog = new Catalog(new CatalogId(raw.id), raw.project, raw.name);
23
+ catalog.description = raw.description ?? null;
24
+ catalog.source = raw.source ?? null;
25
+ catalog.vendor = raw.vendor ?? null;
26
+ return catalog;
27
+ }
28
+ }
@@ -0,0 +1,4 @@
1
+ import { EntityId } from '../../Model/EntityId.js';
2
+ export declare class CatalogId extends EntityId {
3
+ protected readonly TYPE: string;
4
+ }
@@ -0,0 +1,4 @@
1
+ import { EntityId } from '../../Model/EntityId.js';
2
+ export class CatalogId extends EntityId {
3
+ TYPE = 'catalogId';
4
+ }
@@ -0,0 +1,21 @@
1
+ import { ApiRecord } from '../../Model/ApiRecord.js';
2
+ import { CatalogId } from './CatalogId.js';
3
+ /**
4
+ * A product's membership of a catalog — the `/catalogs/:catalogId/products` resource.
5
+ *
6
+ * The descriptive fields (name, image, gtin, price) live on the linked vendor product, not here;
7
+ * this record adds what the catalog itself knows: the identifier it is addressed by and the cost
8
+ * price the margin calculations need.
9
+ */
10
+ export declare class CatalogProduct {
11
+ id: string;
12
+ catalogId: CatalogId;
13
+ /** The product's stable identifier within the catalog (the upsert key on import). */
14
+ identifier: string;
15
+ vendorProductId: string | null;
16
+ costPrice: number | null;
17
+ createdAt: Date | null;
18
+ updatedAt: Date | null;
19
+ constructor(id: string, catalogId: CatalogId, identifier: string);
20
+ static parse(raw: ApiRecord): CatalogProduct;
21
+ }
@@ -0,0 +1,31 @@
1
+ import { CatalogId } from './CatalogId.js';
2
+ /**
3
+ * A product's membership of a catalog — the `/catalogs/:catalogId/products` resource.
4
+ *
5
+ * The descriptive fields (name, image, gtin, price) live on the linked vendor product, not here;
6
+ * this record adds what the catalog itself knows: the identifier it is addressed by and the cost
7
+ * price the margin calculations need.
8
+ */
9
+ export class CatalogProduct {
10
+ id;
11
+ catalogId;
12
+ /** The product's stable identifier within the catalog (the upsert key on import). */
13
+ identifier;
14
+ vendorProductId = null;
15
+ costPrice = null;
16
+ createdAt = null;
17
+ updatedAt = null;
18
+ constructor(id, catalogId, identifier) {
19
+ this.id = id;
20
+ this.catalogId = catalogId;
21
+ this.identifier = identifier;
22
+ }
23
+ static parse(raw) {
24
+ const product = new CatalogProduct(raw.id, new CatalogId(raw.catalog), raw.identifier ?? '');
25
+ product.vendorProductId = raw.vendor_product ?? null;
26
+ product.costPrice = raw.cost_price ?? null;
27
+ product.createdAt = raw.created_at ? new Date(raw.created_at) : null;
28
+ product.updatedAt = raw.updated_at ? new Date(raw.updated_at) : null;
29
+ return product;
30
+ }
31
+ }
@@ -0,0 +1,15 @@
1
+ import { Catalog } from '../Model/Catalog.js';
2
+ import { CatalogId } from '../Model/CatalogId.js';
3
+ import { CursorPagination } from '../../Model/Pagination/CursorPagination.js';
4
+ import { CollectionResult } from '../../Model/Result/CollectionResult.js';
5
+ import { Endpoint } from '../../Service/Endpoint.js';
6
+ /**
7
+ * Catalogs — `/catalogs`. The catalog-scoped operations of an individual app (products, matching,
8
+ * feeds, quality) live with that app; this endpoint is the catalogs themselves.
9
+ */
10
+ export declare class CatalogEndpoint extends Endpoint {
11
+ /** The project's catalogs. */
12
+ getByProject(projectId: string, pagination?: CursorPagination | null): Promise<CollectionResult<Catalog>>;
13
+ /** The catalog with this id, or null. */
14
+ getById(catalogId: CatalogId | string): Promise<Catalog | null>;
15
+ }
@@ -0,0 +1,21 @@
1
+ import { QueryString } from '../../Http/Data/QueryString.js';
2
+ import { Catalog } from '../Model/Catalog.js';
3
+ import { Endpoint } from '../../Service/Endpoint.js';
4
+ /**
5
+ * Catalogs — `/catalogs`. The catalog-scoped operations of an individual app (products, matching,
6
+ * feeds, quality) live with that app; this endpoint is the catalogs themselves.
7
+ */
8
+ export class CatalogEndpoint extends Endpoint {
9
+ /** The project's catalogs. */
10
+ async getByProject(projectId, pagination = null) {
11
+ const queryString = new QueryString('/catalogs');
12
+ queryString.set('project', projectId);
13
+ queryString.addPagination(pagination);
14
+ return await this.requestCollection(queryString, Catalog.parse);
15
+ }
16
+ /** The catalog with this id, or null. */
17
+ async getById(catalogId) {
18
+ const result = await this.requestObject('/catalogs/' + catalogId.toString(), null, Catalog.parse, 'GET');
19
+ return result.getData();
20
+ }
21
+ }
@@ -0,0 +1,16 @@
1
+ import { CursorPagination } from '../../Model/Pagination/CursorPagination.js';
2
+ import { CollectionResult } from '../../Model/Result/CollectionResult.js';
3
+ import { Endpoint } from '../../Service/Endpoint.js';
4
+ import { CatalogId } from '../Model/CatalogId.js';
5
+ import { CatalogProduct } from '../Model/CatalogProduct.js';
6
+ /**
7
+ * The products of a catalog — `/catalogs/:catalogId/products`.
8
+ *
9
+ * Market Pulse's view of the same products, with the competitor matches attached, is
10
+ * `PulseCatalogProductEndpoint`.
11
+ */
12
+ export declare class CatalogProductEndpoint extends Endpoint {
13
+ getByCatalog(catalogId: CatalogId | string, pagination?: CursorPagination | null): Promise<CollectionResult<CatalogProduct>>;
14
+ /** The product with this catalog identifier, or null. */
15
+ getByIdentifier(catalogId: CatalogId | string, identifier: string): Promise<CatalogProduct | null>;
16
+ }
@@ -0,0 +1,24 @@
1
+ import { QueryString } from '../../Http/Data/QueryString.js';
2
+ import { Endpoint } from '../../Service/Endpoint.js';
3
+ import { CatalogProduct } from '../Model/CatalogProduct.js';
4
+ /**
5
+ * The products of a catalog — `/catalogs/:catalogId/products`.
6
+ *
7
+ * Market Pulse's view of the same products, with the competitor matches attached, is
8
+ * `PulseCatalogProductEndpoint`.
9
+ */
10
+ export class CatalogProductEndpoint extends Endpoint {
11
+ async getByCatalog(catalogId, pagination = null) {
12
+ const queryString = new QueryString('/catalogs/' + catalogId.toString() + '/products');
13
+ queryString.addPagination(pagination);
14
+ return await this.requestCollection(queryString, CatalogProduct.parse);
15
+ }
16
+ /** The product with this catalog identifier, or null. */
17
+ async getByIdentifier(catalogId, identifier) {
18
+ const queryString = new QueryString('/catalogs/' + catalogId.toString() + '/products');
19
+ queryString.set('identifier', identifier);
20
+ const result = await this.requestCollection(queryString, CatalogProduct.parse);
21
+ const products = result.getData();
22
+ return products.length > 0 ? products[0] : null;
23
+ }
24
+ }
package/dist/Client.d.ts CHANGED
@@ -12,20 +12,34 @@ import { CommandExecutionEndpoint } from './Service/CommandExecutionEndpoint.js'
12
12
  import { ConfigEndpoint } from './Service/ConfigEndpoint.js';
13
13
  import { ConfigurationEndpoint } from './Service/ConfigurationEndpoint.js';
14
14
  import { FirewallEndpoint } from './Service/FirewallEndpoint.js';
15
- import { FlowEndpoint } from './Service/FlowEndpoint.js';
16
- import { FlowRunEndpoint } from './Service/FlowRunEndpoint.js';
17
- import { FlowRunRequestEndpoint } from './Service/FlowRunRequestEndpoint.js';
18
- import { FlowRunStatsEndpoint } from './Service/FlowRunStatsEndpoint.js';
15
+ import { FlowEndpoint } from './Flow/Service/FlowEndpoint.js';
16
+ import { FlowRunEndpoint } from './Flow/Service/FlowRunEndpoint.js';
17
+ import { FlowRunRequestEndpoint } from './Flow/Service/FlowRunRequestEndpoint.js';
18
+ import { FlowRunStatsEndpoint } from './Flow/Service/FlowRunStatsEndpoint.js';
19
19
  import { HealthAlertEndpoint } from './Service/HealthAlertEndpoint.js';
20
20
  import { InboxEndpoint } from './Service/InboxEndpoint.js';
21
- import { LogEndpoint } from './Service/LogEndpoint.js';
21
+ import { LogEndpoint } from './Logging/Service/LogEndpoint.js';
22
22
  import { PlatformEndpoint } from './Service/PlatformEndpoint.js';
23
23
  import { PlatformLanguageEndpoint } from './Service/PlatformLanguageEndpoint.js';
24
24
  import { ProjectEndpoint } from './Service/ProjectEndpoint.js';
25
25
  import { ProjectEnvironmentEndpoint } from './Service/ProjectEnvironmentEndpoint.js';
26
26
  import { ProviderTokenEndpoint } from './Service/ProviderTokenEndpoint.js';
27
- import { VendorProductEndpoint } from './Service/Pulse/VendorProductEndpoint.js';
28
- import { CrawlJobEndpoint } from './Service/Pulse/CrawlJobEndpoint.js';
27
+ import { VendorProductEndpoint } from './Pulse/Service/VendorProductEndpoint.js';
28
+ import { CrawlJobEndpoint } from './Pulse/Service/CrawlJobEndpoint.js';
29
+ import { CatalogEndpoint } from './Catalog/Service/CatalogEndpoint.js';
30
+ import { ProductMatchJobEndpoint } from './Pulse/Service/ProductMatchJobEndpoint.js';
31
+ import { IndexJobEndpoint } from './Pulse/Service/IndexJobEndpoint.js';
32
+ import { ProductMatchEndpoint } from './Pulse/Service/ProductMatchEndpoint.js';
33
+ import { PulseCatalogProductEndpoint } from './Pulse/Service/PulseCatalogProductEndpoint.js';
34
+ import { PriceAlertEndpoint } from './Pulse/Service/PriceAlertEndpoint.js';
35
+ import { PricingEndpoint } from './Pulse/Service/PricingEndpoint.js';
36
+ import { ProductGroupEndpoint } from './Pulse/Service/ProductGroupEndpoint.js';
37
+ import { CatalogProductEndpoint } from './Catalog/Service/CatalogProductEndpoint.js';
38
+ import { GenerateContentEndpoint } from './EnhanceData/Service/GenerateContentEndpoint.js';
39
+ import { CompetitorEndpoint } from './Pulse/Service/CompetitorEndpoint.js';
40
+ import { PulseStatisticsEndpoint } from './Pulse/Service/PulseStatisticsEndpoint.js';
41
+ import { QualityEndpoint } from './DataQuality/Service/QualityEndpoint.js';
42
+ import { CatalogFeedEndpoint } from './FeedManagement/Service/CatalogFeedEndpoint.js';
29
43
  import { RunnerEndpoint } from './Service/RunnerEndpoint.js';
30
44
  import { RunnerPoolEndpoint } from './Service/RunnerPoolEndpoint.js';
31
45
  import { SearchEndpoint } from './Service/SearchEndpoint.js';
@@ -113,6 +127,20 @@ export declare class Client {
113
127
  getFirewallEndpoint(): FirewallEndpoint;
114
128
  getVendorProductEndpoint(): VendorProductEndpoint;
115
129
  getCrawlJobEndpoint(): CrawlJobEndpoint;
130
+ getCatalogEndpoint(): CatalogEndpoint;
131
+ getProductMatchJobEndpoint(): ProductMatchJobEndpoint;
132
+ getIndexJobEndpoint(): IndexJobEndpoint;
133
+ getProductMatchEndpoint(): ProductMatchEndpoint;
134
+ getPulseCatalogProductEndpoint(): PulseCatalogProductEndpoint;
135
+ getCatalogProductEndpoint(): CatalogProductEndpoint;
136
+ getPriceAlertEndpoint(): PriceAlertEndpoint;
137
+ getPricingEndpoint(): PricingEndpoint;
138
+ getProductGroupEndpoint(): ProductGroupEndpoint;
139
+ getGenerateContentEndpoint(): GenerateContentEndpoint;
140
+ getCompetitorEndpoint(): CompetitorEndpoint;
141
+ getPulseStatisticsEndpoint(): PulseStatisticsEndpoint;
142
+ getQualityEndpoint(): QualityEndpoint;
143
+ getCatalogFeedEndpoint(): CatalogFeedEndpoint;
116
144
  private getEndpoint;
117
145
  getVersion(): string;
118
146
  }
package/dist/Client.js CHANGED
@@ -12,20 +12,34 @@ import { CommandExecutionEndpoint } from './Service/CommandExecutionEndpoint.js'
12
12
  import { ConfigEndpoint } from './Service/ConfigEndpoint.js';
13
13
  import { ConfigurationEndpoint } from './Service/ConfigurationEndpoint.js';
14
14
  import { FirewallEndpoint } from './Service/FirewallEndpoint.js';
15
- import { FlowEndpoint } from './Service/FlowEndpoint.js';
16
- import { FlowRunEndpoint } from './Service/FlowRunEndpoint.js';
17
- import { FlowRunRequestEndpoint } from './Service/FlowRunRequestEndpoint.js';
18
- import { FlowRunStatsEndpoint } from './Service/FlowRunStatsEndpoint.js';
15
+ import { FlowEndpoint } from './Flow/Service/FlowEndpoint.js';
16
+ import { FlowRunEndpoint } from './Flow/Service/FlowRunEndpoint.js';
17
+ import { FlowRunRequestEndpoint } from './Flow/Service/FlowRunRequestEndpoint.js';
18
+ import { FlowRunStatsEndpoint } from './Flow/Service/FlowRunStatsEndpoint.js';
19
19
  import { HealthAlertEndpoint } from './Service/HealthAlertEndpoint.js';
20
20
  import { InboxEndpoint } from './Service/InboxEndpoint.js';
21
- import { LogEndpoint } from './Service/LogEndpoint.js';
21
+ import { LogEndpoint } from './Logging/Service/LogEndpoint.js';
22
22
  import { PlatformEndpoint } from './Service/PlatformEndpoint.js';
23
23
  import { PlatformLanguageEndpoint } from './Service/PlatformLanguageEndpoint.js';
24
24
  import { ProjectEndpoint } from './Service/ProjectEndpoint.js';
25
25
  import { ProjectEnvironmentEndpoint } from './Service/ProjectEnvironmentEndpoint.js';
26
26
  import { ProviderTokenEndpoint } from './Service/ProviderTokenEndpoint.js';
27
- import { VendorProductEndpoint } from './Service/Pulse/VendorProductEndpoint.js';
28
- import { CrawlJobEndpoint } from './Service/Pulse/CrawlJobEndpoint.js';
27
+ import { VendorProductEndpoint } from './Pulse/Service/VendorProductEndpoint.js';
28
+ import { CrawlJobEndpoint } from './Pulse/Service/CrawlJobEndpoint.js';
29
+ import { CatalogEndpoint } from './Catalog/Service/CatalogEndpoint.js';
30
+ import { ProductMatchJobEndpoint } from './Pulse/Service/ProductMatchJobEndpoint.js';
31
+ import { IndexJobEndpoint } from './Pulse/Service/IndexJobEndpoint.js';
32
+ import { ProductMatchEndpoint } from './Pulse/Service/ProductMatchEndpoint.js';
33
+ import { PulseCatalogProductEndpoint } from './Pulse/Service/PulseCatalogProductEndpoint.js';
34
+ import { PriceAlertEndpoint } from './Pulse/Service/PriceAlertEndpoint.js';
35
+ import { PricingEndpoint } from './Pulse/Service/PricingEndpoint.js';
36
+ import { ProductGroupEndpoint } from './Pulse/Service/ProductGroupEndpoint.js';
37
+ import { CatalogProductEndpoint } from './Catalog/Service/CatalogProductEndpoint.js';
38
+ import { GenerateContentEndpoint } from './EnhanceData/Service/GenerateContentEndpoint.js';
39
+ import { CompetitorEndpoint } from './Pulse/Service/CompetitorEndpoint.js';
40
+ import { PulseStatisticsEndpoint } from './Pulse/Service/PulseStatisticsEndpoint.js';
41
+ import { QualityEndpoint } from './DataQuality/Service/QualityEndpoint.js';
42
+ import { CatalogFeedEndpoint } from './FeedManagement/Service/CatalogFeedEndpoint.js';
29
43
  import { RunnerEndpoint } from './Service/RunnerEndpoint.js';
30
44
  import { RunnerPoolEndpoint } from './Service/RunnerPoolEndpoint.js';
31
45
  import { SearchEndpoint } from './Service/SearchEndpoint.js';
@@ -79,6 +93,20 @@ export class Client {
79
93
  ProviderTokenEndpoint,
80
94
  VendorProductEndpoint,
81
95
  CrawlJobEndpoint,
96
+ CatalogEndpoint,
97
+ ProductMatchJobEndpoint,
98
+ IndexJobEndpoint,
99
+ ProductMatchEndpoint,
100
+ PulseCatalogProductEndpoint,
101
+ PriceAlertEndpoint,
102
+ PricingEndpoint,
103
+ ProductGroupEndpoint,
104
+ CatalogProductEndpoint,
105
+ GenerateContentEndpoint,
106
+ CompetitorEndpoint,
107
+ PulseStatisticsEndpoint,
108
+ QualityEndpoint,
109
+ CatalogFeedEndpoint,
82
110
  };
83
111
  apiEndpoint = 'https://api.attlaz.com';
84
112
  constructor(token = null, config = {}) {
@@ -266,6 +294,48 @@ export class Client {
266
294
  getCrawlJobEndpoint() {
267
295
  return this.getEndpoint('crawl-job', this.Store.CrawlJobEndpoint);
268
296
  }
297
+ getCatalogEndpoint() {
298
+ return this.getEndpoint('catalog', this.Store.CatalogEndpoint);
299
+ }
300
+ getProductMatchJobEndpoint() {
301
+ return this.getEndpoint('product-match-job', this.Store.ProductMatchJobEndpoint);
302
+ }
303
+ getIndexJobEndpoint() {
304
+ return this.getEndpoint('index-job', this.Store.IndexJobEndpoint);
305
+ }
306
+ getProductMatchEndpoint() {
307
+ return this.getEndpoint('product-match', this.Store.ProductMatchEndpoint);
308
+ }
309
+ getPulseCatalogProductEndpoint() {
310
+ return this.getEndpoint('pulse-catalog-product', this.Store.PulseCatalogProductEndpoint);
311
+ }
312
+ getCatalogProductEndpoint() {
313
+ return this.getEndpoint('catalog-product', this.Store.CatalogProductEndpoint);
314
+ }
315
+ getPriceAlertEndpoint() {
316
+ return this.getEndpoint('price-alert', this.Store.PriceAlertEndpoint);
317
+ }
318
+ getPricingEndpoint() {
319
+ return this.getEndpoint('pricing', this.Store.PricingEndpoint);
320
+ }
321
+ getProductGroupEndpoint() {
322
+ return this.getEndpoint('product-group', this.Store.ProductGroupEndpoint);
323
+ }
324
+ getGenerateContentEndpoint() {
325
+ return this.getEndpoint('generate-content', this.Store.GenerateContentEndpoint);
326
+ }
327
+ getCompetitorEndpoint() {
328
+ return this.getEndpoint('competitor', this.Store.CompetitorEndpoint);
329
+ }
330
+ getPulseStatisticsEndpoint() {
331
+ return this.getEndpoint('pulse-statistics', this.Store.PulseStatisticsEndpoint);
332
+ }
333
+ getQualityEndpoint() {
334
+ return this.getEndpoint('quality', this.Store.QualityEndpoint);
335
+ }
336
+ getCatalogFeedEndpoint() {
337
+ return this.getEndpoint('catalog-feed', this.Store.CatalogFeedEndpoint);
338
+ }
269
339
  getEndpoint(key, ClassName) {
270
340
  if (!this.endpoints.has(key)) {
271
341
  try {
@@ -0,0 +1,17 @@
1
+ import { ApiRecord } from '../../Model/ApiRecord.js';
2
+ /**
3
+ * A data-quality dataset: the set of entities being checked, and the problems found on them —
4
+ * the `/data_quality/datasets` resource.
5
+ *
6
+ * `autoCloseMode` decides what happens to an open problem that a later scan no longer reports.
7
+ */
8
+ export declare class QualityDataset {
9
+ id: string;
10
+ project: string;
11
+ name: string;
12
+ autoCloseMode: string;
13
+ config: Record<string, unknown> | null;
14
+ createdAt: Date | null;
15
+ constructor(id: string, project: string, name: string);
16
+ static parse(raw: ApiRecord): QualityDataset;
17
+ }
@@ -0,0 +1,26 @@
1
+ /**
2
+ * A data-quality dataset: the set of entities being checked, and the problems found on them —
3
+ * the `/data_quality/datasets` resource.
4
+ *
5
+ * `autoCloseMode` decides what happens to an open problem that a later scan no longer reports.
6
+ */
7
+ export class QualityDataset {
8
+ id;
9
+ project;
10
+ name;
11
+ autoCloseMode = '';
12
+ config = null;
13
+ createdAt = null;
14
+ constructor(id, project, name) {
15
+ this.id = id;
16
+ this.project = project;
17
+ this.name = name;
18
+ }
19
+ static parse(raw) {
20
+ const dataset = new QualityDataset(raw.id, raw.project, raw.name);
21
+ dataset.autoCloseMode = raw.auto_close_mode ?? '';
22
+ dataset.config = raw.config ?? null;
23
+ dataset.createdAt = raw.created_at ? new Date(raw.created_at) : null;
24
+ return dataset;
25
+ }
26
+ }
@@ -0,0 +1,24 @@
1
+ import { ApiRecord } from '../../Model/ApiRecord.js';
2
+ /**
3
+ * One thing being checked in a dataset (a product, a category, …), with a rollup of the problems
4
+ * currently open on it — the `/data_quality/datasets/:datasetId/entities` resource.
5
+ *
6
+ * `entityType` + `entityId` identify it in the source system; `id` is the dataset's own row.
7
+ */
8
+ export declare class QualityEntity {
9
+ id: string;
10
+ entityType: string;
11
+ entityId: string;
12
+ name: string | null;
13
+ url: string | null;
14
+ imageUrl: string | null;
15
+ status: string;
16
+ /** Identifier of the scan that last reported on this entity. */
17
+ lastScan: string | null;
18
+ firstSeen: Date | null;
19
+ lastSeen: Date | null;
20
+ problemCount: number;
21
+ worstSeverity: string | null;
22
+ constructor(id: string, entityType: string, entityId: string);
23
+ static parse(raw: ApiRecord): QualityEntity;
24
+ }
@@ -0,0 +1,41 @@
1
+ /**
2
+ * One thing being checked in a dataset (a product, a category, …), with a rollup of the problems
3
+ * currently open on it — the `/data_quality/datasets/:datasetId/entities` resource.
4
+ *
5
+ * `entityType` + `entityId` identify it in the source system; `id` is the dataset's own row.
6
+ */
7
+ export class QualityEntity {
8
+ id;
9
+ entityType;
10
+ entityId;
11
+ name = null;
12
+ url = null;
13
+ imageUrl = null;
14
+ status = '';
15
+ /** Identifier of the scan that last reported on this entity. */
16
+ lastScan = null;
17
+ firstSeen = null;
18
+ lastSeen = null;
19
+ problemCount = 0;
20
+ worstSeverity = null;
21
+ constructor(id, entityType, entityId) {
22
+ this.id = id;
23
+ this.entityType = entityType;
24
+ this.entityId = entityId;
25
+ }
26
+ static parse(raw) {
27
+ const entity = new QualityEntity(raw.id, raw.entity_type,
28
+ // The API strips the `_id` suffix, so `entity_id` arrives as `entity`.
29
+ raw.entity);
30
+ entity.name = raw.name ?? null;
31
+ entity.url = raw.url ?? null;
32
+ entity.imageUrl = raw.image_url ?? null;
33
+ entity.status = raw.status ?? '';
34
+ entity.lastScan = raw.last_scan ?? null;
35
+ entity.firstSeen = raw.first_seen ? new Date(raw.first_seen) : null;
36
+ entity.lastSeen = raw.last_seen ? new Date(raw.last_seen) : null;
37
+ entity.problemCount = Number(raw.problem_count ?? 0);
38
+ entity.worstSeverity = raw.worst_severity ?? null;
39
+ return entity;
40
+ }
41
+ }
@@ -0,0 +1,25 @@
1
+ import { ApiRecord } from '../../Model/ApiRecord.js';
2
+ /**
3
+ * One quality issue found on an entity — the
4
+ * `/data_quality/datasets/:datasetId/entities/:entityType/:entityId/problems` resource.
5
+ *
6
+ * `code` says what is wrong (the rule that fired) and `property` where; `channel` and `locale`
7
+ * narrow it to one sales channel or language when the rule is scoped that way.
8
+ */
9
+ export declare class QualityProblem {
10
+ id: string;
11
+ entityType: string;
12
+ entityId: string;
13
+ code: string;
14
+ property: string;
15
+ severity: string;
16
+ note: string | null;
17
+ data: Record<string, unknown> | null;
18
+ channel: string | null;
19
+ locale: string | null;
20
+ status: string;
21
+ firstSeen: Date | null;
22
+ lastSeen: Date | null;
23
+ constructor(id: string, entityType: string, entityId: string, code: string);
24
+ static parse(raw: ApiRecord): QualityProblem;
25
+ }
@@ -0,0 +1,43 @@
1
+ /**
2
+ * One quality issue found on an entity — the
3
+ * `/data_quality/datasets/:datasetId/entities/:entityType/:entityId/problems` resource.
4
+ *
5
+ * `code` says what is wrong (the rule that fired) and `property` where; `channel` and `locale`
6
+ * narrow it to one sales channel or language when the rule is scoped that way.
7
+ */
8
+ export class QualityProblem {
9
+ id;
10
+ entityType;
11
+ entityId;
12
+ code;
13
+ property = '';
14
+ severity = '';
15
+ note = null;
16
+ data = null;
17
+ channel = null;
18
+ locale = null;
19
+ status = '';
20
+ firstSeen = null;
21
+ lastSeen = null;
22
+ constructor(id, entityType, entityId, code) {
23
+ this.id = id;
24
+ this.entityType = entityType;
25
+ this.entityId = entityId;
26
+ this.code = code;
27
+ }
28
+ static parse(raw) {
29
+ const problem = new QualityProblem(raw.id, raw.entity_type,
30
+ // The API strips the `_id` suffix, so `entity_id` arrives as `entity`.
31
+ raw.entity, raw.code);
32
+ problem.property = raw.property ?? '';
33
+ problem.severity = raw.severity ?? '';
34
+ problem.note = raw.note ?? null;
35
+ problem.data = raw.data ?? null;
36
+ problem.channel = raw.channel ?? null;
37
+ problem.locale = raw.locale ?? null;
38
+ problem.status = raw.status ?? '';
39
+ problem.firstSeen = raw.first_seen ? new Date(raw.first_seen) : null;
40
+ problem.lastSeen = raw.last_seen ? new Date(raw.last_seen) : null;
41
+ return problem;
42
+ }
43
+ }
@@ -0,0 +1,45 @@
1
+ import { QualityDataset } from '../Model/QualityDataset.js';
2
+ import { QualityEntity } from '../Model/QualityEntity.js';
3
+ import { QualityProblem } from '../Model/QualityProblem.js';
4
+ import { CursorPagination } from '../../Model/Pagination/CursorPagination.js';
5
+ import { CollectionResult } from '../../Model/Result/CollectionResult.js';
6
+ import { Endpoint } from '../../Service/Endpoint.js';
7
+ /** Narrows the entity list; every field is optional and omitted filters are not sent. */
8
+ export type QualityEntityFilters = {
9
+ entityType?: string | null;
10
+ status?: string | null;
11
+ search?: string | null;
12
+ severity?: string | null;
13
+ property?: string | null;
14
+ };
15
+ /** One row of the dataset summary: how many problems of a severity are open on a property. */
16
+ export type QualitySummaryRow = {
17
+ property: string;
18
+ severity: string;
19
+ count: number;
20
+ };
21
+ /** The values the entity list can be filtered on, for the dataset as it currently stands. */
22
+ export type QualityFilterOptions = {
23
+ entityTypes: string[];
24
+ properties: string[];
25
+ };
26
+ /**
27
+ * Data Quality — `/data_quality/datasets`. A dataset holds the entities being checked and the
28
+ * problems open on them.
29
+ */
30
+ export declare class QualityEndpoint extends Endpoint {
31
+ getDatasets(projectId: string, pagination?: CursorPagination | null): Promise<CollectionResult<QualityDataset>>;
32
+ getDataset(datasetId: string): Promise<QualityDataset | null>;
33
+ createDataset(projectId: string, name: string, autoCloseMode?: string | null): Promise<QualityDataset | null>;
34
+ updateDataset(datasetId: string, changes: {
35
+ name?: string;
36
+ autoCloseMode?: string;
37
+ }): Promise<QualityDataset | null>;
38
+ deleteDataset(datasetId: string): Promise<void>;
39
+ getEntities(datasetId: string, pagination?: CursorPagination | null, filters?: QualityEntityFilters): Promise<CollectionResult<QualityEntity>>;
40
+ getEntityProblems(datasetId: string, entityType: string, entityId: string): Promise<CollectionResult<QualityProblem>>;
41
+ /** Clear an entity's problems so the next scan starts from scratch; returns how many were removed. */
42
+ resetEntity(datasetId: string, entityType: string, entityId: string): Promise<number>;
43
+ getFilterOptions(datasetId: string): Promise<QualityFilterOptions>;
44
+ getSummary(datasetId: string): Promise<QualitySummaryRow[]>;
45
+ }