precedent 1.0.6 → 1.0.7
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/.config/code-server/config.yaml +4 -0
- package/.config/configstore/update-notifier-npm-check-updates.json +4 -0
- package/.config/configstore/update-notifier-npm.json +4 -0
- package/.config/luxury-extras/.vscode/launch.json +46 -0
- package/.config/luxury-extras/Dockerfile +32 -0
- package/.config/luxury-extras/Dockerfile_LUXURYCode +45 -0
- package/.config/luxury-extras/MySQL/Dockerfile +51 -0
- package/.config/luxury-extras/MySQL/Dockerfile_LUXURYCODE +65 -0
- package/.config/luxury-extras/MySQL/MySQL-Laden-Entry.sh +17 -0
- package/.config/luxury-extras/MySQL/MySQL-Security.sql +5 -0
- package/.config/luxury-extras/model/ddl/BookStore.ddl +66 -0
- package/.config/luxury-extras/model/documentation/Dictionary.md +18 -0
- package/.config/luxury-extras/model/documentation/Model-Author.md +20 -0
- package/.config/luxury-extras/model/documentation/Model-Book.md +26 -0
- package/.config/luxury-extras/model/documentation/Model-BookAuthorJoin.md +14 -0
- package/.config/luxury-extras/model/documentation/Model-BookPrice.md +25 -0
- package/.config/luxury-extras/model/documentation/Model-Review.md +22 -0
- package/.config/luxury-extras/model/documentation/ModelChangeTracking.md +17 -0
- package/.config/luxury-extras/model/documentation/README.md +1 -0
- package/.config/luxury-extras/model/documentation/diagram/README.md +1 -0
- package/.config/luxury-extras/model/documentation/diagram/Stricture_Output.dot +13 -0
- package/.config/luxury-extras/model/documentation/diagram/Stricture_Output.png +0 -0
- package/.config/luxury-extras/model/json_schema_entities/BookStore-MeadowSchema-Author.json +220 -0
- package/.config/luxury-extras/model/json_schema_entities/BookStore-MeadowSchema-Book.json +268 -0
- package/.config/luxury-extras/model/json_schema_entities/BookStore-MeadowSchema-BookAuthorJoin.json +172 -0
- package/.config/luxury-extras/model/json_schema_entities/BookStore-MeadowSchema-BookPrice.json +260 -0
- package/.config/luxury-extras/model/json_schema_entities/BookStore-MeadowSchema-Review.json +236 -0
- package/.config/luxury-extras/model/json_schema_entities/README.md +1 -0
- package/.config/luxury-extras/model/json_schema_model/BookStore-Extended.json +915 -0
- package/.config/luxury-extras/model/json_schema_model/BookStore-PICT.json +1 -0
- package/.config/luxury-extras/model/json_schema_model/BookStore.json +280 -0
- package/.config/luxury-extras/model/json_schema_model/README.md +1 -0
- package/.config/luxury-extras/model/mysql_create/BookStore-CreateDatabase.mysql.sql +116 -0
- package/.config/luxury-extras/model/mysql_create/README.md +1 -0
- package/.vscode/launch.json +46 -0
- package/DockerfileLUXURYCode +45 -0
- package/{harness/Debug.js → debug/Harness.js} +0 -0
- package/dist/precedent.js +322 -0
- package/dist/precedent.min.js +37 -0
- package/dist/precedent.min.js.map +1 -0
- package/gulpfile.js +56 -62
- package/package.json +19 -14
- package/source/Precedent-Browser-Shim.js +8 -2
- package/.c9/.nakignore +0 -17
- package/.c9/metadata/tab0 +0 -1
- package/.c9/metadata/tab3 +0 -1
- package/.c9/metadata/workspace/.travis.yml +0 -1
- package/.c9/metadata/workspace/Ideas.md +0 -1
- package/.c9/metadata/workspace/Precedent-Command.js +0 -1
- package/.c9/metadata/workspace/Precident-Command.js +0 -1
- package/.c9/metadata/workspace/README.md +0 -1
- package/.c9/metadata/workspace/bin/Precedent +0 -1
- package/.c9/metadata/workspace/bin/Precident +0 -1
- package/.c9/metadata/workspace/bower.json +0 -1
- package/.c9/metadata/workspace/dist/precedent.latest.min.js +0 -1
- package/.c9/metadata/workspace/fs.js +0 -1
- package/.c9/metadata/workspace/gulpfile.js +0 -1
- package/.c9/metadata/workspace/harness/Debug.js +0 -1
- package/.c9/metadata/workspace/internal/module.js +0 -1
- package/.c9/metadata/workspace/module.js +0 -1
- package/.c9/metadata/workspace/package.json +0 -1
- package/.c9/metadata/workspace/source/Precedent-Browser-Shim.js +0 -1
- package/.c9/metadata/workspace/source/Precedent-Options.js +0 -1
- package/.c9/metadata/workspace/source/Precedent.js +0 -1
- package/.c9/metadata/workspace/source/StringParser.js +0 -1
- package/.c9/metadata/workspace/source/WordTree.js +0 -1
- package/.c9/metadata/workspace/test/Precedent_tests.js +0 -1
- package/.c9/project.settings +0 -91
- package/.npmignore +0 -37
- package/dist/precedent.1.0.5.js +0 -339
- package/dist/precedent.1.0.5.min.js +0 -2
- package/dist/precedent.1.0.5.min.js.map +0 -1
- package/dist/precedent.latest.min.js +0 -2
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"filter":false,"title":"WordTree.js","tooltip":"/source/WordTree.js","ace":{"folds":[],"scrolltop":0,"scrollleft":0,"selection":{"start":{"row":0,"column":0},"end":{"row":69,"column":0},"isBackwards":false},"options":{"guessTabSize":true,"useWrapMode":false,"wrapToView":true},"firstLineState":0},"hash":"1a2768d9696e36ccfda1ea1797bbe017cdf8248d","undoManager":{"mark":100,"position":100,"stack":[[{"start":{"row":45,"column":18},"end":{"row":45,"column":19},"action":"insert","lines":[" "],"id":326}],[{"start":{"row":45,"column":19},"end":{"row":45,"column":20},"action":"insert","lines":["W"],"id":327}],[{"start":{"row":45,"column":20},"end":{"row":45,"column":21},"action":"insert","lines":["e"],"id":328}],[{"start":{"row":45,"column":21},"end":{"row":45,"column":22},"action":"insert","lines":["h"],"id":329}],[{"start":{"row":45,"column":22},"end":{"row":45,"column":23},"action":"insert","lines":["t"],"id":330}],[{"start":{"row":45,"column":23},"end":{"row":45,"column":24},"action":"insert","lines":["e"],"id":331}],[{"start":{"row":45,"column":24},"end":{"row":45,"column":25},"action":"insert","lines":["r"],"id":332}],[{"start":{"row":45,"column":25},"end":{"row":45,"column":26},"action":"insert","lines":["h"],"id":333}],[{"start":{"row":45,"column":25},"end":{"row":45,"column":26},"action":"remove","lines":["h"],"id":334}],[{"start":{"row":45,"column":24},"end":{"row":45,"column":25},"action":"remove","lines":["r"],"id":335}],[{"start":{"row":45,"column":23},"end":{"row":45,"column":24},"action":"remove","lines":["e"],"id":336}],[{"start":{"row":45,"column":22},"end":{"row":45,"column":23},"action":"remove","lines":["t"],"id":337}],[{"start":{"row":45,"column":21},"end":{"row":45,"column":22},"action":"remove","lines":["h"],"id":338}],[{"start":{"row":45,"column":20},"end":{"row":45,"column":21},"action":"remove","lines":["e"],"id":339}],[{"start":{"row":45,"column":20},"end":{"row":45,"column":21},"action":"insert","lines":["h"],"id":340}],[{"start":{"row":45,"column":21},"end":{"row":45,"column":22},"action":"insert","lines":["e"],"id":341}],[{"start":{"row":45,"column":22},"end":{"row":45,"column":23},"action":"insert","lines":["t"],"id":342}],[{"start":{"row":45,"column":23},"end":{"row":45,"column":24},"action":"insert","lines":["h"],"id":343}],[{"start":{"row":45,"column":24},"end":{"row":45,"column":25},"action":"insert","lines":["e"],"id":344}],[{"start":{"row":45,"column":25},"end":{"row":45,"column":26},"action":"insert","lines":["r"],"id":345}],[{"start":{"row":45,"column":26},"end":{"row":45,"column":27},"action":"insert","lines":[" "],"id":346}],[{"start":{"row":45,"column":27},"end":{"row":45,"column":28},"action":"insert","lines":["a"],"id":347}],[{"start":{"row":45,"column":28},"end":{"row":45,"column":29},"action":"insert","lines":["d"],"id":348}],[{"start":{"row":45,"column":29},"end":{"row":45,"column":30},"action":"insert","lines":["d"],"id":349}],[{"start":{"row":45,"column":30},"end":{"row":45,"column":31},"action":"insert","lines":["i"],"id":350}],[{"start":{"row":45,"column":31},"end":{"row":45,"column":32},"action":"insert","lines":["n"],"id":351}],[{"start":{"row":45,"column":32},"end":{"row":45,"column":33},"action":"insert","lines":["g"],"id":352}],[{"start":{"row":45,"column":33},"end":{"row":45,"column":34},"action":"insert","lines":[" "],"id":353}],[{"start":{"row":45,"column":34},"end":{"row":45,"column":35},"action":"insert","lines":["t"],"id":354}],[{"start":{"row":45,"column":35},"end":{"row":45,"column":36},"action":"insert","lines":["h"],"id":355}],[{"start":{"row":45,"column":36},"end":{"row":45,"column":37},"action":"insert","lines":["e"],"id":356}],[{"start":{"row":45,"column":37},"end":{"row":45,"column":38},"action":"insert","lines":[" "],"id":357}],[{"start":{"row":45,"column":38},"end":{"row":45,"column":39},"action":"insert","lines":["p"],"id":358}],[{"start":{"row":45,"column":39},"end":{"row":45,"column":40},"action":"insert","lines":["a"],"id":359}],[{"start":{"row":45,"column":40},"end":{"row":45,"column":41},"action":"insert","lines":["t"],"id":360}],[{"start":{"row":45,"column":41},"end":{"row":45,"column":42},"action":"insert","lines":["t"],"id":361}],[{"start":{"row":45,"column":42},"end":{"row":45,"column":43},"action":"insert","lines":["e"],"id":362}],[{"start":{"row":45,"column":43},"end":{"row":45,"column":44},"action":"insert","lines":["r"],"id":363}],[{"start":{"row":45,"column":44},"end":{"row":45,"column":45},"action":"insert","lines":["n"],"id":364}],[{"start":{"row":45,"column":45},"end":{"row":45,"column":46},"action":"insert","lines":[" "],"id":365}],[{"start":{"row":45,"column":46},"end":{"row":45,"column":47},"action":"insert","lines":["w"],"id":366}],[{"start":{"row":45,"column":47},"end":{"row":45,"column":48},"action":"insert","lines":["o"],"id":367}],[{"start":{"row":45,"column":48},"end":{"row":45,"column":49},"action":"insert","lines":["r"],"id":368}],[{"start":{"row":45,"column":49},"end":{"row":45,"column":50},"action":"insert","lines":["k"],"id":369}],[{"start":{"row":45,"column":50},"end":{"row":45,"column":51},"action":"insert","lines":["e"],"id":370}],[{"start":{"row":45,"column":51},"end":{"row":45,"column":52},"action":"insert","lines":["d"],"id":371}],[{"start":{"row":45,"column":52},"end":{"row":45,"column":53},"action":"insert","lines":[" "],"id":372}],[{"start":{"row":45,"column":53},"end":{"row":45,"column":54},"action":"insert","lines":["o"],"id":373}],[{"start":{"row":45,"column":54},"end":{"row":45,"column":55},"action":"insert","lines":["r"],"id":374}],[{"start":{"row":45,"column":55},"end":{"row":45,"column":56},"action":"insert","lines":[" "],"id":375}],[{"start":{"row":45,"column":56},"end":{"row":45,"column":57},"action":"insert","lines":["n"],"id":376}],[{"start":{"row":45,"column":57},"end":{"row":45,"column":58},"action":"insert","lines":["o"],"id":377}],[{"start":{"row":45,"column":58},"end":{"row":45,"column":59},"action":"insert","lines":["t"],"id":378}],[{"start":{"row":45,"column":59},"end":{"row":45,"column":60},"action":"insert","lines":["."],"id":379}],[{"start":{"row":45,"column":59},"end":{"row":45,"column":60},"action":"remove","lines":["."],"id":380}],[{"start":{"row":45,"column":19},"end":{"row":45,"column":26},"action":"remove","lines":["Whether"],"id":381},{"start":{"row":45,"column":19},"end":{"row":45,"column":20},"action":"insert","lines":["T"]}],[{"start":{"row":45,"column":20},"end":{"row":45,"column":21},"action":"insert","lines":["r"],"id":382}],[{"start":{"row":45,"column":21},"end":{"row":45,"column":22},"action":"insert","lines":["u"],"id":383}],[{"start":{"row":45,"column":22},"end":{"row":45,"column":23},"action":"insert","lines":["e"],"id":384}],[{"start":{"row":45,"column":23},"end":{"row":45,"column":24},"action":"insert","lines":[" "],"id":385}],[{"start":{"row":45,"column":24},"end":{"row":45,"column":25},"action":"insert","lines":["i"],"id":386}],[{"start":{"row":45,"column":25},"end":{"row":45,"column":26},"action":"insert","lines":["f"],"id":387}],[{"start":{"row":45,"column":58},"end":{"row":45,"column":59},"action":"remove","lines":["t"],"id":388}],[{"start":{"row":45,"column":57},"end":{"row":45,"column":58},"action":"remove","lines":["o"],"id":389}],[{"start":{"row":45,"column":56},"end":{"row":45,"column":57},"action":"remove","lines":["n"],"id":390}],[{"start":{"row":45,"column":55},"end":{"row":45,"column":56},"action":"remove","lines":[" "],"id":391}],[{"start":{"row":45,"column":54},"end":{"row":45,"column":55},"action":"remove","lines":["r"],"id":392}],[{"start":{"row":45,"column":53},"end":{"row":45,"column":54},"action":"remove","lines":["o"],"id":393}],[{"start":{"row":45,"column":52},"end":{"row":45,"column":53},"action":"remove","lines":[" "],"id":394}],[{"start":{"row":45,"column":51},"end":{"row":45,"column":52},"action":"remove","lines":["d"],"id":395}],[{"start":{"row":45,"column":50},"end":{"row":45,"column":51},"action":"remove","lines":["e"],"id":396}],[{"start":{"row":45,"column":49},"end":{"row":45,"column":50},"action":"remove","lines":["k"],"id":397}],[{"start":{"row":45,"column":48},"end":{"row":45,"column":49},"action":"remove","lines":["r"],"id":398}],[{"start":{"row":45,"column":47},"end":{"row":45,"column":48},"action":"remove","lines":["o"],"id":399}],[{"start":{"row":45,"column":47},"end":{"row":45,"column":48},"action":"insert","lines":["a"],"id":400}],[{"start":{"row":45,"column":48},"end":{"row":45,"column":49},"action":"insert","lines":["s"],"id":401}],[{"start":{"row":45,"column":49},"end":{"row":45,"column":50},"action":"insert","lines":[" "],"id":402}],[{"start":{"row":45,"column":50},"end":{"row":45,"column":51},"action":"insert","lines":["s"],"id":403}],[{"start":{"row":45,"column":51},"end":{"row":45,"column":52},"action":"insert","lines":["u"],"id":404}],[{"start":{"row":45,"column":52},"end":{"row":45,"column":53},"action":"insert","lines":["c"],"id":405}],[{"start":{"row":45,"column":53},"end":{"row":45,"column":54},"action":"insert","lines":["c"],"id":406}],[{"start":{"row":45,"column":54},"end":{"row":45,"column":55},"action":"insert","lines":["e"],"id":407}],[{"start":{"row":45,"column":55},"end":{"row":45,"column":56},"action":"insert","lines":["s"],"id":408}],[{"start":{"row":45,"column":56},"end":{"row":45,"column":57},"action":"insert","lines":["s"],"id":409}],[{"start":{"row":45,"column":57},"end":{"row":45,"column":58},"action":"insert","lines":["u"],"id":410}],[{"start":{"row":45,"column":58},"end":{"row":45,"column":59},"action":"insert","lines":["f"],"id":411}],[{"start":{"row":45,"column":58},"end":{"row":45,"column":59},"action":"remove","lines":["f"],"id":412}],[{"start":{"row":45,"column":57},"end":{"row":45,"column":58},"action":"remove","lines":["u"],"id":413}],[{"start":{"row":45,"column":57},"end":{"row":45,"column":58},"action":"insert","lines":["f"],"id":414}],[{"start":{"row":45,"column":58},"end":{"row":45,"column":59},"action":"insert","lines":["u"],"id":415}],[{"start":{"row":45,"column":59},"end":{"row":45,"column":60},"action":"insert","lines":["l"],"id":416}],[{"start":{"row":13,"column":4},"end":{"row":13,"column":13},"action":"remove","lines":["Precedent"],"id":417},{"start":{"row":13,"column":4},"end":{"row":13,"column":5},"action":"insert","lines":["W"]}],[{"start":{"row":13,"column":5},"end":{"row":13,"column":6},"action":"insert","lines":["o"],"id":418}],[{"start":{"row":13,"column":6},"end":{"row":13,"column":7},"action":"insert","lines":["r"],"id":419}],[{"start":{"row":13,"column":7},"end":{"row":13,"column":8},"action":"insert","lines":["d"],"id":420}],[{"start":{"row":13,"column":8},"end":{"row":13,"column":9},"action":"insert","lines":["T"],"id":421}],[{"start":{"row":13,"column":9},"end":{"row":13,"column":10},"action":"insert","lines":["r"],"id":422}],[{"start":{"row":13,"column":10},"end":{"row":13,"column":11},"action":"insert","lines":["e"],"id":423}],[{"start":{"row":13,"column":11},"end":{"row":13,"column":12},"action":"insert","lines":["e"],"id":424}],[{"start":{"row":66,"column":1},"end":{"row":66,"column":2},"action":"remove","lines":[";"],"id":425}],[{"start":{"row":39,"column":1},"end":{"row":39,"column":2},"action":"remove","lines":["\t"],"id":426}]]},"timestamp":1496963595705}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"filter":false,"title":"Precedent_tests.js","tooltip":"/test/Precedent_tests.js","undoManager":{"mark":100,"position":100,"stack":[[{"start":{"row":128,"column":0},"end":{"row":129,"column":0},"action":"insert","lines":["",""],"id":278}],[{"start":{"row":130,"column":66},"end":{"row":130,"column":67},"action":"remove","lines":[","],"id":279}],[{"start":{"row":126,"column":0},"end":{"row":129,"column":0},"action":"remove","lines":["\t\t\t\t\t\t\t'Match this <> and this <here> please.',","\t\t\t\t\t\t\t'Match this SHORTEST_MATCH and this SHORTEST_MATCH please.',","",""],"id":280}],[{"start":{"row":126,"column":0},"end":{"row":129,"column":0},"action":"insert","lines":["\t\t\t\t\t\t\t'Match this <> and this <here> please.',","\t\t\t\t\t\t\t'Match this SHORTEST_MATCH and this SHORTEST_MATCH please.',","",""],"id":281}],[{"start":{"row":129,"column":0},"end":{"row":132,"column":0},"action":"insert","lines":["\t\t\t\t\t\t\t'Match this <> and this <here> please.',","\t\t\t\t\t\t\t'Match this SHORTEST_MATCH and this SHORTEST_MATCH please.',","",""],"id":282}],[{"start":{"row":129,"column":20},"end":{"row":129,"column":21},"action":"insert","lines":["<"],"id":283}],[{"start":{"row":129,"column":33},"end":{"row":129,"column":34},"action":"insert","lines":["<"],"id":284}],[{"start":{"row":132,"column":20},"end":{"row":132,"column":21},"action":"insert","lines":["<"],"id":285}],[{"start":{"row":132,"column":21},"end":{"row":132,"column":22},"action":"insert","lines":["<"],"id":286}],[{"start":{"row":132,"column":22},"end":{"row":132,"column":23},"action":"insert","lines":["<"],"id":287}],[{"start":{"row":130,"column":8},"end":{"row":130,"column":65},"action":"remove","lines":["Match this SHORTEST_MATCH and this SHORTEST_MATCH please."],"id":288},{"start":{"row":130,"column":8},"end":{"row":130,"column":61},"action":"insert","lines":["Match this MEDIUM_MATCH and this MEDIUM_MATCH please."]}],[{"start":{"row":133,"column":19},"end":{"row":133,"column":33},"action":"remove","lines":["SHORTEST_MATCH"],"id":289},{"start":{"row":133,"column":19},"end":{"row":133,"column":31},"action":"insert","lines":["MEDIUM_MATCH"]}],[{"start":{"row":129,"column":0},"end":{"row":132,"column":0},"action":"remove","lines":["\t\t\t\t\t\t\t'Match this <<> and this <<here> please.',","\t\t\t\t\t\t\t'Match this MEDIUM_MATCH and this MEDIUM_MATCH please.',","",""],"id":290}],[{"start":{"row":129,"column":0},"end":{"row":132,"column":0},"action":"insert","lines":["\t\t\t\t\t\t\t'Match this <<> and this <<here> please.',","\t\t\t\t\t\t\t'Match this MEDIUM_MATCH and this MEDIUM_MATCH please.',","",""],"id":291}],[{"start":{"row":132,"column":0},"end":{"row":135,"column":0},"action":"insert","lines":["\t\t\t\t\t\t\t'Match this <<> and this <<here> please.',","\t\t\t\t\t\t\t'Match this MEDIUM_MATCH and this MEDIUM_MATCH please.',","",""],"id":292}],[{"start":{"row":132,"column":21},"end":{"row":132,"column":22},"action":"insert","lines":["E"],"id":293}],[{"start":{"row":132,"column":22},"end":{"row":132,"column":23},"action":"insert","lines":["X"],"id":294}],[{"start":{"row":132,"column":23},"end":{"row":132,"column":24},"action":"insert","lines":["T"],"id":295}],[{"start":{"row":132,"column":24},"end":{"row":132,"column":25},"action":"insert","lines":["R"],"id":296}],[{"start":{"row":132,"column":25},"end":{"row":132,"column":26},"action":"insert","lines":["A"],"id":297}],[{"start":{"row":132,"column":26},"end":{"row":132,"column":27},"action":"insert","lines":["L"],"id":298}],[{"start":{"row":132,"column":27},"end":{"row":132,"column":28},"action":"insert","lines":["O"],"id":299}],[{"start":{"row":132,"column":28},"end":{"row":132,"column":29},"action":"insert","lines":["N"],"id":300}],[{"start":{"row":132,"column":29},"end":{"row":132,"column":30},"action":"insert","lines":["G"],"id":301}],[{"start":{"row":133,"column":19},"end":{"row":133,"column":31},"action":"remove","lines":["MEDIUM_MATCH"],"id":302},{"start":{"row":133,"column":19},"end":{"row":133,"column":35},"action":"insert","lines":["EXTRA_LONG_MATCH"]}],[{"start":{"row":129,"column":0},"end":{"row":132,"column":0},"action":"remove","lines":["\t\t\t\t\t\t\t'Match this <<> and this <<here> please.',","\t\t\t\t\t\t\t'Match this MEDIUM_MATCH and this MEDIUM_MATCH please.',","",""],"id":303}],[{"start":{"row":129,"column":0},"end":{"row":132,"column":0},"action":"insert","lines":["\t\t\t\t\t\t\t'Match this <<> and this <<here> please.',","\t\t\t\t\t\t\t'Match this MEDIUM_MATCH and this MEDIUM_MATCH please.',","",""],"id":304}],[{"start":{"row":132,"column":0},"end":{"row":135,"column":0},"action":"insert","lines":["\t\t\t\t\t\t\t'Match this <<> and this <<here> please.',","\t\t\t\t\t\t\t'Match this MEDIUM_MATCH and this MEDIUM_MATCH please.',","",""],"id":305}],[{"start":{"row":132,"column":21},"end":{"row":132,"column":22},"action":"insert","lines":["E"],"id":306}],[{"start":{"row":132,"column":22},"end":{"row":132,"column":23},"action":"insert","lines":["X"],"id":307}],[{"start":{"row":132,"column":23},"end":{"row":132,"column":24},"action":"insert","lines":["T"],"id":308}],[{"start":{"row":132,"column":24},"end":{"row":132,"column":25},"action":"insert","lines":["R"],"id":309}],[{"start":{"row":132,"column":25},"end":{"row":132,"column":26},"action":"insert","lines":["A"],"id":310}],[{"start":{"row":133,"column":36},"end":{"row":133,"column":37},"action":"insert","lines":["f"],"id":311}],[{"start":{"row":133,"column":37},"end":{"row":133,"column":38},"action":"insert","lines":["d"],"id":312}],[{"start":{"row":133,"column":38},"end":{"row":133,"column":39},"action":"insert","lines":["f"],"id":313}],[{"start":{"row":133,"column":39},"end":{"row":133,"column":40},"action":"insert","lines":["d"],"id":314}],[{"start":{"row":133,"column":39},"end":{"row":133,"column":40},"action":"remove","lines":["d"],"id":315}],[{"start":{"row":133,"column":38},"end":{"row":133,"column":39},"action":"remove","lines":["f"],"id":316}],[{"start":{"row":133,"column":37},"end":{"row":133,"column":38},"action":"remove","lines":["d"],"id":317}],[{"start":{"row":133,"column":36},"end":{"row":133,"column":37},"action":"remove","lines":["f"],"id":318}],[{"start":{"row":141,"column":0},"end":{"row":146,"column":0},"action":"remove","lines":["\t\t\t\t\t\tvar testPrecedent = loadPrecedentModule();","\t\t\t\t\t\ttestPrecedent.addPattern('<', '>', 'SHORTEST_MATCH');","\t\t\t\t\t\ttestPrecedent.addPattern('<<', '>', 'MEDIUM_MATCH');","\t\t\t\t\t\ttestPrecedent.addPattern('<<EXTRALONG', '>', 'EXTRA_LONG_MATCH');","",""],"id":319}],[{"start":{"row":141,"column":0},"end":{"row":142,"column":0},"action":"insert","lines":["",""],"id":320}],[{"start":{"row":125,"column":0},"end":{"row":130,"column":0},"action":"insert","lines":["\t\t\t\t\t\tvar testPrecedent = loadPrecedentModule();","\t\t\t\t\t\ttestPrecedent.addPattern('<', '>', 'SHORTEST_MATCH');","\t\t\t\t\t\ttestPrecedent.addPattern('<<', '>', 'MEDIUM_MATCH');","\t\t\t\t\t\ttestPrecedent.addPattern('<<EXTRALONG', '>', 'EXTRA_LONG_MATCH');","",""],"id":321}],[{"start":{"row":10,"column":25},"end":{"row":11,"column":0},"action":"insert","lines":["",""],"id":322}],[{"start":{"row":11,"column":0},"end":{"row":12,"column":0},"action":"insert","lines":["",""],"id":323}],[{"start":{"row":12,"column":0},"end":{"row":12,"column":1},"action":"insert","lines":["v"],"id":324}],[{"start":{"row":12,"column":1},"end":{"row":12,"column":2},"action":"insert","lines":["a"],"id":325}],[{"start":{"row":12,"column":2},"end":{"row":12,"column":3},"action":"insert","lines":["r"],"id":326}],[{"start":{"row":12,"column":3},"end":{"row":12,"column":4},"action":"insert","lines":[" "],"id":327}],[{"start":{"row":12,"column":4},"end":{"row":12,"column":5},"action":"insert","lines":["l"],"id":328}],[{"start":{"row":12,"column":5},"end":{"row":12,"column":6},"action":"insert","lines":["i"],"id":329}],[{"start":{"row":12,"column":6},"end":{"row":12,"column":7},"action":"insert","lines":["b"],"id":330}],[{"start":{"row":12,"column":7},"end":{"row":12,"column":8},"action":"insert","lines":["P"],"id":331}],[{"start":{"row":12,"column":8},"end":{"row":12,"column":9},"action":"insert","lines":["r"],"id":332}],[{"start":{"row":12,"column":9},"end":{"row":12,"column":10},"action":"insert","lines":["e"],"id":333}],[{"start":{"row":12,"column":10},"end":{"row":12,"column":11},"action":"insert","lines":["c"],"id":334}],[{"start":{"row":12,"column":11},"end":{"row":12,"column":12},"action":"insert","lines":["e"],"id":335}],[{"start":{"row":12,"column":12},"end":{"row":12,"column":13},"action":"insert","lines":["n"],"id":336}],[{"start":{"row":12,"column":12},"end":{"row":12,"column":13},"action":"remove","lines":["n"],"id":337}],[{"start":{"row":12,"column":12},"end":{"row":12,"column":13},"action":"insert","lines":["d"],"id":338}],[{"start":{"row":12,"column":13},"end":{"row":12,"column":14},"action":"insert","lines":["e"],"id":339}],[{"start":{"row":12,"column":14},"end":{"row":12,"column":15},"action":"insert","lines":["n"],"id":340}],[{"start":{"row":12,"column":15},"end":{"row":12,"column":16},"action":"insert","lines":["t"],"id":341}],[{"start":{"row":12,"column":16},"end":{"row":12,"column":17},"action":"insert","lines":[" "],"id":342}],[{"start":{"row":12,"column":17},"end":{"row":12,"column":18},"action":"insert","lines":["-"],"id":343},{"start":{"row":12,"column":18},"end":{"row":12,"column":19},"action":"insert","lines":["="]}],[{"start":{"row":12,"column":18},"end":{"row":12,"column":19},"action":"remove","lines":["="],"id":344}],[{"start":{"row":12,"column":17},"end":{"row":12,"column":18},"action":"remove","lines":["-"],"id":345}],[{"start":{"row":12,"column":17},"end":{"row":12,"column":18},"action":"insert","lines":["="],"id":346}],[{"start":{"row":12,"column":18},"end":{"row":12,"column":19},"action":"insert","lines":[" "],"id":347}],[{"start":{"row":12,"column":19},"end":{"row":12,"column":52},"action":"insert","lines":["require('../source/Precedent.js')"],"id":348}],[{"start":{"row":12,"column":52},"end":{"row":12,"column":53},"action":"insert","lines":[";"],"id":349}],[{"start":{"row":16,"column":1},"end":{"row":16,"column":45},"action":"remove","lines":["return require('../source/Precedent.js').new"],"id":350},{"start":{"row":16,"column":1},"end":{"row":16,"column":2},"action":"insert","lines":["r"]}],[{"start":{"row":16,"column":2},"end":{"row":16,"column":3},"action":"insert","lines":["e"],"id":351}],[{"start":{"row":16,"column":3},"end":{"row":16,"column":4},"action":"insert","lines":["t"],"id":352}],[{"start":{"row":16,"column":4},"end":{"row":16,"column":5},"action":"insert","lines":["u"],"id":353}],[{"start":{"row":16,"column":5},"end":{"row":16,"column":6},"action":"insert","lines":["r"],"id":354}],[{"start":{"row":16,"column":6},"end":{"row":16,"column":7},"action":"insert","lines":["n"],"id":355}],[{"start":{"row":16,"column":7},"end":{"row":16,"column":8},"action":"insert","lines":[" "],"id":356}],[{"start":{"row":16,"column":8},"end":{"row":16,"column":9},"action":"insert","lines":["n"],"id":357}],[{"start":{"row":16,"column":9},"end":{"row":16,"column":10},"action":"insert","lines":["e"],"id":358}],[{"start":{"row":16,"column":10},"end":{"row":16,"column":11},"action":"insert","lines":["w"],"id":359}],[{"start":{"row":16,"column":11},"end":{"row":16,"column":12},"action":"insert","lines":[" "],"id":360}],[{"start":{"row":16,"column":12},"end":{"row":16,"column":13},"action":"insert","lines":["l"],"id":361}],[{"start":{"row":16,"column":13},"end":{"row":16,"column":14},"action":"insert","lines":["i"],"id":362}],[{"start":{"row":16,"column":14},"end":{"row":16,"column":15},"action":"insert","lines":["b"],"id":363}],[{"start":{"row":16,"column":15},"end":{"row":16,"column":16},"action":"insert","lines":["P"],"id":364}],[{"start":{"row":16,"column":12},"end":{"row":16,"column":16},"action":"remove","lines":["libP"],"id":365},{"start":{"row":16,"column":12},"end":{"row":16,"column":24},"action":"insert","lines":["libPrecedent"]}],[{"start":{"row":55,"column":27},"end":{"row":55,"column":31},"action":"remove","lines":["tree"],"id":366},{"start":{"row":55,"column":27},"end":{"row":55,"column":28},"action":"insert","lines":["P"]}],[{"start":{"row":55,"column":28},"end":{"row":55,"column":29},"action":"insert","lines":["a"],"id":367}],[{"start":{"row":55,"column":29},"end":{"row":55,"column":30},"action":"insert","lines":["r"],"id":368}],[{"start":{"row":55,"column":30},"end":{"row":55,"column":31},"action":"insert","lines":["s"],"id":369}],[{"start":{"row":55,"column":31},"end":{"row":55,"column":32},"action":"insert","lines":["e"],"id":370}],[{"start":{"row":55,"column":32},"end":{"row":55,"column":33},"action":"insert","lines":["T"],"id":371}],[{"start":{"row":55,"column":33},"end":{"row":55,"column":34},"action":"insert","lines":["r"],"id":372}],[{"start":{"row":55,"column":34},"end":{"row":55,"column":35},"action":"insert","lines":["e"],"id":373}],[{"start":{"row":55,"column":35},"end":{"row":55,"column":36},"action":"insert","lines":["e"],"id":374}],[{"start":{"row":68,"column":39},"end":{"row":68,"column":43},"action":"remove","lines":["tree"],"id":375},{"start":{"row":68,"column":39},"end":{"row":68,"column":48},"action":"insert","lines":["ParseTree"]}],[{"start":{"row":70,"column":39},"end":{"row":70,"column":43},"action":"remove","lines":["tree"],"id":376},{"start":{"row":70,"column":39},"end":{"row":70,"column":48},"action":"insert","lines":["ParseTree"]}],[{"start":{"row":10,"column":0},"end":{"row":10,"column":1},"action":"insert","lines":["/"],"id":377}],[{"start":{"row":10,"column":1},"end":{"row":10,"column":2},"action":"insert","lines":["/"],"id":378}]]},"ace":{"folds":[],"scrolltop":688.5,"scrollleft":0,"selection":{"start":{"row":133,"column":0},"end":{"row":133,"column":0},"isBackwards":false},"options":{"guessTabSize":true,"useWrapMode":false,"wrapToView":true},"firstLineState":{"row":42,"state":"no_regex","mode":"ace/mode/javascript"}},"timestamp":1496963419641,"hash":"504b807e8b515bd909e3301d4d182705a46ebd72"}
|
package/.c9/project.settings
DELETED
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"ace": {
|
|
3
|
-
"@guessTabSize": true,
|
|
4
|
-
"@newLineMode": "unix",
|
|
5
|
-
"@tabSize": 4,
|
|
6
|
-
"@useSoftTabs": true
|
|
7
|
-
},
|
|
8
|
-
"build": {
|
|
9
|
-
"@builder": "auto",
|
|
10
|
-
"@path": "/.c9/builders",
|
|
11
|
-
"@saveall": true
|
|
12
|
-
},
|
|
13
|
-
"find.nak": {
|
|
14
|
-
"@searchLimit": 100
|
|
15
|
-
},
|
|
16
|
-
"format": {
|
|
17
|
-
"jsbeautify": {
|
|
18
|
-
"@advanced": {},
|
|
19
|
-
"@braces": "end-expand",
|
|
20
|
-
"@indent_inner_html": false,
|
|
21
|
-
"@jslinthappy": "false",
|
|
22
|
-
"@keeparrayindentation": "false",
|
|
23
|
-
"@preserveempty": "true",
|
|
24
|
-
"@space_before_conditional": "true",
|
|
25
|
-
"@unescape_strings": "true"
|
|
26
|
-
}
|
|
27
|
-
},
|
|
28
|
-
"general": {
|
|
29
|
-
"@stripws": false
|
|
30
|
-
},
|
|
31
|
-
"golang": {
|
|
32
|
-
"@completion": true,
|
|
33
|
-
"@formatOnSave": true,
|
|
34
|
-
"@formatter": "gofmt -w \"$file\""
|
|
35
|
-
},
|
|
36
|
-
"javascript": {
|
|
37
|
-
"@formatOnSave": "false",
|
|
38
|
-
"@formatter": "esformatter -i \"$file\"",
|
|
39
|
-
"@use_jsbeautify": "true"
|
|
40
|
-
},
|
|
41
|
-
"language": {
|
|
42
|
-
"@eslintrc": true,
|
|
43
|
-
"@semi": true,
|
|
44
|
-
"@undeclaredVars": true,
|
|
45
|
-
"@unusedFunctionArgs": false,
|
|
46
|
-
"@warnLevel": "info",
|
|
47
|
-
"tern_defs": {
|
|
48
|
-
"json()": {
|
|
49
|
-
"browser": {
|
|
50
|
-
"enabled": true
|
|
51
|
-
},
|
|
52
|
-
"ecma5": {
|
|
53
|
-
"enabled": true
|
|
54
|
-
},
|
|
55
|
-
"jQuery": {
|
|
56
|
-
"enabled": true
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
},
|
|
61
|
-
"php": {
|
|
62
|
-
"@completion": true,
|
|
63
|
-
"@path": ".:./vendor"
|
|
64
|
-
},
|
|
65
|
-
"python": {
|
|
66
|
-
"@completion": true,
|
|
67
|
-
"@path": "/usr/local/lib/python2.7/dist-packages:/usr/local/lib/python3.4/dist-packages:/usr/local/lib/python3.5/dist-packages",
|
|
68
|
-
"@version": "python2"
|
|
69
|
-
},
|
|
70
|
-
"run": {
|
|
71
|
-
"@path": "/.c9/runners",
|
|
72
|
-
"configs": {
|
|
73
|
-
"@inited": "true",
|
|
74
|
-
"json()": {
|
|
75
|
-
"Debug Harness": {
|
|
76
|
-
"command": "harness/Debug.js",
|
|
77
|
-
"debug": true,
|
|
78
|
-
"default": true,
|
|
79
|
-
"name": "Debug Harness",
|
|
80
|
-
"runner": "Node.js (default)",
|
|
81
|
-
"toolbar": true
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
},
|
|
86
|
-
"share": {
|
|
87
|
-
"@app": false,
|
|
88
|
-
"@preview": false,
|
|
89
|
-
"@useOwnerSettings": false
|
|
90
|
-
}
|
|
91
|
-
}
|
package/.npmignore
DELETED
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
# Logs
|
|
2
|
-
logs
|
|
3
|
-
*.log
|
|
4
|
-
npm-debug.log*
|
|
5
|
-
|
|
6
|
-
# Runtime data
|
|
7
|
-
pids
|
|
8
|
-
*.pid
|
|
9
|
-
*.seed
|
|
10
|
-
|
|
11
|
-
# Directory for instrumented libs generated by jscoverage/JSCover
|
|
12
|
-
lib-cov
|
|
13
|
-
|
|
14
|
-
# Coverage directory used by tools like istanbul
|
|
15
|
-
coverage
|
|
16
|
-
|
|
17
|
-
# nyc test coverage
|
|
18
|
-
.nyc_output
|
|
19
|
-
|
|
20
|
-
# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
|
|
21
|
-
.grunt
|
|
22
|
-
|
|
23
|
-
# node-waf configuration
|
|
24
|
-
.lock-wscript
|
|
25
|
-
|
|
26
|
-
# Compiled binary addons (http://nodejs.org/api/addons.html)
|
|
27
|
-
build/Release
|
|
28
|
-
|
|
29
|
-
# Dependency directories
|
|
30
|
-
node_modules
|
|
31
|
-
jspm_packages
|
|
32
|
-
|
|
33
|
-
# Optional npm cache directory
|
|
34
|
-
.npm
|
|
35
|
-
|
|
36
|
-
# Optional REPL history
|
|
37
|
-
.node_repl_history
|
package/dist/precedent.1.0.5.js
DELETED
|
@@ -1,339 +0,0 @@
|
|
|
1
|
-
(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
|
|
2
|
-
"use strict";
|
|
3
|
-
|
|
4
|
-
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
|
|
5
|
-
|
|
6
|
-
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
7
|
-
|
|
8
|
-
/**
|
|
9
|
-
* Precedent Meta-Templating
|
|
10
|
-
*
|
|
11
|
-
* @license MIT
|
|
12
|
-
*
|
|
13
|
-
* @author Steven Velozo <steven@velozo.com>
|
|
14
|
-
*
|
|
15
|
-
* @description Process text streams, parsing out meta-template expressions.
|
|
16
|
-
*/
|
|
17
|
-
var libWordTree = require("./WordTree.js");
|
|
18
|
-
var libStringParser = require("./StringParser.js");
|
|
19
|
-
|
|
20
|
-
var Precedent = function () {
|
|
21
|
-
/**
|
|
22
|
-
* Precedent Constructor
|
|
23
|
-
*/
|
|
24
|
-
function Precedent() {
|
|
25
|
-
_classCallCheck(this, Precedent);
|
|
26
|
-
|
|
27
|
-
this.WordTree = new libWordTree();
|
|
28
|
-
|
|
29
|
-
this.StringParser = new libStringParser();
|
|
30
|
-
|
|
31
|
-
this.ParseTree = this.WordTree.ParseTree;
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
/**
|
|
35
|
-
* Add a Pattern to the Parse Tree
|
|
36
|
-
* @method addPattern
|
|
37
|
-
* @param {Object} pTree - A node on the parse tree to push the characters into
|
|
38
|
-
* @param {string} pPattern - The string to add to the tree
|
|
39
|
-
* @param {number} pIndex - callback function
|
|
40
|
-
* @return {bool} True if adding the pattern was successful
|
|
41
|
-
*/
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
_createClass(Precedent, [{
|
|
45
|
-
key: "addPattern",
|
|
46
|
-
value: function addPattern(pPatternStart, pPatternEnd, pParser) {
|
|
47
|
-
return this.WordTree.addPattern(pPatternStart, pPatternEnd, pParser);
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
/**
|
|
51
|
-
* Parse a string with the existing parse tree
|
|
52
|
-
* @method parseString
|
|
53
|
-
* @param {string} pString - The string to parse
|
|
54
|
-
* @return {string} The result from the parser
|
|
55
|
-
*/
|
|
56
|
-
|
|
57
|
-
}, {
|
|
58
|
-
key: "parseString",
|
|
59
|
-
value: function parseString(pString) {
|
|
60
|
-
return this.StringParser.parseString(pString, this.ParseTree);
|
|
61
|
-
}
|
|
62
|
-
}]);
|
|
63
|
-
|
|
64
|
-
return Precedent;
|
|
65
|
-
}();
|
|
66
|
-
|
|
67
|
-
module.exports = Precedent;
|
|
68
|
-
|
|
69
|
-
},{"./StringParser.js":2,"./WordTree.js":3}],2:[function(require,module,exports){
|
|
70
|
-
'use strict';
|
|
71
|
-
|
|
72
|
-
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
|
|
73
|
-
|
|
74
|
-
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
75
|
-
|
|
76
|
-
/**
|
|
77
|
-
* String Parser
|
|
78
|
-
*
|
|
79
|
-
* @license MIT
|
|
80
|
-
*
|
|
81
|
-
* @author Steven Velozo <steven@velozo.com>
|
|
82
|
-
*
|
|
83
|
-
* @description Parse a string, properly processing each matched token in the word tree.
|
|
84
|
-
*/
|
|
85
|
-
|
|
86
|
-
var StringParser = function () {
|
|
87
|
-
/**
|
|
88
|
-
* StringParser Constructor
|
|
89
|
-
*/
|
|
90
|
-
function StringParser() {
|
|
91
|
-
_classCallCheck(this, StringParser);
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
/**
|
|
95
|
-
* Create a fresh parsing state object to work with.
|
|
96
|
-
* @method newParserState
|
|
97
|
-
* @param {Object} pParseTree - A node on the parse tree to begin parsing from (usually root)
|
|
98
|
-
* @return {Object} A new parser state object for running a character parser on
|
|
99
|
-
* @private
|
|
100
|
-
*/
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
_createClass(StringParser, [{
|
|
104
|
-
key: 'newParserState',
|
|
105
|
-
value: function newParserState(pParseTree) {
|
|
106
|
-
return {
|
|
107
|
-
ParseTree: pParseTree,
|
|
108
|
-
|
|
109
|
-
Output: '',
|
|
110
|
-
OutputBuffer: '',
|
|
111
|
-
|
|
112
|
-
Pattern: false,
|
|
113
|
-
|
|
114
|
-
PatternMatch: false,
|
|
115
|
-
PatternMatchOutputBuffer: ''
|
|
116
|
-
};
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
/**
|
|
120
|
-
* Assign a node of the parser tree to be the next potential match.
|
|
121
|
-
* If the node has a PatternEnd property, it is a valid match and supercedes the last valid match (or becomes the initial match).
|
|
122
|
-
* @method assignNode
|
|
123
|
-
* @param {Object} pNode - A node on the parse tree to assign
|
|
124
|
-
* @param {Object} pParserState - The state object for the current parsing task
|
|
125
|
-
* @private
|
|
126
|
-
*/
|
|
127
|
-
|
|
128
|
-
}, {
|
|
129
|
-
key: 'assignNode',
|
|
130
|
-
value: function assignNode(pNode, pParserState) {
|
|
131
|
-
pParserState.PatternMatch = pNode;
|
|
132
|
-
|
|
133
|
-
// If the pattern has a END we can assume it has a parse function...
|
|
134
|
-
if (pParserState.PatternMatch.hasOwnProperty('PatternEnd')) {
|
|
135
|
-
// ... this is the legitimate start of a pattern.
|
|
136
|
-
pParserState.Pattern = pParserState.PatternMatch;
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
/**
|
|
141
|
-
* Append a character to the output buffer in the parser state.
|
|
142
|
-
* This output buffer is used when a potential match is being explored, or a match is being explored.
|
|
143
|
-
* @method appendOutputBuffer
|
|
144
|
-
* @param {string} pCharacter - The character to append
|
|
145
|
-
* @param {Object} pParserState - The state object for the current parsing task
|
|
146
|
-
* @private
|
|
147
|
-
*/
|
|
148
|
-
|
|
149
|
-
}, {
|
|
150
|
-
key: 'appendOutputBuffer',
|
|
151
|
-
value: function appendOutputBuffer(pCharacter, pParserState) {
|
|
152
|
-
pParserState.OutputBuffer += pCharacter;
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
/**
|
|
156
|
-
* Flush the output buffer to the output and clear it.
|
|
157
|
-
* @method flushOutputBuffer
|
|
158
|
-
* @param {Object} pParserState - The state object for the current parsing task
|
|
159
|
-
* @private
|
|
160
|
-
*/
|
|
161
|
-
|
|
162
|
-
}, {
|
|
163
|
-
key: 'flushOutputBuffer',
|
|
164
|
-
value: function flushOutputBuffer(pParserState) {
|
|
165
|
-
pParserState.Output += pParserState.OutputBuffer;
|
|
166
|
-
pParserState.OutputBuffer = '';
|
|
167
|
-
}
|
|
168
|
-
|
|
169
|
-
/**
|
|
170
|
-
* Check if the pattern has ended. If it has, properly flush the buffer and start looking for new patterns.
|
|
171
|
-
* @method checkPatternEnd
|
|
172
|
-
* @param {Object} pParserState - The state object for the current parsing task
|
|
173
|
-
* @private
|
|
174
|
-
*/
|
|
175
|
-
|
|
176
|
-
}, {
|
|
177
|
-
key: 'checkPatternEnd',
|
|
178
|
-
value: function checkPatternEnd(pParserState) {
|
|
179
|
-
if (pParserState.OutputBuffer.length >= pParserState.Pattern.PatternEnd.length + pParserState.Pattern.PatternStart.length && pParserState.OutputBuffer.substr(-pParserState.Pattern.PatternEnd.length) === pParserState.Pattern.PatternEnd) {
|
|
180
|
-
// ... this is the end of a pattern, cut off the end tag and parse it.
|
|
181
|
-
// Trim the start and end tags off the output buffer now
|
|
182
|
-
pParserState.OutputBuffer = pParserState.Pattern.Parse(pParserState.OutputBuffer.substr(pParserState.Pattern.PatternStart.length, pParserState.OutputBuffer.length - (pParserState.Pattern.PatternStart.length + pParserState.Pattern.PatternEnd.length)));
|
|
183
|
-
// Flush the output buffer.
|
|
184
|
-
this.flushOutputBuffer(pParserState);
|
|
185
|
-
// End pattern mode
|
|
186
|
-
pParserState.Pattern = false;
|
|
187
|
-
pParserState.PatternMatch = false;
|
|
188
|
-
}
|
|
189
|
-
}
|
|
190
|
-
|
|
191
|
-
/**
|
|
192
|
-
* Parse a character in the buffer.
|
|
193
|
-
* @method parseCharacter
|
|
194
|
-
* @param {string} pCharacter - The character to append
|
|
195
|
-
* @param {Object} pParserState - The state object for the current parsing task
|
|
196
|
-
* @private
|
|
197
|
-
*/
|
|
198
|
-
|
|
199
|
-
}, {
|
|
200
|
-
key: 'parseCharacter',
|
|
201
|
-
value: function parseCharacter(pCharacter, pParserState) {
|
|
202
|
-
// (1) If we aren't in a pattern match, and we aren't potentially matching, and this may be the start of a new pattern....
|
|
203
|
-
if (!pParserState.PatternMatch && pParserState.ParseTree.hasOwnProperty(pCharacter)) {
|
|
204
|
-
// ... assign the node as the matched node.
|
|
205
|
-
this.assignNode(pParserState.ParseTree[pCharacter], pParserState);
|
|
206
|
-
this.appendOutputBuffer(pCharacter, pParserState);
|
|
207
|
-
}
|
|
208
|
-
// (2) If we are in a pattern match (actively seeing if this is part of a new pattern token)
|
|
209
|
-
else if (pParserState.PatternMatch) {
|
|
210
|
-
// If the pattern has a subpattern with this key
|
|
211
|
-
if (pParserState.PatternMatch.hasOwnProperty(pCharacter)) {
|
|
212
|
-
// Continue matching patterns.
|
|
213
|
-
this.assignNode(pParserState.PatternMatch[pCharacter], pParserState);
|
|
214
|
-
}
|
|
215
|
-
this.appendOutputBuffer(pCharacter, pParserState);
|
|
216
|
-
if (pParserState.Pattern) {
|
|
217
|
-
// ... Check if this is the end of the pattern (if we are matching a valid pattern)...
|
|
218
|
-
this.checkPatternEnd(pParserState);
|
|
219
|
-
}
|
|
220
|
-
}
|
|
221
|
-
// (3) If we aren't in a pattern match or pattern, and this isn't the start of a new pattern (RAW mode)....
|
|
222
|
-
else {
|
|
223
|
-
pParserState.Output += pCharacter;
|
|
224
|
-
}
|
|
225
|
-
}
|
|
226
|
-
|
|
227
|
-
/**
|
|
228
|
-
* Parse a string for matches, and process any template segments that occur.
|
|
229
|
-
* @method parseString
|
|
230
|
-
* @param {string} pString - The string to parse.
|
|
231
|
-
* @param {Object} pParseTree - The parse tree to begin parsing from (usually root)
|
|
232
|
-
*/
|
|
233
|
-
|
|
234
|
-
}, {
|
|
235
|
-
key: 'parseString',
|
|
236
|
-
value: function parseString(pString, pParseTree) {
|
|
237
|
-
var tmpParserState = this.newParserState(pParseTree);
|
|
238
|
-
|
|
239
|
-
for (var i = 0; i < pString.length; i++) {
|
|
240
|
-
// TODO: This is not fast.
|
|
241
|
-
this.parseCharacter(pString[i], tmpParserState);
|
|
242
|
-
}
|
|
243
|
-
|
|
244
|
-
this.flushOutputBuffer(tmpParserState);
|
|
245
|
-
|
|
246
|
-
return tmpParserState.Output;
|
|
247
|
-
}
|
|
248
|
-
}]);
|
|
249
|
-
|
|
250
|
-
return StringParser;
|
|
251
|
-
}();
|
|
252
|
-
|
|
253
|
-
module.exports = StringParser;
|
|
254
|
-
|
|
255
|
-
},{}],3:[function(require,module,exports){
|
|
256
|
-
'use strict';
|
|
257
|
-
|
|
258
|
-
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
|
|
259
|
-
|
|
260
|
-
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
261
|
-
|
|
262
|
-
/**
|
|
263
|
-
* Word Tree
|
|
264
|
-
*
|
|
265
|
-
* @license MIT
|
|
266
|
-
*
|
|
267
|
-
* @author Steven Velozo <steven@velozo.com>
|
|
268
|
-
*
|
|
269
|
-
* @description Create a tree (directed graph) of Javascript objects, one character per object.
|
|
270
|
-
*/
|
|
271
|
-
|
|
272
|
-
var WordTree = function () {
|
|
273
|
-
/**
|
|
274
|
-
* WordTree Constructor
|
|
275
|
-
*/
|
|
276
|
-
function WordTree() {
|
|
277
|
-
_classCallCheck(this, WordTree);
|
|
278
|
-
|
|
279
|
-
this.ParseTree = {};
|
|
280
|
-
}
|
|
281
|
-
|
|
282
|
-
/**
|
|
283
|
-
* Add a child character to a Parse Tree node
|
|
284
|
-
* @method addChild
|
|
285
|
-
* @param {Object} pTree - A parse tree to push the characters into
|
|
286
|
-
* @param {string} pPattern - The string to add to the tree
|
|
287
|
-
* @param {number} pIndex - callback function
|
|
288
|
-
* @returns {Object} The resulting leaf node that was added (or found)
|
|
289
|
-
* @private
|
|
290
|
-
*/
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
_createClass(WordTree, [{
|
|
294
|
-
key: 'addChild',
|
|
295
|
-
value: function addChild(pTree, pPattern, pIndex) {
|
|
296
|
-
if (pIndex > pPattern.length) return pTree;
|
|
297
|
-
|
|
298
|
-
if (!pTree.hasOwnProperty(pPattern[pIndex])) pTree[pPattern[pIndex]] = {};
|
|
299
|
-
|
|
300
|
-
return pTree[pPattern[pIndex]];
|
|
301
|
-
}
|
|
302
|
-
|
|
303
|
-
/** Add a Pattern to the Parse Tree
|
|
304
|
-
* @method addPattern
|
|
305
|
-
* @param {Object} pTree - A node on the parse tree to push the characters into
|
|
306
|
-
* @param {string} pPattern - The string to add to the tree
|
|
307
|
-
* @param {number} pIndex - callback function
|
|
308
|
-
* @return {bool} True if adding the pattern was successful
|
|
309
|
-
*/
|
|
310
|
-
|
|
311
|
-
}, {
|
|
312
|
-
key: 'addPattern',
|
|
313
|
-
value: function addPattern(pPatternStart, pPatternEnd, pParser) {
|
|
314
|
-
if (pPatternStart.length < 1) return false;
|
|
315
|
-
|
|
316
|
-
var tmpLeaf = this.ParseTree;
|
|
317
|
-
|
|
318
|
-
// Add the tree of leaves iteratively
|
|
319
|
-
for (var i = 0; i < pPatternStart.length; i++) {
|
|
320
|
-
tmpLeaf = this.addChild(tmpLeaf, pPatternStart, i);
|
|
321
|
-
}tmpLeaf.PatternStart = pPatternStart;
|
|
322
|
-
tmpLeaf.PatternEnd = typeof pPatternEnd === 'string' && pPatternEnd.length > 0 ? pPatternEnd : pPatternStart;
|
|
323
|
-
tmpLeaf.Parse = typeof pParser === 'function' ? pParser : typeof pParser === 'string' ? function () {
|
|
324
|
-
return pParser;
|
|
325
|
-
} : function (pData) {
|
|
326
|
-
return pData;
|
|
327
|
-
};
|
|
328
|
-
|
|
329
|
-
return true;
|
|
330
|
-
}
|
|
331
|
-
}]);
|
|
332
|
-
|
|
333
|
-
return WordTree;
|
|
334
|
-
}();
|
|
335
|
-
|
|
336
|
-
module.exports = WordTree;
|
|
337
|
-
|
|
338
|
-
},{}]},{},[1])
|
|
339
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9icm93c2VyLXBhY2svX3ByZWx1ZGUuanMiLCJzb3VyY2UvUHJlY2VkZW50LmpzIiwic291cmNlL1N0cmluZ1BhcnNlci5qcyIsInNvdXJjZS9Xb3JkVHJlZS5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7OztBQ0FBOzs7Ozs7Ozs7QUFTQSxJQUFJLGNBQWMsd0JBQWxCO0FBQ0EsSUFBSSxrQkFBa0IsNEJBQXRCOztJQUVNLFM7QUFFTDs7O0FBR0Esc0JBQ0E7QUFBQTs7QUFDQyxPQUFLLFFBQUwsR0FBZ0IsSUFBSSxXQUFKLEVBQWhCOztBQUVBLE9BQUssWUFBTCxHQUFvQixJQUFJLGVBQUosRUFBcEI7O0FBRUEsT0FBSyxTQUFMLEdBQWlCLEtBQUssUUFBTCxDQUFjLFNBQS9CO0FBQ0E7O0FBRUQ7Ozs7Ozs7Ozs7Ozs2QkFRVyxhLEVBQWUsVyxFQUFhLE8sRUFDdkM7QUFDQyxVQUFPLEtBQUssUUFBTCxDQUFjLFVBQWQsQ0FBeUIsYUFBekIsRUFBd0MsV0FBeEMsRUFBcUQsT0FBckQsQ0FBUDtBQUNBOztBQUVEOzs7Ozs7Ozs7OEJBTVksTyxFQUNaO0FBQ0MsVUFBTyxLQUFLLFlBQUwsQ0FBa0IsV0FBbEIsQ0FBOEIsT0FBOUIsRUFBdUMsS0FBSyxTQUE1QyxDQUFQO0FBQ0E7Ozs7OztBQUdGLE9BQU8sT0FBUCxHQUFpQixTQUFqQjs7Ozs7Ozs7O0FDbkRBOzs7Ozs7Ozs7O0lBVU0sWTtBQUVMOzs7QUFHQSx5QkFDQTtBQUFBO0FBQ0M7O0FBRUQ7Ozs7Ozs7Ozs7O2lDQU9nQixVLEVBQ2hCO0FBQ0MsVUFDQTtBQUNJLGVBQVcsVUFEZjs7QUFHQyxZQUFRLEVBSFQ7QUFJQyxrQkFBYyxFQUpmOztBQU1DLGFBQVMsS0FOVjs7QUFRQyxrQkFBYyxLQVJmO0FBU0MsOEJBQTBCO0FBVDNCLElBREE7QUFZQTs7QUFFRDs7Ozs7Ozs7Ozs7NkJBUVksSyxFQUFPLFksRUFDbkI7QUFDQyxnQkFBYSxZQUFiLEdBQTRCLEtBQTVCOztBQUVBO0FBQ0EsT0FBSSxhQUFhLFlBQWIsQ0FBMEIsY0FBMUIsQ0FBeUMsWUFBekMsQ0FBSixFQUNBO0FBQ0M7QUFDQSxpQkFBYSxPQUFiLEdBQXVCLGFBQWEsWUFBcEM7QUFDQTtBQUNEOztBQUVEOzs7Ozs7Ozs7OztxQ0FRb0IsVSxFQUFZLFksRUFDaEM7QUFDQyxnQkFBYSxZQUFiLElBQTZCLFVBQTdCO0FBQ0E7O0FBRUQ7Ozs7Ozs7OztvQ0FNbUIsWSxFQUNuQjtBQUNDLGdCQUFhLE1BQWIsSUFBdUIsYUFBYSxZQUFwQztBQUNBLGdCQUFhLFlBQWIsR0FBNEIsRUFBNUI7QUFDQTs7QUFHRDs7Ozs7Ozs7O2tDQU1pQixZLEVBQ2pCO0FBQ0MsT0FBSyxhQUFhLFlBQWIsQ0FBMEIsTUFBMUIsSUFBb0MsYUFBYSxPQUFiLENBQXFCLFVBQXJCLENBQWdDLE1BQWhDLEdBQXVDLGFBQWEsT0FBYixDQUFxQixZQUFyQixDQUFrQyxNQUE5RyxJQUNGLGFBQWEsWUFBYixDQUEwQixNQUExQixDQUFpQyxDQUFDLGFBQWEsT0FBYixDQUFxQixVQUFyQixDQUFnQyxNQUFsRSxNQUE4RSxhQUFhLE9BQWIsQ0FBcUIsVUFEckcsRUFFQTtBQUNDO0FBQ0E7QUFDQSxpQkFBYSxZQUFiLEdBQTRCLGFBQWEsT0FBYixDQUFxQixLQUFyQixDQUEyQixhQUFhLFlBQWIsQ0FBMEIsTUFBMUIsQ0FBaUMsYUFBYSxPQUFiLENBQXFCLFlBQXJCLENBQWtDLE1BQW5FLEVBQTJFLGFBQWEsWUFBYixDQUEwQixNQUExQixJQUFvQyxhQUFhLE9BQWIsQ0FBcUIsWUFBckIsQ0FBa0MsTUFBbEMsR0FBeUMsYUFBYSxPQUFiLENBQXFCLFVBQXJCLENBQWdDLE1BQTdHLENBQTNFLENBQTNCLENBQTVCO0FBQ0E7QUFDQSxTQUFLLGlCQUFMLENBQXVCLFlBQXZCO0FBQ0E7QUFDQSxpQkFBYSxPQUFiLEdBQXVCLEtBQXZCO0FBQ0EsaUJBQWEsWUFBYixHQUE0QixLQUE1QjtBQUNBO0FBQ0Q7O0FBRUQ7Ozs7Ozs7Ozs7aUNBT2dCLFUsRUFBWSxZLEVBQzVCO0FBQ0M7QUFDQSxPQUFJLENBQUMsYUFBYSxZQUFkLElBQThCLGFBQWEsU0FBYixDQUF1QixjQUF2QixDQUFzQyxVQUF0QyxDQUFsQyxFQUNBO0FBQ0M7QUFDQSxTQUFLLFVBQUwsQ0FBZ0IsYUFBYSxTQUFiLENBQXVCLFVBQXZCLENBQWhCLEVBQW9ELFlBQXBEO0FBQ0EsU0FBSyxrQkFBTCxDQUF3QixVQUF4QixFQUFvQyxZQUFwQztBQUNBO0FBQ0Q7QUFOQSxRQU9LLElBQUksYUFBYSxZQUFqQixFQUNMO0FBQ0M7QUFDQSxTQUFJLGFBQWEsWUFBYixDQUEwQixjQUExQixDQUF5QyxVQUF6QyxDQUFKLEVBQ0E7QUFDQztBQUNBLFdBQUssVUFBTCxDQUFnQixhQUFhLFlBQWIsQ0FBMEIsVUFBMUIsQ0FBaEIsRUFBdUQsWUFBdkQ7QUFDQTtBQUNELFVBQUssa0JBQUwsQ0FBd0IsVUFBeEIsRUFBb0MsWUFBcEM7QUFDQSxTQUFJLGFBQWEsT0FBakIsRUFDQTtBQUNDO0FBQ0EsV0FBSyxlQUFMLENBQXFCLFlBQXJCO0FBQ0E7QUFDRDtBQUNEO0FBZkssU0FpQkw7QUFDQyxtQkFBYSxNQUFiLElBQXVCLFVBQXZCO0FBQ0E7QUFDRDs7QUFFRDs7Ozs7Ozs7OzhCQU1hLE8sRUFBUyxVLEVBQ3RCO0FBQ0MsT0FBSSxpQkFBaUIsS0FBSyxjQUFMLENBQW9CLFVBQXBCLENBQXJCOztBQUVBLFFBQUssSUFBSSxJQUFJLENBQWIsRUFBZ0IsSUFBSSxRQUFRLE1BQTVCLEVBQW9DLEdBQXBDLEVBQ0E7QUFDQztBQUNBLFNBQUssY0FBTCxDQUFvQixRQUFRLENBQVIsQ0FBcEIsRUFBZ0MsY0FBaEM7QUFDQTs7QUFFRCxRQUFLLGlCQUFMLENBQXVCLGNBQXZCOztBQUVBLFVBQU8sZUFBZSxNQUF0QjtBQUNBOzs7Ozs7QUFHRixPQUFPLE9BQVAsR0FBaUIsWUFBakI7Ozs7Ozs7OztBQzNLQTs7Ozs7Ozs7OztJQVVNLFE7QUFFTDs7O0FBR0EscUJBQ0E7QUFBQTs7QUFDQyxPQUFLLFNBQUwsR0FBaUIsRUFBakI7QUFDQTs7QUFFRDs7Ozs7Ozs7Ozs7OzsyQkFTVSxLLEVBQU8sUSxFQUFVLE0sRUFDM0I7QUFDQyxPQUFJLFNBQVMsU0FBUyxNQUF0QixFQUNDLE9BQU8sS0FBUDs7QUFFRCxPQUFJLENBQUMsTUFBTSxjQUFOLENBQXFCLFNBQVMsTUFBVCxDQUFyQixDQUFMLEVBQ0MsTUFBTSxTQUFTLE1BQVQsQ0FBTixJQUEwQixFQUExQjs7QUFFRCxVQUFPLE1BQU0sU0FBUyxNQUFULENBQU4sQ0FBUDtBQUNBOztBQUVEOzs7Ozs7Ozs7OzZCQU9ZLGEsRUFBZSxXLEVBQWEsTyxFQUN4QztBQUNDLE9BQUksY0FBYyxNQUFkLEdBQXVCLENBQTNCLEVBQ0MsT0FBTyxLQUFQOztBQUVELE9BQUksVUFBVSxLQUFLLFNBQW5COztBQUVBO0FBQ0EsUUFBSyxJQUFJLElBQUksQ0FBYixFQUFnQixJQUFJLGNBQWMsTUFBbEMsRUFBMEMsR0FBMUM7QUFDQyxjQUFVLEtBQUssUUFBTCxDQUFjLE9BQWQsRUFBdUIsYUFBdkIsRUFBc0MsQ0FBdEMsQ0FBVjtBQURELElBR0EsUUFBUSxZQUFSLEdBQXVCLGFBQXZCO0FBQ0EsV0FBUSxVQUFSLEdBQXVCLE9BQU8sV0FBUCxLQUF3QixRQUF6QixJQUF1QyxZQUFZLE1BQVosR0FBcUIsQ0FBN0QsR0FBbUUsV0FBbkUsR0FBaUYsYUFBdEc7QUFDQSxXQUFRLEtBQVIsR0FBaUIsT0FBTyxPQUFQLEtBQW9CLFVBQXJCLEdBQW1DLE9BQW5DLEdBQ1gsT0FBTyxPQUFQLEtBQW9CLFFBQXJCLEdBQWlDLFlBQU07QUFBRSxXQUFPLE9BQVA7QUFBaUIsSUFBMUQsR0FDQSxVQUFDLEtBQUQsRUFBVztBQUFFLFdBQU8sS0FBUDtBQUFlLElBRmhDOztBQUlBLFVBQU8sSUFBUDtBQUNBOzs7Ozs7QUFHRixPQUFPLE9BQVAsR0FBaUIsUUFBakIiLCJmaWxlIjoiZ2VuZXJhdGVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXNDb250ZW50IjpbIihmdW5jdGlvbiBlKHQsbixyKXtmdW5jdGlvbiBzKG8sdSl7aWYoIW5bb10pe2lmKCF0W29dKXt2YXIgYT10eXBlb2YgcmVxdWlyZT09XCJmdW5jdGlvblwiJiZyZXF1aXJlO2lmKCF1JiZhKXJldHVybiBhKG8sITApO2lmKGkpcmV0dXJuIGkobywhMCk7dmFyIGY9bmV3IEVycm9yKFwiQ2Fubm90IGZpbmQgbW9kdWxlICdcIitvK1wiJ1wiKTt0aHJvdyBmLmNvZGU9XCJNT0RVTEVfTk9UX0ZPVU5EXCIsZn12YXIgbD1uW29dPXtleHBvcnRzOnt9fTt0W29dWzBdLmNhbGwobC5leHBvcnRzLGZ1bmN0aW9uKGUpe3ZhciBuPXRbb11bMV1bZV07cmV0dXJuIHMobj9uOmUpfSxsLGwuZXhwb3J0cyxlLHQsbixyKX1yZXR1cm4gbltvXS5leHBvcnRzfXZhciBpPXR5cGVvZiByZXF1aXJlPT1cImZ1bmN0aW9uXCImJnJlcXVpcmU7Zm9yKHZhciBvPTA7bzxyLmxlbmd0aDtvKyspcyhyW29dKTtyZXR1cm4gc30pIiwiLyoqXG4qIFByZWNlZGVudCBNZXRhLVRlbXBsYXRpbmdcbipcbiogQGxpY2Vuc2UgICAgIE1JVFxuKlxuKiBAYXV0aG9yICAgICAgU3RldmVuIFZlbG96byA8c3RldmVuQHZlbG96by5jb20+XG4qXG4qIEBkZXNjcmlwdGlvbiBQcm9jZXNzIHRleHQgc3RyZWFtcywgcGFyc2luZyBvdXQgbWV0YS10ZW1wbGF0ZSBleHByZXNzaW9ucy5cbiovXG52YXIgbGliV29yZFRyZWUgPSByZXF1aXJlKGAuL1dvcmRUcmVlLmpzYCk7XG52YXIgbGliU3RyaW5nUGFyc2VyID0gcmVxdWlyZShgLi9TdHJpbmdQYXJzZXIuanNgKTtcblxuY2xhc3MgUHJlY2VkZW50XG57XG5cdC8qKlxuXHQgKiBQcmVjZWRlbnQgQ29uc3RydWN0b3Jcblx0ICovXG5cdGNvbnN0cnVjdG9yKClcblx0e1xuXHRcdHRoaXMuV29yZFRyZWUgPSBuZXcgbGliV29yZFRyZWUoKTtcblx0XHRcblx0XHR0aGlzLlN0cmluZ1BhcnNlciA9IG5ldyBsaWJTdHJpbmdQYXJzZXIoKTtcblxuXHRcdHRoaXMuUGFyc2VUcmVlID0gdGhpcy5Xb3JkVHJlZS5QYXJzZVRyZWU7XG5cdH1cblx0XG5cdC8qKlxuXHQgKiBBZGQgYSBQYXR0ZXJuIHRvIHRoZSBQYXJzZSBUcmVlXG5cdCAqIEBtZXRob2QgYWRkUGF0dGVyblxuXHQgKiBAcGFyYW0ge09iamVjdH0gcFRyZWUgLSBBIG5vZGUgb24gdGhlIHBhcnNlIHRyZWUgdG8gcHVzaCB0aGUgY2hhcmFjdGVycyBpbnRvXG5cdCAqIEBwYXJhbSB7c3RyaW5nfSBwUGF0dGVybiAtIFRoZSBzdHJpbmcgdG8gYWRkIHRvIHRoZSB0cmVlXG5cdCAqIEBwYXJhbSB7bnVtYmVyfSBwSW5kZXggLSBjYWxsYmFjayBmdW5jdGlvblxuXHQgKiBAcmV0dXJuIHtib29sfSBUcnVlIGlmIGFkZGluZyB0aGUgcGF0dGVybiB3YXMgc3VjY2Vzc2Z1bFxuXHQgKi9cblx0YWRkUGF0dGVybihwUGF0dGVyblN0YXJ0LCBwUGF0dGVybkVuZCwgcFBhcnNlcilcblx0e1xuXHRcdHJldHVybiB0aGlzLldvcmRUcmVlLmFkZFBhdHRlcm4ocFBhdHRlcm5TdGFydCwgcFBhdHRlcm5FbmQsIHBQYXJzZXIpO1xuXHR9XG5cdFxuXHQvKipcblx0ICogUGFyc2UgYSBzdHJpbmcgd2l0aCB0aGUgZXhpc3RpbmcgcGFyc2UgdHJlZVxuXHQgKiBAbWV0aG9kIHBhcnNlU3RyaW5nXG5cdCAqIEBwYXJhbSB7c3RyaW5nfSBwU3RyaW5nIC0gVGhlIHN0cmluZyB0byBwYXJzZVxuXHQgKiBAcmV0dXJuIHtzdHJpbmd9IFRoZSByZXN1bHQgZnJvbSB0aGUgcGFyc2VyXG5cdCAqL1xuXHRwYXJzZVN0cmluZyhwU3RyaW5nKVxuXHR7XG5cdFx0cmV0dXJuIHRoaXMuU3RyaW5nUGFyc2VyLnBhcnNlU3RyaW5nKHBTdHJpbmcsIHRoaXMuUGFyc2VUcmVlKTtcblx0fVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IFByZWNlZGVudDtcbiIsIi8qKlxuKiBTdHJpbmcgUGFyc2VyXG4qXG4qIEBsaWNlbnNlICAgICBNSVRcbipcbiogQGF1dGhvciAgICAgIFN0ZXZlbiBWZWxvem8gPHN0ZXZlbkB2ZWxvem8uY29tPlxuKlxuKiBAZGVzY3JpcHRpb24gUGFyc2UgYSBzdHJpbmcsIHByb3Blcmx5IHByb2Nlc3NpbmcgZWFjaCBtYXRjaGVkIHRva2VuIGluIHRoZSB3b3JkIHRyZWUuXG4qL1xuXG5jbGFzcyBTdHJpbmdQYXJzZXJcbntcblx0LyoqXG5cdCAqIFN0cmluZ1BhcnNlciBDb25zdHJ1Y3RvclxuXHQgKi9cblx0Y29uc3RydWN0b3IoKVxuXHR7XG5cdH1cblx0XG5cdC8qKlxuXHQgKiBDcmVhdGUgYSBmcmVzaCBwYXJzaW5nIHN0YXRlIG9iamVjdCB0byB3b3JrIHdpdGguXG5cdCAqIEBtZXRob2QgbmV3UGFyc2VyU3RhdGVcblx0ICogQHBhcmFtIHtPYmplY3R9IHBQYXJzZVRyZWUgLSBBIG5vZGUgb24gdGhlIHBhcnNlIHRyZWUgdG8gYmVnaW4gcGFyc2luZyBmcm9tICh1c3VhbGx5IHJvb3QpXG5cdCAqIEByZXR1cm4ge09iamVjdH0gQSBuZXcgcGFyc2VyIHN0YXRlIG9iamVjdCBmb3IgcnVubmluZyBhIGNoYXJhY3RlciBwYXJzZXIgb25cblx0ICogQHByaXZhdGVcblx0ICovXG5cdG5ld1BhcnNlclN0YXRlIChwUGFyc2VUcmVlKVxuXHR7XG5cdFx0cmV0dXJuIChcblx0XHR7XG5cdFx0ICAgIFBhcnNlVHJlZTogcFBhcnNlVHJlZSxcblxuXHRcdFx0T3V0cHV0OiAnJyxcblx0XHRcdE91dHB1dEJ1ZmZlcjogJycsXG5cblx0XHRcdFBhdHRlcm46IGZhbHNlLFxuXG5cdFx0XHRQYXR0ZXJuTWF0Y2g6IGZhbHNlLFxuXHRcdFx0UGF0dGVybk1hdGNoT3V0cHV0QnVmZmVyOiAnJ1xuXHRcdH0pO1xuXHR9XG5cdFx0XG5cdC8qKlxuXHQgKiBBc3NpZ24gYSBub2RlIG9mIHRoZSBwYXJzZXIgdHJlZSB0byBiZSB0aGUgbmV4dCBwb3RlbnRpYWwgbWF0Y2guXG5cdCAqIElmIHRoZSBub2RlIGhhcyBhIFBhdHRlcm5FbmQgcHJvcGVydHksIGl0IGlzIGEgdmFsaWQgbWF0Y2ggYW5kIHN1cGVyY2VkZXMgdGhlIGxhc3QgdmFsaWQgbWF0Y2ggKG9yIGJlY29tZXMgdGhlIGluaXRpYWwgbWF0Y2gpLlxuXHQgKiBAbWV0aG9kIGFzc2lnbk5vZGVcblx0ICogQHBhcmFtIHtPYmplY3R9IHBOb2RlIC0gQSBub2RlIG9uIHRoZSBwYXJzZSB0cmVlIHRvIGFzc2lnblxuXHQgKiBAcGFyYW0ge09iamVjdH0gcFBhcnNlclN0YXRlIC0gVGhlIHN0YXRlIG9iamVjdCBmb3IgdGhlIGN1cnJlbnQgcGFyc2luZyB0YXNrXG5cdCAqIEBwcml2YXRlXG5cdCAqL1xuXHRhc3NpZ25Ob2RlIChwTm9kZSwgcFBhcnNlclN0YXRlKVxuXHR7XG5cdFx0cFBhcnNlclN0YXRlLlBhdHRlcm5NYXRjaCA9IHBOb2RlO1xuXG5cdFx0Ly8gSWYgdGhlIHBhdHRlcm4gaGFzIGEgRU5EIHdlIGNhbiBhc3N1bWUgaXQgaGFzIGEgcGFyc2UgZnVuY3Rpb24uLi5cblx0XHRpZiAocFBhcnNlclN0YXRlLlBhdHRlcm5NYXRjaC5oYXNPd25Qcm9wZXJ0eSgnUGF0dGVybkVuZCcpKVxuXHRcdHtcblx0XHRcdC8vIC4uLiB0aGlzIGlzIHRoZSBsZWdpdGltYXRlIHN0YXJ0IG9mIGEgcGF0dGVybi5cblx0XHRcdHBQYXJzZXJTdGF0ZS5QYXR0ZXJuID0gcFBhcnNlclN0YXRlLlBhdHRlcm5NYXRjaDtcblx0XHR9XG5cdH1cblx0XG5cdC8qKlxuXHQgKiBBcHBlbmQgYSBjaGFyYWN0ZXIgdG8gdGhlIG91dHB1dCBidWZmZXIgaW4gdGhlIHBhcnNlciBzdGF0ZS5cblx0ICogVGhpcyBvdXRwdXQgYnVmZmVyIGlzIHVzZWQgd2hlbiBhIHBvdGVudGlhbCBtYXRjaCBpcyBiZWluZyBleHBsb3JlZCwgb3IgYSBtYXRjaCBpcyBiZWluZyBleHBsb3JlZC5cblx0ICogQG1ldGhvZCBhcHBlbmRPdXRwdXRCdWZmZXJcblx0ICogQHBhcmFtIHtzdHJpbmd9IHBDaGFyYWN0ZXIgLSBUaGUgY2hhcmFjdGVyIHRvIGFwcGVuZFxuXHQgKiBAcGFyYW0ge09iamVjdH0gcFBhcnNlclN0YXRlIC0gVGhlIHN0YXRlIG9iamVjdCBmb3IgdGhlIGN1cnJlbnQgcGFyc2luZyB0YXNrXG5cdCAqIEBwcml2YXRlXG5cdCAqL1xuXHRhcHBlbmRPdXRwdXRCdWZmZXIgKHBDaGFyYWN0ZXIsIHBQYXJzZXJTdGF0ZSlcblx0e1xuXHRcdHBQYXJzZXJTdGF0ZS5PdXRwdXRCdWZmZXIgKz0gcENoYXJhY3Rlcjtcblx0fVxuXHRcblx0LyoqXG5cdCAqIEZsdXNoIHRoZSBvdXRwdXQgYnVmZmVyIHRvIHRoZSBvdXRwdXQgYW5kIGNsZWFyIGl0LlxuXHQgKiBAbWV0aG9kIGZsdXNoT3V0cHV0QnVmZmVyXG5cdCAqIEBwYXJhbSB7T2JqZWN0fSBwUGFyc2VyU3RhdGUgLSBUaGUgc3RhdGUgb2JqZWN0IGZvciB0aGUgY3VycmVudCBwYXJzaW5nIHRhc2tcblx0ICogQHByaXZhdGVcblx0ICovXG5cdGZsdXNoT3V0cHV0QnVmZmVyIChwUGFyc2VyU3RhdGUpXG5cdHtcblx0XHRwUGFyc2VyU3RhdGUuT3V0cHV0ICs9IHBQYXJzZXJTdGF0ZS5PdXRwdXRCdWZmZXI7XG5cdFx0cFBhcnNlclN0YXRlLk91dHB1dEJ1ZmZlciA9ICcnO1xuXHR9XG5cblx0XG5cdC8qKlxuXHQgKiBDaGVjayBpZiB0aGUgcGF0dGVybiBoYXMgZW5kZWQuICBJZiBpdCBoYXMsIHByb3Blcmx5IGZsdXNoIHRoZSBidWZmZXIgYW5kIHN0YXJ0IGxvb2tpbmcgZm9yIG5ldyBwYXR0ZXJucy5cblx0ICogQG1ldGhvZCBjaGVja1BhdHRlcm5FbmRcblx0ICogQHBhcmFtIHtPYmplY3R9IHBQYXJzZXJTdGF0ZSAtIFRoZSBzdGF0ZSBvYmplY3QgZm9yIHRoZSBjdXJyZW50IHBhcnNpbmcgdGFza1xuXHQgKiBAcHJpdmF0ZVxuXHQgKi9cblx0Y2hlY2tQYXR0ZXJuRW5kIChwUGFyc2VyU3RhdGUpXG5cdHtcblx0XHRpZiAoKHBQYXJzZXJTdGF0ZS5PdXRwdXRCdWZmZXIubGVuZ3RoID49IHBQYXJzZXJTdGF0ZS5QYXR0ZXJuLlBhdHRlcm5FbmQubGVuZ3RoK3BQYXJzZXJTdGF0ZS5QYXR0ZXJuLlBhdHRlcm5TdGFydC5sZW5ndGgpICYmIFxuXHRcdFx0KHBQYXJzZXJTdGF0ZS5PdXRwdXRCdWZmZXIuc3Vic3RyKC1wUGFyc2VyU3RhdGUuUGF0dGVybi5QYXR0ZXJuRW5kLmxlbmd0aCkgPT09IHBQYXJzZXJTdGF0ZS5QYXR0ZXJuLlBhdHRlcm5FbmQpKVxuXHRcdHtcblx0XHRcdC8vIC4uLiB0aGlzIGlzIHRoZSBlbmQgb2YgYSBwYXR0ZXJuLCBjdXQgb2ZmIHRoZSBlbmQgdGFnIGFuZCBwYXJzZSBpdC5cblx0XHRcdC8vIFRyaW0gdGhlIHN0YXJ0IGFuZCBlbmQgdGFncyBvZmYgdGhlIG91dHB1dCBidWZmZXIgbm93XG5cdFx0XHRwUGFyc2VyU3RhdGUuT3V0cHV0QnVmZmVyID0gcFBhcnNlclN0YXRlLlBhdHRlcm4uUGFyc2UocFBhcnNlclN0YXRlLk91dHB1dEJ1ZmZlci5zdWJzdHIocFBhcnNlclN0YXRlLlBhdHRlcm4uUGF0dGVyblN0YXJ0Lmxlbmd0aCwgcFBhcnNlclN0YXRlLk91dHB1dEJ1ZmZlci5sZW5ndGggLSAocFBhcnNlclN0YXRlLlBhdHRlcm4uUGF0dGVyblN0YXJ0Lmxlbmd0aCtwUGFyc2VyU3RhdGUuUGF0dGVybi5QYXR0ZXJuRW5kLmxlbmd0aCkpKTtcblx0XHRcdC8vIEZsdXNoIHRoZSBvdXRwdXQgYnVmZmVyLlxuXHRcdFx0dGhpcy5mbHVzaE91dHB1dEJ1ZmZlcihwUGFyc2VyU3RhdGUpO1xuXHRcdFx0Ly8gRW5kIHBhdHRlcm4gbW9kZVxuXHRcdFx0cFBhcnNlclN0YXRlLlBhdHRlcm4gPSBmYWxzZTtcblx0XHRcdHBQYXJzZXJTdGF0ZS5QYXR0ZXJuTWF0Y2ggPSBmYWxzZTtcblx0XHR9XG5cdH1cblx0XG5cdC8qKlxuXHQgKiBQYXJzZSBhIGNoYXJhY3RlciBpbiB0aGUgYnVmZmVyLlxuXHQgKiBAbWV0aG9kIHBhcnNlQ2hhcmFjdGVyXG5cdCAqIEBwYXJhbSB7c3RyaW5nfSBwQ2hhcmFjdGVyIC0gVGhlIGNoYXJhY3RlciB0byBhcHBlbmRcblx0ICogQHBhcmFtIHtPYmplY3R9IHBQYXJzZXJTdGF0ZSAtIFRoZSBzdGF0ZSBvYmplY3QgZm9yIHRoZSBjdXJyZW50IHBhcnNpbmcgdGFza1xuXHQgKiBAcHJpdmF0ZVxuXHQgKi9cblx0cGFyc2VDaGFyYWN0ZXIgKHBDaGFyYWN0ZXIsIHBQYXJzZXJTdGF0ZSlcblx0e1xuXHRcdC8vICgxKSBJZiB3ZSBhcmVuJ3QgaW4gYSBwYXR0ZXJuIG1hdGNoLCBhbmQgd2UgYXJlbid0IHBvdGVudGlhbGx5IG1hdGNoaW5nLCBhbmQgdGhpcyBtYXkgYmUgdGhlIHN0YXJ0IG9mIGEgbmV3IHBhdHRlcm4uLi4uXG5cdFx0aWYgKCFwUGFyc2VyU3RhdGUuUGF0dGVybk1hdGNoICYmIHBQYXJzZXJTdGF0ZS5QYXJzZVRyZWUuaGFzT3duUHJvcGVydHkocENoYXJhY3RlcikpXG5cdFx0e1xuXHRcdFx0Ly8gLi4uIGFzc2lnbiB0aGUgbm9kZSBhcyB0aGUgbWF0Y2hlZCBub2RlLlxuXHRcdFx0dGhpcy5hc3NpZ25Ob2RlKHBQYXJzZXJTdGF0ZS5QYXJzZVRyZWVbcENoYXJhY3Rlcl0sIHBQYXJzZXJTdGF0ZSk7XG5cdFx0XHR0aGlzLmFwcGVuZE91dHB1dEJ1ZmZlcihwQ2hhcmFjdGVyLCBwUGFyc2VyU3RhdGUpO1xuXHRcdH1cblx0XHQvLyAoMikgSWYgd2UgYXJlIGluIGEgcGF0dGVybiBtYXRjaCAoYWN0aXZlbHkgc2VlaW5nIGlmIHRoaXMgaXMgcGFydCBvZiBhIG5ldyBwYXR0ZXJuIHRva2VuKVxuXHRcdGVsc2UgaWYgKHBQYXJzZXJTdGF0ZS5QYXR0ZXJuTWF0Y2gpXG5cdFx0e1xuXHRcdFx0Ly8gSWYgdGhlIHBhdHRlcm4gaGFzIGEgc3VicGF0dGVybiB3aXRoIHRoaXMga2V5XG5cdFx0XHRpZiAocFBhcnNlclN0YXRlLlBhdHRlcm5NYXRjaC5oYXNPd25Qcm9wZXJ0eShwQ2hhcmFjdGVyKSlcblx0XHRcdHtcblx0XHRcdFx0Ly8gQ29udGludWUgbWF0Y2hpbmcgcGF0dGVybnMuXG5cdFx0XHRcdHRoaXMuYXNzaWduTm9kZShwUGFyc2VyU3RhdGUuUGF0dGVybk1hdGNoW3BDaGFyYWN0ZXJdLCBwUGFyc2VyU3RhdGUpO1xuXHRcdFx0fVxuXHRcdFx0dGhpcy5hcHBlbmRPdXRwdXRCdWZmZXIocENoYXJhY3RlciwgcFBhcnNlclN0YXRlKTtcblx0XHRcdGlmIChwUGFyc2VyU3RhdGUuUGF0dGVybilcblx0XHRcdHtcblx0XHRcdFx0Ly8gLi4uIENoZWNrIGlmIHRoaXMgaXMgdGhlIGVuZCBvZiB0aGUgcGF0dGVybiAoaWYgd2UgYXJlIG1hdGNoaW5nIGEgdmFsaWQgcGF0dGVybikuLi5cblx0XHRcdFx0dGhpcy5jaGVja1BhdHRlcm5FbmQocFBhcnNlclN0YXRlKTtcblx0XHRcdH1cblx0XHR9XG5cdFx0Ly8gKDMpIElmIHdlIGFyZW4ndCBpbiBhIHBhdHRlcm4gbWF0Y2ggb3IgcGF0dGVybiwgYW5kIHRoaXMgaXNuJ3QgdGhlIHN0YXJ0IG9mIGEgbmV3IHBhdHRlcm4gKFJBVyBtb2RlKS4uLi5cblx0XHRlbHNlXG5cdFx0e1xuXHRcdFx0cFBhcnNlclN0YXRlLk91dHB1dCArPSBwQ2hhcmFjdGVyO1xuXHRcdH1cblx0fVxuXHRcblx0LyoqXG5cdCAqIFBhcnNlIGEgc3RyaW5nIGZvciBtYXRjaGVzLCBhbmQgcHJvY2VzcyBhbnkgdGVtcGxhdGUgc2VnbWVudHMgdGhhdCBvY2N1ci5cblx0ICogQG1ldGhvZCBwYXJzZVN0cmluZ1xuXHQgKiBAcGFyYW0ge3N0cmluZ30gcFN0cmluZyAtIFRoZSBzdHJpbmcgdG8gcGFyc2UuXG5cdCAqIEBwYXJhbSB7T2JqZWN0fSBwUGFyc2VUcmVlIC0gVGhlIHBhcnNlIHRyZWUgdG8gYmVnaW4gcGFyc2luZyBmcm9tICh1c3VhbGx5IHJvb3QpXG5cdCAqL1xuXHRwYXJzZVN0cmluZyAocFN0cmluZywgcFBhcnNlVHJlZSlcblx0e1xuXHRcdGxldCB0bXBQYXJzZXJTdGF0ZSA9IHRoaXMubmV3UGFyc2VyU3RhdGUocFBhcnNlVHJlZSk7XG5cblx0XHRmb3IgKHZhciBpID0gMDsgaSA8IHBTdHJpbmcubGVuZ3RoOyBpKyspXG5cdFx0e1xuXHRcdFx0Ly8gVE9ETzogVGhpcyBpcyBub3QgZmFzdC5cblx0XHRcdHRoaXMucGFyc2VDaGFyYWN0ZXIocFN0cmluZ1tpXSwgdG1wUGFyc2VyU3RhdGUpO1xuXHRcdH1cblx0XHRcblx0XHR0aGlzLmZsdXNoT3V0cHV0QnVmZmVyKHRtcFBhcnNlclN0YXRlKTtcblx0XHRcblx0XHRyZXR1cm4gdG1wUGFyc2VyU3RhdGUuT3V0cHV0O1xuXHR9XG59XG5cbm1vZHVsZS5leHBvcnRzID0gU3RyaW5nUGFyc2VyO1xuIiwiLyoqXG4qIFdvcmQgVHJlZVxuKlxuKiBAbGljZW5zZSAgICAgTUlUXG4qXG4qIEBhdXRob3IgICAgICBTdGV2ZW4gVmVsb3pvIDxzdGV2ZW5AdmVsb3pvLmNvbT5cbipcbiogQGRlc2NyaXB0aW9uIENyZWF0ZSBhIHRyZWUgKGRpcmVjdGVkIGdyYXBoKSBvZiBKYXZhc2NyaXB0IG9iamVjdHMsIG9uZSBjaGFyYWN0ZXIgcGVyIG9iamVjdC5cbiovXG5cbmNsYXNzIFdvcmRUcmVlXG57XG5cdC8qKlxuXHQgKiBXb3JkVHJlZSBDb25zdHJ1Y3RvclxuXHQgKi9cblx0Y29uc3RydWN0b3IoKVxuXHR7XG5cdFx0dGhpcy5QYXJzZVRyZWUgPSB7fTtcblx0fVxuXHRcblx0LyoqIFxuXHQgKiBBZGQgYSBjaGlsZCBjaGFyYWN0ZXIgdG8gYSBQYXJzZSBUcmVlIG5vZGVcblx0ICogQG1ldGhvZCBhZGRDaGlsZFxuXHQgKiBAcGFyYW0ge09iamVjdH0gcFRyZWUgLSBBIHBhcnNlIHRyZWUgdG8gcHVzaCB0aGUgY2hhcmFjdGVycyBpbnRvXG5cdCAqIEBwYXJhbSB7c3RyaW5nfSBwUGF0dGVybiAtIFRoZSBzdHJpbmcgdG8gYWRkIHRvIHRoZSB0cmVlXG5cdCAqIEBwYXJhbSB7bnVtYmVyfSBwSW5kZXggLSBjYWxsYmFjayBmdW5jdGlvblxuXHQgKiBAcmV0dXJucyB7T2JqZWN0fSBUaGUgcmVzdWx0aW5nIGxlYWYgbm9kZSB0aGF0IHdhcyBhZGRlZCAob3IgZm91bmQpXG5cdCAqIEBwcml2YXRlXG5cdCAqL1xuXHRhZGRDaGlsZCAocFRyZWUsIHBQYXR0ZXJuLCBwSW5kZXgpXG5cdHtcblx0XHRpZiAocEluZGV4ID4gcFBhdHRlcm4ubGVuZ3RoKVxuXHRcdFx0cmV0dXJuIHBUcmVlO1xuXHRcdFxuXHRcdGlmICghcFRyZWUuaGFzT3duUHJvcGVydHkocFBhdHRlcm5bcEluZGV4XSkpXG5cdFx0XHRwVHJlZVtwUGF0dGVybltwSW5kZXhdXSA9IHt9O1xuXHRcdFxuXHRcdHJldHVybiBwVHJlZVtwUGF0dGVybltwSW5kZXhdXTtcblx0fVxuXHRcblx0LyoqIEFkZCBhIFBhdHRlcm4gdG8gdGhlIFBhcnNlIFRyZWVcblx0ICogQG1ldGhvZCBhZGRQYXR0ZXJuXG5cdCAqIEBwYXJhbSB7T2JqZWN0fSBwVHJlZSAtIEEgbm9kZSBvbiB0aGUgcGFyc2UgdHJlZSB0byBwdXNoIHRoZSBjaGFyYWN0ZXJzIGludG9cblx0ICogQHBhcmFtIHtzdHJpbmd9IHBQYXR0ZXJuIC0gVGhlIHN0cmluZyB0byBhZGQgdG8gdGhlIHRyZWVcblx0ICogQHBhcmFtIHtudW1iZXJ9IHBJbmRleCAtIGNhbGxiYWNrIGZ1bmN0aW9uXG5cdCAqIEByZXR1cm4ge2Jvb2x9IFRydWUgaWYgYWRkaW5nIHRoZSBwYXR0ZXJuIHdhcyBzdWNjZXNzZnVsXG5cdCAqL1xuXHRhZGRQYXR0ZXJuIChwUGF0dGVyblN0YXJ0LCBwUGF0dGVybkVuZCwgcFBhcnNlcilcblx0e1xuXHRcdGlmIChwUGF0dGVyblN0YXJ0Lmxlbmd0aCA8IDEpXG5cdFx0XHRyZXR1cm4gZmFsc2U7XG5cblx0XHRsZXQgdG1wTGVhZiA9IHRoaXMuUGFyc2VUcmVlO1xuXG5cdFx0Ly8gQWRkIHRoZSB0cmVlIG9mIGxlYXZlcyBpdGVyYXRpdmVseVxuXHRcdGZvciAodmFyIGkgPSAwOyBpIDwgcFBhdHRlcm5TdGFydC5sZW5ndGg7IGkrKylcblx0XHRcdHRtcExlYWYgPSB0aGlzLmFkZENoaWxkKHRtcExlYWYsIHBQYXR0ZXJuU3RhcnQsIGkpO1xuXG5cdFx0dG1wTGVhZi5QYXR0ZXJuU3RhcnQgPSBwUGF0dGVyblN0YXJ0O1xuXHRcdHRtcExlYWYuUGF0dGVybkVuZCA9ICgodHlwZW9mKHBQYXR0ZXJuRW5kKSA9PT0gJ3N0cmluZycpICYmIChwUGF0dGVybkVuZC5sZW5ndGggPiAwKSkgPyBwUGF0dGVybkVuZCA6IHBQYXR0ZXJuU3RhcnQ7XG5cdFx0dG1wTGVhZi5QYXJzZSA9ICh0eXBlb2YocFBhcnNlcikgPT09ICdmdW5jdGlvbicpID8gcFBhcnNlciA6IFxuXHRcdFx0XHRcdFx0KHR5cGVvZihwUGFyc2VyKSA9PT0gJ3N0cmluZycpID8gKCkgPT4geyByZXR1cm4gcFBhcnNlcjsgfSA6XG5cdFx0XHRcdFx0XHQocERhdGEpID0+IHsgcmV0dXJuIHBEYXRhOyB9O1xuXG5cdFx0cmV0dXJuIHRydWU7XG5cdH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSBXb3JkVHJlZTtcbiJdfQ==
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
!function t(e,r,n){function a(i,f){if(!r[i]){if(!e[i]){var o="function"==typeof require&&require;if(!f&&o)return o(i,!0);if(u)return u(i,!0);var s=new Error("Cannot find module '"+i+"'");throw s.code="MODULE_NOT_FOUND",s}var c=r[i]={exports:{}};e[i][0].call(c.exports,function(t){var r=e[i][1][t];return a(r||t)},c,c.exports,t,e,r,n)}return r[i].exports}for(var u="function"==typeof require&&require,i=0;i<n.length;i++)a(n[i]);return a}({1:[function(t,e,r){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var a=function(){function t(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}return function(e,r,n){return r&&t(e.prototype,r),n&&t(e,n),e}}(),u=t("./WordTree.js"),i=t("./StringParser.js"),f=function(){function t(){n(this,t),this.WordTree=new u,this.StringParser=new i,this.ParseTree=this.WordTree.ParseTree}return a(t,[{key:"addPattern",value:function(t,e,r){return this.WordTree.addPattern(t,e,r)}},{key:"parseString",value:function(t){return this.StringParser.parseString(t,this.ParseTree)}}]),t}();e.exports=f},{"./StringParser.js":2,"./WordTree.js":3}],2:[function(t,e,r){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var a=function(){function t(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}return function(e,r,n){return r&&t(e.prototype,r),n&&t(e,n),e}}(),u=function(){function t(){n(this,t)}return a(t,[{key:"newParserState",value:function(t){return{ParseTree:t,Output:"",OutputBuffer:"",Pattern:!1,PatternMatch:!1,PatternMatchOutputBuffer:""}}},{key:"assignNode",value:function(t,e){e.PatternMatch=t,e.PatternMatch.hasOwnProperty("PatternEnd")&&(e.Pattern=e.PatternMatch)}},{key:"appendOutputBuffer",value:function(t,e){e.OutputBuffer+=t}},{key:"flushOutputBuffer",value:function(t){t.Output+=t.OutputBuffer,t.OutputBuffer=""}},{key:"checkPatternEnd",value:function(t){t.OutputBuffer.length>=t.Pattern.PatternEnd.length+t.Pattern.PatternStart.length&&t.OutputBuffer.substr(-t.Pattern.PatternEnd.length)===t.Pattern.PatternEnd&&(t.OutputBuffer=t.Pattern.Parse(t.OutputBuffer.substr(t.Pattern.PatternStart.length,t.OutputBuffer.length-(t.Pattern.PatternStart.length+t.Pattern.PatternEnd.length))),this.flushOutputBuffer(t),t.Pattern=!1,t.PatternMatch=!1)}},{key:"parseCharacter",value:function(t,e){!e.PatternMatch&&e.ParseTree.hasOwnProperty(t)?(this.assignNode(e.ParseTree[t],e),this.appendOutputBuffer(t,e)):e.PatternMatch?(e.PatternMatch.hasOwnProperty(t)&&this.assignNode(e.PatternMatch[t],e),this.appendOutputBuffer(t,e),e.Pattern&&this.checkPatternEnd(e)):e.Output+=t}},{key:"parseString",value:function(t,e){for(var r=this.newParserState(e),n=0;n<t.length;n++)this.parseCharacter(t[n],r);return this.flushOutputBuffer(r),r.Output}}]),t}();e.exports=u},{}],3:[function(t,e,r){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var a=function(){function t(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}return function(e,r,n){return r&&t(e.prototype,r),n&&t(e,n),e}}(),u=function(){function t(){n(this,t),this.ParseTree={}}return a(t,[{key:"addChild",value:function(t,e,r){return r>e.length?t:(t.hasOwnProperty(e[r])||(t[e[r]]={}),t[e[r]])}},{key:"addPattern",value:function(t,e,r){if(t.length<1)return!1;for(var n=this.ParseTree,a=0;a<t.length;a++)n=this.addChild(n,t,a);return n.PatternStart=t,n.PatternEnd="string"==typeof e&&e.length>0?e:t,n.Parse="function"==typeof r?r:"string"==typeof r?function(){return r}:function(t){return t},!0}}]),t}();e.exports=u},{}]},{},[1]);
|
|
2
|
-
//# sourceMappingURL=precedent.1.0.5.min.js.map
|