@jarwizz/create-jarshop 0.1.5 → 0.1.7

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.
@@ -30,6 +30,8 @@
30
30
  "db:down": "docker compose down"
31
31
  },
32
32
  "dependencies": {
33
+ "@aws-sdk/client-s3": "3.1121.0",
34
+ "@aws-sdk/lib-storage": "3.1121.0",
33
35
  "@nestjs/common": "11.1.28",
34
36
  "@nestjs/graphql": "13.1.0",
35
37
  "@vendure/asset-server-plugin": "3.7.1",
@@ -11,6 +11,12 @@ importers:
11
11
 
12
12
  .:
13
13
  dependencies:
14
+ '@aws-sdk/client-s3':
15
+ specifier: 3.1121.0
16
+ version: 3.1121.0
17
+ '@aws-sdk/lib-storage':
18
+ specifier: 3.1121.0
19
+ version: 3.1121.0(@aws-sdk/client-s3@3.1121.0)
14
20
  '@nestjs/common':
15
21
  specifier: 11.1.28
16
22
  version: 11.1.28(reflect-metadata@0.2.2)(rxjs@7.8.2)(supports-color@7.2.0)
@@ -243,6 +249,84 @@ packages:
243
249
  '@apollographql/graphql-playground-html@1.6.29':
244
250
  resolution: {integrity: sha512-xCcXpoz52rI4ksJSdOCxeOCn2DLocxwHf9dVT/Q90Pte1LX+LY+91SFtJF3KXVHH8kEin+g1KKCQPKBjZJfWNA==}
245
251
 
252
+ '@aws-sdk/checksums@3.1000.29':
253
+ resolution: {integrity: sha512-Dtu0gr4dnATZAPwEYbpCsG+MpLM7OAliy2gTepEFQwl1vZ6DL3QMH2FveMa3HLvPsOdhJsPRB3KtxVhph9T75A==}
254
+ engines: {node: '>=20.0.0'}
255
+
256
+ '@aws-sdk/client-s3@3.1121.0':
257
+ resolution: {integrity: sha512-hBnoqaVBeWdkgXcJElMXA2yUZWkBCBntu2qmN+tfqmzC+j4LzJC3ox8qIgS2WdMS1cb8UwyBogUVrkRXybNm0A==}
258
+ engines: {node: '>=20.0.0'}
259
+
260
+ '@aws-sdk/core@3.977.9':
261
+ resolution: {integrity: sha512-reqPFEQrZxDZpeGj4PFMepBeR5LGYHRqq/L0motTzgFkCRBA4rFdaVXDSLYyGHhxVz7sT2PDnPN9CluGSfgyJA==}
262
+ engines: {node: '>=20.0.0'}
263
+
264
+ '@aws-sdk/credential-provider-env@3.972.70':
265
+ resolution: {integrity: sha512-H404B7dJl2mCrBqahDEYsanB0xhdDp6tXnXcTUnXmmpy2Q3J0Ho0bUajZ2jr/RdwzCyS59Gi8xXIFwPLGBl6Uw==}
266
+ engines: {node: '>=20.0.0'}
267
+
268
+ '@aws-sdk/credential-provider-http@3.972.72':
269
+ resolution: {integrity: sha512-X98zYOrVOeuosCX+6ktf29FC2N2GHPLia7qv6mzPzTc+RPAuHWCDS++Z6JK7eGYqb/v6uaW7bAXaOvDBfol+0w==}
270
+ engines: {node: '>=20.0.0'}
271
+
272
+ '@aws-sdk/credential-provider-ini@3.973.15':
273
+ resolution: {integrity: sha512-Rykg6s5ceBuynMOGWgoowO4N+27JfnqXAnVaSunZl0hOO1XodSrxGNz6sCEbnmS0lAfQZDKyb3fbr46gSuv6Sg==}
274
+ engines: {node: '>=20.0.0'}
275
+
276
+ '@aws-sdk/credential-provider-login@3.972.77':
277
+ resolution: {integrity: sha512-Jb59xfEISoN5mmbnA+HYqdtrSX3CgCtJoof+V5D8/TgUI56W63GEEd5Y58WijU3Ou6+WEgaLD1feVzaRXV5IDQ==}
278
+ engines: {node: '>=20.0.0'}
279
+
280
+ '@aws-sdk/credential-provider-node@3.972.81':
281
+ resolution: {integrity: sha512-Rml+WitoFvXmv6JZ18U/xGdGDGGvB/mOin0ya0lTnTrdC0Z1lrVxTYh7iNklZBcvcRMrs4DoEf6xy1KWyrLQQw==}
282
+ engines: {node: '>=20.0.0'}
283
+
284
+ '@aws-sdk/credential-provider-process@3.972.70':
285
+ resolution: {integrity: sha512-2ry03fGRJr4sV3jI+ocjj5JqALnFD6ymM5KiNCDZMvq8bX2GSbE0vji4aM43TVCl2nXqqLRZaUxdq/KeWRAY4Q==}
286
+ engines: {node: '>=20.0.0'}
287
+
288
+ '@aws-sdk/credential-provider-sso@3.973.14':
289
+ resolution: {integrity: sha512-jkhg/8ocAAoc0RFyLMhCw+/zZh7gystQgd4F4hznNa8P4Cc501PQmxd+jGLiMHodPJ+7Zv/3znM62gZojyasmA==}
290
+ engines: {node: '>=20.0.0'}
291
+
292
+ '@aws-sdk/credential-provider-web-identity@3.972.76':
293
+ resolution: {integrity: sha512-d3AGyVu759PGr35mEB2s22xxlNEA5rpdxtSPJthfPFJvoQ8dt357iVPECqWfUxXp1toJAvKmbtcIYVGigaGsCA==}
294
+ engines: {node: '>=20.0.0'}
295
+
296
+ '@aws-sdk/lib-storage@3.1121.0':
297
+ resolution: {integrity: sha512-sx86QqM0/HjKNCS5eQGcaP9Q8GKg3FtCExO/6FfGyw00JNUsFJPmEKNCJIkWY7OmKS9jIOuJe/DtAgfr/+G/bQ==}
298
+ engines: {node: '>=20.0.0'}
299
+ peerDependencies:
300
+ '@aws-sdk/client-s3': ^3.1121.0
301
+
302
+ '@aws-sdk/middleware-sdk-s3@3.972.75':
303
+ resolution: {integrity: sha512-wMIsNumRVKaNMKhvU/s9VrdEwE8S6gSzXp4RygFG5BEMnGkkXf8cjh8zf7cKJBpUDpqTWqwbz5isEgp9rH6Lng==}
304
+ engines: {node: '>=20.0.0'}
305
+
306
+ '@aws-sdk/nested-clients@3.997.44':
307
+ resolution: {integrity: sha512-NhEgryjlBF9w38ZXqGymQV28IhkYa1mKhlbYnqIis57AYwWGVYfUPgg/qC2rLRqOUfblxx++irvju10kVTa8Vw==}
308
+ engines: {node: '>=20.0.0'}
309
+
310
+ '@aws-sdk/signature-v4-multi-region@3.996.46':
311
+ resolution: {integrity: sha512-L+2xZTye/2T96f3lwCws0Zw6GG2JHZW9e8FpVgGBeeExSKyeoZ6CWRpBml/7DNiK/O26jrgPM9F+Ay8VkgzUWQ==}
312
+ engines: {node: '>=20.0.0'}
313
+
314
+ '@aws-sdk/token-providers@3.1116.0':
315
+ resolution: {integrity: sha512-ygIivKqh8aHzNkucOCXHyIBgBpLPfrSI0mCqXF+vLBsPTUKqj0VSqAY0GFPe7lQl4HntjOcQ+KSyS7oUV2C54Q==}
316
+ engines: {node: '>=20.0.0'}
317
+
318
+ '@aws-sdk/types@3.974.5':
319
+ resolution: {integrity: sha512-LkwLL2BLbC6wNNm4JaH9mbEqBMdOZCct6VAYqhdN4U1xrWM+fUJQEfbHwQgDypapOWTRtlk25akb5afM0P8CIQ==}
320
+ engines: {node: '>=20.0.0'}
321
+
322
+ '@aws-sdk/xml-builder@3.972.40':
323
+ resolution: {integrity: sha512-wlFmCIGUlwF4zx/kncw+bmxTQh1HeSJq4mYV/V5cZUSJadDP3kXvGW8Rn21cimj/7y9ju+47oYWXi97vF7czaA==}
324
+ engines: {node: '>=20.0.0'}
325
+
326
+ '@aws/lambda-invoke-store@0.3.0':
327
+ resolution: {integrity: sha512-sl4Bm6yiMNYrZKkqqDFWN0UfnWhlS8ivKxrYl+6t0gCLrqr8y3B2IqZZbFRkfaVVp7C/baApyh71P+LeE1A2sQ==}
328
+ engines: {node: '>=18.0.0'}
329
+
246
330
  '@babel/code-frame@7.29.7':
247
331
  resolution: {integrity: sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw==}
248
332
  engines: {node: '>=6.9.0'}
@@ -1986,6 +2070,30 @@ packages:
1986
2070
  resolution: {integrity: sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==}
1987
2071
  engines: {node: '>=18'}
1988
2072
 
2073
+ '@smithy/core@3.33.3':
2074
+ resolution: {integrity: sha512-CsOeKq/9kA3y6VJHt+/+VTCtBaxJ4OTFpgrjIUhPpDIKxBci1k2bJaQASF2h/ELWrulGp+t97DZ0mevfAD8idg==}
2075
+ engines: {node: '>=18.0.0'}
2076
+
2077
+ '@smithy/credential-provider-imds@4.5.2':
2078
+ resolution: {integrity: sha512-A9uSdn72ozbRUSit0eib0TW7nXuNPlaeM0zcGkJ+nE6tFcSDbnmtwoxbTCFBukVQcszDAyvsd7+rTduPTXpygg==}
2079
+ engines: {node: '>=18.0.0'}
2080
+
2081
+ '@smithy/fetch-http-handler@5.7.2':
2082
+ resolution: {integrity: sha512-nZyWTmSpJEXl6VtWVMBJve/7x12DZu6sIX1z1a+ZMaHlQQRs9Zpu6NbTe/gmxYXVRpkjxyDYpZ5gx2IM6f/Wkw==}
2083
+ engines: {node: '>=18.0.0'}
2084
+
2085
+ '@smithy/node-http-handler@4.11.3':
2086
+ resolution: {integrity: sha512-2jY1tSpERfPfWqyBV2pH+iGFaghVsIJszJNsT7hxtQYhVJpWDyc0LqOWI+nXOxOAHaEfZ4PXXtp1wW1TGpHhkA==}
2087
+ engines: {node: '>=18.0.0'}
2088
+
2089
+ '@smithy/signature-v4@5.7.3':
2090
+ resolution: {integrity: sha512-7ImGm+FkHRLcBaRttIAMZ6bzJZWb2cJGoYjq46F2UjycujWzrL9GEN9h4w7eQyXJYnltrUhxbbieBAIRrdqpow==}
2091
+ engines: {node: '>=18.0.0'}
2092
+
2093
+ '@smithy/types@4.17.2':
2094
+ resolution: {integrity: sha512-FOKpVZob9MPTn2znRzGrnsMHv7BOsKVw3XiP/cOyYLDVZ9qKp4nifIiSCuUU/fIj5Vu0UOAxCFr+qRAtG0NUkA==}
2095
+ engines: {node: '>=18.0.0'}
2096
+
1989
2097
  '@sqltools/formatter@1.2.5':
1990
2098
  resolution: {integrity: sha512-Uy0+khmZqUrUGm5dmMqVlnvufZRSK0FbYzVgp0UMstm+F5+W2/jnEEQyc9vo1ZR/E5ZI/B1WjjoTqBqwJL6Krw==}
1991
2099
 
@@ -3079,6 +3187,9 @@ packages:
3079
3187
  boolbase@1.0.0:
3080
3188
  resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==}
3081
3189
 
3190
+ bowser@2.14.1:
3191
+ resolution: {integrity: sha512-tzPjzCxygAKWFOJP011oxFHs57HzIhOEracIgAePE4pqB3LikALKnSzUyU4MGs9/iCEUuHlAJTjTc5M+u7YEGg==}
3192
+
3082
3193
  brace-expansion@1.1.18:
3083
3194
  resolution: {integrity: sha512-Edep/X9fGqVNmzKBVsDYIOtD+z1tuezV70LBjdCst9Tqu76lsnvRiZ6oTic1n+/BIwX6QDGAO94PN4N2SADvtw==}
3084
3195
 
@@ -3101,6 +3212,9 @@ packages:
3101
3212
  buffer-from@1.1.2:
3102
3213
  resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==}
3103
3214
 
3215
+ buffer@5.6.0:
3216
+ resolution: {integrity: sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw==}
3217
+
3104
3218
  buffer@5.7.1:
3105
3219
  resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==}
3106
3220
 
@@ -3988,6 +4102,10 @@ packages:
3988
4102
  eventemitter3@4.0.7:
3989
4103
  resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==}
3990
4104
 
4105
+ events@3.3.0:
4106
+ resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==}
4107
+ engines: {node: '>=0.8.x'}
4108
+
3991
4109
  eventsource-parser@3.1.0:
3992
4110
  resolution: {integrity: sha512-kJezFj9YFAMLeORyi7aCLxLbD5/qWMQnoMVlVPyHIll7lgRJCc3JVln9Vgl9nwQi0YkMnhdGTMNn7CkRRAptMg==}
3993
4111
  engines: {node: '>=18.0.0'}
@@ -6423,6 +6541,9 @@ packages:
6423
6541
  resolution: {integrity: sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==}
6424
6542
  engines: {node: '>= 0.4'}
6425
6543
 
6544
+ stream-browserify@3.0.0:
6545
+ resolution: {integrity: sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==}
6546
+
6426
6547
  streamsearch@1.1.0:
6427
6548
  resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==}
6428
6549
  engines: {node: '>=10.0.0'}
@@ -7337,6 +7458,181 @@ snapshots:
7337
7458
  dependencies:
7338
7459
  xss: 1.0.15
7339
7460
 
7461
+ '@aws-sdk/checksums@3.1000.29':
7462
+ dependencies:
7463
+ '@aws-sdk/core': 3.977.9
7464
+ '@aws-sdk/types': 3.974.5
7465
+ '@smithy/core': 3.33.3
7466
+ '@smithy/types': 4.17.2
7467
+ tslib: 2.8.1
7468
+
7469
+ '@aws-sdk/client-s3@3.1121.0':
7470
+ dependencies:
7471
+ '@aws-sdk/checksums': 3.1000.29
7472
+ '@aws-sdk/core': 3.977.9
7473
+ '@aws-sdk/credential-provider-node': 3.972.81
7474
+ '@aws-sdk/middleware-sdk-s3': 3.972.75
7475
+ '@aws-sdk/signature-v4-multi-region': 3.996.46
7476
+ '@aws-sdk/types': 3.974.5
7477
+ '@smithy/core': 3.33.3
7478
+ '@smithy/fetch-http-handler': 5.7.2
7479
+ '@smithy/node-http-handler': 4.11.3
7480
+ '@smithy/types': 4.17.2
7481
+ tslib: 2.8.1
7482
+
7483
+ '@aws-sdk/core@3.977.9':
7484
+ dependencies:
7485
+ '@aws-sdk/types': 3.974.5
7486
+ '@aws-sdk/xml-builder': 3.972.40
7487
+ '@aws/lambda-invoke-store': 0.3.0
7488
+ '@smithy/core': 3.33.3
7489
+ '@smithy/signature-v4': 5.7.3
7490
+ '@smithy/types': 4.17.2
7491
+ bowser: 2.14.1
7492
+ tslib: 2.8.1
7493
+
7494
+ '@aws-sdk/credential-provider-env@3.972.70':
7495
+ dependencies:
7496
+ '@aws-sdk/core': 3.977.9
7497
+ '@aws-sdk/types': 3.974.5
7498
+ '@smithy/core': 3.33.3
7499
+ '@smithy/types': 4.17.2
7500
+ tslib: 2.8.1
7501
+
7502
+ '@aws-sdk/credential-provider-http@3.972.72':
7503
+ dependencies:
7504
+ '@aws-sdk/core': 3.977.9
7505
+ '@aws-sdk/types': 3.974.5
7506
+ '@smithy/core': 3.33.3
7507
+ '@smithy/fetch-http-handler': 5.7.2
7508
+ '@smithy/node-http-handler': 4.11.3
7509
+ '@smithy/types': 4.17.2
7510
+ tslib: 2.8.1
7511
+
7512
+ '@aws-sdk/credential-provider-ini@3.973.15':
7513
+ dependencies:
7514
+ '@aws-sdk/core': 3.977.9
7515
+ '@aws-sdk/credential-provider-env': 3.972.70
7516
+ '@aws-sdk/credential-provider-http': 3.972.72
7517
+ '@aws-sdk/credential-provider-login': 3.972.77
7518
+ '@aws-sdk/credential-provider-process': 3.972.70
7519
+ '@aws-sdk/credential-provider-sso': 3.973.14
7520
+ '@aws-sdk/credential-provider-web-identity': 3.972.76
7521
+ '@aws-sdk/nested-clients': 3.997.44
7522
+ '@aws-sdk/types': 3.974.5
7523
+ '@smithy/core': 3.33.3
7524
+ '@smithy/credential-provider-imds': 4.5.2
7525
+ '@smithy/types': 4.17.2
7526
+ tslib: 2.8.1
7527
+
7528
+ '@aws-sdk/credential-provider-login@3.972.77':
7529
+ dependencies:
7530
+ '@aws-sdk/core': 3.977.9
7531
+ '@aws-sdk/nested-clients': 3.997.44
7532
+ '@aws-sdk/types': 3.974.5
7533
+ '@smithy/core': 3.33.3
7534
+ '@smithy/types': 4.17.2
7535
+ tslib: 2.8.1
7536
+
7537
+ '@aws-sdk/credential-provider-node@3.972.81':
7538
+ dependencies:
7539
+ '@aws-sdk/credential-provider-env': 3.972.70
7540
+ '@aws-sdk/credential-provider-http': 3.972.72
7541
+ '@aws-sdk/credential-provider-ini': 3.973.15
7542
+ '@aws-sdk/credential-provider-process': 3.972.70
7543
+ '@aws-sdk/credential-provider-sso': 3.973.14
7544
+ '@aws-sdk/credential-provider-web-identity': 3.972.76
7545
+ '@aws-sdk/types': 3.974.5
7546
+ '@smithy/core': 3.33.3
7547
+ '@smithy/credential-provider-imds': 4.5.2
7548
+ '@smithy/types': 4.17.2
7549
+ tslib: 2.8.1
7550
+
7551
+ '@aws-sdk/credential-provider-process@3.972.70':
7552
+ dependencies:
7553
+ '@aws-sdk/core': 3.977.9
7554
+ '@aws-sdk/types': 3.974.5
7555
+ '@smithy/core': 3.33.3
7556
+ '@smithy/types': 4.17.2
7557
+ tslib: 2.8.1
7558
+
7559
+ '@aws-sdk/credential-provider-sso@3.973.14':
7560
+ dependencies:
7561
+ '@aws-sdk/core': 3.977.9
7562
+ '@aws-sdk/nested-clients': 3.997.44
7563
+ '@aws-sdk/token-providers': 3.1116.0
7564
+ '@aws-sdk/types': 3.974.5
7565
+ '@smithy/core': 3.33.3
7566
+ '@smithy/types': 4.17.2
7567
+ tslib: 2.8.1
7568
+
7569
+ '@aws-sdk/credential-provider-web-identity@3.972.76':
7570
+ dependencies:
7571
+ '@aws-sdk/core': 3.977.9
7572
+ '@aws-sdk/nested-clients': 3.997.44
7573
+ '@aws-sdk/types': 3.974.5
7574
+ '@smithy/core': 3.33.3
7575
+ '@smithy/types': 4.17.2
7576
+ tslib: 2.8.1
7577
+
7578
+ '@aws-sdk/lib-storage@3.1121.0(@aws-sdk/client-s3@3.1121.0)':
7579
+ dependencies:
7580
+ '@aws-sdk/client-s3': 3.1121.0
7581
+ '@smithy/core': 3.33.3
7582
+ '@smithy/types': 4.17.2
7583
+ buffer: 5.6.0
7584
+ events: 3.3.0
7585
+ stream-browserify: 3.0.0
7586
+ tslib: 2.8.1
7587
+
7588
+ '@aws-sdk/middleware-sdk-s3@3.972.75':
7589
+ dependencies:
7590
+ '@aws-sdk/core': 3.977.9
7591
+ '@aws-sdk/signature-v4-multi-region': 3.996.46
7592
+ '@aws-sdk/types': 3.974.5
7593
+ '@smithy/core': 3.33.3
7594
+ '@smithy/types': 4.17.2
7595
+ tslib: 2.8.1
7596
+
7597
+ '@aws-sdk/nested-clients@3.997.44':
7598
+ dependencies:
7599
+ '@aws-sdk/core': 3.977.9
7600
+ '@aws-sdk/signature-v4-multi-region': 3.996.46
7601
+ '@aws-sdk/types': 3.974.5
7602
+ '@smithy/core': 3.33.3
7603
+ '@smithy/fetch-http-handler': 5.7.2
7604
+ '@smithy/node-http-handler': 4.11.3
7605
+ '@smithy/types': 4.17.2
7606
+ tslib: 2.8.1
7607
+
7608
+ '@aws-sdk/signature-v4-multi-region@3.996.46':
7609
+ dependencies:
7610
+ '@aws-sdk/types': 3.974.5
7611
+ '@smithy/signature-v4': 5.7.3
7612
+ '@smithy/types': 4.17.2
7613
+ tslib: 2.8.1
7614
+
7615
+ '@aws-sdk/token-providers@3.1116.0':
7616
+ dependencies:
7617
+ '@aws-sdk/core': 3.977.9
7618
+ '@aws-sdk/nested-clients': 3.997.44
7619
+ '@aws-sdk/types': 3.974.5
7620
+ '@smithy/core': 3.33.3
7621
+ '@smithy/types': 4.17.2
7622
+ tslib: 2.8.1
7623
+
7624
+ '@aws-sdk/types@3.974.5':
7625
+ dependencies:
7626
+ '@smithy/types': 4.17.2
7627
+ tslib: 2.8.1
7628
+
7629
+ '@aws-sdk/xml-builder@3.972.40':
7630
+ dependencies:
7631
+ '@smithy/types': 4.17.2
7632
+ tslib: 2.8.1
7633
+
7634
+ '@aws/lambda-invoke-store@0.3.0': {}
7635
+
7340
7636
  '@babel/code-frame@7.29.7':
7341
7637
  dependencies:
7342
7638
  '@babel/helper-validator-identifier': 7.29.7
@@ -8839,6 +9135,39 @@ snapshots:
8839
9135
 
8840
9136
  '@sindresorhus/merge-streams@4.0.0': {}
8841
9137
 
9138
+ '@smithy/core@3.33.3':
9139
+ dependencies:
9140
+ '@smithy/types': 4.17.2
9141
+ tslib: 2.8.1
9142
+
9143
+ '@smithy/credential-provider-imds@4.5.2':
9144
+ dependencies:
9145
+ '@smithy/core': 3.33.3
9146
+ '@smithy/types': 4.17.2
9147
+ tslib: 2.8.1
9148
+
9149
+ '@smithy/fetch-http-handler@5.7.2':
9150
+ dependencies:
9151
+ '@smithy/core': 3.33.3
9152
+ '@smithy/types': 4.17.2
9153
+ tslib: 2.8.1
9154
+
9155
+ '@smithy/node-http-handler@4.11.3':
9156
+ dependencies:
9157
+ '@smithy/core': 3.33.3
9158
+ '@smithy/types': 4.17.2
9159
+ tslib: 2.8.1
9160
+
9161
+ '@smithy/signature-v4@5.7.3':
9162
+ dependencies:
9163
+ '@smithy/core': 3.33.3
9164
+ '@smithy/types': 4.17.2
9165
+ tslib: 2.8.1
9166
+
9167
+ '@smithy/types@4.17.2':
9168
+ dependencies:
9169
+ tslib: 2.8.1
9170
+
8842
9171
  '@sqltools/formatter@1.2.5': {}
8843
9172
 
8844
9173
  '@standard-schema/spec@1.1.0': {}
@@ -10311,6 +10640,8 @@ snapshots:
10311
10640
 
10312
10641
  boolbase@1.0.0: {}
10313
10642
 
10643
+ bowser@2.14.1: {}
10644
+
10314
10645
  brace-expansion@1.1.18:
10315
10646
  dependencies:
10316
10647
  balanced-match: 1.0.2
@@ -10338,6 +10669,11 @@ snapshots:
10338
10669
 
10339
10670
  buffer-from@1.1.2: {}
10340
10671
 
10672
+ buffer@5.6.0:
10673
+ dependencies:
10674
+ base64-js: 1.5.1
10675
+ ieee754: 1.2.1
10676
+
10341
10677
  buffer@5.7.1:
10342
10678
  dependencies:
10343
10679
  base64-js: 1.5.1
@@ -11472,6 +11808,8 @@ snapshots:
11472
11808
 
11473
11809
  eventemitter3@4.0.7: {}
11474
11810
 
11811
+ events@3.3.0: {}
11812
+
11475
11813
  eventsource-parser@3.1.0: {}
11476
11814
 
11477
11815
  eventsource@3.0.7:
@@ -14424,6 +14762,11 @@ snapshots:
14424
14762
  es-errors: 1.3.0
14425
14763
  internal-slot: 1.1.0
14426
14764
 
14765
+ stream-browserify@3.0.0:
14766
+ dependencies:
14767
+ inherits: 2.0.4
14768
+ readable-stream: 3.6.2
14769
+
14427
14770
  streamsearch@1.1.0: {}
14428
14771
 
14429
14772
  strict-event-emitter@0.5.1: {}
@@ -0,0 +1,21 @@
1
+ import { MigrationInterface, QueryRunner } from "typeorm";
2
+
3
+ export class JarShopEmailBrandSchemaParity1788000000000 implements MigrationInterface {
4
+ name = "JarShopEmailBrandSchemaParity1788000000000";
5
+
6
+ async up(queryRunner: QueryRunner): Promise<void> {
7
+ await queryRunner.query(`
8
+ ALTER TABLE "jarshop_email_brand_configuration"
9
+ DROP CONSTRAINT IF EXISTS "FK_jarshop_email_brand_configuration_channel"
10
+ `);
11
+ }
12
+
13
+ async down(queryRunner: QueryRunner): Promise<void> {
14
+ await queryRunner.query(`
15
+ ALTER TABLE "jarshop_email_brand_configuration"
16
+ ADD CONSTRAINT "FK_jarshop_email_brand_configuration_channel"
17
+ FOREIGN KEY ("channelId") REFERENCES "channel"("id")
18
+ ON DELETE CASCADE ON UPDATE CASCADE
19
+ `);
20
+ }
21
+ }
@@ -47,10 +47,10 @@ export class JarShopEmailBrandConfiguration {
47
47
  @Column({ type: "text" })
48
48
  companyAddress!: string;
49
49
 
50
- @Column({ type: "jsonb", default: () => "'[]'::jsonb" })
50
+ @Column({ type: "jsonb", default: [] })
51
51
  enabledEvents!: ConfigurableOrderEmailKind[];
52
52
 
53
- @Column({ type: "jsonb", default: () => "'[]'::jsonb" })
53
+ @Column({ type: "jsonb", default: [] })
54
54
  shippingMethods!: OrderEmailShippingMethodConfiguration[];
55
55
 
56
56
  @CreateDateColumn()
@@ -31,6 +31,7 @@ import {
31
31
  import { toOrderEmailLanguageCode } from "./order-email-delivery-core.js";
32
32
  import {
33
33
  getCourierOrderAlignmentState,
34
+ resolveLocalizedVariantName,
34
35
  resolveShippingMethodCodeForOrderLines,
35
36
  toFulfillmentLifecycleEmailKind,
36
37
  } from "./order-lifecycle-core.js";
@@ -43,6 +44,15 @@ type CancellationHistoryInput = {
43
44
  };
44
45
  };
45
46
 
47
+ export const fulfillmentLifecycleOrderRelations = [
48
+ "customer",
49
+ "lines.productVariant",
50
+ "lines.productVariant.translations",
51
+ "shippingLines.shippingMethod",
52
+ "shippingLines.orderLines",
53
+ "fulfillments.lines",
54
+ ] as const;
55
+
46
56
  @Injectable()
47
57
  export class JarShopOrderEmailLifecycleOutbox
48
58
  implements OnApplicationBootstrap, OnModuleDestroy
@@ -98,13 +108,7 @@ export class JarShopOrderEmailLifecycleOutbox
98
108
  }
99
109
  const orders = await this.connection.getRepository(event.ctx, Order).find({
100
110
  where: { fulfillments: { id: event.fulfillment.id } },
101
- relations: [
102
- "customer",
103
- "lines.productVariant",
104
- "shippingLines.shippingMethod",
105
- "shippingLines.orderLines",
106
- "fulfillments.lines",
107
- ],
111
+ relations: [...fulfillmentLifecycleOrderRelations],
108
112
  });
109
113
 
110
114
  for (const order of orders) {
@@ -138,7 +142,11 @@ export class JarShopOrderEmailLifecycleOutbox
138
142
  shippingMethodCode,
139
143
  fulfillmentId: String(fulfillment.id),
140
144
  trackingCode: fulfillment.trackingCode ?? "",
141
- lines: toEmailLineSnapshots(order.lines, fulfillment.lines),
145
+ lines: toEmailLineSnapshots(
146
+ order.lines,
147
+ fulfillment.lines,
148
+ identity.languageCode,
149
+ ),
142
150
  },
143
151
  });
144
152
  await this.insertOnce(event.ctx, delivery);
@@ -162,7 +170,11 @@ export class JarShopOrderEmailLifecycleOutbox
162
170
  .getRepository(event.ctx, Order)
163
171
  .findOne({
164
172
  where: { id: orderId },
165
- relations: ["customer", "lines.productVariant"],
173
+ relations: [
174
+ "customer",
175
+ "lines.productVariant",
176
+ "lines.productVariant.translations",
177
+ ],
166
178
  });
167
179
  if (!order) return;
168
180
 
@@ -177,7 +189,11 @@ export class JarShopOrderEmailLifecycleOutbox
177
189
  shippingWithTax: order.shippingWithTax,
178
190
  historyEntryId: String(event.entity.id),
179
191
  shippingCancelled: input.data.shippingCancelled,
180
- lines: toEmailLineSnapshots(order.lines, input.data.lines),
192
+ lines: toEmailLineSnapshots(
193
+ order.lines,
194
+ input.data.lines,
195
+ identity.languageCode,
196
+ ),
181
197
  },
182
198
  });
183
199
  await this.insertOnce(event.ctx, delivery);
@@ -293,6 +309,7 @@ export function toEmailLineSnapshots(
293
309
  orderLineId: string | number;
294
310
  quantity: number;
295
311
  }>,
312
+ languageCode: string,
296
313
  ): OrderEmailLineSnapshot[] {
297
314
  return eventLines.map((eventLine) => {
298
315
  const orderLine = orderLines.find(
@@ -302,7 +319,10 @@ export function toEmailLineSnapshots(
302
319
  throw new Error("order lifecycle email line is missing");
303
320
  }
304
321
  return {
305
- name: orderLine.productVariant.name,
322
+ name: resolveLocalizedVariantName(
323
+ orderLine.productVariant.translations,
324
+ languageCode,
325
+ ),
306
326
  quantity: eventLine.quantity,
307
327
  totalWithTax: Math.round(
308
328
  orderLine.proratedUnitPriceWithTax * eventLine.quantity,
@@ -105,6 +105,27 @@ export function toFulfillmentLifecycleEmailKind(
105
105
  return undefined;
106
106
  }
107
107
 
108
+ export function resolveLocalizedVariantName(
109
+ translations: ReadonlyArray<{
110
+ languageCode: string;
111
+ name: string;
112
+ }>,
113
+ languageCode: string,
114
+ ): string {
115
+ const preferredLanguages = [languageCode, "en"];
116
+ for (const preferredLanguage of preferredLanguages) {
117
+ const name = translations.find(
118
+ (translation) => translation.languageCode === preferredLanguage,
119
+ )?.name;
120
+ if (name?.trim()) return name;
121
+ }
122
+ const fallbackName = translations.find((translation) =>
123
+ Boolean(translation.name.trim()),
124
+ )?.name;
125
+ if (fallbackName) return fallbackName;
126
+ throw new Error("order lifecycle email variant translation is missing");
127
+ }
128
+
108
129
  function coverageByOrderLine(lines: readonly FulfillmentCoverage[]) {
109
130
  const coverage = new Map<string, number>();
110
131
  for (const line of lines) {
@@ -1,3 +1,3 @@
1
1
  {
2
- "digest": "sha256:5bad80f81fba2cb39efa1328b8d0555b44e74dabce6f4b0951f48a71b3b3cc69"
2
+ "digest": "sha256:2376fe84803b036833d2afbccd72f9971964a89dd07c6592ef0c06ac07c3e40f"
3
3
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jarwizz/create-jarshop",
3
- "version": "0.1.5",
3
+ "version": "0.1.7",
4
4
  "private": false,
5
5
  "description": "Generate an independent JarShop Client Project.",
6
6
  "license": "MIT",