@unchainedshop/cockpit-api 1.0.33 → 1.0.34
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/api.d.ts +2 -3
- package/dist/api.js +5 -5
- package/dist/cockpit-logger.d.ts +3 -8
- package/dist/cockpit-logger.js +3 -4
- package/dist/index.js +0 -1
- package/package.json +6 -6
- package/.github/workflows/npm-publish.yml +0 -33
- package/.nvmrc +0 -1
- package/dist/api.js.map +0 -1
- package/dist/cockpit-logger.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/src/api.ts +0 -350
- package/src/cockpit-logger.ts +0 -24
- package/src/index.ts +0 -3
- package/tsconfig.json +0 -23
package/dist/api.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
interface CockpitAPIOptions {
|
|
2
2
|
endpoint?: string;
|
|
3
3
|
apiKey?: string;
|
|
4
|
+
useAdminAccess?: boolean;
|
|
4
5
|
}
|
|
5
6
|
export declare enum ImageSizeMode {
|
|
6
7
|
Thumbnail = "thumbnail",
|
|
@@ -28,9 +29,7 @@ export declare const CockpitAPI: (tenant?: string, cockpitOptions?: CockpitAPIOp
|
|
|
28
29
|
getContentItem({ model, id }: {
|
|
29
30
|
model: string;
|
|
30
31
|
id?: string;
|
|
31
|
-
}, locale?: string, queryParams?: {}
|
|
32
|
-
useAdminAccess?: boolean;
|
|
33
|
-
}): Promise<any>;
|
|
32
|
+
}, locale?: string, queryParams?: {}): Promise<any>;
|
|
34
33
|
getAggregateModel({ model, pipeline }: {
|
|
35
34
|
model: string;
|
|
36
35
|
pipeline: any[];
|
package/dist/api.js
CHANGED
|
@@ -113,6 +113,7 @@ const handleErrorAndLog = (e) => {
|
|
|
113
113
|
return null;
|
|
114
114
|
};
|
|
115
115
|
export const CockpitAPI = async (tenant, cockpitOptions) => {
|
|
116
|
+
const useAdminAccess = cockpitOptions?.useAdminAccess || false;
|
|
116
117
|
if (!process.env.COCKPIT_GRAPHQL_ENDPOINT && !cockpitOptions?.endpoint)
|
|
117
118
|
throw Error("COCKPIT_GRAPHQL_ENDPOINT is not set");
|
|
118
119
|
const cockpitEndpoint = cockpitOptions?.endpoint || process.env.COCKPIT_GRAPHQL_ENDPOINT;
|
|
@@ -138,7 +139,7 @@ export const CockpitAPI = async (tenant, cockpitOptions) => {
|
|
|
138
139
|
}
|
|
139
140
|
return transformResult(await result.json());
|
|
140
141
|
};
|
|
141
|
-
const fetchData = async (url,
|
|
142
|
+
const fetchData = async (url, options = {}) => {
|
|
142
143
|
const headers = options?.headers ?? {};
|
|
143
144
|
if (useAdminAccess) {
|
|
144
145
|
const secretName = ["COCKPIT_SECRET", tenant].filter(Boolean).join("_").toUpperCase();
|
|
@@ -146,7 +147,7 @@ export const CockpitAPI = async (tenant, cockpitOptions) => {
|
|
|
146
147
|
headers["api-Key"] = token;
|
|
147
148
|
}
|
|
148
149
|
try {
|
|
149
|
-
logger.
|
|
150
|
+
logger.debug(`Requesting ${url}`);
|
|
150
151
|
const result = await fetch(url, {
|
|
151
152
|
...options,
|
|
152
153
|
headers: {
|
|
@@ -172,14 +173,14 @@ export const CockpitAPI = async (tenant, cockpitOptions) => {
|
|
|
172
173
|
body: JSON.stringify({ query, variables }),
|
|
173
174
|
});
|
|
174
175
|
},
|
|
175
|
-
async getContentItem({ model, id }, locale = "default", queryParams = {}
|
|
176
|
+
async getContentItem({ model, id }, locale = "default", queryParams = {}) {
|
|
176
177
|
if (!model)
|
|
177
178
|
throw new Error("Cockpit: Please provide a model");
|
|
178
179
|
const url = buildUrl(`/content/item/${model}${id ? `/${id}` : ""}`, {
|
|
179
180
|
locale,
|
|
180
181
|
queryParams,
|
|
181
182
|
});
|
|
182
|
-
return fetchData(url
|
|
183
|
+
return fetchData(url);
|
|
183
184
|
},
|
|
184
185
|
async getAggregateModel({ model, pipeline }, locale = "default") {
|
|
185
186
|
if (!model)
|
|
@@ -300,4 +301,3 @@ export const CockpitAPI = async (tenant, cockpitOptions) => {
|
|
|
300
301
|
},
|
|
301
302
|
};
|
|
302
303
|
};
|
|
303
|
-
//# sourceMappingURL=api.js.map
|
package/dist/cockpit-logger.d.ts
CHANGED
|
@@ -1,10 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
error: (message?: any, ...optionalParams: any[]) => void;
|
|
5
|
-
warn: (message?: any, ...optionalParams: any[]) => void;
|
|
6
|
-
verbose: (message?: any, ...optionalParams: any[]) => void;
|
|
7
|
-
};
|
|
8
|
-
declare const log: (...args: any) => void;
|
|
1
|
+
import type { Logger } from "@unchainedshop/logger";
|
|
2
|
+
declare let logger: Logger;
|
|
3
|
+
declare const log: (message: any, ...args: any[]) => void;
|
|
9
4
|
export { logger };
|
|
10
5
|
export default log;
|
package/dist/cockpit-logger.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
let logger = {
|
|
2
|
-
log: console.log,
|
|
3
2
|
info: console.log,
|
|
4
3
|
error: console.error,
|
|
5
4
|
warn: console.warn,
|
|
6
|
-
|
|
5
|
+
debug: console.debug,
|
|
6
|
+
trace: console.trace,
|
|
7
7
|
};
|
|
8
8
|
async function loadLogger() {
|
|
9
9
|
try {
|
|
@@ -15,7 +15,6 @@ async function loadLogger() {
|
|
|
15
15
|
}
|
|
16
16
|
}
|
|
17
17
|
loadLogger();
|
|
18
|
-
const log =
|
|
18
|
+
const log = logger.info;
|
|
19
19
|
export { logger };
|
|
20
20
|
export default log;
|
|
21
|
-
//# sourceMappingURL=cockpit-logger.js.map
|
package/dist/index.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@unchainedshop/cockpit-api",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.34",
|
|
4
4
|
"description": "A package to interact with the Cockpit CMS API, including functionalities to handle GraphQL requests and various CMS content manipulations.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"homepage": "https://unchained.shop",
|
|
@@ -26,13 +26,13 @@
|
|
|
26
26
|
"author": "Mikael Araya",
|
|
27
27
|
"license": "ISC",
|
|
28
28
|
"dependencies": {
|
|
29
|
-
"@unchainedshop/logger": "^
|
|
30
|
-
"graphql": "^16.
|
|
31
|
-
"lru-cache": "^
|
|
29
|
+
"@unchainedshop/logger": "^4.4.0",
|
|
30
|
+
"graphql": "^16.12.0",
|
|
31
|
+
"lru-cache": "^11.2.4"
|
|
32
32
|
},
|
|
33
33
|
"types": "dist/index.d.ts",
|
|
34
34
|
"devDependencies": {
|
|
35
|
-
"@types/node": "^
|
|
36
|
-
"typescript": "^5.
|
|
35
|
+
"@types/node": "^25.0.2",
|
|
36
|
+
"typescript": "^5.9.3"
|
|
37
37
|
}
|
|
38
38
|
}
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
# This workflow will run tests using node and then publish a package to GitHub Packages when a release is created
|
|
2
|
-
# For more information see: https://docs.github.com/en/actions/publishing-packages/publishing-nodejs-packages
|
|
3
|
-
|
|
4
|
-
name: Node.js Package
|
|
5
|
-
|
|
6
|
-
on:
|
|
7
|
-
release:
|
|
8
|
-
types: [created]
|
|
9
|
-
|
|
10
|
-
jobs:
|
|
11
|
-
build:
|
|
12
|
-
runs-on: ubuntu-latest
|
|
13
|
-
steps:
|
|
14
|
-
- uses: actions/checkout@v4
|
|
15
|
-
- uses: actions/setup-node@v3
|
|
16
|
-
with:
|
|
17
|
-
node-version: 16
|
|
18
|
-
- run: npm ci
|
|
19
|
-
- run: npm test
|
|
20
|
-
|
|
21
|
-
publish-npm:
|
|
22
|
-
needs: build
|
|
23
|
-
runs-on: ubuntu-latest
|
|
24
|
-
steps:
|
|
25
|
-
- uses: actions/checkout@v4
|
|
26
|
-
- uses: actions/setup-node@v3
|
|
27
|
-
with:
|
|
28
|
-
node-version: 16
|
|
29
|
-
registry-url: https://registry.npmjs.org/
|
|
30
|
-
- run: npm ci
|
|
31
|
-
- run: npm publish
|
|
32
|
-
env:
|
|
33
|
-
NODE_AUTH_TOKEN: ${{secrets.npm_token}}
|
package/.nvmrc
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
20
|
package/dist/api.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cockpit-logger.js","sourceRoot":"","sources":["../src/cockpit-logger.ts"],"names":[],"mappings":"AAAA,IAAI,MAAM,GAAG;IACX,GAAG,EAAE,OAAO,CAAC,GAAG;IAChB,IAAI,EAAE,OAAO,CAAC,GAAG;IACjB,KAAK,EAAE,OAAO,CAAC,KAAK;IACpB,IAAI,EAAE,OAAO,CAAC,IAAI;IAClB,OAAO,EAAE,OAAO,CAAC,KAAK;CACvB,CAAC;AAEF,KAAK,UAAU,UAAU;IACvB,IAAI,CAAC;QACH,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,uBAAuB,CAAC,CAAC;QAC/D,MAAM,GAAG,YAAY,CAAC,SAAS,CAAC,IAAI,MAAM,CAAC;IAC7C,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,mBAAmB;IACrB,CAAC;AACH,CAAC;AAED,UAAU,EAAE,CAAC;AAEb,MAAM,GAAG,GAAG,CAAC,GAAG,IAAS,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;AAEnD,OAAO,EAAE,MAAM,EAAE,CAAC;AAElB,eAAe,GAAG,CAAC"}
|
package/dist/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEnE,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,CAAA"}
|
package/src/api.ts
DELETED
|
@@ -1,350 +0,0 @@
|
|
|
1
|
-
import { print } from "graphql";
|
|
2
|
-
import { logger } from "./cockpit-logger.js";
|
|
3
|
-
import { LRUCache } from 'lru-cache'
|
|
4
|
-
const dataCache = new LRUCache({
|
|
5
|
-
max: process.env.COCKPIT_CACHE__MAX_LIMIT ? parseInt(process.env.COCKPIT_CACHE__MAX_LIMIT, 10) : 100,
|
|
6
|
-
ttl: process.env.COCKPIT_CACHE_TTL ? parseInt(process.env.COCKPIT_CACHE_TTL, 10) : 100000,
|
|
7
|
-
allowStale: false,
|
|
8
|
-
});
|
|
9
|
-
|
|
10
|
-
interface CockpitAPIOptions {
|
|
11
|
-
endpoint?: string;
|
|
12
|
-
apiKey?: string;
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
export enum ImageSizeMode {
|
|
17
|
-
Thumbnail = 'thumbnail',
|
|
18
|
-
BestFit = 'bestFit',
|
|
19
|
-
Resize = 'resize',
|
|
20
|
-
FitToWidth = 'fitToWidth',
|
|
21
|
-
FitToHeight = 'fitToHeight',
|
|
22
|
-
}
|
|
23
|
-
export enum MimeType {
|
|
24
|
-
AUTO = 'auto',
|
|
25
|
-
GIF = 'gif',
|
|
26
|
-
JPEG = 'jpeg',
|
|
27
|
-
PNG = 'png',
|
|
28
|
-
WEBP = 'webp',
|
|
29
|
-
BMP = 'bmp'
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
const cockpitURL = () => new URL(process.env.COCKPIT_GRAPHQL_ENDPOINT);
|
|
33
|
-
|
|
34
|
-
export const getTenantIds = () => {
|
|
35
|
-
const env = { ...process.env };
|
|
36
|
-
const cockpitSecretKeys = Object.keys(env).filter(
|
|
37
|
-
(key) =>
|
|
38
|
-
key.includes("COCKPIT_SECRET") &&
|
|
39
|
-
key !== "COCKPIT_SECRET" &&
|
|
40
|
-
!key.endsWith("_FILE"),
|
|
41
|
-
);
|
|
42
|
-
|
|
43
|
-
const tenantIds = cockpitSecretKeys.map((key) => {
|
|
44
|
-
return key.slice("COCKPIT_SECRET_".length).toLowerCase();
|
|
45
|
-
});
|
|
46
|
-
|
|
47
|
-
return tenantIds;
|
|
48
|
-
};
|
|
49
|
-
|
|
50
|
-
export const generateCmsRouteReplacements = async (tenant?: string) => {
|
|
51
|
-
const cachedReplacement = dataCache.get(`ROUTE_REPLACEMENT_MAP${tenant}`);
|
|
52
|
-
if (cachedReplacement) return cachedReplacement;
|
|
53
|
-
const filterParams = {
|
|
54
|
-
fields: JSON.stringify({ _id: 1, slug: 1, _r: 1 }),
|
|
55
|
-
};
|
|
56
|
-
const cmsPages = await fetch(
|
|
57
|
-
`${cockpitURL().origin}${tenant ? `/:${tenant}/api` : "/api"}/pages/pages?${new URLSearchParams(
|
|
58
|
-
filterParams,
|
|
59
|
-
).toString()}`,
|
|
60
|
-
);
|
|
61
|
-
const pagesArr: any[] = (await cmsPages.json()) || [] as any;
|
|
62
|
-
|
|
63
|
-
const replacement = pagesArr.reduce((result, item) => {
|
|
64
|
-
const key = `pages://${item._id}`;
|
|
65
|
-
const value = item._r;
|
|
66
|
-
return { ...result, [key]: value };
|
|
67
|
-
}, {});
|
|
68
|
-
dataCache.set(`ROUTE_REPLACEMENT_MAP${tenant}`, replacement);
|
|
69
|
-
return replacement;
|
|
70
|
-
};
|
|
71
|
-
|
|
72
|
-
export const generateCollectionAndSingletonSlugRouteMap = async (tenant?: string) => {
|
|
73
|
-
const cacheKey = `SLUG_ROUTE_MAP_${tenant}`;
|
|
74
|
-
const cachedMap = dataCache.get(cacheKey);
|
|
75
|
-
if (cachedMap) return cachedMap;
|
|
76
|
-
const filterParams = {
|
|
77
|
-
fields: JSON.stringify({
|
|
78
|
-
data: { collection: 1, singleton: 1 },
|
|
79
|
-
_r: 1,
|
|
80
|
-
type: 1,
|
|
81
|
-
}),
|
|
82
|
-
filter: JSON.stringify({ 'data.collection': { $ne: null } }),
|
|
83
|
-
};
|
|
84
|
-
|
|
85
|
-
const cmsPages = await fetch(
|
|
86
|
-
`${cockpitURL().origin}${tenant ? `/:${tenant}/api` : "/api"}/pages/pages?locale=default&${new URLSearchParams(filterParams).toString()}`,
|
|
87
|
-
);
|
|
88
|
-
const pagesArr: any[] = (await cmsPages.json()) || [] as any;
|
|
89
|
-
const pageMap = pagesArr.reduce((result, { data, _r }) => {
|
|
90
|
-
const entityName = data?.collection || data?.singleton;
|
|
91
|
-
if (!entityName) return result;
|
|
92
|
-
return { ...result, [entityName]: _r };
|
|
93
|
-
}, {});
|
|
94
|
-
dataCache.set(cacheKey, pageMap);
|
|
95
|
-
return pageMap;
|
|
96
|
-
};
|
|
97
|
-
|
|
98
|
-
export const FixImagePaths = (replacements: any, tenant?: string) => {
|
|
99
|
-
const pattern = new RegExp(Object.keys(replacements).join("|"), "g");
|
|
100
|
-
const url = `${cockpitURL().origin}${tenant ? `/:${tenant}` : ""}`;
|
|
101
|
-
return {
|
|
102
|
-
transformResult(originalResponse: any) {
|
|
103
|
-
try {
|
|
104
|
-
const rawResponseDataString = JSON.stringify(originalResponse);
|
|
105
|
-
const fixedDataString = rawResponseDataString
|
|
106
|
-
// fixes asset paths
|
|
107
|
-
.replace(/"path":"\//g, `"path":"${url}/storage/uploads/`)
|
|
108
|
-
.replace(/src=\\"(\/[^"]*?)storage/gi, `src=\\"${cockpitURL().origin}$1storage`)
|
|
109
|
-
.replace(/href=\\"(\/[^"]*?)storage/gi, `href=\\"${cockpitURL().origin}$1storage`)
|
|
110
|
-
.replace(pattern, (match) => replacements[match])
|
|
111
|
-
// fixes image paths which already had a path including storage/uploads
|
|
112
|
-
.replace(/\/storage\/uploads\/storage\/uploads\//g, `/storage/uploads/`);
|
|
113
|
-
return JSON.parse(fixedDataString);
|
|
114
|
-
} catch (e) {
|
|
115
|
-
return originalResponse;
|
|
116
|
-
}
|
|
117
|
-
},
|
|
118
|
-
};
|
|
119
|
-
};
|
|
120
|
-
|
|
121
|
-
const encodeQueryParam = (key: string, value: any) => {
|
|
122
|
-
return `${encodeURIComponent(key)}=${encodeURIComponent(typeof value !== "string" ? JSON.stringify(value) : value)}`;
|
|
123
|
-
};
|
|
124
|
-
|
|
125
|
-
const buildQueryString = (params: any) => {
|
|
126
|
-
if (!Object.keys(params).length) return null;
|
|
127
|
-
return Object.entries(params)
|
|
128
|
-
.map(([key, value]) => encodeQueryParam(key, value))
|
|
129
|
-
.join("&");
|
|
130
|
-
};
|
|
131
|
-
|
|
132
|
-
const handleErrorAndLog = (e: Error) => {
|
|
133
|
-
logger.error('Cockpit API Error', e);
|
|
134
|
-
return null;
|
|
135
|
-
};
|
|
136
|
-
|
|
137
|
-
export const CockpitAPI = async (tenant?: string, cockpitOptions?: CockpitAPIOptions) => {
|
|
138
|
-
if (!process.env.COCKPIT_GRAPHQL_ENDPOINT && !cockpitOptions?.endpoint) throw Error("COCKPIT_GRAPHQL_ENDPOINT is not set")
|
|
139
|
-
const cockpitEndpoint = cockpitOptions?.endpoint || process.env.COCKPIT_GRAPHQL_ENDPOINT;
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
const buildUrl = (path: string, { locale = "de", queryParams = {} } = {}) => {
|
|
143
|
-
const normalizedLocale = locale === "de" ? "default" : locale;
|
|
144
|
-
const url = new URL(cockpitURL());
|
|
145
|
-
url.pathname = `${tenant ? `/:${tenant}/api` : "/api"}${path}`;
|
|
146
|
-
const queryString = buildQueryString({
|
|
147
|
-
...queryParams,
|
|
148
|
-
locale: normalizedLocale,
|
|
149
|
-
});
|
|
150
|
-
url.search = queryString as string;
|
|
151
|
-
return url;
|
|
152
|
-
};
|
|
153
|
-
|
|
154
|
-
const routeReplaceMents = await generateCmsRouteReplacements(tenant);
|
|
155
|
-
const { transformResult } = FixImagePaths(routeReplaceMents, tenant);
|
|
156
|
-
|
|
157
|
-
const handleResponse = async (result: any) => {
|
|
158
|
-
if (result.status === 404) return null;
|
|
159
|
-
if (result.status !== 200) {
|
|
160
|
-
logger.error(`Error accessing ${result.url}`, result);
|
|
161
|
-
throw new Error(
|
|
162
|
-
`Cockpit: Error accessing ${result.url} ${await result.text()}`,
|
|
163
|
-
);
|
|
164
|
-
}
|
|
165
|
-
return transformResult(await result.json());
|
|
166
|
-
};
|
|
167
|
-
|
|
168
|
-
const fetchData = async (url: any, { useAdminAccess, ...options }: any = {}) => {
|
|
169
|
-
const headers = options?.headers ?? {};
|
|
170
|
-
|
|
171
|
-
if (useAdminAccess) {
|
|
172
|
-
const secretName = ["COCKPIT_SECRET", tenant].filter(Boolean).join("_").toUpperCase();
|
|
173
|
-
const token = cockpitOptions?.apiKey || process.env[secretName];
|
|
174
|
-
headers["api-Key"] = token;
|
|
175
|
-
}
|
|
176
|
-
|
|
177
|
-
try {
|
|
178
|
-
logger.verbose(`Requesting ${url}`);
|
|
179
|
-
const result = await fetch(url, {
|
|
180
|
-
...options,
|
|
181
|
-
headers: {
|
|
182
|
-
...headers,
|
|
183
|
-
},
|
|
184
|
-
});
|
|
185
|
-
return handleResponse(result);
|
|
186
|
-
} catch (e: any) {
|
|
187
|
-
return handleErrorAndLog(e);
|
|
188
|
-
}
|
|
189
|
-
};
|
|
190
|
-
|
|
191
|
-
return {
|
|
192
|
-
async graphQL(document: any, variables: any) {
|
|
193
|
-
const query = print(document);
|
|
194
|
-
const cockpitEndpointUrl = new URL(cockpitEndpoint);
|
|
195
|
-
if (tenant) {
|
|
196
|
-
cockpitEndpointUrl.pathname = `/:${tenant}${cockpitEndpointUrl.pathname}`;
|
|
197
|
-
}
|
|
198
|
-
return fetchData(cockpitEndpointUrl, {
|
|
199
|
-
method: "POST",
|
|
200
|
-
headers: { "Content-Type": "application/json" },
|
|
201
|
-
body: JSON.stringify({ query, variables }),
|
|
202
|
-
});
|
|
203
|
-
},
|
|
204
|
-
|
|
205
|
-
async getContentItem(
|
|
206
|
-
{ model, id }: { model: string; id?: string },
|
|
207
|
-
locale = "default",
|
|
208
|
-
queryParams = {},
|
|
209
|
-
{ useAdminAccess = false }: { useAdminAccess?: boolean } = {},
|
|
210
|
-
) {
|
|
211
|
-
if (!model) throw new Error("Cockpit: Please provide a model");
|
|
212
|
-
|
|
213
|
-
const url = buildUrl(`/content/item/${model}${id ? `/${id}` : ""}`, {
|
|
214
|
-
locale,
|
|
215
|
-
queryParams,
|
|
216
|
-
});
|
|
217
|
-
return fetchData(url, { useAdminAccess });
|
|
218
|
-
},
|
|
219
|
-
|
|
220
|
-
async getAggregateModel({ model, pipeline }: { model: string, pipeline: any[] }, locale = "default") {
|
|
221
|
-
if (!model) throw new Error("Cockpit: Please provide a model");
|
|
222
|
-
|
|
223
|
-
const url = buildUrl(`/content/aggregate/${model}`, {
|
|
224
|
-
locale,
|
|
225
|
-
queryParams: {
|
|
226
|
-
pipeline,
|
|
227
|
-
},
|
|
228
|
-
});
|
|
229
|
-
return fetchData(url);
|
|
230
|
-
},
|
|
231
|
-
|
|
232
|
-
async getContentItems(model: string, locale = "default", queryParams: any = {}) {
|
|
233
|
-
if (!model) throw new Error("Cockpit: Please provide a model");
|
|
234
|
-
const url = buildUrl(`/content/items/${model}`, {
|
|
235
|
-
locale,
|
|
236
|
-
queryParams,
|
|
237
|
-
});
|
|
238
|
-
return fetchData(url);
|
|
239
|
-
},
|
|
240
|
-
|
|
241
|
-
async getContentTree(
|
|
242
|
-
model: string,
|
|
243
|
-
locale = "default",
|
|
244
|
-
queryParams = { filter: {} },
|
|
245
|
-
) {
|
|
246
|
-
if (!model) throw new Error("Cockpit: Please provide a model");
|
|
247
|
-
const url = buildUrl(`/content/tree/${model}`, {
|
|
248
|
-
locale,
|
|
249
|
-
queryParams,
|
|
250
|
-
});
|
|
251
|
-
return fetchData(url);
|
|
252
|
-
},
|
|
253
|
-
|
|
254
|
-
async postContentItem(model: string, item: any) {
|
|
255
|
-
if (!model) throw new Error("Cockpit: Please provide a model");
|
|
256
|
-
const url = buildUrl(`/content/item/${model}`, {});
|
|
257
|
-
return fetchData(url, {
|
|
258
|
-
method: "POST",
|
|
259
|
-
headers: { "Content-Type": "application/json" },
|
|
260
|
-
body: JSON.stringify({ data: item }),
|
|
261
|
-
});
|
|
262
|
-
},
|
|
263
|
-
async deleteContentItem(model: string, id?: string) {
|
|
264
|
-
if (!model || !id)
|
|
265
|
-
throw new Error("Cockpit: Please provide a model and id");
|
|
266
|
-
const url = buildUrl(`/content/item/${model}/${id}`, {});
|
|
267
|
-
return fetchData(url, {
|
|
268
|
-
method: "DELETE",
|
|
269
|
-
headers: { "Content-Type": "application/json" },
|
|
270
|
-
});
|
|
271
|
-
},
|
|
272
|
-
|
|
273
|
-
async pages(locale = "default", queryParams = {}) {
|
|
274
|
-
const url = buildUrl("/pages/pages", {
|
|
275
|
-
locale,
|
|
276
|
-
queryParams,
|
|
277
|
-
});
|
|
278
|
-
return fetchData(url);
|
|
279
|
-
},
|
|
280
|
-
|
|
281
|
-
async pageById({ page, id }: { page: string; id: string }, locale = "default", queryParams = {}) {
|
|
282
|
-
if (!page || !id)
|
|
283
|
-
throw new Error("GetCockpit: Please provide a page and id");
|
|
284
|
-
const url = buildUrl(`/pages/page/${page}/${id}`, {
|
|
285
|
-
locale,
|
|
286
|
-
queryParams,
|
|
287
|
-
});
|
|
288
|
-
return fetchData(url);
|
|
289
|
-
},
|
|
290
|
-
|
|
291
|
-
async pageByRoute(route: string, locale = "default") {
|
|
292
|
-
const url = buildUrl("/pages/page", {
|
|
293
|
-
locale,
|
|
294
|
-
queryParams: { route },
|
|
295
|
-
});
|
|
296
|
-
return fetchData(url);
|
|
297
|
-
},
|
|
298
|
-
|
|
299
|
-
async pagesMenus(locale = "default") {
|
|
300
|
-
const url = buildUrl("/pages/menus", { locale });
|
|
301
|
-
return fetchData(url);
|
|
302
|
-
},
|
|
303
|
-
|
|
304
|
-
async pagesMenu(name: string, locale = "default") {
|
|
305
|
-
const url = buildUrl(`/pages/menu/${name}`, { locale });
|
|
306
|
-
return fetchData(url);
|
|
307
|
-
},
|
|
308
|
-
|
|
309
|
-
async pagesRoutes(locale = "default") {
|
|
310
|
-
const url = buildUrl("/pages/routes", { locale });
|
|
311
|
-
return fetchData(url);
|
|
312
|
-
},
|
|
313
|
-
|
|
314
|
-
async pagesSitemap() {
|
|
315
|
-
const url = buildUrl("/pages/sitemap", {});
|
|
316
|
-
return fetchData(url);
|
|
317
|
-
},
|
|
318
|
-
async pagesSetting(locale = "default") {
|
|
319
|
-
const url = buildUrl("/pages/settings", { locale });
|
|
320
|
-
return fetchData(url);
|
|
321
|
-
},
|
|
322
|
-
async healthCheck() {
|
|
323
|
-
const url = buildUrl("/system/healthcheck");
|
|
324
|
-
return fetchData(url);
|
|
325
|
-
},
|
|
326
|
-
async lokalize(projectName: string, locale = "default", nested = null) {
|
|
327
|
-
if (!projectName)
|
|
328
|
-
throw new Error("GetCockpit: Please provide projectName");
|
|
329
|
-
const url = buildUrl(`/lokalize/project/${projectName}`, { locale, queryParams: { nested } });
|
|
330
|
-
return fetchData(url);
|
|
331
|
-
},
|
|
332
|
-
async assetById(assetId: string) {
|
|
333
|
-
if (!assetId)
|
|
334
|
-
throw new Error("GetCockpit: Please provide assetId");
|
|
335
|
-
const url = buildUrl(`/assets/${assetId}`);
|
|
336
|
-
return fetchData(url);
|
|
337
|
-
},
|
|
338
|
-
async imageAssetById(assetId: string, queryParams?: { m?: ImageSizeMode; w?: number; h?: number; q?: number; mime?: MimeType; re?: number; t?: string; o?: number; }) {
|
|
339
|
-
if (!assetId)
|
|
340
|
-
throw new Error("GetCockpit: Please provide assetId");
|
|
341
|
-
const url = buildUrl(`/assets/image/${assetId}`, { queryParams });
|
|
342
|
-
return fetchData(url);
|
|
343
|
-
},
|
|
344
|
-
async getFullRouteForSlug(slug: string) {
|
|
345
|
-
const routeSlugMap =
|
|
346
|
-
await generateCollectionAndSingletonSlugRouteMap(tenant);
|
|
347
|
-
return routeSlugMap?.[slug];
|
|
348
|
-
},
|
|
349
|
-
};
|
|
350
|
-
};
|
package/src/cockpit-logger.ts
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
let logger = { // eslint-disable-line
|
|
2
|
-
log: console.log,
|
|
3
|
-
info: console.log,
|
|
4
|
-
error: console.error,
|
|
5
|
-
warn: console.warn,
|
|
6
|
-
verbose: console.debug,
|
|
7
|
-
};
|
|
8
|
-
|
|
9
|
-
async function loadLogger() {
|
|
10
|
-
try {
|
|
11
|
-
const { createLogger } = await import("@unchainedshop/logger");
|
|
12
|
-
logger = createLogger("cockpit") || logger;
|
|
13
|
-
} catch (e) {
|
|
14
|
-
// console.warn(e);
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
loadLogger();
|
|
19
|
-
|
|
20
|
-
const log = (...args: any) => logger.info(...args);
|
|
21
|
-
|
|
22
|
-
export { logger };
|
|
23
|
-
|
|
24
|
-
export default log;
|
package/src/index.ts
DELETED
package/tsconfig.json
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"compilerOptions": {
|
|
3
|
-
"allowJs": true,
|
|
4
|
-
"resolveJsonModule": true,
|
|
5
|
-
"jsx": "react",
|
|
6
|
-
"allowSyntheticDefaultImports": true,
|
|
7
|
-
"declaration": true,
|
|
8
|
-
"esModuleInterop": true,
|
|
9
|
-
"forceConsistentCasingInFileNames": true,
|
|
10
|
-
"lib": ["esnext"],
|
|
11
|
-
"module": "NodeNext",
|
|
12
|
-
"moduleResolution": "NodeNext",
|
|
13
|
-
"noImplicitReturns": true,
|
|
14
|
-
"noUnusedLocals": false,
|
|
15
|
-
"outDir": "dist",
|
|
16
|
-
"skipLibCheck": true,
|
|
17
|
-
"sourceMap": true,
|
|
18
|
-
"target": "ESNext",
|
|
19
|
-
"types": ["node"],
|
|
20
|
-
"baseUrl": "." // This must be specified if "paths" is.
|
|
21
|
-
},
|
|
22
|
-
"include": ["src"]
|
|
23
|
-
}
|