@slicemachine/plugin-kit 0.4.76-beta.3 → 0.4.77-alpha.aa-svelte-4-and-5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/dist/_node_modules/p-limit/index.cjs.map +1 -1
  2. package/dist/_node_modules/p-limit/index.js.map +1 -1
  3. package/dist/_node_modules/pascal-case/dist.es2015/index.cjs +1 -1
  4. package/dist/_node_modules/pascal-case/dist.es2015/index.js +1 -1
  5. package/dist/_node_modules/tslib/tslib.es6.cjs.map +1 -0
  6. package/dist/_node_modules/tslib/tslib.es6.js.map +1 -0
  7. package/dist/createSliceMachineActions.cjs.map +1 -1
  8. package/dist/createSliceMachineActions.js.map +1 -1
  9. package/dist/createSliceMachineHelpers.cjs.map +1 -1
  10. package/dist/createSliceMachineHelpers.js.map +1 -1
  11. package/dist/createSliceMachinePluginRunner.cjs.map +1 -1
  12. package/dist/createSliceMachinePluginRunner.js.map +1 -1
  13. package/dist/fs/lib/checkPathExists.cjs.map +1 -1
  14. package/dist/fs/lib/checkPathExists.js.map +1 -1
  15. package/dist/fs/readCustomTypeFile.d.ts +1 -0
  16. package/dist/fs/readCustomTypeLibrary.cjs.map +1 -1
  17. package/dist/fs/readCustomTypeLibrary.js.map +1 -1
  18. package/dist/fs/readProjectFile.d.ts +1 -0
  19. package/dist/fs/readSliceFile.d.ts +1 -0
  20. package/dist/fs/readSliceLibrary.cjs.map +1 -1
  21. package/dist/fs/readSliceLibrary.js.map +1 -1
  22. package/dist/fs/readSliceModel.cjs.map +1 -1
  23. package/dist/fs/readSliceModel.js.map +1 -1
  24. package/dist/fs/upsertGlobalTypeScriptTypes.cjs.map +1 -1
  25. package/dist/fs/upsertGlobalTypeScriptTypes.js.map +1 -1
  26. package/dist/fs/writeProjectEnvironment.cjs.map +1 -1
  27. package/dist/fs/writeProjectEnvironment.js.map +1 -1
  28. package/dist/hooks/customType-asset-read.d.ts +1 -0
  29. package/dist/hooks/customType-asset-update.d.ts +1 -0
  30. package/dist/hooks/customType-update.d.ts +14 -0
  31. package/dist/hooks/slice-asset-read.d.ts +1 -0
  32. package/dist/hooks/slice-asset-update.d.ts +1 -0
  33. package/dist/hooks/sliceTemplateLibrary-read.d.ts +1 -0
  34. package/dist/lib/HookSystem.cjs.map +1 -1
  35. package/dist/lib/HookSystem.js.map +1 -1
  36. package/package.json +4 -4
  37. package/src/hooks/customType-update.ts +14 -0
  38. package/dist/_node_modules/pascal-case/_node_modules/tslib/tslib.es6.cjs.map +0 -1
  39. package/dist/_node_modules/pascal-case/_node_modules/tslib/tslib.es6.js.map +0 -1
  40. /package/dist/_node_modules/{pascal-case/_node_modules/tslib → tslib}/tslib.es6.cjs +0 -0
  41. /package/dist/_node_modules/{pascal-case/_node_modules/tslib → tslib}/tslib.es6.js +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../../../../../node_modules/p-limit/index.js"],"sourcesContent":["import Queue from 'yocto-queue';\n\nexport default function pLimit(concurrency) {\n\tif (!((Number.isInteger(concurrency) || concurrency === Number.POSITIVE_INFINITY) && concurrency > 0)) {\n\t\tthrow new TypeError('Expected `concurrency` to be a number from 1 and up');\n\t}\n\n\tconst queue = new Queue();\n\tlet activeCount = 0;\n\n\tconst next = () => {\n\t\tactiveCount--;\n\n\t\tif (queue.size > 0) {\n\t\t\tqueue.dequeue()();\n\t\t}\n\t};\n\n\tconst run = async (fn, resolve, args) => {\n\t\tactiveCount++;\n\n\t\tconst result = (async () => fn(...args))();\n\n\t\tresolve(result);\n\n\t\ttry {\n\t\t\tawait result;\n\t\t} catch {}\n\n\t\tnext();\n\t};\n\n\tconst enqueue = (fn, resolve, args) => {\n\t\tqueue.enqueue(run.bind(undefined, fn, resolve, args));\n\n\t\t(async () => {\n\t\t\t// This function needs to wait until the next microtask before comparing\n\t\t\t// `activeCount` to `concurrency`, because `activeCount` is updated asynchronously\n\t\t\t// when the run function is dequeued and called. The comparison in the if-statement\n\t\t\t// needs to happen asynchronously as well to get an up-to-date value for `activeCount`.\n\t\t\tawait Promise.resolve();\n\n\t\t\tif (activeCount < concurrency && queue.size > 0) {\n\t\t\t\tqueue.dequeue()();\n\t\t\t}\n\t\t})();\n\t};\n\n\tconst generator = (fn, ...args) => new Promise(resolve => {\n\t\tenqueue(fn, resolve, args);\n\t});\n\n\tObject.defineProperties(generator, {\n\t\tactiveCount: {\n\t\t\tget: () => activeCount,\n\t\t},\n\t\tpendingCount: {\n\t\t\tget: () => queue.size,\n\t\t},\n\t\tclearQueue: {\n\t\t\tvalue: () => {\n\t\t\t\tqueue.clear();\n\t\t\t},\n\t\t},\n\t});\n\n\treturn generator;\n}\n"],"names":["Queue"],"mappings":";;AAEe,SAAS,OAAO,aAAa;AAC3C,MAAI,GAAG,OAAO,UAAU,WAAW,KAAK,gBAAgB,OAAO,sBAAsB,cAAc,IAAI;AACtG,UAAM,IAAI,UAAU,qDAAqD;AAAA,EACzE;AAED,QAAM,QAAQ,IAAIA;AAClB,MAAI,cAAc;AAElB,QAAM,OAAO,MAAM;AAClB;AAEA,QAAI,MAAM,OAAO,GAAG;AACnB,YAAM,QAAO;IACb;AAAA,EACH;AAEC,QAAM,MAAM,OAAO,IAAI,SAAS,SAAS;AACxC;AAEA,UAAM,UAAU,YAAY,GAAG,GAAG,IAAI,GAAC;AAEvC,YAAQ,MAAM;AAEd,QAAI;AACH,YAAM;AAAA,IACN,QAAC;AAAA,IAAQ;AAEV;EACF;AAEC,QAAM,UAAU,CAAC,IAAI,SAAS,SAAS;AACtC,UAAM,QAAQ,IAAI,KAAK,QAAW,IAAI,SAAS,IAAI,CAAC;AAEpD,KAAC,YAAY;AAKZ,YAAM,QAAQ;AAEd,UAAI,cAAc,eAAe,MAAM,OAAO,GAAG;AAChD,cAAM,QAAO;MACb;AAAA,IACJ;EACA;AAEC,QAAM,YAAY,CAAC,OAAO,SAAS,IAAI,QAAQ,aAAW;AACzD,YAAQ,IAAI,SAAS,IAAI;AAAA,EAC3B,CAAE;AAED,SAAO,iBAAiB,WAAW;AAAA,IAClC,aAAa;AAAA,MACZ,KAAK,MAAM;AAAA,IACX;AAAA,IACD,cAAc;AAAA,MACb,KAAK,MAAM,MAAM;AAAA,IACjB;AAAA,IACD,YAAY;AAAA,MACX,OAAO,MAAM;AACZ,cAAM,MAAK;AAAA,MACX;AAAA,IACD;AAAA,EACH,CAAE;AAED,SAAO;AACR;;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index.cjs","sources":["../../../../../node_modules/p-limit/index.js"],"sourcesContent":["import Queue from 'yocto-queue';\n\nexport default function pLimit(concurrency) {\n\tif (!((Number.isInteger(concurrency) || concurrency === Number.POSITIVE_INFINITY) && concurrency > 0)) {\n\t\tthrow new TypeError('Expected `concurrency` to be a number from 1 and up');\n\t}\n\n\tconst queue = new Queue();\n\tlet activeCount = 0;\n\n\tconst next = () => {\n\t\tactiveCount--;\n\n\t\tif (queue.size > 0) {\n\t\t\tqueue.dequeue()();\n\t\t}\n\t};\n\n\tconst run = async (fn, resolve, args) => {\n\t\tactiveCount++;\n\n\t\tconst result = (async () => fn(...args))();\n\n\t\tresolve(result);\n\n\t\ttry {\n\t\t\tawait result;\n\t\t} catch {}\n\n\t\tnext();\n\t};\n\n\tconst enqueue = (fn, resolve, args) => {\n\t\tqueue.enqueue(run.bind(undefined, fn, resolve, args));\n\n\t\t(async () => {\n\t\t\t// This function needs to wait until the next microtask before comparing\n\t\t\t// `activeCount` to `concurrency`, because `activeCount` is updated asynchronously\n\t\t\t// when the run function is dequeued and called. The comparison in the if-statement\n\t\t\t// needs to happen asynchronously as well to get an up-to-date value for `activeCount`.\n\t\t\tawait Promise.resolve();\n\n\t\t\tif (activeCount < concurrency && queue.size > 0) {\n\t\t\t\tqueue.dequeue()();\n\t\t\t}\n\t\t})();\n\t};\n\n\tconst generator = (fn, ...args) => new Promise(resolve => {\n\t\tenqueue(fn, resolve, args);\n\t});\n\n\tObject.defineProperties(generator, {\n\t\tactiveCount: {\n\t\t\tget: () => activeCount,\n\t\t},\n\t\tpendingCount: {\n\t\t\tget: () => queue.size,\n\t\t},\n\t\tclearQueue: {\n\t\t\tvalue: () => {\n\t\t\t\tqueue.clear();\n\t\t\t},\n\t\t},\n\t});\n\n\treturn generator;\n}\n"],"names":["Queue"],"mappings":";;AAEe,SAAS,OAAO,aAAa;AAC3C,MAAI,GAAG,OAAO,UAAU,WAAW,KAAK,gBAAgB,OAAO,sBAAsB,cAAc,IAAI;AACtG,UAAM,IAAI,UAAU,qDAAqD;AAAA,EACzE;AAED,QAAM,QAAQ,IAAIA;AAClB,MAAI,cAAc;AAElB,QAAM,OAAO,MAAM;AAClB;AAEA,QAAI,MAAM,OAAO,GAAG;AACnB,YAAM,QAAO;IACb;AAAA,EACH;AAEC,QAAM,MAAM,OAAO,IAAI,SAAS,SAAS;AACxC;AAEA,UAAM,UAAU,YAAY,GAAG,GAAG,IAAI,GAAC;AAEvC,YAAQ,MAAM;AAEd,QAAI;AACH,YAAM;AAAA,IACN,QAAO;AAAA,IAAE;AAEV;EACF;AAEC,QAAM,UAAU,CAAC,IAAI,SAAS,SAAS;AACtC,UAAM,QAAQ,IAAI,KAAK,QAAW,IAAI,SAAS,IAAI,CAAC;AAEpD,KAAC,YAAY;AAKZ,YAAM,QAAQ;AAEd,UAAI,cAAc,eAAe,MAAM,OAAO,GAAG;AAChD,cAAM,QAAO;MACb;AAAA,IACJ;EACA;AAEC,QAAM,YAAY,CAAC,OAAO,SAAS,IAAI,QAAQ,aAAW;AACzD,YAAQ,IAAI,SAAS,IAAI;AAAA,EAC3B,CAAE;AAED,SAAO,iBAAiB,WAAW;AAAA,IAClC,aAAa;AAAA,MACZ,KAAK,MAAM;AAAA,IACX;AAAA,IACD,cAAc;AAAA,MACb,KAAK,MAAM,MAAM;AAAA,IACjB;AAAA,IACD,YAAY;AAAA,MACX,OAAO,MAAM;AACZ,cAAM,MAAK;AAAA,MACX;AAAA,IACD;AAAA,EACH,CAAE;AAED,SAAO;AACR;;","x_google_ignoreList":[0]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../node_modules/p-limit/index.js"],"sourcesContent":["import Queue from 'yocto-queue';\n\nexport default function pLimit(concurrency) {\n\tif (!((Number.isInteger(concurrency) || concurrency === Number.POSITIVE_INFINITY) && concurrency > 0)) {\n\t\tthrow new TypeError('Expected `concurrency` to be a number from 1 and up');\n\t}\n\n\tconst queue = new Queue();\n\tlet activeCount = 0;\n\n\tconst next = () => {\n\t\tactiveCount--;\n\n\t\tif (queue.size > 0) {\n\t\t\tqueue.dequeue()();\n\t\t}\n\t};\n\n\tconst run = async (fn, resolve, args) => {\n\t\tactiveCount++;\n\n\t\tconst result = (async () => fn(...args))();\n\n\t\tresolve(result);\n\n\t\ttry {\n\t\t\tawait result;\n\t\t} catch {}\n\n\t\tnext();\n\t};\n\n\tconst enqueue = (fn, resolve, args) => {\n\t\tqueue.enqueue(run.bind(undefined, fn, resolve, args));\n\n\t\t(async () => {\n\t\t\t// This function needs to wait until the next microtask before comparing\n\t\t\t// `activeCount` to `concurrency`, because `activeCount` is updated asynchronously\n\t\t\t// when the run function is dequeued and called. The comparison in the if-statement\n\t\t\t// needs to happen asynchronously as well to get an up-to-date value for `activeCount`.\n\t\t\tawait Promise.resolve();\n\n\t\t\tif (activeCount < concurrency && queue.size > 0) {\n\t\t\t\tqueue.dequeue()();\n\t\t\t}\n\t\t})();\n\t};\n\n\tconst generator = (fn, ...args) => new Promise(resolve => {\n\t\tenqueue(fn, resolve, args);\n\t});\n\n\tObject.defineProperties(generator, {\n\t\tactiveCount: {\n\t\t\tget: () => activeCount,\n\t\t},\n\t\tpendingCount: {\n\t\t\tget: () => queue.size,\n\t\t},\n\t\tclearQueue: {\n\t\t\tvalue: () => {\n\t\t\t\tqueue.clear();\n\t\t\t},\n\t\t},\n\t});\n\n\treturn generator;\n}\n"],"names":[],"mappings":";AAEe,SAAS,OAAO,aAAa;AAC3C,MAAI,GAAG,OAAO,UAAU,WAAW,KAAK,gBAAgB,OAAO,sBAAsB,cAAc,IAAI;AACtG,UAAM,IAAI,UAAU,qDAAqD;AAAA,EACzE;AAED,QAAM,QAAQ,IAAI;AAClB,MAAI,cAAc;AAElB,QAAM,OAAO,MAAM;AAClB;AAEA,QAAI,MAAM,OAAO,GAAG;AACnB,YAAM,QAAO;IACb;AAAA,EACH;AAEC,QAAM,MAAM,OAAO,IAAI,SAAS,SAAS;AACxC;AAEA,UAAM,UAAU,YAAY,GAAG,GAAG,IAAI,GAAC;AAEvC,YAAQ,MAAM;AAEd,QAAI;AACH,YAAM;AAAA,IACN,QAAC;AAAA,IAAQ;AAEV;EACF;AAEC,QAAM,UAAU,CAAC,IAAI,SAAS,SAAS;AACtC,UAAM,QAAQ,IAAI,KAAK,QAAW,IAAI,SAAS,IAAI,CAAC;AAEpD,KAAC,YAAY;AAKZ,YAAM,QAAQ;AAEd,UAAI,cAAc,eAAe,MAAM,OAAO,GAAG;AAChD,cAAM,QAAO;MACb;AAAA,IACJ;EACA;AAEC,QAAM,YAAY,CAAC,OAAO,SAAS,IAAI,QAAQ,aAAW;AACzD,YAAQ,IAAI,SAAS,IAAI;AAAA,EAC3B,CAAE;AAED,SAAO,iBAAiB,WAAW;AAAA,IAClC,aAAa;AAAA,MACZ,KAAK,MAAM;AAAA,IACX;AAAA,IACD,cAAc;AAAA,MACb,KAAK,MAAM,MAAM;AAAA,IACjB;AAAA,IACD,YAAY;AAAA,MACX,OAAO,MAAM;AACZ,cAAM,MAAK;AAAA,MACX;AAAA,IACD;AAAA,EACH,CAAE;AAED,SAAO;AACR;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index.js","sources":["../../../../../node_modules/p-limit/index.js"],"sourcesContent":["import Queue from 'yocto-queue';\n\nexport default function pLimit(concurrency) {\n\tif (!((Number.isInteger(concurrency) || concurrency === Number.POSITIVE_INFINITY) && concurrency > 0)) {\n\t\tthrow new TypeError('Expected `concurrency` to be a number from 1 and up');\n\t}\n\n\tconst queue = new Queue();\n\tlet activeCount = 0;\n\n\tconst next = () => {\n\t\tactiveCount--;\n\n\t\tif (queue.size > 0) {\n\t\t\tqueue.dequeue()();\n\t\t}\n\t};\n\n\tconst run = async (fn, resolve, args) => {\n\t\tactiveCount++;\n\n\t\tconst result = (async () => fn(...args))();\n\n\t\tresolve(result);\n\n\t\ttry {\n\t\t\tawait result;\n\t\t} catch {}\n\n\t\tnext();\n\t};\n\n\tconst enqueue = (fn, resolve, args) => {\n\t\tqueue.enqueue(run.bind(undefined, fn, resolve, args));\n\n\t\t(async () => {\n\t\t\t// This function needs to wait until the next microtask before comparing\n\t\t\t// `activeCount` to `concurrency`, because `activeCount` is updated asynchronously\n\t\t\t// when the run function is dequeued and called. The comparison in the if-statement\n\t\t\t// needs to happen asynchronously as well to get an up-to-date value for `activeCount`.\n\t\t\tawait Promise.resolve();\n\n\t\t\tif (activeCount < concurrency && queue.size > 0) {\n\t\t\t\tqueue.dequeue()();\n\t\t\t}\n\t\t})();\n\t};\n\n\tconst generator = (fn, ...args) => new Promise(resolve => {\n\t\tenqueue(fn, resolve, args);\n\t});\n\n\tObject.defineProperties(generator, {\n\t\tactiveCount: {\n\t\t\tget: () => activeCount,\n\t\t},\n\t\tpendingCount: {\n\t\t\tget: () => queue.size,\n\t\t},\n\t\tclearQueue: {\n\t\t\tvalue: () => {\n\t\t\t\tqueue.clear();\n\t\t\t},\n\t\t},\n\t});\n\n\treturn generator;\n}\n"],"names":[],"mappings":";AAEe,SAAS,OAAO,aAAa;AAC3C,MAAI,GAAG,OAAO,UAAU,WAAW,KAAK,gBAAgB,OAAO,sBAAsB,cAAc,IAAI;AACtG,UAAM,IAAI,UAAU,qDAAqD;AAAA,EACzE;AAED,QAAM,QAAQ,IAAI;AAClB,MAAI,cAAc;AAElB,QAAM,OAAO,MAAM;AAClB;AAEA,QAAI,MAAM,OAAO,GAAG;AACnB,YAAM,QAAO;IACb;AAAA,EACH;AAEC,QAAM,MAAM,OAAO,IAAI,SAAS,SAAS;AACxC;AAEA,UAAM,UAAU,YAAY,GAAG,GAAG,IAAI,GAAC;AAEvC,YAAQ,MAAM;AAEd,QAAI;AACH,YAAM;AAAA,IACN,QAAO;AAAA,IAAE;AAEV;EACF;AAEC,QAAM,UAAU,CAAC,IAAI,SAAS,SAAS;AACtC,UAAM,QAAQ,IAAI,KAAK,QAAW,IAAI,SAAS,IAAI,CAAC;AAEpD,KAAC,YAAY;AAKZ,YAAM,QAAQ;AAEd,UAAI,cAAc,eAAe,MAAM,OAAO,GAAG;AAChD,cAAM,QAAO;MACb;AAAA,IACJ;EACA;AAEC,QAAM,YAAY,CAAC,OAAO,SAAS,IAAI,QAAQ,aAAW;AACzD,YAAQ,IAAI,SAAS,IAAI;AAAA,EAC3B,CAAE;AAED,SAAO,iBAAiB,WAAW;AAAA,IAClC,aAAa;AAAA,MACZ,KAAK,MAAM;AAAA,IACX;AAAA,IACD,cAAc;AAAA,MACb,KAAK,MAAM,MAAM;AAAA,IACjB;AAAA,IACD,YAAY;AAAA,MACX,OAAO,MAAM;AACZ,cAAM,MAAK;AAAA,MACX;AAAA,IACD;AAAA,EACH,CAAE;AAED,SAAO;AACR;","x_google_ignoreList":[0]}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const tslib_es6 = require('./../_node_modules/tslib/tslib.es6.cjs');
3
+ const tslib_es6 = require("../../tslib/tslib.es6.cjs");
4
4
  const index = require("../../no-case/dist.es2015/index.cjs");
5
5
  function pascalCaseTransform(input, index2) {
6
6
  var firstChar = input.charAt(0);
@@ -1,4 +1,4 @@
1
- import { __assign } from './../_node_modules/tslib/tslib.es6.js';
1
+ import { __assign } from "../../tslib/tslib.es6.js";
2
2
  import { noCase } from "../../no-case/dist.es2015/index.js";
3
3
  function pascalCaseTransform(input, index) {
4
4
  var firstChar = input.charAt(0);
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tslib.es6.cjs","sources":["../../../../../node_modules/tslib/tslib.es6.mjs"],"sourcesContent":["/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\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;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\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; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\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);\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); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\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\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\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\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n};\n"],"names":["__assign"],"mappings":";;AA+BWA,QAAAA,WAAW,WAAW;AAC/BA,UAAAA,WAAW,OAAO,UAAU,SAAS,SAAS,GAAG;AAC7C,aAAS,GAAG,IAAI,GAAG,IAAI,UAAU,QAAQ,IAAI,GAAG,KAAK;AACjD,UAAI,UAAU,CAAC;AACf,eAAS,KAAK;AAAG,YAAI,OAAO,UAAU,eAAe,KAAK,GAAG,CAAC;AAAG,YAAE,CAAC,IAAI,EAAE,CAAC;AAAA,IAC9E;AACD,WAAO;AAAA,EACV;AACD,SAAOA,iBAAS,MAAM,MAAM,SAAS;AACvC;","x_google_ignoreList":[0]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tslib.es6.js","sources":["../../../../../node_modules/tslib/tslib.es6.mjs"],"sourcesContent":["/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\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;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\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; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\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);\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); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\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\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\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\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n};\n"],"names":["__assign"],"mappings":"AA+BU,IAAC,WAAW,WAAW;AAC/B,aAAW,OAAO,UAAU,SAASA,UAAS,GAAG;AAC7C,aAAS,GAAG,IAAI,GAAG,IAAI,UAAU,QAAQ,IAAI,GAAG,KAAK;AACjD,UAAI,UAAU,CAAC;AACf,eAAS,KAAK;AAAG,YAAI,OAAO,UAAU,eAAe,KAAK,GAAG,CAAC;AAAG,YAAE,CAAC,IAAI,EAAE,CAAC;AAAA,IAC9E;AACD,WAAO;AAAA,EACV;AACD,SAAO,SAAS,MAAM,MAAM,SAAS;AACvC;","x_google_ignoreList":[0]}
@@ -1 +1 @@
1
- {"version":3,"file":"createSliceMachineActions.cjs","sources":["../../src/createSliceMachineActions.ts"],"sourcesContent":["import { HookSystem } from \"./lib/HookSystem\";\nimport { SliceMachineHooks, SliceMachineProject } from \"./types\";\n\nimport { CustomTypeLibraryReadHookReturnType } from \"./hooks/customTypeLibrary-read\";\nimport {\n\tCustomTypeReadHookData,\n\tCustomTypeReadHookReturnType,\n} from \"./hooks/customType-read\";\nimport {\n\tSliceLibraryReadHookData,\n\tSliceLibraryReadHookReturnType,\n} from \"./hooks/sliceLibrary-read\";\nimport { SliceReadHookData, SliceReadHookReturnType } from \"./hooks/slice-read\";\n\nexport type ReadAllSliceModelsActionArgs<\n\tTWithMetadata extends boolean = false,\n> = {\n\twithMetadata?: TWithMetadata;\n};\n\nexport type ReadAllSliceModelsActionReturnType = (SliceReadHookReturnType & {\n\tlibraryID: string;\n})[];\n\nexport type ReadAllSliceModelsForLibraryActionArgs = {\n\tlibraryID: string;\n};\n\n/**\n * Creates Slice Machine actions.\n *\n * @internal\n */\nexport const createSliceMachineActions = (\n\tproject: SliceMachineProject,\n\thookSystem: HookSystem<SliceMachineHooks>,\n): SliceMachineActions => {\n\treturn new SliceMachineActions(project, hookSystem);\n};\n\n/**\n * Slice Machine actions shared to plugins and hooks.\n */\nexport class SliceMachineActions {\n\t/**\n\t * The Slice Machine project's metadata.\n\t *\n\t * @internal\n\t */\n\tprivate _project: SliceMachineProject;\n\t/**\n\t * The actions' hook system used to internally trigger hook calls.\n\t *\n\t * @internal\n\t */\n\tprivate _hookSystem: HookSystem<SliceMachineHooks>;\n\n\tconstructor(\n\t\tproject: SliceMachineProject,\n\t\thookSystem: HookSystem<SliceMachineHooks>,\n\t) {\n\t\tthis._project = project;\n\t\tthis._hookSystem = hookSystem;\n\t}\n\n\treadAllSliceModels =\n\t\tasync (): Promise<ReadAllSliceModelsActionReturnType> => {\n\t\t\tconst libraryIDs = this._project.config.libraries || [];\n\n\t\t\treturn (\n\t\t\t\tawait Promise.all(\n\t\t\t\t\tlibraryIDs.map(async (libraryID) => {\n\t\t\t\t\t\tconst models = await this.readAllSliceModelsForLibrary({\n\t\t\t\t\t\t\tlibraryID,\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\treturn models.map((model) => {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tlibraryID,\n\t\t\t\t\t\t\t\t...model,\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t});\n\t\t\t\t\t}),\n\t\t\t\t)\n\t\t\t).flat();\n\t\t};\n\n\treadAllSliceModelsForLibrary = async (\n\t\targs: ReadAllSliceModelsForLibraryActionArgs,\n\t): Promise<SliceReadHookReturnType[]> => {\n\t\tconst { sliceIDs } = await this.readSliceLibrary({\n\t\t\tlibraryID: args.libraryID,\n\t\t});\n\n\t\treturn await Promise.all(\n\t\t\tsliceIDs.map(async (sliceID) => {\n\t\t\t\treturn await this.readSliceModel({\n\t\t\t\t\tlibraryID: args.libraryID,\n\t\t\t\t\tsliceID,\n\t\t\t\t});\n\t\t\t}),\n\t\t);\n\t};\n\n\treadSliceModel = async (\n\t\targs: SliceReadHookData,\n\t): Promise<SliceReadHookReturnType> => {\n\t\tconst {\n\t\t\tdata: [model],\n\t\t\terrors: [cause],\n\t\t} = await this._hookSystem.callHook(\"slice:read\", {\n\t\t\tlibraryID: args.libraryID,\n\t\t\tsliceID: args.sliceID,\n\t\t});\n\n\t\tif (!model) {\n\t\t\tthrow new Error(\n\t\t\t\t`Slice \\`${args.sliceID}\\` not found in the \\`${args.libraryID}\\` library.`,\n\t\t\t\t{ cause },\n\t\t\t);\n\t\t}\n\n\t\treturn model;\n\t};\n\n\treadSliceLibrary = async (\n\t\targs: SliceLibraryReadHookData,\n\t): Promise<SliceLibraryReadHookReturnType> => {\n\t\tconst {\n\t\t\tdata: [library],\n\t\t\terrors: [cause],\n\t\t} = await this._hookSystem.callHook(\"slice-library:read\", {\n\t\t\tlibraryID: args.libraryID,\n\t\t});\n\n\t\tif (!library) {\n\t\t\tthrow new Error(`Slice library \\`${args.libraryID}\\` not found.`, {\n\t\t\t\tcause,\n\t\t\t});\n\t\t}\n\n\t\treturn library;\n\t};\n\n\treadAllCustomTypeModels = async (): Promise<\n\t\tCustomTypeReadHookReturnType[]\n\t> => {\n\t\tconst { ids } = await this.readCustomTypeLibrary();\n\n\t\treturn await Promise.all(\n\t\t\tids.map(async (id) => {\n\t\t\t\treturn this.readCustomTypeModel({ id });\n\t\t\t}),\n\t\t);\n\t};\n\n\treadCustomTypeModel = async (\n\t\targs: CustomTypeReadHookData,\n\t): Promise<CustomTypeReadHookReturnType> => {\n\t\tconst {\n\t\t\tdata: [model],\n\t\t\terrors: [cause],\n\t\t} = await this._hookSystem.callHook(\"custom-type:read\", {\n\t\t\tid: args.id,\n\t\t});\n\n\t\tif (!model) {\n\t\t\tthrow new Error(`Custom type \\`${args.id}\\` not found.`, { cause });\n\t\t}\n\n\t\treturn model;\n\t};\n\n\treadCustomTypeLibrary =\n\t\tasync (): Promise<CustomTypeLibraryReadHookReturnType> => {\n\t\t\tconst {\n\t\t\t\tdata: [library],\n\t\t\t\terrors: [cause],\n\t\t\t} = await this._hookSystem.callHook(\n\t\t\t\t\"custom-type-library:read\",\n\t\t\t\tundefined,\n\t\t\t);\n\n\t\t\tif (!library) {\n\t\t\t\tthrow new Error(`Couldn't read custom type library.`, {\n\t\t\t\t\tcause,\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn library;\n\t\t};\n}\n"],"names":[],"mappings":";;;;;;;;AAiCa,MAAA,4BAA4B,CACxC,SACA,eACwB;AACjB,SAAA,IAAI,oBAAoB,SAAS,UAAU;AACnD;MAKa,oBAAmB;AAAA,EAc/B,YACC,SACA,YAAyC;AAVlC;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA;AAAA;AAAA;AAAA;AAAA;AAAA;AAUR,8CACC,YAAwD;AACvD,YAAM,aAAa,KAAK,SAAS,OAAO,aAAa,CAAA;AAErD,cACC,MAAM,QAAQ,IACb,WAAW,IAAI,OAAO,cAAa;AAC5B,cAAA,SAAS,MAAM,KAAK,6BAA6B;AAAA,UACtD;AAAA,QAAA,CACA;AAEM,eAAA,OAAO,IAAI,CAAC,UAAS;AACpB,iBAAA;AAAA,YACN;AAAA,YACA,GAAG;AAAA,UAAA;AAAA,SAEJ;AAAA,MAAA,CACD,CAAC,GAEF;;AAGJ,wDAA+B,OAC9B,SACuC;AACvC,YAAM,EAAE,SAAA,IAAa,MAAM,KAAK,iBAAiB;AAAA,QAChD,WAAW,KAAK;AAAA,MAAA,CAChB;AAED,aAAO,MAAM,QAAQ,IACpB,SAAS,IAAI,OAAO,YAAW;AACvB,eAAA,MAAM,KAAK,eAAe;AAAA,UAChC,WAAW,KAAK;AAAA,UAChB;AAAA,QAAA,CACA;AAAA,MACD,CAAA,CAAC;AAAA,IAAA;AAIJ,0CAAiB,OAChB,SACqC;AACrC,YAAM,EACL,MAAM,CAAC,KAAK,GACZ,QAAQ,CAAC,KAAK,EAAA,IACX,MAAM,KAAK,YAAY,SAAS,cAAc;AAAA,QACjD,WAAW,KAAK;AAAA,QAChB,SAAS,KAAK;AAAA,MAAA,CACd;AAED,UAAI,CAAC,OAAO;AACL,cAAA,IAAI,MACT,WAAW,KAAK,gCAAgC,KAAK,wBACrD,EAAE,MAAO,CAAA;AAAA,MAEX;AAEO,aAAA;AAAA,IAAA;AAGR,4CAAmB,OAClB,SAC4C;AAC5C,YAAM,EACL,MAAM,CAAC,OAAO,GACd,QAAQ,CAAC,KAAK,EAAA,IACX,MAAM,KAAK,YAAY,SAAS,sBAAsB;AAAA,QACzD,WAAW,KAAK;AAAA,MAAA,CAChB;AAED,UAAI,CAAC,SAAS;AACb,cAAM,IAAI,MAAM,mBAAmB,KAAK,0BAA0B;AAAA,UACjE;AAAA,QAAA,CACA;AAAA,MACF;AAEO,aAAA;AAAA,IAAA;AAGR,mDAA0B,YAEtB;AACH,YAAM,EAAE,IAAQ,IAAA,MAAM,KAAK,sBAAqB;AAEhD,aAAO,MAAM,QAAQ,IACpB,IAAI,IAAI,OAAO,OAAM;AACpB,eAAO,KAAK,oBAAoB,EAAE,GAAI,CAAA;AAAA,MACtC,CAAA,CAAC;AAAA,IAAA;AAIJ,+CAAsB,OACrB,SAC0C;AAC1C,YAAM,EACL,MAAM,CAAC,KAAK,GACZ,QAAQ,CAAC,KAAK,EAAA,IACX,MAAM,KAAK,YAAY,SAAS,oBAAoB;AAAA,QACvD,IAAI,KAAK;AAAA,MAAA,CACT;AAED,UAAI,CAAC,OAAO;AACX,cAAM,IAAI,MAAM,iBAAiB,KAAK,mBAAmB,EAAE,OAAO;AAAA,MACnE;AAEO,aAAA;AAAA,IAAA;AAGR,iDACC,YAAyD;AACxD,YAAM,EACL,MAAM,CAAC,OAAO,GACd,QAAQ,CAAC,KAAK,MACX,MAAM,KAAK,YAAY,SAC1B,4BACA,MAAS;AAGV,UAAI,CAAC,SAAS;AACP,cAAA,IAAI,MAAM,sCAAsC;AAAA,UACrD;AAAA,QAAA,CACA;AAAA,MACF;AAEO,aAAA;AAAA,IAAA;AAhIR,SAAK,WAAW;AAChB,SAAK,cAAc;AAAA,EACpB;AAgIA;;;"}
1
+ {"version":3,"file":"createSliceMachineActions.cjs","sources":["../../src/createSliceMachineActions.ts"],"sourcesContent":["import { HookSystem } from \"./lib/HookSystem\";\nimport { SliceMachineHooks, SliceMachineProject } from \"./types\";\n\nimport { CustomTypeLibraryReadHookReturnType } from \"./hooks/customTypeLibrary-read\";\nimport {\n\tCustomTypeReadHookData,\n\tCustomTypeReadHookReturnType,\n} from \"./hooks/customType-read\";\nimport {\n\tSliceLibraryReadHookData,\n\tSliceLibraryReadHookReturnType,\n} from \"./hooks/sliceLibrary-read\";\nimport { SliceReadHookData, SliceReadHookReturnType } from \"./hooks/slice-read\";\n\nexport type ReadAllSliceModelsActionArgs<\n\tTWithMetadata extends boolean = false,\n> = {\n\twithMetadata?: TWithMetadata;\n};\n\nexport type ReadAllSliceModelsActionReturnType = (SliceReadHookReturnType & {\n\tlibraryID: string;\n})[];\n\nexport type ReadAllSliceModelsForLibraryActionArgs = {\n\tlibraryID: string;\n};\n\n/**\n * Creates Slice Machine actions.\n *\n * @internal\n */\nexport const createSliceMachineActions = (\n\tproject: SliceMachineProject,\n\thookSystem: HookSystem<SliceMachineHooks>,\n): SliceMachineActions => {\n\treturn new SliceMachineActions(project, hookSystem);\n};\n\n/**\n * Slice Machine actions shared to plugins and hooks.\n */\nexport class SliceMachineActions {\n\t/**\n\t * The Slice Machine project's metadata.\n\t *\n\t * @internal\n\t */\n\tprivate _project: SliceMachineProject;\n\t/**\n\t * The actions' hook system used to internally trigger hook calls.\n\t *\n\t * @internal\n\t */\n\tprivate _hookSystem: HookSystem<SliceMachineHooks>;\n\n\tconstructor(\n\t\tproject: SliceMachineProject,\n\t\thookSystem: HookSystem<SliceMachineHooks>,\n\t) {\n\t\tthis._project = project;\n\t\tthis._hookSystem = hookSystem;\n\t}\n\n\treadAllSliceModels =\n\t\tasync (): Promise<ReadAllSliceModelsActionReturnType> => {\n\t\t\tconst libraryIDs = this._project.config.libraries || [];\n\n\t\t\treturn (\n\t\t\t\tawait Promise.all(\n\t\t\t\t\tlibraryIDs.map(async (libraryID) => {\n\t\t\t\t\t\tconst models = await this.readAllSliceModelsForLibrary({\n\t\t\t\t\t\t\tlibraryID,\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\treturn models.map((model) => {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tlibraryID,\n\t\t\t\t\t\t\t\t...model,\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t});\n\t\t\t\t\t}),\n\t\t\t\t)\n\t\t\t).flat();\n\t\t};\n\n\treadAllSliceModelsForLibrary = async (\n\t\targs: ReadAllSliceModelsForLibraryActionArgs,\n\t): Promise<SliceReadHookReturnType[]> => {\n\t\tconst { sliceIDs } = await this.readSliceLibrary({\n\t\t\tlibraryID: args.libraryID,\n\t\t});\n\n\t\treturn await Promise.all(\n\t\t\tsliceIDs.map(async (sliceID) => {\n\t\t\t\treturn await this.readSliceModel({\n\t\t\t\t\tlibraryID: args.libraryID,\n\t\t\t\t\tsliceID,\n\t\t\t\t});\n\t\t\t}),\n\t\t);\n\t};\n\n\treadSliceModel = async (\n\t\targs: SliceReadHookData,\n\t): Promise<SliceReadHookReturnType> => {\n\t\tconst {\n\t\t\tdata: [model],\n\t\t\terrors: [cause],\n\t\t} = await this._hookSystem.callHook(\"slice:read\", {\n\t\t\tlibraryID: args.libraryID,\n\t\t\tsliceID: args.sliceID,\n\t\t});\n\n\t\tif (!model) {\n\t\t\tthrow new Error(\n\t\t\t\t`Slice \\`${args.sliceID}\\` not found in the \\`${args.libraryID}\\` library.`,\n\t\t\t\t{ cause },\n\t\t\t);\n\t\t}\n\n\t\treturn model;\n\t};\n\n\treadSliceLibrary = async (\n\t\targs: SliceLibraryReadHookData,\n\t): Promise<SliceLibraryReadHookReturnType> => {\n\t\tconst {\n\t\t\tdata: [library],\n\t\t\terrors: [cause],\n\t\t} = await this._hookSystem.callHook(\"slice-library:read\", {\n\t\t\tlibraryID: args.libraryID,\n\t\t});\n\n\t\tif (!library) {\n\t\t\tthrow new Error(`Slice library \\`${args.libraryID}\\` not found.`, {\n\t\t\t\tcause,\n\t\t\t});\n\t\t}\n\n\t\treturn library;\n\t};\n\n\treadAllCustomTypeModels = async (): Promise<\n\t\tCustomTypeReadHookReturnType[]\n\t> => {\n\t\tconst { ids } = await this.readCustomTypeLibrary();\n\n\t\treturn await Promise.all(\n\t\t\tids.map(async (id) => {\n\t\t\t\treturn this.readCustomTypeModel({ id });\n\t\t\t}),\n\t\t);\n\t};\n\n\treadCustomTypeModel = async (\n\t\targs: CustomTypeReadHookData,\n\t): Promise<CustomTypeReadHookReturnType> => {\n\t\tconst {\n\t\t\tdata: [model],\n\t\t\terrors: [cause],\n\t\t} = await this._hookSystem.callHook(\"custom-type:read\", {\n\t\t\tid: args.id,\n\t\t});\n\n\t\tif (!model) {\n\t\t\tthrow new Error(`Custom type \\`${args.id}\\` not found.`, { cause });\n\t\t}\n\n\t\treturn model;\n\t};\n\n\treadCustomTypeLibrary =\n\t\tasync (): Promise<CustomTypeLibraryReadHookReturnType> => {\n\t\t\tconst {\n\t\t\t\tdata: [library],\n\t\t\t\terrors: [cause],\n\t\t\t} = await this._hookSystem.callHook(\n\t\t\t\t\"custom-type-library:read\",\n\t\t\t\tundefined,\n\t\t\t);\n\n\t\t\tif (!library) {\n\t\t\t\tthrow new Error(`Couldn't read custom type library.`, {\n\t\t\t\t\tcause,\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn library;\n\t\t};\n}\n"],"names":[],"mappings":";;;;;;;;AAiCa,MAAA,4BAA4B,CACxC,SACA,eACwB;AACjB,SAAA,IAAI,oBAAoB,SAAS,UAAU;AACnD;MAKa,oBAAmB;AAAA,EAc/B,YACC,SACA,YAAyC;AAVlC;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA;AAAA;AAAA;AAAA;AAAA;AAAA;AAUR,8CACC,YAAwD;AACvD,YAAM,aAAa,KAAK,SAAS,OAAO,aAAa,CAAA;AAErD,cACC,MAAM,QAAQ,IACb,WAAW,IAAI,OAAO,cAAa;AAC5B,cAAA,SAAS,MAAM,KAAK,6BAA6B;AAAA,UACtD;AAAA,QAAA,CACA;AAEM,eAAA,OAAO,IAAI,CAAC,UAAS;AACpB,iBAAA;AAAA,YACN;AAAA,YACA,GAAG;AAAA,UAAA;AAAA,SAEJ;AAAA,MAAA,CACD,CAAC,GAEF;;AAGJ,wDAA+B,OAC9B,SACuC;AACvC,YAAM,EAAE,SAAA,IAAa,MAAM,KAAK,iBAAiB;AAAA,QAChD,WAAW,KAAK;AAAA,MAAA,CAChB;AAED,aAAO,MAAM,QAAQ,IACpB,SAAS,IAAI,OAAO,YAAW;AACvB,eAAA,MAAM,KAAK,eAAe;AAAA,UAChC,WAAW,KAAK;AAAA,UAChB;AAAA,QAAA,CACA;AAAA,MACD,CAAA,CAAC;AAAA,IAAA;AAIJ,0CAAiB,OAChB,SACqC;AACrC,YAAM,EACL,MAAM,CAAC,KAAK,GACZ,QAAQ,CAAC,KAAK,EAAA,IACX,MAAM,KAAK,YAAY,SAAS,cAAc;AAAA,QACjD,WAAW,KAAK;AAAA,QAChB,SAAS,KAAK;AAAA,MAAA,CACd;AAED,UAAI,CAAC,OAAO;AACL,cAAA,IAAI,MACT,WAAW,KAAK,OAAO,yBAAyB,KAAK,SAAS,eAC9D,EAAE,MAAO,CAAA;AAAA,MAEX;AAEO,aAAA;AAAA,IAAA;AAGR,4CAAmB,OAClB,SAC4C;AAC5C,YAAM,EACL,MAAM,CAAC,OAAO,GACd,QAAQ,CAAC,KAAK,EAAA,IACX,MAAM,KAAK,YAAY,SAAS,sBAAsB;AAAA,QACzD,WAAW,KAAK;AAAA,MAAA,CAChB;AAED,UAAI,CAAC,SAAS;AACb,cAAM,IAAI,MAAM,mBAAmB,KAAK,SAAS,iBAAiB;AAAA,UACjE;AAAA,QAAA,CACA;AAAA,MACF;AAEO,aAAA;AAAA,IAAA;AAGR,mDAA0B,YAEtB;AACH,YAAM,EAAE,IAAQ,IAAA,MAAM,KAAK,sBAAqB;AAEhD,aAAO,MAAM,QAAQ,IACpB,IAAI,IAAI,OAAO,OAAM;AACpB,eAAO,KAAK,oBAAoB,EAAE,GAAI,CAAA;AAAA,MACtC,CAAA,CAAC;AAAA,IAAA;AAIJ,+CAAsB,OACrB,SAC0C;AAC1C,YAAM,EACL,MAAM,CAAC,KAAK,GACZ,QAAQ,CAAC,KAAK,EAAA,IACX,MAAM,KAAK,YAAY,SAAS,oBAAoB;AAAA,QACvD,IAAI,KAAK;AAAA,MAAA,CACT;AAED,UAAI,CAAC,OAAO;AACL,cAAA,IAAI,MAAM,iBAAiB,KAAK,EAAE,iBAAiB,EAAE,OAAO;AAAA,MACnE;AAEO,aAAA;AAAA,IAAA;AAGR,iDACC,YAAyD;AACxD,YAAM,EACL,MAAM,CAAC,OAAO,GACd,QAAQ,CAAC,KAAK,MACX,MAAM,KAAK,YAAY,SAC1B,4BACA,MAAS;AAGV,UAAI,CAAC,SAAS;AACP,cAAA,IAAI,MAAM,sCAAsC;AAAA,UACrD;AAAA,QAAA,CACA;AAAA,MACF;AAEO,aAAA;AAAA,IAAA;AAhIR,SAAK,WAAW;AAChB,SAAK,cAAc;AAAA,EACpB;AAgIA;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"createSliceMachineActions.js","sources":["../../src/createSliceMachineActions.ts"],"sourcesContent":["import { HookSystem } from \"./lib/HookSystem\";\nimport { SliceMachineHooks, SliceMachineProject } from \"./types\";\n\nimport { CustomTypeLibraryReadHookReturnType } from \"./hooks/customTypeLibrary-read\";\nimport {\n\tCustomTypeReadHookData,\n\tCustomTypeReadHookReturnType,\n} from \"./hooks/customType-read\";\nimport {\n\tSliceLibraryReadHookData,\n\tSliceLibraryReadHookReturnType,\n} from \"./hooks/sliceLibrary-read\";\nimport { SliceReadHookData, SliceReadHookReturnType } from \"./hooks/slice-read\";\n\nexport type ReadAllSliceModelsActionArgs<\n\tTWithMetadata extends boolean = false,\n> = {\n\twithMetadata?: TWithMetadata;\n};\n\nexport type ReadAllSliceModelsActionReturnType = (SliceReadHookReturnType & {\n\tlibraryID: string;\n})[];\n\nexport type ReadAllSliceModelsForLibraryActionArgs = {\n\tlibraryID: string;\n};\n\n/**\n * Creates Slice Machine actions.\n *\n * @internal\n */\nexport const createSliceMachineActions = (\n\tproject: SliceMachineProject,\n\thookSystem: HookSystem<SliceMachineHooks>,\n): SliceMachineActions => {\n\treturn new SliceMachineActions(project, hookSystem);\n};\n\n/**\n * Slice Machine actions shared to plugins and hooks.\n */\nexport class SliceMachineActions {\n\t/**\n\t * The Slice Machine project's metadata.\n\t *\n\t * @internal\n\t */\n\tprivate _project: SliceMachineProject;\n\t/**\n\t * The actions' hook system used to internally trigger hook calls.\n\t *\n\t * @internal\n\t */\n\tprivate _hookSystem: HookSystem<SliceMachineHooks>;\n\n\tconstructor(\n\t\tproject: SliceMachineProject,\n\t\thookSystem: HookSystem<SliceMachineHooks>,\n\t) {\n\t\tthis._project = project;\n\t\tthis._hookSystem = hookSystem;\n\t}\n\n\treadAllSliceModels =\n\t\tasync (): Promise<ReadAllSliceModelsActionReturnType> => {\n\t\t\tconst libraryIDs = this._project.config.libraries || [];\n\n\t\t\treturn (\n\t\t\t\tawait Promise.all(\n\t\t\t\t\tlibraryIDs.map(async (libraryID) => {\n\t\t\t\t\t\tconst models = await this.readAllSliceModelsForLibrary({\n\t\t\t\t\t\t\tlibraryID,\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\treturn models.map((model) => {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tlibraryID,\n\t\t\t\t\t\t\t\t...model,\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t});\n\t\t\t\t\t}),\n\t\t\t\t)\n\t\t\t).flat();\n\t\t};\n\n\treadAllSliceModelsForLibrary = async (\n\t\targs: ReadAllSliceModelsForLibraryActionArgs,\n\t): Promise<SliceReadHookReturnType[]> => {\n\t\tconst { sliceIDs } = await this.readSliceLibrary({\n\t\t\tlibraryID: args.libraryID,\n\t\t});\n\n\t\treturn await Promise.all(\n\t\t\tsliceIDs.map(async (sliceID) => {\n\t\t\t\treturn await this.readSliceModel({\n\t\t\t\t\tlibraryID: args.libraryID,\n\t\t\t\t\tsliceID,\n\t\t\t\t});\n\t\t\t}),\n\t\t);\n\t};\n\n\treadSliceModel = async (\n\t\targs: SliceReadHookData,\n\t): Promise<SliceReadHookReturnType> => {\n\t\tconst {\n\t\t\tdata: [model],\n\t\t\terrors: [cause],\n\t\t} = await this._hookSystem.callHook(\"slice:read\", {\n\t\t\tlibraryID: args.libraryID,\n\t\t\tsliceID: args.sliceID,\n\t\t});\n\n\t\tif (!model) {\n\t\t\tthrow new Error(\n\t\t\t\t`Slice \\`${args.sliceID}\\` not found in the \\`${args.libraryID}\\` library.`,\n\t\t\t\t{ cause },\n\t\t\t);\n\t\t}\n\n\t\treturn model;\n\t};\n\n\treadSliceLibrary = async (\n\t\targs: SliceLibraryReadHookData,\n\t): Promise<SliceLibraryReadHookReturnType> => {\n\t\tconst {\n\t\t\tdata: [library],\n\t\t\terrors: [cause],\n\t\t} = await this._hookSystem.callHook(\"slice-library:read\", {\n\t\t\tlibraryID: args.libraryID,\n\t\t});\n\n\t\tif (!library) {\n\t\t\tthrow new Error(`Slice library \\`${args.libraryID}\\` not found.`, {\n\t\t\t\tcause,\n\t\t\t});\n\t\t}\n\n\t\treturn library;\n\t};\n\n\treadAllCustomTypeModels = async (): Promise<\n\t\tCustomTypeReadHookReturnType[]\n\t> => {\n\t\tconst { ids } = await this.readCustomTypeLibrary();\n\n\t\treturn await Promise.all(\n\t\t\tids.map(async (id) => {\n\t\t\t\treturn this.readCustomTypeModel({ id });\n\t\t\t}),\n\t\t);\n\t};\n\n\treadCustomTypeModel = async (\n\t\targs: CustomTypeReadHookData,\n\t): Promise<CustomTypeReadHookReturnType> => {\n\t\tconst {\n\t\t\tdata: [model],\n\t\t\terrors: [cause],\n\t\t} = await this._hookSystem.callHook(\"custom-type:read\", {\n\t\t\tid: args.id,\n\t\t});\n\n\t\tif (!model) {\n\t\t\tthrow new Error(`Custom type \\`${args.id}\\` not found.`, { cause });\n\t\t}\n\n\t\treturn model;\n\t};\n\n\treadCustomTypeLibrary =\n\t\tasync (): Promise<CustomTypeLibraryReadHookReturnType> => {\n\t\t\tconst {\n\t\t\t\tdata: [library],\n\t\t\t\terrors: [cause],\n\t\t\t} = await this._hookSystem.callHook(\n\t\t\t\t\"custom-type-library:read\",\n\t\t\t\tundefined,\n\t\t\t);\n\n\t\t\tif (!library) {\n\t\t\t\tthrow new Error(`Couldn't read custom type library.`, {\n\t\t\t\t\tcause,\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn library;\n\t\t};\n}\n"],"names":[],"mappings":";;;;;;AAiCa,MAAA,4BAA4B,CACxC,SACA,eACwB;AACjB,SAAA,IAAI,oBAAoB,SAAS,UAAU;AACnD;MAKa,oBAAmB;AAAA,EAc/B,YACC,SACA,YAAyC;AAVlC;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA;AAAA;AAAA;AAAA;AAAA;AAAA;AAUR,8CACC,YAAwD;AACvD,YAAM,aAAa,KAAK,SAAS,OAAO,aAAa,CAAA;AAErD,cACC,MAAM,QAAQ,IACb,WAAW,IAAI,OAAO,cAAa;AAC5B,cAAA,SAAS,MAAM,KAAK,6BAA6B;AAAA,UACtD;AAAA,QAAA,CACA;AAEM,eAAA,OAAO,IAAI,CAAC,UAAS;AACpB,iBAAA;AAAA,YACN;AAAA,YACA,GAAG;AAAA,UAAA;AAAA,SAEJ;AAAA,MAAA,CACD,CAAC,GAEF;;AAGJ,wDAA+B,OAC9B,SACuC;AACvC,YAAM,EAAE,SAAA,IAAa,MAAM,KAAK,iBAAiB;AAAA,QAChD,WAAW,KAAK;AAAA,MAAA,CAChB;AAED,aAAO,MAAM,QAAQ,IACpB,SAAS,IAAI,OAAO,YAAW;AACvB,eAAA,MAAM,KAAK,eAAe;AAAA,UAChC,WAAW,KAAK;AAAA,UAChB;AAAA,QAAA,CACA;AAAA,MACD,CAAA,CAAC;AAAA,IAAA;AAIJ,0CAAiB,OAChB,SACqC;AACrC,YAAM,EACL,MAAM,CAAC,KAAK,GACZ,QAAQ,CAAC,KAAK,EAAA,IACX,MAAM,KAAK,YAAY,SAAS,cAAc;AAAA,QACjD,WAAW,KAAK;AAAA,QAChB,SAAS,KAAK;AAAA,MAAA,CACd;AAED,UAAI,CAAC,OAAO;AACL,cAAA,IAAI,MACT,WAAW,KAAK,gCAAgC,KAAK,wBACrD,EAAE,MAAO,CAAA;AAAA,MAEX;AAEO,aAAA;AAAA,IAAA;AAGR,4CAAmB,OAClB,SAC4C;AAC5C,YAAM,EACL,MAAM,CAAC,OAAO,GACd,QAAQ,CAAC,KAAK,EAAA,IACX,MAAM,KAAK,YAAY,SAAS,sBAAsB;AAAA,QACzD,WAAW,KAAK;AAAA,MAAA,CAChB;AAED,UAAI,CAAC,SAAS;AACb,cAAM,IAAI,MAAM,mBAAmB,KAAK,0BAA0B;AAAA,UACjE;AAAA,QAAA,CACA;AAAA,MACF;AAEO,aAAA;AAAA,IAAA;AAGR,mDAA0B,YAEtB;AACH,YAAM,EAAE,IAAQ,IAAA,MAAM,KAAK,sBAAqB;AAEhD,aAAO,MAAM,QAAQ,IACpB,IAAI,IAAI,OAAO,OAAM;AACpB,eAAO,KAAK,oBAAoB,EAAE,GAAI,CAAA;AAAA,MACtC,CAAA,CAAC;AAAA,IAAA;AAIJ,+CAAsB,OACrB,SAC0C;AAC1C,YAAM,EACL,MAAM,CAAC,KAAK,GACZ,QAAQ,CAAC,KAAK,EAAA,IACX,MAAM,KAAK,YAAY,SAAS,oBAAoB;AAAA,QACvD,IAAI,KAAK;AAAA,MAAA,CACT;AAED,UAAI,CAAC,OAAO;AACX,cAAM,IAAI,MAAM,iBAAiB,KAAK,mBAAmB,EAAE,OAAO;AAAA,MACnE;AAEO,aAAA;AAAA,IAAA;AAGR,iDACC,YAAyD;AACxD,YAAM,EACL,MAAM,CAAC,OAAO,GACd,QAAQ,CAAC,KAAK,MACX,MAAM,KAAK,YAAY,SAC1B,4BACA,MAAS;AAGV,UAAI,CAAC,SAAS;AACP,cAAA,IAAI,MAAM,sCAAsC;AAAA,UACrD;AAAA,QAAA,CACA;AAAA,MACF;AAEO,aAAA;AAAA,IAAA;AAhIR,SAAK,WAAW;AAChB,SAAK,cAAc;AAAA,EACpB;AAgIA;"}
1
+ {"version":3,"file":"createSliceMachineActions.js","sources":["../../src/createSliceMachineActions.ts"],"sourcesContent":["import { HookSystem } from \"./lib/HookSystem\";\nimport { SliceMachineHooks, SliceMachineProject } from \"./types\";\n\nimport { CustomTypeLibraryReadHookReturnType } from \"./hooks/customTypeLibrary-read\";\nimport {\n\tCustomTypeReadHookData,\n\tCustomTypeReadHookReturnType,\n} from \"./hooks/customType-read\";\nimport {\n\tSliceLibraryReadHookData,\n\tSliceLibraryReadHookReturnType,\n} from \"./hooks/sliceLibrary-read\";\nimport { SliceReadHookData, SliceReadHookReturnType } from \"./hooks/slice-read\";\n\nexport type ReadAllSliceModelsActionArgs<\n\tTWithMetadata extends boolean = false,\n> = {\n\twithMetadata?: TWithMetadata;\n};\n\nexport type ReadAllSliceModelsActionReturnType = (SliceReadHookReturnType & {\n\tlibraryID: string;\n})[];\n\nexport type ReadAllSliceModelsForLibraryActionArgs = {\n\tlibraryID: string;\n};\n\n/**\n * Creates Slice Machine actions.\n *\n * @internal\n */\nexport const createSliceMachineActions = (\n\tproject: SliceMachineProject,\n\thookSystem: HookSystem<SliceMachineHooks>,\n): SliceMachineActions => {\n\treturn new SliceMachineActions(project, hookSystem);\n};\n\n/**\n * Slice Machine actions shared to plugins and hooks.\n */\nexport class SliceMachineActions {\n\t/**\n\t * The Slice Machine project's metadata.\n\t *\n\t * @internal\n\t */\n\tprivate _project: SliceMachineProject;\n\t/**\n\t * The actions' hook system used to internally trigger hook calls.\n\t *\n\t * @internal\n\t */\n\tprivate _hookSystem: HookSystem<SliceMachineHooks>;\n\n\tconstructor(\n\t\tproject: SliceMachineProject,\n\t\thookSystem: HookSystem<SliceMachineHooks>,\n\t) {\n\t\tthis._project = project;\n\t\tthis._hookSystem = hookSystem;\n\t}\n\n\treadAllSliceModels =\n\t\tasync (): Promise<ReadAllSliceModelsActionReturnType> => {\n\t\t\tconst libraryIDs = this._project.config.libraries || [];\n\n\t\t\treturn (\n\t\t\t\tawait Promise.all(\n\t\t\t\t\tlibraryIDs.map(async (libraryID) => {\n\t\t\t\t\t\tconst models = await this.readAllSliceModelsForLibrary({\n\t\t\t\t\t\t\tlibraryID,\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\treturn models.map((model) => {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tlibraryID,\n\t\t\t\t\t\t\t\t...model,\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t});\n\t\t\t\t\t}),\n\t\t\t\t)\n\t\t\t).flat();\n\t\t};\n\n\treadAllSliceModelsForLibrary = async (\n\t\targs: ReadAllSliceModelsForLibraryActionArgs,\n\t): Promise<SliceReadHookReturnType[]> => {\n\t\tconst { sliceIDs } = await this.readSliceLibrary({\n\t\t\tlibraryID: args.libraryID,\n\t\t});\n\n\t\treturn await Promise.all(\n\t\t\tsliceIDs.map(async (sliceID) => {\n\t\t\t\treturn await this.readSliceModel({\n\t\t\t\t\tlibraryID: args.libraryID,\n\t\t\t\t\tsliceID,\n\t\t\t\t});\n\t\t\t}),\n\t\t);\n\t};\n\n\treadSliceModel = async (\n\t\targs: SliceReadHookData,\n\t): Promise<SliceReadHookReturnType> => {\n\t\tconst {\n\t\t\tdata: [model],\n\t\t\terrors: [cause],\n\t\t} = await this._hookSystem.callHook(\"slice:read\", {\n\t\t\tlibraryID: args.libraryID,\n\t\t\tsliceID: args.sliceID,\n\t\t});\n\n\t\tif (!model) {\n\t\t\tthrow new Error(\n\t\t\t\t`Slice \\`${args.sliceID}\\` not found in the \\`${args.libraryID}\\` library.`,\n\t\t\t\t{ cause },\n\t\t\t);\n\t\t}\n\n\t\treturn model;\n\t};\n\n\treadSliceLibrary = async (\n\t\targs: SliceLibraryReadHookData,\n\t): Promise<SliceLibraryReadHookReturnType> => {\n\t\tconst {\n\t\t\tdata: [library],\n\t\t\terrors: [cause],\n\t\t} = await this._hookSystem.callHook(\"slice-library:read\", {\n\t\t\tlibraryID: args.libraryID,\n\t\t});\n\n\t\tif (!library) {\n\t\t\tthrow new Error(`Slice library \\`${args.libraryID}\\` not found.`, {\n\t\t\t\tcause,\n\t\t\t});\n\t\t}\n\n\t\treturn library;\n\t};\n\n\treadAllCustomTypeModels = async (): Promise<\n\t\tCustomTypeReadHookReturnType[]\n\t> => {\n\t\tconst { ids } = await this.readCustomTypeLibrary();\n\n\t\treturn await Promise.all(\n\t\t\tids.map(async (id) => {\n\t\t\t\treturn this.readCustomTypeModel({ id });\n\t\t\t}),\n\t\t);\n\t};\n\n\treadCustomTypeModel = async (\n\t\targs: CustomTypeReadHookData,\n\t): Promise<CustomTypeReadHookReturnType> => {\n\t\tconst {\n\t\t\tdata: [model],\n\t\t\terrors: [cause],\n\t\t} = await this._hookSystem.callHook(\"custom-type:read\", {\n\t\t\tid: args.id,\n\t\t});\n\n\t\tif (!model) {\n\t\t\tthrow new Error(`Custom type \\`${args.id}\\` not found.`, { cause });\n\t\t}\n\n\t\treturn model;\n\t};\n\n\treadCustomTypeLibrary =\n\t\tasync (): Promise<CustomTypeLibraryReadHookReturnType> => {\n\t\t\tconst {\n\t\t\t\tdata: [library],\n\t\t\t\terrors: [cause],\n\t\t\t} = await this._hookSystem.callHook(\n\t\t\t\t\"custom-type-library:read\",\n\t\t\t\tundefined,\n\t\t\t);\n\n\t\t\tif (!library) {\n\t\t\t\tthrow new Error(`Couldn't read custom type library.`, {\n\t\t\t\t\tcause,\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn library;\n\t\t};\n}\n"],"names":[],"mappings":";;;;;;AAiCa,MAAA,4BAA4B,CACxC,SACA,eACwB;AACjB,SAAA,IAAI,oBAAoB,SAAS,UAAU;AACnD;MAKa,oBAAmB;AAAA,EAc/B,YACC,SACA,YAAyC;AAVlC;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA;AAAA;AAAA;AAAA;AAAA;AAAA;AAUR,8CACC,YAAwD;AACvD,YAAM,aAAa,KAAK,SAAS,OAAO,aAAa,CAAA;AAErD,cACC,MAAM,QAAQ,IACb,WAAW,IAAI,OAAO,cAAa;AAC5B,cAAA,SAAS,MAAM,KAAK,6BAA6B;AAAA,UACtD;AAAA,QAAA,CACA;AAEM,eAAA,OAAO,IAAI,CAAC,UAAS;AACpB,iBAAA;AAAA,YACN;AAAA,YACA,GAAG;AAAA,UAAA;AAAA,SAEJ;AAAA,MAAA,CACD,CAAC,GAEF;;AAGJ,wDAA+B,OAC9B,SACuC;AACvC,YAAM,EAAE,SAAA,IAAa,MAAM,KAAK,iBAAiB;AAAA,QAChD,WAAW,KAAK;AAAA,MAAA,CAChB;AAED,aAAO,MAAM,QAAQ,IACpB,SAAS,IAAI,OAAO,YAAW;AACvB,eAAA,MAAM,KAAK,eAAe;AAAA,UAChC,WAAW,KAAK;AAAA,UAChB;AAAA,QAAA,CACA;AAAA,MACD,CAAA,CAAC;AAAA,IAAA;AAIJ,0CAAiB,OAChB,SACqC;AACrC,YAAM,EACL,MAAM,CAAC,KAAK,GACZ,QAAQ,CAAC,KAAK,EAAA,IACX,MAAM,KAAK,YAAY,SAAS,cAAc;AAAA,QACjD,WAAW,KAAK;AAAA,QAChB,SAAS,KAAK;AAAA,MAAA,CACd;AAED,UAAI,CAAC,OAAO;AACL,cAAA,IAAI,MACT,WAAW,KAAK,OAAO,yBAAyB,KAAK,SAAS,eAC9D,EAAE,MAAO,CAAA;AAAA,MAEX;AAEO,aAAA;AAAA,IAAA;AAGR,4CAAmB,OAClB,SAC4C;AAC5C,YAAM,EACL,MAAM,CAAC,OAAO,GACd,QAAQ,CAAC,KAAK,EAAA,IACX,MAAM,KAAK,YAAY,SAAS,sBAAsB;AAAA,QACzD,WAAW,KAAK;AAAA,MAAA,CAChB;AAED,UAAI,CAAC,SAAS;AACb,cAAM,IAAI,MAAM,mBAAmB,KAAK,SAAS,iBAAiB;AAAA,UACjE;AAAA,QAAA,CACA;AAAA,MACF;AAEO,aAAA;AAAA,IAAA;AAGR,mDAA0B,YAEtB;AACH,YAAM,EAAE,IAAQ,IAAA,MAAM,KAAK,sBAAqB;AAEhD,aAAO,MAAM,QAAQ,IACpB,IAAI,IAAI,OAAO,OAAM;AACpB,eAAO,KAAK,oBAAoB,EAAE,GAAI,CAAA;AAAA,MACtC,CAAA,CAAC;AAAA,IAAA;AAIJ,+CAAsB,OACrB,SAC0C;AAC1C,YAAM,EACL,MAAM,CAAC,KAAK,GACZ,QAAQ,CAAC,KAAK,EAAA,IACX,MAAM,KAAK,YAAY,SAAS,oBAAoB;AAAA,QACvD,IAAI,KAAK;AAAA,MAAA,CACT;AAED,UAAI,CAAC,OAAO;AACL,cAAA,IAAI,MAAM,iBAAiB,KAAK,EAAE,iBAAiB,EAAE,OAAO;AAAA,MACnE;AAEO,aAAA;AAAA,IAAA;AAGR,iDACC,YAAyD;AACxD,YAAM,EACL,MAAM,CAAC,OAAO,GACd,QAAQ,CAAC,KAAK,MACX,MAAM,KAAK,YAAY,SAC1B,4BACA,MAAS;AAGV,UAAI,CAAC,SAAS;AACP,cAAA,IAAI,MAAM,sCAAsC;AAAA,UACrD;AAAA,QAAA,CACA;AAAA,MACF;AAEO,aAAA;AAAA,IAAA;AAhIR,SAAK,WAAW;AAChB,SAAK,cAAc;AAAA,EACpB;AAgIA;"}
@@ -1 +1 @@
1
- {"version":3,"file":"createSliceMachineHelpers.cjs","sources":["../../src/createSliceMachineHelpers.ts"],"sourcesContent":["import * as path from \"node:path\";\nimport * as fs from \"node:fs/promises\";\n\nimport * as prettier from \"prettier\";\nimport { stripIndent } from \"common-tags\";\n\nimport { decodeSliceMachineConfig } from \"./lib/decodeSliceMachineConfig\";\n\nimport { SliceMachineConfig, SliceMachineProject } from \"./types\";\n\ntype UpdateSliceMachineConfigOptions = {\n\tformat?: boolean;\n};\n\ntype FormatOptions = {\n\tprettier?: prettier.Options;\n\t/**\n\t * Determines if a newline is included at the end of the formatted result.\n\t *\n\t * @defaultValue `true`\n\t */\n\tincludeNewlineAtEnd?: boolean;\n};\n\n/**\n * Creates Slice Machine helpers.\n *\n * @internal\n */\nexport const createSliceMachineHelpers = (\n\tproject: SliceMachineProject,\n): SliceMachineHelpers => {\n\treturn new SliceMachineHelpers(project);\n};\n\n/**\n * Slice Machine helpers shared to plugins and hooks.\n */\nexport class SliceMachineHelpers {\n\t/**\n\t * The Slice Machine project's metadata.\n\t *\n\t * @internal\n\t */\n\tprivate _project: SliceMachineProject;\n\n\tconstructor(project: SliceMachineProject) {\n\t\tthis._project = project;\n\t}\n\n\tgetProject = async (): Promise<SliceMachineProject> => {\n\t\tconst configFilePath = this.joinPathFromRoot(\"slicemachine.config.json\");\n\n\t\tlet rawConfig: unknown | undefined;\n\t\ttry {\n\t\t\tconst contents = await fs.readFile(configFilePath, \"utf8\");\n\t\t\trawConfig = JSON.parse(contents);\n\t\t} catch {\n\t\t\t// noop\n\t\t}\n\n\t\tif (!rawConfig) {\n\t\t\t// TODO: Write a more friendly and useful message.\n\t\t\tthrow new Error(\"No config found.\");\n\t\t}\n\n\t\tconst { value: sliceMachineConfig, error } =\n\t\t\tdecodeSliceMachineConfig(rawConfig);\n\n\t\tif (error) {\n\t\t\t// TODO: Write a more friendly and useful message.\n\t\t\tthrow new Error(`Invalid config. ${error.errors.join(\", \")}`);\n\t\t}\n\n\t\treturn {\n\t\t\t...this._project,\n\t\t\tconfig: sliceMachineConfig,\n\t\t};\n\t};\n\n\tupdateSliceMachineConfig = async (\n\t\tsliceMachineConfig: SliceMachineConfig,\n\t\toptions?: UpdateSliceMachineConfigOptions,\n\t): Promise<void> => {\n\t\tconst { value: decodedSliceMachineConfig, error } =\n\t\t\tdecodeSliceMachineConfig(sliceMachineConfig);\n\n\t\tif (error) {\n\t\t\t// TODO: Write a more friendly and useful message.\n\t\t\tthrow new Error(`Invalid config provided. ${error.errors.join(\", \")}`);\n\t\t}\n\n\t\tconst configFilePath = this.joinPathFromRoot(\"slicemachine.config.json\");\n\t\tlet content = JSON.stringify(decodedSliceMachineConfig, null, 2);\n\n\t\tif (options?.format) {\n\t\t\tcontent = await this.format(content, configFilePath);\n\t\t}\n\n\t\tawait fs.writeFile(configFilePath, content);\n\t};\n\n\tformat = async (\n\t\tsource: string,\n\t\tfilePath?: string,\n\t\toptions?: FormatOptions,\n\t): Promise<string> => {\n\t\tlet formatted = stripIndent(source);\n\n\t\tconst prettierOptions = await prettier.resolveConfig(\n\t\t\tfilePath || this._project.root,\n\t\t);\n\n\t\tformatted = await prettier.format(formatted, {\n\t\t\t...prettierOptions,\n\t\t\tfilepath: filePath,\n\t\t\t...(options?.prettier ?? {}),\n\t\t});\n\n\t\tif (options?.includeNewlineAtEnd === false) {\n\t\t\tformatted = formatted.replace(/[\\r\\n]+$/, \"\");\n\t\t}\n\n\t\treturn formatted;\n\t};\n\n\tjoinPathFromRoot = (...paths: string[]): string => {\n\t\treturn path.join(this._project.root, ...paths);\n\t};\n}\n"],"names":["fs","decodeSliceMachineConfig","stripIndent","prettier","path"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6Ba,MAAA,4BAA4B,CACxC,YACwB;AACjB,SAAA,IAAI,oBAAoB,OAAO;AACvC;MAKa,oBAAmB;AAAA,EAQ/B,YAAY,SAA4B;AAFhC;AAAA;AAAA;AAAA;AAAA;AAAA;AAMR,sCAAa,YAAyC;AAC/C,YAAA,iBAAiB,KAAK,iBAAiB,0BAA0B;AAEnE,UAAA;AACA,UAAA;AACH,cAAM,WAAW,MAAMA,cAAG,SAAS,gBAAgB,MAAM;AAC7C,oBAAA,KAAK,MAAM,QAAQ;AAAA,MAAA,QAC9B;AAAA,MAEF;AAEA,UAAI,CAAC,WAAW;AAET,cAAA,IAAI,MAAM,kBAAkB;AAAA,MACnC;AAEA,YAAM,EAAE,OAAO,oBAAoB,MAAO,IACzCC,yBAAAA,yBAAyB,SAAS;AAEnC,UAAI,OAAO;AAEV,cAAM,IAAI,MAAM,mBAAmB,MAAM,OAAO,KAAK,IAAI,GAAG;AAAA,MAC7D;AAEO,aAAA;AAAA,QACN,GAAG,KAAK;AAAA,QACR,QAAQ;AAAA,MAAA;AAAA;AAIV,oDAA2B,OAC1B,oBACA,YACkB;AAClB,YAAM,EAAE,OAAO,2BAA2B,MAAO,IAChDA,yBAAAA,yBAAyB,kBAAkB;AAE5C,UAAI,OAAO;AAEV,cAAM,IAAI,MAAM,4BAA4B,MAAM,OAAO,KAAK,IAAI,GAAG;AAAA,MACtE;AAEM,YAAA,iBAAiB,KAAK,iBAAiB,0BAA0B;AACvE,UAAI,UAAU,KAAK,UAAU,2BAA2B,MAAM,CAAC;AAE/D,UAAI,mCAAS,QAAQ;AACpB,kBAAU,MAAM,KAAK,OAAO,SAAS,cAAc;AAAA,MACpD;AAEM,YAAAD,cAAG,UAAU,gBAAgB,OAAO;AAAA,IAAA;AAG3C,kCAAS,OACR,QACA,UACA,YACoB;AAChB,UAAA,YAAYE,uBAAY,MAAM;AAElC,YAAM,kBAAkB,MAAMC,oBAAS,cACtC,YAAY,KAAK,SAAS,IAAI;AAGnB,kBAAA,MAAMA,oBAAS,OAAO,WAAW;AAAA,QAC5C,GAAG;AAAA,QACH,UAAU;AAAA,QACV,IAAI,mCAAS,aAAY;OACzB;AAEG,WAAA,mCAAS,yBAAwB,OAAO;AAC/B,oBAAA,UAAU,QAAQ,YAAY,EAAE;AAAA,MAC7C;AAEO,aAAA;AAAA,IAAA;AAGR,4CAAmB,IAAI,UAA2B;AACjD,aAAOC,gBAAK,KAAK,KAAK,SAAS,MAAM,GAAG,KAAK;AAAA,IAAA;AAhF7C,SAAK,WAAW;AAAA,EACjB;AAiFA;;;"}
1
+ {"version":3,"file":"createSliceMachineHelpers.cjs","sources":["../../src/createSliceMachineHelpers.ts"],"sourcesContent":["import * as path from \"node:path\";\nimport * as fs from \"node:fs/promises\";\n\nimport * as prettier from \"prettier\";\nimport { stripIndent } from \"common-tags\";\n\nimport { decodeSliceMachineConfig } from \"./lib/decodeSliceMachineConfig\";\n\nimport { SliceMachineConfig, SliceMachineProject } from \"./types\";\n\ntype UpdateSliceMachineConfigOptions = {\n\tformat?: boolean;\n};\n\ntype FormatOptions = {\n\tprettier?: prettier.Options;\n\t/**\n\t * Determines if a newline is included at the end of the formatted result.\n\t *\n\t * @defaultValue `true`\n\t */\n\tincludeNewlineAtEnd?: boolean;\n};\n\n/**\n * Creates Slice Machine helpers.\n *\n * @internal\n */\nexport const createSliceMachineHelpers = (\n\tproject: SliceMachineProject,\n): SliceMachineHelpers => {\n\treturn new SliceMachineHelpers(project);\n};\n\n/**\n * Slice Machine helpers shared to plugins and hooks.\n */\nexport class SliceMachineHelpers {\n\t/**\n\t * The Slice Machine project's metadata.\n\t *\n\t * @internal\n\t */\n\tprivate _project: SliceMachineProject;\n\n\tconstructor(project: SliceMachineProject) {\n\t\tthis._project = project;\n\t}\n\n\tgetProject = async (): Promise<SliceMachineProject> => {\n\t\tconst configFilePath = this.joinPathFromRoot(\"slicemachine.config.json\");\n\n\t\tlet rawConfig: unknown | undefined;\n\t\ttry {\n\t\t\tconst contents = await fs.readFile(configFilePath, \"utf8\");\n\t\t\trawConfig = JSON.parse(contents);\n\t\t} catch {\n\t\t\t// noop\n\t\t}\n\n\t\tif (!rawConfig) {\n\t\t\t// TODO: Write a more friendly and useful message.\n\t\t\tthrow new Error(\"No config found.\");\n\t\t}\n\n\t\tconst { value: sliceMachineConfig, error } =\n\t\t\tdecodeSliceMachineConfig(rawConfig);\n\n\t\tif (error) {\n\t\t\t// TODO: Write a more friendly and useful message.\n\t\t\tthrow new Error(`Invalid config. ${error.errors.join(\", \")}`);\n\t\t}\n\n\t\treturn {\n\t\t\t...this._project,\n\t\t\tconfig: sliceMachineConfig,\n\t\t};\n\t};\n\n\tupdateSliceMachineConfig = async (\n\t\tsliceMachineConfig: SliceMachineConfig,\n\t\toptions?: UpdateSliceMachineConfigOptions,\n\t): Promise<void> => {\n\t\tconst { value: decodedSliceMachineConfig, error } =\n\t\t\tdecodeSliceMachineConfig(sliceMachineConfig);\n\n\t\tif (error) {\n\t\t\t// TODO: Write a more friendly and useful message.\n\t\t\tthrow new Error(`Invalid config provided. ${error.errors.join(\", \")}`);\n\t\t}\n\n\t\tconst configFilePath = this.joinPathFromRoot(\"slicemachine.config.json\");\n\t\tlet content = JSON.stringify(decodedSliceMachineConfig, null, 2);\n\n\t\tif (options?.format) {\n\t\t\tcontent = await this.format(content, configFilePath);\n\t\t}\n\n\t\tawait fs.writeFile(configFilePath, content);\n\t};\n\n\tformat = async (\n\t\tsource: string,\n\t\tfilePath?: string,\n\t\toptions?: FormatOptions,\n\t): Promise<string> => {\n\t\tlet formatted = stripIndent(source);\n\n\t\tconst prettierOptions = await prettier.resolveConfig(\n\t\t\tfilePath || this._project.root,\n\t\t);\n\n\t\tformatted = await prettier.format(formatted, {\n\t\t\t...prettierOptions,\n\t\t\tfilepath: filePath,\n\t\t\t...(options?.prettier ?? {}),\n\t\t});\n\n\t\tif (options?.includeNewlineAtEnd === false) {\n\t\t\tformatted = formatted.replace(/[\\r\\n]+$/, \"\");\n\t\t}\n\n\t\treturn formatted;\n\t};\n\n\tjoinPathFromRoot = (...paths: string[]): string => {\n\t\treturn path.join(this._project.root, ...paths);\n\t};\n}\n"],"names":["fs","decodeSliceMachineConfig","stripIndent","prettier","path"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6Ba,MAAA,4BAA4B,CACxC,YACwB;AACjB,SAAA,IAAI,oBAAoB,OAAO;AACvC;MAKa,oBAAmB;AAAA,EAQ/B,YAAY,SAA4B;AAFhC;AAAA;AAAA;AAAA;AAAA;AAAA;AAMR,sCAAa,YAAyC;AAC/C,YAAA,iBAAiB,KAAK,iBAAiB,0BAA0B;AAEnE,UAAA;AACA,UAAA;AACH,cAAM,WAAW,MAAMA,cAAG,SAAS,gBAAgB,MAAM;AAC7C,oBAAA,KAAK,MAAM,QAAQ;AAAA,MAAA,QACxB;AAAA,MAER;AAEA,UAAI,CAAC,WAAW;AAET,cAAA,IAAI,MAAM,kBAAkB;AAAA,MACnC;AAEA,YAAM,EAAE,OAAO,oBAAoB,MAAO,IACzCC,yBAAAA,yBAAyB,SAAS;AAEnC,UAAI,OAAO;AAEJ,cAAA,IAAI,MAAM,mBAAmB,MAAM,OAAO,KAAK,IAAI,CAAC,EAAE;AAAA,MAC7D;AAEO,aAAA;AAAA,QACN,GAAG,KAAK;AAAA,QACR,QAAQ;AAAA,MAAA;AAAA;AAIV,oDAA2B,OAC1B,oBACA,YACkB;AAClB,YAAM,EAAE,OAAO,2BAA2B,MAAO,IAChDA,yBAAAA,yBAAyB,kBAAkB;AAE5C,UAAI,OAAO;AAEJ,cAAA,IAAI,MAAM,4BAA4B,MAAM,OAAO,KAAK,IAAI,CAAC,EAAE;AAAA,MACtE;AAEM,YAAA,iBAAiB,KAAK,iBAAiB,0BAA0B;AACvE,UAAI,UAAU,KAAK,UAAU,2BAA2B,MAAM,CAAC;AAE/D,UAAI,mCAAS,QAAQ;AACpB,kBAAU,MAAM,KAAK,OAAO,SAAS,cAAc;AAAA,MACpD;AAEM,YAAAD,cAAG,UAAU,gBAAgB,OAAO;AAAA,IAAA;AAG3C,kCAAS,OACR,QACA,UACA,YACoB;AAChB,UAAA,YAAYE,uBAAY,MAAM;AAElC,YAAM,kBAAkB,MAAMC,oBAAS,cACtC,YAAY,KAAK,SAAS,IAAI;AAGnB,kBAAA,MAAMA,oBAAS,OAAO,WAAW;AAAA,QAC5C,GAAG;AAAA,QACH,UAAU;AAAA,QACV,IAAI,mCAAS,aAAY;OACzB;AAEG,WAAA,mCAAS,yBAAwB,OAAO;AAC/B,oBAAA,UAAU,QAAQ,YAAY,EAAE;AAAA,MAC7C;AAEO,aAAA;AAAA,IAAA;AAGR,4CAAmB,IAAI,UAA2B;AACjD,aAAOC,gBAAK,KAAK,KAAK,SAAS,MAAM,GAAG,KAAK;AAAA,IAAA;AAhF7C,SAAK,WAAW;AAAA,EACjB;AAiFA;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"createSliceMachineHelpers.js","sources":["../../src/createSliceMachineHelpers.ts"],"sourcesContent":["import * as path from \"node:path\";\nimport * as fs from \"node:fs/promises\";\n\nimport * as prettier from \"prettier\";\nimport { stripIndent } from \"common-tags\";\n\nimport { decodeSliceMachineConfig } from \"./lib/decodeSliceMachineConfig\";\n\nimport { SliceMachineConfig, SliceMachineProject } from \"./types\";\n\ntype UpdateSliceMachineConfigOptions = {\n\tformat?: boolean;\n};\n\ntype FormatOptions = {\n\tprettier?: prettier.Options;\n\t/**\n\t * Determines if a newline is included at the end of the formatted result.\n\t *\n\t * @defaultValue `true`\n\t */\n\tincludeNewlineAtEnd?: boolean;\n};\n\n/**\n * Creates Slice Machine helpers.\n *\n * @internal\n */\nexport const createSliceMachineHelpers = (\n\tproject: SliceMachineProject,\n): SliceMachineHelpers => {\n\treturn new SliceMachineHelpers(project);\n};\n\n/**\n * Slice Machine helpers shared to plugins and hooks.\n */\nexport class SliceMachineHelpers {\n\t/**\n\t * The Slice Machine project's metadata.\n\t *\n\t * @internal\n\t */\n\tprivate _project: SliceMachineProject;\n\n\tconstructor(project: SliceMachineProject) {\n\t\tthis._project = project;\n\t}\n\n\tgetProject = async (): Promise<SliceMachineProject> => {\n\t\tconst configFilePath = this.joinPathFromRoot(\"slicemachine.config.json\");\n\n\t\tlet rawConfig: unknown | undefined;\n\t\ttry {\n\t\t\tconst contents = await fs.readFile(configFilePath, \"utf8\");\n\t\t\trawConfig = JSON.parse(contents);\n\t\t} catch {\n\t\t\t// noop\n\t\t}\n\n\t\tif (!rawConfig) {\n\t\t\t// TODO: Write a more friendly and useful message.\n\t\t\tthrow new Error(\"No config found.\");\n\t\t}\n\n\t\tconst { value: sliceMachineConfig, error } =\n\t\t\tdecodeSliceMachineConfig(rawConfig);\n\n\t\tif (error) {\n\t\t\t// TODO: Write a more friendly and useful message.\n\t\t\tthrow new Error(`Invalid config. ${error.errors.join(\", \")}`);\n\t\t}\n\n\t\treturn {\n\t\t\t...this._project,\n\t\t\tconfig: sliceMachineConfig,\n\t\t};\n\t};\n\n\tupdateSliceMachineConfig = async (\n\t\tsliceMachineConfig: SliceMachineConfig,\n\t\toptions?: UpdateSliceMachineConfigOptions,\n\t): Promise<void> => {\n\t\tconst { value: decodedSliceMachineConfig, error } =\n\t\t\tdecodeSliceMachineConfig(sliceMachineConfig);\n\n\t\tif (error) {\n\t\t\t// TODO: Write a more friendly and useful message.\n\t\t\tthrow new Error(`Invalid config provided. ${error.errors.join(\", \")}`);\n\t\t}\n\n\t\tconst configFilePath = this.joinPathFromRoot(\"slicemachine.config.json\");\n\t\tlet content = JSON.stringify(decodedSliceMachineConfig, null, 2);\n\n\t\tif (options?.format) {\n\t\t\tcontent = await this.format(content, configFilePath);\n\t\t}\n\n\t\tawait fs.writeFile(configFilePath, content);\n\t};\n\n\tformat = async (\n\t\tsource: string,\n\t\tfilePath?: string,\n\t\toptions?: FormatOptions,\n\t): Promise<string> => {\n\t\tlet formatted = stripIndent(source);\n\n\t\tconst prettierOptions = await prettier.resolveConfig(\n\t\t\tfilePath || this._project.root,\n\t\t);\n\n\t\tformatted = await prettier.format(formatted, {\n\t\t\t...prettierOptions,\n\t\t\tfilepath: filePath,\n\t\t\t...(options?.prettier ?? {}),\n\t\t});\n\n\t\tif (options?.includeNewlineAtEnd === false) {\n\t\t\tformatted = formatted.replace(/[\\r\\n]+$/, \"\");\n\t\t}\n\n\t\treturn formatted;\n\t};\n\n\tjoinPathFromRoot = (...paths: string[]): string => {\n\t\treturn path.join(this._project.root, ...paths);\n\t};\n}\n"],"names":[],"mappings":";;;;;;;;;;;AA6Ba,MAAA,4BAA4B,CACxC,YACwB;AACjB,SAAA,IAAI,oBAAoB,OAAO;AACvC;MAKa,oBAAmB;AAAA,EAQ/B,YAAY,SAA4B;AAFhC;AAAA;AAAA;AAAA;AAAA;AAAA;AAMR,sCAAa,YAAyC;AAC/C,YAAA,iBAAiB,KAAK,iBAAiB,0BAA0B;AAEnE,UAAA;AACA,UAAA;AACH,cAAM,WAAW,MAAM,GAAG,SAAS,gBAAgB,MAAM;AAC7C,oBAAA,KAAK,MAAM,QAAQ;AAAA,MAAA,QAC9B;AAAA,MAEF;AAEA,UAAI,CAAC,WAAW;AAET,cAAA,IAAI,MAAM,kBAAkB;AAAA,MACnC;AAEA,YAAM,EAAE,OAAO,oBAAoB,MAAO,IACzC,yBAAyB,SAAS;AAEnC,UAAI,OAAO;AAEV,cAAM,IAAI,MAAM,mBAAmB,MAAM,OAAO,KAAK,IAAI,GAAG;AAAA,MAC7D;AAEO,aAAA;AAAA,QACN,GAAG,KAAK;AAAA,QACR,QAAQ;AAAA,MAAA;AAAA;AAIV,oDAA2B,OAC1B,oBACA,YACkB;AAClB,YAAM,EAAE,OAAO,2BAA2B,MAAO,IAChD,yBAAyB,kBAAkB;AAE5C,UAAI,OAAO;AAEV,cAAM,IAAI,MAAM,4BAA4B,MAAM,OAAO,KAAK,IAAI,GAAG;AAAA,MACtE;AAEM,YAAA,iBAAiB,KAAK,iBAAiB,0BAA0B;AACvE,UAAI,UAAU,KAAK,UAAU,2BAA2B,MAAM,CAAC;AAE/D,UAAI,mCAAS,QAAQ;AACpB,kBAAU,MAAM,KAAK,OAAO,SAAS,cAAc;AAAA,MACpD;AAEM,YAAA,GAAG,UAAU,gBAAgB,OAAO;AAAA,IAAA;AAG3C,kCAAS,OACR,QACA,UACA,YACoB;AAChB,UAAA,YAAY,YAAY,MAAM;AAElC,YAAM,kBAAkB,MAAM,SAAS,cACtC,YAAY,KAAK,SAAS,IAAI;AAGnB,kBAAA,MAAM,SAAS,OAAO,WAAW;AAAA,QAC5C,GAAG;AAAA,QACH,UAAU;AAAA,QACV,IAAI,mCAAS,aAAY;OACzB;AAEG,WAAA,mCAAS,yBAAwB,OAAO;AAC/B,oBAAA,UAAU,QAAQ,YAAY,EAAE;AAAA,MAC7C;AAEO,aAAA;AAAA,IAAA;AAGR,4CAAmB,IAAI,UAA2B;AACjD,aAAO,KAAK,KAAK,KAAK,SAAS,MAAM,GAAG,KAAK;AAAA,IAAA;AAhF7C,SAAK,WAAW;AAAA,EACjB;AAiFA;"}
1
+ {"version":3,"file":"createSliceMachineHelpers.js","sources":["../../src/createSliceMachineHelpers.ts"],"sourcesContent":["import * as path from \"node:path\";\nimport * as fs from \"node:fs/promises\";\n\nimport * as prettier from \"prettier\";\nimport { stripIndent } from \"common-tags\";\n\nimport { decodeSliceMachineConfig } from \"./lib/decodeSliceMachineConfig\";\n\nimport { SliceMachineConfig, SliceMachineProject } from \"./types\";\n\ntype UpdateSliceMachineConfigOptions = {\n\tformat?: boolean;\n};\n\ntype FormatOptions = {\n\tprettier?: prettier.Options;\n\t/**\n\t * Determines if a newline is included at the end of the formatted result.\n\t *\n\t * @defaultValue `true`\n\t */\n\tincludeNewlineAtEnd?: boolean;\n};\n\n/**\n * Creates Slice Machine helpers.\n *\n * @internal\n */\nexport const createSliceMachineHelpers = (\n\tproject: SliceMachineProject,\n): SliceMachineHelpers => {\n\treturn new SliceMachineHelpers(project);\n};\n\n/**\n * Slice Machine helpers shared to plugins and hooks.\n */\nexport class SliceMachineHelpers {\n\t/**\n\t * The Slice Machine project's metadata.\n\t *\n\t * @internal\n\t */\n\tprivate _project: SliceMachineProject;\n\n\tconstructor(project: SliceMachineProject) {\n\t\tthis._project = project;\n\t}\n\n\tgetProject = async (): Promise<SliceMachineProject> => {\n\t\tconst configFilePath = this.joinPathFromRoot(\"slicemachine.config.json\");\n\n\t\tlet rawConfig: unknown | undefined;\n\t\ttry {\n\t\t\tconst contents = await fs.readFile(configFilePath, \"utf8\");\n\t\t\trawConfig = JSON.parse(contents);\n\t\t} catch {\n\t\t\t// noop\n\t\t}\n\n\t\tif (!rawConfig) {\n\t\t\t// TODO: Write a more friendly and useful message.\n\t\t\tthrow new Error(\"No config found.\");\n\t\t}\n\n\t\tconst { value: sliceMachineConfig, error } =\n\t\t\tdecodeSliceMachineConfig(rawConfig);\n\n\t\tif (error) {\n\t\t\t// TODO: Write a more friendly and useful message.\n\t\t\tthrow new Error(`Invalid config. ${error.errors.join(\", \")}`);\n\t\t}\n\n\t\treturn {\n\t\t\t...this._project,\n\t\t\tconfig: sliceMachineConfig,\n\t\t};\n\t};\n\n\tupdateSliceMachineConfig = async (\n\t\tsliceMachineConfig: SliceMachineConfig,\n\t\toptions?: UpdateSliceMachineConfigOptions,\n\t): Promise<void> => {\n\t\tconst { value: decodedSliceMachineConfig, error } =\n\t\t\tdecodeSliceMachineConfig(sliceMachineConfig);\n\n\t\tif (error) {\n\t\t\t// TODO: Write a more friendly and useful message.\n\t\t\tthrow new Error(`Invalid config provided. ${error.errors.join(\", \")}`);\n\t\t}\n\n\t\tconst configFilePath = this.joinPathFromRoot(\"slicemachine.config.json\");\n\t\tlet content = JSON.stringify(decodedSliceMachineConfig, null, 2);\n\n\t\tif (options?.format) {\n\t\t\tcontent = await this.format(content, configFilePath);\n\t\t}\n\n\t\tawait fs.writeFile(configFilePath, content);\n\t};\n\n\tformat = async (\n\t\tsource: string,\n\t\tfilePath?: string,\n\t\toptions?: FormatOptions,\n\t): Promise<string> => {\n\t\tlet formatted = stripIndent(source);\n\n\t\tconst prettierOptions = await prettier.resolveConfig(\n\t\t\tfilePath || this._project.root,\n\t\t);\n\n\t\tformatted = await prettier.format(formatted, {\n\t\t\t...prettierOptions,\n\t\t\tfilepath: filePath,\n\t\t\t...(options?.prettier ?? {}),\n\t\t});\n\n\t\tif (options?.includeNewlineAtEnd === false) {\n\t\t\tformatted = formatted.replace(/[\\r\\n]+$/, \"\");\n\t\t}\n\n\t\treturn formatted;\n\t};\n\n\tjoinPathFromRoot = (...paths: string[]): string => {\n\t\treturn path.join(this._project.root, ...paths);\n\t};\n}\n"],"names":[],"mappings":";;;;;;;;;;;AA6Ba,MAAA,4BAA4B,CACxC,YACwB;AACjB,SAAA,IAAI,oBAAoB,OAAO;AACvC;MAKa,oBAAmB;AAAA,EAQ/B,YAAY,SAA4B;AAFhC;AAAA;AAAA;AAAA;AAAA;AAAA;AAMR,sCAAa,YAAyC;AAC/C,YAAA,iBAAiB,KAAK,iBAAiB,0BAA0B;AAEnE,UAAA;AACA,UAAA;AACH,cAAM,WAAW,MAAM,GAAG,SAAS,gBAAgB,MAAM;AAC7C,oBAAA,KAAK,MAAM,QAAQ;AAAA,MAAA,QACxB;AAAA,MAER;AAEA,UAAI,CAAC,WAAW;AAET,cAAA,IAAI,MAAM,kBAAkB;AAAA,MACnC;AAEA,YAAM,EAAE,OAAO,oBAAoB,MAAO,IACzC,yBAAyB,SAAS;AAEnC,UAAI,OAAO;AAEJ,cAAA,IAAI,MAAM,mBAAmB,MAAM,OAAO,KAAK,IAAI,CAAC,EAAE;AAAA,MAC7D;AAEO,aAAA;AAAA,QACN,GAAG,KAAK;AAAA,QACR,QAAQ;AAAA,MAAA;AAAA;AAIV,oDAA2B,OAC1B,oBACA,YACkB;AAClB,YAAM,EAAE,OAAO,2BAA2B,MAAO,IAChD,yBAAyB,kBAAkB;AAE5C,UAAI,OAAO;AAEJ,cAAA,IAAI,MAAM,4BAA4B,MAAM,OAAO,KAAK,IAAI,CAAC,EAAE;AAAA,MACtE;AAEM,YAAA,iBAAiB,KAAK,iBAAiB,0BAA0B;AACvE,UAAI,UAAU,KAAK,UAAU,2BAA2B,MAAM,CAAC;AAE/D,UAAI,mCAAS,QAAQ;AACpB,kBAAU,MAAM,KAAK,OAAO,SAAS,cAAc;AAAA,MACpD;AAEM,YAAA,GAAG,UAAU,gBAAgB,OAAO;AAAA,IAAA;AAG3C,kCAAS,OACR,QACA,UACA,YACoB;AAChB,UAAA,YAAY,YAAY,MAAM;AAElC,YAAM,kBAAkB,MAAM,SAAS,cACtC,YAAY,KAAK,SAAS,IAAI;AAGnB,kBAAA,MAAM,SAAS,OAAO,WAAW;AAAA,QAC5C,GAAG;AAAA,QACH,UAAU;AAAA,QACV,IAAI,mCAAS,aAAY;OACzB;AAEG,WAAA,mCAAS,yBAAwB,OAAO;AAC/B,oBAAA,UAAU,QAAQ,YAAY,EAAE;AAAA,MAC7C;AAEO,aAAA;AAAA,IAAA;AAGR,4CAAmB,IAAI,UAA2B;AACjD,aAAO,KAAK,KAAK,KAAK,SAAS,MAAM,GAAG,KAAK;AAAA,IAAA;AAhF7C,SAAK,WAAW;AAAA,EACjB;AAiFA;"}
@@ -1 +1 @@
1
- {"version":3,"file":"createSliceMachinePluginRunner.cjs","sources":["../../src/createSliceMachinePluginRunner.ts"],"sourcesContent":["import * as path from \"node:path\";\nimport _module, { createRequire } from \"node:module\";\n\nimport { defu } from \"defu\";\n\nimport { HookSystem } from \"./lib/HookSystem\";\nimport { createSliceMachineContext } from \"./createSliceMachineContext\";\nimport {\n\tLoadedSliceMachinePlugin,\n\tSliceMachinePlugin,\n} from \"./defineSliceMachinePlugin\";\nimport {\n\tSliceMachineConfigPluginRegistration,\n\tSliceMachineHookExtraArgs,\n\tSliceMachineHookTypes,\n\tSliceMachineHooks,\n\tSliceMachineProject,\n} from \"./types\";\nimport { createSliceMachineHookSystem } from \"./createSliceMachineHookSystem\";\nimport {\n\tcreateSliceMachineActions,\n\tSliceMachineActions,\n} from \"./createSliceMachineActions\";\nimport {\n\tcreateSliceMachineHelpers,\n\tSliceMachineHelpers,\n} from \"./createSliceMachineHelpers\";\n\n/**\n * @internal\n */\nexport const REQUIRED_ADAPTER_HOOKS: SliceMachineHookTypes[] = [\n\t\"slice:create\",\n\t\"slice:read\",\n\t\"slice:rename\",\n\t\"slice:delete\",\n\t\"slice:update\",\n\t\"slice:asset:update\",\n\t\"slice:asset:read\",\n\t\"slice:asset:delete\",\n\t\"slice-library:read\",\n\t\"custom-type:create\",\n\t\"custom-type:read\",\n\t\"custom-type:rename\",\n\t\"custom-type:delete\",\n\t\"custom-type:update\",\n\t\"custom-type:asset:update\",\n\t\"custom-type:asset:read\",\n\t\"custom-type:asset:delete\",\n\t\"custom-type-library:read\",\n];\n/**\n * @internal\n */\nexport const ADAPTER_ONLY_HOOKS: SliceMachineHookTypes[] = [\n\t\"slice:read\",\n\t\"slice:asset:read\",\n\t\"slice-library:read\",\n\t\"custom-type:read\",\n\t\"custom-type:asset:read\",\n\t\"custom-type-library:read\",\n\t\"project:environment:read\",\n];\n\ntype SliceMachinePluginRunnerConstructorArgs = {\n\tproject: SliceMachineProject;\n\thookSystem: HookSystem<SliceMachineHooks>;\n\tnativePlugins?: Record<string, SliceMachinePlugin>;\n};\n\n/**\n * @internal\n */\nexport class SliceMachinePluginRunner {\n\tprivate _project: SliceMachineProject;\n\tprivate _hookSystem: HookSystem<SliceMachineHooks>;\n\tprivate _nativePlugins: Record<string, SliceMachinePlugin>;\n\n\t/**\n\t * Slice Machine actions provided to hooks.\n\t *\n\t * IMPORTANT: Prefer creating your own abstraction over using `rawActions`\n\t * directly to prevent code breakage if this internal API changes.\n\t *\n\t * @internal\n\t */\n\trawActions: SliceMachineActions;\n\n\t/**\n\t * Slice Machine helpers provided to hooks.\n\t *\n\t * IMPORTANT: Prefer creating your own abstraction over using `rawHelpers`\n\t * directly to prevent code breakage if this internal API changes.\n\t *\n\t * @internal\n\t */\n\trawHelpers: SliceMachineHelpers;\n\n\t// Methods forwarded to the plugin runner's hook system.\n\tcallHook: HookSystem<SliceMachineHooks>[\"callHook\"];\n\thooksForOwner: HookSystem<SliceMachineHooks>[\"hooksForOwner\"];\n\thooksForType: HookSystem<SliceMachineHooks>[\"hooksForType\"];\n\tcreateScope: HookSystem<SliceMachineHooks>[\"createScope\"];\n\n\tconstructor({\n\t\tproject,\n\t\thookSystem,\n\t\tnativePlugins = {},\n\t}: SliceMachinePluginRunnerConstructorArgs) {\n\t\tthis._project = project;\n\t\tthis._hookSystem = hookSystem;\n\t\tthis._nativePlugins = nativePlugins;\n\n\t\tthis.rawActions = createSliceMachineActions(\n\t\t\tthis._project,\n\t\t\tthis._hookSystem,\n\t\t);\n\t\tthis.rawHelpers = createSliceMachineHelpers(this._project);\n\n\t\tthis.callHook = this._hookSystem.callHook.bind(this._hookSystem);\n\t\tthis.hooksForOwner = this._hookSystem.hooksForOwner.bind(this._hookSystem);\n\t\tthis.hooksForType = this._hookSystem.hooksForType.bind(this._hookSystem);\n\t\tthis.createScope = this._hookSystem.createScope.bind(this._hookSystem);\n\t}\n\n\tprivate async _loadPlugin(\n\t\tpluginRegistration: SliceMachineConfigPluginRegistration,\n\t): Promise<LoadedSliceMachinePlugin> {\n\t\t// Sanitize registration\n\t\tconst { resolve, options = {} } =\n\t\t\ttypeof pluginRegistration === \"object\" && \"resolve\" in pluginRegistration\n\t\t\t\t? pluginRegistration\n\t\t\t\t: { resolve: pluginRegistration };\n\n\t\tlet plugin: SliceMachinePlugin | undefined = undefined;\n\n\t\tif (typeof resolve === \"string\") {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t\t\ttry {\n\t\t\t\tconst noop = path.resolve(this._project.root, \"noop.js\");\n\n\t\t\t\tlet resolvedID = resolve;\n\n\t\t\t\t// Support Yarn PnP\n\t\t\t\tif (\n\t\t\t\t\tprocess.versions.pnp &&\n\t\t\t\t\t\"findPnpApi\" in _module &&\n\t\t\t\t\ttypeof _module.findPnpApi === \"function\"\n\t\t\t\t) {\n\t\t\t\t\tconst pnpApi = _module.findPnpApi(noop);\n\t\t\t\t\tif (pnpApi) {\n\t\t\t\t\t\tresolvedID = pnpApi.resolveRequest(resolve, noop);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tconst raw = await createRequire(noop)(resolvedID);\n\t\t\t\tplugin = raw.default || raw;\n\t\t\t} catch (error) {\n\t\t\t\t// Only log in development, but not during tests when a native plugin matches.\n\t\t\t\tif (\n\t\t\t\t\timport.meta.env.DEV &&\n\t\t\t\t\t!(import.meta.env.TEST && resolve in this._nativePlugins)\n\t\t\t\t) {\n\t\t\t\t\tconsole.error(error);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (!plugin) {\n\t\t\t\t// If an installed plugin cannot be resolved, try loading a native plugin.\n\t\t\t\tplugin = this._nativePlugins[resolve];\n\t\t\t}\n\n\t\t\tif (!plugin) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Could not resolve plugin \\`${resolve}\\`. Check that it has been installed.`,\n\t\t\t\t);\n\t\t\t}\n\t\t} else {\n\t\t\tplugin = resolve;\n\t\t}\n\n\t\tif (!plugin) {\n\t\t\tthrow new Error(`Could not load plugin: \\`${resolve}\\``);\n\t\t}\n\n\t\tconst mergedOptions = defu(options, plugin.defaultOptions || {});\n\n\t\treturn {\n\t\t\t...plugin,\n\t\t\tresolve,\n\t\t\toptions: mergedOptions,\n\t\t};\n\t}\n\n\tprivate async _setupPlugin(\n\t\tplugin: LoadedSliceMachinePlugin,\n\t\tas: \"adapter\" | \"plugin\",\n\t): Promise<void> {\n\t\tconst context = createSliceMachineContext({\n\t\t\tactions: this.rawActions,\n\t\t\thelpers: this.rawHelpers,\n\t\t\tproject: this._project,\n\t\t\tplugin,\n\t\t});\n\t\tconst hookSystemScope =\n\t\t\tthis._hookSystem.createScope<SliceMachineHookExtraArgs>(\n\t\t\t\tplugin.meta.name,\n\t\t\t\t[context],\n\t\t\t);\n\n\t\t// Prevent plugins from hooking to adapter only hooks\n\t\tconst hook: typeof hookSystemScope.hook =\n\t\t\tas === \"adapter\"\n\t\t\t\t? hookSystemScope.hook\n\t\t\t\t: (type, hook, ...args) => {\n\t\t\t\t\t\tif (ADAPTER_ONLY_HOOKS.includes(type)) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn hookSystemScope.hook(type, hook, ...args);\n\t\t\t\t };\n\n\t\t// Run plugin setup with actions and context\n\t\ttry {\n\t\t\tawait plugin.setup({\n\t\t\t\t...context,\n\t\t\t\thook,\n\t\t\t\tunhook: hookSystemScope.unhook,\n\t\t\t});\n\t\t} catch (error) {\n\t\t\tif (error instanceof Error) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Plugin \\`${plugin.meta.name}\\` errored during setup: ${error.message}`,\n\t\t\t\t\t{ cause: error },\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Plugin \\`${plugin.meta.name}\\` errored during setup: ${error}`,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate _validateAdapter(adapter: LoadedSliceMachinePlugin): void {\n\t\tconst hooks = this._hookSystem.hooksForOwner(adapter.meta.name);\n\t\tconst hookTypes = hooks.map((hook) => hook.meta.type);\n\n\t\tconst missingHooks = REQUIRED_ADAPTER_HOOKS.filter(\n\t\t\t(requiredHookType) => !hookTypes.includes(requiredHookType),\n\t\t);\n\n\t\tif (missingHooks.length) {\n\t\t\tthrow new Error(\n\t\t\t\t`Adapter \\`${\n\t\t\t\t\tadapter.meta.name\n\t\t\t\t}\\` is missing hooks: \\`${missingHooks.join(\"`, `\")}\\``,\n\t\t\t);\n\t\t}\n\t}\n\n\tasync init(): Promise<void> {\n\t\tconst [adapter, ...plugins] = await Promise.all(\n\t\t\t[\n\t\t\t\tthis._project.config.adapter,\n\t\t\t\t...(this._project.config.plugins ?? []),\n\t\t\t].map((pluginRegistration) => this._loadPlugin(pluginRegistration)),\n\t\t);\n\n\t\tawait Promise.all([\n\t\t\tthis._setupPlugin(adapter, \"adapter\"),\n\t\t\t...plugins.map((plugin) => this._setupPlugin(plugin, \"plugin\")),\n\t\t]);\n\n\t\tthis._validateAdapter(adapter);\n\t}\n}\n\ntype CreateSliceMachinePluginRunnerArgs = {\n\tproject: SliceMachineProject;\n\tnativePlugins?: Record<string, SliceMachinePlugin>;\n};\n\n/**\n * @internal\n */\nexport const createSliceMachinePluginRunner = ({\n\tproject,\n\tnativePlugins,\n}: CreateSliceMachinePluginRunnerArgs): SliceMachinePluginRunner => {\n\tconst hookSystem = createSliceMachineHookSystem();\n\n\treturn new SliceMachinePluginRunner({\n\t\tproject,\n\t\thookSystem,\n\t\tnativePlugins,\n\t});\n};\n"],"names":["createSliceMachineActions","createSliceMachineHelpers","path","createRequire","defu","createSliceMachineContext","hook","createSliceMachineHookSystem"],"mappings":"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"}
1
+ {"version":3,"file":"createSliceMachinePluginRunner.cjs","sources":["../../src/createSliceMachinePluginRunner.ts"],"sourcesContent":["import * as path from \"node:path\";\nimport _module, { createRequire } from \"node:module\";\n\nimport { defu } from \"defu\";\n\nimport { HookSystem } from \"./lib/HookSystem\";\nimport { createSliceMachineContext } from \"./createSliceMachineContext\";\nimport {\n\tLoadedSliceMachinePlugin,\n\tSliceMachinePlugin,\n} from \"./defineSliceMachinePlugin\";\nimport {\n\tSliceMachineConfigPluginRegistration,\n\tSliceMachineHookExtraArgs,\n\tSliceMachineHookTypes,\n\tSliceMachineHooks,\n\tSliceMachineProject,\n} from \"./types\";\nimport { createSliceMachineHookSystem } from \"./createSliceMachineHookSystem\";\nimport {\n\tcreateSliceMachineActions,\n\tSliceMachineActions,\n} from \"./createSliceMachineActions\";\nimport {\n\tcreateSliceMachineHelpers,\n\tSliceMachineHelpers,\n} from \"./createSliceMachineHelpers\";\n\n/**\n * @internal\n */\nexport const REQUIRED_ADAPTER_HOOKS: SliceMachineHookTypes[] = [\n\t\"slice:create\",\n\t\"slice:read\",\n\t\"slice:rename\",\n\t\"slice:delete\",\n\t\"slice:update\",\n\t\"slice:asset:update\",\n\t\"slice:asset:read\",\n\t\"slice:asset:delete\",\n\t\"slice-library:read\",\n\t\"custom-type:create\",\n\t\"custom-type:read\",\n\t\"custom-type:rename\",\n\t\"custom-type:delete\",\n\t\"custom-type:update\",\n\t\"custom-type:asset:update\",\n\t\"custom-type:asset:read\",\n\t\"custom-type:asset:delete\",\n\t\"custom-type-library:read\",\n];\n/**\n * @internal\n */\nexport const ADAPTER_ONLY_HOOKS: SliceMachineHookTypes[] = [\n\t\"slice:read\",\n\t\"slice:asset:read\",\n\t\"slice-library:read\",\n\t\"custom-type:read\",\n\t\"custom-type:asset:read\",\n\t\"custom-type-library:read\",\n\t\"project:environment:read\",\n];\n\ntype SliceMachinePluginRunnerConstructorArgs = {\n\tproject: SliceMachineProject;\n\thookSystem: HookSystem<SliceMachineHooks>;\n\tnativePlugins?: Record<string, SliceMachinePlugin>;\n};\n\n/**\n * @internal\n */\nexport class SliceMachinePluginRunner {\n\tprivate _project: SliceMachineProject;\n\tprivate _hookSystem: HookSystem<SliceMachineHooks>;\n\tprivate _nativePlugins: Record<string, SliceMachinePlugin>;\n\n\t/**\n\t * Slice Machine actions provided to hooks.\n\t *\n\t * IMPORTANT: Prefer creating your own abstraction over using `rawActions`\n\t * directly to prevent code breakage if this internal API changes.\n\t *\n\t * @internal\n\t */\n\trawActions: SliceMachineActions;\n\n\t/**\n\t * Slice Machine helpers provided to hooks.\n\t *\n\t * IMPORTANT: Prefer creating your own abstraction over using `rawHelpers`\n\t * directly to prevent code breakage if this internal API changes.\n\t *\n\t * @internal\n\t */\n\trawHelpers: SliceMachineHelpers;\n\n\t// Methods forwarded to the plugin runner's hook system.\n\tcallHook: HookSystem<SliceMachineHooks>[\"callHook\"];\n\thooksForOwner: HookSystem<SliceMachineHooks>[\"hooksForOwner\"];\n\thooksForType: HookSystem<SliceMachineHooks>[\"hooksForType\"];\n\tcreateScope: HookSystem<SliceMachineHooks>[\"createScope\"];\n\n\tconstructor({\n\t\tproject,\n\t\thookSystem,\n\t\tnativePlugins = {},\n\t}: SliceMachinePluginRunnerConstructorArgs) {\n\t\tthis._project = project;\n\t\tthis._hookSystem = hookSystem;\n\t\tthis._nativePlugins = nativePlugins;\n\n\t\tthis.rawActions = createSliceMachineActions(\n\t\t\tthis._project,\n\t\t\tthis._hookSystem,\n\t\t);\n\t\tthis.rawHelpers = createSliceMachineHelpers(this._project);\n\n\t\tthis.callHook = this._hookSystem.callHook.bind(this._hookSystem);\n\t\tthis.hooksForOwner = this._hookSystem.hooksForOwner.bind(this._hookSystem);\n\t\tthis.hooksForType = this._hookSystem.hooksForType.bind(this._hookSystem);\n\t\tthis.createScope = this._hookSystem.createScope.bind(this._hookSystem);\n\t}\n\n\tprivate async _loadPlugin(\n\t\tpluginRegistration: SliceMachineConfigPluginRegistration,\n\t): Promise<LoadedSliceMachinePlugin> {\n\t\t// Sanitize registration\n\t\tconst { resolve, options = {} } =\n\t\t\ttypeof pluginRegistration === \"object\" && \"resolve\" in pluginRegistration\n\t\t\t\t? pluginRegistration\n\t\t\t\t: { resolve: pluginRegistration };\n\n\t\tlet plugin: SliceMachinePlugin | undefined = undefined;\n\n\t\tif (typeof resolve === \"string\") {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t\t\ttry {\n\t\t\t\tconst noop = path.resolve(this._project.root, \"noop.js\");\n\n\t\t\t\tlet resolvedID = resolve;\n\n\t\t\t\t// Support Yarn PnP\n\t\t\t\tif (\n\t\t\t\t\tprocess.versions.pnp &&\n\t\t\t\t\t\"findPnpApi\" in _module &&\n\t\t\t\t\ttypeof _module.findPnpApi === \"function\"\n\t\t\t\t) {\n\t\t\t\t\tconst pnpApi = _module.findPnpApi(noop);\n\t\t\t\t\tif (pnpApi) {\n\t\t\t\t\t\tresolvedID = pnpApi.resolveRequest(resolve, noop);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tconst raw = await createRequire(noop)(resolvedID);\n\t\t\t\tplugin = raw.default || raw;\n\t\t\t} catch (error) {\n\t\t\t\t// Only log in development, but not during tests when a native plugin matches.\n\t\t\t\tif (\n\t\t\t\t\timport.meta.env.DEV &&\n\t\t\t\t\t!(import.meta.env.TEST && resolve in this._nativePlugins)\n\t\t\t\t) {\n\t\t\t\t\tconsole.error(error);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (!plugin) {\n\t\t\t\t// If an installed plugin cannot be resolved, try loading a native plugin.\n\t\t\t\tplugin = this._nativePlugins[resolve];\n\t\t\t}\n\n\t\t\tif (!plugin) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Could not resolve plugin \\`${resolve}\\`. Check that it has been installed.`,\n\t\t\t\t);\n\t\t\t}\n\t\t} else {\n\t\t\tplugin = resolve;\n\t\t}\n\n\t\tif (!plugin) {\n\t\t\tthrow new Error(`Could not load plugin: \\`${resolve}\\``);\n\t\t}\n\n\t\tconst mergedOptions = defu(options, plugin.defaultOptions || {});\n\n\t\treturn {\n\t\t\t...plugin,\n\t\t\tresolve,\n\t\t\toptions: mergedOptions,\n\t\t};\n\t}\n\n\tprivate async _setupPlugin(\n\t\tplugin: LoadedSliceMachinePlugin,\n\t\tas: \"adapter\" | \"plugin\",\n\t): Promise<void> {\n\t\tconst context = createSliceMachineContext({\n\t\t\tactions: this.rawActions,\n\t\t\thelpers: this.rawHelpers,\n\t\t\tproject: this._project,\n\t\t\tplugin,\n\t\t});\n\t\tconst hookSystemScope =\n\t\t\tthis._hookSystem.createScope<SliceMachineHookExtraArgs>(\n\t\t\t\tplugin.meta.name,\n\t\t\t\t[context],\n\t\t\t);\n\n\t\t// Prevent plugins from hooking to adapter only hooks\n\t\tconst hook: typeof hookSystemScope.hook =\n\t\t\tas === \"adapter\"\n\t\t\t\t? hookSystemScope.hook\n\t\t\t\t: (type, hook, ...args) => {\n\t\t\t\t\t\tif (ADAPTER_ONLY_HOOKS.includes(type)) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn hookSystemScope.hook(type, hook, ...args);\n\t\t\t\t };\n\n\t\t// Run plugin setup with actions and context\n\t\ttry {\n\t\t\tawait plugin.setup({\n\t\t\t\t...context,\n\t\t\t\thook,\n\t\t\t\tunhook: hookSystemScope.unhook,\n\t\t\t});\n\t\t} catch (error) {\n\t\t\tif (error instanceof Error) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Plugin \\`${plugin.meta.name}\\` errored during setup: ${error.message}`,\n\t\t\t\t\t{ cause: error },\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Plugin \\`${plugin.meta.name}\\` errored during setup: ${error}`,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate _validateAdapter(adapter: LoadedSliceMachinePlugin): void {\n\t\tconst hooks = this._hookSystem.hooksForOwner(adapter.meta.name);\n\t\tconst hookTypes = hooks.map((hook) => hook.meta.type);\n\n\t\tconst missingHooks = REQUIRED_ADAPTER_HOOKS.filter(\n\t\t\t(requiredHookType) => !hookTypes.includes(requiredHookType),\n\t\t);\n\n\t\tif (missingHooks.length) {\n\t\t\tthrow new Error(\n\t\t\t\t`Adapter \\`${\n\t\t\t\t\tadapter.meta.name\n\t\t\t\t}\\` is missing hooks: \\`${missingHooks.join(\"`, `\")}\\``,\n\t\t\t);\n\t\t}\n\t}\n\n\tasync init(): Promise<void> {\n\t\tconst [adapter, ...plugins] = await Promise.all(\n\t\t\t[\n\t\t\t\tthis._project.config.adapter,\n\t\t\t\t...(this._project.config.plugins ?? []),\n\t\t\t].map((pluginRegistration) => this._loadPlugin(pluginRegistration)),\n\t\t);\n\n\t\tawait Promise.all([\n\t\t\tthis._setupPlugin(adapter, \"adapter\"),\n\t\t\t...plugins.map((plugin) => this._setupPlugin(plugin, \"plugin\")),\n\t\t]);\n\n\t\tthis._validateAdapter(adapter);\n\t}\n}\n\ntype CreateSliceMachinePluginRunnerArgs = {\n\tproject: SliceMachineProject;\n\tnativePlugins?: Record<string, SliceMachinePlugin>;\n};\n\n/**\n * @internal\n */\nexport const createSliceMachinePluginRunner = ({\n\tproject,\n\tnativePlugins,\n}: CreateSliceMachinePluginRunnerArgs): SliceMachinePluginRunner => {\n\tconst hookSystem = createSliceMachineHookSystem();\n\n\treturn new SliceMachinePluginRunner({\n\t\tproject,\n\t\thookSystem,\n\t\tnativePlugins,\n\t});\n};\n"],"names":["createSliceMachineActions","createSliceMachineHelpers","path","createRequire","defu","createSliceMachineContext","hook","createSliceMachineHookSystem"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"createSliceMachinePluginRunner.js","sources":["../../src/createSliceMachinePluginRunner.ts"],"sourcesContent":["import * as path from \"node:path\";\nimport _module, { createRequire } from \"node:module\";\n\nimport { defu } from \"defu\";\n\nimport { HookSystem } from \"./lib/HookSystem\";\nimport { createSliceMachineContext } from \"./createSliceMachineContext\";\nimport {\n\tLoadedSliceMachinePlugin,\n\tSliceMachinePlugin,\n} from \"./defineSliceMachinePlugin\";\nimport {\n\tSliceMachineConfigPluginRegistration,\n\tSliceMachineHookExtraArgs,\n\tSliceMachineHookTypes,\n\tSliceMachineHooks,\n\tSliceMachineProject,\n} from \"./types\";\nimport { createSliceMachineHookSystem } from \"./createSliceMachineHookSystem\";\nimport {\n\tcreateSliceMachineActions,\n\tSliceMachineActions,\n} from \"./createSliceMachineActions\";\nimport {\n\tcreateSliceMachineHelpers,\n\tSliceMachineHelpers,\n} from \"./createSliceMachineHelpers\";\n\n/**\n * @internal\n */\nexport const REQUIRED_ADAPTER_HOOKS: SliceMachineHookTypes[] = [\n\t\"slice:create\",\n\t\"slice:read\",\n\t\"slice:rename\",\n\t\"slice:delete\",\n\t\"slice:update\",\n\t\"slice:asset:update\",\n\t\"slice:asset:read\",\n\t\"slice:asset:delete\",\n\t\"slice-library:read\",\n\t\"custom-type:create\",\n\t\"custom-type:read\",\n\t\"custom-type:rename\",\n\t\"custom-type:delete\",\n\t\"custom-type:update\",\n\t\"custom-type:asset:update\",\n\t\"custom-type:asset:read\",\n\t\"custom-type:asset:delete\",\n\t\"custom-type-library:read\",\n];\n/**\n * @internal\n */\nexport const ADAPTER_ONLY_HOOKS: SliceMachineHookTypes[] = [\n\t\"slice:read\",\n\t\"slice:asset:read\",\n\t\"slice-library:read\",\n\t\"custom-type:read\",\n\t\"custom-type:asset:read\",\n\t\"custom-type-library:read\",\n\t\"project:environment:read\",\n];\n\ntype SliceMachinePluginRunnerConstructorArgs = {\n\tproject: SliceMachineProject;\n\thookSystem: HookSystem<SliceMachineHooks>;\n\tnativePlugins?: Record<string, SliceMachinePlugin>;\n};\n\n/**\n * @internal\n */\nexport class SliceMachinePluginRunner {\n\tprivate _project: SliceMachineProject;\n\tprivate _hookSystem: HookSystem<SliceMachineHooks>;\n\tprivate _nativePlugins: Record<string, SliceMachinePlugin>;\n\n\t/**\n\t * Slice Machine actions provided to hooks.\n\t *\n\t * IMPORTANT: Prefer creating your own abstraction over using `rawActions`\n\t * directly to prevent code breakage if this internal API changes.\n\t *\n\t * @internal\n\t */\n\trawActions: SliceMachineActions;\n\n\t/**\n\t * Slice Machine helpers provided to hooks.\n\t *\n\t * IMPORTANT: Prefer creating your own abstraction over using `rawHelpers`\n\t * directly to prevent code breakage if this internal API changes.\n\t *\n\t * @internal\n\t */\n\trawHelpers: SliceMachineHelpers;\n\n\t// Methods forwarded to the plugin runner's hook system.\n\tcallHook: HookSystem<SliceMachineHooks>[\"callHook\"];\n\thooksForOwner: HookSystem<SliceMachineHooks>[\"hooksForOwner\"];\n\thooksForType: HookSystem<SliceMachineHooks>[\"hooksForType\"];\n\tcreateScope: HookSystem<SliceMachineHooks>[\"createScope\"];\n\n\tconstructor({\n\t\tproject,\n\t\thookSystem,\n\t\tnativePlugins = {},\n\t}: SliceMachinePluginRunnerConstructorArgs) {\n\t\tthis._project = project;\n\t\tthis._hookSystem = hookSystem;\n\t\tthis._nativePlugins = nativePlugins;\n\n\t\tthis.rawActions = createSliceMachineActions(\n\t\t\tthis._project,\n\t\t\tthis._hookSystem,\n\t\t);\n\t\tthis.rawHelpers = createSliceMachineHelpers(this._project);\n\n\t\tthis.callHook = this._hookSystem.callHook.bind(this._hookSystem);\n\t\tthis.hooksForOwner = this._hookSystem.hooksForOwner.bind(this._hookSystem);\n\t\tthis.hooksForType = this._hookSystem.hooksForType.bind(this._hookSystem);\n\t\tthis.createScope = this._hookSystem.createScope.bind(this._hookSystem);\n\t}\n\n\tprivate async _loadPlugin(\n\t\tpluginRegistration: SliceMachineConfigPluginRegistration,\n\t): Promise<LoadedSliceMachinePlugin> {\n\t\t// Sanitize registration\n\t\tconst { resolve, options = {} } =\n\t\t\ttypeof pluginRegistration === \"object\" && \"resolve\" in pluginRegistration\n\t\t\t\t? pluginRegistration\n\t\t\t\t: { resolve: pluginRegistration };\n\n\t\tlet plugin: SliceMachinePlugin | undefined = undefined;\n\n\t\tif (typeof resolve === \"string\") {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t\t\ttry {\n\t\t\t\tconst noop = path.resolve(this._project.root, \"noop.js\");\n\n\t\t\t\tlet resolvedID = resolve;\n\n\t\t\t\t// Support Yarn PnP\n\t\t\t\tif (\n\t\t\t\t\tprocess.versions.pnp &&\n\t\t\t\t\t\"findPnpApi\" in _module &&\n\t\t\t\t\ttypeof _module.findPnpApi === \"function\"\n\t\t\t\t) {\n\t\t\t\t\tconst pnpApi = _module.findPnpApi(noop);\n\t\t\t\t\tif (pnpApi) {\n\t\t\t\t\t\tresolvedID = pnpApi.resolveRequest(resolve, noop);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tconst raw = await createRequire(noop)(resolvedID);\n\t\t\t\tplugin = raw.default || raw;\n\t\t\t} catch (error) {\n\t\t\t\t// Only log in development, but not during tests when a native plugin matches.\n\t\t\t\tif (\n\t\t\t\t\timport.meta.env.DEV &&\n\t\t\t\t\t!(import.meta.env.TEST && resolve in this._nativePlugins)\n\t\t\t\t) {\n\t\t\t\t\tconsole.error(error);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (!plugin) {\n\t\t\t\t// If an installed plugin cannot be resolved, try loading a native plugin.\n\t\t\t\tplugin = this._nativePlugins[resolve];\n\t\t\t}\n\n\t\t\tif (!plugin) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Could not resolve plugin \\`${resolve}\\`. Check that it has been installed.`,\n\t\t\t\t);\n\t\t\t}\n\t\t} else {\n\t\t\tplugin = resolve;\n\t\t}\n\n\t\tif (!plugin) {\n\t\t\tthrow new Error(`Could not load plugin: \\`${resolve}\\``);\n\t\t}\n\n\t\tconst mergedOptions = defu(options, plugin.defaultOptions || {});\n\n\t\treturn {\n\t\t\t...plugin,\n\t\t\tresolve,\n\t\t\toptions: mergedOptions,\n\t\t};\n\t}\n\n\tprivate async _setupPlugin(\n\t\tplugin: LoadedSliceMachinePlugin,\n\t\tas: \"adapter\" | \"plugin\",\n\t): Promise<void> {\n\t\tconst context = createSliceMachineContext({\n\t\t\tactions: this.rawActions,\n\t\t\thelpers: this.rawHelpers,\n\t\t\tproject: this._project,\n\t\t\tplugin,\n\t\t});\n\t\tconst hookSystemScope =\n\t\t\tthis._hookSystem.createScope<SliceMachineHookExtraArgs>(\n\t\t\t\tplugin.meta.name,\n\t\t\t\t[context],\n\t\t\t);\n\n\t\t// Prevent plugins from hooking to adapter only hooks\n\t\tconst hook: typeof hookSystemScope.hook =\n\t\t\tas === \"adapter\"\n\t\t\t\t? hookSystemScope.hook\n\t\t\t\t: (type, hook, ...args) => {\n\t\t\t\t\t\tif (ADAPTER_ONLY_HOOKS.includes(type)) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn hookSystemScope.hook(type, hook, ...args);\n\t\t\t\t };\n\n\t\t// Run plugin setup with actions and context\n\t\ttry {\n\t\t\tawait plugin.setup({\n\t\t\t\t...context,\n\t\t\t\thook,\n\t\t\t\tunhook: hookSystemScope.unhook,\n\t\t\t});\n\t\t} catch (error) {\n\t\t\tif (error instanceof Error) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Plugin \\`${plugin.meta.name}\\` errored during setup: ${error.message}`,\n\t\t\t\t\t{ cause: error },\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Plugin \\`${plugin.meta.name}\\` errored during setup: ${error}`,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate _validateAdapter(adapter: LoadedSliceMachinePlugin): void {\n\t\tconst hooks = this._hookSystem.hooksForOwner(adapter.meta.name);\n\t\tconst hookTypes = hooks.map((hook) => hook.meta.type);\n\n\t\tconst missingHooks = REQUIRED_ADAPTER_HOOKS.filter(\n\t\t\t(requiredHookType) => !hookTypes.includes(requiredHookType),\n\t\t);\n\n\t\tif (missingHooks.length) {\n\t\t\tthrow new Error(\n\t\t\t\t`Adapter \\`${\n\t\t\t\t\tadapter.meta.name\n\t\t\t\t}\\` is missing hooks: \\`${missingHooks.join(\"`, `\")}\\``,\n\t\t\t);\n\t\t}\n\t}\n\n\tasync init(): Promise<void> {\n\t\tconst [adapter, ...plugins] = await Promise.all(\n\t\t\t[\n\t\t\t\tthis._project.config.adapter,\n\t\t\t\t...(this._project.config.plugins ?? []),\n\t\t\t].map((pluginRegistration) => this._loadPlugin(pluginRegistration)),\n\t\t);\n\n\t\tawait Promise.all([\n\t\t\tthis._setupPlugin(adapter, \"adapter\"),\n\t\t\t...plugins.map((plugin) => this._setupPlugin(plugin, \"plugin\")),\n\t\t]);\n\n\t\tthis._validateAdapter(adapter);\n\t}\n}\n\ntype CreateSliceMachinePluginRunnerArgs = {\n\tproject: SliceMachineProject;\n\tnativePlugins?: Record<string, SliceMachinePlugin>;\n};\n\n/**\n * @internal\n */\nexport const createSliceMachinePluginRunner = ({\n\tproject,\n\tnativePlugins,\n}: CreateSliceMachinePluginRunnerArgs): SliceMachinePluginRunner => {\n\tconst hookSystem = createSliceMachineHookSystem();\n\n\treturn new SliceMachinePluginRunner({\n\t\tproject,\n\t\thookSystem,\n\t\tnativePlugins,\n\t});\n};\n"],"names":["hook"],"mappings":"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"}
1
+ {"version":3,"file":"createSliceMachinePluginRunner.js","sources":["../../src/createSliceMachinePluginRunner.ts"],"sourcesContent":["import * as path from \"node:path\";\nimport _module, { createRequire } from \"node:module\";\n\nimport { defu } from \"defu\";\n\nimport { HookSystem } from \"./lib/HookSystem\";\nimport { createSliceMachineContext } from \"./createSliceMachineContext\";\nimport {\n\tLoadedSliceMachinePlugin,\n\tSliceMachinePlugin,\n} from \"./defineSliceMachinePlugin\";\nimport {\n\tSliceMachineConfigPluginRegistration,\n\tSliceMachineHookExtraArgs,\n\tSliceMachineHookTypes,\n\tSliceMachineHooks,\n\tSliceMachineProject,\n} from \"./types\";\nimport { createSliceMachineHookSystem } from \"./createSliceMachineHookSystem\";\nimport {\n\tcreateSliceMachineActions,\n\tSliceMachineActions,\n} from \"./createSliceMachineActions\";\nimport {\n\tcreateSliceMachineHelpers,\n\tSliceMachineHelpers,\n} from \"./createSliceMachineHelpers\";\n\n/**\n * @internal\n */\nexport const REQUIRED_ADAPTER_HOOKS: SliceMachineHookTypes[] = [\n\t\"slice:create\",\n\t\"slice:read\",\n\t\"slice:rename\",\n\t\"slice:delete\",\n\t\"slice:update\",\n\t\"slice:asset:update\",\n\t\"slice:asset:read\",\n\t\"slice:asset:delete\",\n\t\"slice-library:read\",\n\t\"custom-type:create\",\n\t\"custom-type:read\",\n\t\"custom-type:rename\",\n\t\"custom-type:delete\",\n\t\"custom-type:update\",\n\t\"custom-type:asset:update\",\n\t\"custom-type:asset:read\",\n\t\"custom-type:asset:delete\",\n\t\"custom-type-library:read\",\n];\n/**\n * @internal\n */\nexport const ADAPTER_ONLY_HOOKS: SliceMachineHookTypes[] = [\n\t\"slice:read\",\n\t\"slice:asset:read\",\n\t\"slice-library:read\",\n\t\"custom-type:read\",\n\t\"custom-type:asset:read\",\n\t\"custom-type-library:read\",\n\t\"project:environment:read\",\n];\n\ntype SliceMachinePluginRunnerConstructorArgs = {\n\tproject: SliceMachineProject;\n\thookSystem: HookSystem<SliceMachineHooks>;\n\tnativePlugins?: Record<string, SliceMachinePlugin>;\n};\n\n/**\n * @internal\n */\nexport class SliceMachinePluginRunner {\n\tprivate _project: SliceMachineProject;\n\tprivate _hookSystem: HookSystem<SliceMachineHooks>;\n\tprivate _nativePlugins: Record<string, SliceMachinePlugin>;\n\n\t/**\n\t * Slice Machine actions provided to hooks.\n\t *\n\t * IMPORTANT: Prefer creating your own abstraction over using `rawActions`\n\t * directly to prevent code breakage if this internal API changes.\n\t *\n\t * @internal\n\t */\n\trawActions: SliceMachineActions;\n\n\t/**\n\t * Slice Machine helpers provided to hooks.\n\t *\n\t * IMPORTANT: Prefer creating your own abstraction over using `rawHelpers`\n\t * directly to prevent code breakage if this internal API changes.\n\t *\n\t * @internal\n\t */\n\trawHelpers: SliceMachineHelpers;\n\n\t// Methods forwarded to the plugin runner's hook system.\n\tcallHook: HookSystem<SliceMachineHooks>[\"callHook\"];\n\thooksForOwner: HookSystem<SliceMachineHooks>[\"hooksForOwner\"];\n\thooksForType: HookSystem<SliceMachineHooks>[\"hooksForType\"];\n\tcreateScope: HookSystem<SliceMachineHooks>[\"createScope\"];\n\n\tconstructor({\n\t\tproject,\n\t\thookSystem,\n\t\tnativePlugins = {},\n\t}: SliceMachinePluginRunnerConstructorArgs) {\n\t\tthis._project = project;\n\t\tthis._hookSystem = hookSystem;\n\t\tthis._nativePlugins = nativePlugins;\n\n\t\tthis.rawActions = createSliceMachineActions(\n\t\t\tthis._project,\n\t\t\tthis._hookSystem,\n\t\t);\n\t\tthis.rawHelpers = createSliceMachineHelpers(this._project);\n\n\t\tthis.callHook = this._hookSystem.callHook.bind(this._hookSystem);\n\t\tthis.hooksForOwner = this._hookSystem.hooksForOwner.bind(this._hookSystem);\n\t\tthis.hooksForType = this._hookSystem.hooksForType.bind(this._hookSystem);\n\t\tthis.createScope = this._hookSystem.createScope.bind(this._hookSystem);\n\t}\n\n\tprivate async _loadPlugin(\n\t\tpluginRegistration: SliceMachineConfigPluginRegistration,\n\t): Promise<LoadedSliceMachinePlugin> {\n\t\t// Sanitize registration\n\t\tconst { resolve, options = {} } =\n\t\t\ttypeof pluginRegistration === \"object\" && \"resolve\" in pluginRegistration\n\t\t\t\t? pluginRegistration\n\t\t\t\t: { resolve: pluginRegistration };\n\n\t\tlet plugin: SliceMachinePlugin | undefined = undefined;\n\n\t\tif (typeof resolve === \"string\") {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t\t\ttry {\n\t\t\t\tconst noop = path.resolve(this._project.root, \"noop.js\");\n\n\t\t\t\tlet resolvedID = resolve;\n\n\t\t\t\t// Support Yarn PnP\n\t\t\t\tif (\n\t\t\t\t\tprocess.versions.pnp &&\n\t\t\t\t\t\"findPnpApi\" in _module &&\n\t\t\t\t\ttypeof _module.findPnpApi === \"function\"\n\t\t\t\t) {\n\t\t\t\t\tconst pnpApi = _module.findPnpApi(noop);\n\t\t\t\t\tif (pnpApi) {\n\t\t\t\t\t\tresolvedID = pnpApi.resolveRequest(resolve, noop);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tconst raw = await createRequire(noop)(resolvedID);\n\t\t\t\tplugin = raw.default || raw;\n\t\t\t} catch (error) {\n\t\t\t\t// Only log in development, but not during tests when a native plugin matches.\n\t\t\t\tif (\n\t\t\t\t\timport.meta.env.DEV &&\n\t\t\t\t\t!(import.meta.env.TEST && resolve in this._nativePlugins)\n\t\t\t\t) {\n\t\t\t\t\tconsole.error(error);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (!plugin) {\n\t\t\t\t// If an installed plugin cannot be resolved, try loading a native plugin.\n\t\t\t\tplugin = this._nativePlugins[resolve];\n\t\t\t}\n\n\t\t\tif (!plugin) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Could not resolve plugin \\`${resolve}\\`. Check that it has been installed.`,\n\t\t\t\t);\n\t\t\t}\n\t\t} else {\n\t\t\tplugin = resolve;\n\t\t}\n\n\t\tif (!plugin) {\n\t\t\tthrow new Error(`Could not load plugin: \\`${resolve}\\``);\n\t\t}\n\n\t\tconst mergedOptions = defu(options, plugin.defaultOptions || {});\n\n\t\treturn {\n\t\t\t...plugin,\n\t\t\tresolve,\n\t\t\toptions: mergedOptions,\n\t\t};\n\t}\n\n\tprivate async _setupPlugin(\n\t\tplugin: LoadedSliceMachinePlugin,\n\t\tas: \"adapter\" | \"plugin\",\n\t): Promise<void> {\n\t\tconst context = createSliceMachineContext({\n\t\t\tactions: this.rawActions,\n\t\t\thelpers: this.rawHelpers,\n\t\t\tproject: this._project,\n\t\t\tplugin,\n\t\t});\n\t\tconst hookSystemScope =\n\t\t\tthis._hookSystem.createScope<SliceMachineHookExtraArgs>(\n\t\t\t\tplugin.meta.name,\n\t\t\t\t[context],\n\t\t\t);\n\n\t\t// Prevent plugins from hooking to adapter only hooks\n\t\tconst hook: typeof hookSystemScope.hook =\n\t\t\tas === \"adapter\"\n\t\t\t\t? hookSystemScope.hook\n\t\t\t\t: (type, hook, ...args) => {\n\t\t\t\t\t\tif (ADAPTER_ONLY_HOOKS.includes(type)) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn hookSystemScope.hook(type, hook, ...args);\n\t\t\t\t };\n\n\t\t// Run plugin setup with actions and context\n\t\ttry {\n\t\t\tawait plugin.setup({\n\t\t\t\t...context,\n\t\t\t\thook,\n\t\t\t\tunhook: hookSystemScope.unhook,\n\t\t\t});\n\t\t} catch (error) {\n\t\t\tif (error instanceof Error) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Plugin \\`${plugin.meta.name}\\` errored during setup: ${error.message}`,\n\t\t\t\t\t{ cause: error },\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Plugin \\`${plugin.meta.name}\\` errored during setup: ${error}`,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate _validateAdapter(adapter: LoadedSliceMachinePlugin): void {\n\t\tconst hooks = this._hookSystem.hooksForOwner(adapter.meta.name);\n\t\tconst hookTypes = hooks.map((hook) => hook.meta.type);\n\n\t\tconst missingHooks = REQUIRED_ADAPTER_HOOKS.filter(\n\t\t\t(requiredHookType) => !hookTypes.includes(requiredHookType),\n\t\t);\n\n\t\tif (missingHooks.length) {\n\t\t\tthrow new Error(\n\t\t\t\t`Adapter \\`${\n\t\t\t\t\tadapter.meta.name\n\t\t\t\t}\\` is missing hooks: \\`${missingHooks.join(\"`, `\")}\\``,\n\t\t\t);\n\t\t}\n\t}\n\n\tasync init(): Promise<void> {\n\t\tconst [adapter, ...plugins] = await Promise.all(\n\t\t\t[\n\t\t\t\tthis._project.config.adapter,\n\t\t\t\t...(this._project.config.plugins ?? []),\n\t\t\t].map((pluginRegistration) => this._loadPlugin(pluginRegistration)),\n\t\t);\n\n\t\tawait Promise.all([\n\t\t\tthis._setupPlugin(adapter, \"adapter\"),\n\t\t\t...plugins.map((plugin) => this._setupPlugin(plugin, \"plugin\")),\n\t\t]);\n\n\t\tthis._validateAdapter(adapter);\n\t}\n}\n\ntype CreateSliceMachinePluginRunnerArgs = {\n\tproject: SliceMachineProject;\n\tnativePlugins?: Record<string, SliceMachinePlugin>;\n};\n\n/**\n * @internal\n */\nexport const createSliceMachinePluginRunner = ({\n\tproject,\n\tnativePlugins,\n}: CreateSliceMachinePluginRunnerArgs): SliceMachinePluginRunner => {\n\tconst hookSystem = createSliceMachineHookSystem();\n\n\treturn new SliceMachinePluginRunner({\n\t\tproject,\n\t\thookSystem,\n\t\tnativePlugins,\n\t});\n};\n"],"names":["hook"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"checkPathExists.cjs","sources":["../../../../src/fs/lib/checkPathExists.ts"],"sourcesContent":["import { PathLike } from \"node:fs\";\n\nimport * as fs from \"./fsLimit\";\n\nexport async function checkPathExists(path: PathLike): Promise<boolean> {\n\ttry {\n\t\tawait fs.access(path);\n\n\t\treturn true;\n\t} catch {\n\t\treturn false;\n\t}\n}\n"],"names":["fs.access"],"mappings":";;;AAIA,eAAsB,gBAAgB,MAAc;AAC/C,MAAA;AACG,UAAAA,QAAAA,OAAU,IAAI;AAEb,WAAA;AAAA,EAAA,QACN;AACM,WAAA;AAAA,EACR;AACD;;"}
1
+ {"version":3,"file":"checkPathExists.cjs","sources":["../../../../src/fs/lib/checkPathExists.ts"],"sourcesContent":["import { PathLike } from \"node:fs\";\n\nimport * as fs from \"./fsLimit\";\n\nexport async function checkPathExists(path: PathLike): Promise<boolean> {\n\ttry {\n\t\tawait fs.access(path);\n\n\t\treturn true;\n\t} catch {\n\t\treturn false;\n\t}\n}\n"],"names":["fs.access"],"mappings":";;;AAIA,eAAsB,gBAAgB,MAAc;AAC/C,MAAA;AACG,UAAAA,QAAAA,OAAU,IAAI;AAEb,WAAA;AAAA,EAAA,QACA;AACA,WAAA;AAAA,EACR;AACD;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"checkPathExists.js","sources":["../../../../src/fs/lib/checkPathExists.ts"],"sourcesContent":["import { PathLike } from \"node:fs\";\n\nimport * as fs from \"./fsLimit\";\n\nexport async function checkPathExists(path: PathLike): Promise<boolean> {\n\ttry {\n\t\tawait fs.access(path);\n\n\t\treturn true;\n\t} catch {\n\t\treturn false;\n\t}\n}\n"],"names":["fs.access"],"mappings":";AAIA,eAAsB,gBAAgB,MAAc;AAC/C,MAAA;AACG,UAAAA,OAAU,IAAI;AAEb,WAAA;AAAA,EAAA,QACN;AACM,WAAA;AAAA,EACR;AACD;"}
1
+ {"version":3,"file":"checkPathExists.js","sources":["../../../../src/fs/lib/checkPathExists.ts"],"sourcesContent":["import { PathLike } from \"node:fs\";\n\nimport * as fs from \"./fsLimit\";\n\nexport async function checkPathExists(path: PathLike): Promise<boolean> {\n\ttry {\n\t\tawait fs.access(path);\n\n\t\treturn true;\n\t} catch {\n\t\treturn false;\n\t}\n}\n"],"names":["fs.access"],"mappings":";AAIA,eAAsB,gBAAgB,MAAc;AAC/C,MAAA;AACG,UAAAA,OAAU,IAAI;AAEb,WAAA;AAAA,EAAA,QACA;AACA,WAAA;AAAA,EACR;AACD;"}
@@ -1,4 +1,5 @@
1
1
  /// <reference types="node" />
2
+ /// <reference types="node" />
2
3
  import { BuildCustomTypeFilePathArgs } from "./buildCustomTypeFilePath";
3
4
  import { ReadProjectFileArgs } from "./readProjectFile";
4
5
  import { BufferEncoding } from "./types";
@@ -1 +1 @@
1
- {"version":3,"file":"readCustomTypeLibrary.cjs","sources":["../../../src/fs/readCustomTypeLibrary.ts"],"sourcesContent":["import * as path from \"node:path\";\n\nimport { checkPathExists } from \"./lib/checkPathExists\";\nimport { isCustomTypeModel } from \"./lib/isCustomTypeModel\";\nimport { readJSONFile } from \"./lib/readJSONFile\";\nimport * as fs from \"./lib/fsLimit\";\n\nimport { CUSTOM_TYPE_MODEL_FILENAME } from \"./constants\";\nimport {\n\tbuildCustomTypeLibraryDirectoryPath,\n\tBuildCustomTypeLibraryDirectoryPathArgs,\n} from \"./buildCustomTypeLibraryDirectoryPath\";\n\nexport type ReadCustomTypeLibraryArgs = BuildCustomTypeLibraryDirectoryPathArgs;\n\nexport type ReadCustomTypeLibraryReturnType = {\n\tids: string[];\n};\n\nexport const readCustomTypeLibrary = async (\n\targs: ReadCustomTypeLibraryArgs,\n): Promise<ReadCustomTypeLibraryReturnType> => {\n\tconst libraryDir = buildCustomTypeLibraryDirectoryPath({\n\t\tabsolute: true,\n\t\thelpers: args.helpers,\n\t});\n\n\tif (!(await checkPathExists(libraryDir))) {\n\t\treturn {\n\t\t\tids: [],\n\t\t};\n\t}\n\n\tconst childDirs = await fs.readdir(libraryDir, { withFileTypes: true });\n\n\t/**\n\t * Paths to models that could not be read due to invalid JSON.\n\t */\n\tconst unreadableModelPaths: string[] = [];\n\n\tconst ids: string[] = [];\n\tawait Promise.all(\n\t\tchildDirs.map(async (childDir) => {\n\t\t\tif (childDir.isDirectory()) {\n\t\t\t\tconst childDirContents = await fs.readdir(\n\t\t\t\t\tpath.join(libraryDir, childDir.name),\n\t\t\t\t\t{\n\t\t\t\t\t\twithFileTypes: true,\n\t\t\t\t\t},\n\t\t\t\t);\n\t\t\t\tconst isCustomTypeDir = childDirContents.some((entry) => {\n\t\t\t\t\treturn entry.isFile() && entry.name === CUSTOM_TYPE_MODEL_FILENAME;\n\t\t\t\t});\n\n\t\t\t\tif (isCustomTypeDir) {\n\t\t\t\t\tconst modelPath = path.join(\n\t\t\t\t\t\tlibraryDir,\n\t\t\t\t\t\tchildDir.name,\n\t\t\t\t\t\tCUSTOM_TYPE_MODEL_FILENAME,\n\t\t\t\t\t);\n\n\t\t\t\t\ttry {\n\t\t\t\t\t\tconst modelContents = await readJSONFile(modelPath);\n\n\t\t\t\t\t\tif (isCustomTypeModel(modelContents)) {\n\t\t\t\t\t\t\tids.push(modelContents.id);\n\t\t\t\t\t\t}\n\t\t\t\t\t} catch {\n\t\t\t\t\t\tunreadableModelPaths.push(modelPath);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}),\n\t);\n\n\tif (unreadableModelPaths.length > 0) {\n\t\tconst formattedPaths = unreadableModelPaths.join(\", \");\n\n\t\tthrow new Error(\n\t\t\t`The following custom type models could not be read: [${formattedPaths}]`,\n\t\t);\n\t}\n\n\treturn {\n\t\tids: ids.sort(),\n\t};\n};\n"],"names":["buildCustomTypeLibraryDirectoryPath","checkPathExists","fs.readdir","path","CUSTOM_TYPE_MODEL_FILENAME","readJSONFile","isCustomTypeModel"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAmBa,MAAA,wBAAwB,OACpC,SAC6C;AAC7C,QAAM,aAAaA,oCAAAA,oCAAoC;AAAA,IACtD,UAAU;AAAA,IACV,SAAS,KAAK;AAAA,EAAA,CACd;AAED,MAAI,CAAE,MAAMC,gCAAgB,UAAU,GAAI;AAClC,WAAA;AAAA,MACN,KAAK,CAAE;AAAA,IAAA;AAAA,EAET;AAEM,QAAA,YAAY,MAAMC,gBAAW,YAAY,EAAE,eAAe,MAAM;AAKtE,QAAM,uBAAiC,CAAA;AAEvC,QAAM,MAAgB,CAAA;AACtB,QAAM,QAAQ,IACb,UAAU,IAAI,OAAO,aAAY;AAC5B,QAAA,SAAS,eAAe;AACrB,YAAA,mBAAmB,MAAMA,QAAAA,QAC9BC,gBAAK,KAAK,YAAY,SAAS,IAAI,GACnC;AAAA,QACC,eAAe;AAAA,MAAA,CACf;AAEF,YAAM,kBAAkB,iBAAiB,KAAK,CAAC,UAAS;AACvD,eAAO,MAAM,OAAA,KAAY,MAAM,SAASC,UAAAA;AAAAA,MAAA,CACxC;AAED,UAAI,iBAAiB;AACpB,cAAM,YAAYD,gBAAK,KACtB,YACA,SAAS,MACTC,UAAAA,0BAA0B;AAGvB,YAAA;AACG,gBAAA,gBAAgB,MAAMC,0BAAa,SAAS;AAE9C,cAAAC,kBAAAA,kBAAkB,aAAa,GAAG;AACjC,gBAAA,KAAK,cAAc,EAAE;AAAA,UAC1B;AAAA,QAAA,QACC;AACD,+BAAqB,KAAK,SAAS;AAAA,QACpC;AAAA,MACD;AAAA,IACD;AAAA,EACA,CAAA,CAAC;AAGC,MAAA,qBAAqB,SAAS,GAAG;AAC9B,UAAA,iBAAiB,qBAAqB,KAAK,IAAI;AAE/C,UAAA,IAAI,MACT,wDAAwD,iBAAiB;AAAA,EAE3E;AAEO,SAAA;AAAA,IACN,KAAK,IAAI,KAAM;AAAA,EAAA;AAEjB;;"}
1
+ {"version":3,"file":"readCustomTypeLibrary.cjs","sources":["../../../src/fs/readCustomTypeLibrary.ts"],"sourcesContent":["import * as path from \"node:path\";\n\nimport { checkPathExists } from \"./lib/checkPathExists\";\nimport { isCustomTypeModel } from \"./lib/isCustomTypeModel\";\nimport { readJSONFile } from \"./lib/readJSONFile\";\nimport * as fs from \"./lib/fsLimit\";\n\nimport { CUSTOM_TYPE_MODEL_FILENAME } from \"./constants\";\nimport {\n\tbuildCustomTypeLibraryDirectoryPath,\n\tBuildCustomTypeLibraryDirectoryPathArgs,\n} from \"./buildCustomTypeLibraryDirectoryPath\";\n\nexport type ReadCustomTypeLibraryArgs = BuildCustomTypeLibraryDirectoryPathArgs;\n\nexport type ReadCustomTypeLibraryReturnType = {\n\tids: string[];\n};\n\nexport const readCustomTypeLibrary = async (\n\targs: ReadCustomTypeLibraryArgs,\n): Promise<ReadCustomTypeLibraryReturnType> => {\n\tconst libraryDir = buildCustomTypeLibraryDirectoryPath({\n\t\tabsolute: true,\n\t\thelpers: args.helpers,\n\t});\n\n\tif (!(await checkPathExists(libraryDir))) {\n\t\treturn {\n\t\t\tids: [],\n\t\t};\n\t}\n\n\tconst childDirs = await fs.readdir(libraryDir, { withFileTypes: true });\n\n\t/**\n\t * Paths to models that could not be read due to invalid JSON.\n\t */\n\tconst unreadableModelPaths: string[] = [];\n\n\tconst ids: string[] = [];\n\tawait Promise.all(\n\t\tchildDirs.map(async (childDir) => {\n\t\t\tif (childDir.isDirectory()) {\n\t\t\t\tconst childDirContents = await fs.readdir(\n\t\t\t\t\tpath.join(libraryDir, childDir.name),\n\t\t\t\t\t{\n\t\t\t\t\t\twithFileTypes: true,\n\t\t\t\t\t},\n\t\t\t\t);\n\t\t\t\tconst isCustomTypeDir = childDirContents.some((entry) => {\n\t\t\t\t\treturn entry.isFile() && entry.name === CUSTOM_TYPE_MODEL_FILENAME;\n\t\t\t\t});\n\n\t\t\t\tif (isCustomTypeDir) {\n\t\t\t\t\tconst modelPath = path.join(\n\t\t\t\t\t\tlibraryDir,\n\t\t\t\t\t\tchildDir.name,\n\t\t\t\t\t\tCUSTOM_TYPE_MODEL_FILENAME,\n\t\t\t\t\t);\n\n\t\t\t\t\ttry {\n\t\t\t\t\t\tconst modelContents = await readJSONFile(modelPath);\n\n\t\t\t\t\t\tif (isCustomTypeModel(modelContents)) {\n\t\t\t\t\t\t\tids.push(modelContents.id);\n\t\t\t\t\t\t}\n\t\t\t\t\t} catch {\n\t\t\t\t\t\tunreadableModelPaths.push(modelPath);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}),\n\t);\n\n\tif (unreadableModelPaths.length > 0) {\n\t\tconst formattedPaths = unreadableModelPaths.join(\", \");\n\n\t\tthrow new Error(\n\t\t\t`The following custom type models could not be read: [${formattedPaths}]`,\n\t\t);\n\t}\n\n\treturn {\n\t\tids: ids.sort(),\n\t};\n};\n"],"names":["buildCustomTypeLibraryDirectoryPath","checkPathExists","fs.readdir","path","CUSTOM_TYPE_MODEL_FILENAME","readJSONFile","isCustomTypeModel"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAmBa,MAAA,wBAAwB,OACpC,SAC6C;AAC7C,QAAM,aAAaA,oCAAAA,oCAAoC;AAAA,IACtD,UAAU;AAAA,IACV,SAAS,KAAK;AAAA,EAAA,CACd;AAED,MAAI,CAAE,MAAMC,gCAAgB,UAAU,GAAI;AAClC,WAAA;AAAA,MACN,KAAK,CAAE;AAAA,IAAA;AAAA,EAET;AAEM,QAAA,YAAY,MAAMC,gBAAW,YAAY,EAAE,eAAe,MAAM;AAKtE,QAAM,uBAAiC,CAAA;AAEvC,QAAM,MAAgB,CAAA;AACtB,QAAM,QAAQ,IACb,UAAU,IAAI,OAAO,aAAY;AAC5B,QAAA,SAAS,eAAe;AACrB,YAAA,mBAAmB,MAAMA,QAAAA,QAC9BC,gBAAK,KAAK,YAAY,SAAS,IAAI,GACnC;AAAA,QACC,eAAe;AAAA,MAAA,CACf;AAEF,YAAM,kBAAkB,iBAAiB,KAAK,CAAC,UAAS;AACvD,eAAO,MAAM,OAAA,KAAY,MAAM,SAASC,UAAAA;AAAAA,MAAA,CACxC;AAED,UAAI,iBAAiB;AACpB,cAAM,YAAYD,gBAAK,KACtB,YACA,SAAS,MACTC,UAAAA,0BAA0B;AAGvB,YAAA;AACG,gBAAA,gBAAgB,MAAMC,0BAAa,SAAS;AAE9C,cAAAC,kBAAAA,kBAAkB,aAAa,GAAG;AACjC,gBAAA,KAAK,cAAc,EAAE;AAAA,UAC1B;AAAA,QAAA,QACO;AACP,+BAAqB,KAAK,SAAS;AAAA,QACpC;AAAA,MACD;AAAA,IACD;AAAA,EACA,CAAA,CAAC;AAGC,MAAA,qBAAqB,SAAS,GAAG;AAC9B,UAAA,iBAAiB,qBAAqB,KAAK,IAAI;AAErD,UAAM,IAAI,MACT,wDAAwD,cAAc,GAAG;AAAA,EAE3E;AAEO,SAAA;AAAA,IACN,KAAK,IAAI,KAAM;AAAA,EAAA;AAEjB;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"readCustomTypeLibrary.js","sources":["../../../src/fs/readCustomTypeLibrary.ts"],"sourcesContent":["import * as path from \"node:path\";\n\nimport { checkPathExists } from \"./lib/checkPathExists\";\nimport { isCustomTypeModel } from \"./lib/isCustomTypeModel\";\nimport { readJSONFile } from \"./lib/readJSONFile\";\nimport * as fs from \"./lib/fsLimit\";\n\nimport { CUSTOM_TYPE_MODEL_FILENAME } from \"./constants\";\nimport {\n\tbuildCustomTypeLibraryDirectoryPath,\n\tBuildCustomTypeLibraryDirectoryPathArgs,\n} from \"./buildCustomTypeLibraryDirectoryPath\";\n\nexport type ReadCustomTypeLibraryArgs = BuildCustomTypeLibraryDirectoryPathArgs;\n\nexport type ReadCustomTypeLibraryReturnType = {\n\tids: string[];\n};\n\nexport const readCustomTypeLibrary = async (\n\targs: ReadCustomTypeLibraryArgs,\n): Promise<ReadCustomTypeLibraryReturnType> => {\n\tconst libraryDir = buildCustomTypeLibraryDirectoryPath({\n\t\tabsolute: true,\n\t\thelpers: args.helpers,\n\t});\n\n\tif (!(await checkPathExists(libraryDir))) {\n\t\treturn {\n\t\t\tids: [],\n\t\t};\n\t}\n\n\tconst childDirs = await fs.readdir(libraryDir, { withFileTypes: true });\n\n\t/**\n\t * Paths to models that could not be read due to invalid JSON.\n\t */\n\tconst unreadableModelPaths: string[] = [];\n\n\tconst ids: string[] = [];\n\tawait Promise.all(\n\t\tchildDirs.map(async (childDir) => {\n\t\t\tif (childDir.isDirectory()) {\n\t\t\t\tconst childDirContents = await fs.readdir(\n\t\t\t\t\tpath.join(libraryDir, childDir.name),\n\t\t\t\t\t{\n\t\t\t\t\t\twithFileTypes: true,\n\t\t\t\t\t},\n\t\t\t\t);\n\t\t\t\tconst isCustomTypeDir = childDirContents.some((entry) => {\n\t\t\t\t\treturn entry.isFile() && entry.name === CUSTOM_TYPE_MODEL_FILENAME;\n\t\t\t\t});\n\n\t\t\t\tif (isCustomTypeDir) {\n\t\t\t\t\tconst modelPath = path.join(\n\t\t\t\t\t\tlibraryDir,\n\t\t\t\t\t\tchildDir.name,\n\t\t\t\t\t\tCUSTOM_TYPE_MODEL_FILENAME,\n\t\t\t\t\t);\n\n\t\t\t\t\ttry {\n\t\t\t\t\t\tconst modelContents = await readJSONFile(modelPath);\n\n\t\t\t\t\t\tif (isCustomTypeModel(modelContents)) {\n\t\t\t\t\t\t\tids.push(modelContents.id);\n\t\t\t\t\t\t}\n\t\t\t\t\t} catch {\n\t\t\t\t\t\tunreadableModelPaths.push(modelPath);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}),\n\t);\n\n\tif (unreadableModelPaths.length > 0) {\n\t\tconst formattedPaths = unreadableModelPaths.join(\", \");\n\n\t\tthrow new Error(\n\t\t\t`The following custom type models could not be read: [${formattedPaths}]`,\n\t\t);\n\t}\n\n\treturn {\n\t\tids: ids.sort(),\n\t};\n};\n"],"names":["fs.readdir"],"mappings":";;;;;;;AAmBa,MAAA,wBAAwB,OACpC,SAC6C;AAC7C,QAAM,aAAa,oCAAoC;AAAA,IACtD,UAAU;AAAA,IACV,SAAS,KAAK;AAAA,EAAA,CACd;AAED,MAAI,CAAE,MAAM,gBAAgB,UAAU,GAAI;AAClC,WAAA;AAAA,MACN,KAAK,CAAE;AAAA,IAAA;AAAA,EAET;AAEM,QAAA,YAAY,MAAMA,QAAW,YAAY,EAAE,eAAe,MAAM;AAKtE,QAAM,uBAAiC,CAAA;AAEvC,QAAM,MAAgB,CAAA;AACtB,QAAM,QAAQ,IACb,UAAU,IAAI,OAAO,aAAY;AAC5B,QAAA,SAAS,eAAe;AACrB,YAAA,mBAAmB,MAAMA,QAC9B,KAAK,KAAK,YAAY,SAAS,IAAI,GACnC;AAAA,QACC,eAAe;AAAA,MAAA,CACf;AAEF,YAAM,kBAAkB,iBAAiB,KAAK,CAAC,UAAS;AACvD,eAAO,MAAM,OAAA,KAAY,MAAM,SAAS;AAAA,MAAA,CACxC;AAED,UAAI,iBAAiB;AACpB,cAAM,YAAY,KAAK,KACtB,YACA,SAAS,MACT,0BAA0B;AAGvB,YAAA;AACG,gBAAA,gBAAgB,MAAM,aAAa,SAAS;AAE9C,cAAA,kBAAkB,aAAa,GAAG;AACjC,gBAAA,KAAK,cAAc,EAAE;AAAA,UAC1B;AAAA,QAAA,QACC;AACD,+BAAqB,KAAK,SAAS;AAAA,QACpC;AAAA,MACD;AAAA,IACD;AAAA,EACA,CAAA,CAAC;AAGC,MAAA,qBAAqB,SAAS,GAAG;AAC9B,UAAA,iBAAiB,qBAAqB,KAAK,IAAI;AAE/C,UAAA,IAAI,MACT,wDAAwD,iBAAiB;AAAA,EAE3E;AAEO,SAAA;AAAA,IACN,KAAK,IAAI,KAAM;AAAA,EAAA;AAEjB;"}
1
+ {"version":3,"file":"readCustomTypeLibrary.js","sources":["../../../src/fs/readCustomTypeLibrary.ts"],"sourcesContent":["import * as path from \"node:path\";\n\nimport { checkPathExists } from \"./lib/checkPathExists\";\nimport { isCustomTypeModel } from \"./lib/isCustomTypeModel\";\nimport { readJSONFile } from \"./lib/readJSONFile\";\nimport * as fs from \"./lib/fsLimit\";\n\nimport { CUSTOM_TYPE_MODEL_FILENAME } from \"./constants\";\nimport {\n\tbuildCustomTypeLibraryDirectoryPath,\n\tBuildCustomTypeLibraryDirectoryPathArgs,\n} from \"./buildCustomTypeLibraryDirectoryPath\";\n\nexport type ReadCustomTypeLibraryArgs = BuildCustomTypeLibraryDirectoryPathArgs;\n\nexport type ReadCustomTypeLibraryReturnType = {\n\tids: string[];\n};\n\nexport const readCustomTypeLibrary = async (\n\targs: ReadCustomTypeLibraryArgs,\n): Promise<ReadCustomTypeLibraryReturnType> => {\n\tconst libraryDir = buildCustomTypeLibraryDirectoryPath({\n\t\tabsolute: true,\n\t\thelpers: args.helpers,\n\t});\n\n\tif (!(await checkPathExists(libraryDir))) {\n\t\treturn {\n\t\t\tids: [],\n\t\t};\n\t}\n\n\tconst childDirs = await fs.readdir(libraryDir, { withFileTypes: true });\n\n\t/**\n\t * Paths to models that could not be read due to invalid JSON.\n\t */\n\tconst unreadableModelPaths: string[] = [];\n\n\tconst ids: string[] = [];\n\tawait Promise.all(\n\t\tchildDirs.map(async (childDir) => {\n\t\t\tif (childDir.isDirectory()) {\n\t\t\t\tconst childDirContents = await fs.readdir(\n\t\t\t\t\tpath.join(libraryDir, childDir.name),\n\t\t\t\t\t{\n\t\t\t\t\t\twithFileTypes: true,\n\t\t\t\t\t},\n\t\t\t\t);\n\t\t\t\tconst isCustomTypeDir = childDirContents.some((entry) => {\n\t\t\t\t\treturn entry.isFile() && entry.name === CUSTOM_TYPE_MODEL_FILENAME;\n\t\t\t\t});\n\n\t\t\t\tif (isCustomTypeDir) {\n\t\t\t\t\tconst modelPath = path.join(\n\t\t\t\t\t\tlibraryDir,\n\t\t\t\t\t\tchildDir.name,\n\t\t\t\t\t\tCUSTOM_TYPE_MODEL_FILENAME,\n\t\t\t\t\t);\n\n\t\t\t\t\ttry {\n\t\t\t\t\t\tconst modelContents = await readJSONFile(modelPath);\n\n\t\t\t\t\t\tif (isCustomTypeModel(modelContents)) {\n\t\t\t\t\t\t\tids.push(modelContents.id);\n\t\t\t\t\t\t}\n\t\t\t\t\t} catch {\n\t\t\t\t\t\tunreadableModelPaths.push(modelPath);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}),\n\t);\n\n\tif (unreadableModelPaths.length > 0) {\n\t\tconst formattedPaths = unreadableModelPaths.join(\", \");\n\n\t\tthrow new Error(\n\t\t\t`The following custom type models could not be read: [${formattedPaths}]`,\n\t\t);\n\t}\n\n\treturn {\n\t\tids: ids.sort(),\n\t};\n};\n"],"names":["fs.readdir"],"mappings":";;;;;;;AAmBa,MAAA,wBAAwB,OACpC,SAC6C;AAC7C,QAAM,aAAa,oCAAoC;AAAA,IACtD,UAAU;AAAA,IACV,SAAS,KAAK;AAAA,EAAA,CACd;AAED,MAAI,CAAE,MAAM,gBAAgB,UAAU,GAAI;AAClC,WAAA;AAAA,MACN,KAAK,CAAE;AAAA,IAAA;AAAA,EAET;AAEM,QAAA,YAAY,MAAMA,QAAW,YAAY,EAAE,eAAe,MAAM;AAKtE,QAAM,uBAAiC,CAAA;AAEvC,QAAM,MAAgB,CAAA;AACtB,QAAM,QAAQ,IACb,UAAU,IAAI,OAAO,aAAY;AAC5B,QAAA,SAAS,eAAe;AACrB,YAAA,mBAAmB,MAAMA,QAC9B,KAAK,KAAK,YAAY,SAAS,IAAI,GACnC;AAAA,QACC,eAAe;AAAA,MAAA,CACf;AAEF,YAAM,kBAAkB,iBAAiB,KAAK,CAAC,UAAS;AACvD,eAAO,MAAM,OAAA,KAAY,MAAM,SAAS;AAAA,MAAA,CACxC;AAED,UAAI,iBAAiB;AACpB,cAAM,YAAY,KAAK,KACtB,YACA,SAAS,MACT,0BAA0B;AAGvB,YAAA;AACG,gBAAA,gBAAgB,MAAM,aAAa,SAAS;AAE9C,cAAA,kBAAkB,aAAa,GAAG;AACjC,gBAAA,KAAK,cAAc,EAAE;AAAA,UAC1B;AAAA,QAAA,QACO;AACP,+BAAqB,KAAK,SAAS;AAAA,QACpC;AAAA,MACD;AAAA,IACD;AAAA,EACA,CAAA,CAAC;AAGC,MAAA,qBAAqB,SAAS,GAAG;AAC9B,UAAA,iBAAiB,qBAAqB,KAAK,IAAI;AAErD,UAAM,IAAI,MACT,wDAAwD,cAAc,GAAG;AAAA,EAE3E;AAEO,SAAA;AAAA,IACN,KAAK,IAAI,KAAM;AAAA,EAAA;AAEjB;"}
@@ -1,4 +1,5 @@
1
1
  /// <reference types="node" />
2
+ /// <reference types="node" />
2
3
  import { SliceMachineHelpers } from "../createSliceMachineHelpers";
3
4
  import * as fs from "./lib/fsLimit";
4
5
  type BufferEncoding = Extract<Parameters<typeof fs.readFile>[1], string>;
@@ -1,4 +1,5 @@
1
1
  /// <reference types="node" />
2
+ /// <reference types="node" />
2
3
  import { BuildSliceFilePathArgs } from "./buildSliceFilePath";
3
4
  import { ReadProjectFileArgs } from "./readProjectFile";
4
5
  import { BufferEncoding } from "./types";
@@ -1 +1 @@
1
- {"version":3,"file":"readSliceLibrary.cjs","sources":["../../../src/fs/readSliceLibrary.ts"],"sourcesContent":["import * as path from \"node:path\";\n\nimport { checkPathExists } from \"./lib/checkPathExists\";\nimport { isSharedSliceModel } from \"./lib/isSharedSliceModel\";\nimport { readJSONFile } from \"./lib/readJSONFile\";\nimport * as fs from \"./lib/fsLimit\";\n\nimport { SHARED_SLICE_MODEL_FILENAME } from \"./constants\";\nimport {\n\tbuildSliceLibraryDirectoryPath,\n\tBuildSliceLibraryDirectoryPathArgs,\n} from \"./buildSliceLibraryDirectoryPath\";\n\nexport type ReadSliceLibraryArgs = BuildSliceLibraryDirectoryPathArgs;\n\nexport type ReadSliceLibraryReturnType = {\n\tid: string;\n\tsliceIDs: string[];\n};\n\nexport const readSliceLibrary = async (\n\targs: ReadSliceLibraryArgs,\n): Promise<ReadSliceLibraryReturnType> => {\n\tconst libraryDir = buildSliceLibraryDirectoryPath({\n\t\tlibraryID: args.libraryID,\n\t\tabsolute: true,\n\t\thelpers: args.helpers,\n\t});\n\n\tif (!(await checkPathExists(libraryDir))) {\n\t\treturn {\n\t\t\tid: args.libraryID,\n\t\t\tsliceIDs: [],\n\t\t};\n\t}\n\n\tconst childDirs = await fs.readdir(libraryDir, { withFileTypes: true });\n\n\t/**\n\t * Paths to models that could not be read due to invalid JSON.\n\t */\n\tconst unreadableModelPaths: string[] = [];\n\n\tconst sliceIDs: string[] = [];\n\tawait Promise.all(\n\t\tchildDirs.map(async (childDir) => {\n\t\t\tif (childDir.isDirectory()) {\n\t\t\t\tconst childDirContents = await fs.readdir(\n\t\t\t\t\tpath.join(libraryDir, childDir.name),\n\t\t\t\t\t{\n\t\t\t\t\t\twithFileTypes: true,\n\t\t\t\t\t},\n\t\t\t\t);\n\t\t\t\tconst isSliceDir = childDirContents.some((entry) => {\n\t\t\t\t\treturn entry.isFile() && entry.name === SHARED_SLICE_MODEL_FILENAME;\n\t\t\t\t});\n\n\t\t\t\tif (isSliceDir) {\n\t\t\t\t\tconst modelPath = path.join(\n\t\t\t\t\t\tlibraryDir,\n\t\t\t\t\t\tchildDir.name,\n\t\t\t\t\t\tSHARED_SLICE_MODEL_FILENAME,\n\t\t\t\t\t);\n\n\t\t\t\t\ttry {\n\t\t\t\t\t\tconst modelContents = await readJSONFile(modelPath);\n\n\t\t\t\t\t\tif (isSharedSliceModel(modelContents)) {\n\t\t\t\t\t\t\tsliceIDs.push(modelContents.id);\n\t\t\t\t\t\t}\n\t\t\t\t\t} catch {\n\t\t\t\t\t\t// JSON could not be read or parsed\n\t\t\t\t\t\tunreadableModelPaths.push(modelPath);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}),\n\t);\n\n\tif (unreadableModelPaths.length > 0) {\n\t\tconst formattedPaths = unreadableModelPaths.join(\", \");\n\n\t\tthrow new Error(\n\t\t\t`The following Slice models could not be read: [${formattedPaths}]`,\n\t\t);\n\t}\n\n\treturn {\n\t\tid: args.libraryID,\n\t\tsliceIDs: sliceIDs.sort(),\n\t};\n};\n"],"names":["buildSliceLibraryDirectoryPath","checkPathExists","fs.readdir","path","SHARED_SLICE_MODEL_FILENAME","readJSONFile","isSharedSliceModel"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAoBa,MAAA,mBAAmB,OAC/B,SACwC;AACxC,QAAM,aAAaA,+BAAAA,+BAA+B;AAAA,IACjD,WAAW,KAAK;AAAA,IAChB,UAAU;AAAA,IACV,SAAS,KAAK;AAAA,EAAA,CACd;AAED,MAAI,CAAE,MAAMC,gCAAgB,UAAU,GAAI;AAClC,WAAA;AAAA,MACN,IAAI,KAAK;AAAA,MACT,UAAU,CAAE;AAAA,IAAA;AAAA,EAEd;AAEM,QAAA,YAAY,MAAMC,gBAAW,YAAY,EAAE,eAAe,MAAM;AAKtE,QAAM,uBAAiC,CAAA;AAEvC,QAAM,WAAqB,CAAA;AAC3B,QAAM,QAAQ,IACb,UAAU,IAAI,OAAO,aAAY;AAC5B,QAAA,SAAS,eAAe;AACrB,YAAA,mBAAmB,MAAMA,QAAAA,QAC9BC,gBAAK,KAAK,YAAY,SAAS,IAAI,GACnC;AAAA,QACC,eAAe;AAAA,MAAA,CACf;AAEF,YAAM,aAAa,iBAAiB,KAAK,CAAC,UAAS;AAClD,eAAO,MAAM,OAAA,KAAY,MAAM,SAASC,UAAAA;AAAAA,MAAA,CACxC;AAED,UAAI,YAAY;AACf,cAAM,YAAYD,gBAAK,KACtB,YACA,SAAS,MACTC,UAAAA,2BAA2B;AAGxB,YAAA;AACG,gBAAA,gBAAgB,MAAMC,0BAAa,SAAS;AAE9C,cAAAC,mBAAAA,mBAAmB,aAAa,GAAG;AAC7B,qBAAA,KAAK,cAAc,EAAE;AAAA,UAC/B;AAAA,QAAA,QACC;AAED,+BAAqB,KAAK,SAAS;AAAA,QACpC;AAAA,MACD;AAAA,IACD;AAAA,EACA,CAAA,CAAC;AAGC,MAAA,qBAAqB,SAAS,GAAG;AAC9B,UAAA,iBAAiB,qBAAqB,KAAK,IAAI;AAE/C,UAAA,IAAI,MACT,kDAAkD,iBAAiB;AAAA,EAErE;AAEO,SAAA;AAAA,IACN,IAAI,KAAK;AAAA,IACT,UAAU,SAAS,KAAM;AAAA,EAAA;AAE3B;;"}
1
+ {"version":3,"file":"readSliceLibrary.cjs","sources":["../../../src/fs/readSliceLibrary.ts"],"sourcesContent":["import * as path from \"node:path\";\n\nimport { checkPathExists } from \"./lib/checkPathExists\";\nimport { isSharedSliceModel } from \"./lib/isSharedSliceModel\";\nimport { readJSONFile } from \"./lib/readJSONFile\";\nimport * as fs from \"./lib/fsLimit\";\n\nimport { SHARED_SLICE_MODEL_FILENAME } from \"./constants\";\nimport {\n\tbuildSliceLibraryDirectoryPath,\n\tBuildSliceLibraryDirectoryPathArgs,\n} from \"./buildSliceLibraryDirectoryPath\";\n\nexport type ReadSliceLibraryArgs = BuildSliceLibraryDirectoryPathArgs;\n\nexport type ReadSliceLibraryReturnType = {\n\tid: string;\n\tsliceIDs: string[];\n};\n\nexport const readSliceLibrary = async (\n\targs: ReadSliceLibraryArgs,\n): Promise<ReadSliceLibraryReturnType> => {\n\tconst libraryDir = buildSliceLibraryDirectoryPath({\n\t\tlibraryID: args.libraryID,\n\t\tabsolute: true,\n\t\thelpers: args.helpers,\n\t});\n\n\tif (!(await checkPathExists(libraryDir))) {\n\t\treturn {\n\t\t\tid: args.libraryID,\n\t\t\tsliceIDs: [],\n\t\t};\n\t}\n\n\tconst childDirs = await fs.readdir(libraryDir, { withFileTypes: true });\n\n\t/**\n\t * Paths to models that could not be read due to invalid JSON.\n\t */\n\tconst unreadableModelPaths: string[] = [];\n\n\tconst sliceIDs: string[] = [];\n\tawait Promise.all(\n\t\tchildDirs.map(async (childDir) => {\n\t\t\tif (childDir.isDirectory()) {\n\t\t\t\tconst childDirContents = await fs.readdir(\n\t\t\t\t\tpath.join(libraryDir, childDir.name),\n\t\t\t\t\t{\n\t\t\t\t\t\twithFileTypes: true,\n\t\t\t\t\t},\n\t\t\t\t);\n\t\t\t\tconst isSliceDir = childDirContents.some((entry) => {\n\t\t\t\t\treturn entry.isFile() && entry.name === SHARED_SLICE_MODEL_FILENAME;\n\t\t\t\t});\n\n\t\t\t\tif (isSliceDir) {\n\t\t\t\t\tconst modelPath = path.join(\n\t\t\t\t\t\tlibraryDir,\n\t\t\t\t\t\tchildDir.name,\n\t\t\t\t\t\tSHARED_SLICE_MODEL_FILENAME,\n\t\t\t\t\t);\n\n\t\t\t\t\ttry {\n\t\t\t\t\t\tconst modelContents = await readJSONFile(modelPath);\n\n\t\t\t\t\t\tif (isSharedSliceModel(modelContents)) {\n\t\t\t\t\t\t\tsliceIDs.push(modelContents.id);\n\t\t\t\t\t\t}\n\t\t\t\t\t} catch {\n\t\t\t\t\t\t// JSON could not be read or parsed\n\t\t\t\t\t\tunreadableModelPaths.push(modelPath);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}),\n\t);\n\n\tif (unreadableModelPaths.length > 0) {\n\t\tconst formattedPaths = unreadableModelPaths.join(\", \");\n\n\t\tthrow new Error(\n\t\t\t`The following Slice models could not be read: [${formattedPaths}]`,\n\t\t);\n\t}\n\n\treturn {\n\t\tid: args.libraryID,\n\t\tsliceIDs: sliceIDs.sort(),\n\t};\n};\n"],"names":["buildSliceLibraryDirectoryPath","checkPathExists","fs.readdir","path","SHARED_SLICE_MODEL_FILENAME","readJSONFile","isSharedSliceModel"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAoBa,MAAA,mBAAmB,OAC/B,SACwC;AACxC,QAAM,aAAaA,+BAAAA,+BAA+B;AAAA,IACjD,WAAW,KAAK;AAAA,IAChB,UAAU;AAAA,IACV,SAAS,KAAK;AAAA,EAAA,CACd;AAED,MAAI,CAAE,MAAMC,gCAAgB,UAAU,GAAI;AAClC,WAAA;AAAA,MACN,IAAI,KAAK;AAAA,MACT,UAAU,CAAE;AAAA,IAAA;AAAA,EAEd;AAEM,QAAA,YAAY,MAAMC,gBAAW,YAAY,EAAE,eAAe,MAAM;AAKtE,QAAM,uBAAiC,CAAA;AAEvC,QAAM,WAAqB,CAAA;AAC3B,QAAM,QAAQ,IACb,UAAU,IAAI,OAAO,aAAY;AAC5B,QAAA,SAAS,eAAe;AACrB,YAAA,mBAAmB,MAAMA,QAAAA,QAC9BC,gBAAK,KAAK,YAAY,SAAS,IAAI,GACnC;AAAA,QACC,eAAe;AAAA,MAAA,CACf;AAEF,YAAM,aAAa,iBAAiB,KAAK,CAAC,UAAS;AAClD,eAAO,MAAM,OAAA,KAAY,MAAM,SAASC,UAAAA;AAAAA,MAAA,CACxC;AAED,UAAI,YAAY;AACf,cAAM,YAAYD,gBAAK,KACtB,YACA,SAAS,MACTC,UAAAA,2BAA2B;AAGxB,YAAA;AACG,gBAAA,gBAAgB,MAAMC,0BAAa,SAAS;AAE9C,cAAAC,mBAAAA,mBAAmB,aAAa,GAAG;AAC7B,qBAAA,KAAK,cAAc,EAAE;AAAA,UAC/B;AAAA,QAAA,QACO;AAEP,+BAAqB,KAAK,SAAS;AAAA,QACpC;AAAA,MACD;AAAA,IACD;AAAA,EACA,CAAA,CAAC;AAGC,MAAA,qBAAqB,SAAS,GAAG;AAC9B,UAAA,iBAAiB,qBAAqB,KAAK,IAAI;AAErD,UAAM,IAAI,MACT,kDAAkD,cAAc,GAAG;AAAA,EAErE;AAEO,SAAA;AAAA,IACN,IAAI,KAAK;AAAA,IACT,UAAU,SAAS,KAAM;AAAA,EAAA;AAE3B;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"readSliceLibrary.js","sources":["../../../src/fs/readSliceLibrary.ts"],"sourcesContent":["import * as path from \"node:path\";\n\nimport { checkPathExists } from \"./lib/checkPathExists\";\nimport { isSharedSliceModel } from \"./lib/isSharedSliceModel\";\nimport { readJSONFile } from \"./lib/readJSONFile\";\nimport * as fs from \"./lib/fsLimit\";\n\nimport { SHARED_SLICE_MODEL_FILENAME } from \"./constants\";\nimport {\n\tbuildSliceLibraryDirectoryPath,\n\tBuildSliceLibraryDirectoryPathArgs,\n} from \"./buildSliceLibraryDirectoryPath\";\n\nexport type ReadSliceLibraryArgs = BuildSliceLibraryDirectoryPathArgs;\n\nexport type ReadSliceLibraryReturnType = {\n\tid: string;\n\tsliceIDs: string[];\n};\n\nexport const readSliceLibrary = async (\n\targs: ReadSliceLibraryArgs,\n): Promise<ReadSliceLibraryReturnType> => {\n\tconst libraryDir = buildSliceLibraryDirectoryPath({\n\t\tlibraryID: args.libraryID,\n\t\tabsolute: true,\n\t\thelpers: args.helpers,\n\t});\n\n\tif (!(await checkPathExists(libraryDir))) {\n\t\treturn {\n\t\t\tid: args.libraryID,\n\t\t\tsliceIDs: [],\n\t\t};\n\t}\n\n\tconst childDirs = await fs.readdir(libraryDir, { withFileTypes: true });\n\n\t/**\n\t * Paths to models that could not be read due to invalid JSON.\n\t */\n\tconst unreadableModelPaths: string[] = [];\n\n\tconst sliceIDs: string[] = [];\n\tawait Promise.all(\n\t\tchildDirs.map(async (childDir) => {\n\t\t\tif (childDir.isDirectory()) {\n\t\t\t\tconst childDirContents = await fs.readdir(\n\t\t\t\t\tpath.join(libraryDir, childDir.name),\n\t\t\t\t\t{\n\t\t\t\t\t\twithFileTypes: true,\n\t\t\t\t\t},\n\t\t\t\t);\n\t\t\t\tconst isSliceDir = childDirContents.some((entry) => {\n\t\t\t\t\treturn entry.isFile() && entry.name === SHARED_SLICE_MODEL_FILENAME;\n\t\t\t\t});\n\n\t\t\t\tif (isSliceDir) {\n\t\t\t\t\tconst modelPath = path.join(\n\t\t\t\t\t\tlibraryDir,\n\t\t\t\t\t\tchildDir.name,\n\t\t\t\t\t\tSHARED_SLICE_MODEL_FILENAME,\n\t\t\t\t\t);\n\n\t\t\t\t\ttry {\n\t\t\t\t\t\tconst modelContents = await readJSONFile(modelPath);\n\n\t\t\t\t\t\tif (isSharedSliceModel(modelContents)) {\n\t\t\t\t\t\t\tsliceIDs.push(modelContents.id);\n\t\t\t\t\t\t}\n\t\t\t\t\t} catch {\n\t\t\t\t\t\t// JSON could not be read or parsed\n\t\t\t\t\t\tunreadableModelPaths.push(modelPath);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}),\n\t);\n\n\tif (unreadableModelPaths.length > 0) {\n\t\tconst formattedPaths = unreadableModelPaths.join(\", \");\n\n\t\tthrow new Error(\n\t\t\t`The following Slice models could not be read: [${formattedPaths}]`,\n\t\t);\n\t}\n\n\treturn {\n\t\tid: args.libraryID,\n\t\tsliceIDs: sliceIDs.sort(),\n\t};\n};\n"],"names":["fs.readdir"],"mappings":";;;;;;;AAoBa,MAAA,mBAAmB,OAC/B,SACwC;AACxC,QAAM,aAAa,+BAA+B;AAAA,IACjD,WAAW,KAAK;AAAA,IAChB,UAAU;AAAA,IACV,SAAS,KAAK;AAAA,EAAA,CACd;AAED,MAAI,CAAE,MAAM,gBAAgB,UAAU,GAAI;AAClC,WAAA;AAAA,MACN,IAAI,KAAK;AAAA,MACT,UAAU,CAAE;AAAA,IAAA;AAAA,EAEd;AAEM,QAAA,YAAY,MAAMA,QAAW,YAAY,EAAE,eAAe,MAAM;AAKtE,QAAM,uBAAiC,CAAA;AAEvC,QAAM,WAAqB,CAAA;AAC3B,QAAM,QAAQ,IACb,UAAU,IAAI,OAAO,aAAY;AAC5B,QAAA,SAAS,eAAe;AACrB,YAAA,mBAAmB,MAAMA,QAC9B,KAAK,KAAK,YAAY,SAAS,IAAI,GACnC;AAAA,QACC,eAAe;AAAA,MAAA,CACf;AAEF,YAAM,aAAa,iBAAiB,KAAK,CAAC,UAAS;AAClD,eAAO,MAAM,OAAA,KAAY,MAAM,SAAS;AAAA,MAAA,CACxC;AAED,UAAI,YAAY;AACf,cAAM,YAAY,KAAK,KACtB,YACA,SAAS,MACT,2BAA2B;AAGxB,YAAA;AACG,gBAAA,gBAAgB,MAAM,aAAa,SAAS;AAE9C,cAAA,mBAAmB,aAAa,GAAG;AAC7B,qBAAA,KAAK,cAAc,EAAE;AAAA,UAC/B;AAAA,QAAA,QACC;AAED,+BAAqB,KAAK,SAAS;AAAA,QACpC;AAAA,MACD;AAAA,IACD;AAAA,EACA,CAAA,CAAC;AAGC,MAAA,qBAAqB,SAAS,GAAG;AAC9B,UAAA,iBAAiB,qBAAqB,KAAK,IAAI;AAE/C,UAAA,IAAI,MACT,kDAAkD,iBAAiB;AAAA,EAErE;AAEO,SAAA;AAAA,IACN,IAAI,KAAK;AAAA,IACT,UAAU,SAAS,KAAM;AAAA,EAAA;AAE3B;"}
1
+ {"version":3,"file":"readSliceLibrary.js","sources":["../../../src/fs/readSliceLibrary.ts"],"sourcesContent":["import * as path from \"node:path\";\n\nimport { checkPathExists } from \"./lib/checkPathExists\";\nimport { isSharedSliceModel } from \"./lib/isSharedSliceModel\";\nimport { readJSONFile } from \"./lib/readJSONFile\";\nimport * as fs from \"./lib/fsLimit\";\n\nimport { SHARED_SLICE_MODEL_FILENAME } from \"./constants\";\nimport {\n\tbuildSliceLibraryDirectoryPath,\n\tBuildSliceLibraryDirectoryPathArgs,\n} from \"./buildSliceLibraryDirectoryPath\";\n\nexport type ReadSliceLibraryArgs = BuildSliceLibraryDirectoryPathArgs;\n\nexport type ReadSliceLibraryReturnType = {\n\tid: string;\n\tsliceIDs: string[];\n};\n\nexport const readSliceLibrary = async (\n\targs: ReadSliceLibraryArgs,\n): Promise<ReadSliceLibraryReturnType> => {\n\tconst libraryDir = buildSliceLibraryDirectoryPath({\n\t\tlibraryID: args.libraryID,\n\t\tabsolute: true,\n\t\thelpers: args.helpers,\n\t});\n\n\tif (!(await checkPathExists(libraryDir))) {\n\t\treturn {\n\t\t\tid: args.libraryID,\n\t\t\tsliceIDs: [],\n\t\t};\n\t}\n\n\tconst childDirs = await fs.readdir(libraryDir, { withFileTypes: true });\n\n\t/**\n\t * Paths to models that could not be read due to invalid JSON.\n\t */\n\tconst unreadableModelPaths: string[] = [];\n\n\tconst sliceIDs: string[] = [];\n\tawait Promise.all(\n\t\tchildDirs.map(async (childDir) => {\n\t\t\tif (childDir.isDirectory()) {\n\t\t\t\tconst childDirContents = await fs.readdir(\n\t\t\t\t\tpath.join(libraryDir, childDir.name),\n\t\t\t\t\t{\n\t\t\t\t\t\twithFileTypes: true,\n\t\t\t\t\t},\n\t\t\t\t);\n\t\t\t\tconst isSliceDir = childDirContents.some((entry) => {\n\t\t\t\t\treturn entry.isFile() && entry.name === SHARED_SLICE_MODEL_FILENAME;\n\t\t\t\t});\n\n\t\t\t\tif (isSliceDir) {\n\t\t\t\t\tconst modelPath = path.join(\n\t\t\t\t\t\tlibraryDir,\n\t\t\t\t\t\tchildDir.name,\n\t\t\t\t\t\tSHARED_SLICE_MODEL_FILENAME,\n\t\t\t\t\t);\n\n\t\t\t\t\ttry {\n\t\t\t\t\t\tconst modelContents = await readJSONFile(modelPath);\n\n\t\t\t\t\t\tif (isSharedSliceModel(modelContents)) {\n\t\t\t\t\t\t\tsliceIDs.push(modelContents.id);\n\t\t\t\t\t\t}\n\t\t\t\t\t} catch {\n\t\t\t\t\t\t// JSON could not be read or parsed\n\t\t\t\t\t\tunreadableModelPaths.push(modelPath);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}),\n\t);\n\n\tif (unreadableModelPaths.length > 0) {\n\t\tconst formattedPaths = unreadableModelPaths.join(\", \");\n\n\t\tthrow new Error(\n\t\t\t`The following Slice models could not be read: [${formattedPaths}]`,\n\t\t);\n\t}\n\n\treturn {\n\t\tid: args.libraryID,\n\t\tsliceIDs: sliceIDs.sort(),\n\t};\n};\n"],"names":["fs.readdir"],"mappings":";;;;;;;AAoBa,MAAA,mBAAmB,OAC/B,SACwC;AACxC,QAAM,aAAa,+BAA+B;AAAA,IACjD,WAAW,KAAK;AAAA,IAChB,UAAU;AAAA,IACV,SAAS,KAAK;AAAA,EAAA,CACd;AAED,MAAI,CAAE,MAAM,gBAAgB,UAAU,GAAI;AAClC,WAAA;AAAA,MACN,IAAI,KAAK;AAAA,MACT,UAAU,CAAE;AAAA,IAAA;AAAA,EAEd;AAEM,QAAA,YAAY,MAAMA,QAAW,YAAY,EAAE,eAAe,MAAM;AAKtE,QAAM,uBAAiC,CAAA;AAEvC,QAAM,WAAqB,CAAA;AAC3B,QAAM,QAAQ,IACb,UAAU,IAAI,OAAO,aAAY;AAC5B,QAAA,SAAS,eAAe;AACrB,YAAA,mBAAmB,MAAMA,QAC9B,KAAK,KAAK,YAAY,SAAS,IAAI,GACnC;AAAA,QACC,eAAe;AAAA,MAAA,CACf;AAEF,YAAM,aAAa,iBAAiB,KAAK,CAAC,UAAS;AAClD,eAAO,MAAM,OAAA,KAAY,MAAM,SAAS;AAAA,MAAA,CACxC;AAED,UAAI,YAAY;AACf,cAAM,YAAY,KAAK,KACtB,YACA,SAAS,MACT,2BAA2B;AAGxB,YAAA;AACG,gBAAA,gBAAgB,MAAM,aAAa,SAAS;AAE9C,cAAA,mBAAmB,aAAa,GAAG;AAC7B,qBAAA,KAAK,cAAc,EAAE;AAAA,UAC/B;AAAA,QAAA,QACO;AAEP,+BAAqB,KAAK,SAAS;AAAA,QACpC;AAAA,MACD;AAAA,IACD;AAAA,EACA,CAAA,CAAC;AAGC,MAAA,qBAAqB,SAAS,GAAG;AAC9B,UAAA,iBAAiB,qBAAqB,KAAK,IAAI;AAErD,UAAM,IAAI,MACT,kDAAkD,cAAc,GAAG;AAAA,EAErE;AAEO,SAAA;AAAA,IACN,IAAI,KAAK;AAAA,IACT,UAAU,SAAS,KAAM;AAAA,EAAA;AAE3B;"}
@@ -1 +1 @@
1
- {"version":3,"file":"readSliceModel.cjs","sources":["../../../src/fs/readSliceModel.ts"],"sourcesContent":["import { SharedSlice } from \"@prismicio/types-internal/lib/customtypes\";\nimport * as path from \"node:path\";\n\nimport { SliceMachineHelpers } from \"../createSliceMachineHelpers\";\n\nimport { checkPathExists } from \"./lib/checkPathExists\";\nimport { isSharedSliceModel } from \"./lib/isSharedSliceModel\";\nimport { readJSONFile } from \"./lib/readJSONFile\";\nimport * as fs from \"./lib/fsLimit\";\n\nimport { buildSliceLibraryDirectoryPath } from \"./buildSliceLibraryDirectoryPath\";\nimport { SHARED_SLICE_MODEL_FILENAME } from \"./constants\";\n\nexport type ReadSliceModelArgs = {\n\tlibraryID: string;\n\tsliceID: string;\n\thelpers: SliceMachineHelpers;\n};\n\nexport type ReadSliceModelReturnType = {\n\tmodel: SharedSlice;\n};\n\nexport const readSliceModel = async (\n\targs: ReadSliceModelArgs,\n): Promise<ReadSliceModelReturnType> => {\n\tconst libraryDir = buildSliceLibraryDirectoryPath({\n\t\tlibraryID: args.libraryID,\n\t\tabsolute: true,\n\t\thelpers: args.helpers,\n\t});\n\n\tif (await checkPathExists(libraryDir)) {\n\t\tconst childDirs = await fs.readdir(libraryDir, { withFileTypes: true });\n\n\t\t/**\n\t\t * Paths to models that could not be read due to invalid JSON.\n\t\t */\n\t\tconst unreadableModelPaths: string[] = [];\n\n\t\t// Find the first matching model.\n\t\tconst [model] = (\n\t\t\tawait Promise.all(\n\t\t\t\tchildDirs.map(async (childDir) => {\n\t\t\t\t\tif (childDir.isDirectory()) {\n\t\t\t\t\t\tconst modelPath = path.join(\n\t\t\t\t\t\t\tlibraryDir,\n\t\t\t\t\t\t\tchildDir.name,\n\t\t\t\t\t\t\tSHARED_SLICE_MODEL_FILENAME,\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tconst modelContents = await readJSONFile(modelPath);\n\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\tisSharedSliceModel(modelContents) &&\n\t\t\t\t\t\t\t\tmodelContents.id === args.sliceID\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\treturn modelContents;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\t\tunreadableModelPaths.push(modelPath);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}),\n\t\t\t)\n\t\t).filter((model): model is NonNullable<typeof model> => Boolean(model));\n\n\t\tif (model) {\n\t\t\treturn {\n\t\t\t\tmodel,\n\t\t\t};\n\t\t} else {\n\t\t\tif (unreadableModelPaths.length > 0) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Did not find a Slice model with ID \"${args.sliceID}\" in the \"${\n\t\t\t\t\t\targs.libraryID\n\t\t\t\t\t}\" Slice Library. The following Slice models could not be read: [${unreadableModelPaths.join(\n\t\t\t\t\t\t\", \",\n\t\t\t\t\t)}]`,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\tthrow new Error(\n\t\t`Did not find a Slice model with ID \"${args.sliceID}\" in the \"${args.libraryID}\" Slice Library.`,\n\t);\n};\n"],"names":["buildSliceLibraryDirectoryPath","checkPathExists","fs.readdir","path","SHARED_SLICE_MODEL_FILENAME","readJSONFile","isSharedSliceModel","model"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAuBa,MAAA,iBAAiB,OAC7B,SACsC;AACtC,QAAM,aAAaA,+BAAAA,+BAA+B;AAAA,IACjD,WAAW,KAAK;AAAA,IAChB,UAAU;AAAA,IACV,SAAS,KAAK;AAAA,EAAA,CACd;AAEG,MAAA,MAAMC,gBAAAA,gBAAgB,UAAU,GAAG;AAChC,UAAA,YAAY,MAAMC,gBAAW,YAAY,EAAE,eAAe,MAAM;AAKtE,UAAM,uBAAiC,CAAA;AAGjC,UAAA,CAAC,KAAK,KACX,MAAM,QAAQ,IACb,UAAU,IAAI,OAAO,aAAY;AAC5B,UAAA,SAAS,eAAe;AAC3B,cAAM,YAAYC,gBAAK,KACtB,YACA,SAAS,MACTC,UAAAA,2BAA2B;AAGxB,YAAA;AACG,gBAAA,gBAAgB,MAAMC,0BAAa,SAAS;AAElD,cACCC,mBAAAA,mBAAmB,aAAa,KAChC,cAAc,OAAO,KAAK,SACzB;AACM,mBAAA;AAAA,UACR;AAAA,iBACQ;AACR,+BAAqB,KAAK,SAAS;AAAA,QACpC;AAAA,MACD;AAAA,IAAA,CACA,CAAC,GAEF,OAAO,CAACC,WAA8C,QAAQA,MAAK,CAAC;AAEtE,QAAI,OAAO;AACH,aAAA;AAAA,QACN;AAAA,MAAA;AAAA,WAEK;AACF,UAAA,qBAAqB,SAAS,GAAG;AAC9B,cAAA,IAAI,MACT,uCAAuC,KAAK,oBAC3C,KAAK,4EAC6D,qBAAqB,KACvF,IAAI,IACD;AAAA,MAEN;AAAA,IACD;AAAA,EACD;AAEA,QAAM,IAAI,MACT,uCAAuC,KAAK,oBAAoB,KAAK,2BAA2B;AAElG;;"}
1
+ {"version":3,"file":"readSliceModel.cjs","sources":["../../../src/fs/readSliceModel.ts"],"sourcesContent":["import { SharedSlice } from \"@prismicio/types-internal/lib/customtypes\";\nimport * as path from \"node:path\";\n\nimport { SliceMachineHelpers } from \"../createSliceMachineHelpers\";\n\nimport { checkPathExists } from \"./lib/checkPathExists\";\nimport { isSharedSliceModel } from \"./lib/isSharedSliceModel\";\nimport { readJSONFile } from \"./lib/readJSONFile\";\nimport * as fs from \"./lib/fsLimit\";\n\nimport { buildSliceLibraryDirectoryPath } from \"./buildSliceLibraryDirectoryPath\";\nimport { SHARED_SLICE_MODEL_FILENAME } from \"./constants\";\n\nexport type ReadSliceModelArgs = {\n\tlibraryID: string;\n\tsliceID: string;\n\thelpers: SliceMachineHelpers;\n};\n\nexport type ReadSliceModelReturnType = {\n\tmodel: SharedSlice;\n};\n\nexport const readSliceModel = async (\n\targs: ReadSliceModelArgs,\n): Promise<ReadSliceModelReturnType> => {\n\tconst libraryDir = buildSliceLibraryDirectoryPath({\n\t\tlibraryID: args.libraryID,\n\t\tabsolute: true,\n\t\thelpers: args.helpers,\n\t});\n\n\tif (await checkPathExists(libraryDir)) {\n\t\tconst childDirs = await fs.readdir(libraryDir, { withFileTypes: true });\n\n\t\t/**\n\t\t * Paths to models that could not be read due to invalid JSON.\n\t\t */\n\t\tconst unreadableModelPaths: string[] = [];\n\n\t\t// Find the first matching model.\n\t\tconst [model] = (\n\t\t\tawait Promise.all(\n\t\t\t\tchildDirs.map(async (childDir) => {\n\t\t\t\t\tif (childDir.isDirectory()) {\n\t\t\t\t\t\tconst modelPath = path.join(\n\t\t\t\t\t\t\tlibraryDir,\n\t\t\t\t\t\t\tchildDir.name,\n\t\t\t\t\t\t\tSHARED_SLICE_MODEL_FILENAME,\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tconst modelContents = await readJSONFile(modelPath);\n\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\tisSharedSliceModel(modelContents) &&\n\t\t\t\t\t\t\t\tmodelContents.id === args.sliceID\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\treturn modelContents;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\t\tunreadableModelPaths.push(modelPath);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}),\n\t\t\t)\n\t\t).filter((model): model is NonNullable<typeof model> => Boolean(model));\n\n\t\tif (model) {\n\t\t\treturn {\n\t\t\t\tmodel,\n\t\t\t};\n\t\t} else {\n\t\t\tif (unreadableModelPaths.length > 0) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Did not find a Slice model with ID \"${args.sliceID}\" in the \"${\n\t\t\t\t\t\targs.libraryID\n\t\t\t\t\t}\" Slice Library. The following Slice models could not be read: [${unreadableModelPaths.join(\n\t\t\t\t\t\t\", \",\n\t\t\t\t\t)}]`,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\tthrow new Error(\n\t\t`Did not find a Slice model with ID \"${args.sliceID}\" in the \"${args.libraryID}\" Slice Library.`,\n\t);\n};\n"],"names":["buildSliceLibraryDirectoryPath","checkPathExists","fs.readdir","path","SHARED_SLICE_MODEL_FILENAME","readJSONFile","isSharedSliceModel","model"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAuBa,MAAA,iBAAiB,OAC7B,SACsC;AACtC,QAAM,aAAaA,+BAAAA,+BAA+B;AAAA,IACjD,WAAW,KAAK;AAAA,IAChB,UAAU;AAAA,IACV,SAAS,KAAK;AAAA,EAAA,CACd;AAEG,MAAA,MAAMC,gBAAAA,gBAAgB,UAAU,GAAG;AAChC,UAAA,YAAY,MAAMC,gBAAW,YAAY,EAAE,eAAe,MAAM;AAKtE,UAAM,uBAAiC,CAAA;AAGjC,UAAA,CAAC,KAAK,KACX,MAAM,QAAQ,IACb,UAAU,IAAI,OAAO,aAAY;AAC5B,UAAA,SAAS,eAAe;AAC3B,cAAM,YAAYC,gBAAK,KACtB,YACA,SAAS,MACTC,UAAAA,2BAA2B;AAGxB,YAAA;AACG,gBAAA,gBAAgB,MAAMC,0BAAa,SAAS;AAElD,cACCC,mBAAAA,mBAAmB,aAAa,KAChC,cAAc,OAAO,KAAK,SACzB;AACM,mBAAA;AAAA,UACR;AAAA,iBACQ,OAAO;AACf,+BAAqB,KAAK,SAAS;AAAA,QACpC;AAAA,MACD;AAAA,IAAA,CACA,CAAC,GAEF,OAAO,CAACC,WAA8C,QAAQA,MAAK,CAAC;AAEtE,QAAI,OAAO;AACH,aAAA;AAAA,QACN;AAAA,MAAA;AAAA,WAEK;AACF,UAAA,qBAAqB,SAAS,GAAG;AACpC,cAAM,IAAI,MACT,uCAAuC,KAAK,OAAO,aAClD,KAAK,SACN,mEAAmE,qBAAqB,KACvF,IAAI,CACJ,GAAG;AAAA,MAEN;AAAA,IACD;AAAA,EACD;AAEM,QAAA,IAAI,MACT,uCAAuC,KAAK,OAAO,aAAa,KAAK,SAAS,kBAAkB;AAElG;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"readSliceModel.js","sources":["../../../src/fs/readSliceModel.ts"],"sourcesContent":["import { SharedSlice } from \"@prismicio/types-internal/lib/customtypes\";\nimport * as path from \"node:path\";\n\nimport { SliceMachineHelpers } from \"../createSliceMachineHelpers\";\n\nimport { checkPathExists } from \"./lib/checkPathExists\";\nimport { isSharedSliceModel } from \"./lib/isSharedSliceModel\";\nimport { readJSONFile } from \"./lib/readJSONFile\";\nimport * as fs from \"./lib/fsLimit\";\n\nimport { buildSliceLibraryDirectoryPath } from \"./buildSliceLibraryDirectoryPath\";\nimport { SHARED_SLICE_MODEL_FILENAME } from \"./constants\";\n\nexport type ReadSliceModelArgs = {\n\tlibraryID: string;\n\tsliceID: string;\n\thelpers: SliceMachineHelpers;\n};\n\nexport type ReadSliceModelReturnType = {\n\tmodel: SharedSlice;\n};\n\nexport const readSliceModel = async (\n\targs: ReadSliceModelArgs,\n): Promise<ReadSliceModelReturnType> => {\n\tconst libraryDir = buildSliceLibraryDirectoryPath({\n\t\tlibraryID: args.libraryID,\n\t\tabsolute: true,\n\t\thelpers: args.helpers,\n\t});\n\n\tif (await checkPathExists(libraryDir)) {\n\t\tconst childDirs = await fs.readdir(libraryDir, { withFileTypes: true });\n\n\t\t/**\n\t\t * Paths to models that could not be read due to invalid JSON.\n\t\t */\n\t\tconst unreadableModelPaths: string[] = [];\n\n\t\t// Find the first matching model.\n\t\tconst [model] = (\n\t\t\tawait Promise.all(\n\t\t\t\tchildDirs.map(async (childDir) => {\n\t\t\t\t\tif (childDir.isDirectory()) {\n\t\t\t\t\t\tconst modelPath = path.join(\n\t\t\t\t\t\t\tlibraryDir,\n\t\t\t\t\t\t\tchildDir.name,\n\t\t\t\t\t\t\tSHARED_SLICE_MODEL_FILENAME,\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tconst modelContents = await readJSONFile(modelPath);\n\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\tisSharedSliceModel(modelContents) &&\n\t\t\t\t\t\t\t\tmodelContents.id === args.sliceID\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\treturn modelContents;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\t\tunreadableModelPaths.push(modelPath);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}),\n\t\t\t)\n\t\t).filter((model): model is NonNullable<typeof model> => Boolean(model));\n\n\t\tif (model) {\n\t\t\treturn {\n\t\t\t\tmodel,\n\t\t\t};\n\t\t} else {\n\t\t\tif (unreadableModelPaths.length > 0) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Did not find a Slice model with ID \"${args.sliceID}\" in the \"${\n\t\t\t\t\t\targs.libraryID\n\t\t\t\t\t}\" Slice Library. The following Slice models could not be read: [${unreadableModelPaths.join(\n\t\t\t\t\t\t\", \",\n\t\t\t\t\t)}]`,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\tthrow new Error(\n\t\t`Did not find a Slice model with ID \"${args.sliceID}\" in the \"${args.libraryID}\" Slice Library.`,\n\t);\n};\n"],"names":["fs.readdir","model"],"mappings":";;;;;;;AAuBa,MAAA,iBAAiB,OAC7B,SACsC;AACtC,QAAM,aAAa,+BAA+B;AAAA,IACjD,WAAW,KAAK;AAAA,IAChB,UAAU;AAAA,IACV,SAAS,KAAK;AAAA,EAAA,CACd;AAEG,MAAA,MAAM,gBAAgB,UAAU,GAAG;AAChC,UAAA,YAAY,MAAMA,QAAW,YAAY,EAAE,eAAe,MAAM;AAKtE,UAAM,uBAAiC,CAAA;AAGjC,UAAA,CAAC,KAAK,KACX,MAAM,QAAQ,IACb,UAAU,IAAI,OAAO,aAAY;AAC5B,UAAA,SAAS,eAAe;AAC3B,cAAM,YAAY,KAAK,KACtB,YACA,SAAS,MACT,2BAA2B;AAGxB,YAAA;AACG,gBAAA,gBAAgB,MAAM,aAAa,SAAS;AAElD,cACC,mBAAmB,aAAa,KAChC,cAAc,OAAO,KAAK,SACzB;AACM,mBAAA;AAAA,UACR;AAAA,iBACQ;AACR,+BAAqB,KAAK,SAAS;AAAA,QACpC;AAAA,MACD;AAAA,IAAA,CACA,CAAC,GAEF,OAAO,CAACC,WAA8C,QAAQA,MAAK,CAAC;AAEtE,QAAI,OAAO;AACH,aAAA;AAAA,QACN;AAAA,MAAA;AAAA,WAEK;AACF,UAAA,qBAAqB,SAAS,GAAG;AAC9B,cAAA,IAAI,MACT,uCAAuC,KAAK,oBAC3C,KAAK,4EAC6D,qBAAqB,KACvF,IAAI,IACD;AAAA,MAEN;AAAA,IACD;AAAA,EACD;AAEA,QAAM,IAAI,MACT,uCAAuC,KAAK,oBAAoB,KAAK,2BAA2B;AAElG;"}
1
+ {"version":3,"file":"readSliceModel.js","sources":["../../../src/fs/readSliceModel.ts"],"sourcesContent":["import { SharedSlice } from \"@prismicio/types-internal/lib/customtypes\";\nimport * as path from \"node:path\";\n\nimport { SliceMachineHelpers } from \"../createSliceMachineHelpers\";\n\nimport { checkPathExists } from \"./lib/checkPathExists\";\nimport { isSharedSliceModel } from \"./lib/isSharedSliceModel\";\nimport { readJSONFile } from \"./lib/readJSONFile\";\nimport * as fs from \"./lib/fsLimit\";\n\nimport { buildSliceLibraryDirectoryPath } from \"./buildSliceLibraryDirectoryPath\";\nimport { SHARED_SLICE_MODEL_FILENAME } from \"./constants\";\n\nexport type ReadSliceModelArgs = {\n\tlibraryID: string;\n\tsliceID: string;\n\thelpers: SliceMachineHelpers;\n};\n\nexport type ReadSliceModelReturnType = {\n\tmodel: SharedSlice;\n};\n\nexport const readSliceModel = async (\n\targs: ReadSliceModelArgs,\n): Promise<ReadSliceModelReturnType> => {\n\tconst libraryDir = buildSliceLibraryDirectoryPath({\n\t\tlibraryID: args.libraryID,\n\t\tabsolute: true,\n\t\thelpers: args.helpers,\n\t});\n\n\tif (await checkPathExists(libraryDir)) {\n\t\tconst childDirs = await fs.readdir(libraryDir, { withFileTypes: true });\n\n\t\t/**\n\t\t * Paths to models that could not be read due to invalid JSON.\n\t\t */\n\t\tconst unreadableModelPaths: string[] = [];\n\n\t\t// Find the first matching model.\n\t\tconst [model] = (\n\t\t\tawait Promise.all(\n\t\t\t\tchildDirs.map(async (childDir) => {\n\t\t\t\t\tif (childDir.isDirectory()) {\n\t\t\t\t\t\tconst modelPath = path.join(\n\t\t\t\t\t\t\tlibraryDir,\n\t\t\t\t\t\t\tchildDir.name,\n\t\t\t\t\t\t\tSHARED_SLICE_MODEL_FILENAME,\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tconst modelContents = await readJSONFile(modelPath);\n\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\tisSharedSliceModel(modelContents) &&\n\t\t\t\t\t\t\t\tmodelContents.id === args.sliceID\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\treturn modelContents;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\t\tunreadableModelPaths.push(modelPath);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}),\n\t\t\t)\n\t\t).filter((model): model is NonNullable<typeof model> => Boolean(model));\n\n\t\tif (model) {\n\t\t\treturn {\n\t\t\t\tmodel,\n\t\t\t};\n\t\t} else {\n\t\t\tif (unreadableModelPaths.length > 0) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Did not find a Slice model with ID \"${args.sliceID}\" in the \"${\n\t\t\t\t\t\targs.libraryID\n\t\t\t\t\t}\" Slice Library. The following Slice models could not be read: [${unreadableModelPaths.join(\n\t\t\t\t\t\t\", \",\n\t\t\t\t\t)}]`,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\tthrow new Error(\n\t\t`Did not find a Slice model with ID \"${args.sliceID}\" in the \"${args.libraryID}\" Slice Library.`,\n\t);\n};\n"],"names":["fs.readdir","model"],"mappings":";;;;;;;AAuBa,MAAA,iBAAiB,OAC7B,SACsC;AACtC,QAAM,aAAa,+BAA+B;AAAA,IACjD,WAAW,KAAK;AAAA,IAChB,UAAU;AAAA,IACV,SAAS,KAAK;AAAA,EAAA,CACd;AAEG,MAAA,MAAM,gBAAgB,UAAU,GAAG;AAChC,UAAA,YAAY,MAAMA,QAAW,YAAY,EAAE,eAAe,MAAM;AAKtE,UAAM,uBAAiC,CAAA;AAGjC,UAAA,CAAC,KAAK,KACX,MAAM,QAAQ,IACb,UAAU,IAAI,OAAO,aAAY;AAC5B,UAAA,SAAS,eAAe;AAC3B,cAAM,YAAY,KAAK,KACtB,YACA,SAAS,MACT,2BAA2B;AAGxB,YAAA;AACG,gBAAA,gBAAgB,MAAM,aAAa,SAAS;AAElD,cACC,mBAAmB,aAAa,KAChC,cAAc,OAAO,KAAK,SACzB;AACM,mBAAA;AAAA,UACR;AAAA,iBACQ,OAAO;AACf,+BAAqB,KAAK,SAAS;AAAA,QACpC;AAAA,MACD;AAAA,IAAA,CACA,CAAC,GAEF,OAAO,CAACC,WAA8C,QAAQA,MAAK,CAAC;AAEtE,QAAI,OAAO;AACH,aAAA;AAAA,QACN;AAAA,MAAA;AAAA,WAEK;AACF,UAAA,qBAAqB,SAAS,GAAG;AACpC,cAAM,IAAI,MACT,uCAAuC,KAAK,OAAO,aAClD,KAAK,SACN,mEAAmE,qBAAqB,KACvF,IAAI,CACJ,GAAG;AAAA,MAEN;AAAA,IACD;AAAA,EACD;AAEM,QAAA,IAAI,MACT,uCAAuC,KAAK,OAAO,aAAa,KAAK,SAAS,kBAAkB;AAElG;"}
@@ -1 +1 @@
1
- {"version":3,"file":"upsertGlobalTypeScriptTypes.cjs","sources":["../../../src/fs/upsertGlobalTypeScriptTypes.ts"],"sourcesContent":["import { detectTypesProvider, generateTypes } from \"prismic-ts-codegen\";\n\nimport { SliceMachineActions } from \"../createSliceMachineActions\";\n\nimport { writeProjectFile, WriteProjectFileArgs } from \"./writeProjectFile\";\nimport {\n\tGLOBAL_TYPESCRIPT_TYPES_FILENAME,\n\tNON_EDITABLE_FILE_BANNER,\n} from \"./constants\";\n\n/**\n * Arguments for `upsertGlobalContentTypes()`.\n */\nexport type UpsertGlobalTypeScriptTypesArgs = {\n\tfilename?: string;\n\tactions: SliceMachineActions;\n} & Omit<WriteProjectFileArgs, \"filename\" | \"contents\">;\n\n/**\n * Creates a globally accessible TypeScript file containing types representing\n * the Prismic repository's content.\n *\n * @returns The file path to the written file.\n */\nexport const upsertGlobalTypeScriptTypes = async (\n\targs: UpsertGlobalTypeScriptTypesArgs,\n): Promise<string> => {\n\tconst project = await args.helpers.getProject();\n\n\tconst [customTypeModelDescriptors, sharedSliceModelDescriptors] =\n\t\tawait Promise.all([\n\t\t\targs.actions.readAllCustomTypeModels(),\n\t\t\targs.actions.readAllSliceModels(),\n\t\t]);\n\n\tconst customTypeModels = customTypeModelDescriptors.map(\n\t\t(customTypeModelDescriptors) => {\n\t\t\treturn customTypeModelDescriptors.model;\n\t\t},\n\t);\n\tconst sharedSliceModels = sharedSliceModelDescriptors.map(\n\t\t(sharedSliceModelDescriptors) => {\n\t\t\treturn sharedSliceModelDescriptors.model;\n\t\t},\n\t);\n\n\tlet contents = generateTypes({\n\t\tcustomTypeModels,\n\t\tsharedSliceModels,\n\t\tclientIntegration: {\n\t\t\tincludeCreateClientInterface: true,\n\t\t\tincludeContentNamespace: true,\n\t\t},\n\t\ttypesProvider: await detectTypesProvider({ cwd: project.root }),\n\t});\n\n\tcontents = `${NON_EDITABLE_FILE_BANNER}\\n\\n${contents}`;\n\n\treturn await writeProjectFile({\n\t\t...args,\n\t\tfilename: args.filename || GLOBAL_TYPESCRIPT_TYPES_FILENAME,\n\t\tcontents,\n\t});\n};\n"],"names":["customTypeModelDescriptors","sharedSliceModelDescriptors","generateTypes","detectTypesProvider","NON_EDITABLE_FILE_BANNER","writeProjectFile","GLOBAL_TYPESCRIPT_TYPES_FILENAME"],"mappings":";;;;;AAwBa,MAAA,8BAA8B,OAC1C,SACoB;AACpB,QAAM,UAAU,MAAM,KAAK,QAAQ,WAAU;AAE7C,QAAM,CAAC,4BAA4B,2BAA2B,IAC7D,MAAM,QAAQ,IAAI;AAAA,IACjB,KAAK,QAAQ,wBAAyB;AAAA,IACtC,KAAK,QAAQ,mBAAoB;AAAA,EAAA,CACjC;AAEF,QAAM,mBAAmB,2BAA2B,IACnD,CAACA,gCAA8B;AAC9B,WAAOA,4BAA2B;AAAA,EAAA,CAClC;AAEF,QAAM,oBAAoB,4BAA4B,IACrD,CAACC,iCAA+B;AAC/B,WAAOA,6BAA4B;AAAA,EAAA,CACnC;AAGF,MAAI,WAAWC,iBAAAA,cAAc;AAAA,IAC5B;AAAA,IACA;AAAA,IACA,mBAAmB;AAAA,MAClB,8BAA8B;AAAA,MAC9B,yBAAyB;AAAA,IACzB;AAAA,IACD,eAAe,MAAMC,iBAAAA,oBAAoB,EAAE,KAAK,QAAQ,MAAM;AAAA,EAAA,CAC9D;AAED,aAAW,GAAGC;;EAA+B;AAE7C,SAAO,MAAMC,iBAAAA,iBAAiB;AAAA,IAC7B,GAAG;AAAA,IACH,UAAU,KAAK,YAAYC,UAAA;AAAA,IAC3B;AAAA,EAAA,CACA;AACF;;"}
1
+ {"version":3,"file":"upsertGlobalTypeScriptTypes.cjs","sources":["../../../src/fs/upsertGlobalTypeScriptTypes.ts"],"sourcesContent":["import { detectTypesProvider, generateTypes } from \"prismic-ts-codegen\";\n\nimport { SliceMachineActions } from \"../createSliceMachineActions\";\n\nimport { writeProjectFile, WriteProjectFileArgs } from \"./writeProjectFile\";\nimport {\n\tGLOBAL_TYPESCRIPT_TYPES_FILENAME,\n\tNON_EDITABLE_FILE_BANNER,\n} from \"./constants\";\n\n/**\n * Arguments for `upsertGlobalContentTypes()`.\n */\nexport type UpsertGlobalTypeScriptTypesArgs = {\n\tfilename?: string;\n\tactions: SliceMachineActions;\n} & Omit<WriteProjectFileArgs, \"filename\" | \"contents\">;\n\n/**\n * Creates a globally accessible TypeScript file containing types representing\n * the Prismic repository's content.\n *\n * @returns The file path to the written file.\n */\nexport const upsertGlobalTypeScriptTypes = async (\n\targs: UpsertGlobalTypeScriptTypesArgs,\n): Promise<string> => {\n\tconst project = await args.helpers.getProject();\n\n\tconst [customTypeModelDescriptors, sharedSliceModelDescriptors] =\n\t\tawait Promise.all([\n\t\t\targs.actions.readAllCustomTypeModels(),\n\t\t\targs.actions.readAllSliceModels(),\n\t\t]);\n\n\tconst customTypeModels = customTypeModelDescriptors.map(\n\t\t(customTypeModelDescriptors) => {\n\t\t\treturn customTypeModelDescriptors.model;\n\t\t},\n\t);\n\tconst sharedSliceModels = sharedSliceModelDescriptors.map(\n\t\t(sharedSliceModelDescriptors) => {\n\t\t\treturn sharedSliceModelDescriptors.model;\n\t\t},\n\t);\n\n\tlet contents = generateTypes({\n\t\tcustomTypeModels,\n\t\tsharedSliceModels,\n\t\tclientIntegration: {\n\t\t\tincludeCreateClientInterface: true,\n\t\t\tincludeContentNamespace: true,\n\t\t},\n\t\ttypesProvider: await detectTypesProvider({ cwd: project.root }),\n\t});\n\n\tcontents = `${NON_EDITABLE_FILE_BANNER}\\n\\n${contents}`;\n\n\treturn await writeProjectFile({\n\t\t...args,\n\t\tfilename: args.filename || GLOBAL_TYPESCRIPT_TYPES_FILENAME,\n\t\tcontents,\n\t});\n};\n"],"names":["customTypeModelDescriptors","sharedSliceModelDescriptors","generateTypes","detectTypesProvider","NON_EDITABLE_FILE_BANNER","writeProjectFile","GLOBAL_TYPESCRIPT_TYPES_FILENAME"],"mappings":";;;;;AAwBa,MAAA,8BAA8B,OAC1C,SACoB;AACpB,QAAM,UAAU,MAAM,KAAK,QAAQ,WAAU;AAE7C,QAAM,CAAC,4BAA4B,2BAA2B,IAC7D,MAAM,QAAQ,IAAI;AAAA,IACjB,KAAK,QAAQ,wBAAyB;AAAA,IACtC,KAAK,QAAQ,mBAAoB;AAAA,EAAA,CACjC;AAEF,QAAM,mBAAmB,2BAA2B,IACnD,CAACA,gCAA8B;AAC9B,WAAOA,4BAA2B;AAAA,EAAA,CAClC;AAEF,QAAM,oBAAoB,4BAA4B,IACrD,CAACC,iCAA+B;AAC/B,WAAOA,6BAA4B;AAAA,EAAA,CACnC;AAGF,MAAI,WAAWC,iBAAAA,cAAc;AAAA,IAC5B;AAAA,IACA;AAAA,IACA,mBAAmB;AAAA,MAClB,8BAA8B;AAAA,MAC9B,yBAAyB;AAAA,IACzB;AAAA,IACD,eAAe,MAAMC,iBAAAA,oBAAoB,EAAE,KAAK,QAAQ,MAAM;AAAA,EAAA,CAC9D;AAED,aAAW,GAAGC,kCAAwB;AAAA;AAAA,EAAO,QAAQ;AAErD,SAAO,MAAMC,iBAAAA,iBAAiB;AAAA,IAC7B,GAAG;AAAA,IACH,UAAU,KAAK,YAAYC,UAAA;AAAA,IAC3B;AAAA,EAAA,CACA;AACF;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"upsertGlobalTypeScriptTypes.js","sources":["../../../src/fs/upsertGlobalTypeScriptTypes.ts"],"sourcesContent":["import { detectTypesProvider, generateTypes } from \"prismic-ts-codegen\";\n\nimport { SliceMachineActions } from \"../createSliceMachineActions\";\n\nimport { writeProjectFile, WriteProjectFileArgs } from \"./writeProjectFile\";\nimport {\n\tGLOBAL_TYPESCRIPT_TYPES_FILENAME,\n\tNON_EDITABLE_FILE_BANNER,\n} from \"./constants\";\n\n/**\n * Arguments for `upsertGlobalContentTypes()`.\n */\nexport type UpsertGlobalTypeScriptTypesArgs = {\n\tfilename?: string;\n\tactions: SliceMachineActions;\n} & Omit<WriteProjectFileArgs, \"filename\" | \"contents\">;\n\n/**\n * Creates a globally accessible TypeScript file containing types representing\n * the Prismic repository's content.\n *\n * @returns The file path to the written file.\n */\nexport const upsertGlobalTypeScriptTypes = async (\n\targs: UpsertGlobalTypeScriptTypesArgs,\n): Promise<string> => {\n\tconst project = await args.helpers.getProject();\n\n\tconst [customTypeModelDescriptors, sharedSliceModelDescriptors] =\n\t\tawait Promise.all([\n\t\t\targs.actions.readAllCustomTypeModels(),\n\t\t\targs.actions.readAllSliceModels(),\n\t\t]);\n\n\tconst customTypeModels = customTypeModelDescriptors.map(\n\t\t(customTypeModelDescriptors) => {\n\t\t\treturn customTypeModelDescriptors.model;\n\t\t},\n\t);\n\tconst sharedSliceModels = sharedSliceModelDescriptors.map(\n\t\t(sharedSliceModelDescriptors) => {\n\t\t\treturn sharedSliceModelDescriptors.model;\n\t\t},\n\t);\n\n\tlet contents = generateTypes({\n\t\tcustomTypeModels,\n\t\tsharedSliceModels,\n\t\tclientIntegration: {\n\t\t\tincludeCreateClientInterface: true,\n\t\t\tincludeContentNamespace: true,\n\t\t},\n\t\ttypesProvider: await detectTypesProvider({ cwd: project.root }),\n\t});\n\n\tcontents = `${NON_EDITABLE_FILE_BANNER}\\n\\n${contents}`;\n\n\treturn await writeProjectFile({\n\t\t...args,\n\t\tfilename: args.filename || GLOBAL_TYPESCRIPT_TYPES_FILENAME,\n\t\tcontents,\n\t});\n};\n"],"names":["customTypeModelDescriptors","sharedSliceModelDescriptors"],"mappings":";;;AAwBa,MAAA,8BAA8B,OAC1C,SACoB;AACpB,QAAM,UAAU,MAAM,KAAK,QAAQ,WAAU;AAE7C,QAAM,CAAC,4BAA4B,2BAA2B,IAC7D,MAAM,QAAQ,IAAI;AAAA,IACjB,KAAK,QAAQ,wBAAyB;AAAA,IACtC,KAAK,QAAQ,mBAAoB;AAAA,EAAA,CACjC;AAEF,QAAM,mBAAmB,2BAA2B,IACnD,CAACA,gCAA8B;AAC9B,WAAOA,4BAA2B;AAAA,EAAA,CAClC;AAEF,QAAM,oBAAoB,4BAA4B,IACrD,CAACC,iCAA+B;AAC/B,WAAOA,6BAA4B;AAAA,EAAA,CACnC;AAGF,MAAI,WAAW,cAAc;AAAA,IAC5B;AAAA,IACA;AAAA,IACA,mBAAmB;AAAA,MAClB,8BAA8B;AAAA,MAC9B,yBAAyB;AAAA,IACzB;AAAA,IACD,eAAe,MAAM,oBAAoB,EAAE,KAAK,QAAQ,MAAM;AAAA,EAAA,CAC9D;AAED,aAAW,GAAG;AAAA;AAAA,EAA+B;AAE7C,SAAO,MAAM,iBAAiB;AAAA,IAC7B,GAAG;AAAA,IACH,UAAU,KAAK,YAAY;AAAA,IAC3B;AAAA,EAAA,CACA;AACF;"}
1
+ {"version":3,"file":"upsertGlobalTypeScriptTypes.js","sources":["../../../src/fs/upsertGlobalTypeScriptTypes.ts"],"sourcesContent":["import { detectTypesProvider, generateTypes } from \"prismic-ts-codegen\";\n\nimport { SliceMachineActions } from \"../createSliceMachineActions\";\n\nimport { writeProjectFile, WriteProjectFileArgs } from \"./writeProjectFile\";\nimport {\n\tGLOBAL_TYPESCRIPT_TYPES_FILENAME,\n\tNON_EDITABLE_FILE_BANNER,\n} from \"./constants\";\n\n/**\n * Arguments for `upsertGlobalContentTypes()`.\n */\nexport type UpsertGlobalTypeScriptTypesArgs = {\n\tfilename?: string;\n\tactions: SliceMachineActions;\n} & Omit<WriteProjectFileArgs, \"filename\" | \"contents\">;\n\n/**\n * Creates a globally accessible TypeScript file containing types representing\n * the Prismic repository's content.\n *\n * @returns The file path to the written file.\n */\nexport const upsertGlobalTypeScriptTypes = async (\n\targs: UpsertGlobalTypeScriptTypesArgs,\n): Promise<string> => {\n\tconst project = await args.helpers.getProject();\n\n\tconst [customTypeModelDescriptors, sharedSliceModelDescriptors] =\n\t\tawait Promise.all([\n\t\t\targs.actions.readAllCustomTypeModels(),\n\t\t\targs.actions.readAllSliceModels(),\n\t\t]);\n\n\tconst customTypeModels = customTypeModelDescriptors.map(\n\t\t(customTypeModelDescriptors) => {\n\t\t\treturn customTypeModelDescriptors.model;\n\t\t},\n\t);\n\tconst sharedSliceModels = sharedSliceModelDescriptors.map(\n\t\t(sharedSliceModelDescriptors) => {\n\t\t\treturn sharedSliceModelDescriptors.model;\n\t\t},\n\t);\n\n\tlet contents = generateTypes({\n\t\tcustomTypeModels,\n\t\tsharedSliceModels,\n\t\tclientIntegration: {\n\t\t\tincludeCreateClientInterface: true,\n\t\t\tincludeContentNamespace: true,\n\t\t},\n\t\ttypesProvider: await detectTypesProvider({ cwd: project.root }),\n\t});\n\n\tcontents = `${NON_EDITABLE_FILE_BANNER}\\n\\n${contents}`;\n\n\treturn await writeProjectFile({\n\t\t...args,\n\t\tfilename: args.filename || GLOBAL_TYPESCRIPT_TYPES_FILENAME,\n\t\tcontents,\n\t});\n};\n"],"names":["customTypeModelDescriptors","sharedSliceModelDescriptors"],"mappings":";;;AAwBa,MAAA,8BAA8B,OAC1C,SACoB;AACpB,QAAM,UAAU,MAAM,KAAK,QAAQ,WAAU;AAE7C,QAAM,CAAC,4BAA4B,2BAA2B,IAC7D,MAAM,QAAQ,IAAI;AAAA,IACjB,KAAK,QAAQ,wBAAyB;AAAA,IACtC,KAAK,QAAQ,mBAAoB;AAAA,EAAA,CACjC;AAEF,QAAM,mBAAmB,2BAA2B,IACnD,CAACA,gCAA8B;AAC9B,WAAOA,4BAA2B;AAAA,EAAA,CAClC;AAEF,QAAM,oBAAoB,4BAA4B,IACrD,CAACC,iCAA+B;AAC/B,WAAOA,6BAA4B;AAAA,EAAA,CACnC;AAGF,MAAI,WAAW,cAAc;AAAA,IAC5B;AAAA,IACA;AAAA,IACA,mBAAmB;AAAA,MAClB,8BAA8B;AAAA,MAC9B,yBAAyB;AAAA,IACzB;AAAA,IACD,eAAe,MAAM,oBAAoB,EAAE,KAAK,QAAQ,MAAM;AAAA,EAAA,CAC9D;AAED,aAAW,GAAG,wBAAwB;AAAA;AAAA,EAAO,QAAQ;AAErD,SAAO,MAAM,iBAAiB;AAAA,IAC7B,GAAG;AAAA,IACH,UAAU,KAAK,YAAY;AAAA,IAC3B;AAAA,EAAA,CACA;AACF;"}
@@ -1 +1 @@
1
- {"version":3,"file":"writeProjectEnvironment.cjs","sources":["../../../src/fs/writeProjectEnvironment.ts"],"sourcesContent":["import * as dotenv from \"dotenv\";\n\nimport {\n\tcheckHasProjectFile,\n\tCheckHasProjectFileArgs,\n} from \"./checkHasProjectFile\";\nimport { readProjectFile, ReadProjectFileArgs } from \"./readProjectFile\";\nimport { writeProjectFile, WriteProjectFileArgs } from \"./writeProjectFile\";\n\nexport type WriteProjectEnvironmentArgs = {\n\tvariableName: string;\n\tenvironment: string | undefined;\n} & Omit<CheckHasProjectFileArgs, \"filename\"> &\n\tOmit<ReadProjectFileArgs, \"filename\"> &\n\tOmit<WriteProjectFileArgs, \"contents\" | \"format\" | \"formatOptions\">;\n\nexport const writeProjectEnvironment = async (\n\targs: WriteProjectEnvironmentArgs,\n): Promise<string | undefined> => {\n\tconst hasEnvironmentVariableFile = await checkHasProjectFile({\n\t\tfilename: args.filename,\n\t\thelpers: args.helpers,\n\t});\n\n\tif (!hasEnvironmentVariableFile && args.environment === undefined) {\n\t\treturn;\n\t}\n\n\tlet contents = hasEnvironmentVariableFile\n\t\t? await readProjectFile({\n\t\t\t\tfilename: args.filename,\n\t\t\t\thelpers: args.helpers,\n\t\t\t\tencoding: \"utf8\",\n\t\t })\n\t\t: \"\";\n\n\tconst variableLine = `${args.variableName}=${args.environment}\\n`;\n\n\tconst hasExistingVariable = args.variableName in dotenv.parse(contents);\n\n\tif (hasExistingVariable) {\n\t\t// TODO: This regexp/replace is not working.\n\t\tcontents = contents.replace(\n\t\t\tnew RegExp(`^${args.variableName}=.*\\n?$`, \"m\"),\n\t\t\targs.environment === undefined ? \"\" : variableLine,\n\t\t);\n\t} else {\n\t\tif (!contents.endsWith(\"\\n\")) {\n\t\t\tcontents += \"\\n\";\n\t\t}\n\n\t\tcontents += variableLine;\n\t}\n\n\tawait writeProjectFile({\n\t\tfilename: args.filename,\n\t\tcontents,\n\t\tformat: false,\n\t\thelpers: args.helpers,\n\t});\n\n\treturn args.filename;\n};\n"],"names":["checkHasProjectFile","readProjectFile","dotenv","writeProjectFile"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAgBa,MAAA,0BAA0B,OACtC,SACgC;AAC1B,QAAA,6BAA6B,MAAMA,wCAAoB;AAAA,IAC5D,UAAU,KAAK;AAAA,IACf,SAAS,KAAK;AAAA,EAAA,CACd;AAED,MAAI,CAAC,8BAA8B,KAAK,gBAAgB,QAAW;AAClE;AAAA,EACD;AAEI,MAAA,WAAW,6BACZ,MAAMC,gCAAgB;AAAA,IACtB,UAAU,KAAK;AAAA,IACf,SAAS,KAAK;AAAA,IACd,UAAU;AAAA,EACT,CAAA,IACD;AAEH,QAAM,eAAe,GAAG,KAAK,gBAAgB,KAAK;AAAA;AAElD,QAAM,sBAAsB,KAAK,gBAAgBC,kBAAO,MAAM,QAAQ;AAEtE,MAAI,qBAAqB;AAExB,eAAW,SAAS,QACnB,IAAI,OAAO,IAAI,KAAK;AAAA,KAAuB,GAAG,GAC9C,KAAK,gBAAgB,SAAY,KAAK,YAAY;AAAA,EAAA,OAE7C;AACN,QAAI,CAAC,SAAS,SAAS,IAAI,GAAG;AACjB,kBAAA;AAAA,IACb;AAEY,gBAAA;AAAA,EACb;AAEA,QAAMC,kCAAiB;AAAA,IACtB,UAAU,KAAK;AAAA,IACf;AAAA,IACA,QAAQ;AAAA,IACR,SAAS,KAAK;AAAA,EAAA,CACd;AAED,SAAO,KAAK;AACb;;"}
1
+ {"version":3,"file":"writeProjectEnvironment.cjs","sources":["../../../src/fs/writeProjectEnvironment.ts"],"sourcesContent":["import * as dotenv from \"dotenv\";\n\nimport {\n\tcheckHasProjectFile,\n\tCheckHasProjectFileArgs,\n} from \"./checkHasProjectFile\";\nimport { readProjectFile, ReadProjectFileArgs } from \"./readProjectFile\";\nimport { writeProjectFile, WriteProjectFileArgs } from \"./writeProjectFile\";\n\nexport type WriteProjectEnvironmentArgs = {\n\tvariableName: string;\n\tenvironment: string | undefined;\n} & Omit<CheckHasProjectFileArgs, \"filename\"> &\n\tOmit<ReadProjectFileArgs, \"filename\"> &\n\tOmit<WriteProjectFileArgs, \"contents\" | \"format\" | \"formatOptions\">;\n\nexport const writeProjectEnvironment = async (\n\targs: WriteProjectEnvironmentArgs,\n): Promise<string | undefined> => {\n\tconst hasEnvironmentVariableFile = await checkHasProjectFile({\n\t\tfilename: args.filename,\n\t\thelpers: args.helpers,\n\t});\n\n\tif (!hasEnvironmentVariableFile && args.environment === undefined) {\n\t\treturn;\n\t}\n\n\tlet contents = hasEnvironmentVariableFile\n\t\t? await readProjectFile({\n\t\t\t\tfilename: args.filename,\n\t\t\t\thelpers: args.helpers,\n\t\t\t\tencoding: \"utf8\",\n\t\t })\n\t\t: \"\";\n\n\tconst variableLine = `${args.variableName}=${args.environment}\\n`;\n\n\tconst hasExistingVariable = args.variableName in dotenv.parse(contents);\n\n\tif (hasExistingVariable) {\n\t\t// TODO: This regexp/replace is not working.\n\t\tcontents = contents.replace(\n\t\t\tnew RegExp(`^${args.variableName}=.*\\n?$`, \"m\"),\n\t\t\targs.environment === undefined ? \"\" : variableLine,\n\t\t);\n\t} else {\n\t\tif (!contents.endsWith(\"\\n\")) {\n\t\t\tcontents += \"\\n\";\n\t\t}\n\n\t\tcontents += variableLine;\n\t}\n\n\tawait writeProjectFile({\n\t\tfilename: args.filename,\n\t\tcontents,\n\t\tformat: false,\n\t\thelpers: args.helpers,\n\t});\n\n\treturn args.filename;\n};\n"],"names":["checkHasProjectFile","readProjectFile","dotenv","writeProjectFile"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAgBa,MAAA,0BAA0B,OACtC,SACgC;AAC1B,QAAA,6BAA6B,MAAMA,wCAAoB;AAAA,IAC5D,UAAU,KAAK;AAAA,IACf,SAAS,KAAK;AAAA,EAAA,CACd;AAED,MAAI,CAAC,8BAA8B,KAAK,gBAAgB,QAAW;AAClE;AAAA,EACD;AAEI,MAAA,WAAW,6BACZ,MAAMC,gCAAgB;AAAA,IACtB,UAAU,KAAK;AAAA,IACf,SAAS,KAAK;AAAA,IACd,UAAU;AAAA,EACT,CAAA,IACD;AAEH,QAAM,eAAe,GAAG,KAAK,YAAY,IAAI,KAAK,WAAW;AAAA;AAE7D,QAAM,sBAAsB,KAAK,gBAAgBC,kBAAO,MAAM,QAAQ;AAEtE,MAAI,qBAAqB;AAExB,eAAW,SAAS,QACnB,IAAI,OAAO,IAAI,KAAK,YAAY;AAAA,KAAW,GAAG,GAC9C,KAAK,gBAAgB,SAAY,KAAK,YAAY;AAAA,EAAA,OAE7C;AACN,QAAI,CAAC,SAAS,SAAS,IAAI,GAAG;AACjB,kBAAA;AAAA,IACb;AAEY,gBAAA;AAAA,EACb;AAEA,QAAMC,kCAAiB;AAAA,IACtB,UAAU,KAAK;AAAA,IACf;AAAA,IACA,QAAQ;AAAA,IACR,SAAS,KAAK;AAAA,EAAA,CACd;AAED,SAAO,KAAK;AACb;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"writeProjectEnvironment.js","sources":["../../../src/fs/writeProjectEnvironment.ts"],"sourcesContent":["import * as dotenv from \"dotenv\";\n\nimport {\n\tcheckHasProjectFile,\n\tCheckHasProjectFileArgs,\n} from \"./checkHasProjectFile\";\nimport { readProjectFile, ReadProjectFileArgs } from \"./readProjectFile\";\nimport { writeProjectFile, WriteProjectFileArgs } from \"./writeProjectFile\";\n\nexport type WriteProjectEnvironmentArgs = {\n\tvariableName: string;\n\tenvironment: string | undefined;\n} & Omit<CheckHasProjectFileArgs, \"filename\"> &\n\tOmit<ReadProjectFileArgs, \"filename\"> &\n\tOmit<WriteProjectFileArgs, \"contents\" | \"format\" | \"formatOptions\">;\n\nexport const writeProjectEnvironment = async (\n\targs: WriteProjectEnvironmentArgs,\n): Promise<string | undefined> => {\n\tconst hasEnvironmentVariableFile = await checkHasProjectFile({\n\t\tfilename: args.filename,\n\t\thelpers: args.helpers,\n\t});\n\n\tif (!hasEnvironmentVariableFile && args.environment === undefined) {\n\t\treturn;\n\t}\n\n\tlet contents = hasEnvironmentVariableFile\n\t\t? await readProjectFile({\n\t\t\t\tfilename: args.filename,\n\t\t\t\thelpers: args.helpers,\n\t\t\t\tencoding: \"utf8\",\n\t\t })\n\t\t: \"\";\n\n\tconst variableLine = `${args.variableName}=${args.environment}\\n`;\n\n\tconst hasExistingVariable = args.variableName in dotenv.parse(contents);\n\n\tif (hasExistingVariable) {\n\t\t// TODO: This regexp/replace is not working.\n\t\tcontents = contents.replace(\n\t\t\tnew RegExp(`^${args.variableName}=.*\\n?$`, \"m\"),\n\t\t\targs.environment === undefined ? \"\" : variableLine,\n\t\t);\n\t} else {\n\t\tif (!contents.endsWith(\"\\n\")) {\n\t\t\tcontents += \"\\n\";\n\t\t}\n\n\t\tcontents += variableLine;\n\t}\n\n\tawait writeProjectFile({\n\t\tfilename: args.filename,\n\t\tcontents,\n\t\tformat: false,\n\t\thelpers: args.helpers,\n\t});\n\n\treturn args.filename;\n};\n"],"names":[],"mappings":";;;;AAgBa,MAAA,0BAA0B,OACtC,SACgC;AAC1B,QAAA,6BAA6B,MAAM,oBAAoB;AAAA,IAC5D,UAAU,KAAK;AAAA,IACf,SAAS,KAAK;AAAA,EAAA,CACd;AAED,MAAI,CAAC,8BAA8B,KAAK,gBAAgB,QAAW;AAClE;AAAA,EACD;AAEI,MAAA,WAAW,6BACZ,MAAM,gBAAgB;AAAA,IACtB,UAAU,KAAK;AAAA,IACf,SAAS,KAAK;AAAA,IACd,UAAU;AAAA,EACT,CAAA,IACD;AAEH,QAAM,eAAe,GAAG,KAAK,gBAAgB,KAAK;AAAA;AAElD,QAAM,sBAAsB,KAAK,gBAAgB,OAAO,MAAM,QAAQ;AAEtE,MAAI,qBAAqB;AAExB,eAAW,SAAS,QACnB,IAAI,OAAO,IAAI,KAAK;AAAA,KAAuB,GAAG,GAC9C,KAAK,gBAAgB,SAAY,KAAK,YAAY;AAAA,EAAA,OAE7C;AACN,QAAI,CAAC,SAAS,SAAS,IAAI,GAAG;AACjB,kBAAA;AAAA,IACb;AAEY,gBAAA;AAAA,EACb;AAEA,QAAM,iBAAiB;AAAA,IACtB,UAAU,KAAK;AAAA,IACf;AAAA,IACA,QAAQ;AAAA,IACR,SAAS,KAAK;AAAA,EAAA,CACd;AAED,SAAO,KAAK;AACb;"}
1
+ {"version":3,"file":"writeProjectEnvironment.js","sources":["../../../src/fs/writeProjectEnvironment.ts"],"sourcesContent":["import * as dotenv from \"dotenv\";\n\nimport {\n\tcheckHasProjectFile,\n\tCheckHasProjectFileArgs,\n} from \"./checkHasProjectFile\";\nimport { readProjectFile, ReadProjectFileArgs } from \"./readProjectFile\";\nimport { writeProjectFile, WriteProjectFileArgs } from \"./writeProjectFile\";\n\nexport type WriteProjectEnvironmentArgs = {\n\tvariableName: string;\n\tenvironment: string | undefined;\n} & Omit<CheckHasProjectFileArgs, \"filename\"> &\n\tOmit<ReadProjectFileArgs, \"filename\"> &\n\tOmit<WriteProjectFileArgs, \"contents\" | \"format\" | \"formatOptions\">;\n\nexport const writeProjectEnvironment = async (\n\targs: WriteProjectEnvironmentArgs,\n): Promise<string | undefined> => {\n\tconst hasEnvironmentVariableFile = await checkHasProjectFile({\n\t\tfilename: args.filename,\n\t\thelpers: args.helpers,\n\t});\n\n\tif (!hasEnvironmentVariableFile && args.environment === undefined) {\n\t\treturn;\n\t}\n\n\tlet contents = hasEnvironmentVariableFile\n\t\t? await readProjectFile({\n\t\t\t\tfilename: args.filename,\n\t\t\t\thelpers: args.helpers,\n\t\t\t\tencoding: \"utf8\",\n\t\t })\n\t\t: \"\";\n\n\tconst variableLine = `${args.variableName}=${args.environment}\\n`;\n\n\tconst hasExistingVariable = args.variableName in dotenv.parse(contents);\n\n\tif (hasExistingVariable) {\n\t\t// TODO: This regexp/replace is not working.\n\t\tcontents = contents.replace(\n\t\t\tnew RegExp(`^${args.variableName}=.*\\n?$`, \"m\"),\n\t\t\targs.environment === undefined ? \"\" : variableLine,\n\t\t);\n\t} else {\n\t\tif (!contents.endsWith(\"\\n\")) {\n\t\t\tcontents += \"\\n\";\n\t\t}\n\n\t\tcontents += variableLine;\n\t}\n\n\tawait writeProjectFile({\n\t\tfilename: args.filename,\n\t\tcontents,\n\t\tformat: false,\n\t\thelpers: args.helpers,\n\t});\n\n\treturn args.filename;\n};\n"],"names":[],"mappings":";;;;AAgBa,MAAA,0BAA0B,OACtC,SACgC;AAC1B,QAAA,6BAA6B,MAAM,oBAAoB;AAAA,IAC5D,UAAU,KAAK;AAAA,IACf,SAAS,KAAK;AAAA,EAAA,CACd;AAED,MAAI,CAAC,8BAA8B,KAAK,gBAAgB,QAAW;AAClE;AAAA,EACD;AAEI,MAAA,WAAW,6BACZ,MAAM,gBAAgB;AAAA,IACtB,UAAU,KAAK;AAAA,IACf,SAAS,KAAK;AAAA,IACd,UAAU;AAAA,EACT,CAAA,IACD;AAEH,QAAM,eAAe,GAAG,KAAK,YAAY,IAAI,KAAK,WAAW;AAAA;AAE7D,QAAM,sBAAsB,KAAK,gBAAgB,OAAO,MAAM,QAAQ;AAEtE,MAAI,qBAAqB;AAExB,eAAW,SAAS,QACnB,IAAI,OAAO,IAAI,KAAK,YAAY;AAAA,KAAW,GAAG,GAC9C,KAAK,gBAAgB,SAAY,KAAK,YAAY;AAAA,EAAA,OAE7C;AACN,QAAI,CAAC,SAAS,SAAS,IAAI,GAAG;AACjB,kBAAA;AAAA,IACb;AAEY,gBAAA;AAAA,EACb;AAEA,QAAM,iBAAiB;AAAA,IACtB,UAAU,KAAK;AAAA,IACf;AAAA,IACA,QAAQ;AAAA,IACR,SAAS,KAAK;AAAA,EAAA,CACd;AAED,SAAO,KAAK;AACb;"}
@@ -1,4 +1,5 @@
1
1
  /// <reference types="node" />
2
+ /// <reference types="node" />
2
3
  import type { ExtendSliceMachineHook, SliceMachinePluginOptions, SliceMachineHook } from "../types";
3
4
  /**
4
5
  * Data provided to `custom-type:asset:read` hook handlers.
@@ -1,4 +1,5 @@
1
1
  /// <reference types="node" />
2
+ /// <reference types="node" />
2
3
  import type { ExtendSliceMachineHook, SliceMachinePluginOptions, SliceMachineHook } from "../types";
3
4
  /**
4
5
  * Data provided to `custom-type:asset:update` hook handlers.
@@ -5,6 +5,20 @@ import type { ExtendSliceMachineHook, SliceMachinePluginOptions, SliceMachineHoo
5
5
  */
6
6
  export type CustomTypeUpdateHookData = {
7
7
  model: CustomType;
8
+ updateMeta?: {
9
+ fieldIdChanged?: {
10
+ /**
11
+ * Previous path of the changed field. Can be used to identify the field
12
+ * that had an API ID rename (e.g. ["page", "title"])
13
+ */
14
+ previousPath: string[];
15
+ /**
16
+ * New path of the changed field. Can be used to identify the field that
17
+ * had an API ID rename (e.g. ["page", "title2"])
18
+ */
19
+ newPath: string[];
20
+ };
21
+ };
8
22
  };
9
23
  /**
10
24
  * Return value for `custom-type:update` hook handlers.
@@ -1,4 +1,5 @@
1
1
  /// <reference types="node" />
2
+ /// <reference types="node" />
2
3
  import type { ExtendSliceMachineHook, SliceMachinePluginOptions, SliceMachineHook } from "../types";
3
4
  /**
4
5
  * Data provided to `slice:asset:read` hook handlers.
@@ -1,4 +1,5 @@
1
1
  /// <reference types="node" />
2
+ /// <reference types="node" />
2
3
  import type { ExtendSliceMachineHook, SliceMachinePluginOptions, SliceMachineHook } from "../types";
3
4
  /**
4
5
  * Data provided to `slice:asset:update` hook handlers.
@@ -1,4 +1,5 @@
1
1
  /// <reference types="node" />
2
+ /// <reference types="node" />
2
3
  import type { SharedSlice } from "@prismicio/types-internal/lib/customtypes";
3
4
  import { SharedSliceContent } from "@prismicio/types-internal/lib/content";
4
5
  import type { ExtendSliceMachineHook, SliceMachinePluginOptions, SliceMachineHook } from "../types";
@@ -1 +1 @@
1
- {"version":3,"file":"HookSystem.cjs","sources":["../../../src/lib/HookSystem.ts"],"sourcesContent":["/**\n * Extends a function arguments with extra ones.\n */\ntype FnWithExtraArgs<\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\tF extends (...args: any[]) => any,\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\tTExtraArgs extends any[] = any[],\n> = (\n\t...args: [...args: Parameters<F>, ...extraArgs: TExtraArgs]\n) => ReturnType<F>;\n\n/**\n * Defines a hook handler.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type HookFn<TArgs extends any[] = any[], TReturn = any> = (\n\t...args: TArgs\n) => Promise<TReturn> | TReturn;\n\n/**\n * Generic hook metadata.\n */\ntype HookMeta = Record<string, unknown>;\n\n/**\n * Defines a hook, including its function handler and optional metadata.\n */\nexport type Hook<\n\tTHookFn extends HookFn = HookFn,\n\tTHookMeta extends HookMeta = HookMeta,\n> = {\n\tfn: THookFn;\n\tmeta?: THookMeta;\n};\n\n/**\n * Represents a map of hook types to hook functions and metas.\n */\ntype Hooks = Record<string, Hook>;\n\n/**\n * Builds hook meta arguments after hook meta requirements.\n */\ntype HookMetaArg<THookMeta extends Record<string, unknown> | undefined> =\n\tTHookMeta extends Record<string, unknown>\n\t\t? [meta: THookMeta]\n\t\t: [meta?: never];\n\n/**\n * Defines the return type of the {@link HookSystem.callHook} functions.\n *\n * @internal\n */\nexport type CallHookReturnType<THookFn extends HookFn = HookFn> = Promise<{\n\tdata: Awaited<ReturnType<THookFn>>[];\n\terrors: HookError[];\n}>;\n\n/**\n * Defines the return type of the {@link HookSystem.createScope} functions.\n *\n * @internal\n */\nexport type CreateScopeReturnType<\n\tTHooks extends Hooks = Record<string, { fn: HookFn }>,\n\tTExtraArgs extends unknown[] = never[],\n> = {\n\thook: <TType extends keyof THooks>(\n\t\ttype: TType,\n\t\thookFn: FnWithExtraArgs<THooks[TType][\"fn\"], TExtraArgs>,\n\t\t...[meta]: HookMetaArg<THooks[TType][\"meta\"]>\n\t) => void;\n\tunhook: HookSystem<{\n\t\t[P in keyof THooks]: Omit<THooks[P], \"fn\"> & {\n\t\t\tfn: FnWithExtraArgs<THooks[P][\"fn\"], TExtraArgs>;\n\t\t};\n\t}>[\"unhook\"];\n};\n\ntype RegisteredHookMeta = {\n\tid: string;\n\ttype: string;\n\towner: string;\n\texternal?: HookFn;\n};\n\n/**\n * Represents a registered hook.\n */\ntype RegisteredHook<THook extends Hook = Hook> = {\n\tfn: THook[\"fn\"];\n\tmeta: THook[\"meta\"] extends Record<string, unknown>\n\t\t? RegisteredHookMeta & THook[\"meta\"]\n\t\t: RegisteredHookMeta;\n};\n\nexport class HookError<TError = Error | unknown> extends Error {\n\ttype: string;\n\towner: string;\n\trawMeta: RegisteredHookMeta;\n\trawCause: TError;\n\n\tconstructor(meta: RegisteredHookMeta, cause: TError) {\n\t\tsuper(\n\t\t\t`Error in \\`${meta.owner}\\` during \\`${meta.type}\\` hook: ${\n\t\t\t\tcause instanceof Error ? cause.message : String(cause)\n\t\t\t}`,\n\t\t);\n\n\t\tthis.type = meta.type;\n\t\tthis.owner = meta.owner;\n\t\tthis.rawMeta = meta;\n\t\tthis.rawCause = cause;\n\t\tthis.cause = cause instanceof Error ? cause : undefined;\n\t}\n}\n\nconst uuid = (): string => {\n\treturn (++uuid.i).toString();\n};\nuuid.i = 0;\n\n/**\n * @internal\n */\nexport class HookSystem<THooks extends Hooks = Hooks> {\n\tprivate _registeredHooks: {\n\t\t[K in keyof THooks]?: RegisteredHook<THooks[K]>[];\n\t} = {};\n\n\thook<TType extends keyof THooks>(\n\t\towner: string,\n\t\ttype: TType,\n\t\thookFn: THooks[TType][\"fn\"],\n\t\t...[meta]: HookMetaArg<THooks[TType][\"meta\"]>\n\t): void {\n\t\tconst registeredHook = {\n\t\t\tfn: hookFn,\n\t\t\tmeta: {\n\t\t\t\t...meta,\n\t\t\t\towner,\n\t\t\t\ttype,\n\t\t\t\tid: uuid(),\n\t\t\t},\n\t\t} as RegisteredHook<THooks[TType]>;\n\n\t\tconst registeredHooksForType = this._registeredHooks[type];\n\n\t\tif (registeredHooksForType) {\n\t\t\tregisteredHooksForType.push(registeredHook);\n\t\t} else {\n\t\t\tthis._registeredHooks[type] = [registeredHook];\n\t\t}\n\t}\n\n\tunhook<TType extends keyof THooks>(\n\t\ttype: TType,\n\t\thookFn: THooks[TType][\"fn\"],\n\t): void {\n\t\tthis._registeredHooks[type] = this._registeredHooks[type]?.filter(\n\t\t\t(registeredHook) => registeredHook.fn !== hookFn,\n\t\t);\n\t}\n\n\tasync callHook<TType extends Extract<keyof THooks, string>>(\n\t\ttypeOrTypeAndHookID: TType | { type: TType; hookID: string },\n\t\t...args: Parameters<THooks[TType][\"fn\"]>\n\t): CallHookReturnType<THooks[TType][\"fn\"]> {\n\t\tlet hooks: RegisteredHook<THooks[TType]>[];\n\n\t\tif (typeof typeOrTypeAndHookID === \"string\") {\n\t\t\thooks = this._registeredHooks[typeOrTypeAndHookID] ?? [];\n\t\t} else {\n\t\t\tconst hookForID = this._registeredHooks[typeOrTypeAndHookID.type]?.find(\n\t\t\t\t(hook) => hook.meta.id === typeOrTypeAndHookID.hookID,\n\t\t\t);\n\n\t\t\tif (hookForID) {\n\t\t\t\thooks = [hookForID];\n\t\t\t} else {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Hook of type \\`${typeOrTypeAndHookID.type}\\` with ID \\`${typeOrTypeAndHookID.hookID}\\` not found.`,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tconst promises = hooks.map(async (hook) => {\n\t\t\ttry {\n\t\t\t\treturn await hook.fn(...args);\n\t\t\t} catch (error) {\n\t\t\t\tthrow new HookError(hook.meta, error);\n\t\t\t}\n\t\t});\n\n\t\tconst settledPromises = await Promise.allSettled(promises);\n\n\t\treturn settledPromises.reduce<{\n\t\t\tdata: Awaited<ReturnType<THooks[TType][\"fn\"]>>[];\n\t\t\terrors: HookError[];\n\t\t}>(\n\t\t\t(acc, settledPromise) => {\n\t\t\t\tif (settledPromise.status === \"fulfilled\") {\n\t\t\t\t\tacc.data.push(settledPromise.value);\n\t\t\t\t} else {\n\t\t\t\t\tacc.errors.push(settledPromise.reason);\n\t\t\t\t}\n\n\t\t\t\treturn acc;\n\t\t\t},\n\t\t\t{ data: [], errors: [] },\n\t\t);\n\t}\n\n\t/**\n\t * Returns list of hooks for a given owner\n\t */\n\thooksForOwner(owner: string): RegisteredHook<THooks[string]>[] {\n\t\tconst hooks: RegisteredHook<THooks[string]>[] = [];\n\n\t\tfor (const hookType in this._registeredHooks) {\n\t\t\tconst registeredHooks = this._registeredHooks[hookType];\n\n\t\t\tif (Array.isArray(registeredHooks)) {\n\t\t\t\tfor (const registeredHook of registeredHooks) {\n\t\t\t\t\tif (registeredHook.meta.owner === owner) {\n\t\t\t\t\t\thooks.push(registeredHook);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn hooks;\n\t}\n\n\t/**\n\t * Returns list of hooks for a given type\n\t */\n\thooksForType<TType extends keyof THooks>(\n\t\ttype: TType,\n\t): RegisteredHook<THooks[TType]>[] {\n\t\treturn this._registeredHooks[type] ?? [];\n\t}\n\n\tcreateScope<TExtraArgs extends unknown[] = never[]>(\n\t\towner: string,\n\t\textraArgs: [...TExtraArgs],\n\t): CreateScopeReturnType<THooks, TExtraArgs> {\n\t\treturn {\n\t\t\thook: (type, hookFn, ...[meta]) => {\n\t\t\t\tconst internalHook = ((\n\t\t\t\t\t...args: Parameters<THooks[typeof type][\"fn\"]>\n\t\t\t\t) => {\n\t\t\t\t\treturn hookFn(...args, ...extraArgs);\n\t\t\t\t}) as THooks[typeof type][\"fn\"];\n\n\t\t\t\tconst resolvedMeta = {\n\t\t\t\t\t...meta,\n\t\t\t\t\texternal: hookFn,\n\t\t\t\t} as HookMetaArg<THooks[typeof type][\"meta\"]>[0];\n\n\t\t\t\treturn this.hook(\n\t\t\t\t\towner,\n\t\t\t\t\ttype,\n\t\t\t\t\tinternalHook,\n\t\t\t\t\t// @ts-expect-error - TypeScript fails to assert rest argument.\n\t\t\t\t\tresolvedMeta,\n\t\t\t\t);\n\t\t\t},\n\t\t\tunhook: (type, hookFn) => {\n\t\t\t\tthis._registeredHooks[type] = this._registeredHooks[type]?.filter(\n\t\t\t\t\t(registeredHook) => registeredHook.meta.external !== hookFn,\n\t\t\t\t);\n\t\t\t},\n\t\t};\n\t}\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"HookSystem.cjs","sources":["../../../src/lib/HookSystem.ts"],"sourcesContent":["/**\n * Extends a function arguments with extra ones.\n */\ntype FnWithExtraArgs<\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\tF extends (...args: any[]) => any,\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\tTExtraArgs extends any[] = any[],\n> = (\n\t...args: [...args: Parameters<F>, ...extraArgs: TExtraArgs]\n) => ReturnType<F>;\n\n/**\n * Defines a hook handler.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type HookFn<TArgs extends any[] = any[], TReturn = any> = (\n\t...args: TArgs\n) => Promise<TReturn> | TReturn;\n\n/**\n * Generic hook metadata.\n */\ntype HookMeta = Record<string, unknown>;\n\n/**\n * Defines a hook, including its function handler and optional metadata.\n */\nexport type Hook<\n\tTHookFn extends HookFn = HookFn,\n\tTHookMeta extends HookMeta = HookMeta,\n> = {\n\tfn: THookFn;\n\tmeta?: THookMeta;\n};\n\n/**\n * Represents a map of hook types to hook functions and metas.\n */\ntype Hooks = Record<string, Hook>;\n\n/**\n * Builds hook meta arguments after hook meta requirements.\n */\ntype HookMetaArg<THookMeta extends Record<string, unknown> | undefined> =\n\tTHookMeta extends Record<string, unknown>\n\t\t? [meta: THookMeta]\n\t\t: [meta?: never];\n\n/**\n * Defines the return type of the {@link HookSystem.callHook} functions.\n *\n * @internal\n */\nexport type CallHookReturnType<THookFn extends HookFn = HookFn> = Promise<{\n\tdata: Awaited<ReturnType<THookFn>>[];\n\terrors: HookError[];\n}>;\n\n/**\n * Defines the return type of the {@link HookSystem.createScope} functions.\n *\n * @internal\n */\nexport type CreateScopeReturnType<\n\tTHooks extends Hooks = Record<string, { fn: HookFn }>,\n\tTExtraArgs extends unknown[] = never[],\n> = {\n\thook: <TType extends keyof THooks>(\n\t\ttype: TType,\n\t\thookFn: FnWithExtraArgs<THooks[TType][\"fn\"], TExtraArgs>,\n\t\t...[meta]: HookMetaArg<THooks[TType][\"meta\"]>\n\t) => void;\n\tunhook: HookSystem<{\n\t\t[P in keyof THooks]: Omit<THooks[P], \"fn\"> & {\n\t\t\tfn: FnWithExtraArgs<THooks[P][\"fn\"], TExtraArgs>;\n\t\t};\n\t}>[\"unhook\"];\n};\n\ntype RegisteredHookMeta = {\n\tid: string;\n\ttype: string;\n\towner: string;\n\texternal?: HookFn;\n};\n\n/**\n * Represents a registered hook.\n */\ntype RegisteredHook<THook extends Hook = Hook> = {\n\tfn: THook[\"fn\"];\n\tmeta: THook[\"meta\"] extends Record<string, unknown>\n\t\t? RegisteredHookMeta & THook[\"meta\"]\n\t\t: RegisteredHookMeta;\n};\n\nexport class HookError<TError = Error | unknown> extends Error {\n\ttype: string;\n\towner: string;\n\trawMeta: RegisteredHookMeta;\n\trawCause: TError;\n\n\tconstructor(meta: RegisteredHookMeta, cause: TError) {\n\t\tsuper(\n\t\t\t`Error in \\`${meta.owner}\\` during \\`${meta.type}\\` hook: ${\n\t\t\t\tcause instanceof Error ? cause.message : String(cause)\n\t\t\t}`,\n\t\t);\n\n\t\tthis.type = meta.type;\n\t\tthis.owner = meta.owner;\n\t\tthis.rawMeta = meta;\n\t\tthis.rawCause = cause;\n\t\tthis.cause = cause instanceof Error ? cause : undefined;\n\t}\n}\n\nconst uuid = (): string => {\n\treturn (++uuid.i).toString();\n};\nuuid.i = 0;\n\n/**\n * @internal\n */\nexport class HookSystem<THooks extends Hooks = Hooks> {\n\tprivate _registeredHooks: {\n\t\t[K in keyof THooks]?: RegisteredHook<THooks[K]>[];\n\t} = {};\n\n\thook<TType extends keyof THooks>(\n\t\towner: string,\n\t\ttype: TType,\n\t\thookFn: THooks[TType][\"fn\"],\n\t\t...[meta]: HookMetaArg<THooks[TType][\"meta\"]>\n\t): void {\n\t\tconst registeredHook = {\n\t\t\tfn: hookFn,\n\t\t\tmeta: {\n\t\t\t\t...meta,\n\t\t\t\towner,\n\t\t\t\ttype,\n\t\t\t\tid: uuid(),\n\t\t\t},\n\t\t} as RegisteredHook<THooks[TType]>;\n\n\t\tconst registeredHooksForType = this._registeredHooks[type];\n\n\t\tif (registeredHooksForType) {\n\t\t\tregisteredHooksForType.push(registeredHook);\n\t\t} else {\n\t\t\tthis._registeredHooks[type] = [registeredHook];\n\t\t}\n\t}\n\n\tunhook<TType extends keyof THooks>(\n\t\ttype: TType,\n\t\thookFn: THooks[TType][\"fn\"],\n\t): void {\n\t\tthis._registeredHooks[type] = this._registeredHooks[type]?.filter(\n\t\t\t(registeredHook) => registeredHook.fn !== hookFn,\n\t\t);\n\t}\n\n\tasync callHook<TType extends Extract<keyof THooks, string>>(\n\t\ttypeOrTypeAndHookID: TType | { type: TType; hookID: string },\n\t\t...args: Parameters<THooks[TType][\"fn\"]>\n\t): CallHookReturnType<THooks[TType][\"fn\"]> {\n\t\tlet hooks: RegisteredHook<THooks[TType]>[];\n\n\t\tif (typeof typeOrTypeAndHookID === \"string\") {\n\t\t\thooks = this._registeredHooks[typeOrTypeAndHookID] ?? [];\n\t\t} else {\n\t\t\tconst hookForID = this._registeredHooks[typeOrTypeAndHookID.type]?.find(\n\t\t\t\t(hook) => hook.meta.id === typeOrTypeAndHookID.hookID,\n\t\t\t);\n\n\t\t\tif (hookForID) {\n\t\t\t\thooks = [hookForID];\n\t\t\t} else {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Hook of type \\`${typeOrTypeAndHookID.type}\\` with ID \\`${typeOrTypeAndHookID.hookID}\\` not found.`,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tconst promises = hooks.map(async (hook) => {\n\t\t\ttry {\n\t\t\t\treturn await hook.fn(...args);\n\t\t\t} catch (error) {\n\t\t\t\tthrow new HookError(hook.meta, error);\n\t\t\t}\n\t\t});\n\n\t\tconst settledPromises = await Promise.allSettled(promises);\n\n\t\treturn settledPromises.reduce<{\n\t\t\tdata: Awaited<ReturnType<THooks[TType][\"fn\"]>>[];\n\t\t\terrors: HookError[];\n\t\t}>(\n\t\t\t(acc, settledPromise) => {\n\t\t\t\tif (settledPromise.status === \"fulfilled\") {\n\t\t\t\t\tacc.data.push(settledPromise.value);\n\t\t\t\t} else {\n\t\t\t\t\tacc.errors.push(settledPromise.reason);\n\t\t\t\t}\n\n\t\t\t\treturn acc;\n\t\t\t},\n\t\t\t{ data: [], errors: [] },\n\t\t);\n\t}\n\n\t/**\n\t * Returns list of hooks for a given owner\n\t */\n\thooksForOwner(owner: string): RegisteredHook<THooks[string]>[] {\n\t\tconst hooks: RegisteredHook<THooks[string]>[] = [];\n\n\t\tfor (const hookType in this._registeredHooks) {\n\t\t\tconst registeredHooks = this._registeredHooks[hookType];\n\n\t\t\tif (Array.isArray(registeredHooks)) {\n\t\t\t\tfor (const registeredHook of registeredHooks) {\n\t\t\t\t\tif (registeredHook.meta.owner === owner) {\n\t\t\t\t\t\thooks.push(registeredHook);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn hooks;\n\t}\n\n\t/**\n\t * Returns list of hooks for a given type\n\t */\n\thooksForType<TType extends keyof THooks>(\n\t\ttype: TType,\n\t): RegisteredHook<THooks[TType]>[] {\n\t\treturn this._registeredHooks[type] ?? [];\n\t}\n\n\tcreateScope<TExtraArgs extends unknown[] = never[]>(\n\t\towner: string,\n\t\textraArgs: [...TExtraArgs],\n\t): CreateScopeReturnType<THooks, TExtraArgs> {\n\t\treturn {\n\t\t\thook: (type, hookFn, ...[meta]) => {\n\t\t\t\tconst internalHook = ((\n\t\t\t\t\t...args: Parameters<THooks[typeof type][\"fn\"]>\n\t\t\t\t) => {\n\t\t\t\t\treturn hookFn(...args, ...extraArgs);\n\t\t\t\t}) as THooks[typeof type][\"fn\"];\n\n\t\t\t\tconst resolvedMeta = {\n\t\t\t\t\t...meta,\n\t\t\t\t\texternal: hookFn,\n\t\t\t\t} as HookMetaArg<THooks[typeof type][\"meta\"]>[0];\n\n\t\t\t\treturn this.hook(\n\t\t\t\t\towner,\n\t\t\t\t\ttype,\n\t\t\t\t\tinternalHook,\n\t\t\t\t\t// @ts-expect-error - TypeScript fails to assert rest argument.\n\t\t\t\t\tresolvedMeta,\n\t\t\t\t);\n\t\t\t},\n\t\t\tunhook: (type, hookFn) => {\n\t\t\t\tthis._registeredHooks[type] = this._registeredHooks[type]?.filter(\n\t\t\t\t\t(registeredHook) => registeredHook.meta.external !== hookFn,\n\t\t\t\t);\n\t\t\t},\n\t\t};\n\t}\n}\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"HookSystem.js","sources":["../../../src/lib/HookSystem.ts"],"sourcesContent":["/**\n * Extends a function arguments with extra ones.\n */\ntype FnWithExtraArgs<\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\tF extends (...args: any[]) => any,\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\tTExtraArgs extends any[] = any[],\n> = (\n\t...args: [...args: Parameters<F>, ...extraArgs: TExtraArgs]\n) => ReturnType<F>;\n\n/**\n * Defines a hook handler.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type HookFn<TArgs extends any[] = any[], TReturn = any> = (\n\t...args: TArgs\n) => Promise<TReturn> | TReturn;\n\n/**\n * Generic hook metadata.\n */\ntype HookMeta = Record<string, unknown>;\n\n/**\n * Defines a hook, including its function handler and optional metadata.\n */\nexport type Hook<\n\tTHookFn extends HookFn = HookFn,\n\tTHookMeta extends HookMeta = HookMeta,\n> = {\n\tfn: THookFn;\n\tmeta?: THookMeta;\n};\n\n/**\n * Represents a map of hook types to hook functions and metas.\n */\ntype Hooks = Record<string, Hook>;\n\n/**\n * Builds hook meta arguments after hook meta requirements.\n */\ntype HookMetaArg<THookMeta extends Record<string, unknown> | undefined> =\n\tTHookMeta extends Record<string, unknown>\n\t\t? [meta: THookMeta]\n\t\t: [meta?: never];\n\n/**\n * Defines the return type of the {@link HookSystem.callHook} functions.\n *\n * @internal\n */\nexport type CallHookReturnType<THookFn extends HookFn = HookFn> = Promise<{\n\tdata: Awaited<ReturnType<THookFn>>[];\n\terrors: HookError[];\n}>;\n\n/**\n * Defines the return type of the {@link HookSystem.createScope} functions.\n *\n * @internal\n */\nexport type CreateScopeReturnType<\n\tTHooks extends Hooks = Record<string, { fn: HookFn }>,\n\tTExtraArgs extends unknown[] = never[],\n> = {\n\thook: <TType extends keyof THooks>(\n\t\ttype: TType,\n\t\thookFn: FnWithExtraArgs<THooks[TType][\"fn\"], TExtraArgs>,\n\t\t...[meta]: HookMetaArg<THooks[TType][\"meta\"]>\n\t) => void;\n\tunhook: HookSystem<{\n\t\t[P in keyof THooks]: Omit<THooks[P], \"fn\"> & {\n\t\t\tfn: FnWithExtraArgs<THooks[P][\"fn\"], TExtraArgs>;\n\t\t};\n\t}>[\"unhook\"];\n};\n\ntype RegisteredHookMeta = {\n\tid: string;\n\ttype: string;\n\towner: string;\n\texternal?: HookFn;\n};\n\n/**\n * Represents a registered hook.\n */\ntype RegisteredHook<THook extends Hook = Hook> = {\n\tfn: THook[\"fn\"];\n\tmeta: THook[\"meta\"] extends Record<string, unknown>\n\t\t? RegisteredHookMeta & THook[\"meta\"]\n\t\t: RegisteredHookMeta;\n};\n\nexport class HookError<TError = Error | unknown> extends Error {\n\ttype: string;\n\towner: string;\n\trawMeta: RegisteredHookMeta;\n\trawCause: TError;\n\n\tconstructor(meta: RegisteredHookMeta, cause: TError) {\n\t\tsuper(\n\t\t\t`Error in \\`${meta.owner}\\` during \\`${meta.type}\\` hook: ${\n\t\t\t\tcause instanceof Error ? cause.message : String(cause)\n\t\t\t}`,\n\t\t);\n\n\t\tthis.type = meta.type;\n\t\tthis.owner = meta.owner;\n\t\tthis.rawMeta = meta;\n\t\tthis.rawCause = cause;\n\t\tthis.cause = cause instanceof Error ? cause : undefined;\n\t}\n}\n\nconst uuid = (): string => {\n\treturn (++uuid.i).toString();\n};\nuuid.i = 0;\n\n/**\n * @internal\n */\nexport class HookSystem<THooks extends Hooks = Hooks> {\n\tprivate _registeredHooks: {\n\t\t[K in keyof THooks]?: RegisteredHook<THooks[K]>[];\n\t} = {};\n\n\thook<TType extends keyof THooks>(\n\t\towner: string,\n\t\ttype: TType,\n\t\thookFn: THooks[TType][\"fn\"],\n\t\t...[meta]: HookMetaArg<THooks[TType][\"meta\"]>\n\t): void {\n\t\tconst registeredHook = {\n\t\t\tfn: hookFn,\n\t\t\tmeta: {\n\t\t\t\t...meta,\n\t\t\t\towner,\n\t\t\t\ttype,\n\t\t\t\tid: uuid(),\n\t\t\t},\n\t\t} as RegisteredHook<THooks[TType]>;\n\n\t\tconst registeredHooksForType = this._registeredHooks[type];\n\n\t\tif (registeredHooksForType) {\n\t\t\tregisteredHooksForType.push(registeredHook);\n\t\t} else {\n\t\t\tthis._registeredHooks[type] = [registeredHook];\n\t\t}\n\t}\n\n\tunhook<TType extends keyof THooks>(\n\t\ttype: TType,\n\t\thookFn: THooks[TType][\"fn\"],\n\t): void {\n\t\tthis._registeredHooks[type] = this._registeredHooks[type]?.filter(\n\t\t\t(registeredHook) => registeredHook.fn !== hookFn,\n\t\t);\n\t}\n\n\tasync callHook<TType extends Extract<keyof THooks, string>>(\n\t\ttypeOrTypeAndHookID: TType | { type: TType; hookID: string },\n\t\t...args: Parameters<THooks[TType][\"fn\"]>\n\t): CallHookReturnType<THooks[TType][\"fn\"]> {\n\t\tlet hooks: RegisteredHook<THooks[TType]>[];\n\n\t\tif (typeof typeOrTypeAndHookID === \"string\") {\n\t\t\thooks = this._registeredHooks[typeOrTypeAndHookID] ?? [];\n\t\t} else {\n\t\t\tconst hookForID = this._registeredHooks[typeOrTypeAndHookID.type]?.find(\n\t\t\t\t(hook) => hook.meta.id === typeOrTypeAndHookID.hookID,\n\t\t\t);\n\n\t\t\tif (hookForID) {\n\t\t\t\thooks = [hookForID];\n\t\t\t} else {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Hook of type \\`${typeOrTypeAndHookID.type}\\` with ID \\`${typeOrTypeAndHookID.hookID}\\` not found.`,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tconst promises = hooks.map(async (hook) => {\n\t\t\ttry {\n\t\t\t\treturn await hook.fn(...args);\n\t\t\t} catch (error) {\n\t\t\t\tthrow new HookError(hook.meta, error);\n\t\t\t}\n\t\t});\n\n\t\tconst settledPromises = await Promise.allSettled(promises);\n\n\t\treturn settledPromises.reduce<{\n\t\t\tdata: Awaited<ReturnType<THooks[TType][\"fn\"]>>[];\n\t\t\terrors: HookError[];\n\t\t}>(\n\t\t\t(acc, settledPromise) => {\n\t\t\t\tif (settledPromise.status === \"fulfilled\") {\n\t\t\t\t\tacc.data.push(settledPromise.value);\n\t\t\t\t} else {\n\t\t\t\t\tacc.errors.push(settledPromise.reason);\n\t\t\t\t}\n\n\t\t\t\treturn acc;\n\t\t\t},\n\t\t\t{ data: [], errors: [] },\n\t\t);\n\t}\n\n\t/**\n\t * Returns list of hooks for a given owner\n\t */\n\thooksForOwner(owner: string): RegisteredHook<THooks[string]>[] {\n\t\tconst hooks: RegisteredHook<THooks[string]>[] = [];\n\n\t\tfor (const hookType in this._registeredHooks) {\n\t\t\tconst registeredHooks = this._registeredHooks[hookType];\n\n\t\t\tif (Array.isArray(registeredHooks)) {\n\t\t\t\tfor (const registeredHook of registeredHooks) {\n\t\t\t\t\tif (registeredHook.meta.owner === owner) {\n\t\t\t\t\t\thooks.push(registeredHook);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn hooks;\n\t}\n\n\t/**\n\t * Returns list of hooks for a given type\n\t */\n\thooksForType<TType extends keyof THooks>(\n\t\ttype: TType,\n\t): RegisteredHook<THooks[TType]>[] {\n\t\treturn this._registeredHooks[type] ?? [];\n\t}\n\n\tcreateScope<TExtraArgs extends unknown[] = never[]>(\n\t\towner: string,\n\t\textraArgs: [...TExtraArgs],\n\t): CreateScopeReturnType<THooks, TExtraArgs> {\n\t\treturn {\n\t\t\thook: (type, hookFn, ...[meta]) => {\n\t\t\t\tconst internalHook = ((\n\t\t\t\t\t...args: Parameters<THooks[typeof type][\"fn\"]>\n\t\t\t\t) => {\n\t\t\t\t\treturn hookFn(...args, ...extraArgs);\n\t\t\t\t}) as THooks[typeof type][\"fn\"];\n\n\t\t\t\tconst resolvedMeta = {\n\t\t\t\t\t...meta,\n\t\t\t\t\texternal: hookFn,\n\t\t\t\t} as HookMetaArg<THooks[typeof type][\"meta\"]>[0];\n\n\t\t\t\treturn this.hook(\n\t\t\t\t\towner,\n\t\t\t\t\ttype,\n\t\t\t\t\tinternalHook,\n\t\t\t\t\t// @ts-expect-error - TypeScript fails to assert rest argument.\n\t\t\t\t\tresolvedMeta,\n\t\t\t\t);\n\t\t\t},\n\t\t\tunhook: (type, hookFn) => {\n\t\t\t\tthis._registeredHooks[type] = this._registeredHooks[type]?.filter(\n\t\t\t\t\t(registeredHook) => registeredHook.meta.external !== hookFn,\n\t\t\t\t);\n\t\t\t},\n\t\t};\n\t}\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"HookSystem.js","sources":["../../../src/lib/HookSystem.ts"],"sourcesContent":["/**\n * Extends a function arguments with extra ones.\n */\ntype FnWithExtraArgs<\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\tF extends (...args: any[]) => any,\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\tTExtraArgs extends any[] = any[],\n> = (\n\t...args: [...args: Parameters<F>, ...extraArgs: TExtraArgs]\n) => ReturnType<F>;\n\n/**\n * Defines a hook handler.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type HookFn<TArgs extends any[] = any[], TReturn = any> = (\n\t...args: TArgs\n) => Promise<TReturn> | TReturn;\n\n/**\n * Generic hook metadata.\n */\ntype HookMeta = Record<string, unknown>;\n\n/**\n * Defines a hook, including its function handler and optional metadata.\n */\nexport type Hook<\n\tTHookFn extends HookFn = HookFn,\n\tTHookMeta extends HookMeta = HookMeta,\n> = {\n\tfn: THookFn;\n\tmeta?: THookMeta;\n};\n\n/**\n * Represents a map of hook types to hook functions and metas.\n */\ntype Hooks = Record<string, Hook>;\n\n/**\n * Builds hook meta arguments after hook meta requirements.\n */\ntype HookMetaArg<THookMeta extends Record<string, unknown> | undefined> =\n\tTHookMeta extends Record<string, unknown>\n\t\t? [meta: THookMeta]\n\t\t: [meta?: never];\n\n/**\n * Defines the return type of the {@link HookSystem.callHook} functions.\n *\n * @internal\n */\nexport type CallHookReturnType<THookFn extends HookFn = HookFn> = Promise<{\n\tdata: Awaited<ReturnType<THookFn>>[];\n\terrors: HookError[];\n}>;\n\n/**\n * Defines the return type of the {@link HookSystem.createScope} functions.\n *\n * @internal\n */\nexport type CreateScopeReturnType<\n\tTHooks extends Hooks = Record<string, { fn: HookFn }>,\n\tTExtraArgs extends unknown[] = never[],\n> = {\n\thook: <TType extends keyof THooks>(\n\t\ttype: TType,\n\t\thookFn: FnWithExtraArgs<THooks[TType][\"fn\"], TExtraArgs>,\n\t\t...[meta]: HookMetaArg<THooks[TType][\"meta\"]>\n\t) => void;\n\tunhook: HookSystem<{\n\t\t[P in keyof THooks]: Omit<THooks[P], \"fn\"> & {\n\t\t\tfn: FnWithExtraArgs<THooks[P][\"fn\"], TExtraArgs>;\n\t\t};\n\t}>[\"unhook\"];\n};\n\ntype RegisteredHookMeta = {\n\tid: string;\n\ttype: string;\n\towner: string;\n\texternal?: HookFn;\n};\n\n/**\n * Represents a registered hook.\n */\ntype RegisteredHook<THook extends Hook = Hook> = {\n\tfn: THook[\"fn\"];\n\tmeta: THook[\"meta\"] extends Record<string, unknown>\n\t\t? RegisteredHookMeta & THook[\"meta\"]\n\t\t: RegisteredHookMeta;\n};\n\nexport class HookError<TError = Error | unknown> extends Error {\n\ttype: string;\n\towner: string;\n\trawMeta: RegisteredHookMeta;\n\trawCause: TError;\n\n\tconstructor(meta: RegisteredHookMeta, cause: TError) {\n\t\tsuper(\n\t\t\t`Error in \\`${meta.owner}\\` during \\`${meta.type}\\` hook: ${\n\t\t\t\tcause instanceof Error ? cause.message : String(cause)\n\t\t\t}`,\n\t\t);\n\n\t\tthis.type = meta.type;\n\t\tthis.owner = meta.owner;\n\t\tthis.rawMeta = meta;\n\t\tthis.rawCause = cause;\n\t\tthis.cause = cause instanceof Error ? cause : undefined;\n\t}\n}\n\nconst uuid = (): string => {\n\treturn (++uuid.i).toString();\n};\nuuid.i = 0;\n\n/**\n * @internal\n */\nexport class HookSystem<THooks extends Hooks = Hooks> {\n\tprivate _registeredHooks: {\n\t\t[K in keyof THooks]?: RegisteredHook<THooks[K]>[];\n\t} = {};\n\n\thook<TType extends keyof THooks>(\n\t\towner: string,\n\t\ttype: TType,\n\t\thookFn: THooks[TType][\"fn\"],\n\t\t...[meta]: HookMetaArg<THooks[TType][\"meta\"]>\n\t): void {\n\t\tconst registeredHook = {\n\t\t\tfn: hookFn,\n\t\t\tmeta: {\n\t\t\t\t...meta,\n\t\t\t\towner,\n\t\t\t\ttype,\n\t\t\t\tid: uuid(),\n\t\t\t},\n\t\t} as RegisteredHook<THooks[TType]>;\n\n\t\tconst registeredHooksForType = this._registeredHooks[type];\n\n\t\tif (registeredHooksForType) {\n\t\t\tregisteredHooksForType.push(registeredHook);\n\t\t} else {\n\t\t\tthis._registeredHooks[type] = [registeredHook];\n\t\t}\n\t}\n\n\tunhook<TType extends keyof THooks>(\n\t\ttype: TType,\n\t\thookFn: THooks[TType][\"fn\"],\n\t): void {\n\t\tthis._registeredHooks[type] = this._registeredHooks[type]?.filter(\n\t\t\t(registeredHook) => registeredHook.fn !== hookFn,\n\t\t);\n\t}\n\n\tasync callHook<TType extends Extract<keyof THooks, string>>(\n\t\ttypeOrTypeAndHookID: TType | { type: TType; hookID: string },\n\t\t...args: Parameters<THooks[TType][\"fn\"]>\n\t): CallHookReturnType<THooks[TType][\"fn\"]> {\n\t\tlet hooks: RegisteredHook<THooks[TType]>[];\n\n\t\tif (typeof typeOrTypeAndHookID === \"string\") {\n\t\t\thooks = this._registeredHooks[typeOrTypeAndHookID] ?? [];\n\t\t} else {\n\t\t\tconst hookForID = this._registeredHooks[typeOrTypeAndHookID.type]?.find(\n\t\t\t\t(hook) => hook.meta.id === typeOrTypeAndHookID.hookID,\n\t\t\t);\n\n\t\t\tif (hookForID) {\n\t\t\t\thooks = [hookForID];\n\t\t\t} else {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Hook of type \\`${typeOrTypeAndHookID.type}\\` with ID \\`${typeOrTypeAndHookID.hookID}\\` not found.`,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tconst promises = hooks.map(async (hook) => {\n\t\t\ttry {\n\t\t\t\treturn await hook.fn(...args);\n\t\t\t} catch (error) {\n\t\t\t\tthrow new HookError(hook.meta, error);\n\t\t\t}\n\t\t});\n\n\t\tconst settledPromises = await Promise.allSettled(promises);\n\n\t\treturn settledPromises.reduce<{\n\t\t\tdata: Awaited<ReturnType<THooks[TType][\"fn\"]>>[];\n\t\t\terrors: HookError[];\n\t\t}>(\n\t\t\t(acc, settledPromise) => {\n\t\t\t\tif (settledPromise.status === \"fulfilled\") {\n\t\t\t\t\tacc.data.push(settledPromise.value);\n\t\t\t\t} else {\n\t\t\t\t\tacc.errors.push(settledPromise.reason);\n\t\t\t\t}\n\n\t\t\t\treturn acc;\n\t\t\t},\n\t\t\t{ data: [], errors: [] },\n\t\t);\n\t}\n\n\t/**\n\t * Returns list of hooks for a given owner\n\t */\n\thooksForOwner(owner: string): RegisteredHook<THooks[string]>[] {\n\t\tconst hooks: RegisteredHook<THooks[string]>[] = [];\n\n\t\tfor (const hookType in this._registeredHooks) {\n\t\t\tconst registeredHooks = this._registeredHooks[hookType];\n\n\t\t\tif (Array.isArray(registeredHooks)) {\n\t\t\t\tfor (const registeredHook of registeredHooks) {\n\t\t\t\t\tif (registeredHook.meta.owner === owner) {\n\t\t\t\t\t\thooks.push(registeredHook);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn hooks;\n\t}\n\n\t/**\n\t * Returns list of hooks for a given type\n\t */\n\thooksForType<TType extends keyof THooks>(\n\t\ttype: TType,\n\t): RegisteredHook<THooks[TType]>[] {\n\t\treturn this._registeredHooks[type] ?? [];\n\t}\n\n\tcreateScope<TExtraArgs extends unknown[] = never[]>(\n\t\towner: string,\n\t\textraArgs: [...TExtraArgs],\n\t): CreateScopeReturnType<THooks, TExtraArgs> {\n\t\treturn {\n\t\t\thook: (type, hookFn, ...[meta]) => {\n\t\t\t\tconst internalHook = ((\n\t\t\t\t\t...args: Parameters<THooks[typeof type][\"fn\"]>\n\t\t\t\t) => {\n\t\t\t\t\treturn hookFn(...args, ...extraArgs);\n\t\t\t\t}) as THooks[typeof type][\"fn\"];\n\n\t\t\t\tconst resolvedMeta = {\n\t\t\t\t\t...meta,\n\t\t\t\t\texternal: hookFn,\n\t\t\t\t} as HookMetaArg<THooks[typeof type][\"meta\"]>[0];\n\n\t\t\t\treturn this.hook(\n\t\t\t\t\towner,\n\t\t\t\t\ttype,\n\t\t\t\t\tinternalHook,\n\t\t\t\t\t// @ts-expect-error - TypeScript fails to assert rest argument.\n\t\t\t\t\tresolvedMeta,\n\t\t\t\t);\n\t\t\t},\n\t\t\tunhook: (type, hookFn) => {\n\t\t\t\tthis._registeredHooks[type] = this._registeredHooks[type]?.filter(\n\t\t\t\t\t(registeredHook) => registeredHook.meta.external !== hookFn,\n\t\t\t\t);\n\t\t\t},\n\t\t};\n\t}\n}\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@slicemachine/plugin-kit",
3
- "version": "0.4.76-beta.3",
3
+ "version": "0.4.77-alpha.aa-svelte-4-and-5.1",
4
4
  "description": "A set of helpers to develop and run Slice Machine plugins",
5
5
  "keywords": [
6
6
  "typescript",
@@ -76,7 +76,7 @@
76
76
  },
77
77
  "devDependencies": {
78
78
  "@prismicio/mock": "0.7.1",
79
- "@prismicio/types-internal": "3.8.0",
79
+ "@prismicio/types-internal": "3.10.0",
80
80
  "@size-limit/preset-small-lib": "8.2.4",
81
81
  "@types/common-tags": "1.8.1",
82
82
  "@types/fs-extra": "11.0.1",
@@ -94,7 +94,7 @@
94
94
  "prettier-plugin-jsdoc": "1.1.1",
95
95
  "size-limit": "8.2.4",
96
96
  "typescript": "4.9.5",
97
- "vite": "4.3.9",
97
+ "vite": "4.5.14",
98
98
  "vite-plugin-sdk": "0.1.1",
99
99
  "vitest": "0.32.0"
100
100
  },
@@ -104,5 +104,5 @@
104
104
  "publishConfig": {
105
105
  "access": "public"
106
106
  },
107
- "stableVersion": "0.4.75"
107
+ "stableVersion": "0.4.76"
108
108
  }
@@ -11,6 +11,20 @@ import type {
11
11
  */
12
12
  export type CustomTypeUpdateHookData = {
13
13
  model: CustomType;
14
+ updateMeta?: {
15
+ fieldIdChanged?: {
16
+ /**
17
+ * Previous path of the changed field. Can be used to identify the field
18
+ * that had an API ID rename (e.g. ["page", "title"])
19
+ */
20
+ previousPath: string[];
21
+ /**
22
+ * New path of the changed field. Can be used to identify the field that
23
+ * had an API ID rename (e.g. ["page", "title2"])
24
+ */
25
+ newPath: string[];
26
+ };
27
+ };
14
28
  };
15
29
 
16
30
  /**
@@ -1 +0,0 @@
1
- {"version":3,"file":"tslib.es6.cjs","sources":["../../../../../../../node_modules/pascal-case/node_modules/tslib/tslib.es6.mjs"],"sourcesContent":["/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\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;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\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; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\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);\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); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\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\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\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\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n};\n"],"names":["__assign"],"mappings":";;AA+BWA,QAAAA,WAAW,WAAW;AAC/BA,UAAAA,WAAW,OAAO,UAAU,SAAS,SAAS,GAAG;AAC7C,aAAS,GAAG,IAAI,GAAG,IAAI,UAAU,QAAQ,IAAI,GAAG,KAAK;AACjD,UAAI,UAAU,CAAC;AACf,eAAS,KAAK;AAAG,YAAI,OAAO,UAAU,eAAe,KAAK,GAAG,CAAC;AAAG,YAAE,CAAC,IAAI,EAAE,CAAC;AAAA,IAC9E;AACD,WAAO;AAAA,EACV;AACD,SAAOA,iBAAS,MAAM,MAAM,SAAS;AACvC;","x_google_ignoreList":[0]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"tslib.es6.js","sources":["../../../../../../../node_modules/pascal-case/node_modules/tslib/tslib.es6.mjs"],"sourcesContent":["/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\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;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\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; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\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);\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); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\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\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\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\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n};\n"],"names":["__assign"],"mappings":"AA+BU,IAAC,WAAW,WAAW;AAC/B,aAAW,OAAO,UAAU,SAASA,UAAS,GAAG;AAC7C,aAAS,GAAG,IAAI,GAAG,IAAI,UAAU,QAAQ,IAAI,GAAG,KAAK;AACjD,UAAI,UAAU,CAAC;AACf,eAAS,KAAK;AAAG,YAAI,OAAO,UAAU,eAAe,KAAK,GAAG,CAAC;AAAG,YAAE,CAAC,IAAI,EAAE,CAAC;AAAA,IAC9E;AACD,WAAO;AAAA,EACV;AACD,SAAO,SAAS,MAAM,MAAM,SAAS;AACvC;","x_google_ignoreList":[0]}