ts-glitter 16.2.4 → 16.2.8
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/lowcode/Entry.js +1 -1
- package/lowcode/Entry.ts +1 -1
- package/lowcode/glitter-base/global/currency.d.ts +19 -0
- package/lowcode/glitter-base/global/currency.js.map +1 -0
- package/lowcode/glitter-base/global/global-user.d.ts +5 -0
- package/lowcode/glitter-base/global/global-user.js.map +1 -1
- package/lowcode/glitter-base/global/language.d.ts +22 -0
- package/lowcode/glitter-base/global/language.js.map +1 -0
- package/lowcode/glitter-base/route/shopping.d.ts +28 -2
- package/lowcode/glitter-base/route/shopping.js.map +1 -1
- package/lowcode/glitterBundle/api/base.js.map +1 -1
- package/package.json +5 -2
- package/src/api-public/services/shopping.d.ts +1 -1
- package/src/api-public/services/shopping.js +1 -0
- package/src/api-public/services/shopping.js.map +1 -1
- package/src/api-public/services/shopping.ts +1 -0
- package/src/helper/glitter-util.d.ts +4 -2
- package/src/helper/glitter-util.js +20 -11
- package/src/helper/glitter-util.js.map +1 -1
- package/src/helper/glitter-util.ts +22 -12
- package/src/index.js +255 -433
- package/src/index.js.map +1 -1
- package/src/index.ts +246 -441
- package/src/seo-config.d.ts +40 -0
- package/src/seo-config.js +303 -0
- package/src/seo-config.js.map +1 -0
- package/src/seo-config.ts +357 -0
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
export declare class SeoConfig {
|
|
2
|
+
static editorSeo: string;
|
|
3
|
+
static collectionSeo(cf: {
|
|
4
|
+
appName: string;
|
|
5
|
+
language: string;
|
|
6
|
+
data: any;
|
|
7
|
+
page: string;
|
|
8
|
+
}): Promise<void>;
|
|
9
|
+
static distributionSEO(cf: {
|
|
10
|
+
appName: string;
|
|
11
|
+
page: string;
|
|
12
|
+
url: string;
|
|
13
|
+
link_prefix: string;
|
|
14
|
+
data: any;
|
|
15
|
+
language: string;
|
|
16
|
+
}): Promise<string>;
|
|
17
|
+
static productSEO(cf: {
|
|
18
|
+
data: any;
|
|
19
|
+
language: any;
|
|
20
|
+
appName: string;
|
|
21
|
+
product_id: string;
|
|
22
|
+
page: string;
|
|
23
|
+
}): Promise<void>;
|
|
24
|
+
static articleSeo(cf: {
|
|
25
|
+
article: any;
|
|
26
|
+
page: string;
|
|
27
|
+
appName: string;
|
|
28
|
+
data: any;
|
|
29
|
+
language: any;
|
|
30
|
+
}): Promise<void>;
|
|
31
|
+
static language(store_info: any, req: any): Promise<any>;
|
|
32
|
+
static fbCode(FBCode: any): string;
|
|
33
|
+
static gTag(g_tag: any[]): string;
|
|
34
|
+
static gA4(ga4: any[]): string;
|
|
35
|
+
}
|
|
36
|
+
export declare function extractCols(data: {
|
|
37
|
+
value: any[];
|
|
38
|
+
updated_at: Date;
|
|
39
|
+
}): any;
|
|
40
|
+
export declare function extractProds(data: any): any;
|
|
@@ -0,0 +1,303 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.SeoConfig = void 0;
|
|
7
|
+
exports.extractCols = extractCols;
|
|
8
|
+
exports.extractProds = extractProds;
|
|
9
|
+
const manager_js_1 = require("./api-public/services/manager.js");
|
|
10
|
+
const database_js_1 = __importDefault(require("./modules/database.js"));
|
|
11
|
+
const ut_database_js_1 = require("./api-public/utils/ut-database.js");
|
|
12
|
+
const shopping_js_1 = require("./api-public/services/shopping.js");
|
|
13
|
+
const html = String.raw;
|
|
14
|
+
class SeoConfig {
|
|
15
|
+
static async collectionSeo(cf) {
|
|
16
|
+
var _a;
|
|
17
|
+
const cols = (_a = (await manager_js_1.Manager.getConfig({
|
|
18
|
+
appName: cf.appName,
|
|
19
|
+
key: 'collection',
|
|
20
|
+
language: cf.language,
|
|
21
|
+
}))[0]) !== null && _a !== void 0 ? _a : {};
|
|
22
|
+
const colJson = extractCols(cols);
|
|
23
|
+
const urlCode = decodeURI(cf.page.split('/')[1]);
|
|
24
|
+
const colData = colJson.find((item) => {
|
|
25
|
+
if (item.language_data && item.language_data[cf.language]) {
|
|
26
|
+
return item.language_data[cf.language].seo.domain === urlCode || item.title === urlCode;
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
return (item.code === urlCode) || item.title === urlCode;
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
console.log(`colData=>`, colData);
|
|
33
|
+
if (colData) {
|
|
34
|
+
if (colData.language_data && colData.language_data[cf.language]) {
|
|
35
|
+
cf.data.page_config.seo.title = colData.language_data[cf.language].seo.title || urlCode;
|
|
36
|
+
cf.data.page_config.seo.content = colData.language_data[cf.language].seo.content;
|
|
37
|
+
cf.data.tag = cf.page;
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
cf.data.page_config.seo.title = colData.seo_title || urlCode;
|
|
41
|
+
cf.data.page_config.seo.content = colData.seo_content;
|
|
42
|
+
cf.data.page_config.seo.keywords = colData.seo_keywords;
|
|
43
|
+
cf.data.tag = cf.page;
|
|
44
|
+
}
|
|
45
|
+
cf.data.page_config.seo.image = colData.seo_image;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
static async distributionSEO(cf) {
|
|
49
|
+
var _a, _b;
|
|
50
|
+
const redURL = new URL(`https://127.0.0.1${cf.url}`);
|
|
51
|
+
const rec = await database_js_1.default.query(`SELECT *
|
|
52
|
+
FROM \`${cf.appName}\`.t_recommend_links
|
|
53
|
+
WHERE content ->>'$.link' = ?;
|
|
54
|
+
`, [cf.page.split('/')[1]]);
|
|
55
|
+
const page = rec[0] && rec[0].content ? rec[0].content : { status: false };
|
|
56
|
+
if (page.status && isCurrentTimeWithinRange(page)) {
|
|
57
|
+
let query = [`(content->>'$.type'='article')`, `(content->>'$.tag'='${page.redirect.split('/')[2]}')`];
|
|
58
|
+
const article = await new ut_database_js_1.UtDatabase(cf.appName, `t_manager_post`).querySql(query, {
|
|
59
|
+
page: 0,
|
|
60
|
+
limit: 1,
|
|
61
|
+
});
|
|
62
|
+
cf.data.page_config = (_a = cf.data.page_config) !== null && _a !== void 0 ? _a : {};
|
|
63
|
+
cf.data.page_config.seo = (_b = cf.data.page_config.seo) !== null && _b !== void 0 ? _b : {};
|
|
64
|
+
if (article.data[0]) {
|
|
65
|
+
if (article.data[0].content.language_data[cf.language]) {
|
|
66
|
+
cf.data.page_config.seo.title = article.data[0].content.language_data[cf.language].seo.title;
|
|
67
|
+
cf.data.page_config.seo.content = article.data[0].content.language_data[cf.language].seo.content;
|
|
68
|
+
cf.data.page_config.seo.keywords = article.data[0].content.language_data[cf.language].seo.keywords;
|
|
69
|
+
}
|
|
70
|
+
else {
|
|
71
|
+
cf.data.page_config.seo.title = article.data[0].content.seo.title;
|
|
72
|
+
cf.data.page_config.seo.content = article.data[0].content.seo.content;
|
|
73
|
+
cf.data.page_config.seo.keywords = article.data[0].content.seo.keywords;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
return html `localStorage.setItem('distributionCode','${page.code}');
|
|
77
|
+
location.href = '${cf.link_prefix ? `/` : ``}${cf.link_prefix}${page.redirect}${redURL.search}';
|
|
78
|
+
`;
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
return html `location.href = '/';`;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
static async productSEO(cf) {
|
|
85
|
+
var _a, _b, _c, _d;
|
|
86
|
+
const product_domain = cf.page.split('/')[1];
|
|
87
|
+
const pd = await new shopping_js_1.Shopping(cf.appName, undefined).getProduct(product_domain
|
|
88
|
+
? {
|
|
89
|
+
page: 0,
|
|
90
|
+
limit: 1,
|
|
91
|
+
domain: decodeURIComponent(product_domain),
|
|
92
|
+
language: cf.language,
|
|
93
|
+
}
|
|
94
|
+
: {
|
|
95
|
+
page: 0,
|
|
96
|
+
limit: 1,
|
|
97
|
+
id: cf.product_id,
|
|
98
|
+
language: cf.language,
|
|
99
|
+
});
|
|
100
|
+
if (pd.data.content) {
|
|
101
|
+
pd.data.content.language_data = (_a = pd.data.content.language_data) !== null && _a !== void 0 ? _a : {};
|
|
102
|
+
const productSeo = (pd.data.content.language_data[cf.language] && pd.data.content.language_data[cf.language].seo) || ((_b = pd.data.content.seo) !== null && _b !== void 0 ? _b : {});
|
|
103
|
+
const language_data = pd.data.content.language_data;
|
|
104
|
+
cf.data.page_config = (_c = cf.data.page_config) !== null && _c !== void 0 ? _c : {};
|
|
105
|
+
cf.data.page_config.seo = (_d = cf.data.page_config.seo) !== null && _d !== void 0 ? _d : {};
|
|
106
|
+
cf.data.page_config.seo.title = productSeo.title;
|
|
107
|
+
cf.data.page_config.seo.image = (language_data && language_data[cf.language] && language_data.preview_image && language_data.preview_image[0]) || pd.data.content.preview_image[0];
|
|
108
|
+
cf.data.page_config.seo.content = productSeo.content;
|
|
109
|
+
cf.data.tag = cf.page;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
static async articleSeo(cf) {
|
|
113
|
+
var _a, _b;
|
|
114
|
+
cf.article = cf.article || cf.page.split('/')[1];
|
|
115
|
+
let query = [`(content->>'$.type'='article')`, `(content->>'$.tag'='${cf.article}')`];
|
|
116
|
+
const article = await new ut_database_js_1.UtDatabase(cf.appName, `t_manager_post`).querySql(query, {
|
|
117
|
+
page: 0,
|
|
118
|
+
limit: 1,
|
|
119
|
+
});
|
|
120
|
+
cf.data.page_config = (_a = cf.data.page_config) !== null && _a !== void 0 ? _a : {};
|
|
121
|
+
cf.data.page_config.seo = (_b = cf.data.page_config.seo) !== null && _b !== void 0 ? _b : {};
|
|
122
|
+
if (article.data[0]) {
|
|
123
|
+
cf.data.tag = cf.page;
|
|
124
|
+
if (article.data[0].content.language_data && article.data[0].content.language_data[cf.language]) {
|
|
125
|
+
cf.data.page_config.seo.title = article.data[0].content.language_data[cf.language].seo.title;
|
|
126
|
+
cf.data.page_config.seo.content = article.data[0].content.language_data[cf.language].seo.content;
|
|
127
|
+
cf.data.page_config.seo.keywords = article.data[0].content.language_data[cf.language].seo.keywords;
|
|
128
|
+
}
|
|
129
|
+
else {
|
|
130
|
+
cf.data.page_config.seo.title = article.data[0].content.seo.title;
|
|
131
|
+
cf.data.page_config.seo.content = article.data[0].content.seo.content;
|
|
132
|
+
cf.data.page_config.seo.keywords = article.data[0].content.seo.keywords;
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
static async language(store_info, req) {
|
|
137
|
+
function checkIncludes(lan) {
|
|
138
|
+
return store_info.language_setting.support.includes(lan);
|
|
139
|
+
}
|
|
140
|
+
function checkEqual(lan) {
|
|
141
|
+
return `${req.query.page}`.startsWith(`${lan}/`) || req.query.page === lan;
|
|
142
|
+
}
|
|
143
|
+
function replace(lan) {
|
|
144
|
+
if (req.query.page === lan) {
|
|
145
|
+
req.query.page = '';
|
|
146
|
+
}
|
|
147
|
+
else {
|
|
148
|
+
req.query.page = `${req.query.page}`.replace(lan + '/', '');
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
if (checkEqual('en') && checkIncludes('en-US')) {
|
|
152
|
+
replace('en');
|
|
153
|
+
return `en-US`;
|
|
154
|
+
}
|
|
155
|
+
else if (checkEqual('cn') && checkIncludes('zh-CN')) {
|
|
156
|
+
replace('cn');
|
|
157
|
+
return `zh-CN`;
|
|
158
|
+
}
|
|
159
|
+
else if (checkEqual('tw') && checkIncludes('zh-TW')) {
|
|
160
|
+
replace('tw');
|
|
161
|
+
return `zh-TW`;
|
|
162
|
+
}
|
|
163
|
+
else {
|
|
164
|
+
return store_info.language_setting.def;
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
static fbCode(FBCode) {
|
|
168
|
+
return FBCode && FBCode.pixel
|
|
169
|
+
? html `<!-- Meta Pixel Code -->
|
|
170
|
+
<script>
|
|
171
|
+
!(function (f, b, e, v, n, t, s) {
|
|
172
|
+
if (f.fbq) return;
|
|
173
|
+
n = f.fbq = function () {
|
|
174
|
+
n.callMethod ? n.callMethod.apply(n, arguments) : n.queue.push(arguments);
|
|
175
|
+
};
|
|
176
|
+
if (!f._fbq) f._fbq = n;
|
|
177
|
+
n.push = n;
|
|
178
|
+
n.loaded = !0;
|
|
179
|
+
n.version = '2.0';
|
|
180
|
+
n.queue = [];
|
|
181
|
+
t = b.createElement(e);
|
|
182
|
+
t.async = !0;
|
|
183
|
+
t.src = v;
|
|
184
|
+
s = b.getElementsByTagName(e)[0];
|
|
185
|
+
s.parentNode.insertBefore(t, s);
|
|
186
|
+
})(window, document, 'script', 'https://connect.facebook.net/en_US/fbevents.js');
|
|
187
|
+
fbq('init', '${FBCode.pixel}');
|
|
188
|
+
fbq('track', 'PageView');
|
|
189
|
+
</script>
|
|
190
|
+
<noscript><img height="1" width="1" style="display:none"
|
|
191
|
+
src="https://www.facebook.com/tr?id=617830100580621&ev=PageView&noscript=1"/>
|
|
192
|
+
</noscript>
|
|
193
|
+
<!-- End Meta Pixel Code -->`
|
|
194
|
+
: '';
|
|
195
|
+
}
|
|
196
|
+
static gTag(g_tag) {
|
|
197
|
+
return (g_tag || [])
|
|
198
|
+
.map((dd) => {
|
|
199
|
+
return html `<!-- Google tag (gtag.js) -->
|
|
200
|
+
<!-- Google Tag Manager -->
|
|
201
|
+
<script>
|
|
202
|
+
(function (w, d, s, l, i) {
|
|
203
|
+
w[l] = w[l] || [];
|
|
204
|
+
w[l].push({
|
|
205
|
+
'gtm.start': new Date().getTime(),
|
|
206
|
+
event: 'gtm.js',
|
|
207
|
+
});
|
|
208
|
+
var f = d.getElementsByTagName(s)[0],
|
|
209
|
+
j = d.createElement(s),
|
|
210
|
+
dl = l != 'dataLayer' ? '&l=' + l : '';
|
|
211
|
+
j.async = true;
|
|
212
|
+
j.src = 'https://www.googletagmanager.com/gtm.js?id=' + i + dl;
|
|
213
|
+
f.parentNode.insertBefore(j, f);
|
|
214
|
+
})(window, document, 'script', 'dataLayer', '${dd.code}');
|
|
215
|
+
</script>
|
|
216
|
+
<!-- End Google Tag Manager -->`;
|
|
217
|
+
})
|
|
218
|
+
.join('');
|
|
219
|
+
}
|
|
220
|
+
static gA4(ga4) {
|
|
221
|
+
return (ga4 || [])
|
|
222
|
+
.map((dd) => {
|
|
223
|
+
return html `<!-- Google tag (gtag.js) -->
|
|
224
|
+
<script async
|
|
225
|
+
src="https://www.googletagmanager.com/gtag/js?id=${dd.code}"></script>
|
|
226
|
+
<script>
|
|
227
|
+
window.dataLayer = window.dataLayer || [];
|
|
228
|
+
|
|
229
|
+
function gtag() {
|
|
230
|
+
dataLayer.push(arguments);
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
gtag('js', new Date());
|
|
234
|
+
|
|
235
|
+
gtag('config', '${dd.code}');
|
|
236
|
+
</script>`;
|
|
237
|
+
})
|
|
238
|
+
.join('');
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
exports.SeoConfig = SeoConfig;
|
|
242
|
+
SeoConfig.editorSeo = html `<title>SHOPNEX後台系統</title>
|
|
243
|
+
<link rel="canonical" href="/index"/>
|
|
244
|
+
<meta name="keywords" content="SHOPNEX,電商平台"/>
|
|
245
|
+
<link
|
|
246
|
+
id="appImage"
|
|
247
|
+
rel="shortcut icon"
|
|
248
|
+
href="https://d3jnmi1tfjgtti.cloudfront.net/file/234285319/size1440_s*px$_sas0s9s0s1sesas0_1697354801736-Glitterlogo.png"
|
|
249
|
+
type="image/x-icon"
|
|
250
|
+
/>
|
|
251
|
+
<link
|
|
252
|
+
rel="icon"
|
|
253
|
+
href="https://d3jnmi1tfjgtti.cloudfront.net/file/234285319/size1440_s*px$_sas0s9s0s1sesas0_1697354801736-Glitterlogo.png"
|
|
254
|
+
type="image/png"
|
|
255
|
+
sizes="128x128"
|
|
256
|
+
/>
|
|
257
|
+
<meta property="og:image"
|
|
258
|
+
content="https://d3jnmi1tfjgtti.cloudfront.net/file/252530754/1718778766524-shopnex_banner.jpg"/>
|
|
259
|
+
<meta property="og:title" content="SHOPNEX後台系統"/>
|
|
260
|
+
<meta
|
|
261
|
+
name="description"
|
|
262
|
+
content="SHOPNEX電商開店平台,零抽成、免手續費。提供精美模板和豐富插件,操作簡單,3分鐘內快速打造專屬商店。購物車、金物流、SEO行銷、資料分析一站搞定。支援APP上架,並提供100%客製化設計,立即免費體驗30天。"
|
|
263
|
+
/>
|
|
264
|
+
<meta
|
|
265
|
+
name="og:description"
|
|
266
|
+
content="SHOPNEX電商開店平台,零抽成、免手續費。提供精美模板和豐富插件,操作簡單,3分鐘內快速打造專屬商店。購物車、金物流、SEO行銷、資料分析一站搞定。支援APP上架,並提供100%客製化設計,立即免費體驗30天。"
|
|
267
|
+
/>`;
|
|
268
|
+
function extractCols(data) {
|
|
269
|
+
let items = [];
|
|
270
|
+
const updated_at = new Date(data.updated_at).toISOString().replace(/\.\d{3}Z$/, '+00:00');
|
|
271
|
+
data.value.map((item) => {
|
|
272
|
+
items.push(Object.assign(Object.assign({}, item), { updated_at }));
|
|
273
|
+
if (item.array && item.array.length > 0) {
|
|
274
|
+
items = items.concat(extractCols({
|
|
275
|
+
value: item.array,
|
|
276
|
+
updated_at: data.updated_at
|
|
277
|
+
}));
|
|
278
|
+
}
|
|
279
|
+
});
|
|
280
|
+
return items;
|
|
281
|
+
}
|
|
282
|
+
function extractProds(data) {
|
|
283
|
+
const items = [];
|
|
284
|
+
data.map((item) => {
|
|
285
|
+
const updated_at = new Date(item.updated_time).toISOString().replace(/\.\d{3}Z$/, '+00:00');
|
|
286
|
+
items.push({ items });
|
|
287
|
+
});
|
|
288
|
+
return items;
|
|
289
|
+
}
|
|
290
|
+
function isCurrentTimeWithinRange(data) {
|
|
291
|
+
const now = new Date();
|
|
292
|
+
now.setTime(now.getTime() + 8 * 3600 * 1000);
|
|
293
|
+
const startDateTime = new Date(`${data.startDate}T${data.startTime}`);
|
|
294
|
+
const hasEnd = data.endDate && data.endTime;
|
|
295
|
+
const endDateTime = hasEnd ? new Date(`${data.endDate}T${data.endTime}`) : null;
|
|
296
|
+
if (hasEnd) {
|
|
297
|
+
return now >= startDateTime && now <= endDateTime;
|
|
298
|
+
}
|
|
299
|
+
else {
|
|
300
|
+
return now >= startDateTime;
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
//# sourceMappingURL=seo-config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"seo-config.js","sourceRoot":"","sources":["seo-config.ts"],"names":[],"mappings":"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"}
|