react-achievements 4.4.1 → 5.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +5 -73
- package/README.md +51 -44
- package/dist/headless.cjs +300 -12
- package/dist/headless.cjs.map +1 -1
- package/dist/headless.d.ts +109 -17
- package/dist/headless.esm.js +299 -13
- package/dist/headless.esm.js.map +1 -1
- package/dist/index.cjs +348 -65
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +109 -17
- package/dist/index.esm.js +347 -66
- package/dist/index.esm.js.map +1 -1
- package/dist/web.cjs +348 -65
- package/dist/web.cjs.map +1 -1
- package/dist/web.d.ts +109 -17
- package/dist/web.esm.js +347 -66
- package/dist/web.esm.js.map +1 -1
- package/package.json +4 -4
package/dist/headless.esm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"headless.esm.js","sources":["../src/core/types.ts","../src/core/utils/deprecation.ts","../src/providers/AchievementProvider.tsx","../src/hooks/useAchievements.ts","../src/hooks/useAchievementState.ts","../src/hooks/useSimpleAchievements.ts","../src/hooks/useAchievementEngine.ts"],"sourcesContent":[null,null,null,null,null,null,null],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"headless.esm.js","sources":["../src/core/types.ts","../node_modules/tslib/tslib.es6.js","../src/core/utils/deprecation.ts","../src/providers/AchievementProvider.tsx","../src/hooks/useAchievements.ts","../src/hooks/useAchievementState.ts","../src/hooks/useSimpleAchievements.ts","../src/hooks/useAchievementEngine.ts","../src/client/RestAchievementClient.ts"],"sourcesContent":[null,"/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\r\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\r\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nvar ownKeys = function(o) {\r\n ownKeys = Object.getOwnPropertyNames || function (o) {\r\n var ar = [];\r\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\r\n return ar;\r\n };\r\n return ownKeys(o);\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n if (value !== null && value !== void 0) {\r\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n var dispose, inner;\r\n if (async) {\r\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n dispose = value[Symbol.asyncDispose];\r\n }\r\n if (dispose === void 0) {\r\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n dispose = value[Symbol.dispose];\r\n if (async) inner = dispose;\r\n }\r\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\r\n env.stack.push({ value: value, dispose: dispose, async: async });\r\n }\r\n else if (async) {\r\n env.stack.push({ async: true });\r\n }\r\n return value;\r\n\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n function fail(e) {\r\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n env.hasError = true;\r\n }\r\n var r, s = 0;\r\n function next() {\r\n while (r = env.stack.pop()) {\r\n try {\r\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\r\n if (r.dispose) {\r\n var result = r.dispose.call(r.value);\r\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n }\r\n else s |= 1;\r\n }\r\n catch (e) {\r\n fail(e);\r\n }\r\n }\r\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\r\n if (env.hasError) throw env.error;\r\n }\r\n return next();\r\n}\r\n\r\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\r\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\r\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\r\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\r\n });\r\n }\r\n return path;\r\n}\r\n\r\nexport default {\r\n __extends: __extends,\r\n __assign: __assign,\r\n __rest: __rest,\r\n __decorate: __decorate,\r\n __param: __param,\r\n __esDecorate: __esDecorate,\r\n __runInitializers: __runInitializers,\r\n __propKey: __propKey,\r\n __setFunctionName: __setFunctionName,\r\n __metadata: __metadata,\r\n __awaiter: __awaiter,\r\n __generator: __generator,\r\n __createBinding: __createBinding,\r\n __exportStar: __exportStar,\r\n __values: __values,\r\n __read: __read,\r\n __spread: __spread,\r\n __spreadArrays: __spreadArrays,\r\n __spreadArray: __spreadArray,\r\n __await: __await,\r\n __asyncGenerator: __asyncGenerator,\r\n __asyncDelegator: __asyncDelegator,\r\n __asyncValues: __asyncValues,\r\n __makeTemplateObject: __makeTemplateObject,\r\n __importStar: __importStar,\r\n __importDefault: __importDefault,\r\n __classPrivateFieldGet: __classPrivateFieldGet,\r\n __classPrivateFieldSet: __classPrivateFieldSet,\r\n __classPrivateFieldIn: __classPrivateFieldIn,\r\n __addDisposableResource: __addDisposableResource,\r\n __disposeResources: __disposeResources,\r\n __rewriteRelativeImportExtension: __rewriteRelativeImportExtension,\r\n};\r\n",null,null,null,null,null,null,null],"names":[],"mappings":"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","x_google_ignoreList":[1]}
|
package/dist/index.cjs
CHANGED
|
@@ -47,6 +47,16 @@ function __rest(s, e) {
|
|
|
47
47
|
return t;
|
|
48
48
|
}
|
|
49
49
|
|
|
50
|
+
function __awaiter(thisArg, _arguments, P, generator) {
|
|
51
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
52
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
53
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
54
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
55
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
56
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
|
|
50
60
|
typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
|
|
51
61
|
var e = new Error(message);
|
|
52
62
|
return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
|
|
@@ -68,18 +78,74 @@ const AchievementContext = React.createContext(undefined);
|
|
|
68
78
|
const getAllAchievementRecord = (achievements) => {
|
|
69
79
|
return Object.fromEntries(achievements.map((achievement) => [achievement.achievementId, achievement]));
|
|
70
80
|
};
|
|
71
|
-
const
|
|
81
|
+
const emptySnapshot = () => ({
|
|
82
|
+
metrics: {},
|
|
83
|
+
unlockedIds: [],
|
|
84
|
+
unlockedAchievements: [],
|
|
85
|
+
allAchievements: [],
|
|
86
|
+
unlockedCount: 0,
|
|
87
|
+
totalCount: 0,
|
|
88
|
+
});
|
|
89
|
+
const normalizeAchievementDto = (achievement) => {
|
|
90
|
+
const source = achievement;
|
|
91
|
+
const achievementId = source.id || source.achievementId || '';
|
|
92
|
+
const achievementTitle = source.title || source.achievementTitle || achievementId;
|
|
93
|
+
const achievementDescription = source.description || source.achievementDescription || '';
|
|
94
|
+
const achievementIconKey = source.iconKey || source.icon || source.achievementIconKey;
|
|
95
|
+
return {
|
|
96
|
+
achievementId,
|
|
97
|
+
achievementTitle,
|
|
98
|
+
achievementDescription,
|
|
99
|
+
achievementIconKey,
|
|
100
|
+
confetti: source.confetti,
|
|
101
|
+
isUnlocked: Boolean(source.isUnlocked),
|
|
102
|
+
unlockedAt: source.unlockedAt,
|
|
103
|
+
progress: source.progress,
|
|
104
|
+
metadata: source.metadata,
|
|
105
|
+
};
|
|
106
|
+
};
|
|
107
|
+
const normalizeClientSnapshot = (snapshot) => {
|
|
108
|
+
var _a, _b, _c;
|
|
109
|
+
const allAchievements = (snapshot.achievements || []).map(normalizeAchievementDto);
|
|
110
|
+
const unlockedIds = snapshot.unlockedIds ||
|
|
111
|
+
allAchievements
|
|
112
|
+
.filter((achievement) => achievement.isUnlocked)
|
|
113
|
+
.map((achievement) => achievement.achievementId);
|
|
114
|
+
const unlockedIdSet = new Set(unlockedIds);
|
|
115
|
+
const unlockedAchievements = ((_a = snapshot.unlockedAchievements) === null || _a === void 0 ? void 0 : _a.length)
|
|
116
|
+
? snapshot.unlockedAchievements.map(normalizeAchievementDto)
|
|
117
|
+
: allAchievements.filter((achievement) => unlockedIdSet.has(achievement.achievementId));
|
|
118
|
+
return {
|
|
119
|
+
metrics: Object.assign({}, (snapshot.metrics || {})),
|
|
120
|
+
unlockedIds,
|
|
121
|
+
unlockedAchievements,
|
|
122
|
+
allAchievements,
|
|
123
|
+
unlockedCount: (_b = snapshot.unlockedCount) !== null && _b !== void 0 ? _b : unlockedAchievements.length,
|
|
124
|
+
totalCount: (_c = snapshot.totalCount) !== null && _c !== void 0 ? _c : allAchievements.length,
|
|
125
|
+
};
|
|
126
|
+
};
|
|
127
|
+
const toError = (unknownError, fallbackMessage) => (unknownError instanceof Error ? unknownError : new Error(fallbackMessage));
|
|
128
|
+
const AchievementProvider$1 = ({ client, achievements: achievementsConfig, storage = 'local', children, onError, useBuiltInUI, restApiConfig, engine: externalEngine, eventMapping, icons = {}, }) => {
|
|
72
129
|
if (useBuiltInUI !== undefined) {
|
|
73
130
|
warnDeprecation('`useBuiltInUI` is deprecated and is now a no-op because built-in UI is the default. It will be removed in 5.0.');
|
|
74
131
|
}
|
|
132
|
+
if (client && (achievementsConfig || externalEngine)) {
|
|
133
|
+
throw new Error('Cannot provide "client" with "achievements" or "engine" props to AchievementProvider.\n\n' +
|
|
134
|
+
'Use one pattern:\n' +
|
|
135
|
+
'1. Server-backed display: <AchievementProvider client={achievementClient}>\n' +
|
|
136
|
+
'2. Legacy in-browser engine: <AchievementProvider achievements={config}>');
|
|
137
|
+
}
|
|
75
138
|
if (achievementsConfig && externalEngine) {
|
|
76
139
|
throw new Error('Cannot provide both "achievements" and "engine" props to AchievementProvider.\n\n' +
|
|
77
140
|
'Choose one pattern:\n' +
|
|
78
141
|
'1. Direct metric tracking: <AchievementProvider achievements={config}>\n' +
|
|
79
142
|
'2. Event-based tracking: <AchievementProvider engine={myEngine}>');
|
|
80
143
|
}
|
|
81
|
-
const isProviderCreatedEngine = Boolean(achievementsConfig);
|
|
144
|
+
const isProviderCreatedEngine = Boolean(achievementsConfig) && !client;
|
|
82
145
|
const [engine] = React.useState(() => {
|
|
146
|
+
if (client) {
|
|
147
|
+
return undefined;
|
|
148
|
+
}
|
|
83
149
|
if (externalEngine) {
|
|
84
150
|
return externalEngine;
|
|
85
151
|
}
|
|
@@ -96,18 +162,63 @@ const AchievementProvider$1 = ({ achievements: achievementsConfig, storage = 'lo
|
|
|
96
162
|
eventMapping,
|
|
97
163
|
});
|
|
98
164
|
});
|
|
99
|
-
const [achievementSnapshot, setAchievementSnapshot] = React.useState(() => engine.getSnapshot());
|
|
165
|
+
const [achievementSnapshot, setAchievementSnapshot] = React.useState(() => engine ? engine.getSnapshot() : emptySnapshot());
|
|
166
|
+
const [recentlyUnlocked, setRecentlyUnlocked] = React.useState([]);
|
|
167
|
+
const [isLoading, setIsLoading] = React.useState(Boolean(client));
|
|
168
|
+
const [error, setError] = React.useState(null);
|
|
100
169
|
const syncAchievementState = React.useCallback((snapshot) => {
|
|
101
|
-
|
|
170
|
+
if (snapshot) {
|
|
171
|
+
setAchievementSnapshot(snapshot);
|
|
172
|
+
return;
|
|
173
|
+
}
|
|
174
|
+
if (engine) {
|
|
175
|
+
setAchievementSnapshot(engine.getSnapshot());
|
|
176
|
+
}
|
|
102
177
|
}, [engine]);
|
|
178
|
+
const applyClientMutationResult = React.useCallback((result) => {
|
|
179
|
+
setRecentlyUnlocked((result.newlyUnlocked || []).map(normalizeAchievementDto));
|
|
180
|
+
const normalizedSnapshot = normalizeClientSnapshot(result.snapshot);
|
|
181
|
+
setAchievementSnapshot(normalizedSnapshot);
|
|
182
|
+
return result;
|
|
183
|
+
}, []);
|
|
184
|
+
const refresh = React.useCallback(() => __awaiter(void 0, void 0, void 0, function* () {
|
|
185
|
+
if (!client) {
|
|
186
|
+
const snapshot = engine ? engine.getSnapshot() : emptySnapshot();
|
|
187
|
+
setAchievementSnapshot(snapshot);
|
|
188
|
+
return snapshot;
|
|
189
|
+
}
|
|
190
|
+
setIsLoading(true);
|
|
191
|
+
setError(null);
|
|
192
|
+
try {
|
|
193
|
+
const snapshot = normalizeClientSnapshot(yield client.getSnapshot());
|
|
194
|
+
setAchievementSnapshot(snapshot);
|
|
195
|
+
return snapshot;
|
|
196
|
+
}
|
|
197
|
+
catch (unknownError) {
|
|
198
|
+
const nextError = toError(unknownError, 'Failed to load achievements');
|
|
199
|
+
setError(nextError);
|
|
200
|
+
throw nextError;
|
|
201
|
+
}
|
|
202
|
+
finally {
|
|
203
|
+
setIsLoading(false);
|
|
204
|
+
}
|
|
205
|
+
}), [client, engine]);
|
|
206
|
+
const handleClientMutationFailure = React.useCallback((unknownError) => {
|
|
207
|
+
const nextError = toError(unknownError, 'Failed to update achievements');
|
|
208
|
+
setError(nextError);
|
|
209
|
+
throw nextError;
|
|
210
|
+
}, []);
|
|
103
211
|
React.useEffect(() => {
|
|
104
212
|
return () => {
|
|
105
|
-
if (!externalEngine) {
|
|
213
|
+
if (engine && !externalEngine) {
|
|
106
214
|
engine.destroy();
|
|
107
215
|
}
|
|
108
216
|
};
|
|
109
217
|
}, [engine, externalEngine]);
|
|
110
218
|
React.useEffect(() => {
|
|
219
|
+
if (!engine) {
|
|
220
|
+
return;
|
|
221
|
+
}
|
|
111
222
|
let isMounted = true;
|
|
112
223
|
const unsubscribeStateChanged = engine.on('state:changed', (event) => {
|
|
113
224
|
syncAchievementState(event);
|
|
@@ -122,29 +233,84 @@ const AchievementProvider$1 = ({ achievements: achievementsConfig, storage = 'lo
|
|
|
122
233
|
unsubscribeStateChanged();
|
|
123
234
|
};
|
|
124
235
|
}, [engine, syncAchievementState]);
|
|
236
|
+
React.useEffect(() => {
|
|
237
|
+
if (!client) {
|
|
238
|
+
return;
|
|
239
|
+
}
|
|
240
|
+
refresh().catch(() => {
|
|
241
|
+
});
|
|
242
|
+
return () => {
|
|
243
|
+
};
|
|
244
|
+
}, [client, refresh]);
|
|
125
245
|
const update = (newMetrics) => {
|
|
126
|
-
|
|
246
|
+
if (client) {
|
|
247
|
+
setError(null);
|
|
248
|
+
const mutation = client.trackMany
|
|
249
|
+
? client.trackMany(newMetrics)
|
|
250
|
+
: Promise.all(Object.entries(newMetrics).map(([metric, value]) => client.track(metric, value))).then((results) => results[results.length - 1]);
|
|
251
|
+
return mutation.then((result) => {
|
|
252
|
+
if (result) {
|
|
253
|
+
applyClientMutationResult(result);
|
|
254
|
+
}
|
|
255
|
+
return result;
|
|
256
|
+
}).catch(handleClientMutationFailure);
|
|
257
|
+
}
|
|
258
|
+
return engine === null || engine === void 0 ? void 0 : engine.update(newMetrics);
|
|
259
|
+
};
|
|
260
|
+
const increment = (metric, amount = 1) => {
|
|
261
|
+
if (client) {
|
|
262
|
+
setError(null);
|
|
263
|
+
return client.increment(metric, amount)
|
|
264
|
+
.then(applyClientMutationResult)
|
|
265
|
+
.catch(handleClientMutationFailure);
|
|
266
|
+
}
|
|
267
|
+
return engine === null || engine === void 0 ? void 0 : engine.increment(metric, amount);
|
|
268
|
+
};
|
|
269
|
+
const event = (name, payload) => {
|
|
270
|
+
if (client) {
|
|
271
|
+
setError(null);
|
|
272
|
+
return client.event(name, payload)
|
|
273
|
+
.then(applyClientMutationResult)
|
|
274
|
+
.catch(handleClientMutationFailure);
|
|
275
|
+
}
|
|
276
|
+
engine === null || engine === void 0 ? void 0 : engine.emit(name, payload);
|
|
127
277
|
};
|
|
128
278
|
const reset = () => {
|
|
129
|
-
|
|
279
|
+
if (client === null || client === void 0 ? void 0 : client.reset) {
|
|
280
|
+
setError(null);
|
|
281
|
+
return client.reset().then((snapshot) => {
|
|
282
|
+
setRecentlyUnlocked([]);
|
|
283
|
+
setAchievementSnapshot(normalizeClientSnapshot(snapshot));
|
|
284
|
+
}).catch(handleClientMutationFailure);
|
|
285
|
+
}
|
|
286
|
+
if (client) {
|
|
287
|
+
return refresh().then(() => undefined);
|
|
288
|
+
}
|
|
289
|
+
engine === null || engine === void 0 ? void 0 : engine.reset();
|
|
130
290
|
};
|
|
131
291
|
const getState = () => {
|
|
132
|
-
const snapshot = engine.getSnapshot();
|
|
292
|
+
const snapshot = engine ? engine.getSnapshot() : achievementSnapshot;
|
|
133
293
|
return {
|
|
134
294
|
metrics: snapshot.metrics,
|
|
135
295
|
unlocked: snapshot.unlockedIds,
|
|
136
296
|
};
|
|
137
297
|
};
|
|
138
298
|
const exportData = () => {
|
|
139
|
-
return engine.export();
|
|
299
|
+
return engine ? engine.export() : JSON.stringify(achievementSnapshot);
|
|
140
300
|
};
|
|
141
301
|
const importData = (jsonString, options) => {
|
|
302
|
+
if (!engine) {
|
|
303
|
+
return {
|
|
304
|
+
success: false,
|
|
305
|
+
errors: ['importData is not supported by remote achievement clients. Import on the server instead.'],
|
|
306
|
+
};
|
|
307
|
+
}
|
|
142
308
|
const result = engine.import(jsonString, options);
|
|
143
309
|
syncAchievementState();
|
|
144
310
|
return result;
|
|
145
311
|
};
|
|
146
312
|
const getAllAchievements = () => {
|
|
147
|
-
return engine.getSnapshot().allAchievements;
|
|
313
|
+
return engine ? engine.getSnapshot().allAchievements : achievementSnapshot.allAchievements;
|
|
148
314
|
};
|
|
149
315
|
const achievements = {
|
|
150
316
|
unlocked: achievementSnapshot.unlockedIds,
|
|
@@ -152,6 +318,9 @@ const AchievementProvider$1 = ({ achievements: achievementsConfig, storage = 'lo
|
|
|
152
318
|
};
|
|
153
319
|
return (React.createElement(AchievementContext.Provider, { value: {
|
|
154
320
|
update,
|
|
321
|
+
increment,
|
|
322
|
+
event,
|
|
323
|
+
refresh,
|
|
155
324
|
achievements,
|
|
156
325
|
snapshot: achievementSnapshot,
|
|
157
326
|
reset,
|
|
@@ -160,27 +329,21 @@ const AchievementProvider$1 = ({ achievements: achievementsConfig, storage = 'lo
|
|
|
160
329
|
importData,
|
|
161
330
|
getAllAchievements,
|
|
162
331
|
engine,
|
|
332
|
+
client,
|
|
163
333
|
icons,
|
|
334
|
+
recentlyUnlocked,
|
|
335
|
+
isLoading,
|
|
336
|
+
error,
|
|
164
337
|
_isLegacyPattern: isProviderCreatedEngine,
|
|
165
338
|
} }, children));
|
|
166
339
|
};
|
|
167
340
|
|
|
168
|
-
|
|
169
|
-
* Access the active AchievementEngine instance.
|
|
170
|
-
*
|
|
171
|
-
* In v4 this works with both provider-created engines (`achievements` prop) and
|
|
172
|
-
* injected engines (`engine` prop).
|
|
173
|
-
*/
|
|
174
|
-
const useAchievementEngine = () => {
|
|
341
|
+
const useAchievements = () => {
|
|
175
342
|
const context = React.useContext(AchievementContext);
|
|
176
343
|
if (!context) {
|
|
177
|
-
throw new Error('
|
|
178
|
-
'Wrap your component tree:\n' +
|
|
179
|
-
'<AchievementProvider achievements={achievements}>\n' +
|
|
180
|
-
' <YourComponent />\n' +
|
|
181
|
-
'</AchievementProvider>');
|
|
344
|
+
throw new Error('useAchievements must be used within an AchievementProvider');
|
|
182
345
|
}
|
|
183
|
-
return context
|
|
346
|
+
return context;
|
|
184
347
|
};
|
|
185
348
|
|
|
186
349
|
/**
|
|
@@ -558,8 +721,9 @@ const AchievementUIContext = React.createContext({
|
|
|
558
721
|
});
|
|
559
722
|
const AchievementEffects = ({ icons, ui, achievementConfetti }) => {
|
|
560
723
|
var _a, _b;
|
|
561
|
-
const
|
|
562
|
-
const
|
|
724
|
+
const achievementContext = useAchievements();
|
|
725
|
+
const engine = achievementContext.engine;
|
|
726
|
+
const seenAchievementsRef = React.useRef(new Set(achievementContext.snapshot.unlockedIds));
|
|
563
727
|
const confettiTimerRef = React.useRef(null);
|
|
564
728
|
const achievementConfettiRef = React.useRef(achievementConfetti);
|
|
565
729
|
const [showConfetti, setShowConfetti] = React.useState(false);
|
|
@@ -588,42 +752,47 @@ const AchievementEffects = ({ icons, ui, achievementConfetti }) => {
|
|
|
588
752
|
setActiveConfettiConfig(null);
|
|
589
753
|
}
|
|
590
754
|
}, [ui.enableConfetti]);
|
|
755
|
+
const showUnlockedAchievement = React.useCallback((unlockedAchievement) => {
|
|
756
|
+
var _a, _b;
|
|
757
|
+
if (seenAchievementsRef.current.has(unlockedAchievement.achievementId)) {
|
|
758
|
+
return;
|
|
759
|
+
}
|
|
760
|
+
seenAchievementsRef.current.add(unlockedAchievement.achievementId);
|
|
761
|
+
if (ui.enableNotifications !== false) {
|
|
762
|
+
setNotifications((currentNotifications) => {
|
|
763
|
+
if (currentNotifications.some((notification) => notification.achievementId === unlockedAchievement.achievementId)) {
|
|
764
|
+
return currentNotifications;
|
|
765
|
+
}
|
|
766
|
+
return [...currentNotifications, unlockedAchievement];
|
|
767
|
+
});
|
|
768
|
+
}
|
|
769
|
+
const rewardConfetti = (_a = unlockedAchievement.confetti) !== null && _a !== void 0 ? _a : achievementConfettiRef.current.get(unlockedAchievement.achievementId);
|
|
770
|
+
if (ui.enableConfetti !== false && rewardConfetti !== false) {
|
|
771
|
+
if (confettiTimerRef.current) {
|
|
772
|
+
clearTimeout(confettiTimerRef.current);
|
|
773
|
+
}
|
|
774
|
+
const resolvedConfettiConfig = Object.assign(Object.assign({}, globalConfettiConfigRef.current), (rewardConfetti || {}));
|
|
775
|
+
const resolvedConfettiDuration = (_b = resolvedConfettiConfig.duration) !== null && _b !== void 0 ? _b : CONFETTI_DURATION_MS;
|
|
776
|
+
setActiveConfettiConfig(resolvedConfettiConfig);
|
|
777
|
+
setShowConfetti(true);
|
|
778
|
+
confettiTimerRef.current = setTimeout(() => {
|
|
779
|
+
setShowConfetti(false);
|
|
780
|
+
confettiTimerRef.current = null;
|
|
781
|
+
}, resolvedConfettiDuration);
|
|
782
|
+
}
|
|
783
|
+
}, [ui.enableConfetti, ui.enableNotifications]);
|
|
591
784
|
React.useEffect(() => {
|
|
785
|
+
if (!engine) {
|
|
786
|
+
return;
|
|
787
|
+
}
|
|
592
788
|
const unsubscribeUnlocked = engine.on('achievement:unlocked', (event) => {
|
|
593
|
-
|
|
594
|
-
if (seenAchievementsRef.current.has(event.achievementId)) {
|
|
595
|
-
return;
|
|
596
|
-
}
|
|
597
|
-
seenAchievementsRef.current.add(event.achievementId);
|
|
598
|
-
const unlockedAchievement = {
|
|
789
|
+
showUnlockedAchievement({
|
|
599
790
|
achievementId: event.achievementId,
|
|
600
791
|
achievementTitle: event.achievementTitle,
|
|
601
792
|
achievementDescription: event.achievementDescription,
|
|
602
793
|
achievementIconKey: event.achievementIconKey,
|
|
603
794
|
isUnlocked: true,
|
|
604
|
-
};
|
|
605
|
-
if (ui.enableNotifications !== false) {
|
|
606
|
-
setNotifications((currentNotifications) => {
|
|
607
|
-
if (currentNotifications.some((notification) => notification.achievementId === unlockedAchievement.achievementId)) {
|
|
608
|
-
return currentNotifications;
|
|
609
|
-
}
|
|
610
|
-
return [...currentNotifications, unlockedAchievement];
|
|
611
|
-
});
|
|
612
|
-
}
|
|
613
|
-
const rewardConfetti = achievementConfettiRef.current.get(event.achievementId);
|
|
614
|
-
if (ui.enableConfetti !== false && rewardConfetti !== false) {
|
|
615
|
-
if (confettiTimerRef.current) {
|
|
616
|
-
clearTimeout(confettiTimerRef.current);
|
|
617
|
-
}
|
|
618
|
-
const resolvedConfettiConfig = Object.assign(Object.assign({}, globalConfettiConfigRef.current), (rewardConfetti || {}));
|
|
619
|
-
const resolvedConfettiDuration = (_a = resolvedConfettiConfig.duration) !== null && _a !== void 0 ? _a : CONFETTI_DURATION_MS;
|
|
620
|
-
setActiveConfettiConfig(resolvedConfettiConfig);
|
|
621
|
-
setShowConfetti(true);
|
|
622
|
-
confettiTimerRef.current = setTimeout(() => {
|
|
623
|
-
setShowConfetti(false);
|
|
624
|
-
confettiTimerRef.current = null;
|
|
625
|
-
}, resolvedConfettiDuration);
|
|
626
|
-
}
|
|
795
|
+
});
|
|
627
796
|
});
|
|
628
797
|
const unsubscribeStateChanged = engine.on('state:changed', () => {
|
|
629
798
|
const unlocked = new Set(engine.getUnlocked());
|
|
@@ -640,7 +809,18 @@ const AchievementEffects = ({ icons, ui, achievementConfetti }) => {
|
|
|
640
809
|
clearTimeout(confettiTimerRef.current);
|
|
641
810
|
}
|
|
642
811
|
};
|
|
643
|
-
}, [engine,
|
|
812
|
+
}, [engine, showUnlockedAchievement]);
|
|
813
|
+
React.useEffect(() => {
|
|
814
|
+
achievementContext.recentlyUnlocked.forEach(showUnlockedAchievement);
|
|
815
|
+
}, [achievementContext.recentlyUnlocked, showUnlockedAchievement]);
|
|
816
|
+
React.useEffect(() => {
|
|
817
|
+
const unlocked = new Set(achievementContext.snapshot.unlockedIds);
|
|
818
|
+
seenAchievementsRef.current.forEach((achievementId) => {
|
|
819
|
+
if (!unlocked.has(achievementId)) {
|
|
820
|
+
seenAchievementsRef.current.delete(achievementId);
|
|
821
|
+
}
|
|
822
|
+
});
|
|
823
|
+
}, [achievementContext.snapshot.unlockedIds]);
|
|
644
824
|
const NotificationComponent = ui.NotificationComponent || BuiltInNotification;
|
|
645
825
|
const ConfettiComponentResolved = ui.ConfettiComponent || BuiltInConfetti;
|
|
646
826
|
return (React.createElement(React.Fragment, null,
|
|
@@ -661,14 +841,6 @@ const AchievementProvider = (_a) => {
|
|
|
661
841
|
React.createElement(AchievementEffects, { achievementConfetti: confettiByAchievementId, icons: icons, ui: ui }))));
|
|
662
842
|
};
|
|
663
843
|
|
|
664
|
-
const useAchievements = () => {
|
|
665
|
-
const context = React.useContext(AchievementContext);
|
|
666
|
-
if (!context) {
|
|
667
|
-
throw new Error('useAchievements must be used within an AchievementProvider');
|
|
668
|
-
}
|
|
669
|
-
return context;
|
|
670
|
-
};
|
|
671
|
-
|
|
672
844
|
const useAchievementState = () => {
|
|
673
845
|
const { snapshot } = useAchievements();
|
|
674
846
|
return {
|
|
@@ -1188,11 +1360,11 @@ const LevelProgress = ({ level, currentXP, nextLevelXP, label = 'Level', valueLa
|
|
|
1188
1360
|
* Provides the v4 happy path for direct metric updates plus explicit state names.
|
|
1189
1361
|
*/
|
|
1190
1362
|
const useSimpleAchievements = () => {
|
|
1191
|
-
const { update, reset, getState, exportData, importData,
|
|
1363
|
+
const { update, increment: incrementMetric, event, refresh, reset, getState, exportData, importData, isLoading, error, } = useAchievements();
|
|
1192
1364
|
const achievementState = useAchievementState();
|
|
1193
1365
|
const track = (metric, value) => update({ [metric]: value });
|
|
1194
1366
|
const increment = (metric, amount = 1) => {
|
|
1195
|
-
return
|
|
1367
|
+
return incrementMetric(metric, amount);
|
|
1196
1368
|
};
|
|
1197
1369
|
const trackMultiple = (metrics) => update(metrics);
|
|
1198
1370
|
return {
|
|
@@ -1205,6 +1377,11 @@ const useSimpleAchievements = () => {
|
|
|
1205
1377
|
unlockedCount: achievementState.unlockedCount,
|
|
1206
1378
|
totalCount: achievementState.totalCount,
|
|
1207
1379
|
metrics: achievementState.metrics,
|
|
1380
|
+
isLoading,
|
|
1381
|
+
error,
|
|
1382
|
+
event,
|
|
1383
|
+
emit: event,
|
|
1384
|
+
refresh,
|
|
1208
1385
|
reset,
|
|
1209
1386
|
getState,
|
|
1210
1387
|
exportData,
|
|
@@ -1221,6 +1398,110 @@ const useSimpleAchievements = () => {
|
|
|
1221
1398
|
};
|
|
1222
1399
|
};
|
|
1223
1400
|
|
|
1401
|
+
/**
|
|
1402
|
+
* Access the active AchievementEngine instance.
|
|
1403
|
+
*
|
|
1404
|
+
* In v4 this works with both provider-created engines (`achievements` prop) and
|
|
1405
|
+
* injected engines (`engine` prop).
|
|
1406
|
+
*/
|
|
1407
|
+
const useAchievementEngine = () => {
|
|
1408
|
+
const context = React.useContext(AchievementContext);
|
|
1409
|
+
if (!context) {
|
|
1410
|
+
throw new Error('useAchievementEngine must be used within an AchievementProvider.\n\n' +
|
|
1411
|
+
'Wrap your component tree:\n' +
|
|
1412
|
+
'<AchievementProvider achievements={achievements}>\n' +
|
|
1413
|
+
' <YourComponent />\n' +
|
|
1414
|
+
'</AchievementProvider>');
|
|
1415
|
+
}
|
|
1416
|
+
if (!context.engine) {
|
|
1417
|
+
throw new Error('useAchievementEngine is only available when AchievementProvider is using the legacy in-browser engine. ' +
|
|
1418
|
+
'For server-backed achievements, use useSimpleAchievements().event(), track(), or increment().');
|
|
1419
|
+
}
|
|
1420
|
+
return context.engine;
|
|
1421
|
+
};
|
|
1422
|
+
|
|
1423
|
+
const trimTrailingSlash = (value) => value.replace(/\/$/, '');
|
|
1424
|
+
class RestAchievementClient {
|
|
1425
|
+
constructor(config) {
|
|
1426
|
+
this.baseUrl = trimTrailingSlash(config.baseUrl);
|
|
1427
|
+
this.fetcher = config.fetcher || fetch.bind(globalThis);
|
|
1428
|
+
this.headers = config.headers;
|
|
1429
|
+
this.credentials = config.credentials;
|
|
1430
|
+
this.timeout = config.timeout;
|
|
1431
|
+
}
|
|
1432
|
+
getSnapshot() {
|
|
1433
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1434
|
+
return this.request('', { method: 'GET' });
|
|
1435
|
+
});
|
|
1436
|
+
}
|
|
1437
|
+
track(metric, value) {
|
|
1438
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1439
|
+
return this.request('/track', {
|
|
1440
|
+
method: 'POST',
|
|
1441
|
+
body: JSON.stringify({ metric, value }),
|
|
1442
|
+
});
|
|
1443
|
+
});
|
|
1444
|
+
}
|
|
1445
|
+
trackMany(metrics) {
|
|
1446
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1447
|
+
return this.request('/track', {
|
|
1448
|
+
method: 'POST',
|
|
1449
|
+
body: JSON.stringify({ metrics }),
|
|
1450
|
+
});
|
|
1451
|
+
});
|
|
1452
|
+
}
|
|
1453
|
+
increment(metric_1) {
|
|
1454
|
+
return __awaiter(this, arguments, void 0, function* (metric, amount = 1) {
|
|
1455
|
+
return this.request('/increment', {
|
|
1456
|
+
method: 'POST',
|
|
1457
|
+
body: JSON.stringify({ metric, amount }),
|
|
1458
|
+
});
|
|
1459
|
+
});
|
|
1460
|
+
}
|
|
1461
|
+
event(name, payload) {
|
|
1462
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1463
|
+
return this.request('/event', {
|
|
1464
|
+
method: 'POST',
|
|
1465
|
+
body: JSON.stringify({ name, payload }),
|
|
1466
|
+
});
|
|
1467
|
+
});
|
|
1468
|
+
}
|
|
1469
|
+
reset() {
|
|
1470
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1471
|
+
return this.request('/reset', { method: 'POST' });
|
|
1472
|
+
});
|
|
1473
|
+
}
|
|
1474
|
+
request(path, init) {
|
|
1475
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1476
|
+
const controller = this.timeout ? new AbortController() : undefined;
|
|
1477
|
+
const timeoutId = controller
|
|
1478
|
+
? setTimeout(() => controller.abort(), this.timeout)
|
|
1479
|
+
: undefined;
|
|
1480
|
+
try {
|
|
1481
|
+
const response = yield this.fetcher(`${this.baseUrl}${path}`, Object.assign(Object.assign({}, init), { credentials: this.credentials, headers: Object.assign(Object.assign({ 'Content-Type': 'application/json' }, (yield this.resolveHeaders())), init.headers), signal: controller === null || controller === void 0 ? void 0 : controller.signal }));
|
|
1482
|
+
if (!response.ok) {
|
|
1483
|
+
throw new Error(`Achievement request failed: HTTP ${response.status}`);
|
|
1484
|
+
}
|
|
1485
|
+
return yield response.json();
|
|
1486
|
+
}
|
|
1487
|
+
finally {
|
|
1488
|
+
if (timeoutId) {
|
|
1489
|
+
clearTimeout(timeoutId);
|
|
1490
|
+
}
|
|
1491
|
+
}
|
|
1492
|
+
});
|
|
1493
|
+
}
|
|
1494
|
+
resolveHeaders() {
|
|
1495
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1496
|
+
if (!this.headers) {
|
|
1497
|
+
return {};
|
|
1498
|
+
}
|
|
1499
|
+
return typeof this.headers === 'function' ? this.headers() : this.headers;
|
|
1500
|
+
});
|
|
1501
|
+
}
|
|
1502
|
+
}
|
|
1503
|
+
const createRestAchievementClient = (config) => new RestAchievementClient(config);
|
|
1504
|
+
|
|
1224
1505
|
/**
|
|
1225
1506
|
* Built-in modal component
|
|
1226
1507
|
* Modern, theme-aware achievement modal with smooth animations
|
|
@@ -1576,6 +1857,8 @@ exports.BuiltInNotification = BuiltInNotification;
|
|
|
1576
1857
|
exports.ConfettiWrapper = ConfettiWrapper;
|
|
1577
1858
|
exports.HeadlessAchievementProvider = AchievementProvider$1;
|
|
1578
1859
|
exports.LevelProgress = LevelProgress;
|
|
1860
|
+
exports.RestAchievementClient = RestAchievementClient;
|
|
1861
|
+
exports.createRestAchievementClient = createRestAchievementClient;
|
|
1579
1862
|
exports.defaultAchievementIcons = defaultAchievementIcons;
|
|
1580
1863
|
exports.defaultStyles = defaultStyles;
|
|
1581
1864
|
exports.isAsyncStorage = isAsyncStorage;
|