Commit 4ae6089
Feature/federated (#926)
* Network aggregation search - Initial Config (#876)
* initial config
* add network to config template. add default values to base.json
* add schema merge placeholders
* add conditional to graphql route gen for env flag
* throw error on invalid json parse eg. empty file
* rename type
* add vscode debug file to gitignore
* Update modules/server/README.md
Co-authored-by: Anders Richardsson <2107110+justincorrigible@users.noreply.github.com>
* rename field to documentType
* Update modules/server/configTemplates/base.json
Co-authored-by: Anders Richardsson <2107110+justincorrigible@users.noreply.github.com>
* Update modules/server/src/config/utils/getConfigFromFiles.ts
Co-authored-by: Anders Richardsson <2107110+justincorrigible@users.noreply.github.com>
* Update types.ts
* Update README.md
* rename fields, add nesting
* remove env config to enable federated search
* remove env config to enable federated search
* remove flag from env schema
---------
Co-authored-by: Ciaran Schutte <ciaranschutte@oicr.on.ca>
Co-authored-by: Anders Richardsson <2107110+justincorrigible@users.noreply.github.com>
* Feat/#873 retrieve remote schemas (#877)
* initial config
* add network to config template. add default values to base.json
* add schema merge placeholders
* add conditional to graphql route gen for env flag
* throw error on invalid json parse eg. empty file
* rename type
* add vscode debug file to gitignore
* add gql client lib
* change gql lib
* Update modules/server/README.md
Co-authored-by: Anders Richardsson <2107110+justincorrigible@users.noreply.github.com>
* add fetch field
* rename field to documentType
* Update modules/server/configTemplates/base.json
Co-authored-by: Anders Richardsson <2107110+justincorrigible@users.noreply.github.com>
* Update modules/server/src/config/utils/getConfigFromFiles.ts
Co-authored-by: Anders Richardsson <2107110+justincorrigible@users.noreply.github.com>
* Update types.ts
* Update README.md
* add ignore to gitignore
* rename fields, add nesting
* remove env config to enable federated search
* remove env config to enable federated search
* remove flag from env schema
* correct schema retrieval
* fix GQL obj wrapping on schema construction
* example
* cleanup
* cleanup gql file
* cleanup packages
* fix import
* add introspection query type predicate
* add tsdoc
* remove local folder ignore from project.gitignore
* remove unused util
* renaming
* break up query promise and results
* Update .gitignore
Co-authored-by: Anders Richardsson <2107110+justincorrigible@users.noreply.github.com>
* use axios
* axios network check, doesn't throw like fetch
* change fetch config to axios config
* Update modules/server/src/network/index.ts
Co-authored-by: Anders Richardsson <2107110+justincorrigible@users.noreply.github.com>
* add logs to thrown errors
* small feedback fixes
* add typings + additional info in comments
* add better errors
* remove unused func. renaming
* add return type
* remove assertion. add TS filter
* change nulls to undefined
* change explicit undefined to optional ts
* add tsdoc comment
* change var type to loose record instead of uknown
* if else TS
* if else TS
* change to nested promise return
---------
Co-authored-by: Ciaran Schutte <ciaranschutte@oicr.on.ca>
Co-authored-by: Anders Richardsson <2107110+justincorrigible@users.noreply.github.com>
* Pr feedback - doc updates (#879)
* update tsdoc
* update tsdoc
---------
Co-authored-by: Ciaran Schutte <ciaranschutte@oicr.on.ca>
* Feat/#874 merge schemas (#878)
* initial config
* add network to config template. add default values to base.json
* add schema merge placeholders
* add conditional to graphql route gen for env flag
* throw error on invalid json parse eg. empty file
* rename type
* add vscode debug file to gitignore
* add gql client lib
* change gql lib
* Update modules/server/README.md
Co-authored-by: Anders Richardsson <2107110+justincorrigible@users.noreply.github.com>
* add fetch field
* rename field to documentType
* Update modules/server/configTemplates/base.json
Co-authored-by: Anders Richardsson <2107110+justincorrigible@users.noreply.github.com>
* Update modules/server/src/config/utils/getConfigFromFiles.ts
Co-authored-by: Anders Richardsson <2107110+justincorrigible@users.noreply.github.com>
* Update types.ts
* Update README.md
* add ignore to gitignore
* rename fields, add nesting
* remove env config to enable federated search
* remove env config to enable federated search
* remove flag from env schema
* correct schema retrieval
* fix GQL obj wrapping on schema construction
* example
* cleanup
* cleanup gql file
* cleanup packages
* fix import
* basic merge schema
* cleanup comment
* exclusuions
* add introspection query type predicate
* add tsdoc
* remove local folder ignore from project.gitignore
* remove unused util
* renaming
* break up query promise and results
* Update .gitignore
Co-authored-by: Anders Richardsson <2107110+justincorrigible@users.noreply.github.com>
* use axios
* axios network check, doesn't throw like fetch
* update packages for typedefs
* change fetch config to axios config
* Update modules/server/src/network/index.ts
Co-authored-by: Anders Richardsson <2107110+justincorrigible@users.noreply.github.com>
* add logs to thrown errors
* fix merge conflict
* add test watch command with basic test
* tests
* Fix type. narrow scope. hoist filtering
* remove debug code. add comment
* update comments + add type assertion
* add comments
* remove redundant options arg for schema merginging
* seperate test utils and fixture from main file
* seperate test utils and fixture from main file
* tests, cleanup, extra tests, split responsibility
---------
Co-authored-by: Ciaran Schutte <ciaranschutte@oicr.on.ca>
Co-authored-by: Anders Richardsson <2107110+justincorrigible@users.noreply.github.com>
* Add core functionality for remote connection resolvers (#880)
* add remote connection resolver func
* adds resolver functionality for remote connection details, including health check to gql server
* add types, improve comment, move into remote connection resolver into distinct file
* remove unused imports
* add utility type. use utility objectValues type for type values from const
* fix type lookup in gql object
* add comments
* PR feedback: comment blocks
* additional remote connection node data resolver response data
* create typeDefs file for remote connection data
* move typeDefs for aggregations
* add resolver map, rename remote connection resolver file
* cleanup imports and creation of schema, imorts from distinct resolver and typedef files
* rename and fix type on Remote Connection gql resp
* remove ping healthcheck for nodes on resolver
* pass correct object to get available types
* add temp gql server for network aggs
* add status check
---------
Co-authored-by: Ciaran Schutte <ciaranschutte@oicr.on.ca>
* Feat/agg resolver (#881)
* add remote connection resolver func
* adds resolver functionality for remote connection details, including health check to gql server
* add types, improve comment, move into remote connection resolver into distinct file
* remove unused imports
* add utility type. use utility objectValues type for type values from const
* fix type lookup in gql object
* add comments
* PR feedback: comment blocks
* additional remote connection node data resolver response data
* create typeDefs file for remote connection data
* move typeDefs for aggregations
* add resolver map, rename remote connection resolver file
* cleanup imports and creation of schema, imorts from distinct resolver and typedef files
* rename and fix type on Remote Connection gql resp
* remove ping healthcheck for nodes on resolver
* pass correct object to get available types
* add temp gql server for network aggs
* add status check
* fetchGQL helper func working with axios
* rework dynamic network search types based on remote connections types
* use __type query instead of full introspectionQuery
* remove old code
* add single typeDef export, responsible for merging remote connection and aggregation types
* correct structure for merging typedefs with other typedefs, merge on Query
* get all types from remote connections once
* agg resolver structuring
* add aggregations resolvers
* add agg resolver network calls
* rename and narrow NetworkType type across files
* add common file
* add network queries file
* rename var
* query remote connections
* move query
* add comments
* add supported and unsupported aggregations with test
* ts-jest disable diagnostics to run tests without all types passing
* rework connection status property to do ping healthcehck
* types cleanup across files
* improved typing for reducer in field types, covering supported and unsupported aggregates
* tighten and rename types
* type cleanup and comments
* add explicit name mapping
* rename type correctly
* Cleanup query lookup for aggregations for remote connections
* move TSdoc comment
* move types
* add util func to convert gql AST into string
* move aggregations resolver code into a module
* simplify query to be composable, better naming for agg query map
* aggregation logic placeholder
* cleanup
* rework logic to use single request and mapping fields, instead of slicing central query
---------
Co-authored-by: Ciaran Schutte <ciaranschutte@oicr.on.ca>
* Feat/resolve stats (#883)
* add resolve aggregation function with tests
* add basic aggregation TS types
* cleanup
* improve comments
---------
Co-authored-by: Ciaran Schutte <ciaranschutte@oicr.on.ca>
* Feat/resolver responses (#884)
* add documentName to config and use in remote connection gql queries
* move fulfilled promise type guard to util and make it a generic
* resolve aggregations from network query results'
* return resolved response object
* PR feedback
---------
Co-authored-by: Ciaran Schutte <ciaranschutte@oicr.on.ca>
* Fix network agg resolution (#885)
* add Bucket gql object type
* text change, move func outside of nested func
* fix resolved aggregations overriding
* Update modules/server/src/network/aggregations/index.ts
Co-authored-by: Anders Richardsson <2107110+justincorrigible@users.noreply.github.com>
---------
Co-authored-by: Ciaran Schutte <ciaranschutte@oicr.on.ca>
Co-authored-by: Anders Richardsson <2107110+justincorrigible@users.noreply.github.com>
* Response data & batching requests (#887)
* move response object creation into module
* change type structure for gql server
* change resolver code based on new gql type
* adjust agg type gql resolved response
* add http resp helpers
* change resolveAggregation code to batch processing
* add nodeInfo to resolver
* change resolver method to reducer with mutations
* add type
* fix typedef
* format response object
* comments and cleanup
* remove log
---------
Co-authored-by: Ciaran Schutte <ciaranschutte@oicr.on.ca>
* Fed Search request timeouts (#889)
* move response object creation into module
* change type structure for gql server
* change resolver code based on new gql type
* adjust agg type gql resolved response
* add http resp helpers
* change resolveAggregation code to batch processing
* add nodeInfo to resolver
* change resolver method to reducer with mutations
* add type
* fix typedef
* format response object
* comments and cleanup
* add GQL request timeout with config option and default value
---------
Co-authored-by: Ciaran Schutte <ciaranschutte@oicr.on.ca>
* Reorg connection (#891)
* change resolver code based on new gql type
* comments and cleanup
* break up main entry point into two modules, one for querying and one for field processing
* rename network config type, remove supported aggs from type
* type cleanup
* only send network queries with original query fields
* move gql health check into module
* cleanup, renaming types, removing redundant code
* add type
* fix merged conflict
* adds full stop. fixes comment typo
---------
Co-authored-by: Ciaran Schutte <ciaranschutte@oicr.on.ca>
* Accumulator pipeline (#893)
* change resolver code based on new gql type
* comments and cleanup
* break up main entry point into two modules, one for querying and one for field processing
* rename network config type, remove supported aggs from type
* type cleanup
* only send network queries with original query fields
* move gql health check into module
* cleanup, renaming types, removing redundant code
* add type
* fix merged conflict
* adds full stop. fixes comment typo
* fix pipeline code, move accumulator into class
* handle unavailable node
* check undefined in Success
* add note
* rename poorly named field
* add comment:
* rename file
* http response success status as const
* renamed AggAccumulator file
* clean up types, change loose object to use record, fix any typings
---------
Co-authored-by: Ciaran Schutte <ciaranschutte@oicr.on.ca>
* Feat/fed total hits (#895)
* change resolver code based on new gql type
* comments and cleanup
* break up main entry point into two modules, one for querying and one for field processing
* rename network config type, remove supported aggs from type
* type cleanup
* only send network queries with original query fields
* move gql health check into module
* cleanup, renaming types, removing redundant code
* add type
* fix merged conflict
* adds full stop. fixes comment typo
* fix pipeline code, move accumulator into class
* handle unavailable node
* check undefined in Success
* add note
* rename poorly named field
* add comment:
* rename file
* http response success status as const
* renamed AggAccumulator file
* clean up types, change loose object to use record, fix any typings
* add total hits to query string
* cleanup field, param order
* add test
* rename RemoteAggregations type
* add hits TS type
* fix env toggle for network fed search
* renaming, update types
* documentName and documentType are the same for functionality
* return unique fields
* fix accumulator resolve for new input shape
* tighten types. add Hits resolution
* rename count to hits
* fix logging
---------
Co-authored-by: Ciaran Schutte <ciaranschutte@oicr.on.ca>
* feat/agg acc tests (#897)
* change resolver code based on new gql type
* comments and cleanup
* break up main entry point into two modules, one for querying and one for field processing
* rename network config type, remove supported aggs from type
* type cleanup
* only send network queries with original query fields
* move gql health check into module
* cleanup, renaming types, removing redundant code
* add type
* fix merged conflict
* adds full stop. fixes comment typo
* fix pipeline code, move accumulator into class
* handle unavailable node
* check undefined in Success
* add note
* rename poorly named field
* add comment:
* rename file
* http response success status as const
* renamed AggAccumulator file
* clean up types, change loose object to use record, fix any typings
* add total hits to query string
* cleanup field, param order
* add test
* rename RemoteAggregations type
* add hits TS type
* fix env toggle for network fed search
* renaming, update types
* documentName and documentType are the same for functionality
* return unique fields
* fix accumulator resolve for new input shape
* tighten types. add Hits resolution
* rename count to hits
* add first test for requested fields
* tighten types and error checking
* fix up types and comments, resolvers code fix
* update aggregation test
---------
Co-authored-by: Ciaran Schutte <ciaranschutte@oicr.on.ca>
* Feat/fed numeric agg resolution (#898)
* change resolver code based on new gql type
* comments and cleanup
* break up main entry point into two modules, one for querying and one for field processing
* rename network config type, remove supported aggs from type
* type cleanup
* only send network queries with original query fields
* move gql health check into module
* cleanup, renaming types, removing redundant code
* add type
* fix merged conflict
* adds full stop. fixes comment typo
* fix pipeline code, move accumulator into class
* handle unavailable node
* check undefined in Success
* add note
* rename poorly named field
* add comment:
* rename file
* http response success status as const
* renamed AggAccumulator file
* clean up types, change loose object to use record, fix any typings
* add total hits to query string
* cleanup field, param order
* add test
* rename RemoteAggregations type
* add hits TS type
* fix env toggle for network fed search
* renaming, update types
* documentName and documentType are the same for functionality
* return unique fields
* fix accumulator resolve for new input shape
* tighten types. add Hits resolution
* rename count to hits
* add first test for requested fields
* tighten types and error checking
* fix up types and comments, resolvers code fix
* update aggregation test
* add test + expand types
* rework resolution iteration and add numericAggregations resolver
* add typename to types
* cleanup
---------
Co-authored-by: Ciaran Schutte <ciaranschutte@oicr.on.ca>
* use Math methods (#900)
Co-authored-by: Ciaran Schutte <ciaranschutte@oicr.on.ca>
* Individual node config query fields (#899)
* use more detailed NodeConfig object to store available agg types
* filter requested aggs with available aggs
* add available aggs to node connection resolver type defs
* cleanup
---------
Co-authored-by: Ciaran Schutte <ciaranschutte@oicr.on.ca>
* Feat/aggregate not available (#903)
* add TSdoc example
* add TSdoc comment
* pass more data into Aggs accumulator
* add schema map for query time
* rework agg accumulator to add empty agg to bucket if aggregation not available for node
* fix test
* clean up logic to account for only Aggregations type
* account for empty aggs field in node query
* cleanup
* disabled network Agg tests
---------
Co-authored-by: Ciaran Schutte <ciaranschutte@oicr.on.ca>
* Feat/filters (#904)
* add TSdoc example
* add TSdoc comment
* pass more data into Aggs accumulator
* add schema map for query time
* rework agg accumulator to add empty agg to bucket if aggregation not available for node
* fix test
* clean up logic to account for only Aggregations type
* account for empty aggs field in node query
* cleanup
* disabled network Agg tests
* add args to Aggregations gql typedef
* add args to network field
* pass gql resolvers args to query creation
* remove console log
* add include missing:
* add overture sqon builder dep
* move up type
* add SQON check and args type
* rename file
* check for SQON correctness but pass ordinary object through on success
* add comment
* Update modules/server/src/network/utils/sqon.ts
Co-authored-by: Anders Richardsson <2107110+justincorrigible@users.noreply.github.com>
---------
Co-authored-by: Ciaran Schutte <ciaranschutte@oicr.on.ca>
Co-authored-by: Anders Richardsson <2107110+justincorrigible@users.noreply.github.com>
* Minor comment updates (#905)
* improve comment
* improve comment
---------
Co-authored-by: Ciaran Schutte <ciaranschutte@oicr.on.ca>
* Fed search cleanup typings (#906)
* remove unsued type defs
* add type watch script
* fix import
* fix import
* type an ANY type
* fix agg resolver typing
* ts no-check for test file
* fix Agg Accumulator types
* type response formatter
* fix test file type
* address feedback
---------
Co-authored-by: Ciaran Schutte <ciaranschutte@oicr.on.ca>
* Fix broken build (#907)
* remove unsued type defs
* add type watch script
* fix import
* fix import
* type an ANY type
* fix agg resolver typing
* ts no-check for test file
* fix Agg Accumulator types
* type response formatter
* fix test file type
* fix gql query creation test
* query back to normal test
* disables tests, adds comment
* fix merged file
---------
Co-authored-by: Ciaran Schutte <ciaranschutte@oicr.on.ca>
* add agg mode env config (#908)
* add agg mode env config
* env config to strip out section of gql schema, typedef + resolver
* prettier
* prettier
* Update modules/server/.env.schema
Co-authored-by: Anders Richardsson <2107110+justincorrigible@users.noreply.github.com>
* Update modules/server/src/mapping/createConnectionResolvers.ts
Co-authored-by: Anders Richardsson <2107110+justincorrigible@users.noreply.github.com>
* alphabetize
* move up import
* change AGG_ONLY_MODE to enabled DOCUMENT_HITS
* add empty line at EOF
* add comment
* fix typo
* fix inverted logic
---------
Co-authored-by: Ciaran Schutte <ciaranschutte@oicr.on.ca>
Co-authored-by: Anders Richardsson <2107110+justincorrigible@users.noreply.github.com>
* Feature/threshold calc (#909)
* add conditional prop to schema
* conditional schema field
* conditional add dataMasking schema fields
* add data masking logic
* add agg only conditional to resolvers
* clarify todo
* get optional aggregations field and values for hits resolution
* add mask func stub
* fix missing prop from spread
* masking logic
* conditional resolve hits
* move thresholding higher on resolver chain
* add falsey belowThreshold value instead of null
* data mask threshold env var
* update wrong process.env path
* seperate resolver creation from routing
* check for undefiend value in lookup
* clarify comment
* add threshold value explanation
* move types to common file
* typing
---------
Co-authored-by: Ciaran Schutte <ciaranschutte@oicr.on.ca>
* multiple node with data thresholding (#912)
* fix build error
* single endpoint
* fix GQL type name collisions
* move data mask threshold env. ensure data masking applies even if hits.total is not queried
* change belowThreshold to relation object
* surface api errors to axios responses
* add relation logic and agg merging for network search
* read data mask threshold min from config
* check for valid env val
* remove unused func
* fix TS build errors
* fix schema merge error
---------
Co-authored-by: Ciaran Schutte <ciaranschutte@oicr.on.ca>
* Feat/fed search cleanup (#920)
* add placeholder
* Adjust config template example and file
* remove unused arranger constructor param
* reorder constants file, parse env var
* update arranger network config type
* type, add gql server types
* graphqlRoutes, remove unused import, export func
* resolver creation, improve TS usage, split functionality into distinct files, improve usage'
* add surrounding brackets for func
* cleanup schema resolvers
---------
Co-authored-by: Ciaran Schutte <ciaranschutte@oicr.on.ca>
* Feat/fed search networked cleanup (#921)
* cleanup utils
* reorg types, decompose file, improve comments
* clean up types
* cleanup types, redundant code and fix a couple of bad merge files
* fix enum
* cleanup test types
* type fix
* explicit type import, use path alias
---------
Co-authored-by: Ciaran Schutte <ciaranschutte@oicr.on.ca>
* Update modules/server/src/app.js
Co-authored-by: Anders Richardsson <2107110+justincorrigible@users.noreply.github.com>
* make horrible ajax.ts console logging somewhat useful
* improve release process
* fix paths and imports for new build config
* update tests to todos
* fix some imports
* fix build issues with lodash and missing config flag
* fix paths
* comment out test files, broken with tsx vs jest
* fix path
* fix path
* improve release process
* allow toolbar options customization
* fix setsIndex conflict resolutioon misses
* default for ENABLE_DOCUMENT_HITS env flag is true
* default enable document hits to true
* add DATA_MASK_MIN_THRESHOLD env var as pass through var
* debug
* debug
* debug
* add default param value
* debug
* string util important fix
* fix for tests
* Add comment re data masking
* remove debug log
* Update modules/server/src/mapping/createConnectionTypeDefs.js
Co-authored-by: Anders Richardsson <2107110+justincorrigible@users.noreply.github.com>
* Update modules/server/src/mapping/createConnectionTypeDefs.js
Co-authored-by: Anders Richardsson <2107110+justincorrigible@users.noreply.github.com>
* Update modules/server/src/mapping/masking.ts
Co-authored-by: Anders Richardsson <2107110+justincorrigible@users.noreply.github.com>
* Update modules/server/src/mapping/resolveHitsFromAggs.ts
Co-authored-by: Anders Richardsson <2107110+justincorrigible@users.noreply.github.com>
* Update modules/server/src/mapping/resolvers.ts
Co-authored-by: Anders Richardsson <2107110+justincorrigible@users.noreply.github.com>
* Update modules/server/src/mapping/resolvers.ts
Co-authored-by: Anders Richardsson <2107110+justincorrigible@users.noreply.github.com>
* remove specific NetworkAggError class
* fix error response type narrow
* missing param
* add explanation comment for aggs resolver, gql info lookup
---------
Co-authored-by: Ciaran Schutte <ciaranschutte@oicr.on.ca>
Co-authored-by: Anders Richardsson <2107110+justincorrigible@users.noreply.github.com>
Co-authored-by: Anders Richardsson <2107110+caravinci@users.noreply.github.com>1 parent 0ad9610 commit 4ae6089
File tree
58 files changed
+16617
-177
lines changed- integration-tests/server/test
- modules/server
- configTemplates
- src
- config
- utils
- mapping
- utils
- network
- aggregations
- tests
- resolvers
- setup
- tests
- typeDefs
- types
- utils
- schema
- utils
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
58 files changed
+16617
-177
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | 3 | | |
| 4 | + | |
4 | 5 | | |
5 | 6 | | |
6 | 7 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
99 | 99 | | |
100 | 100 | | |
101 | 101 | | |
102 | | - | |
| 102 | + | |
| 103 | + | |
103 | 104 | | |
104 | 105 | | |
105 | 106 | | |
| |||
141 | 142 | | |
142 | 143 | | |
143 | 144 | | |
144 | | - | |
| 145 | + | |
| 146 | + | |
145 | 147 | | |
146 | 148 | | |
147 | 149 | | |
| |||
188 | 190 | | |
189 | 191 | | |
190 | 192 | | |
191 | | - | |
| 193 | + | |
| 194 | + | |
192 | 195 | | |
193 | 196 | | |
194 | 197 | | |
| |||
235 | 238 | | |
236 | 239 | | |
237 | 240 | | |
238 | | - | |
| 241 | + | |
| 242 | + | |
239 | 243 | | |
240 | 244 | | |
241 | 245 | | |
| |||
264 | 268 | | |
265 | 269 | | |
266 | 270 | | |
267 | | - | |
| 271 | + | |
268 | 272 | | |
269 | 273 | | |
270 | 274 | | |
| |||
306 | 310 | | |
307 | 311 | | |
308 | 312 | | |
309 | | - | |
310 | | - | |
311 | | - | |
312 | | - | |
| 313 | + | |
313 | 314 | | |
314 | 315 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
| 3 | + | |
3 | 4 | | |
4 | 5 | | |
5 | 6 | | |
| 7 | + | |
6 | 8 | | |
7 | 9 | | |
8 | 10 | | |
| |||
14 | 16 | | |
15 | 17 | | |
16 | 18 | | |
17 | | - | |
| 19 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
18 | 18 | | |
19 | 19 | | |
20 | 20 | | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
73 | 73 | | |
74 | 74 | | |
75 | 75 | | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
76 | 85 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
0 commit comments