From 34e1a863871100eef9c3667fb3d6e8a0c7fae8e2 Mon Sep 17 00:00:00 2001 From: Sami Sayegh Date: Fri, 9 Apr 2021 18:12:05 -0400 Subject: [PATCH 01/15] add case-assist sub-module https://coveord.atlassian.net/browse/KIT-605 --- packages/headless/case-assist/package.json | 11 +++++++++++ packages/headless/package.json | 3 ++- packages/headless/rollup.config.js | 22 +++++++++++++++++++++- packages/headless/src/case-assist.index.ts | 3 +++ 4 files changed, 37 insertions(+), 2 deletions(-) create mode 100644 packages/headless/case-assist/package.json create mode 100644 packages/headless/src/case-assist.index.ts diff --git a/packages/headless/case-assist/package.json b/packages/headless/case-assist/package.json new file mode 100644 index 00000000000..12f34eb60dd --- /dev/null +++ b/packages/headless/case-assist/package.json @@ -0,0 +1,11 @@ +{ + "name": "case-assist", + "version": "1.0.0", + "description": "", + "main": "../dist/case-assist/headless-case-assist.esm.js", + "types": "../dist/case-assist.index.d.ts", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "license": "Apache-2.0" +} diff --git a/packages/headless/package.json b/packages/headless/package.json index abe91be2153..4d4669cbb0f 100644 --- a/packages/headless/package.json +++ b/packages/headless/package.json @@ -11,7 +11,8 @@ "license": "Apache-2.0", "version": "0.10.0-alpha.12", "files": [ - "dist/" + "dist/", + "case-assist/" ], "scripts": { "start": "concurrently \"npm run typedefinitions -- -w\" \"rollup -c -w\"", diff --git a/packages/headless/rollup.config.js b/packages/headless/rollup.config.js index 827601a392b..63501fdd0c9 100644 --- a/packages/headless/rollup.config.js +++ b/packages/headless/rollup.config.js @@ -55,6 +55,26 @@ const nodeConfig = { onwarn: onWarn, }; +const caseAssistEsm = { + input: 'src/case-assist.index.ts', + output: [ + {file: 'dist/case-assist/headless-case-assist.esm.js', format: 'es'}, + ], + plugins: [ + resolve({modulesOnly: true}), + commonjs({ + // https://github.com/pinojs/pino/issues/688 + ignore: ['pino-pretty'], + }), + typescript(), + replace(), + ], + external: ['cross-fetch', 'web-encoding'], + onwarn: onWarn, +}; + + + const browserConfig = { input: 'src/index.ts', output: [ @@ -111,6 +131,6 @@ const typeDefinitions = { plugins: [dts()] } -const config = isProduction ? [nodeConfig, typeDefinitions, browserConfig] : [browserConfig]; +const config = isProduction ? [nodeConfig, typeDefinitions, browserConfig, caseAssistEsm] : [browserConfig]; export default config; diff --git a/packages/headless/src/case-assist.index.ts b/packages/headless/src/case-assist.index.ts new file mode 100644 index 00000000000..61cb7f0ca19 --- /dev/null +++ b/packages/headless/src/case-assist.index.ts @@ -0,0 +1,3 @@ +export function hello() { + return 'hello world'; +} From 75884626335749863556c8f6c710e4ef8ebcde95 Mon Sep 17 00:00:00 2001 From: Sami Sayegh Date: Wed, 14 Apr 2021 17:42:15 -0400 Subject: [PATCH 02/15] add modules folder https://coveord.atlassian.net/browse/KIT-605 --- packages/headless/case-assist/package.json | 11 ----------- packages/headless/modules/case-assist/package.json | 9 +++++++++ packages/headless/package.json | 2 +- 3 files changed, 10 insertions(+), 12 deletions(-) delete mode 100644 packages/headless/case-assist/package.json create mode 100644 packages/headless/modules/case-assist/package.json diff --git a/packages/headless/case-assist/package.json b/packages/headless/case-assist/package.json deleted file mode 100644 index 12f34eb60dd..00000000000 --- a/packages/headless/case-assist/package.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "case-assist", - "version": "1.0.0", - "description": "", - "main": "../dist/case-assist/headless-case-assist.esm.js", - "types": "../dist/case-assist.index.d.ts", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "license": "Apache-2.0" -} diff --git a/packages/headless/modules/case-assist/package.json b/packages/headless/modules/case-assist/package.json new file mode 100644 index 00000000000..ee83e76b4c0 --- /dev/null +++ b/packages/headless/modules/case-assist/package.json @@ -0,0 +1,9 @@ +{ + "name": "case-assist", + "version": "1.0.0", + "description": "Headless Case Assist Module", + "main": "../../dist/case-assist/headless-case-assist.esm.js", + "module": "", + "types": "../dist/case-assist.d.ts", + "license": "Apache-2.0" +} diff --git a/packages/headless/package.json b/packages/headless/package.json index 781cfa3a38b..5ffa1ed8e2a 100644 --- a/packages/headless/package.json +++ b/packages/headless/package.json @@ -12,7 +12,7 @@ "version": "0.10.0", "files": [ "dist/", - "case-assist/" + "modules/" ], "scripts": { "start": "concurrently \"npm run typedefinitions -- -w\" \"rollup -c -w\"", From d29140246a2b3dd324672a47d03848d63f98bcbd Mon Sep 17 00:00:00 2001 From: Sami Sayegh Date: Thu, 15 Apr 2021 14:38:24 -0400 Subject: [PATCH 03/15] refactor rollup to process multiple modules https://coveord.atlassian.net/browse/KIT-605 --- .../headless/modules/case-assist/package.json | 7 +- packages/headless/package.json | 4 +- packages/headless/rollup.config.js | 199 ++++++++++-------- .../{case-assist.index.ts => case-assist.ts} | 0 4 files changed, 121 insertions(+), 89 deletions(-) rename packages/headless/src/{case-assist.index.ts => case-assist.ts} (100%) diff --git a/packages/headless/modules/case-assist/package.json b/packages/headless/modules/case-assist/package.json index ee83e76b4c0..78c2250ec70 100644 --- a/packages/headless/modules/case-assist/package.json +++ b/packages/headless/modules/case-assist/package.json @@ -2,8 +2,9 @@ "name": "case-assist", "version": "1.0.0", "description": "Headless Case Assist Module", - "main": "../../dist/case-assist/headless-case-assist.esm.js", - "module": "", - "types": "../dist/case-assist.d.ts", + "main": "../../dist/case-assist/headless-case-assist.js", + "module": "../../dist/case-assist/headless-case-assist.esm.js", + "browser": "../../dist/browser/case-assist/headless.esm.js", + "types": "../dist/definitions/case-assist.d.ts", "license": "Apache-2.0" } diff --git a/packages/headless/package.json b/packages/headless/package.json index 5ffa1ed8e2a..77d344c2c8d 100644 --- a/packages/headless/package.json +++ b/packages/headless/package.json @@ -7,7 +7,7 @@ "./dist/headless.js": "./dist/browser/headless.js", "./dist/headless.esm.js": "./dist/browser/headless.esm.js" }, - "types": "./dist/index.d.ts", + "types": "./dist/definitions/index.d.ts", "license": "Apache-2.0", "version": "0.10.0", "files": [ @@ -18,7 +18,7 @@ "start": "concurrently \"npm run typedefinitions -- -w\" \"rollup -c -w\"", "build": "npm run clean && npm run build:prod", "build:prod": "npm run typedefinitions && rollup -c --environment BUILD:production", - "typedefinitions": "tsc -p src/tsconfig.build.json -d --emitDeclarationOnly --declarationDir dist", + "typedefinitions": "tsc -p src/tsconfig.build.json -d --emitDeclarationOnly --declarationDir dist/definitions", "clean": "rimraf -f -r dist/*", "test": "jest", "test:watch": "jest --watch --colors --no-cache --silent=false", diff --git a/packages/headless/rollup.config.js b/packages/headless/rollup.config.js index 63501fdd0c9..fd904c4fd15 100644 --- a/packages/headless/rollup.config.js +++ b/packages/headless/rollup.config.js @@ -36,101 +36,132 @@ function onWarn(warning, warn) { warn(warning); } -const nodeConfig = { - input: 'src/index.ts', - output: [ - {file: 'dist/headless.js', format: 'cjs'}, - {file: 'dist/headless.esm.js', format: 'es'}, - ], - plugins: [ - resolve({modulesOnly: true}), - commonjs({ - // https://github.com/pinojs/pino/issues/688 - ignore: ['pino-pretty'], - }), - typescript(), - replace(), - ], - external: ['cross-fetch', 'web-encoding'], - onwarn: onWarn, -}; - -const caseAssistEsm = { - input: 'src/case-assist.index.ts', - output: [ - {file: 'dist/case-assist/headless-case-assist.esm.js', format: 'es'}, - ], - plugins: [ - resolve({modulesOnly: true}), - commonjs({ - // https://github.com/pinojs/pino/issues/688 - ignore: ['pino-pretty'], - }), - typescript(), - replace(), - ], - external: ['cross-fetch', 'web-encoding'], - onwarn: onWarn, -}; - - - -const browserConfig = { + +// Node Bundles + +const nodejs = [ + buildNodeConfiguration({ + input: 'src/index.ts', + outDir: 'dist', + }), + buildNodeConfiguration({ + input: 'src/case-assist.ts', + outDir: 'dist/case-assist' + }) +]; + +function buildNodeConfiguration({input, outDir}) { + return { + input, + output: [ + {file: `${outDir}/headless.js`, format: 'cjs'}, + {file: `${outDir}/headless.esm.js`, format: 'es'}, + ], + plugins: [ + resolve({modulesOnly: true}), + commonjs({ + // https://github.com/pinojs/pino/issues/688 + ignore: ['pino-pretty'], + }), + typescript(), + replace(), + ], + external: ['cross-fetch', 'web-encoding'], + onwarn: onWarn, + }; +} + + +// Browser Bundles + +const browser = [ + buildBrowserConfiguration({ + input: 'src/index.ts', + output: [ + buildUmdOutput('dist/browser', 'CoveoHeadless'), + buildEsmOutput('dist/browser') + ] + }), + buildBrowserConfiguration({ + input: 'src/case-assist.ts', + output: [ + buildUmdOutput('dist/browser/case-assist', 'CoveoHeadlessCaseAssist'), + buildEsmOutput('dist/browser/case-assist') + ] + }) +]; + +function buildBrowserConfiguration({input, output}) { + return { + input, + output, + plugins: [ + alias({ + entries: [ + { + find: 'coveo.analytics', + replacement: pathResolve( + __dirname, + './node_modules/coveo.analytics/dist/library.es.js' + ), + }, + { + find: 'cross-fetch', + replacement: pathResolve(__dirname, './fetch-ponyfill.js'), + }, + { + find: 'web-encoding', + replacement: pathResolve(__dirname, './node_modules/web-encoding/src/lib.js'), + } + ], + }), + resolve({browser: true}), + commonjs(), + typescript(), + replace(), + isProduction && sizeSnapshot(), + isProduction && terser(), + ], + } +} + +function buildUmdOutput(outDir, name) { + return { + file: `${outDir}/headless.js`, + format: 'umd', + name, + sourcemap: isProduction + } +} + +function buildEsmOutput(outDir) { + return { + file: `${outDir}/headless.esm.js`, + format: 'es', + sourcemap: isProduction, + } +} + + + +// For Atomic's development purposes only +const dev = buildBrowserConfiguration({ input: 'src/index.ts', output: [ - { - file: 'dist/browser/headless.js', - format: 'umd', - name: 'CoveoHeadless', - sourcemap: isProduction, - }, - { - file: 'dist/browser/headless.esm.js', - format: 'es', - sourcemap: isProduction, - }, - // For Atomic's development purposes only - {file: '../atomic/src/external-builds/headless.esm.js', format: 'es'}, - ], - plugins: [ - alias({ - entries: [ - { - find: 'coveo.analytics', - replacement: pathResolve( - __dirname, - './node_modules/coveo.analytics/dist/library.es.js' - ), - }, - { - find: 'cross-fetch', - replacement: pathResolve(__dirname, './fetch-ponyfill.js'), - }, - { - find: 'web-encoding', - replacement: pathResolve(__dirname, './node_modules/web-encoding/src/lib.js'), - } - ], - }), - resolve({browser: true}), - commonjs(), - typescript(), - replace(), - isProduction && sizeSnapshot(), - isProduction && terser(), - ], -}; + buildEsmOutput('../atomic/src/external-builds/headless.esm.js') + ] +}); // Api-extractor cannot resolve import() types, so we use dts to create a file that api-extractor // can consume. When the api-extractor limitation is resolved, this step will not be necessary. // [https://github.com/microsoft/rushstack/issues/1050] const typeDefinitions = { - input: "./dist/index.d.ts", + input: "./dist/definitions/index.d.ts", output: [{file: "temp/headless.d.ts", format: "es"}], plugins: [dts()] } -const config = isProduction ? [nodeConfig, typeDefinitions, browserConfig, caseAssistEsm] : [browserConfig]; +const config = isProduction ? [...nodejs, typeDefinitions, ...browser] : [dev]; export default config; diff --git a/packages/headless/src/case-assist.index.ts b/packages/headless/src/case-assist.ts similarity index 100% rename from packages/headless/src/case-assist.index.ts rename to packages/headless/src/case-assist.ts From ade2af15de932e151681500e82495ce51aba4582 Mon Sep 17 00:00:00 2001 From: Sami Sayegh Date: Thu, 15 Apr 2021 15:07:10 -0400 Subject: [PATCH 04/15] place modules in pkg folder https://coveord.atlassian.net/browse/KIT-605 --- packages/headless/package.json | 2 +- packages/headless/{modules => pkg}/case-assist/package.json | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) rename packages/headless/{modules => pkg}/case-assist/package.json (51%) diff --git a/packages/headless/package.json b/packages/headless/package.json index 77d344c2c8d..cff86e856f0 100644 --- a/packages/headless/package.json +++ b/packages/headless/package.json @@ -12,7 +12,7 @@ "version": "0.10.0", "files": [ "dist/", - "modules/" + "pkg/" ], "scripts": { "start": "concurrently \"npm run typedefinitions -- -w\" \"rollup -c -w\"", diff --git a/packages/headless/modules/case-assist/package.json b/packages/headless/pkg/case-assist/package.json similarity index 51% rename from packages/headless/modules/case-assist/package.json rename to packages/headless/pkg/case-assist/package.json index 78c2250ec70..d5c00b2a25e 100644 --- a/packages/headless/modules/case-assist/package.json +++ b/packages/headless/pkg/case-assist/package.json @@ -2,9 +2,9 @@ "name": "case-assist", "version": "1.0.0", "description": "Headless Case Assist Module", - "main": "../../dist/case-assist/headless-case-assist.js", - "module": "../../dist/case-assist/headless-case-assist.esm.js", + "main": "../../dist/case-assist/headless.js", + "module": "../../dist/case-assist/headless.esm.js", "browser": "../../dist/browser/case-assist/headless.esm.js", - "types": "../dist/definitions/case-assist.d.ts", + "types": "../../dist/definitions/case-assist.d.ts", "license": "Apache-2.0" } From 42d06fe403a23fa869d365c983fc75e8db72f452 Mon Sep 17 00:00:00 2001 From: Sami Sayegh Date: Thu, 15 Apr 2021 15:36:44 -0400 Subject: [PATCH 05/15] add contributors guide https://coveord.atlassian.net/browse/KIT-605 --- .../contributors/adding-a-sub-package.md | 36 +++++++++++++++++++ packages/headless/rollup.config.js | 20 +++++------ 2 files changed, 46 insertions(+), 10 deletions(-) create mode 100644 packages/headless/contributors/adding-a-sub-package.md diff --git a/packages/headless/contributors/adding-a-sub-package.md b/packages/headless/contributors/adding-a-sub-package.md new file mode 100644 index 00000000000..617a160861f --- /dev/null +++ b/packages/headless/contributors/adding-a-sub-package.md @@ -0,0 +1,36 @@ +# Adding a sub-package + +Headless provides exports through multiple sub packages. A sub-package groups together exports (i.e. controllers, actions, reducers, engines) that work together as a cohesive unit. By separating exports into sub-packages, it becomes clear to users of headless what exports are available to build a use-case. + + +## To add a new sub-package: + +1. Create an entry file for your sub-package inside the `src` directory (e.g. case-assist.ts). +2. Configure nodejs and browser bundles inside `rollup.config.js` for your entry file. +3. Inside the `pkg` directory, create a new directory having the name of your sub-package. +4. Inside the new directory, add a `package.json` file and fill in the paths to your bundled files and type definitions. + +```json +pkg/case-assist/package.json + +{ + "name": "case-assist", + "version": "1.0.0", + "description": "Headless Case Assist Module", + "main": "../../dist/case-assist/headless.js", + "module": "../../dist/case-assist/headless.esm.js", + "browser": "../../dist/browser/case-assist/headless.esm.js", + "types": "../../dist/definitions/case-assist.d.ts", + "license": "Apache-2.0" +} +``` + +## Testing your sub-package: + +1. Build the headless project: `npm run build`. +2. Create a tarball: `npm pack`. +3. Install the tarball as a dependency of a different project: `npm i `. +4. Import an export from your sub-package: `import {...} from '@coveo/headless/pkg/'` + + +That's all! \ No newline at end of file diff --git a/packages/headless/rollup.config.js b/packages/headless/rollup.config.js index fd904c4fd15..978febdc5c4 100644 --- a/packages/headless/rollup.config.js +++ b/packages/headless/rollup.config.js @@ -40,15 +40,15 @@ function onWarn(warning, warn) { // Node Bundles const nodejs = [ - buildNodeConfiguration({ + { input: 'src/index.ts', outDir: 'dist', - }), - buildNodeConfiguration({ + }, + { input: 'src/case-assist.ts', outDir: 'dist/case-assist' - }) -]; + } +].map(buildNodeConfiguration); function buildNodeConfiguration({input, outDir}) { return { @@ -75,21 +75,21 @@ function buildNodeConfiguration({input, outDir}) { // Browser Bundles const browser = [ - buildBrowserConfiguration({ + { input: 'src/index.ts', output: [ buildUmdOutput('dist/browser', 'CoveoHeadless'), buildEsmOutput('dist/browser') ] - }), - buildBrowserConfiguration({ + }, + { input: 'src/case-assist.ts', output: [ buildUmdOutput('dist/browser/case-assist', 'CoveoHeadlessCaseAssist'), buildEsmOutput('dist/browser/case-assist') ] - }) -]; + } +].map(buildBrowserConfiguration); function buildBrowserConfiguration({input, output}) { return { From 44ac73c55ac11c1b05d92cdd3fee2613ba045f2c Mon Sep 17 00:00:00 2001 From: Sami Sayegh Date: Thu, 15 Apr 2021 15:47:03 -0400 Subject: [PATCH 06/15] fix typedefinition imports https://coveord.atlassian.net/browse/KIT-605 --- .../atomic-breadcrumb-manager/atomic-breadcrumb-manager.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/atomic/src/components/atomic-breadcrumb-manager/atomic-breadcrumb-manager.tsx b/packages/atomic/src/components/atomic-breadcrumb-manager/atomic-breadcrumb-manager.tsx index ba927f8f450..1d5b171bd89 100644 --- a/packages/atomic/src/components/atomic-breadcrumb-manager/atomic-breadcrumb-manager.tsx +++ b/packages/atomic/src/components/atomic-breadcrumb-manager/atomic-breadcrumb-manager.tsx @@ -15,8 +15,8 @@ import { Breadcrumb, BreadcrumbValue, } from '@coveo/headless'; -import {RangeFacetValue} from '@coveo/headless/dist/features/facets/range-facets/generic/interfaces/range-facet'; -import {BaseFacetValue} from '@coveo/headless/dist/features/facets/facet-api/response'; +import {RangeFacetValue} from '@coveo/headless/dist/definitions/features/facets/range-facets/generic/interfaces/range-facet'; +import {BaseFacetValue} from '@coveo/headless/dist/definitions/features/facets/facet-api/response'; import mainclear from '../../images/main-clear.svg'; import dayjs from 'dayjs'; From 09ef612bdd960da86f1097291f706efd1a14b91a Mon Sep 17 00:00:00 2001 From: Sami Sayegh Date: Thu, 15 Apr 2021 15:52:44 -0400 Subject: [PATCH 07/15] fix dev config https://coveord.atlassian.net/browse/KIT-605 --- packages/headless/rollup.config.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/headless/rollup.config.js b/packages/headless/rollup.config.js index 978febdc5c4..520fe9d6ae0 100644 --- a/packages/headless/rollup.config.js +++ b/packages/headless/rollup.config.js @@ -148,7 +148,7 @@ function buildEsmOutput(outDir) { const dev = buildBrowserConfiguration({ input: 'src/index.ts', output: [ - buildEsmOutput('../atomic/src/external-builds/headless.esm.js') + buildEsmOutput('../atomic/src/external-builds') ] }); From cbedcb7d214885ea5bc0e47d96b08c85883cdd42 Mon Sep 17 00:00:00 2001 From: Sami Sayegh Date: Thu, 15 Apr 2021 16:30:03 -0400 Subject: [PATCH 08/15] update definition references https://coveord.atlassian.net/browse/KIT-605 --- packages/atomic/cypress/utils/network.ts | 6 +++--- packages/quantic/coveo.d.ts | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/atomic/cypress/utils/network.ts b/packages/atomic/cypress/utils/network.ts index 075b59bb231..a4b910f296c 100644 --- a/packages/atomic/cypress/utils/network.ts +++ b/packages/atomic/cypress/utils/network.ts @@ -1,7 +1,7 @@ import {Interception} from 'cypress/types/net-stubbing'; -import {Result} from '../../../headless/dist/api/search/search/result'; -import {SearchRequest} from '../../../headless/dist/api/search/search/search-request'; -import {SearchResponseSuccess} from '../../../headless/dist/api/search/search/search-response'; +import {Result} from '../../../headless/dist/definitions/api/search/search/result'; +import {SearchRequest} from '../../../headless/dist/definitions/api/search/search/search-request'; +import {SearchResponseSuccess} from '../../../headless/dist/definitions/api/search/search/search-response'; import {searchEndpoint} from './setupComponent'; function getApiCall(selector: string): Promise { diff --git a/packages/quantic/coveo.d.ts b/packages/quantic/coveo.d.ts index b1315ee5aee..81436172809 100644 --- a/packages/quantic/coveo.d.ts +++ b/packages/quantic/coveo.d.ts @@ -2,7 +2,7 @@ import * as HeadlessTypes from './force-app/main/default/staticresources/coveoheadless/index'; export * from './force-app/main/default/staticresources/coveoheadless/index'; import {LightningElement} from 'lwc'; -import {HeadlessEngine} from '../headless/dist/index'; +import {HeadlessEngine} from '../headless/dist/definitions/index'; declare global { // eslint-disable-next-line no-undef const CoveoHeadless: typeof HeadlessTypes; From 710b5b75750100992bafcb7c596525ae0a1a6001 Mon Sep 17 00:00:00 2001 From: Sami Sayegh Date: Thu, 15 Apr 2021 17:52:45 -0400 Subject: [PATCH 09/15] fix definitions https://coveord.atlassian.net/browse/KIT-605 --- packages/quantic/coveo.d.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/quantic/coveo.d.ts b/packages/quantic/coveo.d.ts index 81436172809..385b82dbdf3 100644 --- a/packages/quantic/coveo.d.ts +++ b/packages/quantic/coveo.d.ts @@ -1,8 +1,8 @@ /* eslint-disable node/no-unpublished-import */ -import * as HeadlessTypes from './force-app/main/default/staticresources/coveoheadless/index'; -export * from './force-app/main/default/staticresources/coveoheadless/index'; +import * as HeadlessTypes from './force-app/main/default/staticresources/coveoheadless/definitions/index'; +export * from './force-app/main/default/staticresources/coveoheadless/definitions/index'; import {LightningElement} from 'lwc'; -import {HeadlessEngine} from '../headless/dist/definitions/index'; + declare global { // eslint-disable-next-line no-undef const CoveoHeadless: typeof HeadlessTypes; @@ -14,8 +14,8 @@ declare global { element: LightningElement; initialized: boolean; }[]; - config: HeadlessConfigurationOptions; - engine: HeadlessEngine; + config: HeadlessTypes.HeadlessConfigurationOptions; + engine: HeadlessTypes.HeadlessEngine; }; }; } From 8ddee64c8831b62cf526a05d65c2c13274760a02 Mon Sep 17 00:00:00 2001 From: Sami Sayegh Date: Thu, 15 Apr 2021 18:29:51 -0400 Subject: [PATCH 10/15] undo fix https://coveord.atlassian.net/browse/KIT-605 --- packages/quantic/coveo.d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/quantic/coveo.d.ts b/packages/quantic/coveo.d.ts index 385b82dbdf3..2b73b59ed26 100644 --- a/packages/quantic/coveo.d.ts +++ b/packages/quantic/coveo.d.ts @@ -14,7 +14,7 @@ declare global { element: LightningElement; initialized: boolean; }[]; - config: HeadlessTypes.HeadlessConfigurationOptions; + config: HeadlessConfigurationOptions; engine: HeadlessTypes.HeadlessEngine; }; }; From 58e576c01ee639008af675bb5b245fedf1e98ea8 Mon Sep 17 00:00:00 2001 From: Sami Sayegh Date: Mon, 19 Apr 2021 13:48:47 -0400 Subject: [PATCH 11/15] remove version field https://coveord.atlassian.net/browse/KIT-605 --- packages/headless/contributors/adding-a-sub-package.md | 1 - packages/headless/pkg/case-assist/package.json | 1 - 2 files changed, 2 deletions(-) diff --git a/packages/headless/contributors/adding-a-sub-package.md b/packages/headless/contributors/adding-a-sub-package.md index 617a160861f..db6297e3f0f 100644 --- a/packages/headless/contributors/adding-a-sub-package.md +++ b/packages/headless/contributors/adding-a-sub-package.md @@ -15,7 +15,6 @@ pkg/case-assist/package.json { "name": "case-assist", - "version": "1.0.0", "description": "Headless Case Assist Module", "main": "../../dist/case-assist/headless.js", "module": "../../dist/case-assist/headless.esm.js", diff --git a/packages/headless/pkg/case-assist/package.json b/packages/headless/pkg/case-assist/package.json index d5c00b2a25e..706e104137e 100644 --- a/packages/headless/pkg/case-assist/package.json +++ b/packages/headless/pkg/case-assist/package.json @@ -1,6 +1,5 @@ { "name": "case-assist", - "version": "1.0.0", "description": "Headless Case Assist Module", "main": "../../dist/case-assist/headless.js", "module": "../../dist/case-assist/headless.esm.js", From 4dcf70c746f17a05c7116357a23c8259de90c076 Mon Sep 17 00:00:00 2001 From: Sami Sayegh Date: Mon, 19 Apr 2021 14:15:14 -0400 Subject: [PATCH 12/15] rename case-assist entry file https://coveord.atlassian.net/browse/KIT-605 --- packages/headless/contributors/adding-a-sub-package.md | 2 +- packages/headless/pkg/case-assist/package.json | 2 +- packages/headless/rollup.config.js | 4 ++-- packages/headless/src/case-assist.index.ts | 1 + packages/headless/src/case-assist.ts | 3 --- 5 files changed, 5 insertions(+), 7 deletions(-) create mode 100644 packages/headless/src/case-assist.index.ts delete mode 100644 packages/headless/src/case-assist.ts diff --git a/packages/headless/contributors/adding-a-sub-package.md b/packages/headless/contributors/adding-a-sub-package.md index db6297e3f0f..7ac1aa1a260 100644 --- a/packages/headless/contributors/adding-a-sub-package.md +++ b/packages/headless/contributors/adding-a-sub-package.md @@ -19,7 +19,7 @@ pkg/case-assist/package.json "main": "../../dist/case-assist/headless.js", "module": "../../dist/case-assist/headless.esm.js", "browser": "../../dist/browser/case-assist/headless.esm.js", - "types": "../../dist/definitions/case-assist.d.ts", + "types": "../../dist/definitions/case-assist.index.d.ts", "license": "Apache-2.0" } ``` diff --git a/packages/headless/pkg/case-assist/package.json b/packages/headless/pkg/case-assist/package.json index 706e104137e..c5808008c73 100644 --- a/packages/headless/pkg/case-assist/package.json +++ b/packages/headless/pkg/case-assist/package.json @@ -4,6 +4,6 @@ "main": "../../dist/case-assist/headless.js", "module": "../../dist/case-assist/headless.esm.js", "browser": "../../dist/browser/case-assist/headless.esm.js", - "types": "../../dist/definitions/case-assist.d.ts", + "types": "../../dist/definitions/case-assist.index.d.ts", "license": "Apache-2.0" } diff --git a/packages/headless/rollup.config.js b/packages/headless/rollup.config.js index 520fe9d6ae0..c2490dfdc29 100644 --- a/packages/headless/rollup.config.js +++ b/packages/headless/rollup.config.js @@ -45,7 +45,7 @@ const nodejs = [ outDir: 'dist', }, { - input: 'src/case-assist.ts', + input: 'src/case-assist.index.ts', outDir: 'dist/case-assist' } ].map(buildNodeConfiguration); @@ -83,7 +83,7 @@ const browser = [ ] }, { - input: 'src/case-assist.ts', + input: 'src/case-assist.index.ts', output: [ buildUmdOutput('dist/browser/case-assist', 'CoveoHeadlessCaseAssist'), buildEsmOutput('dist/browser/case-assist') diff --git a/packages/headless/src/case-assist.index.ts b/packages/headless/src/case-assist.index.ts new file mode 100644 index 00000000000..456730de721 --- /dev/null +++ b/packages/headless/src/case-assist.index.ts @@ -0,0 +1 @@ +// case-assist package diff --git a/packages/headless/src/case-assist.ts b/packages/headless/src/case-assist.ts deleted file mode 100644 index 61cb7f0ca19..00000000000 --- a/packages/headless/src/case-assist.ts +++ /dev/null @@ -1,3 +0,0 @@ -export function hello() { - return 'hello world'; -} From 3a321f2aac24e3e360bee44014b41fc50208a25a Mon Sep 17 00:00:00 2001 From: Sami Sayegh Date: Mon, 19 Apr 2021 15:23:38 -0400 Subject: [PATCH 13/15] readd dummy export https://coveord.atlassian.net/browse/KIT-605 --- packages/headless/src/case-assist.index.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/headless/src/case-assist.index.ts b/packages/headless/src/case-assist.index.ts index 456730de721..20f47ca5de9 100644 --- a/packages/headless/src/case-assist.index.ts +++ b/packages/headless/src/case-assist.index.ts @@ -1 +1,3 @@ -// case-assist package +export function test() { + return 'test'; +} From 05c108974faadd1d730d45e5a905bed81800676a Mon Sep 17 00:00:00 2001 From: Sami Sayegh Date: Thu, 22 Apr 2021 16:48:33 -0400 Subject: [PATCH 14/15] place sub-package at root level; update guide https://coveord.atlassian.net/browse/KIT-605 --- packages/headless/case-assist/package.json | 9 +++++++++ .../headless/contributors/adding-a-sub-package.md | 11 ++++++----- packages/headless/package.json | 2 +- packages/headless/pkg/case-assist/package.json | 9 --------- 4 files changed, 16 insertions(+), 15 deletions(-) create mode 100644 packages/headless/case-assist/package.json delete mode 100644 packages/headless/pkg/case-assist/package.json diff --git a/packages/headless/case-assist/package.json b/packages/headless/case-assist/package.json new file mode 100644 index 00000000000..1eec1ce7c9b --- /dev/null +++ b/packages/headless/case-assist/package.json @@ -0,0 +1,9 @@ +{ + "name": "case-assist", + "description": "Headless Case Assist Module", + "main": "../dist/case-assist/headless.js", + "module": "../dist/case-assist/headless.esm.js", + "browser": "../dist/browser/case-assist/headless.esm.js", + "types": "../dist/definitions/case-assist.index.d.ts", + "license": "Apache-2.0" +} diff --git a/packages/headless/contributors/adding-a-sub-package.md b/packages/headless/contributors/adding-a-sub-package.md index 7ac1aa1a260..c9273894e1f 100644 --- a/packages/headless/contributors/adding-a-sub-package.md +++ b/packages/headless/contributors/adding-a-sub-package.md @@ -7,8 +7,9 @@ Headless provides exports through multiple sub packages. A sub-package groups to 1. Create an entry file for your sub-package inside the `src` directory (e.g. case-assist.ts). 2. Configure nodejs and browser bundles inside `rollup.config.js` for your entry file. -3. Inside the `pkg` directory, create a new directory having the name of your sub-package. +3. Create a new directory with the name of your sub-package at the project root. 4. Inside the new directory, add a `package.json` file and fill in the paths to your bundled files and type definitions. +5. Add the directory name to the `files` array in the project root `package.json` file. ```json pkg/case-assist/package.json @@ -16,10 +17,10 @@ pkg/case-assist/package.json { "name": "case-assist", "description": "Headless Case Assist Module", - "main": "../../dist/case-assist/headless.js", - "module": "../../dist/case-assist/headless.esm.js", - "browser": "../../dist/browser/case-assist/headless.esm.js", - "types": "../../dist/definitions/case-assist.index.d.ts", + "main": "../dist/case-assist/headless.js", + "module": "../dist/case-assist/headless.esm.js", + "browser": "../dist/browser/case-assist/headless.esm.js", + "types": "../dist/definitions/case-assist.index.d.ts", "license": "Apache-2.0" } ``` diff --git a/packages/headless/package.json b/packages/headless/package.json index f29ae0f76cc..0043ca1dd3c 100644 --- a/packages/headless/package.json +++ b/packages/headless/package.json @@ -12,7 +12,7 @@ "version": "1.1.0-alpha.5", "files": [ "dist/", - "pkg/" + "case-assist/" ], "scripts": { "start": "concurrently \"npm run typedefinitions -- -w\" \"rollup -c -w\"", diff --git a/packages/headless/pkg/case-assist/package.json b/packages/headless/pkg/case-assist/package.json deleted file mode 100644 index c5808008c73..00000000000 --- a/packages/headless/pkg/case-assist/package.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "name": "case-assist", - "description": "Headless Case Assist Module", - "main": "../../dist/case-assist/headless.js", - "module": "../../dist/case-assist/headless.esm.js", - "browser": "../../dist/browser/case-assist/headless.esm.js", - "types": "../../dist/definitions/case-assist.index.d.ts", - "license": "Apache-2.0" -} From 9ad3d8647ebd4ffba8d2f9fd87aeab37870cab53 Mon Sep 17 00:00:00 2001 From: Sami Sayegh Date: Thu, 22 Apr 2021 16:49:34 -0400 Subject: [PATCH 15/15] update import path https://coveord.atlassian.net/browse/KIT-605 --- packages/headless/contributors/adding-a-sub-package.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/headless/contributors/adding-a-sub-package.md b/packages/headless/contributors/adding-a-sub-package.md index c9273894e1f..fe73df922da 100644 --- a/packages/headless/contributors/adding-a-sub-package.md +++ b/packages/headless/contributors/adding-a-sub-package.md @@ -30,7 +30,7 @@ pkg/case-assist/package.json 1. Build the headless project: `npm run build`. 2. Create a tarball: `npm pack`. 3. Install the tarball as a dependency of a different project: `npm i `. -4. Import an export from your sub-package: `import {...} from '@coveo/headless/pkg/'` +4. Import an export from your sub-package: `import {...} from '@coveo/headless/'` That's all! \ No newline at end of file