@vendure-platform/create 0.2.1-nightly.202605191555 → 0.2.1

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 (124) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/dist/assets/storefront/next.config.ts +1 -19
  3. package/dist/assets/storefront/package.json +1 -3
  4. package/dist/assets/storefront/src/components/commerce/packaging-unit-selector.tsx +6 -1
  5. package/dist/assets/storefront/src/components/commerce/product-info.tsx +4 -4
  6. package/dist/assets/storefront/src/graphql-env.d.ts +25 -22
  7. package/dist/assets/storefront/src/lib/vendure/queries.ts +6 -0
  8. package/dist/assets/storefront/src/schema.graphql +204 -111
  9. package/dist/assets/templates/README.md.hbs +5 -0
  10. package/dist/assets/templates/environment.d.ts.hbs +3 -0
  11. package/dist/assets/templates/populate.ts.hbs +1 -14
  12. package/dist/assets/templates/server-package.json.hbs +6 -6
  13. package/dist/assets/templates/vendure-config.ts.hbs +9 -3
  14. package/dist/scaffolder.js +1 -1
  15. package/dist/scaffolder.js.map +1 -1
  16. package/dist/storefront-copier.js +4 -1
  17. package/dist/storefront-copier.js.map +1 -1
  18. package/dist/template-renderer.d.ts +32 -1
  19. package/dist/template-renderer.js +39 -4
  20. package/dist/template-renderer.js.map +1 -1
  21. package/package.json +2 -2
  22. package/dist/assets/demo-data/assets/branding/logo.svg +0 -4
  23. package/dist/assets/demo-data/assets/images/absorbent-pad.webp +0 -0
  24. package/dist/assets/demo-data/assets/images/adjustable-wrench.webp +0 -0
  25. package/dist/assets/demo-data/assets/images/anchor-bolt.webp +0 -0
  26. package/dist/assets/demo-data/assets/images/angle-grinder.webp +0 -0
  27. package/dist/assets/demo-data/assets/images/barrier-tape.webp +0 -0
  28. package/dist/assets/demo-data/assets/images/bench-grinder.webp +0 -0
  29. package/dist/assets/demo-data/assets/images/bracket.webp +0 -0
  30. package/dist/assets/demo-data/assets/images/broom.webp +0 -0
  31. package/dist/assets/demo-data/assets/images/bucket.webp +0 -0
  32. package/dist/assets/demo-data/assets/images/cable-gland.webp +0 -0
  33. package/dist/assets/demo-data/assets/images/cable-tie.webp +0 -0
  34. package/dist/assets/demo-data/assets/images/cable-tray.webp +0 -0
  35. package/dist/assets/demo-data/assets/images/cable.webp +0 -0
  36. package/dist/assets/demo-data/assets/images/chimney-base-kit.webp +0 -0
  37. package/dist/assets/demo-data/assets/images/chimney-cowl-bird-guard.webp +0 -0
  38. package/dist/assets/demo-data/assets/images/chimney-cowl-open.webp +0 -0
  39. package/dist/assets/demo-data/assets/images/chimney-storm-collar.webp +0 -0
  40. package/dist/assets/demo-data/assets/images/chimney-wall-bracket.webp +0 -0
  41. package/dist/assets/demo-data/assets/images/circular-saw.webp +0 -0
  42. package/dist/assets/demo-data/assets/images/cleaning-spray.webp +0 -0
  43. package/dist/assets/demo-data/assets/images/conduit.webp +0 -0
  44. package/dist/assets/demo-data/assets/images/cordless-drill.webp +0 -0
  45. package/dist/assets/demo-data/assets/images/drill-bits.webp +0 -0
  46. package/dist/assets/demo-data/assets/images/dust-mask.webp +0 -0
  47. package/dist/assets/demo-data/assets/images/ear-defenders.webp +0 -0
  48. package/dist/assets/demo-data/assets/images/ear-plugs.webp +0 -0
  49. package/dist/assets/demo-data/assets/images/extension-lead.webp +0 -0
  50. package/dist/assets/demo-data/assets/images/eye-wash-station.webp +0 -0
  51. package/dist/assets/demo-data/assets/images/face-shield.webp +0 -0
  52. package/dist/assets/demo-data/assets/images/file-set.webp +0 -0
  53. package/dist/assets/demo-data/assets/images/first-aid-kit.webp +0 -0
  54. package/dist/assets/demo-data/assets/images/floor-sign.webp +0 -0
  55. package/dist/assets/demo-data/assets/images/flue-bend-45.webp +0 -0
  56. package/dist/assets/demo-data/assets/images/flue-bend-90.webp +0 -0
  57. package/dist/assets/demo-data/assets/images/flue-section-1000mm.webp +0 -0
  58. package/dist/assets/demo-data/assets/images/flue-section-250mm.webp +0 -0
  59. package/dist/assets/demo-data/assets/images/flue-section-500mm.webp +0 -0
  60. package/dist/assets/demo-data/assets/images/fuse.webp +0 -0
  61. package/dist/assets/demo-data/assets/images/glove-dispenser.webp +0 -0
  62. package/dist/assets/demo-data/assets/images/grinding-disc.webp +0 -0
  63. package/dist/assets/demo-data/assets/images/hacksaw.webp +0 -0
  64. package/dist/assets/demo-data/assets/images/hammer.webp +0 -0
  65. package/dist/assets/demo-data/assets/images/hand-sanitiser.webp +0 -0
  66. package/dist/assets/demo-data/assets/images/head-torch.webp +0 -0
  67. package/dist/assets/demo-data/assets/images/heat-gun.webp +0 -0
  68. package/dist/assets/demo-data/assets/images/hex-bolt.webp +0 -0
  69. package/dist/assets/demo-data/assets/images/hex-key-set.webp +0 -0
  70. package/dist/assets/demo-data/assets/images/hex-nut.webp +0 -0
  71. package/dist/assets/demo-data/assets/images/hi-vis-jacket.webp +0 -0
  72. package/dist/assets/demo-data/assets/images/hi-vis-vest.webp +0 -0
  73. package/dist/assets/demo-data/assets/images/hose-clamp.webp +0 -0
  74. package/dist/assets/demo-data/assets/images/impact-driver.webp +0 -0
  75. package/dist/assets/demo-data/assets/images/jigsaw.webp +0 -0
  76. package/dist/assets/demo-data/assets/images/junction-box.webp +0 -0
  77. package/dist/assets/demo-data/assets/images/knee-pads.webp +0 -0
  78. package/dist/assets/demo-data/assets/images/machine-screw.webp +0 -0
  79. package/dist/assets/demo-data/assets/images/made-to-order-configurable-chimney.webp +0 -0
  80. package/dist/assets/demo-data/assets/images/mallet.webp +0 -0
  81. package/dist/assets/demo-data/assets/images/mcb.webp +0 -0
  82. package/dist/assets/demo-data/assets/images/mop.webp +0 -0
  83. package/dist/assets/demo-data/assets/images/paper-towels.webp +0 -0
  84. package/dist/assets/demo-data/assets/images/pipe-wrench.webp +0 -0
  85. package/dist/assets/demo-data/assets/images/pliers-set.webp +0 -0
  86. package/dist/assets/demo-data/assets/images/pry-bar.webp +0 -0
  87. package/dist/assets/demo-data/assets/images/rcd.webp +0 -0
  88. package/dist/assets/demo-data/assets/images/reciprocating-saw.webp +0 -0
  89. package/dist/assets/demo-data/assets/images/rivet.webp +0 -0
  90. package/dist/assets/demo-data/assets/images/roof-flashing-high-pitch.webp +0 -0
  91. package/dist/assets/demo-data/assets/images/roof-flashing-low-pitch.webp +0 -0
  92. package/dist/assets/demo-data/assets/images/safety-boots.webp +0 -0
  93. package/dist/assets/demo-data/assets/images/safety-glasses.webp +0 -0
  94. package/dist/assets/demo-data/assets/images/safety-harness.webp +0 -0
  95. package/dist/assets/demo-data/assets/images/safety-helmet.webp +0 -0
  96. package/dist/assets/demo-data/assets/images/safety-sign.webp +0 -0
  97. package/dist/assets/demo-data/assets/images/sanding-disc.webp +0 -0
  98. package/dist/assets/demo-data/assets/images/saw-blade.webp +0 -0
  99. package/dist/assets/demo-data/assets/images/screwdriver-set.webp +0 -0
  100. package/dist/assets/demo-data/assets/images/screwdriver.webp +0 -0
  101. package/dist/assets/demo-data/assets/images/self-tapping-screw.webp +0 -0
  102. package/dist/assets/demo-data/assets/images/socket-set.webp +0 -0
  103. package/dist/assets/demo-data/assets/images/socket.webp +0 -0
  104. package/dist/assets/demo-data/assets/images/spanner-set.webp +0 -0
  105. package/dist/assets/demo-data/assets/images/spanner.webp +0 -0
  106. package/dist/assets/demo-data/assets/images/spill-kit.webp +0 -0
  107. package/dist/assets/demo-data/assets/images/spirit-level.webp +0 -0
  108. package/dist/assets/demo-data/assets/images/switch.webp +0 -0
  109. package/dist/assets/demo-data/assets/images/tape-measure.webp +0 -0
  110. package/dist/assets/demo-data/assets/images/terminal-block.webp +0 -0
  111. package/dist/assets/demo-data/assets/images/threaded-rod.webp +0 -0
  112. package/dist/assets/demo-data/assets/images/torque-wrench.webp +0 -0
  113. package/dist/assets/demo-data/assets/images/utility-knife.webp +0 -0
  114. package/dist/assets/demo-data/assets/images/wall-pass-sleeve.webp +0 -0
  115. package/dist/assets/demo-data/assets/images/wall-plug.webp +0 -0
  116. package/dist/assets/demo-data/assets/images/washer.webp +0 -0
  117. package/dist/assets/demo-data/assets/images/waste-bin.webp +0 -0
  118. package/dist/assets/demo-data/assets/images/wire-connector.webp +0 -0
  119. package/dist/assets/demo-data/assets/images/wire-cutters.webp +0 -0
  120. package/dist/assets/demo-data/assets/images/wood-screw.webp +0 -0
  121. package/dist/assets/demo-data/assets/images/work-gloves.webp +0 -0
  122. package/dist/assets/demo-data/assets/images/work-light.webp +0 -0
  123. package/dist/assets/demo-data/assets/initial-data.json +0 -667
  124. package/dist/assets/demo-data/assets/products.csv +0 -779
@@ -1 +1 @@
1
- {"version":3,"file":"storefront-copier.js","sourceRoot":"","sources":["../src/storefront-copier.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoCA,wCAeC;AAnDD,+CAAiC;AACjC,6CAA+B;AAC/B,2CAA6B;AAE7B,yCAA4C;AA2B5C;;;;GAIG;AACI,KAAK,UAAU,cAAc,CAChC,UAAkB,EAClB,OAA8B;;IAE9B,MAAM,qBAAqB,GAAG,wBAAwB,EAAE,CAAC;IACzD,MAAM,QAAQ,GACV,OAAO,CAAC,IAAI,KAAK,iBAAiB;QAC9B,CAAC,CAAC,UAAU;QACZ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;IAE9C,MAAM,EAAE,CAAC,IAAI,CAAC,qBAAqB,EAAE,QAAQ,CAAC,CAAC;IAE/C,MAAM,kBAAkB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC5C,MAAM,oBAAoB,CAAC,QAAQ,CAAC,CAAC;IACrC,MAAM,gBAAgB,CAAC,QAAQ,EAAE,MAAA,OAAO,CAAC,WAAW,mCAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;AACrF,CAAC;AAED;;;;;;GAMG;AACH,KAAK,UAAU,oBAAoB,CAAC,aAAqB;IACrD,MAAM,EAAE,CAAC,SAAS,CACd,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,EAClC,8BAA8B,IAAA,yBAAc,GAAE,IAAI,CACrD,CAAC;AACN,CAAC;AAED,KAAK,UAAU,kBAAkB,CAC7B,aAAqB,EACrB,OAA8B;;IAE9B,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACtD,MAAM,QAAQ,GAAG,MAAA,OAAO,CAAC,QAAQ,mCAAI,SAAS,CAAC;IAC/C,MAAM,MAAM,GAAG,MAAA,OAAO,CAAC,MAAM,mCAAI,EAAE,CAAC;IAEpC,MAAM,KAAK,GAAa;QACpB,wDAAwD;QACxD,EAAE;QACF,kEAAkE;QAClE,uBAAuB,MAAM,EAAE;QAC/B,EAAE;QACF,wBAAwB,QAAQ,EAAE;QAClC,EAAE;KACL,CAAC;IAEF,IAAI,MAAM,EAAE,CAAC;QACT,KAAK,CAAC,IAAI,CACN,yBAAyB,EACzB,wBAAwB,MAAM,EAAE,EAChC,EAAE,CACL,CAAC;IACN,CAAC;SAAM,CAAC;QACJ,KAAK,CAAC,IAAI,CACN,gFAAgF,EAChF,0DAA0D,EAC1D,EAAE,CACL,CAAC;IACN,CAAC;IAED,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,YAAY,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACjF,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAC,aAAqB,EAAE,IAAY;IAC/D,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;IACzD,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAAE,OAAO;IAC5C,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACvC,GAAG,CAAC,IAAI,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;IACrC,MAAM,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;AACpD,CAAC;AAED,SAAS,mBAAmB,CAAC,IAAY;IACrC,OAAO,IAAI;SACN,WAAW,EAAE;SACb,OAAO,CAAC,eAAe,EAAE,GAAG,CAAC;SAC7B,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;WACrB,YAAY,CAAC;AACxB,CAAC;AAED,SAAS,wBAAwB;IAC7B,iGAAiG;IACjG,kGAAkG;IAClG,MAAM,UAAU,GAAG;QACf,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,YAAY,CAAC;QAC5C,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,CAAC;KAC7D,CAAC;IACF,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACjC,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC3B,OAAO,SAAS,CAAC;QACrB,CAAC;IACL,CAAC;IACD,MAAM,IAAI,KAAK,CACX,qEAAqE;QACrE,iDAAiD,CACpD,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"storefront-copier.js","sourceRoot":"","sources":["../src/storefront-copier.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,27 @@
1
1
  import Handlebars from 'handlebars';
2
2
  import { PluginDefinition } from './types';
3
+ /**
4
+ * Resolve the dependency spec to emit for every `@vendure-platform/*`
5
+ * dependency in the scaffolded `server/package.json`.
6
+ *
7
+ * Nx Release runs in `projectsRelationship: fixed` mode, so every published
8
+ * `libs/*` package shares one version. We read this CLI's own version from
9
+ * `libs/create/package.json` (relative to this file's compiled location —
10
+ * both `src/` and `dist/` are one level above the package root) and use it
11
+ * as the canonical version anchor:
12
+ *
13
+ * - Stable release (`0.2.0`) → emit `^0.2.0` so customers track
14
+ * minor/patch updates automatically.
15
+ * - Prerelease (`0.2.1-nightly.X`) → emit the `nightly` dist-tag.
16
+ * Pinning to the exact prerelease version is brittle because the
17
+ * nightly publish workflow stamps a new timestamped patch every run,
18
+ * and a customer scaffolded last Tuesday cannot resolve today's
19
+ * timestamp from npm even though both are tagged `nightly`.
20
+ *
21
+ * The override is for tests that need to exercise both shapes without
22
+ * mutating the on-disk `package.json`.
23
+ */
24
+ export declare function resolvePluginVersionSpec(versionOverride?: string): string;
3
25
  export interface TemplateContext {
4
26
  projectName: string;
5
27
  companyName: string;
@@ -29,12 +51,21 @@ export interface TemplateContext {
29
51
  * default. See `registry.ts`.
30
52
  */
31
53
  registryUrl: string;
54
+ /**
55
+ * The npm version spec used for every `@vendure-platform/*` dependency
56
+ * the scaffolder emits. Either `nightly` (for prerelease builds of
57
+ * this CLI) or `^<version>` (for stable releases). See
58
+ * `resolvePluginVersionSpec()`.
59
+ */
60
+ pluginVersionSpec: string;
32
61
  }
33
62
  export interface TemplateContextResult {
34
63
  context: TemplateContext;
35
64
  hbs: typeof Handlebars;
36
65
  }
37
- export declare function buildTemplateContext(projectName: string, companyName: string, selectedPluginKeys: ReadonlyArray<string>, includeStorefront: boolean): TemplateContextResult;
66
+ export declare function buildTemplateContext(projectName: string, companyName: string, selectedPluginKeys: ReadonlyArray<string>, includeStorefront: boolean, options?: {
67
+ versionOverride?: string;
68
+ }): TemplateContextResult;
38
69
  /**
39
70
  * Render a Handlebars template file with the given context.
40
71
  */
@@ -36,6 +36,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
36
36
  return (mod && mod.__esModule) ? mod : { "default": mod };
37
37
  };
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.resolvePluginVersionSpec = resolvePluginVersionSpec;
39
40
  exports.buildTemplateContext = buildTemplateContext;
40
41
  exports.renderTemplate = renderTemplate;
41
42
  exports.getTemplatePath = getTemplatePath;
@@ -44,7 +45,39 @@ const fs = __importStar(require("fs"));
44
45
  const path = __importStar(require("path"));
45
46
  const plugin_registry_1 = require("./plugin-registry");
46
47
  const registry_1 = require("./registry");
47
- function createHandlebarsInstance(resolvedPluginKeys, disabledPluginKeys) {
48
+ /**
49
+ * Resolve the dependency spec to emit for every `@vendure-platform/*`
50
+ * dependency in the scaffolded `server/package.json`.
51
+ *
52
+ * Nx Release runs in `projectsRelationship: fixed` mode, so every published
53
+ * `libs/*` package shares one version. We read this CLI's own version from
54
+ * `libs/create/package.json` (relative to this file's compiled location —
55
+ * both `src/` and `dist/` are one level above the package root) and use it
56
+ * as the canonical version anchor:
57
+ *
58
+ * - Stable release (`0.2.0`) → emit `^0.2.0` so customers track
59
+ * minor/patch updates automatically.
60
+ * - Prerelease (`0.2.1-nightly.X`) → emit the `nightly` dist-tag.
61
+ * Pinning to the exact prerelease version is brittle because the
62
+ * nightly publish workflow stamps a new timestamped patch every run,
63
+ * and a customer scaffolded last Tuesday cannot resolve today's
64
+ * timestamp from npm even though both are tagged `nightly`.
65
+ *
66
+ * The override is for tests that need to exercise both shapes without
67
+ * mutating the on-disk `package.json`.
68
+ */
69
+ function resolvePluginVersionSpec(versionOverride) {
70
+ const version = versionOverride !== null && versionOverride !== void 0 ? versionOverride : readOwnPackageVersion();
71
+ return version.includes('-') ? 'nightly' : `^${version}`;
72
+ }
73
+ function readOwnPackageVersion() {
74
+ // __dirname is `<package>/src` during tests and `<package>/dist` at runtime —
75
+ // both one level above `<package>/package.json`.
76
+ const pkgPath = path.join(__dirname, '..', 'package.json');
77
+ const pkg = JSON.parse(fs.readFileSync(pkgPath, 'utf8'));
78
+ return pkg.version;
79
+ }
80
+ function createHandlebarsInstance(resolvedPluginKeys, disabledPluginKeys, pluginVersionSpec) {
48
81
  const hbs = handlebars_1.default.create();
49
82
  const resolvedSet = new Set(resolvedPluginKeys);
50
83
  hbs.registerHelper('ifPlugin', function (pluginKey, options) {
@@ -54,7 +87,7 @@ function createHandlebarsInstance(resolvedPluginKeys, disabledPluginKeys) {
54
87
  return options.inverse(this);
55
88
  });
56
89
  hbs.registerHelper('pluginDependencies', function () {
57
- const lines = resolvedPluginKeys.map((key) => ` "${(0, plugin_registry_1.getPlugin)(key).packageName}": "nightly"`);
90
+ const lines = resolvedPluginKeys.map((key) => ` "${(0, plugin_registry_1.getPlugin)(key).packageName}": "${pluginVersionSpec}"`);
58
91
  if (lines.length === 0) {
59
92
  return new hbs.SafeString('');
60
93
  }
@@ -93,13 +126,14 @@ function createHandlebarsInstance(resolvedPluginKeys, disabledPluginKeys) {
93
126
  });
94
127
  return hbs;
95
128
  }
96
- function buildTemplateContext(projectName, companyName, selectedPluginKeys, includeStorefront) {
129
+ function buildTemplateContext(projectName, companyName, selectedPluginKeys, includeStorefront, options = {}) {
97
130
  const resolvedPluginKeys = (0, plugin_registry_1.resolveActivePluginKeys)(selectedPluginKeys);
98
131
  const resolvedPlugins = resolvedPluginKeys.map((key) => (0, plugin_registry_1.getPlugin)(key));
99
132
  const resolvedSet = new Set(resolvedPluginKeys);
100
133
  const disabledPluginKeys = plugin_registry_1.pluginRegistry
101
134
  .filter((p) => p.tier === 'optional' && !resolvedSet.has(p.key))
102
135
  .map((p) => p.key);
136
+ const pluginVersionSpec = resolvePluginVersionSpec(options.versionOverride);
103
137
  return {
104
138
  context: {
105
139
  projectName,
@@ -109,8 +143,9 @@ function buildTemplateContext(projectName, companyName, selectedPluginKeys, incl
109
143
  disabledPluginKeys,
110
144
  includeStorefront,
111
145
  registryUrl: (0, registry_1.getRegistryUrl)(),
146
+ pluginVersionSpec,
112
147
  },
113
- hbs: createHandlebarsInstance(resolvedPluginKeys, disabledPluginKeys),
148
+ hbs: createHandlebarsInstance(resolvedPluginKeys, disabledPluginKeys, pluginVersionSpec),
114
149
  };
115
150
  }
116
151
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"template-renderer.js","sourceRoot":"","sources":["../src/template-renderer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"template-renderer.js","sourceRoot":"","sources":["../src/template-renderer.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vendure-platform/create",
3
- "version": "0.2.1-nightly.202605191555",
3
+ "version": "0.2.1",
4
4
  "description": "CLI tool to scaffold a Vendure demo project with Vendure Platform plugins",
5
5
  "license": "UNLICENSED",
6
6
  "repository": {
@@ -37,7 +37,7 @@
37
37
  },
38
38
  "dependencies": {
39
39
  "@clack/prompts": "^0.10.0",
40
- "@vendure-platform/plugin-meta": "0.2.1-nightly.202605191555",
40
+ "@vendure-platform/plugin-meta": "0.2.1",
41
41
  "commander": "^13.1.0",
42
42
  "fs-extra": "^11.3.0",
43
43
  "handlebars": "^4.7.8",
@@ -1,4 +0,0 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 40 27">
2
- <path fill="#17C1FF" d="M10.746 12.008v9.263c0 .166.093.323.237.404l8.407 4.763c.302.17.671.17.973 0l8.407-4.762a.466.466 0 0 0 .237-.405v-9.263a.476.476 0 0 0-.714-.405l-7.93 4.491a.996.996 0 0 1-.973 0l-7.93-4.49a.476.476 0 0 0-.714.404Z"/>
3
- <path fill="#17C1FF" d="M8.893.072.486 4.832A.948.948 0 0 0 0 5.657v9.522c0 .166.092.323.237.405l8.176 4.633a.476.476 0 0 0 .714-.405V10.83c0-.341.185-.655.487-.824l7.93-4.491a.463.463 0 0 0 0-.81L9.366.072a.48.48 0 0 0-.477 0h.003ZM30.86.063l8.407 4.76c.301.17.486.486.486.825v9.522a.469.469 0 0 1-.237.405l-8.176 4.633a.476.476 0 0 1-.714-.405v-8.982a.945.945 0 0 0-.486-.824l-7.93-4.491a.463.463 0 0 1 0-.81L30.386.063a.48.48 0 0 1 .477 0h-.003Z"/>
4
- </svg>