@vendure-platform/create 0.4.0 → 0.5.0

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.
Files changed (29) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/dist/assets/storefront/messages/de.json +2 -0
  3. package/dist/assets/storefront/messages/en.json +2 -0
  4. package/dist/assets/storefront/package.json +1 -1
  5. package/dist/assets/storefront/src/app/[locale]/(catalog)/product/[slug]/page.tsx +7 -2
  6. package/dist/assets/storefront/src/app/[locale]/account/shared-carts/[id]/activity-feed.tsx +152 -0
  7. package/dist/assets/storefront/src/app/[locale]/account/shared-carts/[id]/add-item-search.tsx +130 -0
  8. package/dist/assets/storefront/src/app/[locale]/account/shared-carts/[id]/add-member-form.tsx +124 -0
  9. package/dist/assets/storefront/src/app/[locale]/account/shared-carts/[id]/members-panel.tsx +240 -0
  10. package/dist/assets/storefront/src/app/[locale]/account/shared-carts/[id]/page.tsx +47 -0
  11. package/dist/assets/storefront/src/app/[locale]/account/shared-carts/[id]/rename-dialog.tsx +96 -0
  12. package/dist/assets/storefront/src/app/[locale]/account/shared-carts/[id]/shared-cart-detail-client.tsx +555 -0
  13. package/dist/assets/storefront/src/app/[locale]/account/shared-carts/actions.ts +260 -0
  14. package/dist/assets/storefront/src/app/[locale]/account/shared-carts/new/new-shared-cart-form.tsx +77 -0
  15. package/dist/assets/storefront/src/app/[locale]/account/shared-carts/new/page.tsx +47 -0
  16. package/dist/assets/storefront/src/app/[locale]/account/shared-carts/page.tsx +263 -0
  17. package/dist/assets/storefront/src/app/[locale]/cart/order-summary.tsx +23 -0
  18. package/dist/assets/storefront/src/components/commerce/account-nav-items.ts +2 -0
  19. package/dist/assets/storefront/src/components/commerce/add-to-shared-cart.tsx +225 -0
  20. package/dist/assets/storefront/src/components/commerce/product-info.tsx +14 -1
  21. package/dist/assets/storefront/src/components/commerce/shared-cart-role.ts +39 -0
  22. package/dist/assets/storefront/src/components/commerce/shared-cart-status-badge.tsx +24 -0
  23. package/dist/assets/storefront/src/graphql-env.d.ts +18 -5
  24. package/dist/assets/storefront/src/lib/vendure/api.ts +8 -4
  25. package/dist/assets/storefront/src/lib/vendure/mutations.ts +96 -0
  26. package/dist/assets/storefront/src/lib/vendure/queries.ts +142 -0
  27. package/dist/assets/storefront/src/schema.graphql +134 -0
  28. package/dist/plugin-registry.js +1 -1
  29. package/package.json +2 -2
@@ -147,6 +147,9 @@ type Query {
147
147
  Check stock availability for all items in a quote before proceeding to checkout.
148
148
  """
149
149
  quoteStockCheck(quoteId: ID!): QuoteStockCheckResult!
150
+ mySharedCarts(options: SharedCartListOptions): SharedCartList!
151
+ companySharedCarts(options: SharedCartListOptions): SharedCartList!
152
+ sharedCart(id: ID!): SharedCart
150
153
 
151
154
  """
152
155
  Fetch a single product variant by ID. Supports draft mode preview via the DraftModeInterceptor.
@@ -499,6 +502,17 @@ type Mutation {
499
502
  Cancel an in-progress quote checkout. Clears the active quote order marker.
500
503
  """
501
504
  cancelQuoteCheckout: Boolean!
505
+ createSharedCart(input: CreateSharedCartInput!): SharedCart!
506
+ updateSharedCart(input: UpdateSharedCartInput!): SharedCart!
507
+ deleteSharedCart(id: ID!): DeletionResponse!
508
+ addItemToSharedCart(sharedCartId: ID!, productVariantId: ID!, quantity: Int!): SharedCart!
509
+ adjustSharedCartLine(sharedCartId: ID!, lineId: ID!, quantity: Int!): SharedCart!
510
+ removeSharedCartLine(sharedCartId: ID!, lineId: ID!): SharedCart!
511
+ addSharedCartMember(input: CreateSharedCartMemberInput!): SharedCart!
512
+ removeSharedCartMember(sharedCartId: ID!, customerId: ID!): SharedCart!
513
+ setSharedCartMemberRole(input: UpdateSharedCartMemberInput!): SharedCart!
514
+ transferSharedCartOwnership(sharedCartId: ID!, newOwnerCustomerId: ID!): SharedCart!
515
+ initiateSharedCartCheckout(sharedCartId: ID!): SharedCart!
502
516
  addProductConfigurationToOrder(input: AddProductConfigurationToOrderInput!): ProductConfiguration!
503
517
 
504
518
  """
@@ -1165,6 +1179,9 @@ enum Permission {
1165
1179
  """Grants permission to delete QuoteManagement"""
1166
1180
  DeleteQuoteManagement
1167
1181
 
1182
+ """Allows administrators to view and manage all shared carts"""
1183
+ SharedCart
1184
+
1168
1185
  """Grants permission to create PriceList"""
1169
1186
  CreatePriceList
1170
1187
 
@@ -5311,6 +5328,100 @@ input RequestQuoteInput {
5311
5328
  note: String
5312
5329
  }
5313
5330
 
5331
+ enum SharedCartRole {
5332
+ view
5333
+ edit
5334
+ checkout
5335
+ }
5336
+
5337
+ enum SharedCartStatus {
5338
+ Open
5339
+ Locked
5340
+ Closed
5341
+ }
5342
+
5343
+ type SharedCart implements Node {
5344
+ id: ID!
5345
+ createdAt: DateTime!
5346
+ updatedAt: DateTime!
5347
+ name: String!
5348
+ description: String
5349
+ status: SharedCartStatus!
5350
+ order: Order!
5351
+ members: [SharedCartMember!]!
5352
+ activity: [SharedCartActivity!]!
5353
+ owner: Customer!
5354
+ companyId: ID!
5355
+ businessUnitId: ID
5356
+ }
5357
+
5358
+ type SharedCartMember implements Node {
5359
+ id: ID!
5360
+ createdAt: DateTime!
5361
+ updatedAt: DateTime!
5362
+ customer: Customer!
5363
+ role: SharedCartRole!
5364
+ }
5365
+
5366
+ type SharedCartActivity implements Node {
5367
+ id: ID!
5368
+ createdAt: DateTime!
5369
+ updatedAt: DateTime!
5370
+ actor: Customer
5371
+ actorLabel: String!
5372
+ action: String!
5373
+ targetLineId: ID
5374
+ targetCustomer: Customer
5375
+ detail: JSON
5376
+ }
5377
+
5378
+ type SharedCartList implements PaginatedList {
5379
+ items: [SharedCart!]!
5380
+ totalItems: Int!
5381
+ }
5382
+
5383
+ input SharedCartListOptions {
5384
+ """Skips the first n results, for use in pagination"""
5385
+ skip: Int
5386
+
5387
+ """Takes n results, for use in pagination"""
5388
+ take: Int
5389
+
5390
+ """Specifies which properties to sort the results by"""
5391
+ sort: SharedCartSortParameter
5392
+
5393
+ """Allows the results to be filtered"""
5394
+ filter: SharedCartFilterParameter
5395
+
5396
+ """
5397
+ Specifies whether multiple top-level "filter" fields should be combined with a logical AND or OR operation. Defaults to AND.
5398
+ """
5399
+ filterOperator: LogicalOperator
5400
+ }
5401
+
5402
+ input CreateSharedCartInput {
5403
+ name: String!
5404
+ description: String
5405
+ }
5406
+
5407
+ input UpdateSharedCartInput {
5408
+ id: ID!
5409
+ name: String
5410
+ description: String
5411
+ }
5412
+
5413
+ input CreateSharedCartMemberInput {
5414
+ sharedCartId: ID!
5415
+ customerId: ID!
5416
+ role: SharedCartRole!
5417
+ }
5418
+
5419
+ input UpdateSharedCartMemberInput {
5420
+ sharedCartId: ID!
5421
+ customerId: ID!
5422
+ role: SharedCartRole
5423
+ }
5424
+
5314
5425
  type PriceTier {
5315
5426
  minQuantity: Int!
5316
5427
  price: Money!
@@ -5965,6 +6076,29 @@ input QuoteSortParameter {
5965
6076
  convertedOrderId: SortOrder
5966
6077
  }
5967
6078
 
6079
+ input SharedCartFilterParameter {
6080
+ id: IDOperators
6081
+ createdAt: DateOperators
6082
+ updatedAt: DateOperators
6083
+ name: StringOperators
6084
+ description: StringOperators
6085
+ status: StringOperators
6086
+ companyId: IDOperators
6087
+ businessUnitId: IDOperators
6088
+ _and: [SharedCartFilterParameter!]
6089
+ _or: [SharedCartFilterParameter!]
6090
+ }
6091
+
6092
+ input SharedCartSortParameter {
6093
+ id: SortOrder
6094
+ createdAt: SortOrder
6095
+ updatedAt: SortOrder
6096
+ name: SortOrder
6097
+ description: SortOrder
6098
+ companyId: SortOrder
6099
+ businessUnitId: SortOrder
6100
+ }
6101
+
5968
6102
  input ApprovalRequestFilterParameter {
5969
6103
  id: IDOperators
5970
6104
  createdAt: DateOperators
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.SELECTABLE_KEYS=exports.ALWAYS_ACTIVE_KEYS=exports.INTERNAL_PACKAGES=exports.pluginRegistry=void 0,exports.getPlugin=o,exports.resolveActivePluginKeys=t;const e=require("@vendure-platform/plugin-meta"),n={"license-guard":{envVars:[{name:"VENDURE_PLATFORM_LICENSE_TOKEN",defaultValue:"dev-license-token"}],platformOptionsBlock:"licenseGuard: {\n token: process.env.VENDURE_PLATFORM_LICENSE_TOKEN,\n }"},"org-hierarchy":{envVars:[],platformOptionsBlock:""},"advanced-search":{envVars:[{name:"TYPESENSE_API_KEY",defaultValue:"your-typesense-api-key"},{name:"TYPESENSE_HOST",defaultValue:"localhost"},{name:"TYPESENSE_PORT",defaultValue:"8108"},{name:"TYPESENSE_PROTOCOL",defaultValue:"http"}],platformOptionsBlock:"advancedSearch: {\n typeSenseClientOptions: {\n apiKey: process.env.TYPESENSE_API_KEY as string,\n nodes: [\n {\n host: process.env.TYPESENSE_HOST as string,\n port: Number(process.env.TYPESENSE_PORT ?? 8108),\n protocol: (process.env.TYPESENSE_PROTOCOL ?? 'http') as 'http' | 'https',\n },\n ],\n },\n analytics: {\n analyticsStrategy: new SqlAnalyticsStrategy(),\n },\n }",platformImports:["import { SqlAnalyticsStrategy } from '@vendure-platform/advanced-search';"]},"workflow-engine":{envVars:[{name:"WORKFLOW_ENGINE_SCHEMA",defaultValue:"dbos"}],platformOptionsBlock:"workflowEngine: {\n databaseConnection: {\n host: process.env.DB_HOST ?? 'localhost',\n port: Number(process.env.DB_PORT ?? 5432),\n database: process.env.DB_NAME ?? 'vendure',\n username: process.env.DB_USERNAME ?? 'vendure',\n password: process.env.DB_PASSWORD ?? 'vendure',\n ssl: process.env.APP_ENV === 'production',\n },\n systemDatabaseSchemaName: process.env.WORKFLOW_ENGINE_SCHEMA ?? 'dbos',\n applicationVersion: 'v1',\n }"},"approval-workflows":{envVars:[],platformOptionsBlock:""},"global-search":{envVars:[],platformOptionsBlock:""},"entity-access-control":{envVars:[],platformOptionsBlock:""},"tax-id-management":{envVars:[],platformOptionsBlock:""},"shopping-list":{envVars:[],platformOptionsBlock:""},"quick-order":{envVars:[],platformOptionsBlock:""},"reorder-from-history":{envVars:[],platformOptionsBlock:""},"store-credit":{envVars:[],platformOptionsBlock:"storeCredit: {\n availableFontStacks: [\n 'Arial, Helvetica Neue, Helvetica, sans-serif',\n 'Impact, Charcoal, sans-serif',\n ],\n createDefaultGiftCardProduct: {\n name: 'Gift Card',\n sku: 'GC01',\n },\n }"},"quote-management":{envVars:[],platformOptionsBlock:""},"price-rules":{envVars:[],platformOptionsBlock:""},"packaging-units":{envVars:[],platformOptionsBlock:""},"content-versioning":{envVars:[],platformOptionsBlock:""},configurator:{envVars:[],platformOptionsBlock:""},sso:{envVars:[{name:"GOOGLE_CLIENT_ID",defaultValue:""},{name:"GOOGLE_CLIENT_SECRET",defaultValue:""},{name:"VENDURE_HOST",defaultValue:"http://localhost:3500"}],platformOptionsBlock:"sso: {\n vendureHost: process.env.VENDURE_HOST ?? 'http://localhost:3500',\n providers: [\n {\n type: 'oidc',\n id: 'google',\n displayName: 'Google SSO',\n issuerUrl: 'https://accounts.google.com',\n clientId: process.env.GOOGLE_CLIENT_ID ?? '',\n clientSecret: process.env.GOOGLE_CLIENT_SECRET ?? '',\n scopes: ['openid', 'profile', 'email'],\n },\n ],\n }"},"audit-trail":{envVars:[],platformOptionsBlock:"auditTrail: (defaults) => ({\n ...defaults,\n logSink: new DatabaseLogSink({\n dataSourceOptions: {\n type: 'postgres',\n host: process.env.DB_HOST ?? 'localhost',\n port: Number(process.env.DB_PORT ?? 5432),\n database: process.env.DB_NAME ?? 'vendure',\n schema: process.env.AUDIT_LOG_SCHEMA ?? 'audit_trail',\n username: process.env.DB_USERNAME ?? 'vendure',\n password: process.env.DB_PASSWORD ?? 'vendure',\n synchronize: true,\n },\n }),\n })",platformImports:["import { DatabaseLogSink } from '@vendure-platform/audit-trail';"]},punchout:{envVars:[{name:"PUNCHOUT_STOREFRONT_URL",defaultValue:"http://localhost:3000"}],platformOptionsBlock:"punchout: {\n storefrontUrl: process.env.PUNCHOUT_STOREFRONT_URL ?? 'http://localhost:3000',\n }"}};function o(e){return exports.pluginRegistry.find(n=>n.key===e)}function t(e){const n=new Set(exports.ALWAYS_ACTIVE_KEYS);for(const t of e){if(!o(t))throw new Error(`Unknown plugin key: "${t}"`);n.add(t)}return exports.pluginRegistry.filter(e=>n.has(e.key)).map(e=>e.key)}exports.pluginRegistry=e.PLUGIN_META.map(e=>({...e,...n[e.key]})),exports.INTERNAL_PACKAGES=[{packageName:"@vendure-platform/platform"},{packageName:"@vendure-platform/integration"},{packageName:"@vendure-platform/demo-center"}],exports.ALWAYS_ACTIVE_KEYS=exports.pluginRegistry.filter(e=>"core"===e.tier||"core-requires-config"===e.tier).map(e=>e.key),exports.SELECTABLE_KEYS=exports.pluginRegistry.filter(e=>"core"!==e.tier&&"core-requires-config"!==e.tier).map(e=>e.key);
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.SELECTABLE_KEYS=exports.ALWAYS_ACTIVE_KEYS=exports.INTERNAL_PACKAGES=exports.pluginRegistry=void 0,exports.getPlugin=o,exports.resolveActivePluginKeys=t;const e=require("@vendure-platform/plugin-meta"),n={"license-guard":{envVars:[{name:"VENDURE_PLATFORM_LICENSE_TOKEN",defaultValue:"dev-license-token"}],platformOptionsBlock:"licenseGuard: {\n token: process.env.VENDURE_PLATFORM_LICENSE_TOKEN,\n }"},"org-hierarchy":{envVars:[],platformOptionsBlock:""},"advanced-search":{envVars:[{name:"TYPESENSE_API_KEY",defaultValue:"your-typesense-api-key"},{name:"TYPESENSE_HOST",defaultValue:"localhost"},{name:"TYPESENSE_PORT",defaultValue:"8108"},{name:"TYPESENSE_PROTOCOL",defaultValue:"http"}],platformOptionsBlock:"advancedSearch: {\n typeSenseClientOptions: {\n apiKey: process.env.TYPESENSE_API_KEY as string,\n nodes: [\n {\n host: process.env.TYPESENSE_HOST as string,\n port: Number(process.env.TYPESENSE_PORT ?? 8108),\n protocol: (process.env.TYPESENSE_PROTOCOL ?? 'http') as 'http' | 'https',\n },\n ],\n },\n analytics: {\n analyticsStrategy: new SqlAnalyticsStrategy(),\n },\n }",platformImports:["import { SqlAnalyticsStrategy } from '@vendure-platform/advanced-search';"]},"workflow-engine":{envVars:[{name:"WORKFLOW_ENGINE_SCHEMA",defaultValue:"dbos"}],platformOptionsBlock:"workflowEngine: {\n databaseConnection: {\n host: process.env.DB_HOST ?? 'localhost',\n port: Number(process.env.DB_PORT ?? 5432),\n database: process.env.DB_NAME ?? 'vendure',\n username: process.env.DB_USERNAME ?? 'vendure',\n password: process.env.DB_PASSWORD ?? 'vendure',\n ssl: process.env.APP_ENV === 'production',\n },\n systemDatabaseSchemaName: process.env.WORKFLOW_ENGINE_SCHEMA ?? 'dbos',\n applicationVersion: 'v1',\n }"},"approval-workflows":{envVars:[],platformOptionsBlock:""},"global-search":{envVars:[],platformOptionsBlock:""},"entity-access-control":{envVars:[],platformOptionsBlock:""},"tax-id-management":{envVars:[],platformOptionsBlock:""},"shopping-list":{envVars:[],platformOptionsBlock:""},"quick-order":{envVars:[],platformOptionsBlock:""},"reorder-from-history":{envVars:[],platformOptionsBlock:""},"store-credit":{envVars:[],platformOptionsBlock:"storeCredit: {\n availableFontStacks: [\n 'Arial, Helvetica Neue, Helvetica, sans-serif',\n 'Impact, Charcoal, sans-serif',\n ],\n createDefaultGiftCardProduct: {\n name: 'Gift Card',\n sku: 'GC01',\n },\n }"},"quote-management":{envVars:[],platformOptionsBlock:""},"shared-carts":{envVars:[],platformOptionsBlock:""},"price-rules":{envVars:[],platformOptionsBlock:""},"packaging-units":{envVars:[],platformOptionsBlock:""},"product-types":{envVars:[],platformOptionsBlock:""},"content-versioning":{envVars:[],platformOptionsBlock:""},configurator:{envVars:[],platformOptionsBlock:""},sso:{envVars:[{name:"GOOGLE_CLIENT_ID",defaultValue:""},{name:"GOOGLE_CLIENT_SECRET",defaultValue:""},{name:"VENDURE_HOST",defaultValue:"http://localhost:3500"}],platformOptionsBlock:"sso: {\n vendureHost: process.env.VENDURE_HOST ?? 'http://localhost:3500',\n providers: [\n {\n type: 'oidc',\n id: 'google',\n displayName: 'Google SSO',\n issuerUrl: 'https://accounts.google.com',\n clientId: process.env.GOOGLE_CLIENT_ID ?? '',\n clientSecret: process.env.GOOGLE_CLIENT_SECRET ?? '',\n scopes: ['openid', 'profile', 'email'],\n },\n ],\n }"},"audit-trail":{envVars:[],platformOptionsBlock:"auditTrail: (defaults) => ({\n ...defaults,\n logSink: new DatabaseLogSink({\n dataSourceOptions: {\n type: 'postgres',\n host: process.env.DB_HOST ?? 'localhost',\n port: Number(process.env.DB_PORT ?? 5432),\n database: process.env.DB_NAME ?? 'vendure',\n schema: process.env.AUDIT_LOG_SCHEMA ?? 'audit_trail',\n username: process.env.DB_USERNAME ?? 'vendure',\n password: process.env.DB_PASSWORD ?? 'vendure',\n synchronize: true,\n },\n }),\n })",platformImports:["import { DatabaseLogSink } from '@vendure-platform/audit-trail';"]},punchout:{envVars:[{name:"PUNCHOUT_STOREFRONT_URL",defaultValue:"http://localhost:3000"}],platformOptionsBlock:"punchout: {\n storefrontUrl: process.env.PUNCHOUT_STOREFRONT_URL ?? 'http://localhost:3000',\n }"}};function o(e){return exports.pluginRegistry.find(n=>n.key===e)}function t(e){const n=new Set(exports.ALWAYS_ACTIVE_KEYS);for(const t of e){if(!o(t))throw new Error(`Unknown plugin key: "${t}"`);n.add(t)}return exports.pluginRegistry.filter(e=>n.has(e.key)).map(e=>e.key)}exports.pluginRegistry=e.PLUGIN_META.map(e=>({...e,...n[e.key]})),exports.INTERNAL_PACKAGES=[{packageName:"@vendure-platform/platform"},{packageName:"@vendure-platform/integration"},{packageName:"@vendure-platform/demo-center"}],exports.ALWAYS_ACTIVE_KEYS=exports.pluginRegistry.filter(e=>"core"===e.tier||"core-requires-config"===e.tier).map(e=>e.key),exports.SELECTABLE_KEYS=exports.pluginRegistry.filter(e=>"core"!==e.tier&&"core-requires-config"!==e.tier).map(e=>e.key);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vendure-platform/create",
3
- "version": "0.4.0",
3
+ "version": "0.5.0",
4
4
  "description": "CLI tool to scaffold a Vendure demo project with Vendure Platform plugins",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -38,7 +38,7 @@
38
38
  },
39
39
  "dependencies": {
40
40
  "@clack/prompts": "^0.10.0",
41
- "@vendure-platform/plugin-meta": "0.4.0",
41
+ "@vendure-platform/plugin-meta": "0.5.0",
42
42
  "commander": "^13.1.0",
43
43
  "fs-extra": "^11.3.0",
44
44
  "handlebars": "^4.7.8",