wp-typia 0.19.0 → 0.20.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -2
- package/dist-bunli/.bunli/commands.gen.js +1843 -1216
- package/dist-bunli/.bunli/commands.gen.js.map +36 -33
- package/dist-bunli/cli-03j0axbt.js +163 -0
- package/dist-bunli/cli-03j0axbt.js.map +11 -0
- package/dist-bunli/{cli-7svz19s1.js → cli-2ybmc22r.js} +370 -86
- package/dist-bunli/{cli-7svz19s1.js.map → cli-2ybmc22r.js.map} +15 -14
- package/dist-bunli/cli-7yg38ht2.js +427 -0
- package/dist-bunli/cli-7yg38ht2.js.map +12 -0
- package/dist-bunli/{cli-yw0mq0wq.js → cli-93wd227r.js} +108 -3
- package/dist-bunli/cli-93wd227r.js.map +10 -0
- package/dist-bunli/{cli-kan7a6db.js → cli-a6dwqnhq.js} +24 -2
- package/dist-bunli/cli-a6dwqnhq.js.map +11 -0
- package/dist-bunli/{cli-add-j2c81sh1.js → cli-add-pq6wm87p.js} +16 -9
- package/dist-bunli/{cli-add-j2c81sh1.js.map → cli-add-pq6wm87p.js.map} +3 -3
- package/dist-bunli/{cli-diagnostics-c65hhyhx.js → cli-diagnostics-e5gxeprp.js} +8 -4
- package/dist-bunli/{cli-diagnostics-c65hhyhx.js.map → cli-diagnostics-e5gxeprp.js.map} +1 -1
- package/dist-bunli/{cli-doctor-hft0wr0e.js → cli-doctor-qk6fwpds.js} +14 -13
- package/dist-bunli/{cli-doctor-hft0wr0e.js.map → cli-doctor-qk6fwpds.js.map} +3 -3
- package/dist-bunli/{cli-572d6g4m.js → cli-hv2yedw2.js} +2 -157
- package/dist-bunli/{cli-572d6g4m.js.map → cli-hv2yedw2.js.map} +4 -6
- package/dist-bunli/{cli-scaffold-vcg6wem5.js → cli-scaffold-s3nhwe7x.js} +9 -7
- package/dist-bunli/cli-scaffold-s3nhwe7x.js.map +10 -0
- package/dist-bunli/cli-t73q5aqz.js +103 -0
- package/dist-bunli/cli-t73q5aqz.js.map +10 -0
- package/dist-bunli/{cli-templates-4qxszbmc.js → cli-templates-j65r4k9v.js} +1 -1
- package/dist-bunli/{cli-wtrvnce5.js → cli-w4r0rr8a.js} +8 -8
- package/dist-bunli/cli-w4r0rr8a.js.map +10 -0
- package/dist-bunli/cli.js +127 -2863
- package/dist-bunli/cli.js.map +5 -56
- package/dist-bunli/command-list-37n1za5q.js +2485 -0
- package/dist-bunli/command-list-37n1za5q.js.map +58 -0
- package/dist-bunli/node-cli.js +432 -323
- package/dist-bunli/node-cli.js.map +11 -10
- package/dist-bunli/{sync-x91y9jtv.js → sync-k2k8svyc.js} +3 -2
- package/dist-bunli/{sync-x91y9jtv.js.map → sync-k2k8svyc.js.map} +1 -1
- package/package.json +6 -3
- package/dist-bunli/cli-kan7a6db.js.map +0 -11
- package/dist-bunli/cli-scaffold-vcg6wem5.js.map +0 -10
- package/dist-bunli/cli-wtrvnce5.js.map +0 -10
- package/dist-bunli/cli-yw0mq0wq.js.map +0 -10
- /package/dist-bunli/{cli-templates-4qxszbmc.js.map → cli-templates-j65r4k9v.js.map} +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../../../node_modules/.bun/lru-cache@11.2.7/node_modules/lru-cache/dist/commonjs/index.min.js", "../../../node_modules/.bun/hosted-git-info@9.0.2/node_modules/hosted-git-info/lib/hosts.js", "../../../node_modules/.bun/hosted-git-info@9.0.2/node_modules/hosted-git-info/lib/parse-url.js", "../../../node_modules/.bun/hosted-git-info@9.0.2/node_modules/hosted-git-info/lib/from-url.js", "../../../node_modules/.bun/hosted-git-info@9.0.2/node_modules/hosted-git-info/lib/index.js", "../../../node_modules/.bun/semver@7.7.4/node_modules/semver/internal/constants.js", "../../../node_modules/.bun/semver@7.7.4/node_modules/semver/internal/debug.js", "../../../node_modules/.bun/semver@7.7.4/node_modules/semver/internal/re.js", "../../../node_modules/.bun/semver@7.7.4/node_modules/semver/internal/parse-options.js", "../../../node_modules/.bun/semver@7.7.4/node_modules/semver/internal/identifiers.js", "../../../node_modules/.bun/semver@7.7.4/node_modules/semver/classes/semver.js", "../../../node_modules/.bun/semver@7.7.4/node_modules/semver/functions/parse.js", "../../../node_modules/.bun/semver@7.7.4/node_modules/semver/functions/valid.js", "../../../node_modules/.bun/semver@7.7.4/node_modules/semver/functions/clean.js", "../../../node_modules/.bun/semver@7.7.4/node_modules/semver/functions/inc.js", "../../../node_modules/.bun/semver@7.7.4/node_modules/semver/functions/diff.js", "../../../node_modules/.bun/semver@7.7.4/node_modules/semver/functions/major.js", "../../../node_modules/.bun/semver@7.7.4/node_modules/semver/functions/minor.js", "../../../node_modules/.bun/semver@7.7.4/node_modules/semver/functions/patch.js", "../../../node_modules/.bun/semver@7.7.4/node_modules/semver/functions/prerelease.js", "../../../node_modules/.bun/semver@7.7.4/node_modules/semver/functions/compare.js", "../../../node_modules/.bun/semver@7.7.4/node_modules/semver/functions/rcompare.js", "../../../node_modules/.bun/semver@7.7.4/node_modules/semver/functions/compare-loose.js", "../../../node_modules/.bun/semver@7.7.4/node_modules/semver/functions/compare-build.js", "../../../node_modules/.bun/semver@7.7.4/node_modules/semver/functions/sort.js", "../../../node_modules/.bun/semver@7.7.4/node_modules/semver/functions/rsort.js", "../../../node_modules/.bun/semver@7.7.4/node_modules/semver/functions/gt.js", "../../../node_modules/.bun/semver@7.7.4/node_modules/semver/functions/lt.js", "../../../node_modules/.bun/semver@7.7.4/node_modules/semver/functions/eq.js", "../../../node_modules/.bun/semver@7.7.4/node_modules/semver/functions/neq.js", "../../../node_modules/.bun/semver@7.7.4/node_modules/semver/functions/gte.js", "../../../node_modules/.bun/semver@7.7.4/node_modules/semver/functions/lte.js", "../../../node_modules/.bun/semver@7.7.4/node_modules/semver/functions/cmp.js", "../../../node_modules/.bun/semver@7.7.4/node_modules/semver/functions/coerce.js", "../../../node_modules/.bun/semver@7.7.4/node_modules/semver/internal/lrucache.js", "../../../node_modules/.bun/semver@7.7.4/node_modules/semver/classes/range.js", "../../../node_modules/.bun/semver@7.7.4/node_modules/semver/classes/comparator.js", "../../../node_modules/.bun/semver@7.7.4/node_modules/semver/functions/satisfies.js", "../../../node_modules/.bun/semver@7.7.4/node_modules/semver/ranges/to-comparators.js", "../../../node_modules/.bun/semver@7.7.4/node_modules/semver/ranges/max-satisfying.js", "../../../node_modules/.bun/semver@7.7.4/node_modules/semver/ranges/min-satisfying.js", "../../../node_modules/.bun/semver@7.7.4/node_modules/semver/ranges/min-version.js", "../../../node_modules/.bun/semver@7.7.4/node_modules/semver/ranges/valid.js", "../../../node_modules/.bun/semver@7.7.4/node_modules/semver/ranges/outside.js", "../../../node_modules/.bun/semver@7.7.4/node_modules/semver/ranges/gtr.js", "../../../node_modules/.bun/semver@7.7.4/node_modules/semver/ranges/ltr.js", "../../../node_modules/.bun/semver@7.7.4/node_modules/semver/ranges/intersects.js", "../../../node_modules/.bun/semver@7.7.4/node_modules/semver/ranges/simplify.js", "../../../node_modules/.bun/semver@7.7.4/node_modules/semver/ranges/subset.js", "../../../node_modules/.bun/semver@7.7.4/node_modules/semver/index.js", "../../../node_modules/.bun/validate-npm-package-name@7.0.2/node_modules/validate-npm-package-name/lib/index.js", "../../../node_modules/.bun/proc-log@6.1.0/node_modules/proc-log/lib/index.js", "../../../node_modules/.bun/npm-package-arg@13.0.2/node_modules/npm-package-arg/lib/npa.js", "../../wp-typia-project-tools/src/runtime/local-dev-presets.ts", "../../wp-typia-project-tools/src/runtime/template-render.ts", "../../../node_modules/.bun/mustache@4.2.0/node_modules/mustache/mustache.mjs", "../../wp-typia-project-tools/src/runtime/package-versions.ts", "../../wp-typia-project-tools/src/runtime/scaffold-onboarding.ts", "../../wp-typia-project-tools/src/runtime/scaffold-bootstrap.ts", "../../wp-typia-project-tools/src/runtime/persistence-rest-artifacts.ts", "../../wp-typia-project-tools/src/runtime/built-in-block-attribute-emitters.ts", "../../wp-typia-project-tools/src/runtime/built-in-block-attribute-specs.ts", "../../wp-typia-project-tools/src/runtime/built-in-block-artifact-types.ts", "../../wp-typia-project-tools/src/runtime/built-in-block-artifacts.ts", "../../wp-typia-project-tools/src/runtime/starter-manifests.ts", "../../wp-typia-project-tools/src/runtime/cli-validation.ts", "../../wp-typia-project-tools/src/runtime/alternate-render-targets.ts", "../../wp-typia-project-tools/src/runtime/compound-inner-blocks.ts", "../../wp-typia-project-tools/src/runtime/scaffold-answer-resolution.ts", "../../wp-typia-project-tools/src/runtime/scaffold.ts", "../../wp-typia-project-tools/src/runtime/scaffold-apply-utils.ts", "../../wp-typia-project-tools/src/runtime/migration-ui-capability.ts", "../../wp-typia-project-tools/src/runtime/scaffold-documents.ts", "../../wp-typia-project-tools/src/runtime/scaffold-package-manager-files.ts", "../../wp-typia-project-tools/src/runtime/scaffold-repository-reference.ts", "../../wp-typia-project-tools/src/runtime/template-source-locators.ts", "../../wp-typia-project-tools/src/runtime/template-source-normalization.ts", "../../wp-typia-project-tools/src/runtime/template-layers.ts", "../../wp-typia-project-tools/src/runtime/template-source-external.ts", "../../wp-typia-project-tools/src/runtime/template-source-remote.ts", "../../wp-typia-project-tools/src/runtime/template-source-seeds.ts", "../../../node_modules/.bun/tar@7.5.13/node_modules/tar/dist/esm/index.min.js", "../../wp-typia-project-tools/src/runtime/template-source.ts", "../../wp-typia-project-tools/src/runtime/block-generator-service-spec.ts", "../../wp-typia-project-tools/src/runtime/built-in-block-non-ts-artifacts.ts", "../../wp-typia-project-tools/src/runtime/built-in-block-code-templates/shared.ts", "../../wp-typia-project-tools/src/runtime/built-in-block-code-templates/basic.ts", "../../wp-typia-project-tools/src/runtime/built-in-block-code-templates/interactivity.ts", "../../wp-typia-project-tools/src/runtime/built-in-block-code-templates/persistence.ts", "../../wp-typia-project-tools/src/runtime/built-in-block-code-templates/query-loop.ts", "../../wp-typia-project-tools/src/runtime/built-in-block-code-templates/compound-parent.ts", "../../wp-typia-project-tools/src/runtime/built-in-block-code-templates/compound-child.ts", "../../wp-typia-project-tools/src/runtime/built-in-block-code-templates/compound-persistence.ts", "../../wp-typia-project-tools/src/runtime/built-in-block-code-artifacts.ts", "../../wp-typia-project-tools/src/runtime/block-generator-service-core.ts", "../../wp-typia-project-tools/src/runtime/scaffold-template-variables.ts", "../../wp-typia-project-tools/src/runtime/external-layer-selection.ts"],
|
|
3
|
+
"sources": ["../../../node_modules/.bun/lru-cache@11.2.7/node_modules/lru-cache/dist/commonjs/index.min.js", "../../../node_modules/.bun/hosted-git-info@9.0.2/node_modules/hosted-git-info/lib/hosts.js", "../../../node_modules/.bun/hosted-git-info@9.0.2/node_modules/hosted-git-info/lib/parse-url.js", "../../../node_modules/.bun/hosted-git-info@9.0.2/node_modules/hosted-git-info/lib/from-url.js", "../../../node_modules/.bun/hosted-git-info@9.0.2/node_modules/hosted-git-info/lib/index.js", "../../../node_modules/.bun/semver@7.7.4/node_modules/semver/internal/constants.js", "../../../node_modules/.bun/semver@7.7.4/node_modules/semver/internal/debug.js", "../../../node_modules/.bun/semver@7.7.4/node_modules/semver/internal/re.js", "../../../node_modules/.bun/semver@7.7.4/node_modules/semver/internal/parse-options.js", "../../../node_modules/.bun/semver@7.7.4/node_modules/semver/internal/identifiers.js", "../../../node_modules/.bun/semver@7.7.4/node_modules/semver/classes/semver.js", "../../../node_modules/.bun/semver@7.7.4/node_modules/semver/functions/parse.js", "../../../node_modules/.bun/semver@7.7.4/node_modules/semver/functions/valid.js", "../../../node_modules/.bun/semver@7.7.4/node_modules/semver/functions/clean.js", "../../../node_modules/.bun/semver@7.7.4/node_modules/semver/functions/inc.js", "../../../node_modules/.bun/semver@7.7.4/node_modules/semver/functions/diff.js", "../../../node_modules/.bun/semver@7.7.4/node_modules/semver/functions/major.js", "../../../node_modules/.bun/semver@7.7.4/node_modules/semver/functions/minor.js", "../../../node_modules/.bun/semver@7.7.4/node_modules/semver/functions/patch.js", "../../../node_modules/.bun/semver@7.7.4/node_modules/semver/functions/prerelease.js", "../../../node_modules/.bun/semver@7.7.4/node_modules/semver/functions/compare.js", "../../../node_modules/.bun/semver@7.7.4/node_modules/semver/functions/rcompare.js", "../../../node_modules/.bun/semver@7.7.4/node_modules/semver/functions/compare-loose.js", "../../../node_modules/.bun/semver@7.7.4/node_modules/semver/functions/compare-build.js", "../../../node_modules/.bun/semver@7.7.4/node_modules/semver/functions/sort.js", "../../../node_modules/.bun/semver@7.7.4/node_modules/semver/functions/rsort.js", "../../../node_modules/.bun/semver@7.7.4/node_modules/semver/functions/gt.js", "../../../node_modules/.bun/semver@7.7.4/node_modules/semver/functions/lt.js", "../../../node_modules/.bun/semver@7.7.4/node_modules/semver/functions/eq.js", "../../../node_modules/.bun/semver@7.7.4/node_modules/semver/functions/neq.js", "../../../node_modules/.bun/semver@7.7.4/node_modules/semver/functions/gte.js", "../../../node_modules/.bun/semver@7.7.4/node_modules/semver/functions/lte.js", "../../../node_modules/.bun/semver@7.7.4/node_modules/semver/functions/cmp.js", "../../../node_modules/.bun/semver@7.7.4/node_modules/semver/functions/coerce.js", "../../../node_modules/.bun/semver@7.7.4/node_modules/semver/internal/lrucache.js", "../../../node_modules/.bun/semver@7.7.4/node_modules/semver/classes/range.js", "../../../node_modules/.bun/semver@7.7.4/node_modules/semver/classes/comparator.js", "../../../node_modules/.bun/semver@7.7.4/node_modules/semver/functions/satisfies.js", "../../../node_modules/.bun/semver@7.7.4/node_modules/semver/ranges/to-comparators.js", "../../../node_modules/.bun/semver@7.7.4/node_modules/semver/ranges/max-satisfying.js", "../../../node_modules/.bun/semver@7.7.4/node_modules/semver/ranges/min-satisfying.js", "../../../node_modules/.bun/semver@7.7.4/node_modules/semver/ranges/min-version.js", "../../../node_modules/.bun/semver@7.7.4/node_modules/semver/ranges/valid.js", "../../../node_modules/.bun/semver@7.7.4/node_modules/semver/ranges/outside.js", "../../../node_modules/.bun/semver@7.7.4/node_modules/semver/ranges/gtr.js", "../../../node_modules/.bun/semver@7.7.4/node_modules/semver/ranges/ltr.js", "../../../node_modules/.bun/semver@7.7.4/node_modules/semver/ranges/intersects.js", "../../../node_modules/.bun/semver@7.7.4/node_modules/semver/ranges/simplify.js", "../../../node_modules/.bun/semver@7.7.4/node_modules/semver/ranges/subset.js", "../../../node_modules/.bun/semver@7.7.4/node_modules/semver/index.js", "../../../node_modules/.bun/validate-npm-package-name@7.0.2/node_modules/validate-npm-package-name/lib/index.js", "../../../node_modules/.bun/proc-log@6.1.0/node_modules/proc-log/lib/index.js", "../../../node_modules/.bun/npm-package-arg@13.0.2/node_modules/npm-package-arg/lib/npa.js", "../../wp-typia-project-tools/src/runtime/local-dev-presets.ts", "../../wp-typia-project-tools/src/runtime/template-render.ts", "../../../node_modules/.bun/mustache@4.2.0/node_modules/mustache/mustache.mjs", "../../wp-typia-project-tools/src/runtime/package-versions.ts", "../../wp-typia-project-tools/src/runtime/scaffold-onboarding.ts", "../../wp-typia-project-tools/src/runtime/scaffold-bootstrap.ts", "../../wp-typia-project-tools/src/runtime/persistence-rest-artifacts.ts", "../../wp-typia-project-tools/src/runtime/built-in-block-attribute-emitters.ts", "../../wp-typia-project-tools/src/runtime/built-in-block-attribute-specs.ts", "../../wp-typia-project-tools/src/runtime/built-in-block-artifact-types.ts", "../../wp-typia-project-tools/src/runtime/scaffold-template-variable-groups.ts", "../../wp-typia-project-tools/src/runtime/built-in-block-artifacts.ts", "../../wp-typia-project-tools/src/runtime/starter-manifests.ts", "../../wp-typia-project-tools/src/runtime/cli-validation.ts", "../../wp-typia-project-tools/src/runtime/alternate-render-targets.ts", "../../wp-typia-project-tools/src/runtime/compound-inner-blocks.ts", "../../wp-typia-project-tools/src/runtime/scaffold-answer-resolution.ts", "../../wp-typia-project-tools/src/runtime/scaffold.ts", "../../wp-typia-project-tools/src/runtime/scaffold-apply-utils.ts", "../../wp-typia-project-tools/src/runtime/migration-ui-capability.ts", "../../wp-typia-project-tools/src/runtime/scaffold-documents.ts", "../../wp-typia-project-tools/src/runtime/scaffold-package-manager-files.ts", "../../wp-typia-project-tools/src/runtime/scaffold-repository-reference.ts", "../../wp-typia-project-tools/src/runtime/template-source-locators.ts", "../../wp-typia-project-tools/src/runtime/template-source-normalization.ts", "../../wp-typia-project-tools/src/runtime/template-layers.ts", "../../wp-typia-project-tools/src/runtime/template-source-external.ts", "../../wp-typia-project-tools/src/runtime/template-source-remote.ts", "../../wp-typia-project-tools/src/runtime/template-source-seeds.ts", "../../../node_modules/.bun/tar@7.5.13/node_modules/tar/dist/esm/index.min.js", "../../wp-typia-project-tools/src/runtime/template-source.ts", "../../wp-typia-project-tools/src/runtime/block-generator-service-spec.ts", "../../wp-typia-project-tools/src/runtime/built-in-block-non-ts-artifacts.ts", "../../wp-typia-project-tools/src/runtime/built-in-block-code-templates/shared.ts", "../../wp-typia-project-tools/src/runtime/built-in-block-code-templates/basic.ts", "../../wp-typia-project-tools/src/runtime/built-in-block-code-templates/interactivity.ts", "../../wp-typia-project-tools/src/runtime/built-in-block-code-templates/persistence.ts", "../../wp-typia-project-tools/src/runtime/built-in-block-code-templates/query-loop.ts", "../../wp-typia-project-tools/src/runtime/built-in-block-code-templates/compound-parent.ts", "../../wp-typia-project-tools/src/runtime/built-in-block-code-templates/compound-child.ts", "../../wp-typia-project-tools/src/runtime/built-in-block-code-templates/compound-persistence.ts", "../../wp-typia-project-tools/src/runtime/built-in-block-code-artifacts.ts", "../../wp-typia-project-tools/src/runtime/block-generator-service-core.ts", "../../wp-typia-project-tools/src/runtime/scaffold-template-variables.ts", "../../wp-typia-project-tools/src/runtime/external-layer-selection.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
5
|
"\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0});exports.LRUCache=void 0;var G=typeof performance==\"object\"&&performance&&typeof performance.now==\"function\"?performance:Date,U=new Set,R=typeof process==\"object\"&&process?process:{},I=(c,t,e,i)=>{typeof R.emitWarning==\"function\"?R.emitWarning(c,t,e,i):console.error(`[${e}] ${t}: ${c}`)},C=globalThis.AbortController,L=globalThis.AbortSignal;if(typeof C>\"u\"){L=class{onabort;_onabort=[];reason;aborted=!1;addEventListener(i,s){this._onabort.push(s)}},C=class{constructor(){t()}signal=new L;abort(i){if(!this.signal.aborted){this.signal.reason=i,this.signal.aborted=!0;for(let s of this.signal._onabort)s(i);this.signal.onabort?.(i)}}};let c=R.env?.LRU_CACHE_IGNORE_AC_WARNING!==\"1\",t=()=>{c&&(c=!1,I(\"AbortController is not defined. If using lru-cache in node 14, load an AbortController polyfill from the `node-abort-controller` package. A minimal polyfill is provided for use by LRUCache.fetch(), but it should not be relied upon in other contexts (eg, passing it to other APIs that use AbortController/AbortSignal might have undesirable effects). You may disable this with LRU_CACHE_IGNORE_AC_WARNING=1 in the env.\",\"NO_ABORT_CONTROLLER\",\"ENOTSUP\",t))}}var x=c=>!U.has(c),H=Symbol(\"type\"),y=c=>c&&c===Math.floor(c)&&c>0&&isFinite(c),M=c=>y(c)?c<=Math.pow(2,8)?Uint8Array:c<=Math.pow(2,16)?Uint16Array:c<=Math.pow(2,32)?Uint32Array:c<=Number.MAX_SAFE_INTEGER?z:null:null,z=class extends Array{constructor(t){super(t),this.fill(0)}},W=class c{heap;length;static#o=!1;static create(t){let e=M(t);if(!e)return[];c.#o=!0;let i=new c(t,e);return c.#o=!1,i}constructor(t,e){if(!c.#o)throw new TypeError(\"instantiate Stack using Stack.create(n)\");this.heap=new e(t),this.length=0}push(t){this.heap[this.length++]=t}pop(){return this.heap[--this.length]}},D=class c{#o;#c;#w;#C;#S;#L;#U;#m;get perf(){return this.#m}ttl;ttlResolution;ttlAutopurge;updateAgeOnGet;updateAgeOnHas;allowStale;noDisposeOnSet;noUpdateTTL;maxEntrySize;sizeCalculation;noDeleteOnFetchRejection;noDeleteOnStaleGet;allowStaleOnFetchAbort;allowStaleOnFetchRejection;ignoreFetchAbort;#n;#_;#s;#i;#t;#a;#u;#l;#h;#b;#r;#y;#A;#d;#g;#T;#v;#f;#I;static unsafeExposeInternals(t){return{starts:t.#A,ttls:t.#d,autopurgeTimers:t.#g,sizes:t.#y,keyMap:t.#s,keyList:t.#i,valList:t.#t,next:t.#a,prev:t.#u,get head(){return t.#l},get tail(){return t.#h},free:t.#b,isBackgroundFetch:e=>t.#e(e),backgroundFetch:(e,i,s,n)=>t.#x(e,i,s,n),moveToTail:e=>t.#D(e),indexes:e=>t.#F(e),rindexes:e=>t.#O(e),isStale:e=>t.#p(e)}}get max(){return this.#o}get maxSize(){return this.#c}get calculatedSize(){return this.#_}get size(){return this.#n}get fetchMethod(){return this.#L}get memoMethod(){return this.#U}get dispose(){return this.#w}get onInsert(){return this.#C}get disposeAfter(){return this.#S}constructor(t){let{max:e=0,ttl:i,ttlResolution:s=1,ttlAutopurge:n,updateAgeOnGet:o,updateAgeOnHas:h,allowStale:r,dispose:a,onInsert:w,disposeAfter:f,noDisposeOnSet:d,noUpdateTTL:g,maxSize:A=0,maxEntrySize:p=0,sizeCalculation:_,fetchMethod:l,memoMethod:S,noDeleteOnFetchRejection:b,noDeleteOnStaleGet:m,allowStaleOnFetchRejection:u,allowStaleOnFetchAbort:T,ignoreFetchAbort:F,perf:v}=t;if(v!==void 0&&typeof v?.now!=\"function\")throw new TypeError(\"perf option must have a now() method if specified\");if(this.#m=v??G,e!==0&&!y(e))throw new TypeError(\"max option must be a nonnegative integer\");let O=e?M(e):Array;if(!O)throw new Error(\"invalid max value: \"+e);if(this.#o=e,this.#c=A,this.maxEntrySize=p||this.#c,this.sizeCalculation=_,this.sizeCalculation){if(!this.#c&&!this.maxEntrySize)throw new TypeError(\"cannot set sizeCalculation without setting maxSize or maxEntrySize\");if(typeof this.sizeCalculation!=\"function\")throw new TypeError(\"sizeCalculation set to non-function\")}if(S!==void 0&&typeof S!=\"function\")throw new TypeError(\"memoMethod must be a function if defined\");if(this.#U=S,l!==void 0&&typeof l!=\"function\")throw new TypeError(\"fetchMethod must be a function if specified\");if(this.#L=l,this.#v=!!l,this.#s=new Map,this.#i=new Array(e).fill(void 0),this.#t=new Array(e).fill(void 0),this.#a=new O(e),this.#u=new O(e),this.#l=0,this.#h=0,this.#b=W.create(e),this.#n=0,this.#_=0,typeof a==\"function\"&&(this.#w=a),typeof w==\"function\"&&(this.#C=w),typeof f==\"function\"?(this.#S=f,this.#r=[]):(this.#S=void 0,this.#r=void 0),this.#T=!!this.#w,this.#I=!!this.#C,this.#f=!!this.#S,this.noDisposeOnSet=!!d,this.noUpdateTTL=!!g,this.noDeleteOnFetchRejection=!!b,this.allowStaleOnFetchRejection=!!u,this.allowStaleOnFetchAbort=!!T,this.ignoreFetchAbort=!!F,this.maxEntrySize!==0){if(this.#c!==0&&!y(this.#c))throw new TypeError(\"maxSize must be a positive integer if specified\");if(!y(this.maxEntrySize))throw new TypeError(\"maxEntrySize must be a positive integer if specified\");this.#B()}if(this.allowStale=!!r,this.noDeleteOnStaleGet=!!m,this.updateAgeOnGet=!!o,this.updateAgeOnHas=!!h,this.ttlResolution=y(s)||s===0?s:1,this.ttlAutopurge=!!n,this.ttl=i||0,this.ttl){if(!y(this.ttl))throw new TypeError(\"ttl must be a positive integer if specified\");this.#j()}if(this.#o===0&&this.ttl===0&&this.#c===0)throw new TypeError(\"At least one of max, maxSize, or ttl is required\");if(!this.ttlAutopurge&&!this.#o&&!this.#c){let E=\"LRU_CACHE_UNBOUNDED\";x(E)&&(U.add(E),I(\"TTL caching without ttlAutopurge, max, or maxSize can result in unbounded memory consumption.\",\"UnboundedCacheWarning\",E,c))}}getRemainingTTL(t){return this.#s.has(t)?1/0:0}#j(){let t=new z(this.#o),e=new z(this.#o);this.#d=t,this.#A=e;let i=this.ttlAutopurge?new Array(this.#o):void 0;this.#g=i,this.#N=(h,r,a=this.#m.now())=>{e[h]=r!==0?a:0,t[h]=r,s(h,r)},this.#R=h=>{e[h]=t[h]!==0?this.#m.now():0,s(h,t[h])};let s=this.ttlAutopurge?(h,r)=>{if(i?.[h]&&(clearTimeout(i[h]),i[h]=void 0),r&&r!==0&&i){let a=setTimeout(()=>{this.#p(h)&&this.#E(this.#i[h],\"expire\")},r+1);a.unref&&a.unref(),i[h]=a}}:()=>{};this.#z=(h,r)=>{if(t[r]){let a=t[r],w=e[r];if(!a||!w)return;h.ttl=a,h.start=w,h.now=n||o();let f=h.now-w;h.remainingTTL=a-f}};let n=0,o=()=>{let h=this.#m.now();if(this.ttlResolution>0){n=h;let r=setTimeout(()=>n=0,this.ttlResolution);r.unref&&r.unref()}return h};this.getRemainingTTL=h=>{let r=this.#s.get(h);if(r===void 0)return 0;let a=t[r],w=e[r];if(!a||!w)return 1/0;let f=(n||o())-w;return a-f},this.#p=h=>{let r=e[h],a=t[h];return!!a&&!!r&&(n||o())-r>a}}#R=()=>{};#z=()=>{};#N=()=>{};#p=()=>!1;#B(){let t=new z(this.#o);this.#_=0,this.#y=t,this.#W=e=>{this.#_-=t[e],t[e]=0},this.#P=(e,i,s,n)=>{if(this.#e(i))return 0;if(!y(s))if(n){if(typeof n!=\"function\")throw new TypeError(\"sizeCalculation must be a function\");if(s=n(i,e),!y(s))throw new TypeError(\"sizeCalculation return invalid (expect positive integer)\")}else throw new TypeError(\"invalid size value (must be positive integer). When maxSize or maxEntrySize is used, sizeCalculation or size must be set.\");return s},this.#M=(e,i,s)=>{if(t[e]=i,this.#c){let n=this.#c-t[e];for(;this.#_>n;)this.#G(!0)}this.#_+=t[e],s&&(s.entrySize=i,s.totalCalculatedSize=this.#_)}}#W=t=>{};#M=(t,e,i)=>{};#P=(t,e,i,s)=>{if(i||s)throw new TypeError(\"cannot set size without setting maxSize or maxEntrySize on cache\");return 0};*#F({allowStale:t=this.allowStale}={}){if(this.#n)for(let e=this.#h;!(!this.#H(e)||((t||!this.#p(e))&&(yield e),e===this.#l));)e=this.#u[e]}*#O({allowStale:t=this.allowStale}={}){if(this.#n)for(let e=this.#l;!(!this.#H(e)||((t||!this.#p(e))&&(yield e),e===this.#h));)e=this.#a[e]}#H(t){return t!==void 0&&this.#s.get(this.#i[t])===t}*entries(){for(let t of this.#F())this.#t[t]!==void 0&&this.#i[t]!==void 0&&!this.#e(this.#t[t])&&(yield[this.#i[t],this.#t[t]])}*rentries(){for(let t of this.#O())this.#t[t]!==void 0&&this.#i[t]!==void 0&&!this.#e(this.#t[t])&&(yield[this.#i[t],this.#t[t]])}*keys(){for(let t of this.#F()){let e=this.#i[t];e!==void 0&&!this.#e(this.#t[t])&&(yield e)}}*rkeys(){for(let t of this.#O()){let e=this.#i[t];e!==void 0&&!this.#e(this.#t[t])&&(yield e)}}*values(){for(let t of this.#F())this.#t[t]!==void 0&&!this.#e(this.#t[t])&&(yield this.#t[t])}*rvalues(){for(let t of this.#O())this.#t[t]!==void 0&&!this.#e(this.#t[t])&&(yield this.#t[t])}[Symbol.iterator](){return this.entries()}[Symbol.toStringTag]=\"LRUCache\";find(t,e={}){for(let i of this.#F()){let s=this.#t[i],n=this.#e(s)?s.__staleWhileFetching:s;if(n!==void 0&&t(n,this.#i[i],this))return this.get(this.#i[i],e)}}forEach(t,e=this){for(let i of this.#F()){let s=this.#t[i],n=this.#e(s)?s.__staleWhileFetching:s;n!==void 0&&t.call(e,n,this.#i[i],this)}}rforEach(t,e=this){for(let i of this.#O()){let s=this.#t[i],n=this.#e(s)?s.__staleWhileFetching:s;n!==void 0&&t.call(e,n,this.#i[i],this)}}purgeStale(){let t=!1;for(let e of this.#O({allowStale:!0}))this.#p(e)&&(this.#E(this.#i[e],\"expire\"),t=!0);return t}info(t){let e=this.#s.get(t);if(e===void 0)return;let i=this.#t[e],s=this.#e(i)?i.__staleWhileFetching:i;if(s===void 0)return;let n={value:s};if(this.#d&&this.#A){let o=this.#d[e],h=this.#A[e];if(o&&h){let r=o-(this.#m.now()-h);n.ttl=r,n.start=Date.now()}}return this.#y&&(n.size=this.#y[e]),n}dump(){let t=[];for(let e of this.#F({allowStale:!0})){let i=this.#i[e],s=this.#t[e],n=this.#e(s)?s.__staleWhileFetching:s;if(n===void 0||i===void 0)continue;let o={value:n};if(this.#d&&this.#A){o.ttl=this.#d[e];let h=this.#m.now()-this.#A[e];o.start=Math.floor(Date.now()-h)}this.#y&&(o.size=this.#y[e]),t.unshift([i,o])}return t}load(t){this.clear();for(let[e,i]of t){if(i.start){let s=Date.now()-i.start;i.start=this.#m.now()-s}this.set(e,i.value,i)}}set(t,e,i={}){if(e===void 0)return this.delete(t),this;let{ttl:s=this.ttl,start:n,noDisposeOnSet:o=this.noDisposeOnSet,sizeCalculation:h=this.sizeCalculation,status:r}=i,{noUpdateTTL:a=this.noUpdateTTL}=i,w=this.#P(t,e,i.size||0,h);if(this.maxEntrySize&&w>this.maxEntrySize)return r&&(r.set=\"miss\",r.maxEntrySizeExceeded=!0),this.#E(t,\"set\"),this;let f=this.#n===0?void 0:this.#s.get(t);if(f===void 0)f=this.#n===0?this.#h:this.#b.length!==0?this.#b.pop():this.#n===this.#o?this.#G(!1):this.#n,this.#i[f]=t,this.#t[f]=e,this.#s.set(t,f),this.#a[this.#h]=f,this.#u[f]=this.#h,this.#h=f,this.#n++,this.#M(f,w,r),r&&(r.set=\"add\"),a=!1,this.#I&&this.#C?.(e,t,\"add\");else{this.#D(f);let d=this.#t[f];if(e!==d){if(this.#v&&this.#e(d)){d.__abortController.abort(new Error(\"replaced\"));let{__staleWhileFetching:g}=d;g!==void 0&&!o&&(this.#T&&this.#w?.(g,t,\"set\"),this.#f&&this.#r?.push([g,t,\"set\"]))}else o||(this.#T&&this.#w?.(d,t,\"set\"),this.#f&&this.#r?.push([d,t,\"set\"]));if(this.#W(f),this.#M(f,w,r),this.#t[f]=e,r){r.set=\"replace\";let g=d&&this.#e(d)?d.__staleWhileFetching:d;g!==void 0&&(r.oldValue=g)}}else r&&(r.set=\"update\");this.#I&&this.onInsert?.(e,t,e===d?\"update\":\"replace\")}if(s!==0&&!this.#d&&this.#j(),this.#d&&(a||this.#N(f,s,n),r&&this.#z(r,f)),!o&&this.#f&&this.#r){let d=this.#r,g;for(;g=d?.shift();)this.#S?.(...g)}return this}pop(){try{for(;this.#n;){let t=this.#t[this.#l];if(this.#G(!0),this.#e(t)){if(t.__staleWhileFetching)return t.__staleWhileFetching}else if(t!==void 0)return t}}finally{if(this.#f&&this.#r){let t=this.#r,e;for(;e=t?.shift();)this.#S?.(...e)}}}#G(t){let e=this.#l,i=this.#i[e],s=this.#t[e];return this.#v&&this.#e(s)?s.__abortController.abort(new Error(\"evicted\")):(this.#T||this.#f)&&(this.#T&&this.#w?.(s,i,\"evict\"),this.#f&&this.#r?.push([s,i,\"evict\"])),this.#W(e),this.#g?.[e]&&(clearTimeout(this.#g[e]),this.#g[e]=void 0),t&&(this.#i[e]=void 0,this.#t[e]=void 0,this.#b.push(e)),this.#n===1?(this.#l=this.#h=0,this.#b.length=0):this.#l=this.#a[e],this.#s.delete(i),this.#n--,e}has(t,e={}){let{updateAgeOnHas:i=this.updateAgeOnHas,status:s}=e,n=this.#s.get(t);if(n!==void 0){let o=this.#t[n];if(this.#e(o)&&o.__staleWhileFetching===void 0)return!1;if(this.#p(n))s&&(s.has=\"stale\",this.#z(s,n));else return i&&this.#R(n),s&&(s.has=\"hit\",this.#z(s,n)),!0}else s&&(s.has=\"miss\");return!1}peek(t,e={}){let{allowStale:i=this.allowStale}=e,s=this.#s.get(t);if(s===void 0||!i&&this.#p(s))return;let n=this.#t[s];return this.#e(n)?n.__staleWhileFetching:n}#x(t,e,i,s){let n=e===void 0?void 0:this.#t[e];if(this.#e(n))return n;let o=new C,{signal:h}=i;h?.addEventListener(\"abort\",()=>o.abort(h.reason),{signal:o.signal});let r={signal:o.signal,options:i,context:s},a=(p,_=!1)=>{let{aborted:l}=o.signal,S=i.ignoreFetchAbort&&p!==void 0,b=i.ignoreFetchAbort||!!(i.allowStaleOnFetchAbort&&p!==void 0);if(i.status&&(l&&!_?(i.status.fetchAborted=!0,i.status.fetchError=o.signal.reason,S&&(i.status.fetchAbortIgnored=!0)):i.status.fetchResolved=!0),l&&!S&&!_)return f(o.signal.reason,b);let m=g,u=this.#t[e];return(u===g||S&&_&&u===void 0)&&(p===void 0?m.__staleWhileFetching!==void 0?this.#t[e]=m.__staleWhileFetching:this.#E(t,\"fetch\"):(i.status&&(i.status.fetchUpdated=!0),this.set(t,p,r.options))),p},w=p=>(i.status&&(i.status.fetchRejected=!0,i.status.fetchError=p),f(p,!1)),f=(p,_)=>{let{aborted:l}=o.signal,S=l&&i.allowStaleOnFetchAbort,b=S||i.allowStaleOnFetchRejection,m=b||i.noDeleteOnFetchRejection,u=g;if(this.#t[e]===g&&(!m||!_&&u.__staleWhileFetching===void 0?this.#E(t,\"fetch\"):S||(this.#t[e]=u.__staleWhileFetching)),b)return i.status&&u.__staleWhileFetching!==void 0&&(i.status.returnedStale=!0),u.__staleWhileFetching;if(u.__returned===u)throw p},d=(p,_)=>{let l=this.#L?.(t,n,r);l&&l instanceof Promise&&l.then(S=>p(S===void 0?void 0:S),_),o.signal.addEventListener(\"abort\",()=>{(!i.ignoreFetchAbort||i.allowStaleOnFetchAbort)&&(p(void 0),i.allowStaleOnFetchAbort&&(p=S=>a(S,!0)))})};i.status&&(i.status.fetchDispatched=!0);let g=new Promise(d).then(a,w),A=Object.assign(g,{__abortController:o,__staleWhileFetching:n,__returned:void 0});return e===void 0?(this.set(t,A,{...r.options,status:void 0}),e=this.#s.get(t)):this.#t[e]=A,A}#e(t){if(!this.#v)return!1;let e=t;return!!e&&e instanceof Promise&&e.hasOwnProperty(\"__staleWhileFetching\")&&e.__abortController instanceof C}async fetch(t,e={}){let{allowStale:i=this.allowStale,updateAgeOnGet:s=this.updateAgeOnGet,noDeleteOnStaleGet:n=this.noDeleteOnStaleGet,ttl:o=this.ttl,noDisposeOnSet:h=this.noDisposeOnSet,size:r=0,sizeCalculation:a=this.sizeCalculation,noUpdateTTL:w=this.noUpdateTTL,noDeleteOnFetchRejection:f=this.noDeleteOnFetchRejection,allowStaleOnFetchRejection:d=this.allowStaleOnFetchRejection,ignoreFetchAbort:g=this.ignoreFetchAbort,allowStaleOnFetchAbort:A=this.allowStaleOnFetchAbort,context:p,forceRefresh:_=!1,status:l,signal:S}=e;if(!this.#v)return l&&(l.fetch=\"get\"),this.get(t,{allowStale:i,updateAgeOnGet:s,noDeleteOnStaleGet:n,status:l});let b={allowStale:i,updateAgeOnGet:s,noDeleteOnStaleGet:n,ttl:o,noDisposeOnSet:h,size:r,sizeCalculation:a,noUpdateTTL:w,noDeleteOnFetchRejection:f,allowStaleOnFetchRejection:d,allowStaleOnFetchAbort:A,ignoreFetchAbort:g,status:l,signal:S},m=this.#s.get(t);if(m===void 0){l&&(l.fetch=\"miss\");let u=this.#x(t,m,b,p);return u.__returned=u}else{let u=this.#t[m];if(this.#e(u)){let E=i&&u.__staleWhileFetching!==void 0;return l&&(l.fetch=\"inflight\",E&&(l.returnedStale=!0)),E?u.__staleWhileFetching:u.__returned=u}let T=this.#p(m);if(!_&&!T)return l&&(l.fetch=\"hit\"),this.#D(m),s&&this.#R(m),l&&this.#z(l,m),u;let F=this.#x(t,m,b,p),O=F.__staleWhileFetching!==void 0&&i;return l&&(l.fetch=T?\"stale\":\"refresh\",O&&T&&(l.returnedStale=!0)),O?F.__staleWhileFetching:F.__returned=F}}async forceFetch(t,e={}){let i=await this.fetch(t,e);if(i===void 0)throw new Error(\"fetch() returned undefined\");return i}memo(t,e={}){let i=this.#U;if(!i)throw new Error(\"no memoMethod provided to constructor\");let{context:s,forceRefresh:n,...o}=e,h=this.get(t,o);if(!n&&h!==void 0)return h;let r=i(t,h,{options:o,context:s});return this.set(t,r,o),r}get(t,e={}){let{allowStale:i=this.allowStale,updateAgeOnGet:s=this.updateAgeOnGet,noDeleteOnStaleGet:n=this.noDeleteOnStaleGet,status:o}=e,h=this.#s.get(t);if(h!==void 0){let r=this.#t[h],a=this.#e(r);return o&&this.#z(o,h),this.#p(h)?(o&&(o.get=\"stale\"),a?(o&&i&&r.__staleWhileFetching!==void 0&&(o.returnedStale=!0),i?r.__staleWhileFetching:void 0):(n||this.#E(t,\"expire\"),o&&i&&(o.returnedStale=!0),i?r:void 0)):(o&&(o.get=\"hit\"),a?r.__staleWhileFetching:(this.#D(h),s&&this.#R(h),r))}else o&&(o.get=\"miss\")}#k(t,e){this.#u[e]=t,this.#a[t]=e}#D(t){t!==this.#h&&(t===this.#l?this.#l=this.#a[t]:this.#k(this.#u[t],this.#a[t]),this.#k(this.#h,t),this.#h=t)}delete(t){return this.#E(t,\"delete\")}#E(t,e){let i=!1;if(this.#n!==0){let s=this.#s.get(t);if(s!==void 0)if(this.#g?.[s]&&(clearTimeout(this.#g?.[s]),this.#g[s]=void 0),i=!0,this.#n===1)this.#V(e);else{this.#W(s);let n=this.#t[s];if(this.#e(n)?n.__abortController.abort(new Error(\"deleted\")):(this.#T||this.#f)&&(this.#T&&this.#w?.(n,t,e),this.#f&&this.#r?.push([n,t,e])),this.#s.delete(t),this.#i[s]=void 0,this.#t[s]=void 0,s===this.#h)this.#h=this.#u[s];else if(s===this.#l)this.#l=this.#a[s];else{let o=this.#u[s];this.#a[o]=this.#a[s];let h=this.#a[s];this.#u[h]=this.#u[s]}this.#n--,this.#b.push(s)}}if(this.#f&&this.#r?.length){let s=this.#r,n;for(;n=s?.shift();)this.#S?.(...n)}return i}clear(){return this.#V(\"delete\")}#V(t){for(let e of this.#O({allowStale:!0})){let i=this.#t[e];if(this.#e(i))i.__abortController.abort(new Error(\"deleted\"));else{let s=this.#i[e];this.#T&&this.#w?.(i,s,t),this.#f&&this.#r?.push([i,s,t])}}if(this.#s.clear(),this.#t.fill(void 0),this.#i.fill(void 0),this.#d&&this.#A){this.#d.fill(0),this.#A.fill(0);for(let e of this.#g??[])e!==void 0&&clearTimeout(e);this.#g?.fill(void 0)}if(this.#y&&this.#y.fill(0),this.#l=0,this.#h=0,this.#b.length=0,this.#_=0,this.#n=0,this.#f&&this.#r){let e=this.#r,i;for(;i=e?.shift();)this.#S?.(...i)}}};exports.LRUCache=D;\n//# sourceMappingURL=index.min.js.map\n",
|
|
6
6
|
"/* eslint-disable max-len */\n\n'use strict'\n\nconst maybeJoin = (...args) => args.every(arg => arg) ? args.join('') : ''\nconst maybeEncode = (arg) => arg ? encodeURIComponent(arg) : ''\nconst formatHashFragment = (f) => f.toLowerCase()\n .replace(/^\\W+/g, '') // strip leading non-characters\n .replace(/(?<!\\W)\\W+$/, '') // strip trailing non-characters\n .replace(/\\//g, '') // strip all slashes\n .replace(/\\W+/g, '-') // replace remaining non-characters with '-'\n\nconst defaults = {\n sshtemplate: ({ domain, user, project, committish }) =>\n `git@${domain}:${user}/${project}.git${maybeJoin('#', committish)}`,\n sshurltemplate: ({ domain, user, project, committish }) =>\n `git+ssh://git@${domain}/${user}/${project}.git${maybeJoin('#', committish)}`,\n edittemplate: ({ domain, user, project, committish, editpath, path }) =>\n `https://${domain}/${user}/${project}${maybeJoin('/', editpath, '/', maybeEncode(committish || 'HEAD'), '/', path)}`,\n browsetemplate: ({ domain, user, project, committish, treepath }) =>\n `https://${domain}/${user}/${project}${maybeJoin('/', treepath, '/', maybeEncode(committish))}`,\n browsetreetemplate: ({ domain, user, project, committish, treepath, path, fragment, hashformat }) =>\n `https://${domain}/${user}/${project}/${treepath}/${maybeEncode(committish || 'HEAD')}/${path}${maybeJoin('#', hashformat(fragment || ''))}`,\n browseblobtemplate: ({ domain, user, project, committish, blobpath, path, fragment, hashformat }) =>\n `https://${domain}/${user}/${project}/${blobpath}/${maybeEncode(committish || 'HEAD')}/${path}${maybeJoin('#', hashformat(fragment || ''))}`,\n docstemplate: ({ domain, user, project, treepath, committish }) =>\n `https://${domain}/${user}/${project}${maybeJoin('/', treepath, '/', maybeEncode(committish))}#readme`,\n httpstemplate: ({ auth, domain, user, project, committish }) =>\n `git+https://${maybeJoin(auth, '@')}${domain}/${user}/${project}.git${maybeJoin('#', committish)}`,\n filetemplate: ({ domain, user, project, committish, path }) =>\n `https://${domain}/${user}/${project}/raw/${maybeEncode(committish || 'HEAD')}/${path}`,\n shortcuttemplate: ({ type, user, project, committish }) =>\n `${type}:${user}/${project}${maybeJoin('#', committish)}`,\n pathtemplate: ({ user, project, committish }) =>\n `${user}/${project}${maybeJoin('#', committish)}`,\n bugstemplate: ({ domain, user, project }) =>\n `https://${domain}/${user}/${project}/issues`,\n hashformat: formatHashFragment,\n}\n\nconst hosts = {}\nhosts.github = {\n // First two are insecure and generally shouldn't be used any more, but\n // they are still supported.\n protocols: ['git:', 'http:', 'git+ssh:', 'git+https:', 'ssh:', 'https:'],\n domain: 'github.com',\n treepath: 'tree',\n blobpath: 'blob',\n editpath: 'edit',\n filetemplate: ({ auth, user, project, committish, path }) =>\n `https://${maybeJoin(auth, '@')}raw.githubusercontent.com/${user}/${project}/${maybeEncode(committish || 'HEAD')}/${path}`,\n gittemplate: ({ auth, domain, user, project, committish }) =>\n `git://${maybeJoin(auth, '@')}${domain}/${user}/${project}.git${maybeJoin('#', committish)}`,\n tarballtemplate: ({ domain, user, project, committish }) =>\n `https://codeload.${domain}/${user}/${project}/tar.gz/${maybeEncode(committish || 'HEAD')}`,\n extract: (url) => {\n let [, user, project, type, committish] = url.pathname.split('/', 5)\n if (type && type !== 'tree') {\n return\n }\n\n if (!type) {\n committish = url.hash.slice(1)\n }\n\n if (project && project.endsWith('.git')) {\n project = project.slice(0, -4)\n }\n\n if (!user || !project) {\n return\n }\n\n return { user, project, committish }\n },\n}\n\nhosts.bitbucket = {\n protocols: ['git+ssh:', 'git+https:', 'ssh:', 'https:'],\n domain: 'bitbucket.org',\n treepath: 'src',\n blobpath: 'src',\n editpath: '?mode=edit',\n edittemplate: ({ domain, user, project, committish, treepath, path, editpath }) =>\n `https://${domain}/${user}/${project}${maybeJoin('/', treepath, '/', maybeEncode(committish || 'HEAD'), '/', path, editpath)}`,\n tarballtemplate: ({ domain, user, project, committish }) =>\n `https://${domain}/${user}/${project}/get/${maybeEncode(committish || 'HEAD')}.tar.gz`,\n extract: (url) => {\n let [, user, project, aux] = url.pathname.split('/', 4)\n if (['get'].includes(aux)) {\n return\n }\n\n if (project && project.endsWith('.git')) {\n project = project.slice(0, -4)\n }\n\n if (!user || !project) {\n return\n }\n\n return { user, project, committish: url.hash.slice(1) }\n },\n}\n\nhosts.gitlab = {\n protocols: ['git+ssh:', 'git+https:', 'ssh:', 'https:'],\n domain: 'gitlab.com',\n treepath: 'tree',\n blobpath: 'tree',\n editpath: '-/edit',\n tarballtemplate: ({ domain, user, project, committish }) =>\n `https://${domain}/${user}/${project}/repository/archive.tar.gz?ref=${maybeEncode(committish || 'HEAD')}`,\n extract: (url) => {\n const path = url.pathname.slice(1)\n if (path.includes('/-/') || path.includes('/archive.tar.gz')) {\n return\n }\n\n const segments = path.split('/')\n let project = segments.pop()\n if (project.endsWith('.git')) {\n project = project.slice(0, -4)\n }\n\n const user = segments.join('/')\n if (!user || !project) {\n return\n }\n\n return { user, project, committish: url.hash.slice(1) }\n },\n}\n\nhosts.gist = {\n protocols: ['git:', 'git+ssh:', 'git+https:', 'ssh:', 'https:'],\n domain: 'gist.github.com',\n editpath: 'edit',\n sshtemplate: ({ domain, project, committish }) =>\n `git@${domain}:${project}.git${maybeJoin('#', committish)}`,\n sshurltemplate: ({ domain, project, committish }) =>\n `git+ssh://git@${domain}/${project}.git${maybeJoin('#', committish)}`,\n edittemplate: ({ domain, user, project, committish, editpath }) =>\n `https://${domain}/${user}/${project}${maybeJoin('/', maybeEncode(committish))}/${editpath}`,\n browsetemplate: ({ domain, project, committish }) =>\n `https://${domain}/${project}${maybeJoin('/', maybeEncode(committish))}`,\n browsetreetemplate: ({ domain, project, committish, path, hashformat }) =>\n `https://${domain}/${project}${maybeJoin('/', maybeEncode(committish))}${maybeJoin('#', hashformat(path))}`,\n browseblobtemplate: ({ domain, project, committish, path, hashformat }) =>\n `https://${domain}/${project}${maybeJoin('/', maybeEncode(committish))}${maybeJoin('#', hashformat(path))}`,\n docstemplate: ({ domain, project, committish }) =>\n `https://${domain}/${project}${maybeJoin('/', maybeEncode(committish))}`,\n httpstemplate: ({ domain, project, committish }) =>\n `git+https://${domain}/${project}.git${maybeJoin('#', committish)}`,\n filetemplate: ({ user, project, committish, path }) =>\n `https://gist.githubusercontent.com/${user}/${project}/raw${maybeJoin('/', maybeEncode(committish))}/${path}`,\n shortcuttemplate: ({ type, project, committish }) =>\n `${type}:${project}${maybeJoin('#', committish)}`,\n pathtemplate: ({ project, committish }) =>\n `${project}${maybeJoin('#', committish)}`,\n bugstemplate: ({ domain, project }) =>\n `https://${domain}/${project}`,\n gittemplate: ({ domain, project, committish }) =>\n `git://${domain}/${project}.git${maybeJoin('#', committish)}`,\n tarballtemplate: ({ project, committish }) =>\n `https://codeload.github.com/gist/${project}/tar.gz/${maybeEncode(committish || 'HEAD')}`,\n extract: (url) => {\n let [, user, project, aux] = url.pathname.split('/', 4)\n if (aux === 'raw') {\n return\n }\n\n if (!project) {\n if (!user) {\n return\n }\n\n project = user\n user = null\n }\n\n if (project.endsWith('.git')) {\n project = project.slice(0, -4)\n }\n\n return { user, project, committish: url.hash.slice(1) }\n },\n hashformat: function (fragment) {\n return fragment && 'file-' + formatHashFragment(fragment)\n },\n}\n\nhosts.sourcehut = {\n protocols: ['git+ssh:', 'https:'],\n domain: 'git.sr.ht',\n treepath: 'tree',\n blobpath: 'tree',\n filetemplate: ({ domain, user, project, committish, path }) =>\n `https://${domain}/${user}/${project}/blob/${maybeEncode(committish) || 'HEAD'}/${path}`,\n httpstemplate: ({ domain, user, project, committish }) =>\n `https://${domain}/${user}/${project}.git${maybeJoin('#', committish)}`,\n tarballtemplate: ({ domain, user, project, committish }) =>\n `https://${domain}/${user}/${project}/archive/${maybeEncode(committish) || 'HEAD'}.tar.gz`,\n bugstemplate: () => null,\n extract: (url) => {\n let [, user, project, aux] = url.pathname.split('/', 4)\n\n // tarball url\n if (['archive'].includes(aux)) {\n return\n }\n\n if (project && project.endsWith('.git')) {\n project = project.slice(0, -4)\n }\n\n if (!user || !project) {\n return\n }\n\n return { user, project, committish: url.hash.slice(1) }\n },\n}\n\nfor (const [name, host] of Object.entries(hosts)) {\n hosts[name] = Object.assign({}, defaults, host)\n}\n\nmodule.exports = hosts\n",
|
|
@@ -60,32 +60,33 @@
|
|
|
60
60
|
"/*!\n * mustache.js - Logic-less {{mustache}} templates with JavaScript\n * http://github.com/janl/mustache.js\n */\n\nvar objectToString = Object.prototype.toString;\nvar isArray = Array.isArray || function isArrayPolyfill (object) {\n return objectToString.call(object) === '[object Array]';\n};\n\nfunction isFunction (object) {\n return typeof object === 'function';\n}\n\n/**\n * More correct typeof string handling array\n * which normally returns typeof 'object'\n */\nfunction typeStr (obj) {\n return isArray(obj) ? 'array' : typeof obj;\n}\n\nfunction escapeRegExp (string) {\n return string.replace(/[\\-\\[\\]{}()*+?.,\\\\\\^$|#\\s]/g, '\\\\$&');\n}\n\n/**\n * Null safe way of checking whether or not an object,\n * including its prototype, has a given property\n */\nfunction hasProperty (obj, propName) {\n return obj != null && typeof obj === 'object' && (propName in obj);\n}\n\n/**\n * Safe way of detecting whether or not the given thing is a primitive and\n * whether it has the given property\n */\nfunction primitiveHasOwnProperty (primitive, propName) {\n return (\n primitive != null\n && typeof primitive !== 'object'\n && primitive.hasOwnProperty\n && primitive.hasOwnProperty(propName)\n );\n}\n\n// Workaround for https://issues.apache.org/jira/browse/COUCHDB-577\n// See https://github.com/janl/mustache.js/issues/189\nvar regExpTest = RegExp.prototype.test;\nfunction testRegExp (re, string) {\n return regExpTest.call(re, string);\n}\n\nvar nonSpaceRe = /\\S/;\nfunction isWhitespace (string) {\n return !testRegExp(nonSpaceRe, string);\n}\n\nvar entityMap = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": ''',\n '/': '/',\n '`': '`',\n '=': '='\n};\n\nfunction escapeHtml (string) {\n return String(string).replace(/[&<>\"'`=\\/]/g, function fromEntityMap (s) {\n return entityMap[s];\n });\n}\n\nvar whiteRe = /\\s*/;\nvar spaceRe = /\\s+/;\nvar equalsRe = /\\s*=/;\nvar curlyRe = /\\s*\\}/;\nvar tagRe = /#|\\^|\\/|>|\\{|&|=|!/;\n\n/**\n * Breaks up the given `template` string into a tree of tokens. If the `tags`\n * argument is given here it must be an array with two string values: the\n * opening and closing tags used in the template (e.g. [ \"<%\", \"%>\" ]). Of\n * course, the default is to use mustaches (i.e. mustache.tags).\n *\n * A token is an array with at least 4 elements. The first element is the\n * mustache symbol that was used inside the tag, e.g. \"#\" or \"&\". If the tag\n * did not contain a symbol (i.e. {{myValue}}) this element is \"name\". For\n * all text that appears outside a symbol this element is \"text\".\n *\n * The second element of a token is its \"value\". For mustache tags this is\n * whatever else was inside the tag besides the opening symbol. For text tokens\n * this is the text itself.\n *\n * The third and fourth elements of the token are the start and end indices,\n * respectively, of the token in the original template.\n *\n * Tokens that are the root node of a subtree contain two more elements: 1) an\n * array of tokens in the subtree and 2) the index in the original template at\n * which the closing tag for that section begins.\n *\n * Tokens for partials also contain two more elements: 1) a string value of\n * indendation prior to that tag and 2) the index of that tag on that line -\n * eg a value of 2 indicates the partial is the third tag on this line.\n */\nfunction parseTemplate (template, tags) {\n if (!template)\n return [];\n var lineHasNonSpace = false;\n var sections = []; // Stack to hold section tokens\n var tokens = []; // Buffer to hold the tokens\n var spaces = []; // Indices of whitespace tokens on the current line\n var hasTag = false; // Is there a {{tag}} on the current line?\n var nonSpace = false; // Is there a non-space char on the current line?\n var indentation = ''; // Tracks indentation for tags that use it\n var tagIndex = 0; // Stores a count of number of tags encountered on a line\n\n // Strips all whitespace tokens array for the current line\n // if there was a {{#tag}} on it and otherwise only space.\n function stripSpace () {\n if (hasTag && !nonSpace) {\n while (spaces.length)\n delete tokens[spaces.pop()];\n } else {\n spaces = [];\n }\n\n hasTag = false;\n nonSpace = false;\n }\n\n var openingTagRe, closingTagRe, closingCurlyRe;\n function compileTags (tagsToCompile) {\n if (typeof tagsToCompile === 'string')\n tagsToCompile = tagsToCompile.split(spaceRe, 2);\n\n if (!isArray(tagsToCompile) || tagsToCompile.length !== 2)\n throw new Error('Invalid tags: ' + tagsToCompile);\n\n openingTagRe = new RegExp(escapeRegExp(tagsToCompile[0]) + '\\\\s*');\n closingTagRe = new RegExp('\\\\s*' + escapeRegExp(tagsToCompile[1]));\n closingCurlyRe = new RegExp('\\\\s*' + escapeRegExp('}' + tagsToCompile[1]));\n }\n\n compileTags(tags || mustache.tags);\n\n var scanner = new Scanner(template);\n\n var start, type, value, chr, token, openSection;\n while (!scanner.eos()) {\n start = scanner.pos;\n\n // Match any text between tags.\n value = scanner.scanUntil(openingTagRe);\n\n if (value) {\n for (var i = 0, valueLength = value.length; i < valueLength; ++i) {\n chr = value.charAt(i);\n\n if (isWhitespace(chr)) {\n spaces.push(tokens.length);\n indentation += chr;\n } else {\n nonSpace = true;\n lineHasNonSpace = true;\n indentation += ' ';\n }\n\n tokens.push([ 'text', chr, start, start + 1 ]);\n start += 1;\n\n // Check for whitespace on the current line.\n if (chr === '\\n') {\n stripSpace();\n indentation = '';\n tagIndex = 0;\n lineHasNonSpace = false;\n }\n }\n }\n\n // Match the opening tag.\n if (!scanner.scan(openingTagRe))\n break;\n\n hasTag = true;\n\n // Get the tag type.\n type = scanner.scan(tagRe) || 'name';\n scanner.scan(whiteRe);\n\n // Get the tag value.\n if (type === '=') {\n value = scanner.scanUntil(equalsRe);\n scanner.scan(equalsRe);\n scanner.scanUntil(closingTagRe);\n } else if (type === '{') {\n value = scanner.scanUntil(closingCurlyRe);\n scanner.scan(curlyRe);\n scanner.scanUntil(closingTagRe);\n type = '&';\n } else {\n value = scanner.scanUntil(closingTagRe);\n }\n\n // Match the closing tag.\n if (!scanner.scan(closingTagRe))\n throw new Error('Unclosed tag at ' + scanner.pos);\n\n if (type == '>') {\n token = [ type, value, start, scanner.pos, indentation, tagIndex, lineHasNonSpace ];\n } else {\n token = [ type, value, start, scanner.pos ];\n }\n tagIndex++;\n tokens.push(token);\n\n if (type === '#' || type === '^') {\n sections.push(token);\n } else if (type === '/') {\n // Check section nesting.\n openSection = sections.pop();\n\n if (!openSection)\n throw new Error('Unopened section \"' + value + '\" at ' + start);\n\n if (openSection[1] !== value)\n throw new Error('Unclosed section \"' + openSection[1] + '\" at ' + start);\n } else if (type === 'name' || type === '{' || type === '&') {\n nonSpace = true;\n } else if (type === '=') {\n // Set the tags for the next time around.\n compileTags(value);\n }\n }\n\n stripSpace();\n\n // Make sure there are no open sections when we're done.\n openSection = sections.pop();\n\n if (openSection)\n throw new Error('Unclosed section \"' + openSection[1] + '\" at ' + scanner.pos);\n\n return nestTokens(squashTokens(tokens));\n}\n\n/**\n * Combines the values of consecutive text tokens in the given `tokens` array\n * to a single token.\n */\nfunction squashTokens (tokens) {\n var squashedTokens = [];\n\n var token, lastToken;\n for (var i = 0, numTokens = tokens.length; i < numTokens; ++i) {\n token = tokens[i];\n\n if (token) {\n if (token[0] === 'text' && lastToken && lastToken[0] === 'text') {\n lastToken[1] += token[1];\n lastToken[3] = token[3];\n } else {\n squashedTokens.push(token);\n lastToken = token;\n }\n }\n }\n\n return squashedTokens;\n}\n\n/**\n * Forms the given array of `tokens` into a nested tree structure where\n * tokens that represent a section have two additional items: 1) an array of\n * all tokens that appear in that section and 2) the index in the original\n * template that represents the end of that section.\n */\nfunction nestTokens (tokens) {\n var nestedTokens = [];\n var collector = nestedTokens;\n var sections = [];\n\n var token, section;\n for (var i = 0, numTokens = tokens.length; i < numTokens; ++i) {\n token = tokens[i];\n\n switch (token[0]) {\n case '#':\n case '^':\n collector.push(token);\n sections.push(token);\n collector = token[4] = [];\n break;\n case '/':\n section = sections.pop();\n section[5] = token[2];\n collector = sections.length > 0 ? sections[sections.length - 1][4] : nestedTokens;\n break;\n default:\n collector.push(token);\n }\n }\n\n return nestedTokens;\n}\n\n/**\n * A simple string scanner that is used by the template parser to find\n * tokens in template strings.\n */\nfunction Scanner (string) {\n this.string = string;\n this.tail = string;\n this.pos = 0;\n}\n\n/**\n * Returns `true` if the tail is empty (end of string).\n */\nScanner.prototype.eos = function eos () {\n return this.tail === '';\n};\n\n/**\n * Tries to match the given regular expression at the current position.\n * Returns the matched text if it can match, the empty string otherwise.\n */\nScanner.prototype.scan = function scan (re) {\n var match = this.tail.match(re);\n\n if (!match || match.index !== 0)\n return '';\n\n var string = match[0];\n\n this.tail = this.tail.substring(string.length);\n this.pos += string.length;\n\n return string;\n};\n\n/**\n * Skips all text until the given regular expression can be matched. Returns\n * the skipped string, which is the entire tail if no match can be made.\n */\nScanner.prototype.scanUntil = function scanUntil (re) {\n var index = this.tail.search(re), match;\n\n switch (index) {\n case -1:\n match = this.tail;\n this.tail = '';\n break;\n case 0:\n match = '';\n break;\n default:\n match = this.tail.substring(0, index);\n this.tail = this.tail.substring(index);\n }\n\n this.pos += match.length;\n\n return match;\n};\n\n/**\n * Represents a rendering context by wrapping a view object and\n * maintaining a reference to the parent context.\n */\nfunction Context (view, parentContext) {\n this.view = view;\n this.cache = { '.': this.view };\n this.parent = parentContext;\n}\n\n/**\n * Creates a new context using the given view with this context\n * as the parent.\n */\nContext.prototype.push = function push (view) {\n return new Context(view, this);\n};\n\n/**\n * Returns the value of the given name in this context, traversing\n * up the context hierarchy if the value is absent in this context's view.\n */\nContext.prototype.lookup = function lookup (name) {\n var cache = this.cache;\n\n var value;\n if (cache.hasOwnProperty(name)) {\n value = cache[name];\n } else {\n var context = this, intermediateValue, names, index, lookupHit = false;\n\n while (context) {\n if (name.indexOf('.') > 0) {\n intermediateValue = context.view;\n names = name.split('.');\n index = 0;\n\n /**\n * Using the dot notion path in `name`, we descend through the\n * nested objects.\n *\n * To be certain that the lookup has been successful, we have to\n * check if the last object in the path actually has the property\n * we are looking for. We store the result in `lookupHit`.\n *\n * This is specially necessary for when the value has been set to\n * `undefined` and we want to avoid looking up parent contexts.\n *\n * In the case where dot notation is used, we consider the lookup\n * to be successful even if the last \"object\" in the path is\n * not actually an object but a primitive (e.g., a string, or an\n * integer), because it is sometimes useful to access a property\n * of an autoboxed primitive, such as the length of a string.\n **/\n while (intermediateValue != null && index < names.length) {\n if (index === names.length - 1)\n lookupHit = (\n hasProperty(intermediateValue, names[index])\n || primitiveHasOwnProperty(intermediateValue, names[index])\n );\n\n intermediateValue = intermediateValue[names[index++]];\n }\n } else {\n intermediateValue = context.view[name];\n\n /**\n * Only checking against `hasProperty`, which always returns `false` if\n * `context.view` is not an object. Deliberately omitting the check\n * against `primitiveHasOwnProperty` if dot notation is not used.\n *\n * Consider this example:\n * ```\n * Mustache.render(\"The length of a football field is {{#length}}{{length}}{{/length}}.\", {length: \"100 yards\"})\n * ```\n *\n * If we were to check also against `primitiveHasOwnProperty`, as we do\n * in the dot notation case, then render call would return:\n *\n * \"The length of a football field is 9.\"\n *\n * rather than the expected:\n *\n * \"The length of a football field is 100 yards.\"\n **/\n lookupHit = hasProperty(context.view, name);\n }\n\n if (lookupHit) {\n value = intermediateValue;\n break;\n }\n\n context = context.parent;\n }\n\n cache[name] = value;\n }\n\n if (isFunction(value))\n value = value.call(this.view);\n\n return value;\n};\n\n/**\n * A Writer knows how to take a stream of tokens and render them to a\n * string, given a context. It also maintains a cache of templates to\n * avoid the need to parse the same template twice.\n */\nfunction Writer () {\n this.templateCache = {\n _cache: {},\n set: function set (key, value) {\n this._cache[key] = value;\n },\n get: function get (key) {\n return this._cache[key];\n },\n clear: function clear () {\n this._cache = {};\n }\n };\n}\n\n/**\n * Clears all cached templates in this writer.\n */\nWriter.prototype.clearCache = function clearCache () {\n if (typeof this.templateCache !== 'undefined') {\n this.templateCache.clear();\n }\n};\n\n/**\n * Parses and caches the given `template` according to the given `tags` or\n * `mustache.tags` if `tags` is omitted, and returns the array of tokens\n * that is generated from the parse.\n */\nWriter.prototype.parse = function parse (template, tags) {\n var cache = this.templateCache;\n var cacheKey = template + ':' + (tags || mustache.tags).join(':');\n var isCacheEnabled = typeof cache !== 'undefined';\n var tokens = isCacheEnabled ? cache.get(cacheKey) : undefined;\n\n if (tokens == undefined) {\n tokens = parseTemplate(template, tags);\n isCacheEnabled && cache.set(cacheKey, tokens);\n }\n return tokens;\n};\n\n/**\n * High-level method that is used to render the given `template` with\n * the given `view`.\n *\n * The optional `partials` argument may be an object that contains the\n * names and templates of partials that are used in the template. It may\n * also be a function that is used to load partial templates on the fly\n * that takes a single argument: the name of the partial.\n *\n * If the optional `config` argument is given here, then it should be an\n * object with a `tags` attribute or an `escape` attribute or both.\n * If an array is passed, then it will be interpreted the same way as\n * a `tags` attribute on a `config` object.\n *\n * The `tags` attribute of a `config` object must be an array with two\n * string values: the opening and closing tags used in the template (e.g.\n * [ \"<%\", \"%>\" ]). The default is to mustache.tags.\n *\n * The `escape` attribute of a `config` object must be a function which\n * accepts a string as input and outputs a safely escaped string.\n * If an `escape` function is not provided, then an HTML-safe string\n * escaping function is used as the default.\n */\nWriter.prototype.render = function render (template, view, partials, config) {\n var tags = this.getConfigTags(config);\n var tokens = this.parse(template, tags);\n var context = (view instanceof Context) ? view : new Context(view, undefined);\n return this.renderTokens(tokens, context, partials, template, config);\n};\n\n/**\n * Low-level method that renders the given array of `tokens` using\n * the given `context` and `partials`.\n *\n * Note: The `originalTemplate` is only ever used to extract the portion\n * of the original template that was contained in a higher-order section.\n * If the template doesn't use higher-order sections, this argument may\n * be omitted.\n */\nWriter.prototype.renderTokens = function renderTokens (tokens, context, partials, originalTemplate, config) {\n var buffer = '';\n\n var token, symbol, value;\n for (var i = 0, numTokens = tokens.length; i < numTokens; ++i) {\n value = undefined;\n token = tokens[i];\n symbol = token[0];\n\n if (symbol === '#') value = this.renderSection(token, context, partials, originalTemplate, config);\n else if (symbol === '^') value = this.renderInverted(token, context, partials, originalTemplate, config);\n else if (symbol === '>') value = this.renderPartial(token, context, partials, config);\n else if (symbol === '&') value = this.unescapedValue(token, context);\n else if (symbol === 'name') value = this.escapedValue(token, context, config);\n else if (symbol === 'text') value = this.rawValue(token);\n\n if (value !== undefined)\n buffer += value;\n }\n\n return buffer;\n};\n\nWriter.prototype.renderSection = function renderSection (token, context, partials, originalTemplate, config) {\n var self = this;\n var buffer = '';\n var value = context.lookup(token[1]);\n\n // This function is used to render an arbitrary template\n // in the current context by higher-order sections.\n function subRender (template) {\n return self.render(template, context, partials, config);\n }\n\n if (!value) return;\n\n if (isArray(value)) {\n for (var j = 0, valueLength = value.length; j < valueLength; ++j) {\n buffer += this.renderTokens(token[4], context.push(value[j]), partials, originalTemplate, config);\n }\n } else if (typeof value === 'object' || typeof value === 'string' || typeof value === 'number') {\n buffer += this.renderTokens(token[4], context.push(value), partials, originalTemplate, config);\n } else if (isFunction(value)) {\n if (typeof originalTemplate !== 'string')\n throw new Error('Cannot use higher-order sections without the original template');\n\n // Extract the portion of the original template that the section contains.\n value = value.call(context.view, originalTemplate.slice(token[3], token[5]), subRender);\n\n if (value != null)\n buffer += value;\n } else {\n buffer += this.renderTokens(token[4], context, partials, originalTemplate, config);\n }\n return buffer;\n};\n\nWriter.prototype.renderInverted = function renderInverted (token, context, partials, originalTemplate, config) {\n var value = context.lookup(token[1]);\n\n // Use JavaScript's definition of falsy. Include empty arrays.\n // See https://github.com/janl/mustache.js/issues/186\n if (!value || (isArray(value) && value.length === 0))\n return this.renderTokens(token[4], context, partials, originalTemplate, config);\n};\n\nWriter.prototype.indentPartial = function indentPartial (partial, indentation, lineHasNonSpace) {\n var filteredIndentation = indentation.replace(/[^ \\t]/g, '');\n var partialByNl = partial.split('\\n');\n for (var i = 0; i < partialByNl.length; i++) {\n if (partialByNl[i].length && (i > 0 || !lineHasNonSpace)) {\n partialByNl[i] = filteredIndentation + partialByNl[i];\n }\n }\n return partialByNl.join('\\n');\n};\n\nWriter.prototype.renderPartial = function renderPartial (token, context, partials, config) {\n if (!partials) return;\n var tags = this.getConfigTags(config);\n\n var value = isFunction(partials) ? partials(token[1]) : partials[token[1]];\n if (value != null) {\n var lineHasNonSpace = token[6];\n var tagIndex = token[5];\n var indentation = token[4];\n var indentedValue = value;\n if (tagIndex == 0 && indentation) {\n indentedValue = this.indentPartial(value, indentation, lineHasNonSpace);\n }\n var tokens = this.parse(indentedValue, tags);\n return this.renderTokens(tokens, context, partials, indentedValue, config);\n }\n};\n\nWriter.prototype.unescapedValue = function unescapedValue (token, context) {\n var value = context.lookup(token[1]);\n if (value != null)\n return value;\n};\n\nWriter.prototype.escapedValue = function escapedValue (token, context, config) {\n var escape = this.getConfigEscape(config) || mustache.escape;\n var value = context.lookup(token[1]);\n if (value != null)\n return (typeof value === 'number' && escape === mustache.escape) ? String(value) : escape(value);\n};\n\nWriter.prototype.rawValue = function rawValue (token) {\n return token[1];\n};\n\nWriter.prototype.getConfigTags = function getConfigTags (config) {\n if (isArray(config)) {\n return config;\n }\n else if (config && typeof config === 'object') {\n return config.tags;\n }\n else {\n return undefined;\n }\n};\n\nWriter.prototype.getConfigEscape = function getConfigEscape (config) {\n if (config && typeof config === 'object' && !isArray(config)) {\n return config.escape;\n }\n else {\n return undefined;\n }\n};\n\nvar mustache = {\n name: 'mustache.js',\n version: '4.2.0',\n tags: [ '{{', '}}' ],\n clearCache: undefined,\n escape: undefined,\n parse: undefined,\n render: undefined,\n Scanner: undefined,\n Context: undefined,\n Writer: undefined,\n /**\n * Allows a user to override the default caching strategy, by providing an\n * object with set, get and clear methods. This can also be used to disable\n * the cache by setting it to the literal `undefined`.\n */\n set templateCache (cache) {\n defaultWriter.templateCache = cache;\n },\n /**\n * Gets the default or overridden caching object from the default writer.\n */\n get templateCache () {\n return defaultWriter.templateCache;\n }\n};\n\n// All high-level mustache.* functions use this writer.\nvar defaultWriter = new Writer();\n\n/**\n * Clears all cached templates in the default writer.\n */\nmustache.clearCache = function clearCache () {\n return defaultWriter.clearCache();\n};\n\n/**\n * Parses and caches the given template in the default writer and returns the\n * array of tokens it contains. Doing this ahead of time avoids the need to\n * parse templates on the fly as they are rendered.\n */\nmustache.parse = function parse (template, tags) {\n return defaultWriter.parse(template, tags);\n};\n\n/**\n * Renders the `template` with the given `view`, `partials`, and `config`\n * using the default writer.\n */\nmustache.render = function render (template, view, partials, config) {\n if (typeof template !== 'string') {\n throw new TypeError('Invalid template! Template should be a \"string\" ' +\n 'but \"' + typeStr(template) + '\" was given as the first ' +\n 'argument for mustache#render(template, view, partials)');\n }\n\n return defaultWriter.render(template, view, partials, config);\n};\n\n// Export the escaping function so that the user may override it.\n// See https://github.com/janl/mustache.js/issues/244\nmustache.escape = escapeHtml;\n\n// Export these mainly for testing, but also for advanced usage.\nmustache.Scanner = Scanner;\nmustache.Context = Context;\nmustache.Writer = Writer;\n\nexport default mustache;\n",
|
|
61
61
|
"import fs from \"node:fs\";\nimport { createRequire } from \"node:module\";\nimport path from \"node:path\";\n\nimport { PROJECT_TOOLS_PACKAGE_ROOT } from \"./template-registry.js\";\n\ninterface PackageManifest {\n\tdependencies?: Record<string, string>;\n\tversion?: string;\n}\n\ninterface PackageVersions {\n\tapiClientPackageVersion: string;\n\tblockRuntimePackageVersion: string;\n\tblockTypesPackageVersion: string;\n\tprojectToolsPackageVersion: string;\n\trestPackageVersion: string;\n\twpTypiaPackageExactVersion: string;\n\twpTypiaPackageVersion: string;\n}\n\nconst require = createRequire(import.meta.url);\nconst DEFAULT_VERSION_RANGE = \"^0.0.0\";\nconst DEFAULT_EXACT_VERSION = \"0.0.0\";\n\nlet cachedPackageVersions: PackageVersions | null = null;\n\nfunction getErrorCode(error: unknown): string | undefined {\n\treturn typeof error === \"object\" && error !== null && \"code\" in error\n\t\t? String((error as { code: unknown }).code)\n\t\t: undefined;\n}\n\nfunction normalizeVersionRange(value: string | undefined): string {\n\tconst trimmed = value?.trim();\n\tif (!trimmed) {\n\t\treturn DEFAULT_VERSION_RANGE;\n\t}\n\tif (trimmed.startsWith(\"workspace:\")) {\n\t\treturn DEFAULT_VERSION_RANGE;\n\t}\n\n\treturn /^[~^<>=]/.test(trimmed) ? trimmed : `^${trimmed}`;\n}\n\nfunction normalizeExactVersion(value: string | undefined): string {\n\tconst trimmed = value?.trim();\n\tif (!trimmed) {\n\t\treturn DEFAULT_EXACT_VERSION;\n\t}\n\tif (trimmed.startsWith(\"workspace:\")) {\n\t\treturn DEFAULT_EXACT_VERSION;\n\t}\n\treturn trimmed.replace(/^[~^<>=]+/, \"\");\n}\n\nfunction readPackageManifest(packageJsonPath: string): PackageManifest | null {\n\ttry {\n\t\treturn JSON.parse(fs.readFileSync(packageJsonPath, \"utf8\")) as PackageManifest;\n\t} catch (error) {\n\t\tif (getErrorCode(error) === \"ENOENT\") {\n\t\t\treturn null;\n\t\t}\n\t\tthrow error;\n\t}\n}\n\nfunction resolveInstalledPackageManifest(packageName: string): PackageManifest | null {\n\ttry {\n\t\treturn readPackageManifest(require.resolve(`${packageName}/package.json`));\n\t} catch (error) {\n\t\tif (getErrorCode(error) === \"MODULE_NOT_FOUND\") {\n\t\t\treturn null;\n\t\t}\n\t\tthrow error;\n\t}\n}\n\nexport function getPackageVersions(): PackageVersions {\n\tif (cachedPackageVersions) {\n\t\treturn cachedPackageVersions;\n\t}\n\n\tconst createManifest =\n\t\treadPackageManifest(path.join(PROJECT_TOOLS_PACKAGE_ROOT, \"package.json\")) ??\n\t\tresolveInstalledPackageManifest(\"@wp-typia/project-tools\") ??\n\t\t{};\n\tconst blockRuntimeManifest =\n\t\treadPackageManifest(\n\t\t\tpath.join(PROJECT_TOOLS_PACKAGE_ROOT, \"..\", \"wp-typia-block-runtime\", \"package.json\"),\n\t\t) ??\n\t\tresolveInstalledPackageManifest(\"@wp-typia/block-runtime\") ??\n\t\t{};\n\tconst wpTypiaManifest =\n\t\treadPackageManifest(path.join(PROJECT_TOOLS_PACKAGE_ROOT, \"..\", \"wp-typia\", \"package.json\")) ??\n\t\tresolveInstalledPackageManifest(\"wp-typia\") ??\n\t\t{};\n\tconst blockRuntimeDependencyVersion = normalizeVersionRange(\n\t\tcreateManifest.dependencies?.[\"@wp-typia/block-runtime\"],\n\t);\n\n\tcachedPackageVersions = {\n\t\tapiClientPackageVersion: normalizeVersionRange(\n\t\t\tcreateManifest.dependencies?.[\"@wp-typia/api-client\"] ??\n\t\t\t\tresolveInstalledPackageManifest(\"@wp-typia/api-client\")?.version,\n\t\t),\n\t\tblockRuntimePackageVersion:\n\t\t\tblockRuntimeDependencyVersion !== DEFAULT_VERSION_RANGE\n\t\t\t\t? blockRuntimeDependencyVersion\n\t\t\t\t: normalizeVersionRange(blockRuntimeManifest.version),\n\t\tblockTypesPackageVersion: normalizeVersionRange(\n\t\t\tcreateManifest.dependencies?.[\"@wp-typia/block-types\"] ??\n\t\t\t\tresolveInstalledPackageManifest(\"@wp-typia/block-types\")?.version,\n\t\t),\n\t\tprojectToolsPackageVersion: normalizeVersionRange(createManifest.version),\n\t\trestPackageVersion: normalizeVersionRange(\n\t\t\tcreateManifest.dependencies?.[\"@wp-typia/rest\"] ??\n\t\t\t\tresolveInstalledPackageManifest(\"@wp-typia/rest\")?.version,\n\t\t),\n\t\twpTypiaPackageExactVersion: normalizeExactVersion(wpTypiaManifest.version),\n\t\twpTypiaPackageVersion: normalizeVersionRange(wpTypiaManifest.version),\n\t};\n\n\treturn cachedPackageVersions;\n}\n",
|
|
62
62
|
"import {\n\tformatPackageExecCommand,\n\tformatRunScript,\n} from \"./package-managers.js\";\nimport type { PackageManagerId } from \"./package-managers.js\";\nimport { getPackageVersions } from \"./package-versions.js\";\nimport { getPrimaryDevelopmentScript } from \"./local-dev-presets.js\";\nimport {\n\tOFFICIAL_WORKSPACE_TEMPLATE_PACKAGE,\n\tisBuiltInTemplateId,\n} from \"./template-registry.js\";\n\ninterface SyncOnboardingOptions {\n\tavailableScripts?: string[];\n\tcompoundPersistenceEnabled?: boolean;\n}\n\ninterface PhpRestExtensionOptions extends SyncOnboardingOptions {\n\tslug: string;\n}\n\ninterface PhpRestSectionOptions {\n\tapiTypesPath: string;\n\textraNote?: string;\n\tmainPhpPath: string;\n\tmainPhpScope: string;\n\ttransportPath: string;\n}\n\nconst INITIAL_COMMIT_COMMANDS = [\n\t\"git init\",\n\t\"git add .\",\n\t'git commit -m \"Initial scaffold\"',\n] as const;\n\nfunction getDoctorVerificationCommand(packageManager: PackageManagerId): string {\n\treturn formatPackageExecCommand(\n\t\tpackageManager,\n\t\t`wp-typia@${getPackageVersions().wpTypiaPackageExactVersion}`,\n\t\t\"doctor\",\n\t);\n}\n\nfunction templateHasPersistenceSync(\n\ttemplateId: string,\n\t{ compoundPersistenceEnabled = false }: SyncOnboardingOptions = {},\n): boolean {\n\treturn templateId === \"persistence\" || (templateId === \"compound\" && compoundPersistenceEnabled);\n}\n\n/**\n * Returns the optional sync script names to suggest for a template.\n */\nexport function getOptionalSyncScriptNames(\n\ttemplateId: string,\n\toptions: SyncOnboardingOptions = {},\n): string[] {\n\tif (templateId === \"query-loop\") {\n\t\treturn [];\n\t}\n\n\tconst availableScripts = new Set(options.availableScripts ?? []);\n\tif (availableScripts.has(\"sync\")) {\n\t\treturn [\"sync\"];\n\t}\n\n\tconst fallbackScripts = [\"sync-types\", \"sync-rest\"].filter((scriptName) =>\n\t\tavailableScripts.has(scriptName),\n\t);\n\tif (fallbackScripts.length > 0) {\n\t\treturn fallbackScripts;\n\t}\n\n\tif (\n\t\t!isBuiltInTemplateId(templateId) &&\n\t\ttemplateId !== OFFICIAL_WORKSPACE_TEMPLATE_PACKAGE\n\t) {\n\t\treturn [];\n\t}\n\n\treturn [\"sync\"];\n}\n\n/**\n * Formats optional onboarding sync commands for the selected package manager.\n */\nexport function getOptionalOnboardingSteps(\n\tpackageManager: PackageManagerId,\n\ttemplateId: string,\n\toptions: SyncOnboardingOptions = {},\n): string[] {\n\treturn getOptionalSyncScriptNames(templateId, options).map((scriptName) =>\n\t\tformatRunScript(packageManager, scriptName),\n\t);\n}\n\n/**\n * Returns the quick-start note explaining the scaffold's primary local loop.\n */\nexport function getQuickStartWorkflowNote(\n\tpackageManager: PackageManagerId,\n\ttemplateId = \"basic\",\n\toptions: SyncOnboardingOptions = {},\n): string {\n\tconst doctorCommand = getDoctorVerificationCommand(packageManager);\n\n\tif (templateId === \"query-loop\") {\n\t\treturn `${formatRunScript(packageManager, \"dev\")} runs the editor build/watch loop that registers your Query Loop variation in the block editor. This scaffold intentionally skips \\`src/types.ts\\`, \\`block.json\\`, and Typia manifests because the source of truth lives in the variation registration flow. Update \\`src/index.ts\\` for variation defaults, \\`src/patterns/*.php\\` for richer connected layouts, \\`src/query-extension.ts\\` for custom query params, and \\`inc/query-runtime.php\\` for frontend/editor preview parity. Use ${doctorCommand} when you want a quick environment and workspace sanity check.`;\n\t}\n\n\tconst developmentScript = getPrimaryDevelopmentScript(templateId);\n\tconst devCommand = formatRunScript(packageManager, developmentScript);\n\tconst startCommand = formatRunScript(packageManager, \"start\");\n\n\tif (developmentScript === \"start\") {\n\t\treturn `${startCommand} is the primary local entry point for this template. Use ${doctorCommand} when you want a quick environment and workspace sanity check before build or commit.`;\n\t}\n\n\tif (developmentScript !== \"dev\") {\n\t\treturn `${devCommand} is the primary local entry point for this template. Use ${startCommand} for the one-shot startup flow, and ${doctorCommand} when you want a quick verification pass before build or commit.`;\n\t}\n\n\tif (templateHasPersistenceSync(templateId, options)) {\n\t\treturn `${devCommand} keeps the editor, type-derived artifacts, and REST-derived artifacts moving together during local development. Use ${startCommand} for a one-shot sync plus editor startup, and ${doctorCommand} when you want an explicit verification pass before build or commit.`;\n\t}\n\n\treturn `${devCommand} keeps the editor and type-derived artifacts moving together during local development. Use ${startCommand} for a one-shot sync plus editor startup, and ${doctorCommand} when you want an explicit verification pass before build or commit.`;\n}\n\n/**\n * Returns the onboarding note explaining when manual sync is optional.\n */\nexport function getOptionalOnboardingNote(\n\tpackageManager: PackageManagerId,\n\ttemplateId = \"basic\",\n\toptions: SyncOnboardingOptions = {},\n): string {\n\tconst doctorCommand = getDoctorVerificationCommand(packageManager);\n\n\tif (templateId === \"query-loop\") {\n\t\treturn `This scaffold owns a \\`core/query\\` variation, so it does not generate a \\`sync\\` script, \\`src/types.ts\\`, \\`block.json\\`, or Typia manifests. Edit \\`src/index.ts\\`, \\`src/patterns/*.php\\`, \\`src/query-extension.ts\\`, and \\`inc/query-runtime.php\\` as needed, then rerun ${formatRunScript(packageManager, \"build\")}, ${formatRunScript(packageManager, \"typecheck\")}, or ${doctorCommand}.`;\n\t}\n\n\tconst optionalSyncScripts = getOptionalSyncScriptNames(templateId, options);\n\tconst hasUnifiedSync = optionalSyncScripts.includes(\"sync\");\n\tconst syncSteps = optionalSyncScripts.map((scriptName) =>\n\t\tformatRunScript(packageManager, scriptName),\n\t);\n\tconst developmentScript = getPrimaryDevelopmentScript(templateId);\n\tconst syncCommand = formatRunScript(\n\t\tpackageManager,\n\t\thasUnifiedSync ? \"sync\" : \"sync-types\",\n\t);\n\tconst syncCheckCommand = formatRunScript(\n\t\tpackageManager,\n\t\thasUnifiedSync ? \"sync\" : \"sync-types\",\n\t\t\"--check\",\n\t);\n\tconst failOnLossySyncCommand = formatRunScript(\n\t\tpackageManager,\n\t\t\"sync-types\",\n\t\t\"--fail-on-lossy\",\n\t);\n\tconst syncTypesCommand = formatRunScript(packageManager, \"sync-types\");\n\tconst syncRestCommand = formatRunScript(packageManager, \"sync-rest\");\n\tconst typecheckCommand = formatRunScript(packageManager, \"typecheck\");\n\tconst strictSyncCommand = formatRunScript(\n\t\tpackageManager,\n\t\t\"sync-types\",\n\t\t\"--strict --report json\",\n\t);\n\tconst advancedPersistenceNote = templateHasPersistenceSync(templateId, options)\n\t\t? ` ${syncRestCommand} remains available for REST-only refreshes after ${syncTypesCommand}.`\n\t\t: \"\";\n\tconst isCustomTemplate =\n\t\t!isBuiltInTemplateId(templateId) &&\n\t\ttemplateId !== OFFICIAL_WORKSPACE_TEMPLATE_PACKAGE;\n\tconst fallbackCustomTemplateNote =\n\t\t!hasUnifiedSync &&\n\t\tsyncSteps.length > 0 &&\n\t\tisCustomTemplate\n\t\t\t? `Run ${syncSteps.join(\" then \")} manually before build, typecheck, or commit. ${syncCheckCommand} verifies the current type-derived artifacts without rewriting them.${optionalSyncScripts.includes(\"sync-rest\") ? ` ${syncRestCommand} remains available for REST-only refreshes after ${syncTypesCommand}.` : \"\"}`\n\t\t\t: null;\n\n\tif (fallbackCustomTemplateNote) {\n\t\treturn `${fallbackCustomTemplateNote} Use ${doctorCommand} when you want a quick environment and workspace sanity check.`;\n\t}\n\n\tif (isCustomTemplate && syncSteps.length === 0) {\n\t\treturn `No optional sync command was detected for this custom template. Use ${doctorCommand} for a quick environment and workspace sanity check, then follow the template's own artifact-refresh guidance before build, typecheck, or your first commit.`;\n\t}\n\n\treturn `You usually do not need to run ${syncCommand} during a normal ${formatRunScript(packageManager, developmentScript)} session. Run ${syncCommand} before ${formatRunScript(packageManager, \"build\")}, ${typecheckCommand}, or ${doctorCommand} when you want a reviewable refresh. ${syncTypesCommand} stays warn-only by default; use \\`${failOnLossySyncCommand}\\` or \\`${strictSyncCommand}\\` for stricter CI checks.${advancedPersistenceNote} Generated syncs do not create migration history, so refresh before your first commit if this directory is new.`;\n}\n\n/**\n * Returns the recommended version-control commands for a fresh scaffold.\n */\nexport function getInitialCommitCommands(): string[] {\n\treturn [...INITIAL_COMMIT_COMMANDS];\n}\n\n/**\n * Returns the version-control note shown after the initial scaffold.\n */\nexport function getInitialCommitNote(): string {\n\treturn \"Skip `git init` if this directory already lives inside an existing repository. If you want generated artifacts refreshed before the first checkpoint, run your manual sync step first and then create the commit.\";\n}\n\n/**\n * Returns source-of-truth guidance for generated artifacts by template mode.\n */\nexport function getTemplateSourceOfTruthNote(\n\ttemplateId: string,\n\t{ compoundPersistenceEnabled = false }: SyncOnboardingOptions = {},\n): string {\n\tif (templateId === \"query-loop\") {\n\t\treturn \"`src/index.ts` remains the source of truth for the Query Loop variation name, default query attributes, `allowedControls`, and the minimal inline starter `innerBlocks`. This scaffold intentionally does not generate `src/types.ts`, `block.json`, or Typia manifests because those artifacts belong to standalone block families, not `core/query` variation ownership. Use `src/patterns/*.php` for richer connected layout presets that stay tied to the same variation namespace, use `src/query-extension.ts` for custom query seed values or optional editor-only hook registration, and use `inc/query-runtime.php` to keep frontend and editor preview query mapping aligned for those custom keys. The generated plugin bootstrap should stay focused on script registration, pattern loading, and explicit runtime glue for the variation.\";\n\t}\n\n\tif (templateId === \"compound\") {\n\t\tconst compoundBase =\n\t\t\t\"`src/blocks/*/types.ts` files remain the source of truth for each block's `block.json`, `typia.manifest.json`, and `typia-validator.php`. Fresh scaffolds include starter `typia.manifest.json` files so editor imports resolve before the first sync.\";\n\n\t\tif (compoundPersistenceEnabled) {\n\t\t\treturn `${compoundBase} For persistence-enabled parents, \\`src/blocks/*/api-types.ts\\` files remain the source of truth for \\`src/blocks/*/api-schemas/*\\` when you run \\`sync\\` or \\`sync-rest\\`, while \\`src/blocks/*/transport.ts\\` is the first-class transport seam for editor and frontend requests.`;\n\t\t}\n\n\t\treturn compoundBase;\n\t}\n\n\tif (templateId === \"persistence\") {\n\t\treturn \"`src/types.ts` remains the source of truth for `block.json`, `typia.manifest.json`, and `typia-validator.php`. Fresh scaffolds include a starter `typia.manifest.json` so editor imports resolve before the first sync. `src/api-types.ts` remains the source of truth for `src/api-schemas/*` when you run `sync` or `sync-rest`, while `src/transport.ts` is the first-class transport seam for editor and frontend requests. This scaffold is intentionally server-rendered: `src/render.php` is the canonical frontend entry, `src/save.tsx` returns `null`, and session-only write data now refreshes through the dedicated `/bootstrap` endpoint after hydration instead of being frozen into markup.\";\n\t}\n\n\treturn \"`src/types.ts` remains the source of truth for `block.json`, `typia.manifest.json`, and `typia-validator.php`. Fresh scaffolds include a starter `typia.manifest.json` so editor imports resolve before the first sync. The basic scaffold stays static by design: `src/render.php` is only an opt-in server placeholder, `src/save.tsx` remains the canonical frontend output, and the generated webpack config keeps the current `@wordpress/scripts` CommonJS baseline unless you intentionally add `render` to `block.json`.\";\n}\n\n/**\n * Returns the generated-project extension workflow for compound child blocks.\n */\nexport function getCompoundExtensionWorkflowSection(\n\tpackageManager: PackageManagerId,\n\ttemplateId: string,\n): string | null {\n\tif ( templateId !== \"compound\" ) {\n\t\treturn null;\n\t}\n\nreturn `## Compound Extension Workflow\n\n\\`\\`\\`bash\n${ formatRunScript(\n\t\tpackageManager,\n\t\t\"add-child\",\n\t\t'--slug faq-item --title \"FAQ Item\"'\n\t) }\n\n${ formatRunScript(\n\t\tpackageManager,\n\t\t\"add-child\",\n\t\t'--slug section --title \"Section\" --container --inserter visible'\n\t) }\n\n${ formatRunScript(\n\t\tpackageManager,\n\t\t\"add-child\",\n\t\t'--slug clause --title \"Clause\" --ancestor section --dry-run'\n\t) }\n\n${ formatRunScript(\n\t\tpackageManager,\n\t\t\"add-child\",\n\t\t'--slug clause --title \"Clause\" --ancestor section'\n\t) }\n\\`\\`\\`\n\nThis scaffolds additional compound child block types, updates \\`scripts/block-config.ts\\` and \\`src/blocks/*/children.ts\\`, and now supports root-level hidden children, visible container children, and nested ancestor chains for richer document-style block hierarchies. Pass \\`--dry-run\\` when you want a validated child-graph preview and planned write list before the script mutates files.`;\n}\n\nfunction formatPhpRestExtensionPointsSection({\n\tapiTypesPath,\n\textraNote,\n\tmainPhpPath,\n\tmainPhpScope,\n\ttransportPath,\n}: PhpRestSectionOptions): string {\n\tconst schemaJsonGlob = apiTypesPath.replace(/api-types\\.ts$/u, \"api-schemas/*.schema.json\");\n\tconst perContractOpenApiGlob = apiTypesPath.replace(\n\t\t/api-types\\.ts$/u,\n\t\t\"api-schemas/*.openapi.json\",\n\t);\n\tconst aggregateOpenApiPath = apiTypesPath.replace(/api-types\\.ts$/u, \"api.openapi.json\");\n\n\tconst lines = [\n\t\t`- Edit \\`${mainPhpPath}\\` when you need to ${mainPhpScope}.`,\n\t\t\"- Edit `inc/rest-auth.php` or `inc/rest-public.php` when you need to customize write permissions or token/request-id/nonce checks for the selected policy.\",\n\t\t`- Edit \\`${transportPath}\\` when you need to switch between direct WordPress REST and a contract-compatible proxy or BFF without changing the endpoint contracts.`,\n\t\t`- Keep \\`${apiTypesPath}\\` as the source of truth for request and response contracts, then regenerate \\`${schemaJsonGlob}\\`, per-contract \\`${perContractOpenApiGlob}\\`, and \\`${aggregateOpenApiPath}\\` with \\`sync\\` (or \\`sync-rest\\` after \\`sync-types\\` when you only need the REST layer).`,\n\t\t\"- Avoid hand-editing generated schema and OpenAPI artifacts unless you are debugging generated output; they are meant to be regenerated from TypeScript contracts.\",\n\t];\n\n\tif (typeof extraNote === \"string\" && extraNote.length > 0) {\n\t\tlines.push(`- ${extraNote}`);\n\t}\n\n\treturn `## PHP REST Extension Points\\n\\n${lines.join(\"\\n\")}`;\n}\n\n/**\n * Returns scaffold-local guidance for the main PHP REST customization points.\n */\nexport function getPhpRestExtensionPointsSection(\n\ttemplateId: string,\n\t{ compoundPersistenceEnabled = false, slug }: PhpRestExtensionOptions,\n): string | null {\n\tif (templateId === \"persistence\") {\n\t\treturn formatPhpRestExtensionPointsSection({\n\t\t\tapiTypesPath: \"src/api-types.ts\",\n\t\t\tmainPhpPath: `${slug}.php`,\n\t\t\tmainPhpScope: \"change storage helpers, route handlers, response shaping, or route registration\",\n\t\t\ttransportPath: \"src/transport.ts\",\n\t\t\textraNote: \"Keep durable state on the `/state` endpoints and treat the dedicated `/bootstrap` endpoint as the place to return fresh session-only write access data such as nonces or public write tokens.\",\n\t\t});\n\t}\n\n\tif (templateId === \"compound\" && compoundPersistenceEnabled) {\n\t\treturn formatPhpRestExtensionPointsSection({\n\t\t\tapiTypesPath: `src/blocks/${slug}/api-types.ts`,\n\t\t\textraNote: \"The hidden child block does not own REST routes or storage. Keep durable parent-block state on the `/state` endpoints and return fresh session-only write access data from the dedicated `/bootstrap` endpoint.\",\n\t\t\tmainPhpPath: `${slug}.php`,\n\t\t\tmainPhpScope:\n\t\t\t\t\"change parent-block storage helpers, route handlers, response shaping, or route registration\",\n\t\t\ttransportPath: `src/blocks/${slug}/transport.ts`,\n\t\t});\n\t}\n\n\treturn null;\n}\n",
|
|
63
|
-
"import fs from \"node:fs\";\nimport { promises as fsp } from \"node:fs\";\nimport path from \"node:path\";\n\nimport { formatPackageExecCommand } from \"./package-managers.js\";\nimport type { PackageManagerId } from \"./package-managers.js\";\nimport {\n\tensureMigrationDirectories,\n\twriteInitialMigrationScaffold,\n\twriteMigrationConfig,\n} from \"./migration-project.js\";\nimport { syncPersistenceRestArtifacts } from \"./persistence-rest-artifacts.js\";\nimport type { ScaffoldTemplateVariables } from \"./scaffold.js\";\nimport { getPackageVersions } from \"./package-versions.js\";\nimport { getStarterManifestFiles, stringifyStarterManifest } from \"./starter-manifests.js\";\nimport {\n\tOFFICIAL_WORKSPACE_TEMPLATE_PACKAGE,\n\tPROJECT_TOOLS_PACKAGE_ROOT,\n} from \"./template-registry.js\";\nimport type { BuiltInTemplateId } from \"./template-registry.js\";\n\nconst EPHEMERAL_NODE_MODULES_LINK_TYPE = process.platform === \"win32\" ? \"junction\" : \"dir\";\n\ninterface GeneratedPackageJson {\n\tscripts?: Record<string, string>;\n\twpTypia?: {\n\t\tprojectType?: string;\n\t\ttemplatePackage?: string;\n\t};\n}\n\n/**\n * Ensures the scaffold target directory exists and is empty unless explicitly allowed.\n *\n * @param targetDir Absolute project directory that will receive scaffold output.\n * @param allowExisting Whether an existing non-empty directory should be accepted.\n * @returns A promise that resolves once the directory precondition is satisfied.\n */\nexport async function ensureScaffoldDirectory(\n\ttargetDir: string,\n\tallowExisting = false,\n): Promise<void> {\n\tif (!fs.existsSync(targetDir)) {\n\t\tawait fsp.mkdir(targetDir, { recursive: true });\n\t\treturn;\n\t}\n\n\tif (allowExisting) {\n\t\treturn;\n\t}\n\n\tconst entries = await fsp.readdir(targetDir);\n\tif (entries.length > 0) {\n\t\tthrow new Error(formatNonEmptyTargetDirectoryError(targetDir));\n\t}\n}\n\nfunction readGeneratedPackageJson(projectDir: string): GeneratedPackageJson | null {\n\tconst packageJsonPath = path.join(projectDir, \"package.json\");\n\tif (!fs.existsSync(packageJsonPath)) {\n\t\treturn null;\n\t}\n\n\treturn JSON.parse(fs.readFileSync(packageJsonPath, \"utf8\")) as GeneratedPackageJson;\n}\n\n/**\n * Format the actionable error message used when a scaffold target directory\n * already exists and is not empty.\n *\n * @param targetDir Absolute path to the target directory being evaluated.\n * @returns A human-readable error string with next-step guidance.\n */\nexport function formatNonEmptyTargetDirectoryError(targetDir: string): string {\n\treturn `Target directory is not empty: ${targetDir}. Choose a new project directory, or empty this directory before rerunning the scaffold.`;\n}\n\n/**\n * Writes built-in starter manifest files into a scaffolded project.\n *\n * @param targetDir Absolute scaffold target directory.\n * @param templateId Built-in template id being scaffolded.\n * @param variables Resolved scaffold template variables.\n * @returns A promise that resolves after all starter manifests are written.\n */\nexport async function writeStarterManifestFiles(\n\ttargetDir: string,\n\ttemplateId: string,\n\tvariables: ScaffoldTemplateVariables,\n): Promise<void> {\n\tconst manifests = getStarterManifestFiles(templateId, variables);\n\n\tfor (const { document, relativePath } of manifests) {\n\t\tconst destinationPath = path.join(targetDir, relativePath);\n\t\tawait fsp.mkdir(path.dirname(destinationPath), { recursive: true });\n\t\tawait fsp.writeFile(destinationPath, stringifyStarterManifest(document), \"utf8\");\n\t}\n}\n\n/**\n * Seed REST-derived persistence artifacts into a newly scaffolded built-in\n * project before the first manual `sync-rest` run.\n *\n * @param targetDir Absolute scaffold target directory.\n * @param templateId Built-in template id being scaffolded.\n * @param variables Resolved scaffold template variables for the project.\n * @returns A promise that resolves after any required persistence artifacts are generated.\n */\nexport async function seedBuiltInPersistenceArtifacts(\n\ttargetDir: string,\n\ttemplateId: BuiltInTemplateId,\n\tvariables: ScaffoldTemplateVariables,\n): Promise<void> {\n\tconst needsPersistenceArtifacts =\n\t\ttemplateId === \"persistence\" ||\n\t\t(templateId === \"compound\" && variables.compoundPersistenceEnabled === \"true\");\n\n\tif (!needsPersistenceArtifacts) {\n\t\treturn;\n\t}\n\n\tawait withEphemeralScaffoldNodeModules(targetDir, async () => {\n\t\tif (templateId === \"persistence\") {\n\t\t\tawait syncPersistenceRestArtifacts({\n\t\t\t\tapiTypesFile: path.join(\"src\", \"api-types.ts\"),\n\t\t\t\toutputDir: \"src\",\n\t\t\t\tprojectDir: targetDir,\n\t\t\t\tvariables,\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\n\t\tawait syncPersistenceRestArtifacts({\n\t\t\tapiTypesFile: path.join(\"src\", \"blocks\", variables.slugKebabCase, \"api-types.ts\"),\n\t\t\toutputDir: path.join(\"src\", \"blocks\", variables.slugKebabCase),\n\t\t\tprojectDir: targetDir,\n\t\t\tvariables,\n\t\t});\n\t});\n}\n\n/**\n * Detects whether a scaffolded project declares the workspace project model.\n *\n * @param projectDir Absolute scaffold target directory.\n * @returns `true` when the project metadata identifies a workspace scaffold.\n */\nexport function isWorkspaceProject(projectDir: string): boolean {\n\treturn readGeneratedPackageJson(projectDir)?.wpTypia?.projectType === \"workspace\";\n}\n\n/**\n * Detects whether a scaffolded project is the official workspace template.\n *\n * @param projectDir Absolute scaffold target directory.\n * @returns `true` when the project metadata identifies the official workspace template.\n */\nexport function isOfficialWorkspaceProject(projectDir: string): boolean {\n\tconst packageJson = readGeneratedPackageJson(projectDir);\n\treturn (\n\t\tpackageJson?.wpTypia?.projectType === \"workspace\" &&\n\t\tpackageJson.wpTypia?.templatePackage === OFFICIAL_WORKSPACE_TEMPLATE_PACKAGE\n\t);\n}\n\n/**\n * Adds migration scripts and starter workspace files to the official workspace template.\n *\n * @param projectDir Absolute scaffold target directory.\n * @param packageManager Package manager used for generated script commands.\n * @returns A promise that resolves after scripts and migration starter files are written.\n */\nexport async function applyWorkspaceMigrationCapability(\n\tprojectDir: string,\n\tpackageManager: PackageManagerId,\n): Promise<void> {\n\tconst packageJsonPath = path.join(projectDir, \"package.json\");\n\tconst packageJson = JSON.parse(\n\t\tawait fsp.readFile(packageJsonPath, \"utf8\"),\n\t) as GeneratedPackageJson;\n\tconst wpTypiaPackageVersion = getPackageVersions().wpTypiaPackageVersion;\n\tconst canonicalCliSpecifier =\n\t\twpTypiaPackageVersion === \"^0.0.0\"\n\t\t\t? \"wp-typia\"\n\t\t\t: `wp-typia@${wpTypiaPackageVersion.replace(/^[~^]/u, \"\")}`;\n\tconst migrationCli = (args: string) =>\n\t\tformatPackageExecCommand(packageManager, canonicalCliSpecifier, `migrate ${args}`);\n\n\tpackageJson.scripts = {\n\t\t...(packageJson.scripts ?? {}),\n\t\t\"migration:init\": migrationCli(\"init --current-migration-version v1\"),\n\t\t\"migration:snapshot\": migrationCli(\"snapshot\"),\n\t\t\"migration:diff\": migrationCli(\"diff\"),\n\t\t\"migration:scaffold\": migrationCli(\"scaffold\"),\n\t\t\"migration:doctor\": migrationCli(\"doctor --all\"),\n\t\t\"migration:fixtures\": migrationCli(\"fixtures --all\"),\n\t\t\"migration:verify\": migrationCli(\"verify --all\"),\n\t\t\"migration:fuzz\": migrationCli(\"fuzz --all\"),\n\t};\n\n\tawait fsp.writeFile(packageJsonPath, `${JSON.stringify(packageJson, null, \"\\t\")}\\n`, \"utf8\");\n\n\twriteMigrationConfig(projectDir, {\n\t\tblocks: [],\n\t\tcurrentMigrationVersion: \"v1\",\n\t\tsnapshotDir: \"src/migrations/versions\",\n\t\tsupportedMigrationVersions: [\"v1\"],\n\t});\n\tensureMigrationDirectories(projectDir, []);\n\twriteInitialMigrationScaffold(projectDir, \"v1\", []);\n}\n\n/**\n * Locate a node_modules directory containing `typia` relative to the project\n * tools package root.\n *\n * Search order:\n * 1. `PROJECT_TOOLS_PACKAGE_ROOT/node_modules`\n * 2. The monorepo root resolved from `PROJECT_TOOLS_PACKAGE_ROOT`\n * 3. The monorepo root `node_modules`\n *\n * @returns The first matching path, or `null` when no candidate contains `typia`.\n */\nfunction resolveScaffoldGeneratorNodeModulesPath(): string | null {\n\tconst candidates = [\n\t\tpath.join(PROJECT_TOOLS_PACKAGE_ROOT, \"node_modules\"),\n\t\tpath.resolve(PROJECT_TOOLS_PACKAGE_ROOT, \"..\", \"..\"),\n\t\tpath.resolve(PROJECT_TOOLS_PACKAGE_ROOT, \"..\", \"..\", \"node_modules\"),\n\t];\n\n\tfor (const candidate of candidates) {\n\t\tif (fs.existsSync(path.join(candidate, \"typia\", \"package.json\"))) {\n\t\t\treturn candidate;\n\t\t}\n\t}\n\n\treturn null;\n}\n\n/**\n * Temporarily symlink a scaffold generator node_modules directory into the\n * target project while running an async callback.\n *\n * The helper resolves the source path via `resolveScaffoldGeneratorNodeModulesPath()`\n * and uses `EPHEMERAL_NODE_MODULES_LINK_TYPE` for the symlink. The temporary\n * link is removed in the `finally` block so cleanup still happens if the\n * callback throws.\n *\n * @param targetDir Absolute scaffold target directory.\n * @param callback Async work that requires a resolvable `node_modules`.\n * @returns A promise that resolves after the callback and cleanup complete.\n */\nasync function withEphemeralScaffoldNodeModules(\n\ttargetDir: string,\n\tcallback: () => Promise<void>,\n): Promise<void> {\n\tconst targetNodeModulesPath = path.join(targetDir, \"node_modules\");\n\tif (fs.existsSync(targetNodeModulesPath)) {\n\t\tawait callback();\n\t\treturn;\n\t}\n\n\tconst sourceNodeModulesPath = resolveScaffoldGeneratorNodeModulesPath();\n\tif (!sourceNodeModulesPath) {\n\t\tthrow new Error(\n\t\t\t\"Unable to resolve a node_modules directory with typia for scaffold-time REST artifact generation.\",\n\t\t);\n\t}\n\n\tawait fsp.symlink(sourceNodeModulesPath, targetNodeModulesPath, EPHEMERAL_NODE_MODULES_LINK_TYPE);\n\n\ttry {\n\t\tawait callback();\n\t} finally {\n\t\tawait fsp.rm(targetNodeModulesPath, { force: true, recursive: true });\n\t}\n}\n",
|
|
63
|
+
"import fs from \"node:fs\";\nimport { promises as fsp } from \"node:fs\";\nimport path from \"node:path\";\n\nimport { formatPackageExecCommand } from \"./package-managers.js\";\nimport type { PackageManagerId } from \"./package-managers.js\";\nimport {\n\tensureMigrationDirectories,\n\twriteInitialMigrationScaffold,\n\twriteMigrationConfig,\n} from \"./migration-project.js\";\nimport { syncPersistenceRestArtifacts } from \"./persistence-rest-artifacts.js\";\nimport type { ScaffoldTemplateVariables } from \"./scaffold.js\";\nimport { getPackageVersions } from \"./package-versions.js\";\nimport { getStarterManifestFiles, stringifyStarterManifest } from \"./starter-manifests.js\";\nimport {\n\tOFFICIAL_WORKSPACE_TEMPLATE_PACKAGE,\n\tPROJECT_TOOLS_PACKAGE_ROOT,\n} from \"./template-registry.js\";\nimport type { BuiltInTemplateId } from \"./template-registry.js\";\nimport { getScaffoldTemplateVariableGroups } from \"./scaffold-template-variable-groups.js\";\n\nconst EPHEMERAL_NODE_MODULES_LINK_TYPE = process.platform === \"win32\" ? \"junction\" : \"dir\";\n\ninterface GeneratedPackageJson {\n\tscripts?: Record<string, string>;\n\twpTypia?: {\n\t\tprojectType?: string;\n\t\ttemplatePackage?: string;\n\t};\n}\n\n/**\n * Ensures the scaffold target directory exists and is empty unless explicitly allowed.\n *\n * @param targetDir Absolute project directory that will receive scaffold output.\n * @param allowExisting Whether an existing non-empty directory should be accepted.\n * @returns A promise that resolves once the directory precondition is satisfied.\n */\nexport async function ensureScaffoldDirectory(\n\ttargetDir: string,\n\tallowExisting = false,\n): Promise<void> {\n\tif (!fs.existsSync(targetDir)) {\n\t\tawait fsp.mkdir(targetDir, { recursive: true });\n\t\treturn;\n\t}\n\n\tif (allowExisting) {\n\t\treturn;\n\t}\n\n\tconst entries = await fsp.readdir(targetDir);\n\tif (entries.length > 0) {\n\t\tthrow new Error(formatNonEmptyTargetDirectoryError(targetDir));\n\t}\n}\n\nfunction readGeneratedPackageJson(projectDir: string): GeneratedPackageJson | null {\n\tconst packageJsonPath = path.join(projectDir, \"package.json\");\n\tif (!fs.existsSync(packageJsonPath)) {\n\t\treturn null;\n\t}\n\n\treturn JSON.parse(fs.readFileSync(packageJsonPath, \"utf8\")) as GeneratedPackageJson;\n}\n\n/**\n * Format the actionable error message used when a scaffold target directory\n * already exists and is not empty.\n *\n * @param targetDir Absolute path to the target directory being evaluated.\n * @returns A human-readable error string with next-step guidance.\n */\nexport function formatNonEmptyTargetDirectoryError(targetDir: string): string {\n\treturn `Target directory is not empty: ${targetDir}. Choose a new project directory, or empty this directory before rerunning the scaffold.`;\n}\n\n/**\n * Writes built-in starter manifest files into a scaffolded project.\n *\n * @param targetDir Absolute scaffold target directory.\n * @param templateId Built-in template id being scaffolded.\n * @param variables Resolved scaffold template variables.\n * @returns A promise that resolves after all starter manifests are written.\n */\nexport async function writeStarterManifestFiles(\n\ttargetDir: string,\n\ttemplateId: string,\n\tvariables: ScaffoldTemplateVariables,\n): Promise<void> {\n\tconst manifests = getStarterManifestFiles(templateId, variables);\n\n\tfor (const { document, relativePath } of manifests) {\n\t\tconst destinationPath = path.join(targetDir, relativePath);\n\t\tawait fsp.mkdir(path.dirname(destinationPath), { recursive: true });\n\t\tawait fsp.writeFile(destinationPath, stringifyStarterManifest(document), \"utf8\");\n\t}\n}\n\n/**\n * Seed REST-derived persistence artifacts into a newly scaffolded built-in\n * project before the first manual `sync-rest` run.\n *\n * @param targetDir Absolute scaffold target directory.\n * @param templateId Built-in template id being scaffolded.\n * @param variables Resolved scaffold template variables for the project.\n * @returns A promise that resolves after any required persistence artifacts are generated.\n */\nexport async function seedBuiltInPersistenceArtifacts(\n\ttargetDir: string,\n\ttemplateId: BuiltInTemplateId,\n\tvariables: ScaffoldTemplateVariables,\n): Promise<void> {\n\tconst compoundGroup = getScaffoldTemplateVariableGroups(variables).compound;\n\tconst needsPersistenceArtifacts =\n\t\ttemplateId === \"persistence\" ||\n\t\t(templateId === \"compound\" &&\n\t\t\tcompoundGroup.enabled &&\n\t\t\tcompoundGroup.persistenceEnabled);\n\n\tif (!needsPersistenceArtifacts) {\n\t\treturn;\n\t}\n\n\tawait withEphemeralScaffoldNodeModules(targetDir, async () => {\n\t\tif (templateId === \"persistence\") {\n\t\t\tawait syncPersistenceRestArtifacts({\n\t\t\t\tapiTypesFile: path.join(\"src\", \"api-types.ts\"),\n\t\t\t\toutputDir: \"src\",\n\t\t\t\tprojectDir: targetDir,\n\t\t\t\tvariables,\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\n\t\tawait syncPersistenceRestArtifacts({\n\t\t\tapiTypesFile: path.join(\"src\", \"blocks\", variables.slugKebabCase, \"api-types.ts\"),\n\t\t\toutputDir: path.join(\"src\", \"blocks\", variables.slugKebabCase),\n\t\t\tprojectDir: targetDir,\n\t\t\tvariables,\n\t\t});\n\t});\n}\n\n/**\n * Detects whether a scaffolded project declares the workspace project model.\n *\n * @param projectDir Absolute scaffold target directory.\n * @returns `true` when the project metadata identifies a workspace scaffold.\n */\nexport function isWorkspaceProject(projectDir: string): boolean {\n\treturn readGeneratedPackageJson(projectDir)?.wpTypia?.projectType === \"workspace\";\n}\n\n/**\n * Detects whether a scaffolded project is the official workspace template.\n *\n * @param projectDir Absolute scaffold target directory.\n * @returns `true` when the project metadata identifies the official workspace template.\n */\nexport function isOfficialWorkspaceProject(projectDir: string): boolean {\n\tconst packageJson = readGeneratedPackageJson(projectDir);\n\treturn (\n\t\tpackageJson?.wpTypia?.projectType === \"workspace\" &&\n\t\tpackageJson.wpTypia?.templatePackage === OFFICIAL_WORKSPACE_TEMPLATE_PACKAGE\n\t);\n}\n\n/**\n * Adds migration scripts and starter workspace files to the official workspace template.\n *\n * @param projectDir Absolute scaffold target directory.\n * @param packageManager Package manager used for generated script commands.\n * @returns A promise that resolves after scripts and migration starter files are written.\n */\nexport async function applyWorkspaceMigrationCapability(\n\tprojectDir: string,\n\tpackageManager: PackageManagerId,\n): Promise<void> {\n\tconst packageJsonPath = path.join(projectDir, \"package.json\");\n\tconst packageJson = JSON.parse(\n\t\tawait fsp.readFile(packageJsonPath, \"utf8\"),\n\t) as GeneratedPackageJson;\n\tconst wpTypiaPackageVersion = getPackageVersions().wpTypiaPackageVersion;\n\tconst canonicalCliSpecifier =\n\t\twpTypiaPackageVersion === \"^0.0.0\"\n\t\t\t? \"wp-typia\"\n\t\t\t: `wp-typia@${wpTypiaPackageVersion.replace(/^[~^]/u, \"\")}`;\n\tconst migrationCli = (args: string) =>\n\t\tformatPackageExecCommand(packageManager, canonicalCliSpecifier, `migrate ${args}`);\n\n\tpackageJson.scripts = {\n\t\t...(packageJson.scripts ?? {}),\n\t\t\"migration:init\": migrationCli(\"init --current-migration-version v1\"),\n\t\t\"migration:snapshot\": migrationCli(\"snapshot\"),\n\t\t\"migration:diff\": migrationCli(\"diff\"),\n\t\t\"migration:scaffold\": migrationCli(\"scaffold\"),\n\t\t\"migration:doctor\": migrationCli(\"doctor --all\"),\n\t\t\"migration:fixtures\": migrationCli(\"fixtures --all\"),\n\t\t\"migration:verify\": migrationCli(\"verify --all\"),\n\t\t\"migration:fuzz\": migrationCli(\"fuzz --all\"),\n\t};\n\n\tawait fsp.writeFile(packageJsonPath, `${JSON.stringify(packageJson, null, \"\\t\")}\\n`, \"utf8\");\n\n\twriteMigrationConfig(projectDir, {\n\t\tblocks: [],\n\t\tcurrentMigrationVersion: \"v1\",\n\t\tsnapshotDir: \"src/migrations/versions\",\n\t\tsupportedMigrationVersions: [\"v1\"],\n\t});\n\tensureMigrationDirectories(projectDir, []);\n\twriteInitialMigrationScaffold(projectDir, \"v1\", []);\n}\n\n/**\n * Locate a node_modules directory containing `typia` relative to the project\n * tools package root.\n *\n * Search order:\n * 1. `PROJECT_TOOLS_PACKAGE_ROOT/node_modules`\n * 2. The monorepo root resolved from `PROJECT_TOOLS_PACKAGE_ROOT`\n * 3. The monorepo root `node_modules`\n *\n * @returns The first matching path, or `null` when no candidate contains `typia`.\n */\nfunction resolveScaffoldGeneratorNodeModulesPath(): string | null {\n\tconst candidates = [\n\t\tpath.join(PROJECT_TOOLS_PACKAGE_ROOT, \"node_modules\"),\n\t\tpath.resolve(PROJECT_TOOLS_PACKAGE_ROOT, \"..\", \"..\"),\n\t\tpath.resolve(PROJECT_TOOLS_PACKAGE_ROOT, \"..\", \"..\", \"node_modules\"),\n\t];\n\n\tfor (const candidate of candidates) {\n\t\tif (fs.existsSync(path.join(candidate, \"typia\", \"package.json\"))) {\n\t\t\treturn candidate;\n\t\t}\n\t}\n\n\treturn null;\n}\n\n/**\n * Temporarily symlink a scaffold generator node_modules directory into the\n * target project while running an async callback.\n *\n * The helper resolves the source path via `resolveScaffoldGeneratorNodeModulesPath()`\n * and uses `EPHEMERAL_NODE_MODULES_LINK_TYPE` for the symlink. The temporary\n * link is removed in the `finally` block so cleanup still happens if the\n * callback throws.\n *\n * @param targetDir Absolute scaffold target directory.\n * @param callback Async work that requires a resolvable `node_modules`.\n * @returns A promise that resolves after the callback and cleanup complete.\n */\nasync function withEphemeralScaffoldNodeModules(\n\ttargetDir: string,\n\tcallback: () => Promise<void>,\n): Promise<void> {\n\tconst targetNodeModulesPath = path.join(targetDir, \"node_modules\");\n\tif (fs.existsSync(targetNodeModulesPath)) {\n\t\tawait callback();\n\t\treturn;\n\t}\n\n\tconst sourceNodeModulesPath = resolveScaffoldGeneratorNodeModulesPath();\n\tif (!sourceNodeModulesPath) {\n\t\tthrow new Error(\n\t\t\t\"Unable to resolve a node_modules directory with typia for scaffold-time REST artifact generation.\",\n\t\t);\n\t}\n\n\tawait fsp.symlink(sourceNodeModulesPath, targetNodeModulesPath, EPHEMERAL_NODE_MODULES_LINK_TYPE);\n\n\ttry {\n\t\tawait callback();\n\t} finally {\n\t\tawait fsp.rm(targetNodeModulesPath, { force: true, recursive: true });\n\t}\n}\n",
|
|
64
64
|
"import path from \"node:path\";\n\nimport {\n\tdefineEndpointManifest,\n\tsyncEndpointClient,\n\tsyncRestOpenApi,\n\tsyncTypeSchemas,\n} from \"@wp-typia/block-runtime/metadata-core\";\n\ninterface PersistenceTemplateVariablesLike {\n\tnamespace: string;\n\tpascalCase: string;\n\trestWriteAuthIntent: \"authenticated\" | \"public-write-protected\";\n\trestWriteAuthMechanism: \"public-signed-token\" | \"rest-nonce\";\n\tslugKebabCase: string;\n\ttitle: string;\n}\n\ninterface SyncPersistenceRestArtifactsOptions {\n\tapiTypesFile: string;\n\toutputDir: string;\n\tprojectDir: string;\n\tvariables: PersistenceTemplateVariablesLike;\n}\n\n/**\n * Build the canonical persistence REST endpoint manifest for scaffold-time\n * schema, OpenAPI, and client generation.\n *\n * @param variables Persistence template naming and auth metadata.\n * @returns Endpoint manifest covering bootstrap, state read, and state write operations.\n */\nexport function buildPersistenceEndpointManifest(\n\tvariables: PersistenceTemplateVariablesLike,\n) {\n\treturn defineEndpointManifest({\n\t\tcontracts: {\n\t\t\t\"bootstrap-query\": {\n\t\t\t\tsourceTypeName: `${variables.pascalCase}BootstrapQuery`,\n\t\t\t},\n\t\t\t\"bootstrap-response\": {\n\t\t\t\tsourceTypeName: `${variables.pascalCase}BootstrapResponse`,\n\t\t\t},\n\t\t\t\"state-query\": {\n\t\t\t\tsourceTypeName: `${variables.pascalCase}StateQuery`,\n\t\t\t},\n\t\t\t\"state-response\": {\n\t\t\t\tsourceTypeName: `${variables.pascalCase}StateResponse`,\n\t\t\t},\n\t\t\t\"write-state-request\": {\n\t\t\t\tsourceTypeName: `${variables.pascalCase}WriteStateRequest`,\n\t\t\t},\n\t\t},\n\t\tendpoints: [\n\t\t\t{\n\t\t\t\tauth: \"public\",\n\t\t\t\tmethod: \"GET\",\n\t\t\t\toperationId: `get${variables.pascalCase}State`,\n\t\t\t\tpath: `/${variables.namespace}/v1/${variables.slugKebabCase}/state`,\n\t\t\t\tqueryContract: \"state-query\",\n\t\t\t\tresponseContract: \"state-response\",\n\t\t\t\tsummary: \"Read the current persisted state.\",\n\t\t\t\ttags: [variables.title],\n\t\t\t},\n\t\t\t{\n\t\t\t\tauth: variables.restWriteAuthIntent,\n\t\t\t\tbodyContract: \"write-state-request\",\n\t\t\t\tmethod: \"POST\",\n\t\t\t\toperationId: `write${variables.pascalCase}State`,\n\t\t\t\tpath: `/${variables.namespace}/v1/${variables.slugKebabCase}/state`,\n\t\t\t\tresponseContract: \"state-response\",\n\t\t\t\tsummary: \"Write the current persisted state.\",\n\t\t\t\ttags: [variables.title],\n\t\t\t\twordpressAuth: {\n\t\t\t\t\tmechanism: variables.restWriteAuthMechanism,\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tauth: \"public\",\n\t\t\t\tmethod: \"GET\",\n\t\t\t\toperationId: `get${variables.pascalCase}Bootstrap`,\n\t\t\t\tpath: `/${variables.namespace}/v1/${variables.slugKebabCase}/bootstrap`,\n\t\t\t\tqueryContract: \"bootstrap-query\",\n\t\t\t\tresponseContract: \"bootstrap-response\",\n\t\t\t\tsummary: \"Read fresh session bootstrap state for the current viewer.\",\n\t\t\t\ttags: [variables.title],\n\t\t\t},\n\t\t],\n\t\tinfo: {\n\t\t\ttitle: `${variables.title} REST API`,\n\t\t\tversion: \"1.0.0\",\n\t\t},\n\t});\n}\n\n/**\n * Generate the REST-derived persistence artifacts for a scaffolded block.\n *\n * @param options Scaffold output paths plus persistence template variables.\n * @returns A promise that resolves after schema, OpenAPI, and client files are written.\n */\nexport async function syncPersistenceRestArtifacts({\n\tapiTypesFile,\n\toutputDir,\n\tprojectDir,\n\tvariables,\n}: SyncPersistenceRestArtifactsOptions): Promise<void> {\n\tconst manifest = buildPersistenceEndpointManifest(variables);\n\n\tfor (const [baseName, contract] of Object.entries(manifest.contracts) as Array<\n\t\t[string, { sourceTypeName: string }]\n\t>) {\n\t\tawait syncTypeSchemas(\n\t\t\t{\n\t\t\t\tjsonSchemaFile: path.join(outputDir, \"api-schemas\", `${baseName}.schema.json`),\n\t\t\t\topenApiFile: path.join(outputDir, \"api-schemas\", `${baseName}.openapi.json`),\n\t\t\t\tprojectRoot: projectDir,\n\t\t\t\tsourceTypeName: contract.sourceTypeName,\n\t\t\t\ttypesFile: apiTypesFile,\n\t\t\t},\n\t\t);\n\t}\n\n\tawait syncRestOpenApi(\n\t\t{\n\t\t\tmanifest,\n\t\t\topenApiFile: path.join(outputDir, \"api.openapi.json\"),\n\t\t\tprojectRoot: projectDir,\n\t\t\ttypesFile: apiTypesFile,\n\t\t},\n\t);\n\n\tawait syncEndpointClient(\n\t\t{\n\t\t\tclientFile: path.join(outputDir, \"api-client.ts\"),\n\t\t\tmanifest,\n\t\t\tprojectRoot: projectDir,\n\t\t\ttypesFile: apiTypesFile,\n\t\t},\n\t);\n}\n",
|
|
65
65
|
"import type {\n\tJsonValue,\n\tManifestAttribute,\n\tManifestConstraints,\n\tManifestDocument,\n} from \"./migration-types.js\";\n\n/**\n * Default placeholder copy used for generated compound child body fields.\n */\nexport const DEFAULT_COMPOUND_CHILD_BODY_PLACEHOLDER =\n\t\"Add supporting details for this internal item.\";\n\ntype StarterManifestSourceType = NonNullable<ManifestAttribute[\"wp\"][\"type\"]>;\ntype WordPressAttributeSource = NonNullable<ManifestAttribute[\"wp\"][\"source\"]>;\n\ninterface StarterManifestAttributeDefinition {\n\tconstraints?: Partial<ManifestConstraints>;\n\tdefaultValue?: JsonValue;\n\tenumValues?: Array<string | number | boolean> | null;\n\tkind: ManifestAttribute[\"ts\"][\"kind\"];\n\trequired: boolean;\n\tselector?: string | null;\n\tsource?: WordPressAttributeSource | null;\n\tsourceType: StarterManifestSourceType;\n}\n\ninterface BlockJsonAttributeDefinition {\n\tdefaultValue?: JsonValue;\n\tenumValues?: Array<string | number | boolean> | null;\n\tselector?: string;\n\tsource?: WordPressAttributeSource;\n\ttype: StarterManifestSourceType;\n}\n\nexport interface AttributeDescription {\n\tlines: string[];\n}\n\n/**\n * Emitted attribute metadata shared between block.json, manifest, and type emitters.\n */\nexport interface EmittedAttributeDefinition {\n\tblockJson: BlockJsonAttributeDefinition;\n\tdescription?: AttributeDescription;\n\tmanifest: StarterManifestAttributeDefinition;\n\tname: string;\n\toptional: boolean;\n\ttypeExpression: string;\n}\n\ninterface BuiltInAttributeSpec {\n\tblockJsonDefaultValue?: JsonValue;\n\tconstraints?: Partial<ManifestConstraints>;\n\tdefaultValue?: JsonValue;\n\tdescription?: AttributeDescription;\n\tenumValues?: Array<string | number | boolean> | null;\n\tkind: ManifestAttribute[\"ts\"][\"kind\"];\n\tmanifestDefaultValue?: JsonValue;\n\tname: string;\n\toptional: boolean;\n\tselector?: string | null;\n\tsource?: WordPressAttributeSource | null;\n\tsourceType: StarterManifestSourceType;\n\ttypeExpression: string;\n}\n\ntype BuiltInAttributeValueResolver<TContext, TValue> =\n\t| TValue\n\t| ((context: TContext) => TValue);\n\nexport interface BuiltInAttributeTemplateSpec<TContext> {\n\tattributeType: \"boolean\" | \"number\" | \"string\";\n\tblockJsonDefaultValue?: BuiltInAttributeValueResolver<\n\t\tTContext,\n\t\tJsonValue | undefined\n\t>;\n\tconstraints?: BuiltInAttributeValueResolver<\n\t\tTContext,\n\t\tPartial<ManifestConstraints> | undefined\n\t>;\n\tdefaultValue?: BuiltInAttributeValueResolver<TContext, JsonValue | undefined>;\n\tdescription?: BuiltInAttributeValueResolver<\n\t\tTContext,\n\t\tAttributeDescription | undefined\n\t>;\n\tenumValues?: BuiltInAttributeValueResolver<\n\t\tTContext,\n\t\tArray<string | number | boolean> | null | undefined\n\t>;\n\tmanifestDefaultValue?: BuiltInAttributeValueResolver<\n\t\tTContext,\n\t\tJsonValue | undefined\n\t>;\n\tname: string;\n\toptional: boolean;\n\tselector?: BuiltInAttributeValueResolver<TContext, string | null | undefined>;\n\tsource?: BuiltInAttributeValueResolver<\n\t\tTContext,\n\t\tWordPressAttributeSource | null | undefined\n\t>;\n\ttypeExpression: BuiltInAttributeValueResolver<TContext, string>;\n}\n\nfunction createConstraints(\n\toverrides: Partial<ManifestConstraints> = {},\n): ManifestConstraints {\n\treturn {\n\t\texclusiveMaximum: null,\n\t\texclusiveMinimum: null,\n\t\tformat: null,\n\t\tmaxLength: null,\n\t\tmaxItems: null,\n\t\tmaximum: null,\n\t\tminLength: null,\n\t\tminItems: null,\n\t\tminimum: null,\n\t\tmultipleOf: null,\n\t\tpattern: null,\n\t\ttypeTag: null,\n\t\t...overrides,\n\t};\n}\n\nfunction createManifestAttribute({\n\tconstraints,\n\tdefaultValue,\n\tenumValues = null,\n\tkind,\n\trequired,\n\tselector = null,\n\tsource = null,\n\tsourceType,\n}: StarterManifestAttributeDefinition): ManifestAttribute {\n\tconst hasDefault = defaultValue !== undefined;\n\n\treturn {\n\t\tts: {\n\t\t\titems: null,\n\t\t\tkind,\n\t\t\tproperties: null,\n\t\t\trequired,\n\t\t\tunion: null,\n\t\t},\n\t\ttypia: {\n\t\t\tconstraints: createConstraints(constraints),\n\t\t\tdefaultValue: hasDefault ? defaultValue : null,\n\t\t\thasDefault,\n\t\t},\n\t\twp: {\n\t\t\tdefaultValue: hasDefault ? defaultValue : null,\n\t\t\tenum: enumValues,\n\t\t\thasDefault,\n\t\t\t...(selector ? { selector } : {}),\n\t\t\t...(source ? { source } : {}),\n\t\t\ttype: sourceType,\n\t\t},\n\t};\n}\n\nfunction createBlockJsonAttribute({\n\tdefaultValue,\n\tenumValues = null,\n\tselector,\n\tsource,\n\ttype,\n}: BlockJsonAttributeDefinition): Record<string, unknown> {\n\tconst attribute: Record<string, unknown> = {\n\t\ttype,\n\t};\n\n\tif (defaultValue !== undefined) {\n\t\tattribute.default = defaultValue;\n\t}\n\tif (enumValues !== null && enumValues.length > 0) {\n\t\tattribute.enum = enumValues;\n\t}\n\tif (source) {\n\t\tattribute.source = source;\n\t}\n\tif (selector) {\n\t\tattribute.selector = selector;\n\t}\n\n\treturn attribute;\n}\n\nexport function describe(...lines: string[]): AttributeDescription {\n\treturn {\n\t\tlines,\n\t};\n}\n\nfunction defineAttribute({\n\tblockJsonDefaultValue,\n\tconstraints,\n\tdefaultValue,\n\tdescription,\n\tenumValues = null,\n\tkind,\n\tmanifestDefaultValue,\n\tname,\n\toptional,\n\tselector = null,\n\tsource = null,\n\tsourceType,\n\ttypeExpression,\n}: BuiltInAttributeSpec): EmittedAttributeDefinition {\n\tconst resolvedBlockJsonDefaultValue =\n\t\tblockJsonDefaultValue !== undefined ? blockJsonDefaultValue : defaultValue;\n\tconst resolvedManifestDefaultValue =\n\t\tmanifestDefaultValue !== undefined ? manifestDefaultValue : defaultValue;\n\n\treturn {\n\t\tblockJson: {\n\t\t\tdefaultValue: resolvedBlockJsonDefaultValue,\n\t\t\tenumValues,\n\t\t\t...(selector ? { selector } : {}),\n\t\t\t...(source ? { source } : {}),\n\t\t\ttype: sourceType,\n\t\t},\n\t\tdescription,\n\t\tmanifest: {\n\t\t\tconstraints,\n\t\t\tdefaultValue: resolvedManifestDefaultValue,\n\t\t\tenumValues,\n\t\t\tkind,\n\t\t\trequired: !optional,\n\t\t\tselector,\n\t\t\tsource,\n\t\t\tsourceType,\n\t\t},\n\t\tname,\n\t\toptional,\n\t\ttypeExpression,\n\t};\n}\n\nfunction defineStringAttribute(\n\tspec: Omit<BuiltInAttributeSpec, \"kind\" | \"sourceType\">,\n): EmittedAttributeDefinition {\n\treturn defineAttribute({\n\t\t...spec,\n\t\tkind: \"string\",\n\t\tsourceType: \"string\",\n\t});\n}\n\nfunction defineBooleanAttribute(\n\tspec: Omit<BuiltInAttributeSpec, \"kind\" | \"sourceType\">,\n): EmittedAttributeDefinition {\n\treturn defineAttribute({\n\t\t...spec,\n\t\tkind: \"boolean\",\n\t\tsourceType: \"boolean\",\n\t});\n}\n\nfunction defineNumberAttribute(\n\tspec: Omit<BuiltInAttributeSpec, \"kind\" | \"sourceType\">,\n): EmittedAttributeDefinition {\n\treturn defineAttribute({\n\t\t...spec,\n\t\tkind: \"number\",\n\t\tsourceType: \"number\",\n\t});\n}\n\nfunction resolveBuiltInAttributeValue<TContext, TValue>(\n\tvalue: BuiltInAttributeValueResolver<TContext, TValue> | undefined,\n\tcontext: TContext,\n): TValue | undefined {\n\tif (typeof value === \"function\") {\n\t\treturn (value as (context: TContext) => TValue)(context);\n\t}\n\n\treturn value;\n}\n\nexport function buildAttributesFromSpecs<TContext>(\n\tspecs: readonly BuiltInAttributeTemplateSpec<TContext>[],\n\tcontext: TContext,\n): EmittedAttributeDefinition[] {\n\treturn specs.map((spec) => {\n\t\tconst resolvedSpec: Omit<BuiltInAttributeSpec, \"kind\" | \"sourceType\"> = {\n\t\t\tblockJsonDefaultValue: resolveBuiltInAttributeValue(\n\t\t\t\tspec.blockJsonDefaultValue,\n\t\t\t\tcontext,\n\t\t\t),\n\t\t\tconstraints: resolveBuiltInAttributeValue(spec.constraints, context),\n\t\t\tdefaultValue: resolveBuiltInAttributeValue(spec.defaultValue, context),\n\t\t\tdescription: resolveBuiltInAttributeValue(spec.description, context),\n\t\t\tenumValues: resolveBuiltInAttributeValue(spec.enumValues, context),\n\t\t\tmanifestDefaultValue: resolveBuiltInAttributeValue(\n\t\t\t\tspec.manifestDefaultValue,\n\t\t\t\tcontext,\n\t\t\t),\n\t\t\tname: spec.name,\n\t\t\toptional: spec.optional,\n\t\t\tselector: resolveBuiltInAttributeValue(spec.selector, context),\n\t\t\tsource: resolveBuiltInAttributeValue(spec.source, context),\n\t\t\ttypeExpression: resolveBuiltInAttributeValue(\n\t\t\t\tspec.typeExpression,\n\t\t\t\tcontext,\n\t\t\t) ?? \"unknown\",\n\t\t};\n\n\t\tif (spec.attributeType === \"boolean\") {\n\t\t\treturn defineBooleanAttribute(resolvedSpec);\n\t\t}\n\n\t\tif (spec.attributeType === \"number\") {\n\t\t\treturn defineNumberAttribute(resolvedSpec);\n\t\t}\n\n\t\treturn defineStringAttribute(resolvedSpec);\n\t});\n}\n\n/**\n * Builds the manifest document for a generated built-in block artifact.\n *\n * @param sourceType Generated TypeScript source type name referenced by the manifest.\n * @param attributes Emitted attribute definitions used to populate the manifest.\n * @returns A starter manifest document for the generated block.\n */\nexport function buildManifestDocument(\n\tsourceType: string,\n\tattributes: readonly EmittedAttributeDefinition[],\n): ManifestDocument {\n\treturn {\n\t\tattributes: Object.fromEntries(\n\t\t\tattributes.map((attribute) => [\n\t\t\t\tattribute.name,\n\t\t\t\tcreateManifestAttribute(attribute.manifest),\n\t\t\t]),\n\t\t),\n\t\tmanifestVersion: 2,\n\t\tsourceType,\n\t};\n}\n\n/**\n * Builds the block.json attributes object for a generated built-in block artifact.\n *\n * @param attributes Emitted attribute definitions used to populate block.json.\n * @returns A block.json-compatible attributes record.\n */\nexport function buildBlockJsonAttributes(\n\tattributes: readonly EmittedAttributeDefinition[],\n): Record<string, Record<string, unknown>> {\n\treturn Object.fromEntries(\n\t\tattributes.map((attribute) => [\n\t\t\tattribute.name,\n\t\t\tcreateBlockJsonAttribute(attribute.blockJson),\n\t\t]),\n\t);\n}\n",
|
|
66
66
|
"import type { ScaffoldTemplateVariables } from \"./scaffold.js\";\nimport {\n\tDEFAULT_COMPOUND_CHILD_BODY_PLACEHOLDER,\n\tbuildAttributesFromSpecs,\n\tdescribe,\n} from \"./built-in-block-attribute-emitters.js\";\nimport type {\n\tBuiltInAttributeTemplateSpec,\n\tEmittedAttributeDefinition,\n} from \"./built-in-block-attribute-emitters.js\";\n\nconst ALIGNMENT_VALUES = [\"left\", \"center\", \"right\"] as const;\nconst BASIC_ALIGNMENT_VALUES = [\"left\", \"center\", \"right\", \"justify\"] as const;\nconst INTERACTIVE_MODE_VALUES = [\"click\", \"hover\"] as const;\nconst ANIMATION_VALUES = [\"none\", \"bounce\", \"pulse\", \"shake\", \"flip\"] as const;\ninterface CompoundChildAttributeVariables {\n\tbodyPlaceholder: string;\n\tchildCssClassName?: string | null;\n\tchildTitle: string;\n}\nconst BASIC_ATTRIBUTE_SPECS = [\n\t{\n\t\tattributeType: \"string\",\n\t\tconstraints: {\n\t\t\tmaxLength: 1000,\n\t\t},\n\t\tdefaultValue: \"\",\n\t\tdescription: describe(\"Main block content\"),\n\t\tname: \"content\",\n\t\toptional: false,\n\t\ttypeExpression: 'string & tags.MaxLength<1000> & tags.Default<\"\">',\n\t},\n\t{\n\t\tattributeType: \"string\",\n\t\tdefaultValue: \"left\",\n\t\tdescription: describe(\"Alignment\"),\n\t\tenumValues: [...BASIC_ALIGNMENT_VALUES],\n\t\tname: \"alignment\",\n\t\toptional: true,\n\t\ttypeExpression: 'TextAlignment & tags.Default<\"left\">',\n\t},\n\t{\n\t\tattributeType: \"boolean\",\n\t\tdefaultValue: true,\n\t\tdescription: describe(\"Visibility toggle\"),\n\t\tname: \"isVisible\",\n\t\toptional: true,\n\t\ttypeExpression: \"boolean & tags.Default<true>\",\n\t},\n\t{\n\t\tattributeType: \"string\",\n\t\tconstraints: {\n\t\t\tmaxLength: 100,\n\t\t},\n\t\tdefaultValue: \"\",\n\t\tdescription: describe(\"Custom CSS class\"),\n\t\tname: \"className\",\n\t\toptional: true,\n\t\ttypeExpression: 'string & tags.MaxLength<100> & tags.Default<\"\">',\n\t},\n\t{\n\t\tattributeType: \"string\",\n\t\tconstraints: {\n\t\t\tformat: \"uuid\",\n\t\t},\n\t\tdescription: describe(\"Generated runtime ID\"),\n\t\tname: \"id\",\n\t\toptional: true,\n\t\ttypeExpression: 'string & tags.Format<\"uuid\">',\n\t},\n\t{\n\t\tattributeType: \"number\",\n\t\tconstraints: {\n\t\t\ttypeTag: \"uint32\",\n\t\t},\n\t\tdefaultValue: 1,\n\t\tdescription: describe(\"Block version for migrations\"),\n\t\tname: \"schemaVersion\",\n\t\toptional: true,\n\t\ttypeExpression: 'number & tags.Type<\"uint32\"> & tags.Default<1>',\n\t},\n] as const satisfies readonly BuiltInAttributeTemplateSpec<void>[];\n\nconst INTERACTIVITY_ATTRIBUTE_SPECS = [\n\t{\n\t\tattributeType: \"string\",\n\t\tconstraints: {\n\t\t\tmaxLength: 1000,\n\t\t},\n\t\tdefaultValue: \"\",\n\t\tname: \"content\",\n\t\toptional: false,\n\t\tselector: (variables: ScaffoldTemplateVariables) =>\n\t\t\t`.${variables.cssClassName}__content`,\n\t\tsource: \"html\",\n\t\ttypeExpression: 'string & tags.MaxLength<1000> & tags.Default<\"\">',\n\t},\n\t{\n\t\tattributeType: \"string\",\n\t\tdefaultValue: \"left\",\n\t\tenumValues: [...ALIGNMENT_VALUES],\n\t\tname: \"alignment\",\n\t\toptional: true,\n\t\ttypeExpression: 'TextAlignment & tags.Default<\"left\">',\n\t},\n\t{\n\t\tattributeType: \"boolean\",\n\t\tdefaultValue: true,\n\t\tname: \"isVisible\",\n\t\toptional: true,\n\t\ttypeExpression: \"boolean & tags.Default<true>\",\n\t},\n\t{\n\t\tattributeType: \"string\",\n\t\tdefaultValue: \"click\",\n\t\tenumValues: [...INTERACTIVE_MODE_VALUES],\n\t\tname: \"interactiveMode\",\n\t\toptional: true,\n\t\ttypeExpression: '(\"click\" | \"hover\") & tags.Default<\"click\">',\n\t},\n\t{\n\t\tattributeType: \"string\",\n\t\tdefaultValue: \"none\",\n\t\tenumValues: [...ANIMATION_VALUES],\n\t\tname: \"animation\",\n\t\toptional: true,\n\t\ttypeExpression:\n\t\t\t'(\"none\" | \"bounce\" | \"pulse\" | \"shake\" | \"flip\") & tags.Default<\"none\">',\n\t},\n\t{\n\t\tattributeType: \"number\",\n\t\tconstraints: {\n\t\t\tminimum: 0,\n\t\t\ttypeTag: \"uint32\",\n\t\t},\n\t\tdefaultValue: 0,\n\t\tname: \"clickCount\",\n\t\toptional: true,\n\t\ttypeExpression: 'number & tags.Minimum<0> & tags.Type<\"uint32\"> & tags.Default<0>',\n\t},\n\t{\n\t\tattributeType: \"boolean\",\n\t\tdefaultValue: false,\n\t\tname: \"isAnimating\",\n\t\toptional: true,\n\t\ttypeExpression: \"boolean & tags.Default<false>\",\n\t},\n\t{\n\t\tattributeType: \"boolean\",\n\t\tdefaultValue: true,\n\t\tname: \"showCounter\",\n\t\toptional: true,\n\t\ttypeExpression: \"boolean & tags.Default<true>\",\n\t},\n\t{\n\t\tattributeType: \"number\",\n\t\tconstraints: {\n\t\t\tminimum: 0,\n\t\t\ttypeTag: \"uint32\",\n\t\t},\n\t\tdefaultValue: 10,\n\t\tname: \"maxClicks\",\n\t\toptional: true,\n\t\ttypeExpression: 'number & tags.Minimum<0> & tags.Type<\"uint32\"> & tags.Default<10>',\n\t},\n] as const satisfies readonly BuiltInAttributeTemplateSpec<ScaffoldTemplateVariables>[];\n\nconst PERSISTENCE_ATTRIBUTE_SPECS = [\n\t{\n\t\tattributeType: \"string\",\n\t\tconstraints: {\n\t\t\tmaxLength: 250,\n\t\t\tminLength: 1,\n\t\t},\n\t\tdefaultValue: (variables: ScaffoldTemplateVariables) =>\n\t\t\t`${variables.title} persistence block`,\n\t\tname: \"content\",\n\t\toptional: false,\n\t\tselector: (variables: ScaffoldTemplateVariables) =>\n\t\t\t`.${variables.cssClassName}__content`,\n\t\tsource: \"html\",\n\t\ttypeExpression: (variables: ScaffoldTemplateVariables) =>\n\t\t\t`string & tags.MinLength<1> & tags.MaxLength<250> & tags.Default<${JSON.stringify(`${variables.title} persistence block`)}>`,\n\t},\n\t{\n\t\tattributeType: \"string\",\n\t\tdefaultValue: \"left\",\n\t\tenumValues: [...ALIGNMENT_VALUES],\n\t\tname: \"alignment\",\n\t\toptional: true,\n\t\ttypeExpression: 'TextAlignment & tags.Default<\"left\">',\n\t},\n\t{\n\t\tattributeType: \"boolean\",\n\t\tdefaultValue: true,\n\t\tname: \"isVisible\",\n\t\toptional: true,\n\t\ttypeExpression: \"boolean & tags.Default<true>\",\n\t},\n\t{\n\t\tattributeType: \"boolean\",\n\t\tdefaultValue: true,\n\t\tname: \"showCount\",\n\t\toptional: true,\n\t\ttypeExpression: \"boolean & tags.Default<true>\",\n\t},\n\t{\n\t\tattributeType: \"string\",\n\t\tconstraints: {\n\t\t\tmaxLength: 40,\n\t\t\tminLength: 1,\n\t\t},\n\t\tdefaultValue: \"Persist Count\",\n\t\tname: \"buttonLabel\",\n\t\toptional: true,\n\t\ttypeExpression:\n\t\t\t'string & tags.MinLength<1> & tags.MaxLength<40> & tags.Default<\"Persist Count\">',\n\t},\n\t{\n\t\tattributeType: \"string\",\n\t\tblockJsonDefaultValue: \"\",\n\t\tconstraints: {\n\t\t\tmaxLength: 100,\n\t\t\tminLength: 1,\n\t\t},\n\t\tmanifestDefaultValue: \"primary\",\n\t\tname: \"resourceKey\",\n\t\toptional: true,\n\t\ttypeExpression:\n\t\t\t'string & tags.MinLength<1> & tags.MaxLength<100> & tags.Default<\"primary\">',\n\t},\n] as const satisfies readonly BuiltInAttributeTemplateSpec<ScaffoldTemplateVariables>[];\n\nconst COMPOUND_PARENT_BASE_ATTRIBUTE_SPECS = [\n\t{\n\t\tattributeType: \"string\",\n\t\tconstraints: {\n\t\t\tmaxLength: 80,\n\t\t\tminLength: 1,\n\t\t},\n\t\tdefaultValue: (variables: ScaffoldTemplateVariables) => variables.title,\n\t\tname: \"heading\",\n\t\toptional: false,\n\t\tselector: (variables: ScaffoldTemplateVariables) =>\n\t\t\t`.${variables.cssClassName}__heading`,\n\t\tsource: \"html\",\n\t\ttypeExpression: (variables: ScaffoldTemplateVariables) =>\n\t\t\t`string & tags.MinLength<1> & tags.MaxLength<80> & tags.Default<${JSON.stringify(variables.title)}>`,\n\t},\n\t{\n\t\tattributeType: \"string\",\n\t\tconstraints: {\n\t\t\tmaxLength: 180,\n\t\t\tminLength: 1,\n\t\t},\n\t\tdefaultValue: \"Add and reorder internal items inside this compound block.\",\n\t\tname: \"intro\",\n\t\toptional: true,\n\t\tselector: (variables: ScaffoldTemplateVariables) =>\n\t\t\t`.${variables.cssClassName}__intro`,\n\t\tsource: \"html\",\n\t\ttypeExpression:\n\t\t\t'string & tags.MinLength<1> & tags.MaxLength<180> & tags.Default<\"Add and reorder internal items inside this compound block.\">',\n\t},\n\t{\n\t\tattributeType: \"boolean\",\n\t\tdefaultValue: true,\n\t\tname: \"showDividers\",\n\t\toptional: true,\n\t\ttypeExpression: \"boolean & tags.Default<true>\",\n\t},\n] as const satisfies readonly BuiltInAttributeTemplateSpec<ScaffoldTemplateVariables>[];\n\nconst COMPOUND_PARENT_PERSISTENCE_ATTRIBUTE_SPECS = [\n\t{\n\t\tattributeType: \"boolean\",\n\t\tdefaultValue: true,\n\t\tname: \"showCount\",\n\t\toptional: true,\n\t\ttypeExpression: \"boolean & tags.Default<true>\",\n\t},\n\t{\n\t\tattributeType: \"string\",\n\t\tconstraints: {\n\t\t\tmaxLength: 40,\n\t\t\tminLength: 1,\n\t\t},\n\t\tdefaultValue: \"Persist Count\",\n\t\tname: \"buttonLabel\",\n\t\toptional: true,\n\t\ttypeExpression:\n\t\t\t'string & tags.MinLength<1> & tags.MaxLength<40> & tags.Default<\"Persist Count\">',\n\t},\n\t{\n\t\tattributeType: \"string\",\n\t\tblockJsonDefaultValue: \"\",\n\t\tconstraints: {\n\t\t\tmaxLength: 100,\n\t\t\tminLength: 1,\n\t\t},\n\t\tmanifestDefaultValue: \"primary\",\n\t\tname: \"resourceKey\",\n\t\toptional: true,\n\t\ttypeExpression:\n\t\t\t'string & tags.MinLength<1> & tags.MaxLength<100> & tags.Default<\"primary\">',\n\t},\n] as const satisfies readonly BuiltInAttributeTemplateSpec<ScaffoldTemplateVariables>[];\n\nconst COMPOUND_CHILD_ATTRIBUTE_SPECS = [\n\t{\n\t\tattributeType: \"string\",\n\t\tconstraints: {\n\t\t\tmaxLength: 80,\n\t\t\tminLength: 1,\n\t\t},\n\t\tdefaultValue: ({ childTitle }: CompoundChildAttributeVariables) => childTitle,\n\t\tname: \"title\",\n\t\toptional: false,\n\t\tselector: ({ childCssClassName }: CompoundChildAttributeVariables) =>\n\t\t\tchildCssClassName ? `.${childCssClassName}__title` : null,\n\t\tsource: ({ childCssClassName }: CompoundChildAttributeVariables) =>\n\t\t\tchildCssClassName ? \"html\" : null,\n\t\ttypeExpression: ({ childTitle }: CompoundChildAttributeVariables) =>\n\t\t\t`string & tags.MinLength<1> & tags.MaxLength<80> & tags.Default<${JSON.stringify(childTitle)}>`,\n\t},\n\t{\n\t\tattributeType: \"string\",\n\t\tconstraints: {\n\t\t\tmaxLength: 280,\n\t\t\tminLength: 1,\n\t\t},\n\t\tdefaultValue: ({ bodyPlaceholder }: CompoundChildAttributeVariables) =>\n\t\t\tbodyPlaceholder,\n\t\tname: \"body\",\n\t\toptional: false,\n\t\tselector: ({ childCssClassName }: CompoundChildAttributeVariables) =>\n\t\t\tchildCssClassName ? `.${childCssClassName}__body` : null,\n\t\tsource: ({ childCssClassName }: CompoundChildAttributeVariables) =>\n\t\t\tchildCssClassName ? \"html\" : null,\n\t\ttypeExpression: ({ bodyPlaceholder }: CompoundChildAttributeVariables) =>\n\t\t\t`string & tags.MinLength<1> & tags.MaxLength<280> & tags.Default<${JSON.stringify(bodyPlaceholder)}>`,\n\t},\n] as const satisfies readonly BuiltInAttributeTemplateSpec<CompoundChildAttributeVariables>[];\n\n/**\n * Builds the emitted attribute set for the basic built-in block family.\n *\n * @returns Emitted attribute definitions for the basic template family.\n */\nexport function buildBasicAttributes(): EmittedAttributeDefinition[] {\n\treturn buildAttributesFromSpecs(BASIC_ATTRIBUTE_SPECS, undefined);\n}\n\n/**\n * Builds the emitted attribute set for the interactivity built-in block family.\n *\n * @param variables Resolved scaffold template variables for the generated block.\n * @returns Emitted attribute definitions for the interactivity template family.\n */\nexport function buildInteractivityAttributes(\n\tvariables: ScaffoldTemplateVariables,\n): EmittedAttributeDefinition[] {\n\treturn buildAttributesFromSpecs(INTERACTIVITY_ATTRIBUTE_SPECS, variables);\n}\n\n/**\n * Builds the emitted attribute set for the persistence built-in block family.\n *\n * @param variables Resolved scaffold template variables for the generated block.\n * @returns Emitted attribute definitions for the persistence template family.\n */\nexport function buildPersistenceAttributes(\n\tvariables: ScaffoldTemplateVariables,\n): EmittedAttributeDefinition[] {\n\treturn buildAttributesFromSpecs(PERSISTENCE_ATTRIBUTE_SPECS, variables);\n}\n\n/**\n * Builds the emitted attribute set for the compound parent built-in block family.\n *\n * @param variables Resolved scaffold template variables for the generated block.\n * @returns Emitted attribute definitions for the compound parent artifact.\n */\nexport function buildCompoundParentAttributes(\n\tvariables: ScaffoldTemplateVariables,\n): EmittedAttributeDefinition[] {\n\treturn buildAttributesFromSpecs(\n\t\tvariables.compoundPersistenceEnabled === \"true\"\n\t\t\t? [\n\t\t\t\t...COMPOUND_PARENT_BASE_ATTRIBUTE_SPECS,\n\t\t\t\t...COMPOUND_PARENT_PERSISTENCE_ATTRIBUTE_SPECS,\n\t\t\t]\n\t\t\t: COMPOUND_PARENT_BASE_ATTRIBUTE_SPECS,\n\t\tvariables,\n\t);\n}\n\n/**\n * Builds the emitted attribute set for the compound child built-in block family.\n *\n * @param bodyPlaceholder Placeholder text for the child body field.\n * @param childTitle Default title used by the child block.\n * @param childCssClassName Optional CSS class used for HTML-backed selectors.\n * @returns Emitted attribute definitions for the compound child artifact.\n */\nexport function buildCompoundChildAttributes(\n\tchildTitle: string,\n\tchildCssClassName?: string | null,\n\tbodyPlaceholder = DEFAULT_COMPOUND_CHILD_BODY_PLACEHOLDER,\n): EmittedAttributeDefinition[] {\n\treturn buildAttributesFromSpecs(COMPOUND_CHILD_ATTRIBUTE_SPECS, {\n\t\tbodyPlaceholder,\n\t\tchildCssClassName,\n\t\tchildTitle,\n\t});\n}\n",
|
|
67
67
|
"import type {\n\tScaffoldTemplateVariables,\n} from \"./scaffold.js\";\n\ninterface AttributeDescription {\n\tlines: string[];\n}\n\ninterface EmittedAttributeDefinition {\n\tdescription?: AttributeDescription;\n\tname: string;\n\toptional: boolean;\n\ttypeExpression: string;\n}\n\ninterface InterfaceMemberDefinition {\n\tdescription?: AttributeDescription;\n\tname: string;\n\toptional?: boolean;\n\ttypeExpression: string;\n}\n\ninterface InterfaceDefinition {\n\tdescription?: AttributeDescription;\n\tmembers: InterfaceMemberDefinition[];\n\tname: string;\n}\n\ninterface TypeAliasDefinition {\n\tname: string;\n\tvalue: string;\n}\n\nconst STANDARD_PREAMBLE_LINES = [\n\t'import type { TextAlignment } from \"@wp-typia/block-types/block-editor/alignment\";',\n\t\"import type {\",\n\t\"\\tTypiaValidationError,\",\n\t\"\\tValidationResult,\",\n\t'} from \"@wp-typia/block-runtime/validation\";',\n\t'import { tags } from \"typia\";',\n\t\"\",\n\t'export type { TypiaValidationError, ValidationResult } from \"@wp-typia/block-runtime/validation\";',\n] as const satisfies readonly string[];\n\nconst VALIDATION_ONLY_PREAMBLE_LINES = [\n\t'import type { ValidationResult } from \"@wp-typia/block-runtime/validation\";',\n\t'import { tags } from \"typia\";',\n\t\"\",\n\t'export type { ValidationResult } from \"@wp-typia/block-runtime/validation\";',\n] as const satisfies readonly string[];\n\nfunction emitDocComment(\n\tdescription: AttributeDescription | undefined,\n\tindent = \"\",\n): string[] {\n\tif (!description) {\n\t\treturn [];\n\t}\n\n\treturn [\n\t\t`${indent}/**`,\n\t\t...description.lines.map((line) =>\n\t\t\tline.length === 0 ? `${indent} *` : `${indent} * ${line}`,\n\t\t),\n\t\t`${indent} */`,\n\t];\n}\n\nfunction emitInterface(definition: InterfaceDefinition): string[] {\n\tconst lines = [\n\t\t...emitDocComment(definition.description),\n\t\t`export interface ${definition.name} {`,\n\t];\n\n\tfor (const member of definition.members) {\n\t\tlines.push(...emitDocComment(member.description, \"\\t\"));\n\t\tlines.push(\n\t\t\t`\\t${member.name}${member.optional ? \"?\" : \"\"}: ${member.typeExpression};`,\n\t\t);\n\t}\n\n\tlines.push(\"}\");\n\treturn lines;\n}\n\nfunction emitTypesModule({\n\tpreambleLines,\n\tinterfaces,\n\ttypeAliases,\n}: {\n\tpreambleLines: string[];\n\tinterfaces: InterfaceDefinition[];\n\ttypeAliases: TypeAliasDefinition[];\n}): string {\n\tconst sections: string[] = [];\n\n\tif (preambleLines.length > 0) {\n\t\tsections.push(preambleLines.join(\"\\n\"));\n\t}\n\n\tfor (const definition of interfaces) {\n\t\tsections.push(emitInterface(definition).join(\"\\n\"));\n\t}\n\n\tif (typeAliases.length > 0) {\n\t\tsections.push(\n\t\t\ttypeAliases\n\t\t\t\t.map((alias) => `export type ${alias.name} = ${alias.value};`)\n\t\t\t\t.join(\"\\n\"),\n\t\t);\n\t}\n\n\treturn `${sections.join(\"\\n\\n\")}\\n`;\n}\n\n/**\n * Builds the generated attributes and validation type source for a basic block scaffold.\n *\n * @param variables Resolved scaffold template variables used to name emitted types.\n * @param attributes Emitted built-in attribute definitions that drive the interface members.\n * @returns TypeScript source for the basic block attribute and validation types.\n */\nexport function buildBasicTypesSource(\n\tvariables: ScaffoldTemplateVariables,\n\tattributes: readonly EmittedAttributeDefinition[],\n): string {\n\treturn emitTypesModule({\n\t\tpreambleLines: [...STANDARD_PREAMBLE_LINES],\n\t\tinterfaces: [\n\t\t\t{\n\t\t\t\tdescription: {\n\t\t\t\t\tlines: [\n\t\t\t\t\t\t\"Block attributes interface\",\n\t\t\t\t\t\t\"Typia tags define runtime validation rules\",\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t\tmembers: attributes.map((attribute) => ({\n\t\t\t\t\tdescription: attribute.description,\n\t\t\t\t\tname: attribute.name,\n\t\t\t\t\toptional: attribute.optional,\n\t\t\t\t\ttypeExpression: attribute.typeExpression,\n\t\t\t\t})),\n\t\t\t\tname: `${variables.pascalCase}Attributes`,\n\t\t\t},\n\t\t],\n\t\ttypeAliases: [\n\t\t\t{\n\t\t\t\tname: `${variables.pascalCase}ValidationResult`,\n\t\t\t\tvalue: `ValidationResult<${variables.pascalCase}Attributes>`,\n\t\t\t},\n\t\t],\n\t});\n}\n\n/**\n * Builds the generated attributes, context, and validation type source for an interactivity scaffold.\n *\n * @param variables Resolved scaffold template variables used to name emitted types.\n * @param attributes Emitted built-in attribute definitions that drive the interface members.\n * @returns TypeScript source for the interactivity block attribute, context, and validation types.\n */\nexport function buildInteractivityTypesSource(\n\tvariables: ScaffoldTemplateVariables,\n\tattributes: readonly EmittedAttributeDefinition[],\n): string {\n\treturn emitTypesModule({\n\t\tpreambleLines: [...STANDARD_PREAMBLE_LINES],\n\t\tinterfaces: [\n\t\t\t{\n\t\t\t\tmembers: attributes.map((attribute) => ({\n\t\t\t\t\tname: attribute.name,\n\t\t\t\t\toptional: attribute.optional,\n\t\t\t\t\ttypeExpression: attribute.typeExpression,\n\t\t\t\t})),\n\t\t\t\tname: `${variables.pascalCase}Attributes`,\n\t\t\t},\n\t\t\t{\n\t\t\t\tmembers: [\n\t\t\t\t\t{ name: \"clicks\", typeExpression: \"number\" },\n\t\t\t\t\t{ name: \"isAnimating\", typeExpression: \"boolean\" },\n\t\t\t\t\t{ name: \"isVisible\", typeExpression: \"boolean\" },\n\t\t\t\t\t{\n\t\t\t\t\t\tname: \"animation\",\n\t\t\t\t\t\ttypeExpression: '\"none\" | \"bounce\" | \"pulse\" | \"shake\" | \"flip\"',\n\t\t\t\t\t},\n\t\t\t\t\t{ name: \"maxClicks\", typeExpression: \"number\" },\n\t\t\t\t],\n\t\t\t\tname: `${variables.pascalCase}Context`,\n\t\t\t},\n\t\t],\n\t\ttypeAliases: [\n\t\t\t{\n\t\t\t\tname: `${variables.pascalCase}ValidationResult`,\n\t\t\t\tvalue: `ValidationResult<${variables.pascalCase}Attributes>`,\n\t\t\t},\n\t\t],\n\t});\n}\n\n/**\n * Builds the generated attributes, context, state, client, and validation type source for a persistence scaffold.\n *\n * @param variables Resolved scaffold template variables used to name emitted types.\n * @param attributes Emitted built-in attribute definitions that drive the interface members.\n * @returns TypeScript source for the persistence block runtime types.\n */\nexport function buildPersistenceTypesSource(\n\tvariables: ScaffoldTemplateVariables,\n\tattributes: readonly EmittedAttributeDefinition[],\n): string {\n\treturn emitTypesModule({\n\t\tpreambleLines: [...STANDARD_PREAMBLE_LINES],\n\t\tinterfaces: [\n\t\t\t{\n\t\t\t\tmembers: attributes.map((attribute) => ({\n\t\t\t\t\tname: attribute.name,\n\t\t\t\t\toptional: attribute.optional,\n\t\t\t\t\ttypeExpression: attribute.typeExpression,\n\t\t\t\t})),\n\t\t\t\tname: `${variables.pascalCase}Attributes`,\n\t\t\t},\n\t\t\t{\n\t\t\t\tmembers: [\n\t\t\t\t\t{ name: \"buttonLabel\", typeExpression: \"string\" },\n\t\t\t\t\t{ name: \"bootstrapReady\", typeExpression: \"boolean\" },\n\t\t\t\t\t{ name: \"canWrite\", typeExpression: \"boolean\" },\n\t\t\t\t\t{ name: \"count\", typeExpression: \"number\" },\n\t\t\t\t\t{ name: \"error\", typeExpression: \"string\" },\n\t\t\t\t\t{ name: \"isBootstrapping\", typeExpression: \"boolean\" },\n\t\t\t\t\t{ name: \"isLoading\", typeExpression: \"boolean\" },\n\t\t\t\t\t{ name: \"isSaving\", typeExpression: \"boolean\" },\n\t\t\t\t\t{\n\t\t\t\t\t\tname: \"persistencePolicy\",\n\t\t\t\t\t\ttypeExpression: '\"authenticated\" | \"public\"',\n\t\t\t\t\t},\n\t\t\t\t\t{ name: \"postId\", typeExpression: \"number\" },\n\t\t\t\t\t{ name: \"resourceKey\", typeExpression: \"string\" },\n\t\t\t\t\t{\n\t\t\t\t\t\tname: \"storage\",\n\t\t\t\t\t\ttypeExpression: '\"post-meta\" | \"custom-table\"',\n\t\t\t\t\t},\n\t\t\t\t\t{ name: \"isVisible\", typeExpression: \"boolean\" },\n\t\t\t\t\t{\n\t\t\t\t\t\tname: \"client\",\n\t\t\t\t\t\toptional: true,\n\t\t\t\t\t\ttypeExpression: `${variables.pascalCase}ClientState`,\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\tname: `${variables.pascalCase}Context`,\n\t\t\t},\n\t\t\t{\n\t\t\t\tmembers: [{ name: \"isHydrated\", typeExpression: \"boolean\" }],\n\t\t\t\tname: `${variables.pascalCase}State`,\n\t\t\t},\n\t\t\t{\n\t\t\t\tmembers: [\n\t\t\t\t\t{ name: \"bootstrapError\", typeExpression: \"string\" },\n\t\t\t\t\t{ name: \"writeExpiry\", typeExpression: \"number\" },\n\t\t\t\t\t{ name: \"writeNonce\", typeExpression: \"string\" },\n\t\t\t\t\t{ name: \"writeToken\", typeExpression: \"string\" },\n\t\t\t\t],\n\t\t\t\tname: `${variables.pascalCase}ClientState`,\n\t\t\t},\n\t\t],\n\t\ttypeAliases: [\n\t\t\t{\n\t\t\t\tname: `${variables.pascalCase}ValidationResult`,\n\t\t\t\tvalue: `ValidationResult<${variables.pascalCase}Attributes>`,\n\t\t\t},\n\t\t],\n\t});\n}\n\n/**\n * Builds the generated attributes and optional persistence runtime type source for a compound parent scaffold.\n *\n * @param variables Resolved scaffold template variables used to name emitted types.\n * @param attributes Emitted built-in attribute definitions that drive the interface members.\n * @returns TypeScript source for the compound parent runtime types.\n */\nexport function buildCompoundTypesSource(\n\tvariables: ScaffoldTemplateVariables,\n\tattributes: readonly EmittedAttributeDefinition[],\n): string {\n\tconst persistenceEnabled = variables.compoundPersistenceEnabled === \"true\";\n\n\treturn emitTypesModule({\n\t\tpreambleLines: persistenceEnabled\n\t\t\t? [...STANDARD_PREAMBLE_LINES]\n\t\t\t: [...VALIDATION_ONLY_PREAMBLE_LINES],\n\t\tinterfaces: [\n\t\t\t{\n\t\t\t\tmembers: attributes.map((attribute) => ({\n\t\t\t\t\tname: attribute.name,\n\t\t\t\t\toptional: attribute.optional,\n\t\t\t\t\ttypeExpression: attribute.typeExpression,\n\t\t\t\t})),\n\t\t\t\tname: `${variables.pascalCase}Attributes`,\n\t\t\t},\n\t\t\t...(persistenceEnabled\n\t\t\t\t? [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tmembers: [\n\t\t\t\t\t\t\t\t{ name: \"buttonLabel\", typeExpression: \"string\" },\n\t\t\t\t\t\t\t\t{ name: \"bootstrapReady\", typeExpression: \"boolean\" },\n\t\t\t\t\t\t\t\t{ name: \"canWrite\", typeExpression: \"boolean\" },\n\t\t\t\t\t\t\t\t{ name: \"count\", typeExpression: \"number\" },\n\t\t\t\t\t\t\t\t{ name: \"error\", typeExpression: \"string\" },\n\t\t\t\t\t\t\t\t{ name: \"isBootstrapping\", typeExpression: \"boolean\" },\n\t\t\t\t\t\t\t\t{ name: \"isLoading\", typeExpression: \"boolean\" },\n\t\t\t\t\t\t\t\t{ name: \"isSaving\", typeExpression: \"boolean\" },\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tname: \"persistencePolicy\",\n\t\t\t\t\t\t\t\t\ttypeExpression: '\"authenticated\" | \"public\"',\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{ name: \"postId\", typeExpression: \"number\" },\n\t\t\t\t\t\t\t\t{ name: \"resourceKey\", typeExpression: \"string\" },\n\t\t\t\t\t\t\t\t{ name: \"showCount\", typeExpression: \"boolean\" },\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tname: \"storage\",\n\t\t\t\t\t\t\t\t\ttypeExpression: '\"post-meta\" | \"custom-table\"',\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tname: \"client\",\n\t\t\t\t\t\t\t\t\toptional: true,\n\t\t\t\t\t\t\t\t\ttypeExpression: `${variables.pascalCase}ClientState`,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\tname: `${variables.pascalCase}Context`,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tmembers: [{ name: \"isHydrated\", typeExpression: \"boolean\" }],\n\t\t\t\t\t\t\tname: `${variables.pascalCase}State`,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tmembers: [\n\t\t\t\t\t\t\t\t{ name: \"bootstrapError\", typeExpression: \"string\" },\n\t\t\t\t\t\t\t\t{ name: \"writeExpiry\", typeExpression: \"number\" },\n\t\t\t\t\t\t\t\t{ name: \"writeNonce\", typeExpression: \"string\" },\n\t\t\t\t\t\t\t\t{ name: \"writeToken\", typeExpression: \"string\" },\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\tname: `${variables.pascalCase}ClientState`,\n\t\t\t\t\t\t},\n\t\t\t\t\t]\n\t\t\t\t: []),\n\t\t],\n\t\ttypeAliases: [\n\t\t\t{\n\t\t\t\tname: `${variables.pascalCase}ValidationResult`,\n\t\t\t\tvalue: `ValidationResult<${variables.pascalCase}Attributes>`,\n\t\t\t},\n\t\t],\n\t});\n}\n\n/**\n * Builds the generated attributes and validation type source for a compound child scaffold.\n *\n * @param variables Resolved scaffold template variables used to name emitted types.\n * @param attributes Emitted built-in attribute definitions that drive the interface members.\n * @returns TypeScript source for the compound child attribute and validation types.\n */\nexport function buildCompoundChildTypesSource(\n\tvariables: ScaffoldTemplateVariables,\n\tattributes: readonly EmittedAttributeDefinition[],\n): string {\n\treturn emitTypesModule({\n\t\tpreambleLines: [...VALIDATION_ONLY_PREAMBLE_LINES],\n\t\tinterfaces: [\n\t\t\t{\n\t\t\t\tmembers: attributes.map((attribute) => ({\n\t\t\t\t\tname: attribute.name,\n\t\t\t\t\toptional: attribute.optional,\n\t\t\t\t\ttypeExpression: attribute.typeExpression,\n\t\t\t\t})),\n\t\t\t\tname: `${variables.pascalCase}ItemAttributes`,\n\t\t\t},\n\t\t],\n\t\ttypeAliases: [\n\t\t\t{\n\t\t\t\tname: `${variables.pascalCase}ItemValidationResult`,\n\t\t\t\tvalue: `ValidationResult<${variables.pascalCase}ItemAttributes>`,\n\t\t\t},\n\t\t],\n\t});\n}\n",
|
|
68
|
-
"
|
|
68
|
+
"export const SCAFFOLD_TEMPLATE_VARIABLE_GROUPS = Symbol(\n\t\"wp-typia.scaffold-template-variable-groups\",\n);\n\nexport type ScaffoldTemplateFamily =\n\t| \"basic\"\n\t| \"interactivity\"\n\t| \"persistence\"\n\t| \"compound\"\n\t| \"query-loop\"\n\t| \"external\";\n\nexport interface ScaffoldSharedTemplateVariableGroup {\n\tauthor: string;\n\tblockMetadataVersion: string;\n\tcategory: string;\n\tcssClassName: string;\n\tdescription: string;\n\tdescriptionJson: string;\n\tfrontendCssClassName: string;\n\ticon: string;\n\tkeyword: string;\n\tnamespace: string;\n\tpascalCase: string;\n\tphpPrefix: string;\n\tphpPrefixUpper: string;\n\tslug: string;\n\tslugCamelCase: string;\n\tslugKebabCase: string;\n\tslugSnakeCase: string;\n\ttextDomain: string;\n\ttitle: string;\n\ttitleCase: string;\n\ttitleJson: string;\n\tversions: {\n\t\tapiClient: string;\n\t\tblockRuntime: string;\n\t\tblockTypes: string;\n\t\tprojectTools: string;\n\t\trest: string;\n\t};\n}\n\nexport interface ScaffoldAlternateRenderTargetVariableGroup {\n\tcsv: string;\n\tenabled: boolean;\n\thasEmail: boolean;\n\thasMjml: boolean;\n\thasPlainText: boolean;\n\tjson: string;\n\ttargets: readonly string[];\n}\n\nexport interface DisabledScaffoldCompoundVariableGroup {\n\tenabled: false;\n\tpersistenceEnabled: false;\n}\n\nexport interface EnabledScaffoldCompoundVariableGroup {\n\tchild: {\n\t\tcategory: string;\n\t\tcssClassName: string;\n\t\ticon: string;\n\t\ttitle: string;\n\t\ttitleJson: string;\n\t};\n\tenabled: true;\n\tinnerBlocks: {\n\t\tdescription: string;\n\t\tdirectInsert: boolean;\n\t\tlabel: string;\n\t\torientation: \"\" | \"horizontal\" | \"vertical\";\n\t\torientationExpression: string;\n\t\tpreset: string;\n\t\ttemplateLockExpression: string;\n\t};\n\tpersistenceEnabled: boolean;\n}\n\nexport type ScaffoldCompoundVariableGroup =\n\t| DisabledScaffoldCompoundVariableGroup\n\t| EnabledScaffoldCompoundVariableGroup;\n\nexport interface DisabledScaffoldPersistenceVariableGroup {\n\tenabled: false;\n\tscope: \"none\";\n}\n\nexport interface EnabledScaffoldPersistenceVariableGroup {\n\tauth: {\n\t\tbootstrapCredentialDeclarations: string;\n\t\tdescriptionJson: string;\n\t\tintent: \"authenticated\" | \"public-write-protected\";\n\t\tisAuthenticated: boolean;\n\t\tisPublic: boolean;\n\t\tmechanism: \"public-signed-token\" | \"rest-nonce\";\n\t\tmode: \"authenticated-rest-nonce\" | \"public-signed-token\";\n\t\tpublicWriteRequestIdDeclaration: string;\n\t};\n\tdataStorageMode: \"custom-table\" | \"post-meta\";\n\tenabled: true;\n\tpolicy: \"authenticated\" | \"public\";\n\tscope: \"compound-parent\" | \"single\";\n}\n\nexport type ScaffoldPersistenceVariableGroup =\n\t| DisabledScaffoldPersistenceVariableGroup\n\t| EnabledScaffoldPersistenceVariableGroup;\n\nexport interface DisabledScaffoldQueryLoopVariableGroup {\n\tenabled: false;\n}\n\nexport interface EnabledScaffoldQueryLoopVariableGroup {\n\tallowedControls: readonly string[];\n\tallowedControlsJson: string;\n\tenabled: true;\n\tpostType: string;\n\tpostTypeJson: string;\n\tvariationNamespace: string;\n\tvariationNamespaceJson: string;\n}\n\nexport type ScaffoldQueryLoopVariableGroup =\n\t| DisabledScaffoldQueryLoopVariableGroup\n\t| EnabledScaffoldQueryLoopVariableGroup;\n\ninterface ScaffoldTemplateVariableGroupsBase {\n\talternateRenderTargets: ScaffoldAlternateRenderTargetVariableGroup;\n\tshared: ScaffoldSharedTemplateVariableGroup;\n\ttemplate: {\n\t\tdescription: string;\n\t};\n}\n\ntype DisabledTemplateFamilyGroups<\n\tTFamily extends \"basic\" | \"interactivity\" | \"external\",\n> = ScaffoldTemplateVariableGroupsBase & {\n\tcompound: DisabledScaffoldCompoundVariableGroup;\n\tpersistence: DisabledScaffoldPersistenceVariableGroup;\n\tqueryLoop: DisabledScaffoldQueryLoopVariableGroup;\n\ttemplateFamily: TFamily;\n};\n\nexport type BasicScaffoldTemplateVariableGroups =\n\tDisabledTemplateFamilyGroups<\"basic\">;\n\nexport type InteractivityScaffoldTemplateVariableGroups =\n\tDisabledTemplateFamilyGroups<\"interactivity\">;\n\nexport interface PersistenceScaffoldTemplateVariableGroups\n\textends ScaffoldTemplateVariableGroupsBase {\n\tcompound: DisabledScaffoldCompoundVariableGroup;\n\tpersistence: EnabledScaffoldPersistenceVariableGroup & {\n\t\tscope: \"single\";\n\t};\n\tqueryLoop: DisabledScaffoldQueryLoopVariableGroup;\n\ttemplateFamily: \"persistence\";\n}\n\nexport interface CompoundScaffoldTemplateVariableGroups\n\textends ScaffoldTemplateVariableGroupsBase {\n\tcompound: EnabledScaffoldCompoundVariableGroup;\n\tpersistence:\n\t\t| DisabledScaffoldPersistenceVariableGroup\n\t\t| (EnabledScaffoldPersistenceVariableGroup & {\n\t\t\t\tscope: \"compound-parent\";\n\t\t });\n\tqueryLoop: DisabledScaffoldQueryLoopVariableGroup;\n\ttemplateFamily: \"compound\";\n}\n\nexport interface QueryLoopScaffoldTemplateVariableGroups\n\textends ScaffoldTemplateVariableGroupsBase {\n\tcompound: DisabledScaffoldCompoundVariableGroup;\n\tpersistence: DisabledScaffoldPersistenceVariableGroup;\n\tqueryLoop: EnabledScaffoldQueryLoopVariableGroup;\n\ttemplateFamily: \"query-loop\";\n}\n\nexport type ExternalScaffoldTemplateVariableGroups =\n\tDisabledTemplateFamilyGroups<\"external\">;\n\nexport type ScaffoldTemplateVariableGroups =\n\t| BasicScaffoldTemplateVariableGroups\n\t| InteractivityScaffoldTemplateVariableGroups\n\t| PersistenceScaffoldTemplateVariableGroups\n\t| CompoundScaffoldTemplateVariableGroups\n\t| QueryLoopScaffoldTemplateVariableGroups\n\t| ExternalScaffoldTemplateVariableGroups;\n\nexport interface ScaffoldTemplateVariableGroupsCarrier {\n\treadonly [SCAFFOLD_TEMPLATE_VARIABLE_GROUPS]: ScaffoldTemplateVariableGroups;\n}\n\nexport type CompoundScaffoldTemplateVariablesLike =\n\tScaffoldTemplateVariableGroupsCarrier & {\n\t\tslugKebabCase: string;\n\t};\n\nexport type PersistenceScaffoldTemplateVariablesLike =\n\tScaffoldTemplateVariableGroupsCarrier & {\n\t\tnamespace: string;\n\t\tpascalCase: string;\n\t\tslugKebabCase: string;\n\t\ttitle: string;\n\t};\n\nexport function attachScaffoldTemplateVariableGroups<\n\tTVariables extends Record<string, string>,\n>(\n\tvariables: TVariables,\n\tgroups: ScaffoldTemplateVariableGroups,\n): TVariables & ScaffoldTemplateVariableGroupsCarrier {\n\tObject.defineProperty(variables, SCAFFOLD_TEMPLATE_VARIABLE_GROUPS, {\n\t\tconfigurable: false,\n\t\tenumerable: false,\n\t\tvalue: groups,\n\t\twritable: false,\n\t});\n\n\treturn variables as TVariables & ScaffoldTemplateVariableGroupsCarrier;\n}\n\nexport function getScaffoldTemplateVariableGroups(\n\tvariables: ScaffoldTemplateVariableGroupsCarrier,\n): ScaffoldTemplateVariableGroups {\n\treturn variables[SCAFFOLD_TEMPLATE_VARIABLE_GROUPS];\n}\n",
|
|
69
|
+
"import type { ManifestDocument } from \"./migration-types.js\";\nimport type { ScaffoldTemplateVariables } from \"./scaffold.js\";\nimport type { BuiltInTemplateId } from \"./template-registry.js\";\nimport {\n\tbuildBasicAttributes,\n\tbuildBlockJsonAttributes,\n\tbuildCompoundChildAttributes,\n\tbuildCompoundParentAttributes,\n\tbuildInteractivityAttributes,\n\tbuildManifestDocument,\n\tbuildPersistenceAttributes,\n\tDEFAULT_COMPOUND_CHILD_BODY_PLACEHOLDER,\n} from \"./built-in-block-artifact-documents.js\";\nimport {\n\tbuildBasicTypesSource,\n\tbuildCompoundChildTypesSource,\n\tbuildCompoundTypesSource,\n\tbuildInteractivityTypesSource,\n\tbuildPersistenceTypesSource,\n} from \"./built-in-block-artifact-types.js\";\nimport { getScaffoldTemplateVariableGroups } from \"./scaffold-template-variable-groups.js\";\n\nexport interface BuiltInBlockArtifact {\n\tblockJsonDocument: Record<string, unknown>;\n\tmanifestDocument: ManifestDocument;\n\trelativeDir: string;\n\ttypesSource: string;\n}\n\nfunction stringifyBlockJsonDocument(document: Record<string, unknown>): string {\n\treturn `${JSON.stringify(document, null, \"\\t\")}\\n`;\n}\n\nfunction buildBasicArtifact(\n\tvariables: ScaffoldTemplateVariables,\n): BuiltInBlockArtifact {\n\tconst attributes = buildBasicAttributes();\n\treturn {\n\t\tblockJsonDocument: {\n\t\t\t$schema: \"https://schemas.wp.org/trunk/block.json\",\n\t\t\tapiVersion: 3,\n\t\t\tname: `${variables.namespace}/${variables.slug}`,\n\t\t\tversion: variables.blockMetadataVersion,\n\t\t\ttitle: variables.title,\n\t\t\tcategory: variables.category,\n\t\t\ticon: variables.icon,\n\t\t\tdescription: variables.description,\n\t\t\tkeywords: [variables.keyword, \"typia\", \"block\"],\n\t\t\texample: {\n\t\t\t\tattributes: {\n\t\t\t\t\tcontent: \"Example content\",\n\t\t\t\t\talignment: \"center\",\n\t\t\t\t\tisVisible: true,\n\t\t\t\t},\n\t\t\t},\n\t\t\tsupports: {\n\t\t\t\thtml: false,\n\t\t\t},\n\t\t\ttextdomain: variables.textDomain,\n\t\t\teditorScript: \"file:./index.js\",\n\t\t\teditorStyle: \"file:./index.css\",\n\t\t\tstyle: \"file:./style-index.css\",\n\t\t\tattributes: buildBlockJsonAttributes(attributes),\n\t\t},\n\t\tmanifestDocument: buildManifestDocument(`${variables.pascalCase}Attributes`, attributes),\n\t\trelativeDir: \"src\",\n\t\ttypesSource: buildBasicTypesSource(variables, attributes),\n\t};\n}\n\nfunction buildInteractivityArtifact(\n\tvariables: ScaffoldTemplateVariables,\n): BuiltInBlockArtifact {\n\tconst attributes = buildInteractivityAttributes(variables);\n\treturn {\n\t\tblockJsonDocument: {\n\t\t\t$schema: \"https://schemas.wp.org/trunk/block.json\",\n\t\t\tapiVersion: 3,\n\t\t\tname: `${variables.namespace}/${variables.slugKebabCase}`,\n\t\t\tversion: variables.blockMetadataVersion,\n\t\t\ttitle: variables.title,\n\t\t\tcategory: variables.category,\n\t\t\ticon: variables.icon,\n\t\t\tdescription: variables.description,\n\t\t\texample: {},\n\t\t\tsupports: {\n\t\t\t\thtml: false,\n\t\t\t\talign: true,\n\t\t\t\tanchor: true,\n\t\t\t\tclassName: true,\n\t\t\t\tinteractivity: true,\n\t\t\t},\n\t\t\tattributes: buildBlockJsonAttributes(attributes),\n\t\t\ttextdomain: variables.textDomain,\n\t\t\teditorScript: \"file:./index.js\",\n\t\t\teditorStyle: \"file:./index.css\",\n\t\t\tstyle: \"file:./style-index.css\",\n\t\t\tviewScriptModule: \"file:./interactivity.js\",\n\t\t},\n\t\tmanifestDocument: buildManifestDocument(`${variables.pascalCase}Attributes`, attributes),\n\t\trelativeDir: \"src\",\n\t\ttypesSource: buildInteractivityTypesSource(variables, attributes),\n\t};\n}\n\nfunction buildPersistenceArtifact(\n\tvariables: ScaffoldTemplateVariables,\n): BuiltInBlockArtifact {\n\tconst attributes = buildPersistenceAttributes(variables);\n\treturn {\n\t\tblockJsonDocument: {\n\t\t\t$schema: \"https://schemas.wp.org/trunk/block.json\",\n\t\t\tapiVersion: 3,\n\t\t\tname: `${variables.namespace}/${variables.slugKebabCase}`,\n\t\t\tversion: variables.blockMetadataVersion,\n\t\t\ttitle: variables.title,\n\t\t\tcategory: variables.category,\n\t\t\ticon: variables.icon,\n\t\t\tdescription: variables.description,\n\t\t\texample: {},\n\t\t\tsupports: {\n\t\t\t\thtml: false,\n\t\t\t\talign: true,\n\t\t\t\tanchor: true,\n\t\t\t\tclassName: true,\n\t\t\t\tinteractivity: true,\n\t\t\t},\n\t\t\tattributes: buildBlockJsonAttributes(attributes),\n\t\t\ttextdomain: variables.textDomain,\n\t\t\teditorScript: \"file:./index.js\",\n\t\t\tstyle: \"file:./style-index.css\",\n\t\t\tviewScriptModule: \"file:./interactivity.js\",\n\t\t\trender: \"file:./render.php\",\n\t\t},\n\t\tmanifestDocument: buildManifestDocument(`${variables.pascalCase}Attributes`, attributes),\n\t\trelativeDir: \"src\",\n\t\ttypesSource: buildPersistenceTypesSource(variables, attributes),\n\t};\n}\n\nfunction buildCompoundParentArtifact(\n\tvariables: ScaffoldTemplateVariables,\n): BuiltInBlockArtifact {\n\tconst attributes = buildCompoundParentAttributes(variables);\n\tconst compoundGroup = getScaffoldTemplateVariableGroups(variables).compound;\n\tconst persistenceEnabled =\n\t\tcompoundGroup.enabled && compoundGroup.persistenceEnabled;\n\n\treturn {\n\t\tblockJsonDocument: {\n\t\t\t$schema: \"https://schemas.wp.org/trunk/block.json\",\n\t\t\tapiVersion: 3,\n\t\t\tname: `${variables.namespace}/${variables.slugKebabCase}`,\n\t\t\tversion: variables.blockMetadataVersion,\n\t\t\ttitle: variables.title,\n\t\t\tcategory: variables.category,\n\t\t\ticon: variables.icon,\n\t\t\tdescription: variables.description,\n\t\t\texample: {},\n\t\t\tallowedBlocks: [`${variables.namespace}/${variables.slugKebabCase}-item`],\n\t\t\tsupports: persistenceEnabled\n\t\t\t\t? {\n\t\t\t\t\thtml: false,\n\t\t\t\t\tanchor: true,\n\t\t\t\t\tclassName: true,\n\t\t\t\t\tinteractivity: true,\n\t\t\t\t}\n\t\t\t\t: {\n\t\t\t\t\thtml: false,\n\t\t\t\t\tanchor: true,\n\t\t\t\t\tclassName: true,\n\t\t\t\t},\n\t\t\tattributes: buildBlockJsonAttributes(attributes),\n\t\t\ttextdomain: variables.textDomain,\n\t\t\teditorScript: \"file:./index.js\",\n\t\t\tstyle: \"file:./style-index.css\",\n\t\t\t...(persistenceEnabled\n\t\t\t\t? {\n\t\t\t\t\tviewScriptModule: \"file:./interactivity.js\",\n\t\t\t\t\trender: \"file:./render.php\",\n\t\t\t\t}\n\t\t\t\t: {}),\n\t\t},\n\t\tmanifestDocument: buildManifestDocument(`${variables.pascalCase}Attributes`, attributes),\n\t\trelativeDir: `src/blocks/${variables.slugKebabCase}`,\n\t\ttypesSource: buildCompoundTypesSource(variables, attributes),\n\t};\n}\n\nfunction buildCompoundChildArtifact(\n\tvariables: ScaffoldTemplateVariables,\n\tbodyPlaceholder = DEFAULT_COMPOUND_CHILD_BODY_PLACEHOLDER,\n): BuiltInBlockArtifact {\n\tconst attributes = buildCompoundChildAttributes(\n\t\tvariables.compoundChildTitle,\n\t\tvariables.compoundChildCssClassName,\n\t\tbodyPlaceholder,\n\t);\n\treturn {\n\t\tblockJsonDocument: {\n\t\t\t$schema: \"https://schemas.wp.org/trunk/block.json\",\n\t\t\tapiVersion: 3,\n\t\t\tname: `${variables.namespace}/${variables.slugKebabCase}-item`,\n\t\t\tversion: variables.blockMetadataVersion,\n\t\t\ttitle: variables.compoundChildTitle,\n\t\t\tcategory: variables.compoundChildCategory,\n\t\t\ticon: variables.compoundChildIcon,\n\t\t\tdescription: `Internal item block used by ${variables.title}.`,\n\t\t\tparent: [`${variables.namespace}/${variables.slugKebabCase}`],\n\t\t\texample: {},\n\t\t\tsupports: {\n\t\t\t\thtml: false,\n\t\t\t\tinserter: false,\n\t\t\t\treusable: false,\n\t\t\t},\n\t\t\tattributes: buildBlockJsonAttributes(attributes),\n\t\t\ttextdomain: variables.textDomain,\n\t\t\teditorScript: \"file:./index.js\",\n\t\t},\n\t\tmanifestDocument: buildManifestDocument(`${variables.pascalCase}ItemAttributes`, attributes),\n\t\trelativeDir: `src/blocks/${variables.slugKebabCase}-item`,\n\t\ttypesSource: buildCompoundChildTypesSource(variables, attributes),\n\t};\n}\n\n/**\n * Builds a starter manifest document for a generated compound child block.\n *\n * @param childTypeName TypeScript source type name for the child manifest.\n * @param childTitle Default title used by the child block.\n * @param bodyPlaceholder Optional placeholder used for the child body field.\n * @returns Starter manifest metadata for the compound child block.\n */\nexport function buildCompoundChildStarterManifestDocument(\n\tchildTypeName: string,\n\tchildTitle: string,\n\tbodyPlaceholder = DEFAULT_COMPOUND_CHILD_BODY_PLACEHOLDER,\n): ManifestDocument {\n\tconst attributes = buildCompoundChildAttributes(\n\t\tchildTitle,\n\t\tnull,\n\t\tbodyPlaceholder,\n\t);\n\treturn buildManifestDocument(childTypeName, attributes);\n}\n\n/**\n * Generates typed structural artifacts for a built-in block scaffold.\n *\n * @param options.templateId Built-in template family to emit.\n * @param options.variables Resolved scaffold template variables.\n * @returns Structural artifacts for the built-in block, including compound\n * parent and child outputs when applicable.\n */\nexport function buildBuiltInBlockArtifacts({\n\ttemplateId,\n\tvariables,\n}: {\n\ttemplateId: BuiltInTemplateId;\n\tvariables: ScaffoldTemplateVariables;\n}): BuiltInBlockArtifact[] {\n\tif (templateId === \"basic\") {\n\t\treturn [buildBasicArtifact(variables)];\n\t}\n\n\tif (templateId === \"interactivity\") {\n\t\treturn [buildInteractivityArtifact(variables)];\n\t}\n\n\tif (templateId === \"persistence\") {\n\t\treturn [buildPersistenceArtifact(variables)];\n\t}\n\n\tif (templateId === \"compound\") {\n\t\treturn [\n\t\t\tbuildCompoundParentArtifact(variables),\n\t\t\tbuildCompoundChildArtifact(variables),\n\t\t];\n\t}\n\n\treturn [];\n}\n\n/**\n * Serializes a generated `block.json` document using scaffold formatting.\n *\n * @param document Structured `block.json` document.\n * @returns Pretty-printed JSON with a trailing newline.\n */\nexport function stringifyBuiltInBlockJsonDocument(\n\tdocument: Record<string, unknown>,\n): string {\n\treturn stringifyBlockJsonDocument(document);\n}\n",
|
|
69
70
|
"/**\n * Scaffold-time starter manifest builders for generated projects.\n *\n * These helpers now reuse the Phase 2 built-in artifact model so generated\n * `types.ts`, `block.json`, and starter `typia.manifest.json` all share the\n * same attribute metadata source of truth.\n */\nimport type { ManifestDocument } from \"./migration-types.js\";\nimport type { ScaffoldTemplateVariables } from \"./scaffold.js\";\n\nimport {\n\tbuildBuiltInBlockArtifacts,\n\tbuildCompoundChildStarterManifestDocument as buildCompoundChildStarterManifestFromArtifacts,\n} from \"./built-in-block-artifacts.js\";\n\n/**\n * Builds the starter manifest used by generated compound child blocks.\n */\nexport function buildCompoundChildStarterManifestDocument(\n\tchildTypeName: string,\n\tchildTitle: string,\n\tbodyPlaceholder?: string,\n): ManifestDocument {\n\treturn buildCompoundChildStarterManifestFromArtifacts(\n\t\tchildTypeName,\n\t\tchildTitle,\n\t\tbodyPlaceholder,\n\t);\n}\n\n/**\n * Returns the starter manifest files that should be seeded for a built-in\n * template before the first sync.\n */\nexport function getStarterManifestFiles(\n\ttemplateId: string,\n\tvariables: ScaffoldTemplateVariables,\n): Array<{\n\tdocument: ManifestDocument;\n\trelativePath: string;\n}> {\n\tif (\n\t\ttemplateId !== \"basic\" &&\n\t\ttemplateId !== \"interactivity\" &&\n\t\ttemplateId !== \"persistence\" &&\n\t\ttemplateId !== \"compound\"\n\t) {\n\t\treturn [];\n\t}\n\n\treturn buildBuiltInBlockArtifacts({\n\t\ttemplateId,\n\t\tvariables,\n\t}).map((artifact) => ({\n\t\tdocument: artifact.manifestDocument,\n\t\trelativePath: `${artifact.relativeDir}/typia.manifest.json`,\n\t}));\n}\n\n/**\n * Serializes a starter manifest using the generated-project JSON formatting\n * convention.\n */\nexport function stringifyStarterManifest(document: ManifestDocument): string {\n\treturn `${JSON.stringify(document, null, \"\\t\")}\\n`;\n}\n",
|
|
70
71
|
"import fs from \"node:fs\";\nimport path from \"node:path\";\n\n/**\n * Normalize one optional CLI string flag by trimming whitespace and collapsing\n * empty strings to `undefined`.\n *\n * @param value Raw CLI value before normalization.\n * @returns The trimmed string when present, otherwise `undefined`.\n */\nexport function normalizeOptionalCliString(value?: string): string | undefined {\n\tif (typeof value !== \"string\") {\n\t\treturn undefined;\n\t}\n\n\tconst trimmed = value.trim();\n\treturn trimmed.length > 0 ? trimmed : undefined;\n}\n\nfunction looksLikeLocalCliPath(value: string): boolean {\n\treturn (\n\t\tpath.isAbsolute(value) ||\n\t\tvalue.startsWith(\"./\") ||\n\t\tvalue.startsWith(\"../\") ||\n\t\tvalue.startsWith(\".\\\\\") ||\n\t\tvalue.startsWith(\"..\\\\\")\n\t);\n}\n\n/**\n * Resolve one CLI path flag relative to the caller when it is expressed as a\n * local filesystem path.\n *\n * Non-local values such as npm package specs or `github:` locators pass\n * through unchanged. Local relative and absolute paths are resolved against the\n * provided `cwd` and must exist on disk.\n *\n * @param options Path resolution inputs for one CLI flag.\n * @param options.cwd Caller working directory used for relative path\n * resolution.\n * @param options.label Human-readable option label used in thrown errors.\n * @param options.value Raw CLI value before trimming and path resolution.\n * @returns The normalized string, or `undefined` when the option was omitted.\n * @throws When a local-looking path resolves to a missing filesystem entry.\n */\nexport function resolveLocalCliPathOption(options: {\n\tcwd: string;\n\tlabel: string;\n\tvalue?: string;\n}): string | undefined {\n\tconst normalizedValue = normalizeOptionalCliString(options.value);\n\tif (!normalizedValue || !looksLikeLocalCliPath(normalizedValue)) {\n\t\treturn normalizedValue;\n\t}\n\n\tconst resolvedPath = path.resolve(options.cwd, normalizedValue);\n\tif (!fs.existsSync(resolvedPath)) {\n\t\tthrow new Error(\n\t\t\t`\\`${options.label}\\` path does not exist: ${resolvedPath}. Check the path relative to ${options.cwd}.`,\n\t\t);\n\t}\n\n\treturn resolvedPath;\n}\n\n/**\n * Validate the built-in template composition rule for external layers.\n *\n * @param options External layer CLI options after normalization.\n * @param options.externalLayerId Optional selected layer id.\n * @param options.externalLayerSource Optional layer source locator or path.\n * @throws When `externalLayerId` is provided without `externalLayerSource`.\n */\nexport function assertExternalLayerCompositionOptions(options: {\n\texternalLayerId?: string;\n\texternalLayerSource?: string;\n}): void {\n\tif (options.externalLayerId && !options.externalLayerSource) {\n\t\tthrow new Error(\n\t\t\t\"externalLayerId requires externalLayerSource when composing built-in template layers.\",\n\t\t);\n\t}\n}\n\n/**\n * Build the shared error message used when a built-in template receives a\n * `--variant` override.\n *\n * @param options Built-in template context.\n * @param options.templateId Built-in template id that rejected the variant.\n * @param options.variant User-supplied variant override.\n * @returns The canonical user-facing error message.\n */\nexport function createBuiltInVariantErrorMessage(options: {\n\ttemplateId: string;\n\tvariant: string;\n}): string {\n\treturn `--variant is only supported for official external template configs. Received variant \"${options.variant}\" for built-in template \"${options.templateId}\".`;\n}\n\n/**\n * Reject unsupported `--variant` usage for built-in templates.\n *\n * @param options Built-in template validation context.\n * @param options.templateId Built-in template id being scaffolded.\n * @param options.variant Optional variant override from CLI flags.\n * @throws When a built-in template receives any explicit `--variant` value.\n */\nexport function assertBuiltInTemplateVariantAllowed(options: {\n\ttemplateId: string;\n\tvariant?: string;\n}): void {\n\tif (!options.variant) {\n\t\treturn;\n\t}\n\n\tthrow new Error(\n\t\tcreateBuiltInVariantErrorMessage({\n\t\t\ttemplateId: options.templateId,\n\t\t\tvariant: options.variant,\n\t\t}),\n\t);\n}\n",
|
|
71
72
|
"export const ALTERNATE_RENDER_TARGET_IDS = [\n\t\"email\",\n\t\"mjml\",\n\t\"plain-text\",\n] as const;\n\nexport type AlternateRenderTargetId =\n\t(typeof ALTERNATE_RENDER_TARGET_IDS)[number];\n\nexport function isAlternateRenderTargetId(\n\tvalue: string,\n): value is AlternateRenderTargetId {\n\treturn (ALTERNATE_RENDER_TARGET_IDS as readonly string[]).includes(value);\n}\n\nexport function parseAlternateRenderTargets(\n\tvalue?: string,\n): AlternateRenderTargetId[] {\n\tif (typeof value !== \"string\") {\n\t\treturn [];\n\t}\n\n\tconst normalized = value\n\t\t.split(\",\")\n\t\t.map((entry) => entry.trim().toLowerCase())\n\t\t.filter(Boolean);\n\n\tif (normalized.length === 0) {\n\t\treturn [];\n\t}\n\n\tconst deduped = Array.from(new Set(normalized));\n\tconst invalid = deduped.filter((entry) => !isAlternateRenderTargetId(entry));\n\tif (invalid.length > 0) {\n\t\tthrow new Error(\n\t\t\t`Unsupported alternate render target${invalid.length > 1 ? \"s\" : \"\"} \"${invalid.join(\", \")}\". Expected one of: ${ALTERNATE_RENDER_TARGET_IDS.join(\", \")}.`,\n\t\t);\n\t}\n\n\treturn deduped as AlternateRenderTargetId[];\n}\n\nexport function formatAlternateRenderTargets(\n\ttargets: readonly AlternateRenderTargetId[],\n): string {\n\treturn targets.join(\", \");\n}\n",
|
|
72
73
|
"/**\n * Stable preset ids exposed to scaffold and UI consumers for compound\n * InnerBlocks authoring behavior.\n */\nexport const COMPOUND_INNER_BLOCKS_PRESET_IDS = [\n\t\"freeform\",\n\t\"ordered\",\n\t\"horizontal\",\n\t\"locked-structure\",\n] as const;\n\nexport type CompoundInnerBlocksPresetId =\n\t(typeof COMPOUND_INNER_BLOCKS_PRESET_IDS)[number];\n\n/**\n * Default preset applied when callers do not provide an explicit compound\n * InnerBlocks mode.\n */\nexport const DEFAULT_COMPOUND_INNER_BLOCKS_PRESET_ID: CompoundInnerBlocksPresetId =\n\t\"freeform\";\n\nexport type CompoundInnerBlocksOrientation = \"horizontal\" | \"vertical\";\nexport type CompoundInnerBlocksTemplateLock = false | \"insert\" | \"all\";\n\n/**\n * Runtime-facing description of one compound InnerBlocks preset.\n */\nexport interface CompoundInnerBlocksPresetDefinition {\n\tdescription: string;\n\tdirectInsert: boolean;\n\tlabel: string;\n\torientation?: CompoundInnerBlocksOrientation;\n\ttemplateLock: CompoundInnerBlocksTemplateLock;\n}\n\n/**\n * Canonical preset registry used by the CLI, generated scaffolds, and TUI\n * forms.\n */\nexport const COMPOUND_INNER_BLOCKS_PRESET_REGISTRY = {\n\tfreeform: {\n\t\tdescription:\n\t\t\t\"Unlocked nested authoring with the default inserter and starter child template.\",\n\t\tdirectInsert: false,\n\t\tlabel: \"freeform\",\n\t\torientation: \"vertical\",\n\t\ttemplateLock: false,\n\t},\n\tordered: {\n\t\tdescription:\n\t\t\t\"Vertical ordered flow that keeps starter structure fixed while allowing new sibling inserts.\",\n\t\tdirectInsert: true,\n\t\tlabel: \"ordered\",\n\t\torientation: \"vertical\",\n\t\ttemplateLock: \"insert\",\n\t},\n\thorizontal: {\n\t\tdescription:\n\t\t\t\"Horizontal nested layout with one-click direct inserts for row or tab style containers.\",\n\t\tdirectInsert: true,\n\t\tlabel: \"horizontal\",\n\t\torientation: \"horizontal\",\n\t\ttemplateLock: false,\n\t},\n\t\"locked-structure\": {\n\t\tdescription:\n\t\t\t\"Locked starter structure for guided document shells where authors should only edit seeded children.\",\n\t\tdirectInsert: false,\n\t\tlabel: \"locked-structure\",\n\t\torientation: \"vertical\",\n\t\ttemplateLock: \"all\",\n\t},\n} as const satisfies Record<\n\tCompoundInnerBlocksPresetId,\n\tCompoundInnerBlocksPresetDefinition\n>;\n\n/**\n * Returns whether a string matches one of the supported compound preset ids.\n */\nexport function isCompoundInnerBlocksPresetId(\n\tvalue: string,\n): value is CompoundInnerBlocksPresetId {\n\treturn (\n\t\tCOMPOUND_INNER_BLOCKS_PRESET_IDS as readonly string[]\n\t).includes(value);\n}\n\n/**\n * Parses a raw CLI or config value into a supported preset id.\n *\n * Returns `undefined` for non-string or empty input, and throws when the input\n * is a non-empty unsupported preset id.\n */\nexport function parseCompoundInnerBlocksPreset(\n\tvalue?: string,\n): CompoundInnerBlocksPresetId | undefined {\n\tif (typeof value !== \"string\") {\n\t\treturn undefined;\n\t}\n\n\tconst normalizedValue = value.trim();\n\tif (normalizedValue.length === 0) {\n\t\treturn undefined;\n\t}\n\n\tif (!isCompoundInnerBlocksPresetId(normalizedValue)) {\n\t\tthrow new Error(\n\t\t\t`Unsupported InnerBlocks preset \"${value}\". Expected one of: ${COMPOUND_INNER_BLOCKS_PRESET_IDS.join(\", \")}.`,\n\t\t);\n\t}\n\n\treturn normalizedValue;\n}\n\n/**\n * Resolves an optional preset id to a concrete preset, defaulting to\n * `DEFAULT_COMPOUND_INNER_BLOCKS_PRESET_ID`.\n */\nexport function resolveCompoundInnerBlocksPreset(\n\tvalue?: CompoundInnerBlocksPresetId,\n): CompoundInnerBlocksPresetId {\n\treturn value ?? DEFAULT_COMPOUND_INNER_BLOCKS_PRESET_ID;\n}\n\n/**\n * Looks up the preset definition for the provided preset id, applying the\n * default preset when the input is omitted.\n */\nexport function getCompoundInnerBlocksPresetDefinition(\n\tvalue?: CompoundInnerBlocksPresetId,\n): CompoundInnerBlocksPresetDefinition {\n\treturn COMPOUND_INNER_BLOCKS_PRESET_REGISTRY[\n\t\tresolveCompoundInnerBlocksPreset(value)\n\t];\n}\n",
|
|
73
74
|
"import { execSync } from 'node:child_process';\n\nimport {\n PACKAGE_MANAGER_IDS,\n getPackageManager,\n} from './package-managers.js';\nimport type { PackageManagerId } from './package-managers.js';\nimport {\n normalizeBlockSlug,\n resolveScaffoldIdentifiers,\n validateBlockSlug,\n validateNamespace,\n} from './scaffold-identifiers.js';\nimport {\n OFFICIAL_WORKSPACE_TEMPLATE_PACKAGE,\n TEMPLATE_IDS,\n getTemplateById,\n isBuiltInTemplateId,\n} from './template-registry.js';\nimport {\n getRemovedBuiltInTemplateMessage,\n isRemovedBuiltInTemplateId,\n} from './template-defaults.js';\nimport {\n toSnakeCase,\n toTitleCase,\n} from './string-case.js';\nimport type {\n CollectScaffoldAnswersOptions,\n ResolvePackageManagerOptions,\n ResolveTemplateOptions,\n ScaffoldAnswers,\n} from './scaffold.js';\n\nconst WORKSPACE_TEMPLATE_ALIAS = 'workspace';\nconst TEMPLATE_SELECTION_HINT = `--template <${[\n ...TEMPLATE_IDS,\n WORKSPACE_TEMPLATE_ALIAS,\n].join('|')}|./path|github:owner/repo/path[#ref]|npm-package>`;\nconst TEMPLATE_SUGGESTION_IDS = [...TEMPLATE_IDS, WORKSPACE_TEMPLATE_ALIAS] as const;\nconst QUERY_POST_TYPE_RULE =\n 'Use lowercase, 1-20 chars, and only a-z, 0-9, \"_\" or \"-\".';\n\n/**\n * Detect the current author name from local Git config.\n *\n * @returns The configured Git author name, or `\"Your Name\"` when unavailable.\n */\nexport function detectAuthor(): string {\n try {\n return (\n execSync('git config user.name', {\n encoding: 'utf8',\n stdio: ['ignore', 'pipe', 'ignore'],\n }).trim() || 'Your Name'\n );\n } catch {\n return 'Your Name';\n }\n}\n\n/**\n * Compute the default scaffold answers for one project and template pair.\n *\n * @param projectName User-supplied project directory or block name seed.\n * @param templateId Selected scaffold template identifier.\n * @returns Normalized default answers for scaffold prompts and non-interactive flows.\n */\nexport function getDefaultAnswers(\n projectName: string,\n templateId: string,\n): ScaffoldAnswers {\n const template = isBuiltInTemplateId(templateId) ? getTemplateById(templateId) : null;\n const slugDefault = normalizeBlockSlug(projectName) || 'my-wp-typia-block';\n return {\n author: detectAuthor(),\n dataStorageMode: templateId === 'persistence' ? 'custom-table' : undefined,\n description: template?.description ?? 'A WordPress block scaffolded from a remote template',\n namespace: slugDefault,\n persistencePolicy: templateId === 'persistence' ? 'authenticated' : undefined,\n phpPrefix: toSnakeCase(slugDefault),\n queryPostType: templateId === 'query-loop' ? 'post' : undefined,\n slug: slugDefault,\n textDomain: slugDefault,\n title: toTitleCase(slugDefault),\n };\n}\n\nfunction validateQueryPostType(value: string): true | string {\n const rawValue = value.trim();\n const normalizedValue = rawValue.toLowerCase();\n if (normalizedValue.length === 0) {\n return 'Query post type is required.';\n }\n\n if (!/^[a-z0-9_-]{1,20}$/u.test(normalizedValue)) {\n return rawValue === normalizedValue\n ? `Query post type \"${rawValue}\" is invalid. ${QUERY_POST_TYPE_RULE}`\n : `Query post type \"${rawValue}\" normalizes to \"${normalizedValue}\", which is invalid. ${QUERY_POST_TYPE_RULE}`;\n }\n\n return true;\n}\n\nfunction normalizeQueryPostType(value: string | undefined): string | undefined {\n if (typeof value !== 'string') {\n return undefined;\n }\n\n const validationResult = validateQueryPostType(value);\n if (validationResult !== true) {\n throw new Error(validationResult);\n }\n\n return value.trim().toLowerCase();\n}\n\nfunction normalizeTemplateSelection(templateId: string): string {\n return templateId === WORKSPACE_TEMPLATE_ALIAS\n ? OFFICIAL_WORKSPACE_TEMPLATE_PACKAGE\n : templateId;\n}\n\nfunction looksLikeExplicitExternalTemplateLocator(templateId: string): boolean {\n return (\n templateId.startsWith('./') ||\n templateId.startsWith('../') ||\n templateId.startsWith('/') ||\n templateId.startsWith('@') ||\n templateId.startsWith('github:') ||\n templateId.includes('/')\n );\n}\n\nfunction getEditDistance(left: string, right: string): number {\n const previous = Array.from({ length: right.length + 1 }, (_, index) => index);\n const current = new Array<number>(right.length + 1);\n\n for (let leftIndex = 0; leftIndex < left.length; leftIndex += 1) {\n current[0] = leftIndex + 1;\n\n for (let rightIndex = 0; rightIndex < right.length; rightIndex += 1) {\n const substitutionCost = left[leftIndex] === right[rightIndex] ? 0 : 1;\n current[rightIndex + 1] = Math.min(\n current[rightIndex] + 1,\n previous[rightIndex + 1] + 1,\n previous[rightIndex] + substitutionCost,\n );\n }\n\n for (let index = 0; index < current.length; index += 1) {\n previous[index] = current[index] as number;\n }\n }\n\n return previous[right.length] as number;\n}\n\nfunction findMistypedBuiltInTemplateSuggestion(templateId: string): string | null {\n const normalizedTemplateId = templateId.trim().toLowerCase();\n if (\n normalizedTemplateId.length === 0 ||\n looksLikeExplicitExternalTemplateLocator(normalizedTemplateId)\n ) {\n return null;\n }\n\n let bestCandidate: { distance: number; id: string } | null = null;\n\n for (const candidateId of TEMPLATE_SUGGESTION_IDS) {\n const distance = getEditDistance(normalizedTemplateId, candidateId);\n if (\n bestCandidate === null ||\n distance < bestCandidate.distance\n ) {\n bestCandidate = {\n distance,\n id: candidateId,\n };\n }\n }\n\n return bestCandidate && bestCandidate.distance <= 2\n ? bestCandidate.id\n : null;\n}\n\nfunction getMistypedBuiltInTemplateMessage(templateId: string): string | null {\n const suggestion = findMistypedBuiltInTemplateSuggestion(templateId);\n if (!suggestion) {\n return null;\n }\n\n const suggestionDescription =\n suggestion === WORKSPACE_TEMPLATE_ALIAS\n ? 'official workspace scaffold'\n : 'built-in scaffold';\n\n return `Unknown template \"${templateId}\". Did you mean \"${suggestion}\"? Use \\`--template ${suggestion}\\` for the ${suggestionDescription}, or pass a local path, \\`github:owner/repo/path[#ref]\\`, or an npm package spec for an external template.`;\n}\n\n/**\n * Resolve the scaffold template id from flags, defaults, and interactive selection.\n *\n * @param options Template resolution options for interactive and non-interactive flows.\n * @returns The normalized template identifier to scaffold.\n */\nexport async function resolveTemplateId({\n templateId,\n yes = false,\n isInteractive = false,\n selectTemplate,\n}: ResolveTemplateOptions): Promise<string> {\n if (templateId) {\n const normalizedTemplateId = normalizeTemplateSelection(templateId);\n if (isRemovedBuiltInTemplateId(templateId)) {\n throw new Error(getRemovedBuiltInTemplateMessage(templateId));\n }\n if (normalizedTemplateId === OFFICIAL_WORKSPACE_TEMPLATE_PACKAGE) {\n return normalizedTemplateId;\n }\n if (isBuiltInTemplateId(normalizedTemplateId)) {\n return getTemplateById(normalizedTemplateId).id;\n }\n const mistypedBuiltInTemplateMessage = getMistypedBuiltInTemplateMessage(templateId);\n if (mistypedBuiltInTemplateMessage) {\n throw new Error(mistypedBuiltInTemplateMessage);\n }\n return normalizedTemplateId;\n }\n\n if (yes) {\n return 'basic';\n }\n\n if (!isInteractive || !selectTemplate) {\n throw new Error(\n `Template is required in non-interactive mode. Use ${TEMPLATE_SELECTION_HINT}.`,\n );\n }\n\n return normalizeTemplateSelection(await selectTemplate());\n}\n\n/**\n * Resolve the package manager id from flags, defaults, and interactive selection.\n *\n * @param options Package manager resolution options for interactive and non-interactive flows.\n * @returns The normalized package manager id.\n */\nexport async function resolvePackageManagerId({\n packageManager,\n yes = false,\n isInteractive = false,\n selectPackageManager,\n}: ResolvePackageManagerOptions): Promise<PackageManagerId> {\n if (packageManager) {\n return getPackageManager(packageManager).id;\n }\n\n if (yes) {\n return 'npm';\n }\n\n if (!isInteractive || !selectPackageManager) {\n throw new Error(\n `Package manager is required in non-interactive mode. Use --package-manager <${PACKAGE_MANAGER_IDS.join('|')}>.`,\n );\n }\n\n return selectPackageManager();\n}\n\n/**\n * Collect scaffold answers from defaults, CLI overrides, and optional prompts.\n *\n * @param options Answer collection inputs including prompt callbacks and explicit overrides.\n * @returns The normalized scaffold answers used for rendering and file generation.\n */\nexport async function collectScaffoldAnswers({\n projectName,\n templateId,\n yes = false,\n dataStorageMode,\n namespace,\n persistencePolicy,\n phpPrefix,\n promptText,\n queryPostType,\n textDomain,\n}: CollectScaffoldAnswersOptions): Promise<ScaffoldAnswers> {\n const defaults = getDefaultAnswers(projectName, templateId);\n\n if (yes) {\n const identifiers = resolveScaffoldIdentifiers({\n namespace: namespace ?? defaults.namespace,\n phpPrefix,\n slug: defaults.slug,\n textDomain,\n });\n return {\n ...defaults,\n dataStorageMode: dataStorageMode ?? defaults.dataStorageMode,\n namespace: identifiers.namespace,\n persistencePolicy: persistencePolicy ?? defaults.persistencePolicy,\n phpPrefix: identifiers.phpPrefix,\n queryPostType: normalizeQueryPostType(queryPostType ?? defaults.queryPostType),\n textDomain: identifiers.textDomain,\n };\n }\n\n if (!promptText) {\n throw new Error('Interactive answers require a promptText callback.');\n }\n\n const identifiers = resolveScaffoldIdentifiers({\n namespace:\n namespace ?? (await promptText('Namespace', defaults.namespace, validateNamespace)),\n phpPrefix,\n slug: await promptText('Block slug', defaults.slug, validateBlockSlug),\n textDomain,\n });\n\n return {\n author: await promptText('Author', defaults.author),\n dataStorageMode: dataStorageMode ?? defaults.dataStorageMode,\n description: await promptText('Description', defaults.description),\n namespace: identifiers.namespace,\n persistencePolicy: persistencePolicy ?? defaults.persistencePolicy,\n phpPrefix: identifiers.phpPrefix,\n queryPostType:\n templateId === 'query-loop'\n ? normalizeQueryPostType(\n await promptText(\n 'Query post type',\n queryPostType ?? defaults.queryPostType ?? 'post',\n validateQueryPostType,\n ),\n )\n : normalizeQueryPostType(queryPostType ?? defaults.queryPostType),\n slug: identifiers.slug,\n textDomain: identifiers.textDomain,\n title: await promptText('Block title', toTitleCase(identifiers.slug)),\n };\n}\n",
|
|
74
|
-
"import fs from \"node:fs\";\nimport { promises as fsp } from \"node:fs\";\nimport path from \"node:path\";\n\nimport { getPackageManager } from \"./package-managers.js\";\nimport type { PackageManagerId } from \"./package-managers.js\";\nimport {\n\tbuildGitignore,\n\tbuildReadme,\n\tmergeTextLines,\n\tremoveQueryLoopPlaceholderFiles,\n\treplaceTextRecursively,\n} from \"./scaffold-apply-utils.js\";\nimport {\n\tapplyGeneratedProjectDxPackageJson,\n\tapplyLocalDevPresetFiles,\n} from \"./local-dev-presets.js\";\nimport { applyMigrationUiCapability } from \"./migration-ui-capability.js\";\nimport {\n\tapplyWorkspaceMigrationCapability,\n\tensureScaffoldDirectory,\n\tisWorkspaceProject,\n\tseedBuiltInPersistenceArtifacts,\n\twriteStarterManifestFiles,\n} from \"./scaffold-bootstrap.js\";\nimport {\n\tdefaultInstallDependencies,\n\tnormalizePackageJson,\n\tnormalizePackageManagerFiles,\n\tremoveUnexpectedLockfiles,\n} from \"./scaffold-package-manager-files.js\";\nimport { copyInterpolatedDirectory } from \"./template-render.js\";\nimport {\n\tOFFICIAL_WORKSPACE_TEMPLATE_PACKAGE,\n\tisBuiltInTemplateId,\n} from \"./template-registry.js\";\nimport { resolveTemplateSource } from \"./template-source.js\";\nimport {\n\tBlockGeneratorService,\n} from \"./block-generator-service.js\";\nimport {\n} from \"./scaffold-answer-resolution.js\";\nimport { getTemplateVariables } from \"./scaffold-template-variables.js\";\nimport {\n\tassertExternalLayerCompositionOptions,\n} from \"./cli-validation.js\";\n\nconst WORKSPACE_TEMPLATE_ALIAS = \"workspace\";\n\n/**\n * User-facing scaffold answers before template rendering.\n *\n * `namespace`, `textDomain`, and `phpPrefix` are normalized before use so\n * callers can pass human-entered values while generated output stays\n * predictable.\n */\nexport interface ScaffoldAnswers {\n\tauthor: string;\n\tcompoundInnerBlocksPreset?: import(\"./compound-inner-blocks.js\").CompoundInnerBlocksPresetId;\n\tdataStorageMode?: DataStorageMode;\n\tdescription: string;\n\t/** Block namespace used in generated block names such as `namespace/slug`. */\n\tnamespace: string;\n\tpersistencePolicy?: PersistencePolicy;\n\t/** Snake_case PHP symbol prefix used for generated functions, constants, and keys. */\n\tphpPrefix?: string;\n\tqueryPostType?: string;\n\tslug: string;\n\t/** Kebab-case WordPress text domain used in block metadata and i18n strings. */\n\ttextDomain?: string;\n\ttitle: string;\n}\n\nexport const DATA_STORAGE_MODES = [\"post-meta\", \"custom-table\"] as const;\nexport type DataStorageMode = (typeof DATA_STORAGE_MODES)[number];\nexport const PERSISTENCE_POLICIES = [\"authenticated\", \"public\"] as const;\nexport type PersistencePolicy = (typeof PERSISTENCE_POLICIES)[number];\n\n/**\n * Normalized template variables shared by built-in and remote scaffold flows.\n */\nexport interface ScaffoldTemplateVariables extends Record<string, string> {\n\talternateRenderTargetsCsv: string;\n\talternateRenderTargetsJson: string;\n\tapiClientPackageVersion: string;\n\tauthor: string;\n\tblockRuntimePackageVersion: string;\n\tblockMetadataVersion: string;\n\tblockTypesPackageVersion: string;\n\tcategory: string;\n\ticon: string;\n\tcompoundChildTitle: string;\n\tcompoundChildCategory: string;\n\tcompoundChildCssClassName: string;\n\tcompoundChildIcon: string;\n\tcompoundChildTitleJson: string;\n\tcompoundPersistenceEnabled: \"false\" | \"true\";\n\tcompoundInnerBlocksDirectInsert: \"false\" | \"true\";\n\tcompoundInnerBlocksOrientation: \"\" | \"horizontal\" | \"vertical\";\n\tcompoundInnerBlocksOrientationExpression: string;\n\tcompoundInnerBlocksPreset: string;\n\tcompoundInnerBlocksPresetDescription: string;\n\tcompoundInnerBlocksPresetLabel: string;\n\tcompoundInnerBlocksTemplateLockExpression: string;\n\thasAlternateEmailRenderTarget: \"false\" | \"true\";\n\thasAlternateMjmlRenderTarget: \"false\" | \"true\";\n\thasAlternatePlainTextRenderTarget: \"false\" | \"true\";\n\thasAlternateRenderTargets: \"false\" | \"true\";\n\tprojectToolsPackageVersion: string;\n\tcssClassName: string;\n\tdashCase: string;\n\tdataStorageMode: DataStorageMode;\n\tdescription: string;\n\tdescriptionJson: string;\n\tfrontendCssClassName: string;\n\tkeyword: string;\n\tnamespace: string;\n\tneedsMigration: string;\n\tpascalCase: string;\n\tphpPrefix: string;\n\tphpPrefixUpper: string;\n\tqueryAllowedControlsJson: string;\n\tqueryPostTypeJson: string;\n\tqueryPostType: string;\n\tqueryVariationNamespace: string;\n\tqueryVariationNamespaceJson: string;\n\tisAuthenticatedPersistencePolicy: \"false\" | \"true\";\n\tisPublicPersistencePolicy: \"false\" | \"true\";\n\tbootstrapCredentialDeclarations: string;\n\tpersistencePolicyDescriptionJson: string;\n\tpublicWriteRequestIdDeclaration: string;\n\trestPackageVersion: string;\n\trestWriteAuthIntent: \"authenticated\" | \"public-write-protected\";\n\trestWriteAuthMechanism: \"public-signed-token\" | \"rest-nonce\";\n\trestWriteAuthMode: \"authenticated-rest-nonce\" | \"public-signed-token\";\n\tslug: string;\n\tslugCamelCase: string;\n\tslugKebabCase: string;\n\tslugSnakeCase: string;\n\ttextDomain: string;\n\ttextdomain: string;\n\ttitle: string;\n\ttitleJson: string;\n\ttitleCase: string;\n\tpersistencePolicy: PersistencePolicy;\n}\n\n/**\n * Resolve scaffold template input from either built-in template ids or custom\n * template identifiers such as local paths, GitHub refs, and npm packages.\n *\n * The callback returns `Promise<string>` on purpose so interactive selection\n * can surface custom ids. Downstream code uses `isBuiltInTemplateId()` to\n * distinguish built-in templates from custom sources.\n */\nexport interface ResolveTemplateOptions {\n\tisInteractive?: boolean;\n\tselectTemplate?: () => Promise<string>;\n\ttemplateId?: string;\n\tyes?: boolean;\n}\n\n/**\n * Options for resolving the package manager in CLI and interactive scaffold flows.\n */\nexport interface ResolvePackageManagerOptions {\n\tisInteractive?: boolean;\n\tpackageManager?: string;\n\tselectPackageManager?: () => Promise<PackageManagerId>;\n\tyes?: boolean;\n}\n\n/**\n * Options for collecting scaffold answers from defaults, overrides, and prompts.\n */\nexport interface CollectScaffoldAnswersOptions {\n\tdataStorageMode?: DataStorageMode;\n\tnamespace?: string;\n\tphpPrefix?: string;\n\tprojectName: string;\n\tpromptText?: (\n\t\tmessage: string,\n\t\tdefaultValue: string,\n\t\tvalidate?: (value: string) => true | string,\n\t) => Promise<string>;\n\tpersistencePolicy?: PersistencePolicy;\n\tqueryPostType?: string;\n\ttextDomain?: string;\n\ttemplateId: string;\n\twithTestPreset?: boolean;\n\twithWpEnv?: boolean;\n\tyes?: boolean;\n}\n\ninterface InstallDependenciesOptions {\n\tpackageManager: PackageManagerId;\n\tprojectDir: string;\n}\n\nexport interface ScaffoldProgressEvent {\n\tdetail: string;\n\tphase:\n\t\t| \"finalize-project\"\n\t\t| \"generate-files\"\n\t\t| \"install-dependencies\"\n\t\t| \"resolve-template\"\n\t\t| \"seed-artifacts\";\n\ttitle: string;\n}\n\ninterface ScaffoldProjectOptions {\n\tallowExistingDir?: boolean;\n\talternateRenderTargets?: string;\n\tanswers: ScaffoldAnswers;\n\tcwd?: string;\n\tdataStorageMode?: DataStorageMode;\n\texternalLayerId?: string;\n\texternalLayerSource?: string;\n\texternalLayerSourceLabel?: string;\n\tinstallDependencies?: ((options: InstallDependenciesOptions) => Promise<void>) | undefined;\n\tnoInstall?: boolean;\n\tonProgress?: ((event: ScaffoldProgressEvent) => void | Promise<void>) | undefined;\n\tpackageManager: PackageManagerId;\n\tpersistencePolicy?: PersistencePolicy;\n\tprojectDir: string;\n\trepositoryReference?: string;\n\ttemplateId: string;\n\tvariant?: string;\n\twithMigrationUi?: boolean;\n\twithTestPreset?: boolean;\n\twithWpEnv?: boolean;\n}\n\nexport interface ScaffoldProjectResult {\n\tpackageManager: PackageManagerId;\n\tprojectDir: string;\n\tselectedVariant: string | null;\n\ttemplateId: string;\n\tvariables: ScaffoldTemplateVariables;\n\twarnings: string[];\n}\nexport { buildBlockCssClassName } from \"./scaffold-identifiers.js\";\nexport {\n\tcollectScaffoldAnswers,\n\tdetectAuthor,\n\tgetDefaultAnswers,\n\tresolvePackageManagerId,\n\tresolveTemplateId,\n} from \"./scaffold-answer-resolution.js\";\nexport { getTemplateVariables } from \"./scaffold-template-variables.js\";\n\nexport function isDataStorageMode(value: string): value is DataStorageMode {\n\treturn (DATA_STORAGE_MODES as readonly string[]).includes(value);\n}\n\nexport function isPersistencePolicy(value: string): value is PersistencePolicy {\n\treturn (PERSISTENCE_POLICIES as readonly string[]).includes(value);\n}\n\nfunction normalizeTemplateSelection(templateId: string): string {\n\treturn templateId === WORKSPACE_TEMPLATE_ALIAS\n\t\t? OFFICIAL_WORKSPACE_TEMPLATE_PACKAGE\n\t\t: templateId;\n}\n\nasync function reportScaffoldProgress(\n\tonProgress: ScaffoldProjectOptions[\"onProgress\"],\n\tevent: ScaffoldProgressEvent,\n): Promise<void> {\n\tawait onProgress?.(event);\n}\n\nexport async function scaffoldProject({\n\tprojectDir,\n\ttemplateId,\n\tanswers,\n\talternateRenderTargets,\n\tdataStorageMode,\n\tpersistencePolicy,\n\tpackageManager,\n\texternalLayerId,\n\texternalLayerSource,\n\texternalLayerSourceLabel,\n\trepositoryReference,\n\tcwd = process.cwd(),\n\tallowExistingDir = false,\n\tnoInstall = false,\n\tinstallDependencies = undefined,\n\tonProgress = undefined,\n\tvariant,\n\twithMigrationUi = false,\n\twithTestPreset = false,\n\twithWpEnv = false,\n}: ScaffoldProjectOptions): Promise<ScaffoldProjectResult> {\n\tconst resolvedTemplateId = normalizeTemplateSelection(templateId);\n\tconst resolvedPackageManager = getPackageManager(packageManager).id;\n\tconst isBuiltInTemplate = isBuiltInTemplateId(resolvedTemplateId);\n\n\tassertExternalLayerCompositionOptions({\n\t\texternalLayerId,\n\t\texternalLayerSource,\n\t});\n\n\tif (isBuiltInTemplate) {\n\t\tconst blockGeneratorService = new BlockGeneratorService();\n\t\tawait reportScaffoldProgress(onProgress, {\n\t\t\tdetail: \"Preparing template layers, variants, and generated artifact plans.\",\n\t\t\tphase: \"resolve-template\",\n\t\t\ttitle: \"Resolving scaffold template\",\n\t\t});\n\t\tconst plan = await blockGeneratorService.plan({\n\t\t\tallowExistingDir,\n\t\t\talternateRenderTargets,\n\t\t\tanswers,\n\t\t\tcwd,\n\t\t\tdataStorageMode: dataStorageMode ?? answers.dataStorageMode,\n\t\t\texternalLayerId,\n\t\t\texternalLayerSource,\n\t\t\texternalLayerSourceLabel,\n\t\t\tnoInstall,\n\t\t\tpackageManager: resolvedPackageManager,\n\t\t\tpersistencePolicy: persistencePolicy ?? answers.persistencePolicy,\n\t\t\tprojectDir,\n\t\t\trepositoryReference,\n\t\t\ttemplateId: resolvedTemplateId,\n\t\t\tvariant,\n\t\t\twithMigrationUi,\n\t\t\twithTestPreset,\n\t\t\twithWpEnv,\n\t\t});\n\t\tconst validated = await blockGeneratorService.validate({ plan });\n\t\tconst rendered = await blockGeneratorService.render({ validated });\n\t\treturn blockGeneratorService.apply({\n\t\t\tinstallDependencies,\n\t\t\tonProgress,\n\t\t\trendered,\n\t\t});\n\t}\n\n\tif (externalLayerSource || externalLayerId) {\n\t\tthrow new Error(\n\t\t\t\"External template layers currently compose only with built-in templates via `wp-typia create --template <basic|interactivity|persistence|compound>` or `wp-typia add block --template <family>`.\",\n\t\t);\n\t}\n\n\tconst variables = getTemplateVariables(resolvedTemplateId, {\n\t\t...answers,\n\t\tdataStorageMode: dataStorageMode ?? answers.dataStorageMode,\n\t\tpersistencePolicy: persistencePolicy ?? answers.persistencePolicy,\n\t});\n\tawait reportScaffoldProgress(onProgress, {\n\t\tdetail: \"Loading template files, variants, and external package metadata when needed.\",\n\t\tphase: \"resolve-template\",\n\t\ttitle: \"Resolving scaffold template\",\n\t});\n\tconst templateSource = await resolveTemplateSource(\n\t\tresolvedTemplateId,\n\t\tcwd,\n\t\tvariables,\n\t\tvariant,\n\t);\n\tconst supportsMigrationUi =\n\t\tisBuiltInTemplate ||\n\t\ttemplateSource.isOfficialWorkspaceTemplate === true ||\n\t\ttemplateSource.supportsMigrationUi === true;\n\tif (withMigrationUi && !supportsMigrationUi) {\n\t\tawait templateSource.cleanup?.();\n\t\tthrow new Error(\n\t\t\t\"`--with-migration-ui` is currently supported only for built-in templates and workspace-capable wp-typia templates.\",\n\t\t);\n\t}\n\n\ttry {\n\t\tawait reportScaffoldProgress(onProgress, {\n\t\t\tdetail: \"Copying scaffold files into the target project directory.\",\n\t\t\tphase: \"generate-files\",\n\t\t\ttitle: \"Generating project files\",\n\t\t});\n\t\tawait ensureScaffoldDirectory(projectDir, allowExistingDir);\n\t\tawait copyInterpolatedDirectory(\n\t\t\ttemplateSource.templateDir,\n\t\t\tprojectDir,\n\t\t\tvariables,\n\t\t);\n\t} finally {\n\t\tif (templateSource.cleanup) {\n\t\t\tawait templateSource.cleanup();\n\t\t}\n\t}\n\tconst isWorkspace = isWorkspaceProject(projectDir);\n\tif (isBuiltInTemplate) {\n\t\tawait reportScaffoldProgress(onProgress, {\n\t\t\tdetail: \"Writing starter manifests, local presets, and template-specific generated artifacts.\",\n\t\t\tphase: \"seed-artifacts\",\n\t\t\ttitle: \"Seeding scaffold artifacts\",\n\t\t});\n\t\tawait writeStarterManifestFiles(projectDir, resolvedTemplateId, variables);\n\t\tawait seedBuiltInPersistenceArtifacts(projectDir, resolvedTemplateId, variables);\n\t\tawait applyLocalDevPresetFiles({\n\t\t\tprojectDir,\n\t\t\tvariables,\n\t\t\twithTestPreset,\n\t\t\twithWpEnv,\n\t\t});\n\t\tif (withMigrationUi) {\n\t\t\tawait applyMigrationUiCapability({\n\t\t\t\tpackageManager: resolvedPackageManager,\n\t\t\t\tprojectDir,\n\t\t\t\ttemplateId: resolvedTemplateId,\n\t\t\t\tvariables,\n\t\t\t});\n\t\t}\n\t\tawait removeQueryLoopPlaceholderFiles(projectDir, resolvedTemplateId);\n\t} else if (withMigrationUi && isWorkspace) {\n\t\tawait reportScaffoldProgress(onProgress, {\n\t\t\tdetail: \"Initializing workspace migration scripts and starter migration files.\",\n\t\t\tphase: \"seed-artifacts\",\n\t\t\ttitle: \"Seeding scaffold artifacts\",\n\t\t});\n\t\tawait applyWorkspaceMigrationCapability(projectDir, resolvedPackageManager);\n\t}\n\tawait reportScaffoldProgress(onProgress, {\n\t\tdetail: \"Writing README, normalizing package metadata, and aligning package-manager files.\",\n\t\tphase: \"finalize-project\",\n\t\ttitle: \"Finalizing scaffold output\",\n\t});\n\tconst readmePath = path.join(projectDir, \"README.md\");\n\tif (!fs.existsSync(readmePath)) {\n\t\tawait fsp.writeFile(\n\t\t\treadmePath,\n\t\t\tbuildReadme(resolvedTemplateId, variables, resolvedPackageManager, {\n\t\t\t\twithMigrationUi:\n\t\t\t\t\tisBuiltInTemplate || isWorkspace ? withMigrationUi : false,\n\t\t\t\twithTestPreset: isBuiltInTemplate ? withTestPreset : false,\n\t\t\t\twithWpEnv: isBuiltInTemplate ? withWpEnv : false,\n\t\t\t}),\n\t\t\t\"utf8\",\n\t\t);\n\t}\n\tconst gitignorePath = path.join(projectDir, \".gitignore\");\n\tconst existingGitignore = fs.existsSync(gitignorePath)\n\t\t? await fsp.readFile(gitignorePath, \"utf8\")\n\t\t: \"\";\n\tawait fsp.writeFile(\n\t\tgitignorePath,\n\t\tmergeTextLines(buildGitignore(), existingGitignore),\n\t\t\"utf8\",\n\t);\n\tawait normalizePackageJson(projectDir, resolvedPackageManager);\n\tif (isBuiltInTemplate) {\n\t\tawait applyGeneratedProjectDxPackageJson({\n\t\t\tcompoundPersistenceEnabled: variables.compoundPersistenceEnabled === \"true\",\n\t\t\tpackageManager: resolvedPackageManager,\n\t\t\tprojectDir,\n\t\t\ttemplateId: resolvedTemplateId,\n\t\t\twithTestPreset,\n\t\t\twithWpEnv,\n\t\t});\n\t}\n\tawait normalizePackageManagerFiles(projectDir, resolvedPackageManager);\n\tawait removeUnexpectedLockfiles(projectDir, resolvedPackageManager);\n\tawait replaceTextRecursively(projectDir, resolvedPackageManager, {\n\t\trepositoryReference,\n\t});\n\n\tif (!noInstall) {\n\t\tawait reportScaffoldProgress(onProgress, {\n\t\t\tdetail: \"Installing project dependencies with the selected package manager.\",\n\t\t\tphase: \"install-dependencies\",\n\t\t\ttitle: \"Installing dependencies\",\n\t\t});\n\t\tconst installer = installDependencies ?? defaultInstallDependencies;\n\t\tawait installer({\n\t\t\tprojectDir,\n\t\t\tpackageManager: resolvedPackageManager,\n\t\t});\n\t}\n\n\treturn {\n\t\tprojectDir,\n\t\tselectedVariant: templateSource.selectedVariant ?? null,\n\t\ttemplateId: resolvedTemplateId,\n\t\tpackageManager: resolvedPackageManager,\n\t\tvariables,\n\t\twarnings: templateSource.warnings ?? [],\n\t};\n}\n",
|
|
75
|
+
"import fs from \"node:fs\";\nimport { promises as fsp } from \"node:fs\";\nimport path from \"node:path\";\n\nimport { getPackageManager } from \"./package-managers.js\";\nimport type { PackageManagerId } from \"./package-managers.js\";\nimport {\n\tbuildGitignore,\n\tbuildReadme,\n\tmergeTextLines,\n\tremoveQueryLoopPlaceholderFiles,\n\treplaceTextRecursively,\n} from \"./scaffold-apply-utils.js\";\nimport {\n\tapplyGeneratedProjectDxPackageJson,\n\tapplyLocalDevPresetFiles,\n} from \"./local-dev-presets.js\";\nimport { applyMigrationUiCapability } from \"./migration-ui-capability.js\";\nimport {\n\tapplyWorkspaceMigrationCapability,\n\tensureScaffoldDirectory,\n\tisWorkspaceProject,\n\tseedBuiltInPersistenceArtifacts,\n\twriteStarterManifestFiles,\n} from \"./scaffold-bootstrap.js\";\nimport {\n\tdefaultInstallDependencies,\n\tnormalizePackageJson,\n\tnormalizePackageManagerFiles,\n\tremoveUnexpectedLockfiles,\n} from \"./scaffold-package-manager-files.js\";\nimport { copyInterpolatedDirectory } from \"./template-render.js\";\nimport {\n\tOFFICIAL_WORKSPACE_TEMPLATE_PACKAGE,\n\tisBuiltInTemplateId,\n} from \"./template-registry.js\";\nimport { resolveTemplateSource } from \"./template-source.js\";\nimport {\n\tBlockGeneratorService,\n} from \"./block-generator-service.js\";\nimport {\n} from \"./scaffold-answer-resolution.js\";\nimport { getTemplateVariables } from \"./scaffold-template-variables.js\";\nimport { getScaffoldTemplateVariableGroups } from \"./scaffold-template-variable-groups.js\";\nimport type {\n\tScaffoldTemplateVariableGroupsCarrier,\n} from \"./scaffold-template-variable-groups.js\";\nimport {\n\tassertExternalLayerCompositionOptions,\n} from \"./cli-validation.js\";\n\nconst WORKSPACE_TEMPLATE_ALIAS = \"workspace\";\n\n/**\n * User-facing scaffold answers before template rendering.\n *\n * `namespace`, `textDomain`, and `phpPrefix` are normalized before use so\n * callers can pass human-entered values while generated output stays\n * predictable.\n */\nexport interface ScaffoldAnswers {\n\tauthor: string;\n\tcompoundInnerBlocksPreset?: import(\"./compound-inner-blocks.js\").CompoundInnerBlocksPresetId;\n\tdataStorageMode?: DataStorageMode;\n\tdescription: string;\n\t/** Block namespace used in generated block names such as `namespace/slug`. */\n\tnamespace: string;\n\tpersistencePolicy?: PersistencePolicy;\n\t/** Snake_case PHP symbol prefix used for generated functions, constants, and keys. */\n\tphpPrefix?: string;\n\tqueryPostType?: string;\n\tslug: string;\n\t/** Kebab-case WordPress text domain used in block metadata and i18n strings. */\n\ttextDomain?: string;\n\ttitle: string;\n}\n\nexport const DATA_STORAGE_MODES = [\"post-meta\", \"custom-table\"] as const;\nexport type DataStorageMode = (typeof DATA_STORAGE_MODES)[number];\nexport const PERSISTENCE_POLICIES = [\"authenticated\", \"public\"] as const;\nexport type PersistencePolicy = (typeof PERSISTENCE_POLICIES)[number];\n\n/**\n * Normalized template variables shared by built-in and remote scaffold flows.\n */\nexport interface FlatScaffoldTemplateVariables extends Record<string, string> {\n\talternateRenderTargetsCsv: string;\n\talternateRenderTargetsJson: string;\n\tapiClientPackageVersion: string;\n\tauthor: string;\n\tblockRuntimePackageVersion: string;\n\tblockMetadataVersion: string;\n\tblockTypesPackageVersion: string;\n\tcategory: string;\n\ticon: string;\n\tcompoundChildTitle: string;\n\tcompoundChildCategory: string;\n\tcompoundChildCssClassName: string;\n\tcompoundChildIcon: string;\n\tcompoundChildTitleJson: string;\n\tcompoundPersistenceEnabled: \"false\" | \"true\";\n\tcompoundInnerBlocksDirectInsert: \"false\" | \"true\";\n\tcompoundInnerBlocksOrientation: \"\" | \"horizontal\" | \"vertical\";\n\tcompoundInnerBlocksOrientationExpression: string;\n\tcompoundInnerBlocksPreset: string;\n\tcompoundInnerBlocksPresetDescription: string;\n\tcompoundInnerBlocksPresetLabel: string;\n\tcompoundInnerBlocksTemplateLockExpression: string;\n\thasAlternateEmailRenderTarget: \"false\" | \"true\";\n\thasAlternateMjmlRenderTarget: \"false\" | \"true\";\n\thasAlternatePlainTextRenderTarget: \"false\" | \"true\";\n\thasAlternateRenderTargets: \"false\" | \"true\";\n\tprojectToolsPackageVersion: string;\n\tcssClassName: string;\n\tdashCase: string;\n\tdataStorageMode: DataStorageMode;\n\tdescription: string;\n\tdescriptionJson: string;\n\tfrontendCssClassName: string;\n\tkeyword: string;\n\tnamespace: string;\n\tneedsMigration: string;\n\tpascalCase: string;\n\tphpPrefix: string;\n\tphpPrefixUpper: string;\n\tqueryAllowedControlsJson: string;\n\tqueryPostTypeJson: string;\n\tqueryPostType: string;\n\tqueryVariationNamespace: string;\n\tqueryVariationNamespaceJson: string;\n\tisAuthenticatedPersistencePolicy: \"false\" | \"true\";\n\tisPublicPersistencePolicy: \"false\" | \"true\";\n\tbootstrapCredentialDeclarations: string;\n\tpersistencePolicyDescriptionJson: string;\n\tpublicWriteRequestIdDeclaration: string;\n\trestPackageVersion: string;\n\trestWriteAuthIntent: \"authenticated\" | \"public-write-protected\";\n\trestWriteAuthMechanism: \"public-signed-token\" | \"rest-nonce\";\n\trestWriteAuthMode: \"authenticated-rest-nonce\" | \"public-signed-token\";\n\tslug: string;\n\tslugCamelCase: string;\n\tslugKebabCase: string;\n\tslugSnakeCase: string;\n\ttextDomain: string;\n\ttextdomain: string;\n\ttitle: string;\n\ttitleJson: string;\n\ttitleCase: string;\n\tpersistencePolicy: PersistencePolicy;\n}\n\nexport interface ScaffoldTemplateVariables\n\textends FlatScaffoldTemplateVariables,\n\t\tScaffoldTemplateVariableGroupsCarrier {}\n\n/**\n * Resolve scaffold template input from either built-in template ids or custom\n * template identifiers such as local paths, GitHub refs, and npm packages.\n *\n * The callback returns `Promise<string>` on purpose so interactive selection\n * can surface custom ids. Downstream code uses `isBuiltInTemplateId()` to\n * distinguish built-in templates from custom sources.\n */\nexport interface ResolveTemplateOptions {\n\tisInteractive?: boolean;\n\tselectTemplate?: () => Promise<string>;\n\ttemplateId?: string;\n\tyes?: boolean;\n}\n\n/**\n * Options for resolving the package manager in CLI and interactive scaffold flows.\n */\nexport interface ResolvePackageManagerOptions {\n\tisInteractive?: boolean;\n\tpackageManager?: string;\n\tselectPackageManager?: () => Promise<PackageManagerId>;\n\tyes?: boolean;\n}\n\n/**\n * Options for collecting scaffold answers from defaults, overrides, and prompts.\n */\nexport interface CollectScaffoldAnswersOptions {\n\tdataStorageMode?: DataStorageMode;\n\tnamespace?: string;\n\tphpPrefix?: string;\n\tprojectName: string;\n\tpromptText?: (\n\t\tmessage: string,\n\t\tdefaultValue: string,\n\t\tvalidate?: (value: string) => true | string,\n\t) => Promise<string>;\n\tpersistencePolicy?: PersistencePolicy;\n\tqueryPostType?: string;\n\ttextDomain?: string;\n\ttemplateId: string;\n\twithTestPreset?: boolean;\n\twithWpEnv?: boolean;\n\tyes?: boolean;\n}\n\ninterface InstallDependenciesOptions {\n\tpackageManager: PackageManagerId;\n\tprojectDir: string;\n}\n\nexport interface ScaffoldProgressEvent {\n\tdetail: string;\n\tphase:\n\t\t| \"finalize-project\"\n\t\t| \"generate-files\"\n\t\t| \"install-dependencies\"\n\t\t| \"resolve-template\"\n\t\t| \"seed-artifacts\";\n\ttitle: string;\n}\n\ninterface ScaffoldProjectOptions {\n\tallowExistingDir?: boolean;\n\talternateRenderTargets?: string;\n\tanswers: ScaffoldAnswers;\n\tcwd?: string;\n\tdataStorageMode?: DataStorageMode;\n\texternalLayerId?: string;\n\texternalLayerSource?: string;\n\texternalLayerSourceLabel?: string;\n\tinstallDependencies?: ((options: InstallDependenciesOptions) => Promise<void>) | undefined;\n\tnoInstall?: boolean;\n\tonProgress?: ((event: ScaffoldProgressEvent) => void | Promise<void>) | undefined;\n\tpackageManager: PackageManagerId;\n\tpersistencePolicy?: PersistencePolicy;\n\tprojectDir: string;\n\trepositoryReference?: string;\n\ttemplateId: string;\n\tvariant?: string;\n\twithMigrationUi?: boolean;\n\twithTestPreset?: boolean;\n\twithWpEnv?: boolean;\n}\n\nexport interface ScaffoldProjectResult {\n\tpackageManager: PackageManagerId;\n\tprojectDir: string;\n\tselectedVariant: string | null;\n\ttemplateId: string;\n\tvariables: ScaffoldTemplateVariables;\n\twarnings: string[];\n}\nexport { buildBlockCssClassName } from \"./scaffold-identifiers.js\";\nexport {\n\tcollectScaffoldAnswers,\n\tdetectAuthor,\n\tgetDefaultAnswers,\n\tresolvePackageManagerId,\n\tresolveTemplateId,\n} from \"./scaffold-answer-resolution.js\";\nexport { getTemplateVariables } from \"./scaffold-template-variables.js\";\nexport {\n\tgetScaffoldTemplateVariableGroups,\n\ttype BasicScaffoldTemplateVariableGroups,\n\ttype CompoundScaffoldTemplateVariableGroups,\n\ttype ExternalScaffoldTemplateVariableGroups,\n\ttype InteractivityScaffoldTemplateVariableGroups,\n\ttype PersistenceScaffoldTemplateVariableGroups,\n\ttype QueryLoopScaffoldTemplateVariableGroups,\n\ttype ScaffoldTemplateFamily,\n\ttype ScaffoldTemplateVariableGroups,\n\ttype ScaffoldTemplateVariableGroupsCarrier,\n} from \"./scaffold-template-variable-groups.js\";\n\nexport function isDataStorageMode(value: string): value is DataStorageMode {\n\treturn (DATA_STORAGE_MODES as readonly string[]).includes(value);\n}\n\nexport function isPersistencePolicy(value: string): value is PersistencePolicy {\n\treturn (PERSISTENCE_POLICIES as readonly string[]).includes(value);\n}\n\nfunction normalizeTemplateSelection(templateId: string): string {\n\treturn templateId === WORKSPACE_TEMPLATE_ALIAS\n\t\t? OFFICIAL_WORKSPACE_TEMPLATE_PACKAGE\n\t\t: templateId;\n}\n\nasync function reportScaffoldProgress(\n\tonProgress: ScaffoldProjectOptions[\"onProgress\"],\n\tevent: ScaffoldProgressEvent,\n): Promise<void> {\n\tawait onProgress?.(event);\n}\n\nexport async function scaffoldProject({\n\tprojectDir,\n\ttemplateId,\n\tanswers,\n\talternateRenderTargets,\n\tdataStorageMode,\n\tpersistencePolicy,\n\tpackageManager,\n\texternalLayerId,\n\texternalLayerSource,\n\texternalLayerSourceLabel,\n\trepositoryReference,\n\tcwd = process.cwd(),\n\tallowExistingDir = false,\n\tnoInstall = false,\n\tinstallDependencies = undefined,\n\tonProgress = undefined,\n\tvariant,\n\twithMigrationUi = false,\n\twithTestPreset = false,\n\twithWpEnv = false,\n}: ScaffoldProjectOptions): Promise<ScaffoldProjectResult> {\n\tconst resolvedTemplateId = normalizeTemplateSelection(templateId);\n\tconst resolvedPackageManager = getPackageManager(packageManager).id;\n\tconst isBuiltInTemplate = isBuiltInTemplateId(resolvedTemplateId);\n\n\tassertExternalLayerCompositionOptions({\n\t\texternalLayerId,\n\t\texternalLayerSource,\n\t});\n\n\tif (isBuiltInTemplate) {\n\t\tconst blockGeneratorService = new BlockGeneratorService();\n\t\tawait reportScaffoldProgress(onProgress, {\n\t\t\tdetail: \"Preparing template layers, variants, and generated artifact plans.\",\n\t\t\tphase: \"resolve-template\",\n\t\t\ttitle: \"Resolving scaffold template\",\n\t\t});\n\t\tconst plan = await blockGeneratorService.plan({\n\t\t\tallowExistingDir,\n\t\t\talternateRenderTargets,\n\t\t\tanswers,\n\t\t\tcwd,\n\t\t\tdataStorageMode: dataStorageMode ?? answers.dataStorageMode,\n\t\t\texternalLayerId,\n\t\t\texternalLayerSource,\n\t\t\texternalLayerSourceLabel,\n\t\t\tnoInstall,\n\t\t\tpackageManager: resolvedPackageManager,\n\t\t\tpersistencePolicy: persistencePolicy ?? answers.persistencePolicy,\n\t\t\tprojectDir,\n\t\t\trepositoryReference,\n\t\t\ttemplateId: resolvedTemplateId,\n\t\t\tvariant,\n\t\t\twithMigrationUi,\n\t\t\twithTestPreset,\n\t\t\twithWpEnv,\n\t\t});\n\t\tconst validated = await blockGeneratorService.validate({ plan });\n\t\tconst rendered = await blockGeneratorService.render({ validated });\n\t\treturn blockGeneratorService.apply({\n\t\t\tinstallDependencies,\n\t\t\tonProgress,\n\t\t\trendered,\n\t\t});\n\t}\n\n\tif (externalLayerSource || externalLayerId) {\n\t\tthrow new Error(\n\t\t\t\"External template layers currently compose only with built-in templates via `wp-typia create --template <basic|interactivity|persistence|compound>` or `wp-typia add block --template <family>`.\",\n\t\t);\n\t}\n\n\tconst variables = getTemplateVariables(resolvedTemplateId, {\n\t\t...answers,\n\t\tdataStorageMode: dataStorageMode ?? answers.dataStorageMode,\n\t\tpersistencePolicy: persistencePolicy ?? answers.persistencePolicy,\n\t});\n\tawait reportScaffoldProgress(onProgress, {\n\t\tdetail: \"Loading template files, variants, and external package metadata when needed.\",\n\t\tphase: \"resolve-template\",\n\t\ttitle: \"Resolving scaffold template\",\n\t});\n\tconst templateSource = await resolveTemplateSource(\n\t\tresolvedTemplateId,\n\t\tcwd,\n\t\tvariables,\n\t\tvariant,\n\t);\n\tconst supportsMigrationUi =\n\t\tisBuiltInTemplate ||\n\t\ttemplateSource.isOfficialWorkspaceTemplate === true ||\n\t\ttemplateSource.supportsMigrationUi === true;\n\tif (withMigrationUi && !supportsMigrationUi) {\n\t\tawait templateSource.cleanup?.();\n\t\tthrow new Error(\n\t\t\t\"`--with-migration-ui` is currently supported only for built-in templates and workspace-capable wp-typia templates.\",\n\t\t);\n\t}\n\n\ttry {\n\t\tawait reportScaffoldProgress(onProgress, {\n\t\t\tdetail: \"Copying scaffold files into the target project directory.\",\n\t\t\tphase: \"generate-files\",\n\t\t\ttitle: \"Generating project files\",\n\t\t});\n\t\tawait ensureScaffoldDirectory(projectDir, allowExistingDir);\n\t\tawait copyInterpolatedDirectory(\n\t\t\ttemplateSource.templateDir,\n\t\t\tprojectDir,\n\t\t\tvariables,\n\t\t);\n\t} finally {\n\t\tif (templateSource.cleanup) {\n\t\t\tawait templateSource.cleanup();\n\t\t}\n\t}\n\tconst isWorkspace = isWorkspaceProject(projectDir);\n\tif (isBuiltInTemplate) {\n\t\tawait reportScaffoldProgress(onProgress, {\n\t\t\tdetail: \"Writing starter manifests, local presets, and template-specific generated artifacts.\",\n\t\t\tphase: \"seed-artifacts\",\n\t\t\ttitle: \"Seeding scaffold artifacts\",\n\t\t});\n\t\tawait writeStarterManifestFiles(projectDir, resolvedTemplateId, variables);\n\t\tawait seedBuiltInPersistenceArtifacts(projectDir, resolvedTemplateId, variables);\n\t\tawait applyLocalDevPresetFiles({\n\t\t\tprojectDir,\n\t\t\tvariables,\n\t\t\twithTestPreset,\n\t\t\twithWpEnv,\n\t\t});\n\t\tif (withMigrationUi) {\n\t\t\tawait applyMigrationUiCapability({\n\t\t\t\tpackageManager: resolvedPackageManager,\n\t\t\t\tprojectDir,\n\t\t\t\ttemplateId: resolvedTemplateId,\n\t\t\t\tvariables,\n\t\t\t});\n\t\t}\n\t\tawait removeQueryLoopPlaceholderFiles(projectDir, resolvedTemplateId);\n\t} else if (withMigrationUi && isWorkspace) {\n\t\tawait reportScaffoldProgress(onProgress, {\n\t\t\tdetail: \"Initializing workspace migration scripts and starter migration files.\",\n\t\t\tphase: \"seed-artifacts\",\n\t\t\ttitle: \"Seeding scaffold artifacts\",\n\t\t});\n\t\tawait applyWorkspaceMigrationCapability(projectDir, resolvedPackageManager);\n\t}\n\tawait reportScaffoldProgress(onProgress, {\n\t\tdetail: \"Writing README, normalizing package metadata, and aligning package-manager files.\",\n\t\tphase: \"finalize-project\",\n\t\ttitle: \"Finalizing scaffold output\",\n\t});\n\tconst readmePath = path.join(projectDir, \"README.md\");\n\tif (!fs.existsSync(readmePath)) {\n\t\tawait fsp.writeFile(\n\t\t\treadmePath,\n\t\t\tbuildReadme(resolvedTemplateId, variables, resolvedPackageManager, {\n\t\t\t\twithMigrationUi:\n\t\t\t\t\tisBuiltInTemplate || isWorkspace ? withMigrationUi : false,\n\t\t\t\twithTestPreset: isBuiltInTemplate ? withTestPreset : false,\n\t\t\t\twithWpEnv: isBuiltInTemplate ? withWpEnv : false,\n\t\t\t}),\n\t\t\t\"utf8\",\n\t\t);\n\t}\n\tconst gitignorePath = path.join(projectDir, \".gitignore\");\n\tconst existingGitignore = fs.existsSync(gitignorePath)\n\t\t? await fsp.readFile(gitignorePath, \"utf8\")\n\t\t: \"\";\n\tawait fsp.writeFile(\n\t\tgitignorePath,\n\t\tmergeTextLines(buildGitignore(), existingGitignore),\n\t\t\"utf8\",\n\t);\n\tawait normalizePackageJson(projectDir, resolvedPackageManager);\n\tif (isBuiltInTemplate) {\n\t\tconst variableGroups = getScaffoldTemplateVariableGroups(variables);\n\t\tawait applyGeneratedProjectDxPackageJson({\n\t\t\tcompoundPersistenceEnabled:\n\t\t\t\tvariableGroups.compound.enabled &&\n\t\t\t\tvariableGroups.compound.persistenceEnabled,\n\t\t\tpackageManager: resolvedPackageManager,\n\t\t\tprojectDir,\n\t\t\ttemplateId: resolvedTemplateId,\n\t\t\twithTestPreset,\n\t\t\twithWpEnv,\n\t\t});\n\t}\n\tawait normalizePackageManagerFiles(projectDir, resolvedPackageManager);\n\tawait removeUnexpectedLockfiles(projectDir, resolvedPackageManager);\n\tawait replaceTextRecursively(projectDir, resolvedPackageManager, {\n\t\trepositoryReference,\n\t});\n\n\tif (!noInstall) {\n\t\tawait reportScaffoldProgress(onProgress, {\n\t\t\tdetail: \"Installing project dependencies with the selected package manager.\",\n\t\t\tphase: \"install-dependencies\",\n\t\t\ttitle: \"Installing dependencies\",\n\t\t});\n\t\tconst installer = installDependencies ?? defaultInstallDependencies;\n\t\tawait installer({\n\t\t\tprojectDir,\n\t\t\tpackageManager: resolvedPackageManager,\n\t\t});\n\t}\n\n\treturn {\n\t\tprojectDir,\n\t\tselectedVariant: templateSource.selectedVariant ?? null,\n\t\ttemplateId: resolvedTemplateId,\n\t\tpackageManager: resolvedPackageManager,\n\t\tvariables,\n\t\twarnings: templateSource.warnings ?? [],\n\t};\n}\n",
|
|
75
76
|
"import fs from \"node:fs\";\nimport { promises as fsp } from \"node:fs\";\nimport path from \"node:path\";\nimport { execSync } from \"node:child_process\";\nimport { fileURLToPath } from \"node:url\";\n\nimport {\n\tapplyGeneratedProjectDxPackageJson,\n\tapplyLocalDevPresetFiles,\n} from \"./local-dev-presets.js\";\nimport { applyMigrationUiCapability } from \"./migration-ui-capability.js\";\nimport { getPackageVersions } from \"./package-versions.js\";\nimport {\n\tensureMigrationDirectories,\n\twriteInitialMigrationScaffold,\n\twriteMigrationConfig,\n} from \"./migration-project.js\";\nimport {\n\tsyncPersistenceRestArtifacts,\n} from \"./persistence-rest-artifacts.js\";\nimport {\n\tbuildGitignore,\n\tbuildReadme,\n\tmergeTextLines,\n} from \"./scaffold-documents.js\";\nimport {\n\tgetStarterManifestFiles,\n\tstringifyStarterManifest,\n} from \"./starter-manifests.js\";\nimport {\n\tformatNonEmptyTargetDirectoryError,\n} from \"./scaffold-bootstrap.js\";\nimport {\n\tstringifyBuiltInBlockJsonDocument,\n\ttype BuiltInBlockArtifact,\n} from \"./built-in-block-artifacts.js\";\nimport type { BuiltInCodeArtifact } from \"./built-in-block-code-artifacts.js\";\nimport {\n\tOFFICIAL_WORKSPACE_TEMPLATE_PACKAGE,\n\ttype BuiltInTemplateId,\n} from \"./template-registry.js\";\nimport { copyInterpolatedDirectory } from \"./template-render.js\";\nimport type { PackageManagerId } from \"./package-managers.js\";\nimport {\n\tformatInstallCommand,\n\tformatPackageExecCommand,\n\ttransformPackageManagerText,\n} from \"./package-managers.js\";\nimport { normalizePackageJson } from \"./scaffold-package-manager-files.js\";\nimport {\n\treplaceRepositoryReferencePlaceholders,\n\tresolveScaffoldRepositoryReference,\n} from \"./scaffold-repository-reference.js\";\nimport type {\n\tScaffoldProgressEvent,\n\tScaffoldTemplateVariables,\n} from \"./scaffold.js\";\n\nexport {\n\tbuildGitignore,\n\tbuildReadme,\n\tmergeTextLines,\n} from \"./scaffold-documents.js\";\n\nexport interface InstallDependenciesOptions {\n\tpackageManager: PackageManagerId;\n\tprojectDir: string;\n}\n\nasync function reportScaffoldProgress(\n\tonProgress:\n\t\t| ((event: ScaffoldProgressEvent) => void | Promise<void>)\n\t\t| undefined,\n\tevent: ScaffoldProgressEvent,\n): Promise<void> {\n\tawait onProgress?.(event);\n}\n\ninterface GeneratedPackageJson {\n\tdependencies?: Record<string, string>;\n\tscripts?: Record<string, string>;\n\twpTypia?: {\n\t\tprojectType?: string;\n\t\ttemplatePackage?: string;\n\t};\n\tpackageManager?: string;\n}\n\nconst EPHEMERAL_NODE_MODULES_LINK_TYPE = process.platform === \"win32\" ? \"junction\" : \"dir\";\nconst __dirname = path.dirname(fileURLToPath(import.meta.url));\nconst LOCKFILES: Record<PackageManagerId, string[]> = {\n\tbun: [\"bun.lock\", \"bun.lockb\"],\n\tnpm: [\"package-lock.json\"],\n\tpnpm: [\"pnpm-lock.yaml\"],\n\tyarn: [\"yarn.lock\"],\n};\n\nexport async function ensureDirectory(targetDir: string, allowExisting = false): Promise<void> {\n\tif (!fs.existsSync(targetDir)) {\n\t\tawait fsp.mkdir(targetDir, { recursive: true });\n\t\treturn;\n\t}\n\n\tif (allowExisting) {\n\t\treturn;\n\t}\n\n\tconst entries = await fsp.readdir(targetDir);\n\tif (entries.length > 0) {\n\t\tthrow new Error(formatNonEmptyTargetDirectoryError(targetDir));\n\t}\n}\n\nexport async function writeStarterManifestFiles(\n\ttargetDir: string,\n\ttemplateId: string,\n\tvariables: ScaffoldTemplateVariables,\n\tartifacts?: readonly BuiltInBlockArtifact[],\n): Promise<void> {\n\tconst manifests = artifacts\n\t\t? artifacts.map((artifact) => ({\n\t\t\t\tdocument: artifact.manifestDocument,\n\t\t\t\trelativePath: `${artifact.relativeDir}/typia.manifest.json`,\n\t\t\t}))\n\t\t: getStarterManifestFiles(templateId, variables);\n\n\tfor (const { document, relativePath } of manifests) {\n\t\tconst destinationPath = path.join(targetDir, relativePath);\n\t\tawait fsp.mkdir(path.dirname(destinationPath), { recursive: true });\n\t\tawait fsp.writeFile(destinationPath, stringifyStarterManifest(document), \"utf8\");\n\t}\n}\n\nasync function writeBuiltInStructuralArtifacts(\n\ttargetDir: string,\n\tartifacts: readonly BuiltInBlockArtifact[],\n): Promise<void> {\n\tfor (const artifact of artifacts) {\n\t\tconst destinationDir = path.join(targetDir, artifact.relativeDir);\n\t\tawait fsp.mkdir(destinationDir, { recursive: true });\n\t\tawait fsp.writeFile(\n\t\t\tpath.join(destinationDir, \"types.ts\"),\n\t\t\tartifact.typesSource,\n\t\t\t\"utf8\",\n\t\t);\n\t\tawait fsp.writeFile(\n\t\t\tpath.join(destinationDir, \"block.json\"),\n\t\t\tstringifyBuiltInBlockJsonDocument(artifact.blockJsonDocument),\n\t\t\t\"utf8\",\n\t\t);\n\t}\n}\n\nasync function writeBuiltInCodeArtifacts(\n\ttargetDir: string,\n\tcodeArtifacts: readonly BuiltInCodeArtifact[],\n): Promise<void> {\n\tfor (const artifact of codeArtifacts) {\n\t\tconst destinationPath = path.join(targetDir, artifact.relativePath);\n\t\tawait fsp.mkdir(path.dirname(destinationPath), { recursive: true });\n\t\tawait fsp.writeFile(destinationPath, artifact.source, \"utf8\");\n\t}\n}\n\nfunction resolveScaffoldGeneratorNodeModulesPath(): string | null {\n\tconst projectToolsPackageRoot = path.resolve(__dirname, \"..\", \"..\");\n\tconst candidates = [\n\t\tpath.join(projectToolsPackageRoot, \"node_modules\"),\n\t\tpath.resolve(projectToolsPackageRoot, \"..\", \"..\"),\n\t\tpath.resolve(projectToolsPackageRoot, \"..\", \"..\", \"node_modules\"),\n\t];\n\n\tfor (const candidate of candidates) {\n\t\tif (fs.existsSync(path.join(candidate, \"typia\", \"package.json\"))) {\n\t\t\treturn candidate;\n\t\t}\n\t}\n\n\treturn null;\n}\n\nasync function withEphemeralScaffoldNodeModules(\n\ttargetDir: string,\n\tcallback: () => Promise<void>,\n): Promise<void> {\n\tconst targetNodeModulesPath = path.join(targetDir, \"node_modules\");\n\tif (fs.existsSync(targetNodeModulesPath)) {\n\t\tawait callback();\n\t\treturn;\n\t}\n\n\tconst sourceNodeModulesPath = resolveScaffoldGeneratorNodeModulesPath();\n\tif (!sourceNodeModulesPath) {\n\t\tthrow new Error(\n\t\t\t\"Unable to resolve a node_modules directory with typia for scaffold-time REST artifact generation.\",\n\t\t);\n\t}\n\n\tawait fsp.symlink(sourceNodeModulesPath, targetNodeModulesPath, EPHEMERAL_NODE_MODULES_LINK_TYPE);\n\n\ttry {\n\t\tawait callback();\n\t} finally {\n\t\tawait fsp.rm(targetNodeModulesPath, { force: true, recursive: true });\n\t}\n}\n\n/**\n * Seed REST-derived persistence artifacts into a newly scaffolded built-in\n * project before the first manual `sync-rest` run.\n */\nexport async function seedBuiltInPersistenceArtifacts(\n\ttargetDir: string,\n\ttemplateId: BuiltInTemplateId,\n\tvariables: ScaffoldTemplateVariables,\n): Promise<void> {\n\tconst needsPersistenceArtifacts =\n\t\ttemplateId === \"persistence\" ||\n\t\t(templateId === \"compound\" && variables.compoundPersistenceEnabled === \"true\");\n\n\tif (!needsPersistenceArtifacts) {\n\t\treturn;\n\t}\n\n\tawait withEphemeralScaffoldNodeModules(targetDir, async () => {\n\t\tif (templateId === \"persistence\") {\n\t\t\tawait syncPersistenceRestArtifacts({\n\t\t\t\tapiTypesFile: path.join(\"src\", \"api-types.ts\"),\n\t\t\t\toutputDir: \"src\",\n\t\t\t\tprojectDir: targetDir,\n\t\t\t\tvariables,\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\n\t\tawait syncPersistenceRestArtifacts({\n\t\t\tapiTypesFile: path.join(\"src\", \"blocks\", variables.slugKebabCase, \"api-types.ts\"),\n\t\t\toutputDir: path.join(\"src\", \"blocks\", variables.slugKebabCase),\n\t\t\tprojectDir: targetDir,\n\t\t\tvariables,\n\t\t});\n\t});\n}\n\nexport async function normalizePackageManagerFiles(\n\ttargetDir: string,\n\tpackageManagerId: PackageManagerId,\n): Promise<void> {\n\tconst yarnRcPath = path.join(targetDir, \".yarnrc.yml\");\n\n\tif (packageManagerId === \"yarn\") {\n\t\tawait fsp.writeFile(yarnRcPath, \"nodeLinker: node-modules\\n\", \"utf8\");\n\t\treturn;\n\t}\n\n\tif (fs.existsSync(yarnRcPath)) {\n\t\tawait fsp.rm(yarnRcPath, { force: true });\n\t}\n}\n\nexport async function removeQueryLoopPlaceholderFiles(\n\tprojectDir: string,\n\ttemplateId: string,\n): Promise<void> {\n\tif (templateId !== \"query-loop\") {\n\t\treturn;\n\t}\n\n\tawait fsp.rm(path.join(projectDir, \"src\", \"validator-toolkit.ts\"), {\n\t\tforce: true,\n\t});\n}\n\nexport async function removeUnexpectedLockfiles(\n\ttargetDir: string,\n\tpackageManagerId: PackageManagerId,\n): Promise<void> {\n\tconst keep = new Set(LOCKFILES[packageManagerId] ?? []);\n\tconst allLockfiles = Object.values(LOCKFILES).flat();\n\n\tawait Promise.all(\n\t\tallLockfiles.map(async (filename) => {\n\t\t\tif (keep.has(filename)) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst filePath = path.join(targetDir, filename);\n\t\t\tif (fs.existsSync(filePath)) {\n\t\t\t\tawait fsp.rm(filePath, { force: true });\n\t\t\t}\n\t\t}),\n\t);\n}\n\n/**\n * Recursively normalizes generated text files for the selected package manager\n * and repository reference.\n */\nexport async function replaceTextRecursively(\n\ttargetDir: string,\n\tpackageManagerId: PackageManagerId,\n\t{\n\t\trepositoryManifestPaths,\n\t\trepositoryReference,\n\t}: {\n\t\trepositoryManifestPaths?: readonly string[];\n\t\trepositoryReference?: string;\n\t} = {},\n): Promise<void> {\n\tconst textExtensions = new Set([\n\t\t\".css\",\n\t\t\".js\",\n\t\t\".json\",\n\t\t\".jsx\",\n\t\t\".md\",\n\t\t\".php\",\n\t\t\".scss\",\n\t\t\".ts\",\n\t\t\".tsx\",\n\t\t\".txt\",\n\t]);\n\tconst resolvedRepositoryReference =\n\t\trepositoryReference ??\n\t\tresolveScaffoldRepositoryReference({\n\t\t\tmanifestPaths: repositoryManifestPaths,\n\t\t});\n\n\tasync function visit(currentPath: string): Promise<void> {\n\t\tconst stats = await fsp.stat(currentPath);\n\t\tif (stats.isDirectory()) {\n\t\t\tconst entries = await fsp.readdir(currentPath);\n\t\t\tfor (const entry of entries) {\n\t\t\t\tawait visit(path.join(currentPath, entry));\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\tif (path.basename(currentPath) === \"package.json\" || !textExtensions.has(path.extname(currentPath))) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst content = await fsp.readFile(currentPath, \"utf8\");\n\t\tconst nextContent = replaceRepositoryReferencePlaceholders(\n\t\t\ttransformPackageManagerText(content, packageManagerId),\n\t\t\tresolvedRepositoryReference,\n\t\t);\n\n\t\tif (nextContent !== content) {\n\t\t\tawait fsp.writeFile(currentPath, nextContent, \"utf8\");\n\t\t}\n\t}\n\n\tawait visit(targetDir);\n}\n\nexport async function defaultInstallDependencies({\n\tprojectDir,\n\tpackageManager,\n}: InstallDependenciesOptions): Promise<void> {\n\texecSync(formatInstallCommand(packageManager), {\n\t\tcwd: projectDir,\n\t\tstdio: \"inherit\",\n\t});\n}\n\nexport function isOfficialWorkspaceProject(projectDir: string): boolean {\n\tconst packageJsonPath = path.join(projectDir, \"package.json\");\n\tif (!fs.existsSync(packageJsonPath)) {\n\t\treturn false;\n\t}\n\n\tconst packageJson = JSON.parse(fs.readFileSync(packageJsonPath, \"utf8\")) as GeneratedPackageJson;\n\treturn (\n\t\tpackageJson.wpTypia?.projectType === \"workspace\" &&\n\t\tpackageJson.wpTypia?.templatePackage === OFFICIAL_WORKSPACE_TEMPLATE_PACKAGE\n\t);\n}\n\nexport async function applyWorkspaceMigrationCapability(\n\tprojectDir: string,\n\tpackageManager: PackageManagerId,\n): Promise<void> {\n\tconst packageJsonPath = path.join(projectDir, \"package.json\");\n\tconst packageJson = JSON.parse(\n\t\tawait fsp.readFile(packageJsonPath, \"utf8\"),\n\t) as GeneratedPackageJson;\n\tconst wpTypiaPackageVersion = getPackageVersions().wpTypiaPackageVersion;\n\tconst canonicalCliSpecifier =\n\t\twpTypiaPackageVersion === \"^0.0.0\"\n\t\t\t? \"wp-typia\"\n\t\t\t: `wp-typia@${wpTypiaPackageVersion.replace(/^[~^]/u, \"\")}`;\n\tconst migrationCli = (args: string) =>\n\t\tformatPackageExecCommand(packageManager, canonicalCliSpecifier, `migrate ${args}`);\n\n\tpackageJson.scripts = {\n\t\t...(packageJson.scripts ?? {}),\n\t\t\"migration:init\": migrationCli(\"init --current-migration-version v1\"),\n\t\t\"migration:snapshot\": migrationCli(\"snapshot\"),\n\t\t\"migration:diff\": migrationCli(\"diff\"),\n\t\t\"migration:scaffold\": migrationCli(\"scaffold\"),\n\t\t\"migration:doctor\": migrationCli(\"doctor --all\"),\n\t\t\"migration:fixtures\": migrationCli(\"fixtures --all\"),\n\t\t\"migration:verify\": migrationCli(\"verify --all\"),\n\t\t\"migration:fuzz\": migrationCli(\"fuzz --all\"),\n\t};\n\n\tawait fsp.writeFile(packageJsonPath, `${JSON.stringify(packageJson, null, \"\\t\")}\\n`, \"utf8\");\n\n\twriteMigrationConfig(projectDir, {\n\t\tblocks: [],\n\t\tcurrentMigrationVersion: \"v1\",\n\t\tsnapshotDir: \"src/migrations/versions\",\n\t\tsupportedMigrationVersions: [\"v1\"],\n\t});\n\tensureMigrationDirectories(projectDir, []);\n\twriteInitialMigrationScaffold(projectDir, \"v1\", []);\n}\n\n/**\n * Applies a built-in scaffold into the target directory, including generated\n * code artifacts, starter manifests, preset files, and placeholder rewrites.\n */\nexport async function applyBuiltInScaffoldProjectFiles({\n\tprojectDir,\n\ttemplateDir,\n\ttemplateId,\n\tvariables,\n\tartifacts,\n\tcodeArtifacts,\n\treadmeContent,\n\tgitignoreContent,\n\tallowExistingDir = false,\n\tpackageManager,\n\twithMigrationUi = false,\n\twithTestPreset = false,\n\twithWpEnv = false,\n\tnoInstall = false,\n\tinstallDependencies,\n\trepositoryReference,\n\tonProgress,\n}: {\n\tprojectDir: string;\n\ttemplateDir: string;\n\ttemplateId: BuiltInTemplateId;\n\tvariables: ScaffoldTemplateVariables;\n\tartifacts?: readonly BuiltInBlockArtifact[];\n\tcodeArtifacts?: readonly BuiltInCodeArtifact[];\n\treadmeContent?: string;\n\tgitignoreContent?: string;\n\tallowExistingDir?: boolean;\n\tpackageManager: PackageManagerId;\n\twithMigrationUi?: boolean;\n\twithTestPreset?: boolean;\n\twithWpEnv?: boolean;\n\tnoInstall?: boolean;\n\tinstallDependencies?: ((options: InstallDependenciesOptions) => Promise<void>) | undefined;\n\trepositoryReference?: string;\n\tonProgress?: ((event: ScaffoldProgressEvent) => void | Promise<void>) | undefined;\n}): Promise<void> {\n\tawait ensureDirectory(projectDir, allowExistingDir);\n\tawait reportScaffoldProgress(onProgress, {\n\t\tdetail: \"Copying built-in template files and writing generated source modules.\",\n\t\tphase: \"generate-files\",\n\t\ttitle: \"Generating project files\",\n\t});\n\tawait copyInterpolatedDirectory(templateDir, projectDir, variables);\n\tif (codeArtifacts && codeArtifacts.length > 0) {\n\t\tawait writeBuiltInCodeArtifacts(projectDir, codeArtifacts);\n\t}\n\tif (artifacts && artifacts.length > 0) {\n\t\tawait writeBuiltInStructuralArtifacts(projectDir, artifacts);\n\t}\n\tawait reportScaffoldProgress(onProgress, {\n\t\tdetail: \"Writing starter manifests, local presets, and seeded template artifacts.\",\n\t\tphase: \"seed-artifacts\",\n\t\ttitle: \"Seeding scaffold artifacts\",\n\t});\n\tawait writeStarterManifestFiles(projectDir, templateId, variables, artifacts);\n\tawait seedBuiltInPersistenceArtifacts(projectDir, templateId, variables);\n\tawait applyLocalDevPresetFiles({\n\t\tprojectDir,\n\t\tvariables,\n\t\twithTestPreset,\n\t\twithWpEnv,\n\t});\n\tif (withMigrationUi) {\n\t\tawait applyMigrationUiCapability({\n\t\t\tpackageManager,\n\t\t\tprojectDir,\n\t\t\ttemplateId,\n\t\t\tvariables,\n\t\t});\n\t}\n\n\tawait reportScaffoldProgress(onProgress, {\n\t\tdetail: \"Writing README, normalizing package metadata, and aligning package-manager files.\",\n\t\tphase: \"finalize-project\",\n\t\ttitle: \"Finalizing scaffold output\",\n\t});\n\tconst readmePath = path.join(projectDir, \"README.md\");\n\tif (!fs.existsSync(readmePath)) {\n\t\tawait fsp.writeFile(\n\t\t\treadmePath,\n\t\t\treadmeContent ??\n\t\t\t\tbuildReadme(templateId, variables, packageManager, {\n\t\t\t\t\twithMigrationUi,\n\t\t\t\t\twithTestPreset,\n\t\t\t\t\twithWpEnv,\n\t\t\t\t}),\n\t\t\t\"utf8\",\n\t\t);\n\t}\n\tconst gitignorePath = path.join(projectDir, \".gitignore\");\n\tconst existingGitignore = fs.existsSync(gitignorePath)\n\t\t? await fsp.readFile(gitignorePath, \"utf8\")\n\t\t: \"\";\n\tawait fsp.writeFile(\n\t\tgitignorePath,\n\t\tmergeTextLines(gitignoreContent ?? buildGitignore(), existingGitignore),\n\t\t\"utf8\",\n\t);\n\tawait normalizePackageJson(projectDir, packageManager);\n\tawait applyGeneratedProjectDxPackageJson({\n\t\tcompoundPersistenceEnabled: variables.compoundPersistenceEnabled === \"true\",\n\t\tpackageManager,\n\t\tprojectDir,\n\t\ttemplateId,\n\t\twithTestPreset,\n\t\twithWpEnv,\n\t});\n\tawait removeQueryLoopPlaceholderFiles(projectDir, templateId);\n\tawait normalizePackageManagerFiles(projectDir, packageManager);\n\tawait removeUnexpectedLockfiles(projectDir, packageManager);\n\tawait replaceTextRecursively(projectDir, packageManager, {\n\t\trepositoryReference,\n\t});\n\n\tif (!noInstall) {\n\t\tawait reportScaffoldProgress(onProgress, {\n\t\t\tdetail: \"Installing project dependencies with the selected package manager.\",\n\t\t\tphase: \"install-dependencies\",\n\t\t\ttitle: \"Installing dependencies\",\n\t\t});\n\t\tconst installer = installDependencies ?? defaultInstallDependencies;\n\t\tawait installer({\n\t\t\tprojectDir,\n\t\t\tpackageManager,\n\t\t});\n\t}\n}\n",
|
|
76
77
|
"import { promises as fsp } from \"node:fs\";\nimport path from \"node:path\";\n\nimport { getPackageVersions } from \"./package-versions.js\";\nimport { formatPackageExecCommand } from \"./package-managers.js\";\nimport type { PackageManagerId } from \"./package-managers.js\";\nimport { seedProjectMigrations } from \"./migrations.js\";\nimport { copyInterpolatedDirectory } from \"./template-render.js\";\nimport {\n\tSHARED_MIGRATION_UI_TEMPLATE_ROOT,\n} from \"./template-registry.js\";\nimport type { MigrationBlockConfig } from \"./migration-types.js\";\nimport type { ScaffoldTemplateVariables } from \"./scaffold.js\";\n\ninterface PackageJsonShape {\n\tdependencies?: Record<string, string>;\n\tscripts?: Record<string, string>;\n}\n\ninterface ApplyMigrationUiCapabilityOptions {\n\tpackageManager: PackageManagerId;\n\tprojectDir: string;\n\ttemplateId: string;\n\tvariables: ScaffoldTemplateVariables;\n}\n\nconst INITIAL_MIGRATION_VERSION = \"v1\";\nconst BLOCK_METADATA_IMPORT_LINE = \"import metadata from './block-metadata';\";\nconst LEGACY_BLOCK_JSON_IMPORT_LINE = \"import metadata from './block.json';\";\n\nasync function mutatePackageJson(\n\tprojectDir: string,\n\tmutate: (packageJson: PackageJsonShape) => void,\n): Promise<void> {\n\tconst packageJsonPath = path.join(projectDir, \"package.json\");\n\tconst packageJson = JSON.parse(await fsp.readFile(packageJsonPath, \"utf8\")) as PackageJsonShape;\n\tmutate(packageJson);\n\tawait fsp.writeFile(packageJsonPath, `${JSON.stringify(packageJson, null, \"\\t\")}\\n`, \"utf8\");\n}\n\nasync function patchFile(\n\tfilePath: string,\n\ttransform: (source: string) => string,\n): Promise<void> {\n\tconst source = await fsp.readFile(filePath, \"utf8\");\n\tconst nextSource = transform(source);\n\tif (nextSource === source) {\n\t\tthrow new Error(`Unable to apply migration UI patch for ${filePath}`);\n\t}\n\tawait fsp.writeFile(filePath, nextSource, \"utf8\");\n}\n\nfunction injectAfter(source: string, needle: string, insertion: string): string {\n\tif (source.includes(insertion)) {\n\t\treturn source;\n\t}\n\tif (!source.includes(needle)) {\n\t\treturn source;\n\t}\n\treturn source.replace(needle, `${needle}\\n${insertion}`);\n}\n\nfunction injectBefore(source: string, needle: string, insertion: string): string {\n\tif (source.includes(insertion)) {\n\t\treturn source;\n\t}\n\tif (!source.includes(needle)) {\n\t\treturn source;\n\t}\n\treturn source.replace(needle, `${insertion}\\n${needle}`);\n}\n\nfunction injectAfterBlockMetadataImport(source: string, insertion: string): string {\n\tconst nextSource = injectAfter(source, BLOCK_METADATA_IMPORT_LINE, insertion);\n\tif (nextSource !== source) {\n\t\treturn nextSource;\n\t}\n\n\treturn injectAfter(source, LEGACY_BLOCK_JSON_IMPORT_LINE, insertion);\n}\n\nfunction buildMigrationBlocks(\n\ttemplateId: string,\n\tvariables: ScaffoldTemplateVariables,\n): MigrationBlockConfig[] {\n\tif (templateId === \"compound\") {\n\t\treturn [\n\t\t\t{\n\t\t\t\tblockJsonFile: `src/blocks/${variables.slugKebabCase}/block.json`,\n\t\t\t\tblockName: `${variables.namespace}/${variables.slugKebabCase}`,\n\t\t\t\tkey: variables.slugKebabCase,\n\t\t\t\tmanifestFile: `src/blocks/${variables.slugKebabCase}/typia.manifest.json`,\n\t\t\t\tsaveFile: `src/blocks/${variables.slugKebabCase}/save.tsx`,\n\t\t\t\ttypesFile: `src/blocks/${variables.slugKebabCase}/types.ts`,\n\t\t\t},\n\t\t\t{\n\t\t\t\tblockJsonFile: `src/blocks/${variables.slugKebabCase}-item/block.json`,\n\t\t\t\tblockName: `${variables.namespace}/${variables.slugKebabCase}-item`,\n\t\t\t\tkey: `${variables.slugKebabCase}-item`,\n\t\t\t\tmanifestFile: `src/blocks/${variables.slugKebabCase}-item/typia.manifest.json`,\n\t\t\t\tsaveFile: `src/blocks/${variables.slugKebabCase}-item/save.tsx`,\n\t\t\t\ttypesFile: `src/blocks/${variables.slugKebabCase}-item/types.ts`,\n\t\t\t},\n\t\t];\n\t}\n\n\treturn [\n\t\t{\n\t\t\tblockJsonFile: \"src/block.json\",\n\t\t\tblockName: `${variables.namespace}/${variables.slugKebabCase}`,\n\t\t\tkey: variables.slugKebabCase,\n\t\t\tmanifestFile: \"src/typia.manifest.json\",\n\t\t\tsaveFile: \"src/save.tsx\",\n\t\t\ttypesFile: \"src/types.ts\",\n\t\t},\n\t];\n}\n\nasync function applySingleBlockPatches(\n\tprojectDir: string,\n\tvariables: ScaffoldTemplateVariables,\n): Promise<void> {\n\tconst editPath = path.join(projectDir, \"src\", \"edit.tsx\");\n\tconst indexPath = path.join(projectDir, \"src\", \"index.tsx\");\n\tconst deprecatedImport = `import { deprecated } from './migrations/generated/${variables.slugKebabCase}/deprecated';`;\n\tconst deprecatedLine = \" deprecated,\";\n\tconst dashboardImport = `import { MigrationDashboard } from './admin/migration-dashboard';`;\n\tconst migrationPanel = `\\n <PanelBody title={__('Migration Manager', '${variables.textDomain}')}>\\n <MigrationDashboard />\\n </PanelBody>\\n </InspectorControls>`;\n\n\tawait patchFile(indexPath, (source) => {\n\t\tlet nextSource = injectAfterBlockMetadataImport(source, deprecatedImport);\n\t\tnextSource = injectBefore(nextSource, \" edit: Edit,\", deprecatedLine);\n\t\treturn nextSource;\n\t});\n\n\tawait patchFile(editPath, (source) => {\n\t\tlet nextSource = injectAfter(source, \"import { useTypiaValidation } from './hooks';\", dashboardImport);\n\t\tnextSource = nextSource.replace(\"</InspectorControls>\", migrationPanel);\n\t\treturn nextSource;\n\t});\n}\n\nasync function applyCompoundPatches(\n\tprojectDir: string,\n\tvariables: ScaffoldTemplateVariables,\n): Promise<void> {\n\tconst parentEditPath = path.join(projectDir, \"src\", \"blocks\", variables.slugKebabCase, \"edit.tsx\");\n\tconst parentIndexPath = path.join(projectDir, \"src\", \"blocks\", variables.slugKebabCase, \"index.tsx\");\n\tconst childIndexPath = path.join(projectDir, \"src\", \"blocks\", `${variables.slugKebabCase}-item`, \"index.tsx\");\n\tconst addChildScriptPath = path.join(projectDir, \"scripts\", \"add-compound-child.ts\");\n\n\tawait patchFile(parentIndexPath, (source) => {\n\t\tlet nextSource = injectAfterBlockMetadataImport(\n\t\t\tsource,\n\t\t\t`import { deprecated } from '../../migrations/generated/${variables.slugKebabCase}/deprecated';`,\n\t\t);\n\t\tnextSource = injectBefore(\n\t\t\tnextSource,\n\t\t\t\"\\tedit: Edit,\",\n\t\t\t\"\\tdeprecated,\",\n\t\t);\n\t\treturn nextSource;\n\t});\n\n\tawait patchFile(childIndexPath, (source) => {\n\t\tlet nextSource = injectAfterBlockMetadataImport(\n\t\t\tsource,\n\t\t\t`import { deprecated } from '../../migrations/generated/${variables.slugKebabCase}-item/deprecated';`,\n\t\t);\n\t\tnextSource = injectBefore(\n\t\t\tnextSource,\n\t\t\t\"\\tedit: Edit,\",\n\t\t\t\"\\tdeprecated,\",\n\t\t);\n\t\treturn nextSource;\n\t});\n\n\tawait patchFile(parentEditPath, (source) => {\n\t\tlet nextSource = injectAfter(\n\t\t\tsource,\n\t\t\t\"import { useTypiaValidation } from './hooks';\",\n\t\t\t`import { MigrationDashboard } from '../../admin/migration-dashboard';`,\n\t\t);\n\t\tnextSource = nextSource.replace(\n\t\t\t\"</InspectorControls>\",\n\t\t\t`\\n\\t\\t\\t\\t<PanelBody title={ __( 'Migration Manager', '${variables.textDomain}' ) }>\\n\\t\\t\\t\\t\\t<MigrationDashboard />\\n\\t\\t\\t\\t</PanelBody>\\n\\t\\t\\t</InspectorControls>`,\n\t\t);\n\t\treturn nextSource;\n\t});\n\n\tawait patchFile(addChildScriptPath, (source) => {\n\t\tlet nextSource = injectAfter(\n\t\t\tsource,\n\t\t\t\"const PROJECT_ROOT = process.cwd();\",\n\t\t\t\"const MIGRATION_CONFIG_FILE = path.join( PROJECT_ROOT, 'src', 'migrations', 'config.ts' );\",\n\t\t);\n\t\tnextSource = injectAfterBlockMetadataImport(\n\t\t\tnextSource,\n\t\t\t\"import { deprecated } from '../../migrations/generated/${ childFolderSlug }/deprecated';\",\n\t\t);\n\t\tnextSource = nextSource.replace(\n\t\t\t\"\\\\t\\\\tedit: Edit,\\n\\\\t\\\\tsave: Save,\",\n\t\t\t\"\\\\t\\\\tdeprecated,\\n\\\\t\\\\tedit: Edit,\\n\\\\t\\\\tsave: Save,\",\n\t\t);\n\t\tnextSource = injectAfter(\n\t\t\tnextSource,\n\t\t\t\"function insertBeforeMarker( filePath: string, marker: string, insertionLines: string[] ) {\",\n\t\t\t\"\",\n\t\t);\n\t\tif ( ! nextSource.includes( \"function appendMigrationBlockConfig\" ) ) {\n\t\t\tconst appendMigrationHelper = [\n\t\t\t\t\"function appendMigrationBlockConfig( filePath: string, childBlockName: string, childFolderSlug: string ) {\",\n\t\t\t\t\"\\tif ( ! fs.existsSync( filePath ) ) {\",\n\t\t\t\t\"\\t\\treturn;\",\n\t\t\t\t\"\\t}\",\n\t\t\t\t\"\",\n\t\t\t\t\"\\tconst source = fs.readFileSync( filePath, 'utf8' );\",\n\t\t\t\t\"\\tconst blockEntry = [\",\n\t\t\t\t\"\\t\\t`\\\\t\\\\t{`,\",\n\t\t\t\t\"\\t\\t`\\\\t\\\\t\\\\tkey: '${ childFolderSlug }',`,\",\n\t\t\t\t\"\\t\\t`\\\\t\\\\t\\\\tblockName: '${ childBlockName }',`,\",\n\t\t\t\t\"\\t\\t`\\\\t\\\\t\\\\tblockJsonFile: 'src/blocks/${ childFolderSlug }/block.json',`,\",\n\t\t\t\t\"\\t\\t`\\\\t\\\\t\\\\tmanifestFile: 'src/blocks/${ childFolderSlug }/typia.manifest.json',`,\",\n\t\t\t\t\"\\t\\t`\\\\t\\\\t\\\\tsaveFile: 'src/blocks/${ childFolderSlug }/save.tsx',`,\",\n\t\t\t\t\"\\t\\t`\\\\t\\\\t\\\\ttypesFile: 'src/blocks/${ childFolderSlug }/types.ts',`,\",\n\t\t\t\t\"\\t\\t`\\\\t\\\\t},`,\",\n\t\t\t\t\"\\t].join( '\\\\n' );\",\n\t\t\t\t\"\\tif ( source.includes( `key: '${ childFolderSlug }'` ) ) {\",\n\t\t\t\t\"\\t\\treturn;\",\n\t\t\t\t\"\\t}\",\n\t\t\t\t\"\\tconst nextSource = source.replace( /\\\\tblocks:\\\\s*\\\\[([\\\\s\\\\S]*?)\\\\n\\\\t\\\\],/m, ( match ) => {\",\n\t\t\t\t\"\\t\\treturn match.replace( /\\\\n\\\\t\\\\],$/, `\\\\n${ blockEntry }\\\\n\\\\t],` );\",\n\t\t\t\t\"\\t} );\",\n\t\t\t\t\"\\tfs.writeFileSync( filePath, nextSource, 'utf8' );\",\n\t\t\t\t\"}\",\n\t\t\t\t\"\",\n\t\t\t\t\"function renderBlockJson(\",\n\t\t\t].join( \"\\n\" );\n\t\t\tnextSource = nextSource.replace(\n\t\t\t\t\"function renderBlockJson(\",\n\t\t\t\tappendMigrationHelper,\n\t\t\t);\n\t\t}\n\t\tnextSource = nextSource.replace(\n\t\t\t\"console.log( `✅ Added compound child block ${ childBlockName }` );\",\n\t\t\t\"appendMigrationBlockConfig( MIGRATION_CONFIG_FILE, childBlockName, childFolderSlug );\\n\\n\\tconsole.log( `✅ Added compound child block ${ childBlockName }` );\",\n\t\t);\n\t\treturn nextSource;\n\t});\n}\n\n/**\n * Layer the migration dashboard capability onto a freshly scaffolded project.\n *\n * This copies the shared migration UI files, wires template-specific editor\n * hooks, and injects pinned migration scripts that shell out to the matching\n * `wp-typia` CLI version.\n */\nexport async function applyMigrationUiCapability({\n\tpackageManager,\n\tprojectDir,\n\ttemplateId,\n\tvariables,\n}: ApplyMigrationUiCapabilityOptions): Promise<void> {\n\tconst commonTemplateDir = path.join(\n\t\tSHARED_MIGRATION_UI_TEMPLATE_ROOT,\n\t\t\"common\",\n\t);\n\tawait copyInterpolatedDirectory(commonTemplateDir, projectDir, variables);\n\n\tawait mutatePackageJson(projectDir, (packageJson) => {\n\t\tconst wpTypiaPackageVersion = getPackageVersions().wpTypiaPackageVersion;\n\t\tconst canonicalCliSpecifier =\n\t\t\twpTypiaPackageVersion === \"^0.0.0\"\n\t\t\t\t? \"wp-typia\"\n\t\t\t\t: `wp-typia@${wpTypiaPackageVersion.replace(/^[~^]/u, \"\")}`;\n\t\tconst migrationCli = (args: string) =>\n\t\t\tformatPackageExecCommand(packageManager, canonicalCliSpecifier, `migrate ${args}`);\n\t\tpackageJson.dependencies = {\n\t\t\t...(packageJson.dependencies ?? {}),\n\t\t\t\"@wordpress/api-fetch\": \"^7.42.0\",\n\t\t};\n\t\tpackageJson.scripts = {\n\t\t\t...(packageJson.scripts ?? {}),\n\t\t\t\"migration:init\": migrationCli(`init --current-migration-version ${INITIAL_MIGRATION_VERSION}`),\n\t\t\t\"migration:snapshot\": migrationCli(\"snapshot\"),\n\t\t\t\"migration:diff\": migrationCli(\"diff\"),\n\t\t\t\"migration:scaffold\": migrationCli(\"scaffold\"),\n\t\t\t\"migration:doctor\": migrationCli(\"doctor --all\"),\n\t\t\t\"migration:fixtures\": migrationCli(\"fixtures --all\"),\n\t\t\t\"migration:verify\": migrationCli(\"verify --all\"),\n\t\t\t\"migration:fuzz\": migrationCli(\"fuzz --all\"),\n\t\t};\n\t});\n\n\tif (templateId === \"compound\") {\n\t\tawait applyCompoundPatches(projectDir, variables);\n\t} else {\n\t\tawait applySingleBlockPatches(projectDir, variables);\n\t}\n\n\tawait seedProjectMigrations(projectDir, INITIAL_MIGRATION_VERSION, buildMigrationBlocks(templateId, variables));\n}\n",
|
|
77
|
-
"import { getPrimaryDevelopmentScript } from './local-dev-presets.js';\nimport {\n getCompoundExtensionWorkflowSection,\n getInitialCommitCommands,\n getInitialCommitNote,\n getOptionalOnboardingNote,\n getOptionalOnboardingSteps,\n getQuickStartWorkflowNote,\n getPhpRestExtensionPointsSection,\n getTemplateSourceOfTruthNote,\n} from './scaffold-onboarding.js';\nimport type { PackageManagerId } from './package-managers.js';\nimport {\n formatPackageExecCommand,\n formatInstallCommand,\n formatRunScript,\n} from './package-managers.js';\nimport { getPackageVersions } from './package-versions.js';\nimport type { ScaffoldTemplateVariables } from './scaffold.js';\n\n/**\n * Builds the generated README markdown for one scaffolded project.\n *\n * @param templateId Scaffold template family or template identifier.\n * @param variables Interpolated scaffold variables used in generated content.\n * @param packageManager Package manager used to format install and script commands.\n * @param options Optional README sections enabled by scaffold presets.\n * @returns Markdown README content for the generated project root.\n */\nexport function buildReadme(\n templateId: string,\n variables: ScaffoldTemplateVariables,\n packageManager: PackageManagerId,\n {\n withMigrationUi = false,\n withTestPreset = false,\n withWpEnv = false,\n }: {\n withMigrationUi?: boolean;\n withTestPreset?: boolean;\n withWpEnv?: boolean;\n } = {},\n): string {\n const optionalOnboardingSteps = getOptionalOnboardingSteps(packageManager, templateId, {\n compoundPersistenceEnabled: variables.compoundPersistenceEnabled === 'true',\n });\n const initialCommitCommands = getInitialCommitCommands();\n const sourceOfTruthNote = getTemplateSourceOfTruthNote(templateId, {\n compoundPersistenceEnabled: variables.compoundPersistenceEnabled === 'true',\n });\n const compoundPersistenceEnabled = variables.compoundPersistenceEnabled === 'true';\n const publicPersistencePolicyNote =\n variables.isPublicPersistencePolicy === 'true'\n ? 'Public persistence writes use signed short-lived tokens, per-request ids, and coarse rate limiting by default. Add application-specific abuse controls before using the same pattern for high-value metrics or experiments.'\n : null;\n const alternateRenderTargetSection =\n variables.hasAlternateRenderTargets === 'true'\n ? `## Alternate Render Targets\\n\\nThis scaffold keeps \\`${templateId === 'compound' ? `src/blocks/${variables.slugKebabCase}/render.php` : 'src/render.php'}\\` as the default web render boundary and also generates ${[\n variables.hasAlternateEmailRenderTarget === 'true'\n ? `\\`${templateId === 'compound' ? `src/blocks/${variables.slugKebabCase}/render-email.php` : 'src/render-email.php'}\\``\n : null,\n variables.hasAlternateMjmlRenderTarget === 'true'\n ? `\\`${templateId === 'compound' ? `src/blocks/${variables.slugKebabCase}/render-mjml.php` : 'src/render-mjml.php'}\\``\n : null,\n variables.hasAlternatePlainTextRenderTarget === 'true'\n ? `\\`${templateId === 'compound' ? `src/blocks/${variables.slugKebabCase}/render-text.php` : 'src/render-text.php'}\\``\n : null,\n ]\n .filter((value): value is string => Boolean(value))\n .join(', ')}. All of those entries delegate through \\`${templateId === 'compound' ? `src/blocks/${variables.slugKebabCase}/render-targets.php` : 'src/render-targets.php'}\\`, so attribute normalization, validation, and render-target adapter hooks stay aligned across web, email, MJML, and plain-text integrations.`\n : '';\n const compoundExtensionWorkflowSection = getCompoundExtensionWorkflowSection(\n packageManager,\n templateId,\n );\n const compoundInnerBlocksSection =\n templateId === 'compound'\n ? `## Compound InnerBlocks Presets\\n\\nThis scaffold starts with the \\`${variables.compoundInnerBlocksPreset}\\` preset for compound container authoring. Static nested relationships still belong in each generated \\`block.json\\` via \\`allowedBlocks\\`, \\`parent\\`, and \\`ancestor\\`, while \\`src/blocks/${variables.slugKebabCase}/children.ts\\` owns editor-only \\`InnerBlocks\\` behavior such as \\`orientation\\`, \\`templateLock\\`, \\`defaultBlock\\`, and \\`directInsert\\`.\\n\\n- \\`freeform\\`: unlocked inserter flow with the starter child template.\\n- \\`ordered\\`: vertical ordered flow with \\`templateLock=\"insert\"\\` and direct inserts.\\n- \\`horizontal\\`: row-like nested authoring with direct inserts.\\n- \\`locked-structure\\`: fully locked starter structure.\\n\\nWhen you need to change that authoring behavior later, update the preset helpers in \\`src/blocks/${variables.slugKebabCase}/children.ts\\` and keep fixed child constraints metadata-owned instead of duplicating them in editor props. If you need tighter wrapper ownership or sibling markup control, switch the generated edit components to \\`useInnerBlocksProps\\` and reuse \\`getRootInnerBlocksPropsOptions()\\` / \\`getChildInnerBlocksPropsOptions( metadata.name )\\` so the same preset behavior carries forward without rebuilding the option set by hand.`\n : '';\n const phpRestExtensionPointsSection = getPhpRestExtensionPointsSection(templateId, {\n compoundPersistenceEnabled,\n slug: variables.slug,\n });\n const developmentScript = getPrimaryDevelopmentScript(templateId);\n const noStepsHeading =\n templateId === 'query-loop' ? 'Variation Workflow' : 'Artifact Refresh';\n const wpEnvSection = withWpEnv\n ? `## Local WordPress\\n\\n\\`\\`\\`bash\\n${formatRunScript(packageManager, 'wp-env:start')}\\n${formatRunScript(packageManager, 'wp-env:stop')}\\n${formatRunScript(packageManager, 'wp-env:reset')}\\n\\`\\`\\``\n : '';\n const testPresetSection = withTestPreset\n ? `## Local Test Preset\\n\\n\\`\\`\\`bash\\n${formatRunScript(packageManager, 'wp-env:start:test')}\\n${formatRunScript(packageManager, 'wp-env:wait:test')}\\n${formatRunScript(packageManager, 'test:e2e')}\\n\\`\\`\\`\\n\\nThe generated smoke test uses \\`.wp-env.test.json\\` and verifies that the scaffolded block registers in the WordPress editor.`\n : '';\n const migrationSection = withMigrationUi\n ? `## Migration UI\\n\\nThis scaffold already includes an initialized migration workspace at \\`v1\\`, generated deprecated/runtime artifacts, and an editor-embedded migration dashboard. Migration versions are schema lineage labels and are separate from your package or plugin release version. Use the existing CLI commands to snapshot, diff, scaffold, verify, and fuzz future schema changes.\\n\\n\\`\\`\\`bash\\n${formatRunScript(packageManager, 'migration:doctor')}\\n${formatRunScript(packageManager, 'migration:verify')}\\n${formatRunScript(packageManager, 'migration:fuzz')}\\n\\`\\`\\`\\n\\nRun \\`migration:init\\` only when retrofitting migration support into an older project that was not scaffolded with \\`--with-migration-ui\\`.`\n : '';\n const advancedSyncSection =\n optionalOnboardingSteps.length > 0\n ? `## Advanced Sync\\n\\n\\`\\`\\`bash\\n${optionalOnboardingSteps.join('\\n')}\\n\\`\\`\\`\\n\\n${getOptionalOnboardingNote(packageManager, templateId, {\n compoundPersistenceEnabled,\n })}`\n : `## ${noStepsHeading}\\n\\n${getOptionalOnboardingNote(packageManager, templateId, {\n compoundPersistenceEnabled,\n })}`;\n\n return `# ${variables.title}\n\n${variables.description}\n\n## Template\n\n${templateId}\n\n## Quick Start\n\n\\`\\`\\`bash\n${formatInstallCommand(packageManager)}\n${formatRunScript(packageManager, developmentScript)}\n\\`\\`\\`\n\n${getQuickStartWorkflowNote(packageManager, templateId, {\n compoundPersistenceEnabled,\n })}\n\n## Build and Verify\n\n\\`\\`\\`bash\n${formatRunScript(packageManager, 'build')}\n${formatRunScript(packageManager, 'typecheck')}\n${formatPackageExecCommand(\n packageManager,\n `wp-typia@${getPackageVersions().wpTypiaPackageExactVersion}`,\n 'doctor',\n )}\n\\`\\`\\`\n\n${advancedSyncSection}\n\n## Before First Commit\n\n\\`\\`\\`bash\n${initialCommitCommands.join('\\n')}\n\\`\\`\\`\n\n${getInitialCommitNote()}\n\n${sourceOfTruthNote}${publicPersistencePolicyNote ? `\\n\\n${publicPersistencePolicyNote}` : ''}${alternateRenderTargetSection ? `\\n\\n${alternateRenderTargetSection}` : ''}${compoundInnerBlocksSection ? `\\n\\n${compoundInnerBlocksSection}` : ''}${migrationSection ? `\\n\\n${migrationSection}` : ''}${compoundExtensionWorkflowSection ? `\\n\\n${compoundExtensionWorkflowSection}` : ''}${wpEnvSection ? `\\n\\n${wpEnvSection}` : ''}${testPresetSection ? `\\n\\n${testPresetSection}` : ''}${phpRestExtensionPointsSection ? `\\n\\n${phpRestExtensionPointsSection}` : ''}\n`;\n}\n\n/**\n * Build the default `.gitignore` contents for a scaffolded project.\n *\n * @returns A newline-terminated `.gitignore` string covering dependency, build, editor, OS, and WordPress artifacts.\n */\nexport function buildGitignore(): string {\n return `# Dependencies\nnode_modules/\n.yarn/\n.pnp.*\n\n# Build\nbuild/\ndist/\n\n# Editor\n.vscode/\n.idea/\n\n# OS\n.DS_Store\nThumbs.db\n\n# WordPress\n*.log\n.wp-env/\n`;\n}\n\n/**\n * Merge generated and existing text files while keeping line order stable.\n *\n * Existing unique lines are appended after the primary content, duplicate\n * non-empty lines are removed, and runs of more than two blank lines collapse\n * to a single empty separator.\n *\n * @param primaryContent Newly generated text that should appear first.\n * @param existingContent Existing file contents preserved after unique generated lines.\n * @returns The merged text block with a trailing newline.\n */\nexport function mergeTextLines(primaryContent: string, existingContent: string): string {\n const normalizedPrimary = primaryContent.replace(/\\r\\n/g, '\\n').trimEnd();\n const normalizedExisting = existingContent.replace(/\\r\\n/g, '\\n').trimEnd();\n const mergedLines: string[] = [];\n const seen = new Set<string>();\n\n for (const line of [...normalizedPrimary.split('\\n'), ...normalizedExisting.split('\\n')]) {\n if (line.length === 0 && mergedLines[mergedLines.length - 1] === '') {\n continue;\n }\n if (line.length > 0 && seen.has(line)) {\n continue;\n }\n if (line.length > 0) {\n seen.add(line);\n }\n mergedLines.push(line);\n }\n\n return `${mergedLines.join('\\n').replace(/\\n{3,}/g, '\\n\\n')}\\n`;\n}\n",
|
|
78
|
+
"import { getPrimaryDevelopmentScript } from './local-dev-presets.js';\nimport {\n getCompoundExtensionWorkflowSection,\n getInitialCommitCommands,\n getInitialCommitNote,\n getOptionalOnboardingNote,\n getOptionalOnboardingSteps,\n getQuickStartWorkflowNote,\n getPhpRestExtensionPointsSection,\n getTemplateSourceOfTruthNote,\n} from './scaffold-onboarding.js';\nimport type { PackageManagerId } from './package-managers.js';\nimport {\n formatPackageExecCommand,\n formatInstallCommand,\n formatRunScript,\n} from './package-managers.js';\nimport { getPackageVersions } from './package-versions.js';\nimport type { ScaffoldTemplateVariables } from './scaffold.js';\nimport { getScaffoldTemplateVariableGroups } from './scaffold-template-variable-groups.js';\n\n/**\n * Builds the generated README markdown for one scaffolded project.\n *\n * @param templateId Scaffold template family or template identifier.\n * @param variables Interpolated scaffold variables used in generated content.\n * @param packageManager Package manager used to format install and script commands.\n * @param options Optional README sections enabled by scaffold presets.\n * @returns Markdown README content for the generated project root.\n */\nexport function buildReadme(\n templateId: string,\n variables: ScaffoldTemplateVariables,\n packageManager: PackageManagerId,\n {\n withMigrationUi = false,\n withTestPreset = false,\n withWpEnv = false,\n }: {\n withMigrationUi?: boolean;\n withTestPreset?: boolean;\n withWpEnv?: boolean;\n } = {},\n): string {\n const variableGroups = getScaffoldTemplateVariableGroups(variables);\n const compoundPersistenceEnabled =\n variableGroups.compound.enabled &&\n variableGroups.compound.persistenceEnabled;\n const optionalOnboardingSteps = getOptionalOnboardingSteps(packageManager, templateId, {\n compoundPersistenceEnabled,\n });\n const initialCommitCommands = getInitialCommitCommands();\n const sourceOfTruthNote = getTemplateSourceOfTruthNote(templateId, {\n compoundPersistenceEnabled,\n });\n const publicPersistencePolicyNote =\n variableGroups.persistence.enabled && variableGroups.persistence.auth.isPublic\n ? 'Public persistence writes use signed short-lived tokens, per-request ids, and coarse rate limiting by default. Add application-specific abuse controls before using the same pattern for high-value metrics or experiments.'\n : null;\n const alternateRenderTargetSection =\n variableGroups.alternateRenderTargets.enabled\n ? `## Alternate Render Targets\\n\\nThis scaffold keeps \\`${templateId === 'compound' ? `src/blocks/${variables.slugKebabCase}/render.php` : 'src/render.php'}\\` as the default web render boundary and also generates ${[\n variableGroups.alternateRenderTargets.hasEmail\n ? `\\`${templateId === 'compound' ? `src/blocks/${variables.slugKebabCase}/render-email.php` : 'src/render-email.php'}\\``\n : null,\n variableGroups.alternateRenderTargets.hasMjml\n ? `\\`${templateId === 'compound' ? `src/blocks/${variables.slugKebabCase}/render-mjml.php` : 'src/render-mjml.php'}\\``\n : null,\n variableGroups.alternateRenderTargets.hasPlainText\n ? `\\`${templateId === 'compound' ? `src/blocks/${variables.slugKebabCase}/render-text.php` : 'src/render-text.php'}\\``\n : null,\n ]\n .filter((value): value is string => Boolean(value))\n .join(', ')}. All of those entries delegate through \\`${templateId === 'compound' ? `src/blocks/${variables.slugKebabCase}/render-targets.php` : 'src/render-targets.php'}\\`, so attribute normalization, validation, and render-target adapter hooks stay aligned across web, email, MJML, and plain-text integrations.`\n : '';\n const compoundExtensionWorkflowSection = getCompoundExtensionWorkflowSection(\n packageManager,\n templateId,\n );\n const compoundInnerBlocksSection =\n templateId === 'compound'\n ? `## Compound InnerBlocks Presets\\n\\nThis scaffold starts with the \\`${variables.compoundInnerBlocksPreset}\\` preset for compound container authoring. Static nested relationships still belong in each generated \\`block.json\\` via \\`allowedBlocks\\`, \\`parent\\`, and \\`ancestor\\`, while \\`src/blocks/${variables.slugKebabCase}/children.ts\\` owns editor-only \\`InnerBlocks\\` behavior such as \\`orientation\\`, \\`templateLock\\`, \\`defaultBlock\\`, and \\`directInsert\\`.\\n\\n- \\`freeform\\`: unlocked inserter flow with the starter child template.\\n- \\`ordered\\`: vertical ordered flow with \\`templateLock=\"insert\"\\` and direct inserts.\\n- \\`horizontal\\`: row-like nested authoring with direct inserts.\\n- \\`locked-structure\\`: fully locked starter structure.\\n\\nWhen you need to change that authoring behavior later, update the preset helpers in \\`src/blocks/${variables.slugKebabCase}/children.ts\\` and keep fixed child constraints metadata-owned instead of duplicating them in editor props. If you need tighter wrapper ownership or sibling markup control, switch the generated edit components to \\`useInnerBlocksProps\\` and reuse \\`getRootInnerBlocksPropsOptions()\\` / \\`getChildInnerBlocksPropsOptions( metadata.name )\\` so the same preset behavior carries forward without rebuilding the option set by hand.`\n : '';\n const phpRestExtensionPointsSection = getPhpRestExtensionPointsSection(templateId, {\n compoundPersistenceEnabled,\n slug: variables.slug,\n });\n const developmentScript = getPrimaryDevelopmentScript(templateId);\n const noStepsHeading =\n templateId === 'query-loop' ? 'Variation Workflow' : 'Artifact Refresh';\n const wpEnvSection = withWpEnv\n ? `## Local WordPress\\n\\n\\`\\`\\`bash\\n${formatRunScript(packageManager, 'wp-env:start')}\\n${formatRunScript(packageManager, 'wp-env:stop')}\\n${formatRunScript(packageManager, 'wp-env:reset')}\\n\\`\\`\\``\n : '';\n const testPresetSection = withTestPreset\n ? `## Local Test Preset\\n\\n\\`\\`\\`bash\\n${formatRunScript(packageManager, 'wp-env:start:test')}\\n${formatRunScript(packageManager, 'wp-env:wait:test')}\\n${formatRunScript(packageManager, 'test:e2e')}\\n\\`\\`\\`\\n\\nThe generated smoke test uses \\`.wp-env.test.json\\` and verifies that the scaffolded block registers in the WordPress editor.`\n : '';\n const migrationSection = withMigrationUi\n ? `## Migration UI\\n\\nThis scaffold already includes an initialized migration workspace at \\`v1\\`, generated deprecated/runtime artifacts, and an editor-embedded migration dashboard. Migration versions are schema lineage labels and are separate from your package or plugin release version. Use the existing CLI commands to snapshot, diff, scaffold, verify, and fuzz future schema changes.\\n\\n\\`\\`\\`bash\\n${formatRunScript(packageManager, 'migration:doctor')}\\n${formatRunScript(packageManager, 'migration:verify')}\\n${formatRunScript(packageManager, 'migration:fuzz')}\\n\\`\\`\\`\\n\\nRun \\`migration:init\\` only when retrofitting migration support into an older project that was not scaffolded with \\`--with-migration-ui\\`.`\n : '';\n const advancedSyncSection =\n optionalOnboardingSteps.length > 0\n ? `## Advanced Sync\\n\\n\\`\\`\\`bash\\n${optionalOnboardingSteps.join('\\n')}\\n\\`\\`\\`\\n\\n${getOptionalOnboardingNote(packageManager, templateId, {\n compoundPersistenceEnabled,\n })}`\n : `## ${noStepsHeading}\\n\\n${getOptionalOnboardingNote(packageManager, templateId, {\n compoundPersistenceEnabled,\n })}`;\n\n return `# ${variables.title}\n\n${variables.description}\n\n## Template\n\n${templateId}\n\n## Quick Start\n\n\\`\\`\\`bash\n${formatInstallCommand(packageManager)}\n${formatRunScript(packageManager, developmentScript)}\n\\`\\`\\`\n\n${getQuickStartWorkflowNote(packageManager, templateId, {\n compoundPersistenceEnabled,\n })}\n\n## Build and Verify\n\n\\`\\`\\`bash\n${formatRunScript(packageManager, 'build')}\n${formatRunScript(packageManager, 'typecheck')}\n${formatPackageExecCommand(\n packageManager,\n `wp-typia@${getPackageVersions().wpTypiaPackageExactVersion}`,\n 'doctor',\n )}\n\\`\\`\\`\n\n${advancedSyncSection}\n\n## Before First Commit\n\n\\`\\`\\`bash\n${initialCommitCommands.join('\\n')}\n\\`\\`\\`\n\n${getInitialCommitNote()}\n\n${sourceOfTruthNote}${publicPersistencePolicyNote ? `\\n\\n${publicPersistencePolicyNote}` : ''}${alternateRenderTargetSection ? `\\n\\n${alternateRenderTargetSection}` : ''}${compoundInnerBlocksSection ? `\\n\\n${compoundInnerBlocksSection}` : ''}${migrationSection ? `\\n\\n${migrationSection}` : ''}${compoundExtensionWorkflowSection ? `\\n\\n${compoundExtensionWorkflowSection}` : ''}${wpEnvSection ? `\\n\\n${wpEnvSection}` : ''}${testPresetSection ? `\\n\\n${testPresetSection}` : ''}${phpRestExtensionPointsSection ? `\\n\\n${phpRestExtensionPointsSection}` : ''}\n`;\n}\n\n/**\n * Build the default `.gitignore` contents for a scaffolded project.\n *\n * @returns A newline-terminated `.gitignore` string covering dependency, build, editor, OS, and WordPress artifacts.\n */\nexport function buildGitignore(): string {\n return `# Dependencies\nnode_modules/\n.yarn/\n.pnp.*\n\n# Build\nbuild/\ndist/\n\n# Editor\n.vscode/\n.idea/\n\n# OS\n.DS_Store\nThumbs.db\n\n# WordPress\n*.log\n.wp-env/\n`;\n}\n\n/**\n * Merge generated and existing text files while keeping line order stable.\n *\n * Existing unique lines are appended after the primary content, duplicate\n * non-empty lines are removed, and runs of more than two blank lines collapse\n * to a single empty separator.\n *\n * @param primaryContent Newly generated text that should appear first.\n * @param existingContent Existing file contents preserved after unique generated lines.\n * @returns The merged text block with a trailing newline.\n */\nexport function mergeTextLines(primaryContent: string, existingContent: string): string {\n const normalizedPrimary = primaryContent.replace(/\\r\\n/g, '\\n').trimEnd();\n const normalizedExisting = existingContent.replace(/\\r\\n/g, '\\n').trimEnd();\n const mergedLines: string[] = [];\n const seen = new Set<string>();\n\n for (const line of [...normalizedPrimary.split('\\n'), ...normalizedExisting.split('\\n')]) {\n if (line.length === 0 && mergedLines[mergedLines.length - 1] === '') {\n continue;\n }\n if (line.length > 0 && seen.has(line)) {\n continue;\n }\n if (line.length > 0) {\n seen.add(line);\n }\n mergedLines.push(line);\n }\n\n return `${mergedLines.join('\\n').replace(/\\n{3,}/g, '\\n\\n')}\\n`;\n}\n",
|
|
78
79
|
"import fs from \"node:fs\";\nimport { promises as fsp } from \"node:fs\";\nimport { execSync } from \"node:child_process\";\nimport path from \"node:path\";\n\nimport {\n\tformatInstallCommand,\n\tgetPackageManager,\n\ttransformPackageManagerText,\n} from \"./package-managers.js\";\nimport type { PackageManagerId } from \"./package-managers.js\";\n\nconst LOCKFILES: Record<PackageManagerId, string[]> = {\n\tbun: [\"bun.lock\", \"bun.lockb\"],\n\tnpm: [\"package-lock.json\"],\n\tpnpm: [\"pnpm-lock.yaml\"],\n\tyarn: [\"yarn.lock\"],\n};\n\ninterface GeneratedPackageJson {\n\tpackageManager?: string;\n\tscripts?: Record<string, string>;\n}\n\n/**\n * Normalizes scaffolded package-manager specific files for the selected toolchain.\n *\n * @param targetDir Absolute scaffold target directory.\n * @param packageManagerId Selected package manager id.\n * @returns A promise that resolves after any package-manager sidecar files are updated.\n */\nexport async function normalizePackageManagerFiles(\n\ttargetDir: string,\n\tpackageManagerId: PackageManagerId,\n): Promise<void> {\n\tconst yarnRcPath = path.join(targetDir, \".yarnrc.yml\");\n\n\tif (packageManagerId === \"yarn\") {\n\t\tawait fsp.writeFile(yarnRcPath, \"nodeLinker: node-modules\\n\", \"utf8\");\n\t\treturn;\n\t}\n\n\tawait fsp.rm(yarnRcPath, { force: true });\n}\n\n/**\n * Rewrites the generated package.json for the selected package manager.\n *\n * @param targetDir Absolute scaffold target directory.\n * @param packageManagerId Selected package manager id.\n * @returns A promise that resolves after the package.json file is normalized.\n */\nexport async function normalizePackageJson(\n\ttargetDir: string,\n\tpackageManagerId: PackageManagerId,\n): Promise<void> {\n\tconst packageJsonPath = path.join(targetDir, \"package.json\");\n\tif (!fs.existsSync(packageJsonPath)) {\n\t\treturn;\n\t}\n\n\tconst packageManager = getPackageManager(packageManagerId);\n\tconst packageJson = JSON.parse(await fsp.readFile(packageJsonPath, \"utf8\")) as GeneratedPackageJson;\n\tif (packageManagerId === \"npm\") {\n\t\tdelete packageJson.packageManager;\n\t} else {\n\t\tpackageJson.packageManager = packageManager.packageManagerField;\n\t}\n\n\tif (packageJson.scripts) {\n\t\tfor (const [key, value] of Object.entries(packageJson.scripts)) {\n\t\t\tif (typeof value === \"string\") {\n\t\t\t\tpackageJson.scripts[key] = transformPackageManagerText(value, packageManagerId);\n\t\t\t}\n\t\t}\n\t}\n\n\tawait fsp.writeFile(packageJsonPath, `${JSON.stringify(packageJson, null, \"\\t\")}\\n`, \"utf8\");\n}\n\n/**\n * Removes lockfiles that do not match the selected package manager.\n *\n * @param targetDir Absolute scaffold target directory.\n * @param packageManagerId Selected package manager id.\n * @returns A promise that resolves after stale lockfiles are removed.\n */\nexport async function removeUnexpectedLockfiles(\n\ttargetDir: string,\n\tpackageManagerId: PackageManagerId,\n): Promise<void> {\n\tconst keep = new Set(LOCKFILES[packageManagerId] ?? []);\n\tconst allLockfiles = Object.values(LOCKFILES).flat();\n\n\tawait Promise.all(\n\t\tallLockfiles.map(async (filename) => {\n\t\t\tif (keep.has(filename)) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tawait fsp.rm(path.join(targetDir, filename), { force: true });\n\t\t}),\n\t);\n}\n\n/**\n * Installs scaffolded project dependencies with the selected package manager.\n *\n * @param options Absolute target directory and selected package manager id.\n * @returns A promise that resolves after the install command completes.\n */\nexport async function defaultInstallDependencies({\n\tprojectDir,\n\tpackageManager,\n}: {\n\tprojectDir: string;\n\tpackageManager: PackageManagerId;\n}): Promise<void> {\n\texecSync(formatInstallCommand(packageManager), {\n\t\tcwd: projectDir,\n\t\tstdio: \"inherit\",\n\t});\n}\n",
|
|
79
80
|
"import fs from \"node:fs\";\nimport { createRequire } from \"node:module\";\nimport path from \"node:path\";\n\nimport { PROJECT_TOOLS_PACKAGE_ROOT } from \"./template-registry.js\";\n\ninterface RepositoryPackageManifest {\n\trepository?:\n\t\t| string\n\t\t| {\n\t\t\t\ttype?: string;\n\t\t\t\turl?: string;\n\t\t };\n}\n\nconst require = createRequire(import.meta.url);\n\n/**\n * Default scaffold repository reference used when no GitHub repository metadata\n * can be resolved from the current runtime package manifests.\n */\nexport const DEFAULT_SCAFFOLD_REPOSITORY_REFERENCE = \"imjlk/wp-typia\";\n\nfunction getErrorCode(error: unknown): string | undefined {\n\treturn typeof error === \"object\" && error !== null && \"code\" in error\n\t\t? String((error as { code: unknown }).code)\n\t\t: undefined;\n}\n\nfunction readRepositoryPackageManifest(\n\tpackageJsonPath: string,\n): RepositoryPackageManifest | null {\n\ttry {\n\t\treturn JSON.parse(\n\t\t\tfs.readFileSync(packageJsonPath, \"utf8\"),\n\t\t) as RepositoryPackageManifest;\n\t} catch (error) {\n\t\tif (getErrorCode(error) === \"ENOENT\") {\n\t\t\treturn null;\n\t\t}\n\n\t\tthrow error;\n\t}\n}\n\nfunction resolveInstalledPackageManifestPath(\n\tpackageName: string,\n): string | null {\n\ttry {\n\t\treturn require.resolve(`${packageName}/package.json`);\n\t} catch (error) {\n\t\tif (getErrorCode(error) === \"MODULE_NOT_FOUND\") {\n\t\t\treturn null;\n\t\t}\n\n\t\tthrow error;\n\t}\n}\n\nfunction getRepositoryFieldValue(\n\tmanifest: RepositoryPackageManifest | null,\n): string | undefined {\n\tif (!manifest?.repository) {\n\t\treturn undefined;\n\t}\n\n\treturn typeof manifest.repository === \"string\"\n\t\t? manifest.repository\n\t\t: manifest.repository.url;\n}\n\nfunction parseRepositoryReference(\n\tvalue: string | undefined,\n): string | null {\n\tconst trimmed = value?.trim();\n\tif (!trimmed) {\n\t\treturn null;\n\t}\n\n\tconst githubShorthandMatch = trimmed.match(\n\t\t/^github:([A-Za-z0-9_.-]+)\\/([A-Za-z0-9_.-]+?)(?:#.*)?$/u,\n\t);\n\tif (githubShorthandMatch) {\n\t\treturn `${githubShorthandMatch[1]}/${githubShorthandMatch[2]}`;\n\t}\n\n\tif (/^[A-Za-z0-9_.-]+\\/[A-Za-z0-9_.-]+$/u.test(trimmed)) {\n\t\treturn trimmed;\n\t}\n\n\tconst githubScpMatch = trimmed.match(\n\t\t/^git@github\\.com:([A-Za-z0-9_.-]+)\\/([A-Za-z0-9_.-]+?)(?:\\.git)?(?:#.*)?$/u,\n\t);\n\tif (githubScpMatch) {\n\t\treturn `${githubScpMatch[1]}/${githubScpMatch[2]}`;\n\t}\n\n\tconst normalizedValue = trimmed\n\t\t.replace(/^git\\+/u, \"\")\n\t\t.replace(/#.*$/u, \"\");\n\n\tlet parsedUrl: URL;\n\ttry {\n\t\tparsedUrl = new URL(normalizedValue);\n\t} catch {\n\t\treturn null;\n\t}\n\n\tif (parsedUrl.hostname !== \"github.com\") {\n\t\treturn null;\n\t}\n\n\tconst pathSegments = parsedUrl.pathname\n\t\t.replace(/^\\/+/u, \"\")\n\t\t.replace(/\\.git$/u, \"\")\n\t\t.split(\"/\");\n\tif (pathSegments.length < 2 || !pathSegments[0] || !pathSegments[1]) {\n\t\treturn null;\n\t}\n\n\treturn `${pathSegments[0]}/${pathSegments[1]}`;\n}\n\nfunction getDefaultRepositoryManifestPaths(): string[] {\n\tconst candidatePaths = [\n\t\tpath.resolve(PROJECT_TOOLS_PACKAGE_ROOT, \"..\", \"..\", \"package.json\"),\n\t\tpath.resolve(PROJECT_TOOLS_PACKAGE_ROOT, \"..\", \"wp-typia\", \"package.json\"),\n\t\tpath.join(PROJECT_TOOLS_PACKAGE_ROOT, \"package.json\"),\n\t\tresolveInstalledPackageManifestPath(\"wp-typia\"),\n\t\tresolveInstalledPackageManifestPath(\"@wp-typia/project-tools\"),\n\t].filter((candidatePath): candidatePath is string => Boolean(candidatePath));\n\n\treturn candidatePaths.filter(\n\t\t(candidatePath, index, allPaths) =>\n\t\t\tallPaths.indexOf(candidatePath) === index,\n\t);\n}\n\n/**\n * Resolves the canonical scaffold repository reference in `owner/repo` format.\n *\n * The resolver checks candidate package manifests in priority order, extracts\n * their `repository` field, and returns the first GitHub slug it can parse.\n * When no candidate yields a GitHub repository reference, the fallback value\n * is returned instead.\n */\nexport function resolveScaffoldRepositoryReference({\n\tfallback = DEFAULT_SCAFFOLD_REPOSITORY_REFERENCE,\n\tmanifestPaths = getDefaultRepositoryManifestPaths(),\n}: {\n\tfallback?: string;\n\tmanifestPaths?: readonly string[];\n} = {}): string {\n\tfor (const manifestPath of manifestPaths) {\n\t\tconst repositoryReference = parseRepositoryReference(\n\t\t\tgetRepositoryFieldValue(readRepositoryPackageManifest(manifestPath)),\n\t\t);\n\n\t\tif (repositoryReference) {\n\t\t\treturn repositoryReference;\n\t\t}\n\t}\n\n\treturn fallback;\n}\n\n/**\n * Replaces legacy scaffold repository placeholders with a concrete\n * `owner/repo` reference.\n */\nexport function replaceRepositoryReferencePlaceholders(\n\tsource: string,\n\trepositoryReference: string,\n): string {\n\treturn source\n\t\t.replace(/yourusername\\/wp-typia-boilerplate/g, repositoryReference)\n\t\t.replace(/yourusername\\/wp-typia/g, repositoryReference);\n}\n",
|
|
80
81
|
"import path from 'node:path'\n\nimport npa from 'npm-package-arg'\n\nimport {\n BUILTIN_TEMPLATE_IDS,\n isBuiltInTemplateId,\n} from './template-registry.js'\nimport {\n getRemovedBuiltInTemplateMessage,\n isRemovedBuiltInTemplateId,\n} from './template-defaults.js'\nimport type {\n GitHubTemplateLocator,\n NpmTemplateLocator,\n RemoteTemplateLocator,\n} from './template-source-contracts.js'\n\nfunction isTemplatePathLocator(templateId: string): boolean {\n return (\n path.isAbsolute(templateId) ||\n templateId.startsWith('./') ||\n templateId.startsWith('../')\n )\n}\n\nexport function parseGitHubTemplateLocator(\n templateId: string,\n): GitHubTemplateLocator | null {\n if (!templateId.startsWith('github:')) {\n return null\n }\n\n const [locatorBody, refSegment] = templateId\n .slice('github:'.length)\n .split('#', 2)\n const segments = locatorBody.split('/').filter(Boolean)\n if (segments.length < 3) {\n throw new Error(\n `GitHub template locators must look like github:owner/repo/path[#ref]. Received: ${templateId}`,\n )\n }\n\n const [owner, repo, ...sourcePathSegments] = segments\n return {\n owner,\n repo,\n ref: refSegment ?? null,\n sourcePath: sourcePathSegments.join('/'),\n }\n}\n\nexport function parseNpmTemplateLocator(\n templateId: string,\n): NpmTemplateLocator | null {\n if (\n isBuiltInTemplateId(templateId) ||\n isTemplatePathLocator(templateId) ||\n templateId.startsWith('github:')\n ) {\n return null\n }\n\n try {\n const parsed = npa(templateId)\n if (!parsed.registry || !parsed.name) {\n return null\n }\n const parsedWithRawSpec = parsed as unknown as { rawSpec?: unknown }\n const rawSpec =\n typeof parsedWithRawSpec.rawSpec === 'string'\n ? parsedWithRawSpec.rawSpec\n : ''\n\n return {\n fetchSpec: typeof parsed.fetchSpec === 'string' ? parsed.fetchSpec : '',\n name: parsed.name,\n raw: templateId,\n rawSpec,\n type: parsed.type,\n }\n } catch {\n return null\n }\n}\n\nexport function parseTemplateLocator(\n templateId: string,\n): RemoteTemplateLocator {\n if (isRemovedBuiltInTemplateId(templateId)) {\n throw new Error(getRemovedBuiltInTemplateMessage(templateId))\n }\n\n const githubLocator = parseGitHubTemplateLocator(templateId)\n if (githubLocator) {\n return { kind: 'github', locator: githubLocator }\n }\n\n if (isTemplatePathLocator(templateId)) {\n return { kind: 'path', templatePath: templateId }\n }\n\n const npmLocator = parseNpmTemplateLocator(templateId)\n if (npmLocator) {\n return { kind: 'npm', locator: npmLocator }\n }\n\n throw new Error(\n `Unknown template \"${templateId}\". Expected one of: ${BUILTIN_TEMPLATE_IDS.join(', ')}, a local path, github:owner/repo/path[#ref], or an npm package spec.`,\n )\n}\n",
|
|
81
82
|
"/// <reference path=\"./external-template-modules.d.ts\" />\n\nimport fs from 'node:fs'\nimport path from 'node:path'\n\nimport { loadExternalTemplateLayerManifest } from './template-layers.js'\nimport { getPackageVersions } from './package-versions.js'\nimport { getExternalTemplateEntry } from './template-source-external.js'\nimport { getTemplateProjectType } from './template-source-remote.js'\nexport { renderCreateBlockExternalTemplate } from './template-source-external.js'\nexport {\n getTemplateProjectType,\n getDefaultCategory,\n normalizeCreateBlockSubset,\n normalizeWpTypiaTemplateSeed,\n} from './template-source-remote.js'\nimport type {\n TemplateSourceFormat,\n TemplateVariableContext,\n} from './template-source-contracts.js'\n\nexport function getTemplateVariableContext(variables: {\n [key: string]: string\n}): TemplateVariableContext {\n const {\n apiClientPackageVersion,\n blockRuntimePackageVersion,\n blockTypesPackageVersion,\n projectToolsPackageVersion,\n restPackageVersion,\n } = getPackageVersions()\n return {\n ...variables,\n apiClientPackageVersion:\n variables.apiClientPackageVersion ?? apiClientPackageVersion,\n blockRuntimePackageVersion:\n variables.blockRuntimePackageVersion ?? blockRuntimePackageVersion,\n blockTypesPackageVersion:\n variables.blockTypesPackageVersion ?? blockTypesPackageVersion,\n projectToolsPackageVersion:\n variables.projectToolsPackageVersion ?? projectToolsPackageVersion,\n description: variables.description,\n keyword: variables.keyword,\n namespace: variables.namespace,\n pascalCase: variables.pascalCase,\n phpPrefix: variables.phpPrefix,\n restPackageVersion: variables.restPackageVersion ?? restPackageVersion,\n slug: variables.slug,\n textDomain: variables.textDomain,\n title: variables.title,\n }\n}\n\nexport async function detectTemplateSourceFormat(\n sourceDir: string,\n): Promise<TemplateSourceFormat> {\n if (fs.existsSync(path.join(sourceDir, 'package.json.mustache'))) {\n return 'wp-typia'\n }\n\n if (await loadExternalTemplateLayerManifest(sourceDir)) {\n throw new Error(\n `Template source at ${sourceDir} is an external layer package. External layers currently compose only through built-in scaffolds via the runtime API, not as standalone template ids.`,\n )\n }\n\n if (getExternalTemplateEntry(sourceDir)) {\n return 'create-block-external'\n }\n\n if (getTemplateProjectType(sourceDir) !== null) {\n return 'wp-typia'\n }\n\n const sourceRoot = fs.existsSync(path.join(sourceDir, 'src'))\n ? path.join(sourceDir, 'src')\n : sourceDir\n const blockJsonCandidates = [\n path.join(sourceDir, 'block.json'),\n path.join(sourceRoot, 'block.json'),\n ]\n const hasBlockJson = blockJsonCandidates.some((candidate) =>\n fs.existsSync(candidate),\n )\n const hasIndexFile = ['index.js', 'index.jsx', 'index.ts', 'index.tsx'].some(\n (filename) => fs.existsSync(path.join(sourceRoot, filename)),\n )\n const hasEditFile = ['edit.js', 'edit.jsx', 'edit.ts', 'edit.tsx'].some(\n (filename) => fs.existsSync(path.join(sourceRoot, filename)),\n )\n const hasSaveFile = ['save.js', 'save.jsx', 'save.ts', 'save.tsx'].some(\n (filename) => fs.existsSync(path.join(sourceRoot, filename)),\n )\n\n if (hasBlockJson && hasIndexFile && hasEditFile && hasSaveFile) {\n return 'create-block-subset'\n }\n\n throw new Error(\n `Unsupported template source at ${sourceDir}. Expected a wp-typia template directory, an official create-block external template config, or a create-block subset with block.json and src/index/edit/save files.`,\n )\n}\n",
|
|
82
83
|
"import fs from \"node:fs\";\nimport path from \"node:path\";\nimport { promises as fsp } from \"node:fs\";\n\nimport { isPlainObject } from \"./object-utils.js\";\nimport {\n\tgetBuiltInSharedTemplateLayerDir,\n\tisBuiltInSharedTemplateLayerId,\n} from \"./template-builtins.js\";\nimport { listInterpolatedDirectoryOutputs } from \"./template-render.js\";\n\nexport const TEMPLATE_LAYER_MANIFEST_FILENAME = \"wp-typia.layers.json\";\nconst TEMPLATE_LAYER_MANIFEST_VERSION = 1 as const;\n\nexport interface ExternalTemplateLayerDefinition {\n\tdescription?: string;\n\textends?: string[];\n\tpath: string;\n}\n\nexport interface ExternalTemplateLayerManifest {\n\tlayers: Record<string, ExternalTemplateLayerDefinition>;\n\tversion: typeof TEMPLATE_LAYER_MANIFEST_VERSION;\n}\n\nexport interface ResolvedTemplateLayerEntry {\n\tdir: string;\n\tid: string;\n\tkind: \"built-in\" | \"external\";\n}\n\nexport interface ResolvedExternalTemplateLayers {\n\tentries: ResolvedTemplateLayerEntry[];\n\tselectedLayerId: string;\n}\n\nexport interface SelectableExternalTemplateLayer {\n\tdescription?: string;\n\textends: string[];\n\tid: string;\n}\n\nfunction resolveLayerPath(sourceRoot: string, relativePath: string): string {\n\tconst targetPath = path.resolve(sourceRoot, relativePath);\n\tconst relativeTarget = path.relative(sourceRoot, targetPath);\n\tif (relativeTarget.startsWith(\"..\") || path.isAbsolute(relativeTarget)) {\n\t\tthrow new Error(\n\t\t\t`Template layer path \"${relativePath}\" must stay within ${sourceRoot}.`,\n\t\t);\n\t}\n\treturn targetPath;\n}\n\nasync function assertNoSymlinks(sourceDir: string): Promise<void> {\n\tconst stats = await fsp.lstat(sourceDir);\n\tif (stats.isSymbolicLink()) {\n\t\tthrow new Error(`Template layer packages may not include symbolic links: ${sourceDir}`);\n\t}\n\n\tif (!stats.isDirectory()) {\n\t\treturn;\n\t}\n\n\tfor (const entry of await fsp.readdir(sourceDir)) {\n\t\tawait assertNoSymlinks(path.join(sourceDir, entry));\n\t}\n}\n\nfunction parseLayerDefinition(\n\tlayerId: string,\n\tvalue: unknown,\n): ExternalTemplateLayerDefinition {\n\tif (isBuiltInSharedTemplateLayerId(layerId)) {\n\t\tthrow new Error(\n\t\t\t`Layer \"${layerId}\" uses a reserved built-in shared layer id and cannot be redefined in ${TEMPLATE_LAYER_MANIFEST_FILENAME}.`,\n\t\t);\n\t}\n\n\tif (!isPlainObject(value)) {\n\t\tthrow new Error(`Layer \"${layerId}\" in ${TEMPLATE_LAYER_MANIFEST_FILENAME} must be an object.`);\n\t}\n\n\tconst layerPath = value.path;\n\tif (typeof layerPath !== \"string\" || layerPath.trim().length === 0) {\n\t\tthrow new Error(`Layer \"${layerId}\" must define a non-empty string \"path\".`);\n\t}\n\n\tconst layerExtends = value.extends;\n\tif (\n\t\ttypeof layerExtends !== \"undefined\" &&\n\t\t(!Array.isArray(layerExtends) ||\n\t\t\t!layerExtends.every(\n\t\t\t\t(entry) => typeof entry === \"string\" && entry.trim().length > 0,\n\t\t\t))\n\t) {\n\t\tthrow new Error(\n\t\t\t`Layer \"${layerId}\" must define \"extends\" as an array of non-empty strings when present.`,\n\t\t);\n\t}\n\n\tconst description = value.description;\n\tif (\n\t\ttypeof description !== \"undefined\" &&\n\t\t(typeof description !== \"string\" || description.trim().length === 0)\n\t) {\n\t\tthrow new Error(\n\t\t\t`Layer \"${layerId}\" must define \"description\" as a non-empty string when present.`,\n\t\t);\n\t}\n\n\treturn {\n\t\tdescription: typeof description === \"string\" ? description : undefined,\n\t\textends: Array.isArray(layerExtends) ? [...layerExtends] : undefined,\n\t\tpath: layerPath,\n\t};\n}\n\nexport async function loadExternalTemplateLayerManifest(\n\tsourceRoot: string,\n): Promise<ExternalTemplateLayerManifest | null> {\n\tconst manifestPath = path.join(sourceRoot, TEMPLATE_LAYER_MANIFEST_FILENAME);\n\tif (!fs.existsSync(manifestPath)) {\n\t\treturn null;\n\t}\n\n\tconst raw = JSON.parse(\n\t\tawait fsp.readFile(manifestPath, \"utf8\"),\n\t) as Record<string, unknown>;\n\tif (!isPlainObject(raw)) {\n\t\tthrow new Error(`${TEMPLATE_LAYER_MANIFEST_FILENAME} must export a JSON object.`);\n\t}\n\n\tif (raw.version !== TEMPLATE_LAYER_MANIFEST_VERSION) {\n\t\tthrow new Error(\n\t\t\t`${TEMPLATE_LAYER_MANIFEST_FILENAME} must declare \"version\": ${TEMPLATE_LAYER_MANIFEST_VERSION}.`,\n\t\t);\n\t}\n\n\tif (!isPlainObject(raw.layers) || Object.keys(raw.layers).length === 0) {\n\t\tthrow new Error(\n\t\t\t`${TEMPLATE_LAYER_MANIFEST_FILENAME} must define a non-empty \"layers\" object.`,\n\t\t);\n\t}\n\n\treturn {\n\t\tlayers: Object.fromEntries(\n\t\t\tObject.entries(raw.layers).map(([layerId, value]) => [\n\t\t\t\tlayerId,\n\t\t\t\tparseLayerDefinition(layerId, value),\n\t\t\t]),\n\t\t),\n\t\tversion: TEMPLATE_LAYER_MANIFEST_VERSION,\n\t};\n}\n\nfunction getSelectableExternalLayers(\n\tmanifest: ExternalTemplateLayerManifest,\n): SelectableExternalTemplateLayer[] {\n\tconst layerIds = Object.keys(manifest.layers);\n\tconst referencedExternalLayerIds = new Set<string>();\n\tfor (const definition of Object.values(manifest.layers)) {\n\t\tfor (const ancestorId of definition.extends ?? []) {\n\t\t\tif (ancestorId in manifest.layers) {\n\t\t\t\treferencedExternalLayerIds.add(ancestorId);\n\t\t\t}\n\t\t}\n\t}\n\n\tconst publicLayerIds = layerIds.filter(\n\t\t(layerId) => !referencedExternalLayerIds.has(layerId),\n\t);\n\treturn publicLayerIds.map((layerId) => ({\n\t\tdescription: manifest.layers[layerId]?.description,\n\t\textends: [...(manifest.layers[layerId]?.extends ?? [])],\n\t\tid: layerId,\n\t}));\n}\n\nfunction getDefaultExternalLayerId(\n\tmanifest: ExternalTemplateLayerManifest,\n): string {\n\tconst selectableLayers = getSelectableExternalLayers(manifest);\n\tif (selectableLayers.length === 1) {\n\t\treturn selectableLayers[0].id;\n\t}\n\tconst layerIds = Object.keys(manifest.layers);\n\n\tthrow new Error(\n\t\t`External layer package defines multiple selectable layers (${layerIds.join(\", \")}). Pass an explicit externalLayerId or rerun through the interactive CLI selector.`,\n\t);\n}\n\nexport async function listSelectableExternalTemplateLayers(\n\tsourceRoot: string,\n): Promise<SelectableExternalTemplateLayer[]> {\n\tconst manifest = await loadExternalTemplateLayerManifest(sourceRoot);\n\tif (!manifest) {\n\t\tthrow new Error(\n\t\t\t`No ${TEMPLATE_LAYER_MANIFEST_FILENAME} manifest found in ${sourceRoot}.`,\n\t\t);\n\t}\n\n\treturn getSelectableExternalLayers(manifest);\n}\n\nexport async function resolveExternalTemplateLayers({\n\texternalLayerId,\n\tsourceRoot,\n}: {\n\texternalLayerId?: string;\n\tsourceRoot: string;\n}): Promise<ResolvedExternalTemplateLayers> {\n\tconst manifest = await loadExternalTemplateLayerManifest(sourceRoot);\n\tif (!manifest) {\n\t\tthrow new Error(\n\t\t\t`No ${TEMPLATE_LAYER_MANIFEST_FILENAME} manifest found in ${sourceRoot}.`,\n\t\t);\n\t}\n\tconst manifestDocument = manifest;\n\n\tconst selectedLayerId =\n\t\texternalLayerId ?? getDefaultExternalLayerId(manifestDocument);\n\tif (!(selectedLayerId in manifestDocument.layers)) {\n\t\tthrow new Error(\n\t\t\t`Unknown external layer \"${selectedLayerId}\". Expected one of: ${Object.keys(manifestDocument.layers).join(\", \")}`,\n\t\t);\n\t}\n\n\tconst entries: ResolvedTemplateLayerEntry[] = [];\n\tconst emittedLayerIds = new Set<string>();\n\tconst visitingLayerIds = new Set<string>();\n\n\tasync function visitLayer(layerId: string): Promise<void> {\n\t\tif (isBuiltInSharedTemplateLayerId(layerId)) {\n\t\t\tif (!emittedLayerIds.has(layerId)) {\n\t\t\t\tentries.push({\n\t\t\t\t\tdir: getBuiltInSharedTemplateLayerDir(layerId),\n\t\t\t\t\tid: layerId,\n\t\t\t\t\tkind: \"built-in\",\n\t\t\t\t});\n\t\t\t\temittedLayerIds.add(layerId);\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\tconst definition = manifestDocument.layers[layerId];\n\t\tif (!definition) {\n\t\t\tthrow new Error(\n\t\t\t\t`Layer \"${layerId}\" is not defined in ${TEMPLATE_LAYER_MANIFEST_FILENAME}.`,\n\t\t\t);\n\t\t}\n\t\tif (visitingLayerIds.has(layerId)) {\n\t\t\tthrow new Error(\n\t\t\t\t`Detected a cycle while resolving external layer \"${layerId}\".`,\n\t\t\t);\n\t\t}\n\n\t\tvisitingLayerIds.add(layerId);\n\t\tfor (const ancestorId of definition.extends ?? []) {\n\t\t\tawait visitLayer(ancestorId);\n\t\t}\n\t\tvisitingLayerIds.delete(layerId);\n\n\t\tif (emittedLayerIds.has(layerId)) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst layerDir = resolveLayerPath(sourceRoot, definition.path);\n\t\tconst stats = await fsp.stat(layerDir).catch(() => null);\n\t\tif (!stats || !stats.isDirectory()) {\n\t\t\tthrow new Error(\n\t\t\t\t`Layer \"${layerId}\" points to a missing directory: ${definition.path}`,\n\t\t\t);\n\t\t}\n\t\tawait assertNoSymlinks(layerDir);\n\n\t\tentries.push({\n\t\t\tdir: layerDir,\n\t\t\tid: layerId,\n\t\t\tkind: \"external\",\n\t\t});\n\t\temittedLayerIds.add(layerId);\n\t}\n\n\tawait visitLayer(selectedLayerId);\n\treturn {\n\t\tentries,\n\t\tselectedLayerId,\n\t};\n}\n\nexport async function assertExternalTemplateLayersDoNotWriteProtectedOutputs({\n\texternalEntries,\n\tprotectedOutputPaths,\n\tview,\n}: {\n\texternalEntries: readonly ResolvedTemplateLayerEntry[];\n\tprotectedOutputPaths: ReadonlySet<string>;\n\tview: Record<string, string>;\n}): Promise<void> {\n\tfor (const entry of externalEntries) {\n\t\tif (entry.kind !== \"external\") {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst renderedOutputPaths = await listInterpolatedDirectoryOutputs(\n\t\t\tentry.dir,\n\t\t\tview,\n\t\t);\n\t\tfor (const relativePath of renderedOutputPaths) {\n\t\t\tif (!protectedOutputPaths.has(relativePath)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tthrow new Error(\n\t\t\t\t`External layer \"${entry.id}\" writes protected output \"${relativePath}\".`,\n\t\t\t);\n\t\t}\n\t}\n}\n",
|
|
83
|
-
"/// <reference path=\"./external-template-modules.d.ts\" />\n\nimport fs from 'node:fs'\nimport { promises as fsp } from 'node:fs'\nimport os from 'node:os'\nimport path from 'node:path'\nimport { pathToFileURL } from 'node:url'\n\nimport { isPlainObject, type UnknownRecord } from './object-utils.js'\nimport { toSegmentPascalCase } from './string-case.js'\nimport { copyRawDirectory, copyRenderedDirectory } from './template-render.js'\nimport type {\n ExternalTemplateConfig,\n SeedSource,\n TemplateVariableContext,\n} from './template-source-contracts.js'\n\n/**\n * Candidate filenames for official external template config entrypoints.\n */\nexport const EXTERNAL_TEMPLATE_ENTRY_CANDIDATES = [\n 'index.js',\n 'index.cjs',\n 'index.mjs',\n] as const\nconst TEMPLATE_WARNING_MESSAGE =\n 'wp-typia owns package/tooling/sync setup for generated projects, so this external template setting is ignored.'\n\nfunction getTemplateWarning(key: string): string {\n return `Ignoring external template config key \"${key}\": ${TEMPLATE_WARNING_MESSAGE}`\n}\n\nfunction resolveSourceSubpath(sourceDir: string, relativePath: string): string {\n const targetPath = path.resolve(sourceDir, relativePath)\n const relativeTarget = path.relative(sourceDir, targetPath)\n if (relativeTarget.startsWith('..') || path.isAbsolute(relativeTarget)) {\n throw new Error(\n `Template path \"${relativePath}\" must stay within ${sourceDir}.`,\n )\n }\n return targetPath\n}\n\n/**\n * Search a source directory for the first supported external template entry.\n *\n * @param sourceDir Directory that may contain an external template config entry.\n * @returns The first matching entry path, or null when no supported entry exists.\n */\nexport function getExternalTemplateEntry(sourceDir: string): string | null {\n for (const filename of EXTERNAL_TEMPLATE_ENTRY_CANDIDATES) {\n const candidate = path.join(sourceDir, filename)\n if (fs.existsSync(candidate)) {\n return candidate\n }\n }\n\n return null\n}\n\nasync function loadExternalTemplateConfig<\n TView extends UnknownRecord = TemplateVariableContext,\n>(\n sourceDir: string,\n): Promise<{\n config: ExternalTemplateConfig<TView>\n warnings: string[]\n}> {\n const entryPath = getExternalTemplateEntry(sourceDir)\n if (!entryPath) {\n throw new Error(`No external template config entry found in ${sourceDir}.`)\n }\n\n const moduleUrl = `${pathToFileURL(entryPath).href}?mtime=${fs.statSync(entryPath).mtimeMs}`\n const loadedModule = (await import(moduleUrl)) as Record<string, unknown>\n const loadedConfig = loadedModule.default ?? loadedModule\n if (!isPlainObject(loadedConfig)) {\n throw new Error(\n `External template config must export an object: ${entryPath}`,\n )\n }\n\n const warnings: string[] = []\n for (const ignoredKey of [\n 'wpScripts',\n 'wpEnv',\n 'customScripts',\n 'npmDependencies',\n 'npmDevDependencies',\n 'customPackageJSON',\n 'pluginReadme',\n 'pluginHeader',\n ]) {\n if (ignoredKey in loadedConfig) {\n warnings.push(getTemplateWarning(ignoredKey))\n }\n }\n\n return {\n config: loadedConfig as ExternalTemplateConfig<TView>,\n warnings,\n }\n}\n\nfunction getVariantFlagName(variantName: string): string {\n return `is${toSegmentPascalCase(variantName)}Variant`\n}\n\nfunction getVariantKeys<TView extends UnknownRecord>(\n config: ExternalTemplateConfig<TView>,\n): string[] {\n return isPlainObject(config.variants) ? Object.keys(config.variants) : []\n}\n\nfunction getVariantConfig<TView extends UnknownRecord>(\n config: ExternalTemplateConfig<TView>,\n requestedVariant?: string,\n): {\n selectedVariant: string | null\n variantConfig: Partial<TView>\n} {\n const variantKeys = getVariantKeys(config)\n if (variantKeys.length === 0) {\n if (requestedVariant) {\n throw new Error(\n `Variant \"${requestedVariant}\" was requested, but the external template does not define any variants.`,\n )\n }\n\n return {\n selectedVariant: null,\n variantConfig: {},\n }\n }\n\n const selectedVariant = requestedVariant ?? variantKeys[0]\n if (!selectedVariant || !isPlainObject(config.variants?.[selectedVariant])) {\n throw new Error(\n `Unknown template variant \"${requestedVariant}\". Expected one of: ${variantKeys.join(', ')}`,\n )\n }\n\n return {\n selectedVariant,\n variantConfig: config.variants?.[selectedVariant] ?? {},\n }\n}\n\nfunction extractVariantRenderValues<TView extends UnknownRecord>(\n variantConfig: Partial<TView>,\n): Partial<TView> {\n const values = { ...variantConfig }\n delete values.assetsPath\n delete values.blockTemplatesPath\n delete values.folderName\n delete values.pluginTemplatesPath\n delete values.transformer\n return values\n}\n\nfunction resolveConfiguredTemplatePath<TView extends UnknownRecord>(\n config: ExternalTemplateConfig<TView>,\n variantConfig: Partial<TView>,\n): {\n folderName: string\n formatHint: 'create-block-subset' | 'wp-typia'\n templatePath: string\n} {\n const variantPluginTemplatesPath =\n typeof variantConfig.pluginTemplatesPath === 'string'\n ? variantConfig.pluginTemplatesPath\n : null\n const variantBlockTemplatesPath =\n typeof variantConfig.blockTemplatesPath === 'string'\n ? variantConfig.blockTemplatesPath\n : null\n const configBlockTemplatesPath =\n typeof config.blockTemplatesPath === 'string'\n ? config.blockTemplatesPath\n : null\n const configPluginTemplatesPath =\n typeof config.pluginTemplatesPath === 'string'\n ? config.pluginTemplatesPath\n : null\n\n const templatePath =\n variantPluginTemplatesPath ??\n variantBlockTemplatesPath ??\n configBlockTemplatesPath ??\n configPluginTemplatesPath\n if (!templatePath) {\n throw new Error(\n 'External template config must define blockTemplatesPath or pluginTemplatesPath.',\n )\n }\n\n const configuredFolderName =\n (typeof variantConfig.folderName === 'string'\n ? variantConfig.folderName\n : config.folderName) ?? null\n\n return {\n folderName: configuredFolderName || '.',\n formatHint:\n templatePath === variantPluginTemplatesPath ||\n templatePath === configPluginTemplatesPath\n ? 'wp-typia'\n : 'create-block-subset',\n templatePath,\n }\n}\n\nasync function buildExternalTemplateView(\n context: TemplateVariableContext,\n config: ExternalTemplateConfig<TemplateVariableContext>,\n selectedVariant: string | null,\n variantConfig: Partial<TemplateVariableContext>,\n): Promise<TemplateVariableContext> {\n const mergedView: TemplateVariableContext = {\n ...(config.defaultValues ?? {}),\n ...extractVariantRenderValues(variantConfig),\n ...context,\n }\n\n if (selectedVariant) {\n mergedView.variant = selectedVariant\n mergedView[getVariantFlagName(selectedVariant)] = true\n }\n\n if (!config.transformer) {\n return mergedView\n }\n\n const transformed = await config.transformer(mergedView)\n if (!isPlainObject(transformed)) {\n throw new Error(\n 'External template transformer(view) must return an object.',\n )\n }\n\n return {\n ...mergedView,\n ...transformed,\n }\n}\n\n/**\n * Load an official external template config and render its seed.\n *\n * @param sourceDir Source directory that contains the external template config.\n * @param context Template render context used for the selected variant.\n * @param requestedVariant Optional explicit variant override.\n * @returns A rendered temporary seed directory with optional assets and cleanup.\n */\nexport async function renderCreateBlockExternalTemplate(\n sourceDir: string,\n context: TemplateVariableContext,\n requestedVariant?: string,\n): Promise<SeedSource> {\n const { config, warnings } = await loadExternalTemplateConfig(sourceDir)\n const { selectedVariant, variantConfig } = getVariantConfig(\n config,\n requestedVariant,\n )\n\n const { folderName, formatHint, templatePath } = resolveConfiguredTemplatePath(\n config,\n variantConfig,\n )\n\n const tempRoot = await fsp.mkdtemp(\n path.join(os.tmpdir(), 'wp-typia-create-block-external-'),\n )\n const cleanup = async () => {\n await fsp.rm(tempRoot, { force: true, recursive: true })\n }\n\n try {\n const renderedRoot = path.join(tempRoot, 'rendered')\n const blockDir = resolveSourceSubpath(renderedRoot, folderName)\n const view = await buildExternalTemplateView(\n context,\n config,\n selectedVariant,\n variantConfig,\n )\n const blockTemplateDir = resolveSourceSubpath(sourceDir, templatePath)\n await copyRenderedDirectory(blockTemplateDir, blockDir, view, {\n filter: (sourcePath, _destinationPath, entry) => {\n const mustacheVariantPath = path.join(\n path.dirname(sourcePath),\n `${entry.name}.mustache`,\n )\n return !(\n entry.isFile() &&\n (entry.name === 'package.json' || entry.name === 'README.md') &&\n fs.existsSync(mustacheVariantPath)\n )\n },\n })\n\n const assetsPath =\n typeof variantConfig.assetsPath === 'string'\n ? variantConfig.assetsPath\n : config.assetsPath\n if (typeof assetsPath === 'string' && assetsPath.trim().length > 0) {\n await copyRawDirectory(\n resolveSourceSubpath(sourceDir, assetsPath),\n path.join(tempRoot, 'assets'),\n )\n }\n\n return {\n assetsDir: fs.existsSync(path.join(tempRoot, 'assets'))\n ? path.join(tempRoot, 'assets')\n : undefined,\n blockDir,\n cleanup,\n formatHint,\n rootDir: tempRoot,\n selectedVariant,\n warnings,\n }\n } catch (error) {\n await cleanup()\n throw error\n }\n}\n",
|
|
84
|
-
"import fs from 'node:fs'\nimport { promises as fsp } from 'node:fs'\nimport os from 'node:os'\nimport path from 'node:path'\n\nimport {\n getBuiltInTemplateLayerDirs,\n isOmittableBuiltInTemplateLayerDir,\n} from './template-builtins.js'\nimport { copyRawDirectory } from './template-render.js'\nimport type {\n ResolvedTemplateSource,\n SeedSource,\n TemplateVariableContext,\n} from './template-source-contracts.js'\n\nfunction getDefaultCategoryFromBlockJson(\n blockJson: Record<string, unknown>,\n): string {\n return typeof blockJson.category === 'string' &&\n blockJson.category.trim().length > 0\n ? blockJson.category.trim()\n : 'widgets'\n}\n\nfunction readRemoteBlockJson(blockDir: string): Record<string, unknown> {\n const sourceRoot = fs.existsSync(path.join(blockDir, 'src'))\n ? path.join(blockDir, 'src')\n : blockDir\n for (const candidate of [\n path.join(blockDir, 'block.json'),\n path.join(sourceRoot, 'block.json'),\n ]) {\n if (fs.existsSync(candidate)) {\n return JSON.parse(fs.readFileSync(candidate, 'utf8')) as Record<\n string,\n unknown\n >\n }\n }\n\n throw new Error(`Unable to locate block.json in ${blockDir}`)\n}\n\n/**\n * Read a remote block source and return its default block category.\n *\n * @param sourceDir Block source directory that may contain a block.json file.\n * @returns The declared block category, or \"widgets\" when detection fails.\n */\nexport function getDefaultCategory(sourceDir: string): string {\n try {\n const blockJson = readRemoteBlockJson(sourceDir)\n return getDefaultCategoryFromBlockJson(blockJson)\n } catch {\n return 'widgets'\n }\n}\n\nfunction readTemplatePackageJson(\n sourceDir: string,\n): { wpTypia?: { projectType?: string } } | null {\n for (const candidate of [\n path.join(sourceDir, 'package.json.mustache'),\n path.join(sourceDir, 'package.json'),\n ]) {\n if (!fs.existsSync(candidate)) {\n continue\n }\n\n try {\n return JSON.parse(fs.readFileSync(candidate, 'utf8')) as {\n wpTypia?: { projectType?: string }\n }\n } catch {\n continue\n }\n }\n\n return null\n}\n\n/**\n * Read `wpTypia.projectType` from a rendered or source template package\n * manifest and return it when present.\n */\nexport function getTemplateProjectType(sourceDir: string): string | null {\n const packageJson = readTemplatePackageJson(sourceDir)\n return typeof packageJson?.wpTypia?.projectType === 'string'\n ? packageJson.wpTypia.projectType\n : null\n}\n\n/**\n * Copy a wp-typia seed into a normalized temporary template directory.\n *\n * @param seed Seed source whose files should be normalized into a temp root.\n * @returns A cloned seed whose cleanup removes the temp root and original seed.\n */\nexport async function normalizeWpTypiaTemplateSeed(\n seed: SeedSource,\n): Promise<SeedSource> {\n const tempRoot = await fsp.mkdtemp(\n path.join(os.tmpdir(), 'wp-typia-template-source-'),\n )\n const normalizedDir = path.join(tempRoot, 'template')\n try {\n await copyRawDirectory(seed.blockDir, normalizedDir, {\n filter: (sourcePath, _targetPath, entry) => {\n const mustacheVariantPath = path.join(\n path.dirname(sourcePath),\n `${entry.name}.mustache`,\n )\n return !(\n entry.isFile() &&\n (entry.name === 'package.json' || entry.name === 'README.md') &&\n fs.existsSync(mustacheVariantPath)\n )\n },\n })\n if (seed.assetsDir && fs.existsSync(seed.assetsDir)) {\n await fsp.cp(seed.assetsDir, path.join(normalizedDir, 'assets'), {\n recursive: true,\n force: true,\n })\n }\n } catch (error) {\n await fsp.rm(tempRoot, { force: true, recursive: true })\n throw error\n }\n\n return {\n blockDir: normalizedDir,\n cleanup: async () => {\n await fsp.rm(tempRoot, { force: true, recursive: true })\n await seed.cleanup?.()\n },\n rootDir: normalizedDir,\n selectedVariant: seed.selectedVariant,\n warnings: seed.warnings,\n }\n}\n\nfunction renderTypeScriptLiteral(value: unknown): string {\n if (typeof value === 'string') {\n return JSON.stringify(value)\n }\n if (typeof value === 'number' || typeof value === 'boolean') {\n return String(value)\n }\n\n return 'undefined'\n}\n\nfunction renderTagsForAttribute(attribute: Record<string, unknown>): string[] {\n const tags: string[] = []\n if (\n typeof attribute.default === 'string' ||\n typeof attribute.default === 'number' ||\n typeof attribute.default === 'boolean'\n ) {\n tags.push(`tags.Default<${renderTypeScriptLiteral(attribute.default)}>`)\n }\n return tags\n}\n\nfunction renderAttributeBaseType(\n attributeName: string,\n attribute: Record<string, unknown>,\n): string {\n if (Array.isArray(attribute.enum) && attribute.enum.length > 0) {\n return attribute.enum\n .map((item) => renderTypeScriptLiteral(item))\n .join(' | ')\n }\n\n switch (attribute.type) {\n case 'string':\n return 'string'\n case 'number':\n return 'number'\n case 'boolean':\n return 'boolean'\n case 'array':\n return 'unknown[]'\n case 'object':\n return 'Record<string, unknown>'\n default:\n if (\n typeof attributeName === 'string' &&\n attributeName.toLowerCase().includes('class')\n ) {\n return 'string'\n }\n return 'unknown'\n }\n}\n\nfunction buildRemoteTypesSource(\n blockJson: Record<string, unknown>,\n context: TemplateVariableContext,\n): string {\n const attributes = (blockJson.attributes ?? {}) as Record<\n string,\n Record<string, unknown>\n >\n const lines = [\n 'import { tags } from \"typia\";',\n '',\n `export interface ${context.pascalCase}Attributes {`,\n ]\n\n for (const [name, attribute] of Object.entries(attributes)) {\n const baseType = renderAttributeBaseType(name, attribute)\n const tagList = renderTagsForAttribute(attribute)\n const baseTypeWithGrouping =\n tagList.length > 0 && baseType.includes(' | ')\n ? `(${baseType})`\n : baseType\n const renderedType = [baseTypeWithGrouping, ...tagList].join(' & ')\n lines.push(` ${JSON.stringify(name)}?: ${renderedType};`)\n }\n\n lines.push('}', '')\n return lines.join('\\n')\n}\n\nfunction buildRemoteBlockJsonTemplate(\n blockJson: Record<string, unknown>,\n): string {\n const merged: Record<string, unknown> = {\n ...blockJson,\n description: '{{description}}',\n name: '{{namespace}}/{{slug}}',\n textdomain: '{{textDomain}}',\n title: '{{title}}',\n }\n\n if (!Array.isArray(merged.keywords) || merged.keywords.length === 0) {\n merged.keywords = ['{{keyword}}', 'typia', 'block']\n }\n\n return `${JSON.stringify(merged, null, '\\t')}\\n`\n}\n\nasync function rewriteBlockJsonImports(directory: string): Promise<void> {\n const textExtensions = new Set(['.js', '.jsx', '.ts', '.tsx'])\n const targetBlockJsonPath = path.join(directory, 'block.json')\n\n async function visit(currentPath: string): Promise<void> {\n const stats = await fsp.stat(currentPath)\n if (stats.isDirectory()) {\n const entries = await fsp.readdir(currentPath)\n for (const entry of entries) {\n await visit(path.join(currentPath, entry))\n }\n return\n }\n\n if (!textExtensions.has(path.extname(currentPath))) {\n return\n }\n\n const content = await fsp.readFile(currentPath, 'utf8')\n const relativeSpecifier = path\n .relative(path.dirname(currentPath), targetBlockJsonPath)\n .replace(/\\\\/g, '/')\n const normalizedSpecifier = relativeSpecifier.startsWith('.')\n ? relativeSpecifier\n : `./${relativeSpecifier}`\n const next = content.replace(\n /(['\"])\\.{1,2}\\/[^'\"]*block\\.json\\1/g,\n `$1${normalizedSpecifier}$1`,\n )\n if (next !== content) {\n await fsp.writeFile(currentPath, next, 'utf8')\n }\n }\n\n await visit(directory)\n}\n\nasync function patchRemotePackageJson(\n templateDir: string,\n needsInteractivity: boolean,\n): Promise<void> {\n const packageJsonPath = path.join(templateDir, 'package.json.mustache')\n const packageJson = JSON.parse(\n await fsp.readFile(packageJsonPath, 'utf8'),\n ) as {\n dependencies?: Record<string, string>\n devDependencies?: Record<string, string>\n }\n const existingDependencies = { ...(packageJson.dependencies ?? {}) }\n const existingDevDependencies = { ...(packageJson.devDependencies ?? {}) }\n\n delete existingDependencies['@wp-typia/project-tools']\n delete existingDevDependencies['@wp-typia/project-tools']\n\n packageJson.devDependencies = {\n '@wp-typia/block-runtime': '{{blockRuntimePackageVersion}}',\n '@wp-typia/block-types': '{{blockTypesPackageVersion}}',\n ...existingDevDependencies,\n }\n\n if (needsInteractivity) {\n packageJson.dependencies = {\n ...existingDependencies,\n '@wordpress/interactivity': '^6.29.0',\n }\n } else if (Object.keys(existingDependencies).length > 0) {\n packageJson.dependencies = existingDependencies\n } else {\n delete packageJson.dependencies\n }\n\n await fsp.writeFile(\n packageJsonPath,\n `${JSON.stringify(packageJson, null, 2)}\\n`,\n 'utf8',\n )\n}\n\nfunction getSeedSourceRoot(blockDir: string): string {\n return fs.existsSync(path.join(blockDir, 'src'))\n ? path.join(blockDir, 'src')\n : blockDir\n}\n\nfunction findSeedRenderPhp(seed: SeedSource): string | null {\n for (const candidate of [\n path.join(seed.blockDir, 'render.php'),\n path.join(seed.rootDir, 'render.php'),\n ]) {\n if (fs.existsSync(candidate)) {\n return candidate\n }\n }\n return null\n}\n\nasync function removeSeedEntryConflicts(templateDir: string): Promise<void> {\n for (const filename of [\n 'block.json',\n 'block.json.mustache',\n 'edit.js',\n 'edit.jsx',\n 'edit.ts',\n 'edit.tsx',\n 'edit.tsx.mustache',\n 'hooks.ts',\n 'hooks.ts.mustache',\n 'index.js',\n 'index.jsx',\n 'index.ts',\n 'index.tsx',\n 'index.tsx.mustache',\n 'save.js',\n 'save.jsx',\n 'save.ts',\n 'save.tsx',\n 'save.tsx.mustache',\n 'style.css',\n 'style.scss',\n 'style.scss.mustache',\n 'types.ts',\n 'types.ts.mustache',\n 'validators.ts',\n 'validators.ts.mustache',\n 'view.js',\n 'view.jsx',\n 'view.ts',\n 'view.tsx',\n ]) {\n await fsp.rm(path.join(templateDir, 'src', filename), { force: true })\n }\n}\n\n/**\n * Convert a create-block subset seed into a normalized wp-typia template source.\n *\n * @param seed Seed source produced from a remote create-block subset.\n * @param context Template variable context used for generated artifacts.\n * @returns A normalized template source rooted in a temporary directory.\n */\nexport async function normalizeCreateBlockSubset(\n seed: SeedSource,\n context: TemplateVariableContext,\n): Promise<ResolvedTemplateSource> {\n const tempRoot = await fsp.mkdtemp(\n path.join(os.tmpdir(), 'wp-typia-remote-template-'),\n )\n try {\n const templateDir = path.join(tempRoot, 'template')\n const blockJson = readRemoteBlockJson(seed.blockDir)\n const sourceRoot = getSeedSourceRoot(seed.blockDir)\n\n await fsp.mkdir(templateDir, { recursive: true })\n for (const layerDir of getBuiltInTemplateLayerDirs('basic')) {\n if (!fs.existsSync(layerDir)) {\n if (isOmittableBuiltInTemplateLayerDir('basic', layerDir)) {\n continue\n }\n throw new Error(`Built-in template layer is missing: ${layerDir}`)\n }\n await fsp.cp(layerDir, templateDir, {\n recursive: true,\n force: true,\n })\n }\n await removeSeedEntryConflicts(templateDir)\n await fsp.cp(sourceRoot, path.join(templateDir, 'src'), {\n recursive: true,\n force: true,\n })\n\n const remoteRenderPath = findSeedRenderPhp(seed)\n if (remoteRenderPath) {\n await fsp.copyFile(remoteRenderPath, path.join(templateDir, 'render.php'))\n }\n\n if (seed.assetsDir && fs.existsSync(seed.assetsDir)) {\n await fsp.cp(seed.assetsDir, path.join(templateDir, 'assets'), {\n recursive: true,\n force: true,\n })\n }\n\n await fsp.writeFile(\n path.join(templateDir, 'src', 'types.ts'),\n buildRemoteTypesSource(blockJson, context),\n 'utf8',\n )\n await fsp.writeFile(\n path.join(templateDir, 'src', 'block.json'),\n buildRemoteBlockJsonTemplate(blockJson),\n 'utf8',\n )\n await rewriteBlockJsonImports(path.join(templateDir, 'src'))\n\n const needsInteractivity =\n typeof blockJson.viewScriptModule === 'string' ||\n typeof blockJson.viewScript === 'string' ||\n fs.existsSync(path.join(templateDir, 'src', 'view.js')) ||\n fs.existsSync(path.join(templateDir, 'src', 'view.ts')) ||\n fs.existsSync(path.join(templateDir, 'src', 'view.tsx')) ||\n fs.existsSync(path.join(templateDir, 'src', 'interactivity.js')) ||\n fs.existsSync(path.join(templateDir, 'src', 'interactivity.ts'))\n\n await patchRemotePackageJson(templateDir, needsInteractivity)\n\n return {\n id: 'remote:create-block-subset',\n defaultCategory: getDefaultCategoryFromBlockJson(blockJson),\n description:\n 'A wp-typia scaffold normalized from a create-block subset source',\n features: [\n 'Remote source',\n 'create-block adapter',\n 'Typia metadata pipeline',\n ],\n format: 'create-block-subset',\n selectedVariant: seed.selectedVariant ?? null,\n templateDir,\n warnings: seed.warnings ?? [],\n cleanup: async () => {\n await fsp.rm(tempRoot, { force: true, recursive: true })\n if (seed.cleanup) {\n await seed.cleanup()\n }\n },\n }\n } catch (error) {\n await fsp.rm(tempRoot, { force: true, recursive: true })\n await seed.cleanup?.()\n throw error\n }\n}\n",
|
|
85
|
-
"import fs from 'node:fs'\nimport { promises as fsp } from 'node:fs'\nimport { createRequire } from 'node:module'\nimport os from 'node:os'\nimport path from 'node:path'\nimport { execFileSync } from 'node:child_process'\n\nimport semver from 'semver'\nimport { x as extractTarball } from 'tar'\n\nimport {\n OFFICIAL_WORKSPACE_TEMPLATE_PACKAGE,\n PROJECT_TOOLS_PACKAGE_ROOT,\n} from './template-registry.js'\nimport { isPlainObject } from './object-utils.js'\nimport type {\n GitHubTemplateLocator,\n NpmTemplateLocator,\n RemoteTemplateLocator,\n SeedSource,\n} from './template-source-contracts.js'\n\nfunction selectRegistryVersion(\n metadata: Record<string, unknown>,\n locator: NpmTemplateLocator,\n): string {\n const distTags = isPlainObject(metadata['dist-tags'])\n ? metadata['dist-tags']\n : {}\n const versions = isPlainObject(metadata.versions) ? metadata.versions : {}\n const versionKeys = Object.keys(versions)\n\n if (locator.type === 'version') {\n if (!versions[locator.fetchSpec]) {\n throw new Error(`npm template package version not found: ${locator.raw}`)\n }\n return locator.fetchSpec\n }\n\n if (locator.type === 'tag') {\n const taggedVersion = distTags[locator.fetchSpec]\n if (typeof taggedVersion !== 'string') {\n throw new Error(`npm template package tag not found: ${locator.raw}`)\n }\n return taggedVersion\n }\n\n const range = locator.fetchSpec.trim().length > 0 ? locator.fetchSpec : '*'\n const matchedVersion = semver.maxSatisfying(versionKeys, range)\n if (matchedVersion) {\n return matchedVersion\n }\n\n if (locator.fetchSpec.trim().length > 0) {\n throw new Error(\n `Unable to resolve npm template version for ${locator.raw}. Requested \"${locator.fetchSpec}\" but available versions are: ${versionKeys.join(', ') || '(none)'}.`,\n )\n }\n\n const latestVersion = distTags.latest\n if (typeof latestVersion === 'string' && versions[latestVersion]) {\n return latestVersion\n }\n\n throw new Error(\n `Unable to resolve a published npm template version for ${locator.raw}.`,\n )\n}\n\nasync function fetchNpmTemplateSource(\n locator: NpmTemplateLocator,\n): Promise<SeedSource> {\n const registryBase = (\n process.env.NPM_CONFIG_REGISTRY ?? 'https://registry.npmjs.org'\n ).replace(/\\/$/, '')\n const metadataResponse = await fetch(\n `${registryBase}/${encodeURIComponent(locator.name)}`,\n )\n if (!metadataResponse.ok) {\n throw new Error(\n `Failed to fetch npm template metadata for ${locator.raw}: ${metadataResponse.status}`,\n )\n }\n\n const metadata = (await metadataResponse.json()) as Record<string, unknown>\n const resolvedVersion = selectRegistryVersion(metadata, locator)\n const versions = isPlainObject(metadata.versions) ? metadata.versions : {}\n const versionMetadata = versions[resolvedVersion]\n if (!isPlainObject(versionMetadata) || !isPlainObject(versionMetadata.dist)) {\n throw new Error(\n `npm template metadata is missing dist information for ${locator.raw}@${resolvedVersion}.`,\n )\n }\n\n const tarballUrl = versionMetadata.dist.tarball\n if (typeof tarballUrl !== 'string' || tarballUrl.length === 0) {\n throw new Error(\n `npm template metadata is missing tarball URL for ${locator.raw}@${resolvedVersion}.`,\n )\n }\n\n const tempRoot = await fsp.mkdtemp(\n path.join(os.tmpdir(), 'wp-typia-template-source-'),\n )\n const cleanup = async () => {\n await fsp.rm(tempRoot, { force: true, recursive: true })\n }\n\n try {\n const tarballResponse = await fetch(tarballUrl)\n if (!tarballResponse.ok) {\n throw new Error(\n `Failed to download npm template tarball for ${locator.raw}: ${tarballResponse.status}`,\n )\n }\n\n const tarballPath = path.join(tempRoot, 'template.tgz')\n const unpackDir = path.join(tempRoot, 'source')\n await fsp.mkdir(unpackDir, { recursive: true })\n await fsp.writeFile(\n tarballPath,\n Buffer.from(await tarballResponse.arrayBuffer()),\n )\n await extractTarball({\n cwd: unpackDir,\n file: tarballPath,\n strip: 1,\n })\n await assertNoSymlinks(unpackDir)\n\n return {\n blockDir: unpackDir,\n cleanup,\n rootDir: unpackDir,\n }\n } catch (error) {\n await cleanup()\n throw error\n }\n}\n\n/**\n * Resolve a locally installed npm template package from the caller workspace.\n *\n * Bare package ids are preferred here so monorepo and offline workflows can\n * use an already-installed template without forcing a registry fetch.\n */\nfunction resolveInstalledNpmTemplateSource(\n locator: NpmTemplateLocator,\n cwd: string,\n): SeedSource | null {\n if (locator.rawSpec !== '' && locator.rawSpec !== '*') {\n return null\n }\n\n const workspacePackagesRoot = path.resolve(PROJECT_TOOLS_PACKAGE_ROOT, '..')\n if (fs.existsSync(workspacePackagesRoot)) {\n for (const entry of fs.readdirSync(workspacePackagesRoot, {\n withFileTypes: true,\n })) {\n if (!entry.isDirectory()) {\n continue\n }\n\n const packageDir = path.join(workspacePackagesRoot, entry.name)\n const packageJsonPath = path.join(packageDir, 'package.json')\n if (!fs.existsSync(packageJsonPath)) {\n continue\n }\n\n const manifest = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8')) as {\n name?: string\n }\n if (manifest.name === locator.name) {\n return {\n blockDir: packageDir,\n rootDir: packageDir,\n }\n }\n }\n }\n\n const workspaceRequire = createRequire(\n path.join(path.resolve(cwd), '__wp_typia_template_resolver__.cjs'),\n )\n try {\n const packageJsonPath = fs.realpathSync(\n workspaceRequire.resolve(`${locator.name}/package.json`),\n )\n const sourceDir = path.dirname(packageJsonPath)\n return {\n blockDir: sourceDir,\n rootDir: sourceDir,\n }\n } catch (error) {\n const errorCode =\n typeof error === 'object' && error !== null && 'code' in error\n ? String((error as { code: unknown }).code)\n : ''\n if (\n errorCode === 'MODULE_NOT_FOUND' ||\n errorCode === 'ERR_PACKAGE_PATH_NOT_EXPORTED'\n ) {\n for (const basePath of workspaceRequire.resolve.paths(locator.name) ??\n []) {\n const packageJsonPath = path.join(\n basePath,\n locator.name,\n 'package.json',\n )\n if (!fs.existsSync(packageJsonPath)) {\n continue\n }\n const sourceDir = path.dirname(fs.realpathSync(packageJsonPath))\n return {\n blockDir: sourceDir,\n rootDir: sourceDir,\n }\n }\n return null\n }\n throw error\n }\n}\n\nexport function isOfficialWorkspaceTemplateSeed(seed: SeedSource): boolean {\n const packageJsonPath = path.join(seed.rootDir, 'package.json')\n if (!fs.existsSync(packageJsonPath)) {\n return false\n }\n\n try {\n const packageJson = JSON.parse(\n fs.readFileSync(packageJsonPath, 'utf8'),\n ) as { name?: string }\n return packageJson.name === OFFICIAL_WORKSPACE_TEMPLATE_PACKAGE\n } catch {\n return false\n }\n}\n\nexport async function assertNoSymlinks(sourceDir: string): Promise<void> {\n const stats = await fsp.lstat(sourceDir)\n if (stats.isSymbolicLink()) {\n throw new Error(\n `Template sources may not include symbolic links: ${sourceDir}`,\n )\n }\n\n if (!stats.isDirectory()) {\n return\n }\n\n for (const entry of await fsp.readdir(sourceDir)) {\n await assertNoSymlinks(path.join(sourceDir, entry))\n }\n}\n\nasync function resolveGitHubTemplateSource(\n locator: GitHubTemplateLocator,\n): Promise<SeedSource> {\n const remoteRoot = await fsp.mkdtemp(\n path.join(os.tmpdir(), 'wp-typia-template-source-'),\n )\n const cleanup = async () => {\n await fsp.rm(remoteRoot, { force: true, recursive: true })\n }\n const checkoutDir = path.join(remoteRoot, 'source')\n\n try {\n const args = ['clone', '--depth', '1']\n if (locator.ref) {\n args.push('--branch', locator.ref)\n }\n args.push(\n `https://github.com/${locator.owner}/${locator.repo}.git`,\n checkoutDir,\n )\n execFileSync('git', args, { stdio: 'ignore' })\n\n const sourceDir = path.resolve(checkoutDir, locator.sourcePath)\n const relativeSourceDir = path.relative(checkoutDir, sourceDir)\n if (\n relativeSourceDir.startsWith('..') ||\n path.isAbsolute(relativeSourceDir)\n ) {\n throw new Error(\n 'GitHub template path must stay within the cloned repository.',\n )\n }\n if (!fs.existsSync(sourceDir)) {\n throw new Error(\n `GitHub template path does not exist: ${locator.sourcePath}`,\n )\n }\n await assertNoSymlinks(sourceDir)\n\n return {\n blockDir: sourceDir,\n cleanup,\n rootDir: sourceDir,\n }\n } catch (error) {\n await cleanup()\n throw error\n }\n}\n\n/**\n * Resolves a template locator into a local seed source directory.\n *\n * @param locator Remote template locator describing a local path, GitHub source, or npm package.\n * @param cwd Current working directory used to resolve local template paths.\n * @returns A local seed source containing the resolved root and block directory, plus optional cleanup.\n * @throws When the locator is invalid, the source cannot be fetched, or filesystem validation fails.\n */\nexport async function resolveTemplateSeed(\n locator: RemoteTemplateLocator,\n cwd: string,\n): Promise<SeedSource> {\n if (locator.kind === 'path') {\n const sourceDir = path.resolve(cwd, locator.templatePath)\n if (!fs.existsSync(sourceDir)) {\n throw new Error(`Template path does not exist: ${sourceDir}`)\n }\n await assertNoSymlinks(sourceDir)\n return {\n blockDir: sourceDir,\n rootDir: sourceDir,\n }\n }\n\n if (locator.kind === 'github') {\n return resolveGitHubTemplateSource(locator.locator)\n }\n\n const installedSource = resolveInstalledNpmTemplateSource(\n locator.locator,\n cwd,\n )\n if (installedSource) {\n await assertNoSymlinks(installedSource.blockDir)\n return installedSource\n }\n\n return fetchNpmTemplateSource(locator.locator)\n}\n",
|
|
84
|
+
"/// <reference path=\"./external-template-modules.d.ts\" />\n\nimport fs from 'node:fs'\nimport { promises as fsp } from 'node:fs'\nimport path from 'node:path'\nimport { pathToFileURL } from 'node:url'\n\nimport { isPlainObject, type UnknownRecord } from './object-utils.js'\nimport { toSegmentPascalCase } from './string-case.js'\nimport { createManagedTempRoot } from './temp-roots.js'\nimport { copyRawDirectory, copyRenderedDirectory } from './template-render.js'\nimport type {\n ExternalTemplateConfig,\n SeedSource,\n TemplateVariableContext,\n} from './template-source-contracts.js'\n\n/**\n * Candidate filenames for official external template config entrypoints.\n */\nexport const EXTERNAL_TEMPLATE_ENTRY_CANDIDATES = [\n 'index.js',\n 'index.cjs',\n 'index.mjs',\n] as const\nexport const EXTERNAL_TEMPLATE_TRUST_WARNING =\n 'External template configs execute trusted JavaScript during scaffolding. Review the template source before using local paths, GitHub repos, or npm packages you do not already trust.'\nconst TEMPLATE_WARNING_MESSAGE =\n 'wp-typia owns package/tooling/sync setup for generated projects, so this external template setting is ignored.'\n\nfunction getTemplateWarning(key: string): string {\n return `Ignoring external template config key \"${key}\": ${TEMPLATE_WARNING_MESSAGE}`\n}\n\nfunction resolveSourceSubpath(sourceDir: string, relativePath: string): string {\n const targetPath = path.resolve(sourceDir, relativePath)\n const relativeTarget = path.relative(sourceDir, targetPath)\n if (relativeTarget.startsWith('..') || path.isAbsolute(relativeTarget)) {\n throw new Error(\n `Template path \"${relativePath}\" must stay within ${sourceDir}.`,\n )\n }\n return targetPath\n}\n\n/**\n * Search a source directory for the first supported external template entry.\n *\n * @param sourceDir Directory that may contain an external template config entry.\n * @returns The first matching entry path, or null when no supported entry exists.\n */\nexport function getExternalTemplateEntry(sourceDir: string): string | null {\n for (const filename of EXTERNAL_TEMPLATE_ENTRY_CANDIDATES) {\n const candidate = path.join(sourceDir, filename)\n if (fs.existsSync(candidate)) {\n return candidate\n }\n }\n\n return null\n}\n\nasync function loadExternalTemplateConfig<\n TView extends UnknownRecord = TemplateVariableContext,\n>(\n sourceDir: string,\n): Promise<{\n config: ExternalTemplateConfig<TView>\n warnings: string[]\n}> {\n const entryPath = getExternalTemplateEntry(sourceDir)\n if (!entryPath) {\n throw new Error(`No external template config entry found in ${sourceDir}.`)\n }\n\n const moduleUrl = `${pathToFileURL(entryPath).href}?mtime=${fs.statSync(entryPath).mtimeMs}`\n const loadedModule = (await import(moduleUrl)) as Record<string, unknown>\n const loadedConfig = loadedModule.default ?? loadedModule\n if (!isPlainObject(loadedConfig)) {\n throw new Error(\n `External template config must export an object: ${entryPath}`,\n )\n }\n\n const warnings: string[] = [EXTERNAL_TEMPLATE_TRUST_WARNING]\n for (const ignoredKey of [\n 'wpScripts',\n 'wpEnv',\n 'customScripts',\n 'npmDependencies',\n 'npmDevDependencies',\n 'customPackageJSON',\n 'pluginReadme',\n 'pluginHeader',\n ]) {\n if (ignoredKey in loadedConfig) {\n warnings.push(getTemplateWarning(ignoredKey))\n }\n }\n\n return {\n config: loadedConfig as ExternalTemplateConfig<TView>,\n warnings,\n }\n}\n\nfunction getVariantFlagName(variantName: string): string {\n return `is${toSegmentPascalCase(variantName)}Variant`\n}\n\nfunction getVariantKeys<TView extends UnknownRecord>(\n config: ExternalTemplateConfig<TView>,\n): string[] {\n return isPlainObject(config.variants) ? Object.keys(config.variants) : []\n}\n\nfunction getVariantConfig<TView extends UnknownRecord>(\n config: ExternalTemplateConfig<TView>,\n requestedVariant?: string,\n): {\n selectedVariant: string | null\n variantConfig: Partial<TView>\n} {\n const variantKeys = getVariantKeys(config)\n if (variantKeys.length === 0) {\n if (requestedVariant) {\n throw new Error(\n `Variant \"${requestedVariant}\" was requested, but the external template does not define any variants.`,\n )\n }\n\n return {\n selectedVariant: null,\n variantConfig: {},\n }\n }\n\n const selectedVariant = requestedVariant ?? variantKeys[0]\n if (!selectedVariant || !isPlainObject(config.variants?.[selectedVariant])) {\n throw new Error(\n `Unknown template variant \"${requestedVariant}\". Expected one of: ${variantKeys.join(', ')}`,\n )\n }\n\n return {\n selectedVariant,\n variantConfig: config.variants?.[selectedVariant] ?? {},\n }\n}\n\nfunction extractVariantRenderValues<TView extends UnknownRecord>(\n variantConfig: Partial<TView>,\n): Partial<TView> {\n const values = { ...variantConfig }\n delete values.assetsPath\n delete values.blockTemplatesPath\n delete values.folderName\n delete values.pluginTemplatesPath\n delete values.transformer\n return values\n}\n\nfunction resolveConfiguredTemplatePath<TView extends UnknownRecord>(\n config: ExternalTemplateConfig<TView>,\n variantConfig: Partial<TView>,\n): {\n folderName: string\n formatHint: 'create-block-subset' | 'wp-typia'\n templatePath: string\n} {\n const variantPluginTemplatesPath =\n typeof variantConfig.pluginTemplatesPath === 'string'\n ? variantConfig.pluginTemplatesPath\n : null\n const variantBlockTemplatesPath =\n typeof variantConfig.blockTemplatesPath === 'string'\n ? variantConfig.blockTemplatesPath\n : null\n const configBlockTemplatesPath =\n typeof config.blockTemplatesPath === 'string'\n ? config.blockTemplatesPath\n : null\n const configPluginTemplatesPath =\n typeof config.pluginTemplatesPath === 'string'\n ? config.pluginTemplatesPath\n : null\n\n const templatePath =\n variantPluginTemplatesPath ??\n variantBlockTemplatesPath ??\n configBlockTemplatesPath ??\n configPluginTemplatesPath\n if (!templatePath) {\n throw new Error(\n 'External template config must define blockTemplatesPath or pluginTemplatesPath.',\n )\n }\n\n const configuredFolderName =\n (typeof variantConfig.folderName === 'string'\n ? variantConfig.folderName\n : config.folderName) ?? null\n\n return {\n folderName: configuredFolderName || '.',\n formatHint:\n templatePath === variantPluginTemplatesPath ||\n templatePath === configPluginTemplatesPath\n ? 'wp-typia'\n : 'create-block-subset',\n templatePath,\n }\n}\n\nasync function buildExternalTemplateView(\n context: TemplateVariableContext,\n config: ExternalTemplateConfig<TemplateVariableContext>,\n selectedVariant: string | null,\n variantConfig: Partial<TemplateVariableContext>,\n): Promise<TemplateVariableContext> {\n const mergedView: TemplateVariableContext = {\n ...(config.defaultValues ?? {}),\n ...extractVariantRenderValues(variantConfig),\n ...context,\n }\n\n if (selectedVariant) {\n mergedView.variant = selectedVariant\n mergedView[getVariantFlagName(selectedVariant)] = true\n }\n\n if (!config.transformer) {\n return mergedView\n }\n\n const transformed = await config.transformer(mergedView)\n if (!isPlainObject(transformed)) {\n throw new Error(\n 'External template transformer(view) must return an object.',\n )\n }\n\n return {\n ...mergedView,\n ...transformed,\n }\n}\n\n/**\n * Load an official external template config and render its seed.\n *\n * @param sourceDir Source directory that contains the external template config.\n * @param context Template render context used for the selected variant.\n * @param requestedVariant Optional explicit variant override.\n * @returns A rendered temporary seed directory with optional assets and cleanup.\n */\nexport async function renderCreateBlockExternalTemplate(\n sourceDir: string,\n context: TemplateVariableContext,\n requestedVariant?: string,\n): Promise<SeedSource> {\n const { config, warnings } = await loadExternalTemplateConfig(sourceDir)\n const { selectedVariant, variantConfig } = getVariantConfig(\n config,\n requestedVariant,\n )\n\n const { folderName, formatHint, templatePath } = resolveConfiguredTemplatePath(\n config,\n variantConfig,\n )\n\n const { path: tempRoot, cleanup } = await createManagedTempRoot(\n 'wp-typia-create-block-external-',\n )\n\n try {\n const renderedRoot = path.join(tempRoot, 'rendered')\n const blockDir = resolveSourceSubpath(renderedRoot, folderName)\n const view = await buildExternalTemplateView(\n context,\n config,\n selectedVariant,\n variantConfig,\n )\n const blockTemplateDir = resolveSourceSubpath(sourceDir, templatePath)\n await copyRenderedDirectory(blockTemplateDir, blockDir, view, {\n filter: (sourcePath, _destinationPath, entry) => {\n const mustacheVariantPath = path.join(\n path.dirname(sourcePath),\n `${entry.name}.mustache`,\n )\n return !(\n entry.isFile() &&\n (entry.name === 'package.json' || entry.name === 'README.md') &&\n fs.existsSync(mustacheVariantPath)\n )\n },\n })\n\n const assetsPath =\n typeof variantConfig.assetsPath === 'string'\n ? variantConfig.assetsPath\n : config.assetsPath\n if (typeof assetsPath === 'string' && assetsPath.trim().length > 0) {\n await copyRawDirectory(\n resolveSourceSubpath(sourceDir, assetsPath),\n path.join(tempRoot, 'assets'),\n )\n }\n\n return {\n assetsDir: fs.existsSync(path.join(tempRoot, 'assets'))\n ? path.join(tempRoot, 'assets')\n : undefined,\n blockDir,\n cleanup,\n formatHint,\n rootDir: tempRoot,\n selectedVariant,\n warnings,\n }\n } catch (error) {\n await cleanup()\n throw error\n }\n}\n",
|
|
85
|
+
"import fs from 'node:fs'\nimport { promises as fsp } from 'node:fs'\nimport path from 'node:path'\n\nimport {\n getBuiltInTemplateLayerDirs,\n isOmittableBuiltInTemplateLayerDir,\n} from './template-builtins.js'\nimport { copyRawDirectory } from './template-render.js'\nimport { createManagedTempRoot } from './temp-roots.js'\nimport type {\n ResolvedTemplateSource,\n SeedSource,\n TemplateVariableContext,\n} from './template-source-contracts.js'\n\nasync function cleanupSeedRootPair(\n cleanup: () => Promise<void>,\n seedCleanup?: (() => Promise<void>) | undefined,\n): Promise<void> {\n let cleanupError: unknown\n\n try {\n await cleanup()\n } catch (error) {\n cleanupError = error\n }\n\n try {\n await seedCleanup?.()\n } catch (error) {\n cleanupError ??= error\n }\n\n if (cleanupError !== undefined) {\n throw cleanupError\n }\n}\n\nfunction getDefaultCategoryFromBlockJson(\n blockJson: Record<string, unknown>,\n): string {\n return typeof blockJson.category === 'string' &&\n blockJson.category.trim().length > 0\n ? blockJson.category.trim()\n : 'widgets'\n}\n\nfunction readRemoteBlockJson(blockDir: string): Record<string, unknown> {\n const sourceRoot = fs.existsSync(path.join(blockDir, 'src'))\n ? path.join(blockDir, 'src')\n : blockDir\n for (const candidate of [\n path.join(blockDir, 'block.json'),\n path.join(sourceRoot, 'block.json'),\n ]) {\n if (fs.existsSync(candidate)) {\n return JSON.parse(fs.readFileSync(candidate, 'utf8')) as Record<\n string,\n unknown\n >\n }\n }\n\n throw new Error(`Unable to locate block.json in ${blockDir}`)\n}\n\n/**\n * Read a remote block source and return its default block category.\n *\n * @param sourceDir Block source directory that may contain a block.json file.\n * @returns The declared block category, or \"widgets\" when detection fails.\n */\nexport function getDefaultCategory(sourceDir: string): string {\n try {\n const blockJson = readRemoteBlockJson(sourceDir)\n return getDefaultCategoryFromBlockJson(blockJson)\n } catch {\n return 'widgets'\n }\n}\n\nfunction readTemplatePackageJson(\n sourceDir: string,\n): {\n packageJson: { wpTypia?: { projectType?: unknown } }\n sourcePath: string\n} | null {\n for (const candidate of [\n path.join(sourceDir, 'package.json.mustache'),\n path.join(sourceDir, 'package.json'),\n ]) {\n if (!fs.existsSync(candidate)) {\n continue\n }\n\n try {\n return {\n packageJson: JSON.parse(fs.readFileSync(candidate, 'utf8')) as {\n wpTypia?: { projectType?: unknown }\n },\n sourcePath: candidate,\n }\n } catch (error) {\n const message =\n error instanceof Error ? error.message : 'Unknown parse failure'\n throw new Error(\n `Failed to parse template metadata file \"${candidate}\": ${message}`,\n )\n }\n }\n\n return null\n}\n\n/**\n * Read `wpTypia.projectType` from a rendered or source template package\n * manifest and return it when present.\n */\nexport function getTemplateProjectType(sourceDir: string): string | null {\n const packageJsonEntry = readTemplatePackageJson(sourceDir)\n if (!packageJsonEntry) {\n return null\n }\n\n const projectType = packageJsonEntry.packageJson.wpTypia?.projectType\n if (projectType === undefined) {\n return null\n }\n if (typeof projectType !== 'string' || projectType.trim().length === 0) {\n throw new Error(\n `Template metadata file \"${packageJsonEntry.sourcePath}\" defines wpTypia.projectType, but it must be a non-empty string.`,\n )\n }\n\n return projectType\n}\n\n/**\n * Copy a wp-typia seed into a normalized temporary template directory.\n *\n * @param seed Seed source whose files should be normalized into a temp root.\n * @returns A cloned seed whose cleanup removes the temp root and original seed.\n */\nexport async function normalizeWpTypiaTemplateSeed(\n seed: SeedSource,\n): Promise<SeedSource> {\n const { path: tempRoot, cleanup } = await createManagedTempRoot(\n 'wp-typia-template-source-',\n )\n const normalizedDir = path.join(tempRoot, 'template')\n try {\n await copyRawDirectory(seed.blockDir, normalizedDir, {\n filter: (sourcePath, _targetPath, entry) => {\n const mustacheVariantPath = path.join(\n path.dirname(sourcePath),\n `${entry.name}.mustache`,\n )\n return !(\n entry.isFile() &&\n (entry.name === 'package.json' || entry.name === 'README.md') &&\n fs.existsSync(mustacheVariantPath)\n )\n },\n })\n if (seed.assetsDir && fs.existsSync(seed.assetsDir)) {\n await fsp.cp(seed.assetsDir, path.join(normalizedDir, 'assets'), {\n recursive: true,\n force: true,\n })\n }\n } catch (error) {\n await Promise.allSettled([cleanup(), seed.cleanup?.()])\n throw error\n }\n\n return {\n blockDir: normalizedDir,\n cleanup: async () => cleanupSeedRootPair(cleanup, seed.cleanup),\n rootDir: normalizedDir,\n selectedVariant: seed.selectedVariant,\n warnings: seed.warnings,\n }\n}\n\nfunction renderTypeScriptLiteral(value: unknown): string {\n if (typeof value === 'string') {\n return JSON.stringify(value)\n }\n if (typeof value === 'number' || typeof value === 'boolean') {\n return String(value)\n }\n\n return 'undefined'\n}\n\nfunction renderTagsForAttribute(attribute: Record<string, unknown>): string[] {\n const tags: string[] = []\n if (\n typeof attribute.default === 'string' ||\n typeof attribute.default === 'number' ||\n typeof attribute.default === 'boolean'\n ) {\n tags.push(`tags.Default<${renderTypeScriptLiteral(attribute.default)}>`)\n }\n return tags\n}\n\nfunction renderAttributeBaseType(\n attributeName: string,\n attribute: Record<string, unknown>,\n): string {\n if (Array.isArray(attribute.enum) && attribute.enum.length > 0) {\n return attribute.enum\n .map((item) => renderTypeScriptLiteral(item))\n .join(' | ')\n }\n\n switch (attribute.type) {\n case 'string':\n return 'string'\n case 'number':\n return 'number'\n case 'boolean':\n return 'boolean'\n case 'array':\n return 'unknown[]'\n case 'object':\n return 'Record<string, unknown>'\n default:\n if (\n typeof attributeName === 'string' &&\n attributeName.toLowerCase().includes('class')\n ) {\n return 'string'\n }\n return 'unknown'\n }\n}\n\nfunction buildRemoteTypesSource(\n blockJson: Record<string, unknown>,\n context: TemplateVariableContext,\n): string {\n const attributes = (blockJson.attributes ?? {}) as Record<\n string,\n Record<string, unknown>\n >\n const lines = [\n 'import { tags } from \"typia\";',\n '',\n `export interface ${context.pascalCase}Attributes {`,\n ]\n\n for (const [name, attribute] of Object.entries(attributes)) {\n const baseType = renderAttributeBaseType(name, attribute)\n const tagList = renderTagsForAttribute(attribute)\n const baseTypeWithGrouping =\n tagList.length > 0 && baseType.includes(' | ')\n ? `(${baseType})`\n : baseType\n const renderedType = [baseTypeWithGrouping, ...tagList].join(' & ')\n lines.push(` ${JSON.stringify(name)}?: ${renderedType};`)\n }\n\n lines.push('}', '')\n return lines.join('\\n')\n}\n\nfunction buildRemoteBlockJsonTemplate(\n blockJson: Record<string, unknown>,\n): string {\n const merged: Record<string, unknown> = {\n ...blockJson,\n description: '{{description}}',\n name: '{{namespace}}/{{slug}}',\n textdomain: '{{textDomain}}',\n title: '{{title}}',\n }\n\n if (!Array.isArray(merged.keywords) || merged.keywords.length === 0) {\n merged.keywords = ['{{keyword}}', 'typia', 'block']\n }\n\n return `${JSON.stringify(merged, null, '\\t')}\\n`\n}\n\nasync function rewriteBlockJsonImports(directory: string): Promise<void> {\n const textExtensions = new Set(['.js', '.jsx', '.ts', '.tsx'])\n const targetBlockJsonPath = path.join(directory, 'block.json')\n\n async function visit(currentPath: string): Promise<void> {\n const stats = await fsp.stat(currentPath)\n if (stats.isDirectory()) {\n const entries = await fsp.readdir(currentPath)\n for (const entry of entries) {\n await visit(path.join(currentPath, entry))\n }\n return\n }\n\n if (!textExtensions.has(path.extname(currentPath))) {\n return\n }\n\n const content = await fsp.readFile(currentPath, 'utf8')\n const relativeSpecifier = path\n .relative(path.dirname(currentPath), targetBlockJsonPath)\n .replace(/\\\\/g, '/')\n const normalizedSpecifier = relativeSpecifier.startsWith('.')\n ? relativeSpecifier\n : `./${relativeSpecifier}`\n const next = content.replace(\n /(['\"])\\.{1,2}\\/[^'\"]*block\\.json\\1/g,\n `$1${normalizedSpecifier}$1`,\n )\n if (next !== content) {\n await fsp.writeFile(currentPath, next, 'utf8')\n }\n }\n\n await visit(directory)\n}\n\nasync function patchRemotePackageJson(\n templateDir: string,\n needsInteractivity: boolean,\n): Promise<void> {\n const packageJsonPath = path.join(templateDir, 'package.json.mustache')\n const packageJson = JSON.parse(\n await fsp.readFile(packageJsonPath, 'utf8'),\n ) as {\n dependencies?: Record<string, string>\n devDependencies?: Record<string, string>\n }\n const existingDependencies = { ...(packageJson.dependencies ?? {}) }\n const existingDevDependencies = { ...(packageJson.devDependencies ?? {}) }\n\n delete existingDependencies['@wp-typia/project-tools']\n delete existingDevDependencies['@wp-typia/project-tools']\n\n packageJson.devDependencies = {\n '@wp-typia/block-runtime': '{{blockRuntimePackageVersion}}',\n '@wp-typia/block-types': '{{blockTypesPackageVersion}}',\n ...existingDevDependencies,\n }\n\n if (needsInteractivity) {\n packageJson.dependencies = {\n ...existingDependencies,\n '@wordpress/interactivity': '^6.29.0',\n }\n } else if (Object.keys(existingDependencies).length > 0) {\n packageJson.dependencies = existingDependencies\n } else {\n delete packageJson.dependencies\n }\n\n await fsp.writeFile(\n packageJsonPath,\n `${JSON.stringify(packageJson, null, 2)}\\n`,\n 'utf8',\n )\n}\n\nfunction getSeedSourceRoot(blockDir: string): string {\n return fs.existsSync(path.join(blockDir, 'src'))\n ? path.join(blockDir, 'src')\n : blockDir\n}\n\nfunction findSeedRenderPhp(seed: SeedSource): string | null {\n for (const candidate of [\n path.join(seed.blockDir, 'render.php'),\n path.join(seed.rootDir, 'render.php'),\n ]) {\n if (fs.existsSync(candidate)) {\n return candidate\n }\n }\n return null\n}\n\nasync function removeSeedEntryConflicts(templateDir: string): Promise<void> {\n for (const filename of [\n 'block.json',\n 'block.json.mustache',\n 'edit.js',\n 'edit.jsx',\n 'edit.ts',\n 'edit.tsx',\n 'edit.tsx.mustache',\n 'hooks.ts',\n 'hooks.ts.mustache',\n 'index.js',\n 'index.jsx',\n 'index.ts',\n 'index.tsx',\n 'index.tsx.mustache',\n 'save.js',\n 'save.jsx',\n 'save.ts',\n 'save.tsx',\n 'save.tsx.mustache',\n 'style.css',\n 'style.scss',\n 'style.scss.mustache',\n 'types.ts',\n 'types.ts.mustache',\n 'validators.ts',\n 'validators.ts.mustache',\n 'view.js',\n 'view.jsx',\n 'view.ts',\n 'view.tsx',\n ]) {\n await fsp.rm(path.join(templateDir, 'src', filename), { force: true })\n }\n}\n\n/**\n * Convert a create-block subset seed into a normalized wp-typia template source.\n *\n * @param seed Seed source produced from a remote create-block subset.\n * @param context Template variable context used for generated artifacts.\n * @returns A normalized template source rooted in a temporary directory.\n */\nexport async function normalizeCreateBlockSubset(\n seed: SeedSource,\n context: TemplateVariableContext,\n): Promise<ResolvedTemplateSource> {\n const { path: tempRoot, cleanup } = await createManagedTempRoot(\n 'wp-typia-remote-template-',\n )\n try {\n const templateDir = path.join(tempRoot, 'template')\n const blockJson = readRemoteBlockJson(seed.blockDir)\n const sourceRoot = getSeedSourceRoot(seed.blockDir)\n\n await fsp.mkdir(templateDir, { recursive: true })\n for (const layerDir of getBuiltInTemplateLayerDirs('basic')) {\n if (!fs.existsSync(layerDir)) {\n if (isOmittableBuiltInTemplateLayerDir('basic', layerDir)) {\n continue\n }\n throw new Error(`Built-in template layer is missing: ${layerDir}`)\n }\n await fsp.cp(layerDir, templateDir, {\n recursive: true,\n force: true,\n })\n }\n await removeSeedEntryConflicts(templateDir)\n await fsp.cp(sourceRoot, path.join(templateDir, 'src'), {\n recursive: true,\n force: true,\n })\n\n const remoteRenderPath = findSeedRenderPhp(seed)\n if (remoteRenderPath) {\n await fsp.copyFile(remoteRenderPath, path.join(templateDir, 'render.php'))\n }\n\n if (seed.assetsDir && fs.existsSync(seed.assetsDir)) {\n await fsp.cp(seed.assetsDir, path.join(templateDir, 'assets'), {\n recursive: true,\n force: true,\n })\n }\n\n await fsp.writeFile(\n path.join(templateDir, 'src', 'types.ts'),\n buildRemoteTypesSource(blockJson, context),\n 'utf8',\n )\n await fsp.writeFile(\n path.join(templateDir, 'src', 'block.json'),\n buildRemoteBlockJsonTemplate(blockJson),\n 'utf8',\n )\n await rewriteBlockJsonImports(path.join(templateDir, 'src'))\n\n const needsInteractivity =\n typeof blockJson.viewScriptModule === 'string' ||\n typeof blockJson.viewScript === 'string' ||\n fs.existsSync(path.join(templateDir, 'src', 'view.js')) ||\n fs.existsSync(path.join(templateDir, 'src', 'view.ts')) ||\n fs.existsSync(path.join(templateDir, 'src', 'view.tsx')) ||\n fs.existsSync(path.join(templateDir, 'src', 'interactivity.js')) ||\n fs.existsSync(path.join(templateDir, 'src', 'interactivity.ts'))\n\n await patchRemotePackageJson(templateDir, needsInteractivity)\n\n return {\n id: 'remote:create-block-subset',\n defaultCategory: getDefaultCategoryFromBlockJson(blockJson),\n description:\n 'A wp-typia scaffold normalized from a create-block subset source',\n features: [\n 'Remote source',\n 'create-block adapter',\n 'Typia metadata pipeline',\n ],\n format: 'create-block-subset',\n selectedVariant: seed.selectedVariant ?? null,\n templateDir,\n warnings: seed.warnings ?? [],\n cleanup: async () => cleanupSeedRootPair(cleanup, seed.cleanup),\n }\n } catch (error) {\n await Promise.allSettled([cleanup(), seed.cleanup?.()])\n throw error\n }\n}\n",
|
|
86
|
+
"import fs from 'node:fs'\nimport { promises as fsp } from 'node:fs'\nimport { createRequire } from 'node:module'\nimport path from 'node:path'\nimport { execFileSync } from 'node:child_process'\n\nimport semver from 'semver'\nimport { x as extractTarball } from 'tar'\n\nimport {\n OFFICIAL_WORKSPACE_TEMPLATE_PACKAGE,\n PROJECT_TOOLS_PACKAGE_ROOT,\n} from './template-registry.js'\nimport { isPlainObject } from './object-utils.js'\nimport { createManagedTempRoot } from './temp-roots.js'\nimport type {\n GitHubTemplateLocator,\n NpmTemplateLocator,\n RemoteTemplateLocator,\n SeedSource,\n} from './template-source-contracts.js'\n\nfunction selectRegistryVersion(\n metadata: Record<string, unknown>,\n locator: NpmTemplateLocator,\n): string {\n const distTags = isPlainObject(metadata['dist-tags'])\n ? metadata['dist-tags']\n : {}\n const versions = isPlainObject(metadata.versions) ? metadata.versions : {}\n const versionKeys = Object.keys(versions)\n\n if (locator.type === 'version') {\n if (!versions[locator.fetchSpec]) {\n throw new Error(`npm template package version not found: ${locator.raw}`)\n }\n return locator.fetchSpec\n }\n\n if (locator.type === 'tag') {\n const taggedVersion = distTags[locator.fetchSpec]\n if (typeof taggedVersion !== 'string') {\n throw new Error(`npm template package tag not found: ${locator.raw}`)\n }\n return taggedVersion\n }\n\n const range = locator.fetchSpec.trim().length > 0 ? locator.fetchSpec : '*'\n const matchedVersion = semver.maxSatisfying(versionKeys, range)\n if (matchedVersion) {\n return matchedVersion\n }\n\n if (locator.fetchSpec.trim().length > 0) {\n throw new Error(\n `Unable to resolve npm template version for ${locator.raw}. Requested \"${locator.fetchSpec}\" but available versions are: ${versionKeys.join(', ') || '(none)'}.`,\n )\n }\n\n const latestVersion = distTags.latest\n if (typeof latestVersion === 'string' && versions[latestVersion]) {\n return latestVersion\n }\n\n throw new Error(\n `Unable to resolve a published npm template version for ${locator.raw}.`,\n )\n}\n\nasync function fetchNpmTemplateSource(\n locator: NpmTemplateLocator,\n): Promise<SeedSource> {\n const registryBase = (\n process.env.NPM_CONFIG_REGISTRY ?? 'https://registry.npmjs.org'\n ).replace(/\\/$/, '')\n const metadataResponse = await fetch(\n `${registryBase}/${encodeURIComponent(locator.name)}`,\n )\n if (!metadataResponse.ok) {\n throw new Error(\n `Failed to fetch npm template metadata for ${locator.raw}: ${metadataResponse.status}`,\n )\n }\n\n const metadata = (await metadataResponse.json()) as Record<string, unknown>\n const resolvedVersion = selectRegistryVersion(metadata, locator)\n const versions = isPlainObject(metadata.versions) ? metadata.versions : {}\n const versionMetadata = versions[resolvedVersion]\n if (!isPlainObject(versionMetadata) || !isPlainObject(versionMetadata.dist)) {\n throw new Error(\n `npm template metadata is missing dist information for ${locator.raw}@${resolvedVersion}.`,\n )\n }\n\n const tarballUrl = versionMetadata.dist.tarball\n if (typeof tarballUrl !== 'string' || tarballUrl.length === 0) {\n throw new Error(\n `npm template metadata is missing tarball URL for ${locator.raw}@${resolvedVersion}.`,\n )\n }\n\n const { path: tempRoot, cleanup } = await createManagedTempRoot(\n 'wp-typia-template-source-',\n )\n\n try {\n const tarballResponse = await fetch(tarballUrl)\n if (!tarballResponse.ok) {\n throw new Error(\n `Failed to download npm template tarball for ${locator.raw}: ${tarballResponse.status}`,\n )\n }\n\n const tarballPath = path.join(tempRoot, 'template.tgz')\n const unpackDir = path.join(tempRoot, 'source')\n await fsp.mkdir(unpackDir, { recursive: true })\n await fsp.writeFile(\n tarballPath,\n Buffer.from(await tarballResponse.arrayBuffer()),\n )\n await extractTarball({\n cwd: unpackDir,\n file: tarballPath,\n strip: 1,\n })\n await assertNoSymlinks(unpackDir)\n\n return {\n blockDir: unpackDir,\n cleanup,\n rootDir: unpackDir,\n }\n } catch (error) {\n await cleanup()\n throw error\n }\n}\n\n/**\n * Resolve a locally installed npm template package from the caller workspace.\n *\n * Bare package ids are preferred here so monorepo and offline workflows can\n * use an already-installed template without forcing a registry fetch.\n */\nfunction resolveInstalledNpmTemplateSource(\n locator: NpmTemplateLocator,\n cwd: string,\n): SeedSource | null {\n if (locator.rawSpec !== '' && locator.rawSpec !== '*') {\n return null\n }\n\n const workspacePackagesRoot = path.resolve(PROJECT_TOOLS_PACKAGE_ROOT, '..')\n if (fs.existsSync(workspacePackagesRoot)) {\n for (const entry of fs.readdirSync(workspacePackagesRoot, {\n withFileTypes: true,\n })) {\n if (!entry.isDirectory()) {\n continue\n }\n\n const packageDir = path.join(workspacePackagesRoot, entry.name)\n const packageJsonPath = path.join(packageDir, 'package.json')\n if (!fs.existsSync(packageJsonPath)) {\n continue\n }\n\n const manifest = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8')) as {\n name?: string\n }\n if (manifest.name === locator.name) {\n return {\n blockDir: packageDir,\n rootDir: packageDir,\n }\n }\n }\n }\n\n const workspaceRequire = createRequire(\n path.join(path.resolve(cwd), '__wp_typia_template_resolver__.cjs'),\n )\n try {\n const packageJsonPath = fs.realpathSync(\n workspaceRequire.resolve(`${locator.name}/package.json`),\n )\n const sourceDir = path.dirname(packageJsonPath)\n return {\n blockDir: sourceDir,\n rootDir: sourceDir,\n }\n } catch (error) {\n const errorCode =\n typeof error === 'object' && error !== null && 'code' in error\n ? String((error as { code: unknown }).code)\n : ''\n if (\n errorCode === 'MODULE_NOT_FOUND' ||\n errorCode === 'ERR_PACKAGE_PATH_NOT_EXPORTED'\n ) {\n for (const basePath of workspaceRequire.resolve.paths(locator.name) ??\n []) {\n const packageJsonPath = path.join(\n basePath,\n locator.name,\n 'package.json',\n )\n if (!fs.existsSync(packageJsonPath)) {\n continue\n }\n const sourceDir = path.dirname(fs.realpathSync(packageJsonPath))\n return {\n blockDir: sourceDir,\n rootDir: sourceDir,\n }\n }\n return null\n }\n throw error\n }\n}\n\nexport function isOfficialWorkspaceTemplateSeed(seed: SeedSource): boolean {\n const packageJsonPath = path.join(seed.rootDir, 'package.json')\n if (!fs.existsSync(packageJsonPath)) {\n return false\n }\n\n try {\n const packageJson = JSON.parse(\n fs.readFileSync(packageJsonPath, 'utf8'),\n ) as { name?: string }\n return packageJson.name === OFFICIAL_WORKSPACE_TEMPLATE_PACKAGE\n } catch {\n return false\n }\n}\n\nexport async function assertNoSymlinks(sourceDir: string): Promise<void> {\n const stats = await fsp.lstat(sourceDir)\n if (stats.isSymbolicLink()) {\n throw new Error(\n `Template sources may not include symbolic links: ${sourceDir}`,\n )\n }\n\n if (!stats.isDirectory()) {\n return\n }\n\n for (const entry of await fsp.readdir(sourceDir)) {\n await assertNoSymlinks(path.join(sourceDir, entry))\n }\n}\n\nasync function resolveGitHubTemplateSource(\n locator: GitHubTemplateLocator,\n): Promise<SeedSource> {\n const { path: remoteRoot, cleanup } = await createManagedTempRoot(\n 'wp-typia-template-source-',\n )\n const checkoutDir = path.join(remoteRoot, 'source')\n\n try {\n const args = ['clone', '--depth', '1']\n if (locator.ref) {\n args.push('--branch', locator.ref)\n }\n args.push(\n `https://github.com/${locator.owner}/${locator.repo}.git`,\n checkoutDir,\n )\n execFileSync('git', args, { stdio: 'ignore' })\n\n const sourceDir = path.resolve(checkoutDir, locator.sourcePath)\n const relativeSourceDir = path.relative(checkoutDir, sourceDir)\n if (\n relativeSourceDir.startsWith('..') ||\n path.isAbsolute(relativeSourceDir)\n ) {\n throw new Error(\n 'GitHub template path must stay within the cloned repository.',\n )\n }\n if (!fs.existsSync(sourceDir)) {\n throw new Error(\n `GitHub template path does not exist: ${locator.sourcePath}`,\n )\n }\n await assertNoSymlinks(sourceDir)\n\n return {\n blockDir: sourceDir,\n cleanup,\n rootDir: sourceDir,\n }\n } catch (error) {\n await cleanup()\n throw error\n }\n}\n\n/**\n * Resolves a template locator into a local seed source directory.\n *\n * @param locator Remote template locator describing a local path, GitHub source, or npm package.\n * @param cwd Current working directory used to resolve local template paths.\n * @returns A local seed source containing the resolved root and block directory, plus optional cleanup.\n * @throws When the locator is invalid, the source cannot be fetched, or filesystem validation fails.\n */\nexport async function resolveTemplateSeed(\n locator: RemoteTemplateLocator,\n cwd: string,\n): Promise<SeedSource> {\n if (locator.kind === 'path') {\n const sourceDir = path.resolve(cwd, locator.templatePath)\n if (!fs.existsSync(sourceDir)) {\n throw new Error(`Template path does not exist: ${sourceDir}`)\n }\n await assertNoSymlinks(sourceDir)\n return {\n blockDir: sourceDir,\n rootDir: sourceDir,\n }\n }\n\n if (locator.kind === 'github') {\n return resolveGitHubTemplateSource(locator.locator)\n }\n\n const installedSource = resolveInstalledNpmTemplateSource(\n locator.locator,\n cwd,\n )\n if (installedSource) {\n await assertNoSymlinks(installedSource.blockDir)\n return installedSource\n }\n\n return fetchNpmTemplateSource(locator.locator)\n}\n",
|
|
86
87
|
"var kr=Object.defineProperty;var vr=(s,t)=>{for(var e in t)kr(s,e,{get:t[e],enumerable:!0})};import Kr from\"events\";import I from\"fs\";import{EventEmitter as Ti}from\"node:events\";import Ns from\"node:stream\";import{StringDecoder as Mr}from\"node:string_decoder\";var Os=typeof process==\"object\"&&process?process:{stdout:null,stderr:null},Br=s=>!!s&&typeof s==\"object\"&&(s instanceof D||s instanceof Ns||Pr(s)||zr(s)),Pr=s=>!!s&&typeof s==\"object\"&&s instanceof Ti&&typeof s.pipe==\"function\"&&s.pipe!==Ns.Writable.prototype.pipe,zr=s=>!!s&&typeof s==\"object\"&&s instanceof Ti&&typeof s.write==\"function\"&&typeof s.end==\"function\",q=Symbol(\"EOF\"),j=Symbol(\"maybeEmitEnd\"),rt=Symbol(\"emittedEnd\"),Le=Symbol(\"emittingEnd\"),jt=Symbol(\"emittedError\"),Ne=Symbol(\"closed\"),Ts=Symbol(\"read\"),Ae=Symbol(\"flush\"),xs=Symbol(\"flushChunk\"),z=Symbol(\"encoding\"),Mt=Symbol(\"decoder\"),b=Symbol(\"flowing\"),Qt=Symbol(\"paused\"),Bt=Symbol(\"resume\"),_=Symbol(\"buffer\"),A=Symbol(\"pipes\"),g=Symbol(\"bufferLength\"),yi=Symbol(\"bufferPush\"),De=Symbol(\"bufferShift\"),L=Symbol(\"objectMode\"),w=Symbol(\"destroyed\"),Ri=Symbol(\"error\"),bi=Symbol(\"emitData\"),Ls=Symbol(\"emitEnd\"),_i=Symbol(\"emitEnd2\"),Z=Symbol(\"async\"),gi=Symbol(\"abort\"),Ie=Symbol(\"aborted\"),Jt=Symbol(\"signal\"),yt=Symbol(\"dataListeners\"),C=Symbol(\"discarded\"),te=s=>Promise.resolve().then(s),Ur=s=>s(),Hr=s=>s===\"end\"||s===\"finish\"||s===\"prefinish\",Wr=s=>s instanceof ArrayBuffer||!!s&&typeof s==\"object\"&&s.constructor&&s.constructor.name===\"ArrayBuffer\"&&s.byteLength>=0,Gr=s=>!Buffer.isBuffer(s)&&ArrayBuffer.isView(s),Ce=class{src;dest;opts;ondrain;constructor(t,e,i){this.src=t,this.dest=e,this.opts=i,this.ondrain=()=>t[Bt](),this.dest.on(\"drain\",this.ondrain)}unpipe(){this.dest.removeListener(\"drain\",this.ondrain)}proxyErrors(t){}end(){this.unpipe(),this.opts.end&&this.dest.end()}},Oi=class extends Ce{unpipe(){this.src.removeListener(\"error\",this.proxyErrors),super.unpipe()}constructor(t,e,i){super(t,e,i),this.proxyErrors=r=>this.dest.emit(\"error\",r),t.on(\"error\",this.proxyErrors)}},Zr=s=>!!s.objectMode,Yr=s=>!s.objectMode&&!!s.encoding&&s.encoding!==\"buffer\",D=class extends Ti{[b]=!1;[Qt]=!1;[A]=[];[_]=[];[L];[z];[Z];[Mt];[q]=!1;[rt]=!1;[Le]=!1;[Ne]=!1;[jt]=null;[g]=0;[w]=!1;[Jt];[Ie]=!1;[yt]=0;[C]=!1;writable=!0;readable=!0;constructor(...t){let e=t[0]||{};if(super(),e.objectMode&&typeof e.encoding==\"string\")throw new TypeError(\"Encoding and objectMode may not be used together\");Zr(e)?(this[L]=!0,this[z]=null):Yr(e)?(this[z]=e.encoding,this[L]=!1):(this[L]=!1,this[z]=null),this[Z]=!!e.async,this[Mt]=this[z]?new Mr(this[z]):null,e&&e.debugExposeBuffer===!0&&Object.defineProperty(this,\"buffer\",{get:()=>this[_]}),e&&e.debugExposePipes===!0&&Object.defineProperty(this,\"pipes\",{get:()=>this[A]});let{signal:i}=e;i&&(this[Jt]=i,i.aborted?this[gi]():i.addEventListener(\"abort\",()=>this[gi]()))}get bufferLength(){return this[g]}get encoding(){return this[z]}set encoding(t){throw new Error(\"Encoding must be set at instantiation time\")}setEncoding(t){throw new Error(\"Encoding must be set at instantiation time\")}get objectMode(){return this[L]}set objectMode(t){throw new Error(\"objectMode must be set at instantiation time\")}get async(){return this[Z]}set async(t){this[Z]=this[Z]||!!t}[gi](){this[Ie]=!0,this.emit(\"abort\",this[Jt]?.reason),this.destroy(this[Jt]?.reason)}get aborted(){return this[Ie]}set aborted(t){}write(t,e,i){if(this[Ie])return!1;if(this[q])throw new Error(\"write after end\");if(this[w])return this.emit(\"error\",Object.assign(new Error(\"Cannot call write after a stream was destroyed\"),{code:\"ERR_STREAM_DESTROYED\"})),!0;typeof e==\"function\"&&(i=e,e=\"utf8\"),e||(e=\"utf8\");let r=this[Z]?te:Ur;if(!this[L]&&!Buffer.isBuffer(t)){if(Gr(t))t=Buffer.from(t.buffer,t.byteOffset,t.byteLength);else if(Wr(t))t=Buffer.from(t);else if(typeof t!=\"string\")throw new Error(\"Non-contiguous data written to non-objectMode stream\")}return this[L]?(this[b]&&this[g]!==0&&this[Ae](!0),this[b]?this.emit(\"data\",t):this[yi](t),this[g]!==0&&this.emit(\"readable\"),i&&r(i),this[b]):t.length?(typeof t==\"string\"&&!(e===this[z]&&!this[Mt]?.lastNeed)&&(t=Buffer.from(t,e)),Buffer.isBuffer(t)&&this[z]&&(t=this[Mt].write(t)),this[b]&&this[g]!==0&&this[Ae](!0),this[b]?this.emit(\"data\",t):this[yi](t),this[g]!==0&&this.emit(\"readable\"),i&&r(i),this[b]):(this[g]!==0&&this.emit(\"readable\"),i&&r(i),this[b])}read(t){if(this[w])return null;if(this[C]=!1,this[g]===0||t===0||t&&t>this[g])return this[j](),null;this[L]&&(t=null),this[_].length>1&&!this[L]&&(this[_]=[this[z]?this[_].join(\"\"):Buffer.concat(this[_],this[g])]);let e=this[Ts](t||null,this[_][0]);return this[j](),e}[Ts](t,e){if(this[L])this[De]();else{let i=e;t===i.length||t===null?this[De]():typeof i==\"string\"?(this[_][0]=i.slice(t),e=i.slice(0,t),this[g]-=t):(this[_][0]=i.subarray(t),e=i.subarray(0,t),this[g]-=t)}return this.emit(\"data\",e),!this[_].length&&!this[q]&&this.emit(\"drain\"),e}end(t,e,i){return typeof t==\"function\"&&(i=t,t=void 0),typeof e==\"function\"&&(i=e,e=\"utf8\"),t!==void 0&&this.write(t,e),i&&this.once(\"end\",i),this[q]=!0,this.writable=!1,(this[b]||!this[Qt])&&this[j](),this}[Bt](){this[w]||(!this[yt]&&!this[A].length&&(this[C]=!0),this[Qt]=!1,this[b]=!0,this.emit(\"resume\"),this[_].length?this[Ae]():this[q]?this[j]():this.emit(\"drain\"))}resume(){return this[Bt]()}pause(){this[b]=!1,this[Qt]=!0,this[C]=!1}get destroyed(){return this[w]}get flowing(){return this[b]}get paused(){return this[Qt]}[yi](t){this[L]?this[g]+=1:this[g]+=t.length,this[_].push(t)}[De](){return this[L]?this[g]-=1:this[g]-=this[_][0].length,this[_].shift()}[Ae](t=!1){do;while(this[xs](this[De]())&&this[_].length);!t&&!this[_].length&&!this[q]&&this.emit(\"drain\")}[xs](t){return this.emit(\"data\",t),this[b]}pipe(t,e){if(this[w])return t;this[C]=!1;let i=this[rt];return e=e||{},t===Os.stdout||t===Os.stderr?e.end=!1:e.end=e.end!==!1,e.proxyErrors=!!e.proxyErrors,i?e.end&&t.end():(this[A].push(e.proxyErrors?new Oi(this,t,e):new Ce(this,t,e)),this[Z]?te(()=>this[Bt]()):this[Bt]()),t}unpipe(t){let e=this[A].find(i=>i.dest===t);e&&(this[A].length===1?(this[b]&&this[yt]===0&&(this[b]=!1),this[A]=[]):this[A].splice(this[A].indexOf(e),1),e.unpipe())}addListener(t,e){return this.on(t,e)}on(t,e){let i=super.on(t,e);if(t===\"data\")this[C]=!1,this[yt]++,!this[A].length&&!this[b]&&this[Bt]();else if(t===\"readable\"&&this[g]!==0)super.emit(\"readable\");else if(Hr(t)&&this[rt])super.emit(t),this.removeAllListeners(t);else if(t===\"error\"&&this[jt]){let r=e;this[Z]?te(()=>r.call(this,this[jt])):r.call(this,this[jt])}return i}removeListener(t,e){return this.off(t,e)}off(t,e){let i=super.off(t,e);return t===\"data\"&&(this[yt]=this.listeners(\"data\").length,this[yt]===0&&!this[C]&&!this[A].length&&(this[b]=!1)),i}removeAllListeners(t){let e=super.removeAllListeners(t);return(t===\"data\"||t===void 0)&&(this[yt]=0,!this[C]&&!this[A].length&&(this[b]=!1)),e}get emittedEnd(){return this[rt]}[j](){!this[Le]&&!this[rt]&&!this[w]&&this[_].length===0&&this[q]&&(this[Le]=!0,this.emit(\"end\"),this.emit(\"prefinish\"),this.emit(\"finish\"),this[Ne]&&this.emit(\"close\"),this[Le]=!1)}emit(t,...e){let i=e[0];if(t!==\"error\"&&t!==\"close\"&&t!==w&&this[w])return!1;if(t===\"data\")return!this[L]&&!i?!1:this[Z]?(te(()=>this[bi](i)),!0):this[bi](i);if(t===\"end\")return this[Ls]();if(t===\"close\"){if(this[Ne]=!0,!this[rt]&&!this[w])return!1;let n=super.emit(\"close\");return this.removeAllListeners(\"close\"),n}else if(t===\"error\"){this[jt]=i,super.emit(Ri,i);let n=!this[Jt]||this.listeners(\"error\").length?super.emit(\"error\",i):!1;return this[j](),n}else if(t===\"resume\"){let n=super.emit(\"resume\");return this[j](),n}else if(t===\"finish\"||t===\"prefinish\"){let n=super.emit(t);return this.removeAllListeners(t),n}let r=super.emit(t,...e);return this[j](),r}[bi](t){for(let i of this[A])i.dest.write(t)===!1&&this.pause();let e=this[C]?!1:super.emit(\"data\",t);return this[j](),e}[Ls](){return this[rt]?!1:(this[rt]=!0,this.readable=!1,this[Z]?(te(()=>this[_i]()),!0):this[_i]())}[_i](){if(this[Mt]){let e=this[Mt].end();if(e){for(let i of this[A])i.dest.write(e);this[C]||super.emit(\"data\",e)}}for(let e of this[A])e.end();let t=super.emit(\"end\");return this.removeAllListeners(\"end\"),t}async collect(){let t=Object.assign([],{dataLength:0});this[L]||(t.dataLength=0);let e=this.promise();return this.on(\"data\",i=>{t.push(i),this[L]||(t.dataLength+=i.length)}),await e,t}async concat(){if(this[L])throw new Error(\"cannot concat in objectMode\");let t=await this.collect();return this[z]?t.join(\"\"):Buffer.concat(t,t.dataLength)}async promise(){return new Promise((t,e)=>{this.on(w,()=>e(new Error(\"stream destroyed\"))),this.on(\"error\",i=>e(i)),this.on(\"end\",()=>t())})}[Symbol.asyncIterator](){this[C]=!1;let t=!1,e=async()=>(this.pause(),t=!0,{value:void 0,done:!0});return{next:()=>{if(t)return e();let r=this.read();if(r!==null)return Promise.resolve({done:!1,value:r});if(this[q])return e();let n,o,h=d=>{this.off(\"data\",a),this.off(\"end\",l),this.off(w,c),e(),o(d)},a=d=>{this.off(\"error\",h),this.off(\"end\",l),this.off(w,c),this.pause(),n({value:d,done:!!this[q]})},l=()=>{this.off(\"error\",h),this.off(\"data\",a),this.off(w,c),e(),n({done:!0,value:void 0})},c=()=>h(new Error(\"stream destroyed\"));return new Promise((d,S)=>{o=S,n=d,this.once(w,c),this.once(\"error\",h),this.once(\"end\",l),this.once(\"data\",a)})},throw:e,return:e,[Symbol.asyncIterator](){return this},[Symbol.asyncDispose]:async()=>{}}}[Symbol.iterator](){this[C]=!1;let t=!1,e=()=>(this.pause(),this.off(Ri,e),this.off(w,e),this.off(\"end\",e),t=!0,{done:!0,value:void 0}),i=()=>{if(t)return e();let r=this.read();return r===null?e():{done:!1,value:r}};return this.once(\"end\",e),this.once(Ri,e),this.once(w,e),{next:i,throw:e,return:e,[Symbol.iterator](){return this},[Symbol.dispose]:()=>{}}}destroy(t){if(this[w])return t?this.emit(\"error\",t):this.emit(w),this;this[w]=!0,this[C]=!0,this[_].length=0,this[g]=0;let e=this;return typeof e.close==\"function\"&&!this[Ne]&&e.close(),t?this.emit(\"error\",t):this.emit(w),this}static get isStream(){return Br}};var Vr=I.writev,ot=Symbol(\"_autoClose\"),H=Symbol(\"_close\"),ee=Symbol(\"_ended\"),m=Symbol(\"_fd\"),xi=Symbol(\"_finished\"),J=Symbol(\"_flags\"),Li=Symbol(\"_flush\"),Ii=Symbol(\"_handleChunk\"),Ci=Symbol(\"_makeBuf\"),se=Symbol(\"_mode\"),Fe=Symbol(\"_needDrain\"),Ut=Symbol(\"_onerror\"),Ht=Symbol(\"_onopen\"),Ni=Symbol(\"_onread\"),Pt=Symbol(\"_onwrite\"),ht=Symbol(\"_open\"),U=Symbol(\"_path\"),nt=Symbol(\"_pos\"),Y=Symbol(\"_queue\"),zt=Symbol(\"_read\"),Ai=Symbol(\"_readSize\"),Q=Symbol(\"_reading\"),ie=Symbol(\"_remain\"),Di=Symbol(\"_size\"),ke=Symbol(\"_write\"),Rt=Symbol(\"_writing\"),ve=Symbol(\"_defaultFlag\"),bt=Symbol(\"_errored\"),_t=class extends D{[bt]=!1;[m];[U];[Ai];[Q]=!1;[Di];[ie];[ot];constructor(t,e){if(e=e||{},super(e),this.readable=!0,this.writable=!1,typeof t!=\"string\")throw new TypeError(\"path must be a string\");this[bt]=!1,this[m]=typeof e.fd==\"number\"?e.fd:void 0,this[U]=t,this[Ai]=e.readSize||16*1024*1024,this[Q]=!1,this[Di]=typeof e.size==\"number\"?e.size:1/0,this[ie]=this[Di],this[ot]=typeof e.autoClose==\"boolean\"?e.autoClose:!0,typeof this[m]==\"number\"?this[zt]():this[ht]()}get fd(){return this[m]}get path(){return this[U]}write(){throw new TypeError(\"this is a readable stream\")}end(){throw new TypeError(\"this is a readable stream\")}[ht](){I.open(this[U],\"r\",(t,e)=>this[Ht](t,e))}[Ht](t,e){t?this[Ut](t):(this[m]=e,this.emit(\"open\",e),this[zt]())}[Ci](){return Buffer.allocUnsafe(Math.min(this[Ai],this[ie]))}[zt](){if(!this[Q]){this[Q]=!0;let t=this[Ci]();if(t.length===0)return process.nextTick(()=>this[Ni](null,0,t));I.read(this[m],t,0,t.length,null,(e,i,r)=>this[Ni](e,i,r))}}[Ni](t,e,i){this[Q]=!1,t?this[Ut](t):this[Ii](e,i)&&this[zt]()}[H](){if(this[ot]&&typeof this[m]==\"number\"){let t=this[m];this[m]=void 0,I.close(t,e=>e?this.emit(\"error\",e):this.emit(\"close\"))}}[Ut](t){this[Q]=!0,this[H](),this.emit(\"error\",t)}[Ii](t,e){let i=!1;return this[ie]-=t,t>0&&(i=super.write(t<e.length?e.subarray(0,t):e)),(t===0||this[ie]<=0)&&(i=!1,this[H](),super.end()),i}emit(t,...e){switch(t){case\"prefinish\":case\"finish\":return!1;case\"drain\":return typeof this[m]==\"number\"&&this[zt](),!1;case\"error\":return this[bt]?!1:(this[bt]=!0,super.emit(t,...e));default:return super.emit(t,...e)}}},Me=class extends _t{[ht](){let t=!0;try{this[Ht](null,I.openSync(this[U],\"r\")),t=!1}finally{t&&this[H]()}}[zt](){let t=!0;try{if(!this[Q]){this[Q]=!0;do{let e=this[Ci](),i=e.length===0?0:I.readSync(this[m],e,0,e.length,null);if(!this[Ii](i,e))break}while(!0);this[Q]=!1}t=!1}finally{t&&this[H]()}}[H](){if(this[ot]&&typeof this[m]==\"number\"){let t=this[m];this[m]=void 0,I.closeSync(t),this.emit(\"close\")}}},tt=class extends Kr{readable=!1;writable=!0;[bt]=!1;[Rt]=!1;[ee]=!1;[Y]=[];[Fe]=!1;[U];[se];[ot];[m];[ve];[J];[xi]=!1;[nt];constructor(t,e){e=e||{},super(e),this[U]=t,this[m]=typeof e.fd==\"number\"?e.fd:void 0,this[se]=e.mode===void 0?438:e.mode,this[nt]=typeof e.start==\"number\"?e.start:void 0,this[ot]=typeof e.autoClose==\"boolean\"?e.autoClose:!0;let i=this[nt]!==void 0?\"r+\":\"w\";this[ve]=e.flags===void 0,this[J]=e.flags===void 0?i:e.flags,this[m]===void 0&&this[ht]()}emit(t,...e){if(t===\"error\"){if(this[bt])return!1;this[bt]=!0}return super.emit(t,...e)}get fd(){return this[m]}get path(){return this[U]}[Ut](t){this[H](),this[Rt]=!0,this.emit(\"error\",t)}[ht](){I.open(this[U],this[J],this[se],(t,e)=>this[Ht](t,e))}[Ht](t,e){this[ve]&&this[J]===\"r+\"&&t&&t.code===\"ENOENT\"?(this[J]=\"w\",this[ht]()):t?this[Ut](t):(this[m]=e,this.emit(\"open\",e),this[Rt]||this[Li]())}end(t,e){return t&&this.write(t,e),this[ee]=!0,!this[Rt]&&!this[Y].length&&typeof this[m]==\"number\"&&this[Pt](null,0),this}write(t,e){return typeof t==\"string\"&&(t=Buffer.from(t,e)),this[ee]?(this.emit(\"error\",new Error(\"write() after end()\")),!1):this[m]===void 0||this[Rt]||this[Y].length?(this[Y].push(t),this[Fe]=!0,!1):(this[Rt]=!0,this[ke](t),!0)}[ke](t){I.write(this[m],t,0,t.length,this[nt],(e,i)=>this[Pt](e,i))}[Pt](t,e){t?this[Ut](t):(this[nt]!==void 0&&typeof e==\"number\"&&(this[nt]+=e),this[Y].length?this[Li]():(this[Rt]=!1,this[ee]&&!this[xi]?(this[xi]=!0,this[H](),this.emit(\"finish\")):this[Fe]&&(this[Fe]=!1,this.emit(\"drain\"))))}[Li](){if(this[Y].length===0)this[ee]&&this[Pt](null,0);else if(this[Y].length===1)this[ke](this[Y].pop());else{let t=this[Y];this[Y]=[],Vr(this[m],t,this[nt],(e,i)=>this[Pt](e,i))}}[H](){if(this[ot]&&typeof this[m]==\"number\"){let t=this[m];this[m]=void 0,I.close(t,e=>e?this.emit(\"error\",e):this.emit(\"close\"))}}},Wt=class extends tt{[ht](){let t;if(this[ve]&&this[J]===\"r+\")try{t=I.openSync(this[U],this[J],this[se])}catch(e){if(e?.code===\"ENOENT\")return this[J]=\"w\",this[ht]();throw e}else t=I.openSync(this[U],this[J],this[se]);this[Ht](null,t)}[H](){if(this[ot]&&typeof this[m]==\"number\"){let t=this[m];this[m]=void 0,I.closeSync(t),this.emit(\"close\")}}[ke](t){let e=!0;try{this[Pt](null,I.writeSync(this[m],t,0,t.length,this[nt])),e=!1}finally{if(e)try{this[H]()}catch{}}}};import nr from\"node:path\";import Vt from\"node:fs\";import{dirname as xn,parse as Ln}from\"path\";var $r=new Map([[\"C\",\"cwd\"],[\"f\",\"file\"],[\"z\",\"gzip\"],[\"P\",\"preservePaths\"],[\"U\",\"unlink\"],[\"strip-components\",\"strip\"],[\"stripComponents\",\"strip\"],[\"keep-newer\",\"newer\"],[\"keepNewer\",\"newer\"],[\"keep-newer-files\",\"newer\"],[\"keepNewerFiles\",\"newer\"],[\"k\",\"keep\"],[\"keep-existing\",\"keep\"],[\"keepExisting\",\"keep\"],[\"m\",\"noMtime\"],[\"no-mtime\",\"noMtime\"],[\"p\",\"preserveOwner\"],[\"L\",\"follow\"],[\"h\",\"follow\"],[\"onentry\",\"onReadEntry\"]]),As=s=>!!s.sync&&!!s.file,Ds=s=>!s.sync&&!!s.file,Is=s=>!!s.sync&&!s.file,Cs=s=>!s.sync&&!s.file;var Fs=s=>!!s.file;var Xr=s=>{let t=$r.get(s);return t||s},re=(s={})=>{if(!s)return{};let t={};for(let[e,i]of Object.entries(s)){let r=Xr(e);t[r]=i}return t.chmod===void 0&&t.noChmod===!1&&(t.chmod=!0),delete t.noChmod,t};var K=(s,t,e,i,r)=>Object.assign((n=[],o,h)=>{Array.isArray(n)&&(o=n,n={}),typeof o==\"function\"&&(h=o,o=void 0),o=o?Array.from(o):[];let a=re(n);if(r?.(a,o),As(a)){if(typeof h==\"function\")throw new TypeError(\"callback not supported for sync tar functions\");return s(a,o)}else if(Ds(a)){let l=t(a,o);return h?l.then(()=>h(),h):l}else if(Is(a)){if(typeof h==\"function\")throw new TypeError(\"callback not supported for sync tar functions\");return e(a,o)}else if(Cs(a)){if(typeof h==\"function\")throw new TypeError(\"callback only supported with file option\");return i(a,o)}throw new Error(\"impossible options??\")},{syncFile:s,asyncFile:t,syncNoFile:e,asyncNoFile:i,validate:r});import{EventEmitter as _n}from\"events\";import Mi from\"assert\";import{Buffer as gt}from\"buffer\";import*as ks from\"zlib\";import qr from\"zlib\";var jr=qr.constants||{ZLIB_VERNUM:4736},M=Object.freeze(Object.assign(Object.create(null),{Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_VERSION_ERROR:-6,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,DEFLATE:1,INFLATE:2,GZIP:3,GUNZIP:4,DEFLATERAW:5,INFLATERAW:6,UNZIP:7,BROTLI_DECODE:8,BROTLI_ENCODE:9,Z_MIN_WINDOWBITS:8,Z_MAX_WINDOWBITS:15,Z_DEFAULT_WINDOWBITS:15,Z_MIN_CHUNK:64,Z_MAX_CHUNK:1/0,Z_DEFAULT_CHUNK:16384,Z_MIN_MEMLEVEL:1,Z_MAX_MEMLEVEL:9,Z_DEFAULT_MEMLEVEL:8,Z_MIN_LEVEL:-1,Z_MAX_LEVEL:9,Z_DEFAULT_LEVEL:-1,BROTLI_OPERATION_PROCESS:0,BROTLI_OPERATION_FLUSH:1,BROTLI_OPERATION_FINISH:2,BROTLI_OPERATION_EMIT_METADATA:3,BROTLI_MODE_GENERIC:0,BROTLI_MODE_TEXT:1,BROTLI_MODE_FONT:2,BROTLI_DEFAULT_MODE:0,BROTLI_MIN_QUALITY:0,BROTLI_MAX_QUALITY:11,BROTLI_DEFAULT_QUALITY:11,BROTLI_MIN_WINDOW_BITS:10,BROTLI_MAX_WINDOW_BITS:24,BROTLI_LARGE_MAX_WINDOW_BITS:30,BROTLI_DEFAULT_WINDOW:22,BROTLI_MIN_INPUT_BLOCK_BITS:16,BROTLI_MAX_INPUT_BLOCK_BITS:24,BROTLI_PARAM_MODE:0,BROTLI_PARAM_QUALITY:1,BROTLI_PARAM_LGWIN:2,BROTLI_PARAM_LGBLOCK:3,BROTLI_PARAM_DISABLE_LITERAL_CONTEXT_MODELING:4,BROTLI_PARAM_SIZE_HINT:5,BROTLI_PARAM_LARGE_WINDOW:6,BROTLI_PARAM_NPOSTFIX:7,BROTLI_PARAM_NDIRECT:8,BROTLI_DECODER_RESULT_ERROR:0,BROTLI_DECODER_RESULT_SUCCESS:1,BROTLI_DECODER_RESULT_NEEDS_MORE_INPUT:2,BROTLI_DECODER_RESULT_NEEDS_MORE_OUTPUT:3,BROTLI_DECODER_PARAM_DISABLE_RING_BUFFER_REALLOCATION:0,BROTLI_DECODER_PARAM_LARGE_WINDOW:1,BROTLI_DECODER_NO_ERROR:0,BROTLI_DECODER_SUCCESS:1,BROTLI_DECODER_NEEDS_MORE_INPUT:2,BROTLI_DECODER_NEEDS_MORE_OUTPUT:3,BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_NIBBLE:-1,BROTLI_DECODER_ERROR_FORMAT_RESERVED:-2,BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_META_NIBBLE:-3,BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_ALPHABET:-4,BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_SAME:-5,BROTLI_DECODER_ERROR_FORMAT_CL_SPACE:-6,BROTLI_DECODER_ERROR_FORMAT_HUFFMAN_SPACE:-7,BROTLI_DECODER_ERROR_FORMAT_CONTEXT_MAP_REPEAT:-8,BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_1:-9,BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_2:-10,BROTLI_DECODER_ERROR_FORMAT_TRANSFORM:-11,BROTLI_DECODER_ERROR_FORMAT_DICTIONARY:-12,BROTLI_DECODER_ERROR_FORMAT_WINDOW_BITS:-13,BROTLI_DECODER_ERROR_FORMAT_PADDING_1:-14,BROTLI_DECODER_ERROR_FORMAT_PADDING_2:-15,BROTLI_DECODER_ERROR_FORMAT_DISTANCE:-16,BROTLI_DECODER_ERROR_DICTIONARY_NOT_SET:-19,BROTLI_DECODER_ERROR_INVALID_ARGUMENTS:-20,BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MODES:-21,BROTLI_DECODER_ERROR_ALLOC_TREE_GROUPS:-22,BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MAP:-25,BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_1:-26,BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_2:-27,BROTLI_DECODER_ERROR_ALLOC_BLOCK_TYPE_TREES:-30,BROTLI_DECODER_ERROR_UNREACHABLE:-31},jr));var Qr=gt.concat,vs=Object.getOwnPropertyDescriptor(gt,\"concat\"),Jr=s=>s,ki=vs?.writable===!0||vs?.set!==void 0?s=>{gt.concat=s?Jr:Qr}:s=>{},Ot=Symbol(\"_superWrite\"),Gt=class extends Error{code;errno;constructor(t,e){super(\"zlib: \"+t.message,{cause:t}),this.code=t.code,this.errno=t.errno,this.code||(this.code=\"ZLIB_ERROR\"),this.message=\"zlib: \"+t.message,Error.captureStackTrace(this,e??this.constructor)}get name(){return\"ZlibError\"}},vi=Symbol(\"flushFlag\"),ne=class extends D{#t=!1;#i=!1;#s;#n;#r;#e;#o;get sawError(){return this.#t}get handle(){return this.#e}get flushFlag(){return this.#s}constructor(t,e){if(!t||typeof t!=\"object\")throw new TypeError(\"invalid options for ZlibBase constructor\");if(super(t),this.#s=t.flush??0,this.#n=t.finishFlush??0,this.#r=t.fullFlushFlag??0,typeof ks[e]!=\"function\")throw new TypeError(\"Compression method not supported: \"+e);try{this.#e=new ks[e](t)}catch(i){throw new Gt(i,this.constructor)}this.#o=i=>{this.#t||(this.#t=!0,this.close(),this.emit(\"error\",i))},this.#e?.on(\"error\",i=>this.#o(new Gt(i))),this.once(\"end\",()=>this.close)}close(){this.#e&&(this.#e.close(),this.#e=void 0,this.emit(\"close\"))}reset(){if(!this.#t)return Mi(this.#e,\"zlib binding closed\"),this.#e.reset?.()}flush(t){this.ended||(typeof t!=\"number\"&&(t=this.#r),this.write(Object.assign(gt.alloc(0),{[vi]:t})))}end(t,e,i){return typeof t==\"function\"&&(i=t,e=void 0,t=void 0),typeof e==\"function\"&&(i=e,e=void 0),t&&(e?this.write(t,e):this.write(t)),this.flush(this.#n),this.#i=!0,super.end(i)}get ended(){return this.#i}[Ot](t){return super.write(t)}write(t,e,i){if(typeof e==\"function\"&&(i=e,e=\"utf8\"),typeof t==\"string\"&&(t=gt.from(t,e)),this.#t)return;Mi(this.#e,\"zlib binding closed\");let r=this.#e._handle,n=r.close;r.close=()=>{};let o=this.#e.close;this.#e.close=()=>{},ki(!0);let h;try{let l=typeof t[vi]==\"number\"?t[vi]:this.#s;h=this.#e._processChunk(t,l),ki(!1)}catch(l){ki(!1),this.#o(new Gt(l,this.write))}finally{this.#e&&(this.#e._handle=r,r.close=n,this.#e.close=o,this.#e.removeAllListeners(\"error\"))}this.#e&&this.#e.on(\"error\",l=>this.#o(new Gt(l,this.write)));let a;if(h)if(Array.isArray(h)&&h.length>0){let l=h[0];a=this[Ot](gt.from(l));for(let c=1;c<h.length;c++)a=this[Ot](h[c])}else a=this[Ot](gt.from(h));return i&&i(),a}},Be=class extends ne{#t;#i;constructor(t,e){t=t||{},t.flush=t.flush||M.Z_NO_FLUSH,t.finishFlush=t.finishFlush||M.Z_FINISH,t.fullFlushFlag=M.Z_FULL_FLUSH,super(t,e),this.#t=t.level,this.#i=t.strategy}params(t,e){if(!this.sawError){if(!this.handle)throw new Error(\"cannot switch params when binding is closed\");if(!this.handle.params)throw new Error(\"not supported in this implementation\");if(this.#t!==t||this.#i!==e){this.flush(M.Z_SYNC_FLUSH),Mi(this.handle,\"zlib binding closed\");let i=this.handle.flush;this.handle.flush=(r,n)=>{typeof r==\"function\"&&(n=r,r=this.flushFlag),this.flush(r),n?.()};try{this.handle.params(t,e)}finally{this.handle.flush=i}this.handle&&(this.#t=t,this.#i=e)}}}};var Pe=class extends Be{#t;constructor(t){super(t,\"Gzip\"),this.#t=t&&!!t.portable}[Ot](t){return this.#t?(this.#t=!1,t[9]=255,super[Ot](t)):super[Ot](t)}};var ze=class extends Be{constructor(t){super(t,\"Unzip\")}},Ue=class extends ne{constructor(t,e){t=t||{},t.flush=t.flush||M.BROTLI_OPERATION_PROCESS,t.finishFlush=t.finishFlush||M.BROTLI_OPERATION_FINISH,t.fullFlushFlag=M.BROTLI_OPERATION_FLUSH,super(t,e)}},He=class extends Ue{constructor(t){super(t,\"BrotliCompress\")}},We=class extends Ue{constructor(t){super(t,\"BrotliDecompress\")}},Ge=class extends ne{constructor(t,e){t=t||{},t.flush=t.flush||M.ZSTD_e_continue,t.finishFlush=t.finishFlush||M.ZSTD_e_end,t.fullFlushFlag=M.ZSTD_e_flush,super(t,e)}},Ze=class extends Ge{constructor(t){super(t,\"ZstdCompress\")}},Ye=class extends Ge{constructor(t){super(t,\"ZstdDecompress\")}};import{posix as Zt}from\"node:path\";var Ms=(s,t)=>{if(Number.isSafeInteger(s))s<0?sn(s,t):en(s,t);else throw Error(\"cannot encode number outside of javascript safe integer range\");return t},en=(s,t)=>{t[0]=128;for(var e=t.length;e>1;e--)t[e-1]=s&255,s=Math.floor(s/256)},sn=(s,t)=>{t[0]=255;var e=!1;s=s*-1;for(var i=t.length;i>1;i--){var r=s&255;s=Math.floor(s/256),e?t[i-1]=Ps(r):r===0?t[i-1]=0:(e=!0,t[i-1]=zs(r))}},Bs=s=>{let t=s[0],e=t===128?nn(s.subarray(1,s.length)):t===255?rn(s):null;if(e===null)throw Error(\"invalid base256 encoding\");if(!Number.isSafeInteger(e))throw Error(\"parsed number outside of javascript safe integer range\");return e},rn=s=>{for(var t=s.length,e=0,i=!1,r=t-1;r>-1;r--){var n=Number(s[r]),o;i?o=Ps(n):n===0?o=n:(i=!0,o=zs(n)),o!==0&&(e-=o*Math.pow(256,t-r-1))}return e},nn=s=>{for(var t=s.length,e=0,i=t-1;i>-1;i--){var r=Number(s[i]);r!==0&&(e+=r*Math.pow(256,t-i-1))}return e},Ps=s=>(255^s)&255,zs=s=>(255^s)+1&255;var Bi={};vr(Bi,{code:()=>Ke,isCode:()=>oe,isName:()=>hn,name:()=>he});var oe=s=>he.has(s),hn=s=>Ke.has(s),he=new Map([[\"0\",\"File\"],[\"\",\"OldFile\"],[\"1\",\"Link\"],[\"2\",\"SymbolicLink\"],[\"3\",\"CharacterDevice\"],[\"4\",\"BlockDevice\"],[\"5\",\"Directory\"],[\"6\",\"FIFO\"],[\"7\",\"ContiguousFile\"],[\"g\",\"GlobalExtendedHeader\"],[\"x\",\"ExtendedHeader\"],[\"A\",\"SolarisACL\"],[\"D\",\"GNUDumpDir\"],[\"I\",\"Inode\"],[\"K\",\"NextFileHasLongLinkpath\"],[\"L\",\"NextFileHasLongPath\"],[\"M\",\"ContinuationFile\"],[\"N\",\"OldGnuLongPath\"],[\"S\",\"SparseFile\"],[\"V\",\"TapeVolumeHeader\"],[\"X\",\"OldExtendedHeader\"]]),Ke=new Map(Array.from(he).map(s=>[s[1],s[0]]));var F=class{cksumValid=!1;needPax=!1;nullBlock=!1;block;path;mode;uid;gid;size;cksum;#t=\"Unsupported\";linkpath;uname;gname;devmaj=0;devmin=0;atime;ctime;mtime;charset;comment;constructor(t,e=0,i,r){Buffer.isBuffer(t)?this.decode(t,e||0,i,r):t&&this.#i(t)}decode(t,e,i,r){if(e||(e=0),!t||!(t.length>=e+512))throw new Error(\"need 512 bytes for header\");this.path=i?.path??Tt(t,e,100),this.mode=i?.mode??r?.mode??at(t,e+100,8),this.uid=i?.uid??r?.uid??at(t,e+108,8),this.gid=i?.gid??r?.gid??at(t,e+116,8),this.size=i?.size??r?.size??at(t,e+124,12),this.mtime=i?.mtime??r?.mtime??Pi(t,e+136,12),this.cksum=at(t,e+148,12),r&&this.#i(r,!0),i&&this.#i(i);let n=Tt(t,e+156,1);if(oe(n)&&(this.#t=n||\"0\"),this.#t===\"0\"&&this.path.slice(-1)===\"/\"&&(this.#t=\"5\"),this.#t===\"5\"&&(this.size=0),this.linkpath=Tt(t,e+157,100),t.subarray(e+257,e+265).toString()===\"ustar\\x0000\")if(this.uname=i?.uname??r?.uname??Tt(t,e+265,32),this.gname=i?.gname??r?.gname??Tt(t,e+297,32),this.devmaj=i?.devmaj??r?.devmaj??at(t,e+329,8)??0,this.devmin=i?.devmin??r?.devmin??at(t,e+337,8)??0,t[e+475]!==0){let h=Tt(t,e+345,155);this.path=h+\"/\"+this.path}else{let h=Tt(t,e+345,130);h&&(this.path=h+\"/\"+this.path),this.atime=i?.atime??r?.atime??Pi(t,e+476,12),this.ctime=i?.ctime??r?.ctime??Pi(t,e+488,12)}let o=256;for(let h=e;h<e+148;h++)o+=t[h];for(let h=e+156;h<e+512;h++)o+=t[h];this.cksumValid=o===this.cksum,this.cksum===void 0&&o===256&&(this.nullBlock=!0)}#i(t,e=!1){Object.assign(this,Object.fromEntries(Object.entries(t).filter(([i,r])=>!(r==null||i===\"path\"&&e||i===\"linkpath\"&&e||i===\"global\"))))}encode(t,e=0){if(t||(t=this.block=Buffer.alloc(512)),this.#t===\"Unsupported\"&&(this.#t=\"0\"),!(t.length>=e+512))throw new Error(\"need 512 bytes for header\");let i=this.ctime||this.atime?130:155,r=an(this.path||\"\",i),n=r[0],o=r[1];this.needPax=!!r[2],this.needPax=xt(t,e,100,n)||this.needPax,this.needPax=lt(t,e+100,8,this.mode)||this.needPax,this.needPax=lt(t,e+108,8,this.uid)||this.needPax,this.needPax=lt(t,e+116,8,this.gid)||this.needPax,this.needPax=lt(t,e+124,12,this.size)||this.needPax,this.needPax=zi(t,e+136,12,this.mtime)||this.needPax,t[e+156]=Number(this.#t.codePointAt(0)),this.needPax=xt(t,e+157,100,this.linkpath)||this.needPax,t.write(\"ustar\\x0000\",e+257,8),this.needPax=xt(t,e+265,32,this.uname)||this.needPax,this.needPax=xt(t,e+297,32,this.gname)||this.needPax,this.needPax=lt(t,e+329,8,this.devmaj)||this.needPax,this.needPax=lt(t,e+337,8,this.devmin)||this.needPax,this.needPax=xt(t,e+345,i,o)||this.needPax,t[e+475]!==0?this.needPax=xt(t,e+345,155,o)||this.needPax:(this.needPax=xt(t,e+345,130,o)||this.needPax,this.needPax=zi(t,e+476,12,this.atime)||this.needPax,this.needPax=zi(t,e+488,12,this.ctime)||this.needPax);let h=256;for(let a=e;a<e+148;a++)h+=t[a];for(let a=e+156;a<e+512;a++)h+=t[a];return this.cksum=h,lt(t,e+148,8,this.cksum),this.cksumValid=!0,this.needPax}get type(){return this.#t===\"Unsupported\"?this.#t:he.get(this.#t)}get typeKey(){return this.#t}set type(t){let e=String(Ke.get(t));if(oe(e)||e===\"Unsupported\")this.#t=e;else if(oe(t))this.#t=t;else throw new TypeError(\"invalid entry type: \"+t)}},an=(s,t)=>{let i=s,r=\"\",n,o=Zt.parse(s).root||\".\";if(Buffer.byteLength(i)<100)n=[i,r,!1];else{r=Zt.dirname(i),i=Zt.basename(i);do Buffer.byteLength(i)<=100&&Buffer.byteLength(r)<=t?n=[i,r,!1]:Buffer.byteLength(i)>100&&Buffer.byteLength(r)<=t?n=[i.slice(0,99),r,!0]:(i=Zt.join(Zt.basename(r),i),r=Zt.dirname(r));while(r!==o&&n===void 0);n||(n=[s.slice(0,99),\"\",!0])}return n},Tt=(s,t,e)=>s.subarray(t,t+e).toString(\"utf8\").replace(/\\0.*/,\"\"),Pi=(s,t,e)=>ln(at(s,t,e)),ln=s=>s===void 0?void 0:new Date(s*1e3),at=(s,t,e)=>Number(s[t])&128?Bs(s.subarray(t,t+e)):fn(s,t,e),cn=s=>isNaN(s)?void 0:s,fn=(s,t,e)=>cn(parseInt(s.subarray(t,t+e).toString(\"utf8\").replace(/\\0.*$/,\"\").trim(),8)),dn={12:8589934591,8:2097151},lt=(s,t,e,i)=>i===void 0?!1:i>dn[e]||i<0?(Ms(i,s.subarray(t,t+e)),!0):(un(s,t,e,i),!1),un=(s,t,e,i)=>s.write(mn(i,e),t,e,\"ascii\"),mn=(s,t)=>pn(Math.floor(s).toString(8),t),pn=(s,t)=>(s.length===t-1?s:new Array(t-s.length-1).join(\"0\")+s+\" \")+\"\\0\",zi=(s,t,e,i)=>i===void 0?!1:lt(s,t,e,i.getTime()/1e3),En=new Array(156).join(\"\\0\"),xt=(s,t,e,i)=>i===void 0?!1:(s.write(i+En,t,e,\"utf8\"),i.length!==Buffer.byteLength(i)||i.length>e);import{basename as wn}from\"node:path\";var ct=class s{atime;mtime;ctime;charset;comment;gid;uid;gname;uname;linkpath;dev;ino;nlink;path;size;mode;global;constructor(t,e=!1){this.atime=t.atime,this.charset=t.charset,this.comment=t.comment,this.ctime=t.ctime,this.dev=t.dev,this.gid=t.gid,this.global=e,this.gname=t.gname,this.ino=t.ino,this.linkpath=t.linkpath,this.mtime=t.mtime,this.nlink=t.nlink,this.path=t.path,this.size=t.size,this.uid=t.uid,this.uname=t.uname}encode(){let t=this.encodeBody();if(t===\"\")return Buffer.allocUnsafe(0);let e=Buffer.byteLength(t),i=512*Math.ceil(1+e/512),r=Buffer.allocUnsafe(i);for(let n=0;n<512;n++)r[n]=0;new F({path:(\"PaxHeader/\"+wn(this.path??\"\")).slice(0,99),mode:this.mode||420,uid:this.uid,gid:this.gid,size:e,mtime:this.mtime,type:this.global?\"GlobalExtendedHeader\":\"ExtendedHeader\",linkpath:\"\",uname:this.uname||\"\",gname:this.gname||\"\",devmaj:0,devmin:0,atime:this.atime,ctime:this.ctime}).encode(r),r.write(t,512,e,\"utf8\");for(let n=e+512;n<r.length;n++)r[n]=0;return r}encodeBody(){return this.encodeField(\"path\")+this.encodeField(\"ctime\")+this.encodeField(\"atime\")+this.encodeField(\"dev\")+this.encodeField(\"ino\")+this.encodeField(\"nlink\")+this.encodeField(\"charset\")+this.encodeField(\"comment\")+this.encodeField(\"gid\")+this.encodeField(\"gname\")+this.encodeField(\"linkpath\")+this.encodeField(\"mtime\")+this.encodeField(\"size\")+this.encodeField(\"uid\")+this.encodeField(\"uname\")}encodeField(t){if(this[t]===void 0)return\"\";let e=this[t],i=e instanceof Date?e.getTime()/1e3:e,r=\" \"+(t===\"dev\"||t===\"ino\"||t===\"nlink\"?\"SCHILY.\":\"\")+t+\"=\"+i+`\n`,n=Buffer.byteLength(r),o=Math.floor(Math.log(n)/Math.log(10))+1;return n+o>=Math.pow(10,o)&&(o+=1),o+n+r}static parse(t,e,i=!1){return new s(Sn(yn(t),e),i)}},Sn=(s,t)=>t?Object.assign({},t,s):s,yn=s=>s.replace(/\\n$/,\"\").split(`\n`).reduce(Rn,Object.create(null)),Rn=(s,t)=>{let e=parseInt(t,10);if(e!==Buffer.byteLength(t)+1)return s;t=t.slice((e+\" \").length);let i=t.split(\"=\"),r=i.shift();if(!r)return s;let n=r.replace(/^SCHILY\\.(dev|ino|nlink)/,\"$1\"),o=i.join(\"=\");return s[n]=/^([A-Z]+\\.)?([mac]|birth|creation)time$/.test(n)?new Date(Number(o)*1e3):/^[0-9]+$/.test(o)?+o:o,s};var bn=process.env.TESTING_TAR_FAKE_PLATFORM||process.platform,f=bn!==\"win32\"?s=>s:s=>s&&s.replaceAll(/\\\\/g,\"/\");var Yt=class extends D{extended;globalExtended;header;startBlockSize;blockRemain;remain;type;meta=!1;ignore=!1;path;mode;uid;gid;uname;gname;size=0;mtime;atime;ctime;linkpath;dev;ino;nlink;invalid=!1;absolute;unsupported=!1;constructor(t,e,i){switch(super({}),this.pause(),this.extended=e,this.globalExtended=i,this.header=t,this.remain=t.size??0,this.startBlockSize=512*Math.ceil(this.remain/512),this.blockRemain=this.startBlockSize,this.type=t.type,this.type){case\"File\":case\"OldFile\":case\"Link\":case\"SymbolicLink\":case\"CharacterDevice\":case\"BlockDevice\":case\"Directory\":case\"FIFO\":case\"ContiguousFile\":case\"GNUDumpDir\":break;case\"NextFileHasLongLinkpath\":case\"NextFileHasLongPath\":case\"OldGnuLongPath\":case\"GlobalExtendedHeader\":case\"ExtendedHeader\":case\"OldExtendedHeader\":this.meta=!0;break;default:this.ignore=!0}if(!t.path)throw new Error(\"no path provided for tar.ReadEntry\");this.path=f(t.path),this.mode=t.mode,this.mode&&(this.mode=this.mode&4095),this.uid=t.uid,this.gid=t.gid,this.uname=t.uname,this.gname=t.gname,this.size=this.remain,this.mtime=t.mtime,this.atime=t.atime,this.ctime=t.ctime,this.linkpath=t.linkpath?f(t.linkpath):void 0,this.uname=t.uname,this.gname=t.gname,e&&this.#t(e),i&&this.#t(i,!0)}write(t){let e=t.length;if(e>this.blockRemain)throw new Error(\"writing more to entry than is appropriate\");let i=this.remain,r=this.blockRemain;return this.remain=Math.max(0,i-e),this.blockRemain=Math.max(0,r-e),this.ignore?!0:i>=e?super.write(t):super.write(t.subarray(0,i))}#t(t,e=!1){t.path&&(t.path=f(t.path)),t.linkpath&&(t.linkpath=f(t.linkpath)),Object.assign(this,Object.fromEntries(Object.entries(t).filter(([i,r])=>!(r==null||i===\"path\"&&e))))}};var Lt=(s,t,e,i={})=>{s.file&&(i.file=s.file),s.cwd&&(i.cwd=s.cwd),i.code=e instanceof Error&&e.code||t,i.tarCode=t,!s.strict&&i.recoverable!==!1?(e instanceof Error&&(i=Object.assign(e,i),e=e.message),s.emit(\"warn\",t,e,i)):e instanceof Error?s.emit(\"error\",Object.assign(e,i)):s.emit(\"error\",Object.assign(new Error(`${t}: ${e}`),i))};var gn=1024*1024,Zi=Buffer.from([31,139]),Yi=Buffer.from([40,181,47,253]),On=Math.max(Zi.length,Yi.length),B=Symbol(\"state\"),Nt=Symbol(\"writeEntry\"),et=Symbol(\"readEntry\"),Ui=Symbol(\"nextEntry\"),Us=Symbol(\"processEntry\"),V=Symbol(\"extendedHeader\"),ae=Symbol(\"globalExtendedHeader\"),ft=Symbol(\"meta\"),Hs=Symbol(\"emitMeta\"),p=Symbol(\"buffer\"),it=Symbol(\"queue\"),dt=Symbol(\"ended\"),Hi=Symbol(\"emittedEnd\"),At=Symbol(\"emit\"),y=Symbol(\"unzip\"),Ve=Symbol(\"consumeChunk\"),$e=Symbol(\"consumeChunkSub\"),Wi=Symbol(\"consumeBody\"),Ws=Symbol(\"consumeMeta\"),Gs=Symbol(\"consumeHeader\"),le=Symbol(\"consuming\"),Gi=Symbol(\"bufferConcat\"),Xe=Symbol(\"maybeEnd\"),Kt=Symbol(\"writing\"),ut=Symbol(\"aborted\"),qe=Symbol(\"onDone\"),Dt=Symbol(\"sawValidEntry\"),je=Symbol(\"sawNullBlock\"),Qe=Symbol(\"sawEOF\"),Zs=Symbol(\"closeStream\"),Tn=()=>!0,st=class extends _n{file;strict;maxMetaEntrySize;filter;brotli;zstd;writable=!0;readable=!1;[it]=[];[p];[et];[Nt];[B]=\"begin\";[ft]=\"\";[V];[ae];[dt]=!1;[y];[ut]=!1;[Dt];[je]=!1;[Qe]=!1;[Kt]=!1;[le]=!1;[Hi]=!1;constructor(t={}){super(),this.file=t.file||\"\",this.on(qe,()=>{(this[B]===\"begin\"||this[Dt]===!1)&&this.warn(\"TAR_BAD_ARCHIVE\",\"Unrecognized archive format\")}),t.ondone?this.on(qe,t.ondone):this.on(qe,()=>{this.emit(\"prefinish\"),this.emit(\"finish\"),this.emit(\"end\")}),this.strict=!!t.strict,this.maxMetaEntrySize=t.maxMetaEntrySize||gn,this.filter=typeof t.filter==\"function\"?t.filter:Tn;let e=t.file&&(t.file.endsWith(\".tar.br\")||t.file.endsWith(\".tbr\"));this.brotli=!(t.gzip||t.zstd)&&t.brotli!==void 0?t.brotli:e?void 0:!1;let i=t.file&&(t.file.endsWith(\".tar.zst\")||t.file.endsWith(\".tzst\"));this.zstd=!(t.gzip||t.brotli)&&t.zstd!==void 0?t.zstd:i?!0:void 0,this.on(\"end\",()=>this[Zs]()),typeof t.onwarn==\"function\"&&this.on(\"warn\",t.onwarn),typeof t.onReadEntry==\"function\"&&this.on(\"entry\",t.onReadEntry)}warn(t,e,i={}){Lt(this,t,e,i)}[Gs](t,e){this[Dt]===void 0&&(this[Dt]=!1);let i;try{i=new F(t,e,this[V],this[ae])}catch(r){return this.warn(\"TAR_ENTRY_INVALID\",r)}if(i.nullBlock)this[je]?(this[Qe]=!0,this[B]===\"begin\"&&(this[B]=\"header\"),this[At](\"eof\")):(this[je]=!0,this[At](\"nullBlock\"));else if(this[je]=!1,!i.cksumValid)this.warn(\"TAR_ENTRY_INVALID\",\"checksum failure\",{header:i});else if(!i.path)this.warn(\"TAR_ENTRY_INVALID\",\"path is required\",{header:i});else{let r=i.type;if(/^(Symbolic)?Link$/.test(r)&&!i.linkpath)this.warn(\"TAR_ENTRY_INVALID\",\"linkpath required\",{header:i});else if(!/^(Symbolic)?Link$/.test(r)&&!/^(Global)?ExtendedHeader$/.test(r)&&i.linkpath)this.warn(\"TAR_ENTRY_INVALID\",\"linkpath forbidden\",{header:i});else{let n=this[Nt]=new Yt(i,this[V],this[ae]);if(!this[Dt])if(n.remain){let o=()=>{n.invalid||(this[Dt]=!0)};n.on(\"end\",o)}else this[Dt]=!0;n.meta?n.size>this.maxMetaEntrySize?(n.ignore=!0,this[At](\"ignoredEntry\",n),this[B]=\"ignore\",n.resume()):n.size>0&&(this[ft]=\"\",n.on(\"data\",o=>this[ft]+=o),this[B]=\"meta\"):(this[V]=void 0,n.ignore=n.ignore||!this.filter(n.path,n),n.ignore?(this[At](\"ignoredEntry\",n),this[B]=n.remain?\"ignore\":\"header\",n.resume()):(n.remain?this[B]=\"body\":(this[B]=\"header\",n.end()),this[et]?this[it].push(n):(this[it].push(n),this[Ui]())))}}}[Zs](){queueMicrotask(()=>this.emit(\"close\"))}[Us](t){let e=!0;if(!t)this[et]=void 0,e=!1;else if(Array.isArray(t)){let[i,...r]=t;this.emit(i,...r)}else this[et]=t,this.emit(\"entry\",t),t.emittedEnd||(t.on(\"end\",()=>this[Ui]()),e=!1);return e}[Ui](){do;while(this[Us](this[it].shift()));if(this[it].length===0){let t=this[et];!t||t.flowing||t.size===t.remain?this[Kt]||this.emit(\"drain\"):t.once(\"drain\",()=>this.emit(\"drain\"))}}[Wi](t,e){let i=this[Nt];if(!i)throw new Error(\"attempt to consume body without entry??\");let r=i.blockRemain??0,n=r>=t.length&&e===0?t:t.subarray(e,e+r);return i.write(n),i.blockRemain||(this[B]=\"header\",this[Nt]=void 0,i.end()),n.length}[Ws](t,e){let i=this[Nt],r=this[Wi](t,e);return!this[Nt]&&i&&this[Hs](i),r}[At](t,e,i){this[it].length===0&&!this[et]?this.emit(t,e,i):this[it].push([t,e,i])}[Hs](t){switch(this[At](\"meta\",this[ft]),t.type){case\"ExtendedHeader\":case\"OldExtendedHeader\":this[V]=ct.parse(this[ft],this[V],!1);break;case\"GlobalExtendedHeader\":this[ae]=ct.parse(this[ft],this[ae],!0);break;case\"NextFileHasLongPath\":case\"OldGnuLongPath\":{let e=this[V]??Object.create(null);this[V]=e,e.path=this[ft].replace(/\\0.*/,\"\");break}case\"NextFileHasLongLinkpath\":{let e=this[V]||Object.create(null);this[V]=e,e.linkpath=this[ft].replace(/\\0.*/,\"\");break}default:throw new Error(\"unknown meta: \"+t.type)}}abort(t){this[ut]=!0,this.emit(\"abort\",t),this.warn(\"TAR_ABORT\",t,{recoverable:!1})}write(t,e,i){if(typeof e==\"function\"&&(i=e,e=void 0),typeof t==\"string\"&&(t=Buffer.from(t,typeof e==\"string\"?e:\"utf8\")),this[ut])return i?.(),!1;if((this[y]===void 0||this.brotli===void 0&&this[y]===!1)&&t){if(this[p]&&(t=Buffer.concat([this[p],t]),this[p]=void 0),t.length<On)return this[p]=t,i?.(),!0;for(let a=0;this[y]===void 0&&a<Zi.length;a++)t[a]!==Zi[a]&&(this[y]=!1);let o=!1;if(this[y]===!1&&this.zstd!==!1){o=!0;for(let a=0;a<Yi.length;a++)if(t[a]!==Yi[a]){o=!1;break}}let h=this.brotli===void 0&&!o;if(this[y]===!1&&h)if(t.length<512)if(this[dt])this.brotli=!0;else return this[p]=t,i?.(),!0;else try{new F(t.subarray(0,512)),this.brotli=!1}catch{this.brotli=!0}if(this[y]===void 0||this[y]===!1&&(this.brotli||o)){let a=this[dt];this[dt]=!1,this[y]=this[y]===void 0?new ze({}):o?new Ye({}):new We({}),this[y].on(\"data\",c=>this[Ve](c)),this[y].on(\"error\",c=>this.abort(c)),this[y].on(\"end\",()=>{this[dt]=!0,this[Ve]()}),this[Kt]=!0;let l=!!this[y][a?\"end\":\"write\"](t);return this[Kt]=!1,i?.(),l}}this[Kt]=!0,this[y]?this[y].write(t):this[Ve](t),this[Kt]=!1;let n=this[it].length>0?!1:this[et]?this[et].flowing:!0;return!n&&this[it].length===0&&this[et]?.once(\"drain\",()=>this.emit(\"drain\")),i?.(),n}[Gi](t){t&&!this[ut]&&(this[p]=this[p]?Buffer.concat([this[p],t]):t)}[Xe](){if(this[dt]&&!this[Hi]&&!this[ut]&&!this[le]){this[Hi]=!0;let t=this[Nt];if(t&&t.blockRemain){let e=this[p]?this[p].length:0;this.warn(\"TAR_BAD_ARCHIVE\",`Truncated input (needed ${t.blockRemain} more bytes, only ${e} available)`,{entry:t}),this[p]&&t.write(this[p]),t.end()}this[At](qe)}}[Ve](t){if(this[le]&&t)this[Gi](t);else if(!t&&!this[p])this[Xe]();else if(t){if(this[le]=!0,this[p]){this[Gi](t);let e=this[p];this[p]=void 0,this[$e](e)}else this[$e](t);for(;this[p]&&this[p]?.length>=512&&!this[ut]&&!this[Qe];){let e=this[p];this[p]=void 0,this[$e](e)}this[le]=!1}(!this[p]||this[dt])&&this[Xe]()}[$e](t){let e=0,i=t.length;for(;e+512<=i&&!this[ut]&&!this[Qe];)switch(this[B]){case\"begin\":case\"header\":this[Gs](t,e),e+=512;break;case\"ignore\":case\"body\":e+=this[Wi](t,e);break;case\"meta\":e+=this[Ws](t,e);break;default:throw new Error(\"invalid state: \"+this[B])}e<i&&(this[p]=this[p]?Buffer.concat([t.subarray(e),this[p]]):t.subarray(e))}end(t,e,i){return typeof t==\"function\"&&(i=t,e=void 0,t=void 0),typeof e==\"function\"&&(i=e,e=void 0),typeof t==\"string\"&&(t=Buffer.from(t,e)),i&&this.once(\"finish\",i),this[ut]||(this[y]?(t&&this[y].write(t),this[y].end()):(this[dt]=!0,(this.brotli===void 0||this.zstd===void 0)&&(t=t||Buffer.alloc(0)),t&&this.write(t),this[Xe]())),this}};var mt=s=>{let t=s.length-1,e=-1;for(;t>-1&&s.charAt(t)===\"/\";)e=t,t--;return e===-1?s:s.slice(0,e)};var Nn=s=>{let t=s.onReadEntry;s.onReadEntry=t?e=>{t(e),e.resume()}:e=>e.resume()},Ki=(s,t)=>{let e=new Map(t.map(n=>[mt(n),!0])),i=s.filter,r=(n,o=\"\")=>{let h=o||Ln(n).root||\".\",a;if(n===h)a=!1;else{let l=e.get(n);a=l!==void 0?l:r(xn(n),h)}return e.set(n,a),a};s.filter=i?(n,o)=>i(n,o)&&r(mt(n)):n=>r(mt(n))},An=s=>{let t=new st(s),e=s.file,i;try{i=Vt.openSync(e,\"r\");let r=Vt.fstatSync(i),n=s.maxReadSize||16*1024*1024;if(r.size<n){let o=Buffer.allocUnsafe(r.size),h=Vt.readSync(i,o,0,r.size,0);t.end(h===o.byteLength?o:o.subarray(0,h))}else{let o=0,h=Buffer.allocUnsafe(n);for(;o<r.size;){let a=Vt.readSync(i,h,0,n,o);if(a===0)break;o+=a,t.write(h.subarray(0,a))}t.end()}}finally{if(typeof i==\"number\")try{Vt.closeSync(i)}catch{}}},Dn=(s,t)=>{let e=new st(s),i=s.maxReadSize||16*1024*1024,r=s.file;return new Promise((o,h)=>{e.on(\"error\",h),e.on(\"end\",o),Vt.stat(r,(a,l)=>{if(a)h(a);else{let c=new _t(r,{readSize:i,size:l.size});c.on(\"error\",h),c.pipe(e)}})})},It=K(An,Dn,s=>new st(s),s=>new st(s),(s,t)=>{t?.length&&Ki(s,t),s.noResume||Nn(s)});import fi from\"fs\";import $ from\"fs\";import $s from\"path\";var Vi=(s,t,e)=>(s&=4095,e&&(s=(s|384)&-19),t&&(s&256&&(s|=64),s&32&&(s|=8),s&4&&(s|=1)),s);import{win32 as In}from\"node:path\";var{isAbsolute:Cn,parse:Ys}=In,ce=s=>{let t=\"\",e=Ys(s);for(;Cn(s)||e.root;){let i=s.charAt(0)===\"/\"&&s.slice(0,4)!==\"//?/\"?\"/\":e.root;s=s.slice(i.length),t+=i,e=Ys(s)}return[t,s]};var Je=[\"|\",\"<\",\">\",\"?\",\":\"],$i=Je.map(s=>String.fromCodePoint(61440+Number(s.codePointAt(0)))),Fn=new Map(Je.map((s,t)=>[s,$i[t]])),kn=new Map($i.map((s,t)=>[s,Je[t]])),Xi=s=>Je.reduce((t,e)=>t.split(e).join(Fn.get(e)),s),Ks=s=>$i.reduce((t,e)=>t.split(e).join(kn.get(e)),s);var Js=(s,t)=>t?(s=f(s).replace(/^\\.(\\/|$)/,\"\"),mt(t)+\"/\"+s):f(s),vn=16*1024*1024,Xs=Symbol(\"process\"),qs=Symbol(\"file\"),js=Symbol(\"directory\"),ji=Symbol(\"symlink\"),Qs=Symbol(\"hardlink\"),fe=Symbol(\"header\"),ti=Symbol(\"read\"),Qi=Symbol(\"lstat\"),ei=Symbol(\"onlstat\"),Ji=Symbol(\"onread\"),ts=Symbol(\"onreadlink\"),es=Symbol(\"openfile\"),is=Symbol(\"onopenfile\"),pt=Symbol(\"close\"),ii=Symbol(\"mode\"),ss=Symbol(\"awaitDrain\"),qi=Symbol(\"ondrain\"),X=Symbol(\"prefix\"),de=class extends D{path;portable;myuid=process.getuid&&process.getuid()||0;myuser=process.env.USER||\"\";maxReadSize;linkCache;statCache;preservePaths;cwd;strict;mtime;noPax;noMtime;prefix;fd;blockLen=0;blockRemain=0;buf;pos=0;remain=0;length=0;offset=0;win32;absolute;header;type;linkpath;stat;onWriteEntry;#t=!1;constructor(t,e={}){let i=re(e);super(),this.path=f(t),this.portable=!!i.portable,this.maxReadSize=i.maxReadSize||vn,this.linkCache=i.linkCache||new Map,this.statCache=i.statCache||new Map,this.preservePaths=!!i.preservePaths,this.cwd=f(i.cwd||process.cwd()),this.strict=!!i.strict,this.noPax=!!i.noPax,this.noMtime=!!i.noMtime,this.mtime=i.mtime,this.prefix=i.prefix?f(i.prefix):void 0,this.onWriteEntry=i.onWriteEntry,typeof i.onwarn==\"function\"&&this.on(\"warn\",i.onwarn);let r=!1;if(!this.preservePaths){let[o,h]=ce(this.path);o&&typeof h==\"string\"&&(this.path=h,r=o)}this.win32=!!i.win32||process.platform===\"win32\",this.win32&&(this.path=Ks(this.path.replaceAll(/\\\\/g,\"/\")),t=t.replaceAll(/\\\\/g,\"/\")),this.absolute=f(i.absolute||$s.resolve(this.cwd,t)),this.path===\"\"&&(this.path=\"./\"),r&&this.warn(\"TAR_ENTRY_INFO\",`stripping ${r} from absolute path`,{entry:this,path:r+this.path});let n=this.statCache.get(this.absolute);n?this[ei](n):this[Qi]()}warn(t,e,i={}){return Lt(this,t,e,i)}emit(t,...e){return t===\"error\"&&(this.#t=!0),super.emit(t,...e)}[Qi](){$.lstat(this.absolute,(t,e)=>{if(t)return this.emit(\"error\",t);this[ei](e)})}[ei](t){this.statCache.set(this.absolute,t),this.stat=t,t.isFile()||(t.size=0),this.type=Mn(t),this.emit(\"stat\",t),this[Xs]()}[Xs](){switch(this.type){case\"File\":return this[qs]();case\"Directory\":return this[js]();case\"SymbolicLink\":return this[ji]();default:return this.end()}}[ii](t){return Vi(t,this.type===\"Directory\",this.portable)}[X](t){return Js(t,this.prefix)}[fe](){if(!this.stat)throw new Error(\"cannot write header before stat\");this.type===\"Directory\"&&this.portable&&(this.noMtime=!0),this.onWriteEntry?.(this),this.header=new F({path:this[X](this.path),linkpath:this.type===\"Link\"&&this.linkpath!==void 0?this[X](this.linkpath):this.linkpath,mode:this[ii](this.stat.mode),uid:this.portable?void 0:this.stat.uid,gid:this.portable?void 0:this.stat.gid,size:this.stat.size,mtime:this.noMtime?void 0:this.mtime||this.stat.mtime,type:this.type===\"Unsupported\"?void 0:this.type,uname:this.portable?void 0:this.stat.uid===this.myuid?this.myuser:\"\",atime:this.portable?void 0:this.stat.atime,ctime:this.portable?void 0:this.stat.ctime}),this.header.encode()&&!this.noPax&&super.write(new ct({atime:this.portable?void 0:this.header.atime,ctime:this.portable?void 0:this.header.ctime,gid:this.portable?void 0:this.header.gid,mtime:this.noMtime?void 0:this.mtime||this.header.mtime,path:this[X](this.path),linkpath:this.type===\"Link\"&&this.linkpath!==void 0?this[X](this.linkpath):this.linkpath,size:this.header.size,uid:this.portable?void 0:this.header.uid,uname:this.portable?void 0:this.header.uname,dev:this.portable?void 0:this.stat.dev,ino:this.portable?void 0:this.stat.ino,nlink:this.portable?void 0:this.stat.nlink}).encode());let t=this.header?.block;if(!t)throw new Error(\"failed to encode header\");super.write(t)}[js](){if(!this.stat)throw new Error(\"cannot create directory entry without stat\");this.path.slice(-1)!==\"/\"&&(this.path+=\"/\"),this.stat.size=0,this[fe](),this.end()}[ji](){$.readlink(this.absolute,(t,e)=>{if(t)return this.emit(\"error\",t);this[ts](e)})}[ts](t){this.linkpath=f(t),this[fe](),this.end()}[Qs](t){if(!this.stat)throw new Error(\"cannot create link entry without stat\");this.type=\"Link\",this.linkpath=f($s.relative(this.cwd,t)),this.stat.size=0,this[fe](),this.end()}[qs](){if(!this.stat)throw new Error(\"cannot create file entry without stat\");if(this.stat.nlink>1){let t=`${this.stat.dev}:${this.stat.ino}`,e=this.linkCache.get(t);if(e?.indexOf(this.cwd)===0)return this[Qs](e);this.linkCache.set(t,this.absolute)}if(this[fe](),this.stat.size===0)return this.end();this[es]()}[es](){$.open(this.absolute,\"r\",(t,e)=>{if(t)return this.emit(\"error\",t);this[is](e)})}[is](t){if(this.fd=t,this.#t)return this[pt]();if(!this.stat)throw new Error(\"should stat before calling onopenfile\");this.blockLen=512*Math.ceil(this.stat.size/512),this.blockRemain=this.blockLen;let e=Math.min(this.blockLen,this.maxReadSize);this.buf=Buffer.allocUnsafe(e),this.offset=0,this.pos=0,this.remain=this.stat.size,this.length=this.buf.length,this[ti]()}[ti](){let{fd:t,buf:e,offset:i,length:r,pos:n}=this;if(t===void 0||e===void 0)throw new Error(\"cannot read file without first opening\");$.read(t,e,i,r,n,(o,h)=>{if(o)return this[pt](()=>this.emit(\"error\",o));this[Ji](h)})}[pt](t=()=>{}){this.fd!==void 0&&$.close(this.fd,t)}[Ji](t){if(t<=0&&this.remain>0){let r=Object.assign(new Error(\"encountered unexpected EOF\"),{path:this.absolute,syscall:\"read\",code:\"EOF\"});return this[pt](()=>this.emit(\"error\",r))}if(t>this.remain){let r=Object.assign(new Error(\"did not encounter expected EOF\"),{path:this.absolute,syscall:\"read\",code:\"EOF\"});return this[pt](()=>this.emit(\"error\",r))}if(!this.buf)throw new Error(\"should have created buffer prior to reading\");if(t===this.remain)for(let r=t;r<this.length&&t<this.blockRemain;r++)this.buf[r+this.offset]=0,t++,this.remain++;let e=this.offset===0&&t===this.buf.length?this.buf:this.buf.subarray(this.offset,this.offset+t);this.write(e)?this[qi]():this[ss](()=>this[qi]())}[ss](t){this.once(\"drain\",t)}write(t,e,i){if(typeof e==\"function\"&&(i=e,e=void 0),typeof t==\"string\"&&(t=Buffer.from(t,typeof e==\"string\"?e:\"utf8\")),this.blockRemain<t.length){let r=Object.assign(new Error(\"writing more data than expected\"),{path:this.absolute});return this.emit(\"error\",r)}return this.remain-=t.length,this.blockRemain-=t.length,this.pos+=t.length,this.offset+=t.length,super.write(t,null,i)}[qi](){if(!this.remain)return this.blockRemain&&super.write(Buffer.alloc(this.blockRemain)),this[pt](t=>t?this.emit(\"error\",t):this.end());if(!this.buf)throw new Error(\"buffer lost somehow in ONDRAIN\");this.offset>=this.length&&(this.buf=Buffer.allocUnsafe(Math.min(this.blockRemain,this.buf.length)),this.offset=0),this.length=this.buf.length-this.offset,this[ti]()}},si=class extends de{sync=!0;[Qi](){this[ei]($.lstatSync(this.absolute))}[ji](){this[ts]($.readlinkSync(this.absolute))}[es](){this[is]($.openSync(this.absolute,\"r\"))}[ti](){let t=!0;try{let{fd:e,buf:i,offset:r,length:n,pos:o}=this;if(e===void 0||i===void 0)throw new Error(\"fd and buf must be set in READ method\");let h=$.readSync(e,i,r,n,o);this[Ji](h),t=!1}finally{if(t)try{this[pt](()=>{})}catch{}}}[ss](t){t()}[pt](t=()=>{}){this.fd!==void 0&&$.closeSync(this.fd),t()}},ri=class extends D{blockLen=0;blockRemain=0;buf=0;pos=0;remain=0;length=0;preservePaths;portable;strict;noPax;noMtime;readEntry;type;prefix;path;mode;uid;gid;uname;gname;header;mtime;atime;ctime;linkpath;size;onWriteEntry;warn(t,e,i={}){return Lt(this,t,e,i)}constructor(t,e={}){let i=re(e);super(),this.preservePaths=!!i.preservePaths,this.portable=!!i.portable,this.strict=!!i.strict,this.noPax=!!i.noPax,this.noMtime=!!i.noMtime,this.onWriteEntry=i.onWriteEntry,this.readEntry=t;let{type:r}=t;if(r===\"Unsupported\")throw new Error(\"writing entry that should be ignored\");this.type=r,this.type===\"Directory\"&&this.portable&&(this.noMtime=!0),this.prefix=i.prefix,this.path=f(t.path),this.mode=t.mode!==void 0?this[ii](t.mode):void 0,this.uid=this.portable?void 0:t.uid,this.gid=this.portable?void 0:t.gid,this.uname=this.portable?void 0:t.uname,this.gname=this.portable?void 0:t.gname,this.size=t.size,this.mtime=this.noMtime?void 0:i.mtime||t.mtime,this.atime=this.portable?void 0:t.atime,this.ctime=this.portable?void 0:t.ctime,this.linkpath=t.linkpath!==void 0?f(t.linkpath):void 0,typeof i.onwarn==\"function\"&&this.on(\"warn\",i.onwarn);let n=!1;if(!this.preservePaths){let[h,a]=ce(this.path);h&&typeof a==\"string\"&&(this.path=a,n=h)}this.remain=t.size,this.blockRemain=t.startBlockSize,this.onWriteEntry?.(this),this.header=new F({path:this[X](this.path),linkpath:this.type===\"Link\"&&this.linkpath!==void 0?this[X](this.linkpath):this.linkpath,mode:this.mode,uid:this.portable?void 0:this.uid,gid:this.portable?void 0:this.gid,size:this.size,mtime:this.noMtime?void 0:this.mtime,type:this.type,uname:this.portable?void 0:this.uname,atime:this.portable?void 0:this.atime,ctime:this.portable?void 0:this.ctime}),n&&this.warn(\"TAR_ENTRY_INFO\",`stripping ${n} from absolute path`,{entry:this,path:n+this.path}),this.header.encode()&&!this.noPax&&super.write(new ct({atime:this.portable?void 0:this.atime,ctime:this.portable?void 0:this.ctime,gid:this.portable?void 0:this.gid,mtime:this.noMtime?void 0:this.mtime,path:this[X](this.path),linkpath:this.type===\"Link\"&&this.linkpath!==void 0?this[X](this.linkpath):this.linkpath,size:this.size,uid:this.portable?void 0:this.uid,uname:this.portable?void 0:this.uname,dev:this.portable?void 0:this.readEntry.dev,ino:this.portable?void 0:this.readEntry.ino,nlink:this.portable?void 0:this.readEntry.nlink}).encode());let o=this.header?.block;if(!o)throw new Error(\"failed to encode header\");super.write(o),t.pipe(this)}[X](t){return Js(t,this.prefix)}[ii](t){return Vi(t,this.type===\"Directory\",this.portable)}write(t,e,i){typeof e==\"function\"&&(i=e,e=void 0),typeof t==\"string\"&&(t=Buffer.from(t,typeof e==\"string\"?e:\"utf8\"));let r=t.length;if(r>this.blockRemain)throw new Error(\"writing more to entry than is appropriate\");return this.blockRemain-=r,super.write(t,i)}end(t,e,i){return this.blockRemain&&super.write(Buffer.alloc(this.blockRemain)),typeof t==\"function\"&&(i=t,e=void 0,t=void 0),typeof e==\"function\"&&(i=e,e=void 0),typeof t==\"string\"&&(t=Buffer.from(t,e??\"utf8\")),i&&this.once(\"finish\",i),t?super.end(t,i):super.end(i),this}},Mn=s=>s.isFile()?\"File\":s.isDirectory()?\"Directory\":s.isSymbolicLink()?\"SymbolicLink\":\"Unsupported\";var ni=class s{tail;head;length=0;static create(t=[]){return new s(t)}constructor(t=[]){for(let e of t)this.push(e)}*[Symbol.iterator](){for(let t=this.head;t;t=t.next)yield t.value}removeNode(t){if(t.list!==this)throw new Error(\"removing node which does not belong to this list\");let e=t.next,i=t.prev;return e&&(e.prev=i),i&&(i.next=e),t===this.head&&(this.head=e),t===this.tail&&(this.tail=i),this.length--,t.next=void 0,t.prev=void 0,t.list=void 0,e}unshiftNode(t){if(t===this.head)return;t.list&&t.list.removeNode(t);let e=this.head;t.list=this,t.next=e,e&&(e.prev=t),this.head=t,this.tail||(this.tail=t),this.length++}pushNode(t){if(t===this.tail)return;t.list&&t.list.removeNode(t);let e=this.tail;t.list=this,t.prev=e,e&&(e.next=t),this.tail=t,this.head||(this.head=t),this.length++}push(...t){for(let e=0,i=t.length;e<i;e++)Pn(this,t[e]);return this.length}unshift(...t){for(var e=0,i=t.length;e<i;e++)zn(this,t[e]);return this.length}pop(){if(!this.tail)return;let t=this.tail.value,e=this.tail;return this.tail=this.tail.prev,this.tail?this.tail.next=void 0:this.head=void 0,e.list=void 0,this.length--,t}shift(){if(!this.head)return;let t=this.head.value,e=this.head;return this.head=this.head.next,this.head?this.head.prev=void 0:this.tail=void 0,e.list=void 0,this.length--,t}forEach(t,e){e=e||this;for(let i=this.head,r=0;i;r++)t.call(e,i.value,r,this),i=i.next}forEachReverse(t,e){e=e||this;for(let i=this.tail,r=this.length-1;i;r--)t.call(e,i.value,r,this),i=i.prev}get(t){let e=0,i=this.head;for(;i&&e<t;e++)i=i.next;if(e===t&&i)return i.value}getReverse(t){let e=0,i=this.tail;for(;i&&e<t;e++)i=i.prev;if(e===t&&i)return i.value}map(t,e){e=e||this;let i=new s;for(let r=this.head;r;)i.push(t.call(e,r.value,this)),r=r.next;return i}mapReverse(t,e){e=e||this;var i=new s;for(let r=this.tail;r;)i.push(t.call(e,r.value,this)),r=r.prev;return i}reduce(t,e){let i,r=this.head;if(arguments.length>1)i=e;else if(this.head)r=this.head.next,i=this.head.value;else throw new TypeError(\"Reduce of empty list with no initial value\");for(var n=0;r;n++)i=t(i,r.value,n),r=r.next;return i}reduceReverse(t,e){let i,r=this.tail;if(arguments.length>1)i=e;else if(this.tail)r=this.tail.prev,i=this.tail.value;else throw new TypeError(\"Reduce of empty list with no initial value\");for(let n=this.length-1;r;n--)i=t(i,r.value,n),r=r.prev;return i}toArray(){let t=new Array(this.length);for(let e=0,i=this.head;i;e++)t[e]=i.value,i=i.next;return t}toArrayReverse(){let t=new Array(this.length);for(let e=0,i=this.tail;i;e++)t[e]=i.value,i=i.prev;return t}slice(t=0,e=this.length){e<0&&(e+=this.length),t<0&&(t+=this.length);let i=new s;if(e<t||e<0)return i;t<0&&(t=0),e>this.length&&(e=this.length);let r=this.head,n=0;for(n=0;r&&n<t;n++)r=r.next;for(;r&&n<e;n++,r=r.next)i.push(r.value);return i}sliceReverse(t=0,e=this.length){e<0&&(e+=this.length),t<0&&(t+=this.length);let i=new s;if(e<t||e<0)return i;t<0&&(t=0),e>this.length&&(e=this.length);let r=this.length,n=this.tail;for(;n&&r>e;r--)n=n.prev;for(;n&&r>t;r--,n=n.prev)i.push(n.value);return i}splice(t,e=0,...i){t>this.length&&(t=this.length-1),t<0&&(t=this.length+t);let r=this.head;for(let o=0;r&&o<t;o++)r=r.next;let n=[];for(let o=0;r&&o<e;o++)n.push(r.value),r=this.removeNode(r);r?r!==this.tail&&(r=r.prev):r=this.tail;for(let o of i)r=Bn(this,r,o);return n}reverse(){let t=this.head,e=this.tail;for(let i=t;i;i=i.prev){let r=i.prev;i.prev=i.next,i.next=r}return this.head=e,this.tail=t,this}};function Bn(s,t,e){let i=t,r=t?t.next:s.head,n=new ue(e,i,r,s);return n.next===void 0&&(s.tail=n),n.prev===void 0&&(s.head=n),s.length++,n}function Pn(s,t){s.tail=new ue(t,s.tail,void 0,s),s.head||(s.head=s.tail),s.length++}function zn(s,t){s.head=new ue(t,void 0,s.head,s),s.tail||(s.tail=s.head),s.length++}var ue=class{list;next;prev;value;constructor(t,e,i,r){this.list=r,this.value=t,e?(e.next=this,this.prev=e):this.prev=void 0,i?(i.prev=this,this.next=i):this.next=void 0}};import sr from\"path\";var di=class{path;absolute;entry;stat;readdir;pending=!1;ignore=!1;piped=!1;constructor(t,e){this.path=t||\"./\",this.absolute=e}},tr=Buffer.alloc(1024),oi=Symbol(\"onStat\"),me=Symbol(\"ended\"),W=Symbol(\"queue\"),Ct=Symbol(\"current\"),Ft=Symbol(\"process\"),pe=Symbol(\"processing\"),rs=Symbol(\"processJob\"),G=Symbol(\"jobs\"),ns=Symbol(\"jobDone\"),hi=Symbol(\"addFSEntry\"),er=Symbol(\"addTarEntry\"),as=Symbol(\"stat\"),ls=Symbol(\"readdir\"),ai=Symbol(\"onreaddir\"),li=Symbol(\"pipe\"),ir=Symbol(\"entry\"),os=Symbol(\"entryOpt\"),ci=Symbol(\"writeEntryClass\"),rr=Symbol(\"write\"),hs=Symbol(\"ondrain\"),Et=class extends D{sync=!1;opt;cwd;maxReadSize;preservePaths;strict;noPax;prefix;linkCache;statCache;file;portable;zip;readdirCache;noDirRecurse;follow;noMtime;mtime;filter;jobs;[ci];onWriteEntry;[W];[G]=0;[pe]=!1;[me]=!1;constructor(t={}){if(super(),this.opt=t,this.file=t.file||\"\",this.cwd=t.cwd||process.cwd(),this.maxReadSize=t.maxReadSize,this.preservePaths=!!t.preservePaths,this.strict=!!t.strict,this.noPax=!!t.noPax,this.prefix=f(t.prefix||\"\"),this.linkCache=t.linkCache||new Map,this.statCache=t.statCache||new Map,this.readdirCache=t.readdirCache||new Map,this.onWriteEntry=t.onWriteEntry,this[ci]=de,typeof t.onwarn==\"function\"&&this.on(\"warn\",t.onwarn),this.portable=!!t.portable,t.gzip||t.brotli||t.zstd){if((t.gzip?1:0)+(t.brotli?1:0)+(t.zstd?1:0)>1)throw new TypeError(\"gzip, brotli, zstd are mutually exclusive\");if(t.gzip&&(typeof t.gzip!=\"object\"&&(t.gzip={}),this.portable&&(t.gzip.portable=!0),this.zip=new Pe(t.gzip)),t.brotli&&(typeof t.brotli!=\"object\"&&(t.brotli={}),this.zip=new He(t.brotli)),t.zstd&&(typeof t.zstd!=\"object\"&&(t.zstd={}),this.zip=new Ze(t.zstd)),!this.zip)throw new Error(\"impossible\");let e=this.zip;e.on(\"data\",i=>super.write(i)),e.on(\"end\",()=>super.end()),e.on(\"drain\",()=>this[hs]()),this.on(\"resume\",()=>e.resume())}else this.on(\"drain\",this[hs]);this.noDirRecurse=!!t.noDirRecurse,this.follow=!!t.follow,this.noMtime=!!t.noMtime,t.mtime&&(this.mtime=t.mtime),this.filter=typeof t.filter==\"function\"?t.filter:()=>!0,this[W]=new ni,this[G]=0,this.jobs=Number(t.jobs)||4,this[pe]=!1,this[me]=!1}[rr](t){return super.write(t)}add(t){return this.write(t),this}end(t,e,i){return typeof t==\"function\"&&(i=t,t=void 0),typeof e==\"function\"&&(i=e,e=void 0),t&&this.add(t),this[me]=!0,this[Ft](),i&&i(),this}write(t){if(this[me])throw new Error(\"write after end\");return t instanceof Yt?this[er](t):this[hi](t),this.flowing}[er](t){let e=f(sr.resolve(this.cwd,t.path));if(!this.filter(t.path,t))t.resume();else{let i=new di(t.path,e);i.entry=new ri(t,this[os](i)),i.entry.on(\"end\",()=>this[ns](i)),this[G]+=1,this[W].push(i)}this[Ft]()}[hi](t){let e=f(sr.resolve(this.cwd,t));this[W].push(new di(t,e)),this[Ft]()}[as](t){t.pending=!0,this[G]+=1;let e=this.follow?\"stat\":\"lstat\";fi[e](t.absolute,(i,r)=>{t.pending=!1,this[G]-=1,i?this.emit(\"error\",i):this[oi](t,r)})}[oi](t,e){this.statCache.set(t.absolute,e),t.stat=e,this.filter(t.path,e)?e.isFile()&&e.nlink>1&&t===this[Ct]&&!this.linkCache.get(`${e.dev}:${e.ino}`)&&!this.sync&&this[rs](t):t.ignore=!0,this[Ft]()}[ls](t){t.pending=!0,this[G]+=1,fi.readdir(t.absolute,(e,i)=>{if(t.pending=!1,this[G]-=1,e)return this.emit(\"error\",e);this[ai](t,i)})}[ai](t,e){this.readdirCache.set(t.absolute,e),t.readdir=e,this[Ft]()}[Ft](){if(!this[pe]){this[pe]=!0;for(let t=this[W].head;t&&this[G]<this.jobs;t=t.next)if(this[rs](t.value),t.value.ignore){let e=t.next;this[W].removeNode(t),t.next=e}this[pe]=!1,this[me]&&this[W].length===0&&this[G]===0&&(this.zip?this.zip.end(tr):(super.write(tr),super.end()))}}get[Ct](){return this[W]&&this[W].head&&this[W].head.value}[ns](t){this[W].shift(),this[G]-=1,this[Ft]()}[rs](t){if(!t.pending){if(t.entry){t===this[Ct]&&!t.piped&&this[li](t);return}if(!t.stat){let e=this.statCache.get(t.absolute);e?this[oi](t,e):this[as](t)}if(t.stat&&!t.ignore){if(!this.noDirRecurse&&t.stat.isDirectory()&&!t.readdir){let e=this.readdirCache.get(t.absolute);if(e?this[ai](t,e):this[ls](t),!t.readdir)return}if(t.entry=this[ir](t),!t.entry){t.ignore=!0;return}t===this[Ct]&&!t.piped&&this[li](t)}}}[os](t){return{onwarn:(e,i,r)=>this.warn(e,i,r),noPax:this.noPax,cwd:this.cwd,absolute:t.absolute,preservePaths:this.preservePaths,maxReadSize:this.maxReadSize,strict:this.strict,portable:this.portable,linkCache:this.linkCache,statCache:this.statCache,noMtime:this.noMtime,mtime:this.mtime,prefix:this.prefix,onWriteEntry:this.onWriteEntry}}[ir](t){this[G]+=1;try{return new this[ci](t.path,this[os](t)).on(\"end\",()=>this[ns](t)).on(\"error\",i=>this.emit(\"error\",i))}catch(e){this.emit(\"error\",e)}}[hs](){this[Ct]&&this[Ct].entry&&this[Ct].entry.resume()}[li](t){t.piped=!0,t.readdir&&t.readdir.forEach(r=>{let n=t.path,o=n===\"./\"?\"\":n.replace(/\\/*$/,\"/\");this[hi](o+r)});let e=t.entry,i=this.zip;if(!e)throw new Error(\"cannot pipe without source\");i?e.on(\"data\",r=>{i.write(r)||e.pause()}):e.on(\"data\",r=>{super.write(r)||e.pause()})}pause(){return this.zip&&this.zip.pause(),super.pause()}warn(t,e,i={}){Lt(this,t,e,i)}},kt=class extends Et{sync=!0;constructor(t){super(t),this[ci]=si}pause(){}resume(){}[as](t){let e=this.follow?\"statSync\":\"lstatSync\";this[oi](t,fi[e](t.absolute))}[ls](t){this[ai](t,fi.readdirSync(t.absolute))}[li](t){let e=t.entry,i=this.zip;if(t.readdir&&t.readdir.forEach(r=>{let n=t.path,o=n===\"./\"?\"\":n.replace(/\\/*$/,\"/\");this[hi](o+r)}),!e)throw new Error(\"Cannot pipe without source\");i?e.on(\"data\",r=>{i.write(r)}):e.on(\"data\",r=>{super[rr](r)})}};var Un=(s,t)=>{let e=new kt(s),i=new Wt(s.file,{mode:s.mode||438});e.pipe(i),or(e,t)},Hn=(s,t)=>{let e=new Et(s),i=new tt(s.file,{mode:s.mode||438});e.pipe(i);let r=new Promise((n,o)=>{i.on(\"error\",o),i.on(\"close\",n),e.on(\"error\",o)});return hr(e,t).catch(n=>e.emit(\"error\",n)),r},or=(s,t)=>{t.forEach(e=>{e.charAt(0)===\"@\"?It({file:nr.resolve(s.cwd,e.slice(1)),sync:!0,noResume:!0,onReadEntry:i=>s.add(i)}):s.add(e)}),s.end()},hr=async(s,t)=>{for(let e of t)e.charAt(0)===\"@\"?await It({file:nr.resolve(String(s.cwd),e.slice(1)),noResume:!0,onReadEntry:i=>{s.add(i)}}):s.add(e);s.end()},Wn=(s,t)=>{let e=new kt(s);return or(e,t),e},Gn=(s,t)=>{let e=new Et(s);return hr(e,t).catch(i=>e.emit(\"error\",i)),e},Zn=K(Un,Hn,Wn,Gn,(s,t)=>{if(!t?.length)throw new TypeError(\"no paths specified to add to archive\")});import Cr from\"node:fs\";import so from\"node:assert\";import{randomBytes as Ir}from\"node:crypto\";import u from\"node:fs\";import R from\"node:path\";import cr from\"fs\";var Yn=process.env.__FAKE_PLATFORM__||process.platform,fr=Yn===\"win32\",{O_CREAT:dr,O_NOFOLLOW:ar,O_TRUNC:ur,O_WRONLY:mr}=cr.constants,pr=Number(process.env.__FAKE_FS_O_FILENAME__)||cr.constants.UV_FS_O_FILEMAP||0,Kn=fr&&!!pr,Vn=512*1024,$n=pr|ur|dr|mr,lr=!fr&&typeof ar==\"number\"?ar|ur|dr|mr:null,cs=lr!==null?()=>lr:Kn?s=>s<Vn?$n:\"w\":()=>\"w\";import mi from\"node:fs\";import Ee from\"node:path\";var fs=(s,t,e)=>{try{return mi.lchownSync(s,t,e)}catch(i){if(i?.code!==\"ENOENT\")throw i}},ui=(s,t,e,i)=>{mi.lchown(s,t,e,r=>{i(r&&r?.code!==\"ENOENT\"?r:null)})},Xn=(s,t,e,i,r)=>{if(t.isDirectory())ds(Ee.resolve(s,t.name),e,i,n=>{if(n)return r(n);let o=Ee.resolve(s,t.name);ui(o,e,i,r)});else{let n=Ee.resolve(s,t.name);ui(n,e,i,r)}},ds=(s,t,e,i)=>{mi.readdir(s,{withFileTypes:!0},(r,n)=>{if(r){if(r.code===\"ENOENT\")return i();if(r.code!==\"ENOTDIR\"&&r.code!==\"ENOTSUP\")return i(r)}if(r||!n.length)return ui(s,t,e,i);let o=n.length,h=null,a=l=>{if(!h){if(l)return i(h=l);if(--o===0)return ui(s,t,e,i)}};for(let l of n)Xn(s,l,t,e,a)})},qn=(s,t,e,i)=>{t.isDirectory()&&us(Ee.resolve(s,t.name),e,i),fs(Ee.resolve(s,t.name),e,i)},us=(s,t,e)=>{let i;try{i=mi.readdirSync(s,{withFileTypes:!0})}catch(r){let n=r;if(n?.code===\"ENOENT\")return;if(n?.code===\"ENOTDIR\"||n?.code===\"ENOTSUP\")return fs(s,t,e);throw n}for(let r of i)qn(s,r,t,e);return fs(s,t,e)};import k from\"node:fs\";import jn from\"node:fs/promises\";import pi from\"node:path\";var we=class extends Error{path;code;syscall=\"chdir\";constructor(t,e){super(`${e}: Cannot cd into '${t}'`),this.path=t,this.code=e}get name(){return\"CwdError\"}};var wt=class extends Error{path;symlink;syscall=\"symlink\";code=\"TAR_SYMLINK_ERROR\";constructor(t,e){super(\"TAR_SYMLINK_ERROR: Cannot extract through symbolic link\"),this.symlink=t,this.path=e}get name(){return\"SymlinkError\"}};var Qn=(s,t)=>{k.stat(s,(e,i)=>{(e||!i.isDirectory())&&(e=new we(s,e?.code||\"ENOTDIR\")),t(e)})},Er=(s,t,e)=>{s=f(s);let i=t.umask??18,r=t.mode|448,n=(r&i)!==0,o=t.uid,h=t.gid,a=typeof o==\"number\"&&typeof h==\"number\"&&(o!==t.processUid||h!==t.processGid),l=t.preserve,c=t.unlink,d=f(t.cwd),S=(E,x)=>{E?e(E):x&&a?ds(x,o,h,xe=>S(xe)):n?k.chmod(s,r,e):e()};if(s===d)return Qn(s,S);if(l)return jn.mkdir(s,{mode:r,recursive:!0}).then(E=>S(null,E??void 0),S);let N=f(pi.relative(d,s)).split(\"/\");ms(d,N,r,c,d,void 0,S)},ms=(s,t,e,i,r,n,o)=>{if(t.length===0)return o(null,n);let h=t.shift(),a=f(pi.resolve(s+\"/\"+h));k.mkdir(a,e,wr(a,t,e,i,r,n,o))},wr=(s,t,e,i,r,n,o)=>h=>{h?k.lstat(s,(a,l)=>{if(a)a.path=a.path&&f(a.path),o(a);else if(l.isDirectory())ms(s,t,e,i,r,n,o);else if(i)k.unlink(s,c=>{if(c)return o(c);k.mkdir(s,e,wr(s,t,e,i,r,n,o))});else{if(l.isSymbolicLink())return o(new wt(s,s+\"/\"+t.join(\"/\")));o(h)}}):(n=n||s,ms(s,t,e,i,r,n,o))},Jn=s=>{let t=!1,e;try{t=k.statSync(s).isDirectory()}catch(i){e=i?.code}finally{if(!t)throw new we(s,e??\"ENOTDIR\")}},Sr=(s,t)=>{s=f(s);let e=t.umask??18,i=t.mode|448,r=(i&e)!==0,n=t.uid,o=t.gid,h=typeof n==\"number\"&&typeof o==\"number\"&&(n!==t.processUid||o!==t.processGid),a=t.preserve,l=t.unlink,c=f(t.cwd),d=E=>{E&&h&&us(E,n,o),r&&k.chmodSync(s,i)};if(s===c)return Jn(c),d();if(a)return d(k.mkdirSync(s,{mode:i,recursive:!0})??void 0);let T=f(pi.relative(c,s)).split(\"/\"),N;for(let E=T.shift(),x=c;E&&(x+=\"/\"+E);E=T.shift()){x=f(pi.resolve(x));try{k.mkdirSync(x,i),N=N||x}catch{let xe=k.lstatSync(x);if(xe.isDirectory())continue;if(l){k.unlinkSync(x),k.mkdirSync(x,i),N=N||x;continue}else if(xe.isSymbolicLink())return new wt(x,x+\"/\"+T.join(\"/\"))}}return d(N)};import{join as br}from\"node:path\";var ps=Object.create(null),yr=1e4,$t=new Set,Rr=s=>{$t.has(s)?$t.delete(s):ps[s]=s.normalize(\"NFD\").toLocaleLowerCase(\"en\").toLocaleUpperCase(\"en\"),$t.add(s);let t=ps[s],e=$t.size-yr;if(e>yr/10){for(let i of $t)if($t.delete(i),delete ps[i],--e<=0)break}return t};var to=process.env.TESTING_TAR_FAKE_PLATFORM||process.platform,eo=to===\"win32\",io=s=>s.split(\"/\").slice(0,-1).reduce((e,i)=>{let r=e.at(-1);return r!==void 0&&(i=br(r,i)),e.push(i||\"/\"),e},[]),Ei=class{#t=new Map;#i=new Map;#s=new Set;reserve(t,e){t=eo?[\"win32 parallelization disabled\"]:t.map(r=>mt(br(Rr(r))));let i=new Set(t.map(r=>io(r)).reduce((r,n)=>r.concat(n)));this.#i.set(e,{dirs:i,paths:t});for(let r of t){let n=this.#t.get(r);n?n.push(e):this.#t.set(r,[e])}for(let r of i){let n=this.#t.get(r);if(!n)this.#t.set(r,[new Set([e])]);else{let o=n.at(-1);o instanceof Set?o.add(e):n.push(new Set([e]))}}return this.#r(e)}#n(t){let e=this.#i.get(t);if(!e)throw new Error(\"function does not have any path reservations\");return{paths:e.paths.map(i=>this.#t.get(i)),dirs:[...e.dirs].map(i=>this.#t.get(i))}}check(t){let{paths:e,dirs:i}=this.#n(t);return e.every(r=>r&&r[0]===t)&&i.every(r=>r&&r[0]instanceof Set&&r[0].has(t))}#r(t){return this.#s.has(t)||!this.check(t)?!1:(this.#s.add(t),t(()=>this.#e(t)),!0)}#e(t){if(!this.#s.has(t))return!1;let e=this.#i.get(t);if(!e)throw new Error(\"invalid reservation\");let{paths:i,dirs:r}=e,n=new Set;for(let o of i){let h=this.#t.get(o);if(!h||h?.[0]!==t)continue;let a=h[1];if(!a){this.#t.delete(o);continue}if(h.shift(),typeof a==\"function\")n.add(a);else for(let l of a)n.add(l)}for(let o of r){let h=this.#t.get(o),a=h?.[0];if(!(!h||!(a instanceof Set)))if(a.size===1&&h.length===1){this.#t.delete(o);continue}else if(a.size===1){h.shift();let l=h[0];typeof l==\"function\"&&n.add(l)}else a.delete(t)}return this.#s.delete(t),n.forEach(o=>this.#r(o)),!0}};var _r=()=>process.umask();var gr=Symbol(\"onEntry\"),ys=Symbol(\"checkFs\"),Or=Symbol(\"checkFs2\"),Rs=Symbol(\"isReusable\"),P=Symbol(\"makeFs\"),bs=Symbol(\"file\"),_s=Symbol(\"directory\"),Si=Symbol(\"link\"),Tr=Symbol(\"symlink\"),xr=Symbol(\"hardlink\"),ye=Symbol(\"ensureNoSymlink\"),Lr=Symbol(\"unsupported\"),Nr=Symbol(\"checkPath\"),Es=Symbol(\"stripAbsolutePath\"),St=Symbol(\"mkdir\"),O=Symbol(\"onError\"),wi=Symbol(\"pending\"),Ar=Symbol(\"pend\"),Xt=Symbol(\"unpend\"),ws=Symbol(\"ended\"),Ss=Symbol(\"maybeClose\"),gs=Symbol(\"skip\"),Re=Symbol(\"doChown\"),be=Symbol(\"uid\"),_e=Symbol(\"gid\"),ge=Symbol(\"checkedCwd\"),ro=process.env.TESTING_TAR_FAKE_PLATFORM||process.platform,Oe=ro===\"win32\",no=1024,oo=(s,t)=>{if(!Oe)return u.unlink(s,t);let e=s+\".DELETE.\"+Ir(16).toString(\"hex\");u.rename(s,e,i=>{if(i)return t(i);u.unlink(e,t)})},ho=s=>{if(!Oe)return u.unlinkSync(s);let t=s+\".DELETE.\"+Ir(16).toString(\"hex\");u.renameSync(s,t),u.unlinkSync(t)},Dr=(s,t,e)=>s!==void 0&&s===s>>>0?s:t!==void 0&&t===t>>>0?t:e,qt=class extends st{[ws]=!1;[ge]=!1;[wi]=0;reservations=new Ei;transform;writable=!0;readable=!1;uid;gid;setOwner;preserveOwner;processGid;processUid;maxDepth;forceChown;win32;newer;keep;noMtime;preservePaths;unlink;cwd;strip;processUmask;umask;dmode;fmode;chmod;constructor(t={}){if(t.ondone=()=>{this[ws]=!0,this[Ss]()},super(t),this.transform=t.transform,this.chmod=!!t.chmod,typeof t.uid==\"number\"||typeof t.gid==\"number\"){if(typeof t.uid!=\"number\"||typeof t.gid!=\"number\")throw new TypeError(\"cannot set owner without number uid and gid\");if(t.preserveOwner)throw new TypeError(\"cannot preserve owner in archive and also set owner explicitly\");this.uid=t.uid,this.gid=t.gid,this.setOwner=!0}else this.uid=void 0,this.gid=void 0,this.setOwner=!1;this.preserveOwner=t.preserveOwner===void 0&&typeof t.uid!=\"number\"?!!(process.getuid&&process.getuid()===0):!!t.preserveOwner,this.processUid=(this.preserveOwner||this.setOwner)&&process.getuid?process.getuid():void 0,this.processGid=(this.preserveOwner||this.setOwner)&&process.getgid?process.getgid():void 0,this.maxDepth=typeof t.maxDepth==\"number\"?t.maxDepth:no,this.forceChown=t.forceChown===!0,this.win32=!!t.win32||Oe,this.newer=!!t.newer,this.keep=!!t.keep,this.noMtime=!!t.noMtime,this.preservePaths=!!t.preservePaths,this.unlink=!!t.unlink,this.cwd=f(R.resolve(t.cwd||process.cwd())),this.strip=Number(t.strip)||0,this.processUmask=this.chmod?typeof t.processUmask==\"number\"?t.processUmask:_r():0,this.umask=typeof t.umask==\"number\"?t.umask:this.processUmask,this.dmode=t.dmode||511&~this.umask,this.fmode=t.fmode||438&~this.umask,this.on(\"entry\",e=>this[gr](e))}warn(t,e,i={}){return(t===\"TAR_BAD_ARCHIVE\"||t===\"TAR_ABORT\")&&(i.recoverable=!1),super.warn(t,e,i)}[Ss](){this[ws]&&this[wi]===0&&(this.emit(\"prefinish\"),this.emit(\"finish\"),this.emit(\"end\"))}[Es](t,e){let i=t[e],{type:r}=t;if(!i||this.preservePaths)return!0;let[n,o]=ce(i),h=o.replaceAll(/\\\\/g,\"/\").split(\"/\");if(h.includes(\"..\")||Oe&&/^[a-z]:\\.\\.$/i.test(h[0]??\"\")){if(e===\"path\"||r===\"Link\")return this.warn(\"TAR_ENTRY_ERROR\",`${e} contains '..'`,{entry:t,[e]:i}),!1;let a=R.posix.dirname(t.path),l=R.posix.normalize(R.posix.join(a,h.join(\"/\")));if(l.startsWith(\"../\")||l===\"..\")return this.warn(\"TAR_ENTRY_ERROR\",`${e} escapes extraction directory`,{entry:t,[e]:i}),!1}return n&&(t[e]=String(o),this.warn(\"TAR_ENTRY_INFO\",`stripping ${n} from absolute ${e}`,{entry:t,[e]:i})),!0}[Nr](t){let e=f(t.path),i=e.split(\"/\");if(this.strip){if(i.length<this.strip)return!1;if(t.type===\"Link\"){let r=f(String(t.linkpath)).split(\"/\");if(r.length>=this.strip)t.linkpath=r.slice(this.strip).join(\"/\");else return!1}i.splice(0,this.strip),t.path=i.join(\"/\")}if(isFinite(this.maxDepth)&&i.length>this.maxDepth)return this.warn(\"TAR_ENTRY_ERROR\",\"path excessively deep\",{entry:t,path:e,depth:i.length,maxDepth:this.maxDepth}),!1;if(!this[Es](t,\"path\")||!this[Es](t,\"linkpath\"))return!1;if(t.absolute=R.isAbsolute(t.path)?f(R.resolve(t.path)):f(R.resolve(this.cwd,t.path)),!this.preservePaths&&typeof t.absolute==\"string\"&&t.absolute.indexOf(this.cwd+\"/\")!==0&&t.absolute!==this.cwd)return this.warn(\"TAR_ENTRY_ERROR\",\"path escaped extraction target\",{entry:t,path:f(t.path),resolvedPath:t.absolute,cwd:this.cwd}),!1;if(t.absolute===this.cwd&&t.type!==\"Directory\"&&t.type!==\"GNUDumpDir\")return!1;if(this.win32){let{root:r}=R.win32.parse(String(t.absolute));t.absolute=r+Xi(String(t.absolute).slice(r.length));let{root:n}=R.win32.parse(t.path);t.path=n+Xi(t.path.slice(n.length))}return!0}[gr](t){if(!this[Nr](t))return t.resume();switch(so.equal(typeof t.absolute,\"string\"),t.type){case\"Directory\":case\"GNUDumpDir\":t.mode&&(t.mode=t.mode|448);case\"File\":case\"OldFile\":case\"ContiguousFile\":case\"Link\":case\"SymbolicLink\":return this[ys](t);default:return this[Lr](t)}}[O](t,e){t.name===\"CwdError\"?this.emit(\"error\",t):(this.warn(\"TAR_ENTRY_ERROR\",t,{entry:e}),this[Xt](),e.resume())}[St](t,e,i){Er(f(t),{uid:this.uid,gid:this.gid,processUid:this.processUid,processGid:this.processGid,umask:this.processUmask,preserve:this.preservePaths,unlink:this.unlink,cwd:this.cwd,mode:e},i)}[Re](t){return this.forceChown||this.preserveOwner&&(typeof t.uid==\"number\"&&t.uid!==this.processUid||typeof t.gid==\"number\"&&t.gid!==this.processGid)||typeof this.uid==\"number\"&&this.uid!==this.processUid||typeof this.gid==\"number\"&&this.gid!==this.processGid}[be](t){return Dr(this.uid,t.uid,this.processUid)}[_e](t){return Dr(this.gid,t.gid,this.processGid)}[bs](t,e){let i=typeof t.mode==\"number\"?t.mode&4095:this.fmode,r=new tt(String(t.absolute),{flags:cs(t.size),mode:i,autoClose:!1});r.on(\"error\",a=>{r.fd&&u.close(r.fd,()=>{}),r.write=()=>!0,this[O](a,t),e()});let n=1,o=a=>{if(a){r.fd&&u.close(r.fd,()=>{}),this[O](a,t),e();return}--n===0&&r.fd!==void 0&&u.close(r.fd,l=>{l?this[O](l,t):this[Xt](),e()})};r.on(\"finish\",()=>{let a=String(t.absolute),l=r.fd;if(typeof l==\"number\"&&t.mtime&&!this.noMtime){n++;let c=t.atime||new Date,d=t.mtime;u.futimes(l,c,d,S=>S?u.utimes(a,c,d,T=>o(T&&S)):o())}if(typeof l==\"number\"&&this[Re](t)){n++;let c=this[be](t),d=this[_e](t);typeof c==\"number\"&&typeof d==\"number\"&&u.fchown(l,c,d,S=>S?u.chown(a,c,d,T=>o(T&&S)):o())}o()});let h=this.transform&&this.transform(t)||t;h!==t&&(h.on(\"error\",a=>{this[O](a,t),e()}),t.pipe(h)),h.pipe(r)}[_s](t,e){let i=typeof t.mode==\"number\"?t.mode&4095:this.dmode;this[St](String(t.absolute),i,r=>{if(r){this[O](r,t),e();return}let n=1,o=()=>{--n===0&&(e(),this[Xt](),t.resume())};t.mtime&&!this.noMtime&&(n++,u.utimes(String(t.absolute),t.atime||new Date,t.mtime,o)),this[Re](t)&&(n++,u.chown(String(t.absolute),Number(this[be](t)),Number(this[_e](t)),o)),o()})}[Lr](t){t.unsupported=!0,this.warn(\"TAR_ENTRY_UNSUPPORTED\",`unsupported entry type: ${t.type}`,{entry:t}),t.resume()}[Tr](t,e){let i=f(R.relative(this.cwd,R.resolve(R.dirname(String(t.absolute)),String(t.linkpath)))).split(\"/\");this[ye](t,this.cwd,i,()=>this[Si](t,String(t.linkpath),\"symlink\",e),r=>{this[O](r,t),e()})}[xr](t,e){let i=f(R.resolve(this.cwd,String(t.linkpath))),r=f(String(t.linkpath)).split(\"/\");this[ye](t,this.cwd,r,()=>this[Si](t,i,\"link\",e),n=>{this[O](n,t),e()})}[ye](t,e,i,r,n){let o=i.shift();if(this.preservePaths||o===void 0)return r();let h=R.resolve(e,o);u.lstat(h,(a,l)=>{if(a)return r();if(l?.isSymbolicLink())return n(new wt(h,R.resolve(h,i.join(\"/\"))));this[ye](t,h,i,r,n)})}[Ar](){this[wi]++}[Xt](){this[wi]--,this[Ss]()}[gs](t){this[Xt](),t.resume()}[Rs](t,e){return t.type===\"File\"&&!this.unlink&&e.isFile()&&e.nlink<=1&&!Oe}[ys](t){this[Ar]();let e=[t.path];t.linkpath&&e.push(t.linkpath),this.reservations.reserve(e,i=>this[Or](t,i))}[Or](t,e){let i=h=>{e(h)},r=()=>{this[St](this.cwd,this.dmode,h=>{if(h){this[O](h,t),i();return}this[ge]=!0,n()})},n=()=>{if(t.absolute!==this.cwd){let h=f(R.dirname(String(t.absolute)));if(h!==this.cwd)return this[St](h,this.dmode,a=>{if(a){this[O](a,t),i();return}o()})}o()},o=()=>{u.lstat(String(t.absolute),(h,a)=>{if(a&&(this.keep||this.newer&&a.mtime>(t.mtime??a.mtime))){this[gs](t),i();return}if(h||this[Rs](t,a))return this[P](null,t,i);if(a.isDirectory()){if(t.type===\"Directory\"){let l=this.chmod&&t.mode&&(a.mode&4095)!==t.mode,c=d=>this[P](d??null,t,i);return l?u.chmod(String(t.absolute),Number(t.mode),c):c()}if(t.absolute!==this.cwd)return u.rmdir(String(t.absolute),l=>this[P](l??null,t,i))}if(t.absolute===this.cwd)return this[P](null,t,i);oo(String(t.absolute),l=>this[P](l??null,t,i))})};this[ge]?n():r()}[P](t,e,i){if(t){this[O](t,e),i();return}switch(e.type){case\"File\":case\"OldFile\":case\"ContiguousFile\":return this[bs](e,i);case\"Link\":return this[xr](e,i);case\"SymbolicLink\":return this[Tr](e,i);case\"Directory\":case\"GNUDumpDir\":return this[_s](e,i)}}[Si](t,e,i,r){u[i](e,String(t.absolute),n=>{n?this[O](n,t):(this[Xt](),t.resume()),r()})}},Se=s=>{try{return[null,s()]}catch(t){return[t,null]}},Te=class extends qt{sync=!0;[P](t,e){return super[P](t,e,()=>{})}[ys](t){if(!this[ge]){let n=this[St](this.cwd,this.dmode);if(n)return this[O](n,t);this[ge]=!0}if(t.absolute!==this.cwd){let n=f(R.dirname(String(t.absolute)));if(n!==this.cwd){let o=this[St](n,this.dmode);if(o)return this[O](o,t)}}let[e,i]=Se(()=>u.lstatSync(String(t.absolute)));if(i&&(this.keep||this.newer&&i.mtime>(t.mtime??i.mtime)))return this[gs](t);if(e||this[Rs](t,i))return this[P](null,t);if(i.isDirectory()){if(t.type===\"Directory\"){let o=this.chmod&&t.mode&&(i.mode&4095)!==t.mode,[h]=o?Se(()=>{u.chmodSync(String(t.absolute),Number(t.mode))}):[];return this[P](h,t)}let[n]=Se(()=>u.rmdirSync(String(t.absolute)));this[P](n,t)}let[r]=t.absolute===this.cwd?[]:Se(()=>ho(String(t.absolute)));this[P](r,t)}[bs](t,e){let i=typeof t.mode==\"number\"?t.mode&4095:this.fmode,r=h=>{let a;try{u.closeSync(n)}catch(l){a=l}(h||a)&&this[O](h||a,t),e()},n;try{n=u.openSync(String(t.absolute),cs(t.size),i)}catch(h){return r(h)}let o=this.transform&&this.transform(t)||t;o!==t&&(o.on(\"error\",h=>this[O](h,t)),t.pipe(o)),o.on(\"data\",h=>{try{u.writeSync(n,h,0,h.length)}catch(a){r(a)}}),o.on(\"end\",()=>{let h=null;if(t.mtime&&!this.noMtime){let a=t.atime||new Date,l=t.mtime;try{u.futimesSync(n,a,l)}catch(c){try{u.utimesSync(String(t.absolute),a,l)}catch{h=c}}}if(this[Re](t)){let a=this[be](t),l=this[_e](t);try{u.fchownSync(n,Number(a),Number(l))}catch(c){try{u.chownSync(String(t.absolute),Number(a),Number(l))}catch{h=h||c}}}r(h)})}[_s](t,e){let i=typeof t.mode==\"number\"?t.mode&4095:this.dmode,r=this[St](String(t.absolute),i);if(r){this[O](r,t),e();return}if(t.mtime&&!this.noMtime)try{u.utimesSync(String(t.absolute),t.atime||new Date,t.mtime)}catch{}if(this[Re](t))try{u.chownSync(String(t.absolute),Number(this[be](t)),Number(this[_e](t)))}catch{}e(),t.resume()}[St](t,e){try{return Sr(f(t),{uid:this.uid,gid:this.gid,processUid:this.processUid,processGid:this.processGid,umask:this.processUmask,preserve:this.preservePaths,unlink:this.unlink,cwd:this.cwd,mode:e})}catch(i){return i}}[ye](t,e,i,r,n){if(this.preservePaths||i.length===0)return r();let o=e;for(let h of i){o=R.resolve(o,h);let[a,l]=Se(()=>u.lstatSync(o));if(a)return r();if(l.isSymbolicLink())return n(new wt(o,R.resolve(e,i.join(\"/\"))))}r()}[Si](t,e,i,r){let n=`${i}Sync`;try{u[n](e,String(t.absolute)),r(),t.resume()}catch(o){return this[O](o,t)}}};var ao=s=>{let t=new Te(s),e=s.file,i=Cr.statSync(e),r=s.maxReadSize||16*1024*1024;new Me(e,{readSize:r,size:i.size}).pipe(t)},lo=(s,t)=>{let e=new qt(s),i=s.maxReadSize||16*1024*1024,r=s.file;return new Promise((o,h)=>{e.on(\"error\",h),e.on(\"close\",o),Cr.stat(r,(a,l)=>{if(a)h(a);else{let c=new _t(r,{readSize:i,size:l.size});c.on(\"error\",h),c.pipe(e)}})})},co=K(ao,lo,s=>new Te(s),s=>new qt(s),(s,t)=>{t?.length&&Ki(s,t)});import v from\"node:fs\";import Fr from\"node:path\";var fo=(s,t)=>{let e=new kt(s),i=!0,r,n;try{try{r=v.openSync(s.file,\"r+\")}catch(a){if(a?.code===\"ENOENT\")r=v.openSync(s.file,\"w+\");else throw a}let o=v.fstatSync(r),h=Buffer.alloc(512);t:for(n=0;n<o.size;n+=512){for(let c=0,d=0;c<512;c+=d){if(d=v.readSync(r,h,c,h.length-c,n+c),n===0&&h[0]===31&&h[1]===139)throw new Error(\"cannot append to compressed archives\");if(!d)break t}let a=new F(h);if(!a.cksumValid)break;let l=512*Math.ceil((a.size||0)/512);if(n+l+512>o.size)break;n+=l,s.mtimeCache&&a.mtime&&s.mtimeCache.set(String(a.path),a.mtime)}i=!1,uo(s,e,n,r,t)}finally{if(i)try{v.closeSync(r)}catch{}}},uo=(s,t,e,i,r)=>{let n=new Wt(s.file,{fd:i,start:e});t.pipe(n),po(t,r)},mo=(s,t)=>{t=Array.from(t);let e=new Et(s),i=(n,o,h)=>{let a=(T,N)=>{T?v.close(n,E=>h(T)):h(null,N)},l=0;if(o===0)return a(null,0);let c=0,d=Buffer.alloc(512),S=(T,N)=>{if(T||N===void 0)return a(T);if(c+=N,c<512&&N)return v.read(n,d,c,d.length-c,l+c,S);if(l===0&&d[0]===31&&d[1]===139)return a(new Error(\"cannot append to compressed archives\"));if(c<512)return a(null,l);let E=new F(d);if(!E.cksumValid)return a(null,l);let x=512*Math.ceil((E.size??0)/512);if(l+x+512>o||(l+=x+512,l>=o))return a(null,l);s.mtimeCache&&E.mtime&&s.mtimeCache.set(String(E.path),E.mtime),c=0,v.read(n,d,0,512,l,S)};v.read(n,d,0,512,l,S)};return new Promise((n,o)=>{e.on(\"error\",o);let h=\"r+\",a=(l,c)=>{if(l&&l.code===\"ENOENT\"&&h===\"r+\")return h=\"w+\",v.open(s.file,h,a);if(l||!c)return o(l);v.fstat(c,(d,S)=>{if(d)return v.close(c,()=>o(d));i(c,S.size,(T,N)=>{if(T)return o(T);let E=new tt(s.file,{fd:c,start:N});e.pipe(E),E.on(\"error\",o),E.on(\"close\",n),Eo(e,t)})})};v.open(s.file,h,a)})},po=(s,t)=>{t.forEach(e=>{e.charAt(0)===\"@\"?It({file:Fr.resolve(s.cwd,e.slice(1)),sync:!0,noResume:!0,onReadEntry:i=>s.add(i)}):s.add(e)}),s.end()},Eo=async(s,t)=>{for(let e of t)e.charAt(0)===\"@\"?await It({file:Fr.resolve(String(s.cwd),e.slice(1)),noResume:!0,onReadEntry:i=>s.add(i)}):s.add(e);s.end()},vt=K(fo,mo,()=>{throw new TypeError(\"file is required\")},()=>{throw new TypeError(\"file is required\")},(s,t)=>{if(!Fs(s))throw new TypeError(\"file is required\");if(s.gzip||s.brotli||s.zstd||s.file.endsWith(\".br\")||s.file.endsWith(\".tbr\"))throw new TypeError(\"cannot append to compressed archives\");if(!t?.length)throw new TypeError(\"no paths specified to add/replace\")});var wo=K(vt.syncFile,vt.asyncFile,vt.syncNoFile,vt.asyncNoFile,(s,t=[])=>{vt.validate?.(s,t),So(s)}),So=s=>{let t=s.filter;s.mtimeCache||(s.mtimeCache=new Map),s.filter=t?(e,i)=>t(e,i)&&!((s.mtimeCache?.get(e)??i.mtime??0)>(i.mtime??0)):(e,i)=>!((s.mtimeCache?.get(e)??i.mtime??0)>(i.mtime??0))};export{F as Header,Et as Pack,di as PackJob,kt as PackSync,st as Parser,ct as Pax,Yt as ReadEntry,qt as Unpack,Te as UnpackSync,de as WriteEntry,si as WriteEntrySync,ri as WriteEntryTar,Zn as c,Zn as create,co as extract,Ki as filesFilter,It as list,vt as r,vt as replace,It as t,Bi as types,wo as u,wo as update,co as x};\n//# sourceMappingURL=index.min.js.map\n",
|
|
87
|
-
"import {\n OFFICIAL_WORKSPACE_TEMPLATE_PACKAGE,\n isBuiltInTemplateId,\n} from './template-registry.js'\nimport { resolveBuiltInTemplateSource } from './template-builtins.js'\nimport type {\n ResolvedTemplateSource,\n SeedSource,\n} from './template-source-contracts.js'\nimport {\n parseTemplateLocator,\n} from './template-source-locators.js'\nimport {\n detectTemplateSourceFormat,\n getTemplateProjectType,\n getDefaultCategory,\n getTemplateVariableContext,\n normalizeCreateBlockSubset,\n normalizeWpTypiaTemplateSeed,\n renderCreateBlockExternalTemplate,\n} from './template-source-normalization.js'\nimport {\n isOfficialWorkspaceTemplateSeed,\n resolveTemplateSeed,\n} from './template-source-seeds.js'\nimport {\n assertBuiltInTemplateVariantAllowed,\n} from './cli-validation.js'\n\nexport type {\n GitHubTemplateLocator,\n NpmTemplateLocator,\n RemoteTemplateLocator,\n ResolvedTemplateSource,\n TemplateSourceFormat,\n TemplateVariableContext,\n} from './template-source-contracts.js'\nexport {\n parseGitHubTemplateLocator,\n parseNpmTemplateLocator,\n parseTemplateLocator,\n} from './template-source-locators.js'\nexport { resolveTemplateSeed } from './template-source-seeds.js'\n\nexport async function resolveTemplateSource(\n templateId: string,\n cwd: string,\n variables:
|
|
88
|
-
"import { getPackageVersions } from \"./package-versions.js\";\nimport type { PackageManagerId } from \"./package-managers.js\";\nimport {\n\tBUILTIN_BLOCK_METADATA_VERSION,\n\tCOMPOUND_CHILD_BLOCK_METADATA_DEFAULTS,\n\tgetBuiltInTemplateMetadataDefaults,\n} from \"./template-defaults.js\";\nimport {\n\tformatAlternateRenderTargets,\n\tparseAlternateRenderTargets,\n\ttype AlternateRenderTargetId,\n} from \"./alternate-render-targets.js\";\nimport {\n\tDEFAULT_COMPOUND_INNER_BLOCKS_PRESET_ID,\n\tgetCompoundInnerBlocksPresetDefinition,\n\ttype CompoundInnerBlocksPresetId,\n} from \"./compound-inner-blocks.js\";\nimport {\n\tgetTemplateById,\n\ttype BuiltInTemplateId,\n} from \"./template-registry.js\";\nimport {\n\ttoPascalCase,\n\ttoSnakeCase,\n} from \"./string-case.js\";\nimport type { InstallDependenciesOptions } from \"./scaffold-apply-utils.js\";\nimport {\n\tbuildBlockCssClassName,\n\tbuildFrontendCssClassName,\n\tresolveScaffoldIdentifiers,\n} from \"./scaffold-identifiers.js\";\nimport type {\n\tDataStorageMode,\n\tPersistencePolicy,\n\tScaffoldAnswers,\n\tScaffoldProgressEvent,\n\tScaffoldTemplateVariables,\n} from \"./scaffold.js\";\n\nexport interface BlockSpec {\n\talternateRenderTargets: readonly AlternateRenderTargetId[];\n\tblock: {\n\t\tnamespace: string;\n\t\tphpPrefix: string;\n\t\tslug: string;\n\t\ttextDomain: string;\n\t};\n\tcompound: {\n\t\tinnerBlocksPreset: CompoundInnerBlocksPresetId;\n\t};\n\tmetadata: {\n\t\tcategory: string;\n\t\tdescription: string;\n\t\ticon: string;\n\t\tkeyword: string;\n\t\ttitle: string;\n\t};\n\tpersistence:\n\t\t| {\n\t\t\t\tenabled: false;\n\t\t }\n\t\t| {\n\t\t\t\tdataStorageMode: DataStorageMode;\n\t\t\t\tenabled: true;\n\t\t\t\tpersistencePolicy: PersistencePolicy;\n\t\t\t\tscope: \"compound-parent\" | \"single\";\n\t\t };\n\tproject: {\n\t\tauthor: string;\n\t};\n\tqueryLoop: {\n\t\tallowedControls: readonly string[];\n\t\tenabled: boolean;\n\t\tpostType: string;\n\t};\n\truntime: {\n\t\twithMigrationUi: boolean;\n\t\twithTestPreset: boolean;\n\t\twithWpEnv: boolean;\n\t};\n\ttemplate: {\n\t\tdescription: string;\n\t\tfamily: BuiltInTemplateId;\n\t\tfeatures: string[];\n\t};\n}\n\nexport interface BlockGenerationTarget {\n\tallowExistingDir: boolean;\n\tcwd: string;\n\texternalLayerId?: string;\n\texternalLayerSource?: string;\n\texternalLayerSourceLabel?: string;\n\tnoInstall: boolean;\n\tpackageManager: PackageManagerId;\n\tprojectDir: string;\n\trepositoryReference?: string;\n\tvariant?: string;\n}\n\nexport interface PlanBlockInput {\n\tallowExistingDir?: boolean;\n\talternateRenderTargets?: string;\n\tanswers: ScaffoldAnswers;\n\tcwd?: string;\n\tdataStorageMode?: DataStorageMode;\n\texternalLayerId?: string;\n\texternalLayerSource?: string;\n\texternalLayerSourceLabel?: string;\n\tnoInstall?: boolean;\n\tpackageManager: PackageManagerId;\n\tpersistencePolicy?: PersistencePolicy;\n\tprojectDir: string;\n\trepositoryReference?: string;\n\ttemplateId: BuiltInTemplateId;\n\tvariant?: string;\n\twithMigrationUi?: boolean;\n\tqueryPostType?: string;\n\twithTestPreset?: boolean;\n\twithWpEnv?: boolean;\n}\n\nexport interface PlanBlockResult {\n\tspec: BlockSpec;\n\ttarget: BlockGenerationTarget;\n}\n\nexport interface ValidateBlockInput {\n\tplan: PlanBlockResult;\n}\n\nexport interface ValidateBlockResult extends PlanBlockResult {}\n\nexport interface RenderBlockInput {\n\tvalidated: ValidateBlockResult;\n}\n\nexport interface RenderBlockResult extends ValidateBlockResult {\n\tcleanup?: () => Promise<void>;\n\tgitignoreContent: string;\n\tpostRender: {\n\t\tapplyLocalDevPresets: boolean;\n\t\tapplyMigrationUiCapability: boolean;\n\t\tseedPersistenceArtifacts: boolean;\n\t\tseedStarterManifestFiles: boolean;\n\t};\n\treadmeContent: string;\n\tselectedVariant: null;\n\ttemplateDir: string;\n\tvariables: ScaffoldTemplateVariables;\n\twarnings: string[];\n}\n\nexport interface ApplyBlockInput {\n\trendered: RenderBlockResult;\n\tinstallDependencies?: ((options: InstallDependenciesOptions) => Promise<void>) | undefined;\n\tonProgress?: ((event: ScaffoldProgressEvent) => void | Promise<void>) | undefined;\n}\n\nfunction getBuiltInPersistenceSpec({\n\ttemplateId,\n\tdataStorageMode,\n\tpersistencePolicy,\n}: {\n\tdataStorageMode?: DataStorageMode;\n\tpersistencePolicy?: PersistencePolicy;\n\ttemplateId: BuiltInTemplateId;\n}): BlockSpec[\"persistence\"] {\n\tif (templateId === \"persistence\") {\n\t\treturn {\n\t\t\tdataStorageMode: dataStorageMode ?? \"custom-table\",\n\t\t\tenabled: true,\n\t\t\tpersistencePolicy: persistencePolicy ?? \"authenticated\",\n\t\t\tscope: \"single\",\n\t\t};\n\t}\n\n\tif (templateId === \"compound\" && (dataStorageMode || persistencePolicy)) {\n\t\treturn {\n\t\t\tdataStorageMode: dataStorageMode ?? \"custom-table\",\n\t\t\tenabled: true,\n\t\t\tpersistencePolicy: persistencePolicy ?? \"authenticated\",\n\t\t\tscope: \"compound-parent\",\n\t\t};\n\t}\n\n\treturn {\n\t\tenabled: false,\n\t};\n}\n\nconst DEFAULT_QUERY_LOOP_ALLOWED_CONTROLS = [\n\t\"inherit\",\n\t\"postType\",\n\t\"order\",\n\t\"sticky\",\n\t\"taxQuery\",\n\t\"author\",\n\t\"search\",\n] as const;\n\nexport function createBuiltInBlockSpec({\n\talternateRenderTargets,\n\tanswers,\n\tdataStorageMode,\n\tpersistencePolicy,\n\ttemplateId,\n\twithMigrationUi = false,\n\twithTestPreset = false,\n\twithWpEnv = false,\n}: Omit<PlanBlockInput, \"allowExistingDir\" | \"cwd\" | \"noInstall\" | \"packageManager\" | \"projectDir\" | \"variant\">): BlockSpec {\n\tconst template = getTemplateById(templateId);\n\tconst metadataDefaults = getBuiltInTemplateMetadataDefaults(templateId);\n\tconst identifiers = resolveScaffoldIdentifiers({\n\t\tnamespace: answers.namespace,\n\t\tphpPrefix: answers.phpPrefix,\n\t\tslug: answers.slug,\n\t\ttextDomain: answers.textDomain,\n\t});\n\tconst resolvedDataStorageMode = dataStorageMode ?? answers.dataStorageMode;\n\tconst resolvedPersistencePolicy = persistencePolicy ?? answers.persistencePolicy;\n\tconst parsedAlternateRenderTargets =\n\t\tparseAlternateRenderTargets(alternateRenderTargets);\n\tconst innerBlocksPreset =\n\t\ttemplateId === \"compound\"\n\t\t\t? (answers.compoundInnerBlocksPreset ??\n\t\t\t\tDEFAULT_COMPOUND_INNER_BLOCKS_PRESET_ID)\n\t\t\t: DEFAULT_COMPOUND_INNER_BLOCKS_PRESET_ID;\n\n\treturn {\n\t\talternateRenderTargets: parsedAlternateRenderTargets,\n\t\tblock: identifiers,\n\t\tcompound: {\n\t\t\tinnerBlocksPreset,\n\t\t},\n\t\tmetadata: {\n\t\t\tcategory: metadataDefaults.category,\n\t\t\tdescription: answers.description.trim(),\n\t\t\ticon: metadataDefaults.icon,\n\t\t\tkeyword: identifiers.slug.replace(/-/g, \" \"),\n\t\t\ttitle: answers.title.trim(),\n\t\t},\n\t\tpersistence: getBuiltInPersistenceSpec({\n\t\t\tdataStorageMode: resolvedDataStorageMode,\n\t\t\tpersistencePolicy: resolvedPersistencePolicy,\n\t\t\ttemplateId,\n\t\t}),\n\t\tproject: {\n\t\t\tauthor: answers.author.trim(),\n\t\t},\n\t\tqueryLoop:\n\t\t\ttemplateId === \"query-loop\"\n\t\t\t\t? {\n\t\t\t\t\t\tallowedControls: DEFAULT_QUERY_LOOP_ALLOWED_CONTROLS,\n\t\t\t\t\t\tenabled: true,\n\t\t\t\t\t\tpostType: (answers.queryPostType ?? \"post\").trim() || \"post\",\n\t\t\t\t }\n\t\t\t\t: {\n\t\t\t\t\t\tallowedControls: [],\n\t\t\t\t\t\tenabled: false,\n\t\t\t\t\t\tpostType: \"post\",\n\t\t\t\t },\n\t\truntime: {\n\t\t\twithMigrationUi,\n\t\t\twithTestPreset,\n\t\t\twithWpEnv,\n\t\t},\n\t\ttemplate: {\n\t\t\tdescription: template.description,\n\t\t\tfamily: templateId,\n\t\t\tfeatures: [...template.features],\n\t\t},\n\t};\n}\n\nexport function buildTemplateVariablesFromBlockSpec(spec: BlockSpec): ScaffoldTemplateVariables {\n\tconst {\n\t\tapiClientPackageVersion,\n\t\tblockRuntimePackageVersion,\n\t\tblockTypesPackageVersion,\n\t\tprojectToolsPackageVersion,\n\t\trestPackageVersion,\n\t} = getPackageVersions();\n\tconst slug = spec.block.slug;\n\tconst slugSnakeCase = toSnakeCase(slug);\n\tconst pascalCase = toPascalCase(slug);\n\tconst title = spec.metadata.title;\n\tconst namespace = spec.block.namespace;\n\tconst textDomain = spec.block.textDomain;\n\tconst phpPrefix = spec.block.phpPrefix;\n\tconst phpPrefixUpper = phpPrefix.toUpperCase();\n\tconst alternateRenderTargets = [...spec.alternateRenderTargets];\n\tconst hasAlternateEmailRenderTarget = alternateRenderTargets.includes(\"email\");\n\tconst hasAlternateMjmlRenderTarget = alternateRenderTargets.includes(\"mjml\");\n\tconst hasAlternatePlainTextRenderTarget =\n\t\talternateRenderTargets.includes(\"plain-text\");\n\tconst compoundChildTitle = `${title} Item`;\n\tconst cssClassName = buildBlockCssClassName(namespace, slug);\n\tconst compoundChildCssClassName = buildBlockCssClassName(namespace, `${slug}-item`);\n\tconst compoundInnerBlocksPreset = spec.compound.innerBlocksPreset;\n\tconst compoundInnerBlocksPresetDefinition =\n\t\tgetCompoundInnerBlocksPresetDefinition(compoundInnerBlocksPreset);\n\tconst persistenceEnabled = spec.persistence.enabled;\n\tconst dataStorageMode = persistenceEnabled ? spec.persistence.dataStorageMode : \"custom-table\";\n\tconst persistencePolicy = persistenceEnabled\n\t\t? spec.persistence.persistencePolicy\n\t\t: \"authenticated\";\n\tconst queryVariationNamespace = `${namespace}/${slug}`;\n\n\treturn {\n\t\talternateRenderTargetsCsv: formatAlternateRenderTargets(\n\t\t\talternateRenderTargets,\n\t\t),\n\t\talternateRenderTargetsJson: JSON.stringify(alternateRenderTargets),\n\t\tapiClientPackageVersion,\n\t\tauthor: spec.project.author,\n\t\tblockRuntimePackageVersion,\n\t\tblockMetadataVersion: BUILTIN_BLOCK_METADATA_VERSION,\n\t\tblockTypesPackageVersion,\n\t\tcategory: spec.metadata.category,\n\t\ticon: spec.metadata.icon,\n\t\tcompoundChildTitle,\n\t\tcompoundChildCategory: COMPOUND_CHILD_BLOCK_METADATA_DEFAULTS.category,\n\t\tcompoundChildCssClassName,\n\t\tcompoundChildIcon: COMPOUND_CHILD_BLOCK_METADATA_DEFAULTS.icon,\n\t\tcompoundChildTitleJson: JSON.stringify(compoundChildTitle),\n\t\tcompoundPersistenceEnabled:\n\t\t\tspec.template.family === \"compound\" && persistenceEnabled ? \"true\" : \"false\",\n\t\tcompoundInnerBlocksDirectInsert:\n\t\t\tcompoundInnerBlocksPresetDefinition.directInsert ? \"true\" : \"false\",\n\t\tcompoundInnerBlocksOrientation:\n\t\t\tcompoundInnerBlocksPresetDefinition.orientation ?? \"\",\n\t\tcompoundInnerBlocksOrientationExpression:\n\t\t\tcompoundInnerBlocksPresetDefinition.orientation\n\t\t\t\t? `'${compoundInnerBlocksPresetDefinition.orientation}'`\n\t\t\t\t: \"undefined\",\n\t\tcompoundInnerBlocksPreset,\n\t\tcompoundInnerBlocksPresetDescription:\n\t\t\tcompoundInnerBlocksPresetDefinition.description,\n\t\tcompoundInnerBlocksPresetLabel:\n\t\t\tcompoundInnerBlocksPresetDefinition.label,\n\t\tcompoundInnerBlocksTemplateLockExpression:\n\t\t\tcompoundInnerBlocksPresetDefinition.templateLock === false\n\t\t\t\t? \"false\"\n\t\t\t\t: `'${compoundInnerBlocksPresetDefinition.templateLock}'`,\n\t\thasAlternateEmailRenderTarget: hasAlternateEmailRenderTarget\n\t\t\t? \"true\"\n\t\t\t: \"false\",\n\t\thasAlternateMjmlRenderTarget: hasAlternateMjmlRenderTarget\n\t\t\t? \"true\"\n\t\t\t: \"false\",\n\t\thasAlternatePlainTextRenderTarget: hasAlternatePlainTextRenderTarget\n\t\t\t? \"true\"\n\t\t\t: \"false\",\n\t\thasAlternateRenderTargets: alternateRenderTargets.length > 0\n\t\t\t? \"true\"\n\t\t\t: \"false\",\n\t\tprojectToolsPackageVersion,\n\t\tcssClassName,\n\t\tdashCase: slug,\n\t\tdataStorageMode,\n\t\tdescription: spec.metadata.description,\n\t\tdescriptionJson: JSON.stringify(spec.metadata.description),\n\t\tfrontendCssClassName: buildFrontendCssClassName(cssClassName),\n\t\tqueryAllowedControlsJson: JSON.stringify(\n\t\t\tspec.queryLoop.enabled ? spec.queryLoop.allowedControls : [],\n\t\t\tnull,\n\t\t\t2,\n\t\t),\n\t\tqueryPostType: spec.queryLoop.enabled ? spec.queryLoop.postType : \"post\",\n\t\tqueryPostTypeJson: JSON.stringify(\n\t\t\tspec.queryLoop.enabled ? spec.queryLoop.postType : \"post\",\n\t\t),\n\t\tqueryVariationNamespace,\n\t\tqueryVariationNamespaceJson: JSON.stringify(queryVariationNamespace),\n\t\tisAuthenticatedPersistencePolicy:\n\t\t\tpersistencePolicy === \"authenticated\" ? \"true\" : \"false\",\n\t\tisPublicPersistencePolicy: persistencePolicy === \"public\" ? \"true\" : \"false\",\n\t\tbootstrapCredentialDeclarations:\n\t\t\tpersistencePolicy === \"public\"\n\t\t\t\t? \"publicWriteExpiresAt?: number & tags.Type< 'uint32' >;\\n\\tpublicWriteToken?: string & tags.MinLength< 1 > & tags.MaxLength< 512 >;\"\n\t\t\t\t: \"restNonce?: string & tags.MinLength< 1 > & tags.MaxLength< 128 >;\",\n\t\tpersistencePolicyDescriptionJson: JSON.stringify(\n\t\t\tpersistencePolicy === \"authenticated\"\n\t\t\t\t? \"Writes require a logged-in user and a valid REST nonce.\"\n\t\t\t\t: \"Anonymous writes use signed short-lived public tokens, per-request ids, and coarse rate limiting.\",\n\t\t),\n\t\tkeyword: spec.metadata.keyword,\n\t\tnamespace,\n\t\tneedsMigration: \"{{needsMigration}}\",\n\t\tpascalCase,\n\t\tphpPrefix,\n\t\tphpPrefixUpper,\n\t\trestPackageVersion,\n\t\tpublicWriteRequestIdDeclaration:\n\t\t\tpersistencePolicy === \"public\"\n\t\t\t\t? \"publicWriteRequestId: string & tags.MinLength< 1 > & tags.MaxLength< 128 >;\"\n\t\t\t\t: \"publicWriteRequestId?: string & tags.MinLength< 1 > & tags.MaxLength< 128 >;\",\n\t\trestWriteAuthIntent:\n\t\t\tpersistencePolicy === \"public\"\n\t\t\t\t? \"public-write-protected\"\n\t\t\t\t: \"authenticated\",\n\t\trestWriteAuthMechanism:\n\t\t\tpersistencePolicy === \"public\" ? \"public-signed-token\" : \"rest-nonce\",\n\t\trestWriteAuthMode:\n\t\t\tpersistencePolicy === \"public\" ? \"public-signed-token\" : \"authenticated-rest-nonce\",\n\t\tslug,\n\t\tslugCamelCase: pascalCase.charAt(0).toLowerCase() + pascalCase.slice(1),\n\t\tslugKebabCase: slug,\n\t\tslugSnakeCase,\n\t\ttextDomain,\n\t\ttextdomain: textDomain,\n\t\ttitle,\n\t\ttitleJson: JSON.stringify(title),\n\t\ttitleCase: pascalCase,\n\t\tpersistencePolicy,\n\t};\n}\n",
|
|
88
|
+
"import {\n OFFICIAL_WORKSPACE_TEMPLATE_PACKAGE,\n isBuiltInTemplateId,\n} from './template-registry.js'\nimport { resolveBuiltInTemplateSource } from './template-builtins.js'\nimport type {\n ResolvedTemplateSource,\n SeedSource,\n} from './template-source-contracts.js'\nimport {\n parseTemplateLocator,\n} from './template-source-locators.js'\nimport {\n detectTemplateSourceFormat,\n getTemplateProjectType,\n getDefaultCategory,\n getTemplateVariableContext,\n normalizeCreateBlockSubset,\n normalizeWpTypiaTemplateSeed,\n renderCreateBlockExternalTemplate,\n} from './template-source-normalization.js'\nimport {\n isOfficialWorkspaceTemplateSeed,\n resolveTemplateSeed,\n} from './template-source-seeds.js'\nimport {\n assertBuiltInTemplateVariantAllowed,\n} from './cli-validation.js'\nimport type { ScaffoldTemplateVariables } from './scaffold.js'\nimport { getScaffoldTemplateVariableGroups } from './scaffold-template-variable-groups.js'\n\nexport type {\n GitHubTemplateLocator,\n NpmTemplateLocator,\n RemoteTemplateLocator,\n ResolvedTemplateSource,\n TemplateSourceFormat,\n TemplateVariableContext,\n} from './template-source-contracts.js'\nexport {\n parseGitHubTemplateLocator,\n parseNpmTemplateLocator,\n parseTemplateLocator,\n} from './template-source-locators.js'\nexport { resolveTemplateSeed } from './template-source-seeds.js'\n\nexport async function resolveTemplateSource(\n templateId: string,\n cwd: string,\n variables: ScaffoldTemplateVariables,\n variant?: string,\n): Promise<ResolvedTemplateSource> {\n if (isBuiltInTemplateId(templateId)) {\n const variableGroups = getScaffoldTemplateVariableGroups(variables)\n assertBuiltInTemplateVariantAllowed({\n templateId,\n variant,\n })\n return resolveBuiltInTemplateSource(templateId, {\n persistenceEnabled:\n variableGroups.compound.enabled &&\n variableGroups.compound.persistenceEnabled,\n persistencePolicy:\n variableGroups.persistence.enabled &&\n variableGroups.persistence.policy === 'public'\n ? 'public'\n : 'authenticated',\n })\n }\n\n const locator = parseTemplateLocator(templateId)\n const context = getTemplateVariableContext(variables)\n const seed = await resolveTemplateSeed(locator, cwd)\n const isOfficialWorkspaceTemplate =\n templateId === OFFICIAL_WORKSPACE_TEMPLATE_PACKAGE ||\n isOfficialWorkspaceTemplateSeed(seed)\n let normalizedSeed: SeedSource | null = null\n\n try {\n const format = await detectTemplateSourceFormat(seed.blockDir)\n if (format === 'wp-typia') {\n if (variant) {\n throw new Error(\n `--variant is only supported for official external template configs. Received variant \"${variant}\" for \"${templateId}\".`,\n )\n }\n normalizedSeed = await normalizeWpTypiaTemplateSeed(seed)\n const supportsMigrationUi =\n getTemplateProjectType(seed.blockDir) === 'workspace'\n return {\n id: templateId,\n defaultCategory: getDefaultCategory(seed.blockDir),\n description: 'A remote wp-typia template source',\n features: ['Remote source', 'wp-typia format'],\n format,\n isOfficialWorkspaceTemplate,\n supportsMigrationUi,\n templateDir: normalizedSeed.blockDir,\n cleanup: normalizedSeed.cleanup,\n }\n }\n\n normalizedSeed =\n format === 'create-block-external'\n ? await renderCreateBlockExternalTemplate(\n seed.blockDir,\n context,\n variant,\n )\n : variant\n ? (() => {\n throw new Error(\n `--variant is only supported for official external template configs. Received variant \"${variant}\" for \"${templateId}\".`,\n )\n })()\n : seed\n\n if (format === 'create-block-external') {\n const renderedFormat =\n normalizedSeed.formatHint ??\n (await detectTemplateSourceFormat(normalizedSeed.blockDir))\n if (renderedFormat === 'wp-typia') {\n const normalized = await normalizeWpTypiaTemplateSeed(normalizedSeed)\n const supportsMigrationUi =\n getTemplateProjectType(normalizedSeed.blockDir) === 'workspace'\n return {\n cleanup: async () => {\n await normalized.cleanup?.()\n await seed.cleanup?.()\n },\n defaultCategory: getDefaultCategory(normalizedSeed.blockDir),\n description:\n 'A wp-typia scaffold normalized from an official external template config',\n features: [\n 'Remote source',\n 'official external template',\n 'wp-typia format',\n ...(supportsMigrationUi ? ['workspace-capable scaffold'] : []),\n ],\n format,\n id: 'remote:create-block-external',\n isOfficialWorkspaceTemplate,\n selectedVariant: normalizedSeed.selectedVariant ?? null,\n supportsMigrationUi,\n templateDir: normalized.blockDir,\n warnings: normalizedSeed.warnings ?? [],\n }\n }\n\n const normalized = await normalizeCreateBlockSubset(\n normalizedSeed,\n context,\n )\n return {\n ...normalized,\n cleanup: async () => {\n await normalized.cleanup?.()\n await seed.cleanup?.()\n },\n description:\n 'A wp-typia scaffold normalized from an official create-block external template',\n features: [\n 'Remote source',\n 'official external template',\n 'Typia metadata pipeline',\n ],\n format,\n id: 'remote:create-block-external',\n isOfficialWorkspaceTemplate,\n selectedVariant: normalizedSeed.selectedVariant ?? null,\n warnings: normalizedSeed.warnings ?? [],\n }\n }\n\n const normalized = await normalizeCreateBlockSubset(\n normalizedSeed,\n context,\n )\n return {\n ...normalized,\n isOfficialWorkspaceTemplate,\n }\n } catch (error) {\n if (normalizedSeed?.cleanup && normalizedSeed !== seed) {\n await normalizedSeed.cleanup()\n }\n if (seed.cleanup) {\n await seed.cleanup()\n }\n throw error\n }\n}\n",
|
|
89
|
+
"import { getPackageVersions } from \"./package-versions.js\";\nimport type { PackageManagerId } from \"./package-managers.js\";\nimport {\n\tBUILTIN_BLOCK_METADATA_VERSION,\n\tCOMPOUND_CHILD_BLOCK_METADATA_DEFAULTS,\n\tgetBuiltInTemplateMetadataDefaults,\n} from \"./template-defaults.js\";\nimport {\n\tformatAlternateRenderTargets,\n\tparseAlternateRenderTargets,\n\ttype AlternateRenderTargetId,\n} from \"./alternate-render-targets.js\";\nimport {\n\tDEFAULT_COMPOUND_INNER_BLOCKS_PRESET_ID,\n\tgetCompoundInnerBlocksPresetDefinition,\n\ttype CompoundInnerBlocksPresetId,\n} from \"./compound-inner-blocks.js\";\nimport {\n\tgetTemplateById,\n\ttype BuiltInTemplateId,\n} from \"./template-registry.js\";\nimport {\n\ttoPascalCase,\n\ttoSnakeCase,\n} from \"./string-case.js\";\nimport type { InstallDependenciesOptions } from \"./scaffold-apply-utils.js\";\nimport {\n\tbuildBlockCssClassName,\n\tbuildFrontendCssClassName,\n\tresolveScaffoldIdentifiers,\n} from \"./scaffold-identifiers.js\";\nimport { attachScaffoldTemplateVariableGroups } from \"./scaffold-template-variable-groups.js\";\nimport type {\n\tDataStorageMode,\n\tFlatScaffoldTemplateVariables,\n\tPersistencePolicy,\n\tScaffoldAnswers,\n\tScaffoldProgressEvent,\n\tScaffoldTemplateVariables,\n} from \"./scaffold.js\";\n\nexport interface BlockSpec {\n\talternateRenderTargets: readonly AlternateRenderTargetId[];\n\tblock: {\n\t\tnamespace: string;\n\t\tphpPrefix: string;\n\t\tslug: string;\n\t\ttextDomain: string;\n\t};\n\tcompound: {\n\t\tinnerBlocksPreset: CompoundInnerBlocksPresetId;\n\t};\n\tmetadata: {\n\t\tcategory: string;\n\t\tdescription: string;\n\t\ticon: string;\n\t\tkeyword: string;\n\t\ttitle: string;\n\t};\n\tpersistence:\n\t\t| {\n\t\t\t\tenabled: false;\n\t\t }\n\t\t| {\n\t\t\t\tdataStorageMode: DataStorageMode;\n\t\t\t\tenabled: true;\n\t\t\t\tpersistencePolicy: PersistencePolicy;\n\t\t\t\tscope: \"compound-parent\" | \"single\";\n\t\t };\n\tproject: {\n\t\tauthor: string;\n\t};\n\tqueryLoop: {\n\t\tallowedControls: readonly string[];\n\t\tenabled: boolean;\n\t\tpostType: string;\n\t};\n\truntime: {\n\t\twithMigrationUi: boolean;\n\t\twithTestPreset: boolean;\n\t\twithWpEnv: boolean;\n\t};\n\ttemplate: {\n\t\tdescription: string;\n\t\tfamily: BuiltInTemplateId;\n\t\tfeatures: string[];\n\t};\n}\n\nexport interface BlockGenerationTarget {\n\tallowExistingDir: boolean;\n\tcwd: string;\n\texternalLayerId?: string;\n\texternalLayerSource?: string;\n\texternalLayerSourceLabel?: string;\n\tnoInstall: boolean;\n\tpackageManager: PackageManagerId;\n\tprojectDir: string;\n\trepositoryReference?: string;\n\tvariant?: string;\n}\n\nexport interface PlanBlockInput {\n\tallowExistingDir?: boolean;\n\talternateRenderTargets?: string;\n\tanswers: ScaffoldAnswers;\n\tcwd?: string;\n\tdataStorageMode?: DataStorageMode;\n\texternalLayerId?: string;\n\texternalLayerSource?: string;\n\texternalLayerSourceLabel?: string;\n\tnoInstall?: boolean;\n\tpackageManager: PackageManagerId;\n\tpersistencePolicy?: PersistencePolicy;\n\tprojectDir: string;\n\trepositoryReference?: string;\n\ttemplateId: BuiltInTemplateId;\n\tvariant?: string;\n\twithMigrationUi?: boolean;\n\tqueryPostType?: string;\n\twithTestPreset?: boolean;\n\twithWpEnv?: boolean;\n}\n\nexport interface PlanBlockResult {\n\tspec: BlockSpec;\n\ttarget: BlockGenerationTarget;\n}\n\nexport interface ValidateBlockInput {\n\tplan: PlanBlockResult;\n}\n\nexport interface ValidateBlockResult extends PlanBlockResult {}\n\nexport interface RenderBlockInput {\n\tvalidated: ValidateBlockResult;\n}\n\nexport interface RenderBlockResult extends ValidateBlockResult {\n\tcleanup?: () => Promise<void>;\n\tgitignoreContent: string;\n\tpostRender: {\n\t\tapplyLocalDevPresets: boolean;\n\t\tapplyMigrationUiCapability: boolean;\n\t\tseedPersistenceArtifacts: boolean;\n\t\tseedStarterManifestFiles: boolean;\n\t};\n\treadmeContent: string;\n\tselectedVariant: null;\n\ttemplateDir: string;\n\tvariables: ScaffoldTemplateVariables;\n\twarnings: string[];\n}\n\nexport interface ApplyBlockInput {\n\trendered: RenderBlockResult;\n\tinstallDependencies?: ((options: InstallDependenciesOptions) => Promise<void>) | undefined;\n\tonProgress?: ((event: ScaffoldProgressEvent) => void | Promise<void>) | undefined;\n}\n\nfunction getBuiltInPersistenceSpec({\n\ttemplateId,\n\tdataStorageMode,\n\tpersistencePolicy,\n}: {\n\tdataStorageMode?: DataStorageMode;\n\tpersistencePolicy?: PersistencePolicy;\n\ttemplateId: BuiltInTemplateId;\n}): BlockSpec[\"persistence\"] {\n\tif (templateId === \"persistence\") {\n\t\treturn {\n\t\t\tdataStorageMode: dataStorageMode ?? \"custom-table\",\n\t\t\tenabled: true,\n\t\t\tpersistencePolicy: persistencePolicy ?? \"authenticated\",\n\t\t\tscope: \"single\",\n\t\t};\n\t}\n\n\tif (templateId === \"compound\" && (dataStorageMode || persistencePolicy)) {\n\t\treturn {\n\t\t\tdataStorageMode: dataStorageMode ?? \"custom-table\",\n\t\t\tenabled: true,\n\t\t\tpersistencePolicy: persistencePolicy ?? \"authenticated\",\n\t\t\tscope: \"compound-parent\",\n\t\t};\n\t}\n\n\treturn {\n\t\tenabled: false,\n\t};\n}\n\nconst DEFAULT_QUERY_LOOP_ALLOWED_CONTROLS = [\n\t\"inherit\",\n\t\"postType\",\n\t\"order\",\n\t\"sticky\",\n\t\"taxQuery\",\n\t\"author\",\n\t\"search\",\n] as const;\n\nexport function createBuiltInBlockSpec({\n\talternateRenderTargets,\n\tanswers,\n\tdataStorageMode,\n\tpersistencePolicy,\n\ttemplateId,\n\twithMigrationUi = false,\n\twithTestPreset = false,\n\twithWpEnv = false,\n}: Omit<PlanBlockInput, \"allowExistingDir\" | \"cwd\" | \"noInstall\" | \"packageManager\" | \"projectDir\" | \"variant\">): BlockSpec {\n\tconst template = getTemplateById(templateId);\n\tconst metadataDefaults = getBuiltInTemplateMetadataDefaults(templateId);\n\tconst identifiers = resolveScaffoldIdentifiers({\n\t\tnamespace: answers.namespace,\n\t\tphpPrefix: answers.phpPrefix,\n\t\tslug: answers.slug,\n\t\ttextDomain: answers.textDomain,\n\t});\n\tconst resolvedDataStorageMode = dataStorageMode ?? answers.dataStorageMode;\n\tconst resolvedPersistencePolicy = persistencePolicy ?? answers.persistencePolicy;\n\tconst parsedAlternateRenderTargets =\n\t\tparseAlternateRenderTargets(alternateRenderTargets);\n\tconst innerBlocksPreset =\n\t\ttemplateId === \"compound\"\n\t\t\t? (answers.compoundInnerBlocksPreset ??\n\t\t\t\tDEFAULT_COMPOUND_INNER_BLOCKS_PRESET_ID)\n\t\t\t: DEFAULT_COMPOUND_INNER_BLOCKS_PRESET_ID;\n\n\treturn {\n\t\talternateRenderTargets: parsedAlternateRenderTargets,\n\t\tblock: identifiers,\n\t\tcompound: {\n\t\t\tinnerBlocksPreset,\n\t\t},\n\t\tmetadata: {\n\t\t\tcategory: metadataDefaults.category,\n\t\t\tdescription: answers.description.trim(),\n\t\t\ticon: metadataDefaults.icon,\n\t\t\tkeyword: identifiers.slug.replace(/-/g, \" \"),\n\t\t\ttitle: answers.title.trim(),\n\t\t},\n\t\tpersistence: getBuiltInPersistenceSpec({\n\t\t\tdataStorageMode: resolvedDataStorageMode,\n\t\t\tpersistencePolicy: resolvedPersistencePolicy,\n\t\t\ttemplateId,\n\t\t}),\n\t\tproject: {\n\t\t\tauthor: answers.author.trim(),\n\t\t},\n\t\tqueryLoop:\n\t\t\ttemplateId === \"query-loop\"\n\t\t\t\t? {\n\t\t\t\t\t\tallowedControls: DEFAULT_QUERY_LOOP_ALLOWED_CONTROLS,\n\t\t\t\t\t\tenabled: true,\n\t\t\t\t\t\tpostType: (answers.queryPostType ?? \"post\").trim() || \"post\",\n\t\t\t\t }\n\t\t\t\t: {\n\t\t\t\t\t\tallowedControls: [],\n\t\t\t\t\t\tenabled: false,\n\t\t\t\t\t\tpostType: \"post\",\n\t\t\t\t },\n\t\truntime: {\n\t\t\twithMigrationUi,\n\t\t\twithTestPreset,\n\t\t\twithWpEnv,\n\t\t},\n\t\ttemplate: {\n\t\t\tdescription: template.description,\n\t\t\tfamily: templateId,\n\t\t\tfeatures: [...template.features],\n\t\t},\n\t};\n}\n\nexport function buildTemplateVariablesFromBlockSpec(spec: BlockSpec): ScaffoldTemplateVariables {\n\tconst {\n\t\tapiClientPackageVersion,\n\t\tblockRuntimePackageVersion,\n\t\tblockTypesPackageVersion,\n\t\tprojectToolsPackageVersion,\n\t\trestPackageVersion,\n\t} = getPackageVersions();\n\tconst slug = spec.block.slug;\n\tconst slugSnakeCase = toSnakeCase(slug);\n\tconst pascalCase = toPascalCase(slug);\n\tconst title = spec.metadata.title;\n\tconst namespace = spec.block.namespace;\n\tconst textDomain = spec.block.textDomain;\n\tconst phpPrefix = spec.block.phpPrefix;\n\tconst phpPrefixUpper = phpPrefix.toUpperCase();\n\tconst alternateRenderTargets = [...spec.alternateRenderTargets];\n\tconst hasAlternateEmailRenderTarget = alternateRenderTargets.includes(\"email\");\n\tconst hasAlternateMjmlRenderTarget = alternateRenderTargets.includes(\"mjml\");\n\tconst hasAlternatePlainTextRenderTarget =\n\t\talternateRenderTargets.includes(\"plain-text\");\n\tconst compoundChildTitle = `${title} Item`;\n\tconst cssClassName = buildBlockCssClassName(namespace, slug);\n\tconst compoundChildCssClassName = buildBlockCssClassName(namespace, `${slug}-item`);\n\tconst compoundInnerBlocksPreset = spec.compound.innerBlocksPreset;\n\tconst compoundInnerBlocksPresetDefinition =\n\t\tgetCompoundInnerBlocksPresetDefinition(compoundInnerBlocksPreset);\n\tconst compoundInnerBlocksOrientation: \"\" | \"horizontal\" | \"vertical\" =\n\t\tcompoundInnerBlocksPresetDefinition.orientation ?? \"\";\n\tconst persistenceEnabled = spec.persistence.enabled;\n\tconst dataStorageMode = persistenceEnabled ? spec.persistence.dataStorageMode : \"custom-table\";\n\tconst persistencePolicy = persistenceEnabled\n\t\t? spec.persistence.persistencePolicy\n\t\t: \"authenticated\";\n\tconst queryVariationNamespace = `${namespace}/${slug}`;\n\n\tconst flatVariables: FlatScaffoldTemplateVariables = {\n\t\talternateRenderTargetsCsv: formatAlternateRenderTargets(\n\t\t\talternateRenderTargets,\n\t\t),\n\t\talternateRenderTargetsJson: JSON.stringify(alternateRenderTargets),\n\t\tapiClientPackageVersion,\n\t\tauthor: spec.project.author,\n\t\tblockRuntimePackageVersion,\n\t\tblockMetadataVersion: BUILTIN_BLOCK_METADATA_VERSION,\n\t\tblockTypesPackageVersion,\n\t\tcategory: spec.metadata.category,\n\t\ticon: spec.metadata.icon,\n\t\tcompoundChildTitle,\n\t\tcompoundChildCategory: COMPOUND_CHILD_BLOCK_METADATA_DEFAULTS.category,\n\t\tcompoundChildCssClassName,\n\t\tcompoundChildIcon: COMPOUND_CHILD_BLOCK_METADATA_DEFAULTS.icon,\n\t\tcompoundChildTitleJson: JSON.stringify(compoundChildTitle),\n\t\tcompoundPersistenceEnabled:\n\t\t\tspec.template.family === \"compound\" && persistenceEnabled ? \"true\" : \"false\",\n\t\tcompoundInnerBlocksDirectInsert:\n\t\t\tcompoundInnerBlocksPresetDefinition.directInsert ? \"true\" : \"false\",\n\t\tcompoundInnerBlocksOrientation: compoundInnerBlocksOrientation,\n\t\tcompoundInnerBlocksOrientationExpression:\n\t\t\tcompoundInnerBlocksPresetDefinition.orientation\n\t\t\t\t? `'${compoundInnerBlocksPresetDefinition.orientation}'`\n\t\t\t\t: \"undefined\",\n\t\tcompoundInnerBlocksPreset,\n\t\tcompoundInnerBlocksPresetDescription:\n\t\t\tcompoundInnerBlocksPresetDefinition.description,\n\t\tcompoundInnerBlocksPresetLabel:\n\t\t\tcompoundInnerBlocksPresetDefinition.label,\n\t\tcompoundInnerBlocksTemplateLockExpression:\n\t\t\tcompoundInnerBlocksPresetDefinition.templateLock === false\n\t\t\t\t? \"false\"\n\t\t\t\t: `'${compoundInnerBlocksPresetDefinition.templateLock}'`,\n\t\thasAlternateEmailRenderTarget: hasAlternateEmailRenderTarget\n\t\t\t? \"true\"\n\t\t\t: \"false\",\n\t\thasAlternateMjmlRenderTarget: hasAlternateMjmlRenderTarget\n\t\t\t? \"true\"\n\t\t\t: \"false\",\n\t\thasAlternatePlainTextRenderTarget: hasAlternatePlainTextRenderTarget\n\t\t\t? \"true\"\n\t\t\t: \"false\",\n\t\thasAlternateRenderTargets: alternateRenderTargets.length > 0\n\t\t\t? \"true\"\n\t\t\t: \"false\",\n\t\tprojectToolsPackageVersion,\n\t\tcssClassName,\n\t\tdashCase: slug,\n\t\tdataStorageMode,\n\t\tdescription: spec.metadata.description,\n\t\tdescriptionJson: JSON.stringify(spec.metadata.description),\n\t\tfrontendCssClassName: buildFrontendCssClassName(cssClassName),\n\t\tqueryAllowedControlsJson: JSON.stringify(\n\t\t\tspec.queryLoop.enabled ? spec.queryLoop.allowedControls : [],\n\t\t\tnull,\n\t\t\t2,\n\t\t),\n\t\tqueryPostType: spec.queryLoop.enabled ? spec.queryLoop.postType : \"post\",\n\t\tqueryPostTypeJson: JSON.stringify(\n\t\t\tspec.queryLoop.enabled ? spec.queryLoop.postType : \"post\",\n\t\t),\n\t\tqueryVariationNamespace,\n\t\tqueryVariationNamespaceJson: JSON.stringify(queryVariationNamespace),\n\t\tisAuthenticatedPersistencePolicy:\n\t\t\tpersistencePolicy === \"authenticated\" ? \"true\" : \"false\",\n\t\tisPublicPersistencePolicy: persistencePolicy === \"public\" ? \"true\" : \"false\",\n\t\tbootstrapCredentialDeclarations:\n\t\t\tpersistencePolicy === \"public\"\n\t\t\t\t? \"publicWriteExpiresAt?: number & tags.Type< 'uint32' >;\\n\\tpublicWriteToken?: string & tags.MinLength< 1 > & tags.MaxLength< 512 >;\"\n\t\t\t\t: \"restNonce?: string & tags.MinLength< 1 > & tags.MaxLength< 128 >;\",\n\t\tpersistencePolicyDescriptionJson: JSON.stringify(\n\t\t\tpersistencePolicy === \"authenticated\"\n\t\t\t\t? \"Writes require a logged-in user and a valid REST nonce.\"\n\t\t\t\t: \"Anonymous writes use signed short-lived public tokens, per-request ids, and coarse rate limiting.\",\n\t\t),\n\t\tkeyword: spec.metadata.keyword,\n\t\tnamespace,\n\t\tneedsMigration: \"{{needsMigration}}\",\n\t\tpascalCase,\n\t\tphpPrefix,\n\t\tphpPrefixUpper,\n\t\trestPackageVersion,\n\t\tpublicWriteRequestIdDeclaration:\n\t\t\tpersistencePolicy === \"public\"\n\t\t\t\t? \"publicWriteRequestId: string & tags.MinLength< 1 > & tags.MaxLength< 128 >;\"\n\t\t\t\t: \"publicWriteRequestId?: string & tags.MinLength< 1 > & tags.MaxLength< 128 >;\",\n\t\trestWriteAuthIntent:\n\t\t\tpersistencePolicy === \"public\"\n\t\t\t\t? \"public-write-protected\"\n\t\t\t\t: \"authenticated\",\n\t\trestWriteAuthMechanism:\n\t\t\tpersistencePolicy === \"public\" ? \"public-signed-token\" : \"rest-nonce\",\n\t\trestWriteAuthMode:\n\t\t\tpersistencePolicy === \"public\" ? \"public-signed-token\" : \"authenticated-rest-nonce\",\n\t\tslug,\n\t\tslugCamelCase: pascalCase.charAt(0).toLowerCase() + pascalCase.slice(1),\n\t\tslugKebabCase: slug,\n\t\tslugSnakeCase,\n\t\ttextDomain,\n\t\ttextdomain: textDomain,\n\t\ttitle,\n\t\ttitleJson: JSON.stringify(title),\n\t\ttitleCase: pascalCase,\n\t\tpersistencePolicy,\n\t};\n\n\tconst shared = {\n\t\tauthor: spec.project.author,\n\t\tblockMetadataVersion: BUILTIN_BLOCK_METADATA_VERSION,\n\t\tcategory: spec.metadata.category,\n\t\tcssClassName,\n\t\tdescription: spec.metadata.description,\n\t\tdescriptionJson: flatVariables.descriptionJson,\n\t\tfrontendCssClassName: flatVariables.frontendCssClassName,\n\t\ticon: spec.metadata.icon,\n\t\tkeyword: spec.metadata.keyword,\n\t\tnamespace,\n\t\tpascalCase,\n\t\tphpPrefix,\n\t\tphpPrefixUpper,\n\t\tslug,\n\t\tslugCamelCase: flatVariables.slugCamelCase,\n\t\tslugKebabCase: slug,\n\t\tslugSnakeCase,\n\t\ttextDomain,\n\t\ttitle,\n\t\ttitleCase: pascalCase,\n\t\ttitleJson: flatVariables.titleJson,\n\t\tversions: {\n\t\t\tapiClient: apiClientPackageVersion,\n\t\t\tblockRuntime: blockRuntimePackageVersion,\n\t\t\tblockTypes: blockTypesPackageVersion,\n\t\t\tprojectTools: projectToolsPackageVersion,\n\t\t\trest: restPackageVersion,\n\t\t},\n\t};\n\tconst alternateRenderTargetsGroup = {\n\t\tcsv: flatVariables.alternateRenderTargetsCsv,\n\t\tenabled: alternateRenderTargets.length > 0,\n\t\thasEmail: hasAlternateEmailRenderTarget,\n\t\thasMjml: hasAlternateMjmlRenderTarget,\n\t\thasPlainText: hasAlternatePlainTextRenderTarget,\n\t\tjson: flatVariables.alternateRenderTargetsJson,\n\t\ttargets: alternateRenderTargets,\n\t};\n\tconst compoundGroup = {\n\t\tchild: {\n\t\t\tcategory: COMPOUND_CHILD_BLOCK_METADATA_DEFAULTS.category,\n\t\t\tcssClassName: compoundChildCssClassName,\n\t\t\ticon: COMPOUND_CHILD_BLOCK_METADATA_DEFAULTS.icon,\n\t\t\ttitle: compoundChildTitle,\n\t\t\ttitleJson: JSON.stringify(compoundChildTitle),\n\t\t},\n\t\tenabled: true as const,\n\t\tinnerBlocks: {\n\t\t\tdescription: compoundInnerBlocksPresetDefinition.description,\n\t\t\tdirectInsert: compoundInnerBlocksPresetDefinition.directInsert,\n\t\t\tlabel: compoundInnerBlocksPresetDefinition.label,\n\t\t\torientation: compoundInnerBlocksOrientation,\n\t\t\torientationExpression:\n\t\t\t\tcompoundInnerBlocksPresetDefinition.orientation\n\t\t\t\t\t? `'${compoundInnerBlocksPresetDefinition.orientation}'`\n\t\t\t\t\t: \"undefined\",\n\t\t\tpreset: compoundInnerBlocksPreset,\n\t\t\ttemplateLockExpression:\n\t\t\t\tcompoundInnerBlocksPresetDefinition.templateLock === false\n\t\t\t\t\t? \"false\"\n\t\t\t\t\t: `'${compoundInnerBlocksPresetDefinition.templateLock}'`,\n\t\t},\n\t\tpersistenceEnabled: persistenceEnabled,\n\t};\n\tconst persistenceGroup = persistenceEnabled\n\t\t? {\n\t\t\t\tauth: {\n\t\t\t\t\tbootstrapCredentialDeclarations:\n\t\t\t\t\t\tflatVariables.bootstrapCredentialDeclarations,\n\t\t\t\t\tdescriptionJson: flatVariables.persistencePolicyDescriptionJson,\n\t\t\t\t\tintent: flatVariables.restWriteAuthIntent,\n\t\t\t\t\tisAuthenticated: persistencePolicy === \"authenticated\",\n\t\t\t\t\tisPublic: persistencePolicy === \"public\",\n\t\t\t\t\tmechanism: flatVariables.restWriteAuthMechanism,\n\t\t\t\t\tmode: flatVariables.restWriteAuthMode,\n\t\t\t\t\tpublicWriteRequestIdDeclaration:\n\t\t\t\t\t\tflatVariables.publicWriteRequestIdDeclaration,\n\t\t\t\t},\n\t\t\t\tdataStorageMode,\n\t\t\t\tenabled: true as const,\n\t\t\t\tpolicy: persistencePolicy,\n\t\t\t\tscope: spec.persistence.scope,\n\t\t }\n\t\t: null;\n\tconst queryLoopGroup = {\n\t\tallowedControls: spec.queryLoop.allowedControls,\n\t\tallowedControlsJson: flatVariables.queryAllowedControlsJson,\n\t\tenabled: true as const,\n\t\tpostType: spec.queryLoop.postType,\n\t\tpostTypeJson: flatVariables.queryPostTypeJson,\n\t\tvariationNamespace: queryVariationNamespace,\n\t\tvariationNamespaceJson: flatVariables.queryVariationNamespaceJson,\n\t};\n\n\tswitch (spec.template.family) {\n\t\tcase \"basic\":\n\t\t\treturn attachScaffoldTemplateVariableGroups(flatVariables, {\n\t\t\t\talternateRenderTargets: alternateRenderTargetsGroup,\n\t\t\t\tcompound: {\n\t\t\t\t\tenabled: false,\n\t\t\t\t\tpersistenceEnabled: false,\n\t\t\t\t},\n\t\t\t\tpersistence: {\n\t\t\t\t\tenabled: false,\n\t\t\t\t\tscope: \"none\",\n\t\t\t\t},\n\t\t\t\tqueryLoop: {\n\t\t\t\t\tenabled: false,\n\t\t\t\t},\n\t\t\t\tshared,\n\t\t\t\ttemplate: {\n\t\t\t\t\tdescription: spec.template.description,\n\t\t\t\t},\n\t\t\t\ttemplateFamily: \"basic\",\n\t\t\t});\n\t\tcase \"interactivity\":\n\t\t\treturn attachScaffoldTemplateVariableGroups(flatVariables, {\n\t\t\t\talternateRenderTargets: alternateRenderTargetsGroup,\n\t\t\t\tcompound: {\n\t\t\t\t\tenabled: false,\n\t\t\t\t\tpersistenceEnabled: false,\n\t\t\t\t},\n\t\t\t\tpersistence: {\n\t\t\t\t\tenabled: false,\n\t\t\t\t\tscope: \"none\",\n\t\t\t\t},\n\t\t\t\tqueryLoop: {\n\t\t\t\t\tenabled: false,\n\t\t\t\t},\n\t\t\t\tshared,\n\t\t\t\ttemplate: {\n\t\t\t\t\tdescription: spec.template.description,\n\t\t\t\t},\n\t\t\t\ttemplateFamily: \"interactivity\",\n\t\t\t});\n\t\tcase \"persistence\": {\n\t\t\tif (persistenceGroup === null) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t\"Persistence scaffolds must provide persistence template variables.\",\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn attachScaffoldTemplateVariableGroups(flatVariables, {\n\t\t\t\talternateRenderTargets: alternateRenderTargetsGroup,\n\t\t\t\tcompound: {\n\t\t\t\t\tenabled: false,\n\t\t\t\t\tpersistenceEnabled: false,\n\t\t\t\t},\n\t\t\t\tpersistence: {\n\t\t\t\t\t...persistenceGroup,\n\t\t\t\t\tscope: \"single\",\n\t\t\t\t},\n\t\t\t\tqueryLoop: {\n\t\t\t\t\tenabled: false,\n\t\t\t\t},\n\t\t\t\tshared,\n\t\t\t\ttemplate: {\n\t\t\t\t\tdescription: spec.template.description,\n\t\t\t\t},\n\t\t\t\ttemplateFamily: \"persistence\",\n\t\t\t});\n\t\t}\n\t\tcase \"compound\": {\n\t\t\tconst compoundPersistenceGroup =\n\t\t\t\tpersistenceGroup === null\n\t\t\t\t\t? {\n\t\t\t\t\t\t\tenabled: false as const,\n\t\t\t\t\t\t\tscope: \"none\" as const,\n\t\t\t\t\t }\n\t\t\t\t\t: {\n\t\t\t\t\t\t\t...persistenceGroup,\n\t\t\t\t\t\t\tscope: \"compound-parent\" as const,\n\t\t\t\t\t };\n\t\t\treturn attachScaffoldTemplateVariableGroups(flatVariables, {\n\t\t\t\talternateRenderTargets: alternateRenderTargetsGroup,\n\t\t\t\tcompound: compoundGroup,\n\t\t\t\tpersistence: compoundPersistenceGroup,\n\t\t\t\tqueryLoop: {\n\t\t\t\t\tenabled: false,\n\t\t\t\t},\n\t\t\t\tshared,\n\t\t\t\ttemplate: {\n\t\t\t\t\tdescription: spec.template.description,\n\t\t\t\t},\n\t\t\t\ttemplateFamily: \"compound\",\n\t\t\t});\n\t\t}\n\t\tcase \"query-loop\":\n\t\t\treturn attachScaffoldTemplateVariableGroups(flatVariables, {\n\t\t\t\talternateRenderTargets: alternateRenderTargetsGroup,\n\t\t\t\tcompound: {\n\t\t\t\t\tenabled: false,\n\t\t\t\t\tpersistenceEnabled: false,\n\t\t\t\t},\n\t\t\t\tpersistence: {\n\t\t\t\t\tenabled: false,\n\t\t\t\t\tscope: \"none\",\n\t\t\t\t},\n\t\t\t\tqueryLoop: queryLoopGroup,\n\t\t\t\tshared,\n\t\t\t\ttemplate: {\n\t\t\t\t\tdescription: spec.template.description,\n\t\t\t\t},\n\t\t\t\ttemplateFamily: \"query-loop\",\n\t\t\t});\n\t\tdefault: {\n\t\t\tconst unreachableTemplateFamily: never = spec.template.family;\n\t\t\tthrow new Error(\n\t\t\t\t`Unhandled scaffold template family: ${unreachableTemplateFamily}`,\n\t\t\t);\n\t\t}\n\t}\n}\n",
|
|
89
90
|
"import type { BuiltInCodeArtifact } from \"./built-in-block-code-artifacts.js\";\nimport type { ScaffoldTemplateVariables } from \"./scaffold.js\";\nimport type { BuiltInTemplateId } from \"./template-registry.js\";\nimport { renderMustacheTemplateString } from \"./template-render.js\";\n\nconst BASIC_STYLE_TEMPLATE = `/**\n * {{title}} Block Styles\n */\n\n.{{cssClassName}} {\n\tpadding: 20px;\n\tborder: 1px solid #ddd;\n\tborder-radius: 4px;\n\tbackground-color: #fff;\n\tbox-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);\n\n\t&.is-hidden {\n\t\tdisplay: none;\n\t}\n\n\t&__content {\n\t\tfont-size: 16px;\n\t\tline-height: 1.6;\n\t\tcolor: #333;\n\n\t\t// Alignment styles\n\t\t&[data-align=\"center\"] {\n\t\t\ttext-align: center;\n\t\t}\n\n\t\t&[data-align=\"right\"] {\n\t\t\ttext-align: right;\n\t\t}\n\n\t\t&[data-align=\"justify\"] {\n\t\t\ttext-align: justify;\n\t\t}\n\t}\n\n\t// Hover state\n\t&:hover {\n\t\tbox-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);\n\t\ttransition: box-shadow 0.2s ease;\n\t}\n}\n`;\n\nconst BASIC_EDITOR_STYLE_TEMPLATE = `/**\n * {{title}} Block Editor Styles\n */\n\n.{{cssClassName}} {\n\toutline: 1px dashed #ddd;\n\toutline-offset: -1px;\n}\n`;\n\nconst BASIC_RENDER_TEMPLATE = `<?php\n/**\n * Optional server render placeholder for {{title}}.\n *\n * The basic scaffold stays static by default. Keep \\`src/save.tsx\\` as the\n * canonical frontend output unless you intentionally convert this block into a\n * dynamic render path and add \\`render\\` to \\`block.json\\`.\n *\n * @package {{slug}}\n */\n\nif ( ! defined( 'ABSPATH' ) ) {\n\texit;\n}\n\n?>\n<div class=\"{{cssClassName}}__server-placeholder\" hidden>\n\t<?php esc_html_e( 'Server render placeholder.', '{{textDomain}}' ); ?>\n</div>\n`;\n\nconst INTERACTIVITY_STYLE_TEMPLATE = `.{{cssClassName}} {\n position: relative;\n padding: 1rem;\n border: 1px solid #dcdcde;\n border-radius: 0.75rem;\n background: #fff;\n\n &__content {\n display: grid;\n gap: 0.75rem;\n }\n\n &__counter {\n display: inline-flex;\n gap: 0.35rem;\n align-items: center;\n font-size: 0.9rem;\n font-weight: 600;\n }\n\n &__progress {\n width: 100%;\n height: 0.5rem;\n overflow: hidden;\n background: #f0f0f1;\n border-radius: 999px;\n }\n\n &__progress-bar {\n height: 100%;\n background: #3858e9;\n transition: width 0.2s ease;\n }\n\n &__animation {\n min-height: 1.5rem;\n font-size: 0.85rem;\n color: #3858e9;\n opacity: 0;\n transition: opacity 0.2s ease;\n\n &.is-active {\n opacity: 1;\n }\n }\n\n &__completion {\n font-weight: 700;\n color: #06752d;\n }\n\n &__reset {\n align-self: start;\n padding: 0.4rem 0.7rem;\n border: 1px solid #dcdcde;\n border-radius: 999px;\n background: transparent;\n cursor: pointer;\n }\n}\n`;\n\nconst INTERACTIVITY_EDITOR_STYLE_TEMPLATE = `/**\n * {{title}} Block Editor Styles\n */\n\n.{{cssClassName}} {\n\toutline: 1px dashed #ddd;\n\toutline-offset: -1px;\n}\n`;\n\nconst PERSISTENCE_STYLE_TEMPLATE = `.{{cssClassName}} {\n\tborder: 1px solid #dcdcde;\n\tborder-radius: 12px;\n\tpadding: 16px;\n\tbackground: #fff;\n\n\t&__meta {\n\t\tcolor: #50575e;\n\t\tfont-size: 13px;\n\t\tmargin: 8px 0 0;\n\t}\n}\n\n.{{frontendCssClassName}} {\n\tdisplay: grid;\n\tgap: 12px;\n\tborder: 1px solid #dcdcde;\n\tborder-radius: 12px;\n\tpadding: 16px;\n\tbackground: #f6f7f7;\n\n\t&__count {\n\t\tdisplay: inline-flex;\n\t\tmin-width: 3rem;\n\t\tjustify-content: center;\n\t\tfont-weight: 700;\n\t}\n\n\t&__notice,\n\t&__error {\n\t\tmargin: 0;\n\t\tfont-size: 13px;\n\t}\n\n\t&__notice {\n\t\tcolor: #50575e;\n\t}\n\n\t&__error {\n\t\tcolor: #b32d2e;\n\t}\n\n\tbutton {\n\t\twidth: fit-content;\n\t}\n}\n`;\n\nconst PERSISTENCE_RENDER_TEMPLATE = `<?php\n/**\n * Dynamic render entry for the {{title}} block.\n *\n * @package {{pascalCase}}\n */\n\nif ( ! defined( 'ABSPATH' ) ) {\n\texit;\n}\n\n$validator_path = __DIR__ . '/typia-validator.php';\nif ( ! file_exists( $validator_path ) ) {\n\treturn '';\n}\n\n$validator = require $validator_path;\nif ( ! is_object( $validator ) || ! method_exists( $validator, 'apply_defaults' ) || ! method_exists( $validator, 'validate' ) ) {\n\treturn '';\n}\n\n$normalized = $validator->apply_defaults( is_array( $attributes ) ? $attributes : array() );\n$validation = $validator->validate( $normalized );\n$resource_key = isset( $normalized['resourceKey'] ) ? (string) $normalized['resourceKey'] : '';\n\nif ( empty( $validation['valid'] ) || '' === $resource_key ) {\n\treturn '';\n}\n\n$alignment = isset( $normalized['alignment'] ) ? (string) $normalized['alignment'] : 'left';\n$button_label = isset( $normalized['buttonLabel'] ) ? (string) $normalized['buttonLabel'] : 'Persist Count';\n$content = isset( $normalized['content'] ) ? (string) $normalized['content'] : '';\n$post_id = is_object( $block ) && isset( $block->context['postId'] )\n\t? (int) $block->context['postId']\n\t: (int) get_queried_object_id();\n$storage_mode = '{{dataStorageMode}}';\n$persistence_policy = '{{persistencePolicy}}';\n\n{{phpPrefix}}_record_rendered_block_instance(\n\t(int) $post_id,\n\t'{{namespace}}/{{slugKebabCase}}',\n\t$resource_key\n);\n\n$notice_message = 'authenticated' === $persistence_policy\n\t? __( 'Sign in to persist this counter.', '{{textDomain}}' )\n\t: __( 'Public writes are temporarily unavailable.', '{{textDomain}}' );\n$context = array(\n\t'bootstrapReady' => false,\n\t'buttonLabel' => $button_label,\n\t'canWrite' => false,\n\t'client' => array(\n\t\t'writeExpiry' => 0,\n\t\t'writeNonce' => '',\n\t\t'writeToken' => '',\n\t),\n\t'count' => 0,\n\t'error' => '',\n\t'isBootstrapping' => false,\n\t'isLoading' => false,\n\t'isSaving' => false,\n\t'isVisible' => ! empty( $normalized['isVisible'] ),\n\t'persistencePolicy' => $persistence_policy,\n\t'postId' => (int) $post_id,\n\t'resourceKey' => $resource_key,\n\t'storage' => $storage_mode,\n);\n\n$wrapper_attributes = get_block_wrapper_attributes(\n\tarray(\n\t\t'data-wp-context' => wp_json_encode( $context ),\n\t\t'data-wp-interactive' => '{{slugKebabCase}}',\n\t\t'data-wp-init' => 'callbacks.init',\n\t\t'data-wp-run--mounted' => 'callbacks.mounted',\n\t)\n);\n?>\n\n<div <?php echo $wrapper_attributes; ?>>\n\t<div class=\"{{frontendCssClassName}}\">\n\t\t<p class=\"{{frontendCssClassName}}__content\" style=\"<?php echo esc_attr( 'text-align:' . $alignment ); ?>\">\n\t\t\t<?php echo esc_html( $content ); ?>\n\t\t</p>\n\t\t<p\n\t\t\tclass=\"{{frontendCssClassName}}__notice\"\n\t\t\tdata-wp-bind--hidden=\"!context.bootstrapReady || context.canWrite\"\n\t\t\thidden\n\t\t>\n\t\t\t<?php echo esc_html( $notice_message ); ?>\n\t\t</p>\n\t\t<p\n\t\t\tclass=\"{{frontendCssClassName}}__error\"\n\t\t\trole=\"status\"\n\t\t\taria-live=\"polite\"\n\t\t\taria-atomic=\"true\"\n\t\t\tdata-wp-bind--hidden=\"!context.error\"\n\t\t\tdata-wp-text=\"context.error\"\n\t\t\thidden\n\t\t></p>\n\t\t<?php if ( ! empty( $normalized['showCount'] ) ) : ?>\n\t\t\t<span\n\t\t\t\tclass=\"{{frontendCssClassName}}__count\"\n\t\t\t\trole=\"status\"\n\t\t\t\taria-live=\"polite\"\n\t\t\t\taria-atomic=\"true\"\n\t\t\t\tdata-wp-text=\"context.count\"\n\t\t\t>\n\t\t\t\t0\n\t\t\t</span>\n\t\t<?php endif; ?>\n\t\t<button\n\t\t\ttype=\"button\"\n\t\t\tdisabled\n\t\t\tdata-wp-bind--disabled=\"!context.canWrite\"\n\t\t\tdata-wp-on--click=\"actions.increment\"\n\t\t>\n\t\t\t<?php echo esc_html( $button_label ); ?>\n\t\t</button>\n\t</div>\n</div>\n`;\n\nconst PERSISTENCE_RENDER_TARGETS_TEMPLATE = `<?php\n/**\n * Alternate render target helpers for the {{title}} block.\n *\n * @package {{pascalCase}}\n */\n\nif ( ! defined( 'ABSPATH' ) ) {\n\texit;\n}\n\nif ( ! function_exists( '{{phpPrefix}}_{{slugSnakeCase}}_build_render_context' ) ) {\n\tfunction {{phpPrefix}}_{{slugSnakeCase}}_build_render_context( $attributes, $content, $block ) {\n\t\t$validator_path = __DIR__ . '/typia-validator.php';\n\t\tif ( ! file_exists( $validator_path ) ) {\n\t\t\treturn null;\n\t\t}\n\n\t\t$validator = require $validator_path;\n\t\tif ( ! is_object( $validator ) || ! method_exists( $validator, 'apply_defaults' ) || ! method_exists( $validator, 'validate' ) ) {\n\t\t\treturn null;\n\t\t}\n\n\t\t$normalized = $validator->apply_defaults( is_array( $attributes ) ? $attributes : array() );\n\t\t$validation = $validator->validate( $normalized );\n\t\t$resource_key = isset( $normalized['resourceKey'] ) ? (string) $normalized['resourceKey'] : '';\n\n\t\tif ( empty( $validation['valid'] ) || '' === $resource_key ) {\n\t\t\treturn null;\n\t\t}\n\n\t\t$alignment = isset( $normalized['alignment'] ) ? (string) $normalized['alignment'] : 'left';\n\t\t$button_label = isset( $normalized['buttonLabel'] ) ? (string) $normalized['buttonLabel'] : 'Persist Count';\n\t\t$rendered_content = isset( $normalized['content'] ) ? (string) $normalized['content'] : '';\n\t\t$post_id = is_object( $block ) && isset( $block->context['postId'] )\n\t\t\t? (int) $block->context['postId']\n\t\t\t: (int) get_queried_object_id();\n\t\t$storage_mode = '{{dataStorageMode}}';\n\t\t$persistence_policy = '{{persistencePolicy}}';\n\n\t\t{{phpPrefix}}_record_rendered_block_instance(\n\t\t\t(int) $post_id,\n\t\t\t'{{namespace}}/{{slugKebabCase}}',\n\t\t\t$resource_key\n\t\t);\n\n\t\t$notice_message = 'authenticated' === $persistence_policy\n\t\t\t? __( 'Sign in to persist this counter.', '{{textDomain}}' )\n\t\t\t: __( 'Public writes are temporarily unavailable.', '{{textDomain}}' );\n\t\t$web_context = array(\n\t\t\t'bootstrapReady' => false,\n\t\t\t'buttonLabel' => $button_label,\n\t\t\t'canWrite' => false,\n\t\t\t'client' => array(\n\t\t\t\t'writeExpiry' => 0,\n\t\t\t\t'writeNonce' => '',\n\t\t\t\t'writeToken' => '',\n\t\t\t),\n\t\t\t'count' => 0,\n\t\t\t'error' => '',\n\t\t\t'isBootstrapping' => false,\n\t\t\t'isLoading' => false,\n\t\t\t'isSaving' => false,\n\t\t\t'isVisible' => ! empty( $normalized['isVisible'] ),\n\t\t\t'persistencePolicy' => $persistence_policy,\n\t\t\t'postId' => (int) $post_id,\n\t\t\t'resourceKey' => $resource_key,\n\t\t\t'storage' => $storage_mode,\n\t\t);\n\n\t\treturn array(\n\t\t\t'alignment' => $alignment,\n\t\t\t'buttonLabel' => $button_label,\n\t\t\t'content' => $rendered_content,\n\t\t\t'frontendClassName' => '{{frontendCssClassName}}',\n\t\t\t'isVisible' => ! empty( $normalized['isVisible'] ),\n\t\t\t'normalized' => $normalized,\n\t\t\t'noticeMessage' => $notice_message,\n\t\t\t'postId' => (int) $post_id,\n\t\t\t'resourceKey' => $resource_key,\n\t\t\t'showCount' => ! empty( $normalized['showCount'] ),\n\t\t\t'title' => {{titleJson}},\n\t\t\t'webContext' => $web_context,\n\t\t);\n\t}\n}\n\nif ( ! function_exists( '{{phpPrefix}}_{{slugSnakeCase}}_render_target' ) ) {\n\tfunction {{phpPrefix}}_{{slugSnakeCase}}_render_target( string $target, $attributes, $content = '', $block = null ): string {\n\t\t$context = {{phpPrefix}}_{{slugSnakeCase}}_build_render_context( $attributes, $content, $block );\n\t\tif ( null === $context || empty( $context['isVisible'] ) ) {\n\t\t\treturn '';\n\t\t}\n\n\t\t$target_context = apply_filters(\n\t\t\t'{{phpPrefix}}_{{slugSnakeCase}}_render_target_context',\n\t\t\t$context,\n\t\t\t$target,\n\t\t\t$attributes,\n\t\t\t$block\n\t\t);\n\n\t\t$markup = '';\n\t\tswitch ( $target ) {\n\t\t\tcase 'email':\n\t\t\t\t$parts = array(\n\t\t\t\t\t'<div class=\"' . esc_attr( $target_context['frontendClassName'] ) . '-email\">',\n\t\t\t\t\t'<p style=\"text-align:' . esc_attr( $target_context['alignment'] ) . ';\">' . esc_html( $target_context['content'] ) . '</p>',\n\t\t\t\t);\n\t\t\t\tif ( ! empty( $target_context['showCount'] ) ) {\n\t\t\t\t\t$parts[] = '<p><strong>' . esc_html__( 'Count', '{{textDomain}}' ) . ':</strong> ' . esc_html( (string) $target_context['webContext']['count'] ) . '</p>';\n\t\t\t\t}\n\t\t\t\t$parts[] = '<p>' . esc_html( $target_context['noticeMessage'] ) . '</p>';\n\t\t\t\t$parts[] = '</div>';\n\t\t\t\t$markup = implode( '', $parts );\n\t\t\t\tbreak;\n\t\t\tcase 'mjml':\n\t\t\t\t$markup = '<mjml><mj-body><mj-section><mj-column><mj-text align=\"' . esc_attr( $target_context['alignment'] ) . '\">' . esc_html( $target_context['content'] ) . '</mj-text>';\n\t\t\t\tif ( ! empty( $target_context['showCount'] ) ) {\n\t\t\t\t\t$markup .= '<mj-text>' . esc_html__( 'Count', '{{textDomain}}' ) . ': ' . esc_html( (string) $target_context['webContext']['count'] ) . '</mj-text>';\n\t\t\t\t}\n\t\t\t\t$markup .= '<mj-text>' . esc_html( $target_context['noticeMessage'] ) . '</mj-text></mj-column></mj-section></mj-body></mjml>';\n\t\t\t\tbreak;\n\t\t\tcase 'plain-text':\n\t\t\t\t$markup = implode(\n\t\t\t\t\t\"\\\\n\",\n\t\t\t\t\tarray_filter(\n\t\t\t\t\t\tarray(\n\t\t\t\t\t\t\t$target_context['title'],\n\t\t\t\t\t\t\t$target_context['content'],\n\t\t\t\t\t\t\t! empty( $target_context['showCount'] )\n\t\t\t\t\t\t\t\t? sprintf( '%s: %s', __( 'Count', '{{textDomain}}' ), (string) $target_context['webContext']['count'] )\n\t\t\t\t\t\t\t\t: null,\n\t\t\t\t\t\t\t$target_context['noticeMessage'],\n\t\t\t\t\t\t),\n\t\t\t\t\t\tstatic fn( $value ) => is_string( $value ) && '' !== $value\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t\tbreak;\n\t\t\tcase 'web':\n\t\t\tdefault:\n\t\t\t\t$wrapper_attributes = get_block_wrapper_attributes(\n\t\t\t\t\tarray(\n\t\t\t\t\t\t'data-wp-context' => wp_json_encode( $target_context['webContext'] ),\n\t\t\t\t\t\t'data-wp-interactive' => '{{slugKebabCase}}',\n\t\t\t\t\t\t'data-wp-init' => 'callbacks.init',\n\t\t\t\t\t\t'data-wp-run--mounted' => 'callbacks.mounted',\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t\tob_start();\n\t\t\t\t?>\n<div <?php echo $wrapper_attributes; ?>>\n\t<div class=\"{{frontendCssClassName}}\">\n\t\t<p class=\"{{frontendCssClassName}}__content\" style=\"<?php echo esc_attr( 'text-align:' . $target_context['alignment'] ); ?>\">\n\t\t\t<?php echo esc_html( $target_context['content'] ); ?>\n\t\t</p>\n\t\t<p\n\t\t\tclass=\"{{frontendCssClassName}}__notice\"\n\t\t\tdata-wp-bind--hidden=\"!context.bootstrapReady || context.canWrite\"\n\t\t\thidden\n\t\t>\n\t\t\t<?php echo esc_html( $target_context['noticeMessage'] ); ?>\n\t\t</p>\n\t\t<p\n\t\t\tclass=\"{{frontendCssClassName}}__error\"\n\t\t\trole=\"status\"\n\t\t\taria-live=\"polite\"\n\t\t\taria-atomic=\"true\"\n\t\t\tdata-wp-bind--hidden=\"!context.error\"\n\t\t\tdata-wp-text=\"context.error\"\n\t\t\thidden\n\t\t></p>\n\t\t<?php if ( ! empty( $target_context['showCount'] ) ) : ?>\n\t\t\t<span\n\t\t\t\tclass=\"{{frontendCssClassName}}__count\"\n\t\t\t\trole=\"status\"\n\t\t\t\taria-live=\"polite\"\n\t\t\t\taria-atomic=\"true\"\n\t\t\t\tdata-wp-text=\"context.count\"\n\t\t\t>\n\t\t\t\t0\n\t\t\t</span>\n\t\t<?php endif; ?>\n\t\t<button\n\t\t\ttype=\"button\"\n\t\t\tdisabled\n\t\t\tdata-wp-bind--disabled=\"!context.canWrite\"\n\t\t\tdata-wp-on--click=\"actions.increment\"\n\t\t>\n\t\t\t<?php echo esc_html( $target_context['buttonLabel'] ); ?>\n\t\t</button>\n\t</div>\n</div>\n\t\t\t\t<?php\n\t\t\t\t$markup = (string) ob_get_clean();\n\t\t\t\tbreak;\n\t\t}\n\n\t\treturn apply_filters(\n\t\t\t'{{phpPrefix}}_{{slugSnakeCase}}_render_target_markup',\n\t\t\t$markup,\n\t\t\t$target,\n\t\t\t$target_context\n\t\t);\n\t}\n}\n`;\n\nconst COMPOUND_PERSISTENCE_RENDER_TARGETS_TEMPLATE = `<?php\n/**\n * Alternate render target helpers for the {{title}} compound parent block.\n *\n * @package {{pascalCase}}\n */\n\nif ( ! defined( 'ABSPATH' ) ) {\n\texit;\n}\n\nif ( ! function_exists( '{{phpPrefix}}_{{slugSnakeCase}}_build_render_context' ) ) {\n\tfunction {{phpPrefix}}_{{slugSnakeCase}}_build_render_context( $attributes, $content, $block ) {\n\t\t$validator_path = __DIR__ . '/typia-validator.php';\n\t\tif ( ! file_exists( $validator_path ) ) {\n\t\t\treturn null;\n\t\t}\n\n\t\t$validator = require $validator_path;\n\t\tif ( ! is_object( $validator ) || ! method_exists( $validator, 'apply_defaults' ) || ! method_exists( $validator, 'validate' ) ) {\n\t\t\treturn null;\n\t\t}\n\n\t\t$normalized = $validator->apply_defaults( is_array( $attributes ) ? $attributes : array() );\n\t\t$validation = $validator->validate( $normalized );\n\t\t$resource_key = isset( $normalized['resourceKey'] ) ? (string) $normalized['resourceKey'] : '';\n\t\t$heading = isset( $normalized['heading'] ) ? (string) $normalized['heading'] : {{titlePhpLiteral}};\n\t\t$intro = isset( $normalized['intro'] ) ? (string) $normalized['intro'] : '';\n\t\t$button_label = isset( $normalized['buttonLabel'] ) ? (string) $normalized['buttonLabel'] : 'Persist Count';\n\t\t$show_count = ! empty( $normalized['showCount'] );\n\t\t$show_dividers = ! empty( $normalized['showDividers'] );\n\t\t$post_id = is_object( $block ) && isset( $block->context['postId'] )\n\t\t\t? (int) $block->context['postId']\n\t\t\t: (int) get_queried_object_id();\n\t\t$storage_mode = '{{dataStorageMode}}';\n\t\t$persistence_policy = '{{persistencePolicy}}';\n\n\t\t{{phpPrefix}}_record_rendered_block_instance(\n\t\t\t(int) $post_id,\n\t\t\t'{{namespace}}/{{slugKebabCase}}',\n\t\t\t$resource_key\n\t\t);\n\n\t\t$notice_message = 'authenticated' === $persistence_policy\n\t\t\t? __( 'Sign in to persist this counter.', '{{textDomain}}' )\n\t\t\t: __( 'Public writes are temporarily unavailable.', '{{textDomain}}' );\n\n\t\tif ( empty( $validation['valid'] ) || '' === $resource_key ) {\n\t\t\treturn null;\n\t\t}\n\n\t\t$web_context = array(\n\t\t\t'bootstrapReady' => false,\n\t\t\t'buttonLabel' => $button_label,\n\t\t\t'canWrite' => false,\n\t\t\t'client' => array(\n\t\t\t\t'writeExpiry' => 0,\n\t\t\t\t'writeNonce' => '',\n\t\t\t\t'writeToken' => '',\n\t\t\t),\n\t\t\t'count' => 0,\n\t\t\t'error' => '',\n\t\t\t'isBootstrapping' => false,\n\t\t\t'isLoading' => false,\n\t\t\t'isSaving' => false,\n\t\t\t'persistencePolicy' => $persistence_policy,\n\t\t\t'postId' => (int) $post_id,\n\t\t\t'resourceKey' => $resource_key,\n\t\t\t'showCount' => $show_count,\n\t\t\t'storage' => $storage_mode,\n\t\t);\n\n\t\t$allowed_inner_html = wp_kses_allowed_html( 'post' );\n\n\t\tforeach ( $allowed_inner_html as &$allowed_attributes ) {\n\t\t\tif ( ! is_array( $allowed_attributes ) ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t$allowed_attributes['data-wp-bind--disabled'] = true;\n\t\t\t$allowed_attributes['data-wp-bind--hidden'] = true;\n\t\t\t$allowed_attributes['data-wp-bind--value'] = true;\n\t\t\t$allowed_attributes['data-wp-class'] = true;\n\t\t\t$allowed_attributes['data-wp-class--active'] = true;\n\t\t\t$allowed_attributes['data-wp-context'] = true;\n\t\t\t$allowed_attributes['data-wp-init'] = true;\n\t\t\t$allowed_attributes['data-wp-interactive'] = true;\n\t\t\t$allowed_attributes['data-wp-on--click'] = true;\n\t\t\t$allowed_attributes['data-wp-on--mouseenter'] = true;\n\t\t\t$allowed_attributes['data-wp-on--mouseleave'] = true;\n\t\t\t$allowed_attributes['data-wp-run--mounted'] = true;\n\t\t\t$allowed_attributes['data-wp-style--width'] = true;\n\t\t\t$allowed_attributes['data-wp-text'] = true;\n\t\t}\n\t\tunset( $allowed_attributes );\n\n\t\treturn array(\n\t\t\t'buttonLabel' => $button_label,\n\t\t\t'frontendClassName' => '{{cssClassName}}',\n\t\t\t'heading' => $heading,\n\t\t\t'intro' => $intro,\n\t\t\t'isVisible' => true,\n\t\t\t'normalized' => $normalized,\n\t\t\t'noticeMessage' => $notice_message,\n\t\t\t'postId' => (int) $post_id,\n\t\t\t'resourceKey' => $resource_key,\n\t\t\t'sanitizedContent' => wp_kses( $content, $allowed_inner_html ),\n\t\t\t'showCount' => $show_count,\n\t\t\t'showDividers' => $show_dividers,\n\t\t\t'title' => {{titleJson}},\n\t\t\t'webContext' => $web_context,\n\t\t);\n\t}\n}\n\nif ( ! function_exists( '{{phpPrefix}}_{{slugSnakeCase}}_render_target' ) ) {\n\tfunction {{phpPrefix}}_{{slugSnakeCase}}_render_target( string $target, $attributes, $content = '', $block = null ): string {\n\t\t$context = {{phpPrefix}}_{{slugSnakeCase}}_build_render_context( $attributes, $content, $block );\n\t\tif ( null === $context ) {\n\t\t\treturn '';\n\t\t}\n\n\t\t$target_context = apply_filters(\n\t\t\t'{{phpPrefix}}_{{slugSnakeCase}}_render_target_context',\n\t\t\t$context,\n\t\t\t$target,\n\t\t\t$attributes,\n\t\t\t$block\n\t\t);\n\n\t\t$markup = '';\n\t\tswitch ( $target ) {\n\t\t\tcase 'email':\n\t\t\t\t$parts = array(\n\t\t\t\t\t'<div class=\"' . esc_attr( $target_context['frontendClassName'] ) . '-email\">',\n\t\t\t\t\t'<h3>' . esc_html( $target_context['heading'] ) . '</h3>',\n\t\t\t\t);\n\t\t\t\tif ( '' !== $target_context['intro'] ) {\n\t\t\t\t\t$parts[] = '<p>' . esc_html( $target_context['intro'] ) . '</p>';\n\t\t\t\t}\n\t\t\t\tif ( ! empty( $target_context['showCount'] ) ) {\n\t\t\t\t\t$parts[] = '<p><strong>' . esc_html__( 'Count', '{{textDomain}}' ) . ':</strong> ' . esc_html( (string) $target_context['webContext']['count'] ) . '</p>';\n\t\t\t\t}\n\t\t\t\t$parts[] = wp_kses_post( $target_context['sanitizedContent'] );\n\t\t\t\t$parts[] = '<p>' . esc_html( $target_context['noticeMessage'] ) . '</p>';\n\t\t\t\t$parts[] = '</div>';\n\t\t\t\t$markup = implode( '', $parts );\n\t\t\t\tbreak;\n\t\t\tcase 'mjml':\n\t\t\t\t$markup = '<mjml><mj-body><mj-section><mj-column><mj-text font-weight=\"700\">' . esc_html( $target_context['heading'] ) . '</mj-text>';\n\t\t\t\tif ( '' !== $target_context['intro'] ) {\n\t\t\t\t\t$markup .= '<mj-text>' . esc_html( $target_context['intro'] ) . '</mj-text>';\n\t\t\t\t}\n\t\t\t\tif ( ! empty( $target_context['showCount'] ) ) {\n\t\t\t\t\t$markup .= '<mj-text>' . esc_html__( 'Count', '{{textDomain}}' ) . ': ' . esc_html( (string) $target_context['webContext']['count'] ) . '</mj-text>';\n\t\t\t\t}\n\t\t\t\t$markup .= '<mj-text>' . esc_html( wp_strip_all_tags( $target_context['sanitizedContent'] ) ) . '</mj-text>';\n\t\t\t\t$markup .= '<mj-text>' . esc_html( $target_context['noticeMessage'] ) . '</mj-text></mj-column></mj-section></mj-body></mjml>';\n\t\t\t\tbreak;\n\t\t\tcase 'plain-text':\n\t\t\t\t$markup = implode(\n\t\t\t\t\t\"\\\\n\",\n\t\t\t\t\tarray_filter(\n\t\t\t\t\t\tarray(\n\t\t\t\t\t\t\t$target_context['heading'],\n\t\t\t\t\t\t\t$target_context['intro'],\n\t\t\t\t\t\t\twp_strip_all_tags( $target_context['sanitizedContent'] ),\n\t\t\t\t\t\t\t! empty( $target_context['showCount'] )\n\t\t\t\t\t\t\t\t? sprintf( '%s: %s', __( 'Count', '{{textDomain}}' ), (string) $target_context['webContext']['count'] )\n\t\t\t\t\t\t\t\t: null,\n\t\t\t\t\t\t\t$target_context['noticeMessage'],\n\t\t\t\t\t\t),\n\t\t\t\t\t\tstatic fn( $value ) => is_string( $value ) && '' !== $value\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t\tbreak;\n\t\t\tcase 'web':\n\t\t\tdefault:\n\t\t\t\t$wrapper_attributes = get_block_wrapper_attributes(\n\t\t\t\t\tarray(\n\t\t\t\t\t\t'class' => '{{cssClassName}}',\n\t\t\t\t\t\t'data-show-dividers' => $target_context['showDividers'] ? 'true' : 'false',\n\t\t\t\t\t\t'data-wp-context' => wp_json_encode( $target_context['webContext'] ),\n\t\t\t\t\t\t'data-wp-init' => 'callbacks.init',\n\t\t\t\t\t\t'data-wp-interactive' => '{{slugKebabCase}}',\n\t\t\t\t\t\t'data-wp-run--mounted' => 'callbacks.mounted',\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t\tob_start();\n\t\t\t\t?>\n<div <?php echo $wrapper_attributes; ?>>\n\t<h3 class=\"{{cssClassName}}__heading\"><?php echo esc_html( $target_context['heading'] ); ?></h3>\n\t<?php if ( '' !== $target_context['intro'] ) : ?>\n\t\t<p class=\"{{cssClassName}}__intro\"><?php echo esc_html( $target_context['intro'] ); ?></p>\n\t<?php endif; ?>\n\t<p\n\t\tclass=\"{{cssClassName}}__notice\"\n\t\tdata-wp-bind--hidden=\"!context.bootstrapReady || context.canWrite\"\n\t\thidden\n\t>\n\t\t<?php echo esc_html( $target_context['noticeMessage'] ); ?>\n\t</p>\n\t<p\n\t\tclass=\"{{cssClassName}}__error\"\n\t\trole=\"status\"\n\t\taria-live=\"polite\"\n\t\taria-atomic=\"true\"\n\t\tdata-wp-bind--hidden=\"!context.error\"\n\t\tdata-wp-text=\"context.error\"\n\t\thidden\n\t></p>\n\t<?php if ( ! empty( $target_context['showCount'] ) ) : ?>\n\t\t<div class=\"{{cssClassName}}__counter\">\n\t\t\t<span\n\t\t\t\tclass=\"{{cssClassName}}__count\"\n\t\t\t\trole=\"status\"\n\t\t\t\taria-live=\"polite\"\n\t\t\t\taria-atomic=\"true\"\n\t\t\t\tdata-wp-text=\"context.count\"\n\t\t\t>0</span>\n\t\t\t<button\n\t\t\t\ttype=\"button\"\n\t\t\t\tdisabled\n\t\t\t\tdata-wp-bind--disabled=\"!context.canWrite\"\n\t\t\t\tdata-wp-on--click=\"actions.increment\"\n\t\t\t>\n\t\t\t\t<?php echo esc_html( $target_context['buttonLabel'] ); ?>\n\t\t\t</button>\n\t\t</div>\n\t<?php endif; ?>\n\t<div class=\"{{cssClassName}}__items\">\n\t\t<?php echo wp_kses_post( $target_context['sanitizedContent'] ); ?>\n\t</div>\n</div>\n\t\t\t\t<?php\n\t\t\t\t$markup = (string) ob_get_clean();\n\t\t\t\tbreak;\n\t\t}\n\n\t\treturn apply_filters(\n\t\t\t'{{phpPrefix}}_{{slugSnakeCase}}_render_target_markup',\n\t\t\t$markup,\n\t\t\t$target,\n\t\t\t$target_context\n\t\t);\n\t}\n}\n`;\n\nconst COMPOUND_STYLE_TEMPLATE = `.{{cssClassName}} {\n\tborder: 1px solid #dcdcde;\n\tborder-radius: 12px;\n\tpadding: 1.25rem;\n\tbackground: #fff;\n}\n\n.{{cssClassName}}__heading {\n\tmargin: 0 0 0.5rem;\n\tfont-size: 1.2rem;\n}\n\n.{{cssClassName}}__intro {\n\tmargin: 0 0 1rem;\n\tcolor: #50575e;\n}\n\n.{{cssClassName}}__items {\n\tdisplay: grid;\n\tgap: 0.75rem;\n}\n\n.{{cssClassName}}[data-show-dividers='true'] .{{compoundChildCssClassName}} {\n\tborder-top: 1px solid #dcdcde;\n\tpadding-top: 0.75rem;\n}\n\n.{{cssClassName}}[data-show-dividers='true'] .{{compoundChildCssClassName}}:first-child {\n\tborder-top: 0;\n\tpadding-top: 0;\n}\n`;\n\nfunction renderArtifact(\n\trelativePath: string,\n\ttemplate: string,\n\tview: Record<string, unknown>,\n): BuiltInCodeArtifact {\n\tconst source = renderMustacheTemplateString(template, view);\n\treturn {\n\t\trelativePath,\n\t\tsource: source.endsWith(\"\\n\") ? source : `${source}\\n`,\n\t};\n}\n\nfunction buildAlternateRenderEntryArtifact(\n\trelativePath: string,\n\ttarget: \"email\" | \"mjml\" | \"plain-text\" | \"web\",\n\tvariables: ScaffoldTemplateVariables,\n): BuiltInCodeArtifact {\n\tconst template = `<?php\n/**\n * Alternate ${target} render entry for {{title}}.\n *\n * @package {{pascalCase}}\n */\n\nif ( ! defined( 'ABSPATH' ) ) {\n\texit;\n}\n\nrequire_once __DIR__ . '/render-targets.php';\n\nreturn {{phpPrefix}}_{{slugSnakeCase}}_render_target( '${target}', $attributes, $content ?? '', $block ?? null );\n`;\n\n\treturn renderArtifact(relativePath, template, variables);\n}\n\nfunction toPhpSingleQuotedString(value: string): string {\n\treturn `'${value.replace(/\\\\/g, \"\\\\\\\\\").replace(/'/g, \"\\\\'\")}'`;\n}\n\nfunction buildBasicArtifacts(\n\tvariables: ScaffoldTemplateVariables,\n): BuiltInCodeArtifact[] {\n\treturn [\n\t\trenderArtifact(\"src/editor.scss\", BASIC_EDITOR_STYLE_TEMPLATE, variables),\n\t\trenderArtifact(\"src/style.scss\", BASIC_STYLE_TEMPLATE, variables),\n\t\trenderArtifact(\"src/render.php\", BASIC_RENDER_TEMPLATE, variables),\n\t];\n}\n\nfunction buildInteractivityArtifacts(\n\tvariables: ScaffoldTemplateVariables,\n): BuiltInCodeArtifact[] {\n\treturn [\n\t\trenderArtifact(\n\t\t\t\"src/editor.scss\",\n\t\t\tINTERACTIVITY_EDITOR_STYLE_TEMPLATE,\n\t\t\tvariables,\n\t\t),\n\t\trenderArtifact(\"src/style.scss\", INTERACTIVITY_STYLE_TEMPLATE, variables),\n\t];\n}\n\nfunction buildPersistenceArtifacts(\n\tvariables: ScaffoldTemplateVariables,\n): BuiltInCodeArtifact[] {\n\tif (variables.hasAlternateRenderTargets !== \"true\") {\n\t\treturn [\n\t\t\trenderArtifact(\"src/style.scss\", PERSISTENCE_STYLE_TEMPLATE, variables),\n\t\t\trenderArtifact(\"src/render.php\", PERSISTENCE_RENDER_TEMPLATE, variables),\n\t\t];\n\t}\n\n\tconst artifacts = [\n\t\trenderArtifact(\"src/style.scss\", PERSISTENCE_STYLE_TEMPLATE, variables),\n\t\trenderArtifact(\n\t\t\t\"src/render-targets.php\",\n\t\t\tPERSISTENCE_RENDER_TARGETS_TEMPLATE,\n\t\t\tvariables,\n\t\t),\n\t\tbuildAlternateRenderEntryArtifact(\"src/render.php\", \"web\", variables),\n\t];\n\n\tif (variables.hasAlternateEmailRenderTarget === \"true\") {\n\t\tartifacts.push(\n\t\t\tbuildAlternateRenderEntryArtifact(\"src/render-email.php\", \"email\", variables),\n\t\t);\n\t}\n\tif (variables.hasAlternateMjmlRenderTarget === \"true\") {\n\t\tartifacts.push(\n\t\t\tbuildAlternateRenderEntryArtifact(\"src/render-mjml.php\", \"mjml\", variables),\n\t\t);\n\t}\n\tif (variables.hasAlternatePlainTextRenderTarget === \"true\") {\n\t\tartifacts.push(\n\t\t\tbuildAlternateRenderEntryArtifact(\n\t\t\t\t\"src/render-text.php\",\n\t\t\t\t\"plain-text\",\n\t\t\t\tvariables,\n\t\t\t),\n\t\t);\n\t}\n\n\treturn artifacts;\n}\n\nfunction buildCompoundArtifacts(\n\tvariables: ScaffoldTemplateVariables,\n): BuiltInCodeArtifact[] {\n\tconst artifacts = [\n\t\trenderArtifact(\n\t\t\t`src/blocks/${variables.slugKebabCase}/style.scss`,\n\t\t\tCOMPOUND_STYLE_TEMPLATE,\n\t\t\tvariables,\n\t\t),\n\t];\n\n\tif (variables.compoundPersistenceEnabled === \"true\") {\n\t\tconst renderView = {\n\t\t\t...variables,\n\t\t\ttitlePhpLiteral: toPhpSingleQuotedString(variables.title),\n\t\t};\n\t\tif (variables.hasAlternateRenderTargets === \"true\") {\n\t\t\tartifacts.push(\n\t\t\t\trenderArtifact(\n\t\t\t\t\t`src/blocks/${variables.slugKebabCase}/render-targets.php`,\n\t\t\t\t\tCOMPOUND_PERSISTENCE_RENDER_TARGETS_TEMPLATE,\n\t\t\t\t\trenderView,\n\t\t\t\t),\n\t\t\t\tbuildAlternateRenderEntryArtifact(\n\t\t\t\t\t`src/blocks/${variables.slugKebabCase}/render.php`,\n\t\t\t\t\t\"web\",\n\t\t\t\t\tvariables,\n\t\t\t\t),\n\t\t\t);\n\t\t\tif (variables.hasAlternateEmailRenderTarget === \"true\") {\n\t\t\t\tartifacts.push(\n\t\t\t\t\tbuildAlternateRenderEntryArtifact(\n\t\t\t\t\t\t`src/blocks/${variables.slugKebabCase}/render-email.php`,\n\t\t\t\t\t\t\"email\",\n\t\t\t\t\t\tvariables,\n\t\t\t\t\t),\n\t\t\t\t);\n\t\t\t}\n\t\t\tif (variables.hasAlternateMjmlRenderTarget === \"true\") {\n\t\t\t\tartifacts.push(\n\t\t\t\t\tbuildAlternateRenderEntryArtifact(\n\t\t\t\t\t\t`src/blocks/${variables.slugKebabCase}/render-mjml.php`,\n\t\t\t\t\t\t\"mjml\",\n\t\t\t\t\t\tvariables,\n\t\t\t\t\t),\n\t\t\t\t);\n\t\t\t}\n\t\t\tif (variables.hasAlternatePlainTextRenderTarget === \"true\") {\n\t\t\t\tartifacts.push(\n\t\t\t\t\tbuildAlternateRenderEntryArtifact(\n\t\t\t\t\t\t`src/blocks/${variables.slugKebabCase}/render-text.php`,\n\t\t\t\t\t\t\"plain-text\",\n\t\t\t\t\t\tvariables,\n\t\t\t\t\t),\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn artifacts;\n\t\t}\n\t\tconst renderSource = `<?php\n/**\n * Dynamic render entry for the {{title}} compound parent block.\n *\n * @package {{pascalCase}}\n */\n\nif ( ! defined( 'ABSPATH' ) ) {\n\texit;\n}\n\n$validator_path = __DIR__ . '/typia-validator.php';\nif ( ! file_exists( $validator_path ) ) {\n\treturn '';\n}\n\n$validator = require $validator_path;\nif ( ! is_object( $validator ) || ! method_exists( $validator, 'apply_defaults' ) || ! method_exists( $validator, 'validate' ) ) {\n\treturn '';\n}\n\n$normalized = $validator->apply_defaults( is_array( $attributes ) ? $attributes : array() );\n$validation = $validator->validate( $normalized );\n$resource_key = isset( $normalized['resourceKey'] ) ? (string) $normalized['resourceKey'] : '';\n$heading = isset( $normalized['heading'] ) ? (string) $normalized['heading'] : {{titlePhpLiteral}};\n$intro = isset( $normalized['intro'] ) ? (string) $normalized['intro'] : '';\n$button_label = isset( $normalized['buttonLabel'] ) ? (string) $normalized['buttonLabel'] : 'Persist Count';\n$show_count = ! empty( $normalized['showCount'] );\n$show_dividers = ! empty( $normalized['showDividers'] );\n$post_id = is_object( $block ) && isset( $block->context['postId'] )\n\t? (int) $block->context['postId']\n\t: (int) get_queried_object_id();\n$storage_mode = '{{dataStorageMode}}';\n$persistence_policy = '{{persistencePolicy}}';\n\n{{phpPrefix}}_record_rendered_block_instance(\n\t(int) $post_id,\n\t'{{namespace}}/{{slugKebabCase}}',\n\t$resource_key\n);\n\n$notice_message = 'authenticated' === $persistence_policy\n\t? __( 'Sign in to persist this counter.', '{{textDomain}}' )\n\t: __( 'Public writes are temporarily unavailable.', '{{textDomain}}' );\n\nif ( empty( $validation['valid'] ) || '' === $resource_key ) {\n\treturn '';\n}\n\n$context = array(\n\t'bootstrapReady' => false,\n\t'buttonLabel' => $button_label,\n\t'canWrite' => false,\n\t'client' => array(\n\t\t'writeExpiry' => 0,\n\t\t'writeNonce' => '',\n\t\t'writeToken' => '',\n\t),\n\t'count' => 0,\n\t'error' => '',\n\t'isBootstrapping' => false,\n\t'isLoading' => false,\n\t'isSaving' => false,\n\t'persistencePolicy' => $persistence_policy,\n\t'postId' => (int) $post_id,\n\t'resourceKey' => $resource_key,\n\t'showCount' => $show_count,\n\t'storage' => $storage_mode,\n);\n\n$allowed_inner_html = wp_kses_allowed_html( 'post' );\n\nforeach ( $allowed_inner_html as &$allowed_attributes ) {\n\tif ( ! is_array( $allowed_attributes ) ) {\n\t\tcontinue;\n\t}\n\n\t$allowed_attributes['data-wp-bind--disabled'] = true;\n\t$allowed_attributes['data-wp-bind--hidden'] = true;\n\t$allowed_attributes['data-wp-bind--value'] = true;\n\t$allowed_attributes['data-wp-class'] = true;\n\t$allowed_attributes['data-wp-class--active'] = true;\n\t$allowed_attributes['data-wp-context'] = true;\n\t$allowed_attributes['data-wp-init'] = true;\n\t$allowed_attributes['data-wp-interactive'] = true;\n\t$allowed_attributes['data-wp-on--click'] = true;\n\t$allowed_attributes['data-wp-on--mouseenter'] = true;\n\t$allowed_attributes['data-wp-on--mouseleave'] = true;\n\t$allowed_attributes['data-wp-run--mounted'] = true;\n\t$allowed_attributes['data-wp-style--width'] = true;\n\t$allowed_attributes['data-wp-text'] = true;\n}\nunset( $allowed_attributes );\n\n$sanitized_content = wp_kses( $content, $allowed_inner_html );\n\n$wrapper_attributes = get_block_wrapper_attributes(\n\tarray(\n\t\t'class' => '{{cssClassName}}',\n\t\t'data-show-dividers' => $show_dividers ? 'true' : 'false',\n\t\t'data-wp-context' => wp_json_encode( $context ),\n\t\t'data-wp-init' => 'callbacks.init',\n\t\t'data-wp-interactive' => '{{slugKebabCase}}',\n\t\t'data-wp-run--mounted' => 'callbacks.mounted',\n\t)\n);\n?>\n\n<div <?php echo $wrapper_attributes; ?>>\n\t<h3 class=\"{{cssClassName}}__heading\"><?php echo esc_html( $heading ); ?></h3>\n\t<?php if ( '' !== $intro ) : ?>\n\t\t<p class=\"{{cssClassName}}__intro\"><?php echo esc_html( $intro ); ?></p>\n\t<?php endif; ?>\n\t<p\n\t\tclass=\"{{cssClassName}}__notice\"\n\t\tdata-wp-bind--hidden=\"!context.bootstrapReady || context.canWrite\"\n\t\thidden\n\t>\n\t\t<?php echo esc_html( $notice_message ); ?>\n\t</p>\n\t<p\n\t\tclass=\"{{cssClassName}}__error\"\n\t\trole=\"status\"\n\t\taria-live=\"polite\"\n\t\taria-atomic=\"true\"\n\t\tdata-wp-bind--hidden=\"!context.error\"\n\t\tdata-wp-text=\"context.error\"\n\t\thidden\n\t></p>\n\t<?php if ( $show_count ) : ?>\n\t\t<div class=\"{{cssClassName}}__counter\">\n\t\t\t<span\n\t\t\t\tclass=\"{{cssClassName}}__count\"\n\t\t\t\trole=\"status\"\n\t\t\t\taria-live=\"polite\"\n\t\t\t\taria-atomic=\"true\"\n\t\t\t\tdata-wp-text=\"context.count\"\n\t\t\t>0</span>\n\t\t\t<button\n\t\t\t\ttype=\"button\"\n\t\t\t\tdisabled\n\t\t\t\tdata-wp-bind--disabled=\"!context.canWrite\"\n\t\t\t\tdata-wp-on--click=\"actions.increment\"\n\t\t\t>\n\t\t\t\t<?php echo esc_html( $button_label ); ?>\n\t\t\t</button>\n\t\t</div>\n\t<?php endif; ?>\n\t<div class=\"{{cssClassName}}__items\">\n\t\t<?php echo $sanitized_content; ?>\n\t</div>\n</div>\n`;\n\t\tartifacts.push(\n\t\t\trenderArtifact(\n\t\t\t\t`src/blocks/${variables.slugKebabCase}/render.php`,\n\t\t\t\trenderSource,\n\t\t\t\trenderView,\n\t\t\t),\n\t\t);\n\t}\n\n\treturn artifacts;\n}\n\n/**\n * Builds non-TypeScript scaffold artifacts for built-in block templates.\n *\n * @param options Build options for the selected built-in template family.\n * @param options.templateId Built-in template identifier that controls which\n * non-TS files should be emitted.\n * @param options.variables Scaffold template variables used to render the\n * generated sources.\n * @returns An array of emitter-owned SCSS and PHP artifacts for the selected\n * built-in template family.\n */\nexport function buildBuiltInNonTsArtifacts({\n\ttemplateId,\n\tvariables,\n}: {\n\ttemplateId: BuiltInTemplateId;\n\tvariables: ScaffoldTemplateVariables;\n}): BuiltInCodeArtifact[] {\n\tswitch (templateId) {\n\t\tcase \"basic\":\n\t\t\treturn buildBasicArtifacts(variables);\n\t\tcase \"interactivity\":\n\t\t\treturn buildInteractivityArtifacts(variables);\n\t\tcase \"persistence\":\n\t\t\treturn buildPersistenceArtifacts(variables);\n\t\tcase \"compound\":\n\t\t\treturn buildCompoundArtifacts(variables);\n\t\tcase \"query-loop\":\n\t\t\treturn [];\n\t\tdefault: {\n\t\t\tconst unhandledTemplateId: never = templateId;\n\t\t\tthrow new Error(`Unhandled built-in template id: ${unhandledTemplateId}`);\n\t\t}\n\t}\n}\n",
|
|
90
91
|
"/**\n * Template for the shared validation hooks module used by built-in scaffolds.\n */\nexport const SHARED_HOOKS_TEMPLATE = `import { useMemo } from '@wordpress/element';\n\nimport {\n\tcreateUseTypiaValidationHook,\n\tformatValidationError,\n\tformatValidationErrors,\n} from '@wp-typia/block-runtime/validation';\n\nexport {\n\tformatValidationError,\n\tformatValidationErrors,\n\ttype TypiaValidationError,\n\ttype ValidationResult,\n\ttype ValidationState,\n} from '@wp-typia/block-runtime/validation';\n\nexport const useTypiaValidation = createUseTypiaValidationHook( {\n\tuseMemo,\n} );\n`;\n\n/**\n * Template for the generated block metadata wrapper around `block.json`.\n */\nexport const BLOCK_METADATA_WRAPPER_TEMPLATE = `import rawMetadata from './block.json';\nimport { defineScaffoldBlockMetadata } from '@wp-typia/block-runtime/blocks';\n\nconst metadata = defineScaffoldBlockMetadata(rawMetadata);\n\nexport default metadata;\n`;\n\n/**\n * Template for the generated manifest document wrapper around `typia.manifest.json`.\n */\nexport const MANIFEST_DOCUMENT_WRAPPER_TEMPLATE = `import rawCurrentManifest from './typia.manifest.json';\nimport { defineManifestDocument } from '@wp-typia/block-runtime/editor';\n\nconst currentManifest = defineManifestDocument(rawCurrentManifest);\n\nexport default currentManifest;\n`;\n\n/**\n * Template for the generated manifest-defaults wrapper used by validators.\n */\nexport const MANIFEST_DEFAULTS_DOCUMENT_WRAPPER_TEMPLATE = `import rawCurrentManifest from './typia.manifest.json';\nimport { defineManifestDefaultsDocument } from '@wp-typia/block-runtime/defaults';\n\nconst currentManifest = defineManifestDefaultsDocument(rawCurrentManifest);\n\nexport default currentManifest;\n`;\n",
|
|
91
92
|
"export const BASIC_EDIT_TEMPLATE = `/**\n * Editor component for {{title}} Block\n */\n\nimport type { BlockEditProps } from '@wp-typia/block-types/blocks/registration';\nimport {\n InspectorControls,\n RichText,\n useBlockProps,\n} from '@wordpress/block-editor';\nimport { Notice, PanelBody, TextControl } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport currentManifest from './manifest-document';\nimport {\n InspectorFromManifest,\n useEditorFields,\n useTypedAttributeUpdater,\n} from '@wp-typia/block-runtime/inspector';\nimport { {{pascalCase}}Attributes } from './types';\nimport {\n sanitize{{pascalCase}}Attributes,\n validate{{pascalCase}}Attributes,\n} from './validators';\nimport { useTypiaValidation } from './hooks';\n\ntype EditProps = BlockEditProps<{{pascalCase}}Attributes>;\n\nconst validationErrorItemStyle = { color: '#cc1818', fontSize: '12px' };\nconst validationListStyle = { margin: 0, paddingLeft: '1em' };\n\nfunction Edit({ attributes, setAttributes }: EditProps) {\n const isVisible = attributes.isVisible !== false;\n const blockProps = useBlockProps({\n className: \\`{{cssClassName}}\\${isVisible ? '' : ' is-hidden'}\\`,\n });\n const editorFields = useEditorFields(currentManifest, {\n hidden: ['id', 'schemaVersion'],\n manual: ['content'],\n labels: {\n alignment: __('Alignment', '{{textDomain}}'),\n className: __('CSS Class', '{{textDomain}}'),\n content: __('Content', '{{textDomain}}'),\n isVisible: __('Visible', '{{textDomain}}'),\n },\n });\n const classNameField = editorFields.getField('className');\n const { errorMessages, isValid } = useTypiaValidation(\n attributes,\n validate{{pascalCase}}Attributes\n );\n const validateEditorUpdate = (nextAttributes: {{pascalCase}}Attributes) => {\n try {\n return {\n data: sanitize{{pascalCase}}Attributes(nextAttributes),\n errors: [],\n isValid: true as const,\n };\n } catch {\n return validate{{pascalCase}}Attributes(nextAttributes);\n }\n };\n const { updateField } = useTypedAttributeUpdater(\n attributes,\n setAttributes,\n validateEditorUpdate\n );\n\n return (\n <>\n <InspectorControls>\n <InspectorFromManifest\n attributes={attributes}\n fieldLookup={editorFields}\n onChange={updateField}\n paths={['alignment', 'isVisible']}\n title={__('Settings', '{{textDomain}}')}\n >\n <TextControl\n label={__('Content', '{{textDomain}}')}\n value={attributes.content || ''}\n onChange={(value) => updateField('content', value)}\n help={__('Mirrors the main block content.', '{{textDomain}}')}\n />\n\n <TextControl\n label={classNameField?.label || __('CSS Class', '{{textDomain}}')}\n value={attributes.className || ''}\n onChange={(value) => updateField('className', value)}\n help={__('Add an optional CSS class name.', '{{textDomain}}')}\n />\n </InspectorFromManifest>\n\n {!isValid && (\n <PanelBody title={__('Validation Errors', '{{textDomain}}')} initialOpen>\n {errorMessages.map((error, index) => (\n <div key={index} style={validationErrorItemStyle}>\n • {error}\n </div>\n ))}\n </PanelBody>\n )}\n </InspectorControls>\n\n <div {...blockProps}>\n <div className=\"{{cssClassName}}__content\">\n <RichText\n tagName=\"p\"\n value={attributes.content || ''}\n onChange={(value) => updateField('content', value)}\n placeholder={__('Add your content...', '{{textDomain}}')}\n />\n </div>\n {!isValid && (\n <Notice status=\"error\" isDismissible={false}>\n <p>\n <strong>{__('Validation Errors', '{{textDomain}}')}</strong>\n </p>\n <ul style={validationListStyle}>\n {errorMessages.map((error, index) => (\n <li key={index}>{error}</li>\n ))}\n </ul>\n </Notice>\n )}\n </div>\n </>\n );\n}\n\nexport default Edit;\n`;\n\nexport const BASIC_SAVE_TEMPLATE = `/**\n * Save/Frontend component for {{title}} Block\n */\n\nimport { RichText, useBlockProps } from '@wordpress/block-editor';\nimport { {{pascalCase}}Attributes } from './types';\n\ninterface SaveProps {\n attributes: {{pascalCase}}Attributes;\n}\n\nexport default function Save({ attributes }: SaveProps) {\n const isVisible = attributes.isVisible !== false;\n const blockProps = useBlockProps.save({\n className: \\`{{cssClassName}}\\${isVisible ? '' : ' is-hidden'}\\`,\n hidden: isVisible ? undefined : true,\n 'aria-hidden': isVisible ? undefined : 'true',\n });\n\n return (\n <div {...blockProps}>\n <div\n className=\"{{cssClassName}}__content\"\n data-align={attributes.alignment || 'left'}\n >\n <RichText.Content tagName=\"p\" value={attributes.content} />\n </div>\n </div>\n );\n}\n`;\n\nexport const BASIC_INDEX_TEMPLATE = `/**\n * WordPress {{title}} Block\n *\n * Typia-powered type-safe block\n */\n\nimport {\n registerScaffoldBlockType,\n type BlockConfiguration,\n} from '@wp-typia/block-types/blocks/registration';\nimport type { BlockSupports } from '@wp-typia/block-types/blocks/supports';\nimport { __ } from '@wordpress/i18n';\nimport {\n buildScaffoldBlockRegistration,\n parseScaffoldBlockMetadata,\n} from '@wp-typia/block-runtime/blocks';\n\n// Import components\nimport Edit from './edit';\nimport Save from './save';\nimport metadata from './block-metadata';\nimport './editor.scss';\nimport './style.scss';\n\n// Import types\nimport { {{pascalCase}}Attributes } from './types';\nimport { validators } from './validators';\n\nconst scaffoldSupports = {\n html: false,\n multiple: true,\n align: ['wide', 'full'],\n} satisfies BlockSupports;\n\n// Register the block\nconst registration = buildScaffoldBlockRegistration(\n parseScaffoldBlockMetadata<BlockConfiguration<{{pascalCase}}Attributes>>(metadata),\n {\n supports: scaffoldSupports,\n example: {\n attributes: validators.random(),\n },\n edit: Edit,\n save: Save,\n }\n);\n\nregisterScaffoldBlockType(registration.name, registration.settings);\n`;\n\nexport const BASIC_VALIDATORS_TEMPLATE = `import typia from 'typia';\nimport currentManifest from \"./manifest-defaults-document\";\nimport { {{pascalCase}}Attributes, {{pascalCase}}ValidationResult } from \"./types\";\nimport { generateBlockId } from \"@wp-typia/block-runtime/identifiers\";\nimport { createTemplateValidatorToolkit } from \"./validator-toolkit\";\n\nconst scaffoldValidators = createTemplateValidatorToolkit<{{pascalCase}}Attributes>({\n assert: typia.createAssert<{{pascalCase}}Attributes>(),\n clone: typia.misc.createClone<{{pascalCase}}Attributes>() as (\n value: {{pascalCase}}Attributes,\n ) => {{pascalCase}}Attributes,\n is: typia.createIs<{{pascalCase}}Attributes>(),\n manifest: currentManifest,\n prune: typia.misc.createPrune<{{pascalCase}}Attributes>(),\n random: typia.createRandom<{{pascalCase}}Attributes>() as (\n ...args: unknown[]\n ) => {{pascalCase}}Attributes,\n finalize: (normalized) => ({\n ...normalized,\n id: normalized.id && normalized.id.length > 0 ? normalized.id : generateBlockId(),\n }),\n validate: typia.createValidate<{{pascalCase}}Attributes>(),\n});\n\nexport const validate{{pascalCase}}Attributes =\n scaffoldValidators.validateAttributes as (\n attributes: unknown,\n ) => {{pascalCase}}ValidationResult;\n\nexport const validators = scaffoldValidators.validators;\n\nexport const sanitize{{pascalCase}}Attributes =\n scaffoldValidators.sanitizeAttributes as (\n attributes: Partial<{{pascalCase}}Attributes>,\n ) => {{pascalCase}}Attributes;\n\nexport const createAttributeUpdater = scaffoldValidators.createAttributeUpdater;\n`;\n",
|
|
@@ -95,12 +96,12 @@
|
|
|
95
96
|
"export const COMPOUND_PARENT_EDIT_TEMPLATE = `import type { BlockEditProps } from '@wp-typia/block-types/blocks/registration';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tInspectorControls,\n\tInnerBlocks,\n\tRichText,\n\tuseBlockProps,\n} from '@wordpress/block-editor';\nimport { Notice, PanelBody, ToggleControl } from '@wordpress/components';\n\nimport {\n\tgetRootInnerBlocksPropsOptions,\n} from './children';\nimport { useTypiaValidation } from './hooks';\nimport type { {{pascalCase}}Attributes } from './types';\nimport {\n\tcreateAttributeUpdater,\n\tvalidate{{pascalCase}}Attributes,\n} from './validators';\n\ntype EditProps = BlockEditProps< {{pascalCase}}Attributes >;\ntype CompoundInnerBlocksProps = Parameters< typeof InnerBlocks >[ 0 ] & {\n\tdefaultBlock?: [ string, Record< string, unknown > ];\n\tdirectInsert?: boolean;\n};\n\nconst TypedInnerBlocks = InnerBlocks as unknown as (\n\tprops: CompoundInnerBlocksProps\n) => ReturnType< typeof InnerBlocks >;\n\nexport default function Edit( {\n\tattributes,\n\tsetAttributes,\n}: EditProps ) {\n\tconst { errorMessages, isValid } = useTypiaValidation(\n\t\tattributes,\n\t\tvalidate{{pascalCase}}Attributes\n\t);\n\tconst updateAttribute = createAttributeUpdater( attributes, setAttributes );\n\tconst blockProps = useBlockProps( {\n\t\tclassName: '{{cssClassName}}',\n\t} );\n\tconst rootInnerBlocksPropsOptions = getRootInnerBlocksPropsOptions();\n\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Compound Settings', '{{textDomain}}' ) }>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\tlabel={ __( 'Show dividers between items', '{{textDomain}}' ) }\n\t\t\t\t\t\tchecked={ attributes.showDividers ?? true }\n\t\t\t\t\t\tonChange={ ( value ) => updateAttribute( 'showDividers', value ) }\n\t\t\t\t\t/>\n\t\t\t\t</PanelBody>\n\t\t\t\t{ ! isValid && (\n\t\t\t\t\t<PanelBody title={ __( 'Validation Errors', '{{textDomain}}' ) } initialOpen>\n\t\t\t\t\t\t{ errorMessages.map( ( error, index ) => (\n\t\t\t\t\t\t\t<Notice key={ index } status=\"error\" isDismissible={ false }>\n\t\t\t\t\t\t\t\t{ error }\n\t\t\t\t\t\t\t</Notice>\n\t\t\t\t\t\t) ) }\n\t\t\t\t\t</PanelBody>\n\t\t\t\t) }\n\t\t\t</InspectorControls>\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<RichText\n\t\t\t\t\ttagName=\"h3\"\n\t\t\t\t\tclassName=\"{{cssClassName}}__heading\"\n\t\t\t\t\tvalue={ attributes.heading }\n\t\t\t\t\tonChange={ ( heading ) => updateAttribute( 'heading', heading ) }\n\t\t\t\t\tplaceholder={ __( {{titleJson}}, '{{textDomain}}' ) }\n\t\t\t\t/>\n\t\t\t\t<RichText\n\t\t\t\t\ttagName=\"p\"\n\t\t\t\t\tclassName=\"{{cssClassName}}__intro\"\n\t\t\t\t\tvalue={ attributes.intro ?? '' }\n\t\t\t\t\tonChange={ ( intro ) => updateAttribute( 'intro', intro ) }\n\t\t\t\t\tplaceholder={ __(\n\t\t\t\t\t\t'Add and reorder internal items inside this compound block.',\n\t\t\t\t\t\t'{{textDomain}}'\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t\t{ ! isValid && (\n\t\t\t\t\t<Notice status=\"error\" isDismissible={ false }>\n\t\t\t\t\t\t<ul>\n\t\t\t\t\t\t\t{ errorMessages.map( ( error, index ) => <li key={ index }>{ error }</li> ) }\n\t\t\t\t\t\t</ul>\n\t\t\t\t\t</Notice>\n\t\t\t\t) }\n\t\t\t\t<div className=\"{{cssClassName}}__items\">\n\t\t\t\t\t<TypedInnerBlocks { ...rootInnerBlocksPropsOptions } />\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</>\n\t);\n}\n`;\n\nexport const COMPOUND_PARENT_SAVE_TEMPLATE = `import { InnerBlocks, RichText, useBlockProps } from '@wordpress/block-editor';\n\nimport type { {{pascalCase}}Attributes } from './types';\n\nexport default function Save( {\n\tattributes,\n}: {\n\tattributes: {{pascalCase}}Attributes;\n} ) {\n\treturn (\n\t\t<div\n\t\t\t{ ...useBlockProps.save( {\n\t\t\t\tclassName: '{{cssClassName}}',\n\t\t\t\t'data-show-dividers': ( attributes.showDividers ?? true ) ? 'true' : 'false',\n\t\t\t} ) }\n\t\t>\n\t\t\t<RichText.Content\n\t\t\t\ttagName=\"h3\"\n\t\t\t\tclassName=\"{{cssClassName}}__heading\"\n\t\t\t\tvalue={ attributes.heading }\n\t\t\t/>\n\t\t\t<RichText.Content\n\t\t\t\ttagName=\"p\"\n\t\t\t\tclassName=\"{{cssClassName}}__intro\"\n\t\t\t\tvalue={ attributes.intro ?? '' }\n\t\t\t/>\n\t\t\t<div className=\"{{cssClassName}}__items\">\n\t\t\t\t<InnerBlocks.Content />\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n`;\n\nexport const COMPOUND_PARENT_INDEX_TEMPLATE = `import {\n\\tregisterScaffoldBlockType,\n\\ttype BlockConfiguration,\n} from '@wp-typia/block-types/blocks/registration';\nimport {\n\\tbuildScaffoldBlockRegistration,\n\\tparseScaffoldBlockMetadata,\n} from '@wp-typia/block-runtime/blocks';\n\nimport Edit from './edit';\nimport Save from './save';\nimport metadata from './block-metadata';\nimport './style.scss';\n\nimport type { {{pascalCase}}Attributes } from './types';\n\nconst registration = buildScaffoldBlockRegistration(\n\\tparseScaffoldBlockMetadata<BlockConfiguration< {{pascalCase}}Attributes >>( metadata ),\n\\t{\n\\t\\tedit: Edit,\n\\t\\tsave: Save,\n\\t}\n);\n\nregisterScaffoldBlockType(registration.name, registration.settings);\n`;\n\nexport const COMPOUND_LOCAL_HOOKS_TEMPLATE = `export {\n\tformatValidationError,\n\tformatValidationErrors,\n\tuseTypiaValidation,\n} from '../../hooks';\n\nexport type {\n\tTypiaValidationError,\n\tValidationResult,\n\tValidationState,\n} from '../../hooks';\n`;\n\nexport const COMPOUND_PARENT_VALIDATORS_TEMPLATE = `import typia from 'typia';\nimport currentManifest from './manifest-defaults-document';\nimport type {\n\\t{{pascalCase}}Attributes,\n\\t{{pascalCase}}ValidationResult,\n} from './types';\nimport { createTemplateValidatorToolkit } from '../../validator-toolkit';\n\nconst scaffoldValidators = createTemplateValidatorToolkit< {{pascalCase}}Attributes >( {\n\\tassert: typia.createAssert< {{pascalCase}}Attributes >(),\n\\tclone: typia.misc.createClone< {{pascalCase}}Attributes >() as (\n\\t\\tvalue: {{pascalCase}}Attributes,\n\\t) => {{pascalCase}}Attributes,\n\\tis: typia.createIs< {{pascalCase}}Attributes >(),\n\\tmanifest: currentManifest,\n\\tprune: typia.misc.createPrune< {{pascalCase}}Attributes >(),\n\\trandom: typia.createRandom< {{pascalCase}}Attributes >() as (\n\\t\\t...args: unknown[]\n\\t) => {{pascalCase}}Attributes,\n\\tvalidate: typia.createValidate< {{pascalCase}}Attributes >(),\n} );\n\nexport const validate{{pascalCase}}Attributes =\n\\tscaffoldValidators.validateAttributes as (\n\\t\\tattributes: unknown\n\\t) => {{pascalCase}}ValidationResult;\n\nexport const validators = scaffoldValidators.validators;\n\nexport const sanitize{{pascalCase}}Attributes =\n\\tscaffoldValidators.sanitizeAttributes as (\n\\t\\tattributes: Partial< {{pascalCase}}Attributes >\n\\t) => {{pascalCase}}Attributes;\n\nexport const createAttributeUpdater = scaffoldValidators.createAttributeUpdater;\n`;\n\nexport const COMPOUND_CHILDREN_TEMPLATE = `import type { BlockTemplate } from '@wp-typia/block-types/blocks/registration';\nimport { InnerBlocks } from '@wordpress/block-editor';\n\nexport const DEFAULT_CHILD_BLOCK_NAME = '{{namespace}}/{{slugKebabCase}}-item';\n\nexport interface CompoundChildSpec {\n\\tancestorKeys: string[];\n\\tblockName: string;\n\\tbodyPlaceholder: string;\n\\tcontainer: boolean;\n\\tfolderSlug: string;\n\\tkey: string;\n\\tplacement: 'nested' | 'root';\n\\tsupportsInserter: boolean;\n\\ttemplateInstances: Array< Record< string, unknown > >;\n\\ttitle: string;\n}\n\nexport interface CompoundInnerBlocksConfig {\n\\tdefaultBlock?: [ string, Record< string, unknown > ];\n\\tdirectInsert: boolean;\n\\torientation?: 'horizontal' | 'vertical';\n\\ttemplate?: BlockTemplate;\n\\ttemplateLock: false | 'insert' | 'all';\n}\n\nexport type CompoundInnerBlocksPropsOptions = CompoundInnerBlocksConfig & {\n\\trenderAppender?: typeof InnerBlocks.ButtonBlockAppender;\n};\n\nexport const ROOT_INNER_BLOCKS_PRESET_ID = '{{compoundInnerBlocksPreset}}';\nexport const ROOT_INNER_BLOCKS_PRESET_DESCRIPTION =\n\\t'{{compoundInnerBlocksPresetDescription}}';\n\nconst BASE_INNER_BLOCKS_CONFIG: Omit<\n\\tCompoundInnerBlocksConfig,\n\\t'defaultBlock' | 'template'\n> = {\n\\tdirectInsert: {{compoundInnerBlocksDirectInsert}},\n\\torientation: {{compoundInnerBlocksOrientationExpression}},\n\\ttemplateLock: {{compoundInnerBlocksTemplateLockExpression}},\n};\n\nconst ROOT_BLOCK_NAME = '{{namespace}}/{{slugKebabCase}}';\n\nexport const COMPOUND_CHILD_SPECS: CompoundChildSpec[] = [\n\\t{\n\\t\\tancestorKeys: [],\n\\t\\tblockName: DEFAULT_CHILD_BLOCK_NAME,\n\\t\\tbodyPlaceholder: 'Add supporting details for this internal item.',\n\\t\\tcontainer: false,\n\\t\\tfolderSlug: '{{slugKebabCase}}-item',\n\\t\\tkey: 'item',\n\\t\\tplacement: 'root',\n\\t\\tsupportsInserter: false,\n\\t\\ttemplateInstances: [\n\\t\\t\\t{\n\\t\\t\\t\\tbody: 'Add supporting details for the first internal item.',\n\\t\\t\\t\\ttitle: 'First Item',\n\\t\\t\\t},\n\\t\\t\\t{\n\\t\\t\\t\\tbody: 'Add supporting details for the second internal item.',\n\\t\\t\\t\\ttitle: 'Second Item',\n\\t\\t\\t},\n\\t\\t],\n\\t\\ttitle: '{{compoundChildTitle}}',\n\\t},\n\\t// add-child: insert new child specs here\n];\n\nfunction buildTemplateEntriesForSpec( spec: CompoundChildSpec ): BlockTemplate {\n\\tconst nestedTemplate = buildNestedTemplateForKey( spec.key );\n\n\\treturn spec.templateInstances.map( ( attributes ) =>\n\\t\\tnestedTemplate.length > 0\n\\t\\t\\t? [ spec.blockName, attributes, nestedTemplate ]\n\\t\\t\\t: [ spec.blockName, attributes ]\n\\t);\n}\n\nfunction buildNestedTemplateForKey( key: string ): BlockTemplate {\n\\treturn COMPOUND_CHILD_SPECS.filter(\n\\t\\t( spec ) =>\n\\t\\t\\tspec.placement === 'nested' &&\n\\t\\t\\tspec.ancestorKeys[ spec.ancestorKeys.length - 1 ] === key\n\\t).flatMap( ( spec ) => buildTemplateEntriesForSpec( spec ) );\n}\n\nexport const DEFAULT_CHILD_TEMPLATE: BlockTemplate =\n\\tCOMPOUND_CHILD_SPECS.filter( ( spec ) => spec.placement === 'root' ).flatMap(\n\\t\\t( spec ) => buildTemplateEntriesForSpec( spec )\n\\t);\n\nfunction buildDefaultBlockEntry(\n\\ttemplate?: BlockTemplate\n): [ string, Record< string, unknown > ] | undefined {\n\\tif (\n\\t\\t! BASE_INNER_BLOCKS_CONFIG.directInsert ||\n\\t\\t! Array.isArray( template ) ||\n\\t\\ttemplate.length === 0 ||\n\\t\\ttypeof template[ 0 ]?.[ 0 ] !== 'string'\n\\t) {\n\\t\\treturn undefined;\n\\t}\n\n\\treturn [ template[ 0 ][ 0 ], {} ];\n}\n\nfunction buildInnerBlocksPropsOptions(\n\\tconfig: CompoundInnerBlocksConfig\n): CompoundInnerBlocksPropsOptions {\n\\treturn {\n\\t\\t...config,\n\\t\\trenderAppender:\n\\t\\t\\tconfig.templateLock === 'all'\n\\t\\t\\t\\t? undefined\n\\t\\t\\t\\t: InnerBlocks.ButtonBlockAppender,\n\\t};\n}\n\nexport function getRootInnerBlocksConfig(): CompoundInnerBlocksConfig {\n\\treturn {\n\\t\\t...BASE_INNER_BLOCKS_CONFIG,\n\\t\\tdefaultBlock: buildDefaultBlockEntry( DEFAULT_CHILD_TEMPLATE ),\n\\t\\ttemplate: DEFAULT_CHILD_TEMPLATE,\n\\t};\n}\n\nexport function getRootInnerBlocksPropsOptions(): CompoundInnerBlocksPropsOptions {\n\\treturn buildInnerBlocksPropsOptions( getRootInnerBlocksConfig() );\n}\n\nexport function getChildSpec( blockName: string ): CompoundChildSpec | undefined {\n\\treturn COMPOUND_CHILD_SPECS.find( ( spec ) => spec.blockName === blockName );\n}\n\nexport function getChildTemplate(\n\\tblockName: string\n): BlockTemplate | undefined {\n\\tconst childSpec = getChildSpec( blockName );\n\\tif ( ! childSpec ) {\n\\t\\treturn undefined;\n\\t}\n\n\\tconst nestedTemplate = buildNestedTemplateForKey( childSpec.key );\n\\tif ( nestedTemplate.length > 0 ) {\n\\t\\treturn nestedTemplate;\n\\t}\n\n\\treturn childSpec.container ? [] : undefined;\n}\n\nexport function getChildInnerBlocksConfig(\n\\tblockName: string\n): CompoundInnerBlocksConfig | undefined {\n\\tconst childSpec = getChildSpec( blockName );\n\\tif ( ! childSpec ) {\n\\t\\treturn undefined;\n\\t}\n\n\\tconst template = getChildTemplate( blockName );\n\n\\tif ( ! childSpec.container && ! template ) {\n\\t\\treturn undefined;\n\\t}\n\n\\treturn {\n\\t\\t...BASE_INNER_BLOCKS_CONFIG,\n\\t\\tdefaultBlock: buildDefaultBlockEntry( template ),\n\\t\\ttemplate,\n\\t};\n}\n\nexport function getChildInnerBlocksPropsOptions(\n\\tblockName: string\n): CompoundInnerBlocksPropsOptions | undefined {\n\\tconst config = getChildInnerBlocksConfig( blockName );\n\\tif ( ! config ) {\n\\t\\treturn undefined;\n\\t}\n\n\\treturn buildInnerBlocksPropsOptions( config );\n}\n\nexport function hasNestedChildBlocks( blockName: string ): boolean {\n\\tconst childSpec = getChildSpec( blockName );\n\\tif ( ! childSpec ) {\n\\t\\treturn false;\n\\t}\n\n\\treturn childSpec.container || buildNestedTemplateForKey( childSpec.key ).length > 0;\n}\n\nexport function isRootCompoundChildBlock( blockName: string ): boolean {\n\\tconst childSpec = getChildSpec( blockName );\n\\treturn childSpec?.placement === 'root';\n}\n\nexport { ROOT_BLOCK_NAME };\n`;\n",
|
|
96
97
|
"export const COMPOUND_CHILD_EDIT_TEMPLATE = `import type { BlockEditProps } from '@wp-typia/block-types/blocks/registration';\nimport { InnerBlocks, RichText, useBlockProps } from '@wordpress/block-editor';\nimport { Notice } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\nimport metadata from './block-metadata';\nimport {\n\\tgetChildInnerBlocksPropsOptions,\n\\thasNestedChildBlocks,\n} from '../{{slugKebabCase}}/children';\nimport { useTypiaValidation } from './hooks';\nimport type { {{pascalCase}}ItemAttributes } from './types';\nimport {\n\\tcreateAttributeUpdater,\n\\tvalidate{{pascalCase}}ItemAttributes,\n} from './validators';\n\ntype EditProps = BlockEditProps< {{pascalCase}}ItemAttributes >;\ntype CompoundInnerBlocksProps = Parameters< typeof InnerBlocks >[ 0 ] & {\n\\tdefaultBlock?: [ string, Record< string, unknown > ];\n\\tdirectInsert?: boolean;\n};\n\nconst TypedInnerBlocks = InnerBlocks as unknown as (\n\\tprops: CompoundInnerBlocksProps\n) => ReturnType< typeof InnerBlocks >;\n\nexport default function Edit( {\n\\tattributes,\n\\tsetAttributes,\n}: EditProps ) {\n\\tconst updateAttribute = createAttributeUpdater( attributes, setAttributes );\n\\tconst { errorMessages, isValid } = useTypiaValidation(\n\\t\\tattributes,\n\\t\\tvalidate{{pascalCase}}ItemAttributes\n\\t);\n\\tconst nestedInnerBlocksPropsOptions = getChildInnerBlocksPropsOptions(\n\\t\\tmetadata.name\n\\t);\n\\tconst showsNestedChildren = hasNestedChildBlocks( metadata.name );\n\n\\treturn (\n\\t\\t<div { ...useBlockProps( { className: '{{compoundChildCssClassName}}' } ) }>\n\\t\\t\\t<RichText\n\\t\\t\\t\\ttagName=\"h4\"\n\\t\\t\\t\\tclassName=\"{{compoundChildCssClassName}}__title\"\n\\t\\t\\t\\tvalue={ attributes.title ?? '' }\n\\t\\t\\t\\tonChange={ ( title ) => updateAttribute( 'title', title ) }\n\\t\\t\\t\\tplaceholder={ __( {{compoundChildTitleJson}}, '{{textDomain}}' ) }\n\\t\\t\\t/>\n\\t\\t\\t<RichText\n\\t\\t\\t\\ttagName=\"p\"\n\\t\\t\\t\\tclassName=\"{{compoundChildCssClassName}}__body\"\n\\t\\t\\t\\tvalue={ attributes.body ?? '' }\n\\t\\t\\t\\tonChange={ ( body ) => updateAttribute( 'body', body ) }\n\\t\\t\\t\\tplaceholder={ __( 'Add supporting details for this internal item.', '{{textDomain}}' ) }\n\\t\\t\\t/>\n\\t\\t\\t{ ! isValid && (\n\\t\\t\\t\\t<Notice status=\"error\" isDismissible={ false }>\n\\t\\t\\t\\t\\t<ul>\n\\t\\t\\t\\t\\t\\t{ errorMessages.map( ( error, index ) => <li key={ index }>{ error }</li> ) }\n\\t\\t\\t\\t\\t</ul>\n\\t\\t\\t\\t</Notice>\n\\t\\t\\t) }\n\\t\\t\\t{ showsNestedChildren && (\n\\t\\t\\t\\t<div className=\"{{compoundChildCssClassName}}__children\">\n\\t\\t\\t\\t\\t<TypedInnerBlocks\n\\t\\t\\t\\t\\t\\t{ ...( nestedInnerBlocksPropsOptions ?? {} ) }\n\\t\\t\\t\\t\\t/>\n\\t\\t\\t\\t</div>\n\\t\\t\\t) }\n\\t\\t</div>\n\\t);\n}\n`;\n\nexport const COMPOUND_CHILD_SAVE_TEMPLATE = `import { InnerBlocks, RichText, useBlockProps } from '@wordpress/block-editor';\n\nimport metadata from './block-metadata';\nimport { hasNestedChildBlocks } from '../{{slugKebabCase}}/children';\nimport type { {{pascalCase}}ItemAttributes } from './types';\n\nexport default function Save( {\n\\tattributes,\n}: {\n\\tattributes: {{pascalCase}}ItemAttributes;\n} ) {\n\\tconst showsNestedChildren = hasNestedChildBlocks( metadata.name );\n\n\\treturn (\n\\t\\t<div { ...useBlockProps.save( { className: '{{compoundChildCssClassName}}' } ) }>\n\\t\\t\\t<RichText.Content\n\\t\\t\\t\\ttagName=\"h4\"\n\\t\\t\\t\\tclassName=\"{{compoundChildCssClassName}}__title\"\n\\t\\t\\t\\tvalue={ attributes.title }\n\\t\\t\\t/>\n\\t\\t\\t<RichText.Content\n\\t\\t\\t\\ttagName=\"p\"\n\\t\\t\\t\\tclassName=\"{{compoundChildCssClassName}}__body\"\n\\t\\t\\t\\tvalue={ attributes.body }\n\\t\\t\\t/>\n\\t\\t\\t{ showsNestedChildren && (\n\\t\\t\\t\\t<div className=\"{{compoundChildCssClassName}}__children\">\n\\t\\t\\t\\t\\t<InnerBlocks.Content />\n\\t\\t\\t\\t</div>\n\\t\\t\\t) }\n\\t\\t</div>\n\\t);\n}\n`;\n\nexport const COMPOUND_CHILD_INDEX_TEMPLATE = `import {\n\\tregisterScaffoldBlockType,\n\\ttype BlockConfiguration,\n} from '@wp-typia/block-types/blocks/registration';\nimport {\n\\tbuildScaffoldBlockRegistration,\n\\tparseScaffoldBlockMetadata,\n} from '@wp-typia/block-runtime/blocks';\n\nimport Edit from './edit';\nimport Save from './save';\nimport metadata from './block-metadata';\nimport '../{{slugKebabCase}}/style.scss';\n\nimport type { {{pascalCase}}ItemAttributes } from './types';\n\nconst registration = buildScaffoldBlockRegistration(\n\\tparseScaffoldBlockMetadata<BlockConfiguration< {{pascalCase}}ItemAttributes >>( metadata ),\n\\t{\n\\t\\tedit: Edit,\n\\t\\tsave: Save,\n\\t}\n);\n\nregisterScaffoldBlockType(registration.name, registration.settings);\n`;\n\nexport const COMPOUND_CHILD_VALIDATORS_TEMPLATE = `import typia from 'typia';\nimport currentManifest from './manifest-defaults-document';\nimport type {\n\\t{{pascalCase}}ItemAttributes,\n\\t{{pascalCase}}ItemValidationResult,\n} from './types';\nimport { createTemplateValidatorToolkit } from '../../validator-toolkit';\n\nconst scaffoldValidators = createTemplateValidatorToolkit< {{pascalCase}}ItemAttributes >( {\n\\tassert: typia.createAssert< {{pascalCase}}ItemAttributes >(),\n\\tclone: typia.misc.createClone< {{pascalCase}}ItemAttributes >() as (\n\\t\\tvalue: {{pascalCase}}ItemAttributes,\n\\t) => {{pascalCase}}ItemAttributes,\n\\tis: typia.createIs< {{pascalCase}}ItemAttributes >(),\n\\tmanifest: currentManifest,\n\\tprune: typia.misc.createPrune< {{pascalCase}}ItemAttributes >(),\n\\trandom: typia.createRandom< {{pascalCase}}ItemAttributes >() as (\n\\t\\t...args: unknown[]\n\\t) => {{pascalCase}}ItemAttributes,\n\\tvalidate: typia.createValidate< {{pascalCase}}ItemAttributes >(),\n} );\n\nexport const validate{{pascalCase}}ItemAttributes =\n\\tscaffoldValidators.validateAttributes as (\n\\t\\tattributes: unknown\n\\t) => {{pascalCase}}ItemValidationResult;\n\nexport const validators = scaffoldValidators.validators;\n\nexport const sanitize{{pascalCase}}ItemAttributes =\n\\tscaffoldValidators.sanitizeAttributes as (\n\\t\\tattributes: Partial< {{pascalCase}}ItemAttributes >\n\\t) => {{pascalCase}}ItemAttributes;\n\nexport const createAttributeUpdater = scaffoldValidators.createAttributeUpdater;\n`;\n",
|
|
97
98
|
"export const COMPOUND_PERSISTENCE_PARENT_EDIT_TEMPLATE = `import type { BlockEditProps } from '@wp-typia/block-types/blocks/registration';\nimport { __ } from '@wordpress/i18n';\nimport {\n\\tInspectorControls,\n\\tInnerBlocks,\n\\tRichText,\n\\tuseBlockProps,\n} from '@wordpress/block-editor';\nimport {\n\\tNotice,\n\\tPanelBody,\n\\tTextControl,\n\\tToggleControl,\n} from '@wordpress/components';\n\nimport {\n\\tgetRootInnerBlocksPropsOptions,\n} from './children';\nimport { useTypiaValidation } from './hooks';\nimport type { {{pascalCase}}Attributes } from './types';\nimport {\n\\tcreateAttributeUpdater,\n\\tvalidate{{pascalCase}}Attributes,\n} from './validators';\n\ntype EditProps = BlockEditProps< {{pascalCase}}Attributes >;\ntype CompoundInnerBlocksProps = Parameters< typeof InnerBlocks >[ 0 ] & {\n\\tdefaultBlock?: [ string, Record< string, unknown > ];\n\\tdirectInsert?: boolean;\n};\n\nconst TypedInnerBlocks = InnerBlocks as unknown as (\n\\tprops: CompoundInnerBlocksProps\n) => ReturnType< typeof InnerBlocks >;\n\nexport default function Edit( {\n\\tattributes,\n\\tsetAttributes,\n}: EditProps ) {\n\\tconst { errorMessages, isValid } = useTypiaValidation(\n\\t\\tattributes,\n\\t\\tvalidate{{pascalCase}}Attributes\n\\t);\n\\tconst updateAttribute = createAttributeUpdater( attributes, setAttributes );\n\\tconst blockProps = useBlockProps( {\n\\t\\tclassName: '{{cssClassName}}',\n\\t} );\n\\tconst rootInnerBlocksPropsOptions = getRootInnerBlocksPropsOptions();\n\n\\treturn (\n\\t\\t<>\n\\t\\t\\t<InspectorControls>\n\\t\\t\\t\\t<PanelBody title={ __( 'Compound Settings', '{{textDomain}}' ) }>\n\\t\\t\\t\\t\\t<ToggleControl\n\\t\\t\\t\\t\\t\\tlabel={ __( 'Show dividers between items', '{{textDomain}}' ) }\n\\t\\t\\t\\t\\t\\tchecked={ attributes.showDividers ?? true }\n\\t\\t\\t\\t\\t\\tonChange={ ( value ) => updateAttribute( 'showDividers', value ) }\n\\t\\t\\t\\t\\t/>\n\\t\\t\\t\\t\\t<ToggleControl\n\\t\\t\\t\\t\\t\\tlabel={ __( 'Show persisted count', '{{textDomain}}' ) }\n\\t\\t\\t\\t\\t\\tchecked={ attributes.showCount ?? true }\n\\t\\t\\t\\t\\t\\tonChange={ ( value ) => updateAttribute( 'showCount', value ) }\n\\t\\t\\t\\t\\t/>\n\\t\\t\\t\\t\\t<TextControl\n\\t\\t\\t\\t\\t\\tlabel={ __( 'Button label', '{{textDomain}}' ) }\n\\t\\t\\t\\t\\t\\tvalue={ attributes.buttonLabel ?? 'Persist Count' }\n\\t\\t\\t\\t\\t\\tonChange={ ( buttonLabel ) => updateAttribute( 'buttonLabel', buttonLabel ) }\n\\t\\t\\t\\t\\t/>\n\\t\\t\\t\\t\\t<TextControl\n\\t\\t\\t\\t\\t\\tlabel={ __( 'Resource key', '{{textDomain}}' ) }\n\\t\\t\\t\\t\\t\\tvalue={ attributes.resourceKey ?? '' }\n\\t\\t\\t\\t\\t\\tonChange={ ( resourceKey ) => updateAttribute( 'resourceKey', resourceKey ) }\n\\t\\t\\t\\t\\t\\thelp={ __( 'Stable key used by the persisted counter endpoint.', '{{textDomain}}' ) }\n\\t\\t\\t\\t\\t/>\n\\t\\t\\t\\t\\t<Notice status=\"info\" isDismissible={ false }>\n\\t\\t\\t\\t\\t\\t{ __( 'Storage mode: {{dataStorageMode}}', '{{textDomain}}' ) }\n\\t\\t\\t\\t\\t</Notice>\n\\t\\t\\t\\t\\t<Notice status=\"info\" isDismissible={ false }>\n\\t\\t\\t\\t\\t\\t{ __( 'Persistence policy: {{persistencePolicy}}', '{{textDomain}}' ) }\n\\t\\t\\t\\t\\t</Notice>\n\\t\\t\\t\\t</PanelBody>\n\\t\\t\\t\\t{ ! isValid && (\n\\t\\t\\t\\t\\t<PanelBody title={ __( 'Validation Errors', '{{textDomain}}' ) } initialOpen>\n\\t\\t\\t\\t\\t\\t{ errorMessages.map( ( error, index ) => (\n\\t\\t\\t\\t\\t\\t\\t<Notice key={ index } status=\"error\" isDismissible={ false }>\n\\t\\t\\t\\t\\t\\t\\t\\t{ error }\n\\t\\t\\t\\t\\t\\t\\t</Notice>\n\\t\\t\\t\\t\\t\\t) ) }\n\\t\\t\\t\\t\\t</PanelBody>\n\\t\\t\\t\\t) }\n\\t\\t\\t</InspectorControls>\n\\t\\t\\t<div { ...blockProps }>\n\\t\\t\\t\\t<RichText\n\\t\\t\\t\\t\\ttagName=\"h3\"\n\\t\\t\\t\\t\\tclassName=\"{{cssClassName}}__heading\"\n\\t\\t\\t\\t\\tvalue={ attributes.heading }\n\\t\\t\\t\\t\\tonChange={ ( heading ) => updateAttribute( 'heading', heading ) }\n\\t\\t\\t\\t\\tplaceholder={ __( {{titleJson}}, '{{textDomain}}' ) }\n\\t\\t\\t\\t/>\n\\t\\t\\t\\t<RichText\n\\t\\t\\t\\t\\ttagName=\"p\"\n\\t\\t\\t\\t\\tclassName=\"{{cssClassName}}__intro\"\n\\t\\t\\t\\t\\tvalue={ attributes.intro ?? '' }\n\\t\\t\\t\\t\\tonChange={ ( intro ) => updateAttribute( 'intro', intro ) }\n\\t\\t\\t\\t\\tplaceholder={ __(\n\\t\\t\\t\\t\\t\\t'Add and reorder internal items inside this compound block.',\n\\t\\t\\t\\t\\t\\t'{{textDomain}}'\n\\t\\t\\t\\t\\t) }\n\\t\\t\\t\\t/>\n\\t\\t\\t\\t{ ! isValid && (\n\\t\\t\\t\\t\\t<Notice status=\"error\" isDismissible={ false }>\n\\t\\t\\t\\t\\t\\t<ul>\n\\t\\t\\t\\t\\t\\t\\t{ errorMessages.map( ( error, index ) => <li key={ index }>{ error }</li> ) }\n\\t\\t\\t\\t\\t\\t</ul>\n\\t\\t\\t\\t\\t</Notice>\n\\t\\t\\t\\t) }\n\\t\\t\\t\\t<p className=\"{{cssClassName}}__meta\">\n\\t\\t\\t\\t\\t{ __( 'Resource key:', '{{textDomain}}' ) } { attributes.resourceKey || '—' }\n\\t\\t\\t\\t</p>\n\\t\\t\\t\\t<div className=\"{{cssClassName}}__items\">\n\\t\\t\\t\\t\\t<TypedInnerBlocks { ...rootInnerBlocksPropsOptions } />\n\\t\\t\\t\\t</div>\n\\t\\t\\t</div>\n\\t\\t</>\n\\t);\n}\n`;\n\nexport const COMPOUND_PERSISTENCE_PARENT_SAVE_TEMPLATE = `export default function Save() {\n\\treturn null;\n}\n`;\n\nexport const COMPOUND_PERSISTENCE_PARENT_VALIDATORS_TEMPLATE = `import typia from 'typia';\nimport currentManifest from './manifest-defaults-document';\nimport type {\n\\t{{pascalCase}}Attributes,\n\\t{{pascalCase}}ValidationResult,\n} from './types';\nimport { generateResourceKey } from '@wp-typia/block-runtime/identifiers';\nimport { createTemplateValidatorToolkit } from '../../validator-toolkit';\n\nconst scaffoldValidators = createTemplateValidatorToolkit< {{pascalCase}}Attributes >( {\n\\tassert: typia.createAssert< {{pascalCase}}Attributes >(),\n\\tclone: typia.misc.createClone< {{pascalCase}}Attributes >() as (\n\\t\\tvalue: {{pascalCase}}Attributes,\n\\t) => {{pascalCase}}Attributes,\n\\tis: typia.createIs< {{pascalCase}}Attributes >(),\n\\tmanifest: currentManifest,\n\\tprune: typia.misc.createPrune< {{pascalCase}}Attributes >(),\n\\trandom: typia.createRandom< {{pascalCase}}Attributes >() as (\n\\t\\t...args: unknown[]\n\\t) => {{pascalCase}}Attributes,\n\\tfinalize: ( normalized ) => ( {\n\\t\\t...normalized,\n\\t\\tresourceKey:\n\\t\\t\\tnormalized.resourceKey && normalized.resourceKey.length > 0\n\\t\\t\\t\\t? normalized.resourceKey\n\\t\\t\\t\\t: generateResourceKey( '{{slugKebabCase}}' ),\n\\t} ),\n\\tvalidate: typia.createValidate< {{pascalCase}}Attributes >(),\n} );\n\nexport const validators = scaffoldValidators.validators;\n\nexport const validate{{pascalCase}}Attributes =\n\\tscaffoldValidators.validateAttributes as (\n\\t\\tattributes: unknown\n\\t) => {{pascalCase}}ValidationResult;\n\nexport const sanitize{{pascalCase}}Attributes =\n\\tscaffoldValidators.sanitizeAttributes as (\n\\t\\tattributes: Partial< {{pascalCase}}Attributes >\n\\t) => {{pascalCase}}Attributes;\n\nexport const createAttributeUpdater = scaffoldValidators.createAttributeUpdater;\n`;\n\nexport const COMPOUND_PERSISTENCE_PARENT_INTERACTIVITY_TEMPLATE = `import { getContext, store } from '@wordpress/interactivity';\nimport { generatePublicWriteRequestId } from '@wp-typia/block-runtime/identifiers';\n\nimport { fetchBootstrap, fetchState, writeState } from './api';\nimport type {\n\\t{{pascalCase}}ClientState,\n\\t{{pascalCase}}Context,\n\\t{{pascalCase}}State,\n} from './types';\n\nfunction hasExpiredPublicWriteToken(\n\\texpiresAt?: number\n): boolean {\n\\treturn (\n\\t\\ttypeof expiresAt === 'number' &&\n\\t\\texpiresAt > 0 &&\n\\t\\tDate.now() >= expiresAt * 1000\n\\t);\n}\n\nfunction getWriteBlockedMessage(\n\\tcontext: {{pascalCase}}Context\n): string {\n\\treturn context.persistencePolicy === 'authenticated'\n\\t\\t? 'Sign in to persist this counter.'\n\\t\\t: 'Public writes are temporarily unavailable.';\n}\n\nconst BOOTSTRAP_MAX_ATTEMPTS = 3;\nconst BOOTSTRAP_RETRY_DELAYS_MS = [ 250, 500 ];\n\nasync function waitForBootstrapRetry( delayMs: number ): Promise< void > {\n\\tawait new Promise( ( resolve ) => {\n\\t\\tsetTimeout( resolve, delayMs );\n\\t} );\n}\n\nfunction getClientState(\n\\tcontext: {{pascalCase}}Context\n): {{pascalCase}}ClientState {\n\\tif ( context.client ) {\n\\t\\treturn context.client;\n\\t}\n\n\\tcontext.client = {\n\\t\\tbootstrapError: '',\n\\t\\twriteExpiry: 0,\n\\t\\twriteNonce: '',\n\\t\\twriteToken: '',\n\\t};\n\n\\treturn context.client;\n}\n\nfunction clearBootstrapError(\n\\tcontext: {{pascalCase}}Context,\n\\tclientState: {{pascalCase}}ClientState\n): void {\n\\tif ( context.error === clientState.bootstrapError ) {\n\\t\\tcontext.error = '';\n\\t}\n\\tclientState.bootstrapError = '';\n}\n\nfunction setBootstrapError(\n\\tcontext: {{pascalCase}}Context,\n\\tclientState: {{pascalCase}}ClientState,\n\\tmessage: string\n): void {\n\\tclientState.bootstrapError = message;\n\\tcontext.error = message;\n}\n\nconst { actions, state } = store( '{{slugKebabCase}}', {\n\\tstate: {\n\\t\\tisHydrated: false,\n\\t} as {{pascalCase}}State,\n\n\\tactions: {\n\\t\\tasync loadState() {\n\\t\\t\\tconst context = getContext< {{pascalCase}}Context >();\n\\t\\t\\tif ( context.postId <= 0 || ! context.resourceKey ) {\n\\t\\t\\t\\treturn;\n\\t\\t\\t}\n\n\\t\\t\\tcontext.isLoading = true;\n\\t\\t\\tcontext.error = '';\n\n\\t\\t\\ttry {\n\\t\\t\\t\\tconst result = await fetchState( {\n\\t\\t\\t\\t\\tpostId: context.postId,\n\\t\\t\\t\\t\\tresourceKey: context.resourceKey,\n\\t\\t\\t\\t}, {\n\\t\\t\\t\\t\\ttransportTarget: 'frontend',\n\\t\\t\\t\\t} );\n\\t\\t\\t\\tif ( ! result.isValid || ! result.data ) {\n\\t\\t\\t\\t\\tcontext.error = result.errors[ 0 ]?.expected ?? 'Unable to load counter';\n\\t\\t\\t\\t\\treturn;\n\\t\\t\\t\\t}\n\\t\\t\\t\\tcontext.count = result.data.count;\n\\t\\t\\t} catch ( error ) {\n\\t\\t\\t\\tcontext.error =\n\\t\\t\\t\\t\\terror instanceof Error ? error.message : 'Unknown loading error';\n\\t\\t\\t} finally {\n\\t\\t\\t\\tcontext.isLoading = false;\n\\t\\t\\t}\n\\t\\t},\n\\t\\tasync loadBootstrap() {\n\\t\\t\\tconst context = getContext< {{pascalCase}}Context >();\n\\t\\t\\tconst clientState = getClientState( context );\n\\t\\t\\tif ( context.postId <= 0 || ! context.resourceKey ) {\n\\t\\t\\t\\tcontext.bootstrapReady = true;\n\\t\\t\\t\\tcontext.canWrite = false;\n\\t\\t\\t\\tclientState.bootstrapError = '';\n\\t\\t\\t\\tclientState.writeExpiry = 0;\n\\t\\t\\t\\tclientState.writeNonce = '';\n\\t\\t\\t\\tclientState.writeToken = '';\n\\t\\t\\t\\treturn;\n\\t\\t\\t}\n\n\\t\\t\\tcontext.isBootstrapping = true;\n\n\\t\\t\\tlet bootstrapSucceeded = false;\n\\t\\t\\tlet lastBootstrapError =\n\\t\\t\\t\\t'Unable to initialize write access';\n\\t\\t\\tconst includePublicWriteCredentials = {{isPublicPersistencePolicy}};\n\\t\\t\\tconst includeRestNonce = {{isAuthenticatedPersistencePolicy}};\n\n\\t\\t\\tfor ( let attempt = 1; attempt <= BOOTSTRAP_MAX_ATTEMPTS; attempt += 1 ) {\n\\t\\t\\t\\ttry {\n\\t\\t\\t\\t\\tconst result = await fetchBootstrap( {\n\\t\\t\\t\\t\\t\\tpostId: context.postId,\n\\t\\t\\t\\t\\t\\tresourceKey: context.resourceKey,\n\\t\\t\\t\\t\\t}, {\n\\t\\t\\t\\t\\t\\ttransportTarget: 'frontend',\n\\t\\t\\t\\t\\t} );\n\\t\\t\\t\\t\\tif ( ! result.isValid || ! result.data ) {\n\\t\\t\\t\\t\\t\\tlastBootstrapError =\n\\t\\t\\t\\t\\t\\t\\tresult.errors[ 0 ]?.expected ??\n\\t\\t\\t\\t\\t\\t\\t'Unable to initialize write access';\n\\t\\t\\t\\t\\t\\tif ( attempt < BOOTSTRAP_MAX_ATTEMPTS ) {\n\\t\\t\\t\\t\\t\\t\\tawait waitForBootstrapRetry(\n\\t\\t\\t\\t\\t\\t\\t\\tBOOTSTRAP_RETRY_DELAYS_MS[ attempt - 1 ] ?? 750\n\\t\\t\\t\\t\\t\\t\\t);\n\\t\\t\\t\\t\\t\\t\\tcontinue;\n\\t\\t\\t\\t\\t\\t}\n\\t\\t\\t\\t\\t\\tbreak;\n\\t\\t\\t\\t\\t}\n\n\\t\\t\\t\\t\\tclientState.writeExpiry =\n\\t\\t\\t\\t\\t\\tincludePublicWriteCredentials &&\n\\t\\t\\t\\t\\t\\t'publicWriteExpiresAt' in result.data &&\n\\t\\t\\t\\t\\t\\ttypeof result.data.publicWriteExpiresAt === 'number' &&\n\\t\\t\\t\\t\\t\\tresult.data.publicWriteExpiresAt > 0\n\\t\\t\\t\\t\\t\\t\\t? result.data.publicWriteExpiresAt\n\\t\\t\\t\\t\\t\\t\\t: 0;\n\\t\\t\\t\\t\\tclientState.writeToken =\n\\t\\t\\t\\t\\t\\tincludePublicWriteCredentials &&\n\\t\\t\\t\\t\\t\\t'publicWriteToken' in result.data &&\n\\t\\t\\t\\t\\t\\ttypeof result.data.publicWriteToken === 'string' &&\n\\t\\t\\t\\t\\t\\tresult.data.publicWriteToken.length > 0\n\\t\\t\\t\\t\\t\\t\\t? result.data.publicWriteToken\n\\t\\t\\t\\t\\t\\t\\t: '';\n\\t\\t\\t\\t\\tclientState.writeNonce =\n\\t\\t\\t\\t\\t\\tincludeRestNonce &&\n\\t\\t\\t\\t\\t\\t'restNonce' in result.data &&\n\\t\\t\\t\\t\\t\\ttypeof result.data.restNonce === 'string' &&\n\\t\\t\\t\\t\\t\\tresult.data.restNonce.length > 0\n\\t\\t\\t\\t\\t\\t\\t? result.data.restNonce\n\\t\\t\\t\\t\\t\\t\\t: '';\n\\t\\t\\t\\t\\tcontext.bootstrapReady = true;\n\\t\\t\\t\\t\\tcontext.canWrite =\n\\t\\t\\t\\t\\t\\tresult.data.canWrite === true &&\n\\t\\t\\t\\t\\t\\t(\n\\t\\t\\t\\t\\t\\t\\tcontext.persistencePolicy === 'authenticated'\n\\t\\t\\t\\t\\t\\t\\t\\t? clientState.writeNonce.length > 0\n\\t\\t\\t\\t\\t\\t\\t\\t: clientState.writeToken.length > 0 &&\n\\t\\t\\t\\t\\t\\t\\t\\t\\t! hasExpiredPublicWriteToken( clientState.writeExpiry )\n\\t\\t\\t\\t\\t\\t);\n\\t\\t\\t\\t\\tclearBootstrapError( context, clientState );\n\\t\\t\\t\\t\\tbootstrapSucceeded = true;\n\\t\\t\\t\\t\\tbreak;\n\\t\\t\\t\\t} catch ( error ) {\n\\t\\t\\t\\t\\tlastBootstrapError =\n\\t\\t\\t\\t\\t\\terror instanceof Error ? error.message : 'Unknown bootstrap error';\n\\t\\t\\t\\t\\tif ( attempt < BOOTSTRAP_MAX_ATTEMPTS ) {\n\\t\\t\\t\\t\\t\\tawait waitForBootstrapRetry(\n\\t\\t\\t\\t\\t\\t\\tBOOTSTRAP_RETRY_DELAYS_MS[ attempt - 1 ] ?? 750\n\\t\\t\\t\\t\\t\\t);\n\\t\\t\\t\\t\\t\\tcontinue;\n\\t\\t\\t\\t\\t}\n\\t\\t\\t\\t\\tbreak;\n\\t\\t\\t\\t}\n\\t\\t\\t}\n\n\\t\\t\\tif ( ! bootstrapSucceeded ) {\n\\t\\t\\t\\tcontext.bootstrapReady = false;\n\\t\\t\\t\\tcontext.canWrite = false;\n\\t\\t\\t\\tclientState.writeExpiry = 0;\n\\t\\t\\t\\tclientState.writeNonce = '';\n\\t\\t\\t\\tclientState.writeToken = '';\n\\t\\t\\t\\tsetBootstrapError( context, clientState, lastBootstrapError );\n\\t\\t\\t}\n\\t\\t\\tcontext.isBootstrapping = false;\n\\t\\t},\n\\t\\tasync increment() {\n\\t\\t\\tconst context = getContext< {{pascalCase}}Context >();\n\\t\\t\\tconst clientState = getClientState( context );\n\\t\\t\\tif ( context.postId <= 0 || ! context.resourceKey ) {\n\\t\\t\\t\\treturn;\n\\t\\t\\t}\n\\t\\t\\tif ( ! context.bootstrapReady ) {\n\\t\\t\\t\\tawait actions.loadBootstrap();\n\\t\\t\\t}\n\\t\\t\\tif ( ! context.bootstrapReady ) {\n\\t\\t\\t\\tcontext.error = 'Write access is still initializing.';\n\\t\\t\\t\\treturn;\n\\t\\t\\t}\n\\t\\t\\tif (\n\\t\\t\\t\\tcontext.persistencePolicy === 'public' &&\n\\t\\t\\t\\thasExpiredPublicWriteToken( clientState.writeExpiry )\n\\t\\t\\t) {\n\\t\\t\\t\\tawait actions.loadBootstrap();\n\\t\\t\\t}\n\\t\\t\\tif (\n\\t\\t\\t\\tcontext.persistencePolicy === 'public' &&\n\\t\\t\\t\\thasExpiredPublicWriteToken( clientState.writeExpiry )\n\\t\\t\\t) {\n\\t\\t\\t\\tcontext.canWrite = false;\n\\t\\t\\t\\tcontext.error = getWriteBlockedMessage( context );\n\\t\\t\\t\\treturn;\n\\t\\t\\t}\n\\t\\t\\tif ( ! context.canWrite ) {\n\\t\\t\\t\\tcontext.error = getWriteBlockedMessage( context );\n\\t\\t\\t\\treturn;\n\\t\\t\\t}\n\n\\t\\t\\tcontext.isSaving = true;\n\\t\\t\\tcontext.error = '';\n\n\\t\\t\\ttry {\n\\t\\t\\t\\tconst result = await writeState( {\n\\t\\t\\t\\t\\tdelta: 1,\n\\t\\t\\t\\t\\tpostId: context.postId,\n\\t\\t\\t\\t\\tpublicWriteRequestId:\n\\t\\t\\t\\t\\t\\tcontext.persistencePolicy === 'public'\n\\t\\t\\t\\t\\t\\t\\t? generatePublicWriteRequestId()\n\\t\\t\\t\\t\\t\\t\\t: undefined,\n\\t\\t\\t\\t\\tpublicWriteToken:\n\\t\\t\\t\\t\\t\\tcontext.persistencePolicy === 'public' &&\n\\t\\t\\t\\t\\t\\tclientState.writeToken.length > 0\n\\t\\t\\t\\t\\t\\t\\t? clientState.writeToken\n\\t\\t\\t\\t\\t\\t\\t: undefined,\n\\t\\t\\t\\t\\tresourceKey: context.resourceKey,\n\\t\\t\\t\\t}, {\n\\t\\t\\t\\t\\trestNonce:\n\\t\\t\\t\\t\\t\\tclientState.writeNonce.length > 0\n\\t\\t\\t\\t\\t\\t\\t? clientState.writeNonce\n\\t\\t\\t\\t\\t\\t\\t: undefined,\n\\t\\t\\t\\t\\ttransportTarget: 'frontend',\n\\t\\t\\t\\t} );\n\\t\\t\\t\\tif ( ! result.isValid || ! result.data ) {\n\\t\\t\\t\\t\\tcontext.error = result.errors[ 0 ]?.expected ?? 'Unable to update counter';\n\\t\\t\\t\\t\\treturn;\n\\t\\t\\t\\t}\n\\t\\t\\t\\tcontext.count = result.data.count;\n\\t\\t\\t\\tcontext.storage = result.data.storage;\n\\t\\t\\t} catch ( error ) {\n\\t\\t\\t\\tcontext.error =\n\\t\\t\\t\\t\\terror instanceof Error ? error.message : 'Unknown update error';\n\\t\\t\\t} finally {\n\\t\\t\\t\\tcontext.isSaving = false;\n\\t\\t\\t}\n\\t\\t},\n\\t},\n\n\\tcallbacks: {\n\\t\\tinit() {\n\\t\\t\\tconst context = getContext< {{pascalCase}}Context >();\n\\t\\t\\tcontext.client = {\n\\t\\t\\t\\tbootstrapError: '',\n\\t\\t\\t\\twriteExpiry: 0,\n\\t\\t\\t\\twriteNonce: '',\n\\t\\t\\t\\twriteToken: '',\n\\t\\t\\t};\n\\t\\t\\tcontext.bootstrapReady = false;\n\\t\\t\\tcontext.canWrite = false;\n\\t\\t\\tcontext.count = 0;\n\\t\\t\\tcontext.error = '';\n\\t\\t\\tcontext.isBootstrapping = false;\n\\t\\t\\tcontext.isLoading = false;\n\\t\\t\\tcontext.isSaving = false;\n\\t\\t},\n\\t\\tmounted() {\n\\t\\t\\tstate.isHydrated = true;\n\\t\\t\\tif ( typeof document !== 'undefined' ) {\n\\t\\t\\t\\tdocument.documentElement.dataset[ '{{slugCamelCase}}Hydrated' ] = 'true';\n\\t\\t\\t}\n\\t\\t\\tvoid Promise.allSettled( [\n\\t\\t\\t\\tactions.loadState(),\n\\t\\t\\t\\tactions.loadBootstrap(),\n\\t\\t\\t] );\n\\t\\t},\n\\t},\n} );\n`;\n",
|
|
98
|
-
"import type {\n\tScaffoldTemplateVariables,\n} from \"./scaffold.js\";\nimport type {\n\tBuiltInTemplateId,\n} from \"./template-registry.js\";\nimport { buildBuiltInNonTsArtifacts } from \"./built-in-block-non-ts-artifacts.js\";\nimport {\n\tBASIC_EDIT_TEMPLATE,\n\tBASIC_INDEX_TEMPLATE,\n\tBASIC_SAVE_TEMPLATE,\n\tBASIC_VALIDATORS_TEMPLATE,\n\tBLOCK_METADATA_WRAPPER_TEMPLATE,\n\tCOMPOUND_CHILD_EDIT_TEMPLATE,\n\tCOMPOUND_CHILD_INDEX_TEMPLATE,\n\tCOMPOUND_CHILD_SAVE_TEMPLATE,\n\tCOMPOUND_CHILD_VALIDATORS_TEMPLATE,\n\tCOMPOUND_CHILDREN_TEMPLATE,\n\tCOMPOUND_LOCAL_HOOKS_TEMPLATE,\n\tCOMPOUND_PARENT_EDIT_TEMPLATE,\n\tCOMPOUND_PARENT_INDEX_TEMPLATE,\n\tCOMPOUND_PARENT_SAVE_TEMPLATE,\n\tCOMPOUND_PARENT_VALIDATORS_TEMPLATE,\n\tCOMPOUND_PERSISTENCE_PARENT_EDIT_TEMPLATE,\n\tCOMPOUND_PERSISTENCE_PARENT_INTERACTIVITY_TEMPLATE,\n\tCOMPOUND_PERSISTENCE_PARENT_SAVE_TEMPLATE,\n\tCOMPOUND_PERSISTENCE_PARENT_VALIDATORS_TEMPLATE,\n\tINTERACTIVITY_EDIT_TEMPLATE,\n\tINTERACTIVITY_INDEX_TEMPLATE,\n\tINTERACTIVITY_SAVE_TEMPLATE,\n\tINTERACTIVITY_SCRIPT_TEMPLATE,\n\tINTERACTIVITY_VALIDATORS_TEMPLATE,\n\tMANIFEST_DEFAULTS_DOCUMENT_WRAPPER_TEMPLATE,\n\tMANIFEST_DOCUMENT_WRAPPER_TEMPLATE,\n\tPERSISTENCE_EDIT_TEMPLATE,\n\tPERSISTENCE_INDEX_TEMPLATE,\n\tPERSISTENCE_INTERACTIVITY_TEMPLATE,\n\tPERSISTENCE_SAVE_TEMPLATE,\n\tPERSISTENCE_VALIDATORS_TEMPLATE,\n\tQUERY_LOOP_INDEX_TEMPLATE,\n\tSHARED_HOOKS_TEMPLATE,\n} from \"./built-in-block-code-templates.js\";\nimport { renderMustacheTemplateString } from \"./template-render.js\";\n\n/**\n * Emits built-in scaffold source files from typed block generation inputs.\n *\n * This module is intentionally internal to the runtime boundary: built-in\n * scaffold bodies and adjacent emitted source files are now derived from\n * `ScaffoldTemplateVariables`, but the emitter helpers themselves are not part\n * of the public root export surface.\n */\nexport interface BuiltInCodeArtifact {\n\t/**\n\t * File path relative to the generated project root.\n\t */\n\trelativePath: string;\n\t/**\n\t * Fully rendered file contents with a trailing newline.\n\t */\n\tsource: string;\n}\n\ninterface BuiltInCodeTemplateSpec {\n\trelativePath: string;\n\ttemplate: string;\n}\n\nfunction renderCodeTemplate(\n\ttemplate: string,\n\tvariables: ScaffoldTemplateVariables,\n): string {\n\tconst rendered = renderMustacheTemplateString(template, variables);\n\treturn rendered.endsWith(\"\\n\") ? rendered : `${rendered}\\n`;\n}\n\nfunction createCodeArtifact(\n\trelativePath: string,\n\ttemplate: string,\n\tvariables: ScaffoldTemplateVariables,\n): BuiltInCodeArtifact {\n\treturn {\n\t\trelativePath,\n\t\tsource: renderCodeTemplate(template, variables),\n\t};\n}\n\nfunction createCodeArtifacts(\n\tspecs: readonly BuiltInCodeTemplateSpec[],\n\tvariables: ScaffoldTemplateVariables,\n): BuiltInCodeArtifact[] {\n\treturn specs.map((spec) =>\n\t\tcreateCodeArtifact(spec.relativePath, spec.template, variables),\n\t);\n}\n\nfunction createTypedJsonWrapperArtifacts(\n\trelativeDir: string,\n\tvariables: ScaffoldTemplateVariables,\n): BuiltInCodeArtifact[] {\n\treturn [\n\t\tcreateCodeArtifact(\n\t\t\t`${relativeDir}/block-metadata.ts`,\n\t\t\tBLOCK_METADATA_WRAPPER_TEMPLATE,\n\t\t\tvariables,\n\t\t),\n\t\tcreateCodeArtifact(\n\t\t\t`${relativeDir}/manifest-document.ts`,\n\t\t\tMANIFEST_DOCUMENT_WRAPPER_TEMPLATE,\n\t\t\tvariables,\n\t\t),\n\t\tcreateCodeArtifact(\n\t\t\t`${relativeDir}/manifest-defaults-document.ts`,\n\t\t\tMANIFEST_DEFAULTS_DOCUMENT_WRAPPER_TEMPLATE,\n\t\t\tvariables,\n\t\t),\n\t];\n}\n\nfunction ensureUniqueArtifactPaths(\n\tartifacts: BuiltInCodeArtifact[],\n): BuiltInCodeArtifact[] {\n\tconst seenPaths = new Set<string>();\n\n\tfor (const artifact of artifacts) {\n\t\tif (seenPaths.has(artifact.relativePath)) {\n\t\t\tthrow new Error(\n\t\t\t\t`Duplicate built-in artifact path emitted: ${artifact.relativePath}`,\n\t\t\t);\n\t\t}\n\t\tseenPaths.add(artifact.relativePath);\n\t}\n\n\treturn artifacts;\n}\n\nfunction buildBasicCodeArtifacts(\n\tvariables: ScaffoldTemplateVariables,\n): BuiltInCodeArtifact[] {\n\treturn ensureUniqueArtifactPaths([\n\t\t...createCodeArtifacts(\n\t\t\t[\n\t\t\t\t{\n\t\t\t\t\trelativePath: \"src/hooks.ts\",\n\t\t\t\t\ttemplate: SHARED_HOOKS_TEMPLATE,\n\t\t\t\t},\n\t\t\t],\n\t\t\tvariables,\n\t\t),\n\t\t...createTypedJsonWrapperArtifacts(\"src\", variables),\n\t\t...createCodeArtifacts(\n\t\t\t[\n\t\t\t\t{\n\t\t\t\t\trelativePath: \"src/edit.tsx\",\n\t\t\t\t\ttemplate: BASIC_EDIT_TEMPLATE,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\trelativePath: \"src/save.tsx\",\n\t\t\t\t\ttemplate: BASIC_SAVE_TEMPLATE,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\trelativePath: \"src/index.tsx\",\n\t\t\t\t\ttemplate: BASIC_INDEX_TEMPLATE,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\trelativePath: \"src/validators.ts\",\n\t\t\t\t\ttemplate: BASIC_VALIDATORS_TEMPLATE,\n\t\t\t\t},\n\t\t\t],\n\t\t\tvariables,\n\t\t),\n\t\t...buildBuiltInNonTsArtifacts({ templateId: \"basic\", variables }),\n\t]);\n}\n\nfunction buildInteractivityCodeArtifacts(\n\tvariables: ScaffoldTemplateVariables,\n): BuiltInCodeArtifact[] {\n\treturn ensureUniqueArtifactPaths([\n\t\t...createCodeArtifacts(\n\t\t\t[\n\t\t\t\t{\n\t\t\t\t\trelativePath: \"src/hooks.ts\",\n\t\t\t\t\ttemplate: SHARED_HOOKS_TEMPLATE,\n\t\t\t\t},\n\t\t\t],\n\t\t\tvariables,\n\t\t),\n\t\t...createTypedJsonWrapperArtifacts(\"src\", variables),\n\t\t...createCodeArtifacts(\n\t\t\t[\n\t\t\t\t{\n\t\t\t\t\trelativePath: \"src/edit.tsx\",\n\t\t\t\t\ttemplate: INTERACTIVITY_EDIT_TEMPLATE,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\trelativePath: \"src/save.tsx\",\n\t\t\t\t\ttemplate: INTERACTIVITY_SAVE_TEMPLATE,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\trelativePath: \"src/index.tsx\",\n\t\t\t\t\ttemplate: INTERACTIVITY_INDEX_TEMPLATE,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\trelativePath: \"src/interactivity.ts\",\n\t\t\t\t\ttemplate: INTERACTIVITY_SCRIPT_TEMPLATE,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\trelativePath: \"src/validators.ts\",\n\t\t\t\t\ttemplate: INTERACTIVITY_VALIDATORS_TEMPLATE,\n\t\t\t\t},\n\t\t\t],\n\t\t\tvariables,\n\t\t),\n\t\t...buildBuiltInNonTsArtifacts({ templateId: \"interactivity\", variables }),\n\t]);\n}\n\nfunction buildCompoundCodeArtifacts(\n\tvariables: ScaffoldTemplateVariables,\n): BuiltInCodeArtifact[] {\n\tconst parentBasePath = `src/blocks/${variables.slugKebabCase}`;\n\tconst childBasePath = `src/blocks/${variables.slugKebabCase}-item`;\n\tconst compoundPersistenceEnabled =\n\t\tvariables.compoundPersistenceEnabled === \"true\";\n\n\treturn ensureUniqueArtifactPaths([\n\t\tcreateCodeArtifact(\"src/hooks.ts\", SHARED_HOOKS_TEMPLATE, variables),\n\t\t...createTypedJsonWrapperArtifacts(parentBasePath, variables),\n\t\tcreateCodeArtifact(\n\t\t\t`${parentBasePath}/edit.tsx`,\n\t\t\tcompoundPersistenceEnabled\n\t\t\t\t? COMPOUND_PERSISTENCE_PARENT_EDIT_TEMPLATE\n\t\t\t\t: COMPOUND_PARENT_EDIT_TEMPLATE,\n\t\t\tvariables,\n\t\t),\n\t\tcreateCodeArtifact(\n\t\t\t`${parentBasePath}/save.tsx`,\n\t\t\tcompoundPersistenceEnabled\n\t\t\t\t? COMPOUND_PERSISTENCE_PARENT_SAVE_TEMPLATE\n\t\t\t\t: COMPOUND_PARENT_SAVE_TEMPLATE,\n\t\t\tvariables,\n\t\t),\n\t\tcreateCodeArtifact(\n\t\t\t`${parentBasePath}/index.tsx`,\n\t\t\tCOMPOUND_PARENT_INDEX_TEMPLATE,\n\t\t\tvariables,\n\t\t),\n\t\tcreateCodeArtifact(\n\t\t\t`${parentBasePath}/hooks.ts`,\n\t\t\tCOMPOUND_LOCAL_HOOKS_TEMPLATE,\n\t\t\tvariables,\n\t\t),\n\t\tcreateCodeArtifact(\n\t\t\t`${parentBasePath}/validators.ts`,\n\t\t\tcompoundPersistenceEnabled\n\t\t\t\t? COMPOUND_PERSISTENCE_PARENT_VALIDATORS_TEMPLATE\n\t\t\t\t: COMPOUND_PARENT_VALIDATORS_TEMPLATE,\n\t\t\tvariables,\n\t\t),\n\t\tcreateCodeArtifact(\n\t\t\t`${parentBasePath}/children.ts`,\n\t\t\tCOMPOUND_CHILDREN_TEMPLATE,\n\t\t\tvariables,\n\t\t),\n\t\t...(compoundPersistenceEnabled\n\t\t\t? [\n\t\t\t\t\tcreateCodeArtifact(\n\t\t\t\t\t\t`${parentBasePath}/interactivity.ts`,\n\t\t\t\t\t\tCOMPOUND_PERSISTENCE_PARENT_INTERACTIVITY_TEMPLATE,\n\t\t\t\t\t\tvariables,\n\t\t\t\t\t),\n\t\t\t\t]\n\t\t\t: []),\n\t\t...createTypedJsonWrapperArtifacts(childBasePath, variables),\n\t\tcreateCodeArtifact(\n\t\t\t`${childBasePath}/edit.tsx`,\n\t\t\tCOMPOUND_CHILD_EDIT_TEMPLATE,\n\t\t\tvariables,\n\t\t),\n\t\tcreateCodeArtifact(\n\t\t\t`${childBasePath}/save.tsx`,\n\t\t\tCOMPOUND_CHILD_SAVE_TEMPLATE,\n\t\t\tvariables,\n\t\t),\n\t\tcreateCodeArtifact(\n\t\t\t`${childBasePath}/index.tsx`,\n\t\t\tCOMPOUND_CHILD_INDEX_TEMPLATE,\n\t\t\tvariables,\n\t\t),\n\t\tcreateCodeArtifact(\n\t\t\t`${childBasePath}/hooks.ts`,\n\t\t\tCOMPOUND_LOCAL_HOOKS_TEMPLATE,\n\t\t\tvariables,\n\t\t),\n\t\tcreateCodeArtifact(\n\t\t\t`${childBasePath}/validators.ts`,\n\t\t\tCOMPOUND_CHILD_VALIDATORS_TEMPLATE,\n\t\t\tvariables,\n\t\t),\n\t\t...buildBuiltInNonTsArtifacts({ templateId: \"compound\", variables }),\n\t]);\n}\n\nfunction buildPersistenceCodeArtifacts(\n\tvariables: ScaffoldTemplateVariables,\n): BuiltInCodeArtifact[] {\n\treturn ensureUniqueArtifactPaths([\n\t\t...createCodeArtifacts(\n\t\t\t[\n\t\t\t\t{\n\t\t\t\t\trelativePath: \"src/hooks.ts\",\n\t\t\t\t\ttemplate: SHARED_HOOKS_TEMPLATE,\n\t\t\t\t},\n\t\t\t],\n\t\t\tvariables,\n\t\t),\n\t\t...createTypedJsonWrapperArtifacts(\"src\", variables),\n\t\t...createCodeArtifacts(\n\t\t\t[\n\t\t\t\t{\n\t\t\t\t\trelativePath: \"src/edit.tsx\",\n\t\t\t\t\ttemplate: PERSISTENCE_EDIT_TEMPLATE,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\trelativePath: \"src/save.tsx\",\n\t\t\t\t\ttemplate: PERSISTENCE_SAVE_TEMPLATE,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\trelativePath: \"src/index.tsx\",\n\t\t\t\t\ttemplate: PERSISTENCE_INDEX_TEMPLATE,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\trelativePath: \"src/interactivity.ts\",\n\t\t\t\t\ttemplate: PERSISTENCE_INTERACTIVITY_TEMPLATE,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\trelativePath: \"src/validators.ts\",\n\t\t\t\t\ttemplate: PERSISTENCE_VALIDATORS_TEMPLATE,\n\t\t\t\t},\n\t\t\t],\n\t\t\tvariables,\n\t\t),\n\t\t...buildBuiltInNonTsArtifacts({ templateId: \"persistence\", variables }),\n\t]);\n}\n\nfunction buildQueryLoopCodeArtifacts(\n\tvariables: ScaffoldTemplateVariables,\n): BuiltInCodeArtifact[] {\n\treturn ensureUniqueArtifactPaths([\n\t\t...createCodeArtifacts(\n\t\t\t[\n\t\t\t\t{\n\t\t\t\t\trelativePath: \"src/index.ts\",\n\t\t\t\t\ttemplate: QUERY_LOOP_INDEX_TEMPLATE,\n\t\t\t\t},\n\t\t\t],\n\t\t\tvariables,\n\t\t),\n\t\t...buildBuiltInNonTsArtifacts({ templateId: \"query-loop\", variables }),\n\t]);\n}\n\n/**\n * Build the emitter-owned scaffold files for a built-in template family.\n *\n * These artifacts are written after template copy so built-in structural,\n * source, and adjacent generated files always come from the typed generator\n * boundary rather than stale Mustache sources.\n */\nexport function buildBuiltInCodeArtifacts({\n\ttemplateId,\n\tvariables,\n}: {\n\ttemplateId: BuiltInTemplateId;\n\tvariables: ScaffoldTemplateVariables;\n}): BuiltInCodeArtifact[] {\n\tswitch (templateId) {\n\t\tcase \"basic\":\n\t\t\treturn buildBasicCodeArtifacts(variables);\n\t\tcase \"interactivity\":\n\t\t\treturn buildInteractivityCodeArtifacts(variables);\n\t\tcase \"persistence\":\n\t\t\treturn buildPersistenceCodeArtifacts(variables);\n\t\tcase \"compound\":\n\t\t\treturn buildCompoundCodeArtifacts(variables);\n\t\tcase \"query-loop\":\n\t\t\treturn buildQueryLoopCodeArtifacts(variables);\n\t\tdefault: {\n\t\t\tconst unhandledTemplateId: never = templateId;\n\t\t\tthrow new Error(`Unhandled built-in template id: ${unhandledTemplateId}`);\n\t\t}\n\t}\n}\n",
|
|
99
|
+
"import type {\n\tScaffoldTemplateVariables,\n} from \"./scaffold.js\";\nimport type {\n\tBuiltInTemplateId,\n} from \"./template-registry.js\";\nimport { buildBuiltInNonTsArtifacts } from \"./built-in-block-non-ts-artifacts.js\";\nimport {\n\tBASIC_EDIT_TEMPLATE,\n\tBASIC_INDEX_TEMPLATE,\n\tBASIC_SAVE_TEMPLATE,\n\tBASIC_VALIDATORS_TEMPLATE,\n\tBLOCK_METADATA_WRAPPER_TEMPLATE,\n\tCOMPOUND_CHILD_EDIT_TEMPLATE,\n\tCOMPOUND_CHILD_INDEX_TEMPLATE,\n\tCOMPOUND_CHILD_SAVE_TEMPLATE,\n\tCOMPOUND_CHILD_VALIDATORS_TEMPLATE,\n\tCOMPOUND_CHILDREN_TEMPLATE,\n\tCOMPOUND_LOCAL_HOOKS_TEMPLATE,\n\tCOMPOUND_PARENT_EDIT_TEMPLATE,\n\tCOMPOUND_PARENT_INDEX_TEMPLATE,\n\tCOMPOUND_PARENT_SAVE_TEMPLATE,\n\tCOMPOUND_PARENT_VALIDATORS_TEMPLATE,\n\tCOMPOUND_PERSISTENCE_PARENT_EDIT_TEMPLATE,\n\tCOMPOUND_PERSISTENCE_PARENT_INTERACTIVITY_TEMPLATE,\n\tCOMPOUND_PERSISTENCE_PARENT_SAVE_TEMPLATE,\n\tCOMPOUND_PERSISTENCE_PARENT_VALIDATORS_TEMPLATE,\n\tINTERACTIVITY_EDIT_TEMPLATE,\n\tINTERACTIVITY_INDEX_TEMPLATE,\n\tINTERACTIVITY_SAVE_TEMPLATE,\n\tINTERACTIVITY_SCRIPT_TEMPLATE,\n\tINTERACTIVITY_VALIDATORS_TEMPLATE,\n\tMANIFEST_DEFAULTS_DOCUMENT_WRAPPER_TEMPLATE,\n\tMANIFEST_DOCUMENT_WRAPPER_TEMPLATE,\n\tPERSISTENCE_EDIT_TEMPLATE,\n\tPERSISTENCE_INDEX_TEMPLATE,\n\tPERSISTENCE_INTERACTIVITY_TEMPLATE,\n\tPERSISTENCE_SAVE_TEMPLATE,\n\tPERSISTENCE_VALIDATORS_TEMPLATE,\n\tQUERY_LOOP_INDEX_TEMPLATE,\n\tSHARED_HOOKS_TEMPLATE,\n} from \"./built-in-block-code-templates.js\";\nimport { getScaffoldTemplateVariableGroups } from \"./scaffold-template-variable-groups.js\";\nimport { renderMustacheTemplateString } from \"./template-render.js\";\n\n/**\n * Emits built-in scaffold source files from typed block generation inputs.\n *\n * This module is intentionally internal to the runtime boundary: built-in\n * scaffold bodies and adjacent emitted source files are now derived from\n * `ScaffoldTemplateVariables`, but the emitter helpers themselves are not part\n * of the public root export surface.\n */\nexport interface BuiltInCodeArtifact {\n\t/**\n\t * File path relative to the generated project root.\n\t */\n\trelativePath: string;\n\t/**\n\t * Fully rendered file contents with a trailing newline.\n\t */\n\tsource: string;\n}\n\ninterface BuiltInCodeTemplateSpec {\n\trelativePath: string;\n\ttemplate: string;\n}\n\nfunction renderCodeTemplate(\n\ttemplate: string,\n\tvariables: ScaffoldTemplateVariables,\n): string {\n\tconst rendered = renderMustacheTemplateString(template, variables);\n\treturn rendered.endsWith(\"\\n\") ? rendered : `${rendered}\\n`;\n}\n\nfunction createCodeArtifact(\n\trelativePath: string,\n\ttemplate: string,\n\tvariables: ScaffoldTemplateVariables,\n): BuiltInCodeArtifact {\n\treturn {\n\t\trelativePath,\n\t\tsource: renderCodeTemplate(template, variables),\n\t};\n}\n\nfunction createCodeArtifacts(\n\tspecs: readonly BuiltInCodeTemplateSpec[],\n\tvariables: ScaffoldTemplateVariables,\n): BuiltInCodeArtifact[] {\n\treturn specs.map((spec) =>\n\t\tcreateCodeArtifact(spec.relativePath, spec.template, variables),\n\t);\n}\n\nfunction createTypedJsonWrapperArtifacts(\n\trelativeDir: string,\n\tvariables: ScaffoldTemplateVariables,\n): BuiltInCodeArtifact[] {\n\treturn [\n\t\tcreateCodeArtifact(\n\t\t\t`${relativeDir}/block-metadata.ts`,\n\t\t\tBLOCK_METADATA_WRAPPER_TEMPLATE,\n\t\t\tvariables,\n\t\t),\n\t\tcreateCodeArtifact(\n\t\t\t`${relativeDir}/manifest-document.ts`,\n\t\t\tMANIFEST_DOCUMENT_WRAPPER_TEMPLATE,\n\t\t\tvariables,\n\t\t),\n\t\tcreateCodeArtifact(\n\t\t\t`${relativeDir}/manifest-defaults-document.ts`,\n\t\t\tMANIFEST_DEFAULTS_DOCUMENT_WRAPPER_TEMPLATE,\n\t\t\tvariables,\n\t\t),\n\t];\n}\n\nfunction ensureUniqueArtifactPaths(\n\tartifacts: BuiltInCodeArtifact[],\n): BuiltInCodeArtifact[] {\n\tconst seenPaths = new Set<string>();\n\n\tfor (const artifact of artifacts) {\n\t\tif (seenPaths.has(artifact.relativePath)) {\n\t\t\tthrow new Error(\n\t\t\t\t`Duplicate built-in artifact path emitted: ${artifact.relativePath}`,\n\t\t\t);\n\t\t}\n\t\tseenPaths.add(artifact.relativePath);\n\t}\n\n\treturn artifacts;\n}\n\nfunction buildBasicCodeArtifacts(\n\tvariables: ScaffoldTemplateVariables,\n): BuiltInCodeArtifact[] {\n\treturn ensureUniqueArtifactPaths([\n\t\t...createCodeArtifacts(\n\t\t\t[\n\t\t\t\t{\n\t\t\t\t\trelativePath: \"src/hooks.ts\",\n\t\t\t\t\ttemplate: SHARED_HOOKS_TEMPLATE,\n\t\t\t\t},\n\t\t\t],\n\t\t\tvariables,\n\t\t),\n\t\t...createTypedJsonWrapperArtifacts(\"src\", variables),\n\t\t...createCodeArtifacts(\n\t\t\t[\n\t\t\t\t{\n\t\t\t\t\trelativePath: \"src/edit.tsx\",\n\t\t\t\t\ttemplate: BASIC_EDIT_TEMPLATE,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\trelativePath: \"src/save.tsx\",\n\t\t\t\t\ttemplate: BASIC_SAVE_TEMPLATE,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\trelativePath: \"src/index.tsx\",\n\t\t\t\t\ttemplate: BASIC_INDEX_TEMPLATE,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\trelativePath: \"src/validators.ts\",\n\t\t\t\t\ttemplate: BASIC_VALIDATORS_TEMPLATE,\n\t\t\t\t},\n\t\t\t],\n\t\t\tvariables,\n\t\t),\n\t\t...buildBuiltInNonTsArtifacts({ templateId: \"basic\", variables }),\n\t]);\n}\n\nfunction buildInteractivityCodeArtifacts(\n\tvariables: ScaffoldTemplateVariables,\n): BuiltInCodeArtifact[] {\n\treturn ensureUniqueArtifactPaths([\n\t\t...createCodeArtifacts(\n\t\t\t[\n\t\t\t\t{\n\t\t\t\t\trelativePath: \"src/hooks.ts\",\n\t\t\t\t\ttemplate: SHARED_HOOKS_TEMPLATE,\n\t\t\t\t},\n\t\t\t],\n\t\t\tvariables,\n\t\t),\n\t\t...createTypedJsonWrapperArtifacts(\"src\", variables),\n\t\t...createCodeArtifacts(\n\t\t\t[\n\t\t\t\t{\n\t\t\t\t\trelativePath: \"src/edit.tsx\",\n\t\t\t\t\ttemplate: INTERACTIVITY_EDIT_TEMPLATE,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\trelativePath: \"src/save.tsx\",\n\t\t\t\t\ttemplate: INTERACTIVITY_SAVE_TEMPLATE,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\trelativePath: \"src/index.tsx\",\n\t\t\t\t\ttemplate: INTERACTIVITY_INDEX_TEMPLATE,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\trelativePath: \"src/interactivity.ts\",\n\t\t\t\t\ttemplate: INTERACTIVITY_SCRIPT_TEMPLATE,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\trelativePath: \"src/validators.ts\",\n\t\t\t\t\ttemplate: INTERACTIVITY_VALIDATORS_TEMPLATE,\n\t\t\t\t},\n\t\t\t],\n\t\t\tvariables,\n\t\t),\n\t\t...buildBuiltInNonTsArtifacts({ templateId: \"interactivity\", variables }),\n\t]);\n}\n\nfunction buildCompoundCodeArtifacts(\n\tvariables: ScaffoldTemplateVariables,\n): BuiltInCodeArtifact[] {\n\tconst parentBasePath = `src/blocks/${variables.slugKebabCase}`;\n\tconst childBasePath = `src/blocks/${variables.slugKebabCase}-item`;\n\tconst compoundGroup = getScaffoldTemplateVariableGroups(variables).compound;\n\tconst compoundPersistenceEnabled =\n\t\tcompoundGroup.enabled && compoundGroup.persistenceEnabled;\n\n\treturn ensureUniqueArtifactPaths([\n\t\tcreateCodeArtifact(\"src/hooks.ts\", SHARED_HOOKS_TEMPLATE, variables),\n\t\t...createTypedJsonWrapperArtifacts(parentBasePath, variables),\n\t\tcreateCodeArtifact(\n\t\t\t`${parentBasePath}/edit.tsx`,\n\t\t\tcompoundPersistenceEnabled\n\t\t\t\t? COMPOUND_PERSISTENCE_PARENT_EDIT_TEMPLATE\n\t\t\t\t: COMPOUND_PARENT_EDIT_TEMPLATE,\n\t\t\tvariables,\n\t\t),\n\t\tcreateCodeArtifact(\n\t\t\t`${parentBasePath}/save.tsx`,\n\t\t\tcompoundPersistenceEnabled\n\t\t\t\t? COMPOUND_PERSISTENCE_PARENT_SAVE_TEMPLATE\n\t\t\t\t: COMPOUND_PARENT_SAVE_TEMPLATE,\n\t\t\tvariables,\n\t\t),\n\t\tcreateCodeArtifact(\n\t\t\t`${parentBasePath}/index.tsx`,\n\t\t\tCOMPOUND_PARENT_INDEX_TEMPLATE,\n\t\t\tvariables,\n\t\t),\n\t\tcreateCodeArtifact(\n\t\t\t`${parentBasePath}/hooks.ts`,\n\t\t\tCOMPOUND_LOCAL_HOOKS_TEMPLATE,\n\t\t\tvariables,\n\t\t),\n\t\tcreateCodeArtifact(\n\t\t\t`${parentBasePath}/validators.ts`,\n\t\t\tcompoundPersistenceEnabled\n\t\t\t\t? COMPOUND_PERSISTENCE_PARENT_VALIDATORS_TEMPLATE\n\t\t\t\t: COMPOUND_PARENT_VALIDATORS_TEMPLATE,\n\t\t\tvariables,\n\t\t),\n\t\tcreateCodeArtifact(\n\t\t\t`${parentBasePath}/children.ts`,\n\t\t\tCOMPOUND_CHILDREN_TEMPLATE,\n\t\t\tvariables,\n\t\t),\n\t\t...(compoundPersistenceEnabled\n\t\t\t? [\n\t\t\t\t\tcreateCodeArtifact(\n\t\t\t\t\t\t`${parentBasePath}/interactivity.ts`,\n\t\t\t\t\t\tCOMPOUND_PERSISTENCE_PARENT_INTERACTIVITY_TEMPLATE,\n\t\t\t\t\t\tvariables,\n\t\t\t\t\t),\n\t\t\t\t]\n\t\t\t: []),\n\t\t...createTypedJsonWrapperArtifacts(childBasePath, variables),\n\t\tcreateCodeArtifact(\n\t\t\t`${childBasePath}/edit.tsx`,\n\t\t\tCOMPOUND_CHILD_EDIT_TEMPLATE,\n\t\t\tvariables,\n\t\t),\n\t\tcreateCodeArtifact(\n\t\t\t`${childBasePath}/save.tsx`,\n\t\t\tCOMPOUND_CHILD_SAVE_TEMPLATE,\n\t\t\tvariables,\n\t\t),\n\t\tcreateCodeArtifact(\n\t\t\t`${childBasePath}/index.tsx`,\n\t\t\tCOMPOUND_CHILD_INDEX_TEMPLATE,\n\t\t\tvariables,\n\t\t),\n\t\tcreateCodeArtifact(\n\t\t\t`${childBasePath}/hooks.ts`,\n\t\t\tCOMPOUND_LOCAL_HOOKS_TEMPLATE,\n\t\t\tvariables,\n\t\t),\n\t\tcreateCodeArtifact(\n\t\t\t`${childBasePath}/validators.ts`,\n\t\t\tCOMPOUND_CHILD_VALIDATORS_TEMPLATE,\n\t\t\tvariables,\n\t\t),\n\t\t...buildBuiltInNonTsArtifacts({ templateId: \"compound\", variables }),\n\t]);\n}\n\nfunction buildPersistenceCodeArtifacts(\n\tvariables: ScaffoldTemplateVariables,\n): BuiltInCodeArtifact[] {\n\treturn ensureUniqueArtifactPaths([\n\t\t...createCodeArtifacts(\n\t\t\t[\n\t\t\t\t{\n\t\t\t\t\trelativePath: \"src/hooks.ts\",\n\t\t\t\t\ttemplate: SHARED_HOOKS_TEMPLATE,\n\t\t\t\t},\n\t\t\t],\n\t\t\tvariables,\n\t\t),\n\t\t...createTypedJsonWrapperArtifacts(\"src\", variables),\n\t\t...createCodeArtifacts(\n\t\t\t[\n\t\t\t\t{\n\t\t\t\t\trelativePath: \"src/edit.tsx\",\n\t\t\t\t\ttemplate: PERSISTENCE_EDIT_TEMPLATE,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\trelativePath: \"src/save.tsx\",\n\t\t\t\t\ttemplate: PERSISTENCE_SAVE_TEMPLATE,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\trelativePath: \"src/index.tsx\",\n\t\t\t\t\ttemplate: PERSISTENCE_INDEX_TEMPLATE,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\trelativePath: \"src/interactivity.ts\",\n\t\t\t\t\ttemplate: PERSISTENCE_INTERACTIVITY_TEMPLATE,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\trelativePath: \"src/validators.ts\",\n\t\t\t\t\ttemplate: PERSISTENCE_VALIDATORS_TEMPLATE,\n\t\t\t\t},\n\t\t\t],\n\t\t\tvariables,\n\t\t),\n\t\t...buildBuiltInNonTsArtifacts({ templateId: \"persistence\", variables }),\n\t]);\n}\n\nfunction buildQueryLoopCodeArtifacts(\n\tvariables: ScaffoldTemplateVariables,\n): BuiltInCodeArtifact[] {\n\treturn ensureUniqueArtifactPaths([\n\t\t...createCodeArtifacts(\n\t\t\t[\n\t\t\t\t{\n\t\t\t\t\trelativePath: \"src/index.ts\",\n\t\t\t\t\ttemplate: QUERY_LOOP_INDEX_TEMPLATE,\n\t\t\t\t},\n\t\t\t],\n\t\t\tvariables,\n\t\t),\n\t\t...buildBuiltInNonTsArtifacts({ templateId: \"query-loop\", variables }),\n\t]);\n}\n\n/**\n * Build the emitter-owned scaffold files for a built-in template family.\n *\n * These artifacts are written after template copy so built-in structural,\n * source, and adjacent generated files always come from the typed generator\n * boundary rather than stale Mustache sources.\n */\nexport function buildBuiltInCodeArtifacts({\n\ttemplateId,\n\tvariables,\n}: {\n\ttemplateId: BuiltInTemplateId;\n\tvariables: ScaffoldTemplateVariables;\n}): BuiltInCodeArtifact[] {\n\tswitch (templateId) {\n\t\tcase \"basic\":\n\t\t\treturn buildBasicCodeArtifacts(variables);\n\t\tcase \"interactivity\":\n\t\t\treturn buildInteractivityCodeArtifacts(variables);\n\t\tcase \"persistence\":\n\t\t\treturn buildPersistenceCodeArtifacts(variables);\n\t\tcase \"compound\":\n\t\t\treturn buildCompoundCodeArtifacts(variables);\n\t\tcase \"query-loop\":\n\t\t\treturn buildQueryLoopCodeArtifacts(variables);\n\t\tdefault: {\n\t\t\tconst unhandledTemplateId: never = templateId;\n\t\t\tthrow new Error(`Unhandled built-in template id: ${unhandledTemplateId}`);\n\t\t}\n\t}\n}\n",
|
|
99
100
|
"import {\n\tapplyBuiltInScaffoldProjectFiles,\n\tbuildGitignore,\n\tbuildReadme,\n} from \"./scaffold-apply-utils.js\";\nimport {\n\tbuildBuiltInBlockArtifacts,\n\ttype BuiltInBlockArtifact,\n} from \"./built-in-block-artifacts.js\";\nimport {\n\tbuildBuiltInCodeArtifacts,\n\ttype BuiltInCodeArtifact,\n} from \"./built-in-block-code-artifacts.js\";\nimport { stableJsonStringify } from \"./object-utils.js\";\nimport { getStarterManifestFiles } from \"./starter-manifests.js\";\nimport { resolveTemplateSeed, parseTemplateLocator } from \"./template-source.js\";\nimport {\n\tassertExternalTemplateLayersDoNotWriteProtectedOutputs,\n\tresolveExternalTemplateLayers,\n\ttype ResolvedTemplateLayerEntry,\n} from \"./template-layers.js\";\nimport {\n\tgetBuiltInTemplateOverlayDir,\n\tgetBuiltInTemplateSharedLayerDirs,\n\tresolveBuiltInTemplateSource,\n\tresolveBuiltInTemplateSourceFromLayerDirs,\n} from \"./template-builtins.js\";\nimport {\n\tbuildTemplateVariablesFromBlockSpec,\n\tcreateBuiltInBlockSpec,\n\ttype ApplyBlockInput,\n\ttype BlockSpec,\n\ttype PlanBlockInput,\n\ttype PlanBlockResult,\n\ttype RenderBlockInput,\n\ttype RenderBlockResult,\n\ttype ValidateBlockInput,\n\ttype ValidateBlockResult,\n} from \"./block-generator-service-spec.js\";\nimport type { ScaffoldProjectResult } from \"./scaffold.js\";\nimport {\n\tassertBuiltInTemplateVariantAllowed,\n\tassertExternalLayerCompositionOptions,\n} from \"./cli-validation.js\";\n\nconst renderedArtifactCache = new WeakMap<\n\tRenderBlockResult,\n\t{\n\t\tartifacts: BuiltInBlockArtifact[];\n\t\tcodeArtifacts: BuiltInCodeArtifact[];\n\t\tvariablesFingerprint: string;\n\t}\n>();\n\nfunction createVariablesFingerprint(\n\tvariables: RenderBlockResult[\"variables\"],\n): string {\n\treturn stableJsonStringify(variables);\n}\n\nfunction buildProtectedTemplateOutputPaths({\n\tcodeArtifacts,\n\tspec,\n\tvariables,\n\tartifacts,\n}: {\n\tartifacts: readonly BuiltInBlockArtifact[];\n\tcodeArtifacts: readonly BuiltInCodeArtifact[];\n\tspec: BlockSpec;\n\tvariables: RenderBlockResult[\"variables\"];\n}): Set<string> {\n\tconst protectedOutputs = new Set<string>([\n\t\t\".gitignore\",\n\t\t\"package.json\",\n\t\t\"scripts/add-compound-child.ts\",\n\t\t\"scripts/block-config.ts\",\n\t\t\"scripts/sync-project.ts\",\n\t\t\"scripts/sync-rest-contracts.ts\",\n\t\t\"scripts/sync-types-to-block-json.ts\",\n\t\t\"tsconfig.json\",\n\t\t\"webpack.config.js\",\n\t\t`${variables.slugKebabCase}.php`,\n\t]);\n\n\tfor (const artifact of codeArtifacts) {\n\t\tprotectedOutputs.add(artifact.relativePath);\n\t}\n\n\tfor (const artifact of artifacts) {\n\t\tprotectedOutputs.add(`${artifact.relativeDir}/block.json`);\n\t\tprotectedOutputs.add(`${artifact.relativeDir}/types.ts`);\n\t}\n\n\tfor (const manifest of getStarterManifestFiles(spec.template.family, variables)) {\n\t\tprotectedOutputs.add(manifest.relativePath);\n\t}\n\n\treturn protectedOutputs;\n}\n\nfunction buildCombinedTemplateLayerDirs({\n\tbaseLayerDirs,\n\texternalEntries,\n\ttemplateId,\n}: {\n\tbaseLayerDirs: readonly string[];\n\texternalEntries: readonly ResolvedTemplateLayerEntry[];\n\ttemplateId: BlockSpec[\"template\"][\"family\"];\n}): string[] {\n\tconst orderedLayerDirs: string[] = [];\n\tconst seenLayerDirs = new Set<string>();\n\n\tfor (const layerDir of baseLayerDirs) {\n\t\tif (seenLayerDirs.has(layerDir)) {\n\t\t\tcontinue;\n\t\t}\n\t\torderedLayerDirs.push(layerDir);\n\t\tseenLayerDirs.add(layerDir);\n\t}\n\n\tfor (const entry of externalEntries) {\n\t\tif (seenLayerDirs.has(entry.dir)) {\n\t\t\tcontinue;\n\t\t}\n\t\torderedLayerDirs.push(entry.dir);\n\t\tseenLayerDirs.add(entry.dir);\n\t}\n\n\tconst overlayDir = getBuiltInTemplateOverlayDir(templateId);\n\tif (!seenLayerDirs.has(overlayDir)) {\n\t\torderedLayerDirs.push(overlayDir);\n\t}\n\n\treturn orderedLayerDirs;\n}\n\nasync function runCleanupGroup(\n\tlabel: string,\n\tcleanups: Array<(() => Promise<void>) | undefined>,\n): Promise<void> {\n\tconst cleanupErrors: Error[] = [];\n\tconst seen = new Set<(() => Promise<void>) | undefined>();\n\n\tfor (const cleanup of cleanups) {\n\t\tif (!cleanup || seen.has(cleanup)) {\n\t\t\tcontinue;\n\t\t}\n\t\tseen.add(cleanup);\n\t\ttry {\n\t\t\tawait cleanup();\n\t\t} catch (error) {\n\t\t\tcleanupErrors.push(error instanceof Error ? error : new Error(String(error)));\n\t\t}\n\t}\n\n\tif (cleanupErrors.length > 0) {\n\t\tthrow new Error(\n\t\t\t[\n\t\t\t\tlabel,\n\t\t\t\t...cleanupErrors.map((error) => `- ${error.message}`),\n\t\t\t].join(\"\\n\"),\n\t\t);\n\t}\n}\n\nexport class BlockGeneratorService {\n\tasync plan({\n\t\tallowExistingDir = false,\n\t\talternateRenderTargets,\n\t\tanswers,\n\t\tcwd = process.cwd(),\n\t\tdataStorageMode,\n\t\texternalLayerId,\n\t\texternalLayerSource,\n\t\texternalLayerSourceLabel,\n\t\tnoInstall = false,\n\t\tpackageManager,\n\t\tpersistencePolicy,\n\t\tprojectDir,\n\t\trepositoryReference,\n\t\ttemplateId,\n\t\tvariant,\n\t\twithMigrationUi = false,\n\t\twithTestPreset = false,\n\t\twithWpEnv = false,\n\t}: PlanBlockInput): Promise<PlanBlockResult> {\n\t\treturn {\n\t\t\tspec: createBuiltInBlockSpec({\n\t\t\t\talternateRenderTargets,\n\t\t\t\tanswers,\n\t\t\t\tdataStorageMode,\n\t\t\t\tpersistencePolicy,\n\t\t\t\ttemplateId,\n\t\t\t\twithMigrationUi,\n\t\t\t\twithTestPreset,\n\t\t\t\twithWpEnv,\n\t\t\t}),\n\t\t\ttarget: {\n\t\t\t\tallowExistingDir,\n\t\t\t\tcwd,\n\t\t\t\texternalLayerId,\n\t\t\t\texternalLayerSource,\n\t\t\t\texternalLayerSourceLabel,\n\t\t\t\tnoInstall,\n\t\t\t\tpackageManager,\n\t\t\t\tprojectDir,\n\t\t\t\trepositoryReference,\n\t\t\t\tvariant,\n\t\t\t},\n\t\t};\n\t}\n\n\tasync validate({ plan }: ValidateBlockInput): Promise<ValidateBlockResult> {\n\t\tassertExternalLayerCompositionOptions({\n\t\t\texternalLayerId: plan.target.externalLayerId,\n\t\t\texternalLayerSource: plan.target.externalLayerSource,\n\t\t});\n\t\tassertBuiltInTemplateVariantAllowed({\n\t\t\ttemplateId: plan.spec.template.family,\n\t\t\tvariant: plan.target.variant,\n\t\t});\n\n\t\treturn plan;\n\t}\n\n\tasync render({ validated }: RenderBlockInput): Promise<RenderBlockResult> {\n\t\tconst variables = buildTemplateVariablesFromBlockSpec(validated.spec);\n\t\tconst persistenceEnabled = validated.spec.persistence.enabled;\n\t\tconst artifacts = buildBuiltInBlockArtifacts({\n\t\t\ttemplateId: validated.spec.template.family,\n\t\t\tvariables,\n\t\t});\n\t\tconst codeArtifacts = buildBuiltInCodeArtifacts({\n\t\t\ttemplateId: validated.spec.template.family,\n\t\t\tvariables,\n\t\t});\n\t\tconst templateVariantOptions = {\n\t\t\tpersistenceEnabled,\n\t\t\tpersistencePolicy:\n\t\t\t\tvalidated.spec.persistence.enabled &&\n\t\t\t\tvalidated.spec.persistence.persistencePolicy === \"public\"\n\t\t\t\t\t? \"public\"\n\t\t\t\t\t: \"authenticated\",\n\t\t} as const;\n\t\tlet templateSource = await resolveBuiltInTemplateSource(\n\t\t\tvalidated.spec.template.family,\n\t\t\ttemplateVariantOptions,\n\t\t);\n\t\tconst warnings = [...(templateSource.warnings ?? [])];\n\n\t\tif (validated.target.externalLayerSource) {\n\t\t\tlet layerSeed:\n\t\t\t\t| Awaited<ReturnType<typeof resolveTemplateSeed>>\n\t\t\t\t| undefined;\n\t\t\tlet pendingLayerCleanup: (() => Promise<void>) | undefined;\n\t\t\tlet pendingTemplateCleanup: (() => Promise<void>) | undefined;\n\t\t\tlet composedCleanup: (() => Promise<void>) | undefined;\n\t\t\ttry {\n\t\t\t\tlayerSeed = await resolveTemplateSeed(\n\t\t\t\t\tparseTemplateLocator(validated.target.externalLayerSource),\n\t\t\t\t\tvalidated.target.cwd,\n\t\t\t\t);\n\t\t\t\tpendingLayerCleanup = layerSeed.cleanup;\n\t\t\t\tconst resolvedLayers = await resolveExternalTemplateLayers({\n\t\t\t\t\texternalLayerId: validated.target.externalLayerId,\n\t\t\t\t\tsourceRoot: layerSeed.rootDir,\n\t\t\t\t});\n\t\t\t\tconst baseLayerDirs = getBuiltInTemplateSharedLayerDirs(\n\t\t\t\t\tvalidated.spec.template.family,\n\t\t\t\t\ttemplateVariantOptions,\n\t\t\t\t);\n\t\t\t\tawait assertExternalTemplateLayersDoNotWriteProtectedOutputs({\n\t\t\t\t\texternalEntries: resolvedLayers.entries,\n\t\t\t\t\tprotectedOutputPaths: buildProtectedTemplateOutputPaths({\n\t\t\t\t\t\tartifacts,\n\t\t\t\t\t\tcodeArtifacts,\n\t\t\t\t\t\tspec: validated.spec,\n\t\t\t\t\t\tvariables,\n\t\t\t\t\t\t}),\n\t\t\t\t\t\tview: variables,\n\t\t\t\t\t});\n\n\t\t\t\tconst previousTemplateCleanup = templateSource.cleanup;\n\t\t\t\tconst nextTemplateSource = await resolveBuiltInTemplateSourceFromLayerDirs(\n\t\t\t\t\tvalidated.spec.template.family,\n\t\t\t\t\tbuildCombinedTemplateLayerDirs({\n\t\t\t\t\t\tbaseLayerDirs,\n\t\t\t\t\t\texternalEntries: resolvedLayers.entries,\n\t\t\t\t\t\ttemplateId: validated.spec.template.family,\n\t\t\t\t\t}),\n\t\t\t\t);\n\t\t\t\tpendingTemplateCleanup = nextTemplateSource.cleanup;\n\t\t\t\tawait previousTemplateCleanup?.();\n\t\t\t\ttemplateSource = nextTemplateSource;\n\t\t\t\tcomposedCleanup = async () =>\n\t\t\t\t\trunCleanupGroup(\"Failed to cleanup composed template sources.\", [\n\t\t\t\t\t\tpendingTemplateCleanup,\n\t\t\t\t\t\tpendingLayerCleanup,\n\t\t\t\t\t]);\n\t\t\t\ttemplateSource.cleanup = composedCleanup;\n\t\t\t\twarnings.push(\n\t\t\t\t\t`Applied external layer \"${resolvedLayers.selectedLayerId}\" from \"${validated.target.externalLayerSourceLabel ?? validated.target.externalLayerSource}\".`,\n\t\t\t\t);\n\t\t\t} catch (error) {\n\t\t\t\ttry {\n\t\t\t\t\tif (composedCleanup) {\n\t\t\t\t\t\tawait composedCleanup();\n\t\t\t\t\t} else {\n\t\t\t\t\t\tawait runCleanupGroup(\n\t\t\t\t\t\t\t\"Failed to cleanup partially composed template sources.\",\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\ttemplateSource.cleanup,\n\t\t\t\t\t\t\t\tpendingTemplateCleanup,\n\t\t\t\t\t\t\t\tpendingLayerCleanup,\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} catch {\n\t\t\t\t\t// Preserve the original compose failure instead of masking it with cleanup errors.\n\t\t\t\t}\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t}\n\n\t\tconst rendered: RenderBlockResult = {\n\t\t\t...validated,\n\t\t\tcleanup: templateSource.cleanup,\n\t\t\tgitignoreContent: buildGitignore(),\n\t\t\tpostRender: {\n\t\t\t\tapplyLocalDevPresets: true,\n\t\t\t\tapplyMigrationUiCapability: validated.spec.runtime.withMigrationUi,\n\t\t\t\tseedPersistenceArtifacts:\n\t\t\t\t\tvalidated.spec.template.family === \"persistence\" ||\n\t\t\t\t\t(validated.spec.template.family === \"compound\" && persistenceEnabled),\n\t\t\t\tseedStarterManifestFiles: true,\n\t\t\t},\n\t\t\treadmeContent: buildReadme(\n\t\t\t\tvalidated.spec.template.family,\n\t\t\t\tvariables,\n\t\t\t\tvalidated.target.packageManager,\n\t\t\t\t{\n\t\t\t\t\twithMigrationUi: validated.spec.runtime.withMigrationUi,\n\t\t\t\t\twithTestPreset: validated.spec.runtime.withTestPreset,\n\t\t\t\t\twithWpEnv: validated.spec.runtime.withWpEnv,\n\t\t\t\t},\n\t\t\t),\n\t\t\tselectedVariant: null,\n\t\t\ttemplateDir: templateSource.templateDir,\n\t\t\tvariables,\n\t\t\twarnings,\n\t\t};\n\n\t\trenderedArtifactCache.set(rendered, {\n\t\t\tartifacts,\n\t\t\tcodeArtifacts,\n\t\t\tvariablesFingerprint: createVariablesFingerprint(variables),\n\t\t});\n\n\t\treturn rendered;\n\t}\n\n\tasync apply({\n\t\trendered,\n\t\tinstallDependencies,\n\t\tonProgress,\n\t}: ApplyBlockInput): Promise<ScaffoldProjectResult> {\n\t\tconst cachedArtifacts = renderedArtifactCache.get(rendered);\n\t\tconst currentVariablesFingerprint = createVariablesFingerprint(\n\t\t\trendered.variables,\n\t\t);\n\t\tconst artifacts =\n\t\t\tcachedArtifacts &&\n\t\t\tcachedArtifacts.variablesFingerprint === currentVariablesFingerprint\n\t\t\t\t? cachedArtifacts.artifacts\n\t\t\t\t: buildBuiltInBlockArtifacts({\n\t\t\t\t\t\ttemplateId: rendered.spec.template.family,\n\t\t\t\t\t\tvariables: rendered.variables,\n\t\t\t\t\t});\n\t\tconst codeArtifacts =\n\t\t\tcachedArtifacts &&\n\t\t\tcachedArtifacts.variablesFingerprint === currentVariablesFingerprint\n\t\t\t\t? cachedArtifacts.codeArtifacts\n\t\t\t\t: buildBuiltInCodeArtifacts({\n\t\t\t\t\t\ttemplateId: rendered.spec.template.family,\n\t\t\t\t\t\tvariables: rendered.variables,\n\t\t\t\t\t});\n\n\t\ttry {\n\t\t\tawait applyBuiltInScaffoldProjectFiles({\n\t\t\t\tallowExistingDir: rendered.target.allowExistingDir,\n\t\t\t\tartifacts,\n\t\t\t\tcodeArtifacts,\n\t\t\t\tinstallDependencies,\n\t\t\t\tnoInstall: rendered.target.noInstall,\n\t\t\t\tonProgress,\n\t\t\t\tpackageManager: rendered.target.packageManager,\n\t\t\t\tprojectDir: rendered.target.projectDir,\n\t\t\t\trepositoryReference: rendered.target.repositoryReference,\n\t\t\t\tgitignoreContent: rendered.gitignoreContent,\n\t\t\t\treadmeContent: rendered.readmeContent,\n\t\t\t\ttemplateDir: rendered.templateDir,\n\t\t\t\ttemplateId: rendered.spec.template.family,\n\t\t\t\tvariables: rendered.variables,\n\t\t\t\twithMigrationUi: rendered.spec.runtime.withMigrationUi,\n\t\t\t\twithTestPreset: rendered.spec.runtime.withTestPreset,\n\t\t\t\twithWpEnv: rendered.spec.runtime.withWpEnv,\n\t\t\t});\n\t\t} finally {\n\t\t\tawait rendered.cleanup?.();\n\t\t}\n\n\t\treturn {\n\t\t\tpackageManager: rendered.target.packageManager,\n\t\t\tprojectDir: rendered.target.projectDir,\n\t\t\tselectedVariant: rendered.selectedVariant,\n\t\t\ttemplateId: rendered.spec.template.family,\n\t\t\tvariables: rendered.variables,\n\t\t\twarnings: rendered.warnings,\n\t\t};\n\t}\n}\n",
|
|
100
|
-
"import {\n buildTemplateVariablesFromBlockSpec,\n createBuiltInBlockSpec,\n} from './block-generator-service.js';\nimport { getPackageVersions } from './package-versions.js';\nimport {\n buildBlockCssClassName,\n buildFrontendCssClassName,\n resolveScaffoldIdentifiers,\n} from './scaffold-identifiers.js';\nimport type {\n ScaffoldAnswers,\n ScaffoldTemplateVariables,\n} from './scaffold.js';\nimport {\n BUILTIN_BLOCK_METADATA_VERSION,\n COMPOUND_CHILD_BLOCK_METADATA_DEFAULTS,\n getBuiltInTemplateMetadataDefaults,\n} from './template-defaults.js';\nimport {\n DEFAULT_COMPOUND_INNER_BLOCKS_PRESET_ID,\n getCompoundInnerBlocksPresetDefinition,\n} from './compound-inner-blocks.js';\nimport {\n getTemplateById,\n isBuiltInTemplateId,\n} from './template-registry.js';\nimport {\n toPascalCase,\n toSnakeCase,\n} from './string-case.js';\n\n/**\n * Build the normalized template variables used by scaffold rendering.\n *\n * @param templateId Selected scaffold template identifier.\n * @param answers Normalized scaffold answers collected from defaults, flags, and prompts.\n * @returns Template variables ready for file interpolation and generated artifacts.\n */\nexport function getTemplateVariables(\n templateId: string,\n answers: ScaffoldAnswers,\n): ScaffoldTemplateVariables {\n if (isBuiltInTemplateId(templateId)) {\n return buildTemplateVariablesFromBlockSpec(\n createBuiltInBlockSpec({\n answers,\n dataStorageMode: answers.dataStorageMode,\n persistencePolicy: answers.persistencePolicy,\n templateId,\n }),\n );\n }\n\n const {\n apiClientPackageVersion,\n blockRuntimePackageVersion,\n blockTypesPackageVersion,\n projectToolsPackageVersion,\n restPackageVersion,\n } = getPackageVersions();\n const template = isBuiltInTemplateId(templateId) ? getTemplateById(templateId) : null;\n const metadataDefaults = isBuiltInTemplateId(templateId)\n ? getBuiltInTemplateMetadataDefaults(templateId)\n : null;\n const identifiers = resolveScaffoldIdentifiers({\n namespace: answers.namespace,\n phpPrefix: answers.phpPrefix,\n slug: answers.slug,\n textDomain: answers.textDomain,\n });\n const slug = identifiers.slug;\n const slugSnakeCase = toSnakeCase(slug);\n const pascalCase = toPascalCase(slug);\n const title = answers.title.trim();\n const namespace = identifiers.namespace;\n const description = answers.description.trim();\n const textDomain = identifiers.textDomain;\n const phpPrefix = identifiers.phpPrefix;\n const phpPrefixUpper = phpPrefix.toUpperCase();\n const compoundChildTitle = `${title} Item`;\n const cssClassName = buildBlockCssClassName(namespace, slug);\n const compoundChildCssClassName = buildBlockCssClassName(namespace, `${slug}-item`);\n const compoundInnerBlocksPreset =\n answers.compoundInnerBlocksPreset ?? DEFAULT_COMPOUND_INNER_BLOCKS_PRESET_ID;\n const compoundInnerBlocksPresetDefinition =\n getCompoundInnerBlocksPresetDefinition(compoundInnerBlocksPreset);\n const compoundPersistenceEnabled =\n templateId === 'persistence'\n ? true\n : templateId === 'compound'\n ? Boolean(answers.dataStorageMode || answers.persistencePolicy)\n : false;\n const dataStorageMode =\n templateId === 'persistence' || compoundPersistenceEnabled\n ? answers.dataStorageMode ?? 'custom-table'\n : 'custom-table';\n const persistencePolicy =\n templateId === 'persistence' || compoundPersistenceEnabled\n ? answers.persistencePolicy ?? 'authenticated'\n : 'authenticated';\n\n
|
|
101
|
+
"import {\n buildTemplateVariablesFromBlockSpec,\n createBuiltInBlockSpec,\n} from './block-generator-service.js';\nimport { getPackageVersions } from './package-versions.js';\nimport {\n buildBlockCssClassName,\n buildFrontendCssClassName,\n resolveScaffoldIdentifiers,\n} from './scaffold-identifiers.js';\nimport type {\n FlatScaffoldTemplateVariables,\n ScaffoldAnswers,\n ScaffoldTemplateVariables,\n} from './scaffold.js';\nimport {\n BUILTIN_BLOCK_METADATA_VERSION,\n COMPOUND_CHILD_BLOCK_METADATA_DEFAULTS,\n getBuiltInTemplateMetadataDefaults,\n} from './template-defaults.js';\nimport {\n DEFAULT_COMPOUND_INNER_BLOCKS_PRESET_ID,\n getCompoundInnerBlocksPresetDefinition,\n} from './compound-inner-blocks.js';\nimport {\n getTemplateById,\n isBuiltInTemplateId,\n} from './template-registry.js';\nimport {\n toPascalCase,\n toSnakeCase,\n} from './string-case.js';\nimport { attachScaffoldTemplateVariableGroups } from \"./scaffold-template-variable-groups.js\";\n\n/**\n * Build the normalized template variables used by scaffold rendering.\n *\n * @param templateId Selected scaffold template identifier.\n * @param answers Normalized scaffold answers collected from defaults, flags, and prompts.\n * @returns Template variables ready for file interpolation and generated artifacts.\n */\nexport function getTemplateVariables(\n templateId: string,\n answers: ScaffoldAnswers,\n): ScaffoldTemplateVariables {\n if (isBuiltInTemplateId(templateId)) {\n return buildTemplateVariablesFromBlockSpec(\n createBuiltInBlockSpec({\n answers,\n dataStorageMode: answers.dataStorageMode,\n persistencePolicy: answers.persistencePolicy,\n templateId,\n }),\n );\n }\n\n const {\n apiClientPackageVersion,\n blockRuntimePackageVersion,\n blockTypesPackageVersion,\n projectToolsPackageVersion,\n restPackageVersion,\n } = getPackageVersions();\n const template = isBuiltInTemplateId(templateId) ? getTemplateById(templateId) : null;\n const metadataDefaults = isBuiltInTemplateId(templateId)\n ? getBuiltInTemplateMetadataDefaults(templateId)\n : null;\n const identifiers = resolveScaffoldIdentifiers({\n namespace: answers.namespace,\n phpPrefix: answers.phpPrefix,\n slug: answers.slug,\n textDomain: answers.textDomain,\n });\n const slug = identifiers.slug;\n const slugSnakeCase = toSnakeCase(slug);\n const pascalCase = toPascalCase(slug);\n const title = answers.title.trim();\n const namespace = identifiers.namespace;\n const description = answers.description.trim();\n const textDomain = identifiers.textDomain;\n const phpPrefix = identifiers.phpPrefix;\n const phpPrefixUpper = phpPrefix.toUpperCase();\n const compoundChildTitle = `${title} Item`;\n const cssClassName = buildBlockCssClassName(namespace, slug);\n const compoundChildCssClassName = buildBlockCssClassName(namespace, `${slug}-item`);\n const compoundInnerBlocksPreset =\n answers.compoundInnerBlocksPreset ?? DEFAULT_COMPOUND_INNER_BLOCKS_PRESET_ID;\n const compoundInnerBlocksPresetDefinition =\n getCompoundInnerBlocksPresetDefinition(compoundInnerBlocksPreset);\n const compoundPersistenceEnabled =\n templateId === 'persistence'\n ? true\n : templateId === 'compound'\n ? Boolean(answers.dataStorageMode || answers.persistencePolicy)\n : false;\n const dataStorageMode =\n templateId === 'persistence' || compoundPersistenceEnabled\n ? answers.dataStorageMode ?? 'custom-table'\n : 'custom-table';\n const persistencePolicy =\n templateId === 'persistence' || compoundPersistenceEnabled\n ? answers.persistencePolicy ?? 'authenticated'\n : 'authenticated';\n\n const flatVariables: FlatScaffoldTemplateVariables = {\n alternateRenderTargetsCsv: '',\n alternateRenderTargetsJson: '[]',\n apiClientPackageVersion,\n author: answers.author.trim(),\n blockRuntimePackageVersion,\n blockMetadataVersion: BUILTIN_BLOCK_METADATA_VERSION,\n blockTypesPackageVersion,\n category: metadataDefaults?.category ?? template?.defaultCategory ?? 'widgets',\n icon: metadataDefaults?.icon ?? 'smiley',\n compoundChildTitle,\n compoundChildCategory: COMPOUND_CHILD_BLOCK_METADATA_DEFAULTS.category,\n compoundChildCssClassName,\n compoundChildIcon: COMPOUND_CHILD_BLOCK_METADATA_DEFAULTS.icon,\n compoundChildTitleJson: JSON.stringify(compoundChildTitle),\n compoundPersistenceEnabled: compoundPersistenceEnabled ? 'true' : 'false',\n compoundInnerBlocksDirectInsert: compoundInnerBlocksPresetDefinition.directInsert\n ? 'true'\n : 'false',\n compoundInnerBlocksOrientation:\n compoundInnerBlocksPresetDefinition.orientation ?? '',\n compoundInnerBlocksOrientationExpression:\n compoundInnerBlocksPresetDefinition.orientation\n ? `'${compoundInnerBlocksPresetDefinition.orientation}'`\n : 'undefined',\n compoundInnerBlocksPreset,\n compoundInnerBlocksPresetDescription:\n compoundInnerBlocksPresetDefinition.description,\n compoundInnerBlocksPresetLabel: compoundInnerBlocksPresetDefinition.label,\n compoundInnerBlocksTemplateLockExpression:\n compoundInnerBlocksPresetDefinition.templateLock === false\n ? 'false'\n : `'${compoundInnerBlocksPresetDefinition.templateLock}'`,\n hasAlternateEmailRenderTarget: 'false',\n hasAlternateMjmlRenderTarget: 'false',\n hasAlternatePlainTextRenderTarget: 'false',\n hasAlternateRenderTargets: 'false',\n projectToolsPackageVersion,\n cssClassName,\n dataStorageMode,\n dashCase: slug,\n description,\n descriptionJson: JSON.stringify(description),\n frontendCssClassName: buildFrontendCssClassName(cssClassName),\n queryAllowedControlsJson: JSON.stringify([], null, 2),\n queryPostType: answers.queryPostType?.trim() || 'post',\n queryPostTypeJson: JSON.stringify(answers.queryPostType?.trim() || 'post'),\n queryVariationNamespace: `${namespace}/${slug}`,\n queryVariationNamespaceJson: JSON.stringify(`${namespace}/${slug}`),\n isAuthenticatedPersistencePolicy:\n persistencePolicy === 'authenticated' ? 'true' : 'false',\n isPublicPersistencePolicy: persistencePolicy === 'public' ? 'true' : 'false',\n bootstrapCredentialDeclarations:\n persistencePolicy === 'public'\n ? \"publicWriteExpiresAt?: number & tags.Type< 'uint32' >;\\n\\tpublicWriteToken?: string & tags.MinLength< 1 > & tags.MaxLength< 512 >;\"\n : \"restNonce?: string & tags.MinLength< 1 > & tags.MaxLength< 128 >;\",\n persistencePolicyDescriptionJson: JSON.stringify(\n persistencePolicy === 'authenticated'\n ? 'Writes require a logged-in user and a valid REST nonce.'\n : 'Anonymous writes use signed short-lived public tokens, per-request ids, and coarse rate limiting.',\n ),\n keyword: slug.replace(/-/g, ' '),\n namespace,\n needsMigration: '{{needsMigration}}',\n pascalCase,\n phpPrefix,\n phpPrefixUpper,\n restPackageVersion,\n publicWriteRequestIdDeclaration:\n persistencePolicy === 'public'\n ? \"publicWriteRequestId: string & tags.MinLength< 1 > & tags.MaxLength< 128 >;\"\n : \"publicWriteRequestId?: string & tags.MinLength< 1 > & tags.MaxLength< 128 >;\",\n restWriteAuthIntent:\n persistencePolicy === 'public'\n ? 'public-write-protected'\n : 'authenticated',\n restWriteAuthMechanism:\n persistencePolicy === 'public' ? 'public-signed-token' : 'rest-nonce',\n restWriteAuthMode:\n persistencePolicy === 'public' ? 'public-signed-token' : 'authenticated-rest-nonce',\n slug,\n slugCamelCase: pascalCase.charAt(0).toLowerCase() + pascalCase.slice(1),\n slugKebabCase: slug,\n slugSnakeCase,\n textDomain,\n textdomain: textDomain,\n title,\n titleJson: JSON.stringify(title),\n titleCase: pascalCase,\n persistencePolicy,\n };\n\n return attachScaffoldTemplateVariableGroups(flatVariables, {\n alternateRenderTargets: {\n csv: '',\n enabled: false,\n hasEmail: false,\n hasMjml: false,\n hasPlainText: false,\n json: '[]',\n targets: [],\n },\n compound: {\n enabled: false,\n persistenceEnabled: false,\n },\n persistence: {\n enabled: false,\n scope: 'none',\n },\n queryLoop: {\n enabled: false,\n },\n shared: {\n author: answers.author.trim(),\n blockMetadataVersion: BUILTIN_BLOCK_METADATA_VERSION,\n category: metadataDefaults?.category ?? template?.defaultCategory ?? 'widgets',\n cssClassName,\n description,\n descriptionJson: JSON.stringify(description),\n frontendCssClassName: buildFrontendCssClassName(cssClassName),\n icon: metadataDefaults?.icon ?? 'smiley',\n keyword: slug.replace(/-/g, ' '),\n namespace,\n pascalCase,\n phpPrefix,\n phpPrefixUpper,\n slug,\n slugCamelCase: pascalCase.charAt(0).toLowerCase() + pascalCase.slice(1),\n slugKebabCase: slug,\n slugSnakeCase,\n textDomain,\n title,\n titleCase: pascalCase,\n titleJson: JSON.stringify(title),\n versions: {\n apiClient: apiClientPackageVersion,\n blockRuntime: blockRuntimePackageVersion,\n blockTypes: blockTypesPackageVersion,\n projectTools: projectToolsPackageVersion,\n rest: restPackageVersion,\n },\n },\n template: {\n description: template?.description ?? 'External scaffold template variables',\n },\n templateFamily: 'external',\n });\n}\n",
|
|
101
102
|
"import {\n\tparseTemplateLocator,\n\tresolveTemplateSeed,\n} from \"./template-source.js\";\nimport {\n\tlistSelectableExternalTemplateLayers,\n\ttype SelectableExternalTemplateLayer,\n} from \"./template-layers.js\";\n\nexport interface ExternalLayerSelectionOption\n\textends SelectableExternalTemplateLayer {}\n\nexport interface ResolvedExternalLayerSelection {\n\tcleanup?: () => Promise<void>;\n\texternalLayerId?: string;\n\texternalLayerSource?: string;\n}\n\nexport async function resolveOptionalInteractiveExternalLayerId({\n\tcallerCwd,\n\texternalLayerId,\n\texternalLayerSource,\n\tselectExternalLayerId,\n}: {\n\tcallerCwd: string;\n\texternalLayerId?: string;\n\texternalLayerSource?: string;\n\tselectExternalLayerId?: (\n\t\toptions: ExternalLayerSelectionOption[],\n\t) => Promise<string>;\n}): Promise<ResolvedExternalLayerSelection> {\n\tif (!externalLayerSource || externalLayerId || !selectExternalLayerId) {\n\t\treturn {\n\t\t\texternalLayerId,\n\t\t\texternalLayerSource,\n\t\t};\n\t}\n\n\tconst layerSeed = await resolveTemplateSeed(\n\t\tparseTemplateLocator(externalLayerSource),\n\t\tcallerCwd,\n\t);\n\ttry {\n\t\tconst selectableLayers = await listSelectableExternalTemplateLayers(\n\t\t\tlayerSeed.rootDir,\n\t\t);\n\t\tif (selectableLayers.length <= 1) {\n\t\t\tawait layerSeed.cleanup?.();\n\t\t\treturn {\n\t\t\t\texternalLayerId,\n\t\t\t\texternalLayerSource,\n\t\t\t};\n\t\t}\n\n\t\tconst selectedLayerId = await selectExternalLayerId(selectableLayers);\n\t\tif (selectableLayers.some((layer) => layer.id === selectedLayerId)) {\n\t\t\treturn {\n\t\t\t\tcleanup: layerSeed.cleanup,\n\t\t\t\texternalLayerId: selectedLayerId,\n\t\t\t\texternalLayerSource: layerSeed.rootDir,\n\t\t\t};\n\t\t}\n\n\t\tawait layerSeed.cleanup?.();\n\t\tthrow new Error(\n\t\t\t`Unknown external layer \"${selectedLayerId}\". Expected one of: ${selectableLayers.map((layer) => layer.id).join(\", \")}`,\n\t\t);\n\t} catch (error) {\n\t\tawait layerSeed.cleanup?.();\n\t\tthrow error;\n\t}\n}\n"
|
|
102
103
|
],
|
|
103
|
-
"mappings": "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;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA0HpC,IAAM,sCAAsC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAgN5C,IAAM,+CAA+C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;A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AA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAgC5B,IAAM,uBAAuB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAkD7B,IAAM,4BAA4B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;ACtNlC,IAAM,8BAA8B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAgQpC,IAAM,8BAA8B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA6GpC,IAAM,+BAA+B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAsCrC,IAAM,gCAAgC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA4GtC,IAAM,oCAAoC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AC/f1C,IAAM,4BAA4B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAsKlC,IAAM,6BAA6B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA2BnC,IAAM,4BAA4B;AAAA;AAAA;AAAA;AAAA;AAAA;AAOlC,IAAM,kCAAkC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA6CxC,IAAM,qCAAqC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;ACrP3C,IAAM,4BAA4B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;ACAlC,IAAM,gCAAgC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAkGtC,IAAM,gCAAgC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAkCtC,IAAM,iCAAiC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA2BvC,IAAM,gCAAgC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAatC,IAAM,sCAAsC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAqC5C,IAAM,6BAA6B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;ACjNnC,IAAM,+BAA+B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA4ErC,IAAM,+BAA+B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAmCrC,IAAM,gCAAgC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA2BtC,IAAM,qCAAqC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AC1I3C,IAAM,4CAA4C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAgIlD,IAAM,4CAA4C;AAAA;AAAA;AAAA;AAKlD,IAAM,kDAAkD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA6CxD,IAAM,qDAAqD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AC9GlE,SAAS,kBAAkB,CAC1B,U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",
|
|
104
|
-
"debugId": "
|
|
104
|
+
"mappings": "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A;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA0HpC,IAAM,sCAAsC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAgN5C,IAAM,+CAA+C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;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AAAA;AAAA;AAAA;AAAA;AAoI5B,IAAM,sBAAsB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAgC5B,IAAM,uBAAuB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAkD7B,IAAM,4BAA4B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;ACtNlC,IAAM,8BAA8B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAgQpC,IAAM,8BAA8B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA6GpC,IAAM,+BAA+B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAsCrC,IAAM,gCAAgC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA4GtC,IAAM,oCAAoC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AC/f1C,IAAM,4BAA4B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAsKlC,IAAM,6BAA6B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA2BnC,IAAM,4BAA4B;AAAA;AAAA;AAAA;AAAA;AAAA;AAOlC,IAAM,kCAAkC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA6CxC,IAAM,qCAAqC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;ACrP3C,IAAM,4BAA4B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;ACAlC,IAAM,gCAAgC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAkGtC,IAAM,gCAAgC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAkCtC,IAAM,iCAAiC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA2BvC,IAAM,gCAAgC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAatC,IAAM,sCAAsC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAqC5C,IAAM,6BAA6B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;ACjNnC,IAAM,+BAA+B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA4ErC,IAAM,+BAA+B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAmCrC,IAAM,gCAAgC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA2BtC,IAAM,qCAAqC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AC1I3C,IAAM,4CAA4C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAgIlD,IAAM,4CAA4C;AAAA;AAAA;AAAA;AAKlD,IAAM,kDAAkD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA6CxD,IAAM,qDAAqD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;A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",
|
|
105
|
+
"debugId": "95394D76AFA9A70D64756E2164756E21",
|
|
105
106
|
"names": []
|
|
106
107
|
}
|