cloudcommerce 0.0.37 → 0.0.40

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/.gitattributes ADDED
@@ -0,0 +1,3 @@
1
+ packages/api/src/types/* linguist-vendored
2
+ packages/modules/schemas/* linguist-documentation
3
+ packages/types/modules/* linguist-generated
package/CHANGELOG.md CHANGED
@@ -2,6 +2,18 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
4
4
 
5
+ ### [0.0.40](https://github.com/ecomplus/cloud-commerce/compare/v0.0.39...v0.0.40) (2022-07-29)
6
+
7
+ ### [0.0.39](https://github.com/ecomplus/cloud-commerce/compare/v0.0.38...v0.0.39) (2022-07-29)
8
+
9
+ ### [0.0.38](https://github.com/ecomplus/cloud-commerce/compare/v0.0.37...v0.0.38) (2022-07-28)
10
+
11
+
12
+ ### Bug Fixes
13
+
14
+ * Add root `firebase.js` as complement to pkg named export to prevent no-unresolved eslint error ([a65587b](https://github.com/ecomplus/cloud-commerce/commit/a65587b840015aa9224df2458eb5b10385002c81))
15
+ * **firebase:** Edit `/config` pkg export to `./lib/config.js` to get TS declaration ([b873572](https://github.com/ecomplus/cloud-commerce/commit/b873572e16162094249f6bdc6a25ec8c1b344111))
16
+
5
17
  ### [0.0.37](https://github.com/ecomplus/cloud-commerce/compare/v0.0.36...v0.0.37) (2022-07-27)
6
18
 
7
19
 
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "cloudcommerce",
3
3
  "type": "module",
4
- "version": "0.0.37",
4
+ "version": "0.0.40",
5
5
  "description": "Open fair-code headless commerce platform: API-first, microservices based, event driven and cloud native",
6
6
  "main": "packages/api/lib/index.js",
7
7
  "author": "E-Com Club Softwares para E-commerce <ti@e-com.club>",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloudcommerce/api",
3
3
  "type": "module",
4
- "version": "0.0.37",
4
+ "version": "0.0.40",
5
5
  "description": "E-Com Plus Cloud Commerce APIs client/adapter",
6
6
  "main": "lib/index.js",
7
7
  "types": "lib/index.d.ts",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloudcommerce/app-discounts",
3
3
  "type": "module",
4
- "version": "0.0.37",
4
+ "version": "0.0.40",
5
5
  "description": "E-Com Plus Cloud Commerce app for complex discount rules",
6
6
  "main": "functions/dist/index.js",
7
7
  "repository": {
@@ -3,10 +3,28 @@
3
3
  "rules": "firestore.rules",
4
4
  "indexes": "firestore.indexes.json"
5
5
  },
6
- "functions": {
7
- "predeploy": "npm --prefix \"$RESOURCE_DIR\" run build",
8
- "source": "functions"
9
- },
6
+ "functions": [
7
+ {
8
+ "predeploy": "npm run build -- --codebase core --dir \"$RESOURCE_DIR\"",
9
+ "source": "functions/core",
10
+ "codebase": "core"
11
+ },
12
+ {
13
+ "predeploy": "npm run build -- --codebase modules --dir \"$RESOURCE_DIR\"",
14
+ "source": "functions/modules",
15
+ "codebase": "modules"
16
+ },
17
+ {
18
+ "predeploy": "npm run build -- --codebase passport --dir \"$RESOURCE_DIR\"",
19
+ "source": "functions/passport",
20
+ "codebase": "passport"
21
+ },
22
+ {
23
+ "predeploy": "npm run build -- --codebase ssr --dir \"$RESOURCE_DIR\"",
24
+ "source": "functions/ssr",
25
+ "codebase": "ssr"
26
+ }
27
+ ],
10
28
  "hosting": {
11
29
  "public": "public",
12
30
  "ignore": [
@@ -0,0 +1,18 @@
1
+ import path from 'path';
2
+ import { fs } from 'zx';
3
+
4
+ const copyFunctionsConfig = async () => {
5
+ const functionsDir = path.join(process.cwd(), 'functions');
6
+ const filesToCopy = ['.env', 'config.json'];
7
+ const dirents = await fs.readdir(functionsDir, { withFileTypes: true });
8
+ for (let i = 0; i < dirents.length; i++) {
9
+ if (dirents[i].isDirectory() && dirents[i].name.charAt(0) !== '.') {
10
+ for (let ii = 0; ii < filesToCopy.length; ii++) {
11
+ // eslint-disable-next-line no-await-in-loop
12
+ await fs.copy(path.join(functionsDir, filesToCopy[ii]), path.join(functionsDir, dirents[i].name, filesToCopy[ii]));
13
+ }
14
+ }
15
+ }
16
+ };
17
+
18
+ export default copyFunctionsConfig;
@@ -4,6 +4,7 @@ import {
4
4
  $, argv, fs, echo, chalk,
5
5
  } from 'zx';
6
6
  import login from './login.js';
7
+ import build from './build.js';
7
8
 
8
9
  const { FIREBASE_PROJECT_ID, GOOGLE_APPLICATION_CREDENTIALS } = process.env;
9
10
  const __dirname = url.fileURLToPath(new URL('.', import.meta.url));
@@ -33,7 +34,7 @@ if (projectId) {
33
34
  }
34
35
 
35
36
  export default async () => {
36
- fs.copySync(path.join(__dirname, '..', 'config'), pwd);
37
+ await fs.copy(path.join(__dirname, '..', 'config'), pwd);
37
38
  const options = Object.keys(argv).reduce((opts, key) => {
38
39
  if (key !== '_' && key !== 'deploy' && key !== 'commit') {
39
40
  // eslint-disable-next-line no-param-reassign
@@ -45,6 +46,7 @@ export default async () => {
45
46
  return $`firebase --project=${projectId} ${cmd}${options}`;
46
47
  };
47
48
  if (argv._.includes('serve')) {
49
+ await build();
48
50
  return $firebase('emulators:start').catch(async (err) => {
49
51
  await echo`
50
52
  Try killing open emulators with:
@@ -62,6 +64,9 @@ ${chalk.bold('npx kill-port 4000 9099 5001 8080 5000 8085 9199 4400 4500')}
62
64
  if (argv._.find((cmd) => /^(\w+:)?logs?$/.test(cmd))) {
63
65
  return $firebase('functions:log');
64
66
  }
67
+ if (argv._.includes('build')) {
68
+ return build();
69
+ }
65
70
  if (argv._.includes('deploy')) {
66
71
  return $firebase('deploy');
67
72
  }
@@ -71,7 +76,7 @@ ${chalk.bold('npx kill-port 4000 9099 5001 8080 5000 8085 9199 4400 4500')}
71
76
  }
72
77
  if (argv._.includes('setup')) {
73
78
  const { storeId, authenticationId, apiKey } = await login();
74
- fs.writeFileSync(path.join(pwd, 'functions', '.env'), `ECOM_AUTHENTICATION_ID=${authenticationId}
79
+ await fs.writeFile(path.join(pwd, 'functions', '.env'), `ECOM_AUTHENTICATION_ID=${authenticationId}
75
80
  ECOM_API_KEY=${apiKey}
76
81
  ECOM_STORE_ID=${storeId}
77
82
  `);
@@ -79,7 +84,8 @@ ECOM_STORE_ID=${storeId}
79
84
  await $firebase('deploy');
80
85
  }
81
86
  if (argv.commit !== false) {
82
- fs.writeFileSync(path.join(pwd, 'functions', 'config.json'), JSON.stringify({ storeId }, null, 2));
87
+ await fs.writeFile(path.join(pwd, 'functions', 'config.json'), JSON.stringify({ storeId }, null, 2));
88
+ await build();
83
89
  try {
84
90
  await $`git add .firebaserc functions/config.json`;
85
91
  await $`git commit -m "Setup store [skip ci]"`;
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloudcommerce/cli",
3
3
  "type": "module",
4
- "version": "0.0.37",
4
+ "version": "0.0.40",
5
5
  "description": "E-Com Plus Cloud Commerce CLI tools",
6
6
  "bin": {
7
7
  "cloudcommerce": "./bin/run.mjs"
@@ -0,0 +1,21 @@
1
+ import path from 'path';
2
+ import { fs } from 'zx';
3
+
4
+ const copyFunctionsConfig = async () => {
5
+ const functionsDir = path.join(process.cwd(), 'functions');
6
+ const filesToCopy = ['.env', 'config.json'];
7
+ const dirents = await fs.readdir(functionsDir, { withFileTypes: true });
8
+ for (let i = 0; i < dirents.length; i++) {
9
+ if (dirents[i].isDirectory() && dirents[i].name.charAt(0) !== '.') {
10
+ for (let ii = 0; ii < filesToCopy.length; ii++) {
11
+ // eslint-disable-next-line no-await-in-loop
12
+ await fs.copy(
13
+ path.join(functionsDir, filesToCopy[ii]),
14
+ path.join(functionsDir, dirents[i].name, filesToCopy[ii]),
15
+ );
16
+ }
17
+ }
18
+ }
19
+ };
20
+
21
+ export default copyFunctionsConfig;
@@ -8,6 +8,7 @@ import {
8
8
  chalk,
9
9
  } from 'zx';
10
10
  import login from './login';
11
+ import build from './build';
11
12
 
12
13
  const {
13
14
  FIREBASE_PROJECT_ID,
@@ -45,7 +46,7 @@ if (projectId) {
45
46
  }
46
47
 
47
48
  export default async () => {
48
- fs.copySync(path.join(__dirname, '..', 'config'), pwd);
49
+ await fs.copy(path.join(__dirname, '..', 'config'), pwd);
49
50
 
50
51
  const options = Object.keys(argv).reduce((opts, key) => {
51
52
  if (key !== '_' && key !== 'deploy' && key !== 'commit') {
@@ -59,6 +60,7 @@ export default async () => {
59
60
  };
60
61
 
61
62
  if (argv._.includes('serve')) {
63
+ await build();
62
64
  return $firebase('emulators:start').catch(async (err: any) => {
63
65
  await echo`
64
66
  Try killing open emulators with:
@@ -77,6 +79,9 @@ ${chalk.bold('npx kill-port 4000 9099 5001 8080 5000 8085 9199 4400 4500')}
77
79
  if (argv._.find((cmd) => /^(\w+:)?logs?$/.test(cmd))) {
78
80
  return $firebase('functions:log');
79
81
  }
82
+ if (argv._.includes('build')) {
83
+ return build();
84
+ }
80
85
  if (argv._.includes('deploy')) {
81
86
  return $firebase('deploy');
82
87
  }
@@ -87,7 +92,7 @@ ${chalk.bold('npx kill-port 4000 9099 5001 8080 5000 8085 9199 4400 4500')}
87
92
 
88
93
  if (argv._.includes('setup')) {
89
94
  const { storeId, authenticationId, apiKey } = await login();
90
- fs.writeFileSync(
95
+ await fs.writeFile(
91
96
  path.join(pwd, 'functions', '.env'),
92
97
  `ECOM_AUTHENTICATION_ID=${authenticationId}
93
98
  ECOM_API_KEY=${apiKey}
@@ -98,10 +103,11 @@ ECOM_STORE_ID=${storeId}
98
103
  await $firebase('deploy');
99
104
  }
100
105
  if (argv.commit !== false) {
101
- fs.writeFileSync(
106
+ await fs.writeFile(
102
107
  path.join(pwd, 'functions', 'config.json'),
103
108
  JSON.stringify({ storeId }, null, 2),
104
109
  );
110
+ await build();
105
111
  try {
106
112
  await $`git add .firebaserc functions/config.json`;
107
113
  await $`git commit -m "Setup store [skip ci]"`;
@@ -1,13 +1,14 @@
1
1
  {
2
2
  "name": "@cloudcommerce/firebase",
3
3
  "type": "module",
4
- "version": "0.0.37",
4
+ "version": "0.0.40",
5
5
  "description": "E-Com Plus Cloud Commerce on Firebase",
6
6
  "main": "lib/index.js",
7
7
  "types": "lib/index.d.ts",
8
8
  "exports": {
9
9
  ".": "./lib/index.js",
10
- "./config": "./config.js"
10
+ "./config": "./config.js",
11
+ "./lib/config": "./lib/config.js"
11
12
  },
12
13
  "repository": {
13
14
  "type": "git",
@@ -0,0 +1 @@
1
+ export * from './lib/firebase.js';
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloudcommerce/modules",
3
3
  "type": "module",
4
- "version": "0.0.37",
4
+ "version": "0.0.40",
5
5
  "description": "E-Com Plus Cloud Commerce modules API",
6
6
  "main": "lib/index.cjs",
7
7
  "exports": {
@@ -0,0 +1 @@
1
+ export * from './lib/firebase.js';
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloudcommerce/passport",
3
3
  "type": "module",
4
- "version": "0.0.37",
4
+ "version": "0.0.40",
5
5
  "description": "E-Com Plus Cloud Commerce customers authentication (passport) API",
6
6
  "main": "lib/index.js",
7
7
  "exports": {
@@ -0,0 +1 @@
1
+ export * from './lib/firebase.js';
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloudcommerce/ssr",
3
3
  "type": "module",
4
- "version": "0.0.37",
4
+ "version": "0.0.40",
5
5
  "description": "E-Com Plus Cloud Commerce storefront SSR",
6
6
  "main": "lib/index.js",
7
7
  "exports": {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloudcommerce/storefront",
3
3
  "type": "module",
4
- "version": "0.0.37",
4
+ "version": "0.0.40",
5
5
  "description": "E-Com Plus Cloud Commerce storefront with Astro",
6
6
  "main": "src/index.js",
7
7
  "repository": {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloudcommerce/types",
3
3
  "type": "module",
4
- "version": "0.0.37",
4
+ "version": "0.0.40",
5
5
  "description": "E-Com Plus Cloud Commerce reusable type definitions",
6
6
  "main": "index.ts",
7
7
  "repository": {
package/pnpm-lock.yaml CHANGED
@@ -118,7 +118,7 @@ importers:
118
118
  packages/passport:
119
119
  specifiers:
120
120
  '@cloudcommerce/api': workspace:*
121
- '@cloudcommerce/firebase': workspace:^0.0.36
121
+ '@cloudcommerce/firebase': workspace:*
122
122
  '@cloudcommerce/types': workspace:*
123
123
  '@firebase/app-types': ^0.7.0
124
124
  firebase-admin: ^11.0.0
@@ -171,15 +171,39 @@ importers:
171
171
 
172
172
  store:
173
173
  specifiers:
174
- '@cloudcommerce/cli': ^0.0.36
174
+ '@cloudcommerce/cli': ^0.0.38
175
175
  dependencies:
176
176
  '@cloudcommerce/cli': link:../packages/cli
177
177
 
178
- store/functions:
178
+ store/functions/core:
179
+ specifiers:
180
+ '@cloudcommerce/firebase': ^0.0.38
181
+ dependencies:
182
+ '@cloudcommerce/firebase': link:../../../packages/firebase
183
+
184
+ store/functions/modules:
185
+ specifiers:
186
+ '@cloudcommerce/firebase': ^0.0.38
187
+ '@cloudcommerce/modules': ^0.0.38
188
+ dependencies:
189
+ '@cloudcommerce/firebase': link:../../../packages/firebase
190
+ '@cloudcommerce/modules': link:../../../packages/modules
191
+
192
+ store/functions/passport:
193
+ specifiers:
194
+ '@cloudcommerce/firebase': ^0.0.38
195
+ '@cloudcommerce/passport': ^0.0.38
196
+ dependencies:
197
+ '@cloudcommerce/firebase': link:../../../packages/firebase
198
+ '@cloudcommerce/passport': link:../../../packages/passport
199
+
200
+ store/functions/ssr:
179
201
  specifiers:
180
- '@cloudcommerce/firebase': ^0.0.36
202
+ '@cloudcommerce/firebase': ^0.0.38
203
+ '@cloudcommerce/ssr': ^0.0.38
181
204
  dependencies:
182
- '@cloudcommerce/firebase': link:../../packages/firebase
205
+ '@cloudcommerce/firebase': link:../../../packages/firebase
206
+ '@cloudcommerce/ssr': link:../../../packages/ssr
183
207
 
184
208
  packages:
185
209
 
@@ -1,6 +1,7 @@
1
1
  packages:
2
2
  - 'packages/*'
3
- - 'packages/*/*'
3
+ - 'packages/apps/*'
4
4
  - 'docs'
5
5
  - 'store'
6
6
  - 'store/*'
7
+ - 'store/functions/*'