@sharpee/if-domain 2.1.0 → 2.2.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/index.d.ts +1 -0
- package/index.d.ts.map +1 -1
- package/index.js +2 -0
- package/index.js.map +1 -1
- package/package.json +3 -3
- package/phrase.d.ts +11 -1
- package/phrase.d.ts.map +1 -1
- package/phrase.js.map +1 -1
- package/snippets.d.ts +73 -0
- package/snippets.d.ts.map +1 -0
- package/snippets.js +54 -0
- package/snippets.js.map +1 -0
package/index.d.ts
CHANGED
package/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../repos/sharpee_v2/packages/if-domain/src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,cAAc,UAAU,CAAC;AAGzB,cAAc,aAAa,CAAC;AAG5B,cAAc,WAAW,CAAC;AAG1B,cAAc,qBAAqB,CAAC;AACpC,cAAc,4BAA4B,CAAC;AAG3C,cAAc,oBAAoB,CAAC;AAGnC,cAAc,wBAAwB,CAAC;AAGvC,cAAc,WAAW,CAAC;AAG1B,cAAc,UAAU,CAAC;AAGzB,cAAc,YAAY,CAAC;AAG3B,cAAc,SAAS,CAAC;AAGxB,cAAc,UAAU,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../repos/sharpee_v2/packages/if-domain/src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,cAAc,UAAU,CAAC;AAGzB,cAAc,aAAa,CAAC;AAG5B,cAAc,WAAW,CAAC;AAG1B,cAAc,qBAAqB,CAAC;AACpC,cAAc,4BAA4B,CAAC;AAG3C,cAAc,oBAAoB,CAAC;AAGnC,cAAc,wBAAwB,CAAC;AAGvC,cAAc,WAAW,CAAC;AAG1B,cAAc,UAAU,CAAC;AAGzB,cAAc,YAAY,CAAC;AAG3B,cAAc,SAAS,CAAC;AAGxB,cAAc,UAAU,CAAC;AAGzB,cAAc,YAAY,CAAC"}
|
package/index.js
CHANGED
|
@@ -43,4 +43,6 @@ __exportStar(require("./channels"), exports);
|
|
|
43
43
|
__exportStar(require("./sound"), exports);
|
|
44
44
|
// Phrase algebra — language-neutral phrase contracts (ADR-192)
|
|
45
45
|
__exportStar(require("./phrase"), exports);
|
|
46
|
+
// Room-description snippet contracts (ADR-209)
|
|
47
|
+
__exportStar(require("./snippets"), exports);
|
|
46
48
|
//# sourceMappingURL=index.js.map
|
package/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../repos/sharpee_v2/packages/if-domain/src/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;;AAEH,gBAAgB;AAChB,2CAAyB;AAEzB,mBAAmB;AACnB,8CAA4B;AAE5B,sBAAsB;AACtB,4CAA0B;AAE1B,+BAA+B;AAC/B,sDAAoC;AACpC,6DAA2C;AAE3C,mBAAmB;AACnB,qDAAmC;AAEnC,uBAAuB;AACvB,yDAAuC;AAEvC,iBAAiB;AACjB,4CAA0B;AAE1B,yBAAyB;AACzB,2CAAyB;AAEzB,uCAAuC;AACvC,6CAA2B;AAE3B,gDAAgD;AAChD,0CAAwB;AAExB,+DAA+D;AAC/D,2CAAyB"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../repos/sharpee_v2/packages/if-domain/src/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;;AAEH,gBAAgB;AAChB,2CAAyB;AAEzB,mBAAmB;AACnB,8CAA4B;AAE5B,sBAAsB;AACtB,4CAA0B;AAE1B,+BAA+B;AAC/B,sDAAoC;AACpC,6DAA2C;AAE3C,mBAAmB;AACnB,qDAAmC;AAEnC,uBAAuB;AACvB,yDAAuC;AAEvC,iBAAiB;AACjB,4CAA0B;AAE1B,yBAAyB;AACzB,2CAAyB;AAEzB,uCAAuC;AACvC,6CAA2B;AAE3B,gDAAgD;AAChD,0CAAwB;AAExB,+DAA+D;AAC/D,2CAAyB;AAEzB,+CAA+C;AAC/C,6CAA2B"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sharpee/if-domain",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.2.0",
|
|
4
4
|
"description": "Core domain model and contracts for Sharpee Interactive Fiction Platform",
|
|
5
5
|
"main": "./index.js",
|
|
6
6
|
"types": "./index.d.ts",
|
|
@@ -12,8 +12,8 @@
|
|
|
12
12
|
}
|
|
13
13
|
},
|
|
14
14
|
"dependencies": {
|
|
15
|
-
"@sharpee/core": "^2.
|
|
16
|
-
"@sharpee/text-blocks": "^2.
|
|
15
|
+
"@sharpee/core": "^2.2.0",
|
|
16
|
+
"@sharpee/text-blocks": "^2.2.0"
|
|
17
17
|
},
|
|
18
18
|
"keywords": [
|
|
19
19
|
"interactive-fiction",
|
package/phrase.d.ts
CHANGED
|
@@ -85,7 +85,17 @@ export interface PhraseList extends PhraseBase {
|
|
|
85
85
|
items: Phrase[];
|
|
86
86
|
conj: 'and' | 'or';
|
|
87
87
|
}
|
|
88
|
-
/**
|
|
88
|
+
/**
|
|
89
|
+
* Combinator: ordered join under one punctuation authority.
|
|
90
|
+
*
|
|
91
|
+
* ADR-209 (room-description snippets) reuses this kind as its splice carrier —
|
|
92
|
+
* the ADR's provisional `Seq` was never added because this IS it: the English
|
|
93
|
+
* Assembler realizes `parts` by in-order run concatenation with NO joining
|
|
94
|
+
* punctuation (parts abut byte-exactly; the whitespace authority only
|
|
95
|
+
* collapses, never inserts). A spliced description is a `Sequence` of
|
|
96
|
+
* `Verbatim` prose segments interleaved with resolved snippet values
|
|
97
|
+
* (`Literal` / `Choice`); `Empty` parts are absorbed.
|
|
98
|
+
*/
|
|
89
99
|
export interface Sequence extends PhraseBase {
|
|
90
100
|
kind: 'seq';
|
|
91
101
|
parts: Phrase[];
|
package/phrase.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"phrase.d.ts","sourceRoot":"","sources":["../../../../../../repos/sharpee_v2/packages/if-domain/src/phrase.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAM/D;;;;GAIG;AACH,MAAM,WAAW,UAAU;IACzB,+DAA+D;IAC/D,WAAW,CAAC,EAAE,WAAW,EAAE,CAAC;CAC7B;AAMD,wFAAwF;AACxF,MAAM,WAAW,OAAQ,SAAQ,UAAU;IACzC,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,8EAA8E;IAC9E,UAAU,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC;CACpC;AAED;;;;;GAKG;AACH,MAAM,WAAW,UAAW,SAAQ,UAAU;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb,iBAAiB;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,kFAAkF;IAClF,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,MAAM,EAAE,UAAU,GAAG,QAAQ,GAAG,MAAM,CAAC;IACvC;;;;;OAKG;IACH,MAAM,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;IACtC,wCAAwC;IACxC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,EAAE,YAAY,GAAG,UAAU,GAAG,MAAM,GAAG,MAAM,CAAC;IACzD,6CAA6C;IAC7C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gEAAgE;IAChE,WAAW,CAAC,EAAE,QAAQ,CAAC;IACvB,uEAAuE;IACvE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,mFAAmF;AACnF,MAAM,WAAW,UAAW,SAAQ,UAAU;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,IAAI,EAAE,KAAK,GAAG,IAAI,CAAC;CACpB;AAED
|
|
1
|
+
{"version":3,"file":"phrase.d.ts","sourceRoot":"","sources":["../../../../../../repos/sharpee_v2/packages/if-domain/src/phrase.ts"],"names":[],"mappings":"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"}
|
package/phrase.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"phrase.js","sourceRoot":"","sources":["../../../../../../repos/sharpee_v2/packages/if-domain/src/phrase.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;;
|
|
1
|
+
{"version":3,"file":"phrase.js","sourceRoot":"","sources":["../../../../../../repos/sharpee_v2/packages/if-domain/src/phrase.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;;AAieH,8BAEC;AAGD,oCAEC;AAGD,oCAEC;AAGD,gCAEC;AAGD,0BAEC;AAGD,wBAEC;AAGD,8BAEC;AAGD,8BAEC;AAGD,gCAEC;AAGD,gCAEC;AAGD,wBAEC;AAGD,gCAEC;AAGD,4BAEC;AAGD,gCAEC;AAGD,0BAEC;AA7ED,8EAA8E;AAC9E,mBAAmB;AACnB,8EAA8E;AAE9E,kDAAkD;AAClD,SAAgB,SAAS,CAAC,CAAS;IACjC,OAAO,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC;AAC9B,CAAC;AAED,qDAAqD;AACrD,SAAgB,YAAY,CAAC,CAAS;IACpC,OAAO,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC;AAC3B,CAAC;AAED,qDAAqD;AACrD,SAAgB,YAAY,CAAC,CAAS;IACpC,OAAO,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC;AAC3B,CAAC;AAED,mDAAmD;AACnD,SAAgB,UAAU,CAAC,CAAS;IAClC,OAAO,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC;AAC1B,CAAC;AAED,8CAA8C;AAC9C,SAAgB,OAAO,CAAC,CAAS;IAC/B,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC;AAC5B,CAAC;AAED,yDAAyD;AACzD,SAAgB,MAAM,CAAC,CAAS;IAC9B,OAAO,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC;AAC3B,CAAC;AAED,4DAA4D;AAC5D,SAAgB,SAAS,CAAC,CAAS;IACjC,OAAO,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC;AAC9B,CAAC;AAED,4DAA4D;AAC5D,SAAgB,SAAS,CAAC,CAAS;IACjC,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC;AAC7B,CAAC;AAED,iDAAiD;AACjD,SAAgB,UAAU,CAAC,CAAS;IAClC,OAAO,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC;AAC/B,CAAC;AAED,2DAA2D;AAC3D,SAAgB,UAAU,CAAC,CAAS;IAClC,OAAO,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC;AAC/B,CAAC;AAED,yDAAyD;AACzD,SAAgB,MAAM,CAAC,CAAS;IAC9B,OAAO,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC;AAC3B,CAAC;AAED,2DAA2D;AAC3D,SAAgB,UAAU,CAAC,CAAS;IAClC,OAAO,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC;AAC/B,CAAC;AAED,2DAA2D;AAC3D,SAAgB,QAAQ,CAAC,CAAS;IAChC,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC;AAC7B,CAAC;AAED,6DAA6D;AAC7D,SAAgB,UAAU,CAAC,CAAS;IAClC,OAAO,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC;AAC/B,CAAC;AAED,0DAA0D;AAC1D,SAAgB,OAAO,CAAC,CAAS;IAC/B,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC;AAC5B,CAAC"}
|
package/snippets.d.ts
ADDED
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file Room-description snippet contracts (ADR-209).
|
|
3
|
+
*
|
|
4
|
+
* Purpose: declare the wire types for author-written snippet maps — text
|
|
5
|
+
* spliced into room descriptions at explicit `{snippet:name}` markers — and
|
|
6
|
+
* the shared marker-extraction helper both the engine (load-time validation)
|
|
7
|
+
* and stdlib (render-time scan) consume.
|
|
8
|
+
*
|
|
9
|
+
* Public interface: `SnippetText`, `SnippetEntry`, `SnippetMap`,
|
|
10
|
+
* `SNIPPET_MARKER_PATTERN`, `extractSnippetMarkers`.
|
|
11
|
+
*
|
|
12
|
+
* Owner context: `@sharpee/if-domain` — these types are shared by world-model
|
|
13
|
+
* (RoomTrait storage), stdlib (scan/gate/resolve in the looking action), and
|
|
14
|
+
* lang-en-us (realization), so per the co-located wire-type rule they live
|
|
15
|
+
* here, beside the phrase contract. INVARIANT: no runtime-specific types and
|
|
16
|
+
* no locale logic — snippet TEXT is opaque author prose; selection semantics
|
|
17
|
+
* ride the existing `Choice` machinery (phrase.ts).
|
|
18
|
+
*/
|
|
19
|
+
/**
|
|
20
|
+
* One snippet text: a raw author string, or a message id resolved through the
|
|
21
|
+
* language provider (the multilingual path — consistent with NPC actions'
|
|
22
|
+
* `{ text } | { messageId }` split, ADR-209 resolution Q6).
|
|
23
|
+
*/
|
|
24
|
+
export type SnippetText = {
|
|
25
|
+
text: string;
|
|
26
|
+
} | {
|
|
27
|
+
messageId: string;
|
|
28
|
+
};
|
|
29
|
+
/**
|
|
30
|
+
* One marker's entry in a room's snippet map (ADR-209 Interface contracts):
|
|
31
|
+
* - `string` — one text, spliced verbatim every render.
|
|
32
|
+
* - `string[]` — short form: `cycling` over the texts (resolution Q3).
|
|
33
|
+
* - `SnippetText & { mentions? }` — one text with an optional presence gate.
|
|
34
|
+
* - long form — explicit selector over `texts`, optional presence gate.
|
|
35
|
+
*
|
|
36
|
+
* `mentions` is a serializable entity id doing two jobs (resolution Q7):
|
|
37
|
+
* coverage-lint metadata, and a presence gate — the entry renders only while
|
|
38
|
+
* that entity is transitively contained in the room (resolution Q9).
|
|
39
|
+
*/
|
|
40
|
+
export type SnippetEntry = string | string[] | (SnippetText & {
|
|
41
|
+
mentions?: string;
|
|
42
|
+
}) | {
|
|
43
|
+
selector?: 'cycling' | 'stopping' | 'sticky' | 'random' | 'firstTime';
|
|
44
|
+
texts: Array<string | SnippetText>;
|
|
45
|
+
mentions?: string;
|
|
46
|
+
};
|
|
47
|
+
/**
|
|
48
|
+
* A room's marker→snippet table, supplied by the author. Plain, serializable
|
|
49
|
+
* data: it rides the room trait through save/load; selection counters live in
|
|
50
|
+
* the text-state store (`Choice`), never here.
|
|
51
|
+
*/
|
|
52
|
+
export type SnippetMap = Record<string, SnippetEntry>;
|
|
53
|
+
/**
|
|
54
|
+
* The `{snippet:name}` marker pattern. Marker names are identifier-like
|
|
55
|
+
* (letters, digits, `_`, `-`); anything else inside the braces is not a
|
|
56
|
+
* marker and passes through as literal prose (a room WITHOUT a snippet map is
|
|
57
|
+
* never scanned at all — ADR-209 semantics 5, AC-7).
|
|
58
|
+
*/
|
|
59
|
+
export declare const SNIPPET_MARKER_PATTERN: RegExp;
|
|
60
|
+
/**
|
|
61
|
+
* Extract the marker names appearing in a description text, in order of first
|
|
62
|
+
* appearance, deduplicated (a duplicate marker resolves once per render —
|
|
63
|
+
* ADR-209 resolution Q8).
|
|
64
|
+
*
|
|
65
|
+
* Shared, pure helper: the engine's load-time unbound-marker validation and
|
|
66
|
+
* stdlib's render-time scan must agree on what a marker IS, so both import
|
|
67
|
+
* this one implementation.
|
|
68
|
+
*
|
|
69
|
+
* @param text a room `description` or `initialDescription` text
|
|
70
|
+
* @returns the distinct marker names, in first-appearance order
|
|
71
|
+
*/
|
|
72
|
+
export declare function extractSnippetMarkers(text: string): string[];
|
|
73
|
+
//# sourceMappingURL=snippets.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"snippets.d.ts","sourceRoot":"","sources":["../../../../../../repos/sharpee_v2/packages/if-domain/src/snippets.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH;;;;GAIG;AACH,MAAM,MAAM,WAAW,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC;AAEnE;;;;;;;;;;GAUG;AACH,MAAM,MAAM,YAAY,GACpB,MAAM,GACN,MAAM,EAAE,GACR,CAAC,WAAW,GAAG;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,GACrC;IACE,QAAQ,CAAC,EAAE,SAAS,GAAG,UAAU,GAAG,QAAQ,GAAG,QAAQ,GAAG,WAAW,CAAC;IACtE,KAAK,EAAE,KAAK,CAAC,MAAM,GAAG,WAAW,CAAC,CAAC;IACnC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEN;;;;GAIG;AACH,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;AAEtD;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,QAAkC,CAAC;AAEtE;;;;;;;;;;;GAWG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAW5D"}
|
package/snippets.js
ADDED
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @file Room-description snippet contracts (ADR-209).
|
|
4
|
+
*
|
|
5
|
+
* Purpose: declare the wire types for author-written snippet maps — text
|
|
6
|
+
* spliced into room descriptions at explicit `{snippet:name}` markers — and
|
|
7
|
+
* the shared marker-extraction helper both the engine (load-time validation)
|
|
8
|
+
* and stdlib (render-time scan) consume.
|
|
9
|
+
*
|
|
10
|
+
* Public interface: `SnippetText`, `SnippetEntry`, `SnippetMap`,
|
|
11
|
+
* `SNIPPET_MARKER_PATTERN`, `extractSnippetMarkers`.
|
|
12
|
+
*
|
|
13
|
+
* Owner context: `@sharpee/if-domain` — these types are shared by world-model
|
|
14
|
+
* (RoomTrait storage), stdlib (scan/gate/resolve in the looking action), and
|
|
15
|
+
* lang-en-us (realization), so per the co-located wire-type rule they live
|
|
16
|
+
* here, beside the phrase contract. INVARIANT: no runtime-specific types and
|
|
17
|
+
* no locale logic — snippet TEXT is opaque author prose; selection semantics
|
|
18
|
+
* ride the existing `Choice` machinery (phrase.ts).
|
|
19
|
+
*/
|
|
20
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
|
+
exports.SNIPPET_MARKER_PATTERN = void 0;
|
|
22
|
+
exports.extractSnippetMarkers = extractSnippetMarkers;
|
|
23
|
+
/**
|
|
24
|
+
* The `{snippet:name}` marker pattern. Marker names are identifier-like
|
|
25
|
+
* (letters, digits, `_`, `-`); anything else inside the braces is not a
|
|
26
|
+
* marker and passes through as literal prose (a room WITHOUT a snippet map is
|
|
27
|
+
* never scanned at all — ADR-209 semantics 5, AC-7).
|
|
28
|
+
*/
|
|
29
|
+
exports.SNIPPET_MARKER_PATTERN = /\{snippet:([A-Za-z0-9_-]+)\}/g;
|
|
30
|
+
/**
|
|
31
|
+
* Extract the marker names appearing in a description text, in order of first
|
|
32
|
+
* appearance, deduplicated (a duplicate marker resolves once per render —
|
|
33
|
+
* ADR-209 resolution Q8).
|
|
34
|
+
*
|
|
35
|
+
* Shared, pure helper: the engine's load-time unbound-marker validation and
|
|
36
|
+
* stdlib's render-time scan must agree on what a marker IS, so both import
|
|
37
|
+
* this one implementation.
|
|
38
|
+
*
|
|
39
|
+
* @param text a room `description` or `initialDescription` text
|
|
40
|
+
* @returns the distinct marker names, in first-appearance order
|
|
41
|
+
*/
|
|
42
|
+
function extractSnippetMarkers(text) {
|
|
43
|
+
const seen = new Set();
|
|
44
|
+
const names = [];
|
|
45
|
+
for (const match of text.matchAll(exports.SNIPPET_MARKER_PATTERN)) {
|
|
46
|
+
const name = match[1];
|
|
47
|
+
if (!seen.has(name)) {
|
|
48
|
+
seen.add(name);
|
|
49
|
+
names.push(name);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
return names;
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=snippets.js.map
|
package/snippets.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"snippets.js","sourceRoot":"","sources":["../../../../../../repos/sharpee_v2/packages/if-domain/src/snippets.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;GAiBG;;;AAyDH,sDAWC;AA/BD;;;;;GAKG;AACU,QAAA,sBAAsB,GAAG,+BAA+B,CAAC;AAEtE;;;;;;;;;;;GAWG;AACH,SAAgB,qBAAqB,CAAC,IAAY;IAChD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,8BAAsB,CAAC,EAAE,CAAC;QAC1D,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACpB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACf,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnB,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
|