cloudcommerce 0.0.65 → 0.0.68
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/CHANGELOG.md +36 -0
- package/package.json +8 -8
- package/packages/api/lib/api.js +8 -8
- package/packages/api/lib/api.js.map +1 -1
- package/packages/api/package.json +1 -1
- package/packages/api/src/api.ts +8 -8
- package/packages/apps/correios/package.json +3 -3
- package/packages/apps/custom-shipping/package.json +3 -3
- package/packages/apps/discounts/package.json +1 -1
- package/packages/apps/tiny-erp/package.json +2 -2
- package/packages/cli/config/firebase.json +6 -6
- package/packages/cli/package.json +1 -1
- package/packages/config/CHANGELOG.md +1 -0
- package/packages/config/README.md +1 -0
- package/packages/config/lib/config.d.ts +13 -0
- package/packages/config/lib/config.js +33 -0
- package/packages/config/lib/config.js.map +1 -0
- package/packages/{firebase → config}/lib/defaults.d.ts +0 -0
- package/packages/{firebase → config}/lib/defaults.js +0 -0
- package/packages/{firebase → config}/lib/defaults.js.map +0 -0
- package/packages/config/lib/env.d.ts +11 -0
- package/packages/config/lib/env.js +33 -0
- package/packages/config/lib/env.js.map +1 -0
- package/packages/config/package.json +33 -0
- package/packages/config/src/config.ts +47 -0
- package/packages/{firebase → config}/src/defaults.ts +0 -0
- package/packages/config/src/env.ts +46 -0
- package/packages/config/tsconfig.json +6 -0
- package/packages/events/package.json +2 -2
- package/packages/firebase/lib/config.d.ts +21 -24
- package/packages/firebase/lib/config.js +20 -44
- package/packages/firebase/lib/config.js.map +1 -1
- package/packages/firebase/lib/env.d.ts +2 -10
- package/packages/firebase/lib/env.js +3 -27
- package/packages/firebase/lib/env.js.map +1 -1
- package/packages/firebase/lib/handlers/check-store-events.js +17 -8
- package/packages/firebase/lib/handlers/check-store-events.js.map +1 -1
- package/packages/firebase/package.json +3 -3
- package/packages/firebase/src/config.ts +23 -48
- package/packages/firebase/src/env.ts +2 -38
- package/packages/firebase/src/handlers/check-store-events.ts +18 -9
- package/packages/modules/package.json +2 -2
- package/packages/passport/package.json +2 -2
- package/packages/ssr/lib/firebase/serve-storefront.js +67 -0
- package/packages/ssr/lib/firebase/serve-storefront.js.map +1 -0
- package/packages/ssr/lib/firebase.js +4 -3
- package/packages/ssr/lib/firebase.js.map +1 -1
- package/packages/ssr/lib/index.js +3 -0
- package/packages/ssr/lib/index.js.map +1 -1
- package/packages/ssr/package.json +2 -3
- package/packages/ssr/src/firebase/serve-storefront.ts +78 -0
- package/packages/ssr/src/firebase.ts +4 -3
- package/packages/ssr/src/index.ts +3 -0
- package/packages/storefront/.eslintrc.cjs +6 -0
- package/packages/storefront/dist/client/assets/{_...d4aa8aff.css → 404-_...d4aa8aff.css} +0 -0
- package/packages/storefront/dist/client/assets/404-index.d9230d24.css +1 -0
- package/packages/storefront/dist/client/assets/{_...0b5ebd52.css → 404.530428e5.css} +1 -1
- package/packages/storefront/dist/client/assets/_...fae19676.css +1 -0
- package/packages/storefront/dist/client/assets/index.53a3a3e0.css +1 -0
- package/packages/storefront/dist/client/client.6d48c590.js +1 -0
- package/packages/storefront/dist/server/entry.mjs +272 -135
- package/packages/storefront/example.env +2 -0
- package/packages/storefront/package.json +10 -7
- package/packages/storefront/src/pages/404.astro +74 -0
- package/packages/storefront/src/pages/[...slug].astro +11 -5
- package/packages/{ssr/src/firebase/.gitkeep → storefront/src/pages/app/index.astro} +0 -0
- package/packages/storefront/src/pages/index.astro +2 -2
- package/packages/storefront/src/storefront-config.ts +39 -0
- package/packages/types/package.json +1 -1
- package/packages/storefront/dist/client/assets/index.5608ba47.css +0 -1
- package/packages/storefront/dist/client/client.dbac84dd.js +0 -1
|
@@ -1,31 +1,28 @@
|
|
|
1
1
|
import type { ApiEventName } from '@cloudcommerce/types';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
2
|
+
import { BaseConfig } from '@cloudcommerce/config';
|
|
3
|
+
declare const mergeConfig: {
|
|
4
|
+
hello: string;
|
|
5
|
+
httpsFunctionOptions: {
|
|
6
|
+
region: string;
|
|
7
|
+
};
|
|
8
|
+
apps: {
|
|
9
|
+
discounts: {
|
|
10
|
+
appId: number;
|
|
11
|
+
};
|
|
12
|
+
correios: {
|
|
13
|
+
appId: number;
|
|
12
14
|
};
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
};
|
|
20
|
-
customShipping: {
|
|
21
|
-
appId: number;
|
|
22
|
-
};
|
|
23
|
-
tinyErp: {
|
|
24
|
-
appId: number;
|
|
25
|
-
events: ApiEventName[];
|
|
26
|
-
};
|
|
15
|
+
customShipping: {
|
|
16
|
+
appId: number;
|
|
17
|
+
};
|
|
18
|
+
tinyErp: {
|
|
19
|
+
appId: number;
|
|
20
|
+
events: ApiEventName[];
|
|
27
21
|
};
|
|
28
22
|
};
|
|
23
|
+
};
|
|
24
|
+
declare const _default: {
|
|
25
|
+
get(): BaseConfig & typeof mergeConfig;
|
|
29
26
|
set(config: any): void;
|
|
30
27
|
};
|
|
31
28
|
export default _default;
|
|
@@ -1,57 +1,33 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
3
|
-
DEFAULT_LANG, DEFAULT_CURRENCY, DEFAULT_CURRENCY_SYMBOL, DEFAULT_COUNTRY_CODE,
|
|
4
|
-
} from './defaults.js';
|
|
1
|
+
import config from '@cloudcommerce/config';
|
|
5
2
|
|
|
6
|
-
// @ts-ignore
|
|
7
|
-
const env = (typeof process === 'object' && process?.env)
|
|
8
|
-
|| (typeof window === 'object' && window)
|
|
9
|
-
|| {};
|
|
10
|
-
const deepmerge = Deepmerge();
|
|
11
3
|
const tinyErpEvents = [
|
|
12
4
|
'orders-anyStatusSet',
|
|
13
5
|
'products-new',
|
|
14
6
|
'products-priceSet',
|
|
15
7
|
'applications-dataSet',
|
|
16
8
|
];
|
|
17
|
-
const
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
9
|
+
const mergeConfig = {
|
|
10
|
+
hello: 'from @cloudcommerce/firebase',
|
|
11
|
+
httpsFunctionOptions: {
|
|
12
|
+
region: process.env.DEPLOY_REGION || 'southamerica-east1',
|
|
13
|
+
},
|
|
14
|
+
apps: {
|
|
15
|
+
discounts: {
|
|
16
|
+
appId: 1252,
|
|
17
|
+
},
|
|
18
|
+
correios: {
|
|
19
|
+
appId: 1248,
|
|
20
|
+
},
|
|
21
|
+
customShipping: {
|
|
22
|
+
appId: 1253,
|
|
27
23
|
},
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
},
|
|
32
|
-
correios: {
|
|
33
|
-
appId: 1248,
|
|
34
|
-
},
|
|
35
|
-
customShipping: {
|
|
36
|
-
appId: 1253,
|
|
37
|
-
},
|
|
38
|
-
tinyErp: {
|
|
39
|
-
appId: 105922,
|
|
40
|
-
events: tinyErpEvents,
|
|
41
|
-
},
|
|
24
|
+
tinyErp: {
|
|
25
|
+
appId: 105922,
|
|
26
|
+
events: tinyErpEvents,
|
|
42
27
|
},
|
|
43
28
|
},
|
|
44
29
|
};
|
|
30
|
+
config.set(mergeConfig);
|
|
45
31
|
|
|
46
|
-
export default
|
|
47
|
-
get() {
|
|
48
|
-
return self.__config;
|
|
49
|
-
},
|
|
50
|
-
set(config) {
|
|
51
|
-
self.__config = deepmerge(self.__config, config);
|
|
52
|
-
if (config.storeId) {
|
|
53
|
-
env.ECOM_STORE_ID = config.storeId;
|
|
54
|
-
}
|
|
55
|
-
},
|
|
56
|
-
};
|
|
32
|
+
export default config;
|
|
57
33
|
// # sourceMappingURL=config.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AACA,OAAO,MAAsB,MAAM,uBAAuB,CAAC;AAE3D,MAAM,aAAa,GAAmB;IACpC,qBAAqB;IACrB,cAAc;IACd,mBAAmB;IACnB,sBAAsB;CACvB,CAAC;AAEF,MAAM,WAAW,GAAG;IAClB,KAAK,EAAE,8BAA8B;IACrC,oBAAoB,EAAE;QACpB,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,oBAAoB;KAC1D;IACD,IAAI,EAAE;QACJ,SAAS,EAAE;YACT,KAAK,EAAE,IAAI;SACZ;QACD,QAAQ,EAAE;YACR,KAAK,EAAE,IAAI;SACZ;QACD,cAAc,EAAE;YACd,KAAK,EAAE,IAAI;SACZ;QACD,OAAO,EAAE;YACP,KAAK,EAAE,MAAM;YACb,MAAM,EAAE,aAAa;SACtB;KACF;CACF,CAAC;AACF,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;AAExB,eAAe,MAId,CAAC"}
|
|
@@ -1,11 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
apiAuth: {
|
|
4
|
-
authenticationId: string;
|
|
5
|
-
apiKey: string;
|
|
6
|
-
};
|
|
7
|
-
githubToken?: string;
|
|
8
|
-
};
|
|
9
|
-
declare const _default: () => Env;
|
|
10
|
-
export default _default;
|
|
1
|
+
import getEnv, { Env } from '@cloudcommerce/config/lib/env';
|
|
2
|
+
export default getEnv;
|
|
11
3
|
export type { Env };
|
|
@@ -1,28 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
} = process.env;
|
|
5
|
-
const storeId = ECOM_STORE_ID && parseInt(ECOM_STORE_ID, 10);
|
|
6
|
-
if (!storeId) {
|
|
7
|
-
throw new Error('ECOM_STORE_ID is not set or not a number');
|
|
8
|
-
}
|
|
9
|
-
if (!ECOM_AUTHENTICATION_ID) {
|
|
10
|
-
throw new Error('ECOM_AUTHENTICATION_ID is not set');
|
|
11
|
-
}
|
|
12
|
-
if (!ECOM_API_KEY) {
|
|
13
|
-
throw new Error('ECOM_API_KEY is not set');
|
|
14
|
-
}
|
|
15
|
-
const authenticationId = ECOM_AUTHENTICATION_ID;
|
|
16
|
-
const apiKey = ECOM_API_KEY;
|
|
17
|
-
const githubToken = GITHUB_TOKEN;
|
|
18
|
-
const env = {
|
|
19
|
-
storeId,
|
|
20
|
-
apiAuth: {
|
|
21
|
-
authenticationId,
|
|
22
|
-
apiKey,
|
|
23
|
-
},
|
|
24
|
-
githubToken,
|
|
25
|
-
};
|
|
26
|
-
return env;
|
|
27
|
-
};
|
|
1
|
+
import getEnv from '@cloudcommerce/config/lib/env';
|
|
2
|
+
|
|
3
|
+
export default getEnv;
|
|
28
4
|
// # sourceMappingURL=env.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env.js","sourceRoot":"","sources":["../src/env.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"env.js","sourceRoot":"","sources":["../src/env.ts"],"names":[],"mappings":"AAAA,OAAO,MAAe,MAAM,+BAA+B,CAAC;AAE5D,eAAe,MAAM,CAAC"}
|
|
@@ -8,10 +8,8 @@ import { EVENT_SKIP_FLAG, GET_PUBSUB_TOPIC } from '../const.js';
|
|
|
8
8
|
|
|
9
9
|
const parseEventName = (evName, baseApiEventsFilter) => {
|
|
10
10
|
const [resource, actionName] = evName.split('-');
|
|
11
|
-
const params = {
|
|
12
|
-
|
|
13
|
-
};
|
|
14
|
-
const bodySet = { ...baseApiEventsFilter };
|
|
11
|
+
const params = { ...baseApiEventsFilter };
|
|
12
|
+
const bodySet = {};
|
|
15
13
|
if (actionName === 'new') {
|
|
16
14
|
params.action = 'create';
|
|
17
15
|
} else {
|
|
@@ -76,9 +74,13 @@ const tryPubSubPublish = (topicName, messageObj, retries = 0) => {
|
|
|
76
74
|
export default async () => {
|
|
77
75
|
const timestamp = Date.now();
|
|
78
76
|
const documentRef = getFirestore().doc('storeEvents/last');
|
|
79
|
-
const
|
|
77
|
+
const documentSnapshot = await documentRef.get();
|
|
78
|
+
const lastRunTimestamp = documentSnapshot.get('timestamp')
|
|
80
79
|
|| Date.now() - 1000 * 60 * 5;
|
|
80
|
+
const lastNonOrdersTimestamp = documentSnapshot.get('nonOrdersTimestamp')
|
|
81
|
+
|| 0;
|
|
81
82
|
const baseApiEventsFilter = {
|
|
83
|
+
'flag!': EVENT_SKIP_FLAG,
|
|
82
84
|
'timestamp>': new Date(lastRunTimestamp - 1).toISOString(),
|
|
83
85
|
'timestamp<': new Date(timestamp).toISOString(),
|
|
84
86
|
};
|
|
@@ -107,11 +109,17 @@ export default async () => {
|
|
|
107
109
|
});
|
|
108
110
|
}
|
|
109
111
|
});
|
|
112
|
+
// Some resource events are not listened to every minute
|
|
113
|
+
const isOrdersOnly = Boolean(new Date().getMinutes() % 5);
|
|
110
114
|
listenedEvents.forEach(async (listenedEventName) => {
|
|
111
115
|
const { resource, params } = parseEventName(listenedEventName, baseApiEventsFilter);
|
|
112
|
-
if (resource !== 'orders'
|
|
113
|
-
|
|
114
|
-
|
|
116
|
+
if (resource !== 'orders') {
|
|
117
|
+
if (isOrdersOnly) {
|
|
118
|
+
return;
|
|
119
|
+
}
|
|
120
|
+
if (lastNonOrdersTimestamp) {
|
|
121
|
+
params['timestamp>'] = new Date(lastNonOrdersTimestamp).toISOString();
|
|
122
|
+
}
|
|
115
123
|
}
|
|
116
124
|
let { data: { result } } = await api.get(`events/${resource}`, {
|
|
117
125
|
params,
|
|
@@ -163,6 +171,7 @@ export default async () => {
|
|
|
163
171
|
});
|
|
164
172
|
return documentRef.set({
|
|
165
173
|
timestamp,
|
|
174
|
+
nonOrdersTimestamp: isOrdersOnly ? lastNonOrdersTimestamp : timestamp,
|
|
166
175
|
activeApps,
|
|
167
176
|
listenedEvents,
|
|
168
177
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check-store-events.js","sourceRoot":"","sources":["../../src/handlers/check-store-events.ts"],"names":[],"mappings":"AACA,gDAAgD;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,MAAM,MAAM,+BAA+B,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,GAAkB,MAAM,oBAAoB,CAAC;AACpD,OAAO,MAAM,MAAM,WAAW,CAAC;AAC/B,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAE7D,MAAM,cAAc,GAAG,CACrB,MAAoB,EACpB,mBAA2C,EAC3C,EAAE;IACF,MAAM,CAAC,QAAQ,EAAE,UAAU,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACjD,MAAM,MAAM,GAAwB
|
|
1
|
+
{"version":3,"file":"check-store-events.js","sourceRoot":"","sources":["../../src/handlers/check-store-events.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cloudcommerce/firebase",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.0.
|
|
4
|
+
"version": "0.0.68",
|
|
5
5
|
"description": "E-Com Plus Cloud Commerce on Firebase",
|
|
6
6
|
"main": "lib/index.js",
|
|
7
7
|
"types": "lib/index.d.ts",
|
|
@@ -30,10 +30,10 @@
|
|
|
30
30
|
},
|
|
31
31
|
"dependencies": {
|
|
32
32
|
"@cloudcommerce/api": "workspace:*",
|
|
33
|
-
"@
|
|
33
|
+
"@cloudcommerce/config": "workspace:*",
|
|
34
34
|
"@google-cloud/pubsub": "^3.1.0",
|
|
35
35
|
"firebase-admin": "^11.0.1",
|
|
36
|
-
"firebase-functions": "^3.
|
|
36
|
+
"firebase-functions": "^3.23.0",
|
|
37
37
|
"node-fetch": "^3.2.10",
|
|
38
38
|
"source-map-support": "^0.5.21"
|
|
39
39
|
},
|
|
@@ -1,18 +1,5 @@
|
|
|
1
1
|
import type { ApiEventName } from '@cloudcommerce/types';
|
|
2
|
-
import
|
|
3
|
-
import {
|
|
4
|
-
DEFAULT_LANG,
|
|
5
|
-
DEFAULT_CURRENCY,
|
|
6
|
-
DEFAULT_CURRENCY_SYMBOL,
|
|
7
|
-
DEFAULT_COUNTRY_CODE,
|
|
8
|
-
} from './defaults';
|
|
9
|
-
|
|
10
|
-
// @ts-ignore
|
|
11
|
-
const env: { [key: string]: string } = (typeof process === 'object' && process?.env)
|
|
12
|
-
|| (typeof window === 'object' && window)
|
|
13
|
-
|| {};
|
|
14
|
-
|
|
15
|
-
const deepmerge = Deepmerge();
|
|
2
|
+
import config, { BaseConfig } from '@cloudcommerce/config';
|
|
16
3
|
|
|
17
4
|
const tinyErpEvents: ApiEventName[] = [
|
|
18
5
|
'orders-anyStatusSet',
|
|
@@ -21,43 +8,31 @@ const tinyErpEvents: ApiEventName[] = [
|
|
|
21
8
|
'applications-dataSet',
|
|
22
9
|
];
|
|
23
10
|
|
|
24
|
-
const
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
11
|
+
const mergeConfig = {
|
|
12
|
+
hello: 'from @cloudcommerce/firebase',
|
|
13
|
+
httpsFunctionOptions: {
|
|
14
|
+
region: process.env.DEPLOY_REGION || 'southamerica-east1',
|
|
15
|
+
},
|
|
16
|
+
apps: {
|
|
17
|
+
discounts: {
|
|
18
|
+
appId: 1252,
|
|
19
|
+
},
|
|
20
|
+
correios: {
|
|
21
|
+
appId: 1248,
|
|
34
22
|
},
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
},
|
|
42
|
-
customShipping: {
|
|
43
|
-
appId: 1253,
|
|
44
|
-
},
|
|
45
|
-
tinyErp: {
|
|
46
|
-
appId: 105922,
|
|
47
|
-
events: tinyErpEvents,
|
|
48
|
-
},
|
|
23
|
+
customShipping: {
|
|
24
|
+
appId: 1253,
|
|
25
|
+
},
|
|
26
|
+
tinyErp: {
|
|
27
|
+
appId: 105922,
|
|
28
|
+
events: tinyErpEvents,
|
|
49
29
|
},
|
|
50
30
|
},
|
|
51
31
|
};
|
|
32
|
+
config.set(mergeConfig);
|
|
52
33
|
|
|
53
|
-
export default {
|
|
54
|
-
get()
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
set(config) {
|
|
58
|
-
self.__config = deepmerge(self.__config, config);
|
|
59
|
-
if (config.storeId) {
|
|
60
|
-
env.ECOM_STORE_ID = config.storeId;
|
|
61
|
-
}
|
|
62
|
-
},
|
|
34
|
+
export default config as {
|
|
35
|
+
get(): BaseConfig & typeof mergeConfig;
|
|
36
|
+
// eslint-disable-next-line
|
|
37
|
+
set(config: any): void;
|
|
63
38
|
};
|
|
@@ -1,41 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
storeId: number;
|
|
3
|
-
apiAuth: {
|
|
4
|
-
authenticationId: string;
|
|
5
|
-
apiKey: string;
|
|
6
|
-
},
|
|
7
|
-
githubToken?: string;
|
|
8
|
-
};
|
|
1
|
+
import getEnv, { Env } from '@cloudcommerce/config/lib/env';
|
|
9
2
|
|
|
10
|
-
export default
|
|
11
|
-
const {
|
|
12
|
-
ECOM_STORE_ID,
|
|
13
|
-
ECOM_AUTHENTICATION_ID,
|
|
14
|
-
ECOM_API_KEY,
|
|
15
|
-
GITHUB_TOKEN,
|
|
16
|
-
} = process.env;
|
|
17
|
-
const storeId = ECOM_STORE_ID && parseInt(ECOM_STORE_ID, 10);
|
|
18
|
-
if (!storeId) {
|
|
19
|
-
throw new Error('ECOM_STORE_ID is not set or not a number');
|
|
20
|
-
}
|
|
21
|
-
if (!ECOM_AUTHENTICATION_ID) {
|
|
22
|
-
throw new Error('ECOM_AUTHENTICATION_ID is not set');
|
|
23
|
-
}
|
|
24
|
-
if (!ECOM_API_KEY) {
|
|
25
|
-
throw new Error('ECOM_API_KEY is not set');
|
|
26
|
-
}
|
|
27
|
-
const authenticationId = ECOM_AUTHENTICATION_ID;
|
|
28
|
-
const apiKey = ECOM_API_KEY;
|
|
29
|
-
const githubToken = GITHUB_TOKEN;
|
|
30
|
-
const env: Env = {
|
|
31
|
-
storeId,
|
|
32
|
-
apiAuth: {
|
|
33
|
-
authenticationId,
|
|
34
|
-
apiKey,
|
|
35
|
-
},
|
|
36
|
-
githubToken,
|
|
37
|
-
};
|
|
38
|
-
return env;
|
|
39
|
-
};
|
|
3
|
+
export default getEnv;
|
|
40
4
|
|
|
41
5
|
export type { Env };
|
|
@@ -12,10 +12,8 @@ const parseEventName = (
|
|
|
12
12
|
baseApiEventsFilter: Record<string, string>,
|
|
13
13
|
) => {
|
|
14
14
|
const [resource, actionName] = evName.split('-');
|
|
15
|
-
const params: ApiConfig['params'] = {
|
|
16
|
-
|
|
17
|
-
};
|
|
18
|
-
const bodySet: { [key: string]: any } = { ...baseApiEventsFilter };
|
|
15
|
+
const params: ApiConfig['params'] = { ...baseApiEventsFilter };
|
|
16
|
+
const bodySet: { [key: string]: any } = {};
|
|
19
17
|
if (actionName === 'new') {
|
|
20
18
|
params.action = 'create';
|
|
21
19
|
} else {
|
|
@@ -62,7 +60,7 @@ const parseEventName = (
|
|
|
62
60
|
});
|
|
63
61
|
return { resource, params } as {
|
|
64
62
|
resource: Resource,
|
|
65
|
-
params: ApiConfig['params'],
|
|
63
|
+
params: Exclude<ApiConfig['params'], undefined>,
|
|
66
64
|
};
|
|
67
65
|
};
|
|
68
66
|
|
|
@@ -88,9 +86,13 @@ const tryPubSubPublish = (
|
|
|
88
86
|
export default async () => {
|
|
89
87
|
const timestamp = Date.now();
|
|
90
88
|
const documentRef = getFirestore().doc('storeEvents/last');
|
|
91
|
-
const
|
|
89
|
+
const documentSnapshot = await documentRef.get();
|
|
90
|
+
const lastRunTimestamp: number = documentSnapshot.get('timestamp')
|
|
92
91
|
|| Date.now() - 1000 * 60 * 5;
|
|
92
|
+
const lastNonOrdersTimestamp: number = documentSnapshot.get('nonOrdersTimestamp')
|
|
93
|
+
|| 0;
|
|
93
94
|
const baseApiEventsFilter = {
|
|
95
|
+
'flag!': EVENT_SKIP_FLAG,
|
|
94
96
|
'timestamp>': new Date(lastRunTimestamp - 1).toISOString(),
|
|
95
97
|
'timestamp<': new Date(timestamp).toISOString(),
|
|
96
98
|
};
|
|
@@ -119,11 +121,17 @@ export default async () => {
|
|
|
119
121
|
});
|
|
120
122
|
}
|
|
121
123
|
});
|
|
124
|
+
// Some resource events are not listened to every minute
|
|
125
|
+
const isOrdersOnly = Boolean(new Date().getMinutes() % 5);
|
|
122
126
|
listenedEvents.forEach(async (listenedEventName) => {
|
|
123
127
|
const { resource, params } = parseEventName(listenedEventName, baseApiEventsFilter);
|
|
124
|
-
if (resource !== 'orders'
|
|
125
|
-
|
|
126
|
-
|
|
128
|
+
if (resource !== 'orders') {
|
|
129
|
+
if (isOrdersOnly) {
|
|
130
|
+
return;
|
|
131
|
+
}
|
|
132
|
+
if (lastNonOrdersTimestamp) {
|
|
133
|
+
params['timestamp>'] = new Date(lastNonOrdersTimestamp).toISOString();
|
|
134
|
+
}
|
|
127
135
|
}
|
|
128
136
|
let { data: { result } } = await api.get(`events/${resource}`, {
|
|
129
137
|
params,
|
|
@@ -175,6 +183,7 @@ export default async () => {
|
|
|
175
183
|
});
|
|
176
184
|
return documentRef.set({
|
|
177
185
|
timestamp,
|
|
186
|
+
nonOrdersTimestamp: isOrdersOnly ? lastNonOrdersTimestamp : timestamp,
|
|
178
187
|
activeApps,
|
|
179
188
|
listenedEvents,
|
|
180
189
|
});
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cloudcommerce/modules",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.0.
|
|
4
|
+
"version": "0.0.68",
|
|
5
5
|
"description": "E-Com Plus Cloud Commerce modules API",
|
|
6
6
|
"main": "lib/index.cjs",
|
|
7
7
|
"exports": {
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
"ajv": "^8.11.0",
|
|
33
33
|
"axios": "^0.27.2",
|
|
34
34
|
"firebase-admin": "^11.0.1",
|
|
35
|
-
"firebase-functions": "^3.
|
|
35
|
+
"firebase-functions": "^3.23.0",
|
|
36
36
|
"source-map-support": "^0.5.21"
|
|
37
37
|
},
|
|
38
38
|
"devDependencies": {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cloudcommerce/passport",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.0.
|
|
4
|
+
"version": "0.0.68",
|
|
5
5
|
"description": "E-Com Plus Cloud Commerce customers authentication (passport) API",
|
|
6
6
|
"main": "lib/index.js",
|
|
7
7
|
"exports": {
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
"@cloudcommerce/api": "workspace:*",
|
|
27
27
|
"@cloudcommerce/firebase": "workspace:*",
|
|
28
28
|
"firebase-admin": "^11.0.1",
|
|
29
|
-
"firebase-functions": "^3.
|
|
29
|
+
"firebase-functions": "^3.23.0",
|
|
30
30
|
"source-map-support": "^0.5.21"
|
|
31
31
|
},
|
|
32
32
|
"devDependencies": {
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { join as joinPath } from 'path';
|
|
2
|
+
import { readFile } from 'fs/promises';
|
|
3
|
+
|
|
4
|
+
const { STOREFRONT_BASE_DIR, STOREFRONT_LONG_CACHE } = process.env;
|
|
5
|
+
const baseDir = STOREFRONT_BASE_DIR || process.cwd();
|
|
6
|
+
const clientRoot = new URL(joinPath(baseDir, 'dist/client/'), import.meta.url);
|
|
7
|
+
const isLongCache = String(STOREFRONT_LONG_CACHE).toLowerCase() === 'true';
|
|
8
|
+
|
|
9
|
+
export default (req, res) => {
|
|
10
|
+
const url = req.url.replace(/\?.*$/, '').replace(/\.html$/, '');
|
|
11
|
+
const setStatusAndCache = (status, defaultCache) => {
|
|
12
|
+
return res.status(status)
|
|
13
|
+
.set('X-SSR-ID', `v1/${Math.random()}`)
|
|
14
|
+
.set('Cache-Control', (typeof global.cache_control === 'function' && global.cache_control(status))
|
|
15
|
+
|| defaultCache);
|
|
16
|
+
};
|
|
17
|
+
const redirect = (toUrl, status = 302) => {
|
|
18
|
+
let sMaxAge = status === 301 ? 360 : 12;
|
|
19
|
+
if (isLongCache) {
|
|
20
|
+
sMaxAge *= 10;
|
|
21
|
+
}
|
|
22
|
+
let cacheControl = `public, max-age=30, s-maxage=${sMaxAge}`;
|
|
23
|
+
if (status === 302) {
|
|
24
|
+
cacheControl += ', proxy-revalidate';
|
|
25
|
+
}
|
|
26
|
+
setStatusAndCache(status, cacheControl)
|
|
27
|
+
.set('Location', toUrl).end();
|
|
28
|
+
};
|
|
29
|
+
const fallback = (status = 404) => {
|
|
30
|
+
if (url.slice(-1) === '/') {
|
|
31
|
+
redirect(url.slice(0, -1));
|
|
32
|
+
} else if (url !== '/404' && (/\/[^/.]+$/.test(url) || /\.x?html$/.test(url))) {
|
|
33
|
+
setStatusAndCache(status, `public, max-age=${(isLongCache ? 120 : 30)}`)
|
|
34
|
+
.send('<html><head>'
|
|
35
|
+
+ `<meta http-equiv="refresh" content="0; url=/404?url=${encodeURIComponent(url)}"/>`
|
|
36
|
+
+ '</head><body></body></html>');
|
|
37
|
+
} else {
|
|
38
|
+
setStatusAndCache(status, isLongCache
|
|
39
|
+
? 'public, max-age=60, s-maxage=86400'
|
|
40
|
+
: 'public, max-age=60, s-maxage=300')
|
|
41
|
+
.end();
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
/*
|
|
45
|
+
https://github.com/withastro/astro/blob/main/examples/ssr/server/server.mjs
|
|
46
|
+
import { handler as ssrHandler } from '../dist/server/entry.mjs';
|
|
47
|
+
global.ssr_handler = ssrHandler;
|
|
48
|
+
*/
|
|
49
|
+
global.ssr_handler(req, res, async (err) => {
|
|
50
|
+
if (err) {
|
|
51
|
+
res.set('X-SSR-ERROR', err.stack);
|
|
52
|
+
fallback(500);
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
const local = new URL(`.${url}`, clientRoot);
|
|
56
|
+
try {
|
|
57
|
+
const data = await readFile(local);
|
|
58
|
+
setStatusAndCache(200, isLongCache
|
|
59
|
+
? 'public, max-age=60, s-maxage=604800'
|
|
60
|
+
: 'public, max-age=60, s-maxage=600, stale-while-revalidate=2592000')
|
|
61
|
+
.send(data);
|
|
62
|
+
} catch {
|
|
63
|
+
fallback();
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
};
|
|
67
|
+
// # sourceMappingURL=serve-storefront.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serve-storefront.js","sourceRoot":"","sources":["../../src/firebase/serve-storefront.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,10 +3,11 @@ import '@cloudcommerce/firebase/lib/init';
|
|
|
3
3
|
// eslint-disable-next-line import/no-unresolved
|
|
4
4
|
import { onRequest } from 'firebase-functions/v2/https';
|
|
5
5
|
import config from '@cloudcommerce/firebase/lib/config';
|
|
6
|
+
import serveStorefront from './firebase/serve-storefront.js';
|
|
6
7
|
|
|
7
|
-
const
|
|
8
|
+
const { httpsFunctionOptions } = config.get();
|
|
8
9
|
|
|
9
|
-
export const ssr = onRequest(
|
|
10
|
-
|
|
10
|
+
export const ssr = onRequest(httpsFunctionOptions, (req, res) => {
|
|
11
|
+
serveStorefront(req, res);
|
|
11
12
|
});
|
|
12
13
|
// # sourceMappingURL=firebase.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"firebase.js","sourceRoot":"","sources":["../src/firebase.ts"],"names":[],"mappings":"AAAA,iDAAiD;AACjD,OAAO,kCAAkC,CAAC;AAC1C,gDAAgD;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AACxD,OAAO,MAAM,MAAM,oCAAoC,CAAC;
|
|
1
|
+
{"version":3,"file":"firebase.js","sourceRoot":"","sources":["../src/firebase.ts"],"names":[],"mappings":"AAAA,iDAAiD;AACjD,OAAO,kCAAkC,CAAC;AAC1C,gDAAgD;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AACxD,OAAO,MAAM,MAAM,oCAAoC,CAAC;AACxD,OAAO,eAAe,MAAM,6BAA6B,CAAC;AAE1D,MAAM,EAAE,oBAAoB,EAAE,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC;AAE9C,MAAM,CAAC,MAAM,GAAG,GAAG,SAAS,CAAC,oBAAoB,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;IAC9D,eAAe,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAC5B,CAAC,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,MAAM,6BAA6B,CAAC;AAE1D,eAAe,eAAe,CAAC"}
|