This repository has been archived by the owner on May 3, 2021. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 2
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This changeset refreshes local dependencies and cleans up various other small issues. - [x] Run `yarn upgrade` - [x] Update `protobuf` and `closure`
This changeset brings in true support for gRPC, to replace the RPC layer currently in use, and propagate use of the schema throughout the library through the use of typedefs. Since gRPC-Web is now public, we can depend on it directly via Closure. It's essentially an extension to the schema which already has support for ADVANCED_OPTIMIZATIONS and so on. Initial work will involve replacing the current JSON/REST-based API layer with an abstracted, interface-defined generic service layer, which will call into the old code, or the new, based on browser support. Then, the new layer must be written against the gRPC-Web library, extended into logic as a service facade, and so on. From there, we'll work our way up through the library to replace the objects currently in use. Changes so far: - [x] Add low-level service code - [x] `Menu v1beta1` service - [x] `Shop v1` service - [x] `Platform v1` service - [x] `Telemetry v1beta4` service - [x] Get compile working against binary wire format - [ ] `Makefile` support for service files - [ ] Abstracted service facade - [ ] Auth API - [ ] `authenticate`: Trigger user auth - [ ] `authorize`: Assume a user session - [ ] Menu API - [ ] `retrieve`: Fetch menus - [ ] `sections`: Fetch one or more sections - [ ] `products`: Fetch one or more products - [ ] `featured`: Fetch featured products across sections - [ ] Shop API - [ ] `info`: Shop status and general information - [ ] `verify`: Verify a user for order eligibility - [ ] `enroll`: Sign-up a new user - [ ] `submit`: Submit an online order for pickup or delivery - [ ] `getOrder`: Retrieve an order and check status - [ ] Platform API - [ ] `resolve`: Fetch partner scope based on domain - [ ] `domains`: Fetch domains for a given partner scope - [ ] `brand`: Fetch branding information for a given scope - [ ] `siteinfo`: Fetch metadata for web properties - [ ] Telemetry API - [ ] `event`: Generic event telemetry - [ ] `impression`: Impression-based commercial telemetry - [ ] `view`: View-based commercial telemetry - [ ] `action`: Action-based commercial telemetry - [ ] API layer selection logic - [ ] When to fallback to JSON/REST - [ ] When to fallback to gRPC text - [ ] Compile flags - [ ] Schema object refactoring - [ ] Menus and callbacks - [ ] Testsuite - [ ] Test pages - [ ] Docs Co-authored-by: Noah Damiani <noah@bloombox.io>
This changeset establishes an integration branch to begin work on the JS SDK for Bloombox v2.0. This is a major batch of work, to include new support for RPC-based systems, updated dependencies, source-level integration with other Bloombox code, and more. For now though, it's just a version bump. Release stuff: - [ ] Bump version -> `2.0.0` - [ ] Push release to prod - [ ] Test links, docs Initial stuff: - [x] Bump version -> `2.0.0b1` for testing Constituent work: - [ ] Update Dependencies (#225) Co-authored-by: Noah Damiani <noah@bloombox.io>
Bumps [handlebars](https://github.com/wycats/handlebars.js) from 4.0.11 to 4.1.0. **This update includes security fixes.** - [Release notes](https://github.com/wycats/handlebars.js/releases) - [Changelog](https://github.com/wycats/handlebars.js/blob/v4.1.0/release-notes.md) - [Commits](handlebars-lang/handlebars.js@v4.0.11...v4.1.0) Signed-off-by: dependabot[bot] <support@dependabot.com>
Bumps [extend](https://github.com/justmoon/node-extend) from 3.0.1 to 3.0.2. **This update includes security fixes.** - [Release notes](https://github.com/justmoon/node-extend/releases) - [Changelog](https://github.com/justmoon/node-extend/blob/master/CHANGELOG.md) - [Commits](justmoon/node-extend@v3.0.1...v3.0.2) Signed-off-by: dependabot[bot] <support@dependabot.com>
This changeset brings in true support for gRPC, to replace the RPC layer currently in use, and propagate use of the schema throughout the library through the use of typedefs. Since gRPC-Web is now public, we can depend on it directly via Closure. It's essentially an extension to the schema which already has support for ADVANCED_OPTIMIZATIONS and so on. Initial work will involve replacing the current JSON/REST-based API layer with an abstracted, interface-defined generic service layer, which will call into the old code, or the new, based on browser support. Then, the new layer must be written against the gRPC-Web library, extended into logic as a service facade, and so on. From there, we'll work our way up through the library to replace the objects currently in use. Changes so far: - [x] Add low-level service code - [x] `Menu v1beta1` service - [x] `Shop v1` service - [x] `Platform v1` service - [x] `Telemetry v1beta4` service - [x] Get compile working against binary wire format - [ ] `Makefile` support for service files - [ ] Abstracted service facade - [ ] Auth API - [ ] `authenticate`: Trigger user auth - [ ] `authorize`: Assume a user session - [ ] Menu API - [ ] `retrieve`: Fetch menus - [ ] `sections`: Fetch one or more sections - [ ] `products`: Fetch one or more products - [ ] `featured`: Fetch featured products across sections - [ ] Shop API - [ ] `info`: Shop status and general information - [ ] `verify`: Verify a user for order eligibility - [ ] `enroll`: Sign-up a new user - [ ] `submit`: Submit an online order for pickup or delivery - [ ] `getOrder`: Retrieve an order and check status - [ ] Platform API - [ ] `resolve`: Fetch partner scope based on domain - [ ] `domains`: Fetch domains for a given partner scope - [ ] `brand`: Fetch branding information for a given scope - [ ] `siteinfo`: Fetch metadata for web properties - [ ] Telemetry API - [ ] `event`: Generic event telemetry - [ ] `impression`: Impression-based commercial telemetry - [ ] `view`: View-based commercial telemetry - [ ] `action`: Action-based commercial telemetry - [ ] API layer selection logic - [ ] When to fallback to JSON/REST - [ ] When to fallback to gRPC text - [ ] Compile flags - [ ] Schema object refactoring - [ ] Menus and callbacks - [ ] Testsuite - [ ] Test pages - [ ] Docs Co-authored-by: Noah Damiani <noah@bloombox.io>
- Refactor into interface-based API - Implement v0 menu API via legacy JSON/REST - Prep new v1 menu interface
Codecov Report
@@ Coverage Diff @@
## release/v2 #227 +/- ##
===============================================
+ Coverage 58.48% 75.77% +17.29%
===============================================
Files 57 46 -11
Lines 2553 2171 -382
Branches 430 342 -88
===============================================
+ Hits 1493 1645 +152
+ Misses 1060 526 -534
Continue to review full report at Codecov.
|
- Add implementation on new gRPC layer for: - `ping`: Ping the server - `event`: Emit an event
- Add interface specs for `product` and `featured` methods - Add stubbed (throwing) implementations in `v1beta0` - Add full implementation of each in `v1beta1`
- Add support for featured products, product data - Add testsuite support for both Co-authored-by: Kyle Vandagriff <kyle@bloombox.io>
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This changeset brings in true support for gRPC, to replace the RPC layer currently in use, and propagate use of the schema throughout the library through the use of typedefs.
Since gRPC-Web is now public, we can depend on it directly via Closure. It's essentially an extension to the schema which already has support for ADVANCED_OPTIMIZATIONS and so on.
Initial work will involve replacing the current JSON/REST-based API layer with an abstracted, interface-defined generic service layer, which will call into the old code, or the new, based on browser support. Then, the new layer must be written against the gRPC-Web library, extended into logic as a service facade, and so on. From there, we'll work our way up through the library to replace the objects currently in use.
Related work:
Changes so far:
Menu v1beta1
serviceShop v1
servicePlatform v1
serviceTelemetry v1beta4
servicenote: manual inlining for nowMakefile
support for service filesWhen to fallback to JSON/RESTnote: opt-in for nowWhen to fallback to gRPC textnote: not doing thisretrieve
: Fetch menussections
: Fetch one or more sectionsproducts
: Fetch one or more productsfeatured
: Fetch featured products across sectionsinfo
: Shop status and general informationverify
: Verify a user for order eligibilityzipcheck
: Check a zipcode for delivery eligibility and requirementsenroll
: Sign-up a new usersubmit
: Submit an online order for pickup or deliverygetOrder
: Retrieve an order and check statusping
: Connection warmup and latency checkevent
: Generic event telemetryimpression
: Impression-based commercial telemetryview
: View-based commercial telemetryaction
: Action-based commercial telemetry