@gatekeeper_technology/report-utils
Version:
Gatekeeper's pdf/email Utils - shared in NPM
172 lines (143 loc) • 5.89 kB
Markdown
# Gatekeeper's report utils
Gatekeeper's pdf/email Utils - shared in NPM
## Set-up
1. Create a `.npmrc` file containing: `//registry.npmjs.org/:_authToken=<publish-npm-token>`. You can find the *publish* `npm-token` on onePassword.
## Updating
1. Put your code changes in `index.js`.
- If you added a new function, write jest test cases for it.
2. Update the version number in the `package.json`.
3. Describe your changes in the `README.md` changelog.
4. Test your code before publishing:
- Navigate one directory back
- Open the terminal.
- Execute `npm install @gatekeeper_technology/report-utils`.
- If any error fix them.
- Navigate back into the `report-utils` directory
- Make sure you have jest installed on your machine.
- run `npm test` to test that all the functions are working correctly.
5. Execute `cd report-utils` and `npm publish` in the terminal.
6. Commit & Push your changes to GitHub.
## Using this package in a JourneyApps CloudCode Task.
- In your CloudCode, open the `package.json` file and make sure you have the following code:
```
"dependencies": {
"@gatekeeper_technology/report-utils": "<current-version-number>"
}
```
, where `<current-version-number>` is the version number saved in this repo's `package.json` file.
- In the JavaScript code add the following line at the top of the page: `const utils = require("@gatekeeper_technology/report-utils");`.
- Create a `.npmrc` file (in the CC task) containing: `//registry.npmjs.org/:_authToken=<read-only-npm-token>`. You can find the *read-only* `npm-token` on 1Password.
- You can check at the top of this repo's `index.js` file to see which functions we export. We should update the list of functionality soon.
- Happy coding!
## Functionality
This package has three parts
- date_time_utils - Functions that format JavaScript datetime objects to a readable/printable format
- email_utils - These functions ensure that the specified email addresses do not violate any of the SendGrid v3 requirements and implements whitelisting
- photo_attachment_utils -
## Changelog
### [1.3.1]
#### Removed
- Updated the rollbar-utils version
### [1.2.1]
#### Removed
- `dist` ignore file in `.npmignore`.
### [1.2.0]
#### Added
- Added `postToJourneyBackend` function
- Added `journeyApps` npm packages as dependencies to assist with the reportUtil package.
- Added `sortArrayByField` function
- Added `generateHTML` function
- Added `formatText` function
- Added `getImageContentForPDF` function
#### Changed
- Migrated to TypeScript
- All date functions should now be able to accept `Day` variables.
- `.gitignore` file now ignores compiled files.
- `isAttachment(s)Uploaded` functions no longer reschedules. It now throws an error with the cause = `attachments-uploading`
### [1.1.10]
#### Removed
- Removed `loadBase64` function in a race against time.
### [1.1.9]
#### Added
- Jest Test cases
- formatText, sortArrayByField and generateHTML functions
- .d.ts files.
### [1.1.8]
#### Changed
- Added more validation on general utils
#### Added
- Unit Tests on General Utils.
#### Removed
- console.error() on date Utils.
### [1.1.7]
#### Changed
- Fixed funky way of throwing errors
- Added a new utils folder with small internal utils
### [1.1.6]
#### Changed
- When retrying a task, we don't need to specify the CloudCode task name as we can access it programmatically
### [1.1.5]
#### Added
- isSameDay: Checks if the given two dates falls on the same day (second date value defaults to now).
- compareDates: Checks if the given two dates falls on the same date and time (return 0), date 1 is before date 2 (returns -1), otherwise returns 1 (second date value defaults to now).
#### Removed
- isToday: Can be used via the isSameDay() function
- isPastDate and isFutureDate: Can be user via the compareDates() function
#### Changed
- Improved Test file (WIP)
### [1.1.4]
#### Added
- areEqualDates
- areEqualDateTimes
- isToday
- getStartOfWeek
- getEndOfWeek
- getWeekNumber
- isFutureDate
- isPastDate
### [1.1.3]
#### Fixed
- A bug where you cannot import the `report-utils` package in the `/mobile` side of an App.
### [1.1.2]
#### Changed
- [TESTING] Moved the `loadImageBase64` function to `index.js` to see if the required("fs") problem is fixed.
### [1.1.1]
#### Changed
- [TESTING] Moved the require("fs") out of the function.
### [1.1.0]
#### Changed
- Refactored the file structure to separate the concerns.
- Replaced `displayPhoto` with `journeyPhotoToBase64`, it now has a more descriptive name
- Replaced `loadPhotoOrSignature` with `getPhotoOrSignatureData`, it's now up to the developer to load the data into a data hash.
- Replaced `loadSignatureBase64` with `encodeBase64ImagePNG`, renamed function and changed the input parameter to the actual image data.
### [1.00.07]
#### Added
- `index.js`: Added the ability to specify in which environments to enable email whitelisting.
### [1.00.06]
#### Changed
- `index.js`: Emails are first trimmed and toLowerCase'd before checking if it is valid.
### [1.00.05]
#### Changed
- `index.js`: Changed the way `loadAttachments` function receives retry_count value.
### [1.00.04]
#### Fixed
- `index.js`: a Bug where the `loadPhotoOrSignature` function was out of date.
### [1.00.03]
#### Changed
- `index.js`: Emails check now convert all emails to lowercase before checking for duplicates.
### [1.00.02]
#### Added
- `index.js`: Added function `displayTimeWithSeconds`.
#### Changed
- `index.js`: improved javadocs commenting .
### [1.00.01]
#### Changed
- `Readme.md`: explanation improved.
- `index.js`: Added functions `displayDateTime` and `displayTime`.
### [1.00.00]
#### Added
- `package.json`: Added.
- `index.js`: Added and populated with Gatekeeper's handlebarUtil functions.
- `.npmignore`: Added.
- `.gitignore`: Added.
- `README.md`: Added with description, set-up and change-log.