@shoplineos/cli 1.5.2 → 1.5.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.
Files changed (228) hide show
  1. package/dist/commands/auth/index.js +2 -1
  2. package/dist/commands/auth/login.js +2 -1
  3. package/dist/commands/auth/logout.js +2 -1
  4. package/dist/commands/auth/whoami.js +2 -1
  5. package/dist/commands/extension/build.js +2 -1
  6. package/dist/commands/extension/common-options.js +2 -1
  7. package/dist/commands/extension/connect.js +2 -1
  8. package/dist/commands/extension/create.js +2 -1
  9. package/dist/commands/extension/index.js +2 -1
  10. package/dist/commands/extension/push.js +2 -1
  11. package/dist/commands/extension/serve.js +2 -1
  12. package/dist/commands/index.js +2 -1
  13. package/dist/commands/report.js +2 -1
  14. package/dist/commands/theme/check.js +2 -1
  15. package/dist/commands/theme/console.js +2 -1
  16. package/dist/commands/theme/index.js +2 -1
  17. package/dist/commands/theme/init.js +2 -1
  18. package/dist/commands/theme/list.js +2 -1
  19. package/dist/commands/theme/package.js +2 -1
  20. package/dist/commands/theme/pull.js +2 -1
  21. package/dist/commands/theme/push.js +2 -1
  22. package/dist/commands/theme/serve.js +2 -1
  23. package/dist/commands/theme/theme-common-options.js +2 -1
  24. package/dist/eventlistener.d.js +2 -1
  25. package/dist/helpers/config.js +2 -1
  26. package/dist/helpers/monitoring-bootstrap.js +2 -0
  27. package/dist/helpers/monitoring-environment.js +2 -0
  28. package/dist/helpers/open-admin-url.js +2 -1
  29. package/dist/helpers/process-errors.js +2 -0
  30. package/dist/helpers/report.js +2 -1
  31. package/dist/helpers/sentry.js +2 -1
  32. package/dist/helpers/sum.js +2 -1
  33. package/dist/helpers/verify-login.js +2 -1
  34. package/dist/services/auth/logout.js +2 -1
  35. package/dist/services/dev-server/index.js +3 -2
  36. package/dist/services/dev-server/sse.js +2 -1
  37. package/dist/services/dev-server/web/socket-client.js +2 -1
  38. package/dist/services/dev-server-3/index.js +2 -1
  39. package/dist/services/dev-server-3/server.js +3 -2
  40. package/dist/services/dev-server-3/sse.js +2 -1
  41. package/dist/services/dev-server-3/web/socket-client.js +2 -1
  42. package/dist/services/extension/api.js +2 -1
  43. package/dist/services/extension/check-extension-version.js +2 -1
  44. package/dist/services/extension/clone-repo.js +2 -1
  45. package/dist/services/extension/connect/context.js +2 -1
  46. package/dist/services/extension/connect/index.js +2 -1
  47. package/dist/services/extension/connect/validate.js +2 -1
  48. package/dist/services/extension/const.js +2 -1
  49. package/dist/services/extension/context.js +2 -1
  50. package/dist/services/extension/create/index.js +2 -1
  51. package/dist/services/extension/ensure-project-type.js +2 -1
  52. package/dist/services/extension/env.js +2 -1
  53. package/dist/services/extension/extension.js +2 -1
  54. package/dist/services/extension/functions/generate.js +2 -1
  55. package/dist/services/extension/functions/info.js +2 -1
  56. package/dist/services/extension/functions/push.js +2 -1
  57. package/dist/services/extension/functions/schemas.js +2 -1
  58. package/dist/services/extension/generate.js +2 -1
  59. package/dist/services/extension/index.js +2 -1
  60. package/dist/services/extension/inquirer.js +2 -1
  61. package/dist/services/extension/loader.js +2 -1
  62. package/dist/services/extension/openapi.js +2 -1
  63. package/dist/services/extension/push/build.js +2 -1
  64. package/dist/services/extension/push/checkout-ui.js +2 -1
  65. package/dist/services/extension/push/index.js +2 -1
  66. package/dist/services/extension/push/pixels.js +2 -1
  67. package/dist/services/extension/push/post-purchase.js +2 -1
  68. package/dist/services/extension/push/shopper.js +2 -1
  69. package/dist/services/extension/push/show.js +2 -1
  70. package/dist/services/extension/push/theme.js +2 -1
  71. package/dist/services/extension/push/zip.js +2 -1
  72. package/dist/services/extension/register.js +2 -1
  73. package/dist/services/extension/schemas.js +2 -1
  74. package/dist/services/extension/serve/bundler.js +2 -1
  75. package/dist/services/extension/serve/extension.js +2 -1
  76. package/dist/services/extension/serve/localization.js +2 -1
  77. package/dist/services/extension/serve/models.js +2 -1
  78. package/dist/services/extension/serve/payload.js +2 -1
  79. package/dist/services/extension/serve/server/middlewares.js +2 -1
  80. package/dist/services/extension/serve/server.js +2 -1
  81. package/dist/services/extension/serve/websocket/handlers.js +2 -1
  82. package/dist/services/extension/serve/websocket/models.js +2 -1
  83. package/dist/services/extension/serve/websocket.js +2 -1
  84. package/dist/services/extension/serve.js +2 -1
  85. package/dist/services/extension/tunnel/cloudflared.js +2 -1
  86. package/dist/services/extension/tunnel/install-cloudflared.js +2 -1
  87. package/dist/services/extension/types.js +2 -1
  88. package/dist/services/extension/utils.js +2 -1
  89. package/dist/services/extension/validate.js +2 -1
  90. package/dist/services/extension/zip.js +2 -1
  91. package/dist/services/extension/zip3.js +2 -1
  92. package/dist/services/identity-auth/api.js +2 -1
  93. package/dist/services/identity-auth/const.js +2 -1
  94. package/dist/services/identity-auth/create-server.js +2 -1
  95. package/dist/services/identity-auth/index.js +2 -1
  96. package/dist/services/identity-auth/store-enter.js +2 -1
  97. package/dist/services/report/index.js +2 -1
  98. package/dist/services/theme/3.0/api.js +4 -3
  99. package/dist/services/theme/3.0/check.js +2 -1
  100. package/dist/services/theme/3.0/file.js +2 -1
  101. package/dist/services/theme/3.0/package.js +2 -1
  102. package/dist/services/theme/3.0/pull.js +2 -1
  103. package/dist/services/theme/3.0/push.js +2 -1
  104. package/dist/services/theme/3.0/remote-watcher.js +2 -1
  105. package/dist/services/theme/3.0/theme.js +4 -3
  106. package/dist/services/theme/api.js +2 -1
  107. package/dist/services/theme/check/check.js +2 -1
  108. package/dist/services/theme/check/config.js +2 -1
  109. package/dist/services/theme/check/exception.js +2 -1
  110. package/dist/services/theme/check/index.js +2 -1
  111. package/dist/services/theme/check/types.js +2 -1
  112. package/dist/services/theme/checksum.js +2 -1
  113. package/dist/services/theme/choose-theme-list.js +2 -1
  114. package/dist/services/theme/console/api.js +2 -1
  115. package/dist/services/theme/console/console.js +4 -3
  116. package/dist/services/theme/console/index.js +2 -1
  117. package/dist/services/theme/const.js +2 -1
  118. package/dist/services/theme/dev-server-monitoring.js +2 -0
  119. package/dist/services/theme/file.js +2 -1
  120. package/dist/services/theme/git.js +2 -1
  121. package/dist/services/theme/index.js +4 -3
  122. package/dist/services/theme/inquirer.js +2 -1
  123. package/dist/services/theme/no-second-check.js +2 -1
  124. package/dist/services/theme/operation.js +2 -1
  125. package/dist/services/theme/package.js +2 -1
  126. package/dist/services/theme/proxy-error.js +2 -0
  127. package/dist/services/theme/pull.js +2 -1
  128. package/dist/services/theme/push.js +2 -1
  129. package/dist/services/theme/remote-watcher.js +2 -1
  130. package/dist/services/theme/types.js +2 -1
  131. package/dist/services/theme/update-queue.js +2 -1
  132. package/dist/services/theme/update.js +2 -1
  133. package/dist/services/theme/uploader.js +2 -1
  134. package/dist/services/theme/utils.js +3 -1
  135. package/dist/services/theme/watcher-monitoring.js +2 -0
  136. package/dist/type.d.js +2 -1
  137. package/dist/types/env.d.js +2 -1
  138. package/dist/types/type.d.js +2 -1
  139. package/dist/utils/abort.js +2 -1
  140. package/dist/utils/check-theme-type-version.js +2 -1
  141. package/dist/utils/check-update.js +2 -1
  142. package/dist/utils/colors.js +2 -1
  143. package/dist/utils/const.js +2 -1
  144. package/dist/utils/content-tokens.js +2 -1
  145. package/dist/utils/debug.js +2 -1
  146. package/dist/utils/decorators.js +2 -1
  147. package/dist/utils/environments.js +2 -1
  148. package/dist/utils/error.js +2 -1
  149. package/dist/utils/exit-hook.js +2 -1
  150. package/dist/utils/find-up-node-module.js +2 -1
  151. package/dist/utils/format-protocol.js +2 -1
  152. package/dist/utils/fs.js +2 -1
  153. package/dist/utils/get-objects-diff.js +2 -1
  154. package/dist/utils/get-real-referer.js +2 -1
  155. package/dist/utils/get-store-env.js +2 -1
  156. package/dist/utils/get-url-handle.js +2 -1
  157. package/dist/utils/git.js +2 -1
  158. package/dist/utils/has-command.js +2 -1
  159. package/dist/utils/hbs.js +2 -1
  160. package/dist/utils/http.js +2 -1
  161. package/dist/utils/ignore-filter.js +2 -1
  162. package/dist/utils/import-esm.js +2 -1
  163. package/dist/utils/include-filter.js +2 -1
  164. package/dist/utils/load-local-preset.js +2 -1
  165. package/dist/utils/local.js +2 -1
  166. package/dist/utils/logger.js +2 -1
  167. package/dist/utils/messages.js +3 -2
  168. package/dist/utils/misc.js +2 -1
  169. package/dist/utils/node-package-manager.js +2 -1
  170. package/dist/utils/ora-manager.js +2 -1
  171. package/dist/utils/os.js +2 -1
  172. package/dist/utils/output.js +2 -1
  173. package/dist/utils/parse-options.js +2 -1
  174. package/dist/utils/path-matcher.js +2 -1
  175. package/dist/utils/path.js +2 -1
  176. package/dist/utils/print-preview.js +2 -1
  177. package/dist/utils/program.js +2 -1
  178. package/dist/utils/replace-dot.js +2 -1
  179. package/dist/utils/replace-top-level-com.js +2 -1
  180. package/dist/utils/retry.js +2 -1
  181. package/dist/utils/schema.js +2 -1
  182. package/dist/utils/string.js +2 -1
  183. package/dist/utils/system.js +2 -1
  184. package/dist/utils/tcp.js +2 -1
  185. package/dist/utils/tiny-queue.js +2 -1
  186. package/dist/utils/toml.js +2 -1
  187. package/dist/utils/tree-kill.js +2 -1
  188. package/dist/utils/ui/Tasks.js +2 -1
  189. package/dist/utils/ui/alert.js +2 -1
  190. package/dist/utils/ui/components/Alert.js +2 -1
  191. package/dist/utils/ui/components/Banner.js +2 -1
  192. package/dist/utils/ui/components/Command.js +2 -1
  193. package/dist/utils/ui/components/ConcurrentOutput.js +2 -1
  194. package/dist/utils/ui/components/FatalError.js +2 -1
  195. package/dist/utils/ui/components/FilePath.js +2 -1
  196. package/dist/utils/ui/components/Link.js +2 -1
  197. package/dist/utils/ui/components/List.js +2 -1
  198. package/dist/utils/ui/components/Prompts/InfoTable.js +2 -1
  199. package/dist/utils/ui/components/SelectInput.js +2 -1
  200. package/dist/utils/ui/components/SelectPrompt.js +2 -1
  201. package/dist/utils/ui/components/Subdued.js +2 -1
  202. package/dist/utils/ui/components/TextAnimation.js +2 -1
  203. package/dist/utils/ui/components/TextInput.js +2 -1
  204. package/dist/utils/ui/components/TextPrompt.js +2 -1
  205. package/dist/utils/ui/components/TokenizedText.js +2 -1
  206. package/dist/utils/ui/components/UserInput.js +2 -1
  207. package/dist/utils/ui/contexts/LinksContext.js +2 -1
  208. package/dist/utils/ui/hooks/use-async-and-unmount.js +2 -1
  209. package/dist/utils/ui/hooks/use-layout.js +2 -1
  210. package/dist/utils/ui/render.js +2 -1
  211. package/dist/utils/ui/ui.js +2 -1
  212. package/dist/utils/ui/utilities.js +2 -1
  213. package/dist/utils/winston/index.js +2 -1
  214. package/dist/utils/winston/log-file.js +3 -2
  215. package/dist/utils/write-file-tree.js +2 -1
  216. package/dist/vendor/logger-apm-node/index.js +11 -0
  217. package/dist/vendor/logger-apm-node/licenses.txt +296 -0
  218. package/package.json +14 -7
  219. package/dist/commands/extension/tunnel.js +0 -1
  220. package/dist/services/dev-server/socket.js +0 -1
  221. package/dist/services/extension/create.js +0 -1
  222. package/dist/services/extension/push.js +0 -1
  223. package/dist/services/extension/resolve-env.js +0 -1
  224. package/dist/services/extension/tunnel.js +0 -3
  225. package/dist/services/extension/write-env-file.js +0 -1
  226. package/dist/services/theme/draft.js +0 -1
  227. package/dist/services/theme/types.d.js +0 -1
  228. package/dist/utils/ui.js +0 -1
@@ -1 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"ensureThemeAppExtension",{enumerable:!0,get:()=>i});const e=require("../../../utils/error"),t=require("../../theme/utils"),r=require("../const"),n=require("../../../utils/output"),o=require("../check-extension-version");async function i(i){let u=(0,t.getDirsWithoutDot)(i),s=new e.AbortError("You are not in a theme app extension project.",(0,n.outputContent)`Run ${n.outputToken.cyan("sl extension create")} to create a new one`);if(!u.length)throw s;let c=r.SUPPORTED_BUCKETS.every(e=>u.includes(e));if(!c&&!(0,o.isThemeAppExtensionOS3)(i))throw s}
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"ensureThemeAppExtension",{enumerable:!0,get:()=>i});const e=require("../../../utils/error"),t=require("../../theme/utils"),r=require("../const"),n=require("../../../utils/output"),o=require("../check-extension-version");async function i(i){let u=(0,t.getDirsWithoutDot)(i),s=new e.AbortError("You are not in a theme app extension project.",(0,n.outputContent)`Run ${n.outputToken.cyan("sl extension create")} to create a new one`);if(!u.length)throw s;let c=r.SUPPORTED_BUCKETS.every(e=>u.includes(e));if(!c&&!(0,o.isThemeAppExtensionOS3)(i))throw s}
2
+ //# sourceMappingURL=validate.js.map
@@ -1 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),function(e,s){for(var o in s)Object.defineProperty(e,o,{enumerable:!0,get:s[o]})}(exports,{EXTENSION_ENDPOINTS:()=>o,DEFAULT_EXTENSION_ENDPOINT:()=>t,DEFAULT_EXTENSION_NAME:()=>E,ENVS:()=>_,TARGETS:()=>n,EXTENSION_LINK_PATH:()=>i,APP_VERSION_MANAGE_LINK_PATH:()=>r,TAGS:()=>p,OPTION_TYPES:()=>c,EXTENSION_NAME_LENGTH_LIMIT:()=>l,MAX_ALL_FILE_SIZE:()=>T,MAX_BLOCKS_FILE_COUNT:()=>a,MAX_BLOCKS_FILE_SIZE:()=>N,MAX_BLOCKS_FILE_SIZE_3:()=>O,SUPPORTED_ASSET_EXTS:()=>I,SUPPORTED_ASSET_EXTS_3:()=>m,SUPPORTED_BUCKETS:()=>u,SUPPORTED_BUCKETS_3:()=>S,SUPPORTED_LOCALE_EXTS:()=>P,EXTENSION_CONFIG_FILE:()=>d,CHECKOUT_UI_CONFIG_FILE:()=>A,POST_PURCHASE_CONFIG_FILE:()=>L,PIXELS_CONFIG_FILE:()=>h,FUNCTION_CONFIG_FILE:()=>x,SHOPPER_CONFIG_FILE:()=>g,ERRORS:()=>C,ALL_TEMPLATES:()=>U,ALL_TEMPLATES_3:()=>F,EXTENSION_TYPES:()=>R,DEFAULT_EXTENSION_TYPE:()=>M,DEFAULT_CHECKOUT_UI_CUSTOMIZER_NAME:()=>v,DEFAULT_CHECKOUT_POST_PURCHASE_NAME:()=>y,DEFAULT_PIXELS_EXTENSION_NAME:()=>D,DEFAULT_SHOPPER_EXTENSION_NAME:()=>X});const e=require("../../utils/messages"),s=require("./types"),o={dev:"https://devcenter.myshoplinedev.com",test:"https://opendoc.myshoplinestg.com",pre:"https://devcenter-pre.myshopline.com",prod:"https://developer.myshopline.com"},t=o.prod,E="shopline-app-extension",_=["dev","test","pre","prod"],n=["section","head","body"],i="app/edit-extension",r="app/version-manage/add",p=["article","aside","div","footer","header","section"],c=["checkbox","radio","select"],l=50,T=10485760,a=25,N=102400,O=102400,I=[".jpg",".js",".css",".png",".svg",".hbs"],m=[".jpg",".js",".css",".png",".svg"],u=["assets","blocks","snippets","locales"],S=["blocks","components","i18n","public","compatibility"],P=[".json"],d=".shopline-cli.yml",A="shopline.ui.customizer.toml",L="shopline.post-purchase.customizer.toml",h="shopline.pixels.extension.toml",x="shopline.function.extension.toml",g="shopline.shopper.extension.toml",C={EXTENSION_NAME_LENGTH_LIMIT:(0,e.getMessage)("extension.create.invalid_name",{limit:l}),ENV_INVALID:(0,e.getMessage)("extension.invalid_env",{envs:_.join(", ")}),ENV_FILE_NOT_FOUND:(0,e.getMessage)("extension.no_env_file"),SHOPLINE_CONFIG_NOT_FOUND:(0,e.getMessage)("extension.no_config_file",{config_name:d}),UNSUPPORTED_PROJECT_TYPE:(0,e.getMessage)("extension.invalid_type"),REPEAT_DIR_NAME:"The theme app extension directory already exists. Please rename or use another name.",INVALID_INTERPOLATION:"must be of the form {{ apps.metafields.<namespace>.<key>.value }}",PARTNER_INFO_NOT_COMPLETE:"PARTNER_INFO_NOT_COMPLETE",USER_NOT_LOGIN:"USER_NOT_LOGIN",NOT_IN_PARTNER:"NOT_IN_PARTNER"},U=["index","collections_all","collection","products/detail","cart","blogs/list","blogs/detail","404","products/search","page","customers/login","customers/register","customers/account","customers/reset_password","customers/addresses","customers/order/list","customers/order/detail","password","app_proxy"],F=["index","collections_all","collection","product","cart","blog","article","404","search","page","policy","password","gift_card","customers/login","customers/register","customers/account","customers/addresses","customers/orders","customers/order","customers/activate_account","customers/forgot_password","customers/company","app_proxy"],R=[{label:"Theme App Extension",value:s.EExtensionTypes.themeAppExtension},{label:"Checkout UI Customizer",value:s.EExtensionTypes.checkoutUiCustomizer},{label:"Post Purchase Customizer",value:s.EExtensionTypes.postPurchaseCustomizer},{label:"Shopline Pixels Extension",value:s.EExtensionTypes.pixelsExtension},{label:"Shopline Shopper Extension",value:s.EExtensionTypes.shopperExtension}].filter(Boolean),M="themeAppExtension",v="checkout-ui-customizer",y="post-purchase-customizer",D="pixels-extension",X="shopper-extension";
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),function(e,s){for(var o in s)Object.defineProperty(e,o,{enumerable:!0,get:s[o]})}(exports,{EXTENSION_ENDPOINTS:()=>o,DEFAULT_EXTENSION_ENDPOINT:()=>t,DEFAULT_EXTENSION_NAME:()=>E,ENVS:()=>_,TARGETS:()=>n,EXTENSION_LINK_PATH:()=>i,APP_VERSION_MANAGE_LINK_PATH:()=>r,TAGS:()=>p,OPTION_TYPES:()=>c,EXTENSION_NAME_LENGTH_LIMIT:()=>a,MAX_ALL_FILE_SIZE:()=>l,MAX_BLOCKS_FILE_COUNT:()=>T,MAX_BLOCKS_FILE_SIZE:()=>N,MAX_BLOCKS_FILE_SIZE_3:()=>O,SUPPORTED_ASSET_EXTS:()=>u,SUPPORTED_ASSET_EXTS_3:()=>I,SUPPORTED_BUCKETS:()=>S,SUPPORTED_BUCKETS_3:()=>m,SUPPORTED_LOCALE_EXTS:()=>P,EXTENSION_CONFIG_FILE:()=>d,CHECKOUT_UI_CONFIG_FILE:()=>A,POST_PURCHASE_CONFIG_FILE:()=>L,PIXELS_CONFIG_FILE:()=>h,FUNCTION_CONFIG_FILE:()=>R,SHOPPER_CONFIG_FILE:()=>x,ERRORS:()=>C,ALL_TEMPLATES:()=>U,ALL_TEMPLATES_3:()=>g,EXTENSION_TYPES:()=>F,DEFAULT_EXTENSION_TYPE:()=>v,DEFAULT_CHECKOUT_UI_CUSTOMIZER_NAME:()=>M,DEFAULT_CHECKOUT_POST_PURCHASE_NAME:()=>y,DEFAULT_PIXELS_EXTENSION_NAME:()=>D,DEFAULT_SHOPPER_EXTENSION_NAME:()=>X,CHECKOUT_UI_NO_PRODUCT_ERROR_MESSAGE:()=>b,POST_PURCHASE_NO_PRODUCT_ERROR_MESSAGE:()=>f});const e=require("../../utils/messages"),s=require("./types"),o={dev:"https://devcenter.myshoplinedev.com",test:"https://opendoc.myshoplinestg.com",pre:"https://devcenter-pre.myshopline.com",prod:"https://developer.myshopline.com"},t=o.prod,E="shopline-app-extension",_=["dev","test","pre","prod"],n=["section","head","body"],i="app/edit-extension",r="app/version-manage/add",p=["article","aside","div","footer","header","section"],c=["checkbox","radio","select"],a=50,l=10485760,T=25,N=102400,O=102400,u=[".jpg",".js",".css",".png",".svg",".hbs"],I=[".jpg",".js",".css",".png",".svg"],S=["assets","blocks","snippets","locales"],m=["blocks","components","i18n","public","compatibility"],P=[".json"],d=".shopline-cli.yml",A="shopline.ui.customizer.toml",L="shopline.post-purchase.customizer.toml",h="shopline.pixels.extension.toml",R="shopline.function.extension.toml",x="shopline.shopper.extension.toml",C={EXTENSION_NAME_LENGTH_LIMIT:(0,e.getMessage)("extension.create.invalid_name",{limit:a}),ENV_INVALID:(0,e.getMessage)("extension.invalid_env",{envs:_.join(", ")}),ENV_FILE_NOT_FOUND:(0,e.getMessage)("extension.no_env_file"),SHOPLINE_CONFIG_NOT_FOUND:(0,e.getMessage)("extension.no_config_file",{config_name:d}),UNSUPPORTED_PROJECT_TYPE:(0,e.getMessage)("extension.invalid_type"),REPEAT_DIR_NAME:"The theme app extension directory already exists. Please rename or use another name.",INVALID_INTERPOLATION:"must be of the form {{ apps.metafields.<namespace>.<key>.value }}",PARTNER_INFO_NOT_COMPLETE:"PARTNER_INFO_NOT_COMPLETE",USER_NOT_LOGIN:"USER_NOT_LOGIN",NOT_IN_PARTNER:"NOT_IN_PARTNER"},U=["index","collections_all","collection","products/detail","cart","blogs/list","blogs/detail","404","products/search","page","customers/login","customers/register","customers/account","customers/reset_password","customers/addresses","customers/order/list","customers/order/detail","password","app_proxy"],g=["index","collections_all","collection","product","cart","blog","article","404","search","page","policy","password","gift_card","customers/login","customers/register","customers/account","customers/addresses","customers/orders","customers/order","customers/activate_account","customers/forgot_password","customers/company","app_proxy"],F=[{label:"Theme App Extension",value:s.EExtensionTypes.themeAppExtension},{label:"Checkout UI Customizer",value:s.EExtensionTypes.checkoutUiCustomizer},{label:"Post Purchase Customizer",value:s.EExtensionTypes.postPurchaseCustomizer},{label:"Shopline Pixels Extension",value:s.EExtensionTypes.pixelsExtension},{label:"Shopline Shopper Extension",value:s.EExtensionTypes.shopperExtension}].filter(Boolean),v="themeAppExtension",M="checkout-ui-customizer",y="post-purchase-customizer",D="pixels-extension",X="shopper-extension",b="Your store needs to have at least one product to serve checkout ui customizer",f="Your store needs to have at least one product to serve post purchase customizer";
2
+ //# sourceMappingURL=const.js.map
@@ -1 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),function(e,t){for(var n in t)Object.defineProperty(e,n,{enumerable:!0,get:t[n]})}(exports,{ensureCurrentEnvs:()=>N,showEnvInfos:()=>c,showPushEnvInfos:()=>u,getCartPathFromExtension:()=>p,getCheckoutPageUrlFromExtension:()=>l,getPartnerInfoIfNeed:()=>_,ExtensionContext:()=>d});const e=require("../../utils/node-package-manager"),t=require("./const"),n=require("./env"),i=require("./extension"),r=require("./types"),E=require("./utils"),s=require("../../utils/ui/render"),o=require("../../utils/output"),a=require("../../utils/error"),I=require("./connect/context");function P(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}async function N(e,s,I,P){let N=await (0,n.resolveEnvContents)(e,s),c={},u="",l="",_="";if(N.PARTNER_ID)c.PARTNER_ID=N.PARTNER_ID,l=await (0,i.getPartnerName)(N.PARTNER_ID);else{let{id:e,partnerName:t}=await (0,i.getSelectedPartner)();c.PARTNER_ID=e,l=t}if(N.SHOPLINE_APP_KEY&&N.SHOPLINE_APP_SECRET&&N.EXTENSION_TITLE&&N.EXTENSION_UUID){c.SHOPLINE_APP_KEY=N.SHOPLINE_APP_KEY,c.SHOPLINE_APP_SECRET=N.SHOPLINE_APP_SECRET,c.EXTENSION_TITLE=N.EXTENSION_TITLE,c.EXTENSION_UUID=N.EXTENSION_UUID;let e=await (0,i.getAppName)(c.PARTNER_ID,N.SHOPLINE_APP_KEY);if(e)_=e;else throw new a.AbortError("The application name corresponding to the app key cannot be found.")}else{let e={id:c.PARTNER_ID,partnerName:l},{appKey:n,appName:r,appSecret:s}=await (0,i.getSelectedApp)(e);_=r,c.SHOPLINE_APP_KEY=n,c.SHOPLINE_APP_SECRET=s,c.EXTENSION_TITLE=t.DEFAULT_CHECKOUT_UI_CUSTOMIZER_NAME,c.EXTENSION_UUID=(0,E.generateDevUUID)()}if(N.SHOP){c.SHOP=N.SHOP;let t=(0,E.getShopHandle)(N.SHOP,e);if(t)u=await (0,i.getStoreId)(N.PARTNER_ID,t);else throw new a.AbortError(`The developer store domain \`${o.outputToken.cyan(N.SHOP)}\` you have currently configured is incorrect.`)}else{let t=await (0,i.getSelectedShop)(c.PARTNER_ID,e);c.SHOP=(0,E.getStoreUrl)(null==t?void 0:t.handle,e),u=t.storeId}if(I===r.EExtensionTypes.checkoutUiCustomizer){let{SHOPLINE_APP_KEY:e,SHOP:t}=c,n=await p(u,e,t,P);c.EXTENSION_RESOURCE_URL=n}return{envObject:c,partnerName:l,appName:_,storeId:u}}function c(e,t,n,i){let r=[`Org: ${e}`,`App: ${t}`,`Dev store: ${i}`,`Extension name: ${n}`];(0,s.renderInfo)({headline:["Using your previous dev settings",{char:":"}],body:[{list:{items:r}},"\nTo reset your default dev config, run",{command:"sl extension serve --reset"}]})}function u(e,t,n){let i=[`Org: ${e}`,`App: ${t}`,`Extension name: ${n}`];(0,s.renderInfo)({headline:["Your configs for dev were",{char:":"}],body:[{list:{items:i}},"\nTo reset your default dev config, run",{command:"sl extension push --reset"}]})}async function p(e,t,n,r){let E=await (0,i.getAvailableProductSkuId)(e,t,n,r);return`/cart/${E}:1`}function l(e){let{url:t,checkoutCartUrl:n,shop:i}=e,r=encodeURIComponent(`${t}/extensions`);return`https://${i}${n}?dev=${r}`}async function _(e,t){try{let r=await (0,n.resolveEnvContents)(e,t);if(r.PARTNER_ID){let e=await (0,i.getPartnerName)(r.PARTNER_ID);return{id:r.PARTNER_ID,partnerName:e}}}catch(e){}return(0,i.getSelectedPartner)()}class d{async getPackageManager(){return(0,e.getPackageManager)(this.cwd)}readEnvContent(){let e=(0,n.resolveEnvContents)(this.env,this.cwd);return e}async getInitializeLocaleEnvInNeed(){let e=await this.getPartnerInfoIfNeed(),t=await this.getAppInfo(e);return{partnerInfo:e,appInfo:t}}async getPartnerInfoIfNeed(){if(this.envObject.PARTNER_ID){let e=this.envObject.PARTNER_ID,t=await (0,i.getPartnerName)(e);return{id:e,partnerName:t}}return(0,i.getSelectedPartner)()}async getExtInfo(e){try{let t=(0,E.getExtType)(this.type),n=await (0,I.getAppExts)(e,t);return null==n?void 0:n[0]}catch(e){return null}}async getExt(e){var t,n,i;let r=await this.getExtInfo(e),s=null===(t=await (0,E.getExtensionConfig)(this.type,this.cwd))||void 0===t?void 0:t.name;return{extensionId:(null==r?void 0:r.id)?String(r.id):"",extensionUuid:null!==(n=null==r?void 0:r.uuid)&&void 0!==n?n:"",extensionName:null!==(i=null==r?void 0:r.name)&&void 0!==i?i:s}}async getFuncAppInfo(e){if(this.envObject.SHOPLINE_APP_KEY&&this.envObject.SHOPLINE_APP_SECRET&&this.envObject.EXTENSION_TITLE&&this.envObject.EXTENSION_UUID){let{SHOPLINE_APP_KEY:t,SHOPLINE_APP_SECRET:n,EXTENSION_TITLE:r,EXTENSION_UUID:E}=this.envObject,s=await (0,i.getAppName)(e.id,this.envObject.SHOPLINE_APP_KEY);if(s)return{EXTENSION_TITLE:r,appName:s,EXTENSION_UUID:E,SHOPLINE_APP_KEY:t,SHOPLINE_APP_SECRET:n};throw new a.AbortError("The application name corresponding to the app key cannot be found.")}{let{appKey:t,appName:n,appSecret:r}=await (0,i.getSelectedApp)(e),E=await this.getExt(t);return{EXTENSION_TITLE:E.extensionName,EXTENSION_UUID:E.extensionUuid,appName:n,SHOPLINE_APP_KEY:t,SHOPLINE_APP_SECRET:r}}}async getOtherAppInfo(e){if(this.envObject.SHOPLINE_APP_KEY&&this.envObject.SHOPLINE_APP_SECRET&&this.envObject.EXTENSION_TITLE&&this.envObject.EXTENSION_UUID&&this.envObject.EXTENSION_ID){let{SHOPLINE_APP_KEY:t,SHOPLINE_APP_SECRET:n,EXTENSION_TITLE:r,EXTENSION_UUID:E,EXTENSION_ID:s}=this.envObject,o=await (0,i.getAppName)(e.id,this.envObject.SHOPLINE_APP_KEY);if(o)return{EXTENSION_ID:s,EXTENSION_TITLE:r,appName:o,EXTENSION_UUID:E,SHOPLINE_APP_KEY:t,SHOPLINE_APP_SECRET:n};throw new a.AbortError("The application name corresponding to the app key cannot be found.")}if(this.type===r.EExtensionTypes.checkoutUiCustomizer||this.type.startsWith(r.EExtensionTypes.shopperExtension)){if(this.reset){var t;let{appKey:n,appName:r,appSecret:s}=await (0,i.getSelectedApp)(e),o=await (0,i.getSelectedExts)(n,(0,E.getExtType)(this.type)),a=null===(t=await (0,E.getExtensionConfig)(this.type,this.cwd))||void 0===t?void 0:t.name;return{EXTENSION_TITLE:(null==o?void 0:o.name)||a,EXTENSION_UUID:(null==o?void 0:o.uuid)||"",EXTENSION_ID:(null==o?void 0:o.id)?String(o.id):"",appName:r,SHOPLINE_APP_KEY:n,SHOPLINE_APP_SECRET:s}}let n=await (0,i.getAppName)(e.id,this.envObject.SHOPLINE_APP_KEY);return{EXTENSION_TITLE:this.envObject.EXTENSION_TITLE,EXTENSION_UUID:this.envObject.EXTENSION_UUID,EXTENSION_ID:"",appName:n,SHOPLINE_APP_KEY:this.envObject.SHOPLINE_APP_KEY,SHOPLINE_APP_SECRET:this.envObject.SHOPLINE_APP_SECRET}}{let{appKey:t,appName:n,appSecret:r}=await (0,i.getSelectedApp)(e),E=await this.getExt(t);return{EXTENSION_TITLE:E.extensionName,EXTENSION_UUID:E.extensionUuid,EXTENSION_ID:E.extensionId,appName:n,SHOPLINE_APP_KEY:t,SHOPLINE_APP_SECRET:r}}}async getAppInfo(e){return[r.EExtensionTypes.checkoutUiCustomizer,r.EExtensionTypes.themeAppExtension,r.EExtensionTypes.pixelsExtension,r.EExtensionTypes.postPurchaseCustomizer].includes(this.type)||this.type.startsWith(r.EExtensionTypes.shopperExtension)?this.getOtherAppInfo(e):this.getFuncAppInfo(e)}constructor(e,t,n,i=!1){P(this,"type",void 0),P(this,"cwd",void 0),P(this,"env",void 0),P(this,"envObject",void 0),P(this,"reset",void 0),this.type=null!=e?e:r.EExtensionTypes.themeAppExtension,this.env=t,this.cwd=null!=n?n:process.cwd(),this.envObject=this.readEnvContent(),this.reset=i}}
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),function(e,t){for(var n in t)Object.defineProperty(e,n,{enumerable:!0,get:t[n]})}(exports,{ensureCurrentEnvs:()=>N,showEnvInfos:()=>c,showPushEnvInfos:()=>u,getCartPathFromExtension:()=>p,getCheckoutPageUrlFromExtension:()=>l,getPartnerInfoIfNeed:()=>_,ExtensionContext:()=>d});const e=require("../../utils/node-package-manager"),t=require("./const"),n=require("./env"),i=require("./extension"),r=require("./types"),E=require("./utils"),s=require("../../utils/ui/render"),o=require("../../utils/output"),a=require("../../utils/error"),I=require("./connect/context");function P(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}async function N(e,s,I){let P=await (0,n.resolveEnvContents)(e,s),N={},c="",u="",l="";if(P.PARTNER_ID)N.PARTNER_ID=P.PARTNER_ID,u=await (0,i.getPartnerName)(P.PARTNER_ID);else{let{id:e,partnerName:t}=await (0,i.getSelectedPartner)();N.PARTNER_ID=e,u=t}if(P.SHOPLINE_APP_KEY&&P.SHOPLINE_APP_SECRET&&P.EXTENSION_TITLE&&P.EXTENSION_UUID){N.SHOPLINE_APP_KEY=P.SHOPLINE_APP_KEY,N.SHOPLINE_APP_SECRET=P.SHOPLINE_APP_SECRET,N.EXTENSION_TITLE=P.EXTENSION_TITLE,N.EXTENSION_UUID=P.EXTENSION_UUID;let e=await (0,i.getAppName)(N.PARTNER_ID,P.SHOPLINE_APP_KEY);if(e)l=e;else throw new a.AbortError("The application name corresponding to the app key cannot be found.")}else{let e={id:N.PARTNER_ID,partnerName:u},{appKey:n,appName:r,appSecret:s}=await (0,i.getSelectedApp)(e);l=r,N.SHOPLINE_APP_KEY=n,N.SHOPLINE_APP_SECRET=s,N.EXTENSION_TITLE=t.DEFAULT_CHECKOUT_UI_CUSTOMIZER_NAME,N.EXTENSION_UUID=(0,E.generateDevUUID)()}if(P.SHOP){N.SHOP=P.SHOP;let t=(0,E.getShopHandle)(P.SHOP,e);if(t)c=await (0,i.getStoreId)(P.PARTNER_ID,t);else throw new a.AbortError(`The developer store domain \`${o.outputToken.cyan(P.SHOP)}\` you have currently configured is incorrect.`)}else{let t=await (0,i.getSelectedShop)(N.PARTNER_ID,e);N.SHOP=(0,E.getStoreUrl)(null==t?void 0:t.handle,e),c=t.storeId}if(I===r.EExtensionTypes.checkoutUiCustomizer){let{SHOPLINE_APP_KEY:e,SHOP:n}=N,i=await p(c,e,n,t.CHECKOUT_UI_NO_PRODUCT_ERROR_MESSAGE);N.EXTENSION_RESOURCE_URL=i}return{envObject:N,partnerName:u,appName:l,storeId:c}}function c(e,t,n,i){let r=[`Org: ${e}`,`App: ${t}`,`Dev store: ${i}`,`Extension name: ${n}`];(0,s.renderInfo)({headline:["Using your previous dev settings",{char:":"}],body:[{list:{items:r}},"\nTo reset your default dev config, run",{command:"sl extension serve --reset"}]})}function u(e,t,n){let i=[`Org: ${e}`,`App: ${t}`,`Extension name: ${n}`];(0,s.renderInfo)({headline:["Your configs for dev were",{char:":"}],body:[{list:{items:i}},"\nTo reset your default dev config, run",{command:"sl extension push --reset"}]})}async function p(e,t,n,r){let E=await (0,i.getAvailableProductSkuId)(e,t,n,r);return`/cart/${E}:1`}function l(e){let{url:t,checkoutCartUrl:n,shop:i}=e,r=encodeURIComponent(`${t}/extensions`);return`https://${i}${n}?dev=${r}`}async function _(e,t){try{let r=await (0,n.resolveEnvContents)(e,t);if(r.PARTNER_ID){let e=await (0,i.getPartnerName)(r.PARTNER_ID);return{id:r.PARTNER_ID,partnerName:e}}}catch(e){}return(0,i.getSelectedPartner)()}class d{async getPackageManager(){return(0,e.getPackageManager)(this.cwd)}readEnvContent(){let e=(0,n.resolveEnvContents)(this.env,this.cwd);return e}async getInitializeLocaleEnvInNeed(){let e=await this.getPartnerInfoIfNeed(),t=await this.getAppInfo(e);return{partnerInfo:e,appInfo:t}}async getPartnerInfoIfNeed(){if(this.envObject.PARTNER_ID){let e=this.envObject.PARTNER_ID,t=await (0,i.getPartnerName)(e);return{id:e,partnerName:t}}return(0,i.getSelectedPartner)()}async getExtInfo(e){try{let t=(0,E.getExtType)(this.type),n=await (0,I.getAppExts)(e,t);return null==n?void 0:n[0]}catch(e){return null}}async getExt(e){var t,n,i;let r=await this.getExtInfo(e),s=null===(t=await (0,E.getExtensionConfig)(this.type,this.cwd))||void 0===t?void 0:t.name;return{extensionId:(null==r?void 0:r.id)?String(r.id):"",extensionUuid:null!==(n=null==r?void 0:r.uuid)&&void 0!==n?n:"",extensionName:null!==(i=null==r?void 0:r.name)&&void 0!==i?i:s}}async getFuncAppInfo(e){if(this.envObject.SHOPLINE_APP_KEY&&this.envObject.SHOPLINE_APP_SECRET&&this.envObject.EXTENSION_TITLE&&this.envObject.EXTENSION_UUID){let{SHOPLINE_APP_KEY:t,SHOPLINE_APP_SECRET:n,EXTENSION_TITLE:r,EXTENSION_UUID:E}=this.envObject,s=await (0,i.getAppName)(e.id,this.envObject.SHOPLINE_APP_KEY);if(s)return{EXTENSION_TITLE:r,appName:s,EXTENSION_UUID:E,SHOPLINE_APP_KEY:t,SHOPLINE_APP_SECRET:n};throw new a.AbortError("The application name corresponding to the app key cannot be found.")}{let{appKey:t,appName:n,appSecret:r}=await (0,i.getSelectedApp)(e),E=await this.getExt(t);return{EXTENSION_TITLE:E.extensionName,EXTENSION_UUID:E.extensionUuid,appName:n,SHOPLINE_APP_KEY:t,SHOPLINE_APP_SECRET:r}}}async getOtherAppInfo(e){if(this.envObject.SHOPLINE_APP_KEY&&this.envObject.SHOPLINE_APP_SECRET&&this.envObject.EXTENSION_TITLE&&this.envObject.EXTENSION_UUID&&this.envObject.EXTENSION_ID){let{SHOPLINE_APP_KEY:t,SHOPLINE_APP_SECRET:n,EXTENSION_TITLE:r,EXTENSION_UUID:E,EXTENSION_ID:s}=this.envObject,o=await (0,i.getAppName)(e.id,this.envObject.SHOPLINE_APP_KEY);if(o)return{EXTENSION_ID:s,EXTENSION_TITLE:r,appName:o,EXTENSION_UUID:E,SHOPLINE_APP_KEY:t,SHOPLINE_APP_SECRET:n};throw new a.AbortError("The application name corresponding to the app key cannot be found.")}if(this.type===r.EExtensionTypes.checkoutUiCustomizer||this.type.startsWith(r.EExtensionTypes.shopperExtension)){if(this.reset){var t;let{appKey:n,appName:r,appSecret:s}=await (0,i.getSelectedApp)(e),o=await (0,i.getSelectedExts)(n,(0,E.getExtType)(this.type)),a=null===(t=await (0,E.getExtensionConfig)(this.type,this.cwd))||void 0===t?void 0:t.name;return{EXTENSION_TITLE:(null==o?void 0:o.name)||a,EXTENSION_UUID:(null==o?void 0:o.uuid)||"",EXTENSION_ID:(null==o?void 0:o.id)?String(o.id):"",appName:r,SHOPLINE_APP_KEY:n,SHOPLINE_APP_SECRET:s}}let n=await (0,i.getAppName)(e.id,this.envObject.SHOPLINE_APP_KEY);return{EXTENSION_TITLE:this.envObject.EXTENSION_TITLE,EXTENSION_UUID:this.envObject.EXTENSION_UUID,EXTENSION_ID:"",appName:n,SHOPLINE_APP_KEY:this.envObject.SHOPLINE_APP_KEY,SHOPLINE_APP_SECRET:this.envObject.SHOPLINE_APP_SECRET}}{let{appKey:t,appName:n,appSecret:r}=await (0,i.getSelectedApp)(e),E=await this.getExt(t);return{EXTENSION_TITLE:E.extensionName,EXTENSION_UUID:E.extensionUuid,EXTENSION_ID:E.extensionId,appName:n,SHOPLINE_APP_KEY:t,SHOPLINE_APP_SECRET:r}}}async getAppInfo(e){return[r.EExtensionTypes.checkoutUiCustomizer,r.EExtensionTypes.themeAppExtension,r.EExtensionTypes.pixelsExtension,r.EExtensionTypes.postPurchaseCustomizer].includes(this.type)||this.type.startsWith(r.EExtensionTypes.shopperExtension)?this.getOtherAppInfo(e):this.getFuncAppInfo(e)}constructor(e,t,n,i=!1){P(this,"type",void 0),P(this,"cwd",void 0),P(this,"env",void 0),P(this,"envObject",void 0),P(this,"reset",void 0),this.type=null!=e?e:r.EExtensionTypes.themeAppExtension,this.env=t,this.cwd=null!=n?n:process.cwd(),this.envObject=this.readEnvContent(),this.reset=i}}
2
+ //# sourceMappingURL=context.js.map
@@ -1 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),function(e,t){for(var n in t)Object.defineProperty(e,n,{enumerable:!0,get:t[n]})}(exports,{createEntry:()=>x,beforeCreate:()=>g,getSelectedExtType:()=>E,buildGenerateOptions:()=>y,renderSuccessMessage:()=>m});const e=require("fs-extra"),t=require("../../../utils/ui/ui"),n=require("../env"),r=require("../extension"),i=require("../types"),o=require("../utils"),s=require("../api"),u=require("../generate"),a=require("../../../utils/error"),p=require("../const"),l=require("../../../utils/path"),c=require("../../../utils/output"),h=require("../../../utils/ui/render"),f=require("../functions/info"),d=function(e){return e&&e.__esModule?e:{default:e}}(require("../../../utils/winston"));async function x(e){let t=await g(e),n=await y(t),r=await (0,u.generateExtension)(n);await m(r),d.default.log(`Extension created: ${r.directory}`)}async function g(t){var i;let s=null==t?void 0:t.name,u=null!==(i=null==t?void 0:t.cwd)&&void 0!==i?i:process.cwd(),h=await (0,n.getEnv)();d.default.log(`Current store environment: ${h}`);let f=await E(),x=(0,o.getExtensionName)(s,f);d.default.log(`Current extension name: ${x}`),function(t,n){if(!t)throw new a.AbortError("Please specify an extension name");if(t.length>p.EXTENSION_NAME_LENGTH_LIMIT)throw new a.AbortError(p.ERRORS.EXTENSION_NAME_LENGTH_LIMIT);if((0,e.existsSync)((0,l.joinPath)(n,t)))throw new a.AbortError((0,c.outputContent)`${c.outputToken.cyan(t)} directory already exists.`.value)}(x,u);let g=await (0,r.getSelectedPartner)(),y=await (0,r.getSelectedApp)(g);return{extensionName:x,cwd:u,env:h,partnerInfo:g,appInfo:y,type:f}}async function E(){let e=[];d.default.log("Loading function extension templates..."),e=await (0,s.getFunctionTemplates)(),d.default.log("Choosing extension type to create...");let n=await (0,t.renderSelectPrompt)({message:"What type of extension are you creating?",choices:(0,o.buildExtensionTypeChoice)(e)});return d.default.log(`Current selected extension type: ${n}`),n}async function y(e){let{extensionName:t,appInfo:n,type:r,env:o,cwd:s,partnerInfo:u}=e,a=async()=>{if(r===i.EExtensionTypes.themeAppExtension)return"https://github.com/shoplineos/theme-app-extension-template.git";if(r===i.EExtensionTypes.checkoutUiCustomizer)return"https://github.com/shoplineos/checkout-ui-customizer-template.git";if(r===i.EExtensionTypes.postPurchaseCustomizer)return"https://github.com/shoplineos/post-purchase-customizer-template.git";if(r===i.EExtensionTypes.pixelsExtension)return"https://github.com/shoplineos/pixels-extension-template.git";if(r===i.EExtensionTypes.shopperExtension)return"https://github.com/shoplineos/shopper-app-template.git";let e=await (0,f.getFunctionInfo)(r);if(e)return e.templateGit},p=await a();return d.default.log(`Current clone url: ${p}`),{name:t,app:{appKey:n.appKey,appSecret:n.appSecret},partnerId:u.id,type:r,cloneUrl:p,env:o,cwd:s}}async function m(e){let{specification:t}=e,n={headline:["Your extension was created in",{filePath:e.directory},{char:"."}],nextSteps:[],reference:[]};t.type===i.EExtensionTypes.checkoutUiCustomizer&&n.nextSteps.push(["To preview this extension along with the rest of the project, run",{command:"sl extension serve"}]),(0,h.renderSuccess)(n)}
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),function(e,t){for(var n in t)Object.defineProperty(e,n,{enumerable:!0,get:t[n]})}(exports,{createEntry:()=>x,beforeCreate:()=>g,getSelectedExtType:()=>E,buildGenerateOptions:()=>y,renderSuccessMessage:()=>m});const e=require("fs-extra"),t=require("../../../utils/ui/ui"),n=require("../env"),r=require("../extension"),i=require("../types"),o=require("../utils"),s=require("../api"),u=require("../generate"),a=require("../../../utils/error"),p=require("../const"),l=require("../../../utils/path"),c=require("../../../utils/output"),h=require("../../../utils/ui/render"),f=require("../functions/info"),d=function(e){return e&&e.__esModule?e:{default:e}}(require("../../../utils/winston"));async function x(e){let t=await g(e),n=await y(t),r=await (0,u.generateExtension)(n);await m(r),d.default.log(`Extension created: ${r.directory}`)}async function g(t){var i;let s=null==t?void 0:t.name,u=null!==(i=null==t?void 0:t.cwd)&&void 0!==i?i:process.cwd(),h=await (0,n.getEnv)();d.default.log(`Current store environment: ${h}`);let f=await E(),x=(0,o.getExtensionName)(s,f);d.default.log(`Current extension name: ${x}`),function(t,n){if(!t)throw new a.AbortError("Please specify an extension name");if(t.length>p.EXTENSION_NAME_LENGTH_LIMIT)throw new a.AbortError(p.ERRORS.EXTENSION_NAME_LENGTH_LIMIT);if((0,e.existsSync)((0,l.joinPath)(n,t)))throw new a.AbortError((0,c.outputContent)`${c.outputToken.cyan(t)} directory already exists.`.value)}(x,u);let g=await (0,r.getSelectedPartner)(),y=await (0,r.getSelectedApp)(g);return{extensionName:x,cwd:u,env:h,partnerInfo:g,appInfo:y,type:f}}async function E(){let e=[];d.default.log("Loading function extension templates..."),e=await (0,s.getFunctionTemplates)(),d.default.log("Choosing extension type to create...");let n=await (0,t.renderSelectPrompt)({message:"What type of extension are you creating?",choices:(0,o.buildExtensionTypeChoice)(e)});return d.default.log(`Current selected extension type: ${n}`),n}async function y(e){let{extensionName:t,appInfo:n,type:r,env:o,cwd:s,partnerInfo:u}=e,a=async()=>{if(r===i.EExtensionTypes.themeAppExtension)return"https://github.com/shoplineos/theme-app-extension-template.git";if(r===i.EExtensionTypes.checkoutUiCustomizer)return"https://github.com/shoplineos/checkout-ui-customizer-template.git";if(r===i.EExtensionTypes.postPurchaseCustomizer)return"https://github.com/shoplineos/post-purchase-customizer-template.git";if(r===i.EExtensionTypes.pixelsExtension)return"https://github.com/shoplineos/pixels-extension-template.git";if(r===i.EExtensionTypes.shopperExtension)return"https://github.com/shoplineos/shopper-app-template.git";let e=await (0,f.getFunctionInfo)(r);if(e)return e.templateGit},p=await a();return d.default.log(`Current clone url: ${p}`),{name:t,app:{appKey:n.appKey,appSecret:n.appSecret},partnerId:u.id,type:r,cloneUrl:p,env:o,cwd:s}}async function m(e){let{specification:t}=e,n={headline:["Your extension was created in",{filePath:e.directory},{char:"."}],nextSteps:[],reference:[]};t.type===i.EExtensionTypes.checkoutUiCustomizer&&n.nextSteps.push(["To preview this extension along with the rest of the project, run",{command:"sl extension serve"}]),(0,h.renderSuccess)(n)}
2
+ //# sourceMappingURL=index.js.map
@@ -1 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"default",{enumerable:!0,get:()=>f});const e=function(e,r){if(!r&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var t=i(r);if(t&&t.has(e))return t.get(e);var n={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var u in e)if("default"!==u&&Object.prototype.hasOwnProperty.call(e,u)){var f=o?Object.getOwnPropertyDescriptor(e,u):null;f&&(f.get||f.set)?Object.defineProperty(n,u,f):n[u]=e[u]}return n.default=e,t&&t.set(e,n),n}(require("js-yaml")),r=u(require("path")),t=u(require("fs-extra")),n=require("./const"),o=require("../../utils/error");function u(e){return e&&e.__esModule?e:{default:e}}function i(e){if("function"!=typeof WeakMap)return null;var r=new WeakMap,t=new WeakMap;return(i=function(e){return e?t:r})(e)}async function f(u=process.cwd()){let i=r.default.join(u,n.EXTENSION_CONFIG_FILE);if(!t.default.existsSync(i))throw new o.AbortError(n.ERRORS.SHOPLINE_CONFIG_NOT_FOUND);let f=e.load(t.default.readFileSync(i,"utf8"));return(null==f?void 0:f.project_type)==="extension"?Promise.resolve():Promise.reject(Error(n.ERRORS.UNSUPPORTED_PROJECT_TYPE))}
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"default",{enumerable:!0,get:()=>f});const e=function(e,r){if(!r&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var t=i(r);if(t&&t.has(e))return t.get(e);var n={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var u in e)if("default"!==u&&Object.prototype.hasOwnProperty.call(e,u)){var f=o?Object.getOwnPropertyDescriptor(e,u):null;f&&(f.get||f.set)?Object.defineProperty(n,u,f):n[u]=e[u]}return n.default=e,t&&t.set(e,n),n}(require("js-yaml")),r=u(require("path")),t=u(require("fs-extra")),n=require("./const"),o=require("../../utils/error");function u(e){return e&&e.__esModule?e:{default:e}}function i(e){if("function"!=typeof WeakMap)return null;var r=new WeakMap,t=new WeakMap;return(i=function(e){return e?t:r})(e)}async function f(u=process.cwd()){let i=r.default.join(u,n.EXTENSION_CONFIG_FILE);if(!t.default.existsSync(i))throw new o.AbortError(n.ERRORS.SHOPLINE_CONFIG_NOT_FOUND);let f=e.load(t.default.readFileSync(i,"utf8"));return(null==f?void 0:f.project_type)==="extension"?Promise.resolve():Promise.reject(Error(n.ERRORS.UNSUPPORTED_PROJECT_TYPE))}
2
+ //# sourceMappingURL=ensure-project-type.js.map
@@ -1 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(exports,{getEnv:()=>c,getEnvVariable:()=>a,resolveEnvContents:()=>s,writeEnvFile:()=>f,clearEnvFile:()=>d});const e=l(require("fs-extra")),t=l(require("dotenv")),r=l(require("../../utils/get-store-env"));require("./inquirer");const n=require("./api"),i=require("./const"),u=require("./utils"),o=require("../../utils/error");function l(e){return e&&e.__esModule?e:{default:e}}async function c(e){let t=e;if(t&&i.ENVS.includes(t))return(0,n.changeBaseURL)(t),t;if(t=await a(),!i.ENVS.includes(t))throw new o.AbortError(i.ERRORS.ENV_INVALID);return(0,n.changeBaseURL)(t),t}async function a(){let e=(0,r.default)();return e||"prod"}function s(r,n=process.cwd()){let l=(0,u.getEnvPath)(r,n);if(!e.default.existsSync(l))throw new o.AbortError(i.ERRORS.ENV_FILE_NOT_FOUND);let c=t.default.parse(e.default.readFileSync(l,"utf8"));return c}function f(t,r,n=process.cwd()){let i={};try{i=s(t,n)}catch(e){}let o={...i,...r},l=Reflect.ownKeys(o).map(e=>"undefined"===o[e]?"":`${e}=${o[e]}`).join("\n"),c=(0,u.getEnvPath)(t,n);e.default.writeFileSync(c,l)}function d(t,r){let n=(0,u.getEnvPath)(t,r);e.default.writeFileSync(n,"")}
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(exports,{getEnv:()=>c,getEnvVariable:()=>a,resolveEnvContents:()=>s,writeEnvFile:()=>f,clearEnvFile:()=>d});const e=l(require("fs-extra")),t=l(require("dotenv")),r=l(require("../../utils/get-store-env"));require("./inquirer");const n=require("./api"),i=require("./const"),u=require("./utils"),o=require("../../utils/error");function l(e){return e&&e.__esModule?e:{default:e}}async function c(e){let t=e;if(t&&i.ENVS.includes(t))return(0,n.changeBaseURL)(t),t;if(t=await a(),!i.ENVS.includes(t))throw new o.AbortError(i.ERRORS.ENV_INVALID);return(0,n.changeBaseURL)(t),t}async function a(){let e=(0,r.default)();return e||"prod"}function s(r,n=process.cwd()){let l=(0,u.getEnvPath)(r,n);if(!e.default.existsSync(l))throw new o.AbortError(i.ERRORS.ENV_FILE_NOT_FOUND);let c=t.default.parse(e.default.readFileSync(l,"utf8"));return c}function f(t,r,n=process.cwd()){let i={};try{i=s(t,n)}catch(e){}let o={...i,...r},l=Reflect.ownKeys(o).map(e=>"undefined"===o[e]?"":`${e}=${o[e]}`).join("\n"),c=(0,u.getEnvPath)(t,n);e.default.writeFileSync(c,l)}function d(t,r){let n=(0,u.getEnvPath)(t,r);e.default.writeFileSync(n,"")}
2
+ //# sourceMappingURL=env.js.map
@@ -1 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(exports,{getSelectedPartner:()=>c,getPartnerName:()=>p,getSelectedApp:()=>d,getSelectedExts:()=>g,getAppLists:()=>f,getAppExts:()=>h,getSelectedShop:()=>w,handleNoStore:()=>y,getPartnerAccessToken:()=>m,getStoreId:()=>v,getAppName:()=>S,getAvailableProductSkuId:()=>b});const e=require("../../utils/ui/ui"),t=require("./api"),r=require("./utils"),a=require("../../utils/error"),n=require("../../utils/ui/render"),i=require("./openapi"),o=require("../../utils/output"),l=u(require("../../utils/winston")),s=u(require("../../helpers/config"));function u(e){return e&&e.__esModule?e:{default:e}}async function c(){let n=[];if(l.default.log("Loading partner list..."),await (0,e.renderTasks)([{title:"Loading available partner organizations",task:async()=>{n=await (0,t.getPartnerList)()}}]),!n.length)throw new a.AbortError("No partner in your account.");l.default.log("Selecting partner organization...");let i=await (0,e.renderSelectPrompt)({message:"Select partner organization?",choices:(0,r.buildPartnerChoice)(n)}),o=n.find(e=>e.id===i).partnerName;l.default.log(`Selected partner organization: ${o}`);let u={id:i,partnerName:o};return s.default.currentPartner=u,u}async function p(e){let r=await (0,t.getPartnerList)(),n=r.find(t=>t.id===e);if(null==n?void 0:n.partnerName)return n.partnerName;throw new a.AbortError((0,o.outputContent)`The partner id: ${o.outputToken.cyan(e)} does not exist in your account.`,(0,o.outputContent)`Please add the ${o.outputToken.magenta("--reset")} flag after your command.`)}async function d(t){let a=[];if(l.default.log("Loading your apps..."),await (0,e.renderTasks)([{title:"Loading your apps",task:async()=>{a=await f(t.id)}}]),!a.length)throw Error("No apps in your account.");l.default.log("Selecting app...");let n=await (0,e.renderSelectPrompt)({message:"Which app would like to register this extension with?",choices:(0,r.buildAppChoice)(a,t.partnerName)});return l.default.log(`Selected app: ${JSON.stringify(n)}`),n}async function g(t,a){let n=[];l.default.log("Loading your extensions..."),await (0,e.renderTasks)([{title:"Loading your extensions",task:async()=>{n=await h(t,a)}}]),l.default.log("Selecting extension...");let i=await (0,e.renderSelectPrompt)({message:"Which extension would like to register this extension with?",choices:(0,r.buildExtChoice)(n)});return l.default.log(`Selected app: ${JSON.stringify(i)}`),i}async function f(e){let{dataList:r=[]}=await (0,t.getAppList)({pageSize:300,partnerId:e});return r}async function h(e,r){let{dataList:a=[]}=await (0,t.getAppExtList)({appKey:e,pageSize:300,currentPage:1,types:[r]});return a}async function w(a,n){let i=[];if(await (0,e.renderTasks)([{title:"Loading your development store",task:async()=>{i=await (0,t.getStoreList)(a)}}]),i.length){if(1===i.length){let[e]=i;return e}{let t=await (0,e.renderSelectPrompt)({message:"Which development store would you like to use?",choices:(0,r.buildStoreChoice)(i)});return t}}await y(a,n)}async function y(t,a){(0,n.renderWarning)({headline:["This partner account does not have a development store."],body:["Please visit",{link:{label:"the developer platform",url:(0,r.getDeveloperPlatformLink)(a)}},"to create a development store and try again."]});let i=await (0,e.renderSelectPrompt)({message:"How will you proceed to the next step?",choices:[{label:"Developement store has been created, please retry!",value:1},{label:"Abort",value:0}]});i?await w(t,a):process.exit(1)}async function m(e,r){let a=await (0,t.getAccessToken)({storeId:e,appKey:r});return a.token||""}async function v(e,r){let a=await (0,t.getStoreInfo)(e,r);return a.storeId||""}async function S(e,r){let a=await (0,t.getAppInfo)(e,r);return a.appName||""}async function b(e,t,r,n){let l=new a.AbortError(n),s=await m(e,t),u=await (0,i.getOpenApiHttp)(s,r);try{let e=await u.get("/products/products.json",{params:{status:"active"}});if(e.products.length>0){var c,p,d;(0,o.outputDebug)((0,o.outputContent)`You have an available first product variants: ${o.outputToken.json(null===(c=e.products)||void 0===c?void 0:null===(p=c[0])||void 0===p?void 0:p.variants)}`);let t=null===(d=e.products.flatMap(e=>e.variants).find(e=>e.id&&e.inventory_quantity>0))||void 0===d?void 0:d.id;if(t)return t}}catch(e){throw l}throw l}
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(exports,{getSelectedPartner:()=>c,getPartnerName:()=>p,getSelectedApp:()=>d,getSelectedExts:()=>g,getAppLists:()=>f,getAppExts:()=>h,getSelectedShop:()=>w,handleNoStore:()=>y,getPartnerAccessToken:()=>m,getStoreId:()=>v,getAppName:()=>S,getAvailableProductSkuId:()=>b});const e=require("../../utils/ui/ui"),t=require("./api"),r=require("./utils"),a=require("../../utils/error"),n=require("../../utils/ui/render"),i=require("./openapi"),o=require("../../utils/output"),l=u(require("../../utils/winston")),s=u(require("../../helpers/config"));function u(e){return e&&e.__esModule?e:{default:e}}async function c(){let n=[];if(l.default.log("Loading partner list..."),await (0,e.renderTasks)([{title:"Loading available partner organizations",task:async()=>{n=await (0,t.getPartnerList)()}}]),!n.length)throw new a.AbortError("No partner in your account.");l.default.log("Selecting partner organization...");let i=await (0,e.renderSelectPrompt)({message:"Select partner organization?",choices:(0,r.buildPartnerChoice)(n)}),o=n.find(e=>e.id===i).partnerName;l.default.log(`Selected partner organization: ${o}`);let u={id:i,partnerName:o};return s.default.currentPartner=u,u}async function p(e){let r=await (0,t.getPartnerList)(),n=r.find(t=>t.id===e);if(null==n?void 0:n.partnerName)return n.partnerName;throw new a.AbortError((0,o.outputContent)`The partner id: ${o.outputToken.cyan(e)} does not exist in your account.`,(0,o.outputContent)`Please add the ${o.outputToken.magenta("--reset")} flag after your command.`)}async function d(t){let a=[];if(l.default.log("Loading your apps..."),await (0,e.renderTasks)([{title:"Loading your apps",task:async()=>{a=await f(t.id)}}]),!a.length)throw Error("No apps in your account.");l.default.log("Selecting app...");let n=await (0,e.renderSelectPrompt)({message:"Which app would like to register this extension with?",choices:(0,r.buildAppChoice)(a,t.partnerName)});return l.default.log(`Selected app: ${JSON.stringify(n)}`),n}async function g(t,a){let n=[];l.default.log("Loading your extensions..."),await (0,e.renderTasks)([{title:"Loading your extensions",task:async()=>{n=await h(t,a)}}]),l.default.log("Selecting extension...");let i=await (0,e.renderSelectPrompt)({message:"Which extension would like to register this extension with?",choices:(0,r.buildExtChoice)(n)});return l.default.log(`Selected app: ${JSON.stringify(i)}`),i}async function f(e){let{dataList:r=[]}=await (0,t.getAppList)({pageSize:300,partnerId:e});return r}async function h(e,r){let{dataList:a=[]}=await (0,t.getAppExtList)({appKey:e,pageSize:300,currentPage:1,types:[r]});return a}async function w(a,n){let i=[];if(await (0,e.renderTasks)([{title:"Loading your development store",task:async()=>{i=await (0,t.getStoreList)(a)}}]),i.length){if(1===i.length){let[e]=i;return e}{let t=await (0,e.renderSelectPrompt)({message:"Which development store would you like to use?",choices:(0,r.buildStoreChoice)(i)});return t}}await y(a,n)}async function y(t,a){(0,n.renderWarning)({headline:["This partner account does not have a development store."],body:["Please visit",{link:{label:"the developer platform",url:(0,r.getDeveloperPlatformLink)(a)}},"to create a development store and try again."]});let i=await (0,e.renderSelectPrompt)({message:"How will you proceed to the next step?",choices:[{label:"Developement store has been created, please retry!",value:1},{label:"Abort",value:0}]});i?await w(t,a):process.exit(1)}async function m(e,r){let a=await (0,t.getAccessToken)({storeId:e,appKey:r});return a.token||""}async function v(e,r){let a=await (0,t.getStoreInfo)(e,r);return a.storeId||""}async function S(e,r){let a=await (0,t.getAppInfo)(e,r);return a.appName||""}async function b(e,t,r,n){let l=new a.AbortError(n),s=await m(e,t),u=await (0,i.getOpenApiHttp)(s,r);try{let e=await u.get("/products/products.json",{params:{status:"active"}});if(e.products.length>0){var c,p,d;(0,o.outputDebug)((0,o.outputContent)`You have an available first product variants: ${o.outputToken.json(null===(c=e.products)||void 0===c?void 0:null===(p=c[0])||void 0===p?void 0:p.variants)}`);let t=null===(d=e.products.flatMap(e=>e.variants).find(e=>e.id&&e.inventory_quantity>0))||void 0===d?void 0:d.id;if(t)return t}}catch(e){throw l}throw l}
2
+ //# sourceMappingURL=extension.js.map
@@ -1 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"initFunctionExtension",{enumerable:!0,get:()=>p});const e=require("../../../utils/path"),t=require("../clone-repo"),n=require("../../../utils/fs"),a=require("../../../utils/hbs"),i=require("../../../utils/node-package-manager"),l=require("../../../utils/ui/ui"),o=require("../../../utils/output"),r=require("../utils"),u=require("../env"),s=function(e){return e&&e.__esModule?e:{default:e}}(require("../../../utils/winston"));async function p(i){let{app:{appKey:l,appSecret:p},name:c,env:g,cwd:f,cloneUrl:E,partnerId:P,type:m}=i,y=(0,e.joinPath)(f,`.${c}`);s.default.log(`Downloading repository: ${E}`),await (0,t.downloadRepository)(E,y,f,{"--branch":"master"});let w=(0,e.joinPath)(y,`templates/${m}`),I=(0,e.joinPath)(f,c);(0,n.pathExists)(w)&&(s.default.log(`Copying template files from ${w} to ${I}`),await (0,a.recursiveHbsTemplateCopy)(w,I,{name:c},y),await d(I),s.default.log(`Write .env.${g} file`),function(e,t,n){let a={PARTNER_ID:e.partnerId,SHOPLINE_APP_KEY:e.appKey,SHOPLINE_APP_SECRET:e.appSecret,EXTENSION_TITLE:e.name,EXTENSION_UUID:(0,r.generateDevUUID)()};(0,u.writeEnvFile)(t,a,`${n}/${e.name}`),(0,o.outputCompleted)((0,o.outputContent)`.env saved to project root`)}({partnerId:P,appKey:l,appSecret:p,name:c},g,f))}async function d(e){s.default.log("Get package manager...");let t=await (0,i.getPackageManager)(e);s.default.log(`Using ${t}`),s.default.log("Installing dependencies..."),await (0,l.renderTasks)([{title:`Installing dependencies with ${t}`,task:async()=>{await (0,i.addNPMDependencies)([],{type:"dev",directory:e,packageManager:t})}}]),s.default.log("Dependencies installed successfully"),(0,o.outputCompleted)((0,o.outputContent)`Dependencies installed`)}
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"initFunctionExtension",{enumerable:!0,get:()=>p});const e=require("../../../utils/path"),t=require("../clone-repo"),n=require("../../../utils/fs"),a=require("../../../utils/hbs"),i=require("../../../utils/node-package-manager"),l=require("../../../utils/ui/ui"),o=require("../../../utils/output"),r=require("../utils"),u=require("../env"),s=function(e){return e&&e.__esModule?e:{default:e}}(require("../../../utils/winston"));async function p(i){let{app:{appKey:l,appSecret:p},name:c,env:g,cwd:f,cloneUrl:E,partnerId:P,type:m}=i,y=(0,e.joinPath)(f,`.${c}`);s.default.log(`Downloading repository: ${E}`),await (0,t.downloadRepository)(E,y,f,{"--branch":"master"});let w=(0,e.joinPath)(y,`templates/${m}`),I=(0,e.joinPath)(f,c);(0,n.pathExists)(w)&&(s.default.log(`Copying template files from ${w} to ${I}`),await (0,a.recursiveHbsTemplateCopy)(w,I,{name:c},y),await d(I),s.default.log(`Write .env.${g} file`),function(e,t,n){let a={PARTNER_ID:e.partnerId,SHOPLINE_APP_KEY:e.appKey,SHOPLINE_APP_SECRET:e.appSecret,EXTENSION_TITLE:e.name,EXTENSION_UUID:(0,r.generateDevUUID)()};(0,u.writeEnvFile)(t,a,`${n}/${e.name}`),(0,o.outputCompleted)((0,o.outputContent)`.env saved to project root`)}({partnerId:P,appKey:l,appSecret:p,name:c},g,f))}async function d(e){s.default.log("Get package manager...");let t=await (0,i.getPackageManager)(e);s.default.log(`Using ${t}`),s.default.log("Installing dependencies..."),await (0,l.renderTasks)([{title:`Installing dependencies with ${t}`,task:async()=>{await (0,i.addNPMDependencies)([],{type:"dev",directory:e,packageManager:t})}}]),s.default.log("Dependencies installed successfully"),(0,o.outputCompleted)((0,o.outputContent)`Dependencies installed`)}
2
+ //# sourceMappingURL=generate.js.map
@@ -1 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),function(e,t){for(var n in t)Object.defineProperty(e,n,{enumerable:!0,get:t[n]})}(exports,{getFunctionInfo:()=>n,isFunctionType:()=>i});const e=require("../api");let t=null;async function n(n){if(t)return t.find(e=>e.templateName===n);let i=await (0,e.getFunctionTemplates)(),a=i.find(e=>e.templateName===n);return t=i,a}async function i(n){if(t){let e=t.find(e=>e.templateName===n);return!!e}let i=await (0,e.getFunctionTemplates)(),a=i.find(e=>e.templateName===n);return!!a}
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),function(e,t){for(var n in t)Object.defineProperty(e,n,{enumerable:!0,get:t[n]})}(exports,{getFunctionInfo:()=>n,isFunctionType:()=>i});const e=require("../api");let t=null;async function n(n){if(t)return t.find(e=>e.templateName===n);let i=await (0,e.getFunctionTemplates)(),a=i.find(e=>e.templateName===n);return t=i,a}async function i(n){if(t){let e=t.find(e=>e.templateName===n);return!!e}let i=await (0,e.getFunctionTemplates)(),a=i.find(e=>e.templateName===n);return!!a}
2
+ //# sourceMappingURL=info.js.map
@@ -5,4 +5,5 @@
5
5
  command = "{COMMAND}"
6
6
 
7
7
  Note that the command must output a dist/function.wasm file.
8
- `)}async function I(e,t,n){let i=e;return i.EXTENSION_UUID&&!i.EXTENSION_UUID.startsWith("dev-")?e:(await (0,o.renderTasks)([{title:"Registering with SHOPLINE",task:async()=>{let o=await (0,a.getFunctionInfo)(t),r=await (0,u.registerFunction)({appKey:e.SHOPLINE_APP_KEY,functionType:t,version:n,language:null==o?void 0:o.language}),{uuid:l}=r||{};if(!l)throw new s.AbortError("Failed to register. Please retry again!");i.EXTENSION_UUID=l}}]),i)}async function P(e,t,{type:n,env:i}){(0,l.outputDebug)("Start build function extension"),await (0,o.renderConcurrent)({processes:[{prefix:"Building extension with npm",action:async(o,r)=>{let u=e.split(/\s+/).filter(Boolean),a=[`-o=${t}`,`--env=${i}`,`--type=${n}`],s=["exec","--"].concat(u).concat(a);await (0,d.exec)("npm",s,{stdout:o,stderr:r})}}],showTimestamps:!1})}async function N(e){(0,l.outputDebug)((0,l.outputContent)`Pushing ${l.outputToken.path(e.output)} file to remote`),await (0,o.renderTasks)([{title:"Pushing your extension to Shopline",task:async()=>{await b(e)}}])}async function b(e){let t=new n.default;t.append("wasmFile",e.wasmFile),t.append("codeFile",e.zipFile),t.append("uuid",e.uuid),t.append("appKey",e.appKey),t.append("funcInput",e.inputGraphqlContent),t.append("storeId",e.storeId),t.append("uiExt",e.uiPaths),t.append("name",e.name);let i=await (0,u.pushFunction)(t);i?(0,m.renderSuccess)({headline:["Pushed",{userInput:e.name},"to Shopline!"]}):(0,m.renderFatalError)(new s.AbortError(`Pushed to SHOPLINE with errors on ${(0,w.formatTime)()}`))}async function T(t,n,o,r){var u,a;let l=e.default.createReadStream(t),p=null===(u=n.build)||void 0===u?void 0:u.path,d=null===(a=n.ui)||void 0===a?void 0:a.paths,c=(0,f.joinPath)(r.cwd,p);if(!await (0,E.fileExists)(c))throw new s.AbortError("Cannot found wasm file in this project");let h=e.default.createReadStream(c),w=(0,f.joinPath)(r.cwd,"input.graphql");if(!await (0,E.fileExists)(w))throw new s.AbortError("Cannot found input.graphql file in this project");let m=await (0,E.readFile)(w),g=(()=>{let e=Object.keys(d);if(e.length>0){let t=e.map(e=>({name:e,path:d[e]}));return JSON.stringify(t)}return""})();return{wasmFile:h,zipFile:l,output:t,uuid:o.EXTENSION_UUID,appKey:o.SHOPLINE_APP_KEY,name:o.EXTENSION_TITLE,inputGraphqlContent:m,storeId:i.default.currentStoreId,uiPaths:g}}
8
+ `)}async function I(e,t,n){let i=e;return i.EXTENSION_UUID&&!i.EXTENSION_UUID.startsWith("dev-")?e:(await (0,o.renderTasks)([{title:"Registering with SHOPLINE",task:async()=>{let o=await (0,a.getFunctionInfo)(t),r=await (0,u.registerFunction)({appKey:e.SHOPLINE_APP_KEY,functionType:t,version:n,language:null==o?void 0:o.language}),{uuid:l}=r||{};if(!l)throw new s.AbortError("Failed to register. Please retry again!");i.EXTENSION_UUID=l}}]),i)}async function P(e,t,{type:n,env:i}){(0,l.outputDebug)("Start build function extension"),await (0,o.renderConcurrent)({processes:[{prefix:"Building extension with npm",action:async(o,r)=>{let u=e.split(/\s+/).filter(Boolean),a=[`-o=${t}`,`--env=${i}`,`--type=${n}`],s=["exec","--"].concat(u).concat(a);await (0,d.exec)("npm",s,{stdout:o,stderr:r})}}],showTimestamps:!1})}async function N(e){(0,l.outputDebug)((0,l.outputContent)`Pushing ${l.outputToken.path(e.output)} file to remote`),await (0,o.renderTasks)([{title:"Pushing your extension to Shopline",task:async()=>{await b(e)}}])}async function b(e){let t=new n.default;t.append("wasmFile",e.wasmFile),t.append("codeFile",e.zipFile),t.append("uuid",e.uuid),t.append("appKey",e.appKey),t.append("funcInput",e.inputGraphqlContent),t.append("storeId",e.storeId),t.append("uiExt",e.uiPaths),t.append("name",e.name);let i=await (0,u.pushFunction)(t);i?(0,m.renderSuccess)({headline:["Pushed",{userInput:e.name},"to Shopline!"]}):(0,m.renderFatalError)(new s.AbortError(`Pushed to SHOPLINE with errors on ${(0,w.formatTime)()}`))}async function T(t,n,o,r){var u,a;let l=e.default.createReadStream(t),p=null===(u=n.build)||void 0===u?void 0:u.path,d=null===(a=n.ui)||void 0===a?void 0:a.paths,c=(0,f.joinPath)(r.cwd,p);if(!await (0,E.fileExists)(c))throw new s.AbortError("Cannot found wasm file in this project");let h=e.default.createReadStream(c),w=(0,f.joinPath)(r.cwd,"input.graphql");if(!await (0,E.fileExists)(w))throw new s.AbortError("Cannot found input.graphql file in this project");let m=await (0,E.readFile)(w),g=(()=>{let e=Object.keys(d);if(e.length>0){let t=e.map(e=>({name:e,path:d[e]}));return JSON.stringify(t)}return""})();return{wasmFile:h,zipFile:l,output:t,uuid:o.EXTENSION_UUID,appKey:o.SHOPLINE_APP_KEY,name:o.EXTENSION_TITLE,inputGraphqlContent:m,storeId:i.default.currentStoreId,uiPaths:g}}
9
+ //# sourceMappingURL=push.js.map
@@ -1 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),function(e,t){for(var o in t)Object.defineProperty(e,o,{enumerable:!0,get:t[o]})}(exports,{FunctionTypeSchema:()=>a,FunctionConfigSchema:()=>s,getExtensionConfig:()=>d});const e=require("../../../utils/path"),t=require("../../../utils/schema"),o=require("../const"),i=require("../../../utils/fs"),r=require("../../../utils/toml"),n=require("../../../utils/error"),a=t.zod.object({type:t.zod.string(),name:t.zod.string()}),s=t.zod.object({version:t.zod.string().default(""),build:t.zod.object({command:t.zod.string().transform(e=>""===e.trim()?void 0:e).optional(),path:t.zod.string().default("dist/function.wasm")}).optional(),ui:t.zod.object({paths:t.zod.object({create:t.zod.string(),details:t.zod.string()}).optional()}).optional()});async function d(t){let a=(0,e.joinPath)(t,o.FUNCTION_CONFIG_FILE);if(await (0,i.fileExists)(a)){let e=await (0,i.readFile)(a),t=(0,r.decodeToml)(e),o=await s.parse(t);return o}throw new n.AbortError("The directory you are in is not a valid extension project.")}
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),function(e,t){for(var o in t)Object.defineProperty(e,o,{enumerable:!0,get:t[o]})}(exports,{FunctionTypeSchema:()=>a,FunctionConfigSchema:()=>s,getExtensionConfig:()=>d});const e=require("../../../utils/path"),t=require("../../../utils/schema"),o=require("../const"),i=require("../../../utils/fs"),r=require("../../../utils/toml"),n=require("../../../utils/error"),a=t.zod.object({type:t.zod.string(),name:t.zod.string()}),s=t.zod.object({version:t.zod.string().default(""),build:t.zod.object({command:t.zod.string().transform(e=>""===e.trim()?void 0:e).optional(),path:t.zod.string().default("dist/function.wasm")}).optional(),ui:t.zod.object({paths:t.zod.object({create:t.zod.string(),details:t.zod.string()}).optional()}).optional()});async function d(t){let a=(0,e.joinPath)(t,o.FUNCTION_CONFIG_FILE);if(await (0,i.fileExists)(a)){let e=await (0,i.readFile)(a),t=(0,r.decodeToml)(e),o=await s.parse(t);return o}throw new n.AbortError("The directory you are in is not a valid extension project.")}
2
+ //# sourceMappingURL=schemas.js.map
@@ -1 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"generateExtension",{enumerable:!0,get:()=>g});const e=f(require("pathe")),t=require("./types"),a=require("./clone-repo"),i=require("../../utils/path"),o=require("../../utils/hbs"),n=require("../../utils/fs"),l=require("../../utils/node-package-manager"),s=require("../../utils/ui/ui"),r=require("../../utils/output"),p=require("./env"),u=require("./utils"),d=require("./functions/generate"),c=f(require("../../utils/winston"));function f(e){return e&&e.__esModule?e:{default:e}}async function g(a){switch(a.type){case t.EExtensionTypes.themeAppExtension:await m(a);break;case t.EExtensionTypes.checkoutUiCustomizer:await w(a);break;case t.EExtensionTypes.postPurchaseCustomizer:await E(a);break;case t.EExtensionTypes.pixelsExtension:await y(a);break;case t.EExtensionTypes.shopperExtension:await $(a);break;default:await (0,d.initFunctionExtension)(a)}return{directory:(0,i.relativizePath)(e.default.join(a.cwd,a.name),a.cwd),specification:a}}async function y(e){let{app:{appKey:t,appSecret:l},name:s,env:r,cwd:p,cloneUrl:u,partnerId:d}=e,f=(0,i.joinPath)(p,`.${s}`);c.default.log(`Downloading repository: ${u}`),await (0,a.downloadRepository)(u,f,p);let g=(0,i.joinPath)(f,"templates"),y=(0,i.joinPath)(p,s);(0,n.pathExists)(g)&&(c.default.log(`Copying template files from ${g} to ${y}`),await (0,o.recursiveHbsTemplateCopy)(g,y,{name:s},f),await P(y),c.default.log(`Write .env.${r} file`),h({partnerId:d,appKey:t,appSecret:l,name:s},r,p))}async function w(e){let{app:{appKey:t,appSecret:l},name:s,env:r,cwd:p,cloneUrl:u,partnerId:d}=e,f=(0,i.joinPath)(p,`.${s}`);c.default.log(`Downloading repository: ${u}`),await (0,a.downloadRepository)(u,f,p);let g=(0,i.joinPath)(p,s);(0,n.pathExists)(f)&&(c.default.log(`Copying template files from ${f} to ${g}`),await (0,o.recursiveHbsTemplateCopy)(f,g,{name:s},f),await P(g),c.default.log(`Write .env.${r} file`),h({partnerId:d,appKey:t,appSecret:l,name:s},r,p))}async function E(e){let{app:{appKey:t,appSecret:l},name:s,env:r,cwd:p,cloneUrl:u,partnerId:d}=e,f=(0,i.joinPath)(p,`.${s}`);c.default.log(`Downloading repository: ${u}`),await (0,a.downloadRepository)(u,f,p);let g=(0,i.joinPath)(p,s);(0,n.pathExists)(f)&&(c.default.log(`Copying template files from ${f} to ${g}`),await (0,o.recursiveHbsTemplateCopy)(f,g,{name:s},f),await P(g),c.default.log(`Write .env.${r} file`),h({partnerId:d,appKey:t,appSecret:l,name:s},r,p))}async function m(e){let{app:{appKey:t,appSecret:n},name:l,env:s,cwd:r,cloneUrl:p,partnerId:u}=e,d=(0,i.joinPath)(r,`.${l}`),f=(0,i.joinPath)(r,l);c.default.log(`Downloading repository: ${p}`),await (0,a.downloadRepository)(p,d,r,{"--branch":"main"}),c.default.log(`Copying template files from .${l} to ${l}`),await (0,o.recursiveThemeTemplateCopy)(d,f),c.default.log(`Write .env.${s} file`),h({partnerId:u,appKey:t,appSecret:n,name:l},s,r)}async function $(e){let{app:{appKey:t,appSecret:l},name:s,env:r,cwd:p,cloneUrl:u,partnerId:d}=e,f=(0,i.joinPath)(p,`.${s}`);c.default.log(`Downloading repository: ${u}`),await (0,a.downloadRepository)(u,f,p);let g=(0,i.joinPath)(p,s);(0,n.pathExists)(f)&&(c.default.log(`Copying template files from ${f} to ${g}`),await (0,o.recursiveHbsTemplateCopy)(f,g,{name:s},f),c.default.log(`Write .env.${r} file`),h({partnerId:d,appKey:t,appSecret:l,name:s},r,p))}function h(e,t,a){let i={PARTNER_ID:e.partnerId,SHOPLINE_APP_KEY:e.appKey,SHOPLINE_APP_SECRET:e.appSecret,EXTENSION_TITLE:e.name,EXTENSION_UUID:(0,u.generateDevUUID)()};(0,p.writeEnvFile)(t,i,`${a}/${e.name}`),(0,r.outputCompleted)((0,r.outputContent)`.env saved to project root`)}async function P(e){c.default.log("Get package manager...");let t=await (0,l.getPackageManager)(e);c.default.log(`Using ${t}`),c.default.log("Installing dependencies..."),await (0,s.renderTasks)([{title:`Installing dependencies with ${t}`,task:async()=>{await (0,l.addNPMDependencies)([],{type:"prod",directory:e,packageManager:t})}}]),c.default.log("Dependencies installed successfully"),(0,r.outputCompleted)((0,r.outputContent)`Dependencies installed`)}
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"generateExtension",{enumerable:!0,get:()=>g});const e=f(require("pathe")),t=require("./types"),a=require("./clone-repo"),i=require("../../utils/path"),o=require("../../utils/hbs"),n=require("../../utils/fs"),l=require("../../utils/node-package-manager"),s=require("../../utils/ui/ui"),r=require("../../utils/output"),p=require("./env"),u=require("./utils"),d=require("./functions/generate"),c=f(require("../../utils/winston"));function f(e){return e&&e.__esModule?e:{default:e}}async function g(a){switch(a.type){case t.EExtensionTypes.themeAppExtension:await m(a);break;case t.EExtensionTypes.checkoutUiCustomizer:await w(a);break;case t.EExtensionTypes.postPurchaseCustomizer:await E(a);break;case t.EExtensionTypes.pixelsExtension:await y(a);break;case t.EExtensionTypes.shopperExtension:await $(a);break;default:await (0,d.initFunctionExtension)(a)}return{directory:(0,i.relativizePath)(e.default.join(a.cwd,a.name),a.cwd),specification:a}}async function y(e){let{app:{appKey:t,appSecret:l},name:s,env:r,cwd:p,cloneUrl:u,partnerId:d}=e,f=(0,i.joinPath)(p,`.${s}`);c.default.log(`Downloading repository: ${u}`),await (0,a.downloadRepository)(u,f,p);let g=(0,i.joinPath)(f,"templates"),y=(0,i.joinPath)(p,s);(0,n.pathExists)(g)&&(c.default.log(`Copying template files from ${g} to ${y}`),await (0,o.recursiveHbsTemplateCopy)(g,y,{name:s},f),await P(y),c.default.log(`Write .env.${r} file`),h({partnerId:d,appKey:t,appSecret:l,name:s},r,p))}async function w(e){let{app:{appKey:t,appSecret:l},name:s,env:r,cwd:p,cloneUrl:u,partnerId:d}=e,f=(0,i.joinPath)(p,`.${s}`);c.default.log(`Downloading repository: ${u}`),await (0,a.downloadRepository)(u,f,p);let g=(0,i.joinPath)(p,s);(0,n.pathExists)(f)&&(c.default.log(`Copying template files from ${f} to ${g}`),await (0,o.recursiveHbsTemplateCopy)(f,g,{name:s},f),await P(g),c.default.log(`Write .env.${r} file`),h({partnerId:d,appKey:t,appSecret:l,name:s},r,p))}async function E(e){let{app:{appKey:t,appSecret:l},name:s,env:r,cwd:p,cloneUrl:u,partnerId:d}=e,f=(0,i.joinPath)(p,`.${s}`);c.default.log(`Downloading repository: ${u}`),await (0,a.downloadRepository)(u,f,p);let g=(0,i.joinPath)(p,s);(0,n.pathExists)(f)&&(c.default.log(`Copying template files from ${f} to ${g}`),await (0,o.recursiveHbsTemplateCopy)(f,g,{name:s},f),await P(g),c.default.log(`Write .env.${r} file`),h({partnerId:d,appKey:t,appSecret:l,name:s},r,p))}async function m(e){let{app:{appKey:t,appSecret:n},name:l,env:s,cwd:r,cloneUrl:p,partnerId:u}=e,d=(0,i.joinPath)(r,`.${l}`),f=(0,i.joinPath)(r,l);c.default.log(`Downloading repository: ${p}`),await (0,a.downloadRepository)(p,d,r,{"--branch":"main"}),c.default.log(`Copying template files from .${l} to ${l}`),await (0,o.recursiveThemeTemplateCopy)(d,f),c.default.log(`Write .env.${s} file`),h({partnerId:u,appKey:t,appSecret:n,name:l},s,r)}async function $(e){let{app:{appKey:t,appSecret:l},name:s,env:r,cwd:p,cloneUrl:u,partnerId:d}=e,f=(0,i.joinPath)(p,`.${s}`);c.default.log(`Downloading repository: ${u}`),await (0,a.downloadRepository)(u,f,p);let g=(0,i.joinPath)(p,s);(0,n.pathExists)(f)&&(c.default.log(`Copying template files from ${f} to ${g}`),await (0,o.recursiveHbsTemplateCopy)(f,g,{name:s},f),c.default.log(`Write .env.${r} file`),h({partnerId:d,appKey:t,appSecret:l,name:s},r,p))}function h(e,t,a){let i={PARTNER_ID:e.partnerId,SHOPLINE_APP_KEY:e.appKey,SHOPLINE_APP_SECRET:e.appSecret,EXTENSION_TITLE:e.name,EXTENSION_UUID:(0,u.generateDevUUID)()};(0,p.writeEnvFile)(t,i,`${a}/${e.name}`),(0,r.outputCompleted)((0,r.outputContent)`.env saved to project root`)}async function P(e){c.default.log("Get package manager...");let t=await (0,l.getPackageManager)(e);c.default.log(`Using ${t}`),c.default.log("Installing dependencies..."),await (0,s.renderTasks)([{title:`Installing dependencies with ${t}`,task:async()=>{await (0,l.addNPMDependencies)([],{type:"prod",directory:e,packageManager:t})}}]),c.default.log("Dependencies installed successfully"),(0,r.outputCompleted)((0,r.outputContent)`Dependencies installed`)}
2
+ //# sourceMappingURL=generate.js.map
@@ -1 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"default",{enumerable:!0,get:()=>g});const e=h(require("../../helpers/config")),t=require("../../utils/output"),r=require("../../utils/ui/render"),n=require("./serve"),i=require("../../utils/error"),o=require("./connect/index"),a=require("./create/index"),u=require("./push/index"),c=require("../../utils/local"),s=require("./push/build"),l=require("../theme/utils"),d=h(require("../../utils/winston"));function h(e){return e&&e.__esModule?e:{default:e}}class g{static async createAction(t){try{d.default.log("Checking login..."),e.default.isLogin(),await (0,a.createEntry)(t)}catch(e){(0,l.handleError)(e)}}static async buildAction(e){try{await (0,s.buildExtension)(e)}catch(e){(0,l.handleError)(e)}}static async pushAction(t){try{let r=(0,c.isCI)();r||(d.default.log("Checking login..."),e.default.isLogin()),await (0,u.pushExtension)(t,r)}catch(e){(0,l.handleError)(e)}}static async connectAction(t){try{d.default.log("Checking login..."),e.default.isLogin(),await (0,o.connect)(t)}catch(e){(0,l.handleError)(e)}}static async serveAction(t){try{d.default.log("Checking login..."),e.default.isLogin(),await (0,n.serve)(t)}catch(e){(0,l.handleError)(e)}}static async tunnelAction(n){if(!n){(0,r.renderFatalError)(new i.AbortError("requires a token argument",`Find it on your ngrok dashboard: ${t.outputToken.link("https://dashboard.ngrok.com/auth/your-authtoken","https://dashboard.ngrok.com/auth/your-authtoken")}`));return}e.default.ngrokToken=n,(0,t.outputSuccess)("Authentication ngrok token successfully")}}
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"default",{enumerable:!0,get:()=>g});const e=h(require("../../helpers/config")),t=require("../../utils/output"),r=require("../../utils/ui/render"),n=require("./serve"),i=require("../../utils/error"),o=require("./connect/index"),a=require("./create/index"),u=require("./push/index"),c=require("../../utils/local"),s=require("./push/build"),l=require("../theme/utils"),d=h(require("../../utils/winston"));function h(e){return e&&e.__esModule?e:{default:e}}class g{static async createAction(t){try{d.default.log("Checking login..."),e.default.isLogin(),await (0,a.createEntry)(t)}catch(e){(0,l.handleError)(e)}}static async buildAction(e){try{await (0,s.buildExtension)(e)}catch(e){(0,l.handleError)(e)}}static async pushAction(t){try{let r=(0,c.isCI)();r||(d.default.log("Checking login..."),e.default.isLogin()),await (0,u.pushExtension)(t,r)}catch(e){(0,l.handleError)(e)}}static async connectAction(t){try{d.default.log("Checking login..."),e.default.isLogin(),await (0,o.connect)(t)}catch(e){(0,l.handleError)(e)}}static async serveAction(t){try{d.default.log("Checking login..."),e.default.isLogin(),await (0,n.serve)(t)}catch(e){(0,l.handleError)(e)}}static async tunnelAction(n){if(!n){(0,r.renderFatalError)(new i.AbortError("requires a token argument",`Find it on your ngrok dashboard: ${t.outputToken.link("https://dashboard.ngrok.com/auth/your-authtoken","https://dashboard.ngrok.com/auth/your-authtoken")}`));return}e.default.ngrokToken=n,(0,t.outputSuccess)("Authentication ngrok token successfully")}}
2
+ //# sourceMappingURL=index.js.map
@@ -1 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(exports,{askForEnv:()=>s,getEnvFiles:()=>u,askChooseEnv:()=>o,askForSelectAppExt:()=>c});const e=a(require("fs-extra")),t=a(require("inquirer")),r=require("../../utils/messages"),n=require("./const");function a(e){return e&&e.__esModule?e:{default:e}}async function s(){let e=[{type:"list",name:"env",message:(0,r.getMessage)("extension.create.ask_env"),choices:n.ENVS,default:n.ENVS[0]}];return t.default.prompt(e)}async function u(t){let r=e.default.readdirSync(t).filter(e=>null==e?void 0:e.startsWith(".env.")),a=r.map(e=>{let t=null==e?void 0:e.replace(".env.","");return t});return 0===a.length?Promise.reject(Error(n.ERRORS.ENV_FILE_NOT_FOUND)):a}async function o(e=process.cwd()){try{let n=await u(e),a=[{type:"list",name:"env",message:(0,r.getMessage)("extension.create.ask_env"),choices:n,default:n[0]}];return await t.default.prompt(a)}catch(e){return Promise.reject(e.message||e)}}async function c(e,r){let n=e.map(e=>{let{appName:t,appSecret:n}=e,a=e.exts.reduce((a,s)=>(a.name=`${e.appName} by ${r}: ${s.name}`,a.value={...s,appName:t,appSecret:n},a),Object.create(null));return a}),a=[{type:"list",name:"ext",message:"Which extension would you like to connect to?",choices:n,default:e[0]}];return t.default.prompt(a)}
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(exports,{askForEnv:()=>s,getEnvFiles:()=>u,askChooseEnv:()=>o,askForSelectAppExt:()=>c});const e=a(require("fs-extra")),t=a(require("inquirer")),r=require("../../utils/messages"),n=require("./const");function a(e){return e&&e.__esModule?e:{default:e}}async function s(){let e=[{type:"list",name:"env",message:(0,r.getMessage)("extension.create.ask_env"),choices:n.ENVS,default:n.ENVS[0]}];return t.default.prompt(e)}async function u(t){let r=e.default.readdirSync(t).filter(e=>null==e?void 0:e.startsWith(".env.")),a=r.map(e=>{let t=null==e?void 0:e.replace(".env.","");return t});return 0===a.length?Promise.reject(Error(n.ERRORS.ENV_FILE_NOT_FOUND)):a}async function o(e=process.cwd()){try{let n=await u(e),a=[{type:"list",name:"env",message:(0,r.getMessage)("extension.create.ask_env"),choices:n,default:n[0]}];return await t.default.prompt(a)}catch(e){return Promise.reject(e.message||e)}}async function c(e,r){let n=e.map(e=>{let{appName:t,appSecret:n}=e,a=e.exts.reduce((a,s)=>(a.name=`${e.appName} by ${r}: ${s.name}`,a.value={...s,appName:t,appSecret:n},a),Object.create(null));return a}),a=[{type:"list",name:"ext",message:"Which extension would you like to connect to?",choices:n,default:e[0]}];return t.default.prompt(a)}
2
+ //# sourceMappingURL=inquirer.js.map
@@ -1 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"parseConfigurationFile",{enumerable:!0,get:()=>o});const e=require("../../utils/error"),t=require("../../utils/fs"),r=require("../../utils/output"),i=require("../../utils/string"),n=require("../../utils/toml");async function o(e,t,i=n.decodeToml){let o=await u(t,i);if(!o)return{};let a=e.safeParse(o);if(!a.success){let e=JSON.stringify(a.error.issues,null,2);return s((0,r.outputContent)`Fix a schema error in ${r.outputToken.path(t)}:\n${e}`)}return a.data}async function u(e,o=n.decodeToml){let u;if(!await (0,t.fileExists)(e))return s((0,r.outputContent)`Couldn't find the configuration file at ${r.outputToken.path(e)}`);let a=await (0,t.readFile)(e);try{u=o(a)}catch(t){if(t.line&&t.pos&&t.col)return s((0,r.outputContent)`Fix the following error in ${r.outputToken.path(e)}:\n${t.message}`);throw t}return{...Object.fromEntries(Object.entries(u).map(e=>[(0,i.camelize)(e[0]),e[1]]))}}function s(t){throw new e.AbortError(t)}
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"parseConfigurationFile",{enumerable:!0,get:()=>o});const e=require("../../utils/error"),t=require("../../utils/fs"),r=require("../../utils/output"),i=require("../../utils/string"),n=require("../../utils/toml");async function o(e,t,i=n.decodeToml){let o=await u(t,i);if(!o)return{};let a=e.safeParse(o);if(!a.success){let e=JSON.stringify(a.error.issues,null,2);return s((0,r.outputContent)`Fix a schema error in ${r.outputToken.path(t)}:\n${e}`)}return a.data}async function u(e,o=n.decodeToml){let u;if(!await (0,t.fileExists)(e))return s((0,r.outputContent)`Couldn't find the configuration file at ${r.outputToken.path(e)}`);let a=await (0,t.readFile)(e);try{u=o(a)}catch(t){if(t.line&&t.pos&&t.col)return s((0,r.outputContent)`Fix the following error in ${r.outputToken.path(e)}:\n${t.message}`);throw t}return{...Object.fromEntries(Object.entries(u).map(e=>[(0,i.camelize)(e[0]),e[1]]))}}function s(t){throw new e.AbortError(t)}
2
+ //# sourceMappingURL=loader.js.map
@@ -1 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(exports,{getBaseEndPoint:()=>a,getOpenApiHttp:()=>i});const e=s(require("axios")),t=s(require("form-data")),r=s(require("../../utils/debug")),n=require("../../helpers/sentry"),o=s(require("../../utils/format-protocol"));function s(e){return e&&e.__esModule?e:{default:e}}function a(e){return(0,o.default)(e)+"/admin/openapi/v20230301"}function i(o,s){let i=e.default.create({baseURL:a(s),maxBodyLength:1/0,maxContentLength:1/0,headers:{"Content-Type":"application/json",Authorization:`Bearer ${o}`}});return i.interceptors.request.use(e=>(r.default.printRequest(e),e.data instanceof t.default&&Object.assign(e.headers,e.data.getHeaders()),e),e=>Promise.reject(e)),i.interceptors.response.use(e=>{let{config:t}=e;return r.default.printResponse(t,e),(0,n.reportHttpRes)(e),e.data},e=>{var t,r;e.response&&(0,n.reportHttpRes)(e.response),(0,n.reportBug)(e);let o=null===(t=e.response)||void 0===t?void 0:null===(r=t.data)||void 0===r?void 0:r.errors;if(o)throw Error(o);return Promise.reject(e)}),i}
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(exports,{getBaseEndPoint:()=>a,getOpenApiHttp:()=>i});const e=s(require("axios")),t=s(require("form-data")),r=s(require("../../utils/debug")),n=require("../../helpers/sentry"),o=s(require("../../utils/format-protocol"));function s(e){return e&&e.__esModule?e:{default:e}}function a(e){return(0,o.default)(e)+"/admin/openapi/v20230301"}function i(o,s){let i=e.default.create({baseURL:a(s),maxBodyLength:1/0,maxContentLength:1/0,headers:{"Content-Type":"application/json",Authorization:`Bearer ${o}`}});return i.interceptors.request.use(e=>(r.default.printRequest(e),e.data instanceof t.default&&Object.assign(e.headers,e.data.getHeaders()),e),e=>Promise.reject(e)),i.interceptors.response.use(e=>{let{config:t}=e;return r.default.printResponse(t,e),(0,n.reportHttpRes)(e),e.data},e=>{var t,r;e.response&&(0,n.reportHttpRes)(e.response),(0,n.reportBug)(e);let o=null===(t=e.response)||void 0===t?void 0:null===(r=t.data)||void 0===r?void 0:r.errors;if(o)throw Error(o);return Promise.reject(e)}),i}
2
+ //# sourceMappingURL=openapi.js.map
@@ -1 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),function(e,t){for(var n in t)Object.defineProperty(e,n,{enumerable:!0,get:t[n]})}(exports,{pushExtension:()=>a,buildExtension:()=>c});const e=require("../../../utils/error"),t=require("../context"),n=require("../env"),i=require("../types"),r=require("../utils"),o=require("./checkout-ui"),s=require("./theme"),u=require("./show"),l=function(e){return e&&e.__esModule?e:{default:e}}(require("../../../utils/winston"));async function a(l,a){var c;let{env:w}=l,p=null!==(c=null==l?void 0:l.cwd)&&void 0!==c?c:process.cwd(),d=await (0,n.getEnv)(w),x=await (0,r.getExtensionType)(p);if(!x)throw new e.AbortError("Unknow extension type");l.reset&&(0,n.clearEnvFile)(d,p);let E=new t.ExtensionContext(x,d,p);a||await (0,u.showReuseInfo)(E),x===i.EExtensionTypes.themeAppExtension?await (0,s.pushThemeExt)(E):await (0,o.pushCheckoutUiCustomizer)(E)}async function c(u){var a;let{env:c}=u,w=null!==(a=null==u?void 0:u.cwd)&&void 0!==a?a:process.cwd(),p=await (0,n.getEnv)(c);l.default.log(`Current store environment: ${p}`);let d=await (0,r.getExtensionType)(w);if(l.default.log(`Current selected extension type: ${d}`),!d)throw new e.AbortError("Unknow extension type");u.reset&&(l.default.log("Clear env file..."),(0,n.clearEnvFile)(p,w));let x=new t.ExtensionContext(d,p,w);d===i.EExtensionTypes.themeAppExtension?await (0,s.buildThemeExt)(x):await (0,o.buildCheckoutUiCustomizer)(x)}
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),function(e,t){for(var n in t)Object.defineProperty(e,n,{enumerable:!0,get:t[n]})}(exports,{pushExtension:()=>a,buildExtension:()=>c});const e=require("../../../utils/error"),t=require("../context"),n=require("../env"),i=require("../types"),r=require("../utils"),o=require("./checkout-ui"),s=require("./theme"),u=require("./show"),l=function(e){return e&&e.__esModule?e:{default:e}}(require("../../../utils/winston"));async function a(l,a){var c;let{env:w}=l,p=null!==(c=null==l?void 0:l.cwd)&&void 0!==c?c:process.cwd(),d=await (0,n.getEnv)(w),x=await (0,r.getExtensionType)(p);if(!x)throw new e.AbortError("Unknow extension type");l.reset&&(0,n.clearEnvFile)(d,p);let E=new t.ExtensionContext(x,d,p);a||await (0,u.showReuseInfo)(E),x===i.EExtensionTypes.themeAppExtension?await (0,s.pushThemeExt)(E):await (0,o.pushCheckoutUiCustomizer)(E)}async function c(u){var a;let{env:c}=u,w=null!==(a=null==u?void 0:u.cwd)&&void 0!==a?a:process.cwd(),p=await (0,n.getEnv)(c);l.default.log(`Current store environment: ${p}`);let d=await (0,r.getExtensionType)(w);if(l.default.log(`Current selected extension type: ${d}`),!d)throw new e.AbortError("Unknow extension type");u.reset&&(l.default.log("Clear env file..."),(0,n.clearEnvFile)(p,w));let x=new t.ExtensionContext(d,p,w);d===i.EExtensionTypes.themeAppExtension?await (0,s.buildThemeExt)(x):await (0,o.buildCheckoutUiCustomizer)(x)}
2
+ //# sourceMappingURL=build.js.map
@@ -1 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),function(e,t){for(var i in t)Object.defineProperty(e,i,{enumerable:!0,get:t[i]})}(exports,{pushCheckoutUiCustomizer:()=>y,buildCheckoutUiCustomizer:()=>C});const e=h(require("fs")),t=h(require("archiver")),i=h(require("form-data")),o=h(require("path")),n=require("../../../utils/error"),u=require("../api"),a=require("../../../utils/ui/ui"),r=require("../env"),l=require("../const"),s=require("../../../utils/path"),c=require("../../../utils/node-package-manager"),p=require("../../../utils/system"),d=require("../zip"),f=require("../../../utils/ui/render"),E=require("../utils"),g=require("../serve/localization"),w=require("../../../utils/output"),T=h(require("../../../utils/winston"));function h(e){return e&&e.__esModule?e:{default:e}}async function y(e){let t=e.readEnvContent();T.default.log("Create checkout ui customizer instance...");let i=await m(t);(0,w.outputDebug)((0,w.outputContent)`Write ${w.outputToken.json(i)} content to ${w.outputToken.cyan(`.env.${e.env}`)} file to ${e.cwd}`),T.default.log(`Write .env.${e.env} file...`),(0,r.writeEnvFile)(e.env,i,e.cwd),T.default.log("Validate localization files..."),await I(e.cwd),T.default.log("Build checkout ui customizer..."),await P(e.cwd);let o=(0,s.joinPath)(e.cwd,`${t.EXTENSION_TITLE}.zip`);T.default.log("Compress checkout ui customizer..."),await _(o,e.cwd),T.default.log("Push checkout ui customizer..."),await v(i,o,e),T.default.log("Push checkout ui customizer success!"),(0,w.outputDebug)("Remove .zip file"),T.default.log("Remove .zip file..."),(0,d.removeZip)(o)}async function C(t){let i=t.readEnvContent();T.default.log("Create checkout ui customizer instance...");let n=await m(i);(0,w.outputDebug)((0,w.outputContent)`Write ${w.outputToken.json(n)} content to ${w.outputToken.cyan(`.env.${t.env}`)} file`),T.default.log(`Write .env.${t.env} file...`),(0,r.writeEnvFile)(t.env,n,t.cwd),T.default.log("Validate localization files..."),await I(t.cwd),T.default.log("Build checkout ui customizer..."),await P(t.cwd);let a=o.default.join(t.cwd,".plugin.zip");T.default.log("Compress checkout ui customizer..."),await _(a,t.cwd);let l=o.default.join(t.cwd,".plugin.json"),{SHOPLINE_APP_KEY:s,SHOPLINE_APP_SECRET:c,EXTENSION_ID:p,EXTENSION_UUID:d}=n;T.default.log("Write configuration to .plugin.json file..."),e.default.writeFileSync(l,JSON.stringify({appKey:s,appSecret:c,extensionId:p,extensionUuid:d,type:u.ERegisterType.CHECKOUT_UI,category:u.ECategory.CHECKOUT},null,2))}async function m(e){let t=e;return t.EXTENSION_ID&&t.EXTENSION_UUID?e:(await (0,a.renderTasks)([{title:"Registering with SHOPLINE",task:async()=>{let i=await (0,u.createExtensionInstance)({appKey:e.SHOPLINE_APP_KEY,appSecret:e.SHOPLINE_APP_SECRET,name:e.EXTENSION_TITLE,type:u.ERegisterType.CHECKOUT_UI,category:u.ECategory.CHECKOUT}),{id:o,uuid:a}=i||{};if(!o||!a)throw new n.AbortError("Failed to register. Please retry again!");t.EXTENSION_ID=o,t.EXTENSION_UUID=a}}]),t)}async function I(e){(0,w.outputDebug)("Validating locales/*.json default localization file");let t=await (0,g.getLocalizationFilePaths)({directory:e}),i=(0,g.findDefaultLocale)(t);(0,g.validateDefaultLanguage)(i,t)}async function P(e){(0,w.outputDebug)("Start build checkout ui customizer");let t=await (0,c.getPackageManager)(e);await (0,a.renderConcurrent)({processes:[{prefix:`Building extension with ${t}`,action:async(e,i)=>{let o=[];"npm"===t&&o.push("run"),o.push("build"),await (0,p.exec)(t,o,{stdout:e,stderr:i})}}],showTimestamps:!1})}function _(i,o){return new Promise((u,a)=>{(0,w.outputDebug)((0,w.outputContent)`Compressing to ${w.outputToken.path(i)}`);let r=(0,t.default)("zip",{zlib:{level:9}}),s=e.default.createWriteStream(i);s.on("close",()=>{}),s.on("finish",()=>{u({size:r.pointer()})}),r.on("error",()=>{a(new n.AbortError("Failed to compress!"))}),r.pipe(s),r.glob("locales/**/*.json",{cwd:o}).glob("build/**/*.js",{cwd:o}).glob(l.CHECKOUT_UI_CONFIG_FILE,{cwd:o}).finalize()})}async function v(e,t,i){(0,w.outputDebug)((0,w.outputContent)`Pushing ${w.outputToken.path(t)} file to remote`),await (0,a.renderTasks)([{title:"Pushing your extension to Shopline",task:async()=>{await S(e,t,i)}}])}async function S(t,o,a){let r=e.default.createReadStream(o),l=new i.default;l.append("extensionFile",r),l.append("appKey",t.SHOPLINE_APP_KEY),l.append("appSecret",t.SHOPLINE_APP_SECRET),l.append("extensionId",t.EXTENSION_ID),l.append("extensionUuid",t.EXTENSION_UUID),l.append("type",u.ERegisterType.CHECKOUT_UI),l.append("category",u.ECategory.CHECKOUT);let s=await (0,u.pushExtension)(l);if(null==s?void 0:s.id){let e=(0,E.getAppVersionManageLink)({appKey:t.SHOPLINE_APP_KEY,env:a.env});(0,f.renderSuccess)({headline:["Pushed",{userInput:t.EXTENSION_TITLE},"to a draft on",(0,E.formatTime)(s.updateTime)],body:["Visit",{link:{label:e,url:e}},"to version and publish your extension",{char:"."}]})}else(0,f.renderFatalError)(new n.AbortError(`Pushed to SHOPLINE with errors on ${(0,E.formatTime)()}`))}
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),function(e,t){for(var i in t)Object.defineProperty(e,i,{enumerable:!0,get:t[i]})}(exports,{pushCheckoutUiCustomizer:()=>y,buildCheckoutUiCustomizer:()=>C});const e=h(require("fs")),t=h(require("archiver")),i=h(require("form-data")),o=h(require("path")),n=require("../../../utils/error"),u=require("../api"),a=require("../../../utils/ui/ui"),r=require("../env"),l=require("../const"),s=require("../../../utils/path"),c=require("../../../utils/node-package-manager"),p=require("../../../utils/system"),d=require("../zip"),f=require("../../../utils/ui/render"),E=require("../utils"),g=require("../serve/localization"),w=require("../../../utils/output"),T=h(require("../../../utils/winston"));function h(e){return e&&e.__esModule?e:{default:e}}async function y(e){let t=e.readEnvContent();T.default.log("Create checkout ui customizer instance...");let i=await m(t);(0,w.outputDebug)((0,w.outputContent)`Write ${w.outputToken.json(i)} content to ${w.outputToken.cyan(`.env.${e.env}`)} file to ${e.cwd}`),T.default.log(`Write .env.${e.env} file...`),(0,r.writeEnvFile)(e.env,i,e.cwd),T.default.log("Validate localization files..."),await I(e.cwd),T.default.log("Build checkout ui customizer..."),await P(e.cwd);let o=(0,s.joinPath)(e.cwd,`${t.EXTENSION_TITLE}.zip`);T.default.log("Compress checkout ui customizer..."),await _(o,e.cwd),T.default.log("Push checkout ui customizer..."),await v(i,o,e),T.default.log("Push checkout ui customizer success!"),(0,w.outputDebug)("Remove .zip file"),T.default.log("Remove .zip file..."),(0,d.removeZip)(o)}async function C(t){let i=t.readEnvContent();T.default.log("Create checkout ui customizer instance...");let n=await m(i);(0,w.outputDebug)((0,w.outputContent)`Write ${w.outputToken.json(n)} content to ${w.outputToken.cyan(`.env.${t.env}`)} file`),T.default.log(`Write .env.${t.env} file...`),(0,r.writeEnvFile)(t.env,n,t.cwd),T.default.log("Validate localization files..."),await I(t.cwd),T.default.log("Build checkout ui customizer..."),await P(t.cwd);let a=o.default.join(t.cwd,".plugin.zip");T.default.log("Compress checkout ui customizer..."),await _(a,t.cwd);let l=o.default.join(t.cwd,".plugin.json"),{SHOPLINE_APP_KEY:s,SHOPLINE_APP_SECRET:c,EXTENSION_ID:p,EXTENSION_UUID:d}=n;T.default.log("Write configuration to .plugin.json file..."),e.default.writeFileSync(l,JSON.stringify({appKey:s,appSecret:c,extensionId:p,extensionUuid:d,type:u.ERegisterType.CHECKOUT_UI,category:u.ECategory.CHECKOUT},null,2))}async function m(e){let t=e;return t.EXTENSION_ID&&t.EXTENSION_UUID?e:(await (0,a.renderTasks)([{title:"Registering with SHOPLINE",task:async()=>{let i=await (0,u.createExtensionInstance)({appKey:e.SHOPLINE_APP_KEY,appSecret:e.SHOPLINE_APP_SECRET,name:e.EXTENSION_TITLE,type:u.ERegisterType.CHECKOUT_UI,category:u.ECategory.CHECKOUT}),{id:o,uuid:a}=i||{};if(!o||!a)throw new n.AbortError("Failed to register. Please retry again!");t.EXTENSION_ID=o,t.EXTENSION_UUID=a}}]),t)}async function I(e){(0,w.outputDebug)("Validating locales/*.json default localization file");let t=await (0,g.getLocalizationFilePaths)({directory:e}),i=(0,g.findDefaultLocale)(t);(0,g.validateDefaultLanguage)(i,t)}async function P(e){(0,w.outputDebug)("Start build checkout ui customizer");let t=await (0,c.getPackageManager)(e);await (0,a.renderConcurrent)({processes:[{prefix:`Building extension with ${t}`,action:async(e,i)=>{let o=[];"npm"===t&&o.push("run"),o.push("build"),await (0,p.exec)(t,o,{stdout:e,stderr:i})}}],showTimestamps:!1})}function _(i,o){return new Promise((u,a)=>{(0,w.outputDebug)((0,w.outputContent)`Compressing to ${w.outputToken.path(i)}`);let r=(0,t.default)("zip",{zlib:{level:9}}),s=e.default.createWriteStream(i);s.on("close",()=>{}),s.on("finish",()=>{u({size:r.pointer()})}),r.on("error",()=>{a(new n.AbortError("Failed to compress!"))}),r.pipe(s),r.glob("locales/**/*.json",{cwd:o}).glob("build/**/*.js",{cwd:o}).glob(l.CHECKOUT_UI_CONFIG_FILE,{cwd:o}).finalize()})}async function v(e,t,i){(0,w.outputDebug)((0,w.outputContent)`Pushing ${w.outputToken.path(t)} file to remote`),await (0,a.renderTasks)([{title:"Pushing your extension to Shopline",task:async()=>{await S(e,t,i)}}])}async function S(t,o,a){let r=e.default.createReadStream(o),l=new i.default;l.append("extensionFile",r),l.append("appKey",t.SHOPLINE_APP_KEY),l.append("appSecret",t.SHOPLINE_APP_SECRET),l.append("extensionId",t.EXTENSION_ID),l.append("extensionUuid",t.EXTENSION_UUID),l.append("type",u.ERegisterType.CHECKOUT_UI),l.append("category",u.ECategory.CHECKOUT);let s=await (0,u.pushExtension)(l);if(null==s?void 0:s.id){let e=(0,E.getAppVersionManageLink)({appKey:t.SHOPLINE_APP_KEY,env:a.env});(0,f.renderSuccess)({headline:["Pushed",{userInput:t.EXTENSION_TITLE},"to a draft on",(0,E.formatTime)(s.updateTime)],body:["Visit",{link:{label:e,url:e}},"to version and publish your extension",{char:"."}]})}else(0,f.renderFatalError)(new n.AbortError(`Pushed to SHOPLINE with errors on ${(0,E.formatTime)()}`))}
2
+ //# sourceMappingURL=checkout-ui.js.map
@@ -1 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"pushExtension",{enumerable:!0,get:()=>c});const e=require("../../../utils/error"),t=require("../context"),n=require("../env"),r=require("../types"),i=require("../utils"),s=require("./checkout-ui"),o=require("./pixels"),u=require("./shopper"),a=require("./theme"),p=require("./show"),l=require("../functions/push"),h=function(e){return e&&e.__esModule?e:{default:e}}(require("../../../utils/winston")),x=require("./post-purchase");async function c(c,E){var w;let{env:d}=c,f=null!==(w=null==c?void 0:c.cwd)&&void 0!==w?w:process.cwd(),q=await (0,n.getEnv)(d);h.default.log(`Current store environment: ${q}`);let m=await (0,i.getExtensionType)(f);if(h.default.log(`Current selected extension type: ${m}`),!m)throw new e.AbortError("Unknown extension type");c.reset&&(h.default.log("Clearing environment variables..."),(0,n.clearEnvFile)(q,f));let v=new t.ExtensionContext(m,q,f,c.reset);E||(h.default.log("Show environment information..."),await (0,p.showReuseInfo)(v)),m===r.EExtensionTypes.themeAppExtension?await (0,a.pushThemeExt)(v):m===r.EExtensionTypes.checkoutUiCustomizer?await (0,s.pushCheckoutUiCustomizer)(v):m===r.EExtensionTypes.pixelsExtension?await (0,o.pushPixelsExtension)(v):m.startsWith(r.EExtensionTypes.shopperExtension)?await (0,u.pushShopperExtension)(v):m===r.EExtensionTypes.postPurchaseCustomizer?await (0,x.pushPostPurchaseCustomizer)(v):await (0,l.pushFunctionExt)(v)}
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"pushExtension",{enumerable:!0,get:()=>c});const e=require("../../../utils/error"),t=require("../context"),n=require("../env"),r=require("../types"),i=require("../utils"),s=require("./checkout-ui"),o=require("./pixels"),u=require("./shopper"),a=require("./theme"),p=require("./show"),l=require("../functions/push"),h=function(e){return e&&e.__esModule?e:{default:e}}(require("../../../utils/winston")),x=require("./post-purchase");async function c(c,E){var w;let{env:d}=c,f=null!==(w=null==c?void 0:c.cwd)&&void 0!==w?w:process.cwd(),q=await (0,n.getEnv)(d);h.default.log(`Current store environment: ${q}`);let m=await (0,i.getExtensionType)(f);if(h.default.log(`Current selected extension type: ${m}`),!m)throw new e.AbortError("Unknown extension type");c.reset&&(h.default.log("Clearing environment variables..."),(0,n.clearEnvFile)(q,f));let v=new t.ExtensionContext(m,q,f,c.reset);E||(h.default.log("Show environment information..."),await (0,p.showReuseInfo)(v)),m===r.EExtensionTypes.themeAppExtension?await (0,a.pushThemeExt)(v):m===r.EExtensionTypes.checkoutUiCustomizer?await (0,s.pushCheckoutUiCustomizer)(v):m===r.EExtensionTypes.pixelsExtension?await (0,o.pushPixelsExtension)(v):m.startsWith(r.EExtensionTypes.shopperExtension)?await (0,u.pushShopperExtension)(v):m===r.EExtensionTypes.postPurchaseCustomizer?await (0,x.pushPostPurchaseCustomizer)(v):await (0,l.pushFunctionExt)(v)}
2
+ //# sourceMappingURL=index.js.map
@@ -1 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),function(e,t){for(var i in t)Object.defineProperty(e,i,{enumerable:!0,get:t[i]})}(exports,{pushPixelsExtension:()=>I,buildWebPixelExt:()=>x});const e=y(require("fs")),t=y(require("archiver")),i=y(require("form-data")),n=y(require("path")),a=require("../../../utils/error"),o=require("../api"),r=require("../../../utils/ui/ui"),u=require("../env"),l=require("../const"),s=require("../../../utils/path"),p=require("../../../utils/node-package-manager"),d=require("../../../utils/system"),c=require("../zip"),E=require("../../../utils/ui/render"),f=require("../utils"),g=require("../serve/localization"),w=require("../../../utils/output"),P=y(require("../../../utils/winston"));function y(e){return e&&e.__esModule?e:{default:e}}async function I(e){let t=e.readEnvContent();P.default.log("Create web pixel extension instance...");let i=await S(t);(0,w.outputDebug)((0,w.outputContent)`Write ${w.outputToken.json(i)} content to ${w.outputToken.cyan(`.env.${e.env}`)} file to ${e.cwd}`),P.default.log(`Write .env.${e.env} file...`),(0,u.writeEnvFile)(e.env,i,e.cwd),P.default.log("Build web pixel extension..."),await T(e.cwd);let n=(0,s.joinPath)(e.cwd,`${t.EXTENSION_TITLE}.zip`);P.default.log("Compress web pixel extension..."),await h(n,e.cwd),P.default.log("Push web pixel extension..."),await v(i,n,e),P.default.log("Push web pixel extension success!"),(0,w.outputDebug)("Remove .zip file"),P.default.log("Remove .zip file..."),(0,c.removeZip)(n)}async function x(t){let i=t.readEnvContent();P.default.log("Create web pixel extension instance...");let a=await S(i);(0,w.outputDebug)((0,w.outputContent)`Write ${w.outputToken.json(a)} content to ${w.outputToken.cyan(`.env.${t.env}`)} file`),P.default.log(`Write .env.${t.env} file...`),(0,u.writeEnvFile)(t.env,a,t.cwd),P.default.log("Validate localization files..."),await b(t.cwd),P.default.log("Build web pixel extension..."),await T(t.cwd);let r=n.default.join(t.cwd,".plugin.zip");P.default.log("Compress web extension..."),await h(r,t.cwd);let l=n.default.join(t.cwd,".plugin.json"),{SHOPLINE_APP_KEY:s,SHOPLINE_APP_SECRET:p,EXTENSION_ID:d,EXTENSION_UUID:c}=a;P.default.log("Write configuration to .plugin.json file..."),e.default.writeFileSync(l,JSON.stringify({appKey:s,appSecret:p,extensionId:d,extensionUuid:c,type:o.ERegisterType.PIXELS,category:o.ECategory.PIXELS},null,2))}async function S(e){let t=e;return t.EXTENSION_ID&&t.EXTENSION_UUID?e:(await (0,r.renderTasks)([{title:"Registering with SHOPLINE",task:async()=>{let i=await (0,o.createExtensionInstance)({appKey:e.SHOPLINE_APP_KEY,appSecret:e.SHOPLINE_APP_SECRET,name:e.EXTENSION_TITLE,type:o.ERegisterType.PIXELS,category:o.ECategory.PIXELS}),{id:n,uuid:r}=i||{};if(!n||!r)throw new a.AbortError("Failed to register. Please retry again!");t.EXTENSION_ID=n,t.EXTENSION_UUID=r}}]),t)}async function b(e){(0,w.outputDebug)("Validating locales/*.json default localization file");let t=await (0,g.getLocalizationFilePaths)({directory:e}),i=(0,g.findDefaultLocale)(t);(0,g.validateDefaultLanguage)(i,t)}async function T(e){(0,w.outputDebug)("Start build web pixel extension");let t=await (0,p.getPackageManager)(e);await (0,r.renderConcurrent)({processes:[{prefix:`Building extension with ${t}`,action:async(e,i)=>{let n=[];"npm"===t&&n.push("run"),n.push("build"),await (0,d.exec)(t,n,{stdout:e,stderr:i})}}],showTimestamps:!1})}function h(i,n){return new Promise((o,r)=>{(0,w.outputDebug)((0,w.outputContent)`Compressing to ${w.outputToken.path(i)}`);let u=(0,t.default)("zip",{zlib:{level:9}}),s=e.default.createWriteStream(i);s.on("close",()=>{}),s.on("finish",()=>{o({size:u.pointer()})}),u.on("error",()=>{r(new a.AbortError("Failed to compress!"))}),u.pipe(s),u.glob("locales/**/*.json",{cwd:n}).glob("build/**/*.js",{cwd:n}).glob(l.PIXELS_CONFIG_FILE,{cwd:n}).finalize()})}async function v(e,t,i){(0,w.outputDebug)((0,w.outputContent)`Pushing ${w.outputToken.path(t)} file to remote`),await (0,r.renderTasks)([{title:"Pushing your extension to Shopline",task:async()=>{await N(e,t,i)}}])}async function N(t,n,r){let u=e.default.createReadStream(n),l=new i.default;l.append("extensionFile",u),l.append("appKey",t.SHOPLINE_APP_KEY),l.append("appSecret",t.SHOPLINE_APP_SECRET),l.append("extensionId",t.EXTENSION_ID),l.append("extensionUuid",t.EXTENSION_UUID),l.append("type",o.ERegisterType.PIXELS),l.append("category",o.ECategory.PIXELS);let s=await (0,o.pushExtension)(l);if(s){let e=(0,f.getAppVersionManageLink)({appKey:t.SHOPLINE_APP_KEY,env:r.env});(0,E.renderSuccess)({headline:["Pushed",{userInput:t.EXTENSION_TITLE},"to a draft on",(0,f.formatTime)(s.updateTime)],body:["Visit",{link:{label:e,url:e}},"to version and publish your extension",{char:"."}]})}else(0,E.renderFatalError)(new a.AbortError(`Pushed to SHOPLINE with errors on ${(0,f.formatTime)()}`))}
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),function(e,t){for(var i in t)Object.defineProperty(e,i,{enumerable:!0,get:t[i]})}(exports,{pushPixelsExtension:()=>I,buildWebPixelExt:()=>x});const e=y(require("fs")),t=y(require("archiver")),i=y(require("form-data")),n=y(require("path")),a=require("../../../utils/error"),o=require("../api"),r=require("../../../utils/ui/ui"),u=require("../env"),l=require("../const"),s=require("../../../utils/path"),p=require("../../../utils/node-package-manager"),d=require("../../../utils/system"),c=require("../zip"),E=require("../../../utils/ui/render"),f=require("../utils"),g=require("../serve/localization"),w=require("../../../utils/output"),P=y(require("../../../utils/winston"));function y(e){return e&&e.__esModule?e:{default:e}}async function I(e){let t=e.readEnvContent();P.default.log("Create web pixel extension instance...");let i=await S(t);(0,w.outputDebug)((0,w.outputContent)`Write ${w.outputToken.json(i)} content to ${w.outputToken.cyan(`.env.${e.env}`)} file to ${e.cwd}`),P.default.log(`Write .env.${e.env} file...`),(0,u.writeEnvFile)(e.env,i,e.cwd),P.default.log("Build web pixel extension..."),await T(e.cwd);let n=(0,s.joinPath)(e.cwd,`${t.EXTENSION_TITLE}.zip`);P.default.log("Compress web pixel extension..."),await h(n,e.cwd),P.default.log("Push web pixel extension..."),await v(i,n,e),P.default.log("Push web pixel extension success!"),(0,w.outputDebug)("Remove .zip file"),P.default.log("Remove .zip file..."),(0,c.removeZip)(n)}async function x(t){let i=t.readEnvContent();P.default.log("Create web pixel extension instance...");let a=await S(i);(0,w.outputDebug)((0,w.outputContent)`Write ${w.outputToken.json(a)} content to ${w.outputToken.cyan(`.env.${t.env}`)} file`),P.default.log(`Write .env.${t.env} file...`),(0,u.writeEnvFile)(t.env,a,t.cwd),P.default.log("Validate localization files..."),await b(t.cwd),P.default.log("Build web pixel extension..."),await T(t.cwd);let r=n.default.join(t.cwd,".plugin.zip");P.default.log("Compress web extension..."),await h(r,t.cwd);let l=n.default.join(t.cwd,".plugin.json"),{SHOPLINE_APP_KEY:s,SHOPLINE_APP_SECRET:p,EXTENSION_ID:d,EXTENSION_UUID:c}=a;P.default.log("Write configuration to .plugin.json file..."),e.default.writeFileSync(l,JSON.stringify({appKey:s,appSecret:p,extensionId:d,extensionUuid:c,type:o.ERegisterType.PIXELS,category:o.ECategory.PIXELS},null,2))}async function S(e){let t=e;return t.EXTENSION_ID&&t.EXTENSION_UUID?e:(await (0,r.renderTasks)([{title:"Registering with SHOPLINE",task:async()=>{let i=await (0,o.createExtensionInstance)({appKey:e.SHOPLINE_APP_KEY,appSecret:e.SHOPLINE_APP_SECRET,name:e.EXTENSION_TITLE,type:o.ERegisterType.PIXELS,category:o.ECategory.PIXELS}),{id:n,uuid:r}=i||{};if(!n||!r)throw new a.AbortError("Failed to register. Please retry again!");t.EXTENSION_ID=n,t.EXTENSION_UUID=r}}]),t)}async function b(e){(0,w.outputDebug)("Validating locales/*.json default localization file");let t=await (0,g.getLocalizationFilePaths)({directory:e}),i=(0,g.findDefaultLocale)(t);(0,g.validateDefaultLanguage)(i,t)}async function T(e){(0,w.outputDebug)("Start build web pixel extension");let t=await (0,p.getPackageManager)(e);await (0,r.renderConcurrent)({processes:[{prefix:`Building extension with ${t}`,action:async(e,i)=>{let n=[];"npm"===t&&n.push("run"),n.push("build"),await (0,d.exec)(t,n,{stdout:e,stderr:i})}}],showTimestamps:!1})}function h(i,n){return new Promise((o,r)=>{(0,w.outputDebug)((0,w.outputContent)`Compressing to ${w.outputToken.path(i)}`);let u=(0,t.default)("zip",{zlib:{level:9}}),s=e.default.createWriteStream(i);s.on("close",()=>{}),s.on("finish",()=>{o({size:u.pointer()})}),u.on("error",()=>{r(new a.AbortError("Failed to compress!"))}),u.pipe(s),u.glob("locales/**/*.json",{cwd:n}).glob("build/**/*.js",{cwd:n}).glob(l.PIXELS_CONFIG_FILE,{cwd:n}).finalize()})}async function v(e,t,i){(0,w.outputDebug)((0,w.outputContent)`Pushing ${w.outputToken.path(t)} file to remote`),await (0,r.renderTasks)([{title:"Pushing your extension to Shopline",task:async()=>{await N(e,t,i)}}])}async function N(t,n,r){let u=e.default.createReadStream(n),l=new i.default;l.append("extensionFile",u),l.append("appKey",t.SHOPLINE_APP_KEY),l.append("appSecret",t.SHOPLINE_APP_SECRET),l.append("extensionId",t.EXTENSION_ID),l.append("extensionUuid",t.EXTENSION_UUID),l.append("type",o.ERegisterType.PIXELS),l.append("category",o.ECategory.PIXELS);let s=await (0,o.pushExtension)(l);if(s){let e=(0,f.getAppVersionManageLink)({appKey:t.SHOPLINE_APP_KEY,env:r.env});(0,E.renderSuccess)({headline:["Pushed",{userInput:t.EXTENSION_TITLE},"to a draft on",(0,f.formatTime)(s.updateTime)],body:["Visit",{link:{label:e,url:e}},"to version and publish your extension",{char:"."}]})}else(0,E.renderFatalError)(new a.AbortError(`Pushed to SHOPLINE with errors on ${(0,f.formatTime)()}`))}
2
+ //# sourceMappingURL=pixels.js.map
@@ -1 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),function(e,t){for(var i in t)Object.defineProperty(e,i,{enumerable:!0,get:t[i]})}(exports,{pushPostPurchaseCustomizer:()=>T,buildPostPurchaseExtension:()=>h});const e=S(require("fs")),t=S(require("archiver")),i=S(require("form-data")),a=S(require("path")),n=require("../../../utils/error"),o=require("../api"),r=require("../../../utils/ui/ui"),u=require("../env"),l=require("../const"),s=require("../../../utils/path"),p=require("../../../utils/node-package-manager"),c=require("../../../utils/system"),d=require("../zip"),f=require("../../../utils/ui/render"),E=require("../utils"),g=require("../serve/localization"),P=require("../../../utils/output"),w=S(require("../../../utils/winston"));function S(e){return e&&e.__esModule?e:{default:e}}async function T(e){let t=e.readEnvContent();w.default.log("Create post purchase instance...");let i=await y(t);(0,P.outputDebug)((0,P.outputContent)`Write ${P.outputToken.json(i)} content to ${P.outputToken.cyan(`.env.${e.env}`)} file to ${e.cwd}`),w.default.log(`Write .env.${e.env} file...`),(0,u.writeEnvFile)(e.env,i,e.cwd),w.default.log("Validate localization files..."),await _(e.cwd),w.default.log("Build post purchase..."),await I(e.cwd);let a=(0,s.joinPath)(e.cwd,`${t.EXTENSION_TITLE}.zip`);w.default.log("Compress post purchase..."),await v(a,e.cwd),w.default.log("Push post purchase..."),await N(i,a,e),w.default.log("Push post purchase success!"),(0,P.outputDebug)("Remove .zip file"),w.default.log("Remove .zip file..."),(0,d.removeZip)(a)}async function h(t){let i=t.readEnvContent();w.default.log("Create post purchase instance...");let n=await y(i);(0,P.outputDebug)((0,P.outputContent)`Write ${P.outputToken.json(n)} content to ${P.outputToken.cyan(`.env.${t.env}`)} file`),w.default.log(`Write .env.${t.env} file...`),(0,u.writeEnvFile)(t.env,n,t.cwd),w.default.log("Validate localization files..."),await _(t.cwd),w.default.log("Build post purchase..."),await I(t.cwd);let r=a.default.join(t.cwd,".plugin.zip");w.default.log("Compress post purchase..."),await v(r,t.cwd);let l=a.default.join(t.cwd,".plugin.json"),{SHOPLINE_APP_KEY:s,SHOPLINE_APP_SECRET:p,EXTENSION_ID:c,EXTENSION_UUID:d}=n;w.default.log("Write configuration to .plugin.json file..."),e.default.writeFileSync(l,JSON.stringify({appKey:s,appSecret:p,extensionId:c,extensionUuid:d,type:o.ERegisterType.POST_PURCHASE,category:o.ECategory.POST_PURCHASE},null,2))}async function y(e){let t=e;return t.EXTENSION_ID&&t.EXTENSION_UUID?e:(await (0,r.renderTasks)([{title:"Registering with SHOPLINE",task:async()=>{let i=await (0,o.createExtensionInstance)({appKey:e.SHOPLINE_APP_KEY,appSecret:e.SHOPLINE_APP_SECRET,name:e.EXTENSION_TITLE,type:o.ERegisterType.POST_PURCHASE,category:o.ECategory.POST_PURCHASE}),{id:a,uuid:r}=i||{};if(!a||!r)throw new n.AbortError("Failed to register. Please retry again!");t.EXTENSION_ID=a,t.EXTENSION_UUID=r}}]),t)}async function _(e){(0,P.outputDebug)("Validating locales/*.json default localization file");let t=await (0,g.getLocalizationFilePaths)({directory:e}),i=(0,g.findDefaultLocale)(t);(0,g.validateDefaultLanguage)(i,t)}async function I(e){(0,P.outputDebug)("Start build post purchase");let t=await (0,p.getPackageManager)(e);await (0,r.renderConcurrent)({processes:[{prefix:`Building extension with ${t}`,action:async(e,i)=>{let a=[];"npm"===t&&a.push("run"),a.push("build"),await (0,c.exec)(t,a,{stdout:e,stderr:i})}}],showTimestamps:!1})}function v(i,a){return new Promise((o,r)=>{(0,P.outputDebug)((0,P.outputContent)`Compressing to ${P.outputToken.path(i)}`);let u=(0,t.default)("zip",{zlib:{level:9}}),s=e.default.createWriteStream(i);s.on("close",()=>{}),s.on("finish",()=>{o({size:u.pointer()})}),u.on("error",()=>{r(new n.AbortError("Failed to compress!"))}),u.pipe(s),u.glob("locales/**/*.json",{cwd:a}).glob("build/**/*.js",{cwd:a}).glob(l.POST_PURCHASE_CONFIG_FILE,{cwd:a}).finalize()})}async function N(e,t,i){(0,P.outputDebug)((0,P.outputContent)`Pushing ${P.outputToken.path(t)} file to remote`),await (0,r.renderTasks)([{title:"Pushing your extension to Shopline",task:async()=>{await O(e,t,i)}}])}async function O(t,a,r){let u=e.default.createReadStream(a),l=new i.default;l.append("extensionFile",u),l.append("appKey",t.SHOPLINE_APP_KEY),l.append("appSecret",t.SHOPLINE_APP_SECRET),l.append("extensionId",t.EXTENSION_ID),l.append("extensionUuid",t.EXTENSION_UUID),l.append("type",o.ERegisterType.POST_PURCHASE),l.append("category",o.ECategory.POST_PURCHASE);let s=await (0,o.pushExtension)(l);if(null==s?void 0:s.id){let e=(0,E.getAppVersionManageLink)({appKey:t.SHOPLINE_APP_KEY,env:r.env});(0,f.renderSuccess)({headline:["Pushed",{userInput:t.EXTENSION_TITLE},"to a draft on",(0,E.formatTime)(s.updateTime)],body:["Visit",{link:{label:e,url:e}},"to version and publish your extension",{char:"."}]})}else(0,f.renderFatalError)(new n.AbortError(`Pushed to SHOPLINE with errors on ${(0,E.formatTime)()}`))}
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),function(e,t){for(var i in t)Object.defineProperty(e,i,{enumerable:!0,get:t[i]})}(exports,{pushPostPurchaseCustomizer:()=>T,buildPostPurchaseExtension:()=>h});const e=S(require("fs")),t=S(require("archiver")),i=S(require("form-data")),a=S(require("path")),n=require("../../../utils/error"),o=require("../api"),r=require("../../../utils/ui/ui"),u=require("../env"),l=require("../const"),s=require("../../../utils/path"),p=require("../../../utils/node-package-manager"),c=require("../../../utils/system"),d=require("../zip"),f=require("../../../utils/ui/render"),E=require("../utils"),g=require("../serve/localization"),P=require("../../../utils/output"),w=S(require("../../../utils/winston"));function S(e){return e&&e.__esModule?e:{default:e}}async function T(e){let t=e.readEnvContent();w.default.log("Create post purchase instance...");let i=await y(t);(0,P.outputDebug)((0,P.outputContent)`Write ${P.outputToken.json(i)} content to ${P.outputToken.cyan(`.env.${e.env}`)} file to ${e.cwd}`),w.default.log(`Write .env.${e.env} file...`),(0,u.writeEnvFile)(e.env,i,e.cwd),w.default.log("Validate localization files..."),await _(e.cwd),w.default.log("Build post purchase..."),await I(e.cwd);let a=(0,s.joinPath)(e.cwd,`${t.EXTENSION_TITLE}.zip`);w.default.log("Compress post purchase..."),await v(a,e.cwd),w.default.log("Push post purchase..."),await N(i,a,e),w.default.log("Push post purchase success!"),(0,P.outputDebug)("Remove .zip file"),w.default.log("Remove .zip file..."),(0,d.removeZip)(a)}async function h(t){let i=t.readEnvContent();w.default.log("Create post purchase instance...");let n=await y(i);(0,P.outputDebug)((0,P.outputContent)`Write ${P.outputToken.json(n)} content to ${P.outputToken.cyan(`.env.${t.env}`)} file`),w.default.log(`Write .env.${t.env} file...`),(0,u.writeEnvFile)(t.env,n,t.cwd),w.default.log("Validate localization files..."),await _(t.cwd),w.default.log("Build post purchase..."),await I(t.cwd);let r=a.default.join(t.cwd,".plugin.zip");w.default.log("Compress post purchase..."),await v(r,t.cwd);let l=a.default.join(t.cwd,".plugin.json"),{SHOPLINE_APP_KEY:s,SHOPLINE_APP_SECRET:p,EXTENSION_ID:c,EXTENSION_UUID:d}=n;w.default.log("Write configuration to .plugin.json file..."),e.default.writeFileSync(l,JSON.stringify({appKey:s,appSecret:p,extensionId:c,extensionUuid:d,type:o.ERegisterType.POST_PURCHASE,category:o.ECategory.POST_PURCHASE},null,2))}async function y(e){let t=e;return t.EXTENSION_ID&&t.EXTENSION_UUID?e:(await (0,r.renderTasks)([{title:"Registering with SHOPLINE",task:async()=>{let i=await (0,o.createExtensionInstance)({appKey:e.SHOPLINE_APP_KEY,appSecret:e.SHOPLINE_APP_SECRET,name:e.EXTENSION_TITLE,type:o.ERegisterType.POST_PURCHASE,category:o.ECategory.POST_PURCHASE}),{id:a,uuid:r}=i||{};if(!a||!r)throw new n.AbortError("Failed to register. Please retry again!");t.EXTENSION_ID=a,t.EXTENSION_UUID=r}}]),t)}async function _(e){(0,P.outputDebug)("Validating locales/*.json default localization file");let t=await (0,g.getLocalizationFilePaths)({directory:e}),i=(0,g.findDefaultLocale)(t);(0,g.validateDefaultLanguage)(i,t)}async function I(e){(0,P.outputDebug)("Start build post purchase");let t=await (0,p.getPackageManager)(e);await (0,r.renderConcurrent)({processes:[{prefix:`Building extension with ${t}`,action:async(e,i)=>{let a=[];"npm"===t&&a.push("run"),a.push("build"),await (0,c.exec)(t,a,{stdout:e,stderr:i})}}],showTimestamps:!1})}function v(i,a){return new Promise((o,r)=>{(0,P.outputDebug)((0,P.outputContent)`Compressing to ${P.outputToken.path(i)}`);let u=(0,t.default)("zip",{zlib:{level:9}}),s=e.default.createWriteStream(i);s.on("close",()=>{}),s.on("finish",()=>{o({size:u.pointer()})}),u.on("error",()=>{r(new n.AbortError("Failed to compress!"))}),u.pipe(s),u.glob("locales/**/*.json",{cwd:a}).glob("build/**/*.js",{cwd:a}).glob(l.POST_PURCHASE_CONFIG_FILE,{cwd:a}).finalize()})}async function N(e,t,i){(0,P.outputDebug)((0,P.outputContent)`Pushing ${P.outputToken.path(t)} file to remote`),await (0,r.renderTasks)([{title:"Pushing your extension to Shopline",task:async()=>{await O(e,t,i)}}])}async function O(t,a,r){let u=e.default.createReadStream(a),l=new i.default;l.append("extensionFile",u),l.append("appKey",t.SHOPLINE_APP_KEY),l.append("appSecret",t.SHOPLINE_APP_SECRET),l.append("extensionId",t.EXTENSION_ID),l.append("extensionUuid",t.EXTENSION_UUID),l.append("type",o.ERegisterType.POST_PURCHASE),l.append("category",o.ECategory.POST_PURCHASE);let s=await (0,o.pushExtension)(l);if(null==s?void 0:s.id){let e=(0,E.getAppVersionManageLink)({appKey:t.SHOPLINE_APP_KEY,env:r.env});(0,f.renderSuccess)({headline:["Pushed",{userInput:t.EXTENSION_TITLE},"to a draft on",(0,E.formatTime)(s.updateTime)],body:["Visit",{link:{label:e,url:e}},"to version and publish your extension",{char:"."}]})}else(0,f.renderFatalError)(new n.AbortError(`Pushed to SHOPLINE with errors on ${(0,E.formatTime)()}`))}
2
+ //# sourceMappingURL=post-purchase.js.map
@@ -1 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(exports,{getShopperType:()=>S,pushShopperExtension:()=>T});const e=P(require("fs")),t=P(require("archiver")),r=P(require("form-data")),n=P(require("fast-glob")),i=P(require("javascript-obfuscator")),o=require("../../../utils/error"),a=require("../api"),s=require("../../../utils/ui/ui"),u=require("../env"),p=require("../const"),l=require("../../../utils/path"),E=require("../zip"),d=require("../../../utils/ui/render"),c=require("../utils"),f=require("../../../utils/output"),g=P(require("../../../utils/winston"));function P(e){return e&&e.__esModule?e:{default:e}}function S(e){let t={1:a.ERegisterType.SHOPPER_CUSTOM_BLOCK,2:a.ERegisterType.SHOPPER_CUSTOM_WEB_PAGE},r=e.split("--")[1];return t[r]}async function T(r){var a;let s=r.readEnvContent(),d=S(r.type);g.default.log("Create web shopper extension instance...");let c=await h(s,d);(0,f.outputDebug)((0,f.outputContent)`Write ${f.outputToken.json(c)} content to ${f.outputToken.cyan(`.env.${r.env}`)} file to ${r.cwd}`),g.default.log(`Write .env.${r.env} file...`),(0,u.writeEnvFile)(r.env,c,r.cwd);let P=(0,l.joinPath)(r.cwd,`${s.EXTENSION_TITLE}.zip`);g.default.log("Compress shopper extension..."),await (a=r.cwd,new Promise((r,s)=>{(0,f.outputDebug)((0,f.outputContent)`Compressing to ${f.outputToken.path(P)}`);let u=(0,t.default)("zip",{zlib:{level:9}}),l=e.default.createWriteStream(P);l.on("close",()=>{}),l.on("finish",()=>{r({size:u.pointer()})}),u.on("error",()=>{s(new o.AbortError("Failed to compress!"))}),u.pipe(l),n.default.sync("assets/js/**/*.js",{cwd:a}).forEach(t=>{let r=e.default.readFileSync(t,"utf-8"),n=i.default.obfuscate(r,{compact:!0,controlFlowFlattening:!1,numbersToExpressions:!1,simplify:!0,stringArray:!0,stringArrayShuffle:!0,splitStrings:!1,stringArrayThreshold:.75,renameGlobals:!1});u.append(n.getObfuscatedCode(),{name:t})}),u.glob("previewImage.png",{cwd:a}).glob("index.html",{cwd:a}).glob("assets/css/**/*.css",{cwd:a}).glob("assets/images/**/*.{png,jpg,gif,svg,webp,lottie,apng}",{cwd:a}).glob(p.SHOPPER_CONFIG_FILE,{cwd:a}).finalize()})),g.default.log("Push shopper extension..."),await y(c,P,r,d),g.default.log("Push shopper extension success!"),(0,f.outputDebug)("Remove .zip file"),g.default.log("Remove .zip file..."),(0,E.removeZip)(P)}async function h(e,t){let r=e;return r.EXTENSION_ID&&r.EXTENSION_UUID?e:(await (0,s.renderTasks)([{title:"Registering with SHOPLINE",task:async()=>{let n=await (0,a.createExtensionInstance)({appKey:e.SHOPLINE_APP_KEY,appSecret:e.SHOPLINE_APP_SECRET,name:e.EXTENSION_TITLE,type:t,category:a.ECategory.SHOPPER}),{id:i,uuid:s}=n||{};if(!i||!s)throw new o.AbortError("Failed to register. Please retry again!");r.EXTENSION_ID=i,r.EXTENSION_UUID=s}}]),r)}async function y(e,t,r,n){(0,f.outputDebug)((0,f.outputContent)`Pushing ${f.outputToken.path(t)} file to remote`),await (0,s.renderTasks)([{title:"Pushing your extension to Shopline",task:async()=>{await I(e,t,r,n)}}])}async function I(t,n,i,s){let u=e.default.createReadStream(n),p=new r.default;p.append("extensionFile",u),p.append("appKey",t.SHOPLINE_APP_KEY),p.append("appSecret",t.SHOPLINE_APP_SECRET),p.append("extensionId",t.EXTENSION_ID),p.append("extensionUuid",t.EXTENSION_UUID),p.append("type",s),p.append("category",a.ECategory.SHOPPER);let l=await (0,a.pushExtension)(p);if(l){let e=(0,c.getAppVersionManageLink)({appKey:t.SHOPLINE_APP_KEY,env:i.env});(0,d.renderSuccess)({headline:["Pushed",{userInput:t.EXTENSION_TITLE},"to a draft on",(0,c.formatTime)(l.updateTime)],body:["Visit",{link:{label:e,url:e}},"to version and publish your extension",{char:"."}]})}else(0,d.renderFatalError)(new o.AbortError(`Pushed to SHOPLINE with errors on ${(0,c.formatTime)()}`))}
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(exports,{getShopperType:()=>S,pushShopperExtension:()=>T});const e=P(require("fs")),t=P(require("archiver")),r=P(require("form-data")),n=P(require("fast-glob")),i=P(require("javascript-obfuscator")),o=require("../../../utils/error"),a=require("../api"),s=require("../../../utils/ui/ui"),u=require("../env"),p=require("../const"),l=require("../../../utils/path"),E=require("../zip"),d=require("../../../utils/ui/render"),c=require("../utils"),f=require("../../../utils/output"),g=P(require("../../../utils/winston"));function P(e){return e&&e.__esModule?e:{default:e}}function S(e){let t={1:a.ERegisterType.SHOPPER_CUSTOM_BLOCK,2:a.ERegisterType.SHOPPER_CUSTOM_WEB_PAGE},r=e.split("--")[1];return t[r]}async function T(r){var a;let s=r.readEnvContent(),d=S(r.type);g.default.log("Create web shopper extension instance...");let c=await h(s,d);(0,f.outputDebug)((0,f.outputContent)`Write ${f.outputToken.json(c)} content to ${f.outputToken.cyan(`.env.${r.env}`)} file to ${r.cwd}`),g.default.log(`Write .env.${r.env} file...`),(0,u.writeEnvFile)(r.env,c,r.cwd);let P=(0,l.joinPath)(r.cwd,`${s.EXTENSION_TITLE}.zip`);g.default.log("Compress shopper extension..."),await (a=r.cwd,new Promise((r,s)=>{(0,f.outputDebug)((0,f.outputContent)`Compressing to ${f.outputToken.path(P)}`);let u=(0,t.default)("zip",{zlib:{level:9}}),l=e.default.createWriteStream(P);l.on("close",()=>{}),l.on("finish",()=>{r({size:u.pointer()})}),u.on("error",()=>{s(new o.AbortError("Failed to compress!"))}),u.pipe(l),n.default.sync("assets/js/**/*.js",{cwd:a}).forEach(t=>{let r=e.default.readFileSync(t,"utf-8"),n=i.default.obfuscate(r,{compact:!0,controlFlowFlattening:!1,numbersToExpressions:!1,simplify:!0,stringArray:!0,stringArrayShuffle:!0,splitStrings:!1,stringArrayThreshold:.75,renameGlobals:!1});u.append(n.getObfuscatedCode(),{name:t})}),u.glob("previewImage.png",{cwd:a}).glob("index.html",{cwd:a}).glob("assets/css/**/*.css",{cwd:a}).glob("assets/images/**/*.{png,jpg,gif,svg,webp,lottie,apng}",{cwd:a}).glob(p.SHOPPER_CONFIG_FILE,{cwd:a}).finalize()})),g.default.log("Push shopper extension..."),await y(c,P,r,d),g.default.log("Push shopper extension success!"),(0,f.outputDebug)("Remove .zip file"),g.default.log("Remove .zip file..."),(0,E.removeZip)(P)}async function h(e,t){let r=e;return r.EXTENSION_ID&&r.EXTENSION_UUID?e:(await (0,s.renderTasks)([{title:"Registering with SHOPLINE",task:async()=>{let n=await (0,a.createExtensionInstance)({appKey:e.SHOPLINE_APP_KEY,appSecret:e.SHOPLINE_APP_SECRET,name:e.EXTENSION_TITLE,type:t,category:a.ECategory.SHOPPER}),{id:i,uuid:s}=n||{};if(!i||!s)throw new o.AbortError("Failed to register. Please retry again!");r.EXTENSION_ID=i,r.EXTENSION_UUID=s}}]),r)}async function y(e,t,r,n){(0,f.outputDebug)((0,f.outputContent)`Pushing ${f.outputToken.path(t)} file to remote`),await (0,s.renderTasks)([{title:"Pushing your extension to Shopline",task:async()=>{await I(e,t,r,n)}}])}async function I(t,n,i,s){let u=e.default.createReadStream(n),p=new r.default;p.append("extensionFile",u),p.append("appKey",t.SHOPLINE_APP_KEY),p.append("appSecret",t.SHOPLINE_APP_SECRET),p.append("extensionId",t.EXTENSION_ID),p.append("extensionUuid",t.EXTENSION_UUID),p.append("type",s),p.append("category",a.ECategory.SHOPPER);let l=await (0,a.pushExtension)(p);if(l){let e=(0,c.getAppVersionManageLink)({appKey:t.SHOPLINE_APP_KEY,env:i.env});(0,d.renderSuccess)({headline:["Pushed",{userInput:t.EXTENSION_TITLE},"to a draft on",(0,c.formatTime)(l.updateTime)],body:["Visit",{link:{label:e,url:e}},"to version and publish your extension",{char:"."}]})}else(0,d.renderFatalError)(new o.AbortError(`Pushed to SHOPLINE with errors on ${(0,c.formatTime)()}`))}
2
+ //# sourceMappingURL=shopper.js.map
@@ -1 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"showReuseInfo",{enumerable:!0,get:()=>t});const e=require("../context"),E=require("../env"),n=require("../functions/info");async function t(t){let{appInfo:I,partnerInfo:N}=await t.getInitializeLocaleEnvInNeed(),i={EXTENSION_TITLE:I.EXTENSION_TITLE,EXTENSION_UUID:I.EXTENSION_UUID,SHOPLINE_APP_KEY:I.SHOPLINE_APP_KEY,SHOPLINE_APP_SECRET:I.SHOPLINE_APP_SECRET,PARTNER_ID:N.id};await (0,n.isFunctionType)(t.type)||(i.EXTENSION_ID=I.EXTENSION_ID),(0,E.writeEnvFile)(t.env,i,t.cwd),(0,e.showPushEnvInfos)(N.partnerName,I.appName,I.EXTENSION_TITLE)}
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"showReuseInfo",{enumerable:!0,get:()=>t});const e=require("../context"),E=require("../env"),n=require("../functions/info");async function t(t){let{appInfo:I,partnerInfo:N}=await t.getInitializeLocaleEnvInNeed(),i={EXTENSION_TITLE:I.EXTENSION_TITLE,EXTENSION_UUID:I.EXTENSION_UUID,SHOPLINE_APP_KEY:I.SHOPLINE_APP_KEY,SHOPLINE_APP_SECRET:I.SHOPLINE_APP_SECRET,PARTNER_ID:N.id};await (0,n.isFunctionType)(t.type)||(i.EXTENSION_ID=I.EXTENSION_ID),(0,E.writeEnvFile)(t.env,i,t.cwd),(0,e.showPushEnvInfos)(N.partnerName,I.appName,I.EXTENSION_TITLE)}
2
+ //# sourceMappingURL=show.js.map
@@ -1 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),function(e,t){for(var n in t)Object.defineProperty(e,n,{enumerable:!0,get:t[n]})}(exports,{pushThemeExt:()=>u,buildThemeExt:()=>o});const e=i(require("../register")),t=require("../env"),n=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var n=a(t);if(n&&n.has(e))return n.get(e);var r={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var u in e)if("default"!==u&&Object.prototype.hasOwnProperty.call(e,u)){var o=i?Object.getOwnPropertyDescriptor(e,u):null;o&&(o.get||o.set)?Object.defineProperty(r,u,o):r[u]=e[u]}return r.default=e,n&&n.set(e,r),r}(require("./zip")),r=i(require("../../../utils/winston"));function i(e){return e&&e.__esModule?e:{default:e}}function a(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(a=function(e){return e?n:t})(e)}async function u(i){r.default.log("Create theme extension instance...");let{EXTENSION_ID:a,EXTENSION_TITLE:u,SHOPLINE_APP_KEY:o,SHOPLINE_APP_SECRET:l,EXTENSION_UUID:f,PARTNER_ID:c}=await (0,e.default)(i.env,i.cwd),d={SHOPLINE_APP_KEY:o,SHOPLINE_APP_SECRET:l,EXTENSION_TITLE:u,EXTENSION_ID:a,EXTENSION_UUID:f,PARTNER_ID:c};r.default.log(`Write environment variables to .env.${i.env} file...`),(0,t.writeEnvFile)(i.env,d,i.cwd),await (0,n.default)(d,i.env,i.cwd)}async function o(i){r.default.log("Create theme extension instance...");let{EXTENSION_ID:a,EXTENSION_TITLE:u,SHOPLINE_APP_KEY:o,SHOPLINE_APP_SECRET:l,EXTENSION_UUID:f,PARTNER_ID:c}=await (0,e.default)(i.env,i.cwd),d={SHOPLINE_APP_KEY:o,SHOPLINE_APP_SECRET:l,EXTENSION_TITLE:u,EXTENSION_ID:a,EXTENSION_UUID:f,PARTNER_ID:c};r.default.log(`Write environment variables to .env.${i.env} file...`),(0,t.writeEnvFile)(i.env,d,i.cwd),await (0,n.zipAndBuild)(d,i.env,i.cwd)}
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),function(e,t){for(var n in t)Object.defineProperty(e,n,{enumerable:!0,get:t[n]})}(exports,{pushThemeExt:()=>u,buildThemeExt:()=>o});const e=i(require("../register")),t=require("../env"),n=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var n=a(t);if(n&&n.has(e))return n.get(e);var r={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var u in e)if("default"!==u&&Object.prototype.hasOwnProperty.call(e,u)){var o=i?Object.getOwnPropertyDescriptor(e,u):null;o&&(o.get||o.set)?Object.defineProperty(r,u,o):r[u]=e[u]}return r.default=e,n&&n.set(e,r),r}(require("./zip")),r=i(require("../../../utils/winston"));function i(e){return e&&e.__esModule?e:{default:e}}function a(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(a=function(e){return e?n:t})(e)}async function u(i){r.default.log("Create theme extension instance...");let{EXTENSION_ID:a,EXTENSION_TITLE:u,SHOPLINE_APP_KEY:o,SHOPLINE_APP_SECRET:l,EXTENSION_UUID:f,PARTNER_ID:c}=await (0,e.default)(i.env,i.cwd),d={SHOPLINE_APP_KEY:o,SHOPLINE_APP_SECRET:l,EXTENSION_TITLE:u,EXTENSION_ID:a,EXTENSION_UUID:f,PARTNER_ID:c};r.default.log(`Write environment variables to .env.${i.env} file...`),(0,t.writeEnvFile)(i.env,d,i.cwd),await (0,n.default)(d,i.env,i.cwd)}async function o(i){r.default.log("Create theme extension instance...");let{EXTENSION_ID:a,EXTENSION_TITLE:u,SHOPLINE_APP_KEY:o,SHOPLINE_APP_SECRET:l,EXTENSION_UUID:f,PARTNER_ID:c}=await (0,e.default)(i.env,i.cwd),d={SHOPLINE_APP_KEY:o,SHOPLINE_APP_SECRET:l,EXTENSION_TITLE:u,EXTENSION_ID:a,EXTENSION_UUID:f,PARTNER_ID:c};r.default.log(`Write environment variables to .env.${i.env} file...`),(0,t.writeEnvFile)(i.env,d,i.cwd),await (0,n.zipAndBuild)(d,i.env,i.cwd)}
2
+ //# sourceMappingURL=theme.js.map
@@ -1 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),function(e,t){for(var i in t)Object.defineProperty(e,i,{enumerable:!0,get:t[i]})}(exports,{ValidateRule3:()=>y,ValidateRule:()=>g,default:()=>O,zipAndBuild:()=>b});const e=w(require("fs-extra")),t=w(require("ora")),i=w(require("pathe")),r=w(require("form-data")),a=w(require("filesize")),l=require("@shoplinedev/theme-check"),n=w(require("fast-glob")),s=require("../api"),o=require("../zip"),u=require("../zip3"),f=require("../const"),d=require("../utils"),c=require("../../../utils/messages"),p=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var i=S(t);if(i&&i.has(e))return i.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var l in e)if("default"!==l&&Object.prototype.hasOwnProperty.call(e,l)){var n=a?Object.getOwnPropertyDescriptor(e,l):null;n&&(n.get||n.set)?Object.defineProperty(r,l,n):r[l]=e[l]}return r.default=e,i&&i.set(e,r),r}(require("../validate")),E=require("../../../utils/error"),m=w(require("../../../utils/winston")),h=require("../check-extension-version");function _(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function w(e){return e&&e.__esModule?e:{default:e}}function S(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,i=new WeakMap;return(S=function(e){return e?i:t})(e)}class y{static async validate(){let{cwd:t}=y,r=n.default.sync(["compatibility/**/*"],{cwd:t});r.length&&(g.cwd=i.default.join(t,"compatibility"),await g.validate());let l=n.default.sync(["**/*","!compatibility/**/*"],{cwd:t}),s=0,o=0,u=0;if(l.forEach(r=>{let a=i.default.join(t,r),l=e.default.statSync(a);l.isFile()&&y.validateFile(r)&&(r.startsWith("blocks")&&(o+=l.size,u+=1),r.startsWith("components")&&(o+=l.size),s+=l.size)}),s>f.MAX_ALL_FILE_SIZE)throw Error(`Total size of all files must be less than ${(0,a.default)(f.MAX_ALL_FILE_SIZE)}`);if(u>f.MAX_BLOCKS_FILE_COUNT)throw Error(`Total number of files for all blocks must be less than ${f.MAX_BLOCKS_FILE_COUNT}`);if(o>f.MAX_BLOCKS_FILE_SIZE_3)throw Error(`Total size of all blocks and components html must be less than ${(0,a.default)(f.MAX_BLOCKS_FILE_SIZE_3)}`)}static validateFile(e){let t=i.default.join(y.cwd,e),r=i.default.dirname(e),a=i.default.extname(e),l=/\/|\\\\/;if("."===r)return!1;if(l.test(r)){let[e]=r.split(l);if(!f.SUPPORTED_BUCKETS_3.includes(e))throw Error(`Invalid directory: ${r}`)}else if(!f.SUPPORTED_BUCKETS_3.includes(r))throw Error(`Invalid directory: ${r}`);if("public"===r){if(!f.SUPPORTED_ASSET_EXTS_3.includes(a))throw Error(`Invalid filename: ${e}; ${a} is not supported`)}else if("i18n"===r){if(".json"!==a)throw Error(`Invalid filename: ${e}; Only ${f.SUPPORTED_LOCALE_EXTS.join(", ")} allowed in ${r}`)}else if("blocks"===r)return y.validateBlocksSchema(t);return!0}static validateBlocksSchema(t){let r=e.default.readFileSync(t,"utf-8"),a=(0,d.extractSchema)(r),l=i.default.relative(y.cwd,t);return(0,p.validateBlockSchema3)(a,{relativeFile:l})}}_(y,"cwd",void 0);class g{static async validate(){let{cwd:t}=g,r=(0,l.configOnlyChecks)(["ValidHtml"]),s=await (0,l.cliCheckTheme)({themePath:t,config:r});if(s.errors.length){let e=s.errors.map(e=>{let r=e.errors.map(e=>`${e.message} in ${i.default.join(t,e.file)}:${e.position.start.line}:${e.position.start.column}`).join("\n");return r}).join("\n");throw new E.AbortError(e)}let o=n.default.sync("**/*",{cwd:t}),u=0,d=0,c=0;if(o.forEach(r=>{let a=i.default.join(t,r),l=e.default.statSync(a);if(l.isFile()&&g.validateFile(r)){let e=i.default.dirname(r);"blocks"===e&&(d+=l.size,c+=1),"snippets"===e&&(d+=l.size),u+=l.size}}),u>f.MAX_ALL_FILE_SIZE)throw Error(`Total size of all files must be less than ${(0,a.default)(f.MAX_ALL_FILE_SIZE)}`);if(c>f.MAX_BLOCKS_FILE_COUNT)throw Error(`Total number of files for all blocks must be less than ${f.MAX_BLOCKS_FILE_COUNT}`);if(d>f.MAX_BLOCKS_FILE_SIZE)throw Error(`Total size of all blocks and snippets HTML files must be less than ${(0,a.default)(f.MAX_BLOCKS_FILE_SIZE)}`)}static validateFile(e){let t=i.default.join(g.cwd,e),r=i.default.dirname(e),a=i.default.extname(e),l=/\/|\\\\/;if("."===r)return!1;if(l.test(r)){let[e]=r.split(l);if(!f.SUPPORTED_BUCKETS.includes(e))throw Error(`Invalid directory: ${r}`)}else if(!f.SUPPORTED_BUCKETS.includes(r))throw Error(`Invalid directory: ${r}`);if("assets"===r){if(!f.SUPPORTED_ASSET_EXTS.includes(a))throw Error(`Invalid filename: ${e}; ${a} is not supported`)}else if("locales"===r){if(".json"!==a)throw Error(`Invalid filename: ${e}; Only ${f.SUPPORTED_LOCALE_EXTS.join(", ")} allowed in ${r}`)}else if(["snippets","blocks"].includes(r)){if(".html"!==a)throw Error(`Invalid filename: ${e}; Only .html allowed in ${r}`);if("blocks"===r)return g.validateBlocksSchema(t)}return!0}static validateBlocksSchema(t){let r=e.default.readFileSync(t,"utf-8"),a=(0,d.extractSchema)(r),l=i.default.relative(g.cwd,t);return(0,p.default)(a,{relativeFile:l})}}async function T(e){(0,d.removeFile)(e),(0,h.isThemeAppExtensionOS3)()?await (0,u.zip)(e):(0,h.isThemeAppExtensionOS2)()&&await (0,o.zip)(e)}async function v(i,a,l){let n=(0,t.default)((0,c.getMessage)("extension.push.waiting_text")).start(),{SHOPLINE_APP_KEY:o,SHOPLINE_APP_SECRET:u,EXTENSION_ID:f,EXTENSION_UUID:p,EXTENSION_TITLE:m}=a;try{let t=e.default.createReadStream(i),a=new r.default;a.append("extensionFile",t),a.append("appKey",o),a.append("appSecret",u),a.append("extensionId",f),a.append("extensionUuid",p),a.append("type",s.ERegisterType.THEME_APP_BLOCK),a.append("category",s.ECategory.THEME);let h=await (0,s.pushExtension)(a);if(h){if(h.id)return n.succeed((0,c.getMessage)("extension.push.success",{name:m,updated_at:(0,d.formatTime)(h.updateTime)})),console.log((0,c.getMessage)("extension.push.success_info",{link:(0,d.getAppVersionManageLink)({appKey:o,env:l})})),await Promise.resolve();return n.fail(),await Promise.reject(new E.AbortError((0,c.getMessage)("extension.push.fail",{updated_at:(0,d.formatTime)(h.updateTime)})))}return n.fail(),await Promise.reject(new E.AbortError((0,c.getMessage)("extension.push.fail",{updated_at:(0,d.formatTime)()})))}catch(e){throw n.fail((0,c.getMessage)("extension.push.fail",{updated_at:(0,d.formatTime)()})),new E.AbortError(e.message||e)}}async function O(e,t,r=process.cwd()){let{EXTENSION_TITLE:a}=e,l=i.default.join(r,`${a}.zip`),n=(0,h.isThemeAppExtensionOS3)(r)?y:g;try{return n.cwd=r,m.default.log("Validate extension..."),await n.validate(),m.default.log("Zip extension..."),await T(l),m.default.log("Zip and push extension..."),await v(l,e,t),m.default.log("Push theme app extension success!"),(0,d.removeFile)(l),await Promise.resolve()}catch(e){if((0,d.removeFile)(l),e instanceof E.AbortError)throw e;return Promise.reject(e.message||e)}}async function b(t,r,a=process.cwd()){let l=i.default.join(a,".plugin.zip"),n=i.default.join(a,".plugin.json"),{SHOPLINE_APP_KEY:o,SHOPLINE_APP_SECRET:u,EXTENSION_ID:f,EXTENSION_UUID:d}=t,c=(0,h.isThemeAppExtensionOS3)(a)?y:g;try{return c.cwd=a,m.default.log("Validate extension..."),await c.validate(),m.default.log("Zip extension..."),await T(l),m.default.log("Write json file to output file..."),e.default.writeFileSync(n,JSON.stringify({appKey:o,appSecret:u,extensionId:f,extensionUuid:d,type:s.ERegisterType.THEME_APP_BLOCK,category:s.ECategory.THEME},null,2)),await Promise.resolve()}catch(e){if(e instanceof E.AbortError)throw e;return Promise.reject(e.message||e)}}_(g,"cwd",void 0);
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),function(e,t){for(var i in t)Object.defineProperty(e,i,{enumerable:!0,get:t[i]})}(exports,{ValidateRule3:()=>y,ValidateRule:()=>g,default:()=>O,zipAndBuild:()=>b});const e=w(require("fs-extra")),t=w(require("ora")),i=w(require("pathe")),r=w(require("form-data")),a=w(require("filesize")),l=require("@shoplinedev/theme-check"),n=w(require("fast-glob")),s=require("../api"),o=require("../zip"),u=require("../zip3"),f=require("../const"),d=require("../utils"),c=require("../../../utils/messages"),p=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var i=S(t);if(i&&i.has(e))return i.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var l in e)if("default"!==l&&Object.prototype.hasOwnProperty.call(e,l)){var n=a?Object.getOwnPropertyDescriptor(e,l):null;n&&(n.get||n.set)?Object.defineProperty(r,l,n):r[l]=e[l]}return r.default=e,i&&i.set(e,r),r}(require("../validate")),E=require("../../../utils/error"),m=w(require("../../../utils/winston")),h=require("../check-extension-version");function _(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function w(e){return e&&e.__esModule?e:{default:e}}function S(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,i=new WeakMap;return(S=function(e){return e?i:t})(e)}class y{static async validate(){let{cwd:t}=y,r=n.default.sync(["compatibility/**/*"],{cwd:t});r.length&&(g.cwd=i.default.join(t,"compatibility"),await g.validate());let l=n.default.sync(["**/*","!compatibility/**/*"],{cwd:t}),s=0,o=0,u=0;if(l.forEach(r=>{let a=i.default.join(t,r),l=e.default.statSync(a);l.isFile()&&y.validateFile(r)&&(r.startsWith("blocks")&&(o+=l.size,u+=1),r.startsWith("components")&&(o+=l.size),s+=l.size)}),s>f.MAX_ALL_FILE_SIZE)throw Error(`Total size of all files must be less than ${(0,a.default)(f.MAX_ALL_FILE_SIZE)}`);if(u>f.MAX_BLOCKS_FILE_COUNT)throw Error(`Total number of files for all blocks must be less than ${f.MAX_BLOCKS_FILE_COUNT}`);if(o>f.MAX_BLOCKS_FILE_SIZE_3)throw Error(`Total size of all blocks and components html must be less than ${(0,a.default)(f.MAX_BLOCKS_FILE_SIZE_3)}`)}static validateFile(e){let t=i.default.join(y.cwd,e),r=i.default.dirname(e),a=i.default.extname(e),l=/\/|\\\\/;if("."===r)return!1;if(l.test(r)){let[e]=r.split(l);if(!f.SUPPORTED_BUCKETS_3.includes(e))throw Error(`Invalid directory: ${r}`)}else if(!f.SUPPORTED_BUCKETS_3.includes(r))throw Error(`Invalid directory: ${r}`);if("public"===r){if(!f.SUPPORTED_ASSET_EXTS_3.includes(a))throw Error(`Invalid filename: ${e}; ${a} is not supported`)}else if("i18n"===r){if(".json"!==a)throw Error(`Invalid filename: ${e}; Only ${f.SUPPORTED_LOCALE_EXTS.join(", ")} allowed in ${r}`)}else if("blocks"===r)return y.validateBlocksSchema(t);return!0}static validateBlocksSchema(t){let r=e.default.readFileSync(t,"utf-8"),a=(0,d.extractSchema)(r),l=i.default.relative(y.cwd,t);return(0,p.validateBlockSchema3)(a,{relativeFile:l})}}_(y,"cwd",void 0);class g{static async validate(){let{cwd:t}=g,r=(0,l.configOnlyChecks)(["ValidHtml"]),s=await (0,l.cliCheckTheme)({themePath:t,config:r});if(s.errors.length){let e=s.errors.map(e=>{let r=e.errors.map(e=>`${e.message} in ${i.default.join(t,e.file)}:${e.position.start.line}:${e.position.start.column}`).join("\n");return r}).join("\n");throw new E.AbortError(e)}let o=n.default.sync("**/*",{cwd:t}),u=0,d=0,c=0;if(o.forEach(r=>{let a=i.default.join(t,r),l=e.default.statSync(a);if(l.isFile()&&g.validateFile(r)){let e=i.default.dirname(r);"blocks"===e&&(d+=l.size,c+=1),"snippets"===e&&(d+=l.size),u+=l.size}}),u>f.MAX_ALL_FILE_SIZE)throw Error(`Total size of all files must be less than ${(0,a.default)(f.MAX_ALL_FILE_SIZE)}`);if(c>f.MAX_BLOCKS_FILE_COUNT)throw Error(`Total number of files for all blocks must be less than ${f.MAX_BLOCKS_FILE_COUNT}`);if(d>f.MAX_BLOCKS_FILE_SIZE)throw Error(`Total size of all blocks and snippets HTML files must be less than ${(0,a.default)(f.MAX_BLOCKS_FILE_SIZE)}`)}static validateFile(e){let t=i.default.join(g.cwd,e),r=i.default.dirname(e),a=i.default.extname(e),l=/\/|\\\\/;if("."===r)return!1;if(l.test(r)){let[e]=r.split(l);if(!f.SUPPORTED_BUCKETS.includes(e))throw Error(`Invalid directory: ${r}`)}else if(!f.SUPPORTED_BUCKETS.includes(r))throw Error(`Invalid directory: ${r}`);if("assets"===r){if(!f.SUPPORTED_ASSET_EXTS.includes(a))throw Error(`Invalid filename: ${e}; ${a} is not supported`)}else if("locales"===r){if(".json"!==a)throw Error(`Invalid filename: ${e}; Only ${f.SUPPORTED_LOCALE_EXTS.join(", ")} allowed in ${r}`)}else if(["snippets","blocks"].includes(r)){if(".html"!==a)throw Error(`Invalid filename: ${e}; Only .html allowed in ${r}`);if("blocks"===r)return g.validateBlocksSchema(t)}return!0}static validateBlocksSchema(t){let r=e.default.readFileSync(t,"utf-8"),a=(0,d.extractSchema)(r),l=i.default.relative(g.cwd,t);return(0,p.default)(a,{relativeFile:l})}}async function T(e){(0,d.removeFile)(e),(0,h.isThemeAppExtensionOS3)()?await (0,u.zip)(e):(0,h.isThemeAppExtensionOS2)()&&await (0,o.zip)(e)}async function v(i,a,l){let n=(0,t.default)((0,c.getMessage)("extension.push.waiting_text")).start(),{SHOPLINE_APP_KEY:o,SHOPLINE_APP_SECRET:u,EXTENSION_ID:f,EXTENSION_UUID:p,EXTENSION_TITLE:m}=a;try{let t=e.default.createReadStream(i),a=new r.default;a.append("extensionFile",t),a.append("appKey",o),a.append("appSecret",u),a.append("extensionId",f),a.append("extensionUuid",p),a.append("type",s.ERegisterType.THEME_APP_BLOCK),a.append("category",s.ECategory.THEME);let h=await (0,s.pushExtension)(a);if(h){if(h.id)return n.succeed((0,c.getMessage)("extension.push.success",{name:m,updated_at:(0,d.formatTime)(h.updateTime)})),console.log((0,c.getMessage)("extension.push.success_info",{link:(0,d.getAppVersionManageLink)({appKey:o,env:l})})),await Promise.resolve();return n.fail(),await Promise.reject(new E.AbortError((0,c.getMessage)("extension.push.fail",{updated_at:(0,d.formatTime)(h.updateTime)})))}return n.fail(),await Promise.reject(new E.AbortError((0,c.getMessage)("extension.push.fail",{updated_at:(0,d.formatTime)()})))}catch(e){throw n.fail((0,c.getMessage)("extension.push.fail",{updated_at:(0,d.formatTime)()})),new E.AbortError(e.message||e)}}async function O(e,t,r=process.cwd()){let{EXTENSION_TITLE:a}=e,l=i.default.join(r,`${a}.zip`),n=(0,h.isThemeAppExtensionOS3)(r)?y:g;try{return n.cwd=r,m.default.log("Validate extension..."),await n.validate(),m.default.log("Zip extension..."),await T(l),m.default.log("Zip and push extension..."),await v(l,e,t),m.default.log("Push theme app extension success!"),(0,d.removeFile)(l),await Promise.resolve()}catch(e){if((0,d.removeFile)(l),e instanceof E.AbortError)throw e;return Promise.reject(e.message||e)}}async function b(t,r,a=process.cwd()){let l=i.default.join(a,".plugin.zip"),n=i.default.join(a,".plugin.json"),{SHOPLINE_APP_KEY:o,SHOPLINE_APP_SECRET:u,EXTENSION_ID:f,EXTENSION_UUID:d}=t,c=(0,h.isThemeAppExtensionOS3)(a)?y:g;try{return c.cwd=a,m.default.log("Validate extension..."),await c.validate(),m.default.log("Zip extension..."),await T(l),m.default.log("Write json file to output file..."),e.default.writeFileSync(n,JSON.stringify({appKey:o,appSecret:u,extensionId:f,extensionUuid:d,type:s.ERegisterType.THEME_APP_BLOCK,category:s.ECategory.THEME},null,2)),await Promise.resolve()}catch(e){if(e instanceof E.AbortError)throw e;return Promise.reject(e.message||e)}}_(g,"cwd",void 0);
2
+ //# sourceMappingURL=zip.js.map
@@ -1 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"default",{enumerable:!0,get:()=>i});const e=function(e){return e&&e.__esModule?e:{default:e}}(require("ora")),t=require("./api"),r=require("./env"),s=require("../../utils/messages"),n=require("../../utils/error");async function i(i,a){let o,u;let{EXTENSION_TITLE:c,SHOPLINE_APP_KEY:g,SHOPLINE_APP_SECRET:l,EXTENSION_ID:f,EXTENSION_UUID:E,PARTNER_ID:d}=await (0,r.resolveEnvContents)(i,a);if(o=f&&"undefined"!==f?f:"",u=E&&"undefined"!==E?E:"",!o){let r=(0,e.default)((0,s.getMessage)("extension.register.waiting_text")).start();try{let e=await (0,t.createExtensionInstance)({appKey:g,appSecret:l,name:c,type:t.ERegisterType.THEME_APP_BLOCK,category:t.ECategory.THEME}),{id:i,uuid:a}=e||{};if(!i||!a)throw new n.AbortError((0,s.getMessage)("extension.register.fail"));o=i,u=a,r.succeed((0,s.getMessage)("extension.register.success",{name:c}))}catch(e){if(r.fail(),e instanceof n.AbortError)throw e;throw new n.AbortError(e.message||e)}}return{PARTNER_ID:d,EXTENSION_ID:o,EXTENSION_TITLE:c,SHOPLINE_APP_KEY:g,SHOPLINE_APP_SECRET:l,EXTENSION_UUID:u}}
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"default",{enumerable:!0,get:()=>i});const e=function(e){return e&&e.__esModule?e:{default:e}}(require("ora")),t=require("./api"),r=require("./env"),s=require("../../utils/messages"),n=require("../../utils/error");async function i(i,a){let o,u;let{EXTENSION_TITLE:c,SHOPLINE_APP_KEY:g,SHOPLINE_APP_SECRET:l,EXTENSION_ID:f,EXTENSION_UUID:E,PARTNER_ID:d}=await (0,r.resolveEnvContents)(i,a);if(o=f&&"undefined"!==f?f:"",u=E&&"undefined"!==E?E:"",!o){let r=(0,e.default)((0,s.getMessage)("extension.register.waiting_text")).start();try{let e=await (0,t.createExtensionInstance)({appKey:g,appSecret:l,name:c,type:t.ERegisterType.THEME_APP_BLOCK,category:t.ECategory.THEME}),{id:i,uuid:a}=e||{};if(!i||!a)throw new n.AbortError((0,s.getMessage)("extension.register.fail"));o=i,u=a,r.succeed((0,s.getMessage)("extension.register.success",{name:c}))}catch(e){if(r.fail(),e instanceof n.AbortError)throw e;throw new n.AbortError(e.message||e)}}return{PARTNER_ID:d,EXTENSION_ID:o,EXTENSION_TITLE:c,SHOPLINE_APP_KEY:g,SHOPLINE_APP_SECRET:l,EXTENSION_UUID:u}}
2
+ //# sourceMappingURL=register.js.map
@@ -1 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),function(e,o){for(var t in o)Object.defineProperty(e,t,{enumerable:!0,get:o[t]})}(exports,{TypeSchema:()=>o,MetafieldSchema:()=>t,NewExtensionPointSchema:()=>i,ApiVersionSchema:()=>a,CapabilitiesSchema:()=>n,BaseUiCustomizerSchema:()=>s});const e=require("../../utils/schema"),o=e.zod.object({type:e.zod.string().or(e.zod.number()).default("checkout_ui_customizer"),name:e.zod.string().optional()}),t=e.zod.object({namespace:e.zod.string(),key:e.zod.string()}),i=e.zod.object({target:e.zod.string(),module:e.zod.string(),metafields:e.zod.array(t).optional()}),a=e.zod.string(),n=e.zod.object({network_access:e.zod.boolean().optional(),block_progress:e.zod.boolean().optional(),api_access:e.zod.boolean().optional()}),s=e.zod.object({name:e.zod.string(),type:e.zod.string().default("checkout_ui_customizer"),extensionPoints:e.zod.any().optional(),capabilities:n.optional()});
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),function(e,o){for(var t in o)Object.defineProperty(e,t,{enumerable:!0,get:o[t]})}(exports,{TypeSchema:()=>o,MetafieldSchema:()=>t,NewExtensionPointSchema:()=>i,ApiVersionSchema:()=>a,CapabilitiesSchema:()=>n,BaseUiCustomizerSchema:()=>s});const e=require("../../utils/schema"),o=e.zod.object({type:e.zod.string().or(e.zod.number()).default("checkout_ui_customizer"),name:e.zod.string().optional()}),t=e.zod.object({namespace:e.zod.string(),key:e.zod.string()}),i=e.zod.object({target:e.zod.string(),module:e.zod.string(),metafields:e.zod.array(t).optional()}),a=e.zod.string(),n=e.zod.object({network_access:e.zod.boolean().optional(),block_progress:e.zod.boolean().optional(),api_access:e.zod.boolean().optional()}),s=e.zod.object({name:e.zod.string(),type:e.zod.string().default("checkout_ui_customizer"),extensionPoints:e.zod.any().optional(),capabilities:n.optional()});
2
+ //# sourceMappingURL=schemas.js.map
@@ -1 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(exports,{setupBundlerAndFileWatcher:()=>s,servePixelsExtension:()=>c});const e=function(e){return e&&e.__esModule?e:{default:e}}(require("chokidar")),t=require("../../../utils/abort"),r=require("../../../utils/path"),o=require("../../../utils/output"),n=require("../../../utils/node-package-manager"),i=require("../../../utils/system"),a=require("../../../utils/ui/ui");async function s(n){let i=new t.AbortController,{extension:s}=n.devOptions,c=e.default.watch((0,r.joinPath)(s.directory,"locales","**.json")).on("change",e=>{(0,o.outputDebug)(`Locale file at path ${e} changed`),n.payloadStore.updateExtension(s,n.devOptions).then(()=>{(0,o.outputDebug)(`Notified extension ${s.devUUID} about the locale change.`)}).catch(()=>{})});return i.signal.addEventListener("abort",()=>{(0,o.outputDebug)(`Closing locale file watching for extension with ID ${s.devUUID}`),c.close().then(()=>{(0,o.outputDebug)(`Locale file watching closed for extension with ${s.devUUID}`)}).catch(e=>{(0,o.outputDebug)(`Locale file watching failed to close for extension with ${s.devUUID}: ${e.message}`)})}),await (0,a.renderConcurrent)({processes:[{prefix:"Serve UI Extension",action:async(e,t,r)=>{await u(n,{stdout:e,stderr:t,signal:r})}}],showTimestamps:!1,abortController:i}),{close:()=>{i.abort()}}}async function u(e,t){let r;let{extension:a,shop:s,port:u,url:c}=e.devOptions,l=await (0,n.getPackageManager)(a.directory),d=[`--store=${s}`,`--publicUrl=${c}`,`--resourceUrl=${e.devOptions.checkoutCartUrl}`,`--reloadNoticeUrl=${e.devOptions.reloadNoticeUrl}`,`--previewPath=${e.devOptions.previewPath}`];u&&d.push(`--port=${u}`),(0,o.outputDebug)(`Running ${(0,o.formatPackageManagerCommand)(l,"serve",`--store=${s}`,u?`--port=${u}`:"",`--publicUrl=${c}`,`--resourceUrl=${e.devOptions.checkoutCartUrl}`)}`),(r="npm"===l?["run","serve","--"]:["serve"]).push(...d),await (0,i.exec)(l,r,{cwd:a.directory,signal:t.signal,stdout:t.stdout,stderr:t.stderr})}async function c(e,t){let r;let o=await (0,n.getPackageManager)(e.extension.directory),a=[`--port=${e.port}`,`--store=${e.shop}`];(r="npm"===o?["run","serve","--"]:["serve"]).push(...a),await (0,i.exec)(o,r,{cwd:e.extension.directory,signal:t.signal,stdout:t.stdout,stderr:t.stderr})}
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(exports,{setupBundlerAndFileWatcher:()=>s,servePixelsExtension:()=>c});const e=function(e){return e&&e.__esModule?e:{default:e}}(require("chokidar")),t=require("../../../utils/abort"),r=require("../../../utils/path"),o=require("../../../utils/output"),n=require("../../../utils/node-package-manager"),i=require("../../../utils/system"),a=require("../../../utils/ui/ui");async function s(n){let i=new t.AbortController,{extension:s}=n.devOptions,c=e.default.watch((0,r.joinPath)(s.directory,"locales","**.json")).on("change",e=>{(0,o.outputDebug)(`Locale file at path ${e} changed`),n.payloadStore.updateExtension(s,n.devOptions).then(()=>{(0,o.outputDebug)(`Notified extension ${s.devUUID} about the locale change.`)}).catch(()=>{})});return i.signal.addEventListener("abort",()=>{(0,o.outputDebug)(`Closing locale file watching for extension with ID ${s.devUUID}`),c.close().then(()=>{(0,o.outputDebug)(`Locale file watching closed for extension with ${s.devUUID}`)}).catch(e=>{(0,o.outputDebug)(`Locale file watching failed to close for extension with ${s.devUUID}: ${e.message}`)})}),await (0,a.renderConcurrent)({processes:[{prefix:"Serve UI Extension",action:async(e,t,r)=>{await u(n,{stdout:e,stderr:t,signal:r})}}],showTimestamps:!1,abortController:i}),{close:()=>{i.abort()}}}async function u(e,t){let r;let{extension:a,shop:s,port:u,url:c}=e.devOptions,l=await (0,n.getPackageManager)(a.directory),d=[`--store=${s}`,`--publicUrl=${c}`,`--resourceUrl=${e.devOptions.checkoutCartUrl}`,`--reloadNoticeUrl=${e.devOptions.reloadNoticeUrl}`,`--previewPath=${e.devOptions.previewPath}`];u&&d.push(`--port=${u}`),(0,o.outputDebug)(`Running ${(0,o.formatPackageManagerCommand)(l,"serve",`--store=${s}`,u?`--port=${u}`:"",`--publicUrl=${c}`,`--resourceUrl=${e.devOptions.checkoutCartUrl}`)}`),(r="npm"===l?["run","serve","--"]:["serve"]).push(...d),await (0,i.exec)(l,r,{cwd:a.directory,signal:t.signal,stdout:t.stdout,stderr:t.stderr})}async function c(e,t){let r;let o=await (0,n.getPackageManager)(e.extension.directory),a=[`--port=${e.port}`,`--store=${e.shop}`];(r="npm"===o?["run","serve","--"]:["serve"]).push(...a),await (0,i.exec)(o,r,{cwd:e.extension.directory,signal:t.signal,stdout:t.stdout,stderr:t.stderr})}
2
+ //# sourceMappingURL=bundler.js.map
@@ -1 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),function(e,t){for(var n in t)Object.defineProperty(e,n,{enumerable:!0,get:t[n]})}(exports,{devUiCustomizer:()=>l,devPixelsExtension:()=>c});const e=require("../../../utils/output"),t=require("../context"),n=require("./bundler"),o=require("./payload"),r=require("./server"),s=require("./websocket"),i=require("../../../utils/abort"),u=function(e){return e&&e.__esModule?e:{default:e}}(require("../../../utils/winston")),a=require("../../../utils/ui/ui");async function l(i){let a={...i,checkoutCartUrl:await (0,t.getCartPathFromExtension)(i.storeId,i.appKey,i.shop,i.extension.noProductErrorMessage)},l={...a,websocketURL:function(e){let t=new URL("/extensions",e);return t.protocol="wss:",t.toString()}(i.url)},c=await (0,o.getExtensionsPayloadStoreRawPayload)(i.extension,l),d=new o.ExtensionsPayloadStore(c,l);(0,e.outputDebug)("Setting up the UI extensions HTTP server..."),u.default.log("Setting up the UI extensions HTTP server...");let p=(0,r.setupHTTPServer)({devOptions:a,payloadStore:d});(0,e.outputDebug)("Setting up the UI extensions Websocket server..."),u.default.log("Setting up the UI extensions Websocket server...");let g=(0,s.setupWebsocketConnection)({...i,httpServer:p,payloadStore:d});(0,e.outputDebug)("Setting up the UI extensions bundler and file watching..."),u.default.log("Setting up the UI extensions bundler and file watching...");let x=await (0,n.setupBundlerAndFileWatcher)({devOptions:a,payloadStore:d});i.signal.addEventListener("abort",()=>{x.close(),g.close(),p.close()})}async function c(t){let o=new i.AbortController;o.signal.addEventListener("abort",()=>{(0,e.outputDebug)(`Closing locale file watching for extension with ID ${t.extension.uuid}`)}),await (0,a.renderConcurrent)({processes:[{prefix:"Serve Pixels Extension",action:async(e,o,r)=>{await (0,n.servePixelsExtension)(t,{stdout:e,stderr:o,signal:r})}}],showTimestamps:!1,abortController:o})}
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),function(e,t){for(var n in t)Object.defineProperty(e,n,{enumerable:!0,get:t[n]})}(exports,{devUiCustomizer:()=>l,devPixelsExtension:()=>c});const e=require("../../../utils/output"),t=require("../context"),n=require("./bundler"),o=require("./payload"),r=require("./server"),s=require("./websocket"),i=require("../../../utils/abort"),u=function(e){return e&&e.__esModule?e:{default:e}}(require("../../../utils/winston")),a=require("../../../utils/ui/ui");async function l(i){let a={...i,checkoutCartUrl:await (0,t.getCartPathFromExtension)(i.storeId,i.appKey,i.shop,i.extension.noProductErrorMessage)},l={...a,websocketURL:function(e){let t=new URL("/extensions",e);return t.protocol="wss:",t.toString()}(i.url)},c=await (0,o.getExtensionsPayloadStoreRawPayload)(i.extension,l),d=new o.ExtensionsPayloadStore(c,l);(0,e.outputDebug)("Setting up the UI extensions HTTP server..."),u.default.log("Setting up the UI extensions HTTP server...");let p=(0,r.setupHTTPServer)({devOptions:a,payloadStore:d});(0,e.outputDebug)("Setting up the UI extensions Websocket server..."),u.default.log("Setting up the UI extensions Websocket server...");let g=(0,s.setupWebsocketConnection)({...i,httpServer:p,payloadStore:d});(0,e.outputDebug)("Setting up the UI extensions bundler and file watching..."),u.default.log("Setting up the UI extensions bundler and file watching...");let x=await (0,n.setupBundlerAndFileWatcher)({devOptions:a,payloadStore:d});i.signal.addEventListener("abort",()=>{x.close(),g.close(),p.close()})}async function c(t){let o=new i.AbortController;o.signal.addEventListener("abort",()=>{(0,e.outputDebug)(`Closing locale file watching for extension with ID ${t.extension.uuid}`)}),await (0,a.renderConcurrent)({processes:[{prefix:"Serve Pixels Extension",action:async(e,o,r)=>{await (0,n.servePixelsExtension)(t,{stdout:e,stderr:o,signal:r})}}],showTimestamps:!1,abortController:o})}
2
+ //# sourceMappingURL=extension.js.map
@@ -1 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),function(e,t){for(var a in t)Object.defineProperty(e,a,{enumerable:!0,get:t[a]})}(exports,{getLocalizationFilePaths:()=>i,getLocalization:()=>u,validateDefaultLanguage:()=>c,findDefaultLocale:()=>f});const e=l(require("fast-glob")),t=l(require("fs")),a=require("../../../utils/path"),r=require("../../../utils/output"),o=require("../../../utils/fs"),n=require("../../../utils/error");function l(e){return e&&e.__esModule?e:{default:e}}async function i(t){let r=(0,a.joinPath)(t.directory,"locales");return(0,e.default)([(0,a.joinPath)(r,"*.json")])}async function u(e){let t=await i(e);if(!t.length)return{localization:void 0,status:""};let a=f(t);c(a,t);let o={defaultLocale:"en",translations:{},lastUpdated:0},n="success";try{await Promise.all(t.map(async t=>{let[a,...r]=t.split("/").pop().split(".");if(a)return"default"===r[0]&&(o.defaultLocale=a),s(a,t,o,e)})),o.lastUpdated=Date.now(),(0,r.outputInfo)(`Parsed locales for extension ${e.configuration.name} at ${e.directory}`)}catch(e){n="error"}return{localization:o,status:n}}async function s(e,t,a,l){let i;try{i=await (0,o.readFile)(t),a.translations[e]=JSON.parse(i)}catch(o){let a=`Error parsing ${e} locale for ${l.configuration.name} at ${t}: ${o.message}`;throw(0,r.outputWarn)(a),new n.ExtendableError(a)}}function c(e,a,r="checkout_ui"){if(0===e.length)throw new n.AbortError(`Missing default language in ${r} configuration`,"Make sure to have a {locale}.default.json file in your locales directory");if(e.length>1)throw new n.AbortError(`Error loading ${r}`,'There must be one (and only one) locale identified as the default locale: e.g. "en.default.json"');for(let e of a){let{size:a}=t.default.statSync(e);if(0===a)throw new n.AbortError(`Error loading ${r}`,`Locale file ${e} can't be empty`)}}function f(e){let t=e.filter(e=>(0,a.basename)(e).endsWith(".default.json"));return t.map(e=>(0,a.basename)(e).split(".")[0])}
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),function(e,t){for(var a in t)Object.defineProperty(e,a,{enumerable:!0,get:t[a]})}(exports,{getLocalizationFilePaths:()=>i,getLocalization:()=>u,validateDefaultLanguage:()=>c,findDefaultLocale:()=>f});const e=l(require("fast-glob")),t=l(require("fs")),a=require("../../../utils/path"),r=require("../../../utils/output"),o=require("../../../utils/fs"),n=require("../../../utils/error");function l(e){return e&&e.__esModule?e:{default:e}}async function i(t){let r=(0,a.joinPath)(t.directory,"locales");return(0,e.default)([(0,a.joinPath)(r,"*.json")])}async function u(e){let t=await i(e);if(!t.length)return{localization:void 0,status:""};let a=f(t);c(a,t);let o={defaultLocale:"en",translations:{},lastUpdated:0},n="success";try{await Promise.all(t.map(async t=>{let[a,...r]=t.split("/").pop().split(".");if(a)return"default"===r[0]&&(o.defaultLocale=a),s(a,t,o,e)})),o.lastUpdated=Date.now(),(0,r.outputInfo)(`Parsed locales for extension ${e.configuration.name} at ${e.directory}`)}catch(e){n="error"}return{localization:o,status:n}}async function s(e,t,a,l){let i;try{i=await (0,o.readFile)(t),a.translations[e]=JSON.parse(i)}catch(o){let a=`Error parsing ${e} locale for ${l.configuration.name} at ${t}: ${o.message}`;throw(0,r.outputWarn)(a),new n.ExtendableError(a)}}function c(e,a,r="checkout_ui"){if(0===e.length)throw new n.AbortError(`Missing default language in ${r} configuration`,"Make sure to have a {locale}.default.json file in your locales directory");if(e.length>1)throw new n.AbortError(`Error loading ${r}`,'There must be one (and only one) locale identified as the default locale: e.g. "en.default.json"');for(let e of a){let{size:a}=t.default.statSync(e);if(0===a)throw new n.AbortError(`Error loading ${r}`,`Locale file ${e} can't be empty`)}}function f(e){let t=e.filter(e=>(0,a.basename)(e).endsWith(".default.json"));return t.map(e=>(0,a.basename)(e).split(".")[0])}
2
+ //# sourceMappingURL=localization.js.map
@@ -1 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});
2
+ //# sourceMappingURL=models.js.map
@@ -1 +1,2 @@
1
- "use strict";var e;Object.defineProperty(exports,"__esModule",{value:!0}),function(e,t){for(var o in t)Object.defineProperty(e,o,{enumerable:!0,get:t[o]})}(exports,{ExtensionsPayloadStoreEvent:()=>e,getExtensionsPayloadStoreRawPayload:()=>d,getUiCustomizerPayload:()=>c,ExtensionsPayloadStore:()=>p,getExtensionPoints:()=>y,getUiCustomizer:()=>P,getUiConfiguration:()=>f,reloadNoticePath:()=>x,getReloadNoticeUrl:()=>g,getPreviewPath:()=>U});const t=function(e){return e&&e.__esModule?e:{default:e}}(require("events")),o=require("../../../utils/fs"),i=require("./localization"),n=require("../schemas"),a=require("../../../utils/output"),r=require("../loader"),s=require("../../../utils/path"),u=require("../const");function l(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}async function d(e,t){return{root:{url:new URL("/extensions",t.url).toString()},socket:{url:t.websocketURL},store:t.shop,extensions:[await c(e,t)]}}async function c(e,t){var n,a,r,s;let{localization:u}=await (0,i.getLocalization)(e),l={assets:{main:{name:"main",url:`${t.url}/assets/main.js`,lastUpdated:null!==(r=await (0,o.fileLastUpdatedTimestamp)(e.outputBundlePath))&&void 0!==r?r:0}},capabilities:{blockProgress:(null===(n=e.configuration.capabilities)||void 0===n?void 0:n.block_progress)||!1,networkAccess:(null===(a=e.configuration.capabilities)||void 0===a?void 0:a.network_access)||!1},extensionPoints:e.configuration.extensionPoints,localization:null!=u?u:null,type:e.configuration.type,externalType:e.externalType,uuid:e.devUUID,version:"0",title:e.configuration.name,approvalScopes:[]};return l}(e||(e={})).Update="PayloadUpdatedEvent:UPDATE";class p extends t.default{getConnectedPayload(){let e=this.getRawPayload();return{root:e.root,socket:e.socket,store:e.store,extensions:e.extensions}}getRawPayload(){return this.rawPayload}getRawPayloadFilteredByExtensionIds(e){return{...this.rawPayload,extensions:this.rawPayload.extensions.filter(t=>e.includes(t.uuid))}}async updateExtension(e,t){let o=this.rawPayload.extensions,i=o.findIndex(t=>t.uuid===e.devUUID);if(-1===i){(0,a.outputDebug)((0,a.outputContent)`Could not updateExtension() for extension with uuid: ${e.devUUID}`);return}o[i]=await c(e,{...t}),this.rawPayload.extensions=o,this.emitUpdate([e.devUUID])}emitUpdate(t){this.emit(e.Update,t)}constructor(e,t){super(),l(this,"options",void 0),l(this,"rawPayload",void 0),this.rawPayload=e,this.options=t}}function y(e){return e}async function P(e){return{type:e.type,configuration:await f(e),devUUID:e.uuid,directory:e.cwd,externalType:e.externalType,outputBundlePath:e.outputBundlePath,noProductErrorMessage:e.noProductErrorMessage}}async function f(e){let t={checkout_ui_customizer:u.CHECKOUT_UI_CONFIG_FILE,post_purchase_customizer:u.POST_PURCHASE_CONFIG_FILE},o=await (0,r.parseConfigurationFile)(n.BaseUiCustomizerSchema,(0,s.joinPath)(e.cwd,t[e.type]));return{name:e.name,type:e.type,extensionPoints:o.extensionPoints,capabilities:o.capabilities}}const x="/reloadNotice";function g(e){return`${e}${x}`}function U(e){return`/extensions/${e}`}
1
+ "use strict";var e;Object.defineProperty(exports,"__esModule",{value:!0}),function(e,t){for(var o in t)Object.defineProperty(e,o,{enumerable:!0,get:t[o]})}(exports,{ExtensionsPayloadStoreEvent:()=>e,getExtensionsPayloadStoreRawPayload:()=>d,getUiCustomizerPayload:()=>c,ExtensionsPayloadStore:()=>p,getExtensionPoints:()=>y,getUiCustomizer:()=>P,getUiConfiguration:()=>f,reloadNoticePath:()=>x,getReloadNoticeUrl:()=>g,getPreviewPath:()=>U});const t=function(e){return e&&e.__esModule?e:{default:e}}(require("events")),o=require("../../../utils/fs"),i=require("./localization"),n=require("../schemas"),a=require("../../../utils/output"),r=require("../loader"),s=require("../../../utils/path"),u=require("../const");function l(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}async function d(e,t){return{root:{url:new URL("/extensions",t.url).toString()},socket:{url:t.websocketURL},store:t.shop,extensions:[await c(e,t)]}}async function c(e,t){var n,a,r,s;let{localization:u}=await (0,i.getLocalization)(e),l={assets:{main:{name:"main",url:`${t.url}/assets/main.js`,lastUpdated:null!==(r=await (0,o.fileLastUpdatedTimestamp)(e.outputBundlePath))&&void 0!==r?r:0}},capabilities:{blockProgress:(null===(n=e.configuration.capabilities)||void 0===n?void 0:n.block_progress)||!1,networkAccess:(null===(a=e.configuration.capabilities)||void 0===a?void 0:a.network_access)||!1},extensionPoints:e.configuration.extensionPoints,localization:null!=u?u:null,type:e.configuration.type,externalType:e.externalType,uuid:e.devUUID,version:"0",title:e.configuration.name,approvalScopes:[]};return l}(e||(e={})).Update="PayloadUpdatedEvent:UPDATE";class p extends t.default{getConnectedPayload(){let e=this.getRawPayload();return{root:e.root,socket:e.socket,store:e.store,extensions:e.extensions}}getRawPayload(){return this.rawPayload}getRawPayloadFilteredByExtensionIds(e){return{...this.rawPayload,extensions:this.rawPayload.extensions.filter(t=>e.includes(t.uuid))}}async updateExtension(e,t){let o=this.rawPayload.extensions,i=o.findIndex(t=>t.uuid===e.devUUID);if(-1===i){(0,a.outputDebug)((0,a.outputContent)`Could not updateExtension() for extension with uuid: ${e.devUUID}`);return}o[i]=await c(e,{...t}),this.rawPayload.extensions=o,this.emitUpdate([e.devUUID])}emitUpdate(t){this.emit(e.Update,t)}constructor(e,t){super(),l(this,"options",void 0),l(this,"rawPayload",void 0),this.rawPayload=e,this.options=t}}function y(e){return e}async function P(e){return{type:e.type,configuration:await f(e),devUUID:e.uuid,directory:e.cwd,externalType:e.externalType,outputBundlePath:e.outputBundlePath,noProductErrorMessage:e.noProductErrorMessage}}async function f(e){let t={checkout_ui_customizer:u.CHECKOUT_UI_CONFIG_FILE,post_purchase_customizer:u.POST_PURCHASE_CONFIG_FILE},o=await (0,r.parseConfigurationFile)(n.BaseUiCustomizerSchema,(0,s.joinPath)(e.cwd,t[e.type]));return{name:e.name,type:e.type,extensionPoints:o.extensionPoints,capabilities:o.capabilities}}const x="/reloadNotice";function g(e){return`${e}${x}`}function U(e){return`/extensions/${e}`}
2
+ //# sourceMappingURL=payload.js.map