@shopware-ag/app-server-sdk 1.1.0 → 1.1.2
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/dist/commonjs/helper/admin-api.d.ts +56 -0
- package/dist/commonjs/helper/admin-api.d.ts.map +1 -0
- package/dist/commonjs/helper/admin-api.js +126 -0
- package/dist/commonjs/helper/admin-api.js.map +1 -0
- package/dist/commonjs/helper/criteria.d.ts +377 -0
- package/dist/commonjs/helper/criteria.d.ts.map +1 -0
- package/dist/commonjs/helper/criteria.js +456 -0
- package/dist/commonjs/helper/criteria.js.map +1 -0
- package/dist/commonjs/http-client.js +2 -1
- package/dist/commonjs/http-client.js.map +1 -1
- package/dist/commonjs/integration/better-sqlite3.d.ts +11 -0
- package/dist/commonjs/integration/better-sqlite3.d.ts.map +1 -0
- package/dist/commonjs/integration/better-sqlite3.js +58 -0
- package/dist/commonjs/integration/better-sqlite3.js.map +1 -0
- package/dist/esm/helper/admin-api.d.ts +56 -0
- package/dist/esm/helper/admin-api.d.ts.map +1 -0
- package/dist/esm/helper/admin-api.js +117 -0
- package/dist/esm/helper/admin-api.js.map +1 -0
- package/dist/esm/helper/criteria.d.ts +377 -0
- package/dist/esm/helper/criteria.d.ts.map +1 -0
- package/dist/esm/helper/criteria.js +452 -0
- package/dist/esm/helper/criteria.js.map +1 -0
- package/dist/esm/http-client.js +2 -1
- package/dist/esm/http-client.js.map +1 -1
- package/dist/esm/integration/better-sqlite3.d.ts +11 -0
- package/dist/esm/integration/better-sqlite3.d.ts.map +1 -0
- package/dist/esm/integration/better-sqlite3.js +51 -0
- package/dist/esm/integration/better-sqlite3.js.map +1 -0
- package/package.json +206 -141
- package/dist/commonjs/context-resolver.test.d.ts +0 -2
- package/dist/commonjs/context-resolver.test.d.ts.map +0 -1
- package/dist/commonjs/context-resolver.test.js +0 -81
- package/dist/commonjs/context-resolver.test.js.map +0 -1
- package/dist/commonjs/helper/app-actions.test.d.ts +0 -2
- package/dist/commonjs/helper/app-actions.test.d.ts.map +0 -1
- package/dist/commonjs/helper/app-actions.test.js +0 -31
- package/dist/commonjs/helper/app-actions.test.js.map +0 -1
- package/dist/commonjs/http-client.test.d.ts +0 -2
- package/dist/commonjs/http-client.test.d.ts.map +0 -1
- package/dist/commonjs/http-client.test.js +0 -71
- package/dist/commonjs/http-client.test.js.map +0 -1
- package/dist/commonjs/integration/bun-sqlite.test.d.ts +0 -2
- package/dist/commonjs/integration/bun-sqlite.test.d.ts.map +0 -1
- package/dist/commonjs/integration/bun-sqlite.test.js +0 -24
- package/dist/commonjs/integration/bun-sqlite.test.js.map +0 -1
- package/dist/commonjs/integration/cloudflare.test.d.ts +0 -2
- package/dist/commonjs/integration/cloudflare.test.d.ts.map +0 -1
- package/dist/commonjs/integration/cloudflare.test.js +0 -39
- package/dist/commonjs/integration/cloudflare.test.js.map +0 -1
- package/dist/commonjs/integration/deno.test.d.ts +0 -2
- package/dist/commonjs/integration/deno.test.d.ts.map +0 -1
- package/dist/commonjs/integration/deno.test.js +0 -48
- package/dist/commonjs/integration/deno.test.js.map +0 -1
- package/dist/commonjs/integration/dynamodb.test.d.ts +0 -2
- package/dist/commonjs/integration/dynamodb.test.d.ts.map +0 -1
- package/dist/commonjs/integration/dynamodb.test.js +0 -132
- package/dist/commonjs/integration/dynamodb.test.js.map +0 -1
- package/dist/commonjs/integration/hono.test.d.ts +0 -2
- package/dist/commonjs/integration/hono.test.d.ts.map +0 -1
- package/dist/commonjs/integration/hono.test.js +0 -86
- package/dist/commonjs/integration/hono.test.js.map +0 -1
- package/dist/commonjs/registration.test.d.ts +0 -2
- package/dist/commonjs/registration.test.d.ts.map +0 -1
- package/dist/commonjs/registration.test.js +0 -59
- package/dist/commonjs/registration.test.js.map +0 -1
- package/dist/commonjs/repository.test.d.ts +0 -2
- package/dist/commonjs/repository.test.d.ts.map +0 -1
- package/dist/commonjs/repository.test.js +0 -32
- package/dist/commonjs/repository.test.js.map +0 -1
- package/dist/commonjs/signer.test.d.ts +0 -2
- package/dist/commonjs/signer.test.d.ts.map +0 -1
- package/dist/commonjs/signer.test.js +0 -25
- package/dist/commonjs/signer.test.js.map +0 -1
- package/dist/esm/context-resolver.test.d.ts +0 -2
- package/dist/esm/context-resolver.test.d.ts.map +0 -1
- package/dist/esm/context-resolver.test.js +0 -79
- package/dist/esm/context-resolver.test.js.map +0 -1
- package/dist/esm/helper/app-actions.test.d.ts +0 -2
- package/dist/esm/helper/app-actions.test.d.ts.map +0 -1
- package/dist/esm/helper/app-actions.test.js +0 -29
- package/dist/esm/helper/app-actions.test.js.map +0 -1
- package/dist/esm/http-client.test.d.ts +0 -2
- package/dist/esm/http-client.test.d.ts.map +0 -1
- package/dist/esm/http-client.test.js +0 -69
- package/dist/esm/http-client.test.js.map +0 -1
- package/dist/esm/integration/bun-sqlite.test.d.ts +0 -2
- package/dist/esm/integration/bun-sqlite.test.d.ts.map +0 -1
- package/dist/esm/integration/bun-sqlite.test.js +0 -22
- package/dist/esm/integration/bun-sqlite.test.js.map +0 -1
- package/dist/esm/integration/cloudflare.test.d.ts +0 -2
- package/dist/esm/integration/cloudflare.test.d.ts.map +0 -1
- package/dist/esm/integration/cloudflare.test.js +0 -37
- package/dist/esm/integration/cloudflare.test.js.map +0 -1
- package/dist/esm/integration/deno.test.d.ts +0 -2
- package/dist/esm/integration/deno.test.d.ts.map +0 -1
- package/dist/esm/integration/deno.test.js +0 -46
- package/dist/esm/integration/deno.test.js.map +0 -1
- package/dist/esm/integration/dynamodb.test.d.ts +0 -2
- package/dist/esm/integration/dynamodb.test.d.ts.map +0 -1
- package/dist/esm/integration/dynamodb.test.js +0 -130
- package/dist/esm/integration/dynamodb.test.js.map +0 -1
- package/dist/esm/integration/hono.test.d.ts +0 -2
- package/dist/esm/integration/hono.test.d.ts.map +0 -1
- package/dist/esm/integration/hono.test.js +0 -84
- package/dist/esm/integration/hono.test.js.map +0 -1
- package/dist/esm/registration.test.d.ts +0 -2
- package/dist/esm/registration.test.d.ts.map +0 -1
- package/dist/esm/registration.test.js +0 -57
- package/dist/esm/registration.test.js.map +0 -1
- package/dist/esm/repository.test.d.ts +0 -2
- package/dist/esm/repository.test.d.ts.map +0 -1
- package/dist/esm/repository.test.js +0 -30
- package/dist/esm/repository.test.js.map +0 -1
- package/dist/esm/signer.test.d.ts +0 -2
- package/dist/esm/signer.test.d.ts.map +0 -1
- package/dist/esm/signer.test.js +0 -23
- package/dist/esm/signer.test.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"better-sqlite3.js","sourceRoot":"","sources":["../../../src/integration/better-sqlite3.ts"],"names":[],"mappings":";;;;;;AAAA,oDAA4E;AAE5E,oEAAsC;AAEtC,MAAa,uBAAuB;IAGnC,EAAE,CAAoB;IACtB,YAAY,QAAgB;QAC3B,IAAI,CAAC,EAAE,GAAG,IAAI,wBAAQ,CAAC,QAAQ,CAAC,CAAC;QACjC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;QACrC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC;;;;;;;;;OASR,CAAC,CAAC;IACR,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,EAAU,EAAE,GAAW,EAAE,MAAc;QACvD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QAExC,IAAI,IAAI,EAAE,CAAC;YACV,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACpC,CAAC;QAED,IAAI,CAAC,EAAE;aACL,OAAO,CAAC,qDAAqD,CAAC;aAC9D,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,EAAU;QAC3B,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE;aACpB,OAAO,CAAC,iCAAiC,CAAC;aAC1C,GAAG,CAAC,EAAE,CAOP,CAAC;QAEF,IAAI,CAAC,MAAM,EAAE,CAAC;YACb,OAAO,IAAI,CAAC;QACb,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,0BAAU,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QAElE,IAAI,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;YAC9C,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC;QACjE,CAAC;QAED,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC;QAExC,OAAO,IAAI,CAAC;IACb,CAAC;IACD,KAAK,CAAC,UAAU,CAAC,IAAgB;QAChC,IAAI,CAAC,EAAE;aACL,OAAO,CACP,gGAAgG,CAChG;aACA,GAAG,CACH,IAAI,CAAC,UAAU,EAAE,EACjB,IAAI,CAAC,aAAa,EAAE,EACpB,IAAI,CAAC,eAAe,EAAE,EACtB,IAAI,CAAC,mBAAmB,EAAE,EAC1B,CAAC,IAAI,CAAC,aAAa,EAAE,EACrB,IAAI,CAAC,SAAS,EAAE,CAChB,CAAC;IACJ,CAAC;IACD,KAAK,CAAC,UAAU,CAAC,EAAU;QAC1B,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,+BAA+B,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC1D,CAAC;CACD;AA1ED,0DA0EC","sourcesContent":["import { type ShopRepositoryInterface, SimpleShop } from \"../repository.js\";\n\nimport Database from \"better-sqlite3\";\n\nexport class BetterSqlite3Repository\n\timplements ShopRepositoryInterface<SimpleShop>\n{\n\tdb: Database.Database;\n\tconstructor(fileName: string) {\n\t\tthis.db = new Database(fileName);\n\t\tthis.db.pragma(\"journal_mode = WAL\");\n\t\tthis.db.exec(`\n CREATE TABLE IF NOT EXISTS shop (\n id TEXT PRIMARY KEY,\n active BOOLEAN DEFAULT 1,\n url TEXT NOT NULL,\n secret TEXT NOT NULL,\n client_id TEXT NULL,\n client_secret TEXT NULL\n );\n `);\n\t}\n\n\tasync createShop(id: string, url: string, secret: string): Promise<void> {\n\t\tconst shop = await this.getShopById(id);\n\n\t\tif (shop) {\n\t\t\treturn await this.updateShop(shop);\n\t\t}\n\n\t\tthis.db\n\t\t\t.prepare(\"INSERT INTO shop (id, url, secret) VALUES (?, ?, ?)\")\n\t\t\t.run(id, url, secret);\n\t}\n\n\tasync getShopById(id: string): Promise<SimpleShop | null> {\n\t\tconst result = this.db\n\t\t\t.prepare(\"SELECT * FROM shop WHERE id = ?\")\n\t\t\t.get(id) as null | {\n\t\t\tid: string;\n\t\t\tactive: number;\n\t\t\turl: string;\n\t\t\tsecret: string;\n\t\t\tclient_id?: string;\n\t\t\tclient_secret?: string;\n\t\t};\n\n\t\tif (!result) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst shop = new SimpleShop(result.id, result.url, result.secret);\n\n\t\tif (result.client_id && result.client_secret) {\n\t\t\tshop.setShopCredentials(result.client_id, result.client_secret);\n\t\t}\n\n\t\tshop.setShopActive(result.active === 1);\n\n\t\treturn shop;\n\t}\n\tasync updateShop(shop: SimpleShop): Promise<void> {\n\t\tthis.db\n\t\t\t.prepare(\n\t\t\t\t\"UPDATE shop SET url = ?, secret = ?, client_id = ?, client_secret = ?, active = ? WHERE id = ?\",\n\t\t\t)\n\t\t\t.run(\n\t\t\t\tshop.getShopUrl(),\n\t\t\t\tshop.getShopSecret(),\n\t\t\t\tshop.getShopClientId(),\n\t\t\t\tshop.getShopClientSecret(),\n\t\t\t\t+shop.getShopActive(),\n\t\t\t\tshop.getShopId(),\n\t\t\t);\n\t}\n\tasync deleteShop(id: string): Promise<void> {\n\t\tthis.db.prepare(\"DELETE FROM shop where id = ?\").run(id);\n\t}\n}\n"]}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import type { HttpClient } from "../http-client.js";
|
|
2
|
+
import type { Criteria } from "./criteria.js";
|
|
3
|
+
import type { SingleFilter } from "./criteria.js";
|
|
4
|
+
export declare class ApiContext {
|
|
5
|
+
private languageId;
|
|
6
|
+
inheritance: boolean | null;
|
|
7
|
+
versionId: string | null;
|
|
8
|
+
skipTriggerFlows: boolean | null;
|
|
9
|
+
indexingSkip: string | null;
|
|
10
|
+
indexingBehaviour: string | null;
|
|
11
|
+
constructor(languageId?: string | null, inheritance?: boolean | null, versionId?: string | null, skipTriggerFlows?: boolean | null, indexingSkip?: string | null, indexingBehaviour?: string | null);
|
|
12
|
+
toHeaders(): Record<string, string>;
|
|
13
|
+
}
|
|
14
|
+
export declare class EntityRepository<Entity extends object = object> {
|
|
15
|
+
private client;
|
|
16
|
+
private entityName;
|
|
17
|
+
constructor(client: HttpClient, entityName: string);
|
|
18
|
+
search<Aggregations = object>(criteria: Criteria, context?: ApiContext): Promise<EntitySearchResult<Entity, Aggregations>>;
|
|
19
|
+
searchIds(criteria: Criteria, context?: ApiContext): Promise<string[]>;
|
|
20
|
+
aggregate<Aggregations>(criteria: Criteria, context?: ApiContext): Promise<EntitySearchResult<object, Aggregations>>;
|
|
21
|
+
upsert(payload: Entity[], context?: ApiContext): Promise<void>;
|
|
22
|
+
delete<DeleteType extends object = {
|
|
23
|
+
id: string;
|
|
24
|
+
}>(payload: DeleteType[], context?: ApiContext): Promise<void>;
|
|
25
|
+
deleteByFilters(filters: SingleFilter[], context?: ApiContext): Promise<void>;
|
|
26
|
+
}
|
|
27
|
+
export declare class SyncService {
|
|
28
|
+
private client;
|
|
29
|
+
constructor(client: HttpClient);
|
|
30
|
+
sync(operations: SyncOperation[], context?: ApiContext): Promise<void>;
|
|
31
|
+
}
|
|
32
|
+
export declare class SyncOperation {
|
|
33
|
+
key: string;
|
|
34
|
+
entity: string;
|
|
35
|
+
action: "upsert" | "delete";
|
|
36
|
+
payload: object[];
|
|
37
|
+
criteria: SingleFilter[] | null;
|
|
38
|
+
constructor(key: string, entity: string, action: "upsert" | "delete", payload: object[], criteria?: SingleFilter[] | null);
|
|
39
|
+
}
|
|
40
|
+
export declare class EntitySearchResult<Entity = unknown, Aggregations = object> {
|
|
41
|
+
total: number;
|
|
42
|
+
aggregations: Aggregations;
|
|
43
|
+
data: Entity[];
|
|
44
|
+
constructor(total: number, aggregations: Aggregations, data: Entity[]);
|
|
45
|
+
first(): Entity | null;
|
|
46
|
+
}
|
|
47
|
+
export declare const Defaults: {
|
|
48
|
+
systemLanguageId: string;
|
|
49
|
+
liveVersion: string;
|
|
50
|
+
systemCurrencyId: string;
|
|
51
|
+
salesChannelTypeApi: string;
|
|
52
|
+
salesChannelTypeSalesChannel: string;
|
|
53
|
+
salesChannelTypeProductComparision: string;
|
|
54
|
+
};
|
|
55
|
+
export declare function uuid(): string;
|
|
56
|
+
//# sourceMappingURL=admin-api.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"admin-api.d.ts","sourceRoot":"","sources":["../../../src/helper/admin-api.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
export class ApiContext {
|
|
2
|
+
languageId;
|
|
3
|
+
inheritance;
|
|
4
|
+
versionId;
|
|
5
|
+
skipTriggerFlows;
|
|
6
|
+
indexingSkip;
|
|
7
|
+
indexingBehaviour;
|
|
8
|
+
constructor(languageId = null, inheritance = null, versionId = null, skipTriggerFlows = null, indexingSkip = null, indexingBehaviour = null) {
|
|
9
|
+
this.languageId = languageId;
|
|
10
|
+
this.inheritance = inheritance;
|
|
11
|
+
this.versionId = versionId;
|
|
12
|
+
this.skipTriggerFlows = skipTriggerFlows;
|
|
13
|
+
this.indexingSkip = indexingSkip;
|
|
14
|
+
this.indexingBehaviour = indexingBehaviour;
|
|
15
|
+
}
|
|
16
|
+
toHeaders() {
|
|
17
|
+
const headers = {
|
|
18
|
+
"sw-language-id": this.languageId,
|
|
19
|
+
"sw-inheritance": this.inheritance === true ? "1" : "0",
|
|
20
|
+
"sw-version-id": this.versionId,
|
|
21
|
+
"sw-skip-trigger-flow": this.skipTriggerFlows === true ? "1" : "0",
|
|
22
|
+
"indexing-skip": this.indexingSkip,
|
|
23
|
+
"indexing-behavior": this.indexingBehaviour,
|
|
24
|
+
};
|
|
25
|
+
for (const key of Object.keys(headers)) {
|
|
26
|
+
// @ts-expect-error
|
|
27
|
+
if (headers[key] === null) {
|
|
28
|
+
// @ts-expect-error
|
|
29
|
+
delete headers[key];
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
// @ts-expect-error
|
|
33
|
+
return headers;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
export class EntityRepository {
|
|
37
|
+
client;
|
|
38
|
+
entityName;
|
|
39
|
+
constructor(client, entityName) {
|
|
40
|
+
this.client = client;
|
|
41
|
+
this.entityName = entityName;
|
|
42
|
+
this.client = client;
|
|
43
|
+
this.entityName = entityName;
|
|
44
|
+
}
|
|
45
|
+
async search(criteria, context = new ApiContext()) {
|
|
46
|
+
const response = await this.client.post(`/search/${this.entityName}`, criteria.toPayload(), context.toHeaders());
|
|
47
|
+
return new EntitySearchResult(response.body.total, response.body.aggregations, response.body.data);
|
|
48
|
+
}
|
|
49
|
+
async searchIds(criteria, context = new ApiContext()) {
|
|
50
|
+
const response = await this.client.post(`/search-ids/${this.entityName}`, criteria.toPayload(), context.toHeaders());
|
|
51
|
+
return response.body.data;
|
|
52
|
+
}
|
|
53
|
+
async aggregate(criteria, context = new ApiContext()) {
|
|
54
|
+
const response = await this.client.post(`/aggregate/${this.entityName}`, criteria.toPayload(), context.toHeaders());
|
|
55
|
+
return new EntitySearchResult(response.body.total, response.body.aggregations, response.body.data);
|
|
56
|
+
}
|
|
57
|
+
async upsert(payload, context = new ApiContext()) {
|
|
58
|
+
await new SyncService(this.client).sync([new SyncOperation("upsert", this.entityName, "upsert", payload)], context);
|
|
59
|
+
}
|
|
60
|
+
async delete(payload, context = new ApiContext()) {
|
|
61
|
+
await new SyncService(this.client).sync([new SyncOperation("delete", this.entityName, "delete", payload)], context);
|
|
62
|
+
}
|
|
63
|
+
async deleteByFilters(filters, context = new ApiContext()) {
|
|
64
|
+
await new SyncService(this.client).sync([new SyncOperation("delete", this.entityName, "delete", [], filters)], context);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
export class SyncService {
|
|
68
|
+
client;
|
|
69
|
+
constructor(client) {
|
|
70
|
+
this.client = client;
|
|
71
|
+
}
|
|
72
|
+
async sync(operations, context = new ApiContext()) {
|
|
73
|
+
await this.client.post("/_action/sync", operations, context.toHeaders());
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
export class SyncOperation {
|
|
77
|
+
key;
|
|
78
|
+
entity;
|
|
79
|
+
action;
|
|
80
|
+
payload;
|
|
81
|
+
criteria;
|
|
82
|
+
constructor(key, entity, action, payload, criteria = null) {
|
|
83
|
+
this.key = key;
|
|
84
|
+
this.entity = entity;
|
|
85
|
+
this.action = action;
|
|
86
|
+
this.payload = payload;
|
|
87
|
+
this.criteria = criteria;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
export class EntitySearchResult {
|
|
91
|
+
total;
|
|
92
|
+
aggregations;
|
|
93
|
+
data;
|
|
94
|
+
constructor(total, aggregations, data) {
|
|
95
|
+
this.total = total;
|
|
96
|
+
this.aggregations = aggregations;
|
|
97
|
+
this.data = data;
|
|
98
|
+
this.total = total;
|
|
99
|
+
this.aggregations = aggregations;
|
|
100
|
+
this.data = data;
|
|
101
|
+
}
|
|
102
|
+
first() {
|
|
103
|
+
return this.data[0] || null;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
export const Defaults = {
|
|
107
|
+
systemLanguageId: "2fbb5fe2e29a4d70aa5854ce7ce3e20b",
|
|
108
|
+
liveVersion: "0fa91ce3e96a4bc2be4bd9ce752c3425",
|
|
109
|
+
systemCurrencyId: "b7d2554b0ce847cd82f3ac9bd1c0dfca",
|
|
110
|
+
salesChannelTypeApi: "f183ee5650cf4bdb8a774337575067a6",
|
|
111
|
+
salesChannelTypeSalesChannel: "8a243080f92e4c719546314b577cf82b",
|
|
112
|
+
salesChannelTypeProductComparision: "ed535e5722134ac1aa6524f73e26881b",
|
|
113
|
+
};
|
|
114
|
+
export function uuid() {
|
|
115
|
+
return crypto.randomUUID().replaceAll("-", "");
|
|
116
|
+
}
|
|
117
|
+
//# sourceMappingURL=admin-api.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"admin-api.js","sourceRoot":"","sources":["../../../src/helper/admin-api.ts"],"names":[],"mappings":"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","sourcesContent":["import type { HttpClient } from \"../http-client.js\";\nimport type { Criteria } from \"./criteria.js\";\nimport type { SingleFilter } from \"./criteria.js\";\n\nexport class ApiContext {\n\tprivate languageId: string | null;\n\tinheritance: boolean | null;\n\tversionId: string | null;\n\tskipTriggerFlows: boolean | null;\n\tindexingSkip: string | null;\n\tindexingBehaviour: string | null;\n\n\tconstructor(\n\t\tlanguageId: string | null = null,\n\t\tinheritance: boolean | null = null,\n\t\tversionId: string | null = null,\n\t\tskipTriggerFlows: boolean | null = null,\n\t\tindexingSkip: string | null = null,\n\t\tindexingBehaviour: string | null = null,\n\t) {\n\t\tthis.languageId = languageId;\n\t\tthis.inheritance = inheritance;\n\t\tthis.versionId = versionId;\n\t\tthis.skipTriggerFlows = skipTriggerFlows;\n\t\tthis.indexingSkip = indexingSkip;\n\t\tthis.indexingBehaviour = indexingBehaviour;\n\t}\n\n\ttoHeaders(): Record<string, string> {\n\t\tconst headers = {\n\t\t\t\"sw-language-id\": this.languageId,\n\t\t\t\"sw-inheritance\": this.inheritance === true ? \"1\" : \"0\",\n\t\t\t\"sw-version-id\": this.versionId,\n\t\t\t\"sw-skip-trigger-flow\": this.skipTriggerFlows === true ? \"1\" : \"0\",\n\t\t\t\"indexing-skip\": this.indexingSkip,\n\t\t\t\"indexing-behavior\": this.indexingBehaviour,\n\t\t};\n\n\t\tfor (const key of Object.keys(headers)) {\n\t\t\t// @ts-expect-error\n\t\t\tif (headers[key] === null) {\n\t\t\t\t// @ts-expect-error\n\t\t\t\tdelete headers[key];\n\t\t\t}\n\t\t}\n\n\t\t// @ts-expect-error\n\t\treturn headers;\n\t}\n}\n\nexport class EntityRepository<Entity extends object = object> {\n\tconstructor(\n\t\tprivate client: HttpClient,\n\t\tprivate entityName: string,\n\t) {\n\t\tthis.client = client;\n\t\tthis.entityName = entityName;\n\t}\n\n\tasync search<Aggregations = object>(\n\t\tcriteria: Criteria,\n\t\tcontext: ApiContext = new ApiContext(),\n\t): Promise<EntitySearchResult<Entity, Aggregations>> {\n\t\tconst response = await this.client.post<\n\t\t\tEntitySearchResponse<Entity, Aggregations>\n\t\t>(`/search/${this.entityName}`, criteria.toPayload(), context.toHeaders());\n\n\t\treturn new EntitySearchResult<Entity, Aggregations>(\n\t\t\tresponse.body.total,\n\t\t\tresponse.body.aggregations,\n\t\t\tresponse.body.data,\n\t\t);\n\t}\n\n\tasync searchIds(\n\t\tcriteria: Criteria,\n\t\tcontext: ApiContext = new ApiContext(),\n\t): Promise<string[]> {\n\t\tconst response = await this.client.post<{ data: string[] }>(\n\t\t\t`/search-ids/${this.entityName}`,\n\t\t\tcriteria.toPayload(),\n\t\t\tcontext.toHeaders(),\n\t\t);\n\n\t\treturn response.body.data;\n\t}\n\n\tasync aggregate<Aggregations>(\n\t\tcriteria: Criteria,\n\t\tcontext: ApiContext = new ApiContext(),\n\t): Promise<EntitySearchResult<object, Aggregations>> {\n\t\tconst response = await this.client.post<\n\t\t\tEntitySearchResponse<object, Aggregations>\n\t\t>(\n\t\t\t`/aggregate/${this.entityName}`,\n\t\t\tcriteria.toPayload(),\n\t\t\tcontext.toHeaders(),\n\t\t);\n\n\t\treturn new EntitySearchResult<object, Aggregations>(\n\t\t\tresponse.body.total,\n\t\t\tresponse.body.aggregations,\n\t\t\tresponse.body.data,\n\t\t);\n\t}\n\n\tasync upsert(\n\t\tpayload: Entity[],\n\t\tcontext: ApiContext = new ApiContext(),\n\t): Promise<void> {\n\t\tawait new SyncService(this.client).sync(\n\t\t\t[new SyncOperation(\"upsert\", this.entityName, \"upsert\", payload)],\n\t\t\tcontext,\n\t\t);\n\t}\n\n\tasync delete<DeleteType extends object = { id: string }>(\n\t\tpayload: DeleteType[],\n\t\tcontext: ApiContext = new ApiContext(),\n\t): Promise<void> {\n\t\tawait new SyncService(this.client).sync(\n\t\t\t[new SyncOperation(\"delete\", this.entityName, \"delete\", payload)],\n\t\t\tcontext,\n\t\t);\n\t}\n\n\tasync deleteByFilters(\n\t\tfilters: SingleFilter[],\n\t\tcontext: ApiContext = new ApiContext(),\n\t): Promise<void> {\n\t\tawait new SyncService(this.client).sync(\n\t\t\t[new SyncOperation(\"delete\", this.entityName, \"delete\", [], filters)],\n\t\t\tcontext,\n\t\t);\n\t}\n}\n\nexport class SyncService {\n\tconstructor(private client: HttpClient) {}\n\n\tasync sync(\n\t\toperations: SyncOperation[],\n\t\tcontext: ApiContext = new ApiContext(),\n\t): Promise<void> {\n\t\tawait this.client.post<{ notFound: string[]; deleted: string[] }>(\n\t\t\t\"/_action/sync\",\n\t\t\toperations,\n\t\t\tcontext.toHeaders(),\n\t\t);\n\t}\n}\n\nexport class SyncOperation {\n\tconstructor(\n\t\tpublic key: string,\n\t\tpublic entity: string,\n\t\tpublic action: \"upsert\" | \"delete\",\n\t\tpublic payload: object[],\n\t\tpublic criteria: SingleFilter[] | null = null,\n\t) {}\n}\n\ntype EntitySearchResponse<Entity = unknown, Aggregations = object> = {\n\ttotal: number;\n\taggregations: Aggregations;\n\tdata: Entity[];\n};\n\nexport class EntitySearchResult<Entity = unknown, Aggregations = object> {\n\tconstructor(\n\t\tpublic total: number,\n\t\tpublic aggregations: Aggregations,\n\t\tpublic data: Entity[],\n\t) {\n\t\tthis.total = total;\n\t\tthis.aggregations = aggregations;\n\t\tthis.data = data;\n\t}\n\n\tfirst(): Entity | null {\n\t\treturn this.data[0] || null;\n\t}\n}\n\nexport const Defaults = {\n\tsystemLanguageId: \"2fbb5fe2e29a4d70aa5854ce7ce3e20b\",\n\tliveVersion: \"0fa91ce3e96a4bc2be4bd9ce752c3425\",\n\tsystemCurrencyId: \"b7d2554b0ce847cd82f3ac9bd1c0dfca\",\n\tsalesChannelTypeApi: \"f183ee5650cf4bdb8a774337575067a6\",\n\tsalesChannelTypeSalesChannel: \"8a243080f92e4c719546314b577cf82b\",\n\tsalesChannelTypeProductComparision: \"ed535e5722134ac1aa6524f73e26881b\",\n};\n\nexport function uuid(): string {\n\treturn crypto.randomUUID().replaceAll(\"-\", \"\");\n}\n"]}
|
|
@@ -0,0 +1,377 @@
|
|
|
1
|
+
export declare enum TotalCountMode {
|
|
2
|
+
NO_TOTAL_COUNT = 0,
|
|
3
|
+
EXACT_TOTAL_COUNT = 1,
|
|
4
|
+
PAGINATION_TOTAL_COUNT = 2
|
|
5
|
+
}
|
|
6
|
+
interface Filters {
|
|
7
|
+
contains: {
|
|
8
|
+
type: "contains";
|
|
9
|
+
field: string;
|
|
10
|
+
value: string;
|
|
11
|
+
};
|
|
12
|
+
prefix: {
|
|
13
|
+
type: "prefix";
|
|
14
|
+
field: string;
|
|
15
|
+
value: string;
|
|
16
|
+
};
|
|
17
|
+
suffix: {
|
|
18
|
+
type: "suffix";
|
|
19
|
+
field: string;
|
|
20
|
+
value: string;
|
|
21
|
+
};
|
|
22
|
+
equalsAny: {
|
|
23
|
+
type: "equalsAny";
|
|
24
|
+
field: string;
|
|
25
|
+
value: (string | number | boolean | null)[];
|
|
26
|
+
};
|
|
27
|
+
equals: {
|
|
28
|
+
type: "equals";
|
|
29
|
+
field: string;
|
|
30
|
+
value: string | number | boolean | null;
|
|
31
|
+
};
|
|
32
|
+
range: {
|
|
33
|
+
type: "range";
|
|
34
|
+
field: string;
|
|
35
|
+
parameters: {
|
|
36
|
+
lte?: string | number;
|
|
37
|
+
lt?: string | number;
|
|
38
|
+
gte?: string | number;
|
|
39
|
+
gt?: string | number;
|
|
40
|
+
};
|
|
41
|
+
};
|
|
42
|
+
not: {
|
|
43
|
+
type: "not";
|
|
44
|
+
operator: "and" | "AND" | "or" | "OR";
|
|
45
|
+
queries: SingleFilter[];
|
|
46
|
+
};
|
|
47
|
+
multi: {
|
|
48
|
+
type: "multi";
|
|
49
|
+
operator: "and" | "AND" | "or" | "OR";
|
|
50
|
+
queries: SingleFilter[];
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
interface Aggregations {
|
|
54
|
+
histogram: {
|
|
55
|
+
type: "histogram";
|
|
56
|
+
name: string;
|
|
57
|
+
field: string;
|
|
58
|
+
interval: string | null;
|
|
59
|
+
format: string | null;
|
|
60
|
+
aggregation: Aggregation | null;
|
|
61
|
+
timeZone: string | null;
|
|
62
|
+
};
|
|
63
|
+
terms: {
|
|
64
|
+
type: "terms";
|
|
65
|
+
name: string;
|
|
66
|
+
field: string;
|
|
67
|
+
limit?: number | null;
|
|
68
|
+
sort?: Sorting | null;
|
|
69
|
+
aggregation?: Aggregation | null;
|
|
70
|
+
};
|
|
71
|
+
sum: {
|
|
72
|
+
type: "sum";
|
|
73
|
+
name: string;
|
|
74
|
+
field: string;
|
|
75
|
+
};
|
|
76
|
+
stats: {
|
|
77
|
+
type: "stats";
|
|
78
|
+
name: string;
|
|
79
|
+
field: string;
|
|
80
|
+
};
|
|
81
|
+
min: {
|
|
82
|
+
type: "min";
|
|
83
|
+
name: string;
|
|
84
|
+
field: string;
|
|
85
|
+
};
|
|
86
|
+
max: {
|
|
87
|
+
type: "max";
|
|
88
|
+
name: string;
|
|
89
|
+
field: string;
|
|
90
|
+
};
|
|
91
|
+
count: {
|
|
92
|
+
type: "count";
|
|
93
|
+
name: string;
|
|
94
|
+
field: string;
|
|
95
|
+
};
|
|
96
|
+
avg: {
|
|
97
|
+
type: "avg";
|
|
98
|
+
name: string;
|
|
99
|
+
field: string;
|
|
100
|
+
};
|
|
101
|
+
entity: {
|
|
102
|
+
type: "entity";
|
|
103
|
+
name: string;
|
|
104
|
+
field: string;
|
|
105
|
+
definition: string;
|
|
106
|
+
};
|
|
107
|
+
filter: {
|
|
108
|
+
type: "filter";
|
|
109
|
+
name: string;
|
|
110
|
+
filter: SingleFilter[];
|
|
111
|
+
aggregation: Aggregation;
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
type ValueOf<T> = T[keyof T];
|
|
115
|
+
export type SingleFilter = ValueOf<Filters>;
|
|
116
|
+
type Aggregation = ValueOf<Aggregations>;
|
|
117
|
+
interface Include {
|
|
118
|
+
[entityName: string]: string[];
|
|
119
|
+
}
|
|
120
|
+
interface Association {
|
|
121
|
+
association: string;
|
|
122
|
+
criteria: Criteria;
|
|
123
|
+
}
|
|
124
|
+
interface Query {
|
|
125
|
+
score: number;
|
|
126
|
+
query: SingleFilter;
|
|
127
|
+
scoreField?: string;
|
|
128
|
+
}
|
|
129
|
+
interface Sorting {
|
|
130
|
+
field: string;
|
|
131
|
+
order: "ASC" | "DESC";
|
|
132
|
+
naturalSorting: boolean;
|
|
133
|
+
type?: string;
|
|
134
|
+
}
|
|
135
|
+
interface RequestParams {
|
|
136
|
+
ids?: string[];
|
|
137
|
+
page?: number;
|
|
138
|
+
limit?: number;
|
|
139
|
+
term?: string;
|
|
140
|
+
query?: Query[];
|
|
141
|
+
filter?: SingleFilter[];
|
|
142
|
+
"post-filter"?: SingleFilter[];
|
|
143
|
+
sort?: Sorting[];
|
|
144
|
+
aggregations?: Aggregation[];
|
|
145
|
+
grouping?: string[];
|
|
146
|
+
fields?: string[];
|
|
147
|
+
associations?: {
|
|
148
|
+
[association: string]: RequestParams;
|
|
149
|
+
};
|
|
150
|
+
includes?: Include;
|
|
151
|
+
"total-count-mode"?: TotalCountMode;
|
|
152
|
+
}
|
|
153
|
+
export declare class Criteria {
|
|
154
|
+
title: string | null;
|
|
155
|
+
page: number | null;
|
|
156
|
+
limit: number | null;
|
|
157
|
+
term: string | null;
|
|
158
|
+
filters: SingleFilter[];
|
|
159
|
+
ids: string[];
|
|
160
|
+
queries: Query[];
|
|
161
|
+
associations: Association[];
|
|
162
|
+
postFilter: SingleFilter[];
|
|
163
|
+
sortings: Sorting[];
|
|
164
|
+
aggregations: Aggregation[];
|
|
165
|
+
grouping: string[];
|
|
166
|
+
fields: string[];
|
|
167
|
+
totalCountMode: TotalCountMode | null;
|
|
168
|
+
includes: Include | null;
|
|
169
|
+
constructor(ids?: string[]);
|
|
170
|
+
/**
|
|
171
|
+
* Parses the current criteria and generates an object which can be provided to the api
|
|
172
|
+
*/
|
|
173
|
+
toPayload(): RequestParams;
|
|
174
|
+
/**
|
|
175
|
+
* Allows to provide a title for the criteria. This title will be shown in the `repository.search` request url so it can be used for debugging in network's tab
|
|
176
|
+
*/
|
|
177
|
+
setTitle(title: string): this;
|
|
178
|
+
getTitle(): string | null;
|
|
179
|
+
/**
|
|
180
|
+
* Allows to provide a list of ids which are used as a filter
|
|
181
|
+
*/
|
|
182
|
+
setIds(ids: string[]): this;
|
|
183
|
+
/**
|
|
184
|
+
* Allows to configure the total value of a search result.
|
|
185
|
+
* 0 - no total count will be selected. Should be used if no pagination required (fastest)
|
|
186
|
+
* 1 - exact total count will be selected. Should be used if an exact pagination is required (slow)
|
|
187
|
+
* 2 - fetches limit * 5 + 1. Should be used if pagination can work with "next page exists" (fast)
|
|
188
|
+
*/
|
|
189
|
+
setTotalCountMode(mode: TotalCountMode): this;
|
|
190
|
+
setPage(page: number): this;
|
|
191
|
+
setLimit(limit: number): this;
|
|
192
|
+
setTerm(term: string): this;
|
|
193
|
+
addFilter(filter: SingleFilter): this;
|
|
194
|
+
addIncludes(include: Include): this;
|
|
195
|
+
/**
|
|
196
|
+
* Adds the provided filter as post filter.
|
|
197
|
+
* Post filter will be considered for the documents query but not for the aggregations.
|
|
198
|
+
*/
|
|
199
|
+
addPostFilter(filter: SingleFilter): this;
|
|
200
|
+
/**
|
|
201
|
+
* Allows to add different sortings for the criteria, to sort the entity result.
|
|
202
|
+
*/
|
|
203
|
+
addSorting(sorting: Sorting): this;
|
|
204
|
+
/**
|
|
205
|
+
* @see \Shopware\Core\Framework\DataAbstractionLayer\Search\Query\ScoreQuery.
|
|
206
|
+
* These queries are used to search for documents and score them with a ranking
|
|
207
|
+
*/
|
|
208
|
+
addQuery(filter: SingleFilter, score: number, scoreField?: string | null): this;
|
|
209
|
+
/**
|
|
210
|
+
* Allows grouping the result by a specific field
|
|
211
|
+
*/
|
|
212
|
+
addGrouping(field: string): this;
|
|
213
|
+
/**
|
|
214
|
+
* Allows loading partial fields for the result.
|
|
215
|
+
*/
|
|
216
|
+
addFields(...field: string[]): this;
|
|
217
|
+
/**
|
|
218
|
+
* @param {Object} aggregation
|
|
219
|
+
*/
|
|
220
|
+
addAggregation(aggregation: Aggregation): this;
|
|
221
|
+
/**
|
|
222
|
+
* Ensures that a criterion is created for each segment of the passed path.
|
|
223
|
+
* Existing Criteria objects are not overwritten.
|
|
224
|
+
* Returns the own instance
|
|
225
|
+
*/
|
|
226
|
+
addAssociation(path: string): this;
|
|
227
|
+
/**
|
|
228
|
+
* Ensures that a criterion is created for each segment of the passed path.
|
|
229
|
+
* Returns the criteria instance of the last path segment
|
|
230
|
+
*/
|
|
231
|
+
getAssociation(path: string): Criteria;
|
|
232
|
+
private getAssociationCriteria;
|
|
233
|
+
getLimit(): number;
|
|
234
|
+
getPage(): number;
|
|
235
|
+
hasAssociation(property: string): boolean;
|
|
236
|
+
/**
|
|
237
|
+
* Resets the sorting parameter
|
|
238
|
+
*/
|
|
239
|
+
resetSorting(): void;
|
|
240
|
+
/**
|
|
241
|
+
* @see \Shopware\Core\Framework\DataAbstractionLayer\Search\Aggregation\Metric\AvgAggregation
|
|
242
|
+
* Allows to calculate the avg value for the provided field
|
|
243
|
+
*/
|
|
244
|
+
static avg(name: string, field: string): Aggregations["avg"];
|
|
245
|
+
/**
|
|
246
|
+
* @see \Shopware\Core\Framework\DataAbstractionLayer\Search\Aggregation\Metric\CountAggregation
|
|
247
|
+
* Allows to calculate the count value for the provided field
|
|
248
|
+
*/
|
|
249
|
+
static count(name: string, field: string): Aggregations["count"];
|
|
250
|
+
/**
|
|
251
|
+
* @see \Shopware\Core\Framework\DataAbstractionLayer\Search\Aggregation\Metric\MaxAggregation
|
|
252
|
+
* Allows to calculate the max value for the provided field
|
|
253
|
+
*/
|
|
254
|
+
static max(name: string, field: string): Aggregations["max"];
|
|
255
|
+
/**
|
|
256
|
+
* @see \Shopware\Core\Framework\DataAbstractionLayer\Search\Aggregation\Metric\MinAggregation
|
|
257
|
+
* Allows to calculate the min value for the provided field
|
|
258
|
+
*/
|
|
259
|
+
static min(name: string, field: string): Aggregations["min"];
|
|
260
|
+
/**
|
|
261
|
+
* @see \Shopware\Core\Framework\DataAbstractionLayer\Search\Aggregation\Metric\StatsAggregation
|
|
262
|
+
* Allows to calculate the sum, max, min, avg, count values for the provided field
|
|
263
|
+
*/
|
|
264
|
+
static stats(name: string, field: string): Aggregations["stats"];
|
|
265
|
+
/**
|
|
266
|
+
* @see \Shopware\Core\Framework\DataAbstractionLayer\Search\Aggregation\Metric\SumAggregation
|
|
267
|
+
* Allows to calculate the sum value for the provided field
|
|
268
|
+
*/
|
|
269
|
+
static sum(name: string, field: string): Aggregations["sum"];
|
|
270
|
+
/**
|
|
271
|
+
* @see \Shopware\Core\Framework\DataAbstractionLayer\Search\Aggregation\Bucket\TermsAggregation
|
|
272
|
+
* Allows to fetch term buckets for the provided field
|
|
273
|
+
*/
|
|
274
|
+
static terms(name: string, field: string, limit?: number | null, sort?: Sorting | null, aggregation?: Aggregation | null): Aggregations["terms"];
|
|
275
|
+
/**
|
|
276
|
+
* @see \Shopware\Core\Framework\DataAbstractionLayer\Search\Aggregation\Metric\EntityAggregation
|
|
277
|
+
* Allows to filter an aggregation result
|
|
278
|
+
*/
|
|
279
|
+
static entityAggregation(name: string, field: string, definition: string): Aggregations["entity"];
|
|
280
|
+
/**
|
|
281
|
+
* @see \Shopware\Core\Framework\DataAbstractionLayer\Search\Aggregation\Bucket\FilterAggregation
|
|
282
|
+
* Allows to filter an aggregation result
|
|
283
|
+
*/
|
|
284
|
+
static filter(name: string, filter: SingleFilter[], aggregation: Aggregation): Aggregations["filter"];
|
|
285
|
+
/**
|
|
286
|
+
* @see \Shopware\Core\Framework\DataAbstractionLayer\Search\Aggregation\Bucket\DateHistogramAggregation
|
|
287
|
+
* Allows to fetch date buckets for the provided date interval
|
|
288
|
+
*/
|
|
289
|
+
static histogram(name: string, field: string, interval?: string | null, format?: string | null, aggregation?: Aggregation | null, timeZone?: string | null): Aggregations["histogram"];
|
|
290
|
+
/**
|
|
291
|
+
* @see \Shopware\Core\Framework\DataAbstractionLayer\Search\Sorting\FieldSorting.
|
|
292
|
+
* Allows to sort the documents by the provided field
|
|
293
|
+
*/
|
|
294
|
+
static sort(field: string, order?: Sorting["order"], naturalSorting?: boolean): Sorting;
|
|
295
|
+
/**
|
|
296
|
+
* @see \Shopware\Core\Framework\DataAbstractionLayer\Search\Sorting\FieldSorting.
|
|
297
|
+
* Allows to sort the documents by the provided field naturally
|
|
298
|
+
*/
|
|
299
|
+
static naturalSorting(field: string, order?: Sorting["order"]): Sorting;
|
|
300
|
+
/**
|
|
301
|
+
* @see \Shopware\Core\Framework\DataAbstractionLayer\Search\Sorting\CountSorting.
|
|
302
|
+
* Allows to sort the documents by counting associations via the provided field
|
|
303
|
+
*
|
|
304
|
+
* Sql representation: `ORDER BY COUNT({field}) {order}`
|
|
305
|
+
*/
|
|
306
|
+
static countSorting(field: string, order?: Sorting["order"]): Sorting;
|
|
307
|
+
/**
|
|
308
|
+
* @see \Shopware\Core\Framework\DataAbstractionLayer\Search\Filter\ContainsFilter.
|
|
309
|
+
* This allows to filter documents where the value are contained in the provided field.
|
|
310
|
+
*
|
|
311
|
+
* Sql representation: `{field} LIKE %{value}%`
|
|
312
|
+
*/
|
|
313
|
+
static contains(field: string, value: string): Filters["contains"];
|
|
314
|
+
/**
|
|
315
|
+
* @see \Shopware\Core\Framework\DataAbstractionLayer\Search\Filter\PrefixFilter.
|
|
316
|
+
* This allows to filter documents where the value marks the beginning of the provided field.
|
|
317
|
+
*
|
|
318
|
+
* Sql representation: `{field} LIKE {value}%`
|
|
319
|
+
*/
|
|
320
|
+
static prefix(field: string, value: string): Filters["prefix"];
|
|
321
|
+
/**
|
|
322
|
+
* @see \Shopware\Core\Framework\DataAbstractionLayer\Search\Filter\SuffixFilter.
|
|
323
|
+
* This allows to filter documents where the value marks the end of the provided field.
|
|
324
|
+
*
|
|
325
|
+
* Sql representation: `{field} LIKE %{value}`
|
|
326
|
+
*/
|
|
327
|
+
static suffix(field: string, value: string): Filters["suffix"];
|
|
328
|
+
/**
|
|
329
|
+
* @see \Shopware\Core\Framework\DataAbstractionLayer\Search\Filter\EqualsAnyFilter.
|
|
330
|
+
* This allows to filter documents where the field matches one of the provided values
|
|
331
|
+
*
|
|
332
|
+
* Sql representation: `{field} IN ({value}, {value})`
|
|
333
|
+
*/
|
|
334
|
+
static equalsAny(field: string, value: (string | number | boolean | null)[]): Filters["equalsAny"];
|
|
335
|
+
/**
|
|
336
|
+
* @see \Shopware\Core\Framework\DataAbstractionLayer\Search\Filter\RangeFilter.
|
|
337
|
+
* This allows to filter documents where the field matches a defined range
|
|
338
|
+
*
|
|
339
|
+
* Sql representation: `{field} >= {value}`, `{field} <= {value}`, ...
|
|
340
|
+
*/
|
|
341
|
+
static range(field: string, range: Filters["range"]["parameters"]): Filters["range"];
|
|
342
|
+
/**
|
|
343
|
+
* @see \Shopware\Core\Framework\DataAbstractionLayer\Search\Filter\EqualsFilter.
|
|
344
|
+
* This allows to filter documents where the field matches a defined range
|
|
345
|
+
*
|
|
346
|
+
* Sql representation: `{field} = {value}`
|
|
347
|
+
*/
|
|
348
|
+
static equals(field: string, value: string | number | boolean | null): Filters["equals"];
|
|
349
|
+
/**
|
|
350
|
+
* @see \Shopware\Core\Framework\DataAbstractionLayer\Search\Filter\NotFilter.
|
|
351
|
+
* This allows to filter documents which not matches for the provided filters
|
|
352
|
+
* All above listed queries can be provided (equals, equalsAny, range, contains)
|
|
353
|
+
*
|
|
354
|
+
* Sql representation: `NOT({query} {operator} {query} {operator} {query})`
|
|
355
|
+
*
|
|
356
|
+
* @param {string} operator - and/or
|
|
357
|
+
* @param {array} queries
|
|
358
|
+
*
|
|
359
|
+
* @returns {Object}
|
|
360
|
+
*/
|
|
361
|
+
static not(operator: Filters["not"]["operator"], queries?: SingleFilter[]): Filters["not"];
|
|
362
|
+
/**
|
|
363
|
+
* @see \Shopware\Core\Framework\DataAbstractionLayer\Search\Filter\NotFilter.
|
|
364
|
+
* This allows to filter documents which matches for the provided filters
|
|
365
|
+
* All above listed queries can be provided (equals, equalsAny, range, contains)
|
|
366
|
+
*
|
|
367
|
+
* Sql representation: `({query} {operator} {query} {operator} {query})`
|
|
368
|
+
*
|
|
369
|
+
* @param {string} operator - and/or
|
|
370
|
+
* @param {array} queries
|
|
371
|
+
*
|
|
372
|
+
* @returns {Object}
|
|
373
|
+
*/
|
|
374
|
+
static multi(operator: Filters["multi"]["operator"], queries?: SingleFilter[]): Filters["multi"];
|
|
375
|
+
}
|
|
376
|
+
export {};
|
|
377
|
+
//# sourceMappingURL=criteria.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"criteria.d.ts","sourceRoot":"","sources":["../../../src/helper/criteria.ts"],"names":[],"mappings":"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"}
|