itmar-block-packages 1.10.1 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (157) hide show
  1. package/README.md +78 -2
  2. package/build/cjs/AnimationBlock.js +107 -0
  3. package/build/cjs/AnimationBlock.js.map +1 -0
  4. package/build/cjs/BlockEditWrapper.js +20 -0
  5. package/build/cjs/BlockEditWrapper.js.map +1 -0
  6. package/build/cjs/BlockPlace.js +509 -0
  7. package/build/cjs/BlockPlace.js.map +1 -0
  8. package/build/cjs/BrockInserter.js +204 -0
  9. package/build/cjs/BrockInserter.js.map +1 -0
  10. package/build/cjs/DateElm.js +321 -0
  11. package/build/cjs/DateElm.js.map +1 -0
  12. package/build/cjs/DraggableBox.js +143 -0
  13. package/build/cjs/DraggableBox.js.map +1 -0
  14. package/build/cjs/GridControls.js +421 -0
  15. package/build/cjs/GridControls.js.map +1 -0
  16. package/build/cjs/IconSelectControl.js +167 -0
  17. package/build/cjs/IconSelectControl.js.map +1 -0
  18. package/build/cjs/JapaneseHolidays.js +99 -0
  19. package/build/cjs/JapaneseHolidays.js.map +1 -0
  20. package/build/cjs/MasonryControl.js +124 -0
  21. package/build/cjs/MasonryControl.js.map +1 -0
  22. package/build/cjs/PseudoElm.js +66 -0
  23. package/build/cjs/PseudoElm.js.map +1 -0
  24. package/build/cjs/ShadowStyle.js +453 -0
  25. package/build/cjs/ShadowStyle.js.map +1 -0
  26. package/build/cjs/SwiperControl.js +267 -0
  27. package/build/cjs/SwiperControl.js.map +1 -0
  28. package/build/cjs/ToggleElement.js +17 -0
  29. package/build/cjs/ToggleElement.js.map +1 -0
  30. package/build/cjs/TypographyControls.js +151 -0
  31. package/build/cjs/TypographyControls.js.map +1 -0
  32. package/build/cjs/UpdateAllPostsBlockAttributes.js +137 -0
  33. package/build/cjs/UpdateAllPostsBlockAttributes.js.map +1 -0
  34. package/build/cjs/ZipAddress.js +34 -0
  35. package/build/cjs/ZipAddress.js.map +1 -0
  36. package/build/cjs/_virtual/_rollupPluginBabelHelpers.js +117 -0
  37. package/build/cjs/_virtual/_rollupPluginBabelHelpers.js.map +1 -0
  38. package/build/cjs/blockStore.js +65 -0
  39. package/build/cjs/blockStore.js.map +1 -0
  40. package/build/cjs/cssPropertes.js +157 -0
  41. package/build/cjs/cssPropertes.js.map +1 -0
  42. package/build/cjs/customFooks.js +300 -0
  43. package/build/cjs/customFooks.js.map +1 -0
  44. package/build/cjs/formatCreate.js +160 -0
  45. package/build/cjs/formatCreate.js.map +1 -0
  46. package/build/cjs/hslToRgb.js +133 -0
  47. package/build/cjs/hslToRgb.js.map +1 -0
  48. package/build/cjs/index.js +115 -0
  49. package/build/cjs/index.js.map +1 -0
  50. package/build/cjs/mediaUpload.js +182 -0
  51. package/build/cjs/mediaUpload.js.map +1 -0
  52. package/build/cjs/node_modules/nanoid/index.js +30 -0
  53. package/build/cjs/node_modules/nanoid/index.js.map +1 -0
  54. package/build/cjs/node_modules/nanoid/url-alphabet/index.js +7 -0
  55. package/build/cjs/node_modules/nanoid/url-alphabet/index.js.map +1 -0
  56. package/build/cjs/shopfiApi.js +188 -0
  57. package/build/cjs/shopfiApi.js.map +1 -0
  58. package/build/cjs/validationCheck.js +15 -0
  59. package/build/cjs/validationCheck.js.map +1 -0
  60. package/build/cjs/wordpressApi.js +631 -0
  61. package/build/cjs/wordpressApi.js.map +1 -0
  62. package/build/esm/AnimationBlock.js +102 -0
  63. package/build/esm/AnimationBlock.js.map +1 -0
  64. package/build/esm/BlockEditWrapper.js +16 -0
  65. package/build/esm/BlockEditWrapper.js.map +1 -0
  66. package/build/esm/BlockPlace.js +503 -0
  67. package/build/esm/BlockPlace.js.map +1 -0
  68. package/build/esm/BrockInserter.js +202 -0
  69. package/build/esm/BrockInserter.js.map +1 -0
  70. package/build/esm/DateElm.js +309 -0
  71. package/build/esm/DateElm.js.map +1 -0
  72. package/build/esm/DraggableBox.js +138 -0
  73. package/build/esm/DraggableBox.js.map +1 -0
  74. package/build/esm/GridControls.js +417 -0
  75. package/build/esm/GridControls.js.map +1 -0
  76. package/build/esm/IconSelectControl.js +163 -0
  77. package/build/esm/IconSelectControl.js.map +1 -0
  78. package/build/esm/JapaneseHolidays.js +97 -0
  79. package/build/esm/JapaneseHolidays.js.map +1 -0
  80. package/{src → build/esm}/MasonryControl.js +108 -113
  81. package/build/esm/MasonryControl.js.map +1 -0
  82. package/build/esm/PseudoElm.js +61 -0
  83. package/build/esm/PseudoElm.js.map +1 -0
  84. package/build/esm/ShadowStyle.js +448 -0
  85. package/build/esm/ShadowStyle.js.map +1 -0
  86. package/{src → build/esm}/SwiperControl.js +265 -265
  87. package/build/esm/SwiperControl.js.map +1 -0
  88. package/build/esm/ToggleElement.js +13 -0
  89. package/build/esm/ToggleElement.js.map +1 -0
  90. package/build/esm/TypographyControls.js +147 -0
  91. package/build/esm/TypographyControls.js.map +1 -0
  92. package/build/esm/UpdateAllPostsBlockAttributes.js +133 -0
  93. package/build/esm/UpdateAllPostsBlockAttributes.js.map +1 -0
  94. package/build/esm/ZipAddress.js +32 -0
  95. package/build/esm/ZipAddress.js.map +1 -0
  96. package/build/esm/_virtual/_rollupPluginBabelHelpers.js +107 -0
  97. package/build/esm/_virtual/_rollupPluginBabelHelpers.js.map +1 -0
  98. package/build/esm/blockStore.js +60 -0
  99. package/build/esm/blockStore.js.map +1 -0
  100. package/build/esm/cssPropertes.js +144 -0
  101. package/build/esm/cssPropertes.js.map +1 -0
  102. package/{src → build/esm}/customFooks.js +290 -337
  103. package/build/esm/customFooks.js.map +1 -0
  104. package/build/esm/formatCreate.js +157 -0
  105. package/build/esm/formatCreate.js.map +1 -0
  106. package/build/esm/hslToRgb.js +129 -0
  107. package/build/esm/hslToRgb.js.map +1 -0
  108. package/build/esm/index.js +27 -0
  109. package/build/esm/index.js.map +1 -0
  110. package/build/esm/mediaUpload.js +176 -0
  111. package/build/esm/mediaUpload.js.map +1 -0
  112. package/build/esm/node_modules/nanoid/index.js +27 -0
  113. package/build/esm/node_modules/nanoid/index.js.map +1 -0
  114. package/build/esm/node_modules/nanoid/url-alphabet/index.js +5 -0
  115. package/build/esm/node_modules/nanoid/url-alphabet/index.js.map +1 -0
  116. package/build/esm/shopfiApi.js +184 -0
  117. package/build/esm/shopfiApi.js.map +1 -0
  118. package/build/esm/validationCheck.js +13 -0
  119. package/build/esm/validationCheck.js.map +1 -0
  120. package/build/esm/wordpressApi.js +618 -0
  121. package/build/esm/wordpressApi.js.map +1 -0
  122. package/package.json +22 -6
  123. package/build/index.asset.php +0 -1
  124. package/build/index.js +0 -25
  125. package/css/editor.css +0 -23
  126. package/css/editor.css.map +0 -1
  127. package/img/animation.png +0 -0
  128. package/img/blockplace.png +0 -0
  129. package/img/grid.png +0 -0
  130. package/img/iconControl.png +0 -0
  131. package/img/pseudo.png +0 -0
  132. package/img/shadow.png +0 -0
  133. package/img/typography.png +0 -0
  134. package/src/AnimationBlock.js +0 -112
  135. package/src/BlockEditWrapper.js +0 -11
  136. package/src/BlockPlace.js +0 -904
  137. package/src/BrockInserter.js +0 -247
  138. package/src/DateElm.js +0 -354
  139. package/src/DraggableBox.js +0 -143
  140. package/src/GridControls.js +0 -462
  141. package/src/IconSelectControl.js +0 -186
  142. package/src/PseudoElm.js +0 -54
  143. package/src/ShadowStyle.js +0 -520
  144. package/src/ToggleElement.js +0 -18
  145. package/src/TypographyControls.js +0 -145
  146. package/src/UpdateAllPostsBlockAttributes.js +0 -127
  147. package/src/ZipAddress.js +0 -35
  148. package/src/blockStore.js +0 -75
  149. package/src/cssPropertes.js +0 -212
  150. package/src/formatCreate.js +0 -179
  151. package/src/hslToRgb.js +0 -162
  152. package/src/index.js +0 -131
  153. package/src/mediaUpload.js +0 -178
  154. package/src/shopfiApi.js +0 -187
  155. package/src/validationCheck.js +0 -10
  156. package/src/wordpressApi.js +0 -707
  157. package/webpack.config.js +0 -10
@@ -0,0 +1,27 @@
1
+ import crypto from 'crypto';
2
+ import { urlAlphabet } from './url-alphabet/index.js';
3
+
4
+ const POOL_SIZE_MULTIPLIER = 128;
5
+ let pool, poolOffset;
6
+ let fillPool = bytes => {
7
+ if (!pool || pool.length < bytes) {
8
+ pool = Buffer.allocUnsafe(bytes * POOL_SIZE_MULTIPLIER);
9
+ crypto.randomFillSync(pool);
10
+ poolOffset = 0;
11
+ } else if (poolOffset + bytes > pool.length) {
12
+ crypto.randomFillSync(pool);
13
+ poolOffset = 0;
14
+ }
15
+ poolOffset += bytes;
16
+ };
17
+ let nanoid = (size = 21) => {
18
+ fillPool((size |= 0));
19
+ let id = '';
20
+ for (let i = poolOffset - size; i < poolOffset; i++) {
21
+ id += urlAlphabet[pool[i] & 63];
22
+ }
23
+ return id
24
+ };
25
+
26
+ export { nanoid, urlAlphabet };
27
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../../node_modules/nanoid/index.js"],"sourcesContent":["import crypto from 'crypto'\nimport { urlAlphabet } from './url-alphabet/index.js'\nconst POOL_SIZE_MULTIPLIER = 128\nlet pool, poolOffset\nlet fillPool = bytes => {\n if (!pool || pool.length < bytes) {\n pool = Buffer.allocUnsafe(bytes * POOL_SIZE_MULTIPLIER)\n crypto.randomFillSync(pool)\n poolOffset = 0\n } else if (poolOffset + bytes > pool.length) {\n crypto.randomFillSync(pool)\n poolOffset = 0\n }\n poolOffset += bytes\n}\nlet random = bytes => {\n fillPool((bytes |= 0))\n return pool.subarray(poolOffset - bytes, poolOffset)\n}\nlet customRandom = (alphabet, defaultSize, getRandom) => {\n let mask = (2 << (31 - Math.clz32((alphabet.length - 1) | 1))) - 1\n let step = Math.ceil((1.6 * mask * defaultSize) / alphabet.length)\n return (size = defaultSize) => {\n let id = ''\n while (true) {\n let bytes = getRandom(step)\n let i = step\n while (i--) {\n id += alphabet[bytes[i] & mask] || ''\n if (id.length === size) return id\n }\n }\n }\n}\nlet customAlphabet = (alphabet, size = 21) =>\n customRandom(alphabet, size, random)\nlet nanoid = (size = 21) => {\n fillPool((size |= 0))\n let id = ''\n for (let i = poolOffset - size; i < poolOffset; i++) {\n id += urlAlphabet[pool[i] & 63]\n }\n return id\n}\nexport { nanoid, customAlphabet, customRandom, urlAlphabet, random }\n"],"names":[],"mappings":";;;AAEA,MAAM,oBAAoB,GAAG;AAC7B,IAAI,IAAI,EAAE;AACV,IAAI,QAAQ,GAAG,KAAK,IAAI;AACxB,EAAE,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,KAAK,EAAE;AACpC,IAAI,IAAI,GAAG,MAAM,CAAC,WAAW,CAAC,KAAK,GAAG,oBAAoB;AAC1D,IAAI,MAAM,CAAC,cAAc,CAAC,IAAI;AAC9B,IAAI,UAAU,GAAG;AACjB,EAAE,CAAC,MAAM,IAAI,UAAU,GAAG,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE;AAC/C,IAAI,MAAM,CAAC,cAAc,CAAC,IAAI;AAC9B,IAAI,UAAU,GAAG;AACjB,EAAE;AACF,EAAE,UAAU,IAAI;AAChB;AAsBG,IAAC,MAAM,GAAG,CAAC,IAAI,GAAG,EAAE,KAAK;AAC5B,EAAE,QAAQ,EAAE,IAAI,IAAI,CAAC;AACrB,EAAE,IAAI,EAAE,GAAG;AACX,EAAE,KAAK,IAAI,CAAC,GAAG,UAAU,GAAG,IAAI,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE;AACvD,IAAI,EAAE,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE;AAClC,EAAE;AACF,EAAE,OAAO;AACT;;;;","x_google_ignoreList":[0]}
@@ -0,0 +1,5 @@
1
+ let urlAlphabet =
2
+ 'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict';
3
+
4
+ export { urlAlphabet };
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../../../node_modules/nanoid/url-alphabet/index.js"],"sourcesContent":["let urlAlphabet =\n 'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict'\nexport { urlAlphabet }\n"],"names":[],"mappings":"AAAG,IAAC,WAAW;AACf,EAAE;;;;","x_google_ignoreList":[0]}
@@ -0,0 +1,184 @@
1
+ import { asyncToGenerator as _asyncToGenerator, objectWithoutProperties as _objectWithoutProperties } from './_virtual/_rollupPluginBabelHelpers.js';
2
+
3
+ var _excluded = ["_wpnonce", "nonce"];
4
+ function generateNonce() {
5
+ var length = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 32;
6
+ var characters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
7
+ var nonce = "";
8
+ for (var i = 0; i < length; i++) {
9
+ nonce += characters.charAt(Math.floor(Math.random() * characters.length));
10
+ }
11
+ return nonce;
12
+ }
13
+ function generateCodeVerifier() {
14
+ var length = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 128;
15
+ var charset = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~";
16
+ var result = "";
17
+ for (var i = 0; i < length; i++) {
18
+ result += charset.charAt(Math.floor(Math.random() * charset.length));
19
+ }
20
+ return result;
21
+ }
22
+ function generateCodeChallenge(_x) {
23
+ return _generateCodeChallenge.apply(this, arguments);
24
+ } // ✅ Shopifyへの認証リダイレクト
25
+ function _generateCodeChallenge() {
26
+ _generateCodeChallenge = _asyncToGenerator(function* (codeVerifier) {
27
+ var encoder = new TextEncoder();
28
+ var data = encoder.encode(codeVerifier);
29
+ var digest = yield crypto.subtle.digest("SHA-256", data);
30
+ return btoa(String.fromCharCode(...new Uint8Array(digest))).replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/, "");
31
+ });
32
+ return _generateCodeChallenge.apply(this, arguments);
33
+ }
34
+ function redirectCustomerAuthorize(_x2, _x3, _x4, _x5, _x6) {
35
+ return _redirectCustomerAuthorize.apply(this, arguments);
36
+ }
37
+
38
+ // ✅ トークンがあれば検証(Storefront API 経由で customer を取得)
39
+ function _redirectCustomerAuthorize() {
40
+ _redirectCustomerAuthorize = _asyncToGenerator(function* (shopId, clientId, userMail, callbackUri, redirectUri) {
41
+ //呼び出し元の戻り先
42
+ var statePayload = {
43
+ ts: Date.now(),
44
+ random: Math.random().toString(36).substring(2),
45
+ return_url: redirectUri
46
+ };
47
+ //stateで渡しておく
48
+ var state = btoa(JSON.stringify(statePayload));
49
+ var nonce = generateNonce();
50
+ var codeVerifier = generateCodeVerifier();
51
+ var codeChallenge = yield generateCodeChallenge(codeVerifier);
52
+ localStorage.setItem("shopify_code_verifier", codeVerifier);
53
+ localStorage.setItem("shopify_state", state);
54
+ localStorage.setItem("shopify_nonce", nonce);
55
+ localStorage.setItem("shopify_client_id", clientId);
56
+ localStorage.setItem("shopify_user_mail", userMail);
57
+ localStorage.setItem("shopify_shop_id", shopId);
58
+ localStorage.setItem("shopify_redirect_uri", callbackUri); //ログアウトの処理で使用する
59
+
60
+ var url = new URL("https://shopify.com/authentication/".concat(shopId, "/oauth/authorize"));
61
+ url.searchParams.append("scope", "openid email customer-account-api:full");
62
+ url.searchParams.append("client_id", clientId);
63
+ url.searchParams.append("response_type", "code");
64
+ url.searchParams.append("redirect_uri", callbackUri);
65
+ url.searchParams.append("state", state);
66
+ url.searchParams.append("nonce", nonce);
67
+ url.searchParams.append("code_challenge", codeChallenge);
68
+ url.searchParams.append("code_challenge_method", "S256");
69
+ window.location.href = url.toString();
70
+ });
71
+ return _redirectCustomerAuthorize.apply(this, arguments);
72
+ }
73
+ function checkCustomerLoginState() {
74
+ return _checkCustomerLoginState.apply(this, arguments);
75
+ }
76
+
77
+ /**
78
+ * @param {string} urlOrPath - RESTは '/itmar-shopify/v1/...' でも '/wp-json/...' でもOK。admin-ajaxは '/wp-admin/admin-ajax.php'
79
+ * @param {object} data - 送信するデータ。nonce は data._wpnonce か data.nonce に入れておけばOK
80
+ * @param {'auto'|'rest'|'ajax'} mode - 既定は 'auto'
81
+ */
82
+ function _checkCustomerLoginState() {
83
+ _checkCustomerLoginState = _asyncToGenerator(function* () {
84
+ var token = localStorage.getItem("shopify_customer_token");
85
+ if (!token) return false;
86
+ var checkUrl = "/wp-json/itmar-ec-relate/v1/shopify-login-check";
87
+ var postData = {
88
+ nonce: itmar_option.nonce,
89
+ token: JSON.stringify({
90
+ token
91
+ })
92
+ };
93
+ sendRegistrationAjax(checkUrl, postData, true).done(function (res) {
94
+ console.log(res);
95
+ }).fail(function (xhr, status, error) {
96
+ alert("サーバーエラー: " + error);
97
+ console.error(xhr.responseText);
98
+ });
99
+ });
100
+ return _checkCustomerLoginState.apply(this, arguments);
101
+ }
102
+ function sendRegistrationRequest(_x7) {
103
+ return _sendRegistrationRequest.apply(this, arguments);
104
+ }
105
+ function _sendRegistrationRequest() {
106
+ _sendRegistrationRequest = _asyncToGenerator(function* (urlOrPath) {
107
+ var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
108
+ var mode = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : "auto";
109
+ var isRestUrlLike = u => u.startsWith("/wp-json") || !u.startsWith("/wp-admin");
110
+
111
+ // 送信先の確定(RESTのときは /wp-json 省略パスでもOKにする)
112
+ var isRest;
113
+ if (mode === "auto") {
114
+ isRest = isRestUrlLike(urlOrPath);
115
+ } else {
116
+ isRest = mode === "rest";
117
+ }
118
+ var url = urlOrPath;
119
+ if (isRest) {
120
+ // '/itmar-shopify/v1/...' のようなパスだけ渡されたら /wp-json を補う
121
+ if (!url.startsWith("/wp-json")) {
122
+ var root = window.wpApiSettings && window.wpApiSettings.root || "/wp-json/";
123
+ url = root.replace(/\/+$/, "/") + url.replace(/^\/+/, "");
124
+ }
125
+ } else {
126
+ // admin-ajax の既定URL
127
+ if (!url) url = "/wp-admin/admin-ajax.php";
128
+ }
129
+ var fetchOptions = {
130
+ method: "POST",
131
+ credentials: "same-origin",
132
+ // 同一オリジン Cookie
133
+ headers: {}
134
+ };
135
+
136
+ // ノンス抽出(_wpnonce を優先)
137
+ var nonce = data._wpnonce || data.nonce || window.wpApiSettings && window.wpApiSettings.nonce;
138
+ if (isRest) {
139
+ fetchOptions.headers["Content-Type"] = "application/json";
140
+ if (nonce) fetchOptions.headers["X-WP-Nonce"] = nonce;
141
+
142
+ // nonce系は本文から除く(任意)
143
+ var {
144
+ _wpnonce,
145
+ nonce: _legacyNonce
146
+ } = data,
147
+ rest = _objectWithoutProperties(data, _excluded);
148
+ fetchOptions.body = JSON.stringify(rest);
149
+ } else {
150
+ // admin-ajax は URLSearchParams で送る
151
+ var form = new URLSearchParams();
152
+ Object.entries(data).forEach(_ref => {
153
+ var [k, v] = _ref;
154
+ if (v !== undefined && v !== null) form.append(k, String(v));
155
+ });
156
+ // ノンスは _wpnonce に統一
157
+ if (nonce && !form.has("_wpnonce")) form.append("_wpnonce", nonce);
158
+ fetchOptions.body = form;
159
+ }
160
+ var res = yield fetch(url, fetchOptions);
161
+
162
+ // WP REST はメソッド不一致・ルートなし等でも JSON 返さないことがあるので分岐
163
+ var contentType = res.headers.get("content-type") || "";
164
+ var tryJson = contentType.includes("application/json");
165
+ if (!res.ok) {
166
+ var msg = "HTTP ".concat(res.status);
167
+ if (tryJson) {
168
+ try {
169
+ var j = yield res.json();
170
+ msg += j.message ? ": ".concat(j.message) : "";
171
+ } catch (_unused) {}
172
+ } else {
173
+ var t = yield res.text();
174
+ if (t) msg += ": ".concat(t.slice(0, 200));
175
+ }
176
+ throw new Error(msg);
177
+ }
178
+ return tryJson ? res.json() : res.text();
179
+ });
180
+ return _sendRegistrationRequest.apply(this, arguments);
181
+ }
182
+
183
+ export { checkCustomerLoginState, redirectCustomerAuthorize, sendRegistrationRequest };
184
+ //# sourceMappingURL=shopfiApi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shopfiApi.js","sources":["../../src/shopfiApi.js"],"sourcesContent":["function generateState() {\r\n const timestamp = Date.now().toString();\r\n const randomString = Math.random().toString(36).substring(2);\r\n return timestamp + randomString;\r\n}\r\n\r\nfunction generateNonce(length = 32) {\r\n const characters =\r\n \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\";\r\n let nonce = \"\";\r\n for (let i = 0; i < length; i++) {\r\n nonce += characters.charAt(Math.floor(Math.random() * characters.length));\r\n }\r\n return nonce;\r\n}\r\n\r\nfunction generateCodeVerifier(length = 128) {\r\n const charset =\r\n \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~\";\r\n let result = \"\";\r\n for (let i = 0; i < length; i++) {\r\n result += charset.charAt(Math.floor(Math.random() * charset.length));\r\n }\r\n return result;\r\n}\r\n\r\nasync function generateCodeChallenge(codeVerifier) {\r\n const encoder = new TextEncoder();\r\n const data = encoder.encode(codeVerifier);\r\n const digest = await crypto.subtle.digest(\"SHA-256\", data);\r\n return btoa(String.fromCharCode(...new Uint8Array(digest)))\r\n .replace(/\\+/g, \"-\")\r\n .replace(/\\//g, \"_\")\r\n .replace(/=+$/, \"\");\r\n}\r\n\r\n// ✅ Shopifyへの認証リダイレクト\r\nexport async function redirectCustomerAuthorize(\r\n shopId,\r\n clientId,\r\n userMail,\r\n callbackUri,\r\n redirectUri\r\n) {\r\n //呼び出し元の戻り先\r\n const statePayload = {\r\n ts: Date.now(),\r\n random: Math.random().toString(36).substring(2),\r\n return_url: redirectUri,\r\n };\r\n //stateで渡しておく\r\n const state = btoa(JSON.stringify(statePayload));\r\n const nonce = generateNonce();\r\n const codeVerifier = generateCodeVerifier();\r\n const codeChallenge = await generateCodeChallenge(codeVerifier);\r\n\r\n localStorage.setItem(\"shopify_code_verifier\", codeVerifier);\r\n localStorage.setItem(\"shopify_state\", state);\r\n localStorage.setItem(\"shopify_nonce\", nonce);\r\n localStorage.setItem(\"shopify_client_id\", clientId);\r\n localStorage.setItem(\"shopify_user_mail\", userMail);\r\n localStorage.setItem(\"shopify_shop_id\", shopId);\r\n localStorage.setItem(\"shopify_redirect_uri\", callbackUri); //ログアウトの処理で使用する\r\n\r\n const url = new URL(\r\n `https://shopify.com/authentication/${shopId}/oauth/authorize`\r\n );\r\n url.searchParams.append(\"scope\", \"openid email customer-account-api:full\");\r\n url.searchParams.append(\"client_id\", clientId);\r\n url.searchParams.append(\"response_type\", \"code\");\r\n url.searchParams.append(\"redirect_uri\", callbackUri);\r\n url.searchParams.append(\"state\", state);\r\n url.searchParams.append(\"nonce\", nonce);\r\n url.searchParams.append(\"code_challenge\", codeChallenge);\r\n url.searchParams.append(\"code_challenge_method\", \"S256\");\r\n\r\n window.location.href = url.toString();\r\n}\r\n\r\n// ✅ トークンがあれば検証(Storefront API 経由で customer を取得)\r\nexport async function checkCustomerLoginState() {\r\n const token = localStorage.getItem(\"shopify_customer_token\");\r\n\r\n if (!token) return false;\r\n\r\n const checkUrl = \"/wp-json/itmar-ec-relate/v1/shopify-login-check\";\r\n const postData = {\r\n nonce: itmar_option.nonce,\r\n token: JSON.stringify({ token }),\r\n };\r\n sendRegistrationAjax(checkUrl, postData, true)\r\n .done(function (res) {\r\n console.log(res);\r\n })\r\n .fail(function (xhr, status, error) {\r\n alert(\"サーバーエラー: \" + error);\r\n console.error(xhr.responseText);\r\n });\r\n}\r\n\r\n/**\r\n * @param {string} urlOrPath - RESTは '/itmar-shopify/v1/...' でも '/wp-json/...' でもOK。admin-ajaxは '/wp-admin/admin-ajax.php'\r\n * @param {object} data - 送信するデータ。nonce は data._wpnonce か data.nonce に入れておけばOK\r\n * @param {'auto'|'rest'|'ajax'} mode - 既定は 'auto'\r\n */\r\nexport async function sendRegistrationRequest(\r\n urlOrPath,\r\n data = {},\r\n mode = \"auto\"\r\n) {\r\n const isRestUrlLike = (u) =>\r\n u.startsWith(\"/wp-json\") || !u.startsWith(\"/wp-admin\");\r\n\r\n // 送信先の確定(RESTのときは /wp-json 省略パスでもOKにする)\r\n let isRest;\r\n if (mode === \"auto\") {\r\n isRest = isRestUrlLike(urlOrPath);\r\n } else {\r\n isRest = mode === \"rest\";\r\n }\r\n\r\n let url = urlOrPath;\r\n\r\n if (isRest) {\r\n // '/itmar-shopify/v1/...' のようなパスだけ渡されたら /wp-json を補う\r\n if (!url.startsWith(\"/wp-json\")) {\r\n const root =\r\n (window.wpApiSettings && window.wpApiSettings.root) || \"/wp-json/\";\r\n url = root.replace(/\\/+$/, \"/\") + url.replace(/^\\/+/, \"\");\r\n }\r\n } else {\r\n // admin-ajax の既定URL\r\n if (!url) url = \"/wp-admin/admin-ajax.php\";\r\n }\r\n\r\n const fetchOptions = {\r\n method: \"POST\",\r\n credentials: \"same-origin\", // 同一オリジン Cookie\r\n headers: {},\r\n };\r\n\r\n // ノンス抽出(_wpnonce を優先)\r\n const nonce =\r\n data._wpnonce ||\r\n data.nonce ||\r\n (window.wpApiSettings && window.wpApiSettings.nonce);\r\n\r\n if (isRest) {\r\n fetchOptions.headers[\"Content-Type\"] = \"application/json\";\r\n if (nonce) fetchOptions.headers[\"X-WP-Nonce\"] = nonce;\r\n\r\n // nonce系は本文から除く(任意)\r\n const { _wpnonce, nonce: _legacyNonce, ...rest } = data;\r\n fetchOptions.body = JSON.stringify(rest);\r\n } else {\r\n // admin-ajax は URLSearchParams で送る\r\n const form = new URLSearchParams();\r\n Object.entries(data).forEach(([k, v]) => {\r\n if (v !== undefined && v !== null) form.append(k, String(v));\r\n });\r\n // ノンスは _wpnonce に統一\r\n if (nonce && !form.has(\"_wpnonce\")) form.append(\"_wpnonce\", nonce);\r\n fetchOptions.body = form;\r\n }\r\n\r\n const res = await fetch(url, fetchOptions);\r\n\r\n // WP REST はメソッド不一致・ルートなし等でも JSON 返さないことがあるので分岐\r\n const contentType = res.headers.get(\"content-type\") || \"\";\r\n const tryJson = contentType.includes(\"application/json\");\r\n\r\n if (!res.ok) {\r\n let msg = `HTTP ${res.status}`;\r\n if (tryJson) {\r\n try {\r\n const j = await res.json();\r\n msg += j.message ? `: ${j.message}` : \"\";\r\n } catch {}\r\n } else {\r\n const t = await res.text();\r\n if (t) msg += `: ${t.slice(0, 200)}`;\r\n }\r\n throw new Error(msg);\r\n }\r\n\r\n return tryJson ? res.json() : res.text();\r\n}\r\n"],"names":["generateNonce","length","arguments","undefined","characters","nonce","i","charAt","Math","floor","random","generateCodeVerifier","charset","result","generateCodeChallenge","_x","_generateCodeChallenge","apply","_asyncToGenerator","codeVerifier","encoder","TextEncoder","data","encode","digest","crypto","subtle","btoa","String","fromCharCode","Uint8Array","replace","redirectCustomerAuthorize","_x2","_x3","_x4","_x5","_x6","_redirectCustomerAuthorize","shopId","clientId","userMail","callbackUri","redirectUri","statePayload","ts","Date","now","toString","substring","return_url","state","JSON","stringify","codeChallenge","localStorage","setItem","url","URL","concat","searchParams","append","window","location","href","checkCustomerLoginState","_checkCustomerLoginState","token","getItem","checkUrl","postData","itmar_option","sendRegistrationAjax","done","res","console","log","fail","xhr","status","error","alert","responseText","sendRegistrationRequest","_x7","_sendRegistrationRequest","urlOrPath","mode","isRestUrlLike","u","startsWith","isRest","root","wpApiSettings","fetchOptions","method","credentials","headers","_wpnonce","_legacyNonce","rest","_objectWithoutProperties","_excluded","body","form","URLSearchParams","Object","entries","forEach","_ref","k","v","has","fetch","contentType","get","tryJson","includes","ok","msg","j","json","message","_unused","t","text","slice","Error"],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ //URLのバリデーションチェック
2
+ var isValidUrlWithUrlApi = string => {
3
+ try {
4
+ var cleanString = string.replace(/<[^>]+>/g, "");
5
+ new URL(cleanString);
6
+ return true;
7
+ } catch (err) {
8
+ return false;
9
+ }
10
+ };
11
+
12
+ export { isValidUrlWithUrlApi };
13
+ //# sourceMappingURL=validationCheck.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validationCheck.js","sources":["../../src/validationCheck.js"],"sourcesContent":["//URLのバリデーションチェック\r\nexport const isValidUrlWithUrlApi = (string) => {\r\n try {\r\n const cleanString = string.replace(/<[^>]+>/g, \"\");\r\n new URL(cleanString);\r\n return true;\r\n } catch (err) {\r\n return false;\r\n }\r\n};\r\n"],"names":["isValidUrlWithUrlApi","string","cleanString","replace","URL","err"],"mappings":"AAAA;AACO,IAAMA,oBAAoB,GAAIC,MAAM,IAAK;EAC9C,IAAI;IACF,IAAMC,WAAW,GAAGD,MAAM,CAACE,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;IAClD,IAAIC,GAAG,CAACF,WAAW,CAAC;AACpB,IAAA,OAAO,IAAI;EACb,CAAC,CAAC,OAAOG,GAAG,EAAE;AACZ,IAAA,OAAO,KAAK;AACd,EAAA;AACF;;;;"}