@autofleet/element-pay 2.1.3 → 2.1.5

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/README.md CHANGED
@@ -38,17 +38,24 @@ const sdk = getOrganizationSdk({
38
38
  **Available mutations/queries** (from `src/graphql/organization/`):
39
39
  - `createOrganization`
40
40
  - `entityCreate`
41
+ - `entityGetExternalId`
41
42
  - `apiKeyCreate`
42
43
  - `clientOnboarding`
43
44
  - `machineTokenizeUser`
44
45
  - `userCreate`
46
+ - `userUpdate`
47
+ - `userOffboard`
45
48
  - `vehicleGroupCreate`
46
49
  - `vehicleGroupDriversAdd`
50
+ - `vehicleGroupDriversRemove`
47
51
  - `vehicleGroupVehiclesAdd`
52
+ - `vehicleGroupVehiclesRemove`
53
+ - `vehicleGroupDelete`
48
54
  - `vehiclesOnboard`
49
- - `entityGetExternalId`
50
- - `vehicleUpdate`
55
+ - `vehiclesFilter`
51
56
  - `vehiclesGroupFilter`
57
+ - `vehicleUpdate`
58
+ - `standaloneCardCreate`
52
59
 
53
60
  ---
54
61
 
@@ -113,3 +120,46 @@ const fuelSupplier = serviceLocationPubSubMessageToFuelSupplier(rawPubSubMessage
113
120
  npm codegen:user # regenerates src/generated/user/sdk.ts
114
121
  npm codegen:organization # regenerates src/generated/organization/sdk.ts
115
122
  ```
123
+
124
+ ## Adding new capabilities
125
+
126
+ ### 1. Add a GraphQL file
127
+
128
+ Create a `.graphql` file in the appropriate directory:
129
+
130
+ - Organization operations → `src/graphql/organization/`
131
+ - User operations → `src/graphql/user/`
132
+
133
+ Name the file after the operation (e.g. `vehicle-group-delete.graphql`). Follow the existing patterns — mutations that return an object should select the fields you need; mutations that return a scalar need no selection set.
134
+
135
+ ```graphql
136
+ # Example: src/graphql/organization/vehicle-group-delete.graphql
137
+ mutation vehicleGroupDelete($id: ID!) {
138
+ vehicleGroupDelete(id: $id)
139
+ }
140
+ ```
141
+
142
+ ### 2. Run codegen
143
+
144
+ Regenerate the typed SDK for the affected scope:
145
+
146
+ ```bash
147
+ npm run codegen:organization # if you added to src/graphql/organization/
148
+ npm run codegen:user # if you added to src/graphql/user/
149
+ ```
150
+
151
+ This updates `src/generated/{organization,user}/sdk.ts` and makes the new operation available on the SDK object.
152
+
153
+ ### 3. Add to `src/index.test.ts` (organization operations)
154
+
155
+ For organization-level operations, add a helper function and call it in the `'full onboarding and pay flow'` test. Follow the existing pattern:
156
+
157
+ ```ts
158
+ const vehicleGroupDelete = async (vehicleGroupId: string) => {
159
+ const result = await organizationSdkForOrganization.vehicleGroupDelete({ id: vehicleGroupId });
160
+ expect(result.vehicleGroupDelete).toEqual('SUCCESS');
161
+ return result.vehicleGroupDelete;
162
+ };
163
+ ```
164
+
165
+ Then call it at the appropriate point in the test flow (respect logical ordering — e.g. cleanup operations go after the main flow). User-level operations follow the same pattern using `getUserSdk`.
package/lib/index.cjs CHANGED
@@ -124,6 +124,10 @@ var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=
124
124
  }
125
125
  }
126
126
  `,b=l.default`
127
+ mutation userOffboard($input: ID!) {
128
+ userOffboard(id: $input)
129
+ }
130
+ `,x=l.default`
127
131
  mutation userUpdate($input: UserUpdateInput!) {
128
132
  userUpdate(input: $input) {
129
133
  id
@@ -136,7 +140,7 @@ var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=
136
140
  status
137
141
  }
138
142
  }
139
- `,x=l.default`
143
+ `,S=l.default`
140
144
  mutation vehicleGroupCreate($input: VehicleGroupCreateInput!) {
141
145
  vehicleGroupCreate(input: $input) {
142
146
  id
@@ -150,7 +154,11 @@ var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=
150
154
  updatedAt
151
155
  }
152
156
  }
153
- `,S=l.default`
157
+ `,C=l.default`
158
+ mutation vehicleGroupDelete($id: ID!) {
159
+ vehicleGroupDelete(id: $id)
160
+ }
161
+ `,w=l.default`
154
162
  mutation vehicleGroupDriversAdd($input: VehicleGroupDriversAddInput!) {
155
163
  vehicleGroupDriversAdd(input: $input) {
156
164
  id
@@ -163,7 +171,20 @@ var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=
163
171
  updatedAt
164
172
  }
165
173
  }
166
- `,C=l.default`
174
+ `,T=l.default`
175
+ mutation vehicleGroupDriversRemove($input: VehicleGroupDriversRemoveInput!) {
176
+ vehicleGroupDriversRemove(input: $input) {
177
+ id
178
+ name
179
+ description
180
+ externalId
181
+ driverCount
182
+ vehicleCount
183
+ insertedAt
184
+ updatedAt
185
+ }
186
+ }
187
+ `,E=l.default`
167
188
  mutation vehicleGroupVehiclesAdd($input: VehicleGroupVehiclesAddInput!) {
168
189
  vehicleGroupVehiclesAdd(input: $input) {
169
190
  id
@@ -176,11 +197,24 @@ var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=
176
197
  updatedAt
177
198
  }
178
199
  }
179
- `,w=l.default`
200
+ `,D=l.default`
201
+ mutation vehicleGroupVehiclesRemove($input: VehicleGroupVehiclesRemoveInput!) {
202
+ vehicleGroupVehiclesRemove(input: $input) {
203
+ id
204
+ name
205
+ description
206
+ externalId
207
+ driverCount
208
+ vehicleCount
209
+ insertedAt
210
+ updatedAt
211
+ }
212
+ }
213
+ `,O=l.default`
180
214
  mutation vehicleUpdate($input: VehicleUpdateInput!) {
181
215
  vehicleUpdate(input: $input)
182
216
  }
183
- `,T=l.default`
217
+ `,k=l.default`
184
218
  query vehiclesFilter($input: VehiclesFilterInput!) {
185
219
  vehiclesFilter(input: $input) {
186
220
  data {
@@ -194,7 +228,7 @@ var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=
194
228
  }
195
229
  }
196
230
  }
197
- `,E=l.default`
231
+ `,A=l.default`
198
232
  query vehicleGroupsFilter($input: VehicleGroupsFilterInput!) {
199
233
  vehicleGroupsFilter(input: $input) {
200
234
  data {
@@ -210,7 +244,7 @@ var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=
210
244
  }
211
245
  }
212
246
  }
213
- `,D=l.default`
247
+ `,j=l.default`
214
248
  mutation vehiclesOnboard($input: VehiclesOnboardInputList!) {
215
249
  vehiclesOnboard(input: $input) {
216
250
  vehicles {
@@ -222,7 +256,7 @@ var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=
222
256
  }
223
257
  }
224
258
  }
225
- `,O=(e,t,n,r)=>e();function k(e,t=O){return{apiKeyCreate(n,r,i){return t(t=>e.request({document:f,variables:n,requestHeaders:{...r,...t},signal:i}),`apiKeyCreate`,`mutation`,n)},clientOnboard(n,r,i){return t(t=>e.request({document:p,variables:n,requestHeaders:{...r,...t},signal:i}),`clientOnboard`,`mutation`,n)},organizationCreate(n,r,i){return t(t=>e.request({document:m,variables:n,requestHeaders:{...r,...t},signal:i}),`organizationCreate`,`mutation`,n)},entityCreate(n,r,i){return t(t=>e.request({document:h,variables:n,requestHeaders:{...r,...t},signal:i}),`entityCreate`,`mutation`,n)},entityGetExternalId(n,r,i){return t(t=>e.request({document:g,variables:n,requestHeaders:{...r,...t},signal:i}),`entityGetExternalId`,`query`,n)},machineTokenizeUser(n,r,i){return t(t=>e.request({document:_,variables:n,requestHeaders:{...r,...t},signal:i}),`machineTokenizeUser`,`mutation`,n)},standaloneCardCreate(n,r,i){return t(t=>e.request({document:v,variables:n,requestHeaders:{...r,...t},signal:i}),`standaloneCardCreate`,`mutation`,n)},userCreate(n,r,i){return t(t=>e.request({document:y,variables:n,requestHeaders:{...r,...t},signal:i}),`userCreate`,`mutation`,n)},userUpdate(n,r,i){return t(t=>e.request({document:b,variables:n,requestHeaders:{...r,...t},signal:i}),`userUpdate`,`mutation`,n)},vehicleGroupCreate(n,r,i){return t(t=>e.request({document:x,variables:n,requestHeaders:{...r,...t},signal:i}),`vehicleGroupCreate`,`mutation`,n)},vehicleGroupDriversAdd(n,r,i){return t(t=>e.request({document:S,variables:n,requestHeaders:{...r,...t},signal:i}),`vehicleGroupDriversAdd`,`mutation`,n)},vehicleGroupVehiclesAdd(n,r,i){return t(t=>e.request({document:C,variables:n,requestHeaders:{...r,...t},signal:i}),`vehicleGroupVehiclesAdd`,`mutation`,n)},vehicleUpdate(n,r,i){return t(t=>e.request({document:w,variables:n,requestHeaders:{...r,...t},signal:i}),`vehicleUpdate`,`mutation`,n)},vehiclesFilter(n,r,i){return t(t=>e.request({document:T,variables:n,requestHeaders:{...r,...t},signal:i}),`vehiclesFilter`,`query`,n)},vehicleGroupsFilter(n,r,i){return t(t=>e.request({document:E,variables:n,requestHeaders:{...r,...t},signal:i}),`vehicleGroupsFilter`,`query`,n)},vehiclesOnboard(n,r,i){return t(t=>e.request({document:D,variables:n,requestHeaders:{...r,...t},signal:i}),`vehiclesOnboard`,`mutation`,n)}}}const A={int:`https://api-gateway.int.gocariq.com/`,stage:`https://api-gateway.stage.gocariq.com/`};function j(e){let t=e.environment??`stage`;return k(new c.GraphQLClient(e.endpoint??A[t],{headers:{"x-api-key":e.apiKey,"Content-Type":`application/json`}}))}const M=l.default`
259
+ `,M=(e,t,n,r)=>e();function N(e,t=M){return{apiKeyCreate(n,r,i){return t(t=>e.request({document:f,variables:n,requestHeaders:{...r,...t},signal:i}),`apiKeyCreate`,`mutation`,n)},clientOnboard(n,r,i){return t(t=>e.request({document:p,variables:n,requestHeaders:{...r,...t},signal:i}),`clientOnboard`,`mutation`,n)},organizationCreate(n,r,i){return t(t=>e.request({document:m,variables:n,requestHeaders:{...r,...t},signal:i}),`organizationCreate`,`mutation`,n)},entityCreate(n,r,i){return t(t=>e.request({document:h,variables:n,requestHeaders:{...r,...t},signal:i}),`entityCreate`,`mutation`,n)},entityGetExternalId(n,r,i){return t(t=>e.request({document:g,variables:n,requestHeaders:{...r,...t},signal:i}),`entityGetExternalId`,`query`,n)},machineTokenizeUser(n,r,i){return t(t=>e.request({document:_,variables:n,requestHeaders:{...r,...t},signal:i}),`machineTokenizeUser`,`mutation`,n)},standaloneCardCreate(n,r,i){return t(t=>e.request({document:v,variables:n,requestHeaders:{...r,...t},signal:i}),`standaloneCardCreate`,`mutation`,n)},userCreate(n,r,i){return t(t=>e.request({document:y,variables:n,requestHeaders:{...r,...t},signal:i}),`userCreate`,`mutation`,n)},userOffboard(n,r,i){return t(t=>e.request({document:b,variables:n,requestHeaders:{...r,...t},signal:i}),`userOffboard`,`mutation`,n)},userUpdate(n,r,i){return t(t=>e.request({document:x,variables:n,requestHeaders:{...r,...t},signal:i}),`userUpdate`,`mutation`,n)},vehicleGroupCreate(n,r,i){return t(t=>e.request({document:S,variables:n,requestHeaders:{...r,...t},signal:i}),`vehicleGroupCreate`,`mutation`,n)},vehicleGroupDelete(n,r,i){return t(t=>e.request({document:C,variables:n,requestHeaders:{...r,...t},signal:i}),`vehicleGroupDelete`,`mutation`,n)},vehicleGroupDriversAdd(n,r,i){return t(t=>e.request({document:w,variables:n,requestHeaders:{...r,...t},signal:i}),`vehicleGroupDriversAdd`,`mutation`,n)},vehicleGroupDriversRemove(n,r,i){return t(t=>e.request({document:T,variables:n,requestHeaders:{...r,...t},signal:i}),`vehicleGroupDriversRemove`,`mutation`,n)},vehicleGroupVehiclesAdd(n,r,i){return t(t=>e.request({document:E,variables:n,requestHeaders:{...r,...t},signal:i}),`vehicleGroupVehiclesAdd`,`mutation`,n)},vehicleGroupVehiclesRemove(n,r,i){return t(t=>e.request({document:D,variables:n,requestHeaders:{...r,...t},signal:i}),`vehicleGroupVehiclesRemove`,`mutation`,n)},vehicleUpdate(n,r,i){return t(t=>e.request({document:O,variables:n,requestHeaders:{...r,...t},signal:i}),`vehicleUpdate`,`mutation`,n)},vehiclesFilter(n,r,i){return t(t=>e.request({document:k,variables:n,requestHeaders:{...r,...t},signal:i}),`vehiclesFilter`,`query`,n)},vehicleGroupsFilter(n,r,i){return t(t=>e.request({document:A,variables:n,requestHeaders:{...r,...t},signal:i}),`vehicleGroupsFilter`,`query`,n)},vehiclesOnboard(n,r,i){return t(t=>e.request({document:j,variables:n,requestHeaders:{...r,...t},signal:i}),`vehiclesOnboard`,`mutation`,n)}}}const P={int:`https://api-gateway.int.gocariq.com/`,stage:`https://api-gateway.stage.gocariq.com/`};function F(e){let t=e.environment??`stage`;return N(new c.GraphQLClient(e.endpoint??P[t],{headers:{"x-api-key":e.apiKey,"Content-Type":`application/json`}}))}const I=l.default`
226
260
  mutation provisionCard($input: ProvisionCardInput!) {
227
261
  provisionCard(input: $input) {
228
262
  encryptedData
@@ -233,20 +267,20 @@ var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=
233
267
  cardNetwork
234
268
  }
235
269
  }
236
- `,N=l.default`
270
+ `,L=l.default`
237
271
  mutation provisionStatusUpdate($input: ProvisionStatusUpdateInput!) {
238
272
  provisionStatusUpdate(input: $input) {
239
273
  success
240
274
  }
241
275
  }
242
- `,P=l.default`
276
+ `,R=l.default`
243
277
  mutation servicePay($input: ServicePayInput!) {
244
278
  servicePay(input: $input) {
245
279
  requestId
246
280
  transactionId
247
281
  }
248
282
  }
249
- `,F=l.default`
283
+ `,z=l.default`
250
284
  mutation ttpTokenization($input: TtpTokenizationInput!) {
251
285
  ttpTokenization(input: $input) {
252
286
  requestId
@@ -265,5 +299,5 @@ var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=
265
299
  cardFlag
266
300
  }
267
301
  }
268
- `,I=(e,t,n,r)=>e();function L(e,t=I){return{provisionCard(n,r,i){return t(t=>e.request({document:M,variables:n,requestHeaders:{...r,...t},signal:i}),`provisionCard`,`mutation`,n)},provisionStatusUpdate(n,r,i){return t(t=>e.request({document:N,variables:n,requestHeaders:{...r,...t},signal:i}),`provisionStatusUpdate`,`mutation`,n)},servicePay(n,r,i){return t(t=>e.request({document:P,variables:n,requestHeaders:{...r,...t},signal:i}),`servicePay`,`mutation`,n)},ttpTokenization(n,r,i){return t(t=>e.request({document:F,variables:n,requestHeaders:{...r,...t},signal:i}),`ttpTokenization`,`mutation`,n)}}}function R(e){let t=e.environment??`stage`;return L(new c.GraphQLClient(e.endpoint??A[t],{headers:{Authorization:`Bearer ${e.accessToken}`,"Content-Type":`application/json`}}))}const z=e=>(0,u.decode)(Buffer.from(e,`base64`)),B=e=>{let t=z(e);if(Buffer.isBuffer(t.ID)&&(t.ID=t.ID.toString(`hex`)),Buffer.isBuffer(t.ServiceLocation)){let e=t.ServiceLocation.toString(`utf8`);t.ServiceLocation=JSON.parse(e)}return t},V={EXXON:d.FUEL_BRANDS.EXXONMOBIL,MOBIL:d.FUEL_BRANDS.EXXONMOBIL,SHELL:d.FUEL_BRANDS.SHELL,SUNOCO:d.FUEL_BRANDS.SUNOCO},H={REGULAR:d.FUEL_TYPES.UNLEADED_REGULAR,MID_GRADE_UNLEADED:d.FUEL_TYPES.UNLEADED_PLUS,"MID GRADE UNLEADED":d.FUEL_TYPES.UNLEADED_PLUS,UNLEADED_PREMIUM:d.FUEL_TYPES.UNLEADED_PREMIUM,"UNLEADED PREMIUM":d.FUEL_TYPES.UNLEADED_PREMIUM,DIESEL:d.FUEL_TYPES.DIESEL_REGULAR,DIESEL_PREMIUM:d.FUEL_TYPES.DIESEL_PREMIUM,"DIESEL PREMIUM":d.FUEL_TYPES.DIESEL_PREMIUM,OTHER_FUEL:d.FUEL_TYPES.OTHER_FUEL,"OTHER FUEL":d.FUEL_TYPES.OTHER_FUEL,HI_FLOW_DIESEL:d.FUEL_TYPES.HI_FLOW_DIESEL,"HI-FLOW DIESEL":d.FUEL_TYPES.HI_FLOW_DIESEL},U=e=>e.reduce((e,t)=>{let n=H[t.name];return n&&(e[n]=`0.0`),e},{}),W=e=>(e??[]).map(({name:e,description:t})=>({name:e,description:t})),G=e=>Object.entries(e.ExternalIdMap??{}).find(([,t])=>t===e.PriceApiId)?.[0],K=({serviceLocationEvent:e})=>{let t=e.ServiceLocation,{address:n,geocoded:r,services:i,amenities:a}=t;return{acceptElementPay:!0,address:[n.line1,n.line2,n.city,n.state,n.zip].filter(Boolean).join(`, `),externalId:t.id,name:t.name,brandName:V[t.provider.name]||null,lat:r.lat,lng:r.lng,directPayEnabled:!t.out_of_network,ttpEnabled:t.ttp_enabled,isActive:t.enabled&&!t.deleted_at,typesPrices:U(i),amenities:W(a),priceSourceId:e.PriceApiId,priceSourceType:G(e)}},q=e=>K({serviceLocationEvent:B(e)});exports.getOrganizationSdk=j,exports.getUserSdk=R,exports.serviceLocationPubSubMessageToFuelSupplier=q;
302
+ `,B=(e,t,n,r)=>e();function V(e,t=B){return{provisionCard(n,r,i){return t(t=>e.request({document:I,variables:n,requestHeaders:{...r,...t},signal:i}),`provisionCard`,`mutation`,n)},provisionStatusUpdate(n,r,i){return t(t=>e.request({document:L,variables:n,requestHeaders:{...r,...t},signal:i}),`provisionStatusUpdate`,`mutation`,n)},servicePay(n,r,i){return t(t=>e.request({document:R,variables:n,requestHeaders:{...r,...t},signal:i}),`servicePay`,`mutation`,n)},ttpTokenization(n,r,i){return t(t=>e.request({document:z,variables:n,requestHeaders:{...r,...t},signal:i}),`ttpTokenization`,`mutation`,n)}}}function H(e){let t=e.environment??`stage`;return V(new c.GraphQLClient(e.endpoint??P[t],{headers:{Authorization:`Bearer ${e.accessToken}`,"Content-Type":`application/json`}}))}const U=e=>(0,u.decode)(Buffer.from(e,`base64`)),W=e=>{let t=U(e);if(Buffer.isBuffer(t.ID)&&(t.ID=t.ID.toString(`hex`)),Buffer.isBuffer(t.ServiceLocation)){let e=t.ServiceLocation.toString(`utf8`);t.ServiceLocation=JSON.parse(e)}return t},G={EXXON:d.FUEL_BRANDS.EXXONMOBIL,MOBIL:d.FUEL_BRANDS.EXXONMOBIL,SHELL:d.FUEL_BRANDS.SHELL,SUNOCO:d.FUEL_BRANDS.SUNOCO},K={REGULAR:d.FUEL_TYPES.UNLEADED_REGULAR,MID_GRADE_UNLEADED:d.FUEL_TYPES.UNLEADED_PLUS,"MID GRADE UNLEADED":d.FUEL_TYPES.UNLEADED_PLUS,UNLEADED_PREMIUM:d.FUEL_TYPES.UNLEADED_PREMIUM,"UNLEADED PREMIUM":d.FUEL_TYPES.UNLEADED_PREMIUM,DIESEL:d.FUEL_TYPES.DIESEL_REGULAR,DIESEL_PREMIUM:d.FUEL_TYPES.DIESEL_PREMIUM,"DIESEL PREMIUM":d.FUEL_TYPES.DIESEL_PREMIUM,OTHER_FUEL:d.FUEL_TYPES.OTHER_FUEL,"OTHER FUEL":d.FUEL_TYPES.OTHER_FUEL,HI_FLOW_DIESEL:d.FUEL_TYPES.HI_FLOW_DIESEL,"HI-FLOW DIESEL":d.FUEL_TYPES.HI_FLOW_DIESEL},q=e=>e.reduce((e,t)=>{let n=K[t.name];return n&&(e[n]=0),e},{}),J=e=>(e??[]).map(({name:e,description:t})=>({name:e,description:t})),Y=e=>Object.entries(e.ExternalIdMap??{}).find(([,t])=>t===e.PriceApiId)?.[0],X=({serviceLocationEvent:e})=>{let t=e.ServiceLocation,{address:n,geocoded:r,services:i,amenities:a}=t;return{acceptElementPay:!0,address:[n.line1,n.line2,n.city,n.state,n.zip].filter(Boolean).join(`, `),externalId:t.id,name:t.name,brandName:G[t.provider.name]||null,lat:r.lat,lng:r.lng,directPayEnabled:!t.out_of_network,ttpEnabled:t.ttp_enabled,isActive:t.enabled&&!t.deleted_at,typesPrices:q(i),amenities:J(a),priceSourceId:e.PriceApiId,priceSourceType:Y(e)}},Z=e=>X({serviceLocationEvent:W(e)});exports.getOrganizationSdk=F,exports.getUserSdk=H,exports.serviceLocationPubSubMessageToFuelSupplier=Z;
269
303
  //# sourceMappingURL=index.cjs.map